[pyferret] 44/110: upstream release 1.2.0
Alastair McKinstry
mckinstry at moszumanska.debian.org
Fri Jul 28 08:41:55 UTC 2017
This is an automated email from the git hooks/post-receive script.
mckinstry pushed a commit to branch debian/master
in repository pyferret.
commit e683b6ed87ea26c04f80bf1cadfa197dc3ccb36f
Author: Alastair McKinstry <mckinstry at debian.org>
Date: Tue Mar 1 14:29:49 2016 +0000
upstream release 1.2.0
---
Makefile | 29 +-
bench/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc | Bin 0 -> 13504 bytes
bench/RUN_TESTS.sh | 13 +-
bench/TEST_SCRIPTS | 21 +
bench/TRASH_FILES | 4 +
bench/ansley_official.linux_err | 1607 +-
bench/ansley_official.linux_log | 12684 ++-
bench/ansley_official.rhel6-32_err | 3676 -
bench/ansley_official.rhel6-32_log | 78481 -------------------
bench/ansley_official.rhel6-64_err | 1592 +-
bench/ansley_official.rhel6-64_log | 12731 ++-
bench/ansley_official.x86_64-linux_err | 1565 +-
bench/ansley_official.x86_64-linux_log | 7638 +-
bench/bn691_bug_fixes.jnl | 3 +
bench/bn694_bug_fixes.jnl | 108 +
bench/bn695_bug_fixes.jnl | 11 +
bench/bn696_bug_fixes.jnl | 8 +
bench/bn_DQ.jnl | 240 +
bench/bn_DQ.sub | 5 +
bench/bn_aggregate_e.jnl | 2 +-
bench/bn_all.jnl | 66 +-
bench/bn_annotate.jnl | 217 +
bench/bn_auxiliary.jnl | 403 +
bench/bn_auxiliary.sub | 152 +
bench/bn_axis_viewports.jnl | 16 +-
bench/bn_bin_regrid.jnl | 8 +
bench/bn_bin_regrid.sub | 22 +
bench/bn_can_var_noerr.jnl | 32 +
bench/bn_dots.jnl | 1 -
bench/bn_f_tax_fcns.jnl | 52 +
bench/bn_floatstr_extended.jnl | 60 +
bench/bn_flowlines.jnl | 2 -
bench/bn_fmrc.jnl | 18 +
bench/bn_gif.jnl | 20 +-
bench/bn_graticules.jnl | 1 -
bench/bn_grave.jnl | 2 +-
bench/bn_if.sub | 57 +
bench/bn_labwid.jnl | 19 +-
bench/bn_legend_labels.jnl | 20 +
bench/bn_lon_lat_time_string.jnl | 19 +
bench/bn_mode_logo_lab.jnl | 2 +-
bench/bn_multi_decade.jnl | 2 +-
bench/bn_odd_variable_name.jnl | 5 +-
bench/bn_outline_poly.jnl | 4 +
bench/bn_permute_ascii.jnl | 79 +
bench/bn_plot.jnl | 20 +-
bench/bn_plot_ribbon_gaploc.jnl | 38 +
bench/bn_ps.jnl | 16 +-
bench/bn_return_defined.jnl | 15 +
bench/bn_save_justdim.jnl | 24 +
bench/bn_strings.jnl | 5 +
bench/bn_time2d.jnl | 19 +
bench/bn_time_short_axes.jnl | 27 +
bench/bn_vec_curv.jnl | 2 +-
bench/bn_vtree.jnl | 5 +
bench/bn_vtree_regrid.jnl | 178 +
bench/check_pdf_ImageMagick | 52 +
bench/edge.nc | Bin 0 -> 2492 bytes
bench/err570_shakeylab.jnl | 4 +-
bench/err580_def_view_axes.jnl | 2 +-
bench/err600_reset_redefine_axis.jnl | 14 +-
bench/err684_axticlab.jnl | 6 +-
bench/err691_pt_in_poly.jnl | 29 +
bench/err691_substring_arg.jnl | 9 +
bench/err693_attr_in_gcfcn.jnl | 21 +
bench/err693_check_edges.jnl | 23 +
bench/err693_edit_useratt.jnl | 26 +
bench/err693_ef_axis_precision.jnl | 13 +
bench/err693_fcn_of_attvar.jnl | 11 +
bench/err693_frame_types.jnl | 20 +
bench/err693_if_then_flow_1368.jnl | 30 +
bench/err693_if_then_flow_1446.jnl | 14 +
bench/err693_if_then_flow_1681.jnl | 29 +
bench/err693_if_then_flow_1706.jnl | 11 +
bench/err693_if_then_flow_1860.jnl | 41 +
bench/err693_if_then_flow_2211.jnl | 17 +
bench/err693_if_then_flow_2214.jnl | 23 +
bench/err693_inconsistent_quote.jnl | 10 +
bench/err693_isize_and_gcfcn.jnl | 26 +
bench/err693_isready_dyn_grid_crash.jnl | 5 +
bench/err693_isready_hang.jnl | 12 +
bench/err693_lev_nv_over.jnl | 15 +
bench/err693_line_over_axis.jnl | 12 +
bench/err693_list_missing.jnl | 10 +
bench/err693_parse_curly.jnl | 14 +
bench/err693_parse_curly.sub | 39 +
bench/err693_redef_rec_axis.jnl | 20 +
bench/err693_repeat_err.jnl | 11 +
bench/err693_ribbon_scale.jnl | 10 +
bench/err693_ribbon_start_missing.jnl | 40 +
bench/err693_save_packed.jnl | 7 +
bench/err693_save_packed.nc | Bin 0 -> 1716 bytes
bench/err693_scalar_grids.jnl | 35 +
bench/err693_shape.jnl | 16 +
bench/err693_shf_subscr.jnl | 22 +
bench/err693_shift_w_region.jnl | 12 +
bench/err693_std4d.jnl | 28 +
bench/err693_string_results.jnl | 13 +
bench/err693_subspan_trans.jnl | 34 +
bench/err693_undetected_regrid_dset.jnl | 15 +
bench/err693_upcase_quoted_name.jnl | 16 +
bench/err694_longname_showdat.jnl | 20 +
bench/err694_shf_missing.jnl | 11 +
bench/err695_bounds_match_axis.jnl | 12 +
bench/err695_show_dat_nodata.jnl | 18 +
bench/err69_isready_bugs.jnl | 6 +
bench/ferret_startup | 5 +-
bench/fxdata.dat | 8 +
bench/levitus_3d_subset.nc | Bin 0 -> 1936 bytes
bench/run1.nc | Bin 0 -> 5384 bytes
bench/run2.nc | Bin 0 -> 5384 bytes
bench/run3.nc | Bin 0 -> 5384 bytes
bench/run4.nc | Bin 0 -> 5384 bytes
bench/run_all | 9 +-
bench/shorttemp.nc | Bin 0 -> 1624 bytes
bench/test_results/axticlabel.pdf | Bin 7166 -> 7176 bytes
bench/test_results/bnplot.pdf | Bin 183735 -> 171732 bytes
bench/test_results/closed_lev.pdf | Bin 38600 -> 36893 bytes
bench/test_results/dashbug.pdf | Bin 10364 -> 10056 bytes
bench/test_results/degC_axlab.pdf | Bin 6880 -> 6866 bytes
bench/test_results/dots.pdf | Bin 5269 -> 5215 bytes
bench/test_results/ferret_run_tests_err | 1087 +-
bench/test_results/ferret_run_tests_log | 10619 ++-
bench/test_results/ferret_run_tests_ncdump | 227 +-
bench/test_results/flowlines.pdf | Bin 55588 -> 54060 bytes
bench/test_results/graticules.pdf | 143 +-
bench/test_results/linecolors.pdf | Bin 16442 -> 16412 bytes
bench/test_results/multi_line_labels.pdf | Bin 30894 -> 31257 bytes
bench/test_results/outline_poly.pdf | Bin 0 -> 8601 bytes
bench/test_results/polygon_plot.pdf | Bin 16172 -> 12323 bytes
bench/test_results/pyferret_run_tests_err | 1237 +-
bench/test_results/pyferret_run_tests_log | 11487 ++-
bench/test_results/pyferret_run_tests_ncdump | 228 +-
bench/test_results/startup_tests2.pdf | Bin 11570 -> 8921 bytes
bench/test_results/timetics.pdf | Bin 15977 -> 14977 bytes
bench/test_results/timetics2.pdf | Bin 27383 -> 27634 bytes
bench/test_results/vec_curv.pdf | Bin 14410 -> 14648 bytes
bench/test_results/vec_curv2.pdf | Bin 29018 -> 28938 bytes
bench/test_results/viewaxes.pdf | Bin 8091 -> 8105 bytes
bench/timesec.nc | Bin 0 -> 2276 bytes
bench/twodtime.nc | Bin 0 -> 1076 bytes
bin/ferret_paths_template.csh | 2 +
bin/ferret_paths_template.sh | 2 +
bin/make_environment_tar | 3 +-
bin/make_executable_tar | 18 +-
bin/make_source_tar | 2 +-
external_functions/ef_utility/site_specific.mk | 7 +-
external_functions/fft/Makefile | 2 +-
external_functions/gridding/Makefile | 4 +-
.../gridding/fco2_xyt_stats_year.jnl | 84 -
external_functions/gridding/nobsxytv.F | 79 +-
.../gridding/scat2grid_mask_bin_xyt.F | 7 +-
external_functions/gridding/socat_decadal.jnl | 99 -
.../gridding/socat_monthly_climatology.jnl | 96 -
external_functions/gridding/socat_yearly.jnl | 93 -
.../gridding/test_tracks2grid_var_xyt.jnl | 64 -
.../gridding/tracks2grid_ave_fco2_xyt_stats.jnl | 57 -
.../gridding/tracks2grid_mask_ave_xyt.F | 168 +-
external_functions/gridding/tracks2grid_std_xyt.F | 186 +-
external_functions/las/Makefile | 2 +-
external_functions/las/lon_lat_time_string.F | 238 +
external_functions/zaxr/Makefile | 2 +-
fer/ccr/EF_InternalUtil.c | 356 +-
fer/ccr/SOURCE_FILES | 5 +
.../tm_switch_nan.c => fer/ccr/cache_full_array.c | 56 +-
fer/ccr/create_utf8_string.c | 80 +
.../free_cached_full_array.c} | 50 +-
.../recover_cached_full_array.c} | 47 +-
fer/ccr/text_to_utf8.c | 67 +
fer/ccr/utf8str.h | 5 +
fer/cferbind/cairoCFerBind.h | 40 +-
fer/cferbind/cairoCFerBind_clipView.c | 8 +-
fer/cferbind/cairoCFerBind_createBrush.c | 2 +-
fer/cferbind/cairoCFerBind_createColor.c | 2 +-
fer/cferbind/cairoCFerBind_createFont.c | 104 +-
fer/cferbind/cairoCFerBind_createPen.c | 2 +-
fer/cferbind/cairoCFerBind_createSurface.c | 62 +-
fer/cferbind/cairoCFerBind_createWindow.c | 17 +-
fer/cferbind/cairoCFerBind_deleteFont.c | 35 +-
fer/cferbind/cairoCFerBind_drawMultiline.c | 12 +-
fer/cferbind/cairoCFerBind_drawPoints.c | 12 +-
fer/cferbind/cairoCFerBind_drawPolygon.c | 51 +-
fer/cferbind/cairoCFerBind_drawRectangle.c | 51 +-
fer/cferbind/cairoCFerBind_drawText.c | 92 +-
fer/cferbind/cairoCFerBind_saveWindow.c | 159 +-
fer/cferbind/cairoCFerBind_setWidthFactor.c | 2 +-
...tWidthFactor.c => cairoCFerBind_setWindowDpi.c} | 22 +-
fer/cferbind/cairoCFerBind_textSize.c | 110 +
fer/cferbind/cairoCFerBind_windowScreenInfo.c | 14 +-
fer/cferbind/cferbind.h | 10 +-
fer/cferbind/cferbind_createWindow.c | 7 +-
fer/cferbind/pyqtcairoCFerBind_createWindow.c | 18 +-
fer/cferbind/pyqtcairoCFerBind_updateWindow.c | 8 +-
fer/common/ferret.parm | 70 +-
fer/common/fgrdel.cmn | 5 +-
fer/common/interp_stack.parm | 9 +-
fer/common/rpn.parm | 5 +-
fer/common/slash.parm | 83 +-
fer/common/xcommand.cmn | 34 +-
fer/common/xcontext.cmn | 17 +-
fer/common/xcontrol.cmn | 10 +-
fer/common/xdependency_tree.cmn | 4 +
fer/common/xprog_state.cmn | 78 +-
fer/common/xrisc.cmn | 9 +-
fer/common/xvariables.cmn | 15 +-
fer/ctx/apply_auto_curv.F | 90 +-
fer/ctx/apply_context_mods.F | 5 +-
fer/ctx/complete_missing_limits.F | 7 +-
fer/ctx/cs_set_context.F | 11 +-
fer/ctx/del_cx_dim.F | 5 +-
fer/ctx/flesh_out_axis.F | 30 +-
fer/ctx/get_auto_aux_vars.F | 21 +-
fer/ctx/get_aux_var_context.F | 25 +-
fer/ctx/get_context_bad_flag.F | 7 +-
fer/ctx/get_context_grid.F | 59 +-
fer/ctx/get_var_context.F | 31 +-
fer/ctx/init_context_mods.F | 3 +-
fer/ctx/init_empty_context.F | 5 +-
fer/ctx/known_data_type.F | 8 +-
fer/ctx/merge_axis_with_offsets.F | 5 +-
fer/ctx/merge_grid.F | 37 +-
fer/ctx/parse_var_name.F | 33 +-
fer/ctx/pseudo_var_context.F | 6 +-
fer/dat/SOURCE_FILES | 1 -
fer/dat/xalgebra_data.F | 64 +-
fer/dat/xcommand_data.F | 146 +-
fer/dat/xfgrdel_data.F | 3 +
fer/dat/xprog_state_data.F | 45 +-
fer/dat/xrevision_data.F | 12 +-
fer/dat/xvariables_data.F | 2 +
fer/doo/SOURCE_FILES | 11 +-
fer/doo/ave_regrid_1_axis.F | 15 +-
fer/doo/bin_regrid_1_axis.F | 495 +
fer/doo/convolve_p.F | 390 +
fer/doo/dd1step.F | 2 +-
fer/doo/diag_op.F | 16 +-
fer/doo/{do_stddev.F => do_4d_std.F} | 35 +-
fer/doo/do_4d_trans.F | 18 +-
..._regrid_line_ave.F => do_aux_regrid_line_ave.F} | 60 +-
..._regrid_line_lin.F => do_aux_regrid_line_lin.F} | 2 +-
fer/doo/do_aux_var_regrid.F | 73 +-
fer/doo/do_aux_var_regrid_1d.F | 225 +-
fer/doo/do_aux_var_regrid_1d_t.F | 233 +
fer/doo/do_aux_var_regrid_2d_tf.F | 286 +
.../decrement_plot_grid.F => doo/do_bin_regrid.F} | 32 +-
fer/doo/{do_stddev.F => do_smth_box_p.F} | 52 +-
fer/doo/do_stddev.F | 0
fer/doo/regrid_comments.F | 86 +-
fer/ef_utility/SOURCE_FILES | 3 +-
fer/ef_utility/ef_get_axis_dates.F | 110 +-
.../{ef_get_axis_dates.F => ef_get_date_tstep.F} | 65 +-
fer/efi/SOURCE_FILES | 12 +
fer/efi/bin_index_wt.F | 14 +-
fer/efi/curv_to_rect.F | 95 +-
fer/efi/{curv_to_rect.F => curv_to_rect_fsu.F} | 228 +-
fer/efi/curv_to_rect_subs.F | 94 +
fer/efi/expndi_by_m_counts.F | 3 +-
fer/efi/expndi_by_z_counts.F | 3 +-
fer/efi/floatstr.F | 73 +-
fer/efi/ft_to_orthogonal.F | 259 +
fer/efi/labwid.F | 49 +-
fer/efi/lon_lat_time_string.F | 298 +
fer/efi/piecewise3.F | 479 +
fer/efi/piecewise_subs.F | 511 +
fer/efi/pt_in_poly.F | 88 +-
fer/efi/sample_fast_i.F | 167 +
fer/efi/sample_fast_i_str.F | 178 +
fer/efi/{samplet_date.F => samplef_date.F} | 188 +-
fer/efi/samplet_date.F | 5 +-
fer/efi/samplexyt_nrst.F | 19 +-
fer/efi/scat2grid_bin_xyt.F | 6 +-
fer/efi/scat2grid_nbin_xyt.F | 6 +-
fer/efi/separate_str.F | 256 +
fer/efi/tax_datestring.F | 287 +-
fer/efi/tax_day.F | 180 +-
fer/efi/tax_dayfrac.F | 181 +-
fer/efi/tax_jday.F | 184 +-
fer/efi/tax_jday1900.F | 175 +-
fer/efi/tax_month.F | 141 +-
fer/efi/tax_subs.F | 51 +
fer/efi/tax_times.F | 32 +
fer/efi/tax_tstep.F | 161 +-
fer/efi/tax_units.F | 49 +-
fer/efi/tax_year.F | 170 +-
fer/efi/tax_yearfrac.F | 189 +-
fer/efi/{tax_units.F => time_reformat.F} | 152 +-
fer/efi/write_webrow_gwt.F | 272 +
fer/fmt/SOURCE_FILES | 1 +
fer/fmt/ascii_limits.F | 20 +-
.../get_context_bad_flag.F => fmt/aux_var_units.F} | 60 +-
fer/fmt/ax_title.F | 19 +-
fer/fmt/var_title.F | 3 +-
fer/fmt/var_title_mod.F | 13 +-
fer/fmt/var_units.F | 3 +-
fer/gnl/SOURCE_FILES | 1 +
fer/gnl/all_1_arg.F | 15 +
fer/gnl/atom_pos.F | 21 +-
fer/gnl/cancel_data_set.F | 23 +-
fer/gnl/cdf_list.F | 57 +-
fer/gnl/cdf_list_global_atts.F | 6 +-
fer/gnl/check_member_sets.F | 16 +-
fer/gnl/create_agg_axis.F | 26 +-
fer/gnl/create_agg_dset.F | 4 +-
fer/gnl/define_aggregate_grid.F | 314 +-
fer/gnl/dollar_arg.F | 60 +-
fer/gnl/edit_attribute.F | 2 +
fer/gnl/equal_permute.F | 18 +-
fer/gnl/equal_str_lc.F | 16 +-
fer/gnl/equal_string.F | 16 +-
fer/gnl/float2string_for_xml.F | 14 +-
fer/gnl/get_context_mods.F | 231 +-
fer/gnl/get_fer_command.F | 189 +-
fer/gnl/get_fvars_list_by_attname_and_val.F | 5 +-
fer/gnl/get_uvars_list_by_attname_and_val.F | 5 +-
fer/gnl/init_aggregate_dset.F | 128 +-
fer/gnl/list_cmnd_data.F | 47 +-
fer/gnl/list_multi_sub.F | 4 +-
fer/gnl/parse_comma_list.F | 25 +
fer/gnl/parse_command.F | 332 +-
fer/gnl/pop_cs.F | 25 +-
fer/gnl/process_if.F | 125 +-
fer/gnl/redefine_ax_att.F | 10 +-
fer/gnl/repl_exprns.F | 372 +-
fer/gnl/reset_ax_att.F | 7 +-
fer/gnl/set_var.F | 60 +-
fer/gnl/show_data.F | 13 +-
fer/gnl/show_data_files.F | 2 +
fer/gnl/show_data_set_attrs.F | 9 +-
fer/gnl/show_data_set_vars.F | 7 +-
fer/gnl/show_data_set_vars_xml.F | 14 +
fer/gnl/show_line.F | 4 +-
fer/gnl/show_line_coords.F | 5 +-
fer/gnl/{create_agg_dset.F => show_pytext_group.F} | 102 +-
fer/gnl/translate_limit.F | 13 +
fer/gnl/var_stat.F | 75 +-
fer/grdel/draw.c | 180 +-
fer/grdel/ferdrawtext.F | 107 +
fer/grdel/fertextsize.F | 80 +
fer/grdel/fgd_engine_match.F | 9 +-
fer/grdel/fgd_gfa.F | 55 +-
fer/grdel/fgd_gopwk.F | 6 +-
fer/grdel/fgd_set_engine.F | 14 +-
fer/grdel/fgd_set_outline_width.F | 30 +
fer/grdel/fgd_set_window_dpi.F | 36 +
fer/grdel/font.c | 19 +-
fer/grdel/getTransformValues.c | 46 +
fer/grdel/grdel.h | 8 +-
fer/grdel/window.c | 90 +-
fer/ino/cdf_prep_cache.F | 12 +-
fer/ino/find_dset_number.F | 4 +-
fer/ino/var_ss_lims.F | 7 +-
fer/mem/SOURCE_FILES | 2 +
.../create_full_range_context.F} | 46 +-
fer/mem/delete_user_var_sub.F | 16 +-
fer/mem/erase_dset.F | 13 +-
fer/mem/find_mem_var.F | 14 +-
.../find_mem_var_incl_c_cache.F} | 79 +-
fer/mem/find_var_name.F | 40 +-
fer/mem/purge_mr_axis.F | 11 +-
fer/mem/purge_mr_grid.F | 5 +-
fer/mem/var_code.F | 8 +-
fer/plt/SOURCE_FILES | 7 +
fer/plt/axis_end_syms.F | 5 +-
fer/plt/axis_ends.F | 26 +-
fer/plt/axis_format.F | 45 +-
fer/plt/box_label.F | 44 +-
fer/plt/cancel_pytext_group.F | 176 +
fer/plt/choose_cx_ww.F | 3 +-
fer/plt/disp_init.F | 21 +-
fer/plt/disp_labels.F | 4 +-
fer/plt/disp_prep.F | 39 +-
fer/plt/disp_reset.F | 3 +
fer/plt/disp_set_up.F | 71 +-
fer/plt/equal_color.F | 22 +-
fer/plt/equal_range.F | 33 +-
fmt/src/tm_ww_axlims.F => fer/plt/get_color_name.F | 45 +-
fmt/src/tm_ww_ax_1_n.F => fer/plt/get_color_rgb.F | 62 +-
fer/plt/itsa_modulo_curvi_axis.F | 3 +-
fer/plt/key_loc.F | 3 +-
fer/plt/merged_whoi_date.F | 18 +-
fer/plt/parse_pyfont_color.F | 118 +
fer/plt/plot_set_up.F | 164 +-
fer/plt/polygon_set_up.F | 27 +-
.../create_agg_dset.F => plt/put_annotation.F} | 95 +-
fer/plt/put_label.F | 5 +-
fer/plt/set_annotation.F | 333 +
fer/plt/set_pytext_group.F | 212 +
fer/plt/set_window.F | 70 +-
fer/plt/taxis_style.F | 45 +-
fer/plt/trim_axis_ends.F | 4 +-
fer/plt/window_size_from_opts.F | 21 +-
fer/pyf/get_data_array_time_coords.F | 2 +-
fer/rpn/alg_break_up.F | 136 +-
fer/rpn/alg_class.F | 11 +-
fer/rpn/alg_id.F | 31 +-
fer/rpn/break_varattname.F | 6 +-
fer/rpn/break_varname.F | 2 +
fer/rpn/init_uvar.F | 10 +
fer/rpn/init_uvar_sub.F | 43 +-
fer/special/ferret_dispatch.F | 7 +-
fer/stk/SOURCE_FILES | 2 +
fer/stk/aux_regrid_lims.F | 46 +-
fer/stk/aux_regrid_lims_1d.F | 231 +-
fer/stk/aux_regrid_lims_1d_t.F | 333 +
fer/stk/aux_regrid_lims_2d_tf.F | 318 +
fer/stk/const_var_context.F | 7 +-
fer/stk/get_axis_speed.F | 4 +-
fer/stk/get_prot_cmnd_data.F | 4 +-
fer/stk/interp_stack.F | 43 +-
fer/stk/is_aggregate_gather.F | 81 +-
fer/stk/is_aggregate_grid.F | 9 +-
fer/stk/is_algebra.F | 38 +-
fer/stk/is_attrib_val.F | 66 +-
fer/stk/is_auxvar_regrid.F | 80 +-
fer/stk/is_const_var.F | 7 +-
fer/stk/is_counter_var.F | 5 +-
fer/stk/is_dependencies.F | 48 +-
fer/stk/is_do_gc_fcn.F | 10 +-
fer/stk/is_do_op.F | 23 +-
fer/stk/is_grid_mode.F | 3 +-
fer/stk/is_pseudo.F | 2 +-
fer/stk/is_regrid.F | 8 +
fer/stk/is_string.F | 17 +-
fer/stk/is_strip.F | 118 +-
fer/stk/is_trans.F | 31 +-
fer/stk/is_uvar_grid.F | 19 +-
fer/stk/known_grid.F | 2 +-
fer/stk/offset_ss.F | 7 +-
fer/stk/pass_ambig_lims.F | 5 +-
fer/stk/push_interp_stack.F | 5 +-
fer/stk/rcvd_regrid.F | 6 +-
fer/stk/rqst_regrid.F | 8 +-
fer/utl/SOURCE_FILES | 10 +-
fer/{gnl/all_1_arg.F => utl/all_1_arg_expr.F} | 47 +-
fer/utl/calendar_axis.F | 2 +-
fer/utl/confine_axis.F | 28 +-
fer/utl/copy_agg_into.F | 15 +-
fer/utl/copy_agg_into_sub.F | 52 +-
fer/utl/copy_agg_ptr_into_sub.F | 42 +-
fer/utl/count_number_list.F | 51 +-
fer/utl/decrement_plot_grid.F | 0
fer/utl/display_dependency_sub.F | 66 +-
fer/utl/{extract_dp_line.F => extract_arg1_line.F} | 64 +-
fer/utl/{extract_dp_line.F => extract_arg4_line.F} | 64 +-
fer/utl/extract_dp_line.F | 3 +
fer/utl/extract_dp_line2.F | 4 +
fer/utl/full_scan_indices.F | 142 +
fer/utl/gcf_impose_arg_lim_dflts.F | 4 +-
.../{decrement_plot_grid.F => get_abstract_line.F} | 22 +-
fer/utl/hunt_indices.F | 217 -
fer/utl/inherit_attrs.F | 4 +-
fer/utl/isubscr_cx.F | 3 +-
fmt/src/tm_ww_ax_1_n.F => fer/utl/its_fmrc.F | 47 +-
fer/{ctx/del_cx_dim.F => utl/itsa_1lineif.F} | 60 +-
.../{decrement_plot_grid.F => itsa_const_var.F} | 28 +-
fer/utl/match4.F | 5 +-
fer/utl/match_quoted_name.F | 22 +-
fer/utl/parse_string_list.F | 54 +-
fer/utl/{extract_dp_line.F => put_arg5_line.F} | 66 +-
fer/utl/report_dependency.F | 3 +-
fer/utl/set_auto_curvi_modes.F | 11 +-
fer/utl/store_dependency.F | 81 +-
fmt/src/tm_note.F => fer/utl/sys_ls.F | 63 +-
fer/utl/tdest_world_init.F | 27 +-
fer/utl/transfer_axis.F | 7 +-
fer/utl/update_attributes.F | 4 +-
fer/xeq/SOURCE_FILES | 1 +
fer/xeq/{xeq_else.F => xeq_annotate.F} | 93 +-
fer/xeq/xeq_cancel.F | 80 +-
fer/xeq/xeq_contour.F | 4 +
fer/xeq/xeq_define.F | 153 +-
fer/xeq/xeq_elif.F | 2 +
fer/xeq/xeq_else.F | 2 +
fer/xeq/xeq_exit.F | 11 +
fer/xeq/xeq_frame.F | 2 +
fer/xeq/xeq_if.F | 80 +-
fer/xeq/xeq_list.F | 5 +-
fer/xeq/xeq_plot.F | 139 +-
fer/xeq/xeq_polygon.F | 5 +
fer/xeq/xeq_repeat.F | 7 +-
fer/xeq/xeq_set.F | 79 +-
fer/xeq/xeq_shade.F | 5 +
fer/xeq/xeq_show.F | 150 +-
fer/xeq/xeq_vector.F | 8 +-
fmt/cmn/xdset_info.cmn_text | 10 +-
fmt/cmn/xrisc_buff.cmn | 6 +-
fmt/cmn/xtm_grid.cmn_text | 8 +-
fmt/src/NCF_Util.c | 140 +-
fmt/src/SOURCE_FILES | 6 +
.../{tm_make_basic_axis.F => cd_1d_line_from_2d.F} | 113 +-
fmt/src/cd_add_var.F | 5 +-
fmt/src/cd_clean_grids.F | 26 +-
fmt/src/cd_dim_only.F | 0
fmt/src/cd_get_1_axis.F | 121 +-
fmt/src/cd_get_1_dep_var.F | 8 +-
...tm_deallo_dyn_grid.F => cd_get_calendar_name.F} | 76 +-
fmt/src/cd_get_generic_bounds.F | 10 +
fmt/src/cd_get_line_direction.F | 10 +-
fmt/src/cd_get_var_att_id.F | 3 +-
fmt/src/cd_get_var_id.F | 11 +-
fmt/src/cd_get_var_info.F | 3 -
fmt/src/cd_init_dset.F | 14 +-
fmt/src/cd_make_fmrc_axes.F | 369 +
fmt/src/cd_make_fmrc_fcal_axis.F | 152 +
.../{cd_transfer_attribute.F => cd_rename_dim.F} | 53 +-
fmt/src/cd_scan_aux_coords.F | 173 +
fmt/src/cd_scan_vars.F | 46 +-
fmt/src/cd_transfer_attribute.F | 2 -
fmt/src/cd_write_attrib.F | 16 +-
fmt/src/cd_write_axis.F | 13 +-
fmt/src/cd_write_var.F | 36 +-
fmt/src/ez_init_dset.F | 8 +-
fmt/src/ez_permuted_index.F | 43 +-
fmt/src/ez_read.F | 3 +-
fmt/src/nc_get_attrib.F | 24 +-
fmt/src/nc_get_attrib_string.F | 16 +-
fmt/src/string_array_find_quoted.c | 37 +-
fmt/src/tm_allo_tmp_line.F | 3 +
fmt/src/tm_check_bnds.F | 89 +-
fmt/src/tm_check_bnds_centered.F | 27 +-
fmt/src/tm_deallo_dyn_grid.F | 7 +-
fmt/src/tm_fmt.F | 36 +-
fmt/src/tm_init_dset.F | 3 +-
fmt/src/tm_loc_string.F | 10 +-
fmt/src/tm_make_basic_axis.F | 4 +
fmt/src/tm_note.F | 10 +-
fmt/src/tm_switch_nan.c | 9 +-
fmt/src/tm_ww_ax_1_n.F | 8 +-
fmt/src/tm_ww_axlims.F | 8 +-
fmt/src/xdset_info_data.F | 2 +
jnls/go/focean.jnl | 12 +-
jnls/go/mp_grid.jnl | 1 +
jnls/go/mp_land.jnl | 5 +-
palettes/QQC_V3_by_level.spk | 16 +
palettes/blue_gold.spk | 9 +
palettes/blue_green_gold.spk | 10 +
palettes/blue_purple_orange.spk | 12 +
palettes/bluegrayscale.spk | 3 +
palettes/coralreefwatch_dhw_value_white.spk | 20 +
palettes/green_soft.spk | 12 +
palettes/inverse_medium_rainbow.spk | 10 +
palettes/koppen.spk | 18 +
palettes/lightgray_bottom0.spk | 16 +
palettes/medium_rainbow.spk | 10 +
palettes/woce2.spk | 7 +
platform_specific.mk.i386-linux | 10 +
platform_specific.mk.i386-linux-gnu | 10 +
platform_specific.mk.intel-mac | 3 +-
platform_specific.mk.x86_64-linux | 11 +
platform_specific.mk.x86_64-linux-gnu | 11 +
ppl/complot/SOURCE_FILES | 3 +
ppl/complot/gksmv.F | 48 +-
ppl/complot/special_sym_code.F | 278 +
ppl/complot/symbel.F | 874 +-
ppl/complot/{symbel.F => symbel_hershey.F} | 44 +-
.../decrement_plot_grid.F => ppl/complot/symwid.F | 26 +-
ppl/include/AXISL.INC | 9 +-
ppl/include/CONT.INC | 8 +-
ppl/include/LINES.INC | 10 +-
ppl/include/TAXIS.INC | 7 +-
ppl/plot/daxis.F | 107 +-
ppl/plot/daxis2.F | 17 +-
ppl/plot/labdrw.F | 32 +-
ppl/plot/lev.F | 5 -
ppl/plot/linfit.F | 18 +-
ppl/plot/opnppl.F | 23 +-
ppl/plot/plotxy.F | 18 +
ppl/plot/plotxy_ribbon.F | 47 +-
ppl/plot/plotz.F | 22 +
ppl/plot/pltit.F | 130 +-
ppl/plot/pplcmd_f.F | 292 +-
ppl/plot/ppldata.F | 7 +
ppl/plot/pplldx.F | 152 +-
ppl/plot/ppllist.F | 3 +-
ppl/plot/prmtiv.F | 22 +-
ppl/plot/rdseq.F | 2 +
ppl/plot/redsf.F | 2 +
ppl/plot/setax.F | 117 +-
ppl/plot/setlab.F | 16 +-
ppl/plot/stmnmx.F | 37 +-
ppl/plotlib/SOURCE_FILES | 2 +
ppl/plotlib/contur.F | 26 +-
ppl/plotlib/diff.F | 6 +-
ppl/plotlib/scinot.F | 79 +-
ppl/plotlib/{scinot.F => scinot_d.F} | 6 +-
ppl/plotlib/taxis.F | 10 +-
ppl/plotlib/taxis0.F | 223 +-
ppl/plotlib/taxis1.F | 10 +-
ppl/plotlib/taxis3.F | 32 +-
ppl/plotlib/tayis.F | 13 +-
ppl/plotlib/tayis0.F | 216 +-
ppl/plotlib/tayis1.F | 11 +-
ppl/plotlib/tayis3.F | 12 +-
ppl/plotlib/xaxis1.F | 26 +-
ppl/plotlib/xaxis2.F | 17 +-
ppl/plotlib/yaxis1.F | 26 +-
ppl/plotlib/yaxis2.F | 12 +-
ppl/pplepic/fixtim.F | 14 +
ppl/symlib/parse.F | 17 +-
ppl/symlib/parsex.F | 18 +-
ppl/symlib/setsym.F | 3 +-
ppl/tmap_inc/century.cmn | 8 +-
ppl/tmap_inc/cont_inc.decl | 6 +-
ppl/tmap_inc/gkplot.cmn | 6 +
ppl/tmap_inc/lines_inc.decl | 7 +
ppl/{tmapadds => tmap_inc}/pplmem.h | 5 +-
ppl/tmap_inc/pyfonts.cmn | 41 +
ppl/tmap_inc/taxis_inc.decl | 28 +-
ppl/tmapadds/SOURCE_FILES | 6 +-
ppl/tmapadds/aline_sub.F | 1 -
ppl/tmapadds/compute_mnstd.F | 136 +-
.../tmapadds/get_pyfont_settings.F | 36 +-
ppl/tmapadds/key.F | 98 +-
ppl/tmapadds/line_key.F | 1 -
ppl/tmapadds/pplld_pts_envelope.c | 2 +-
ppl/tmapadds/pplldc_envelope.c | 2 +-
ppl/tmapadds/pplldx_envelope.c | 2 +-
ppl/tmapadds/pyfont_block_data.F | 110 +
ppl/tmapadds/reallo_envelope.c | 2 +-
ppl/tmapadds/reallo_ppl_memory.c | 81 -
ppl/tmapadds/set_levels_shade_fill.F | 48 +-
.../tmapadds/user_to_inch.F | 28 +-
ppl/tmapadds/ws_line_spectrum.F | 46 +-
pviewmod/__init__.py | 32 +-
pviewmod/cmndhelperpq.py | 41 +-
pviewmod/pipedimagerpq.py | 230 +-
pviewmod/pipedviewerpq.py | 162 +-
pviewmod/pyferretbindings.py | 59 +-
pyfermod/.project | 17 +
pyfermod/.pydevproject | 9 +
pyfermod/__init__.py | 19 +-
pyfermod/ferrdataset.py | 24 +
pyfermod/ferrdatavar.py | 22 +
pyfermod/ferrvar.py | 22 +
pyfermod/graphbind/__init__.py | 10 +-
pyfermod/graphbind/abstractpyferretbindings.py | 22 +-
pyfermod/libpyferret.c | 17 +
setup.py | 37 +-
site_specific.mk | 46 +-
639 files changed, 69757 insertions(+), 105191 deletions(-)
diff --git a/Makefile b/Makefile
index 1c1772d..6fde475 100644
--- a/Makefile
+++ b/Makefile
@@ -45,32 +45,36 @@ pymod_optimized :
rm -fr $(DIR_PREFIX)/build $(DIR_PREFIX)/pyferret_install
( cd $(DIR_PREFIX) ; \
export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
+ export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
export PYFERRET_VERSION=$(PYFERRET_VERSION) ; \
- $(PYTHON_EXE) setup.py build )
+ $(PYTHON_EXE) setup.py --quiet build )
( cd $(DIR_PREFIX) ; \
export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
+ export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
export PYFERRET_VERSION=$(PYFERRET_VERSION) ; \
- $(PYTHON_EXE) setup.py install -O2 --prefix=$(DIR_PREFIX)/pyferret_install )
+ $(PYTHON_EXE) setup.py --quiet install -O2 --prefix=$(DIR_PREFIX)/pyferret_install )
.PHONY : pymod_debug
pymod_debug :
rm -fr $(DIR_PREFIX)/build $(DIR_PREFIX)/pyferret_install
( cd $(DIR_PREFIX) ; \
export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
+ export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
export PYFERRET_VERSION=$(PYFERRET_VERSION) ; \
- $(PYTHON_EXE) setup.py build -g )
+ $(PYTHON_EXE) setup.py --quiet build -g )
( cd $(DIR_PREFIX) ; \
export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
+ export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
export PYFERRET_VERSION=$(PYFERRET_VERSION) ; \
- $(PYTHON_EXE) setup.py install -O0 --prefix=$(DIR_PREFIX)/pyferret_install )
+ $(PYTHON_EXE) setup.py --quiet install -O0 --prefix=$(DIR_PREFIX)/pyferret_install )
## Remove everything that was built
.PHONY : clean
@@ -96,7 +100,7 @@ install_env :
bin/make_environment_tar . . -y
mkdir -p $(INSTALL_FER_DIR)
mv -f fer_environment.tar.gz $(INSTALL_FER_DIR)
- ( cd $(INSTALL_FER_DIR) ; tar xvzf fer_environment.tar.gz )
+ ( cd $(INSTALL_FER_DIR) ; tar xzf fer_environment.tar.gz )
## Create the fer_executables.tar.gz files and then extract it into $(INSTALL_FER_DIR)
.PHONY : install_exes
@@ -105,23 +109,26 @@ install_exes :
bin/make_executable_tar . . -y
mkdir -p $(INSTALL_FER_DIR)
mv -f fer_executables.tar.gz $(INSTALL_FER_DIR)
- ( cd $(INSTALL_FER_DIR) ; tar xvzf fer_executables.tar.gz )
+ ( cd $(INSTALL_FER_DIR) ; tar xzf fer_executables.tar.gz )
cp -f threddsBrowser/toolsUI/toolsUI-4.1.jar $(INSTALL_FER_DIR)/lib/
-## The following is for installing the updated threddsBrowser.jar, libpyferret.so,
-## and python scripts into $(INSTALL_FER_DIR)/lib without having to go
-## through the make_executables_tar script.
+## The following is for installing the updated threddsBrowser.jar, ferret_ef_meme_subsc.so,
+## libpyferret.so, and PyFerret python scripts into $(INSTALL_FER_DIR)/lib without having
+## to go through the make_executables_tar script. Also copies all the PyFerret Fortran
+## external function to the $(INSTALL_FER_DIR)/ext_func/pylibs directory.
.PHONY : update
update :
mkdir -p $(INSTALL_FER_DIR)/lib
- cp -f $(DIR_PREFIX)/efmem/ferret_ef_mem_subsc.so $(INSTALL_FER_DIR)/lib
cp -f $(DIR_PREFIX)/threddsBrowser/threddsBrowser.jar $(INSTALL_FER_DIR)/lib
+ cp -f $(DIR_PREFIX)/efmem/ferret_ef_mem_subsc.so $(INSTALL_FER_DIR)/lib
+ find $(DIR_PREFIX)/external_functions -type f -perm -100 -name \*.so -exec cp {} $(INSTALL_FER_DIR)/ext_func/pylibs \;
( cd $(DIR_PREFIX) ; \
export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
+ export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
export PYFERRET_VERSION=$(PYFERRET_VERSION) ; \
- $(PYTHON_EXE) setup.py install -O2 --prefix=$(INSTALL_FER_DIR) )
+ $(PYTHON_EXE) setup.py --quiet install -O2 --prefix=$(INSTALL_FER_DIR) )
# $(MAKE) "FER_LOCAL_EXTFCNS = $(INSTALL_FER_DIR)/ext_func/libs" -C $(DIR_PREFIX)/external_functions install
##
diff --git a/bench/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc b/bench/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
new file mode 100644
index 0000000..8760a41
Binary files /dev/null and b/bench/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc differ
diff --git a/bench/RUN_TESTS.sh b/bench/RUN_TESTS.sh
index 699596c..7e3772e 100755
--- a/bench/RUN_TESTS.sh
+++ b/bench/RUN_TESTS.sh
@@ -20,6 +20,9 @@ shift
bmarker="$USER"
bcomment="$*"
+PS1='$ '
+export PS1
+
# allow tests to be commented out by beginning with the line with a '!'
# remove bn_all_ef.jnl from the list if $efdir is "."
if [ "$efdir" = "." ]; then
@@ -86,10 +89,6 @@ for jnl in $test_scripts; do
echo " $jnl" >> $log_file
done
-#set up external functions search path
-FER_EXTERNAL_FUNCTIONS="$efdir"
-export FER_EXTERNAL_FUNCTIONS
-
#set up a generic data environment
echo "****** Restricting Ferret paths to bench directory ******" >> $log_file
FER_DATA="."
@@ -127,9 +126,15 @@ cp ./default.ferret $HOME/.ferret
if ! echo "$fver" | grep -q "pyferret"; then
# command-line options for ferret
feropts="-noverify"
+# external functions search path
+ FER_EXTERNAL_FUNCTIONS="$efdir"
+ export FER_EXTERNAL_FUNCTIONS
else
# command-line options for pyferret
feropts="-quiet -nodisplay -noverify"
+# external functions search path
+ PYFER_EXTERNAL_FUNCTIONS="$efdir"
+ export PYFER_EXTERNAL_FUNCTIONS
fi
# run each of the scripts in the list
diff --git a/bench/TEST_SCRIPTS b/bench/TEST_SCRIPTS
index 97891b5..2ea99c1 100644
--- a/bench/TEST_SCRIPTS
+++ b/bench/TEST_SCRIPTS
@@ -221,5 +221,26 @@ bn_show_outfile.jnl
bn_date1900_array.jnl
bn_spawn_size.jnl
bn_polygon_log.jnl
+bn694_bug_fixes.jnl
+bn_permute_ascii.jnl
+bn_lon_lat_time_string.jnl
+bn_save_justdim.jnl
+bn_time2d.jnl
+bn_legend_labels.jnl
+bn_DQ.jnl
+bn695_bug_fixes.jnl
+bn_f_tax_fcns.jnl
+bn_fmrc.jnl
+bn_return_defined.jnl
+bn_can_var_noerr.jnl
+bn_annotate.jnl
+bn_auxiliary.jnl
+bn_plot_ribbon_gaploc.jnl
+bn_time_short_axes.jnl
+bn_floatstr_extended.jnl
+bn696_bug_fixes
+bn_bin_regrid
bn_all_ef.jnl
bn_startupfile.jnl
+! PyFerret-only tests
+bn_outline_poly.jnl
diff --git a/bench/TRASH_FILES b/bench/TRASH_FILES
index 4ee8823..6c3ba74 100644
--- a/bench/TRASH_FILES
+++ b/bench/TRASH_FILES
@@ -10,8 +10,10 @@ a1.nc
a2.nc
aa.nc
abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif
+a.gif
a.jnl
a.nc
+a.png
a.txt
anew_global.nc
another_file_vars.nc
@@ -110,6 +112,7 @@ irrxzt.nc
junk.dat
justg.nc
justh.nc
+layerz_test_data.txt
linecolors.plt
list_of_numbers.dat
longax.dat
@@ -117,6 +120,7 @@ longtitle.nc
longvname.nc
lonlat.dat
lonlat.nc
+metafile.plt
multi_line_labels.plt
my_file_vars.nc
mypack.nc
diff --git a/bench/ansley_official.linux_err b/bench/ansley_official.linux_err
index b282a2f..8d51c0c 100644
--- a/bench/ansley_official.linux_err
+++ b/bench/ansley_official.linux_err
@@ -1,10 +1,10 @@
Procedure run_all to run all FERRET benchmarks
Running FERRET version /home/users/ansley/build/linux/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 53500930 Oct 29 15:34 /home/users/ansley/build/linux/FERRET/fer/ferret_c
+-rwxr-xr-x 1 ansley tmap 86078089 Nov 17 09:24 /home/users/ansley/build/linux/FERRET/fer/ferret_c
Using external functions from /home/users/ansley/build/linux/FERRET/external_functions/ext_func
Running the tests of external functions y
Benchmark run by ansley
-Note: ticket 2115 and a new test script for 2201
+Note: testing declaration of model str in match4.F as *(*)
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
FER_DAT=.
@@ -17,10 +17,10 @@ FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/linux/FERRET/external_functions/
FER_GO=. /home/users/tmap/ferret/linux/go /home/users/tmap/ferret/linux/examples /home/users/tmap/ferret/linux/contrib /home/users/tmap/ferret/tmap_go
FER_GRIDS=.
FER_LIBS=/home/users/tmap/ferret/linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
FER_PALETTE=. /home/users/tmap/ferret/linux/ppl
PWD=/home/users/ansley/build/linux/FERRET/bench
-Beginning at Wed Oct 29 15:55:55 PDT 2014
+PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/linux/ext_func/pylibs
+Beginning at Tue Nov 17 09:25:34 PST 2015
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
SET EXPRESSION has not been given or implied
@@ -41,12 +41,12 @@ message/cont $3"<my error message"
message/cont $1"|xxxxx|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $1
message/cont $1"greetings|xxxxx|goodbye"
- *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
+ *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
**ERROR: my error message
message/cont $3"|hello|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3">greetings|hello|goodbye"
- *** NOTE: Valid argument $3 choices are: hello|goodbye
+ *** NOTE: Valid argument $3 choices are: hello|goodbye
**ERROR: my error message
message/cont $3">greetings|hello|goodbye<my error message"
**ERROR: my error message
@@ -57,17 +57,17 @@ message/cont $3""
message/cont $3"<"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"||"
- *** NOTE: Valid argument $3 choices are: |
+ *** NOTE: Valid argument $3 choices are: |
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"|>|"
- *** NOTE: Valid argument $3 choices are: >|
+ *** NOTE: Valid argument $3 choices are: >|
**ERROR: command syntax: empty text string provided with ">": >|
message/cont $3">|"
**ERROR: command syntax: empty text string provided with ">": |<
message/cont $3"|<"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"|>"
- *** NOTE: Valid argument $3 choices are: >
+ *** NOTE: Valid argument $3 choices are: >
**ERROR: command syntax: arg number not in 1-99 range: $100
say $100
**ERROR: command syntax: arg number not in 1-99 range: $100)
@@ -105,16 +105,16 @@ MESSAGE/CONTINUE `1*/3`
**ERROR: command syntax: sst*/3
* before / is illegal
MESSAGE/CONTINUE `sst*/3,return=lunits`
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
sst,return=Xsize
MESSAGE/CONTINUE `sst,return=Xsize`
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
sst,return=trash
MESSAGE/CONTINUE `sst,return=trash`
PERMANENT data cleared from memory
@@ -129,12 +129,22 @@ can var
LISTing to file v1file.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ **ERROR: invalid command: ENDIF can only be used in an IF clause
+ENDIF
+ **ERROR: command syntax: ELIF cannot be used in single line IF
+ IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+ **ERROR: command syntax: Trash after ENDIF
+ IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+ *** NOTE: Unclosed IF statement ... assuming ENDIF
**ERROR: invalid command: ELSE can only be used between IF and ENDIF
else
**ERROR: invalid command: ENDIF can only be used in an IF clause
endif
**ERROR: invalid command: ELIF can only be used between IF and ENDIF
elif
+ *** NOTE: Unclosed IF statement ... assuming ENDIF
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -152,7 +162,7 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
+ *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
**ERROR: inconsistent sizes of data regions: X axis
X[I=6:9] has 4 points (I=6:9)
expression has 5 points (I=1:5)
@@ -227,8 +237,8 @@ Re-defining viewport LM6
Re-defining viewport UM6
Using every 2th vector in the X direction
Using every 2th vector in the Y direction
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+ *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+ *** NOTE: Use /HLIMITS and /VLIMITS instead.
**ERROR: invalid command: color=noexist
Colors are Black,Red,Green,Blue,LightBlue,Purple, and White
plot/over/i=1:10/color=noexist i
@@ -275,12 +285,12 @@ define symbol t$5 = hi
message/continue ($test2"<error message")
**ERROR: invalid command: Valid value needed for symbol test2
message/continue ($test2"|hello|bye|")
- *** NOTE: Valid symbol test2 choices are: hello|bye|
+ *** NOTE: Valid symbol test2 choices are: hello|bye|
**ERROR: error message
message/continue ($test2"|hello|bye|<error message")
**ERROR: invalid command: Valid value needed for symbol t2
message/continue ($t2"|solong>really hello|bye|")
- *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
+ *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -330,12 +340,12 @@ list tu
Cached data cleared from memory
**ERROR: request exceeds memory setting: 25 Mwords were requested.
list temp[gz=z999999,z=5:15]
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Cached data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
+ *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
+ *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
**ERROR: invalid command: non-positive delta value: X[I=1:5:-1]
list x[i=1:5:-1]
**ERROR: invalid command: non-positive delta value: X[I=1:5:0]
@@ -399,9 +409,9 @@ list a
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file test2.cdf
LISTing to file FL.cdf
LISTing to file FTLON.cdf
@@ -465,7 +475,7 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: regridding: G=W - more than 1 target grid
@@ -559,14 +569,12 @@ Replacing definition of axis TAX
list v2-and-minus
**ERROR: dimensions improperly specified: 99999999 words were requested.
list x
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
+ *** NOTE: Check for unspecified limits on an ABSTRACT axis
+ *** NOTE: Use the SHOW GRID command to see the axes
**ERROR: dimensions improperly specified: 99999999 words were requested.
list i
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: variable unknown or not in data set: 'i'
-list 'i'
+ *** NOTE: Check for unspecified limits on an ABSTRACT axis
+ *** NOTE: Use the SHOW GRID command to see the axes
**ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
- before and is illegal
list v2-and-minus[i=5:15 at ddc]
@@ -581,15 +589,15 @@ Replacing definition of axis ZAX
Replacing definition of axis TAX
**ERROR: request exceeds memory setting: 24000 Mwords were requested.
load num
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
**ERROR: request exceeds memory setting: 1000 Mwords were requested.
load num
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis XAX
Replacing definition of axis YAX
Replacing definition of axis ZAX
@@ -599,7 +607,7 @@ Replacing definition of axis TAX
SET DATA/EZ/format=stream/var=num/grid=mygrid NoSuchFile.dat
**ERROR: Size of file ./junk.dat doesn't match size specified by variables/grid
load num
- *** NOTE: Binary file reading: Insufficient memory reading variable 2
+ *** NOTE: Binary file reading: Insufficient memory reading variable 2
**ERROR: invalid command: variable permutations only allowed for STREAM format
SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
**ERROR: invalid command: invalid argument for /TYPE
@@ -632,37 +640,37 @@ Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax/edges {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax/edges {6,6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
Replacing definition of axis XAX2
- *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
+ *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
Replacing definition of axis XAX2
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -695,7 +703,7 @@ Replacing definition of axis TCAL
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -751,8 +759,8 @@ stat i, noname(i)
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
**ERROR: invalid command: delta values may only modify variable names
LIST/i=2:4:2 VAR
PERMANENT data cleared from memory
@@ -761,15 +769,15 @@ LIST/i=2:4:2 VAR
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
+ *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of grid GX
@@ -794,14 +802,11 @@ Replacing definition of axis TWEEKS
Replacing definition of axis TWEEKS
Replacing definition of axis TWEEKS
LISTing to file calsst.cdf
-
-Bailing out of external function "ffta":
- Time axis must be a regular axis
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
Replacing definition of grid TGRID
Replacing definition of axis TDAYS
Replacing definition of grid TGRID
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: command syntax: dash=(1., 2.)
@@ -817,6 +822,18 @@ plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Using every 2th vector in the X direction
+
+Bailing out of external function "ffta":
+ Time axis must be a regular axis
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_stat":
+ Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
Using every 2th vector in the Y direction
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -842,19 +859,10 @@ Replacing definition of axis X10
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: X10
+ *** NOTE: Axis is in use by grid G10X5
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
-
-Bailing out of external function "eof_space":
- Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
-
-Bailing out of external function "eof_stat":
- Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
-
-Bailing out of external function "eof_tfunc":
- Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -922,10 +930,10 @@ list strcat ("All work and no play")
LISTing to file test_modulo.cdf
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Re-defining viewport MID
@@ -965,6 +973,18 @@ list a[gx=xnrst at sum]
**ERROR: invalid command: cant use this regrid transform on strings: @MOD
list a[gx=xnrst at mod]
LISTing to file foo.cdf
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" - {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" * {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" / {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" ^ {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead SIN({"a","b","c"})
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead MAX("a",{"a","b","c"})
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -980,12 +1000,12 @@ Replacing definition of grid G1
**TMAP ERR: syntax error in string
Unrecognized field type: D
Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+ *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
SET DATA/FORM=delimited/type="d, da2,date2" bn_delimited_read_date_time.dat
**TMAP ERR: syntax error in string
Unrecognized field type: DATE2
Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+ *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
SET DATA/FORM=delimited/type="da,da, date2" bn_delimited_read_date_time.dat
**ERROR: command syntax: ,,:
SET DATA/EZ/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
@@ -1049,279 +1069,279 @@ Replacing definition of grid MYGRID
LISTing to file longax.dat
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
+ *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: Climatological axes test_irreg, test_seas defined
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
Replacing definition of axis TAX2
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file string4d.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G023)
- *** NOTE: Not deleted: XEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: XODD
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** NOTE: Axis is in use by grid JGRID
- *** NOTE: Not deleted: MONTHT
- *** NOTE: Axis is in use by grid TGRID
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: YAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAXLEVITR1_160
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME5
- *** NOTE: Axis is in use by grid GLB1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: COADSX
- *** NOTE: Axis is in use by grid GG
- *** NOTE: Not deleted: COADSY
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G023)
- *** NOTE: Not deleted: YAXLEVITR1_90
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: ZAXLEVITR1_1
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: (AX020)
- *** NOTE: Axis is in use by grid GG3
- *** NOTE: Not deleted: XEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: XODD
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** NOTE: Axis is in use by grid JGRID
- *** NOTE: Not deleted: MONTHT
- *** NOTE: Axis is in use by grid TGRID
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: YAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAXLEVITR1_160
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME5
- *** NOTE: Axis is in use by grid GLB1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: COADSX
- *** NOTE: Axis is in use by grid GG
- *** NOTE: Not deleted: COADSY
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: YAXLEVITR1_90
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: ZAXLEVITR1_1
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: (AX020)
- *** NOTE: Axis is in use by grid GG3
+ *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: Climatological axes test_irreg, test_seas defined
+ *** NOTE: Not deleted: TEST_IRREG
+ *** NOTE: Axis is in use by grid (G023)
+ *** NOTE: Not deleted: XEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: XODD
+ *** NOTE: Axis is in use by grid G13
+ *** NOTE: Not deleted: YEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: YODD
+ *** NOTE: Axis is in use by grid G2
+ *** NOTE: Not deleted: ZEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: ZODD
+ *** NOTE: Axis is in use by grid G3
+ *** NOTE: Not deleted: TEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: TODD
+ *** NOTE: Axis is in use by grid G4
+ *** NOTE: Not deleted: XCOARSE
+ *** NOTE: Axis is in use by grid GCOARSE
+ *** NOTE: Not deleted: YFINE
+ *** NOTE: Axis is in use by grid GFINE
+ *** NOTE: Not deleted: YCOARSE
+ *** NOTE: Axis is in use by grid GCOARSE
+ *** NOTE: Not deleted: XFINE
+ *** NOTE: Axis is in use by grid GFINE
+ *** NOTE: Not deleted: TAX48
+ *** NOTE: Axis is in use by grid G48
+ *** NOTE: Not deleted: XEZ1
+ *** NOTE: Axis is in use by grid GEZ1
+ *** NOTE: Not deleted: XEZ2
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: YEZ
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: ZEZ
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: XEZ3
+ *** NOTE: Axis is in use by grid GEZ3
+ *** NOTE: Not deleted: LON_FIELD_J_AXIS
+ *** NOTE: Axis is in use by grid LON_FIELD_GRID
+ *** NOTE: Not deleted: LAT_FIELD_I_AXIS
+ *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+ *** NOTE: Not deleted: LAT_FIELD_J_AXIS
+ *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+ *** NOTE: Not deleted: LON_FIELD_I_AXIS
+ *** NOTE: Axis is in use by grid LON_FIELD_GRID
+ *** NOTE: Not deleted: XIRREG
+ *** NOTE: Axis is in use by grid GIRREG
+ *** NOTE: Not deleted: TCENTURY
+ *** NOTE: Axis is in use by grid GCENTURY
+ *** NOTE: Not deleted: TAX5DAY
+ *** NOTE: Axis is in use by grid G5DAY
+ *** NOTE: Not deleted: XAX10
+ *** NOTE: Axis is in use by grid G5_10
+ *** NOTE: Not deleted: X5
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: Y5
+ *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: TIME1
+ *** NOTE: Axis is in use by grid GHB1
+ *** NOTE: Not deleted: TIME2
+ *** NOTE: Axis is in use by grid GCQ1
+ *** NOTE: Not deleted: TAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: X4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: Y4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: Z4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: T4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: XCHANNEL
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: YRISE
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: ZLAYER
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: TIME
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: Z1
+ *** NOTE: Axis is in use by grid G1
+ *** NOTE: Not deleted: TCAL
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: XTROP
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: YTROP
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: ZAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: Y1
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: Y2
+ *** NOTE: Axis is in use by grid G10X2
+ *** NOTE: Not deleted: JMONTHS
+ *** NOTE: Axis is in use by grid JGRID
+ *** NOTE: Not deleted: MONTHT
+ *** NOTE: Axis is in use by grid TGRID
+ *** NOTE: Not deleted: X10
+ *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: YAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: XAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: XAXLEVITR1_160
+ *** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: TIME5
+ *** NOTE: Axis is in use by grid GLB1
+ *** NOTE: Not deleted: TIME4
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: COADSX
+ *** NOTE: Axis is in use by grid GG
+ *** NOTE: Not deleted: COADSY
+ *** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: TEST_IRREG
+ *** NOTE: Axis is in use by grid (G023)
+ *** NOTE: Not deleted: YAXLEVITR1_90
+ *** NOTE: Axis is in use by grid GG2
+ *** NOTE: Not deleted: ZAXLEVITR1_1
+ *** NOTE: Axis is in use by grid GG2
+ *** NOTE: Not deleted: (AX020)
+ *** NOTE: Axis is in use by grid GG3
+ *** NOTE: Not deleted: XEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: XODD
+ *** NOTE: Axis is in use by grid G13
+ *** NOTE: Not deleted: YEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: YODD
+ *** NOTE: Axis is in use by grid G2
+ *** NOTE: Not deleted: ZEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: ZODD
+ *** NOTE: Axis is in use by grid G3
+ *** NOTE: Not deleted: TEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: TODD
+ *** NOTE: Axis is in use by grid G4
+ *** NOTE: Not deleted: XCOARSE
+ *** NOTE: Axis is in use by grid GCOARSE
+ *** NOTE: Not deleted: YFINE
+ *** NOTE: Axis is in use by grid GFINE
+ *** NOTE: Not deleted: YCOARSE
+ *** NOTE: Axis is in use by grid GCOARSE
+ *** NOTE: Not deleted: XFINE
+ *** NOTE: Axis is in use by grid GFINE
+ *** NOTE: Not deleted: TAX48
+ *** NOTE: Axis is in use by grid G48
+ *** NOTE: Not deleted: XEZ1
+ *** NOTE: Axis is in use by grid GEZ1
+ *** NOTE: Not deleted: XEZ2
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: YEZ
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: ZEZ
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: XEZ3
+ *** NOTE: Axis is in use by grid GEZ3
+ *** NOTE: Not deleted: LON_FIELD_J_AXIS
+ *** NOTE: Axis is in use by grid LON_FIELD_GRID
+ *** NOTE: Not deleted: LAT_FIELD_I_AXIS
+ *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+ *** NOTE: Not deleted: LAT_FIELD_J_AXIS
+ *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+ *** NOTE: Not deleted: LON_FIELD_I_AXIS
+ *** NOTE: Axis is in use by grid LON_FIELD_GRID
+ *** NOTE: Not deleted: XIRREG
+ *** NOTE: Axis is in use by grid GIRREG
+ *** NOTE: Not deleted: TCENTURY
+ *** NOTE: Axis is in use by grid GCENTURY
+ *** NOTE: Not deleted: TAX5DAY
+ *** NOTE: Axis is in use by grid G5DAY
+ *** NOTE: Not deleted: XAX10
+ *** NOTE: Axis is in use by grid G5_10
+ *** NOTE: Not deleted: X5
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: Y5
+ *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: TIME1
+ *** NOTE: Axis is in use by grid GHB1
+ *** NOTE: Not deleted: TIME2
+ *** NOTE: Axis is in use by grid GCQ1
+ *** NOTE: Not deleted: TAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: X4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: Y4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: Z4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: T4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: XCHANNEL
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: YRISE
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: ZLAYER
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: TIME
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: Z1
+ *** NOTE: Axis is in use by grid G1
+ *** NOTE: Not deleted: TCAL
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: XTROP
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: YTROP
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: ZAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: Y1
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: Y2
+ *** NOTE: Axis is in use by grid G10X2
+ *** NOTE: Not deleted: JMONTHS
+ *** NOTE: Axis is in use by grid JGRID
+ *** NOTE: Not deleted: MONTHT
+ *** NOTE: Axis is in use by grid TGRID
+ *** NOTE: Not deleted: X10
+ *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: YAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: XAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: XAXLEVITR1_160
+ *** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: TIME5
+ *** NOTE: Axis is in use by grid GLB1
+ *** NOTE: Not deleted: TIME4
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: COADSX
+ *** NOTE: Axis is in use by grid GG
+ *** NOTE: Not deleted: COADSY
+ *** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: YAXLEVITR1_90
+ *** NOTE: Axis is in use by grid GG2
+ *** NOTE: Not deleted: ZAXLEVITR1_1
+ *** NOTE: Axis is in use by grid GG2
+ *** NOTE: Not deleted: (AX020)
+ *** NOTE: Axis is in use by grid GG3
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1345,14 +1365,14 @@ define axis/x=130e:500:10/modulo=360 xsub
LISTing to file test_subspan_modulo.nc
LISTing to file test_subspan_modulo.nc
LISTing to file test_subspan_modulo.nc
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /THICKNESS ignored on /SYMBOL=DOT
- *** NOTE: /SIZE= ignored on /SYMBOL=DOT
+ *** NOTE: /THICKNESS ignored on /SYMBOL=DOT
+ *** NOTE: /SIZE= ignored on /SYMBOL=DOT
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1361,10 +1381,10 @@ define axis/x=130e:500:10/modulo=360 xsub
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
- *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
+ *** NOTE: modulo = "j"
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1407,9 +1427,9 @@ SHADE/L=1/LEV=0.01d sst
POLYGON/KEY/LEV=0.01d/coord_ax=Z PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
+ *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+ *** NOTE: A dummy axis of subscripts will be used
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ls: input.txt: No such file or directory
@@ -1419,10 +1439,10 @@ Replacing definition of axis XAX
Replacing definition of axis YAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
axy, return=xx
MESSAGE/CONTINUE `axy, return=xx`
PERMANENT data cleared from memory
@@ -1433,7 +1453,7 @@ Replacing definition of axis XAX
TEMPORARY data cleared from memory
Replacing definition of axis YAX
Replacing definition of axis Z1
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1443,8 +1463,8 @@ Replacing definition of axis Z1
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
+ *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ *** NOTE: Axis has repeated values -- micro-adjusting TIME
**ERROR: illegal limits: "DUMMY" does not exist at T=JAN-1990
Axis extremes are T=DEC-1997:JAN-1998
list/t=1-jan-1990 dummy
@@ -1515,7 +1535,7 @@ SHOW VAR/XML
Using every 5th vector in the X direction
Using every 3th vector in the Y direction
Using every 2th vector in the X direction
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
@@ -1590,8 +1610,8 @@ Replacing definition of grid AGRID
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1627,9 +1647,9 @@ Replacing definition of axis YAX
LISTing to file a.nc
Replacing definition of axis TAX
Replacing definition of axis TAX
- *** NOTE: Axis definition error on axis: TAX
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Axis definition error on axis: TAX
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
Replacing definition of axis TAX
**ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
@@ -1641,16 +1661,16 @@ def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,
def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
**ERROR: improper grid or axis definition: dimension of bounds (15) must be 2*N or N+1, N=number of axis coordinates (7)
def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+ *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
**ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: TAX
+ *** NOTE: Axis is in use by grid GFORMAT
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
+ *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
+ *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
LISTing to file a.nc
Replacing definition of axis XAX
Replacing definition of axis ZAX
@@ -1659,19 +1679,19 @@ Replacing definition of axis TAX
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of grid TGRID
@@ -1679,16 +1699,16 @@ Replacing definition of grid TGRID
def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units not recognized: something
- *** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: something
- *** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: zorro
- *** NOTE: They will not be convertible:
- *** NOTE: Units not recognized for T axis: meters
- *** NOTE: They will not be convertible
- *** NOTE: Units not recognized for Y axis: seconds
- *** NOTE: They will not be convertible
+ *** NOTE: Units not recognized: something
+ *** NOTE: They will not be convertible:
+ *** NOTE: Units not recognized: something
+ *** NOTE: They will not be convertible:
+ *** NOTE: Units not recognized: zorro
+ *** NOTE: They will not be convertible:
+ *** NOTE: Units not recognized for T axis: meters
+ *** NOTE: They will not be convertible
+ *** NOTE: Units not recognized for Y axis: seconds
+ *** NOTE: They will not be convertible
Replacing definition of axis TAX
Replacing definition of axis XAX
PERMANENT data cleared from memory
@@ -1701,7 +1721,7 @@ Replacing definition of axis XAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
Replacing definition of axis TAX
Replacing definition of axis ZAX
PERMANENT data cleared from memory
@@ -1768,7 +1788,7 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
Replacing definition of axis TAX
LISTing to file aa.nc
LISTing to file cc.nc
@@ -1780,27 +1800,27 @@ Replacing definition of axis TAX
query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
**ERROR: invalid command: Valid value needed for argument $2
query/ignore $2%|a|b|c|d|%
- *** NOTE: Valid argument $2 choices are: a|b|c|d|
+ *** NOTE: Valid argument $2 choices are: a|b|c|d|
**ERROR: my error message
message/cont $1"|xxxxx|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $1
message/cont $1"greetings|xxxxx|goodbye"
- *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
+ *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
**ERROR: my error message
message/cont $3"|hello|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3">greetings|hello|goodbye"
- *** NOTE: Valid argument $3 choices are: hello|goodbye
+ *** NOTE: Valid argument $3 choices are: hello|goodbye
**ERROR: my error message
message/continue ($test2"<my error message")
**ERROR: invalid command: Valid value needed for symbol test2
message/continue ($test2"|hello|bye|")
- *** NOTE: Valid symbol test2 choices are: hello|bye|
+ *** NOTE: Valid symbol test2 choices are: hello|bye|
**ERROR: my error message
message/continue ($test2"|hello|bye|<my error message")
**ERROR: invalid command: Valid value needed for symbol t2
message/continue ($t2"|solong>really hello|bye|")
- *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
+ *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1824,29 +1844,28 @@ Replacing definition of axis XQ
Replacing definition of axis YQ
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Evenly spaced axis has edges definition: TCOADS - ignored
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TIME1
- *** NOTE: grid used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GHB2 used by data set coads_clim
+ *** NOTE: Redefinition may alter apparent contents of data set
Replacing definition of axis TIME1
- *** NOTE: grid used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GHB2 used by data set coads_clim
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis COADSX.ILLEGAL
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX2 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX1 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
Replacing definition of axis COADSY.ILLEGAL
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX3 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX1 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1881,10 +1900,10 @@ Replacing definition of axis TIME
Replacing definition of axis TAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
**ERROR: improper grid or axis definition: error in start,end,delta
DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
**ERROR: improper grid or axis definition: error in start,end,delta
DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
PERMANENT data cleared from memory
@@ -1970,7 +1989,7 @@ sho att/all .
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1979,26 +1998,26 @@ sho att/all .
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the length of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.some_text
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the value of attribute temp.missing_value
- *** NOTE: Changing the value of attribute temp.missing_value
+ *** NOTE: Changing the value of attribute temp.long_name
+ *** NOTE: Changing the value of attribute temp.units
+ *** NOTE: Changing the value of attribute temp.missing_value
+ *** NOTE: Changing the value of attribute temp.missing_value
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSZT1).positive
- *** NOTE: Changing the type of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (TIME4).time_origin
+ *** NOTE: Changing the value of attribute (PSZT1).positive
+ *** NOTE: Changing the type of attribute (coadsx).modulo
+ *** NOTE: Changing the value of attribute (coadsx).modulo
+ *** NOTE: Changing the value of attribute (TIME4).time_origin
**ERROR: command syntax: enclose coordinate variable name in parentheses
list coadsx.units
**ERROR: variable unknown or not in data set: COADSX.UNITS
@@ -2009,17 +2028,17 @@ set att (COADSX81_81).axis = "Z"
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the type of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the length of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the type of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the type of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.long_name
+ *** NOTE: Changing the value of attribute temp.units
+ *** NOTE: Changing the type of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
@@ -2055,10 +2074,10 @@ Replacing definition of grid MYGRID
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
@@ -2067,27 +2086,27 @@ Replacing definition of grid MYGRID
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (COADSX).point_spacing
- *** NOTE: Changing the value of attribute (COADSY).point_spacing
+ *** NOTE: Changing the value of attribute (COADSX).point_spacing
+ *** NOTE: Changing the value of attribute (COADSY).point_spacing
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
data in attribute missing_value not representable in output type NC_INT
LIST/FORMAT=CDF/file=a.nc/clobber/x=132w/k=1 temp
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
**ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
set var/outtype=char broiled
**ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
set var/outtype=garbage broiled
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (PSXT1).units
+ *** NOTE: Changing the value of attribute (PSXT1).units
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSXT1).units
- *** NOTE: Changing the value of attribute (PSYT1).units
+ *** NOTE: Changing the value of attribute (PSXT1).units
+ *** NOTE: Changing the value of attribute (PSYT1).units
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2098,17 +2117,17 @@ set var/outtype=garbage broiled
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis X2AX
- *** NOTE: Changing the value of attribute (z4ax).positive
+ *** NOTE: Changing the value of attribute (z4ax).positive
LISTing to file string4d.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: Changing the value of attribute (TIME7).units
+ *** NOTE: Changing the value of attribute (TIME7).units
+ *** NOTE: Changing the value of attribute (TIME7).time_origin
+ *** NOTE: Changing the value of attribute (TIME7).time_origin
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TIME
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
@@ -2121,10 +2140,10 @@ curl error details:
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+ *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
Using every 3th vector in the X direction
Using every 4th vector in the Y direction
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**TMAP ERR: non-existent or not on line
@@ -2176,7 +2195,7 @@ shade sst[t=@AVE,Z=@ave]
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
LISTing to file t3file.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2187,18 +2206,18 @@ shade sst[t=@AVE,Z=@ave]
LISTing to file subdir/0000_a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TAX
LISTing to file a.nc
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: cannot parse "units since date", date= "event"; leaving units string
+ *** NOTE: Not deleted: TAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: cannot parse "units since date", date= "event"; leaving units string
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TAX
- *** NOTE: Invalid I axis limits ignored: TEMP
+ *** NOTE: Invalid I axis limits ignored: TEMP
**ERROR: dimensions improperly specified: specified data is not a line
- its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
plot/i=100/k=1 temp[x=122.5W]
@@ -2245,10 +2264,10 @@ Replacing definition of axis XAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TIME9
- *** NOTE: grid used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GSQ1 used by data set coads_climatology
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TIME
@@ -2274,9 +2293,9 @@ cancel axis/stride COADSX
set axis/stride=2/offset=4 COADSX
**ERROR: invalid command: not a strided axis: COADSX
cancel axis/stride COADSX
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+ *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
LISTing to file d2.nc
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+ *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
**ERROR: invalid command: unknown axis: NORMAL
set axis/stride=2 NORMAL
PERMANENT data cleared from memory
@@ -2292,46 +2311,46 @@ set axis/stride=2 NORMAL
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file tripolar_missing_lon.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
-curl error details:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ *** NOTE: Axis has repeated values -- micro-adjusting TIME
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
+ *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+ *** NOTE: They will not be convertible:
+ *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+ *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
PERMANENT data cleared from memory
+curl error details:
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2454,8 +2473,8 @@ Replacing definition of axis TIME
LISTing to file b.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file 1a.dat
@@ -2511,31 +2530,31 @@ Replacing definition of grid GG
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
Replacing definition of axis XAX
Replacing definition of axis YAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
Replacing definition of axis ZAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
Replacing definition of axis TAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
Replacing definition of axis XAX
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2597,9 +2616,9 @@ Replacing definition of grid G1
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file test2.cdf
LISTing to file FL.cdf
LISTing to file FTLON.cdf
@@ -2621,47 +2640,47 @@ list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave]
disordered output coordinate value: 363 Axis: TCENTURY
list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
LISTing to file FI.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
@@ -2673,80 +2692,80 @@ list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSYT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSZT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
**ERROR: variable unknown or not in data set: IJKL
show grid ijkl
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
@@ -2770,8 +2789,8 @@ Replacing definition of axis TSEC
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis CAXIS
- *** NOTE: grid used by data set grads_bug_file
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GMY1 used by data set grads_bug_file
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2782,15 +2801,15 @@ Replacing definition of axis CAXIS
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TAX
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file xz.nc
@@ -2855,22 +2874,22 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute sst.history
+ *** NOTE: Changing the value of attribute sst.history
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
LISTing to file mypack.nc
- *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2915,8 +2934,11 @@ Re-defining viewport V8
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file nc4_deflate4.nc
- *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
- *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
+
+Bailing out of external function "tax_year":
+ Function not valid for modulo time axis
+ *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
+ *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
LISTing to file nc4_nodeflate3.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2927,13 +2949,13 @@ Re-defining viewport V8
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file nc4_inttemp_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_shuffle_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_set_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_deflate4_t1.nc
**TMAP ERR: syntax error in string
If ChunkSize is set for any dimension of var, must set for all its dimensions
@@ -2948,8 +2970,8 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: X10
+ *** NOTE: Axis is in use by grid G10X5
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2961,11 +2983,11 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of grid MYGRID
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX
- *** NOTE: Axis is already regular: MYX
+ *** NOTE: Axis reset to be regular (evenly-spaced): MYX
+ *** NOTE: Axis is already regular: MYX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
+ *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Use the GO command to name a file of FERRET commands to be executed.
@@ -2992,7 +3014,7 @@ Replacing definition of grid MYGRID
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: No active redirects to cancel
+ *** NOTE: No active redirects to cancel
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
@@ -3001,14 +3023,14 @@ Replacing definition of grid MYGRID
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: Axis is already regular: MYAXIS
+ *** NOTE: Axis is already regular: MYAXIS
**ERROR: variable unknown or not in data set: GARBAGE
show grid garbage
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: stderr is not redirected
+ *** NOTE: stderr is not redirected
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
@@ -3061,11 +3083,6 @@ Replacing definition of axis YAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
-
-Bailing out of external function "tax_year":
- Function not valid for modulo time axis
- *** NOTE: b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb [...]
- *** NOTE: exceeds expected length. Maximum characters: 2048
LISTing to file aa.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3093,11 +3110,11 @@ Replacing definition of axis YAX_DUP_AXNAMES
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3117,7 +3134,7 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis XAX
@@ -3133,20 +3150,20 @@ Replacing definition of axis TAXIS
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis XAX
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3208,10 +3225,10 @@ Replacing definition of axis TAXIS
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting TMIN
- *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting TMIN
+ *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis TNEW
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3288,34 +3305,32 @@ Replacing definition of grid G5DAY
Replacing definition of axis FAX4DAY
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
**ERROR: unknown data set: dset 3 unknown or is already an aggregate dataset
define data/agg windy = 1,2,3
- **ERROR: error defining aggregate dataset: Aggregate dataset not defined
-define data/agg windy = 1,2,3
- *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
- *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+ *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
+ *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
**ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
define data/agg windy = 1,2
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3326,8 +3341,8 @@ define data/agg windy = 1,2
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3352,7 +3367,7 @@ SET DAT/FORM=CDF ./z1.nc
TEMPORARY data cleared from memory
LISTing to file mytype.nc
LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
LISTing to file mytype.nc
LISTing to file mytype.nc
LISTing to file mytype.nc
@@ -3372,7 +3387,7 @@ SET DAT/FORM=CDF ./z1.nc
TEMPORARY data cleared from memory
LISTing to file mytype.nc
LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
LISTing to file mytype.nc
LISTing to file mytype.nc
LISTing to file mytype.nc
@@ -3388,7 +3403,7 @@ LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
LISTing to file mytype.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index 12
+ **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
define axis/t/units=days tax = tvar
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3468,8 +3483,8 @@ Replacing definition of axis AXI
Replacing definition of axis AXI_COARSE
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
- *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
+ *** NOTE: A dummy axis of subscripts will be used
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file sst_new.nc
@@ -3488,9 +3503,9 @@ Replacing definition of axis ZAX
Replacing definition of axis XIRREG
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
LISTing to file a.nc
LISTing to file a.nc
PERMANENT data cleared from memory
@@ -3500,8 +3515,8 @@ Replacing definition of axis XIRREG
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
**ERROR: command syntax: COLOR
/COLOR must have an argument for PLOT/OVERLAY
plot/i=1:100/over/COLOR 0.6*sin(i/7)
@@ -3511,9 +3526,9 @@ plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis ZAX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
**ERROR: unknown defining grid: G=NOEXIST
list b
**ERROR: command syntax: 45S
@@ -3525,6 +3540,9 @@ list e
**ERROR: illegal limits: X axis limits don't match variable def'n: A
Are you giving explicit limits when SET REGION would suffice ?
list f
+Replacing definition of axis X1
+Replacing definition of axis Y1
+Replacing definition of axis ZAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3537,7 +3555,7 @@ list f
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute a.ival
+ *** NOTE: Changing the value of attribute a.ival
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**TMAP ERR: non-existent or not on line
@@ -3557,8 +3575,8 @@ SET DAT/FORM=CDF snoopy.dat
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+ *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3597,8 +3615,8 @@ LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
shade b
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute v1.long_name
- *** NOTE: Changing the value of attribute v1.units
+ *** NOTE: Changing the value of attribute v1.long_name
+ *** NOTE: Changing the value of attribute v1.units
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
@@ -3618,9 +3636,9 @@ set var/name=psi myvar
set var/name=diff w
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
- *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
+ *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
+ *** NOTE: Substituting coordinate midpoints
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TAX
@@ -3650,12 +3668,12 @@ list tax_datestring (tt[L=3], tt, 5)
list tax_datestring (tt[L=3], "my_tax", "minutes")
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+ *** NOTE: Substituting coordinate midpoints
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: command syntax: must be a constant COS(1)
@@ -3696,17 +3714,17 @@ Replacing definition of axis TAX
Replacing definition of axis XAXIS
**ERROR: request exceeds memory setting: 2369 Mwords were requested.
load bigvar
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis LONGTIME
**ERROR: request exceeds memory setting: 4735 Mwords were requested.
load bigvar
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
- *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
LISTing to file aa.nc
LISTing to file bb.nc
LISTing to file a.nc
@@ -3747,6 +3765,12 @@ shade a
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-2)
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-3)
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file anew_global.nc
@@ -3761,9 +3785,10 @@ Replacing definition of axis X2
Replacing definition of axis Y2
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+Replacing definition of axis ZAX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
**ERROR: unknown defining grid: G=NOEXIST
list b
**ERROR: command syntax: 45S
@@ -3789,6 +3814,238 @@ poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ LISTing to file aa.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TIME
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: unknown data set: BAD_D
+stat/l=1/x=180/y=0 a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis YAX
+ LISTing to file a.nc
+ *** NOTE: Not deleted: XAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: YAX
+ *** NOTE: Axis is in use by grid GFORMAT
+Replacing definition of axis TREDEF
+ *** NOTE: grid GSI1 used by data set a
+ *** NOTE: Redefinition may alter apparent contents of data set
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: illegal format type - must be "GIF"
+ frame/format=hdf/file=a.hdf
+frame/format=hdf/file=a.hdf
+ **ERROR: invalid command: illegal format type - must be "GIF"
+ frame/file=a.png
+frame/file=a.png
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis FAXIS
+Replacing definition of axis EAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Could not compute Std Dev. Data too large or or not within 3 std of computed mean.
+ *** NOTE: Using linear levels instead.
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ TEMPORARY data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of grid GRID3D
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ *** NOTE: Saving E or F axis with time axis uses /RIGID in time
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+Replacing definition of axis TAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Changing the value of attribute foobar.some_text
+ *** NOTE: Changing the value of attribute foobar.some_text
+Replacing definition of grid GG
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+rm: cannot remove `WestCoastCarbon_9d9c_f562_77b5_5.nc': No such file or directory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+Replacing definition of axis FSEC
+ *** NOTE: grid GSI1 used by data set a
+ *** NOTE: Redefinition may alter apparent contents of data set
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: variable unknown or not in data set: B
+cancel var b,a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: xpos=a2
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: ypos=b
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: halign=c
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: valign=d
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+ **ERROR: command syntax: siz=f
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+annotate/nouser/ypos=0 "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: xpos=a2
+def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: ypos=b
+def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: hal=c
+def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: val=d
+def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"
+ **ERROR: command syntax: siz=f
+def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+def anno/nou/ypos=0 "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+def anno/nou/xpos=0/hal=1/val=0 "My Lab"
+ **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
+def anno/nou/user/xpos=0/ypos=0 "My Lab"
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis ZAX
+ LISTing to file layerz_test_data.txt
+ **ERROR: variable unknown or not in data set: (data set ok ?): noexist
+SET VAR/layerz=depth noexist
+ *** NOTE: Ambiguous coordinates on Z axis: TEMP6D-TEMPZ6D
+ **ERROR: invalid command: auxiliary variable DEPTH6D has a T axis not found on variable TEMP
+LIST/PREC=7 tempz6d_unmatch
+Replacing definition of axis XAX
+Replacing definition of axis ZAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments
+plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
+ **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
+plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
+ **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
+plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Units on axis "pfull1_1" are not recognized: hpa
+ *** NOTE: They will not be convertible:
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: unknown data set: noexist
+SHOW DATA noexist
+ **ERROR: unknown data set: 2
+SHOW DATA 2
+ **ERROR: unknown data set: noexist
+SHOW DATA/ATT noexist
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
**ERROR: command syntax: unknown region name: @w
set region/@w
PERMANENT data cleared from memory
@@ -3875,5 +4132,5 @@ vector/i=1:10/j=1:20/nolabel i/j
vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
Re-defining viewport LM6
Re-defining viewport UM6
- *** NOTE: Cannot create new windows when batch mode set
-Ended at Wed Oct 29 15:57:41 PDT 2014
+ *** NOTE: Cannot create new windows when batch mode set
+Ended at Tue Nov 17 09:28:13 PST 2015
diff --git a/bench/ansley_official.linux_log b/bench/ansley_official.linux_log
index eb01ab8..d0b862f 100644
--- a/bench/ansley_official.linux_log
+++ b/bench/ansley_official.linux_log
@@ -1,10 +1,10 @@
Procedure run_all to run all FERRET benchmarks
Running FERRET version /home/users/ansley/build/linux/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 53500930 Oct 29 15:34 /home/users/ansley/build/linux/FERRET/fer/ferret_c
+-rwxr-xr-x 1 ansley tmap 86078089 Nov 17 09:24 /home/users/ansley/build/linux/FERRET/fer/ferret_c
Using external functions from /home/users/ansley/build/linux/FERRET/external_functions/ext_func
Running the tests of external functions y
Benchmark run by ansley
-Note: ticket 2115 and a new test script for 2201
+Note: testing declaration of model str in match4.F as *(*)
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
FER_DAT=.
@@ -17,10 +17,10 @@ FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/linux/FERRET/external_functions/
FER_GO=. /home/users/tmap/ferret/linux/go /home/users/tmap/ferret/linux/examples /home/users/tmap/ferret/linux/contrib /home/users/tmap/ferret/tmap_go
FER_GRIDS=.
FER_LIBS=/home/users/tmap/ferret/linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
FER_PALETTE=. /home/users/tmap/ferret/linux/ppl
PWD=/home/users/ansley/build/linux/FERRET/bench
-Beginning at Wed Oct 29 15:55:55 PDT 2014
+PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/linux/ext_func/pylibs
+Beginning at Tue Nov 17 09:25:34 PST 2015
! BN500_ALL.JNL
! - run all the benchmark tests
! - ordered (more or less) from least to most complex
@@ -125,6 +125,7 @@ Beginning at Wed Oct 29 15:55:55 PDT 2014
! 11/06 *acm* New bn602_bug_fixes for version 6.02
* V610 *acm* 3/08 - add new MODE NLEVELS
* V685 *sh* 11/13 - added bn_vtree to test SHOW VAR/TREE
+* V698+ *sh* 06/15 - added bn_auxiliary
! Include this statement to compare the outupt of 6D Ferret with
! previous 4D benchmark logs.
@@ -301,10 +302,10 @@ SHOW DATA/FULL
name title I J K L M N
P my P variable 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999
on grid ABSTRACT with -1.E+34 for missing data
- X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1
+ X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1.E+08
Q Q 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999
on grid ABSTRACT with -1.E+34 for missing data
- X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1
+ X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1.E+08
/FORMAT = UNF
/SKIP = 2
@@ -422,7 +423,8 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -441,7 +443,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
SET MODE IGNORE_ERROR
SHOW MODES
MODE STATE ARGUMENT
@@ -455,7 +458,8 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -474,7 +478,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
CANCEL MODE IGNORE_ERROR
SHOW MODES
MODE STATE ARGUMENT
@@ -488,7 +493,8 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -507,7 +513,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
SHOW MODE STUPID
MODE STATE ARGUMENT
STUPID CANCELLED
@@ -1075,8 +1082,8 @@ say "demonstrate that these leading blanks:\
demonstrate that these leading blanks: really are preserved
! continuation prompts are ignored, too
-yes? say "demonstrate that these leading blanks:\
-...? really are preserved"
+say "demonstrate that these leading blanks:\
+ really are preserved"
demonstrate that these leading blanks: really are preserved
! weird little blank line inputs
@@ -1143,7 +1150,7 @@ message/continue here is: $1"some text" and some more stuff
here is: hello and some more stuff
message/cont here is a big $1 and $3&some text& ! default provided
- !-> message/cont here is a big hello and some text ! default provided
+ !-> message/cont here is a big hello and some text
here is a big hello and some text
message/cont $3 ! error - no default
@@ -1251,7 +1258,7 @@ go bn_dollar.sub ((x+y),(x-5)) ! ignore comma, get single arg
! V510 3/00
set mode ignore
message/continue "$1" ! final quote used to get mis-applied
- !-> message/continue "hello" ! final quote used to get mis-applied
+ !-> message/continue "hello"
hello
set mode/last ignore
go bn_dollar.sub \"hello\" ! quotations as part of argument
@@ -1320,7 +1327,7 @@ message/continue "2 squared + 2 squared =`2^2` + `2+2`"
2 squared + 2 squared =4 + 4
message/continue "50/0 =`50/0`" ! invalid result
- !-> message/continue "50/0 =bad" ! invalid result
+ !-> message/continue "50/0 =bad"
50/0 =bad
repeat/i=1:3 message/continue "I=`I`"
@@ -1348,7 +1355,7 @@ I=7
!cancel region/X ! removed - temporary experiment 3/00 *sh*
message/continue "2+2=``2+2``" ! double grave accents get condensed
- !-> message/continue "2+2=`2+2`" ! double grave accents get condensed
+ !-> message/continue "2+2=`2+2`"
2+2=`2+2`
message/continue A default substitution: $9"default string|2+2=`2+2`"
@@ -1368,7 +1375,7 @@ message/continue "1/300=`1/300,p=5`"
!-> message/continue "1/300=0.0033333"
1/300=0.0033333
message/continue "1/300=`1/300,p=-5`" ! decimal places
- !-> message/continue "1/300=0.00333" ! decimal places
+ !-> message/continue "1/300=0.00333"
1/300=0.00333
message/continue "1/300=`1/300 , precision=10`"
!-> message/continue "1/300=0.003333333333"
@@ -1592,13 +1599,24 @@ say `a,return=isize` ! full evaluation occurs
say `a[i=2:3],return=isize` ! full evaluation is bypassed
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ -DELETE J M: 3 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found A M: 10 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
!-> MESSAGE/CONTINUE 2
2
-say `a[i=100:200],return=isize` ! WRONG! because full evaluation is bypassed
+say `a[i=100:200],return=isize` ! correct starting with Ferret v694 (tkt 2213)
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- !-> MESSAGE/CONTINUE 101
-101
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval A C: 6 dset: 0 I: 100 200 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval (C01,V08 C: 8 dset: 0 I: 100 200 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found (C11,V08 M: 5 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 5
+5
set mode/last diagnostic
! deliberate errors
@@ -1963,6 +1981,19 @@ CORRECT:sym sub
---->CORRECT
---->CORRECT again
---->nested: all is well after multi-line IF
+CORRECT
+CORRECT
+LOOP=1
+more
+LOOP=2
+more
+LOOP=1
+LOOP=2
+semicolon group
+more
+semicolon group
+CORRECT
+WE SEE THIS CUZ OF IMPLIED CLOSE TO THE PREVIOUS
>>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<
---->... now inside of nested IF clause
---->CORRECT
@@ -1974,10 +2005,6 @@ IF yes THEN
say ---->... now inside of IF clause
---->... now inside of IF clause
-
-
-
-
GO bn_reset
cancel mode verify
GO bn_expressions
@@ -10448,18 +10475,18 @@ show symbols/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5PAE 32-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.18-407.el5PAE 32-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3-rc2 of Oct 6 2014 16:16:52 $"
+NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-SESSION_PID = "1266"
-DELTA_CPU = "5.03323"
-CLOCK_SECS = "7.649"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "15:56:03"
+SESSION_DATE = "17-Nov-15"
+SESSION_TIME = "09:25"
+SESSION_PID = "6311"
+DELTA_CPU = "7.78282"
+CLOCK_SECS = "11.89"
+CURRENT_DATE = "17-Nov-15"
+CURRENT_TIME = "09:25:46"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -10477,18 +10504,18 @@ show symbol/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5PAE 32-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.18-407.el5PAE 32-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3-rc2 of Oct 6 2014 16:16:52 $"
+NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-SESSION_PID = "1266"
+SESSION_DATE = "17-Nov-15"
+SESSION_TIME = "09:25"
+SESSION_PID = "6311"
DELTA_CPU = "0.001"
-CLOCK_SECS = "7.65"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "15:56:03"
+CLOCK_SECS = "11.891"
+CURRENT_DATE = "17-Nov-15"
+CURRENT_TIME = "09:25:46"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
S1 = "hello"
@@ -10498,9 +10525,9 @@ NUM = "3"
T$DOLLAR = "hi"
T_HELLO = "hi"
show symbol s*
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-SESSION_PID = "1266"
+SESSION_DATE = "17-Nov-15"
+SESSION_TIME = "09:25"
+SESSION_PID = "6311"
S1 = "hello"
S2 = ""hello""
S3 = "hello and goodbye"
@@ -10510,15 +10537,15 @@ S2 = ""hello""
! exercise CANCEL SYMBOL
cancel symbol s2
show symbol s*
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-SESSION_PID = "1266"
+SESSION_DATE = "17-Nov-15"
+SESSION_TIME = "09:25"
+SESSION_PID = "6311"
S1 = "hello"
S3 = "hello and goodbye"
show symbol S*
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-SESSION_PID = "1266"
+SESSION_DATE = "17-Nov-15"
+SESSION_TIME = "09:25"
+SESSION_PID = "6311"
S1 = "hello"
S3 = "hello and goodbye"
cancel symbol s2 ! already deleted
@@ -10552,9 +10579,9 @@ Q23456789012345678901234567XXXAAAAA = "6"
! show the upper left coordinate limits labels as symbols
plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
show symbol lab*
-LAB1 = "FERRET Ver. 6.93"
+LAB1 = "FERRET (beta) Ver.6.951"
LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "29-OCT-2014 15:56:03"
+LAB3 = "17-NOV-2015 09:25:46"
LABX = "X"
LAB4 = "Y : 10"
LABNUM_Y = "4"
@@ -10649,18 +10676,18 @@ show symbols/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5PAE 32-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.18-407.el5PAE 32-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3-rc2 of Oct 6 2014 16:16:52 $"
+NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-SESSION_PID = "1266"
-DELTA_CPU = "0.010998"
-CLOCK_SECS = "7.661"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "15:56:03"
+SESSION_DATE = "17-Nov-15"
+SESSION_TIME = "09:25"
+SESSION_PID = "6311"
+DELTA_CPU = "0.014998"
+CLOCK_SECS = "11.905"
+CURRENT_DATE = "17-Nov-15"
+CURRENT_TIME = "09:25:46"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -14116,7 +14143,7 @@ Dynamic axes:
! calendar axes
list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave] ! 6-day ave
- !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave] ! 6-day ave
+ !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]
VARIABLE : TEMPERATURE (deg. C)
regrid: 144 hour on T at AVE
FILENAME : gtsa056_1.cdf
@@ -14142,7 +14169,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
TIME : 15-JAN-1982 00:00
27.7767
list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`] ! pseudo-var
- !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48] ! pseudo-var
+ !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
VARIABLE : T
axis (AX003)
SUBSET : 3 points (TIME)
@@ -19620,7 +19647,7 @@ CAN MODE VERIFY
3> 1826.97 730.485 1461.727
4> 2557.455 730.485 2192.213
5> 3287.94 730.485 2922.698
- 6> 4018.425 730.485 3653.182
+ 6> 4018.425 730.485 3653.183
VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
DATA SET : COAD
FILENAME : coads_clim.des
@@ -20066,27 +20093,27 @@ GO bn_negative_t.sub tvar ave ! like var and din
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ave] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ave]
VARIABLE : T[GT=TAX]
T : -5 to 5 (averaged)
0.000000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ave] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ave]
VARIABLE : T[GT=TAX]
T : -8 to -5 (averaged)
-6.66667
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ave] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ave]
VARIABLE : T[GT=TAX]
T : -9 to 3 (averaged)
-3.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ave] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ave]
VARIABLE : T[GT=TAX]
T : -9 to -3 (averaged)
-6.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ave] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ave]
VARIABLE : T[GT=TAX]
T : -11 to 11 (averaged)
0.000000
@@ -20102,7 +20129,7 @@ GO bn_negative_t.sub tvar iin
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at iin] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 5 points (T)
@@ -20112,14 +20139,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -8.0000
4 / 8: 0.0000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at iin] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 2 points (T)
-8 / 2: -8.0000
-6 / 3: -20.0000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at iin] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 6 points (T)
@@ -20130,7 +20157,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -40.0000
2 / 7: -36.0000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at iin] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 3 points (T)
@@ -20138,7 +20165,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -28.0000
-4 / 4: -36.0000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@iin] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 11 points (T)
@@ -20165,27 +20192,27 @@ GO bn_negative_t.sub tvar sum
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sum] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sum]
VARIABLE : T[GT=TAX]
T : -5 to 5 (summed)
0.000000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sum] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sum]
VARIABLE : T[GT=TAX]
T : -8 to -5 (summed)
-14.0000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sum] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sum]
VARIABLE : T[GT=TAX]
T : -9 to 3 (summed)
-18.0000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sum] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sum]
VARIABLE : T[GT=TAX]
T : -9 to -3 (summed)
-18.0000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sum] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sum]
VARIABLE : T[GT=TAX]
T : -11 to 11 (summed)
0.000000
@@ -20201,7 +20228,7 @@ GO bn_negative_t.sub tvar rsu
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at rsu] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 5 points (T)
@@ -20211,14 +20238,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -4.00000
4 / 8: 0.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at rsu] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 2 points (T)
-8 / 2: -8.0000
-6 / 3: -14.0000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at rsu] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 6 points (T)
@@ -20229,7 +20256,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -20.0000
2 / 7: -18.0000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at rsu] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 3 points (T)
@@ -20237,7 +20264,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -14.0000
-4 / 4: -18.0000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@rsu] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 11 points (T)
@@ -20264,7 +20291,7 @@ GO bn_negative_t.sub tvar shf
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at shf] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 5 points (T)
@@ -20274,14 +20301,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 4.00000
4 / 8: 6.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at shf] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 2 points (T)
-8 / 2: -6.00000
-6 / 3: -4.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at shf] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 6 points (T)
@@ -20292,7 +20319,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 2.00000
2 / 7: 4.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at shf] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 3 points (T)
@@ -20300,7 +20327,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -4.00000
-4 / 4: -2.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@shf] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 11 points (T)
@@ -20327,27 +20354,27 @@ GO bn_negative_t.sub tvar min ! like @max
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at min] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at min]
VARIABLE : T[GT=TAX]
T : -5 to 5 (minimum)
-4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at min] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at min]
VARIABLE : T[GT=TAX]
T : -8 to -5 (minimum)
-8.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at min] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at min]
VARIABLE : T[GT=TAX]
T : -9 to 3 (minimum)
-8.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at min] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at min]
VARIABLE : T[GT=TAX]
T : -9 to -3 (minimum)
-8.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@min] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@min]
VARIABLE : T[GT=TAX]
T : -11 to 11 (minimum)
-10.0000
@@ -20363,7 +20390,7 @@ GO bn_negative_t.sub tvar ddf
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddf] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 5 points (T)
@@ -20373,14 +20400,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 1.00000
4 / 8: 1.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddf] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 2 points (T)
-8 / 2: 1.00000
-6 / 3: 1.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddf] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 6 points (T)
@@ -20391,7 +20418,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 1.00000
2 / 7: 1.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddf] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 3 points (T)
@@ -20399,7 +20426,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: 1.00000
-4 / 4: 1.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddf] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 11 points (T)
@@ -20426,7 +20453,7 @@ GO bn_negative_t.sub tvar ddb ! @ddc like ddf and ddb
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddb] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 5 points (T)
@@ -20436,14 +20463,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 1.00000
4 / 8: 1.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddb] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 2 points (T)
-8 / 2: 1.00000
-6 / 3: 1.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddb] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 6 points (T)
@@ -20454,7 +20481,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 1.00000
2 / 7: 1.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddb] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 3 points (T)
@@ -20462,7 +20489,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: 1.00000
-4 / 4: 1.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddb] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 11 points (T)
@@ -20489,7 +20516,7 @@ GO bn_negative_t.sub tvar sbx ! like sbn, swl, shn, spz
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sbx] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 5 points (T)
@@ -20499,14 +20526,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.00000
4 / 8: 4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sbx] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sbx] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 6 points (T)
@@ -20517,7 +20544,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.00000
2 / 7: 2.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sbx] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 3 points (T)
@@ -20525,7 +20552,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -6.00000
-4 / 4: -4.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sbx] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 11 points (T)
@@ -20552,27 +20579,27 @@ GO bn_negative_t.sub tvar loc:-2.2
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at loc:-2.2] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -5 to 5 (location of -2.2)
-2.20000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at loc:-2.2] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -8 to -5 (location of -2.2)
....
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at loc:-2.2] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -9 to 3 (location of -2.2)
-2.20000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at loc:-2.2] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -9 to -3 (location of -2.2)
....
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@loc:-2.2] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -11 to 11 (location of -2.2)
-2.20000
@@ -20588,7 +20615,7 @@ GO bn_negative_t.sub tvar weq:-2.2
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at weq:-2.2] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 5 points (T)
@@ -20598,14 +20625,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: ....
4 / 8: ....
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at weq:-2.2] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 2 points (T)
-8 / 2:....
-6 / 3:....
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at weq:-2.2] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 6 points (T)
@@ -20616,7 +20643,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: ....
2 / 7: ....
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at weq:-2.2] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 3 points (T)
@@ -20624,7 +20651,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3:....
-4 / 4:....
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@weq:-2.2] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 11 points (T)
@@ -20667,27 +20694,27 @@ GO bn_negative_t.sub tgap ngd ! like @nbd
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at ngd] ! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -5 to 5 (number of valid)
3.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at ngd] ! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -8 to -5 (number of valid)
1.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at ngd] ! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -9 to 3 (number of valid)
3.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at ngd] ! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -9 to -3 (number of valid)
2.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tgap[l=@ngd] ! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -11 to 11 (number of valid)
5.00000
@@ -20703,7 +20730,7 @@ GO bn_negative_t.sub tgap fav ! like fln (fnr not implemented)
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at fav] ! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 5 points (T)
@@ -20713,14 +20740,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.00000
4 / 8: 4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at fav] ! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at fav] ! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 6 points (T)
@@ -20731,7 +20758,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.00000
2 / 7: 2.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at fav] ! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 3 points (T)
@@ -20739,7 +20766,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -6.00000
-4 / 4: -4.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tgap[l=@fav] ! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 11 points (T)
@@ -20788,7 +20815,7 @@ GO bn_negative_t.sub blin nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST blin[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST blin[t=-5:5 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 5 points (T)
-4 / 4: -4.00000
@@ -20797,13 +20824,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.00000
4 / 8: 4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST blin[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST blin[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST blin[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST blin[l=2:7 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 6 points (T)
-8 / 2: -8.00000
@@ -20813,14 +20840,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.00000
2 / 7: 2.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST blin[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST blin[l=2:4 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 3 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
-4 / 4: -4.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST blin[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST blin[l=@nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 11 points (T)
-10 / 1: ....
@@ -20846,7 +20873,7 @@ GO bn_negative_t.sub bave nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST bave[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST bave[t=-5:5 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 5 points (T)
-4 / 4: -4.00000
@@ -20855,13 +20882,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.00000
4 / 8: 4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST bave[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST bave[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST bave[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST bave[l=2:7 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 6 points (T)
-8 / 2: -8.00000
@@ -20871,14 +20898,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.00000
2 / 7: 2.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST bave[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST bave[l=2:4 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 3 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
-4 / 4: -4.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST bave[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST bave[l=@nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 11 points (T)
-10 / 1: -9.00000
@@ -20904,7 +20931,7 @@ GO bn_negative_t.sub basn nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST basn[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST basn[t=-5:5 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 5 points (T)
-4 / 4: -6.00000
@@ -20913,13 +20940,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -3.00000
4 / 8: -2.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST basn[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST basn[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -7.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST basn[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST basn[l=2:7 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 6 points (T)
-8 / 2: -8.00000
@@ -20929,14 +20956,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -4.00000
2 / 7: -3.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST basn[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST basn[l=2:4 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 3 points (T)
-8 / 2: -8.00000
-6 / 3: -7.00000
-4 / 4: -6.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST basn[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST basn[l=@nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 11 points (T)
-10 / 1: -9.00000
@@ -21077,7 +21104,7 @@ CANCEL REGION
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21087,7 +21114,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21101,7 +21128,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21111,7 +21138,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21125,7 +21152,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21139,7 +21166,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21152,7 +21179,7 @@ SET REGION/X=2:4
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21160,7 +21187,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -21170,7 +21197,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21178,7 +21205,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -21188,7 +21215,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -21198,7 +21225,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21209,7 +21236,7 @@ SET REGION/X=1:5
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21219,7 +21246,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21233,7 +21260,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21243,7 +21270,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21257,7 +21284,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21271,7 +21298,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21284,7 +21311,7 @@ SET REGION/X=1.5:4.5
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21292,7 +21319,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21304,7 +21331,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.00000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21312,7 +21339,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21324,7 +21351,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21336,7 +21363,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21347,7 +21374,7 @@ SET REGION/X=0:6
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21357,7 +21384,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21371,7 +21398,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21381,7 +21408,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21395,7 +21422,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21409,7 +21436,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21424,7 +21451,7 @@ CANCEL REGION
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21434,7 +21461,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21448,7 +21475,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21458,7 +21485,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21472,7 +21499,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21486,7 +21513,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21499,7 +21526,7 @@ SET REGION/Y=2:4
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21507,7 +21534,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21517,7 +21544,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21525,7 +21552,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21535,7 +21562,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21545,7 +21572,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21556,7 +21583,7 @@ SET REGION/Y=1:5
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21566,7 +21593,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21580,7 +21607,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21590,7 +21617,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21604,7 +21631,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21618,7 +21645,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21631,7 +21658,7 @@ SET REGION/Y=1.5:4.5
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21639,7 +21666,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21651,7 +21678,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.00000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21659,7 +21686,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21671,7 +21698,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21683,7 +21710,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21694,7 +21721,7 @@ SET REGION/Y=0:6
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21704,7 +21731,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21718,7 +21745,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21728,7 +21755,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21742,7 +21769,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21756,7 +21783,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21771,7 +21798,7 @@ CANCEL REGION
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21781,7 +21808,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21795,7 +21822,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21805,7 +21832,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21819,7 +21846,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21833,7 +21860,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21846,7 +21873,7 @@ SET REGION/Z=2:4
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21854,7 +21881,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21864,7 +21891,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21872,7 +21899,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21882,7 +21909,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21892,7 +21919,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21903,7 +21930,7 @@ SET REGION/Z=1:5
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21913,7 +21940,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21927,7 +21954,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21937,7 +21964,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21951,7 +21978,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21965,7 +21992,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21978,7 +22005,7 @@ SET REGION/Z=1.5:4.5
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21986,7 +22013,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -21998,7 +22025,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.00000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -22006,7 +22033,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -22018,7 +22045,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -22030,7 +22057,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -22041,7 +22068,7 @@ SET REGION/Z=0:6
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -22051,7 +22078,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -22065,7 +22092,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -22075,7 +22102,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -22089,7 +22116,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -22103,7 +22130,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -22118,7 +22145,7 @@ CANCEL REGION
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22128,7 +22155,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22142,7 +22169,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22152,7 +22179,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22166,7 +22193,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22180,7 +22207,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22193,7 +22220,7 @@ SET REGION/T=2:4
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22201,7 +22228,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -22211,7 +22238,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22219,7 +22246,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -22229,7 +22256,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -22239,7 +22266,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22250,7 +22277,7 @@ SET REGION/T=1:5
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22260,7 +22287,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22274,7 +22301,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22284,7 +22311,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22298,7 +22325,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22312,7 +22339,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22325,7 +22352,7 @@ SET REGION/T=1.5:4.5
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22333,7 +22360,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22345,7 +22372,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.00000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22353,7 +22380,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22365,7 +22392,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22377,7 +22404,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22388,7 +22415,7 @@ SET REGION/T=0:6
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22398,7 +22425,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22412,7 +22439,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22422,7 +22449,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22436,7 +22463,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22450,7 +22477,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -23980,7 +24007,33 @@ list 'X' ! Now the proper syntax
19 / 19: 0.578440
20 / 20: 0.656987
list i ! Deliberate error
-list 'i' ! Deliberate error
+
+! v694 No longer an error: See ticket 2050
+list 'i' !
+ VARIABLE : SIN(4+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 20 points (X)
+ 1 / 1: -0.818277
+ 2 / 2: -0.871576
+ 3 / 3: -0.916166
+ 4 / 4: -0.951602
+ 5 / 5: -0.977530
+ 6 / 6: -0.993691
+ 7 / 7: -0.999923
+ 8 / 8: -0.996165
+ 9 / 9: -0.982453
+ 10 / 10: -0.958924
+ 11 / 11: -0.925815
+ 12 / 12: -0.883455
+ 13 / 13: -0.832267
+ 14 / 14: -0.772764
+ 15 / 15: -0.705540
+ 16 / 16: -0.631267
+ 17 / 17: -0.550686
+ 18 / 18: -0.464602
+ 19 / 19: -0.373877
+ 20 / 20: -0.279415
+
list 'I' ! Now the proper syntax
VARIABLE : SIN(4+I/10)
FILENAME : weird_name1.cdf
@@ -25630,7 +25683,7 @@ GO err491_spawn_quotes.jnl
! this should be a valid command
SPAWN "date"
-Wed Oct 29 15:56:10 PDT 2014
+Tue Nov 17 09:25:57 PST 2015
GO bn_reset
cancel mode verify
@@ -30850,9 +30903,15 @@ say `a,return=isize` ! no evaluation of a required -- just context
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 97 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
!-> MESSAGE/CONTINUE 10
10
list/nohead a ! evaluate it now
+ -DELETE I M: 97 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -30872,6 +30931,7 @@ list/nohead a ! evaluate it now
let a = XSEQUENCE(j[j=1:5])
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE A M: 98 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE A M: 99 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE I M: 97 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE SST5SBX M: 91 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -32499,7 +32559,7 @@ list xy_laplace_gridded
19.47N / 19: .... .... .... .... 117.831 207.449 172.925 .... .... ....
18.95N / 18: .... .... .... 137.758 107.307 98.003 .... .... .... ....
18.42N / 17: .... .... .... 161.079 156.071 7.072 16.239 .... .... ....
- 17.89N / 16: .... .... .... 179.862 189.128 81.665 .... .... .... ....
+ 17.9N / 16: .... .... .... 179.862 189.128 81.665 .... .... .... ....
17.37N / 15: .... .... .... 165.097 200.741 145.418 .... .... .... ....
16.84N / 14: .... .... .... 128.322 183.027 168.029 182.582 .... .... ....
16.32N / 13: .... .... 76.347 92.413 158.520 190.506 197.367 .... .... ....
@@ -34116,8 +34176,17 @@ SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
Returns data sampled according to L indices which may vary in IJK
L_INDICES: ordered indices
DAT_TO_SAMPLE: data to sample using L indices
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+ Returns data sampled by interpolating to a set of times in F direction
+ DAT_TO_SAMPLE: data to sample at set of times in F
+ YR: Year(s) yyyy
+ MO: Month(s), integer mm
+ DAY: Day(s) of month dd
+ HR: Hour(s) hh
+ MIN: Minute(s) mm
+ SEC: Second(s) ss
SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
- Returns data sampled by interpolating to a set of times
+ Returns data sampled by interpolating to a set of times in T direction
DAT_TO_SAMPLE: data to sample at set of times
YR: Year(s) yyyy
MO: Month(s), integer mm
@@ -34182,6 +34251,14 @@ SAMPLE_FAST_I(V,Indices)
Fast 1D sample variable using set of indices
V: Variable to sample
Indices: List of indices at which to sample
+SAMPLE_FAST_I_STR(S,Indices)
+ Fast 1D sample string variable using set of indices
+ S: String Variable to sample (STRING)
+ Indices: List of indices at which to sample
+SAMPLE_FAST_I(V,Indices)
+ Fast 1D sample variable using set of indices
+ V: Variable to sample
+ Indices: List of indices at which to sample
go bench_sorti.jnl
@@ -34781,9 +34858,9 @@ list/l=1:2 eofxyfcn
1N / 46: -0.308620 -0.280936 -0.291017
1S / 45: -0.271470 -0.497559 -0.595639
---- L:2 T: 2
- 3N / 47: -0.052492 -0.002775 -0.124133
- 1N / 46: 0.064590 0.057180 -0.069549
- 1S / 45: 0.121296 0.039745 -0.034207
+ 3N / 47: 0.052492 0.002775 0.124133
+ 1N / 46: -0.064590 -0.057180 0.069549
+ 1S / 45: -0.121296 -0.039745 0.034207
LET eofstat = eofsvd_stat(sst[X=27w:23w,Y=1S:3N])
list/i=1:3/j=1:3 eofstat
@@ -34803,9 +34880,9 @@ list/i=1:2 eoftime
SUBSET : 2 by 3 points (X-TIME)
1 2
1 2
- 16-JAN / 1: 1.17837 -0.78194
- 15-FEB / 2: 0.08800 1.41147
- 17-MAR / 3: -1.26637 -0.62953
+ 16-JAN / 1: 1.17837 0.78194
+ 15-FEB / 2: 0.08800 -1.41147
+ 17-MAR / 3: -1.26637 0.62953
exit/script
@@ -35297,6 +35374,10 @@ CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
lat_in: Source grid latitudes (2-D) (degrees)
grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
radius: Source points falling within radius are included in mapping to destination point (degrees)
+CURV_TO_RECT_FSU(V,mapping)
+ Alt func to Apply mapping to regrid from curvilinear to rectangular grid
+ V: Variable to regrid, on curvilinear grid V(x,y,z,t)
+ mapping: mapping computed by curv_to_rect_MAP
use tripolar_subset.nc
shade ht, geolon_vert_t, geolat_vert_t
@@ -35385,12 +35466,12 @@ list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
Column 1: TAX_MONTH(T[GT=TEMP],TEMP)
Column 2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
(C001,V001) (C001,V009)
-10-NOV-1982 16 / 15: 11.0000 0.860274
-16-NOV-1982 18 / 16: 11.0000 0.876712
-22-NOV-1982 20 / 17: 11.0000 0.893151
-28-NOV-1982 22 / 18: 11.0000 0.909589
+10-NOV-1982 16 / 15: 11.0000 0.862100
+16-NOV-1982 18 / 16: 11.0000 0.878767
+22-NOV-1982 20 / 17: 11.0000 0.895434
+28-NOV-1982 22 / 18: 11.0000 0.912100
05-DEC-1982 00 / 19: 12.0000 0.928767
-11-DEC-1982 02 / 20: 12.0000 0.945205
+11-DEC-1982 02 / 20: 12.0000 0.945434
list/L=15:20 tax_year(t[gt=temp],temp)
VARIABLE : TAX_YEAR(T[GT=TEMP],TEMP)
FILENAME : gt4d011.cdf
@@ -36640,6 +36721,8 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "fri
list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
1 / 1:"now, goodbye, my friend" "now, hello, friend"
2 / 2:"then, goodbye, my friend""then, hello, friend"
+
+SET MODE IGNORE
list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
1 / 1:........
2 / 2:........
@@ -36654,18 +36737,11 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "g
2 / 2:........
! numerical operators applied to strings
+
list/nohead "b" - {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" * {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" / {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" ^ {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead {"a","b"} + 1
1 / 1:....
2 / 2:....
@@ -36676,18 +36752,14 @@ list/nohead 1 - {"a","b"}
1 / 1:....
2 / 2:....
list/nohead SIN({"a","b","c"})
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
list/nohead MAX("a",{"a","b","c"})
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
list/nohead MAX(1,{"a","b","c"})
1 / 1:....
2 / 2:....
3 / 3:....
+CANCEL MODE IGNORE
+
! transformations applied to strings
let a = {"a","b","c","d"}
list a[i=@shf]
@@ -36982,13 +37054,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1: "one" ... 1.10000 -24.0000 130.000 " " 10.000 "word 1" " " ....
-2 / 2: "two" ... 2.20000 24.0000 -130.000 "2S" .... "word 2" " " ....
-3 / 3: "three" ... 3.30000 24.0000 130.000 "3N" 0.030 " wd 3 " " " ....
-4 / 4: " " ... .... .... .... " " .... " " " " ....
-5 / 5: "five" ... 4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa" 77.0000
-6 / 6: "extra line"... .... .... .... " " .... " " " " ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: "one" .... 1.10000 -24.0000 130.000 " " 10.000 "word 1" " " ....
+2 / 2: "two" .... 2.20000 24.0000 -130.000 "2S" .... "word 2" " " ....
+3 / 3: "three" .... 3.30000 24.0000 130.000 "3N" 0.030 " wd 3 " " " ....
+4 / 4: " " .... .... .... .... " " .... " " " " ....
+5 / 5: "five" .... 4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa" 77.0000
+6 / 6: "extra line" .... .... .... .... " " .... " " " " ....
! insist that all columns be treated as string
file/format=delim/skip=1/type=text bn_delimited_read_1.dat
@@ -37056,13 +37128,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1:...... 1.10000 .... .... .... 10.000...... ....
-2 / 2:...... 2.20000 .... .... .... .......... ....
-3 / 3:...... 3.30000 24.0000 130.000 .... 0.030...... ....
-4 / 4:...... .... .... .... .... .......... ....
-5 / 5:...... 4.40000 -24.0000 -130.000 91.0000 -400.000...... 77.0000
-6 / 6:...... .... .... .... .... .......... ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: .... .... 1.10000 .... .... .... 10.000 .... .... ....
+2 / 2: .... .... 2.20000 .... .... .... .... .... .... ....
+3 / 3: .... .... 3.30000 24.0000 130.000 .... 0.030 .... .... ....
+4 / 4: .... .... .... .... .... .... .... .... .... ....
+5 / 5: .... .... 4.40000 -24.0000 -130.000 91.0000 -400.000 .... .... 77.0000
+6 / 6: .... .... .... .... .... .... .... .... .... ....
! insist that all columns be treated as latitude
file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
@@ -37079,13 +37151,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8 is V8 (degrees_north)(Latitude)
Column 9: V9 is V9 (degrees_north)(Latitude)
Column 10: V10 is V10 (degrees_north)(Latitude)
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1:...... 1.10000 -24.0000 .... .... 10.000...... ....
-2 / 2:...... 2.20000 24.0000 .... -2.0000 .......... ....
-3 / 3:...... 3.30000 24.0000 130.000 3.0000 0.030...... ....
-4 / 4:...... .... .... .... .... .......... ....
-5 / 5:...... 4.40000 -24.0000 -130.000 91.0000 -400.000...... 77.0000
-6 / 6:...... .... .... .... .... .......... ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: .... .... 1.10000 -24.0000 .... .... 10.000 .... .... ....
+2 / 2: .... .... 2.20000 24.0000 .... -2.0000 .... .... .... ....
+3 / 3: .... .... 3.30000 24.0000 130.000 3.0000 0.030 .... .... ....
+4 / 4: .... .... .... .... .... .... .... .... .... ....
+5 / 5: .... .... 4.40000 -24.0000 -130.000 91.0000 -400.000 .... .... 77.0000
+6 / 6: .... .... .... .... .... .... .... .... .... ....
! read only the first line of the file
spawn head -1 bn_delimited_read_1.dat
@@ -37107,8 +37179,8 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-I / *: "col1" "col2" "col3" "col4" "col5" " "... " " " "....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+I / *: "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
list c1,c2,c3,c4,c5
DATA SET: ./bn_delimited_read_1.dat
@@ -37226,11 +37298,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
Column 6: V6 is V6 (days)(Julian days since 1-Jan-1900)
Column 7: V7 is V7 (days)(Julian days since 1-Jan-1900)
Column 8: V8 is V8 (days)(Julian days since 1-Jan-1900)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1: 36493.0 36218.0...... 36493.0 36218.0......
-2 / 2: 36494.0 36219.0...... 36494.0 36219.0......
-3 / 3: .... .......... 36495.0 36220.0......
-4 / 4: 36496.0 36221.0...... 36496.0 36221.0......
+ V1 V2 V3 V4 V5 V6 V7 V8
+1 / 1: 36493.0 36218.0 .... .... 36493.0 36218.0 .... ....
+2 / 2: 36494.0 36219.0 .... .... 36494.0 36219.0 .... ....
+3 / 3: .... .... .... .... 36495.0 36220.0 .... ....
+4 / 4: 36496.0 36221.0 .... .... 36496.0 36221.0 .... ....
show data 2
currently SET data sets:
2> ./bn_delimited_read_date_time.dat (default)
@@ -37265,11 +37337,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
Column 6: V6 is V6 (hours)(Time of day)
Column 7: V7 is V7 (hours)(Time of day)
Column 8: V8 is V8 (hours)(Time of day)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1:...... 12.0000 13.7601...... 12.0000 13.7601
-2 / 2:...... 1.0037 14.7601...... 1.0037 14.7601
-3 / 3:...... .... .......... 2.0000 15.7500
-4 / 4:...... 3.0000 16.7601...... 3.0000 16.7601
+ V1 V2 V3 V4 V5 V6 V7 V8
+1 / 1: .... .... 12.0000 13.7601 .... .... 12.0000 13.7601
+2 / 2: .... .... 1.0037 14.7601 .... .... 1.0037 14.7601
+3 / 3: .... .... .... .... .... .... 2.0000 15.7500
+4 / 4: .... .... 3.0000 16.7601 .... .... 3.0000 16.7601
show data 2
currently SET data sets:
2> ./bn_delimited_read_date_time.dat (default)
@@ -40042,7 +40114,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
! test modulo string arrays
list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
- !-> list vreg_strings[i=5:7] ! via IS_SUBSPAN_FILL
+ !-> list vreg_strings[i=5:7]
VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 3 points (X)
@@ -40050,7 +40122,7 @@ list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
46 / 6:"a6"
93.5 / 7:""
list $1_strings[i=1013:1024] ! via IS_MODULO
- !-> list vreg_strings[i=1013:1024] ! via IS_MODULO
+ !-> list vreg_strings[i=1013:1024]
VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 12 points (X)
@@ -40571,7 +40643,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
! test modulo string arrays
list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
- !-> list virr_strings[i=5:7] ! via IS_SUBSPAN_FILL
+ !-> list virr_strings[i=5:7]
VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 3 points (X)
@@ -40579,7 +40651,7 @@ list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
46 / 6:"a6"
93.5 / 7:""
list $1_strings[i=1013:1024] ! via IS_MODULO
- !-> list virr_strings[i=1013:1024] ! via IS_MODULO
+ !-> list virr_strings[i=1013:1024]
VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 12 points (X)
@@ -40737,7 +40809,8 @@ show modes
LATIT_LABEL SET -4
DEPTH_LABEL SET -4
CALENDAR SET months
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -40756,7 +40829,8 @@ show modes
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
contour/i=1:10/j=1:10 i/j
! restore the labels, logo still gone
@@ -45120,7 +45194,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
nulrgd BIGVAR M: 74 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE BIGVAR M:146 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- regrid A M:136 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ regrid A M:139 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
VARIABLE : BIGVAR[I=1:40:5]
regrid: 2 delta on Y
@@ -45139,7 +45213,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
cancel mem/all
-DELETE BIGVAR M: 74 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M:136 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M:139 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE A M:146 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE BIGVAR M:147 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE A M:151 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
@@ -47540,7 +47614,7 @@ list/form=tab aa
VARIABLE : (X[GX=XAX] + Y[GY=YAX])/100
BAD FLAG : -1.E+34
SUBSET : 6 by 9 points (LONGITUDE-LATITUDE)
- 100E 100E 100.1E 100.2E 100.2E 100.3E
+ 100E 100.E 100.1E 100.2E 100.2E 100.3E
0.11N 1.0011 1.0016 1.0021 1.0026 1.0031 1.0036
0.128N 1.00128 1.00178 1.00228 1.00278 1.00328 1.00378
0.146N 1.00146 1.00196 1.00246 1.00296 1.00346 1.00396
@@ -48033,7 +48107,7 @@ show data/full
NCEP Ocean Analysis
name title I J K L M N
TEMP temperature 1:1 1:1 1:19 1:1 ... ...
- degree_Celsius on grid GGH1 with 1.E-34 & NaN for missing data
+ degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
X=139.8E:140.8E Y=0.5S:0.5N Z=0:375
time range: FEB-1980
@@ -48308,11 +48382,11 @@ ppl list labels
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET Ver. 6.93
+ LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET (beta) Ver.6.951
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
LAB 2 8.000E+00 7.100E+00 0.060 0 SYSTEM @ASNOAA/PMEL TMAP
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS29-OCT-2014 15:56:43
+ LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS17-NOV-2015 09:26:42
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
LAB 4 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLONGITUDE : 179E
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
@@ -48941,9 +49015,9 @@ GO err580_irreg_bounds.jnl
! the bounds seem to be ignored; axis is seen as regular.
! Bug 1160 reported by Andrew.
-yes? def ax/t/edge time = {0,1,3}
-yes? let a = t[gt=time]
-yes? show grid/t a
+def ax/t/edge time = {0,1,3}
+let a = t[gt=time]
+show grid/t a
GRID (G011)
name axis # pts start end
normal X
@@ -48957,17 +49031,17 @@ yes? show grid/t a
1> 0.5 1 0
2> 2 2 1
-yes? save/clob/file=a.nc a
+save/clob/file=a.nc a
sp echo "err580_irreg_bounds.jnl --- " >> all_ncdump.out
-yes? sp ncdump a.nc >> all_ncdump.out
+sp ncdump a.nc >> all_ncdump.out
can data/all
can var/all
can mem
! T axis was marked as regular
-yes? use a.nc
-yes? show grid/t a
+use a.nc
+show grid/t a
GRID GSI1
name axis # pts start end
normal X
@@ -49589,7 +49663,7 @@ GO bn_long_revision_num.jnl
! ferret version
sh sym FERRET_VERSION
-FERRET_VERSION = "6.93"
+FERRET_VERSION = "6.951"
! history attribute
let a = 12
@@ -49607,7 +49681,7 @@ LAB1 = "X : 0.5 to 314.5"
! show commands without an argument, lists version number at the top
sho command
- Commands in Program FERRET version6.93:
+ Commands in Program FERRET (beta) version6.951:
SET
SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE
SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
@@ -49619,7 +49693,7 @@ sho command
/TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
SET MODE/LAST
SET MOVI/FILE/COMPRESS/LASER/START
- SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/SIGMA
+ SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/LAYERZ
/CURVILIN
SET GRID/SAVE/RESTORE
SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
@@ -49638,7 +49712,7 @@ sho command
/HIDDEN
SHOW MODE/ALL
SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
/CURVILIN
SHOW COMMANDS/ALL
SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -49662,7 +49736,7 @@ sho command
CANCEL MODE
CANCEL MOVIE/ALL
CANCEL VIEWPORT
- CANCEL VARIABLE/ALL/DATASET/SIGMA/CURVILIN
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
CANCEL GRID
CANCEL ATTRIBUT/OUTPUT/DATA
@@ -49679,11 +49753,11 @@ sho command
/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS/CLOBBER
/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT/XCHUNK
/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN/OUTTYPE
- /CURVILIN/SIGMA
+ /CURVILIN/LAYERZ
PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/VS/SYMBOL
/NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE/NOAXES/STEP
/DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG/GRATICUL/NOKEY
- /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING
+ /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
GO/HELP
HELP
LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
@@ -49699,7 +49773,8 @@ sho command
DEFINE SYMBOL
DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
EXIT/COMMAND/LOOP/SCRIPT/PROMPT/PROGRAM/CYCLE/TOPYTHON
MESSAGE/CONTINUE/QUIET/JOURNAL/ERROR/OUTFILE/APPEND/CLOBBER
VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/ASPECT/NOLABEL
@@ -49726,6 +49801,7 @@ sho command
/NOLABEL/LEVELS/LINE/COLOR/PALETTE/XLIMITS/YLIMITS/TITLE/THICKNES
/NOAXES/PATTERN/FILL/KEY/NOKEY/AXES/HLIMITS/VLIMITS/HLOG/VLOG
/HGRATICU/VGRATICU/GRATICUL/MODULO
+ ANNOTATE/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
Use SHOW ALIAS to see alternative command names
@@ -49743,7 +49819,7 @@ go ptest
PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
sh sym win_title
-WIN_TITLE = "29-Oct-14:15:55"
+WIN_TITLE = "17-Nov-15:09:25"
set win/title="set the title"
sho sym win_title
@@ -49761,7 +49837,7 @@ sho sym win_title
WIN_TITLE = "_"
set win/title="($session_date):($session_time)"
- !-> set win/title="29-Oct-14:15:55"
+ !-> set win/title="17-Nov-15:09:25"
! If the date or time starts with a blank then we get an extra
! underscore in the window title. Evaluating the symbols into
@@ -49770,16 +49846,16 @@ set win/title="($session_date):($session_time)"
! If so substitute another string.
DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 29-Oct-14
+ !-> DEFINE SYMBOL the_date = 17-Nov-15
DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 15:55
+ !-> DEFINE SYMBOL the_time = 09:25
SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="29-Oct-14:15:55"
+ !-> SET WIN/TITLE="17-Nov-15:09:25"
can win/all
set win/new
sh sym win_title
-WIN_TITLE = "29-Oct-14:15:55"
+WIN_TITLE = "17-Nov-15:09:25"
GO bn_reset
cancel mode verify
@@ -50568,6 +50644,7 @@ let a = temp.missing_value
list a
VARIABLE : TEMP.MISSING_VALUE
FILENAME : ocean_atlas_temp.cdf
+ X : 1
-1.000E+34
use ocean_atlas_temp
@@ -50575,6 +50652,7 @@ let s = temp.units
list s
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
can data/all
@@ -50586,6 +50664,7 @@ list s
VARIABLE : ..REMARK
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
"Generated by oar3d "
go bn_reset
@@ -50604,6 +50683,7 @@ let anames = sst.attnames
list nat
VARIABLE : SST.NATTRS
FILENAME : coads_climatology.cdf
+ X : 1
5.000
list anames
VARIABLE : SST.ATTNAMES
@@ -50621,6 +50701,7 @@ let cnames = sst.dimnames
list nd
VARIABLE : SST.NDIMS
FILENAME : coads_climatology.cdf
+ X : 1
3.000
list cnames
VARIABLE : SST.DIMNAMES
@@ -50640,6 +50721,7 @@ let nd = ..ndims
let vnames = ..varnames
list/d=1 nv, nd
DATA SET: ./gt4d011.cdf
+ X: 1
Column 1: NV is ..NVARS
Column 2: ND is ..NDIMS
NV ND
@@ -50665,6 +50747,7 @@ let vnames = ..varnames
list/d=coads_climatology vnames
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
list/d=gt4d011 vnames
VARIABLE : ..VARNAMES
@@ -50701,27 +50784,28 @@ list vnames
3 / 3:"TIME4"
list lnames
VARIABLE : ..DIMNAMES[D=gt4d011]
- SUBSET : 20 points (X)
- 1 / 1:"PSXT1"
- 2 / 2:"PSYT1"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT1"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME11"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT1"
+ 3 / 3:"PSYT1"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT1"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME11"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
can var/all
can data/all
@@ -50734,6 +50818,7 @@ list v
VARIABLE : ..NDIMS
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
3.000
let na = ..nattrs
@@ -50741,6 +50826,7 @@ list na
VARIABLE : ..NATTRS
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
31.00
let gnames = ..attnames
@@ -50804,12 +50890,14 @@ let nat = temp.nattrs
list nat
VARIABLE : TEMP.NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
5.000
list (`temp,return=xaxis`).nattrs
!-> list (XAX_LEV9421_380).nattrs
VARIABLE : (XAX_LEV9421_380).NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
4.000
use gt4d011
@@ -50843,15 +50931,18 @@ let a = temp.units
list/d=3 a
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list temp.units[d=3]
VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list/d=3 temp.history
VARIABLE : TEMP.HISTORY
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"From ocean_atlas_monthly"
can data/all
@@ -50911,6 +51002,7 @@ let a= broiled.acl
list a
VARIABLE : BROILED.ACL
FILENAME : test0.nc
+ X : 1
17000.
let a= broiled.acf
@@ -50972,6 +51064,7 @@ use gt4d011
list ..nvars
VARIABLE : ..NVARS
FILENAME : gt4d011.cdf
+ X : 1
12.00
use coads_climatology
@@ -50979,10 +51072,12 @@ use coads_climatology
list/d=1 ..nvars
VARIABLE : ..NVARS
FILENAME : gt4d011.cdf
+ X : 1
12.00
list/d=2 ..nvars
VARIABLE : ..NVARS
FILENAME : coads_climatology.cdf
+ X : 1
1.000
sh data
@@ -51005,6 +51100,7 @@ sh data
list/d=2 ..varnames
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
list/d=2 ..dimnames
@@ -51017,49 +51113,55 @@ list/d=2 ..dimnames
list/d=1 ..dimnames
VARIABLE : ..DIMNAMES
FILENAME : gt4d011.cdf
- SUBSET : 20 points (X)
- 1 / 1:"PSXT1"
- 2 / 2:"PSYT1"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT1"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME11"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT1"
+ 3 / 3:"PSYT1"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT1"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME11"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
list/d=1 ..nattrs
VARIABLE : ..NATTRS
FILENAME : gt4d011.cdf
+ X : 1
1.000
list/d=1 ..attnames
VARIABLE : ..ATTNAMES
FILENAME : gt4d011.cdf
+ X : 1
"history"
list/d=1 ..ndims
VARIABLE : ..NDIMS
FILENAME : gt4d011.cdf
+ X : 1
21.00
list/d=2 ..ndims
VARIABLE : ..NDIMS
FILENAME : coads_climatology.cdf
+ X : 1
3.000
list ..nvars[d=1]
VARIABLE : ..NVARS[D=gt4d011]
FILENAME : gt4d011.cdf
+ X : 1
12.00
sh var
Created by DEFINE VARIABLE:
@@ -51086,6 +51188,7 @@ set data 1
list/d=2 pp
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
go bn_reset
@@ -51175,10 +51278,12 @@ use coads_climatology
list (coadsx).units
VARIABLE : (COADSX).UNITS
FILENAME : coads_climatology.cdf
+ X : 1
"degrees_east"
list (coadsx).modulo
VARIABLE : (COADSX).MODULO
FILENAME : coads_climatology.cdf
+ X : 1
" "
sho att/all (coadsx)
attributes for dataset: ./coads_climatology.cdf
@@ -51267,6 +51372,7 @@ list (`sst,return=xaxis`).nattrs[d=2]
!-> list (COADSX).nattrs[d=2]
VARIABLE : (COADSX).NATTRS[D=coads_climatology]
FILENAME : coads_climatology.cdf
+ X : 1
5.000
! using dimension names from the linked list structure
@@ -51286,6 +51392,7 @@ list (`cnames[i=1]`).nattrs
!-> list (COADSX).nattrs
VARIABLE : (COADSX).NATTRS
FILENAME : coads_climatology.cdf
+ X : 1
5.000
! Intentional errors.
@@ -51428,6 +51535,7 @@ let pq = temp.pp
list pq
VARIABLE : TEMP.PP
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"PP now has some text."
! set an attribute when the variable is not in the default dataset.
@@ -51742,7 +51850,7 @@ sp echo "bn_attributes.jnl --- 19 scale and offset attr." >> all_ncdump.out
use a.nc
list/j=1 elev[d=1], elev[d=2]
LONGITUDE: 135.5W(-135.5) to 135W(-135)
- LATITUDE: 58.59N
+ LATITUDE: 58.6N
T (day): 1.8
Column 1: ELEV[D=err491_attval] is Surface elevation (meter)
Column 2: ELEV[D=a] is Surface elevation (meter)
@@ -52865,11 +52973,11 @@ set view left; shade/x=120e:80w sst ! works correctly
set view right; fill/x=120e:80w sst
sh sym ppl$xmin, ppl$xmax ! should be 131, 279
-PPL$XMIN = "131.0"
-PPL$XMAX = "281.0"
+PPL$XMIN = "131.0000"
+PPL$XMAX = "281.0000"
sh sym ppl$xlow, ppl$xhigh ! should be 165, 259
-PPL$XHIGH = "165.0"
-PPL$XLOW = "259.0"
+PPL$XHIGH = "165.0000"
+PPL$XLOW = "259.0000"
sp rm -f err581_subspanx_fill_bug.nc
@@ -52951,8 +53059,6 @@ GO err581_if_conditional.jnl
! This should skip to the end, not trying to execute anything inside the IF 0 THEN
if 0 then
- endif
- endif
endif
say "finished the if block"
@@ -52987,7 +53093,6 @@ let key_flag = 0
IF `($xend) GT 360` THEN
!-> IF 0 THEN
- ENDIF
ENDIF
let dxymin = 0.20
if `dxymin lt 0.12` then
@@ -53002,7 +53107,6 @@ endif
IF `($xend) GT 360` THEN
!-> IF 0 THEN
- ENDIF
ELSE
say "this is the ELSE that should execute"
this is the ELSE that should execute
@@ -53099,10 +53203,8 @@ ELIF ($refmap_type%|xline>1|*>0%) THEN ! ELSE IF "xline"
!-> ELIF 1 THEN
define region/default/dy=$6"-30:30|1>-30:30|*>-20:20"/dx=$6"0:0|1>0:0|2>0:0|*>`max(-($ref_dx),-50)`:`min(($ref_dx),50)`" band
!-> define region/default/dy=-20:20/dx=-50:50 band
-
ELIF ($refmap_type%|yline>1|*>0%) THEN ! ELSE IF "yline"
!-> ELIF 0 THEN
- ENDIF
ENDIF
! init the land mask data set
set data coads_climatology
@@ -53141,17 +53243,12 @@ IF ($refmap_type%|box>1|*>0) THEN ! IF "box"
!-> IF 0 THEN
ELIF ($refmap_type%|xline>1|*>0) THEN ! ELSE IF "xline"
!-> ELIF 1 THEN
-
IF ($refmap_ycompress) THEN
!-> IF 0 THEN
ENDIF
-
plot/over/vs/nolab/line=8/i=1:2 refmap_xrng, refmap_ymid+(i-i)
-
ELIF ($refmap_type%|yline>1|*>0) THEN ! ELSE IF "yline"
!-> ELIF 0 THEN
- ENDIF
- ENDIF
ENDIF
@@ -53432,8 +53529,8 @@ GO err581_define_1pt_bounds.jnl
! again, and even that result is now very wrong!! Same results in both v5.81
! for Linux and v5.70 for Irix.
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: -2 to 6
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -53443,8 +53540,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
3 / 2: 2.000 4.000 3.000
5 / 3: 4.000 6.000 5.000
-yes? def ax/x/bounds xax = {0},{-2,2}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0},{-2,2}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: 0
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -53452,8 +53549,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
XBOXLO XBOXHI X
I / *: -2.000 2.000 0.0000
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: -2 to 6
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -53529,9 +53626,9 @@ go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle
! And, from Andrew with other reversed axes.
-yes? ppl cross 1
-yes? plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-yes? poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
+ppl cross 1
+plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
+poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
ppl cross 0
@@ -53703,12 +53800,10 @@ GO err600_if_comments_tab.jnl
! thrown off and we got an error about an invalid ENDIF
IF 0 THEN
- ENDIF
ENDIF
! Here there is a tab before the ! which throws off the parsing...
IF 0 THEN
- ENDIF
ENDIF
! err600_set_var_title.jnl
@@ -53860,6 +53955,7 @@ list ..dimnames
list ..varnames
VARIABLE : ..VARNAMES
FILENAME : levitus_climatology.cdf
+ X : 1
"TEMP"
! err600_nc_des_order.jnl
@@ -53937,8 +54033,13 @@ use coads_climatology
def sym timeax = `sst,return=taxis`
!-> def sym timeax = TIME9
-show att/all ($timeax)
- !-> show att/all TIME9
+show att/all (($timeax))
+ !-> show att/all (TIME9)
+ attributes for dataset: ./coads_climatology.cdf
+ (TIME9).units = hour since 0000-01-01 00:00:00
+ (TIME9).time_origin = 1-JAN-0000 00:00:00
+ (TIME9).modulo =
+ (TIME9).orig_file_axname = TIME
show axis ($timeax)
!-> show axis TIME9
name axis # pts start end
@@ -53947,8 +54048,12 @@ T0 = 01-JAN-0000 00:00:00
Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
define axis/t0=1-jan-0001/t=1:3:1/unit=months ($timeax)
!-> define axis/t0=1-jan-0001/t=1:3:1/unit=months TIME9
-show att/all ($timeax)
- !-> show att/all TIME9
+show att/all (($timeax))
+ !-> show att/all (TIME9)
+ attributes for dataset: ./coads_climatology.cdf
+ (TIME9).units = MONTHS since 1-JAN-0001
+ (TIME9).time_origin = 1-JAN-0001
+ (TIME9).orig_file_axname = TIME
show axis ($timeax)
!-> show axis TIME9
name axis # pts start end
@@ -53962,8 +54067,12 @@ can data/all
use gt4d011
def sym timeax = `temp,return=taxis`
!-> def sym timeax = TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
+show att/all (($timeax))
+ !-> show att/all (TIME11)
+ attributes for dataset: ./gt4d011.cdf
+ (TIME11).units = hour since 1980-01-14 14:00:00
+ (TIME11).time_origin = 14-JAN-1980 14:00:00
+ (TIME11).orig_file_axname = TIME1
show axis ($timeax)
!-> show axis TIME11
name axis # pts start end
@@ -53973,8 +54082,14 @@ T0 = 14-JAN-1980 14:00:00
set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days ($timeax)
!-> set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
+show att/all (($timeax))
+ !-> show att/all (TIME11)
+ attributes for dataset: ./gt4d011.cdf
+ (TIME11).units = days since 1-JAN-1900
+ (TIME11).time_origin = 1-JAN-1900
+ (TIME11).orig_file_axname = TIME1
+ (TIME11).calendar = NOLEAP
+ (TIME11).modulo =
show axis ($timeax)
!-> show axis TIME11
name axis # pts start end
@@ -53992,8 +54107,12 @@ def sym timeax = `temp,return=taxis`
!-> def sym timeax = TIME11
def sym zax = `temp,return=zaxis`
!-> def sym zax = PSZT1
-show att/all ($timeax)
- !-> show att/all TIME11
+show att/all (($timeax))
+ !-> show att/all (TIME11)
+ attributes for dataset: ./gt4d011.cdf
+ (TIME11).units = hour since 1980-01-14 14:00:00
+ (TIME11).time_origin = 14-JAN-1980 14:00:00
+ (TIME11).orig_file_axname = TIME1
show axis ($zax)
!-> show axis PSZT1
name axis # pts start end
@@ -54002,8 +54121,12 @@ show axis ($zax)
cancel axis/modulo ($timeax)
!-> cancel axis/modulo TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
+show att/all (($timeax))
+ !-> show att/all (TIME11)
+ attributes for dataset: ./gt4d011.cdf
+ (TIME11).units = hour since 1980-01-14 14:00:00
+ (TIME11).time_origin = 14-JAN-1980 14:00:00
+ (TIME11).orig_file_axname = TIME1
show axis ($timeax)
!-> show axis TIME11
name axis # pts start end
@@ -54012,8 +54135,14 @@ T0 = 14-JAN-1980 14:00:00
Axis span (to cell edges) = 3650
cancel axis/depth ($zax)
!-> cancel axis/depth PSZT1
-show att/all ($zax)
- !-> show att/all PSZT1
+show att/all (($zax))
+ !-> show att/all (PSZT1)
+ attributes for dataset: ./gt4d011.cdf
+ (PSZT1).units = METERS
+ (PSZT1).positive = up
+ (PSZT1).point_spacing = uneven
+ (PSZT1).edges = PSZTedges
+ (PSZT1).orig_file_axname = PSZT
show axis ($zax)
!-> show axis PSZT1
name axis # pts start end
@@ -54081,7 +54210,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(PSXT191_108) DOUBLE units CHAR 12 T degrees_east
@@ -54126,7 +54255,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(PSXT191_108) DOUBLE units CHAR 12 T degrees_east
@@ -55377,9 +55506,6 @@ LIST/NOHEAD/I=91:94/J=37/K=1/L=1 temp,salt
! Previously this did not have the effect of changing the precision.
LIST/NOHEAD/I=91:94/J=37/K=1/L=1/PREC=3 temp,salt
139.5W / 91: 27.3 2.37E-04
-Internal overflow expressing 500000.0 Mwords as words (1783793664)
-Unable to allocate the requested 500000.0 Mwords of memory.
-Memory remaining at 0.2 Mwords.
138.5W / 92: 27.3 2.38E-04
137.5W / 93: 27.2 2.38E-04
136.5W / 94: 27.2 2.38E-04
@@ -55448,6 +55574,9 @@ LIST/X=179:183/Y=40/L=3 sst
VARIABLE : 3*MY_SST
FILENAME : coads_climatology.cdf
SUBSET : 3 points (LONGITUDE)
+Internal overflow expressing 500000.0 Mwords as words (1783793664)
+Unable to allocate the requested 500000.0 Mwords of memory.
+Memory remaining at 0.2 Mwords.
LATITUDE : 39N
TIME : MAR
39N
@@ -55647,6 +55776,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
LABWID(STR,HT)
LANCZOS(A,F1,F2,N)
LIST_VALUE_XML(tag,value,cdata_flag,outputfile)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
LSL_LOWPASS(A,cutoff_period,filter_span)
MINMAX(A)
MINUTES24(formatted time)
@@ -55659,6 +55789,7 @@ SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
@@ -55756,6 +55887,14 @@ EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
STR_MASK(STRING,MASK,--)
SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
SEPARATE(A,Rowsize,FixLongitudes)
+TIME_REFORMAT(A)
+FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
+CURV_TO_RECT_FSU(V,mapping)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SAMPLE_FAST_I_STR(S,Indices)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
ADD_9(A,B,C,D,E,F,G,H,I)
APPENDE(ENS,VAR)
AVET(A)
@@ -55766,6 +55905,7 @@ FFT_AMP(A)
FFTA_SAMPLE(A)
FFT_PHAS(A)
LENGTH_OF_STRINGS(--)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
MAXSTRLEN(A)
PASS_THRU(A)
PASS_THRU_STRING(A)
@@ -55925,15 +56065,15 @@ def axis/y=0.000001:0.000002/npoints=100 yax
let a = x[gx=xax] + y[gy=yax]
shade a; sh sym xax*; ; sh sym yax*
XAXIS_REVERSED = "0"
-XAXIS_MIN = "3.99494949E-06"
+XAXIS_MIN = "3.994949495E-06"
XAXL = "4.737"
XAXNAME = "XIRREG_SUBSPAN"
-XAXIS_MAX = "5.0050505E-06"
+XAXIS_MAX = "5.005050505E-06"
XAXNAM = "(XAX_LEV9421_380)"
YAXIS_REVERSED = "0"
YAXL = "4.737"
-YAXIS_MIN = "9.94949495E-07"
-YAXIS_MAX = "2.0050505E-06"
+YAXIS_MIN = "9.949494949E-07"
+YAXIS_MAX = "2.005050505E-06"
YAXNAM = "YAX_LEV94"
@@ -55968,27 +56108,27 @@ USE ocean_atlas_temp
SET VIEW upper
FILL temp[L=2,X=180:200,Y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
! See the larger region used by default for SHADE
SHADE temp[L=2,X=180:200,y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.00000"
-XAXIS_MAX = "200.0000"
-YAXIS_MIN = "30.000000"
-YAXIS_MAX = "44.00000"
+XAXIS_MIN = "180.000000"
+XAXIS_MAX = "200.000000"
+YAXIS_MIN = "30.0000000"
+YAXIS_MAX = "44.0000000"
! SHADE/TRIM trims the region as for a FILL plot
SET VIEW lower
SHADE/TRIM temp[L=2,X=180:200,y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
GO bn_reset
@@ -56433,27 +56573,28 @@ list vnames
4 / 4:"TIME3"
list lnames
VARIABLE : ..DIMNAMES[D=gt4d011]
- SUBSET : 20 points (X)
- 1 / 1:"PSXT1"
- 2 / 2:"PSYT1"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT1"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME11"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT1"
+ 3 / 3:"PSYT1"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT1"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME11"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
go bn_reset
cancel mode verify
@@ -56468,12 +56609,14 @@ let nat = temp.nattrs
list nat
VARIABLE : TEMP.NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
5.000000
list (`temp,return=xaxis`)[d=2].nattrs
!-> list (XAX_LEV9421_380)[d=2].nattrs
- VARIABLE : (XAX_LEV9421_380)[d=ocean_atlas_temp].NATTRS
+ VARIABLE : (XAX_LEV9421_380)[D=ocean_atlas_temp].NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
4.000000
use gt4d011
@@ -56508,14 +56651,17 @@ let a = temp.units
list/d=3 a
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list temp[d=3].units
- VARIABLE : TEMP[d=ocean_atlas_temp].UNITS
+ VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
FILENAME : gt4d011.cdf
+ X : 1
"Deg C"
list/d=3 temp.history
VARIABLE : TEMP.HISTORY
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"From ocean_atlas_monthly"
can data/all
@@ -56528,7 +56674,7 @@ use coads_climatology
! But this does
let a = sst[d=1].dimnames
list a[i=2]
- VARIABLE : SST[d=coads_climatology].DIMNAMES
+ VARIABLE : SST[D=coads_climatology].DIMNAMES
FILENAME : coads_climatology.cdf
X : 2
"COADSY"
@@ -56544,16 +56690,18 @@ use coads_climatology
define symbol ferret_plot_var sst[x=30:39,y=-90:90]
list ($ferret_plot_var).long_name
!-> list sst[x=30:39,y=-90:90].long_name
- VARIABLE : SST.LONG_NAME
+ VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
FILENAME : coads_climatology.cdf
+ X : 1
"SEA SURFACE TEMPERATURE"
use coads_climatology
define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
list ($ferret_plot_var).units
!-> list sst[d=1,x=30:35,y=-90:90].units
- VARIABLE : SST[d=coads_climatology].UNITS
+ VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
FILENAME : coads_climatology.cdf
+ X : 1
"Deg C"
use coads_climatology
@@ -56561,8 +56709,9 @@ use levitus_climatology
define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
list ($ferret_plot_var).history
!-> list sst[d=1,x=30:35,y=-90:90].history
- VARIABLE : SST[d=coads_climatology].HISTORY
+ VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
FILENAME : levitus_climatology.cdf
+ X : 1
"From coads_climatology"
go bn_reset
@@ -56578,13 +56727,15 @@ def sym yaxnam "(`temp[d=1],return=yaxis`)"
list ($xaxnam)[d=1].modulo
!-> list (XAXLEVITR1_160)[d=1].modulo
- VARIABLE : (XAXLEVITR1_160)[d=levitus_climatology].MODULO
+ VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
FILENAME : coads_climatology.cdf
+ X : 1
" "
list ($yaxnam).point_spacing[d=1]
!-> list (YAXLEVITR1_90).point_spacing[d=1]
VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
FILENAME : levitus_climatology.cdf
+ X : 1
"even"
@@ -56782,12 +56933,12 @@ GO err611_exit_if.jnl
! This only in v6.11 GFDL release bug
! Fixed in xeq_exit.F
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b !the following fails to say "hello"
go a
if 1 then
exit/script
@@ -56856,7 +57007,7 @@ ppl list labels
plot/x=56e:100e/y=10 sst[L=1]
plot/over/x=56e:100e/y=40 sst[L=1]
ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)
+
@ASLONGITUDE
@ASDeg C
@@ -57068,12 +57219,12 @@ GO err611_exit_if.jnl
! This only in v6.11 GFDL release bug
! Fixed in xeq_exit.F
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b !the following fails to say "hello"
go a
if 1 then
exit/script
@@ -59500,7 +59651,7 @@ sh command list
/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS/CLOBBER
/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT/XCHUNK
/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN/OUTTYPE
- /CURVILIN/SIGMA
+ /CURVILIN/LAYERZ
define axis/x=1:100:1/units=deg x100
define axis/t=1-jan-2000:31-jan-2000:1/units=days/t0=31-dec-1999 t31
let a = x[gx=x100] + t[gt=t31]
@@ -59993,10 +60144,10 @@ SH GRID am
GO bn_clock_syms
SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "40.2969"
-CLOCK_SECS = "69.632"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "15:57:05"
+DELTA_CPU = "59.8629"
+CLOCK_SECS = "102.35"
+CURRENT_DATE = "17-Nov-15"
+CURRENT_TIME = "09:27:16"
! test special symbols DELTA_CPU, CLOCK_SECS
!
! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60005,8 +60156,8 @@ CURRENT_TIME = "15:57:05"
use gt4d011
shade/k=1 temp[L=@ave]
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.043993"
-CLOCK_SECS = "69.723"
+DELTA_CPU = "0.057991"
+CLOCK_SECS = "102.547"
repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=1
@@ -60020,60 +60171,60 @@ repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=9
!-> REPEAT: K=10
let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.304954
+ !-> DEFINE VARIABLE ten_plots = 0.308953
sh sym DELTA_CPU, CLOCK_SECS
DELTA_CPU = "0"
-CLOCK_SECS = "70.43"
+CLOCK_SECS = "103.891"
let sumclock = 0
let sumcpu = 0
sh sym CLOCK_SECS
-CLOCK_SECS = "70.431"
+CLOCK_SECS = "103.892"
repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);\
let sumcpu =`sumcpu + dt`)
!-> repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);let sumcpu =`sumcpu + dt`)
!-> REPEAT: K=1
- !-> DEFINE VARIABLE dt = 0.030996
- !-> DEFINE VARIABLE sumcpu =0.030996
+ !-> DEFINE VARIABLE dt = 0.029995
+ !-> DEFINE VARIABLE sumcpu =0.029995
!-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.037994
- !-> DEFINE VARIABLE sumcpu =0.06899
+ !-> DEFINE VARIABLE dt = 0.031995
+ !-> DEFINE VARIABLE sumcpu =0.06199
!-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.042993
- !-> DEFINE VARIABLE sumcpu =0.111983
-!-> REPEAT: K=4
!-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.144978
+ !-> DEFINE VARIABLE sumcpu =0.094985
+!-> REPEAT: K=4
+ !-> DEFINE VARIABLE dt = 0.034995
+ !-> DEFINE VARIABLE sumcpu =0.12998
!-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.036995
- !-> DEFINE VARIABLE sumcpu =0.181973
+ !-> DEFINE VARIABLE dt = 0.034994
+ !-> DEFINE VARIABLE sumcpu =0.164974
!-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.031995
- !-> DEFINE VARIABLE sumcpu =0.213968
+ !-> DEFINE VARIABLE dt = 0.032995
+ !-> DEFINE VARIABLE sumcpu =0.197969
!-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.038995
- !-> DEFINE VARIABLE sumcpu =0.252963
+ !-> DEFINE VARIABLE dt = 0.034995
+ !-> DEFINE VARIABLE sumcpu =0.232964
!-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.040993
- !-> DEFINE VARIABLE sumcpu =0.293956
+ !-> DEFINE VARIABLE dt = 0.035995
+ !-> DEFINE VARIABLE sumcpu =0.268959
!-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.029995
- !-> DEFINE VARIABLE sumcpu =0.323951
+ !-> DEFINE VARIABLE dt = 0.036994
+ !-> DEFINE VARIABLE sumcpu =0.305953
!-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.037994
- !-> DEFINE VARIABLE sumcpu =0.361945
+ !-> DEFINE VARIABLE dt = 0.032995
+ !-> DEFINE VARIABLE sumcpu =0.338948
say `sumcpu`
- !-> MESSAGE/CONTINUE 0.361945
-0.361945
+ !-> MESSAGE/CONTINUE 0.338948
+0.338948
sh sym CLOCK_SECS
-CLOCK_SECS = "71.655"
+CLOCK_SECS = "106.205"
SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:55"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "15:57:07"
+SESSION_DATE = "17-Nov-15"
+SESSION_TIME = "09:25"
+CURRENT_DATE = "17-Nov-15"
+CURRENT_TIME = "09:27:20"
! ******** V6.3 Additions below ***********
@@ -60898,8 +61049,8 @@ say `temp,return=isdepth`
use coads_climatology
say `sst,return=isdepth`
- !-> MESSAGE/CONTINUE NORMAL
-NORMAL
+ !-> MESSAGE/CONTINUE 0
+0
can data 2
@@ -61418,24 +61569,24 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 23 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 22 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 755 complete
plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
dealloc dynamic grid G5DAYG5DAYG5DAYGPSXU PSYU PSZT2 TAX5DAY NORMAL NORMAL
- -DELETE TEMP M: 23 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 22 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
strip regrid on Z: TEMP --> XNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @LIN
found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
- regrid TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 22 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 22 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 23 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 22 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 756 complete
@@ -61481,12 +61632,12 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
strip moduloing TEMP on T axis: 2 171 dset: 2
reading TEMP M: 17 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 168 dset: 2
- regrid TEMP M: 16 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 13 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 16 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 15 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 12 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 15 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 16 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 13 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 15 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 12 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 759 complete
plot/over temp[g=u at asn]
@@ -61498,16 +61649,16 @@ plot/over temp[g=u at asn]
strip regrid on X: TEMP --> PS3DU1 @ASN
strip regrid on Y: TEMP --> XNTERMED @ASN
found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
+ regrid TEMP M: 12 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
regrid TEMP M: 13 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- regrid TEMP M: 14 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 13 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 12 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 3 168 dset: 2
strip regrid on X: TEMP --> PS3DU1 @ASN
strip regrid on Y: TEMP --> XNTERMED @ASN
found TEMP M: 17 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- regrid TEMP M: 15 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- regrid TEMP M: 12 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 15 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
+ regrid TEMP M: 14 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
+ regrid TEMP M: 11 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 14 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 2 dset: 2
setting up plot
PPL plot 760 complete
@@ -61519,14 +61670,14 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
strip regrid on Y: TEMP --> XNTERMED @ASN
strip regrid on Z: TEMP --> YNTERMED @ASN
strip regrid on T: TEMP --> ZNTERMED @ASN
- reading TEMP M: 15 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ reading TEMP M: 14 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 9 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 9 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 9 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 761 complete
plot/over temp[g=u,gt=u at ave]
@@ -61548,10 +61699,10 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
strip regrid on T: TEMP --> XNTERMED @AVE
found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 10 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 25 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 10 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 763 complete
plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
@@ -61562,11 +61713,11 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefg
strip regrid on Z: TEMP --> XNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @AVE
found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 10 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 10 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 764 complete
@@ -61579,7 +61730,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
regrid TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 9 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 8 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 765 complete
@@ -62428,7 +62579,7 @@ GO bn_multi_decade
! New default no-small tics for multi-decade plots
! See bug 670
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
+def axis/t="01-JAN-1860":"30-DEC-2300":1/edges/units="years"/cal="360d" simutaxis1
let tvar = t[gt=simutaxis1]*-1E+34
define view/x=0:1/y=0.000:0.125 v1
@@ -62827,7 +62978,7 @@ set var/title=deflate_x30_y30 sst
save/file=nc4_deflate4.nc/clobber/ncformat=4/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
! With /NCFORMAT=3 the other stuff is meaningless. Will see NOTEs
-yes? save/file=nc4_nodeflate3.nc/clobber/ncformat=3/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
+save/file=nc4_nodeflate3.nc/clobber/ncformat=3/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
! --------------------------
! Compare choices of chunking.
@@ -63963,7 +64114,7 @@ list contents
2 / 2:" e.g. yes? GO filename"
3 / 3:" "
4 / 4:" Use "GO/HELP filename" to read documentation in the file to be executed."
- 5 / 5:" *** NOTE: Axis is already regular: MYAXIS"
+ 5 / 5:" *** NOTE: Axis is already regular: MYAXIS"
6 / 6:" **ERROR: variable unknown or not in data set: GARBAGE"
7 / 7:"show grid garbage"
cancel var contents
@@ -64049,9 +64200,9 @@ list contents
VARIABLE : { SPAWN:"cat redirect_journal.txt" }
SUBSET : 47 points (X)
1 / 1:" ! NOAA/PMEL TMAP"
- 2 / 2:" ! FERRET v6.93 "
- 3 / 3:" ! Linux 2.6.18-398.el5PAE 32-bit - 10/29/14"
- 4 / 4:" ! 29-Oct-14 15:55 "
+ 2 / 2:" ! FERRET v6.951 (beta)"
+ 3 / 3:" ! Linux 2.6.18-407.el5PAE 32-bit - 11/17/15"
+ 4 / 4:" ! 17-Nov-15 09:25 "
5 / 5:""
6 / 6:"! "
7 / 7:"!! --- 22. produce some output to stdout and stderr"
@@ -64130,20 +64281,21 @@ variable transforms e.g.SST[T=1-jan:15-mar at DDC]
@SBN binomial smoothed @SMN minimum smoothed
@SWL Welch smoothed @STD standard deviation
@SHN Hanning smoothed @WGT weights for avg,int
- @SPZ Parzen smoothed
+ @SPZ Parzen smoothed @SPX box smooth w/missing
regridding transforms e.g.SST[GX=x5deg at AVE]
code description code description
---- ----------- ---- -----------
- @LIN lin. interp. @MOD modulo ave
- @AVE box avgd @MODVAR modulo var
- @XACT exact match @MODNGD # gd mod pts
- @ASN index assn @MODNBD #bad mod pts
- @VAR variance @MODSUM modulo sum
- @MIN minimum @MODMIN modulo min
- @MAX maximum @MODMAX modulo max
- @SUM sum @NRST nearst coord
- @NGD # gd pts
+ @LIN lin. interp. @MODVAR modulo var
+ @AVE box avgd @MODNGD # gd mod pts
+ @XACT exact match @MODNBD #bad mod pts
+ @ASN index assn @MODSUM modulo sum
+ @VAR variance @MODMIN modulo min
+ @MIN minimum @MODMAX modulo max
+ @MAX maximum @NRST nearst coord
+ @SUM sum @BIN binning
+ @NGD # gd pts @NBIN #good in bin
+ @MOD modulo ave
auxiliary varible regridding transforms e.g.TEMP[GZ(depth)=zax at AVE]
code description code description
@@ -65156,8 +65308,7 @@ sh dat/att
. history CHAR 28 T FERRET V6.7 (beta) 25-Mar-11
Conventions CHAR 6 F CF-1.0
nco_input_file_nINT 1 F 1000
- nco_input_file_lCHAR 2048 F
- b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2. [...]
+ nco_input_file_lCHAR 2760 F b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.00 [...]
(LON273_289) DOUBLE long_name CHAR 9 T longitude
units CHAR 12 T degrees_east
@@ -65338,7 +65489,6 @@ sh dat
name title I J K L M N
TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
TEMP_MM TEMP - TEMPAVE 1:18 1:22 1:10 1:25 ... ...
- (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
@@ -65428,12 +65578,12 @@ list/L=15:20 tax_month(t[gt=tvar],tvar), tax_yearfrac(t[gt=tvar],tvar)
Column 1: TAX_MONTH(T[GT=TVAR],TVAR)
Column 2: TAX_YEARFRAC(T[GT=TVAR],TVAR)
(C001,V002) (C001,V005)
-17-MAR / 15: 3.000 0.2082
-16-APR / 16: 4.000 0.2904
-17-MAY / 17: 5.000 0.3753
-16-JUN / 18: 6.000 0.4575
-17-JUL / 19: 7.000 0.5425
-16-AUG / 20: 8.000 0.6247
+17-MAR / 15: 3.000 0.2092
+16-APR / 16: 4.000 0.2926
+17-MAY / 17: 5.000 0.3760
+16-JUN / 18: 6.000 0.4594
+17-JUL / 19: 7.000 0.5428
+16-AUG / 20: 8.000 0.6262
! the following is an error for a modulo time axis
list/L=15:20 tax_year(t[gt=tvar],tvar)
list tax_units(tvar)
@@ -65478,7 +65628,6 @@ sh dat
name title I J K L M N
TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
TEMP_MM TEMP - TEMPAVE 1:18 1:22 1:10 1:25 ... ...
- (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
GO bn_reset
@@ -65874,8 +66023,8 @@ list/l=1:7 TAX_yearfrac(t[gt=var], var)
01-JAN-2010 00:00:10 / 3: 0.002740
01-JAN-2010 00:00:15 / 4: 0.002740
01-JAN-2010 00:00:20 / 5: 0.002740
- 01-JAN-2010 00:00:25 / 6: 0.002740
- 01-JAN-2010 00:00:30 / 7: 0.002740
+ 01-JAN-2010 00:00:25 / 6: 0.002741
+ 01-JAN-2010 00:00:30 / 7: 0.002741
! This example from Patrick B. Output of TAX_dayfrac repeats.
! We need to just return an error mesage. Cant represent 2.5 years
@@ -66520,40 +66669,40 @@ can mode ver
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.686
-randu2_randn2 0.027
-randu2_randn2 0.551
-randu2_randn2 0.149
-randu2_randn2 0.450
+randu2_randn2 0.657
+randu2_randn2 0.258
+randu2_randn2 0.241
+randu2_randn2 0.151
+randu2_randn2 0.091
VARIABLE : RANDU2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.235
-randu2_randn2 0.948
-randu2_randn2 0.391
-randu2_randn2 0.973
-randu2_randn2 0.515
+randu2_randn2 0.029
+randu2_randn2 0.111
+randu2_randn2 0.779
+randu2_randn2 0.535
+randu2_randn2 0.321
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.689
-randu2_randn2 0.507
-randu2_randn2 0.348
-randu2_randn2 0.656
-randu2_randn2 0.413
-randu2_randn2 0.374
+randu2_randn2 0.931
+randu2_randn2 0.491
+randu2_randn2 0.178
+randu2_randn2 0.721
+randu2_randn2 0.379
+randu2_randn2 0.967
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.769
-randu2_randn2 0.341
-randu2_randn2 0.439
-randu2_randn2 0.311
-randu2_randn2 0.145
-randu2_randn2 0.181
+randu2_randn2 0.317
+randu2_randn2 0.024
+randu2_randn2 0.269
+randu2_randn2 0.754
+randu2_randn2 0.162
+randu2_randn2 0.916
VARIABLE : RANDU2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66578,40 +66727,40 @@ randu2_randn2 0.900
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.354
-randu2_randn2 0.641
-randu2_randn2 0.923
-randu2_randn2 1.707
-randu2_randn2 -0.248
+randu2_randn2 0.126
+randu2_randn2 -0.560
+randu2_randn2 1.056
+randu2_randn2 0.714
+randu2_randn2 -0.473
VARIABLE : RANDN2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.039
-randu2_randn2 0.350
-randu2_randn2 1.126
-randu2_randn2 -0.992
-randu2_randn2 -1.041
+randu2_randn2 -0.507
+randu2_randn2 -1.944
+randu2_randn2 -1.216
+randu2_randn2 1.740
+randu2_randn2 -0.925
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 1.024
-randu2_randn2 -1.786
-randu2_randn2 -1.033
-randu2_randn2 0.754
-randu2_randn2 -1.856
-randu2_randn2 -0.369
+randu2_randn2 0.633
+randu2_randn2 -1.911
+randu2_randn2 -0.524
+randu2_randn2 -0.330
+randu2_randn2 -0.074
+randu2_randn2 0.092
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 -0.310
-randu2_randn2 -0.748
-randu2_randn2 0.207
-randu2_randn2 -0.560
-randu2_randn2 0.364
-randu2_randn2 0.176
+randu2_randn2 0.763
+randu2_randn2 -1.013
+randu2_randn2 0.357
+randu2_randn2 0.689
+randu2_randn2 -0.471
+randu2_randn2 0.817
VARIABLE : RANDN2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66636,14 +66785,14 @@ randu2_randn2 -0.124
Column 1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
Column 2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
Column 3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2 1.354 1.354 0.543
-randu2_randn2 0.845 0.845 0.543
-randu2_randn2 0.320 0.543 0.320
-randu2_randn2 0.543 0.320 0.497
-randu2_randn2 -0.718 -0.390 0.497
-randu2_randn2 -0.390 -0.390 0.497
-randu2_randn2 0.312 0.312 0.497
-randu2_randn2 0.497 0.497 0.543
+randu2_randn2 1.186 1.557 0.541
+randu2_randn2 1.557 1.186 0.541
+randu2_randn2 0.541 0.541 0.015
+randu2_randn2 -0.093 -0.027 0.541
+randu2_randn2 -0.027 -0.031 0.541
+randu2_randn2 -0.031 -0.027 0.541
+randu2_randn2 0.015 0.015 0.541
+randu2_randn2 0.859 0.859 0.859
GO bn_reset
cancel mode verify
@@ -67077,8 +67226,8 @@ list eofsvd_space(spacetime)
SUBSET : 2 by 2 points (X-T)
1 2
1 2
- 1 / 1: -0.7071 0.0000
- 2 / 2: 0.0000 -0.7071
+ 1 / 1: 0.0000 0.7071
+ 2 / 2: -0.7071 0.0000
show func eofsvd_tfunc
EOFSVD_TFUNC(A)
@@ -67091,246 +67240,246 @@ list eofsvd_tfunc(spacetime)
SUBSET : 2 by 240 points (X-T)
1 2
1 2
- 0 / 1: -1.414 0.000
- 0.25 / 2: -1.402 -0.185
- 0.5 / 3: -1.366 -0.366
- 0.75 / 4: -1.307 -0.541
- 1 / 5: -1.225 -0.707
- 1.25 / 6: -1.122 -0.861
- 1.5 / 7: -1.000 -1.000
- 1.75 / 8: -0.861 -1.122
- 2 / 9: -0.707 -1.225
- 2.25 / 10: -0.541 -1.307
- 2.5 / 11: -0.366 -1.366
- 2.75 / 12: -0.185 -1.402
- 3 / 13: 0.000 -1.414
- 3.25 / 14: 0.185 -1.402
- 3.5 / 15: 0.366 -1.366
- 3.75 / 16: 0.541 -1.307
- 4 / 17: 0.707 -1.225
- 4.25 / 18: 0.861 -1.122
- 4.5 / 19: 1.000 -1.000
- 4.75 / 20: 1.122 -0.861
- 5 / 21: 1.225 -0.707
- 5.25 / 22: 1.307 -0.541
- 5.5 / 23: 1.366 -0.366
- 5.75 / 24: 1.402 -0.185
- 6 / 25: 1.414 0.000
- 6.25 / 26: 1.402 0.185
- 6.5 / 27: 1.366 0.366
- 6.75 / 28: 1.307 0.541
- 7 / 29: 1.225 0.707
- 7.25 / 30: 1.122 0.861
- 7.5 / 31: 1.000 1.000
- 7.75 / 32: 0.861 1.122
- 8 / 33: 0.707 1.225
- 8.25 / 34: 0.541 1.307
- 8.5 / 35: 0.366 1.366
- 8.75 / 36: 0.185 1.402
- 9 / 37: 0.000 1.414
- 9.25 / 38: -0.185 1.402
- 9.5 / 39: -0.366 1.366
- 9.75 / 40: -0.541 1.307
- 10 / 41: -0.707 1.225
- 10.25 / 42: -0.861 1.122
- 10.5 / 43: -1.000 1.000
- 10.75 / 44: -1.122 0.861
- 11 / 45: -1.225 0.707
- 11.25 / 46: -1.307 0.541
- 11.5 / 47: -1.366 0.366
- 11.75 / 48: -1.402 0.185
- 12 / 49: -1.414 0.000
- 12.25 / 50: -1.402 -0.185
- 12.5 / 51: -1.366 -0.366
- 12.75 / 52: -1.307 -0.541
- 13 / 53: -1.225 -0.707
- 13.25 / 54: -1.122 -0.861
- 13.5 / 55: -1.000 -1.000
- 13.75 / 56: -0.861 -1.122
- 14 / 57: -0.707 -1.225
- 14.25 / 58: -0.541 -1.307
- 14.5 / 59: -0.366 -1.366
- 14.75 / 60: -0.185 -1.402
- 15 / 61: 0.000 -1.414
- 15.25 / 62: 0.185 -1.402
- 15.5 / 63: 0.366 -1.366
- 15.75 / 64: 0.541 -1.307
- 16 / 65: 0.707 -1.225
- 16.25 / 66: 0.861 -1.122
- 16.5 / 67: 1.000 -1.000
- 16.75 / 68: 1.122 -0.861
- 17 / 69: 1.225 -0.707
- 17.25 / 70: 1.307 -0.541
- 17.5 / 71: 1.366 -0.366
- 17.75 / 72: 1.402 -0.185
- 18 / 73: 1.414 0.000
- 18.25 / 74: 1.402 0.185
- 18.5 / 75: 1.366 0.366
- 18.75 / 76: 1.307 0.541
- 19 / 77: 1.225 0.707
- 19.25 / 78: 1.122 0.861
- 19.5 / 79: 1.000 1.000
- 19.75 / 80: 0.861 1.122
- 20 / 81: 0.707 1.225
- 20.25 / 82: 0.541 1.307
- 20.5 / 83: 0.366 1.366
- 20.75 / 84: 0.185 1.402
- 21 / 85: 0.000 1.414
- 21.25 / 86: -0.185 1.402
- 21.5 / 87: -0.366 1.366
- 21.75 / 88: -0.541 1.307
- 22 / 89: -0.707 1.225
- 22.25 / 90: -0.861 1.122
- 22.5 / 91: -1.000 1.000
- 22.75 / 92: -1.122 0.861
- 23 / 93: -1.225 0.707
- 23.25 / 94: -1.307 0.541
- 23.5 / 95: -1.366 0.366
- 23.75 / 96: -1.402 0.185
- 24 / 97: -1.414 0.000
- 24.25 / 98: -1.402 -0.185
- 24.5 / 99: -1.366 -0.366
- 24.75 / 100: -1.307 -0.541
- 25 / 101: -1.225 -0.707
- 25.25 / 102: -1.122 -0.861
- 25.5 / 103: -1.000 -1.000
- 25.75 / 104: -0.861 -1.122
- 26 / 105: -0.707 -1.225
- 26.25 / 106: -0.541 -1.307
- 26.5 / 107: -0.366 -1.366
- 26.75 / 108: -0.185 -1.402
- 27 / 109: 0.000 -1.414
- 27.25 / 110: 0.185 -1.402
- 27.5 / 111: 0.366 -1.366
- 27.75 / 112: 0.541 -1.307
- 28 / 113: 0.707 -1.225
- 28.25 / 114: 0.861 -1.122
- 28.5 / 115: 1.000 -1.000
- 28.75 / 116: 1.122 -0.861
- 29 / 117: 1.225 -0.707
- 29.25 / 118: 1.307 -0.541
- 29.5 / 119: 1.366 -0.366
- 29.75 / 120: 1.402 -0.185
- 30 / 121: 1.414 0.000
- 30.25 / 122: 1.402 0.185
- 30.5 / 123: 1.366 0.366
- 30.75 / 124: 1.307 0.541
- 31 / 125: 1.225 0.707
- 31.25 / 126: 1.122 0.861
- 31.5 / 127: 1.000 1.000
- 31.75 / 128: 0.861 1.122
- 32 / 129: 0.707 1.225
- 32.25 / 130: 0.541 1.307
- 32.5 / 131: 0.366 1.366
- 32.75 / 132: 0.185 1.402
- 33 / 133: 0.000 1.414
- 33.25 / 134: -0.185 1.402
- 33.5 / 135: -0.366 1.366
- 33.75 / 136: -0.541 1.307
- 34 / 137: -0.707 1.225
- 34.25 / 138: -0.861 1.122
- 34.5 / 139: -1.000 1.000
- 34.75 / 140: -1.122 0.861
- 35 / 141: -1.225 0.707
- 35.25 / 142: -1.307 0.541
- 35.5 / 143: -1.366 0.366
- 35.75 / 144: -1.402 0.185
- 36 / 145: -1.414 0.000
- 36.25 / 146: -1.402 -0.185
- 36.5 / 147: -1.366 -0.366
- 36.75 / 148: -1.307 -0.541
- 37 / 149: -1.225 -0.707
- 37.25 / 150: -1.122 -0.861
- 37.5 / 151: -1.000 -1.000
- 37.75 / 152: -0.861 -1.122
- 38 / 153: -0.707 -1.225
- 38.25 / 154: -0.541 -1.307
- 38.5 / 155: -0.366 -1.366
- 38.75 / 156: -0.185 -1.402
- 39 / 157: 0.000 -1.414
- 39.25 / 158: 0.185 -1.402
- 39.5 / 159: 0.366 -1.366
- 39.75 / 160: 0.541 -1.307
- 40 / 161: 0.707 -1.225
- 40.25 / 162: 0.861 -1.122
- 40.5 / 163: 1.000 -1.000
- 40.75 / 164: 1.122 -0.861
- 41 / 165: 1.225 -0.707
- 41.25 / 166: 1.307 -0.541
- 41.5 / 167: 1.366 -0.366
- 41.75 / 168: 1.402 -0.185
- 42 / 169: 1.414 0.000
- 42.25 / 170: 1.402 0.185
- 42.5 / 171: 1.366 0.366
- 42.75 / 172: 1.307 0.541
- 43 / 173: 1.225 0.707
- 43.25 / 174: 1.122 0.861
- 43.5 / 175: 1.000 1.000
- 43.75 / 176: 0.861 1.122
- 44 / 177: 0.707 1.225
- 44.25 / 178: 0.541 1.307
- 44.5 / 179: 0.366 1.366
- 44.75 / 180: 0.185 1.402
- 45 / 181: 0.000 1.414
- 45.25 / 182: -0.185 1.402
- 45.5 / 183: -0.366 1.366
- 45.75 / 184: -0.541 1.307
- 46 / 185: -0.707 1.225
- 46.25 / 186: -0.861 1.122
- 46.5 / 187: -1.000 1.000
- 46.75 / 188: -1.122 0.861
- 47 / 189: -1.225 0.707
- 47.25 / 190: -1.307 0.541
- 47.5 / 191: -1.366 0.366
- 47.75 / 192: -1.402 0.185
- 48 / 193: -1.414 0.000
- 48.25 / 194: -1.402 -0.185
- 48.5 / 195: -1.366 -0.366
- 48.75 / 196: -1.307 -0.541
- 49 / 197: -1.225 -0.707
- 49.25 / 198: -1.122 -0.861
- 49.5 / 199: -1.000 -1.000
- 49.75 / 200: -0.861 -1.122
- 50 / 201: -0.707 -1.225
- 50.25 / 202: -0.541 -1.307
- 50.5 / 203: -0.366 -1.366
- 50.75 / 204: -0.185 -1.402
- 51 / 205: 0.000 -1.414
- 51.25 / 206: 0.185 -1.402
- 51.5 / 207: 0.366 -1.366
- 51.75 / 208: 0.541 -1.307
- 52 / 209: 0.707 -1.225
- 52.25 / 210: 0.861 -1.122
- 52.5 / 211: 1.000 -1.000
- 52.75 / 212: 1.122 -0.861
- 53 / 213: 1.225 -0.707
- 53.25 / 214: 1.307 -0.541
- 53.5 / 215: 1.366 -0.366
- 53.75 / 216: 1.402 -0.185
- 54 / 217: 1.414 0.000
- 54.25 / 218: 1.402 0.185
- 54.5 / 219: 1.366 0.366
- 54.75 / 220: 1.307 0.541
- 55 / 221: 1.225 0.707
- 55.25 / 222: 1.122 0.861
- 55.5 / 223: 1.000 1.000
- 55.75 / 224: 0.861 1.122
- 56 / 225: 0.707 1.225
- 56.25 / 226: 0.541 1.307
- 56.5 / 227: 0.366 1.366
- 56.75 / 228: 0.185 1.402
- 57 / 229: 0.000 1.414
- 57.25 / 230: -0.185 1.402
- 57.5 / 231: -0.366 1.366
- 57.75 / 232: -0.541 1.307
- 58 / 233: -0.707 1.225
- 58.25 / 234: -0.861 1.122
- 58.5 / 235: -1.000 1.000
- 58.75 / 236: -1.122 0.861
- 59 / 237: -1.225 0.707
- 59.25 / 238: -1.307 0.541
- 59.5 / 239: -1.366 0.366
- 59.75 / 240: -1.402 0.185
+ 0 / 1: 0.000 -1.414
+ 0.25 / 2: 0.185 -1.402
+ 0.5 / 3: 0.366 -1.366
+ 0.75 / 4: 0.541 -1.307
+ 1 / 5: 0.707 -1.225
+ 1.25 / 6: 0.861 -1.122
+ 1.5 / 7: 1.000 -1.000
+ 1.75 / 8: 1.122 -0.861
+ 2 / 9: 1.225 -0.707
+ 2.25 / 10: 1.307 -0.541
+ 2.5 / 11: 1.366 -0.366
+ 2.75 / 12: 1.402 -0.185
+ 3 / 13: 1.414 0.000
+ 3.25 / 14: 1.402 0.185
+ 3.5 / 15: 1.366 0.366
+ 3.75 / 16: 1.307 0.541
+ 4 / 17: 1.225 0.707
+ 4.25 / 18: 1.122 0.861
+ 4.5 / 19: 1.000 1.000
+ 4.75 / 20: 0.861 1.122
+ 5 / 21: 0.707 1.225
+ 5.25 / 22: 0.541 1.307
+ 5.5 / 23: 0.366 1.366
+ 5.75 / 24: 0.185 1.402
+ 6 / 25: 0.000 1.414
+ 6.25 / 26: -0.185 1.402
+ 6.5 / 27: -0.366 1.366
+ 6.75 / 28: -0.541 1.307
+ 7 / 29: -0.707 1.225
+ 7.25 / 30: -0.861 1.122
+ 7.5 / 31: -1.000 1.000
+ 7.75 / 32: -1.122 0.861
+ 8 / 33: -1.225 0.707
+ 8.25 / 34: -1.307 0.541
+ 8.5 / 35: -1.366 0.366
+ 8.75 / 36: -1.402 0.185
+ 9 / 37: -1.414 0.000
+ 9.25 / 38: -1.402 -0.185
+ 9.5 / 39: -1.366 -0.366
+ 9.75 / 40: -1.307 -0.541
+ 10 / 41: -1.225 -0.707
+ 10.25 / 42: -1.122 -0.861
+ 10.5 / 43: -1.000 -1.000
+ 10.75 / 44: -0.861 -1.122
+ 11 / 45: -0.707 -1.225
+ 11.25 / 46: -0.541 -1.307
+ 11.5 / 47: -0.366 -1.366
+ 11.75 / 48: -0.185 -1.402
+ 12 / 49: 0.000 -1.414
+ 12.25 / 50: 0.185 -1.402
+ 12.5 / 51: 0.366 -1.366
+ 12.75 / 52: 0.541 -1.307
+ 13 / 53: 0.707 -1.225
+ 13.25 / 54: 0.861 -1.122
+ 13.5 / 55: 1.000 -1.000
+ 13.75 / 56: 1.122 -0.861
+ 14 / 57: 1.225 -0.707
+ 14.25 / 58: 1.307 -0.541
+ 14.5 / 59: 1.366 -0.366
+ 14.75 / 60: 1.402 -0.185
+ 15 / 61: 1.414 0.000
+ 15.25 / 62: 1.402 0.185
+ 15.5 / 63: 1.366 0.366
+ 15.75 / 64: 1.307 0.541
+ 16 / 65: 1.225 0.707
+ 16.25 / 66: 1.122 0.861
+ 16.5 / 67: 1.000 1.000
+ 16.75 / 68: 0.861 1.122
+ 17 / 69: 0.707 1.225
+ 17.25 / 70: 0.541 1.307
+ 17.5 / 71: 0.366 1.366
+ 17.75 / 72: 0.185 1.402
+ 18 / 73: 0.000 1.414
+ 18.25 / 74: -0.185 1.402
+ 18.5 / 75: -0.366 1.366
+ 18.75 / 76: -0.541 1.307
+ 19 / 77: -0.707 1.225
+ 19.25 / 78: -0.861 1.122
+ 19.5 / 79: -1.000 1.000
+ 19.75 / 80: -1.122 0.861
+ 20 / 81: -1.225 0.707
+ 20.25 / 82: -1.307 0.541
+ 20.5 / 83: -1.366 0.366
+ 20.75 / 84: -1.402 0.185
+ 21 / 85: -1.414 0.000
+ 21.25 / 86: -1.402 -0.185
+ 21.5 / 87: -1.366 -0.366
+ 21.75 / 88: -1.307 -0.541
+ 22 / 89: -1.225 -0.707
+ 22.25 / 90: -1.122 -0.861
+ 22.5 / 91: -1.000 -1.000
+ 22.75 / 92: -0.861 -1.122
+ 23 / 93: -0.707 -1.225
+ 23.25 / 94: -0.541 -1.307
+ 23.5 / 95: -0.366 -1.366
+ 23.75 / 96: -0.185 -1.402
+ 24 / 97: 0.000 -1.414
+ 24.25 / 98: 0.185 -1.402
+ 24.5 / 99: 0.366 -1.366
+ 24.75 / 100: 0.541 -1.307
+ 25 / 101: 0.707 -1.225
+ 25.25 / 102: 0.861 -1.122
+ 25.5 / 103: 1.000 -1.000
+ 25.75 / 104: 1.122 -0.861
+ 26 / 105: 1.225 -0.707
+ 26.25 / 106: 1.307 -0.541
+ 26.5 / 107: 1.366 -0.366
+ 26.75 / 108: 1.402 -0.185
+ 27 / 109: 1.414 0.000
+ 27.25 / 110: 1.402 0.185
+ 27.5 / 111: 1.366 0.366
+ 27.75 / 112: 1.307 0.541
+ 28 / 113: 1.225 0.707
+ 28.25 / 114: 1.122 0.861
+ 28.5 / 115: 1.000 1.000
+ 28.75 / 116: 0.861 1.122
+ 29 / 117: 0.707 1.225
+ 29.25 / 118: 0.541 1.307
+ 29.5 / 119: 0.366 1.366
+ 29.75 / 120: 0.185 1.402
+ 30 / 121: 0.000 1.414
+ 30.25 / 122: -0.185 1.402
+ 30.5 / 123: -0.366 1.366
+ 30.75 / 124: -0.541 1.307
+ 31 / 125: -0.707 1.225
+ 31.25 / 126: -0.861 1.122
+ 31.5 / 127: -1.000 1.000
+ 31.75 / 128: -1.122 0.861
+ 32 / 129: -1.225 0.707
+ 32.25 / 130: -1.307 0.541
+ 32.5 / 131: -1.366 0.366
+ 32.75 / 132: -1.402 0.185
+ 33 / 133: -1.414 0.000
+ 33.25 / 134: -1.402 -0.185
+ 33.5 / 135: -1.366 -0.366
+ 33.75 / 136: -1.307 -0.541
+ 34 / 137: -1.225 -0.707
+ 34.25 / 138: -1.122 -0.861
+ 34.5 / 139: -1.000 -1.000
+ 34.75 / 140: -0.861 -1.122
+ 35 / 141: -0.707 -1.225
+ 35.25 / 142: -0.541 -1.307
+ 35.5 / 143: -0.366 -1.366
+ 35.75 / 144: -0.185 -1.402
+ 36 / 145: 0.000 -1.414
+ 36.25 / 146: 0.185 -1.402
+ 36.5 / 147: 0.366 -1.366
+ 36.75 / 148: 0.541 -1.307
+ 37 / 149: 0.707 -1.225
+ 37.25 / 150: 0.861 -1.122
+ 37.5 / 151: 1.000 -1.000
+ 37.75 / 152: 1.122 -0.861
+ 38 / 153: 1.225 -0.707
+ 38.25 / 154: 1.307 -0.541
+ 38.5 / 155: 1.366 -0.366
+ 38.75 / 156: 1.402 -0.185
+ 39 / 157: 1.414 0.000
+ 39.25 / 158: 1.402 0.185
+ 39.5 / 159: 1.366 0.366
+ 39.75 / 160: 1.307 0.541
+ 40 / 161: 1.225 0.707
+ 40.25 / 162: 1.122 0.861
+ 40.5 / 163: 1.000 1.000
+ 40.75 / 164: 0.861 1.122
+ 41 / 165: 0.707 1.225
+ 41.25 / 166: 0.541 1.307
+ 41.5 / 167: 0.366 1.366
+ 41.75 / 168: 0.185 1.402
+ 42 / 169: 0.000 1.414
+ 42.25 / 170: -0.185 1.402
+ 42.5 / 171: -0.366 1.366
+ 42.75 / 172: -0.541 1.307
+ 43 / 173: -0.707 1.225
+ 43.25 / 174: -0.861 1.122
+ 43.5 / 175: -1.000 1.000
+ 43.75 / 176: -1.122 0.861
+ 44 / 177: -1.225 0.707
+ 44.25 / 178: -1.307 0.541
+ 44.5 / 179: -1.366 0.366
+ 44.75 / 180: -1.402 0.185
+ 45 / 181: -1.414 0.000
+ 45.25 / 182: -1.402 -0.185
+ 45.5 / 183: -1.366 -0.366
+ 45.75 / 184: -1.307 -0.541
+ 46 / 185: -1.225 -0.707
+ 46.25 / 186: -1.122 -0.861
+ 46.5 / 187: -1.000 -1.000
+ 46.75 / 188: -0.861 -1.122
+ 47 / 189: -0.707 -1.225
+ 47.25 / 190: -0.541 -1.307
+ 47.5 / 191: -0.366 -1.366
+ 47.75 / 192: -0.185 -1.402
+ 48 / 193: 0.000 -1.414
+ 48.25 / 194: 0.185 -1.402
+ 48.5 / 195: 0.366 -1.366
+ 48.75 / 196: 0.541 -1.307
+ 49 / 197: 0.707 -1.225
+ 49.25 / 198: 0.861 -1.122
+ 49.5 / 199: 1.000 -1.000
+ 49.75 / 200: 1.122 -0.861
+ 50 / 201: 1.225 -0.707
+ 50.25 / 202: 1.307 -0.541
+ 50.5 / 203: 1.366 -0.366
+ 50.75 / 204: 1.402 -0.185
+ 51 / 205: 1.414 0.000
+ 51.25 / 206: 1.402 0.185
+ 51.5 / 207: 1.366 0.366
+ 51.75 / 208: 1.307 0.541
+ 52 / 209: 1.225 0.707
+ 52.25 / 210: 1.122 0.861
+ 52.5 / 211: 1.000 1.000
+ 52.75 / 212: 0.861 1.122
+ 53 / 213: 0.707 1.225
+ 53.25 / 214: 0.541 1.307
+ 53.5 / 215: 0.366 1.366
+ 53.75 / 216: 0.185 1.402
+ 54 / 217: 0.000 1.414
+ 54.25 / 218: -0.185 1.402
+ 54.5 / 219: -0.366 1.366
+ 54.75 / 220: -0.541 1.307
+ 55 / 221: -0.707 1.225
+ 55.25 / 222: -0.861 1.122
+ 55.5 / 223: -1.000 1.000
+ 55.75 / 224: -1.122 0.861
+ 56 / 225: -1.225 0.707
+ 56.25 / 226: -1.307 0.541
+ 56.5 / 227: -1.366 0.366
+ 56.75 / 228: -1.402 0.185
+ 57 / 229: -1.414 0.000
+ 57.25 / 230: -1.402 -0.185
+ 57.5 / 231: -1.366 -0.366
+ 57.75 / 232: -1.307 -0.541
+ 58 / 233: -1.225 -0.707
+ 58.25 / 234: -1.122 -0.861
+ 58.5 / 235: -1.000 -1.000
+ 58.75 / 236: -0.861 -1.122
+ 59 / 237: -0.707 -1.225
+ 59.25 / 238: -0.541 -1.307
+ 59.5 / 239: -0.366 -1.366
+ 59.75 / 240: -0.185 -1.402
! The sum over all significant EOFs of the outer product of
! EOF(i) and TAF(i) should return the zero-time-meaned data
@@ -67361,254 +67510,254 @@ list eofsvd_space(space12)
SUBSET : 3 by 3 points (X-T)
1 2 3
1 2 3
- 1 / 1: -0.7071 0.0000 ....
- 2 / 2: 0.0000 -0.7071 ....
+ 1 / 1: 0.0000 0.7071 ....
+ 2 / 2: -0.7071 0.0000 ....
3 / 3: .... .... ....
list eofsvd_tfunc(space12)
VARIABLE : EOFSVD_TFUNC(SPACE12)
SUBSET : 3 by 240 points (X-T)
1 2 3
1 2 3
- 0 / 1: -1.414 0.000 ....
- 0.25 / 2: -1.402 -0.185 ....
- 0.5 / 3: -1.366 -0.366 ....
- 0.75 / 4: -1.307 -0.541 ....
- 1 / 5: -1.225 -0.707 ....
- 1.25 / 6: -1.122 -0.861 ....
- 1.5 / 7: -1.000 -1.000 ....
- 1.75 / 8: -0.861 -1.122 ....
- 2 / 9: -0.707 -1.225 ....
- 2.25 / 10: -0.541 -1.307 ....
- 2.5 / 11: -0.366 -1.366 ....
- 2.75 / 12: -0.185 -1.402 ....
- 3 / 13: 0.000 -1.414 ....
- 3.25 / 14: 0.185 -1.402 ....
- 3.5 / 15: 0.366 -1.366 ....
- 3.75 / 16: 0.541 -1.307 ....
- 4 / 17: 0.707 -1.225 ....
- 4.25 / 18: 0.861 -1.122 ....
- 4.5 / 19: 1.000 -1.000 ....
- 4.75 / 20: 1.122 -0.861 ....
- 5 / 21: 1.225 -0.707 ....
- 5.25 / 22: 1.307 -0.541 ....
- 5.5 / 23: 1.366 -0.366 ....
- 5.75 / 24: 1.402 -0.185 ....
- 6 / 25: 1.414 0.000 ....
- 6.25 / 26: 1.402 0.185 ....
- 6.5 / 27: 1.366 0.366 ....
- 6.75 / 28: 1.307 0.541 ....
- 7 / 29: 1.225 0.707 ....
- 7.25 / 30: 1.122 0.861 ....
- 7.5 / 31: 1.000 1.000 ....
- 7.75 / 32: 0.861 1.122 ....
- 8 / 33: 0.707 1.225 ....
- 8.25 / 34: 0.541 1.307 ....
- 8.5 / 35: 0.366 1.366 ....
- 8.75 / 36: 0.185 1.402 ....
- 9 / 37: 0.000 1.414 ....
- 9.25 / 38: -0.185 1.402 ....
- 9.5 / 39: -0.366 1.366 ....
- 9.75 / 40: -0.541 1.307 ....
- 10 / 41: -0.707 1.225 ....
- 10.25 / 42: -0.861 1.122 ....
- 10.5 / 43: -1.000 1.000 ....
- 10.75 / 44: -1.122 0.861 ....
- 11 / 45: -1.225 0.707 ....
- 11.25 / 46: -1.307 0.541 ....
- 11.5 / 47: -1.366 0.366 ....
- 11.75 / 48: -1.402 0.185 ....
- 12 / 49: -1.414 0.000 ....
- 12.25 / 50: -1.402 -0.185 ....
- 12.5 / 51: -1.366 -0.366 ....
- 12.75 / 52: -1.307 -0.541 ....
- 13 / 53: -1.225 -0.707 ....
- 13.25 / 54: -1.122 -0.861 ....
- 13.5 / 55: -1.000 -1.000 ....
- 13.75 / 56: -0.861 -1.122 ....
- 14 / 57: -0.707 -1.225 ....
- 14.25 / 58: -0.541 -1.307 ....
- 14.5 / 59: -0.366 -1.366 ....
- 14.75 / 60: -0.185 -1.402 ....
- 15 / 61: 0.000 -1.414 ....
- 15.25 / 62: 0.185 -1.402 ....
- 15.5 / 63: 0.366 -1.366 ....
- 15.75 / 64: 0.541 -1.307 ....
- 16 / 65: 0.707 -1.225 ....
- 16.25 / 66: 0.861 -1.122 ....
- 16.5 / 67: 1.000 -1.000 ....
- 16.75 / 68: 1.122 -0.861 ....
- 17 / 69: 1.225 -0.707 ....
- 17.25 / 70: 1.307 -0.541 ....
- 17.5 / 71: 1.366 -0.366 ....
- 17.75 / 72: 1.402 -0.185 ....
- 18 / 73: 1.414 0.000 ....
- 18.25 / 74: 1.402 0.185 ....
- 18.5 / 75: 1.366 0.366 ....
- 18.75 / 76: 1.307 0.541 ....
- 19 / 77: 1.225 0.707 ....
- 19.25 / 78: 1.122 0.861 ....
- 19.5 / 79: 1.000 1.000 ....
- 19.75 / 80: 0.861 1.122 ....
- 20 / 81: 0.707 1.225 ....
- 20.25 / 82: 0.541 1.307 ....
- 20.5 / 83: 0.366 1.366 ....
- 20.75 / 84: 0.185 1.402 ....
- 21 / 85: 0.000 1.414 ....
- 21.25 / 86: -0.185 1.402 ....
- 21.5 / 87: -0.366 1.366 ....
- 21.75 / 88: -0.541 1.307 ....
- 22 / 89: -0.707 1.225 ....
- 22.25 / 90: -0.861 1.122 ....
- 22.5 / 91: -1.000 1.000 ....
- 22.75 / 92: -1.122 0.861 ....
- 23 / 93: -1.225 0.707 ....
- 23.25 / 94: -1.307 0.541 ....
- 23.5 / 95: -1.366 0.366 ....
- 23.75 / 96: -1.402 0.185 ....
- 24 / 97: -1.414 0.000 ....
- 24.25 / 98: -1.402 -0.185 ....
- 24.5 / 99: -1.366 -0.366 ....
- 24.75 / 100: -1.307 -0.541 ....
- 25 / 101: -1.225 -0.707 ....
- 25.25 / 102: -1.122 -0.861 ....
- 25.5 / 103: -1.000 -1.000 ....
- 25.75 / 104: -0.861 -1.122 ....
- 26 / 105: -0.707 -1.225 ....
- 26.25 / 106: -0.541 -1.307 ....
- 26.5 / 107: -0.366 -1.366 ....
- 26.75 / 108: -0.185 -1.402 ....
- 27 / 109: 0.000 -1.414 ....
- 27.25 / 110: 0.185 -1.402 ....
- 27.5 / 111: 0.366 -1.366 ....
- 27.75 / 112: 0.541 -1.307 ....
- 28 / 113: 0.707 -1.225 ....
- 28.25 / 114: 0.861 -1.122 ....
- 28.5 / 115: 1.000 -1.000 ....
- 28.75 / 116: 1.122 -0.861 ....
- 29 / 117: 1.225 -0.707 ....
- 29.25 / 118: 1.307 -0.541 ....
- 29.5 / 119: 1.366 -0.366 ....
- 29.75 / 120: 1.402 -0.185 ....
- 30 / 121: 1.414 0.000 ....
- 30.25 / 122: 1.402 0.185 ....
- 30.5 / 123: 1.366 0.366 ....
- 30.75 / 124: 1.307 0.541 ....
- 31 / 125: 1.225 0.707 ....
- 31.25 / 126: 1.122 0.861 ....
- 31.5 / 127: 1.000 1.000 ....
- 31.75 / 128: 0.861 1.122 ....
- 32 / 129: 0.707 1.225 ....
- 32.25 / 130: 0.541 1.307 ....
- 32.5 / 131: 0.366 1.366 ....
- 32.75 / 132: 0.185 1.402 ....
- 33 / 133: 0.000 1.414 ....
- 33.25 / 134: -0.185 1.402 ....
- 33.5 / 135: -0.366 1.366 ....
- 33.75 / 136: -0.541 1.307 ....
- 34 / 137: -0.707 1.225 ....
- 34.25 / 138: -0.861 1.122 ....
- 34.5 / 139: -1.000 1.000 ....
- 34.75 / 140: -1.122 0.861 ....
- 35 / 141: -1.225 0.707 ....
- 35.25 / 142: -1.307 0.541 ....
- 35.5 / 143: -1.366 0.366 ....
- 35.75 / 144: -1.402 0.185 ....
- 36 / 145: -1.414 0.000 ....
- 36.25 / 146: -1.402 -0.185 ....
- 36.5 / 147: -1.366 -0.366 ....
- 36.75 / 148: -1.307 -0.541 ....
- 37 / 149: -1.225 -0.707 ....
- 37.25 / 150: -1.122 -0.861 ....
- 37.5 / 151: -1.000 -1.000 ....
- 37.75 / 152: -0.861 -1.122 ....
- 38 / 153: -0.707 -1.225 ....
- 38.25 / 154: -0.541 -1.307 ....
- 38.5 / 155: -0.366 -1.366 ....
- 38.75 / 156: -0.185 -1.402 ....
- 39 / 157: 0.000 -1.414 ....
- 39.25 / 158: 0.185 -1.402 ....
- 39.5 / 159: 0.366 -1.366 ....
- 39.75 / 160: 0.541 -1.307 ....
- 40 / 161: 0.707 -1.225 ....
- 40.25 / 162: 0.861 -1.122 ....
- 40.5 / 163: 1.000 -1.000 ....
- 40.75 / 164: 1.122 -0.861 ....
- 41 / 165: 1.225 -0.707 ....
- 41.25 / 166: 1.307 -0.541 ....
- 41.5 / 167: 1.366 -0.366 ....
- 41.75 / 168: 1.402 -0.185 ....
- 42 / 169: 1.414 0.000 ....
- 42.25 / 170: 1.402 0.185 ....
- 42.5 / 171: 1.366 0.366 ....
- 42.75 / 172: 1.307 0.541 ....
- 43 / 173: 1.225 0.707 ....
- 43.25 / 174: 1.122 0.861 ....
- 43.5 / 175: 1.000 1.000 ....
- 43.75 / 176: 0.861 1.122 ....
- 44 / 177: 0.707 1.225 ....
- 44.25 / 178: 0.541 1.307 ....
- 44.5 / 179: 0.366 1.366 ....
- 44.75 / 180: 0.185 1.402 ....
- 45 / 181: 0.000 1.414 ....
- 45.25 / 182: -0.185 1.402 ....
- 45.5 / 183: -0.366 1.366 ....
- 45.75 / 184: -0.541 1.307 ....
- 46 / 185: -0.707 1.225 ....
- 46.25 / 186: -0.861 1.122 ....
- 46.5 / 187: -1.000 1.000 ....
- 46.75 / 188: -1.122 0.861 ....
- 47 / 189: -1.225 0.707 ....
- 47.25 / 190: -1.307 0.541 ....
- 47.5 / 191: -1.366 0.366 ....
- 47.75 / 192: -1.402 0.185 ....
- 48 / 193: -1.414 0.000 ....
- 48.25 / 194: -1.402 -0.185 ....
- 48.5 / 195: -1.366 -0.366 ....
- 48.75 / 196: -1.307 -0.541 ....
- 49 / 197: -1.225 -0.707 ....
- 49.25 / 198: -1.122 -0.861 ....
- 49.5 / 199: -1.000 -1.000 ....
- 49.75 / 200: -0.861 -1.122 ....
- 50 / 201: -0.707 -1.225 ....
- 50.25 / 202: -0.541 -1.307 ....
- 50.5 / 203: -0.366 -1.366 ....
- 50.75 / 204: -0.185 -1.402 ....
- 51 / 205: 0.000 -1.414 ....
- 51.25 / 206: 0.185 -1.402 ....
- 51.5 / 207: 0.366 -1.366 ....
- 51.75 / 208: 0.541 -1.307 ....
- 52 / 209: 0.707 -1.225 ....
- 52.25 / 210: 0.861 -1.122 ....
- 52.5 / 211: 1.000 -1.000 ....
- 52.75 / 212: 1.122 -0.861 ....
- 53 / 213: 1.225 -0.707 ....
- 53.25 / 214: 1.307 -0.541 ....
- 53.5 / 215: 1.366 -0.366 ....
- 53.75 / 216: 1.402 -0.185 ....
- 54 / 217: 1.414 0.000 ....
- 54.25 / 218: 1.402 0.185 ....
- 54.5 / 219: 1.366 0.366 ....
- 54.75 / 220: 1.307 0.541 ....
- 55 / 221: 1.225 0.707 ....
- 55.25 / 222: 1.122 0.861 ....
- 55.5 / 223: 1.000 1.000 ....
- 55.75 / 224: 0.861 1.122 ....
- 56 / 225: 0.707 1.225 ....
- 56.25 / 226: 0.541 1.307 ....
- 56.5 / 227: 0.366 1.366 ....
- 56.75 / 228: 0.185 1.402 ....
- 57 / 229: 0.000 1.414 ....
- 57.25 / 230: -0.185 1.402 ....
- 57.5 / 231: -0.366 1.366 ....
- 57.75 / 232: -0.541 1.307 ....
- 58 / 233: -0.707 1.225 ....
- 58.25 / 234: -0.861 1.122 ....
- 58.5 / 235: -1.000 1.000 ....
- 58.75 / 236: -1.122 0.861 ....
- 59 / 237: -1.225 0.707 ....
- 59.25 / 238: -1.307 0.541 ....
- 59.5 / 239: -1.366 0.366 ....
- 59.75 / 240: -1.402 0.185 ....
+ 0 / 1: 0.000 -1.414 ....
+ 0.25 / 2: 0.185 -1.402 ....
+ 0.5 / 3: 0.366 -1.366 ....
+ 0.75 / 4: 0.541 -1.307 ....
+ 1 / 5: 0.707 -1.225 ....
+ 1.25 / 6: 0.861 -1.122 ....
+ 1.5 / 7: 1.000 -1.000 ....
+ 1.75 / 8: 1.122 -0.861 ....
+ 2 / 9: 1.225 -0.707 ....
+ 2.25 / 10: 1.307 -0.541 ....
+ 2.5 / 11: 1.366 -0.366 ....
+ 2.75 / 12: 1.402 -0.185 ....
+ 3 / 13: 1.414 0.000 ....
+ 3.25 / 14: 1.402 0.185 ....
+ 3.5 / 15: 1.366 0.366 ....
+ 3.75 / 16: 1.307 0.541 ....
+ 4 / 17: 1.225 0.707 ....
+ 4.25 / 18: 1.122 0.861 ....
+ 4.5 / 19: 1.000 1.000 ....
+ 4.75 / 20: 0.861 1.122 ....
+ 5 / 21: 0.707 1.225 ....
+ 5.25 / 22: 0.541 1.307 ....
+ 5.5 / 23: 0.366 1.366 ....
+ 5.75 / 24: 0.185 1.402 ....
+ 6 / 25: 0.000 1.414 ....
+ 6.25 / 26: -0.185 1.402 ....
+ 6.5 / 27: -0.366 1.366 ....
+ 6.75 / 28: -0.541 1.307 ....
+ 7 / 29: -0.707 1.225 ....
+ 7.25 / 30: -0.861 1.122 ....
+ 7.5 / 31: -1.000 1.000 ....
+ 7.75 / 32: -1.122 0.861 ....
+ 8 / 33: -1.225 0.707 ....
+ 8.25 / 34: -1.307 0.541 ....
+ 8.5 / 35: -1.366 0.366 ....
+ 8.75 / 36: -1.402 0.185 ....
+ 9 / 37: -1.414 0.000 ....
+ 9.25 / 38: -1.402 -0.185 ....
+ 9.5 / 39: -1.366 -0.366 ....
+ 9.75 / 40: -1.307 -0.541 ....
+ 10 / 41: -1.225 -0.707 ....
+ 10.25 / 42: -1.122 -0.861 ....
+ 10.5 / 43: -1.000 -1.000 ....
+ 10.75 / 44: -0.861 -1.122 ....
+ 11 / 45: -0.707 -1.225 ....
+ 11.25 / 46: -0.541 -1.307 ....
+ 11.5 / 47: -0.366 -1.366 ....
+ 11.75 / 48: -0.185 -1.402 ....
+ 12 / 49: 0.000 -1.414 ....
+ 12.25 / 50: 0.185 -1.402 ....
+ 12.5 / 51: 0.366 -1.366 ....
+ 12.75 / 52: 0.541 -1.307 ....
+ 13 / 53: 0.707 -1.225 ....
+ 13.25 / 54: 0.861 -1.122 ....
+ 13.5 / 55: 1.000 -1.000 ....
+ 13.75 / 56: 1.122 -0.861 ....
+ 14 / 57: 1.225 -0.707 ....
+ 14.25 / 58: 1.307 -0.541 ....
+ 14.5 / 59: 1.366 -0.366 ....
+ 14.75 / 60: 1.402 -0.185 ....
+ 15 / 61: 1.414 0.000 ....
+ 15.25 / 62: 1.402 0.185 ....
+ 15.5 / 63: 1.366 0.366 ....
+ 15.75 / 64: 1.307 0.541 ....
+ 16 / 65: 1.225 0.707 ....
+ 16.25 / 66: 1.122 0.861 ....
+ 16.5 / 67: 1.000 1.000 ....
+ 16.75 / 68: 0.861 1.122 ....
+ 17 / 69: 0.707 1.225 ....
+ 17.25 / 70: 0.541 1.307 ....
+ 17.5 / 71: 0.366 1.366 ....
+ 17.75 / 72: 0.185 1.402 ....
+ 18 / 73: 0.000 1.414 ....
+ 18.25 / 74: -0.185 1.402 ....
+ 18.5 / 75: -0.366 1.366 ....
+ 18.75 / 76: -0.541 1.307 ....
+ 19 / 77: -0.707 1.225 ....
+ 19.25 / 78: -0.861 1.122 ....
+ 19.5 / 79: -1.000 1.000 ....
+ 19.75 / 80: -1.122 0.861 ....
+ 20 / 81: -1.225 0.707 ....
+ 20.25 / 82: -1.307 0.541 ....
+ 20.5 / 83: -1.366 0.366 ....
+ 20.75 / 84: -1.402 0.185 ....
+ 21 / 85: -1.414 0.000 ....
+ 21.25 / 86: -1.402 -0.185 ....
+ 21.5 / 87: -1.366 -0.366 ....
+ 21.75 / 88: -1.307 -0.541 ....
+ 22 / 89: -1.225 -0.707 ....
+ 22.25 / 90: -1.122 -0.861 ....
+ 22.5 / 91: -1.000 -1.000 ....
+ 22.75 / 92: -0.861 -1.122 ....
+ 23 / 93: -0.707 -1.225 ....
+ 23.25 / 94: -0.541 -1.307 ....
+ 23.5 / 95: -0.366 -1.366 ....
+ 23.75 / 96: -0.185 -1.402 ....
+ 24 / 97: 0.000 -1.414 ....
+ 24.25 / 98: 0.185 -1.402 ....
+ 24.5 / 99: 0.366 -1.366 ....
+ 24.75 / 100: 0.541 -1.307 ....
+ 25 / 101: 0.707 -1.225 ....
+ 25.25 / 102: 0.861 -1.122 ....
+ 25.5 / 103: 1.000 -1.000 ....
+ 25.75 / 104: 1.122 -0.861 ....
+ 26 / 105: 1.225 -0.707 ....
+ 26.25 / 106: 1.307 -0.541 ....
+ 26.5 / 107: 1.366 -0.366 ....
+ 26.75 / 108: 1.402 -0.185 ....
+ 27 / 109: 1.414 0.000 ....
+ 27.25 / 110: 1.402 0.185 ....
+ 27.5 / 111: 1.366 0.366 ....
+ 27.75 / 112: 1.307 0.541 ....
+ 28 / 113: 1.225 0.707 ....
+ 28.25 / 114: 1.122 0.861 ....
+ 28.5 / 115: 1.000 1.000 ....
+ 28.75 / 116: 0.861 1.122 ....
+ 29 / 117: 0.707 1.225 ....
+ 29.25 / 118: 0.541 1.307 ....
+ 29.5 / 119: 0.366 1.366 ....
+ 29.75 / 120: 0.185 1.402 ....
+ 30 / 121: 0.000 1.414 ....
+ 30.25 / 122: -0.185 1.402 ....
+ 30.5 / 123: -0.366 1.366 ....
+ 30.75 / 124: -0.541 1.307 ....
+ 31 / 125: -0.707 1.225 ....
+ 31.25 / 126: -0.861 1.122 ....
+ 31.5 / 127: -1.000 1.000 ....
+ 31.75 / 128: -1.122 0.861 ....
+ 32 / 129: -1.225 0.707 ....
+ 32.25 / 130: -1.307 0.541 ....
+ 32.5 / 131: -1.366 0.366 ....
+ 32.75 / 132: -1.402 0.185 ....
+ 33 / 133: -1.414 0.000 ....
+ 33.25 / 134: -1.402 -0.185 ....
+ 33.5 / 135: -1.366 -0.366 ....
+ 33.75 / 136: -1.307 -0.541 ....
+ 34 / 137: -1.225 -0.707 ....
+ 34.25 / 138: -1.122 -0.861 ....
+ 34.5 / 139: -1.000 -1.000 ....
+ 34.75 / 140: -0.861 -1.122 ....
+ 35 / 141: -0.707 -1.225 ....
+ 35.25 / 142: -0.541 -1.307 ....
+ 35.5 / 143: -0.366 -1.366 ....
+ 35.75 / 144: -0.185 -1.402 ....
+ 36 / 145: 0.000 -1.414 ....
+ 36.25 / 146: 0.185 -1.402 ....
+ 36.5 / 147: 0.366 -1.366 ....
+ 36.75 / 148: 0.541 -1.307 ....
+ 37 / 149: 0.707 -1.225 ....
+ 37.25 / 150: 0.861 -1.122 ....
+ 37.5 / 151: 1.000 -1.000 ....
+ 37.75 / 152: 1.122 -0.861 ....
+ 38 / 153: 1.225 -0.707 ....
+ 38.25 / 154: 1.307 -0.541 ....
+ 38.5 / 155: 1.366 -0.366 ....
+ 38.75 / 156: 1.402 -0.185 ....
+ 39 / 157: 1.414 0.000 ....
+ 39.25 / 158: 1.402 0.185 ....
+ 39.5 / 159: 1.366 0.366 ....
+ 39.75 / 160: 1.307 0.541 ....
+ 40 / 161: 1.225 0.707 ....
+ 40.25 / 162: 1.122 0.861 ....
+ 40.5 / 163: 1.000 1.000 ....
+ 40.75 / 164: 0.861 1.122 ....
+ 41 / 165: 0.707 1.225 ....
+ 41.25 / 166: 0.541 1.307 ....
+ 41.5 / 167: 0.366 1.366 ....
+ 41.75 / 168: 0.185 1.402 ....
+ 42 / 169: 0.000 1.414 ....
+ 42.25 / 170: -0.185 1.402 ....
+ 42.5 / 171: -0.366 1.366 ....
+ 42.75 / 172: -0.541 1.307 ....
+ 43 / 173: -0.707 1.225 ....
+ 43.25 / 174: -0.861 1.122 ....
+ 43.5 / 175: -1.000 1.000 ....
+ 43.75 / 176: -1.122 0.861 ....
+ 44 / 177: -1.225 0.707 ....
+ 44.25 / 178: -1.307 0.541 ....
+ 44.5 / 179: -1.366 0.366 ....
+ 44.75 / 180: -1.402 0.185 ....
+ 45 / 181: -1.414 0.000 ....
+ 45.25 / 182: -1.402 -0.185 ....
+ 45.5 / 183: -1.366 -0.366 ....
+ 45.75 / 184: -1.307 -0.541 ....
+ 46 / 185: -1.225 -0.707 ....
+ 46.25 / 186: -1.122 -0.861 ....
+ 46.5 / 187: -1.000 -1.000 ....
+ 46.75 / 188: -0.861 -1.122 ....
+ 47 / 189: -0.707 -1.225 ....
+ 47.25 / 190: -0.541 -1.307 ....
+ 47.5 / 191: -0.366 -1.366 ....
+ 47.75 / 192: -0.185 -1.402 ....
+ 48 / 193: 0.000 -1.414 ....
+ 48.25 / 194: 0.185 -1.402 ....
+ 48.5 / 195: 0.366 -1.366 ....
+ 48.75 / 196: 0.541 -1.307 ....
+ 49 / 197: 0.707 -1.225 ....
+ 49.25 / 198: 0.861 -1.122 ....
+ 49.5 / 199: 1.000 -1.000 ....
+ 49.75 / 200: 1.122 -0.861 ....
+ 50 / 201: 1.225 -0.707 ....
+ 50.25 / 202: 1.307 -0.541 ....
+ 50.5 / 203: 1.366 -0.366 ....
+ 50.75 / 204: 1.402 -0.185 ....
+ 51 / 205: 1.414 0.000 ....
+ 51.25 / 206: 1.402 0.185 ....
+ 51.5 / 207: 1.366 0.366 ....
+ 51.75 / 208: 1.307 0.541 ....
+ 52 / 209: 1.225 0.707 ....
+ 52.25 / 210: 1.122 0.861 ....
+ 52.5 / 211: 1.000 1.000 ....
+ 52.75 / 212: 0.861 1.122 ....
+ 53 / 213: 0.707 1.225 ....
+ 53.25 / 214: 0.541 1.307 ....
+ 53.5 / 215: 0.366 1.366 ....
+ 53.75 / 216: 0.185 1.402 ....
+ 54 / 217: 0.000 1.414 ....
+ 54.25 / 218: -0.185 1.402 ....
+ 54.5 / 219: -0.366 1.366 ....
+ 54.75 / 220: -0.541 1.307 ....
+ 55 / 221: -0.707 1.225 ....
+ 55.25 / 222: -0.861 1.122 ....
+ 55.5 / 223: -1.000 1.000 ....
+ 55.75 / 224: -1.122 0.861 ....
+ 56 / 225: -1.225 0.707 ....
+ 56.25 / 226: -1.307 0.541 ....
+ 56.5 / 227: -1.366 0.366 ....
+ 56.75 / 228: -1.402 0.185 ....
+ 57 / 229: -1.414 0.000 ....
+ 57.25 / 230: -1.402 -0.185 ....
+ 57.5 / 231: -1.366 -0.366 ....
+ 57.75 / 232: -1.307 -0.541 ....
+ 58 / 233: -1.225 -0.707 ....
+ 58.25 / 234: -1.122 -0.861 ....
+ 58.5 / 235: -1.000 -1.000 ....
+ 58.75 / 236: -0.861 -1.122 ....
+ 59 / 237: -0.707 -1.225 ....
+ 59.25 / 238: -0.541 -1.307 ....
+ 59.5 / 239: -0.366 -1.366 ....
+ 59.75 / 240: -0.185 -1.402 ....
! If there are no complete time series, the functions should bail with an error
@@ -67709,11 +67858,11 @@ list eofs[L=1:2]
1 2
1 2
---- L:1 T: 1
- 1 / 1: -0.3534 -0.0087
- 2 / 2: -0.0087 0.3534
+ 1 / 1: 0.0179 -0.3531
+ 2 / 2: -0.3531 -0.0179
---- L:2 T: 2
- 1 / 1: 0.0087 -0.3534
- 2 / 2: -0.3534 -0.0087
+ 1 / 1: 0.3531 0.0179
+ 2 / 2: 0.0179 -0.3531
show func eofsvd_tfunc
EOFSVD_TFUNC(A)
@@ -67732,246 +67881,246 @@ list tafs[I=1:2]
SUBSET : 2 by 240 points (X-T)
1 2
1 2
- 0 / 1: -1.414 0.035
- 0.1 / 2: -1.410 -0.113
- 0.2 / 3: -1.390 -0.260
- 0.3 / 4: -1.355 -0.404
- 0.4 / 5: -1.306 -0.543
- 0.5 / 6: -1.242 -0.677
- 0.6 / 7: -1.164 -0.803
- 0.7 / 8: -1.074 -0.920
- 0.8 / 9: -0.972 -1.027
- 0.9 / 10: -0.859 -1.123
- 1 / 11: -0.737 -1.207
- 1.1 / 12: -0.607 -1.277
- 1.2 / 13: -0.470 -1.334
- 1.3 / 14: -0.328 -1.376
- 1.4 / 15: -0.182 -1.402
- 1.5 / 16: -0.035 -1.414
- 1.6 / 17: 0.113 -1.410
- 1.7 / 18: 0.260 -1.390
- 1.8 / 19: 0.404 -1.355
- 1.9 / 20: 0.543 -1.306
- 2 / 21: 0.677 -1.242
- 2.1 / 22: 0.803 -1.164
- 2.2 / 23: 0.920 -1.074
- 2.3 / 24: 1.027 -0.972
- 2.4 / 25: 1.123 -0.859
- 2.5 / 26: 1.207 -0.737
- 2.6 / 27: 1.277 -0.607
- 2.7 / 28: 1.334 -0.470
- 2.8 / 29: 1.376 -0.328
- 2.9 / 30: 1.402 -0.182
- 3 / 31: 1.414 -0.035
- 3.1 / 32: 1.410 0.113
- 3.2 / 33: 1.390 0.260
- 3.3 / 34: 1.355 0.404
- 3.4 / 35: 1.306 0.543
- 3.5 / 36: 1.242 0.677
- 3.6 / 37: 1.164 0.803
- 3.7 / 38: 1.074 0.920
- 3.8 / 39: 0.972 1.027
- 3.9 / 40: 0.859 1.123
- 4 / 41: 0.737 1.207
- 4.1 / 42: 0.607 1.277
- 4.2 / 43: 0.470 1.334
- 4.3 / 44: 0.328 1.376
- 4.4 / 45: 0.182 1.402
- 4.5 / 46: 0.035 1.414
- 4.6 / 47: -0.113 1.410
- 4.7 / 48: -0.260 1.390
- 4.8 / 49: -0.404 1.355
- 4.9 / 50: -0.543 1.306
- 5 / 51: -0.677 1.242
- 5.1 / 52: -0.803 1.164
- 5.2 / 53: -0.920 1.074
- 5.3 / 54: -1.027 0.972
- 5.4 / 55: -1.123 0.859
- 5.5 / 56: -1.207 0.737
- 5.6 / 57: -1.277 0.607
- 5.7 / 58: -1.334 0.470
- 5.8 / 59: -1.376 0.328
- 5.9 / 60: -1.402 0.182
- 6 / 61: -1.414 0.035
- 6.1 / 62: -1.410 -0.113
- 6.2 / 63: -1.390 -0.260
- 6.3 / 64: -1.355 -0.404
- 6.4 / 65: -1.306 -0.543
- 6.5 / 66: -1.242 -0.677
- 6.6 / 67: -1.164 -0.803
- 6.7 / 68: -1.074 -0.920
- 6.8 / 69: -0.972 -1.027
- 6.9 / 70: -0.859 -1.123
- 7 / 71: -0.737 -1.207
- 7.1 / 72: -0.607 -1.277
- 7.2 / 73: -0.470 -1.334
- 7.3 / 74: -0.328 -1.376
- 7.4 / 75: -0.182 -1.402
- 7.5 / 76: -0.035 -1.414
- 7.6 / 77: 0.113 -1.410
- 7.7 / 78: 0.260 -1.390
- 7.8 / 79: 0.404 -1.355
- 7.9 / 80: 0.543 -1.306
- 8 / 81: 0.677 -1.242
- 8.1 / 82: 0.803 -1.164
- 8.2 / 83: 0.920 -1.074
- 8.3 / 84: 1.027 -0.972
- 8.4 / 85: 1.123 -0.859
- 8.5 / 86: 1.207 -0.737
- 8.6 / 87: 1.277 -0.607
- 8.7 / 88: 1.334 -0.470
- 8.8 / 89: 1.376 -0.328
- 8.9 / 90: 1.402 -0.182
- 9 / 91: 1.414 -0.035
- 9.1 / 92: 1.410 0.113
- 9.2 / 93: 1.390 0.260
- 9.3 / 94: 1.355 0.404
- 9.4 / 95: 1.306 0.543
- 9.5 / 96: 1.242 0.677
- 9.6 / 97: 1.164 0.803
- 9.7 / 98: 1.074 0.920
- 9.8 / 99: 0.972 1.027
- 9.9 / 100: 0.859 1.123
- 10 / 101: 0.737 1.207
- 10.1 / 102: 0.607 1.277
- 10.2 / 103: 0.470 1.334
- 10.3 / 104: 0.328 1.376
- 10.4 / 105: 0.182 1.402
- 10.5 / 106: 0.035 1.414
- 10.6 / 107: -0.113 1.410
- 10.7 / 108: -0.260 1.390
- 10.8 / 109: -0.404 1.355
- 10.9 / 110: -0.543 1.306
- 11 / 111: -0.677 1.242
- 11.1 / 112: -0.803 1.164
- 11.2 / 113: -0.920 1.074
- 11.3 / 114: -1.027 0.972
- 11.4 / 115: -1.123 0.859
- 11.5 / 116: -1.207 0.737
- 11.6 / 117: -1.277 0.607
- 11.7 / 118: -1.334 0.470
- 11.8 / 119: -1.376 0.328
- 11.9 / 120: -1.402 0.182
- 12 / 121: -1.414 0.035
- 12.1 / 122: -1.410 -0.113
- 12.2 / 123: -1.390 -0.260
- 12.3 / 124: -1.355 -0.404
- 12.4 / 125: -1.306 -0.543
- 12.5 / 126: -1.242 -0.677
- 12.6 / 127: -1.164 -0.803
- 12.7 / 128: -1.074 -0.920
- 12.8 / 129: -0.972 -1.027
- 12.9 / 130: -0.859 -1.123
- 13 / 131: -0.737 -1.207
- 13.1 / 132: -0.607 -1.277
- 13.2 / 133: -0.470 -1.334
- 13.3 / 134: -0.328 -1.376
- 13.4 / 135: -0.182 -1.402
- 13.5 / 136: -0.035 -1.414
- 13.6 / 137: 0.113 -1.410
- 13.7 / 138: 0.260 -1.390
- 13.8 / 139: 0.404 -1.355
- 13.9 / 140: 0.543 -1.306
- 14 / 141: 0.677 -1.242
- 14.1 / 142: 0.803 -1.164
- 14.2 / 143: 0.920 -1.074
- 14.3 / 144: 1.027 -0.972
- 14.4 / 145: 1.123 -0.859
- 14.5 / 146: 1.207 -0.737
- 14.6 / 147: 1.277 -0.607
- 14.7 / 148: 1.334 -0.470
- 14.8 / 149: 1.376 -0.328
- 14.9 / 150: 1.402 -0.182
- 15 / 151: 1.414 -0.035
- 15.1 / 152: 1.410 0.113
- 15.2 / 153: 1.390 0.260
- 15.3 / 154: 1.355 0.404
- 15.4 / 155: 1.306 0.543
- 15.5 / 156: 1.242 0.677
- 15.6 / 157: 1.164 0.803
- 15.7 / 158: 1.074 0.920
- 15.8 / 159: 0.972 1.027
- 15.9 / 160: 0.859 1.123
- 16 / 161: 0.737 1.207
- 16.1 / 162: 0.607 1.277
- 16.2 / 163: 0.470 1.334
- 16.3 / 164: 0.328 1.376
- 16.4 / 165: 0.182 1.402
- 16.5 / 166: 0.035 1.414
- 16.6 / 167: -0.113 1.410
- 16.7 / 168: -0.260 1.390
- 16.8 / 169: -0.404 1.355
- 16.9 / 170: -0.543 1.306
- 17 / 171: -0.677 1.242
- 17.1 / 172: -0.803 1.164
- 17.2 / 173: -0.920 1.074
- 17.3 / 174: -1.027 0.972
- 17.4 / 175: -1.123 0.859
- 17.5 / 176: -1.207 0.737
- 17.6 / 177: -1.277 0.607
- 17.7 / 178: -1.334 0.470
- 17.8 / 179: -1.376 0.328
- 17.9 / 180: -1.402 0.182
- 18 / 181: -1.414 0.035
- 18.1 / 182: -1.410 -0.113
- 18.2 / 183: -1.390 -0.260
- 18.3 / 184: -1.355 -0.404
- 18.4 / 185: -1.306 -0.543
- 18.5 / 186: -1.242 -0.677
- 18.6 / 187: -1.164 -0.803
- 18.7 / 188: -1.074 -0.920
- 18.8 / 189: -0.972 -1.027
- 18.9 / 190: -0.859 -1.123
- 19 / 191: -0.737 -1.207
- 19.1 / 192: -0.607 -1.277
- 19.2 / 193: -0.470 -1.334
- 19.3 / 194: -0.328 -1.376
- 19.4 / 195: -0.182 -1.402
- 19.5 / 196: -0.035 -1.414
- 19.6 / 197: 0.113 -1.410
- 19.7 / 198: 0.260 -1.390
- 19.8 / 199: 0.404 -1.355
- 19.9 / 200: 0.543 -1.306
- 20 / 201: 0.677 -1.242
- 20.1 / 202: 0.803 -1.164
- 20.2 / 203: 0.920 -1.074
- 20.3 / 204: 1.027 -0.972
- 20.4 / 205: 1.123 -0.859
- 20.5 / 206: 1.207 -0.737
- 20.6 / 207: 1.277 -0.607
- 20.7 / 208: 1.334 -0.470
- 20.8 / 209: 1.376 -0.328
- 20.9 / 210: 1.402 -0.182
- 21 / 211: 1.414 -0.035
- 21.1 / 212: 1.410 0.113
- 21.2 / 213: 1.390 0.260
- 21.3 / 214: 1.355 0.404
- 21.4 / 215: 1.306 0.543
- 21.5 / 216: 1.242 0.677
- 21.6 / 217: 1.164 0.803
- 21.7 / 218: 1.074 0.920
- 21.8 / 219: 0.972 1.027
- 21.9 / 220: 0.859 1.123
- 22 / 221: 0.737 1.207
- 22.1 / 222: 0.607 1.277
- 22.2 / 223: 0.470 1.334
- 22.3 / 224: 0.328 1.376
- 22.4 / 225: 0.182 1.402
- 22.5 / 226: 0.035 1.414
- 22.6 / 227: -0.113 1.410
- 22.7 / 228: -0.260 1.390
- 22.8 / 229: -0.404 1.355
- 22.9 / 230: -0.543 1.306
- 23 / 231: -0.677 1.242
- 23.1 / 232: -0.803 1.164
- 23.2 / 233: -0.920 1.074
- 23.3 / 234: -1.027 0.972
- 23.4 / 235: -1.123 0.859
- 23.5 / 236: -1.207 0.737
- 23.6 / 237: -1.277 0.607
- 23.7 / 238: -1.334 0.470
- 23.8 / 239: -1.376 0.328
- 23.9 / 240: -1.402 0.182
+ 0 / 1: 0.072 1.412
+ 0.1 / 2: -0.076 1.412
+ 0.2 / 3: -0.223 1.396
+ 0.3 / 4: -0.368 1.365
+ 0.4 / 5: -0.509 1.319
+ 0.5 / 6: -0.644 1.259
+ 0.6 / 7: -0.772 1.185
+ 0.7 / 8: -0.892 1.098
+ 0.8 / 9: -1.002 0.998
+ 0.9 / 10: -1.100 0.888
+ 1 / 11: -1.187 0.768
+ 1.1 / 12: -1.261 0.640
+ 1.2 / 13: -1.321 0.505
+ 1.3 / 14: -1.367 0.364
+ 1.4 / 15: -1.397 0.219
+ 1.5 / 16: -1.412 0.072
+ 1.6 / 17: -1.412 -0.076
+ 1.7 / 18: -1.396 -0.223
+ 1.8 / 19: -1.365 -0.368
+ 1.9 / 20: -1.319 -0.509
+ 2 / 21: -1.259 -0.644
+ 2.1 / 22: -1.185 -0.772
+ 2.2 / 23: -1.098 -0.892
+ 2.3 / 24: -0.998 -1.002
+ 2.4 / 25: -0.888 -1.100
+ 2.5 / 26: -0.768 -1.187
+ 2.6 / 27: -0.640 -1.261
+ 2.7 / 28: -0.505 -1.321
+ 2.8 / 29: -0.364 -1.367
+ 2.9 / 30: -0.219 -1.397
+ 3 / 31: -0.072 -1.412
+ 3.1 / 32: 0.076 -1.412
+ 3.2 / 33: 0.223 -1.396
+ 3.3 / 34: 0.368 -1.365
+ 3.4 / 35: 0.509 -1.319
+ 3.5 / 36: 0.644 -1.259
+ 3.6 / 37: 0.772 -1.185
+ 3.7 / 38: 0.892 -1.098
+ 3.8 / 39: 1.002 -0.998
+ 3.9 / 40: 1.100 -0.888
+ 4 / 41: 1.187 -0.768
+ 4.1 / 42: 1.261 -0.640
+ 4.2 / 43: 1.321 -0.505
+ 4.3 / 44: 1.367 -0.364
+ 4.4 / 45: 1.397 -0.219
+ 4.5 / 46: 1.412 -0.072
+ 4.6 / 47: 1.412 0.076
+ 4.7 / 48: 1.396 0.223
+ 4.8 / 49: 1.365 0.368
+ 4.9 / 50: 1.319 0.509
+ 5 / 51: 1.259 0.644
+ 5.1 / 52: 1.185 0.772
+ 5.2 / 53: 1.098 0.892
+ 5.3 / 54: 0.998 1.002
+ 5.4 / 55: 0.888 1.100
+ 5.5 / 56: 0.768 1.187
+ 5.6 / 57: 0.640 1.261
+ 5.7 / 58: 0.505 1.321
+ 5.8 / 59: 0.364 1.367
+ 5.9 / 60: 0.219 1.397
+ 6 / 61: 0.072 1.412
+ 6.1 / 62: -0.076 1.412
+ 6.2 / 63: -0.223 1.396
+ 6.3 / 64: -0.368 1.365
+ 6.4 / 65: -0.509 1.319
+ 6.5 / 66: -0.644 1.259
+ 6.6 / 67: -0.772 1.185
+ 6.7 / 68: -0.892 1.098
+ 6.8 / 69: -1.002 0.998
+ 6.9 / 70: -1.100 0.888
+ 7 / 71: -1.187 0.768
+ 7.1 / 72: -1.261 0.640
+ 7.2 / 73: -1.321 0.505
+ 7.3 / 74: -1.367 0.364
+ 7.4 / 75: -1.397 0.219
+ 7.5 / 76: -1.412 0.072
+ 7.6 / 77: -1.412 -0.076
+ 7.7 / 78: -1.396 -0.223
+ 7.8 / 79: -1.365 -0.368
+ 7.9 / 80: -1.319 -0.509
+ 8 / 81: -1.259 -0.644
+ 8.1 / 82: -1.185 -0.772
+ 8.2 / 83: -1.098 -0.892
+ 8.3 / 84: -0.998 -1.002
+ 8.4 / 85: -0.888 -1.100
+ 8.5 / 86: -0.768 -1.187
+ 8.6 / 87: -0.640 -1.261
+ 8.7 / 88: -0.505 -1.321
+ 8.8 / 89: -0.364 -1.367
+ 8.9 / 90: -0.219 -1.397
+ 9 / 91: -0.072 -1.412
+ 9.1 / 92: 0.076 -1.412
+ 9.2 / 93: 0.223 -1.396
+ 9.3 / 94: 0.368 -1.365
+ 9.4 / 95: 0.509 -1.319
+ 9.5 / 96: 0.644 -1.259
+ 9.6 / 97: 0.772 -1.185
+ 9.7 / 98: 0.892 -1.098
+ 9.8 / 99: 1.002 -0.998
+ 9.9 / 100: 1.100 -0.888
+ 10 / 101: 1.187 -0.768
+ 10.1 / 102: 1.261 -0.640
+ 10.2 / 103: 1.321 -0.505
+ 10.3 / 104: 1.367 -0.364
+ 10.4 / 105: 1.397 -0.219
+ 10.5 / 106: 1.412 -0.072
+ 10.6 / 107: 1.412 0.076
+ 10.7 / 108: 1.396 0.223
+ 10.8 / 109: 1.365 0.368
+ 10.9 / 110: 1.319 0.509
+ 11 / 111: 1.259 0.644
+ 11.1 / 112: 1.185 0.772
+ 11.2 / 113: 1.098 0.892
+ 11.3 / 114: 0.998 1.002
+ 11.4 / 115: 0.888 1.100
+ 11.5 / 116: 0.768 1.187
+ 11.6 / 117: 0.640 1.261
+ 11.7 / 118: 0.505 1.321
+ 11.8 / 119: 0.364 1.367
+ 11.9 / 120: 0.219 1.397
+ 12 / 121: 0.072 1.412
+ 12.1 / 122: -0.076 1.412
+ 12.2 / 123: -0.223 1.396
+ 12.3 / 124: -0.368 1.365
+ 12.4 / 125: -0.509 1.319
+ 12.5 / 126: -0.644 1.259
+ 12.6 / 127: -0.772 1.185
+ 12.7 / 128: -0.892 1.098
+ 12.8 / 129: -1.002 0.998
+ 12.9 / 130: -1.100 0.888
+ 13 / 131: -1.187 0.768
+ 13.1 / 132: -1.261 0.640
+ 13.2 / 133: -1.321 0.505
+ 13.3 / 134: -1.367 0.364
+ 13.4 / 135: -1.397 0.219
+ 13.5 / 136: -1.412 0.072
+ 13.6 / 137: -1.412 -0.076
+ 13.7 / 138: -1.396 -0.223
+ 13.8 / 139: -1.365 -0.368
+ 13.9 / 140: -1.319 -0.509
+ 14 / 141: -1.259 -0.644
+ 14.1 / 142: -1.185 -0.772
+ 14.2 / 143: -1.098 -0.892
+ 14.3 / 144: -0.998 -1.002
+ 14.4 / 145: -0.888 -1.100
+ 14.5 / 146: -0.768 -1.187
+ 14.6 / 147: -0.640 -1.261
+ 14.7 / 148: -0.505 -1.321
+ 14.8 / 149: -0.364 -1.367
+ 14.9 / 150: -0.219 -1.397
+ 15 / 151: -0.072 -1.412
+ 15.1 / 152: 0.076 -1.412
+ 15.2 / 153: 0.223 -1.396
+ 15.3 / 154: 0.368 -1.365
+ 15.4 / 155: 0.509 -1.319
+ 15.5 / 156: 0.644 -1.259
+ 15.6 / 157: 0.772 -1.185
+ 15.7 / 158: 0.892 -1.098
+ 15.8 / 159: 1.002 -0.998
+ 15.9 / 160: 1.100 -0.888
+ 16 / 161: 1.187 -0.768
+ 16.1 / 162: 1.261 -0.640
+ 16.2 / 163: 1.321 -0.505
+ 16.3 / 164: 1.367 -0.364
+ 16.4 / 165: 1.397 -0.219
+ 16.5 / 166: 1.412 -0.072
+ 16.6 / 167: 1.412 0.076
+ 16.7 / 168: 1.396 0.223
+ 16.8 / 169: 1.365 0.368
+ 16.9 / 170: 1.319 0.509
+ 17 / 171: 1.259 0.644
+ 17.1 / 172: 1.185 0.772
+ 17.2 / 173: 1.098 0.892
+ 17.3 / 174: 0.998 1.002
+ 17.4 / 175: 0.888 1.100
+ 17.5 / 176: 0.768 1.187
+ 17.6 / 177: 0.640 1.261
+ 17.7 / 178: 0.505 1.321
+ 17.8 / 179: 0.364 1.367
+ 17.9 / 180: 0.219 1.397
+ 18 / 181: 0.072 1.412
+ 18.1 / 182: -0.076 1.412
+ 18.2 / 183: -0.223 1.396
+ 18.3 / 184: -0.368 1.365
+ 18.4 / 185: -0.509 1.319
+ 18.5 / 186: -0.644 1.259
+ 18.6 / 187: -0.772 1.185
+ 18.7 / 188: -0.892 1.098
+ 18.8 / 189: -1.002 0.998
+ 18.9 / 190: -1.100 0.888
+ 19 / 191: -1.187 0.768
+ 19.1 / 192: -1.261 0.640
+ 19.2 / 193: -1.321 0.505
+ 19.3 / 194: -1.367 0.364
+ 19.4 / 195: -1.397 0.219
+ 19.5 / 196: -1.412 0.072
+ 19.6 / 197: -1.412 -0.076
+ 19.7 / 198: -1.396 -0.223
+ 19.8 / 199: -1.365 -0.368
+ 19.9 / 200: -1.319 -0.509
+ 20 / 201: -1.259 -0.644
+ 20.1 / 202: -1.185 -0.772
+ 20.2 / 203: -1.098 -0.892
+ 20.3 / 204: -0.998 -1.002
+ 20.4 / 205: -0.888 -1.100
+ 20.5 / 206: -0.768 -1.187
+ 20.6 / 207: -0.640 -1.261
+ 20.7 / 208: -0.505 -1.321
+ 20.8 / 209: -0.364 -1.367
+ 20.9 / 210: -0.219 -1.397
+ 21 / 211: -0.072 -1.412
+ 21.1 / 212: 0.076 -1.412
+ 21.2 / 213: 0.223 -1.396
+ 21.3 / 214: 0.368 -1.365
+ 21.4 / 215: 0.509 -1.319
+ 21.5 / 216: 0.644 -1.259
+ 21.6 / 217: 0.772 -1.185
+ 21.7 / 218: 0.892 -1.098
+ 21.8 / 219: 1.002 -0.998
+ 21.9 / 220: 1.100 -0.888
+ 22 / 221: 1.187 -0.768
+ 22.1 / 222: 1.261 -0.640
+ 22.2 / 223: 1.321 -0.505
+ 22.3 / 224: 1.367 -0.364
+ 22.4 / 225: 1.397 -0.219
+ 22.5 / 226: 1.412 -0.072
+ 22.6 / 227: 1.412 0.076
+ 22.7 / 228: 1.396 0.223
+ 22.8 / 229: 1.365 0.368
+ 22.9 / 230: 1.319 0.509
+ 23 / 231: 1.259 0.644
+ 23.1 / 232: 1.185 0.772
+ 23.2 / 233: 1.098 0.892
+ 23.3 / 234: 0.998 1.002
+ 23.4 / 235: 0.888 1.100
+ 23.5 / 236: 0.768 1.187
+ 23.6 / 237: 0.640 1.261
+ 23.7 / 238: 0.505 1.321
+ 23.8 / 239: 0.364 1.367
+ 23.9 / 240: 0.219 1.397
! Explanation:
! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
@@ -68253,7 +68402,7 @@ LIST v[@ypt]
LIST v[@ept]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 by 3 points (X-Y-F)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
---- N:1 F: 1
@@ -68271,7 +68420,7 @@ LIST v[@ept]
LIST v[@fpt]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 by 3 points (X-Y-E)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
---- M:1 E: 1
@@ -68291,8 +68440,8 @@ LIST v[@fpt]
LIST v[@ept, at fpt] !XY
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-Y)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -68302,7 +68451,7 @@ LIST v[@ypt, at fpt] !XE
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-E)
Y : 1.05 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -68312,7 +68461,7 @@ LIST v[@ypt, at ept] !XF
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-F)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -68322,7 +68471,7 @@ LIST v[@xpt, at fpt] !YE
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (Y-E)
X : 1.5 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1122.00 1132.00
@@ -68332,7 +68481,7 @@ LIST v[@xpt, at ept] !YF
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (Y-F)
X : 1.5 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1122.00 1132.00
@@ -68355,7 +68504,7 @@ LIST/ORDER=F v[@xpt, at ypt, at ept] ! F
SUBSET : 3 points (F)
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1112.50 2112.50 3112.50
@@ -68364,7 +68513,7 @@ LIST/ORDER=E v[@xpt, at ypt, at fpt] ! E
SUBSET : 3 points (E)
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1212.50 1312.50
@@ -68372,8 +68521,8 @@ LIST/ORDER=Y v[@xpt, at ept, at fpt] ! Y
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 points (Y)
X : 1.5 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1122.50 1132.50
@@ -68381,8 +68530,8 @@ LIST/ORDER=X v[@ypt, at ept, at fpt] ! X
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 points (X)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1113.50 1114.50
@@ -68392,8 +68541,8 @@ LIST v[@xpt, at ypt, at ept, at fpt]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1113.00
GO bn_reset
@@ -68466,7 +68615,7 @@ list veven
SUBSET : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
4 6 8
2 3 4
- ---- N:2 F: 05-JAN-1980 00:00:00
+ ---- N:2 F: 1980
---- M:2 E: 4
4 / 2: 2222.00 3222.00 4222.00
6 / 3: 2322.00 3322.00 4322.00
@@ -68479,7 +68628,7 @@ list veven
4 / 2: 2242.00 3242.00 4242.00
6 / 3: 2342.00 3342.00 4342.00
8 / 4: 2442.00 3442.00 4442.00
- ---- N:3 F: 07-JAN-1980 00:00:00
+ ---- N:3 F: 1980
---- M:2 E: 4
4 / 2: 2223.00 3223.00 4223.00
6 / 3: 2323.00 3323.00 4323.00
@@ -68492,7 +68641,7 @@ list veven
4 / 2: 2243.00 3243.00 4243.00
6 / 3: 2343.00 3343.00 4343.00
8 / 4: 2443.00 3443.00 4443.00
- ---- N:4 F: 09-JAN-1980 00:00:00
+ ---- N:4 F: 1980
---- M:2 E: 4
4 / 2: 2224.00 3224.00 4224.00
6 / 3: 2324.00 3324.00 4324.00
@@ -68510,7 +68659,7 @@ list v1234
SUBSET : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
5 7 9
3 4 5
- ---- N:3 F: 06-JAN-1980 00:00:00
+ ---- N:3 F: 1980
---- M:3 E: 5
5 / 3: 2777.50 3777.50 4777.50
7 / 4: 2877.50 3877.50 4877.50
@@ -68523,7 +68672,7 @@ list v1234
5 / 3: 2797.50 3797.50 4797.50
7 / 4: 2897.50 3897.50 4897.50
9 / 5: 2997.50 3997.50 4997.50
- ---- N:4 F: 08-JAN-1980 00:00:00
+ ---- N:4 F: 1980
---- M:3 E: 5
5 / 3: 2778.50 3778.50 4778.50
7 / 4: 2878.50 3878.50 4878.50
@@ -68536,7 +68685,7 @@ list v1234
5 / 3: 2798.50 3798.50 4798.50
7 / 4: 2898.50 3898.50 4898.50
9 / 5: 2998.50 3998.50 4998.50
- ---- N:5 F: 10-JAN-1980 00:00:00
+ ---- N:5 F: 1980
---- M:3 E: 5
5 / 3: 2779.50 3779.50 4779.50
7 / 4: 2879.50 3879.50 4879.50
@@ -68556,8 +68705,8 @@ stat veven
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68580,8 +68729,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68596,8 +68745,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68613,8 +68762,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68629,8 +68778,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68646,8 +68795,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68662,8 +68811,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68679,8 +68828,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68695,8 +68844,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68712,8 +68861,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68728,8 +68877,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68745,8 +68894,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68761,8 +68910,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68778,8 +68927,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68794,8 +68943,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68811,8 +68960,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68827,8 +68976,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68844,8 +68993,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68860,8 +69009,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68877,8 +69026,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68893,8 +69042,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68910,8 +69059,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68926,8 +69075,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68943,8 +69092,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68959,8 +69108,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68976,8 +69125,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68992,8 +69141,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69009,8 +69158,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69025,8 +69174,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69042,8 +69191,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69058,8 +69207,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69083,8 +69232,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69099,8 +69248,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69116,8 +69265,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69132,8 +69281,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69149,8 +69298,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69165,8 +69314,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69182,8 +69331,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69198,8 +69347,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69215,8 +69364,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69231,8 +69380,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69248,8 +69397,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69264,8 +69413,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69281,8 +69430,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69297,8 +69446,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69314,8 +69463,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69330,8 +69479,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69347,8 +69496,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69363,8 +69512,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69380,8 +69529,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69396,8 +69545,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69413,8 +69562,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69429,8 +69578,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69446,8 +69595,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69462,8 +69611,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69479,8 +69628,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69495,8 +69644,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69512,8 +69661,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69528,8 +69677,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69545,8 +69694,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69561,8 +69710,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -70646,7 +70795,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
DEPTH (m): 5
TIME: 21-JAN-1982 00:00 (interpolated)
E: 1 to 2
- FORECAST: 23-JAN-1982 00:00:00 to 24-JAN-1982 00:0
+ FORECAST: 1982 to 1982
DATA SET: ./gtsa056_1_ef.nc
Total # of data points: 120 (5*6*1*1*2*2)
@@ -70678,7 +70827,7 @@ LIST temp[g=g5day at ave]
TIME : 21-JAN-1982 00:00 (interpolated)
129.5W 128.5W 127.5W 126.5W 125.5W
101 102 103 104 105
- ---- N:1 F: 23-JAN-1982 00:00:00
+ ---- N:1 F: 1982
---- M:1 E: 1
1.5N / 46: 32.3553 32.3552 32.5032 32.8652 33.3285
1.17N / 45: 32.1766 32.1710 32.2834 32.5970 33.0244
@@ -70693,7 +70842,7 @@ LIST temp[g=g5day at ave]
0.5N / 43: 37.9306 37.8902 37.8887 38.0374 38.3408
0.17N / 42: 37.8944 37.8343 37.7825 37.8263 38.0336
0.17S / 41: 37.9538 37.8657 37.7716 37.7285 37.8282
- ---- N:2 F: 23-JAN-1982 20:00:00
+ ---- N:2 F: 1982
---- M:1 E: 1
1.5N / 46: 37.7553 37.7552 37.9032 38.2652 38.7285
1.17N / 45: 37.5766 37.5710 37.6834 37.9970 38.4244
@@ -70727,7 +70876,7 @@ LIST temp[g=g5day]
TIME : 21-JAN-1982 00:00 (interpolated)
129.5W 128.5W 127.5W 126.5W 125.5W
101 102 103 104 105
- ---- N:1 F: 23-JAN-1982 00:00:00
+ ---- N:1 F: 1982
---- M:1 E: 1
1.5N / 46: 34.3553 34.3552 34.5032 34.8652 35.3285
1.17N / 45: 34.1766 34.1710 34.2834 34.5970 35.0244
@@ -70742,7 +70891,7 @@ LIST temp[g=g5day]
0.5N / 43: 39.9306 39.8902 39.8887 40.0374 40.3408
0.17N / 42: 39.8944 39.8343 39.7825 39.8263 40.0336
0.17S / 41: 39.9538 39.8657 39.7716 39.7285 39.8282
- ---- N:2 F: 23-JAN-1982 20:00:00
+ ---- N:2 F: 1982
---- M:1 E: 1
1.5N / 46: 36.0220 36.0219 36.1698 36.5318 36.9952
1.17N / 45: 35.8433 35.8377 35.9501 36.2637 36.6910
@@ -70782,7 +70931,7 @@ plot temp
-DELETE TEMP M:104 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GGR1 PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
strip --> EX#1[Y=0 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
@@ -70791,7 +70940,7 @@ plot temp
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[Y=0 at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- doing --> TEMP[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
setting up plot
PPL plot 863 complete
plot/over temp[g=g5day]
@@ -70858,14 +71007,14 @@ plot temp
-DELETE TEMP M: 80 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GGR1 PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 7 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
reading TEMP M: 80 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- doing --> TEMP[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
setting up plot
PPL plot 867 complete
plot/over temp[g=g5day]
@@ -71199,24 +71348,24 @@ list a2[ge=eoffset at var, gf=fax4day at var]
VARIABLE : Variance of _E[GE=E2PT]+_F[GF=F2PT]
regrid: 1 delta on E at VAR, 96 hour on F at VAR
SUBSET : 2 by 16 points (E-FORECAST)
- 1.1 2.1
- 1 2
- 15-JAN-1982 00 / 1: .... ....
- 19-JAN-1982 00 / 2: .... ....
- 23-JAN-1982 00 / 3: .... 5.16988E-27
- 27-JAN-1982 00 / 4: .... ....
- 31-JAN-1982 00 / 5: .... ....
- 04-FEB-1982 00 / 6: .... ....
- 08-FEB-1982 00 / 7: .... ....
- 12-FEB-1982 00 / 8: .... ....
- 16-FEB-1982 00 / 9: .... ....
- 20-FEB-1982 00 / 10: .... ....
- 24-FEB-1982 00 / 11: .... ....
- 28-FEB-1982 00 / 12: .... ....
- 04-MAR-1982 00 / 13: .... ....
- 08-MAR-1982 00 / 14: .... ....
- 12-MAR-1982 00 / 15: .... ....
- 16-MAR-1982 00 / 16: .... ....
+ 1.1 2.1
+ 1 2
+ 15-JAN-1982 00 / 1: .... ....
+ 19-JAN-1982 00 / 2: .... ....
+ 23-JAN-1982 00 / 3: .... 0.000000
+ 27-JAN-1982 00 / 4: .... ....
+ 31-JAN-1982 00 / 5: .... ....
+ 04-FEB-1982 00 / 6: .... ....
+ 08-FEB-1982 00 / 7: .... ....
+ 12-FEB-1982 00 / 8: .... ....
+ 16-FEB-1982 00 / 9: .... ....
+ 20-FEB-1982 00 / 10: .... ....
+ 24-FEB-1982 00 / 11: .... ....
+ 28-FEB-1982 00 / 12: .... ....
+ 04-MAR-1982 00 / 13: .... ....
+ 08-MAR-1982 00 / 14: .... ....
+ 12-MAR-1982 00 / 15: .... ....
+ 16-MAR-1982 00 / 16: .... ....
! 1/00 additions to check details of @MIN, at MAX bevavior
@@ -71433,7 +71582,7 @@ GO bn_reset
cancel mode verify
GO bn_aggregate_e
! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
+! using the DEFINE DATA/AGGREGATE/E command
! Datasets share sst, but only ens1 has airt.
set mode diag
@@ -71444,7 +71593,7 @@ define data/agg/title fourfiles = ens1, ens3, ens2, ens4
! The grid of SST is known.
show data fourfiles
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -71495,7 +71644,7 @@ define data/agg fourfiles = ens1, ens3, ens2, ens4
allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME13 NORMAL NORMAL
show data fourfiles
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
AIRT AIR TEMPERATURE 1:10 1:9 ... 1:12 1:4 ...
@@ -71601,7 +71750,7 @@ define data/agg windy = 1,2
! The grid of the aggregate variables with LET/D is known.
show data windy
currently SET data sets:
- 3> WINDY (default) Ferret-defined Ensemble dataset
+ 3> WINDY (default) Ferret-defined Ensemble aggregation
name title I J K L M N
UWND ZONAL WIND 1:30 1:30 ... 1:12 1:2 ...
VWND MERIDIONAL WIND 1:30 1:30 ... 1:12 1:2 ...
@@ -71634,7 +71783,7 @@ define data/agg windy = 2,1
! The grid of the aggregate variables with LET/D is known.
show data windy
currently SET data sets:
- 3> WINDY (default) Ferret-defined Ensemble dataset
+ 3> WINDY (default) Ferret-defined Ensemble aggregation
name title I J K L M N
UWND ZONAL WIND 1:30 1:30 ... 1:12 1:2 ...
VWND MERIDIONAL WIND 1:30 1:30 ... 1:12 1:2 ...
@@ -71681,7 +71830,8 @@ sh command define
DEFINE SYMBOL
DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
sh command show
SHOW/ALL
SHOW WINDOW/ALL
@@ -71693,7 +71843,7 @@ sh command show
/HIDDEN
SHOW MODE/ALL
SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
/CURVILIN
SHOW COMMANDS/ALL
SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -71714,7 +71864,7 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
! should just show the ensemble set
sh dat
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -71753,7 +71903,7 @@ sh dat/hidden
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 ... ...
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -71796,7 +71946,7 @@ sh dat
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 ... ...
- 5> MY_ENS (default) Ferret-defined Ensemble dataset
+ 5> MY_ENS (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:2 ...
@@ -71825,7 +71975,7 @@ ensemble/HIDE/title="uvars in dset 2" my_ens = 1,2,3,4
! members hidden, showing only ensemble.
sh dat
currently SET data sets:
- 5> MY_ENS (default) Ferret-defined Ensemble dataset
+ 5> MY_ENS (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -71860,15 +72010,15 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
! Shows all the ensembles
sh dat
currently SET data sets:
- 5> FOURFILES Ferret-defined Ensemble dataset
+ 5> FOURFILES Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
- 6> SOME Ferret-defined Ensemble dataset
+ 6> SOME Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:2 ...
- 7> MORE (default) Ferret-defined Ensemble dataset
+ 7> MORE (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:3 ...
@@ -72360,7 +72510,7 @@ list temp ! values should be 28.69, 28.63
VARIABLE : Potential temperature (degrees C)
FILENAME : append_pack.nc
SUBSET : 2 points (TIME)
- LONGITUDE: 179.9E(179.9)
+ LONGITUDE: 180E(179.9)
LATITUDE : 0.05S
DEPTH (m): 2.5
179.95E
@@ -72380,7 +72530,7 @@ list temp ! values should match those above.
VARIABLE : Potential temperature (degrees C)
FILENAME : a.nc
SUBSET : 2 points (TIME)
- LONGITUDE: 179.9E(179.9)
+ LONGITUDE: 180E(179.9)
LATITUDE : 0.05S
DEPTH (m): 2.5
179.95E
@@ -72425,7 +72575,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72476,7 +72626,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72515,7 +72665,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72554,7 +72704,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72585,7 +72735,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72617,7 +72767,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72678,7 +72828,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72723,7 +72873,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72778,7 +72928,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72814,7 +72964,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72850,7 +73000,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72886,7 +73036,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72918,7 +73068,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -73148,7 +73298,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
@@ -73180,7 +73330,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
@@ -73221,7 +73371,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -73259,7 +73409,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -73284,7 +73434,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) INT units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -73309,7 +73459,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -73525,11 +73675,11 @@ GO err684_tax_fcns
list/L=3:7 tax_yearfrac(var, var)
VARIABLE : TAX_YEARFRAC(VAR, VAR)
SUBSET : 5 points (TIME)
- 08-OCT-2006 22 / 3: 0.7699
- 13-OCT-2006 23 / 4: 0.7836
- 18-OCT-2006 22 / 5: 0.7973
- 23-OCT-2006 21 / 6: 0.8110
- 28-OCT-2006 22 / 7: 0.8247
+ 08-OCT-2006 22 / 3: 0.7725
+ 13-OCT-2006 23 / 4: 0.7862
+ 18-OCT-2006 22 / 5: 0.7998
+ 23-OCT-2006 21 / 6: 0.8134
+ 28-OCT-2006 22 / 7: 0.8272
list/L=3:7 tax_year(var, var)
VARIABLE : TAX_YEAR(VAR, VAR)
@@ -73575,8 +73725,8 @@ GO err684_line_plot_zero
plot {0,0,0}
sh sym yaxis*
YAXIS_REVERSED = "0"
-YAXIS_MIN = "-1.0000000"
-YAXIS_MAX = "1.000000"
+YAXIS_MIN = "-1.00000000"
+YAXIS_MAX = "1.00000000"
GO bn_reset
@@ -73745,17 +73895,17 @@ variables:
A:missing_value = -1.e+34 ;
A:_FillValue = -1.e+34 ;
A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- A:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ A:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
A:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
TIME10 = 366, 1096.485, 1826.97 ;
- A = -0.0994369294629927, -0.0415768591404557, 0.141480238197389 ;
+ A = -0.0994369294620938, -0.0415768591395995, 0.141480238198149 ;
}
save/clob/file=aa.nc sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
@@ -73774,17 +73924,17 @@ variables:
E410:missing_value = -1.e+34 ;
E410:_FillValue = -1.e+34 ;
E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
TIME10 = 366, 1096.485, 1826.97 ;
- E410 = -0.0994369294629927, -0.0415768591404557, 0.141480238197389 ;
+ E410 = -0.0994369294620938, -0.0415768591395995, 0.141480238198149 ;
}
! Double check the missing-value matches what is written.
@@ -73793,7 +73943,7 @@ save/clob/file=aa.nc/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
use aa.nc
list e410
VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
- X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+ X=20E:20E(380)
FILENAME : aa.nc
SUBSET : 4 by 3 points (LATITUDE-TIME)
81S 79S 77S 75S
@@ -73825,11 +73975,11 @@ variables:
E410:missing_value = -1.e+34f ;
E410:_FillValue = -1.e+34f ;
E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -73842,7 +73992,7 @@ save/clob/file=aa.nc/outtype=float/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
use aa.nc
list e410
VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
- X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+ X=20E:20E(380)
FILENAME : aa.nc
SUBSET : 4 by 3 points (LATITUDE-TIME)
81S 79S 77S 75S
@@ -73997,8 +74147,12 @@ let/title="tic labels on dependent axis" var = {\
1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
+cancel mode meta
+! rename the metafile. Else we get weird contents in axticlabel.plt
+! once the whole benchmark suite has finished. (why?)
+set mode meta metafile.plt
+cancel mode meta
GO bn_reset
cancel mode verify
@@ -74394,8 +74548,8 @@ variables:
DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
// global attributes:
- :history = "Wed Oct 29 15:57:28 2014: ncks -h -A -h z1.nc append_to_this.nc\n",
- "FERRET V6.93 29-Oct-14" ;
+ :history = "Tue Nov 17 09:27:47 2015: ncks -h -A -h z1.nc append_to_this.nc\n",
+ "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
:NCO = "4.4.6" ;
}
@@ -74429,7 +74583,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -74460,7 +74614,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -74522,7 +74676,7 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74550,7 +74704,7 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74711,6 +74865,7 @@ GO bn_vtree
! bn_tree.jnl
! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
+! 12/14 update to test regridding output using bn_vtree_regrid.jnl
CANCEL DATA/ALL
! pure abstract variable -- no dataset
@@ -74791,16 +74946,16 @@ vtree=all a
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
vtree=all /d=1 a
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
vtree=all /d=2 a
in default dataset other_file_vars
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
FV1
********************************
@@ -74808,12 +74963,12 @@ vtree=all /d=2 a
go bn_vtree.sub noexist
/TREE=ALL
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
the problem is UNKNOWN VARIABLE: NOEXIST
************************
@@ -74821,12 +74976,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST
go bn_vtree.sub v[d=noexist]
/TREE=ALL
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
/TREE=USER
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
/TREE=FILE
- V[D=NOEXIST] (unknown dataset)
+ *unknown dataset: V[D=NOEXIST]
the problem is UNKNOWN DATASET: V[D=NOEXIST]
************************
@@ -74834,12 +74989,12 @@ the problem is UNKNOWN DATASET: V[D=NOEXIST]
go bn_vtree.sub novar[d=nodset]
/TREE=ALL
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
/TREE=USER
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
/TREE=FILE
- NOVAR[D=NODSET] (unknown dataset)
+ *unknown dataset: NOVAR[D=NODSET]
the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
************************
@@ -74848,13 +75003,13 @@ go bn_vtree.sub b
/TREE=ALL
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
the problem is UNKNOWN VARIABLE: NOEXIST
************************
@@ -74880,11 +75035,13 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
/TREE=FILE
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
@@ -74900,11 +75057,13 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
/TREE=FILE
FV1[d=my_file_vars]
@@ -74919,12 +75078,14 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
/TREE=FILE
FV1[d=my_file_vars]
@@ -74946,7 +75107,7 @@ go bn_vtree.sub fv1z
FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
NOEXIST (unknown auxiliary variable)
/TREE=FILE
- NOEXIST (unknown auxiliary variable)
+ *unknown auxiliary variable: NOEXIST
FVX[d=my_file_vars]
the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
************************
@@ -74957,17 +75118,19 @@ go bn_vtree.sub fv1z
/TREE=ALL
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
/TREE=FILE
- NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
@@ -74979,17 +75142,19 @@ go bn_vtree.sub fv1z
/TREE=ALL
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
/TREE=FILE
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
- UNKNOWN_AUX (unknown auxiliary variable)
+ *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+ *unknown auxiliary variable: UNKNOWN_AUX
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
************************
@@ -75000,9 +75165,9 @@ go bn_vtree.sub fv1
/TREE=ALL
in default dataset MY_AGG
FV1 (aggregate variable)
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- FV1[d=another_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
/TREE=USER
in default dataset MY_AGG
FV1 (aggregate variable)
@@ -75022,16 +75187,16 @@ go bn_vtree.sub fvx
/TREE=ALL
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=my_file_var]
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=other_file_var]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=another_file_var]
+ FVX[d=my_file_vars]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_vars]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_vars]
/TREE=USER
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
/TREE=FILE
FVX[d=my_file_vars]
@@ -75050,30 +75215,30 @@ go bn_vtree.sub p0 ! recursion
/TREE=ALL
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S3 (unknown variable)
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S3
the problem is ILLEGAL RECURSIVE VARIABLES: P1
************************
let p3 = s1 + S3
@@ -75081,31 +75246,31 @@ go bn_vtree.sub p0 ! ok
/TREE=ALL
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S1 (unknown variable)
- S3 (unknown variable)
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S1
+ *unknown variable: S3
the problem is UNKNOWN VARIABLE: S1
************************
@@ -75127,8 +75292,8 @@ show var/tree/d=my_uvar_agg uv
in default dataset MY_UVAR_AGG
UV = FVX + FVX + FVX
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
***************************
! suppressing duplicates elsewhere in the family tree ("defined above")
@@ -75143,8 +75308,8 @@ go bn_vtree.sub v2
V2 = V1 + B + A + A
V1 = A + B + B^2
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
B = C
C = 1
B = (defined above)
@@ -75168,8 +75333,8 @@ go bn_vtree.sub v3
in default dataset MY_UVAR_AGG
V3 = A + V1 + B + A + A
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
V1 = A + B + B^2
A = (defined above)
B = C
@@ -75203,26 +75368,26 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
- FVX[d=my_file_var]
+ FVX[d=my_file_vars]
/TREE=USER
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
/TREE=FILE
- F (unknown variable)
+ *unknown variable: F
FV1[d=my_file_vars]
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: F
************************
@@ -75237,14 +75402,16 @@ the problem is UNKNOWN VARIABLE: F
/TREE=ALL
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
/TREE=USER
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
/TREE=FILE
- A[G=NOEXIST] (unknown grid)
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+ *unknown grid: NOEXIST
+the problem is UNKNOWN GRID: NOEXIST
************************
list b
@@ -75260,7 +75427,7 @@ the problem is UNKNOWN GRID: A[G=NOEXIST]
C = A[X=45S]
A[X=45S] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[X=45S] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[X=45S]
the problem is ERROR IN EXPRESSION: A[X=45S]
************************
list c
@@ -75277,7 +75444,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
D = A[I=1,,J=2]
A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[I=1,,J=2]
the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
************************
list d
@@ -75294,7 +75461,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
E = A[P=1]
A[P=1] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[P=1] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[P=1]
the problem is ERROR IN EXPRESSION: A[P=1]
************************
list e
@@ -75327,6 +75494,528 @@ show var/tree a
in default dataset MY_UVAR_AGG
A = ..HISTORY[D=1]
+! *****
+! 12/14 addition to test regridding dependencies
+go bn_vtree_regrid
+! bn_vtree_regrid.jnl
+! exercise 12/14 enhancements to display regrid target on a separate line
+! updated 1/26/15 to exercise multiple regrid target outputs
+! updated 2/23/15 to report target of regrid even when aux regridding occurs
+
+! case 1: target grid known, regridded variable known
+let myvar = 1 ! var to be regridded is known
+let gvar = x[x=1:5] ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR = X[X=1:5]
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 2: target grid known, regridded variable unknown
+canc var/all
+! myvar unknown
+let gvar = x[x=1:5] ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR[G=GVAR] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR = X[X=1:5]
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR[G=GVAR] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! **************************************
+! same tests but now with a dataset named with the target grid
+use coads_climatology
+use levitus_climatology ! default to d=2
+
+! case 1: target grid known, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 2: target grid known, regridded variable unknown
+canc var/all
+! myvar unknown
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+ MYVAR[G=SST[D=1]] ?? <== UNKNOWN VARIABLE ******
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3a: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3b: target grid unknown cuz of dataset, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=sst[d=bad_dset]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=BAD_DSET]] + UNVAR + KVAR
+ MYVAR[G=SST[D=BAD_DSET]] ?? <== UNKNOWN DATASET ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+ MYVAR[G=GVAR[D=1]] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! *******************
+! file variable listing, only
+canc var/all
+let myvar = 1
+let fvar = airt[d=1]
+let kvar = 1 ! known var
+* /TREE=FILE with know regrid target
+let a = myvar[g=sst[d=1]] + fvar + kvar
+sho var/tree=file a
+ *unknown grid: SST[D=1]
+ *unknown variable: AIRT[D=1]
+
+* /TREE=FILE with unknow regrid target
+let a = myvar[g=unknown] + fvar + kvar
+sho var/tree=file a
+ *unknown grid: UNKNOWN
+ *unknown variable: AIRT[D=1]
+
+! ********************
+! regridding to multiple targets
+
+define axis/x=140e:160e:1 x1
+define axis/y=20s:20n:1 y1
+LET myvar = X[gx=x1] + Y[gy=y1]
+
+define axis/y=5s:5n:.5 yp5
+
+go bn_vtree.sub myvar[g=temp]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp] is ready and AVAILABLE
+************************
+
+! second target *is* a named variable
+go bn_vtree.sub myvar[g=temp,gy=sst[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=sst[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gy=sst[d=1],gx=temp] ! reverse order, only
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: SST[D=1]
+ regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+
+! second target is not a named variable
+go bn_vtree.sub myvar[g=temp,gy=yp5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[gx=temp,gy=yp5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[gx=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=temp,y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,y=5s:5n:.5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=sst[d=1],y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+
+! multiple targets, including unknown variables
+go bn_vtree.sub myvar[g=temp,gy=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,gy=temp]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+ regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=temp,g=mybad[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=1],gy=mybad2]! distinct unknown targets
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD2 ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD2 ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+ *unknown grid: MYBAD2
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]] ! dup known targets
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad] ! dup unknown suppressed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=2] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=2] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=2]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD[D=2]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy='MYBAD'] ! dup unknown missed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to 'MYBAD' ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to 'MYBAD' ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+ *unknown grid: 'MYBAD'
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=myvar,gy=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=yp5,g=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+
+! 2/15 additions -- auxiliary variable regridding
+USE levitus_climatology
+LET myzvar = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = myzvar
+SET REGION/i=101:102/j=41:42
+
+LET/D=levitus_climatology depth = z[g=temp]+ 0*temp[k=1]
+
+! valid aux var and target variable
+LET tempz = temp[gz(depth)=myzvar]
+vtree=all tempz
+ in default dataset levitus_climatology
+ TEMPZ = TEMP[GZ(DEPTH)=MYZVAR]
+ TEMP
+ regrid to MYZVAR = Z[Z=100:500:100]
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! valid aux var. Target is axis name
+LET tempz1 = temp[gz(depth)=zax]
+vtree=all tempz1
+ in default dataset levitus_climatology
+ TEMPZ1 = TEMP[GZ(DEPTH)=ZAX]
+ TEMP
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! valid aux var. Target is unknown
+LET tempz2 = temp[gz(depth)=unknown_target]
+vtree=all tempz2
+ in default dataset levitus_climatology
+ TEMPZ2 = TEMP[GZ(DEPTH)=UNKNOWN_TARGET]
+ TEMP
+ regrid to UNKNOWN_TARGET ?? <== UNKNOWN GRID ******
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! --- unknown aux var, valid target ---
+! When an unknown auxiliary variable error occurs it suppresses
+! the reporting of both the variable being regridded and the regrid target
+! The underlying issue is that GET_VAR_CONTEXT (called from is_dependencies.F)
+! can return only a single error status
+! If it contains ferr_unknown_auxvar, then the success or failure of other
+! parts of the context processing are unknown.
+! One could kludge the code to find a way around this, but the violence
+! required is not justified in order to fix this small loss in error reporting.
+LET tempz3 = temp[gz(unknown_aux)=myzvar]
+vtree=all tempz3
+ in default dataset levitus_climatology
+ TEMPZ3 = TEMP[GZ(UNKNOWN_AUX)=MYZVAR]
+ UNKNOWN_AUX (unknown auxiliary variable)
+
+! a syntax error leads to a similar behavior
+LET tempz3a = temp[gz(unknown_aux)=myzvar,SYNTAX_ERROR]
+vtree=all tempz3a
+ in default dataset levitus_climatology
+ TEMPZ3A = TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]
+ TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR] *** WARNING: ERROR IN DEFINITION
+
+! similar behavior here: the unknown_target does not get reported
+LET tempz4 = temp[gz(unknown_aux)=unknown_target]
+vtree=all tempz4
+ in default dataset levitus_climatology
+ TEMPZ4 = TEMP[GZ(UNKNOWN_AUX)=UNKNOWN_TARGET]
+ UNKNOWN_AUX (unknown auxiliary variable)
+
+
+
! *********** v6.86 Additions ***********
GO bn_reset
@@ -75730,7 +76419,7 @@ variables:
LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -75753,7 +76442,7 @@ variables:
STRVAR:long_name = "mystrings" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -75905,7 +76594,7 @@ shade/n=3/L=6 bath_tf
! If so its label will show Julian too.
sh sym lab($labnum_f)
!-> sh sym lab5
-LAB5 = "FORECAST : 03-JAN-2000 00:00:00 JULIAN"
+LAB5 = "FORECAST : 2000 JULIAN"
GO bn_reset
cancel mode verify
@@ -75981,7 +76670,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76011,7 +76700,7 @@ variables:
A:history = "From a" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76032,7 +76721,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76053,7 +76742,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76075,7 +76764,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76246,7 +76935,7 @@ show dat
! another error, new name is a user-var
-yes? set var/name=diff w
+set var/name=diff w
SET MODE/LAST ignore
@@ -76304,7 +76993,7 @@ GO bn_short.sub tvar ave
! short script extracted from bn_negative_t.sub for bn_enter_exit_GO
LIST/nohead/norow $1[t=-5:9@$2] ! neg/pos t endpoints
- !-> LIST/nohead/norow tvar[t=-5:9 at ave] ! neg/pos t endpoints
+ !-> LIST/nohead/norow tvar[t=-5:9 at ave]
2.000
! Exit_GO
@@ -76396,11 +77085,11 @@ list/y=3/l=1 temp[x=@std]
list/y=3/l=1 temp[z=@std,x=@std]
VARIABLE : TEMPERATURE (deg. C)
FILENAME : gt4d011.cdf
- LONGITUDE: 140W to 122W (standard deviation)
+ LONGITUDE: 140W to 122W (XZ stddev)
LATITUDE : 3N (interpolated)
- DEPTH (m): 0 to 100 (standard deviation)
+ DEPTH (m): 0 to 100 (XZ stddev)
TIME : 17-AUG-1982 12:00
- 0.1946
+ 1.037
GO bn_reset
cancel mode verify
@@ -76496,7 +77185,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -76512,7 +77201,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -76528,7 +77217,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 24 T FERRET V6.93 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 17-Nov-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -76554,7 +77243,7 @@ set axis/name=.fr x_in_meters
set mode/last ignore
-! *********** v6.9+ Additions ***********
+! *********** v6.93 Additions ***********
GO bn_reset
cancel mode verify
GO bn691_bug_fixes
@@ -77057,7 +77746,7 @@ def axis/z=1:20:1 zaxis
define axis/t=1-jan-2000:1-jan-2005:1/units=days longtime
let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
sh grid bigvar
- GRID (G085)
+ GRID (G103)
name axis # pts start end
XAXIS X 360 r 1 360
YAXIS Y 180 r 1 180
@@ -77070,7 +77759,7 @@ load bigvar
! also was an incorrect size.
define axis/t=1-jan-2000:1-jan-2010:1/units=days longtime
sh grid bigvar
- GRID (G085)
+ GRID (G103)
name axis # pts start end
XAXIS X 360 r 1 360
YAXIS Y 180 r 1 180
@@ -77362,10 +78051,12 @@ GO bn_vtree.sub c
/TREE=ALL
C = B2[GT=A]
B2 = A
+ regrid to A = T[GT=1:2:1]
A = T[GT=1:2:1]
/TREE=USER
C = B2[GT=A]
B2 = A
+ regrid to A = T[GT=1:2:1]
A = T[GT=1:2:1]
/TREE=FILE
c is ready and AVAILABLE
@@ -77403,6 +78094,8 @@ cancel mode verify
GO err69_isready_bugs
! err69_isready_bugs.jnl
! Tickets 2201 and 2215
+! updated error script 12/14 *sh* - to ensure that bench log file
+! has verification of this problem and its fix, as well as the bench error file
! ticket 2201: isready operation meant we couldn't cancel the second axis
@@ -77424,6 +78117,18 @@ can axis xax_isready_1
can var b
can axis xax_isready_2
+! 12/14 additions:
+show grid/dynamic ! look for "err: grid over-allocated" messages
+Dynamic grids:
+ no implicit grids
+Dynamic axes:
+ AXIS (AX127) use count: 1
+ AXIS (AX049) use count: 13
+ AXIS (AX047) use count: 13
+ AXIS (AX020) use count: 2
+show axis xax_isready_1, xax_isready_2 ! did they both get canceled?
+ name axis # pts start end
+
! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
let a = x[gx=1:3:1]
@@ -77440,6 +78145,19 @@ m
GO bn_reset
cancel mode verify
+GO err691_substring_arg
+! err693_substring_arg
+! ACM 12/10/2014
+! ticket 2210. Argument checking was not done for the SUBSTRING function
+
+set mode ignore
+list substring("hello",1,-2)
+list substring("hello",1,-3)
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
GO bn_append_dsg
! bn_append_dsg.jnl
!From SOCAT 3: appending to a dsg file where the new variable is on the obs
@@ -77515,7 +78233,7 @@ variables:
:geospatial_lat_max = 29.07 ;
:time_coverage_start = "2006-06-10T23:48:00Z" ;
:time_converage_end = "2006-06-11T00:12:00Z" ;
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
}
GO bn_reset
@@ -77608,7 +78326,7 @@ variables:
LON360:history = "added to test_save_dsg.nc" ;
// global attributes:
- :history = "CruiseDsgNcFile 1.0FERRET V6.93 29-Oct-14" ;
+ :history = "CruiseDsgNcFile 1.0FERRET V6.951 (beta) 17-Nov-15" ;
:featureType = "Trajectory" ;
:Conventions = "Some other conventionsCF-1.6" ;
:geospatial_lon_min = -92.77 ;
@@ -77635,7 +78353,7 @@ can dat/all; use anew_global.nc
sh att .
attributes for dataset: ./anew_global.nc
..history = Subset of etopo20,
- FERRET V6.93 29-Oct-14
+ FERRET V6.951 (beta) 17-Nov-15
..Conventions = Existing conventions note, , CF-1.6
@@ -77667,7 +78385,7 @@ can dat/all; use conventions_history
! The new attibutes
sh att .
attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V6.93 29-Oct-14
+ ..history = The history of the fileFERRET V6.951 (beta) 17-Nov-15
..Conventions = Conventions for variables named V2CF-1.6
GO bn_reset
@@ -78079,14 +78797,14 @@ a is ready and AVAILABLE
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
in default dataset other_file_vars
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
FV1
********************************
/TREE=ALL
@@ -78095,30 +78813,30 @@ a is ready and AVAILABLE
the problem is UNKNOWN VARIABLE: NOEXIST
************************
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
- NOEXIST (unknown variable)
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
the problem is UNKNOWN DATASET: V[D=NOEXIST]
************************
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
- V[D=NOEXIST] (unknown dataset)
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ *unknown dataset: V[D=NOEXIST]
/TREE=ALL
/TREE=USER
/TREE=FILE
the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
************************
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
- NOVAR[D=NODSET] (unknown dataset)
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ *unknown dataset: NOVAR[D=NODSET]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78126,11 +78844,11 @@ the problem is UNKNOWN VARIABLE: NOEXIST
************************
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
- NOEXIST (unknown variable)
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78149,10 +78867,12 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
FVZ
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
@@ -78164,10 +78884,12 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FV1[d=my_file_vars]
FVX[d=my_file_vars]
@@ -78179,11 +78901,13 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
@@ -78200,7 +78924,7 @@ the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
in default dataset my_file_vars
FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
NOEXIST (unknown auxiliary variable)
- NOEXIST (unknown auxiliary variable)
+ *unknown auxiliary variable: NOEXIST
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
@@ -78209,15 +78933,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
************************
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
- NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
/TREE=ALL
@@ -78227,15 +78953,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
************************
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
FVX
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
- UNKNOWN_AUX (unknown auxiliary variable)
+ *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+ *unknown auxiliary variable: UNKNOWN_AUX
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
@@ -78244,395 +78972,7851 @@ fv1 is ready and AVAILABLE
************************
in default dataset MY_AGG
FV1 (aggregate variable)
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- FV1[d=another_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
in default dataset MY_AGG
FV1 (aggregate variable)
- FV1[d=my_file_vars]
- FV1[d=other_file_vars]
- FV1[d=another_file_vars]
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-fvx is ready and AVAILABLE
-************************
- in default dataset MY_UVAR_AGG
- FVX (aggregate variable)
- FVX[d=my_file_var]
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=other_file_var]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=another_file_var]
- in default dataset MY_UVAR_AGG
- FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fvx is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ FVX (aggregate variable)
+ FVX[d=my_file_vars]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_vars]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_vars]
+ in default dataset MY_UVAR_AGG
+ FVX (aggregate variable)
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+
+ FVX[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ILLEGAL RECURSIVE VARIABLES: P1
+************************
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = P1 + S3
+ P1 = *** WARNING: RECURSIVE DEFINITION. See above
+ S3 ?? <== UNKNOWN VARIABLE ******
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = P1 + S3
+ P1 = *** WARNING: RECURSIVE DEFINITION. See above
+ S3 ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S3
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: S1
+************************
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = S1 + S3
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = S1 + S3
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S1
+ *unknown variable: S3
+ in default dataset my_file_vars
+ FV = FV1 + FV1 + FV1
+ in default dataset MY_UVAR_AGG
+ FV = FV1 + FV1 + FV1
+ FV1 (aggregate variable)
+ in default dataset other_file_vars
+ UV = FVX + FVX + FVX
+ FVX = FV1 + X[GX=FVX[D=1],I=1:3]
+ in default dataset MY_UVAR_AGG
+ UV = FVX + FVX + FVX
+ FVX (aggregate variable)
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+***************************
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v2 is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ V2 = V1 + B + A + A
+ V1 = A + B + B^2
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ B = C
+ C = 1
+ B = (defined above)
+ A = (defined above)
+ in default dataset MY_UVAR_AGG
+ V2 = V1 + B + A + A
+ V1 = A + B + B^2
+ A = FV1[D=1] - FV1[D=2]
+ B = C
+ C = 1
+ B = (defined above)
+ A = (defined above)
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v3 is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ V3 = A + V1 + B + A + A
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ V1 = A + B + B^2
+ A = (defined above)
+ B = C
+ C = 1
+ B = (defined above)
+ in default dataset MY_UVAR_AGG
+ V3 = A + V1 + B + A + A
+ A = FV1[D=1] - FV1[D=2]
+ V1 = A + B + B^2
+ A = (defined above)
+ B = C
+ C = 1
+ B = (defined above)
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: F
+************************
+ in default dataset MY_UVAR_AGG
+ D = B + C
+ B = FV1[D=MY_FILE_VARS]
+ FV1[d=my_file_vars]
+ C = 1
+ A = F
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ E = 1
+ FVX[d=my_file_vars]
+ in default dataset MY_UVAR_AGG
+ D = B + C
+ B = FV1[D=MY_FILE_VARS]
+ C = 1
+ A = F
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ E = 1
+ *unknown variable: F
+ FV1[d=my_file_vars]
+ *unknown variable: NOEXIST
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN GRID: NOEXIST
+************************
+ in default dataset MY_UVAR_AGG
+ B = A[G=NOEXIST]
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
+ in default dataset MY_UVAR_AGG
+ B = A[G=NOEXIST]
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
+ *unknown grid: NOEXIST
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[X=45S]
+************************
+ in default dataset MY_UVAR_AGG
+ C = A[X=45S]
+ A[X=45S] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ C = A[X=45S]
+ A[X=45S] *** WARNING: ERROR IN DEFINITION
+ *WARNING: syntax error: A[X=45S]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
+************************
+ in default dataset MY_UVAR_AGG
+ D = A[I=1,,J=2]
+ A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ D = A[I=1,,J=2]
+ A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
+ *WARNING: syntax error: A[I=1,,J=2]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[P=1]
+************************
+ in default dataset MY_UVAR_AGG
+ E = A[P=1]
+ A[P=1] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ E = A[P=1]
+ A[P=1] *** WARNING: ERROR IN DEFINITION
+ *WARNING: syntax error: A[P=1]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+f is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ F = A[I=10]
+ A = I[I=1:5]
+ in default dataset MY_UVAR_AGG
+ F = A[I=10]
+ A = I[I=1:5]
+ in default dataset MY_UVAR_AGG
+ A = FVZ.LONG_NAME[D=1]
+ in default dataset MY_UVAR_AGG
+ A = ..HISTORY[D=1]
+
+
+
+GO bn_reset
+cancel mode verify
+GO bn_date1900_array
+! bn_date1900_array.jnl
+! Let date1900 accept an array of date strings, returning a list
+! of coordinate values, days since 1-jan-1900.
+
+
+sh func/details date1900
+DATE1900(formatted date)
+ Convert date strings into Julian days since 1-Jan-1900
+ Axes of result:
+ X: inherited from argument(s)
+ Y: NORMAL (no axis)
+ Z: NORMAL (no axis)
+ T: NORMAL (no axis)
+ E: NORMAL (no axis)
+ F: NORMAL (no axis)
+ formatted date: dd-MMM-yy or dd-MMM-yyyy (e.g. "20-Dec-00") (none) (STRING)
+ Influence on output axes:
+ X: passed to result grid
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+
+! Function always worked just on one date string.
+list date1900("01-jan-2001")
+ VARIABLE : DATE1900("01-jan-2001")
+ 36890.
+
+
+! Now the argument can be an array
+let datestrings = {"01-jan-2001", "02-jan-2001", "30-Jul-2002"}
+list date1900(datestrings)
+ VARIABLE : DATE1900(DATESTRINGS)
+ SUBSET : 3 points (X)
+ 1 / 1: 36890.
+ 2 / 2: 36891.
+ 3 / 3: 37465.
+
+def axis/t/units=days/t0=1-jan-1900 taxis = date1900(datestrings)
+list t[gt=taxis]
+ VARIABLE : T
+ axis TAXIS
+ SUBSET : 3 points (TIME)
+ 01-JAN-2001 00 / 1: 36890.
+ 02-JAN-2001 00 / 2: 36891.
+ 30-JUL-2002 00 / 3: 37465.
+
+
+GO bn_reset
+cancel mode verify
+GO bn_spawn_size
+! bn_spawn_size.jnl
+! Return the size of the result of a spawn, not
+! the nominalabstract axis length.
+
+! ticket 981
+
+let files = {spawn:"ls *cdf*.jnl"}
+list files
+ VARIABLE : {SPAWN:"ls *cdf*.jnl"}
+ SUBSET : 8 points (X)
+ 1 / 1:"bn_cdf_errmsg.jnl"
+ 2 / 2:"bn_cdf.jnl"
+ 3 / 3:"bn_cdf_keepax.jnl"
+ 4 / 4:"bn_netcdf4.jnl"
+ 5 / 5:"err490_cdf_childax.jnl"
+ 6 / 6:"err491_cdf_childax.jnl"
+ 7 / 7:"err65_read_epic_cdf.jnl"
+ 8 / 8:"err667_5d_netcdf.jnl"
+say `files,return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
+
+! Evaluate size without loading the variable first
+let datfiles = {spawn:"ls *.dat"}
+say `datfiles,return=isize`
+ !-> MESSAGE/CONTINUE 37
+37
+
+! expression syntax
+say `{spawn:"ls xml*.jnl"},return=isize`
+ !-> MESSAGE/CONTINUE 3
+3
+list {spawn:"ls xml*.jnl"}
+ VARIABLE : {SPAWN:"ls xml*.jnl"}
+ SUBSET : 3 points (X)
+ 1 / 1:"xml_header_script.jnl"
+ 2 / 2:"xml_use_coads.jnl"
+ 3 / 3:"xml_use_numstring.jnl"
+
+! Test variables based on output of a spawn.
+! These already worked correctly, has a grid-changing function.
+
+LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
+say `filesets, return=isize`
+ !-> MESSAGE/CONTINUE 908
+908
+
+let files = {spawn:"ls *cdf*.jnl"}
+let name_len = strindex(files, ".sub")
+say `name_len, return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
+
+GO bn_reset
+cancel mode verify
+GO bn_polygon_log
+! bn_polygon_log.jnl
+! polygon plots on a log axis need tests
+
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let xpts = cos(x/10) + 2
+let ypts = x/10+1
+
+! Polygon plot
+
+set view ul
+polygon/title="NOT LOG"/i=1:100 xpts+xsqr, ypts+ysqr, x*x/10
+
+! Poly/vlog and /hlog
+! (known bug: Whats up with the colorbar labels?)
+set view ur; poly/title=VLOG/i=1:100/vlog xpts+xsqr,ypts+ysqr,x*x/10
+set view ll; poly/title=HLOG/i=1:100/hlog xpts+xsqr,ypts+ysqr,x*x/10
+set view lr;poly/title=BOTH/i=1:100/vlog/hlog xpts+xsqr,ypts+ysqr,x*x/10
+
+! These are errors - log of negative values on axis
+
+set mode ignore
+
+let ybad = x/10 - 1
+let xbad = cos(x/10) + 0.8
+
+can view
+polygon/i=1:100/nolab xbad+xsqr,ybad+ysqr,x*x/10
+
+poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
+poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
+
+set mode/last ignore
+
+! *********** v6.94Additions ***********
+
+GO bn_reset
+cancel mode verify
+GO bn694_bug_fixes
+! bn694_bug_fixes
+! test various fixes that went into version 6.94
+! 11/2014 ACM
+! 12/2014 *sh* added IF-THEN flow fixes, including review of past tickets
+! 1/2015 *sh* added test for undetected bad dataset name in regrid target
+
+GO bn_reset
+cancel mode verify
+GO err693_upcase_quoted_name
+! err693_upcase_quoted_name.jnl
+! ticket 2050. Names are saved in uppercase
+! form unless there are duplicates other than case.
+! Then searching for the name in quotes looked
+! only with a case-sensitive search.
+
+let abc = 12
+cancel mode upcase
+
+save/file=aa.nc/clobber abc
+can dat/all; can var/all
+
+use aa.nc
+! previously this failed to find the name.
+list 'abc'
+ VARIABLE : 12
+ FILENAME : aa.nc
+ 12.00
+
+
+GO bn_reset
+cancel mode verify
+GO err693_isready_hang
+! err693_isready_hang.jnl
+! ACM 12/10/2014
+! ticket 2219. The last of these commands caused Ferret to hang.
+
+use gt4d011
+def ax/t/t0="`u,r=t0`"/unit="`u,r=tunit`" time = t[gt=u]
+ !-> def ax/t/t0="14-JAN-1980 14:00:00"/unit="hour" time = t[gt=u]
+let a = u
+IF `a,r=isready` THEN; let/title="`a,r=title`" a1 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a1 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a2 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a2 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a3 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a3 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a4 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a4 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a5 = a
+
+GO bn_reset
+cancel mode verify
+GO err693_isready_dyn_grid_crash ! 12/23/2014
+let/unit="m" b = x[gx=1:5:1]
+say "`b,r=unit`" ! this causes dynamic grid of b to be created
+ !-> MESSAGE/CONTINUE "m"
+m
+let c = x[gx=1:5:2]
+let b2 = b+0*c[gx=b] ! dynamic grid of b exists, but not grid of c
+VTREE b2
+ B2 = B+0*C[GX=B]
+ B = X[GX=1:5:1]
+ C = X[GX=1:5:2]
+ regrid to B = X[GX=1:5:1]
+
+GO bn_reset
+cancel mode verify
+GO err693_attr_in_gcfcn
+! err693_attr_in_gcfcn.jnl
+! ACM 12/10/2014
+! bug 2220 varname.attname as an argument to grid-changing functions.
+! All except the last of these caused various ungraceful stops.
+
+let/units="m" a = 1
+list is_element_of_str(a.units,{"m","a"})
+ VARIABLE : IS_ELEMENT_OF_STR(A.UNITS,{"m","a"})
+ X : 1
+ 1.000
+
+let/units="m" a = 1
+let b = a.units
+list is_element_of_str(b,{"m","a"})
+ VARIABLE : IS_ELEMENT_OF_STR(B,{"m","a"})
+ X : 1
+ 1.000
+
+
+use levitus_climatology
+
+list is_element_of_str_n (temp.long_name, {"Temperature", "temp"})
+ VARIABLE : IS_ELEMENT_OF_STR_N (TEMP.LONG_NAME, {"Temperature", "temp"})
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ 2.000
+
+let a = temp.units
+list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
+ VARIABLE : IS_ELEMENT_OF_STR (A, {"Kelvin", "Celsius", "DEG C"})
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ 1.000
+
+
+
+GO bn_reset
+cancel mode verify
+GO err693_inconsistent_quote
+! inconsistent interpretation of surrounding double quotes
+! the original source of the problem is in PARSE_COMMAND
+! arg_start and arg_end are set to skip surrounding quotation marks.
+! But since this behavior permeates so many routines it is best to repair
+! the problem in ALL_1_ARG
+
+
+let foobar = 1
+LIST "foobar", "foobar" ! this is correct - list as strings
+ Column 1: str is "foobar"
+ Column 2: str is "foobar"
+ str str
+I / *: "foobar" "foobar"
+LIST "foobar" ! error: lists the value instead
+ VARIABLE : "foobar"
+ "foobar"
+
+! IF-THEN flow tests
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2214
+! bug 2214
+! If we put the "say hi" in parentheses, this seems to work.
+! But parentheses haven't previously been required, so there are a lot of
+! scripts that don't have them.
+
+* 12/14 note (sh) - Ferret handles this situation correctly because
+* PARSE_COMMAND acts on the semi-colons in the full command line *before*
+* it acts on the "IF". Thus the thress semicolon-connected commands
+* follow the same logical path through Ferret as if they were separated
+* onto three lines
+
+IF 0 THEN; rep/i=1:1 say ERROR; ENDIF
+
+IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF
+!-> REPEAT: I=1
+CORRECT
+
+(IF 0 THEN; rep/i=1:1 say ERROR; ENDIF)
+
+(IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF)
+!-> REPEAT: I=1
+CORRECT
+
+!yes? quit
+!yes? quit
+!yes? ^Z
+!Suspended
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2211
+! bug #2211
+
+
+IF 0 THEN
+ELSE
+ exit/script
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1860
+! from bug 1860
+! continue line found within grave accents
+
+CANCEL MODE VERIFY
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1446
+! testing ticket 1446
+
+! the presence of a tab preceding the "!" comment caused a parsing error
+
+! the behavior of this even in v69+ today is problematic in that
+! it echos an ENDIF statement that should be a plain old skip
+
+IF 0 THEN
+ENDIF
+
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1681
+! testing ticker 1681
+
+!The third block of the following script issues an error:
+!ERROR: invalid command: ENDIF can only be used in an IF clause
+!
+!Looks like a parsing bug -- it seems the ENDIF inside the REPEAT is being
+!applied to the outermost IF. Note that the error goes away if we change
+!the outer 0 to a 1.
+
+
+say "test1"
+test1
+if 0 then
+endif
+
+say "test2"
+test2
+if 0 then
+endif
+
+say "test3"
+test3
+if 0 then
+endif
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1706
+! testing ticket 1706
+!
+def sym a say hi\\; say hi
+
+IF 0 THEN
+ENDIF
+
+! some versions (not v550 but yes v63 but not v6301) fail to say "here"
+IF 1 THEN
+ say here
+here
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1368 ! Jan 28, 2010, Ferret version 5.812
+! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
+
+! this is still a bug in V69+
+! the initial IF command is not being closed by the first ENDIF
+! it is skipping down to the elif command
+
+define symbol xend 180
+let key_flag = 0
+
+! test 1 - line 1 false condition should suppress both outputs
+IF `($xend) GT 360` THEN
+ !-> IF 0 THEN
+ENDIF
+
+
+! test 2 - line 1 false condition should cause else clause - "point G"
+let dxymin = 0.20
+if `dxymin lt 0.12` then
+ !-> if 0 then
+elif `dxymin lt 0.25` then
+ !-> elif 1 then
+ SAY "CORRECT. this message should display"
+CORRECT. this message should display
+endif
+
+! test 3 - this is from bug #918 -- looks like the same bug as #1368
+IF 0 THEN
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_start_missing
+! err693_ribbon_start_missing
+! 1/6/2015 ACM
+!
+! Bug 2226: If data starts with a missing-value and we're using (-inf) then
+! the ribbon plot started with the lowest color instead of plotting as for missing
+! Only the cases starting with missing data were incorrect previous to fixing this bug.
+
+DEFINE SYMBOL ribbon_command = PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3
+
+let/units=degrees_east xvar = {-177,-174,-186}
+let/units=degrees_north yvar = {-43, -45, -42}
+let vvar = {,271, 319}
+! This previously started with purple, not a gray missing-value point
+($ribbon_command)/title="(-inf) in levels" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="(-inf) in levels" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,,271,319}
+($ribbon_command)/title="start with several missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with several missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,271,319,1000}
+($ribbon_command)/title="end large positive value" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end large positive value" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,271,319,1000,}
+($ribbon_command)/title="end with large positive and missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end with large positive and missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {1.e7,,,271,319}
+($ribbon_command)/title="start with large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with large positive" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,1.e7,,271,319}
+($ribbon_command)/title="start with missing then large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with missing then large positive" xvar,yvar,vvar
+
+
+GO bn_reset
+cancel mode verify
+GO err691_pt_in_poly
+! err691_pt_in_poly
+! ticket 1961: modulo longitude for pt_in_poly
+! and sending subset of the xy field
+
+use coads_climatology
+
+let xpts = {64,81,81,82,88,88,79,79,76,73,68,64}
+let ypts = {31,30,29,29,27,24,20,19,20,25,27,31}
+
+let pts = pt_in_poly(sst[L=5,x=60:90,y=15:35], xpts, ypts)
+shade/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
+
+! Put the xpts on different modulo branches
+! Previously the list commands would have listed -1,-1
+
+let xpts0 = {64,81,81,82,88,88,79,79,76,73,68,64}
+let/title=lon/units=degrees_east xpts = xpts0 + 360
+
+shade/title="Plus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
+
+let/title=lon/units=degrees_east xpts = xpts0 - 360
+
+shade/title="Minus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
+
+GO bn_reset
+cancel mode verify
+GO err693_undetected_regrid_dset
+! err693_undetected_regrid_dset.jnl - Jan 2015
+
+! in GET_CONTEXT_MODS no check is made whether dataset name/number is
+! valid following "gdset = FIND_DSET_NUMBER( name(dstart:dend) )"
+
+use coads_climatology
+use levitus_climatology ! default to d=2
+
+canc var/all
+let myvar = temp
+let a = myvar[g=temp[d=bad_d]] ! THIS SHOULD BE DETECTED AS AN ERROR
+
+set mode ignore
+stat/l=1/x=180/y=0 a ! this *SHOULD* trigger an error. Yes. Detect it.
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err693_line_over_axis
+! Ticket 2232: line plots overlaid the plot axes
+show mode meta
+ MODE STATE ARGUMENT
+ METAFILE CANCELLED metafile.plt
+! line plot with /VS draw on top of the axes
+let xval = {0.0, 0.2, 1.0, 0.8, 0}
+let yval = {0.0, 1.1, 1.1, 0.0, 0}
+plot/vs/line/thick=3/color=lightblue xval, yval
+
+! any line overlay may draw on the axes
+let xval = {0.0, 0.0, 0.8, 0.2, 0}
+let yval = {0.1, 1.2, 1.2, 0.1, 0.1}
+plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
+
+
+GO bn_reset
+cancel mode verify
+GO err693_save_packed
+! err693_save_packed.jnl
+! ticket 2240: bug writing multiple vars with one SAVE when scaled
+!
+! Previously saw a netcdf error because first variable was mis-scaled on writing.
+
+use err693_save_packed.nc
+save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
+
+GO bn_reset
+cancel mode verify
+GO err693_subspan_trans
+! err693_subspan_trans
+! bug 2241 3/9/2015
+
+use coads_climatology
+let a = sst[x=120:284,y=-2:2 at ave,t=@ave]
+save/clob/file=a.nc a
+can var a
+use a
+set reg/x=25:385
+let b = a[x=@min]
+
+set mode diag
+say `a[x=@min]`
+ getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ strip --> A[X=25E:25E(385)@MIN,D=2]
+ strip moduloing A on X axis: 0 83 dset: 2
+ reading A M: 48 dset: 2 I: 1 82 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ doing moduloing A on X axis: 1 82 dset: 2
+ doing --> A[X=25E:25E(385)@MIN,D=2]
+ -DELETE A M: 78 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+! This previously resulted in an error.
+say `b`
+ dealloc dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ getgrid B C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval B C: 6 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ strip --> A[X=25E:25E(385)@MIN,D=2]
+ strip moduloing A on X axis: 0 83 dset: 2
+ reading A M: 78 dset: 2 I: 1 82 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ doing moduloing A on X axis: 1 82 dset: 2
+ doing --> A[X=25E:25E(385)@MIN,D=2]
+ -DELETE B M: 80 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+can mode diag
+
+! What if the region for @MIN is in the saved portion?
+say `a[x=150:200 at min]`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+let b = a[x=150:200 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+
+! What if the region for @MIN extends beyond the saved portion?
+say `a[x=200:300 at min]`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+let b = a[x=200:300 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+! What if the region for @MIN is outside the saved portion?
+say `a[x=300:385 at min]`
+ !-> MESSAGE/CONTINUE bad
+bad
+let b = a[x=300:385 at min]
+say `b`
+ !-> MESSAGE/CONTINUE bad
+bad
+
+
+GO bn_reset
+cancel mode verify
+GO err693_repeat_err
+! err693_repeat_err.jnl
+! test fix for ticket 2244: Error handling in REPEAT
+
+! The second of these should result in an error - in debug mode
+! it instead was hitting an out-of-range subscript error.
+
+repeat/range=1:2/name=column repeat/range=1:2/name=row say `column`,`row`
+!-> REPEAT: COLUMN:1
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 1,1
+1,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 1,2
+1,2
+!-> REPEAT: COLUMN:2
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 2,1
+2,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 2,2
+2,2
+
+set mode ignore
+repeat/range=1:2/name=column repeat/range=1:2/name=row
+!-> REPEAT: COLUMN:1
+!-> REPEAT: COLUMN:2
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err693_edit_useratt
+! err693_edit_useratt.jnl
+! ticket 2249: set attribute properties for user-defined variable
+
+use err491_attval.cdf
+list/x=135.402W:135.321W/y=58.609 elev
+ VARIABLE : Surface elevation (meter)
+ DATA SET : K-Bay OAR3d model (200m)
+ FILENAME : err491_attval.cdf
+ SUBSET : 7 points (LONGITUDE)
+ LATITUDE : 58.61N (interpolated)
+ T (day) : 1.7837
+ 135.402W / 45: ....
+ 135.389W / 46: ....
+ 135.375W / 47: ....
+ 135.362W / 48: 2.953
+ 135.348W / 49: 2.953
+ 135.335W / 50: 2.950
+ 135.321W / 51: 2.953
+
+
+! Rename the file variable, define a variable using its name
+set var/name=elev_in elev
+let elev = missing(elev_in, -1.e34)
+
+! Inherit attributes from the file variable.
+! cancel writing the scale attributes
+set att/like=elev_in elev
+can att/output elev.scale_factor
+can att/output elev.add_offset
+
+! set the bad-flag (can't do this before the SET ATT/LIKE
+set var/bad=-1.e34 elev
+
+! save
+save/clobber/file=a.nc elev
+can var/all
+use a.nc
+list/x=135.402W:135.321W/y=58.609 elev
+ VARIABLE : Surface elevation (meter)
+ FILENAME : a.nc
+ SUBSET : 7 points (LONGITUDE)
+ LATITUDE : 58.61N (interpolated)
+ T (day) : 1.7837
+ 135.402W / 45: ....
+ 135.389W / 46: ....
+ 135.375W / 47: ....
+ 135.362W / 48: 2.953
+ 135.348W / 49: 2.953
+ 135.335W / 50: 2.950
+ 135.321W / 51: 2.953
+
+
+GO bn_reset
+cancel mode verify
+GO err693_redef_rec_axis
+! err693_redef_rec_axis.jnl
+! ticket 2271. Redefining the record axis meant
+! that SHOW AXIS/FULL couldnt get the time axis info
+
+define axis/x=1:5:1 xax
+define axis/y=2:10:2 yax
+define axis/t=1:7:1 tredef
+let var = x[gx=xax] + y[gy=yax] + t[gt=tredef]
+save/clobber/file=a.nc var
+
+can var/all
+can axis xax
+can axis yax
+can axis tredef
+
+use a.nc
+define axis/t=1:7:1/units=days/t0=1-jan-2000 tredef
+
+! Previously the output had time range: ???
+show data/full
+ currently SET data sets:
+ 1> ./a.nc (default)
+
+ name title I J K L M N
+ VAR X[GX=XAX] + Y[GY=YAX] + T[GT=TR 1:5 1:5 ... 1:7 ... ...
+ on grid GSI1 with -1.E+34 for missing data
+ X=0.5:5.5 Y=1:11
+
+ time range: 02-JAN-2000 00:00 to 08-JAN-2000 00:00
+
+
+GO bn_reset
+cancel mode verify
+GO err693_frame_types
+! bn_frame_types.jnl
+! Ticket 2275
+! The default file type for FRAME was still HDF
+
+set mode ignore
+
+use coads_climatology
+shade/l=1 sst
+
+! This issued an error and quit
+frame/format=hdf/file=a.hdf
+
+! so did this
+frame/file=a.png
+
+! this is (always) ok
+frame/file=a.gif
+frame/format=gif file=a.plot
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err693_shape
+! err693_shape.jnl
+! bug 2273 shape of variable with various subexpressions
+
+use coads_climatology
+let a = sst[x=@ave]
+let a_clim = a[gt=MONTH_IRREG at mod]
+let a_anom = a - a_clim[gt=a at nrst]
+
+! Should all be YT
+say `a,r=shape` `a_clim[gt=a at nrst],r=shape` `a_anom,r=shape`
+ !-> MESSAGE/CONTINUE YT YT YT
+YT YT YT
+
+! Also works for size returns
+
+! Should be 180, 1, 1
+say `sst,r=isize` `a,r=isize` `a_anom,r=isize`
+ !-> MESSAGE/CONTINUE 180 1 1
+180 1 1
+
+
+GO bn_reset
+cancel mode verify
+GO err693_ef_axis_precision
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.94
+ ! Linux 2.6.32-504.12.2.el6.x86_64 64-bit - 03/20/15
+ ! 11-May-15 16:51
+
+define axis/f faxis = {0.001, 0.123, 0.234, 0.498}
+define axis/e eaxis = {1001.1009, 1234.005, 2112.321, 2520.45}
+let efvar = _M[ge=eaxis] + _n[gf=faxis]
+set view upper; plot/n=3 efvar
+set view lower; plot/m=2 efvar
+list/n=3 efvar
+ VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
+ SUBSET : 4 points (E)
+ F : 0.2
+ 1001.1 / 1: 4.000
+ 1234 / 2: 5.000
+ 2112.3 / 3: 6.000
+ 2520.4 / 4: 7.000
+list/m=2 efvar
+ VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
+ SUBSET : 4 points (F)
+ E : 1234
+ 0 / 1: 3.000
+ 0.12 / 2: 4.000
+ 0.23 / 3: 5.000
+ 0.5 / 4: 6.000
+q
+
+GO bn_reset
+cancel mode verify
+GO err693_string_results
+! err693_string_results.jnl
+! Ticket 2234, the LIST B returned the numeric pointer to the string.
+! *acm* 5/14/2015
+
+let b = IF a then "yes" else "no"
+let a = 1/0
+list b
+ VARIABLE : IF A THEN "yes" ELSE "no"
+ "no"
+
+! The LOAD C makes the data type of D correct
+let d = if c then "ok" else "not ok"
+let c = 1/0
+load C
+list d
+ VARIABLE : IF C THEN "ok" ELSE "not ok"
+ "not ok"
+
+GO bn_reset
+cancel mode verify
+GO err693_lev_nv_over
+! err693_lev_nv_over.jnl
+! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
+
+! draw any underlay to set up for polymark script
+use coads_climatology
+shade/x=120:250/Y=25s:65n/L=1/pal=white/nokey sst
+
+LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
+LET ypts = 15 + 20*SIN(2*3.14*I[I=1:50]/60)
+
+! Variable is a constant w/ negative value
+LET sst = -5 + 0*ypts
+
+! The poly/over command caused a Fortran runtime error in tm_fmt_sngl
+GO polymark polygon/over/lev=20v/key/title="SST" xpts,ypts,sst,square, 0.5
+
+
+GO bn_reset
+cancel mode verify
+GO err693_fcn_of_attvar
+! err693_fcn_of_attvar.jnl
+! Ticket 2291 Function of attribute-expression
+! returned just the first result
+
+use coads_climatology
+list sst.dimnames
+ VARIABLE : SST.DIMNAMES
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"COADSX"
+ 2 / 2:"COADSY"
+ 3 / 3:"TIME10"
+list dncase(sst.dimnames)
+ VARIABLE : DNCASE(SST.DIMNAMES)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"coadsx"
+ 2 / 2:"coadsy"
+ 3 / 3:"time10"
+list strlen( sst.dimnames)
+ VARIABLE : STRLEN( SST.DIMNAMES)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1: 6.000
+ 2 / 2: 6.000
+ 3 / 3: 6.000
+list substring(sst.dimnames,2,3)
+ VARIABLE : SUBSTRING(SST.DIMNAMES,2,3)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"OAD"
+ 2 / 2:"OAD"
+ 3 / 3:"IME"
+list dncase(substring(sst.dimnames,2,3))
+ VARIABLE : DNCASE(SUBSTRING(SST.DIMNAMES,2,3))
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"oad"
+ 2 / 2:"oad"
+ 3 / 3:"ime"
+list ysequence(dncase(sst.dimnames))
+ VARIABLE : YSEQUENCE(DNCASE(SST.DIMNAMES))
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (Y)
+ 1 / 1:"coadsx"
+ 2 / 2:"coadsy"
+ 3 / 3:"time10"
+
+GO bn_reset
+cancel mode verify
+GO err693_isize_and_gcfcn
+! err693_isize_and_gcfcn.jnl
+! ticket 2213
+! SET REGION interacting with ABSTRACT AXES
+! When the variable using XSEQUENCE was defined, suddenly the
+! region was being applied (inconsistently).
+
+can mode verify
+8
+ GRID XABSTRACT
+ name axis # pts start end
+ ABSTRACT X 99999999 r 1 1.E+08
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+8
+ GRID XABSTRACT
+ name axis # pts start end
+ ABSTRACT X 99999999 r 1 1.E+08
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_scale
+! err693_ribbon_scale.jnl
+! ticket 2295: the vertical scale is mis-computed
+! 5/29/2015
+
+let var = {-81,-81,-81}
+let color = {2,2,2}
+plot/ribbon/key var,color
+
+! should be -82 to -80
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "-82.0000000"
+YAXIS_MAX = "-80.0000000"
+
+GO bn_reset
+cancel mode verify
+GO err693_parse_curly
+! err693_parse_curly.jnl
+! the sub-routine defines a string variable containing commands for overlays in
+! different directions. the bug was that the parser doesn't handle quoted strings
+! inside { } if those strings include curly braces.
+! The argument chooses one of the strings with commands and plots the overlay
+
+use gt4d011
+
+shade/i=100/l=1/pal=grayscale temp
+go err693_parse_curly.sub yz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+
+! list of valid shapes
+
+let prd_shapes = {"xy", "xz", "yz"}
+
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+
+let prd_overlays = {\
+ "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "yz"
+
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1 THEN
+ )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`]; IF `p1s_this_shape EQ p1s_shape` THEN; let p1s_ov = prd_overlays[i=`s`]; exit/loop; ENDIF; )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 0 THEN
+!-> REPEAT: S:3
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=3]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=3]
+ can var p1s_this_shape
+ENDIF
+
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+
+ shade/j=40/l=1/pal=grayscale temp
+go err693_parse_curly.sub xz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+
+! list of valid shapes
+
+let prd_shapes = {"xy", "xz", "yz"}
+
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+
+let prd_overlays = {\
+ "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "xz"
+
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1 THEN
+ )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`]; IF `p1s_this_shape EQ p1s_shape` THEN; let p1s_ov = prd_overlays[i=`s`]; exit/loop; ENDIF; )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=2]
+ can var p1s_this_shape
+ENDIF
+
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+
+
+GO bn_reset
+cancel mode verify
+GO err693_list_missing
+! err693_list_missing.jnl
+
+let a= {1,2,3}
+let b = 1./0
+
+! Ths listing of b is .... was squashed onto the ends of values of a.
+! 1 / 1: 1.000..
+! 2 / 2: 2.000..
+
+list a,b
+ X: 0.5 to 3.5
+ Column 1: A is {1,2,3}
+ Column 2: B is 1./0
+ A B
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+
+GO bn_reset
+cancel mode verify
+GO err693_shf_subscr
+! err693_shf_subscr.jnl
+! ticket 2231 Subscripts used to compute @SHF-1 at the low end of the axis
+
+
+def ax/edge/z=0:40:10 zax_t
+def ax/edge/z=5:45:10 zax_w
+let zw = z[gz=zax_w]
+let zdiff = zw - missing(zw[z=@shf:-1],0)
+let zdiff_t = zdiff[gz=zax_t at asn]
+
+! a range of K shows the values correctly
+list zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ SUBSET : 4 points (Z)
+ 5 / 1: 10.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+
+! but just K=1 returned a K=0 error
+can mem
+list/k=1 zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ Z : 5
+ 10.00
+
+! Shift of +1
+can mem
+let zdiff = zw - missing(zw[z=@shf:1],0)
+list/k=4 zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ Z : 35
+ 40.00
+list/k=3:4 zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ SUBSET : 2 points (Z)
+ 25 / 3: -10.00
+ 35 / 4: 40.00
+
+GO bn_reset
+cancel mode verify
+GO err693_shift_w_region
+! err693_shift_w_region
+! Ticket 2300. In fact with bounds checking on, the list a[i=@shf] would have
+! caused a Fortran runtime error with out-of-bounds subscripts. The fix for
+! ticket 2301 fixes this as well.
+
+set region/x=10:20
+let a = {1,2,3}
+list a
+ VARIABLE : {1,2,3}
+ SUBSET : 3 points (X)
+ 1 / 1: 1.000
+ 2 / 2: 2.000
+ 3 / 3: 3.000
+list a[i=@shf]
+ VARIABLE : {1,2,3}
+ shifted by 1 pts on X
+ SUBSET : 3 points (X)
+ 1 / 1: 2.000
+ 2 / 2: 3.000
+ 3 / 3: ....
+cancel region
+list a[i=@shf]
+ VARIABLE : {1,2,3}
+ shifted by 1 pts on X
+ SUBSET : 3 points (X)
+ 1 / 1: 2.000
+ 2 / 2: 3.000
+ 3 / 3: ....
+
+
+GO bn_reset
+cancel mode verify
+GO err693_scalar_grids
+! err693_scalar_grids.jnl
+! See ticket 1602
+
+! multiplication by scalar variable "let one = 1" added
+! abstract axes to the expression in all directions not
+! already reperesented in the grid.
+
+
+! The T averaging is ignored; no T direction in the grid.
+use levitus_climatology
+let a = temp[x=140,y=0,z=0]
+list a[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : TEMP[X=140,Y=0,Z=0]
+ FILENAME : levitus_climatology.cdf
+ LONGITUDE: 140E
+ LATITUDE : 0
+ DEPTH (m): 0
+ 29.30
+
+! Multiply by a variable which is a constant (prev. this
+! resulted in an illegal use of transform error.)
+let one = 1
+let b = one*a
+list b[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : ONE*A
+ FILENAME : levitus_climatology.cdf
+ DEPTH (m): 0
+ 29.30
+
+! Test with a constant-array variable.
+let two = {2}
+let c = two*a
+list c[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : TWO*A
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ DEPTH (m): 0
+ 58.59
+
+
+! check interactions with GC functions (prev. this
+! resulted in an illegal use of transform error.)
+LET v = X[x=1:4:1] + Y[Y=.1:.4:.1]
+LET a = XSEQUENCE( v[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+LIST a[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+ SUBSET : 4 by 2 points (X-Z)
+ 1 2 3 4
+ 1 2 3 4
+ 0.01 / 1: 2.210 3.210 2.310 3.310
+ 0.02 / 2: 2.220 3.220 2.320 3.320
+list b
+ VARIABLE : ONE*A
+ SUBSET : 4 by 2 points (X-Z)
+ 1 2 3 4
+ 1 2 3 4
+ 0.01 / 1: 2.210 3.210 2.310 3.310
+ 0.02 / 2: 2.220 3.220 2.320 3.320
+
+list b[x=@ave,k=@ave]
+ VARIABLE : ONE*A
+ X : 0.5 to 4.5 (XZ ave)
+ Z : 0.005 to 0.025 (XZ ave)
+ 2.765
+
+
+
+GO bn_reset
+cancel mode verify
+GO bn_permute_ascii
+! bn_permute_ascii.jnl
+! test permutations when reading ascii data, in E and F directions
+! 11/18/2014
+! see ticket 2217: was not working for grids in E and F
+
+
+! First with T axis
+
+! unpermuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM 1:4 ... ... 1:12 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 4 by 12 points (X-T)
+ 1 2 3 4
+ 1 2 3 4
+ 1 / 1: -6.85 -6.75 -6.65 -6.55
+ 2 / 2: -11.71 -11.72 -11.73 -11.74
+ 3 / 3: -19.12 -19.22 -19.32 -19.42
+ 4 / 4: -24.81 -24.82 -24.83 -24.84
+ 5 / 5: -27.19 -27.29 -27.39 -27.49
+ 6 / 6: -28.51 -28.52 -28.53 -28.54
+ 7 / 7: -30.27 -30.37 -30.47 -30.57
+ 8 / 8: -31.34 -31.54 -31.64 -31.74
+ 9 / 9: -29.34 -29.44 -29.54 -29.64
+ 10 / 10: -23.29 -23.39 -23.49 -23.59
+ 11 / 11: -14.91 -14.92 -14.93 -14.94
+ 12 / 12: -8.09 -8.19 -8.29 -8.39
+
+! permuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM 1:4 ... ... 1:12 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 4 by 12 points (X-T)
+ 1 2 3 4
+ 1 2 3 4
+ 1 / 1: -6.85 -6.75 -6.65 -6.55
+ 2 / 2: -11.71 -11.72 -11.73 -11.74
+ 3 / 3: -19.12 -19.22 -19.32 -19.42
+ 4 / 4: -24.81 -24.82 -24.83 -24.84
+ 5 / 5: -27.19 -27.29 -27.39 -27.49
+ 6 / 6: -28.51 -28.52 -28.53 -28.54
+ 7 / 7: -30.27 -30.37 -30.47 -30.57
+ 8 / 8: -31.34 -31.54 -31.64 -31.74
+ 9 / 9: -29.34 -29.44 -29.54 -29.64
+ 10 / 10: -23.29 -23.39 -23.49 -23.59
+ 11 / 11: -14.91 -14.92 -14.93 -14.94
+ 12 / 12: -8.09 -8.19 -8.29 -8.39
+
+! Then same with F axis
+can data/all
+
+def axis/f=1:12:1 f12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/f=f12 fxgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM 1:4 ... ... ... ... 1:12
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 4 by 12 points (X-F)
+ 1 2 3 4
+ 1 2 3 4
+ 1 / 1: -6.85 -6.75 -6.65 -6.55
+ 2 / 2: -11.71 -11.72 -11.73 -11.74
+ 3 / 3: -19.12 -19.22 -19.32 -19.42
+ 4 / 4: -24.81 -24.82 -24.83 -24.84
+ 5 / 5: -27.19 -27.29 -27.39 -27.49
+ 6 / 6: -28.51 -28.52 -28.53 -28.54
+ 7 / 7: -30.27 -30.37 -30.47 -30.57
+ 8 / 8: -31.34 -31.54 -31.64 -31.74
+ 9 / 9: -29.34 -29.44 -29.54 -29.64
+ 10 / 10: -23.29 -23.39 -23.49 -23.59
+ 11 / 11: -14.91 -14.92 -14.93 -14.94
+ 12 / 12: -8.09 -8.19 -8.29 -8.39
+
+! Read same data in y-z-t
+can data/all
+
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 1:6 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-T)
+ 1 2
+ 1 2
+ ---- L:1 T: 1
+ 1 / 1: -6.85 -11.71
+ 2 / 2: -19.12 -24.81
+ 3 / 3: -27.19 -28.51
+ 4 / 4: -30.27 -31.34
+ ---- L:2 T: 2
+ 1 / 1: -29.34 -23.29
+ 2 / 2: -14.91 -8.09
+ 3 / 3: -6.75 -11.72
+ 4 / 4: -19.22 -24.82
+ ---- L:3 T: 3
+ 1 / 1: -27.29 -28.52
+ 2 / 2: -30.37 -31.54
+ 3 / 3: -29.44 -23.39
+ 4 / 4: -14.92 -8.19
+ ---- L:4 T: 4
+ 1 / 1: -6.65 -11.73
+ 2 / 2: -19.32 -24.83
+ 3 / 3: -27.39 -28.53
+ 4 / 4: -30.47 -31.64
+ ---- L:5 T: 5
+ 1 / 1: -29.54 -23.49
+ 2 / 2: -14.93 -8.29
+ 3 / 3: -6.55 -11.74
+ 4 / 4: -19.42 -24.84
+ ---- L:6 T: 6
+ 1 / 1: -27.49 -28.54
+ 2 / 2: -30.57 -31.74
+ 3 / 3: -29.64 -23.59
+ 4 / 4: -14.94 -8.39
+
+! And permuted
+
+can data/all
+
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 1:6 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-T)
+ 1 2
+ 1 2
+ ---- L:1 T: 1
+ 1 / 1: -6.85 -30.27
+ 2 / 2: -6.75 -30.37
+ 3 / 3: -6.65 -30.47
+ 4 / 4: -6.55 -30.57
+ ---- L:2 T: 2
+ 1 / 1: -11.71 -31.34
+ 2 / 2: -11.72 -31.54
+ 3 / 3: -11.73 -31.64
+ 4 / 4: -11.74 -31.74
+ ---- L:3 T: 3
+ 1 / 1: -19.12 -29.34
+ 2 / 2: -19.22 -29.44
+ 3 / 3: -19.32 -29.54
+ 4 / 4: -19.42 -29.64
+ ---- L:4 T: 4
+ 1 / 1: -24.81 -23.29
+ 2 / 2: -24.82 -23.39
+ 3 / 3: -24.83 -23.49
+ 4 / 4: -24.84 -23.59
+ ---- L:5 T: 5
+ 1 / 1: -27.19 -14.91
+ 2 / 2: -27.29 -14.92
+ 3 / 3: -27.39 -14.93
+ 4 / 4: -27.49 -14.94
+ ---- L:6 T: 6
+ 1 / 1: -28.51 -8.09
+ 2 / 2: -28.52 -8.19
+ 3 / 3: -28.53 -8.29
+ 4 / 4: -28.54 -8.39
+
+! Now with Y-Z-E
+
+can data/all
+
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 ... 1:6 ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-E)
+ 1 2
+ 1 2
+ ---- M:1 E: 1
+ 1 / 1: -6.85 -11.71
+ 2 / 2: -19.12 -24.81
+ 3 / 3: -27.19 -28.51
+ 4 / 4: -30.27 -31.34
+ ---- M:2 E: 2
+ 1 / 1: -29.34 -23.29
+ 2 / 2: -14.91 -8.09
+ 3 / 3: -6.75 -11.72
+ 4 / 4: -19.22 -24.82
+ ---- M:3 E: 3
+ 1 / 1: -27.29 -28.52
+ 2 / 2: -30.37 -31.54
+ 3 / 3: -29.44 -23.39
+ 4 / 4: -14.92 -8.19
+ ---- M:4 E: 4
+ 1 / 1: -6.65 -11.73
+ 2 / 2: -19.32 -24.83
+ 3 / 3: -27.39 -28.53
+ 4 / 4: -30.47 -31.64
+ ---- M:5 E: 5
+ 1 / 1: -29.54 -23.49
+ 2 / 2: -14.93 -8.29
+ 3 / 3: -6.55 -11.74
+ 4 / 4: -19.42 -24.84
+ ---- M:6 E: 6
+ 1 / 1: -27.49 -28.54
+ 2 / 2: -30.57 -31.74
+ 3 / 3: -29.64 -23.59
+ 4 / 4: -14.94 -8.39
+
+can data/all
+
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 ... 1:6 ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-E)
+ 1 2
+ 1 2
+ ---- M:1 E: 1
+ 1 / 1: -6.85 -30.27
+ 2 / 2: -6.75 -30.37
+ 3 / 3: -6.65 -30.47
+ 4 / 4: -6.55 -30.57
+ ---- M:2 E: 2
+ 1 / 1: -11.71 -31.34
+ 2 / 2: -11.72 -31.54
+ 3 / 3: -11.73 -31.64
+ 4 / 4: -11.74 -31.74
+ ---- M:3 E: 3
+ 1 / 1: -19.12 -29.34
+ 2 / 2: -19.22 -29.44
+ 3 / 3: -19.32 -29.54
+ 4 / 4: -19.42 -29.64
+ ---- M:4 E: 4
+ 1 / 1: -24.81 -23.29
+ 2 / 2: -24.82 -23.39
+ 3 / 3: -24.83 -23.49
+ 4 / 4: -24.84 -23.59
+ ---- M:5 E: 5
+ 1 / 1: -27.19 -14.91
+ 2 / 2: -27.29 -14.92
+ 3 / 3: -27.39 -14.93
+ 4 / 4: -27.49 -14.94
+ ---- M:6 E: 6
+ 1 / 1: -28.51 -8.09
+ 2 / 2: -28.52 -8.19
+ 3 / 3: -28.53 -8.29
+ 4 / 4: -28.54 -8.39
+
+
+GO bn_reset
+cancel mode verify
+GO bn_lon_lat_time_string
+! bn_lon_lat_time_string.jnl
+! Test function written for LAS, to create profile labels from
+! a list of lnogitudes, latitudes, times, and a prefix string.
+
+show function lon_lat_time_string
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
+ Generate strings from longitude,latitude,time
+ longitude: Station longitude
+ latitude: Station latitude
+ time: numeric times
+ time_axis: Varible with a time axis to use to convert time to time strings
+ string to prepend: A label to start the strings (STRING)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
+ Generate names based on longitude,latitude,time,and a string
+ longitude: Station longitude
+ latitude: Station latitude
+ time: numeric times
+ time_axis: Varible with a time axis to use to convert time to time strings
+ string to prepend: A label to start the names with (STRING)
+
+! Longitudes are translated to 0:360 range
+let lon = {-172.44, 210.01, -19.5}
+
+! latitudes are labeled N or S
+let lat = {3.12, 4.9, -15.03}
+
+! Time steps are interpreted in terms of a time axis
+let time = {1,2,3}
+define axis/t=1-jan-2001:31-jan-2001:1/units=days/t0=1-jan-2001 taxis
+let tt = t[gt=taxis]
+
+list lon_lat_time_string(lon, lat, time, tt, "my_string")
+ VARIABLE : LON_LAT_TIME_STRING(LON, LAT, TIME, TT, "my_string")
+ SUBSET : 3 points (X)
+ 1 / 1:"my_string_187.6E_3.12N_02-JAN-2001"
+ 2 / 2:"my_string_210E_4.9N_03-JAN-2001"
+ 3 / 3:"my_string_340.5E_15.03S_04-JAN-2001"
+
+
+GO bn_reset
+cancel mode verify
+GO bn_save_justdim
+! bn_save_justdim.jnl
+! When a dataset has axes that are dimensions but not 1-D coordinate variables,
+! no longer save the coordinate axis that Ferret creates from the dimension.
+!
+! Allows for a dimension and a 2-D variable to have the same name.
+! see ticket 2227
+! 1/21/2015 ACM
+
+use twodtime.nc
+sh dat
+ currently SET data sets:
+ 1> ./twodtime.nc (default)
+ name title I J K L M N
+ TIME GRIB forecast or observation ti ... ... ... 1:8 ... 1:3
+
+
+! previously this gave a name-in-use error
+save/file=a.nc/clobber time
+
+! The file has 2D TIME variable, and TIME as a dimension.
+sp ncdump a.nc >> all_ncdump.out
+
+! Now, keep case and axis name as on input
+CANCEL MODE upcase
+
+save/clobber/keep/file=a.nc time
+sp ncdump a.nc >> all_ncdump.out
+
+SET MODE/LAST upcase_output
+
+GO bn_reset
+cancel mode verify
+GO bn_time2d
+! bn_time2d.jnl
+! 1/30/2015 ACM
+
+! initial changes to handle 2d time variable: forecast and time
+! plot both axes as formatted time axes.
+
+use twodtime.nc
+sh dat
+ currently SET data sets:
+ 1> ./twodtime.nc (default)
+ name title I J K L M N
+ TIME GRIB forecast or observation ti ... ... ... 1:8 ... 1:3
+
+sh att time
+ attributes for dataset: ./twodtime.nc
+ time.units = calendar Month since 2014-11-01T00:00:00Z
+ time.long_name = GRIB forecast or observation time
+ time.calendar = proleptic_gregorian
+ time.bounds = time_bounds
+ time.history = From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD
+ time.orig_file_axname = time
+
+! The file has the t axis as just a dimension. Define another
+! axis with time units
+
+def axis/t=1:8:1/units=month/t0=1-nov-2014 taxis
+let time2d = time[gt=taxis at asn]
+set att/like=time time2d
+
+shade time2d
+shade/trans time2d
+
+GO bn_reset
+cancel mode verify
+GO bn_legend_labels
+! bn_legend_labels.jnl
+! The legend labels on a multi-line plot describe the
+! variable and context but are not controlable by the user.
+!
+! /KEY=title tells Ferret to label the legend with the variable
+! title.
+! *acm* 2/4/2015 Ticket 2231
+
+use coads_climatology
+let/title=January sst1 = sst[l=1]
+let/title=February sst2 = sst[l=2]
+let/title=March sst3 = sst[l=3]
+
+! Draw a plot and show the labels on the legend.
+plot/x=300/y=20:65 sst1,sst2,sst3
+sh sym lab7,lab8,lab9
+LAB7 = "SST1[T=16-JAN 06:00]"
+LAB9 = "SST3[T=17-MAR 02:58]"
+LAB8 = "SST2[T=15-FEB 16:29]"
+
+! Draw a plot with legend labeled with the variable titles.
+plot/x=300/y=20:65/key=title sst1,sst2,sst3
+sh sym lab7,lab8,lab9
+LAB7 = "January"
+LAB9 = "March"
+LAB8 = "February"
+
+GO bn_reset
+cancel mode verify
+GO bn_DQ
+! bn_DQ.jnl *sh* 2/2015
+! test the use of _DQ_ and _SQ_ in lieu of " and '
+
+let foobar = 1
+let foobar_ = 1
+
+LIST foobar, foobar_
+ Column 1: FOOBAR is 1
+ Column 2: FOOBAR_ is 1
+ FOOBAR FOOBAR_
+I / *: 1.000 1.000
+
+LIST "foobar" ! bug fix: pre-V694 used to list the value of foobar
+ VARIABLE : "foobar"
+ "foobar"
+let a = "foobar"
+list a
+ VARIABLE : "foobar"
+ "foobar"
+
+list _DQ_foobar_DQ_
+ VARIABLE : _DQ_foobar_DQ_
+ "foobar"
+let a = _DQ_foobar_DQ_
+list a
+ VARIABLE : _DQ_foobar_DQ_
+ "foobar"
+
+! ======
+list "_DQ_foobar_DQ_"
+ VARIABLE : "_DQ_foobar_DQ_"
+ "_DQ_foobar_DQ_"
+let a = "_DQ_foobar_DQ_"
+list a
+ VARIABLE : "_DQ_foobar_DQ_"
+ "_DQ_foobar_DQ_"
+
+list _DQ_"foobar"_DQ_
+ VARIABLE : _DQ_"foobar"_DQ_
+ ""foobar""
+let a = _DQ_"foobar"_DQ_
+list a
+ VARIABLE : _DQ_"foobar"_DQ_
+ ""foobar""
+
+! ======
+list 'FOOBAR'
+ VARIABLE : 1
+ 1.000
+let a = 'FOOBAR'
+list a
+ VARIABLE : 'FOOBAR'
+ 1.000
+
+list _SQ_FOOBAR_SQ_
+ VARIABLE : 1
+ 1.000
+let a = _SQ_FOOBAR_SQ_
+list a
+ VARIABLE : _SQ_FOOBAR_SQ_
+ 1.000
+
+! ======
+list "'foobar'"
+ VARIABLE : "'foobar'"
+ "'foobar'"
+let a = "'foobar'"
+list a
+ VARIABLE : "'foobar'"
+ "'foobar'"
+
+list _DQ_'foobar'_DQ_
+ VARIABLE : _DQ_'foobar'_DQ_
+ "'foobar'"
+let a = _DQ_'foobar'_DQ_
+list a
+ VARIABLE : _DQ_'foobar'_DQ_
+ "'foobar'"
+
+! ======
+list "_SQ_foobar_SQ_"
+ VARIABLE : "_SQ_foobar_SQ_"
+ "_SQ_foobar_SQ_"
+let a = "_SQ_foobar_SQ_"
+list a
+ VARIABLE : "_SQ_foobar_SQ_"
+ "_SQ_foobar_SQ_"
+
+list _DQ__SQ_foobar_SQ__DQ_
+ VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+ "_SQ_foobar_SQ_"
+let a = _DQ__SQ_foobar_SQ__DQ_
+list a
+ VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+ "_SQ_foobar_SQ_"
+
+! ======
+list 'FOOBAR' + 'FOOBAR'
+ VARIABLE : 'FOOBAR' + 'FOOBAR'
+ 2.000
+let a = 'FOOBAR' + 'FOOBAR'
+list a
+ VARIABLE : 'FOOBAR' + 'FOOBAR'
+ 2.000
+
+list _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_ ! should behave like the preceding
+ VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+ 2.000
+let a = _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+list a
+ VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+ 2.000
+
+! ====== demonstrate hiding all sorts of characters
+let a = _DQ_'"+-/;_SQ_foobar"'_DQ_
+list a
+ VARIABLE : _DQ_'"+-/;_SQ_foobar"'_DQ_
+ "'"+-/;_SQ_foobar"'"
+
+! ======
+say "hello"
+hello
+say _DQ_hello_DQ_
+hello
+
+! ======
+list {"foobar","foobar"}
+ VARIABLE : {"foobar","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+let a = {"foobar","foobar"}
+list a
+ VARIABLE : {"foobar","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+
+list {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+let a = {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+list a
+ VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+
+list {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_} ! DQ used to protect '"'
+ VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:""foobar""
+ 2 / 2:""foobar""
+let a = {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+list a
+ VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:""foobar""
+ 2 / 2:""foobar""
+
+! ======
+list {SPAWN:"ls weird_name1.cdf","foobar"}
+ VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+list a
+ VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+
+list {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list a
+ VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+
+list {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+ VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list a
+ VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+
+! ======
+! in repl_exprns:
+say `"=" EQ "="`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_=_DQ_ EQ _DQ_=_DQ_`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_"="_DQ_ EQ _DQ_"="_DQ_` ! DQ used to protect '"'
+ !-> MESSAGE/CONTINUE 1
+1
+
+! in xeq_if:
+IF 1 THEN SAY "I is too big" ENDIF
+I is too big
+IF 1 THEN SAY _DQ_I is too big_DQ_ ENDIF
+I is too big
+IF 1 THEN SAY _DQ_"I is too big"_DQ_ ENDIF ! DQ used to protect '"'
+"I is too big"
+
+! ======
+DEFINE SYMBOL a "foobar"
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+DEFINE SYMBOL a _DQ_foobar_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+
+! ======
+DEFINE SYMBOL a "(`foobar,return=xaxis`)"
+ !-> DEFINE SYMBOL a "(ABSTRACT)"
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
+ !-> DEFINE SYMBOL a _DQ_(ABSTRACT)_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+
+! ======
+GO bn_DQ.sub _DQ_+-/_SQ_\!foo"bar;_SQ_"_DQ_ "_DQ_+-/_SQ_\!foobar;_SQ_"
+! bn_DQ.sub arg_with_DQ arg_with_quotes
+
+SAY _DQ_ "-quotations ok as in $1%any_arg_with_quotes%_DQ_
+ !-> MESSAGE/CONTINUE _DQ_ "-quotations ok as in +-/_SQ_!foo"bar;_SQ_"_DQ_
+ "-quotations ok as in +-/_SQ_!foo"bar;_SQ_"
+SAY "_DQ_ delimiters ok as in $2%any_arg_with_DQ%"
+ !-> MESSAGE/CONTINUE "_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_"
+_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_
+
+
+! ====== string arguments to functions
+list STRCAT( "HELL" , "O" )
+ VARIABLE : STRCAT( "HELL" , "O" )
+ "HELLO"
+list STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+ VARIABLE : STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+ "HELLO"
+
+! ======
+let/title= "title of A" a = 1
+list a
+ VARIABLE : title of A
+ 1.000
+let/title=_DQ_title of A_DQ_ a = 1
+list a
+ VARIABLE : title of A
+ 1.000
+let/title=_DQ_"title of A"_DQ_ a = 1 ! DQ used to protect '"'
+list a
+ VARIABLE : "title of A"
+ 1.000
+
+! ======
+use weird_name1.cdf
+list 'v2-and-minus'[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list 'v2-and-minus'[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list 'v2-and-minus'[i=4:6] / 'X'[i=4:6]
+ VARIABLE : 'v2-and-minus'[I=4:6] / 'X'[I=4:6]
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: -0.8741
+ 5 / 5: -0.8482
+ 6 / 6: -0.8166
+list _SQ_v2-and-minus_SQ_[i=4:6] / _SQ_X_SQ_[i=4:6]
+ VARIABLE : _SQ_v2-and-minus_SQ_[I=4:6] / _SQ_X_SQ_[I=4:6]
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: -0.8741
+ 5 / 5: -0.8482
+ 6 / 6: -0.8166
+
+! ======
+SET REGION/T= "1-jan-2001":"15-jan-2001"
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001_DQ_:_DQ_15-jan-2001_DQ_
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+SET REGION/T= "1-jan-2001:12:00":"15-jan-2001 12:00"
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001:12:00_DQ_:_DQ_15-jan-2001 12:00_DQ_
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+
+! ======
+DEFINE ATTRIBUTE foobar.some_text = "some text about foobar"
+SHOW ATTRIBUTE/ALL foobar
+ attributes for user-defined variables
+ foobar.long_name = 1
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar
+DEFINE ATTRIBUTE foobar.some_text = _DQ_some text about foobar_DQ_
+SHOW ATTRIBUTE/ALL foobar
+ attributes for user-defined variables
+ foobar.long_name = 1
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar
+DEFINE ATTR foobar.some_text = _DQ_"quoted attribute"_DQ_ ! DQ protects '"'
+SHOW ATTRIBUTE/ALL foobar
+ attributes for user-defined variables
+ foobar.long_name = 1
+ foobar.missing_value = -1.E+34
+ foobar.some_text = "quoted attribute"
+
+! ======
+SPAWN "ls weird_name1.*"
+weird_name1.cdf
+SPAWN _DQ_ls weird_name1.*_DQ_
+weird_name1.cdf
+
+! ======
+LET a = {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+LIST a
+ VARIABLE : {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+ SUBSET : 3 points (X)
+ 1 / 1:"first.nc"
+ 2 / 2:"weird_name1.cdf"
+ 3 / 3:"last.nc"
+LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+LIST a
+ VARIABLE : {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+ SUBSET : 3 points (X)
+ 1 / 1:"first.nc"
+ 2 / 2:"weird_name1.cdf"
+ 3 / 3:"last.nc"
+
+! =========================
+! !!!!!! TEMPORARY LINE
+! !!!!!! see bug report err693_xeq_show.jnl
+show data ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
+ currently SET data sets:
+ 1> ./weird_name1.cdf (default)
+ name title I J K L M N
+ v1 lower case v1 1:20 ... ... ... ... ...
+ v2-and-minus
+ SIN(2+I/10) 1:20 ... ... ... ... ...
+ V1 Upper case V1 1:20 ... ... ... ... ...
+ I SIN(4+I/10) 1:20 ... ... ... ... ...
+ X SIN(5+I/10) 1:20 ... ... ... ... ...
+
+! !!!!!!
+! =========================
+ ! ======
+define grid/x=_DQ_v1_DQ_ gg
+show grid gg
+ GRID GG
+ name axis # pts start end
+ XAX1_20 X 20 r 1 20
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+
+! ======
+LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
+LIST A
+ VARIABLE : 'A title w/ "sq"'. Ship_Ka'imimoana
+ 1.000
+
+! ======
+contour/LEVELS= "(-10,10,2)DARK(-10,10,8)" \
+ 10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+contour/LEVELS= _DQ_(-10,10,2)DARK(-10,10,8)_DQ_ \
+ 10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+
+! ====== parse, parsex routines
+!plot/set x[i=1:3]^2
+!ppl title "'A title w/ single quotes'. Ship Ka'imimoana"
+!ppl plot
+!label 2,5,0 "'A title w/ single quotes'. Ship Ka'imimoana"
+
+plot/set x[i=1:3]^2
+ppl title _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' for emacs
+ppl plot
+label 2,5,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ppl %label 2,4,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+
+! ====== EQUAL_PEMUTE
+list/order=_DQ_yx_DQ_ 10*i[i=1:3] + j[j=1:2]
+ VARIABLE : 10*I[I=1:3] + J[J=1:2]
+ SUBSET : 2 by 3 points (Y-X)
+ 1 2
+ 1 2
+ 1 / 1: 11.00 12.00
+ 2 / 2: 21.00 22.00
+ 3 / 3: 31.00 32.00
+
+! ====== EQUAL_COLOR
+plot/color=_DQ_red_DQ_ i[i=1:100]^2
+
+! ====== EQUAL_RANGE
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980" \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980_DQ_ \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980:12:00" \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+
+! the following usages for _DQ_ and _SQ_ are NOT supported:
+! 1. internal PLOT+ syntax
+! e.g. PPL XFOR (i5, ''LONW'')
+
+! 2. quote used as a delimiter for symbol substitution
+! e.g. ($mysymbol"0|red>1|green>2") ! several single char als. e.g. "%"
+
+! in xeq_set: double quotes around SET MODE argument -- _DQ_ not supported
+
+! in put_label: special hack for "'date'" -- _SQ_ not supported
+
+! it isn't clear that there is really a requirement for the _SQ_ syntax at all
+! since we are adding this feature to meet our own needs in LAS, we won't
+! make the extra effort to hit all of the obscure cases. As a result, the
+! occurrences of IF string .EQ. "'" in these routines will be ignored
+! - break_varname
+! - break_varattname
+! - inherit_attrs
+
+! in xeq_define.F: DEFINE AXIS/NAME='my-name' is of unclear purpose
+
+! *********** v6.95Additions ***********
+
+GO bn_reset
+cancel mode verify
+GO bn695_bug_fixes
+! bn695_bug_fixes
+! test various fixes that went into version 6.95
+
+GO bn_reset
+cancel mode verify
+GO err694_shf_missing
+! err694_shf_missing.jnl
+! Test the fix for ticket 2314
+
+! This had been getting a missing-result; now is correct
+use gt4d011.cdf
+list/i=100/j=50/k=1/l=24 temp[l=@shf]
+ VARIABLE : TEMPERATURE (deg. C)
+ FILENAME : gt4d011.cdf
+ LONGITUDE: 130.5W
+ LATITUDE : 1.5N
+ DEPTH (m): 5
+ TIME : 04-JAN-1983 10:00 (shifted by 1 pts)
+ 32.10
+
+! Check shift that takes us beyond the end of a modulo axis (at x=20)
+can dat/all; use coads_climatology
+list/x=10:30/y=-60/l=1 sst
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 10 points (LONGITUDE)
+ LATITUDE : 60S (interpolated)
+ TIME : 16-JAN 06:00
+ 11E / -4: 0.422
+ 13E / -3: 0.368
+ 15E / -2: 0.505
+ 17E / -1: 0.207
+ 19E / 0: 0.583
+ 21E / 1: 0.734
+ 23E / 2: 0.472
+ 25E / 3: 0.526
+ 27E / 4: 0.820
+ 29E / 5: 1.017
+list/x=10:30/y=-60/l=1 sst[i=@shf:3]
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ shifted by 3 pts on X
+ FILENAME : coads_climatology.cdf
+ SUBSET : 10 points (LONGITUDE)
+ LATITUDE : 60S (interpolated)
+ TIME : 16-JAN 06:00
+ 11E / -4: 0.207
+ 13E / -3: 0.583
+ 15E / -2: 0.734
+ 17E / -1: 0.472
+ 19E / 0: 0.526
+ 21E / 1: 0.820
+ 23E / 2: 1.017
+ 25E / 3: 1.062
+ 27E / 4: 1.423
+ 29E / 5: 1.221
+
+GO bn_reset
+cancel mode verify
+GO err694_longname_showdat
+! err694_longname_showdat.jnl
+! ticket 2317
+!
+! Make a file whose name starts the same as file with long name.
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+
+! Long name was not matched by SHOW DAT filename
+! this previously returned an unknown dataset error
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+ currently SET data sets:
+ 1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
+ name title I J K L M N
+ PROF Prof ... ... ... ... 1:21 ...
+ TIME Time ... ... ... ... 1:21 ...
+ LATITUDE Latitude ... ... ... ... 1:21 ...
+ LONGITUDE
+ Longitude ... ... ... ... 1:21 ...
+ ROWSIZE Number of Observations for this ... ... ... ... 1:21 ...
+ PRESS_DB PRESS_DB 1:373 ... ... ... ... ...
+ PCO2 PCO2 1:373 ... ... ... ... ...
+
+
+! If a file matched to 1st 32 characters, the shorter-named
+! datset was mistakenly returned.
+
+use WestCoastCarbon_9d9c_f562_77b5_5
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+ currently SET data sets:
+ 1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ name title I J K L M N
+ PROF Prof ... ... ... ... 1:21 ...
+ TIME Time ... ... ... ... 1:21 ...
+ LATITUDE Latitude ... ... ... ... 1:21 ...
+ LONGITUDE
+ Longitude ... ... ... ... 1:21 ...
+ ROWSIZE Number of Observations for this ... ... ... ... 1:21 ...
+ PRESS_DB PRESS_DB 1:373 ... ... ... ... ...
+ PCO2 PCO2 1:373 ... ... ... ... ...
+
+
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+
+GO bn_reset
+cancel mode verify
+GO err693_std4d
+! err693_std4d
+! Check fix to ticket 2319: std transform in multi-dimensions
+
+
+let a = x[gx=1:3:1] * y[gy=1:3:1]
+let astd = a[x=@std,y=@std]
+let avar = a[x=@var,y=@var]
+let a2 = a^2
+let avar_calc = a2[x=@ave,y=@ave] - a[x=@ave,y=@ave]^2
+let astd_x = a[x=@std]
+let astd_x_y = astd_x[y=@std]
+
+! STD and VAR in x and y together; vs astd_x_y separately
+list astd^2, avar, avar_calc, astd_x_y^2
+ X: 0.5 to 3.5
+ Y: 0.5 to 3.5
+ Column 1: EX#1 is ASTD^2
+ Column 2: AVAR is A[X=@VAR,Y=@VAR]
+ Column 3: AVAR_CALC is A2[X=@AVE,Y=@AVE] - A[X=@AVE,Y=@AVE]^2
+ Column 4: EX#4 is ASTD_X_Y^2
+ EX#1 AVAR AVAR_CA EX#4
+I / *: 5.778 5.778 5.778 0.4444
+
+
+! Now in the E and F directions
+
+let a = _e[ge=1:3:1] * _f[gf=1:3:1]
+let astd = a[e=@std,f=@std]
+let avar = a[e=@var,f=@var]
+let a2 = a^2
+let avar_calc = a2[e=@ave,f=@ave] - a[e=@ave,f=@ave]^2
+let astd_e = a[e=@std]
+let astd_e_f = astd_e[f=@std]
+
+list astd^2, avar, avar_calc, astd_e_f^2
+ E: 0.5 to 3.5
+ F: 0.5 to 3.5
+ Column 1: EX#1 is ASTD^2
+ Column 2: AVAR is A[E=@VAR,F=@VAR]
+ Column 3: AVAR_CALC is A2[E=@AVE,F=@AVE] - A[E=@AVE,F=@AVE]^2
+ Column 4: EX#4 is ASTD_E_F^2
+ EX#1 AVAR AVAR_CA EX#4
+I / *: 5.778 5.778 5.778 0.4444
+
+
+GO bn_reset
+cancel mode verify
+GO bn_f_tax_fcns
+! bn_f_from_tax_fcns.jnl
+! test tax_* functions returning results from a
+! time-formatted axis in the F direction
+!
+! 2/2015 ACM
+
+define axis/f=1-jan-2011:31-jan-2011:1/units=hours fax
+
+
+
+let ff = _f[gf=fax]
+! Test RETURN=F0
+say `ff,return=F0`
+ !-> MESSAGE/CONTINUE 15-JAN-1901
+15-JAN-1901
+
+list/N=20:30 tax_datestring(_F[g=ff],ff,"minute")
+ VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"minute")
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19:00"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20:00"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21:00"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22:00"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23:00"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00:00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01:00"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02:00"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03:00"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04:00"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05:00"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"hour")
+ VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"hour")
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"day")
+ VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"day")
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011"
+list/N=20:30 tax_dayfrac(_F[g=ff],ff)
+ VARIABLE : TAX_DAYFRAC(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 0.7917
+ 01-JAN-2011 20:00 / 21: 0.8333
+ 01-JAN-2011 21:00 / 22: 0.8750
+ 01-JAN-2011 22:00 / 23: 0.9167
+ 01-JAN-2011 23:00 / 24: 0.9583
+ 02-JAN-2011 00:00 / 25: 0.0000
+ 02-JAN-2011 01:00 / 26: 0.0417
+ 02-JAN-2011 02:00 / 27: 0.0833
+ 02-JAN-2011 03:00 / 28: 0.1250
+ 02-JAN-2011 04:00 / 29: 0.1667
+ 02-JAN-2011 05:00 / 30: 0.2083
+list/N=20:30 tax_day(_F[g=ff],ff)
+ VARIABLE : TAX_DAY(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 1.000
+ 01-JAN-2011 20:00 / 21: 1.000
+ 01-JAN-2011 21:00 / 22: 1.000
+ 01-JAN-2011 22:00 / 23: 1.000
+ 01-JAN-2011 23:00 / 24: 1.000
+ 02-JAN-2011 00:00 / 25: 2.000
+ 02-JAN-2011 01:00 / 26: 2.000
+ 02-JAN-2011 02:00 / 27: 2.000
+ 02-JAN-2011 03:00 / 28: 2.000
+ 02-JAN-2011 04:00 / 29: 2.000
+ 02-JAN-2011 05:00 / 30: 2.000
+list/N=20:30 tax_jday(_F[g=ff],ff)
+ VARIABLE : TAX_JDAY(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 1.000
+ 01-JAN-2011 20:00 / 21: 1.000
+ 01-JAN-2011 21:00 / 22: 1.000
+ 01-JAN-2011 22:00 / 23: 1.000
+ 01-JAN-2011 23:00 / 24: 1.000
+ 02-JAN-2011 00:00 / 25: 2.000
+ 02-JAN-2011 01:00 / 26: 2.000
+ 02-JAN-2011 02:00 / 27: 2.000
+ 02-JAN-2011 03:00 / 28: 2.000
+ 02-JAN-2011 04:00 / 29: 2.000
+ 02-JAN-2011 05:00 / 30: 2.000
+list/N=20:30 tax_month(_F[g=ff],ff)
+ VARIABLE : TAX_MONTH(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 1.000
+ 01-JAN-2011 20:00 / 21: 1.000
+ 01-JAN-2011 21:00 / 22: 1.000
+ 01-JAN-2011 22:00 / 23: 1.000
+ 01-JAN-2011 23:00 / 24: 1.000
+ 02-JAN-2011 00:00 / 25: 1.000
+ 02-JAN-2011 01:00 / 26: 1.000
+ 02-JAN-2011 02:00 / 27: 1.000
+ 02-JAN-2011 03:00 / 28: 1.000
+ 02-JAN-2011 04:00 / 29: 1.000
+ 02-JAN-2011 05:00 / 30: 1.000
+list/N=20:30 tax_yearfrac(_F[g=ff],ff)
+ VARIABLE : TAX_YEARFRAC(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 0.004909
+ 01-JAN-2011 20:00 / 21: 0.005023
+ 01-JAN-2011 21:00 / 22: 0.005137
+ 01-JAN-2011 22:00 / 23: 0.005251
+ 01-JAN-2011 23:00 / 24: 0.005365
+ 02-JAN-2011 00:00 / 25: 0.005479
+ 02-JAN-2011 01:00 / 26: 0.005594
+ 02-JAN-2011 02:00 / 27: 0.005708
+ 02-JAN-2011 03:00 / 28: 0.005822
+ 02-JAN-2011 04:00 / 29: 0.005936
+ 02-JAN-2011 05:00 / 30: 0.006050
+list/N=20:30 tax_year(_F[g=ff],ff)
+ VARIABLE : TAX_YEAR(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 2011.
+ 01-JAN-2011 20:00 / 21: 2011.
+ 01-JAN-2011 21:00 / 22: 2011.
+ 01-JAN-2011 22:00 / 23: 2011.
+ 01-JAN-2011 23:00 / 24: 2011.
+ 02-JAN-2011 00:00 / 25: 2011.
+ 02-JAN-2011 01:00 / 26: 2011.
+ 02-JAN-2011 02:00 / 27: 2011.
+ 02-JAN-2011 03:00 / 28: 2011.
+ 02-JAN-2011 04:00 / 29: 2011.
+ 02-JAN-2011 05:00 / 30: 2011.
+list/N=20:30 tax_jday1900(_F[g=ff],ff)
+ VARIABLE : TAX_JDAY1900(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 40542.
+ 01-JAN-2011 20:00 / 21: 40542.
+ 01-JAN-2011 21:00 / 22: 40542.
+ 01-JAN-2011 22:00 / 23: 40542.
+ 01-JAN-2011 23:00 / 24: 40542.
+ 02-JAN-2011 00:00 / 25: 40543.
+ 02-JAN-2011 01:00 / 26: 40543.
+ 02-JAN-2011 02:00 / 27: 40543.
+ 02-JAN-2011 03:00 / 28: 40543.
+ 02-JAN-2011 04:00 / 29: 40543.
+ 02-JAN-2011 05:00 / 30: 40543.
+list tax_units(ff)
+ VARIABLE : TAX_UNITS(FF)
+ 3600.
+
+! commands from tax_tstep, changing time origin
+
+DEFINE AXIS/F="1-JAN-2000:00:00:01":"1-JAN-2000:00:15:00":2/UNITS=seconds fsec
+LIST/N=440:451 _F[GF=fsec]
+ VARIABLE : _F
+ axis FSEC
+ SUBSET : 12 points (FORECAST)
+ 01-JAN-2000 00:14:39 / 440: 3.123E+09
+ 01-JAN-2000 00:14:41 / 441: 3.123E+09
+ 01-JAN-2000 00:14:43 / 442: 3.123E+09
+ 01-JAN-2000 00:14:45 / 443: 3.123E+09
+ 01-JAN-2000 00:14:47 / 444: 3.123E+09
+ 01-JAN-2000 00:14:49 / 445: 3.123E+09
+ 01-JAN-2000 00:14:51 / 446: 3.123E+09
+ 01-JAN-2000 00:14:53 / 447: 3.123E+09
+ 01-JAN-2000 00:14:55 / 448: 3.123E+09
+ 01-JAN-2000 00:14:57 / 449: 3.123E+09
+ 01-JAN-2000 00:14:59 / 450: 3.123E+09
+ 01-JAN-2000 00:15:01 / 451: 3.123E+09
+LET bsin = SIN(_F[GF=fsec]/40000)
+SAVE/FILE=a.nc/clobber bsin
+CAN VAR/all
+USE a.nc
+
+SET LIST/PREC=7
+! Reset the date to dec 1999
+! Function lets us leave off the leading 0.
+LIST/N=1:15 TAX_TSTEP(bsin, "1-dec-1999:00:00:00" )
+ VARIABLE : TAX_TSTEP(BSIN, "1-dec-1999:00:00:00" )
+ FILENAME : a.nc
+ SUBSET : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 / 1: 2678401.
+ 01-JAN-2000 00:00:03 / 2: 2678403.
+ 01-JAN-2000 00:00:05 / 3: 2678405.
+ 01-JAN-2000 00:00:07 / 4: 2678407.
+ 01-JAN-2000 00:00:09 / 5: 2678409.
+ 01-JAN-2000 00:00:11 / 6: 2678411.
+ 01-JAN-2000 00:00:13 / 7: 2678413.
+ 01-JAN-2000 00:00:15 / 8: 2678415.
+ 01-JAN-2000 00:00:17 / 9: 2678417.
+ 01-JAN-2000 00:00:19 / 10: 2678419.
+ 01-JAN-2000 00:00:21 / 11: 2678421.
+ 01-JAN-2000 00:00:23 / 12: 2678423.
+ 01-JAN-2000 00:00:25 / 13: 2678425.
+ 01-JAN-2000 00:00:27 / 14: 2678427.
+ 01-JAN-2000 00:00:29 / 15: 2678429.
+
+! argument can be upper or lowercase
+! Should list values 1, 3, 5...
+LIST/N=1:15 TAX_TSTEP(bsin, "1-JAN-2000:00:00:00" )
+ VARIABLE : TAX_TSTEP(BSIN, "1-JAN-2000:00:00:00" )
+ FILENAME : a.nc
+ SUBSET : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 / 1: 1.00000
+ 01-JAN-2000 00:00:03 / 2: 3.00000
+ 01-JAN-2000 00:00:05 / 3: 5.00000
+ 01-JAN-2000 00:00:07 / 4: 7.00000
+ 01-JAN-2000 00:00:09 / 5: 9.00000
+ 01-JAN-2000 00:00:11 / 6: 11.00000
+ 01-JAN-2000 00:00:13 / 7: 13.00000
+ 01-JAN-2000 00:00:15 / 8: 15.00000
+ 01-JAN-2000 00:00:17 / 9: 17.00000
+ 01-JAN-2000 00:00:19 / 10: 19.00000
+ 01-JAN-2000 00:00:21 / 11: 21.00000
+ 01-JAN-2000 00:00:23 / 12: 23.00000
+ 01-JAN-2000 00:00:25 / 13: 25.00000
+ 01-JAN-2000 00:00:27 / 14: 27.00000
+ 01-JAN-2000 00:00:29 / 15: 29.00000
+
+! Test with TAX_DATESTRING
+
+DEFINE AXIS/F="1-JAN-1902:00:00:00":"1-JAN-1902:00:30:00":5/UNITS=seconds fsec
+LIST/N=200:205 _F[GF=fsec]
+ VARIABLE : _F
+ axis FSEC
+ SUBSET : 6 points (FORECAST)
+ 01-JAN-1902 00:16:35 / 200: 30327395.
+ 01-JAN-1902 00:16:40 / 201: 30327400.
+ 01-JAN-1902 00:16:45 / 202: 30327405.
+ 01-JAN-1902 00:16:50 / 203: 30327410.
+ 01-JAN-1902 00:16:55 / 204: 30327415.
+ 01-JAN-1902 00:17:00 / 205: 30327420.
+
+LET ff = _F[GF=fsec]
+LET reset_date = TAX_DATESTRING(`_F[GF=fsec,n=1]`, ff, "sec")
+ !-> DEFINE VARIABLE reset_date = TAX_DATESTRING(30326400, ff, "sec")
+LIST/N=1:15 TAX_TSTEP(ff, "`reset_date`")
+ !-> LIST/N=1:15 TAX_TSTEP(ff, "01-JAN-1902 00:00:00")
+ VARIABLE : TAX_TSTEP(FF, "01-JAN-1902 00:00:00")
+ SUBSET : 15 points (FORECAST)
+ 01-JAN-1902 00:00:00 / 1: 0.00000
+ 01-JAN-1902 00:00:05 / 2: 5.00000
+ 01-JAN-1902 00:00:10 / 3: 10.00000
+ 01-JAN-1902 00:00:15 / 4: 15.00000
+ 01-JAN-1902 00:00:20 / 5: 20.00000
+ 01-JAN-1902 00:00:25 / 6: 25.00000
+ 01-JAN-1902 00:00:30 / 7: 30.00000
+ 01-JAN-1902 00:00:35 / 8: 35.00000
+ 01-JAN-1902 00:00:40 / 9: 40.00000
+ 01-JAN-1902 00:00:45 / 10: 45.00000
+ 01-JAN-1902 00:00:50 / 11: 50.00000
+ 01-JAN-1902 00:00:55 / 12: 55.00000
+ 01-JAN-1902 00:01:00 / 13: 60.00000
+ 01-JAN-1902 00:01:05 / 14: 65.00000
+ 01-JAN-1902 00:01:10 / 15: 70.00000
+
+GO bn_reset
+cancel mode verify
+GO bn_fmrc
+! bn_fmrc.jnl
+! initial test of DEFINE DATA/F
+
+use "run1.nc"
+use "run2.nc"
+use "run3.nc"
+use "run4.nc"
+
+define data/hide/F/agg/title fourfiles = 1,2,3,4
+
+sh grid sst
+ GRID (G087)
+ name axis # pts start end
+ LON1 LONGITUDE 10mr 109W 91W
+ LAT LATITUDE 9 r 13N 29N
+ normal Z
+ TF_LAG_T MODEL ELAPSED TIME (12 r 0 11
+ normal E
+ TF_CAL_F FORECAST 4 r 02-JAN-2010 00:00 08-JAN-2010 00:00
+list/i=1/j=1/L=1:6/n=1:4 sst
+ VARIABLE : SST_IN (Deg C)
+ FILENAME : FOURFILES
+ SUBSET : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
+ LONGITUDE: 109W
+ LATITUDE : 13N
+ Verification time increases across row. Initialization time increases down page.
+ 0 1 2 3 4 5
+ 1 2 3 4 5 6
+ 02-JAN-2010 00 / 1: 27.3789 27.4378 27.5751 28.1351 28.8653 28.7771
+ 04-JAN-2010 00 / 2: 54.7577 54.8756 55.1503 56.2703 57.7306 57.5541
+ 06-JAN-2010 00 / 3: 82.1366 82.3133 82.7254 84.4054 86.5959 86.3312
+ 08-JAN-2010 00 / 4: 109.5154 109.7511 110.3006 112.5405 115.4613 115.1082
+
+show att sst
+ attributes for dataset: FOURFILES
+ SST.long_name = SST_IN
+ SST.units = Deg C
+ SST.missing_value = -1.E+34
+ SST.coordinates = FORECAST TIME15 TF_TIMES TIME15 LAT LON1
+ SST._ftime2dRef = TF_TIMES
+
+! Attribute _ftime2dRef pointe to the 2D time variable
+list/L=1:6/n=1:4 `sst._ftime2dRef`
+ !-> list/L=1:6/n=1:4 TF_TIMES
+ VARIABLE : Forecast time step matrix (day since 01-JAN-2010 00:00:00)
+ FILENAME : FOURFILES
+ SUBSET : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
+ Verification time increases across row. Initialization time increases down page.
+ 0 1 2 3 4 5
+ 1 2 3 4 5 6
+ 02-JAN-2010 00 / 1: 1.00000 2.00000 3.00000 4.00000 5.00000 6.00000
+ 04-JAN-2010 00 / 2: 3.00000 4.00000 5.00000 6.00000 7.00000 8.00000
+ 06-JAN-2010 00 / 3: 5.00000 6.00000 7.00000 8.00000 9.00000 10.00000
+ 08-JAN-2010 00 / 4: 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000
+
+
+GO bn_reset
+cancel mode verify
+GO bn_return_defined
+! bn_return_defined.jnl
+! 5/3/2015 *acm*
+! `return=defined` returns 1 if the user variable is defined
+! see ticket 2293
+
+let a = b
+say `a,r=defined` `b,r=defined`
+ !-> MESSAGE/CONTINUE 1 0
+1 0
+
+! abbreviate to 3 letters
+use levitus_climatology
+let temp2 = 2*temp
+say `temp2,return=def`
+ !-> MESSAGE/CONTINUE 1
+1
+
+! returns false for file variables
+say `temp,return=defined`
+ !-> MESSAGE/CONTINUE 0
+0
+
+GO bn_reset
+cancel mode verify
+GO bn_can_var_noerr
+! bn_can_var_noerr.jnl
+! CANCEL VARIABLE/NOERROR
+
+
+let a = 1
+
+! intentional error
+set mode ignore
+cancel var b,a
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ A = 1
+
+cancel mode ignore
+
+! specify /noerr and we can issue the command
+
+cancel var/noerror a,b
+show var
+ Created by DEFINE VARIABLE:
+
+! no effect on CAN VAR/ALL or CAN VAR template_name
+
+let a1 = 1
+let a7 = 7
+let c = 12
+
+cancel var/noerror name*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ C = 12
+ A7 = 7
+ A1 = 1
+
+cancel var/noerror a*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ C = 12
+
+cancel var/noerror/all
+show var
+ Created by DEFINE VARIABLE:
+
+GO bn_reset
+cancel mode verify
+GO bn_annotate
+! bn_annotate.jnl
+! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
+! locates user-defined labels on a plot.
+! /USER and /NOUSER behave as the LABEL command does
+! /NORM locates labels relative to the plot axis, treating them as a unit "square".
+! /VALIGN moves the label up or down relative to the direction of the label
+! /HALIGN is -1, 1, or 0 as always, or larger values to move the label horizontally
+! relative to the direction of the label. Allows us to move, say, one character in
+! or out from the axis corner.
+
+can mode logo
+
+! ANNOTATE /USER
+set v ul
+plot/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+annotate/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=0.2 "X"
+annotate/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=0.2 "X"
+annotate/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=0.2 "X"
+
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+annotate/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=0.2 "BOX"
+
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+ annotate/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=0.2 "BOX"
+
+plot/ov/vs/sym=2/size=2/nolab 3,0
+annotate/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=0.2 "TOP"
+annotate/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=0.2 "BOTTOM"
+
+plot/ov/vs/sym=2/size=2/nolab -3,0
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=0.2 "M"
+
+
+
+! ANNOTATE/NORM
+set v ur
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+
+annotate/norm/xpos=.5/ypos=1.1/halign=0/angle=0/size=0.14 "FLOATING TITLE"
+annotate/norm/xpos=.5/ypos=-.2/halign=0/angle=0/size=0.14 "SUBMERGED TITLE"
+annotate/norm/xpos=0/ypos=1/halign=-1/angle=0/size=0.14 "LEFT/TOP"
+annotate/norm/xpos=.5/ypos=1/halign=0/angle=0/size=0.14 "CTR/TOP"
+annotate/norm/xpos=1/ypos=1/halign=1/angle=0/size=0.14 "RIGHT/TOP"
+annotate/norm/xpos=1/ypos=.5/halign=0/angle=-90/size=0.14 "RIGHT EDGE"
+annotate/norm/xpos=0/ypos=.5/halign=0/angle=90/size=0.14 "LEFT EDGE"
+annotate/norm/xpos=.5/ypos=.5/halign=0/valign=0/angle=0/size=0.14 "DEAD CENTER"
+annotate/norm/xpos=.5/ypos=0/halign=0/valign=1/angle=0/size=0.14 "HANGING FROM BOTTOM"
+annotate/norm/xpos=0/ypos=0/halign=-2/valign=-2/angle=0/siz=0.1 "BOTTOM LEFT INSET"
+annotate/norm/xpos=0/ypos=1/halign=-2/valign=2/angle=0/siz=0.1 "TOP LEFT INSET"
+annotate/norm/xpos=1/ypos=0/halign=2/valign=-2/angle=0/siz=0.1 "BOTTOM RIGHT INSET"
+annotate/norm/xpos=1/ypos=1/halign=2/valign=2/angle=0/siz=0.1 "TOP RIGHT INSET"
+
+! ANNOTATE/NOUSER
+set v ll
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+
+! nouser
+annotate/nouser/xpos=0/ypos=0/halign=-1/angle=0/size=0.15 "At Origin"
+annotate/nouser/xpos=0/ypos=0/halign=-3/valign=-3/angle=0/size=0.15 "With/HALIGN=-3/VALIGN=-3"
+
+annotate/nouser/xpos=($ppl$xlen)/ypos=($ppl$ylen)/halign=1/valign=-1/angle=0/siz=0.15 "Right-align at upper right corner"
+ !-> annotate/nouser/xpos=4.49900/ypos=3.89900/halign=1/valign=-1/angle=0/siz=0.15 "Right-align at upper right corner"
+annotate/nouser/xpos=($ppl$xlen)/ypos=($ppl$ylen)/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+ !-> annotate/nouser/xpos=4.49900/ypos=3.89900/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+
+plot/vs/line/over/color=lightblue/nolab {3,3},{1,6}
+plot/vs/line/over/color=lightblue/nolab {1,5}, {3,3}
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=`($ppl$ylen)/2`/halign=0/valign=0/angle=0/siz=0.15 \
+"Arguments locate the first<nl>line of multi-line labels "
+ !-> annotate/nouser/xpos=2.2495/ypos=1.9495/halign=0/valign=0/angle=0/siz=0.15 "Arguments locate the first<nl>line of multi-line labels "
+
+! angles
+set v lr
+
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+! nouser
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+annotate/nouser/xpos=0/ypos=0/halign=0/valign=0/angle=45/size=0.15 "Center At Origin"
+annotate/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+ !-> annotate/nouser/xpos=0/ypos=3.89900/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+annotate/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+ !-> annotate/nouser/xpos=4.49900/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+
+! Test defaults
+! Default is like PPL user-labels
+! /USER/SIZ=0.12/ANGLE=0/HALIGN=0/VALIGN=-1
+
+shade/x=1:2/y=1:2/pal=grayscale i+j
+annotate/xpos=1.5/ypos=1.8 "Anno Label"
+label 1.5,1.6,,,, PPL label
+
+
+! DEFINE ANNOTATION inside a grapchics call with /SET
+can view
+use gt4d011.cdf
+shade/set temp[k=1,l=1]
+ DEFINE ANNOTATION/user/xpos=224/ypos=-3/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+
+shade/set/j=40/L=1 temp
+ DEFINE ANNOTATION/user/xpos=224/ypos=80/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+
+can data/all
+
+plot/set/i=1:5 i
+! nouser
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=0/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.67400/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=7.27400/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=0/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=0/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=0/siz=0.15 "user units right at 3,4"
+ppl plot
+
+! angles
+
+plot/set/i=1:5 i
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=45/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.67400/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=7.27400/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=45/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=45/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=45/siz=0.15 "user units right at 3,4"
+ppl plot
+
+! DEFINE ANNO/NORM
+plot/i=1:5/nolab/set i
+def anno/norm/xp=.5/yp=1.1/hal=0/ang=0/size=.3 "FLOATING TITLE"
+def anno/norm/xp=.5/yp=-.2/hal=0/ang=0/size=.3 "SUBMERGED TITLE"
+def anno/norm/xp=0/yp=1/hal=-1/ang=0/size=.3 "LEFT/TOP"
+def anno/norm/xp=.5/yp=1/hal=0/ang=0/size=.3 "CTR/TOP"
+def anno/norm/xp=1/yp=1/hal=1/ang=0/size=.3 "RIGHT/TOP"
+def anno/norm/xp=1/yp=.5/hal=0/ang=-90/size=.3 "RIGHT EDGE"
+def anno/norm/xp=0/yp=.5/hal=0/ang=90/size=.3 "LEFT EDGE"
+def anno/norm/xp=.5/yp=.5/hal=0/val=0/ang=0/size=.3 "DEAD CENTER"
+def anno/norm/xp=.5/yp=0/hal=0/val=1/ang=0/size=.3 "HANGING FROM BOTTOM"
+def anno/norm/xp=0/yp=0/hal=-2/val=-2/ang=0/size=.2 "BOTTOM LEFT INSET"
+def anno/norm/xp=0/yp=1/hal=-2/val=2/ang=0/size=.2 "TOP LEFT INSET"
+def anno/norm/xp=1/yp=0/hal=2/val=-2/ang=0/size=.2 "BOTTOM RIGHT INSET"
+def anno/norm/xp=1/yp=1/hal=2/val=2/ang=0/size=.2 "TOP RIGHT INSET"
+ppl plot
+
+plot/set/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+
+define annotation/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=.5 "X"
+define annotation/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=.5 "X"
+define annotation/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=.5 "X"
+define annotation/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=.5 "BOX"
+define annotation/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=.5 "BOX"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=.5 "TOP"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=.5 "BOTTOM"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=.5 "M"
+ppl list labels
+
+ @AS{-1,1}
+ @AS{-1,1}
+
+ XPOS YPOS HGT ROT UNITS
+ LAB 1 0.000E+00 7.270E+00 0.120 0 SYSTEM @ASX : 0.5 to 2.5
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB 2 -1.344E+00 -1.000E+00 0.500 -90 USER X
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 3 0.000E+00 -7.492E-01 0.500 0 USER X
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 4 1.243E+00 4.703E-01 0.500 45 USER X
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 5 0.000E+00 4.251E+00 0.500 0 USER BOX
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 6 3.437E-01 -5.000E+00 0.500 90 USER BOX
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 7 3.486E+00 -1.059E+00 0.500 45 USER TOP
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 8 3.000E+00 0.000E+00 0.500 45 USER BOTTOM
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 9 -3.000E+00 0.000E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB10 -2.514E+00 -1.059E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB11 -3.000E+00 0.000E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB12 -2.514E+00 -1.059E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB13 -3.000E+00 2.119E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB14 -1.542E+00 -1.059E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB15 -3.972E+00 4.958E-08 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB16 -2.514E+00 -3.178E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB17 -1.301E+00 -2.654E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB18 -1.782E+00 -3.703E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB19 -3.732E+00 2.643E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB20 -4.213E+00 1.595E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ppl plot
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+plot/ov/vs/sym=2/size=2/nolab 3,0
+plot/ov/vs/sym=2/size=2/nolab -3,0
+
+! intentional errors
+set mode ignore
+can v
+shade/i=1:2/j=1:2/nokey i+j
+
+
+! errors in arguments
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+
+! missing a location
+annotate/nouser/ypos=0 "My Lab"
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+
+! /USER and /NOUSER
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+
+! define annotation
+
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/ypos=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/hal=1/val=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/user/xpos=0/ypos=0 "My Lab"; ppl plot
+
+GO bn_reset
+cancel mode verify
+GO bn_auxiliary
+! bn_auxiliary.jnl: exercise auxiliary coordinate regridding
+
+! notes about the 6/2015 version:
+! -- tests 1D regridding, only, as of 6/2015
+! -- includestests the deprecated "LAYERZ" and "__LayerzRef_" automation syntax
+! ... to be replaced by a different automation syntax in the future
+
+! *sh* 6/2015
+
+! initialize the test environment
+USE levitus_3d_subset
+SPAWN rm layerz_test_data.txt
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+
+! conjure a 4D auxiliary variable that contains the same values
+! as the native Z coordinates
+! regridding using this auxiliary variable should give the same results as
+! conventional regridding -- usefuly to validate the results
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+
+!************
+! exercise the syntax of setting layerz associations
+! do same tests on EZ, uvar, and netCDF variable
+
+! EZ file variable
+LIST/NOHEAD/FILE=layerz_test_data.txt 1
+FILE/VAR=v layerz_test_data.txt
+! set the layerz link to point to a variable named "depth"
+SET VAR/layerz=depth v
+SHOW VAR/LAYERZ v
+ DEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+! modify the layerz link
+SET VAR/layerz=newdepth v
+SHOW VAR/LAYERZ v
+ NEWDEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+ attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V
+ V.missing_value = -1.E+34
+ V.__LayerzRef_ = NEWDEPTH
+cancel var/layerz v
+SHOW VAR/LAYERZ v
+ No variable holds vertical (layerz) coordinates of V
+SHOW ATT v
+ attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V
+ V.missing_value = -1.E+34
+CANCEL DATA layerz_test_data.txt
+
+! user variable
+! set the layerz link
+LET a = temp
+SET VAR/layerz=depth a
+SHOW VAR/LAYERZ a
+ DEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+ attributes for user-defined variables
+ a.long_name = TEMP
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = DEPTH
+! modify the layerz link
+SET VAR/layerz=newdepth a
+SHOW VAR/LAYERZ a
+ NEWDEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+ attributes for user-defined variables
+ a.long_name = TEMP
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = NEWDEPTH
+cancel var/layerz a
+SHOW VAR/LAYERZ a
+ No variable holds vertical (layerz) coordinates of a
+SHOW ATT a
+ attributes for user-defined variables
+ a.long_name = TEMP
+ a.missing_value = -1.E+34
+
+! netCDF file variable
+! set the layerz link
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+ DEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+ attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = DEPTH
+! modify the layerz link
+SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+ NEWDEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+ attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = NEWDEPTH
+cancel var/layerz temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+ No variable holds vertical (layerz) coordinates of TEMP
+SHOW ATT temp[d=levitus_3d_subset] ! __LayerzRef_ has been deleted
+ attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.missing_value = -1.E+10
+ TEMP._FillValue = -1.E+10
+ TEMP.long_name = TEMPERATURE
+ TEMP.history = From /home/users/tmap/ferret/linux/fer_dsets/data/levitus_climatology.cdf
+ TEMP.units = DEG C
+
+! deliberate error
+SET MODE ignore; SET VAR/layerz=depth noexist; SET MODE/last ignore
+
+!************
+! exercise the layerz calculations in various situations
+! compare the manually specified syntax with the automated results
+
+! make "depth" the layerz coordinate variable for "temp"
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+
+! values of the unadulterated variable
+list/PREC=7 temp[z=0:500]
+ VARIABLE : TEMPERATURE (DEG C)
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 11 points (LONGITUDE-LATITUDE-DEPTH (m))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 0
+ 48.5S / 2: 7.725000 7.917999
+ 49.5S / 1: 6.827000 7.007000
+ ---- K:2 Z: 10
+ 48.5S / 2: 7.726000 7.917999
+ 49.5S / 1: 6.843000 7.021999
+ ---- K:3 Z: 20
+ 48.5S / 2: 7.715000 7.907000
+ 49.5S / 1: 6.840000 7.018999
+ ---- K:4 Z: 30
+ 48.5S / 2: 7.594000 7.789000
+ 49.5S / 1: 6.740999 6.923000
+ ---- K:5 Z: 50
+ 48.5S / 2: 7.410999 7.584000
+ 49.5S / 1: 6.624001 6.785000
+ ---- K:6 Z: 75
+ 48.5S / 2: 7.572001 7.666000
+ 49.5S / 1: 6.750999 6.848000
+ ---- K:7 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:8 Z: 150
+ 48.5S / 2: 7.372000 7.464001
+ 49.5S / 1: 6.466000 6.573999
+ ---- K:9 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:10 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:11 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+SHOW GRID
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid GAO1
+ GRID GAO1
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAXLEVITR DEPTH (m) 20 i- 0 5000
+ normal T
+ normal E
+ normal F
+
+! use aux var regridding. Target coordinate points match the source points
+! identically at 0, 100, 200, ... 500
+! values should match the unadulterated variable at these points
+! this command will be issued in diagnostic mode to highlight that the
+! K range over which temp is read is the minimum needed to compute the result
+SET MODE diagnostic
+LET tempz = temp[gz(depth)=zpts]
+LIST/PREC=7 tempz
+ dealloc dynamic grid GAO1 XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ getgrid TEMPZ C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ getgrid DEPTH C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GAO1 XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL NORMAL NORMAL
+ getgrid ZPTS C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid (G108) NORMAL NORMAL (AX113) NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G108) NORMAL NORMAL (AX113) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G108) NORMAL NORMAL (AX113) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999 M: -999 -999 N: -999 -999
+ eval TEMPZ C: 6 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999 M: -999 -999 N: -999 -999
+ allocate dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ strip regrid on Z: TEMP --> (G086) @LIN
+ eval DEPTH C: 9 dset: 1 I: 1 2 J: 1 2 K: 1 20 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo Z M:112 dset: 1 I: -999 -999 J: -999 -999 K: 1 20 L: -999 -999 M: -999 -999 N: -999 -999
+ constan cnst M:104 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ reading TEMP M: 98 dset: 1 I: 1 2 J: 1 2 K: 1 1 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE cnst M:104 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE tpry M: 96 dset: 0 I: 1 2 J: 1 2 K: 1 1 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE Z M:112 dset: 1 I: -999 -999 J: -999 -999 K: 1 20 L: -999 -999 M: -999 -999 N: -999 -999
+ reading TEMP M:112 dset: 1 I: 1 2 J: 1 2 K: 7 12 L: -999 -999 M: -999 -999 N: -999 -999
+ auxgrd TEMP M: 96 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+SHOW GRID tempz
+ dealloc dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ GRID (G086)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ (AX113) Z 5 r 100 500
+ normal T
+ normal E
+ normal F
+!LET tempz = temp[gz=zpts,layerz] ! same regrid using semi-automated notation
+!LIST/PREC=7 tempz
+!SHOW GRID tempz
+SET MODE/last diagnostic
+
+! list a little with no imtermediate variable, so Z labeling is visible
+LIST/PREC=7 temp[gz(depth)=zpts,k=1]
+ VARIABLE : TEMPERATURE (DEG C)
+ regrid: 100 delta on Z at LIN using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 100
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+!LIST/PREC=7 temp[gz=zpts,k=1,layerz] ! same using semi-automated notation
+
+! same calculation, but with a named Z axis
+LET tempzax = temp[gz(depth)=zax]
+LIST tempzax
+ VARIABLE : TEMP[GZ(DEPTH)=ZAX]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+SHOW GRID tempzax
+ GRID (G106)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAX Z (METERS) 5 r 100 500
+ normal T
+ normal E
+ normal F
+!LET tempzax = temp[gz=zax,layerz] ! same regrid using semi-automated notation
+!LIST tempzax
+!SHOW GRID tempzax
+
+! regrid to a different set of Z points
+LET tempz_alt = temp[gz(depth)=2:10:2]
+LIST/PREC=7 tempz_alt
+ VARIABLE : TEMP[GZ(DEPTH)=2:10:2]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 2
+ 48.5S / 2: 7.725200 7.917999
+ 49.5S / 1: 6.830200 7.010000
+ ---- K:2 Z: 4
+ 48.5S / 2: 7.725400 7.917999
+ 49.5S / 1: 6.833400 7.013000
+ ---- K:3 Z: 6
+ 48.5S / 2: 7.725600 7.917999
+ 49.5S / 1: 6.836600 7.016000
+ ---- K:4 Z: 8
+ 48.5S / 2: 7.725800 7.917999
+ 49.5S / 1: 6.839800 7.018999
+ ---- K:5 Z: 10
+ 48.5S / 2: 7.726000 7.917999
+ 49.5S / 1: 6.843000 7.021999
+SHOW GRID tempz_alt
+ GRID (G103)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ (AX129) Z 5 r 2 10
+ normal T
+ normal E
+ normal F
+
+!! do same regrid using the shorhand semi-automated notation
+!LIST/PREC=7 temp[z=2:10:2,layerz] ! lo:hi:delta notation
+!SHOW GRID
+
+! test the shorthand notation var[gz(depth)=100] as an implicit aux var
+! regrid via linear interpolation
+! the value should match the preceding output at Z=6
+LET tempz_1pt = temp[gz(depth)=6]
+LIST/PREC=7 tempz_1pt
+ VARIABLE : TEMP[GZ(DEPTH)=6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 6
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.725600 7.917999
+ 49.5S / 1: 6.836600 7.016000
+SHOW GRID/z tempz_1pt
+ GRID (G087)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ (AX114) Z 1 r 6 6
+ normal T
+ normal E
+ normal F
+
+ K Z ZBOX ZBOXLO
+ 1> 6 6.E-05 5.99997
+
+! do same regrid using the shorhand semi-automated notation
+LIST/PREC=7 temp[z=6,layerz] ! =1pt notation WILL BE CHANGED!
+ VARIABLE : TEMPERATURE (DEG C)
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 6 (interpolated using DEPTH)
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.725600 7.917999
+ 49.5S / 1: 6.836600 7.016000
+SHOW GRID
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid GAO1
+ GRID GAO1
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAXLEVITR DEPTH (m) 20 i- 0 5000
+ normal T
+ normal E
+ normal F
+
+! auxiliary points in reverse order
+! to get results that we can check for correctness, we will reverse the Z-order
+! of the temperature field as well as the depth field.
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET/D=levitus_3d_subset rvdepth = rvdepth0[gz=temp at asn]
+! **** NOTE: THERE'S A SUBTLE MISBEHAVIOR IN AUX REGRID SHOWN IN THIS COMMENTED
+! OUT LINE BUT WILL RARELY OCCUR AND EASILY WORKED AROUND
+!LET rvtempzax = rvtemp[gz(rvdepth)=zax] ! zlims aren't filled in if not given
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+LIST/PREC=7 rvtempzax - tempz
+ VARIABLE : RVTEMPZAX - TEMPZ
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:2 Z: 200
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:3 Z: 300
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:4 Z: 400
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:5 Z: 500
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+SHOW GRID rvtempzax
+ GRID (G106)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAX Z (METERS) 5 r 100 500
+ normal T
+ normal E
+ normal F
+
+! deliberate execution errors:
+LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+LET disordered_tempz1 = temp[gz(disordered_depth1)=zax]
+LET disordered_depth2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+LET disordered_tempz2 = temp[gz(disordered_depth2)=zax]
+SET MODE ignore
+LIST disordered_tempz1
+ VARIABLE : TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+LIST disordered_tempz2
+ VARIABLE : TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+SET MODE/last ignore
+
+! test VTREE with a complex auxiliary variable definitions
+VTREE
+ in default dataset levitus_3d_subset
+ RVTEMPZAX = RVTEMP[GZ(RVDEPTH)=ZAX,Z=100:500]
+ RVTEMP = RVTEMP0[GZ=TEMP at ASN]
+ RVDEPTH = RVDEPTH0[GZ=TEMP at ASN]
+ RVDEPTH0 = ZREVERSE(DEPTH)
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ DISORDERED_TEMPZ2 = TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+ DISORDERED_DEPTH2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ DISORDERED_TEMPZ1 = TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+ DISORDERED_DEPTH1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
+ regrid to ZPTS = Z[Z=100:500:100]
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMPZAX = TEMP[GZ(DEPTH)=ZAX]
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMPZ_1PT = TEMP[GZ(DEPTH)=6]
+ TEMPZ_ALT = TEMP[GZ(DEPTH)=2:10:2]
+ A = TEMP
+
+! 6-dimensional regridding
+
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+LET temp6d = temp/100 + 1*L[L=1:2] + 10*_M[M=1:2] + 100*_N[N=1:2]
+!list/k=7:12/PREC=7 temp6d
+LET tempz6d = temp6d[gz(depth)=zpts]
+!LIST/PREC=7 tempz6d
+! compare pre- and post- regrid at a fixed depth
+stat/z=100 temp6d-tempz6d
+
+ TEMP6D-TEMPZ6D
+ LONGITUDE: 120E to 122E
+ LATITUDE: 50S to 48S
+ DEPTH (m): 100
+ T: 0.5 to 2.5
+ E: 0.5 to 2.5
+ F: 0.5 to 2.5
+ DATA SET: ./levitus_3d_subset.nc
+
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean value: 0 (unweighted average)
+ Standard deviation: 0
+stat/z=400 temp6d-tempz6d
+
+ TEMP6D-TEMPZ6D
+ LONGITUDE: 120E to 122E
+ LATITUDE: 50S to 48S
+ DEPTH (m): 400
+ T: 0.5 to 2.5
+ E: 0.5 to 2.5
+ F: 0.5 to 2.5
+ DATA SET: ./levitus_3d_subset.nc
+
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean value: 0 (unweighted average)
+ Standard deviation: 0
+
+! 6d temperature and 6d depth field
+! hold temperature constant over time, have depths change
+! note that for N=2 depths of less than 100 are no longer in the data hence missing values at Z=100
+LET temp6d_const = temp + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2] ! constant in T,E,F
+LET depth6d = depth + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+LET tempz6d_tDep = temp6d_const[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_tDep
+ VARIABLE : TEMP6D_CONST[GZ(DEPTH6D)=ZPTS]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-Z-T-E-F)
+ 120.5E 121.5E
+ 1 2
+ ---- N:1 F: 1
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.429800 7.528001
+ 49.5S / 1: 6.577600 6.682400
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.043200 7.151200
+ 49.5S / 1: 6.113999 6.234800
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.507401 6.680599
+ 49.5S / 1: 5.503100 5.713500
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.209499 6.403001
+ 49.5S / 1: 5.212800 5.435500
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.870150 6.078201
+ 49.5S / 1: 4.909800 5.133250
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.410999 7.584000
+ 49.5S / 1: 6.624001 6.785000
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.372000 7.464001
+ 49.5S / 1: 6.466000 6.573999
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.709001 6.855000
+ 49.5S / 1: 5.735499 5.907500
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.319500 6.507000
+ 49.5S / 1: 5.316000 5.537500
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.008749 6.211001
+ 49.5S / 1: 5.033000 5.256250
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.502500 7.686500
+ 49.5S / 1: 6.682500 6.854000
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.364600 7.458401
+ 49.5S / 1: 6.465200 6.573600
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.759401 6.898600
+ 49.5S / 1: 5.793599 5.956000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.347000 6.533000
+ 49.5S / 1: 5.341800 5.563000
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.043399 6.244201
+ 49.5S / 1: 5.063800 5.287000
+ ---- N:2 F: 2
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.725000 7.917999
+ 49.5S / 1: 6.827000 7.007000
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: .... ....
+ 49.5S / 1: .... ....
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.429800 7.528001
+ 49.5S / 1: 6.577600 6.682400
+ ---- K:3 Z: 300
+ 48.5S / 2: 7.043200 7.151200
+ 49.5S / 1: 6.113999 6.234800
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.507401 6.680599
+ 49.5S / 1: 5.503100 5.713500
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.209499 6.403001
+ 49.5S / 1: 5.212800 5.435500
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: .... ....
+ 49.5S / 1: .... ....
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.410999 7.584000
+ 49.5S / 1: 6.624001 6.785000
+ ---- K:3 Z: 300
+ 48.5S / 2: 7.372000 7.464001
+ 49.5S / 1: 6.466000 6.573999
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.709001 6.855000
+ 49.5S / 1: 5.735499 5.907500
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.319500 6.507000
+ 49.5S / 1: 5.316000 5.537500
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: .... ....
+ 49.5S / 1: .... ....
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.502500 7.686500
+ 49.5S / 1: 6.682500 6.854000
+ ---- K:3 Z: 300
+ 48.5S / 2: 7.364600 7.458401
+ 49.5S / 1: 6.465200 6.573600
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.759401 6.898600
+ 49.5S / 1: 5.793599 5.956000
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.347000 6.533000
+ 49.5S / 1: 5.341800 5.563000
+LIST/PREC=7/k=7:8 temp6d_const, depth6d ! reference values at Z=100, 200, 300 for visual comparison
+ DATA SET: ./levitus_3d_subset.nc
+ LONGITUDE: 120E to 122E
+ LATITUDE: 50S to 48S
+ DEPTH (m): 87.5 to 175
+ T: 0.5 to 2.5
+ E: 0.5 to 2.5
+ F: 0.5 to 2.5
+ Column 1: TEMP6D_CONST is TEMP + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2]
+ Column 2: DEPTH6D is DEPTH + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+ TEMP6D_CONS DEPTH6D
+ ---- N:1 F: 1
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 100.0000
+121.5E / 2: 6.572001 100.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 100.0000
+121.5E / 2: 7.436001 100.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 150.0000
+121.5E / 2: 6.573999 150.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 150.0000
+121.5E / 2: 7.464001 150.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 110.0000
+121.5E / 2: 6.572001 110.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 110.0000
+121.5E / 2: 7.436001 110.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 160.0000
+121.5E / 2: 6.573999 160.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 160.0000
+121.5E / 2: 7.464001 160.0000
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 150.0000
+121.5E / 2: 6.572001 150.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 150.0000
+121.5E / 2: 7.436001 150.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 200.0000
+121.5E / 2: 6.573999 200.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 200.0000
+121.5E / 2: 7.464001 200.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 160.0000
+121.5E / 2: 6.572001 160.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 160.0000
+121.5E / 2: 7.436001 160.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 210.0000
+121.5E / 2: 6.573999 210.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 210.0000
+121.5E / 2: 7.464001 210.0000
+ ---- N:2 F: 2
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 200.0000
+121.5E / 2: 6.572001 200.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 200.0000
+121.5E / 2: 7.436001 200.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 250.0000
+121.5E / 2: 6.573999 250.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 250.0000
+121.5E / 2: 7.464001 250.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 210.0000
+121.5E / 2: 6.572001 210.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 210.0000
+121.5E / 2: 7.436001 210.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 260.0000
+121.5E / 2: 6.573999 260.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 260.0000
+121.5E / 2: 7.464001 260.0000
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 250.0000
+121.5E / 2: 6.572001 250.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 250.0000
+121.5E / 2: 7.436001 250.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 300.0000
+121.5E / 2: 6.573999 300.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 300.0000
+121.5E / 2: 7.464001 300.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 260.0000
+121.5E / 2: 6.572001 260.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 260.0000
+121.5E / 2: 7.436001 260.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 310.0000
+121.5E / 2: 6.573999 310.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 310.0000
+121.5E / 2: 7.464001 310.0000
+! ... some spot checks
+LIST/PREC=7/l=1/m=1/n=1 tempz6d_tDep[Z=100] - temp6d_const[k=7]
+ VARIABLE : TEMPZ6D_TDEP[Z=100] - TEMP6D_CONST[K=7]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 100
+ T : 1
+ E : 1
+ F : 1
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+LIST/PREC=7/l=1/m=2/n=1 tempz6d_tDep[Z=200] - temp6d_const[k=8]
+ VARIABLE : TEMPZ6D_TDEP[Z=200] - TEMP6D_CONST[K=8]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 200
+ T : 1
+ E : 2
+ F : 1
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+LIST/PREC=7/l=1/m=2/n=2 tempz6d_tDep[Z=300] - temp6d_const[k=8]
+ VARIABLE : TEMPZ6D_TDEP[Z=300] - TEMP6D_CONST[K=8]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 300
+ T : 1
+ E : 2
+ F : 2
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+
+! ** deliberate error **
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+! Ferret does not permit auxiliary variable to have an axis not found on the source variable
+! (to avoid having to consider auxiliary variables during grid-getting ... possible to do)
+SET MODE IGNORE
+LET tempz6d_unmatch = temp[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_unmatch
+SET MODE/LAST IGNORE
+
+! ********************************
+! test the @plave regridding -- ave defined from area under piecewise curve
+
+! first compare to our simplest of linear interpolation regrids, tempz
+! note that results will differ due to non-linearity
+! at Z=500 on the output they become identical because the Z=500 grid box
+! extends 450:550 with source points at Z=400 and Z=600 -- pure linear
+! LET tempz = temp[gz(depth)=zpts]
+LET tempzave = temp[gz(depth)=zpts at plave]
+LIST tempzave - tempz
+ VARIABLE : TEMPZAVE - TEMPZ
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 0.07800055 0.08299971
+ 49.5S / 1: 0.09349990 0.09612441
+ ---- K:2 Z: 200
+ 48.5S / 2: 0.03974986 0.04325008
+ 49.5S / 1: 0.03737521 0.04537499
+ ---- K:3 Z: 300
+ 48.5S / 2: 0.02862477 0.02200031
+ 49.5S / 1: 0.04037499 0.02874994
+ ---- K:4 Z: 400
+ 48.5S / 2: -0.00893724 -0.00900024
+ 49.5S / 1: -0.00625008 -0.00656247
+ ---- K:5 Z: 500
+ 48.5S / 2: 0.00000000 0.00000000
+ 49.5S / 1: 0.00000000 0.00000000
+
+! list a little. Note the regridding transform label
+LIST/PREC=7 temp[gz(depth)=zpts at plave,k=1]
+ VARIABLE : TEMPERATURE (DEG C)
+ regrid: 100 delta on Z at PLAVE using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 50 to 150
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.413000 7.519001
+ 49.5S / 1: 6.555500 6.668125
+
+! Levitus has points at 50, 75, 100, 150, 200
+! define target axis with edges at 50:75 (k=1), 75:100 (k=2)
+! 100:125(k=3), 125:150 (k=4), 150:175(k=5)
+define axis/edges/z=50:175:25/units=m zpt2 ! point at 125 is mid-way
+
+! raw source data -- artifically designed for easy mental calcs
+LET myvals = temp*0+100*(i-100)+10*(j-40)+k
+list/PREC=7 myvals[z=50:300]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+K
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+ 120.5E 121.5E
+ 1 2
+ ---- K:5 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:6 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:7 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:8 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:9 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+ ---- K:10 Z: 300
+ 48.5S / 2: -10270.00 -10170.00
+ 49.5S / 1: -10280.00 -10180.00
+
+! linear interpolation regridding
+LET mzlin2 = myvals[gz(depth)=zpt2]
+LIST/PREC=7 mzlin2
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z: 87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z: 112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z: 137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z: 162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+
+! average-regridding
+LET mzave2 = myvals[gz(depth)=zpt2 at plave]
+
+! cases:
+! 1) both edges lie on source points
+LIST/PREC=7 mzave2[k=2] ! vals at 75, 100 ==> 75:100
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 87.5
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+
+! 2) lower edge only lies on source point
+LIST/PREC=7 mzave2[k=3] ! vals at 100, 150 ==> 100:125
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 112.5
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+
+! 3) upper edge only lies on source point
+LIST/PREC=7 mzave2[k=4] ! vals at 100, 150 ==> 125:150
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 137.5
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+
+! 4) full range
+! myvals2 is linear in k, so @plave and @lin get identical results
+LIST/PREC=7 mzave2
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z: 87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z: 112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z: 137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z: 162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+LIST/PREC=7 mzave2 - mzlin2
+ VARIABLE : MZAVE2 - MZLIN2
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 62.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:2 Z: 87.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:3 Z: 112.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:4 Z: 137.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:5 Z: 162.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+
+! 5) divide a single source range into multiple destination cells
+! a range of 50 divided into 5 cells will have means of x.1,x.3,x.5, x.7, x.9
+define axis/edges/z=150:200:10/units=m zpt3
+LET mzave3 = myvals[gz(depth)=zpt3 at plave]
+LIST/PREC=7 mzave3
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT3 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 155
+ 48.5S / 2: -10271.90 -10171.90
+ 49.5S / 1: -10281.90 -10181.90
+ ---- K:2 Z: 165
+ 48.5S / 2: -10271.70 -10171.70
+ 49.5S / 1: -10281.70 -10181.70
+ ---- K:3 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:4 Z: 185
+ 48.5S / 2: -10271.30 -10171.30
+ 49.5S / 1: -10281.30 -10181.30
+ ---- K:5 Z: 195
+ 48.5S / 2: -10271.10 -10171.10
+ 49.5S / 1: -10281.10 -10181.10
+
+! 6) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.333333
+define axis/edges/z=50:200:150/units=m zpt4
+LET mzave4 = myvals[gz(depth)=zpt4 at plave]
+LIST/PREC=7 mzave4
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT4 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 125
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.67 -10172.67
+ 49.5S / 1: -10282.67 -10182.67
+
+! 7) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.8125
+define axis/edges/z=50:250:200/units=m zpt5
+LET mzave5 = myvals[gz(depth)=zpt5 at plave]
+LIST/PREC=7 mzave5
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT5 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 150
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.19 -10172.19
+ 49.5S / 1: -10282.19 -10182.19
+
+! 8) test the short-hand notation var[gz(depth)=0:100 at ave] as an implicit
+! aux var regrid via piecewice linear averaging
+! To confirm correct results we create a piecewize linear function that
+! has constant slope. Averaging such a function over a symmetric region
+! around a point on the source data should return the value at the point
+LET myvals_z = TEMP*0+100*(I-100)+10*(J-40)+Z
+list/PREC=7 myvals_z[z=200]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 200
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+list/PREC=7 myvals_z[gz(depth)=190:210 at ave]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ regrid: on Z at PLAVE using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 190 to 210
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+list/PREC=7 myvals_z[gz(depth)=150:250 at ave]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ regrid: on Z at PLAVE using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 150 to 250
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+
+! 8a) do same regrid using the shorhand semi-automated notation
+SET VAR/LAYERZ=depth myvals_z
+list/PREC=7 myvals_z[z=190:210 at ave,layerz] ! lo:hi at ave notation WILL BE CHANGED
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 190 to 210 (pc wise lin avgd using DEPTH)
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+list/PREC=7 myvals_z[z=150:250 at ave,layerz] ! WILL BE CHANGED
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 150 to 250 (pc wise lin avgd using DEPTH)
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+
+! test missing values in the depth array
+! cases:
+! 1) missing values at start of aux array
+define axis/z=25:200:25/units=m zpt6
+LET depmis = IF (I NE 102 OR k GT 6) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 2) missing values at end of aux array
+LET depmis = IF (I NE 102 OR k LT 9) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 3) missing values in midst of aux array -- stops processing beyond
+LET depmis = IF (I NE 102 OR k EQ 7 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 4) singleton non-missing values in a line of the aux array
+LET depmis = IF (I NE 102 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 5) there are only missing values in a line of the aux array
+LET depmis = IF (I NE 102) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 6) two separated singletons -- only the first should be found
+LET depmis = IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+list depmis[z=25:200] ! to illustrate why the result is as it is
+ VARIABLE : IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN DEPTH
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+ 120.5E 121.5E
+ 1 2
+ ---- K:4 Z: 30
+ 48.5S / 2: 30.0000 30.0000
+ 49.5S / 1: 30.0000 30.0000
+ ---- K:5 Z: 50
+ 48.5S / 2: 50.0000 50.0000
+ 49.5S / 1: 50.0000 50.0000
+ ---- K:6 Z: 75
+ 48.5S / 2: 75.0000 75.0000
+ 49.5S / 1: 75.0000 75.0000
+ ---- K:7 Z: 100
+ 48.5S / 2: 100.0000 100.0000
+ 49.5S / 1: 100.0000 100.0000
+ ---- K:8 Z: 150
+ 48.5S / 2: 150.0000 150.0000
+ 49.5S / 1: 150.0000 150.0000
+ ---- K:9 Z: 200
+ 48.5S / 2: 200.0000 200.0000
+ 49.5S / 1: 200.0000 200.0000
+
+! ********
+! reversed-auxiliary variable used in regridding
+! (see definitions made earlier)
+! Note that the regridded result only matches the original data in regions
+! where the underlying piecewise function remains strictly linear with
+! unchanging slope/intercept. Since the Z=500 point has cell limits 450:550
+! and the underlying Levitus Z points (used in the definition of "depth") are
+! at 400 and 600, we get the identical result from @PLAVE and @LIN
+LET rvtempzaxave = rvtemp[gz(rvdepth)=zax at plave,z=100:500]
+LIST/PREC=7 rvtempzaxave - tempz
+ VARIABLE : RVTEMPZAXAVE - TEMPZ
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 0.07800055 0.08299971
+ 49.5S / 1: 0.09349990 0.09612441
+ ---- K:2 Z: 200
+ 48.5S / 2: 0.03974986 0.04325008
+ 49.5S / 1: 0.03737521 0.04537499
+ ---- K:3 Z: 300
+ 48.5S / 2: 0.02862477 0.02200031
+ 49.5S / 1: 0.04037499 0.02874994
+ ---- K:4 Z: 400
+ 48.5S / 2: -0.00893724 -0.00900024
+ 49.5S / 1: -0.00625008 -0.00656247
+ ---- K:5 Z: 500
+ 48.5S / 2: 0.00000000 0.00000000
+ 49.5S / 1: 0.00000000 0.00000000
+SHOW GRID/z rvtempzaxave
+ GRID (G106)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAX Z (METERS) 5 r 100 500
+ normal T
+ normal E
+ normal F
+
+ K Z ZBOX ZBOXLO
+ 1> 100 100 50
+ 2> 200 100 150
+ 3> 300 100 250
+ 4> 400 100 350
+ 5> 500 100 450
- FVX[d=my_file_vars]
- FV1[d=other_file_vars]
- FV1[d=another_file_vars]
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is ILLEGAL RECURSIVE VARIABLES: P1
-************************
- in default dataset MY_UVAR_AGG
- P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
- P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
- P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
- P3 = P1 + S3
- P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
- in default dataset MY_UVAR_AGG
- P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
- P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
- P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
- P3 = P1 + S3
- P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S3 (unknown variable)
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is UNKNOWN VARIABLE: S1
-************************
- in default dataset MY_UVAR_AGG
- P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
- P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
- P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
- P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
- in default dataset MY_UVAR_AGG
- P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
- P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
- P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
- P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S1 (unknown variable)
- S3 (unknown variable)
- in default dataset my_file_vars
- FV = FV1 + FV1 + FV1
- in default dataset MY_UVAR_AGG
- FV = FV1 + FV1 + FV1
- FV1 (aggregate variable)
- in default dataset other_file_vars
- UV = FVX + FVX + FVX
- FVX = FV1 + X[GX=FVX[D=1],I=1:3]
- in default dataset MY_UVAR_AGG
- UV = FVX + FVX + FVX
- FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-***************************
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-v2 is ready and AVAILABLE
-************************
- in default dataset MY_UVAR_AGG
- V2 = V1 + B + A + A
- V1 = A + B + B^2
- A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- B = C
- C = 1
- B = (defined above)
- A = (defined above)
- in default dataset MY_UVAR_AGG
- V2 = V1 + B + A + A
- V1 = A + B + B^2
- A = FV1[D=1] - FV1[D=2]
- B = C
- C = 1
- B = (defined above)
- A = (defined above)
- FV1[d=my_file_vars]
- FV1[d=other_file_vars]
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-v3 is ready and AVAILABLE
-************************
- in default dataset MY_UVAR_AGG
- V3 = A + V1 + B + A + A
- A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- V1 = A + B + B^2
- A = (defined above)
- B = C
- C = 1
- B = (defined above)
- in default dataset MY_UVAR_AGG
- V3 = A + V1 + B + A + A
- A = FV1[D=1] - FV1[D=2]
- V1 = A + B + B^2
- A = (defined above)
- B = C
- C = 1
- B = (defined above)
- FV1[d=my_file_vars]
- FV1[d=other_file_vars]
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is UNKNOWN VARIABLE: F
-************************
- in default dataset MY_UVAR_AGG
- D = B + C
- B = FV1[D=MY_FILE_VARS]
- FV1[d=my_file_var]
- C = 1
- A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
- E = 1
- FVX[d=my_file_var]
- in default dataset MY_UVAR_AGG
- D = B + C
- B = FV1[D=MY_FILE_VARS]
- C = 1
- A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
- E = 1
- F (unknown variable)
- FV1[d=my_file_vars]
- NOEXIST (unknown variable)
- FVX[d=my_file_vars]
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is UNKNOWN GRID: A[G=NOEXIST]
-************************
- in default dataset MY_UVAR_AGG
- B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
- in default dataset MY_UVAR_AGG
- B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
- A[G=NOEXIST] (unknown grid)
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is ERROR IN EXPRESSION: A[X=45S]
-************************
- in default dataset MY_UVAR_AGG
- C = A[X=45S]
- A[X=45S] *** WARNING: ERROR IN DEFINITION
- in default dataset MY_UVAR_AGG
- C = A[X=45S]
- A[X=45S] *** WARNING: ERROR IN DEFINITION
- A[X=45S] *** WARNING: SYNTAX ERROR
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
-************************
- in default dataset MY_UVAR_AGG
- D = A[I=1,,J=2]
- A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
- in default dataset MY_UVAR_AGG
- D = A[I=1,,J=2]
- A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
- A[I=1,,J=2] *** WARNING: SYNTAX ERROR
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-the problem is ERROR IN EXPRESSION: A[P=1]
-************************
- in default dataset MY_UVAR_AGG
- E = A[P=1]
- A[P=1] *** WARNING: ERROR IN DEFINITION
- in default dataset MY_UVAR_AGG
- E = A[P=1]
- A[P=1] *** WARNING: ERROR IN DEFINITION
- A[P=1] *** WARNING: SYNTAX ERROR
-/TREE=ALL
-/TREE=USER
-/TREE=FILE
-f is ready and AVAILABLE
-************************
- in default dataset MY_UVAR_AGG
- F = A[I=10]
- A = I[I=1:5]
- in default dataset MY_UVAR_AGG
- F = A[I=10]
- A = I[I=1:5]
- in default dataset MY_UVAR_AGG
- A = FVZ.LONG_NAME[D=1]
- in default dataset MY_UVAR_AGG
- A = ..HISTORY[D=1]
+! 5/15 -- added tests for non-monotonic auxiliary variable
+!test_non_monotonic_aux_z.jnl
+
+cancel region
+define axis/x=161e:165e:1 xax
+define axis/z=100:600:100 zax
+
+let temp = 0.0001*Z[gz=zax]^2 + 0*x[gx=xax]
+list temp
+ VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+
+! disordered points at beginning, middle and end, missing at beginning
+let density0 = 0*i[gx=xax]*k[gz=zax] + z/10
+let density1 = if i eq 2 and k eq 4 then 20 else density0
+let density2 = if i eq 3 and k eq 1 then 20 else density1
+let density3 = if i eq 3 and k eq 2 then 10 else density2
+let density4 = if i eq 4 and k eq 6 then 30 else density3
+let density = if i eq 5 and k le 2 then 1/0 else density4 ! missing at k=1:3
+list density
+ VARIABLE : IF I EQ 5 AND K LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+
+! Z=200-300 on the density axis are double valued at I=2
+list temp[gz(density)=5:65:2.5]
+ VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+ regrid: 2.5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 25 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 7.5 / 2: .... .... .... .... ....
+ 10 / 3: 1.00000 1.00000 4.00000 1.00000 ....
+ 12.5 / 4: 1.75000 1.75000 .... 1.75000 ....
+ 15 / 5: 2.50000 2.50000 .... 2.50000 ....
+ 17.5 / 6: 3.25000 3.25000 .... 3.25000 ....
+ 20 / 7: 4.00000 .... .... 4.00000 ....
+ 22.5 / 8: 5.25000 .... 7.12500 5.25000 ....
+ 25 / 9: 6.50000 .... 7.75000 6.50000 ....
+ 27.5 / 10: 7.75000 .... 8.37500 7.75000 ....
+ 30 / 11: 9.00000 .... 9.00000 .... 9.00000
+ 32.5 / 12: 10.75000 19.75000 10.75000 .... 10.75000
+ 35 / 13: 12.50000 20.50000 12.50000 .... 12.50000
+ 37.5 / 14: 14.25000 21.25000 14.25000 .... 14.25000
+ 40 / 15: 16.00000 22.00000 16.00000 .... 16.00000
+ 42.5 / 16: 18.25000 22.75000 18.25000 .... 18.25000
+ 45 / 17: 20.50000 23.50000 20.50000 .... 20.50000
+ 47.5 / 18: 22.75000 24.25000 22.75000 .... 22.75000
+ 50 / 19: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 52.5 / 20: 27.75000 27.75000 27.75000 .... 27.75000
+ 55 / 21: 30.50000 30.50000 30.50000 .... 30.50000
+ 57.5 / 22: 33.25000 33.25000 33.25000 .... 33.25000
+ 60 / 23: 36.00000 36.00000 36.00000 .... 36.00000
+ 62.5 / 24: .... .... .... .... ....
+ 65 / 25: .... .... .... .... ....
+
+
+!************************************
+! reverse-ordering of same field
+let btemp = 0.0001*(700-Z[gz=zax])^2 + 0*x[gx=xax]
+list btemp
+ VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2 + 0*X[GX=XAX]
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 200 / 2: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 300 / 3: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 400 / 4: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 500 / 5: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 600 / 6: 1.00000 1.00000 1.00000 1.00000 1.00000
+
+let bdensity0 = 0*i[gx=xax]*k[gz=zax] + (700-z)/10
+let bdensity1 = if i eq 2 and (7-k) eq 4 then 20 else bdensity0
+let bdensity2 = if i eq 3 and (7-k) eq 1 then 20 else bdensity1
+let bdensity3 = if i eq 3 and (7-k) eq 2 then 10 else bdensity2
+let bdensity4 = if i eq 4 and (7-k) eq 6 then 30 else bdensity3
+let bdensity = if i eq 5 and (7-k) le 2 then 1/0 else bdensity4 !missing k=1:3
+
+SAY "************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********"
+************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********
+SET VAR/units="kg/m^3" density
+
+list bdensity
+ VARIABLE : IF I EQ 5 AND (7-K) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 200 / 2: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 300 / 3: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 400 / 4: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 500 / 5: 20.00000 20.00000 10.00000 20.00000 ....
+ 600 / 6: 10.00000 10.00000 20.00000 10.00000 ....
+
+list btemp[gz(bdensity)=5:65:2.5]
+ VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2 + 0*X[GX=XAX]
+ regrid: 2.5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 25 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 7.5 / 2: .... .... .... .... ....
+ 10 / 3: 1.00000 1.00000 4.00000 1.00000 ....
+ 12.5 / 4: 1.75000 1.75000 .... 1.75000 ....
+ 15 / 5: 2.50000 2.50000 .... 2.50000 ....
+ 17.5 / 6: 3.25000 3.25000 .... 3.25000 ....
+ 20 / 7: 4.00000 .... .... 4.00000 ....
+ 22.5 / 8: 5.25000 .... 7.12500 5.25000 ....
+ 25 / 9: 6.50000 .... 7.75000 6.50000 ....
+ 27.5 / 10: 7.75000 .... 8.37500 7.75000 ....
+ 30 / 11: 9.00000 .... 9.00000 .... 9.00000
+ 32.5 / 12: 10.75000 19.75000 10.75000 .... 10.75000
+ 35 / 13: 12.50000 20.50000 12.50000 .... 12.50000
+ 37.5 / 14: 14.25000 21.25000 14.25000 .... 14.25000
+ 40 / 15: 16.00000 22.00000 16.00000 .... 16.00000
+ 42.5 / 16: 18.25000 22.75000 18.25000 .... 18.25000
+ 45 / 17: 20.50000 23.50000 20.50000 .... 20.50000
+ 47.5 / 18: 22.75000 24.25000 22.75000 .... 22.75000
+ 50 / 19: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 52.5 / 20: 27.75000 27.75000 27.75000 .... 27.75000
+ 55 / 21: 30.50000 30.50000 30.50000 .... 30.50000
+ 57.5 / 22: 33.25000 33.25000 33.25000 .... 33.25000
+ 60 / 23: 36.00000 36.00000 36.00000 .... 36.00000
+ 62.5 / 24: .... .... .... .... ....
+ 65 / 25: .... .... .... .... ....
+
+!************************************
+! similar analysis using @plave over wider cells
+! compare to reverse-ordered data
+list temp[gz(density)=5:65:15 at plave]
+ VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+ regrid: 15 kg/m^3 on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 5 points (LONGITUDE-Z (kg/m^3))
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+list btemp[gz(bdensity)=5:65:15 at plave]
+ VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2 + 0*X[GX=XAX]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 5 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+
+! 6/15
+! test 1D auxiliary axis regirdding on all axes
+
+! p for passive axis
+! a for active axis
+
+define axis/x=161:165:1 xp
+define axis/y=161:165:1 yp
+define axis/z=161:165:1 zp
+define axis/t=161:165:1 tp
+define axis/e=161:165:1 ep
+define axis/f=161:165:1 fp
+
+define axis/x=100:700:100 xa
+define axis/y=100:700:100 ya
+define axis/z=100:700:100 za
+define axis/t=100:700:100 ta
+define axis/e=100:700:100 ea
+define axis/f=100:700:100 fa
+
+
+GO bn_auxiliary.sub Z,X,F
+
+*****************************
+********** Z,X,F ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 density
+ VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 bdensity
+ VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5] ! passive ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5] ! passive ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using DENSITY field
+ SUBSET : 5 points (X)
+ Z : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using BDENSITY field
+ SUBSET : 5 points (X)
+ Z : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+
+
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using DENSITY field
+ SUBSET : 5 points (X)
+ Z : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using BDENSITY field
+ SUBSET : 5 points (X)
+ Z : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+GO bn_auxiliary.sub Z,Y,E
+
+*****************************
+********** Z,Y,E ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 density
+ VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 bdensity
+ VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5] ! passive ax 1
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5] ! passive ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 1
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using DENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using BDENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+
+
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using DENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35 to 55
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using BDENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35 to 55
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+CANC MODE VERIFY
+
+*****************************
+********** X,Z,F ***********
+*****************************
+
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _I LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_I) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at LIN using DENSITY field
+ SUBSET : 5 points (Z)
+ X : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at LIN using BDENSITY field
+ SUBSET : 5 points (Z)
+ X : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at PLAVE using DENSITY field
+ SUBSET : 5 points (Z)
+ X : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at PLAVE using BDENSITY field
+ SUBSET : 5 points (Z)
+ X : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+*****************************
+********** Y,X,E ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+ VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND _J LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+ VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND (8-_J) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using DENSITY field
+ SUBSET : 5 by 16 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using DENSITY field
+ SUBSET : 5 by 16 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at LIN using DENSITY field
+ SUBSET : 5 points (X)
+ Y : 35
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at LIN using BDENSITY field
+ SUBSET : 5 points (X)
+ Y : 35
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at PLAVE using DENSITY field
+ SUBSET : 5 points (X)
+ Y : 35 to 55
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at PLAVE using BDENSITY field
+ SUBSET : 5 points (X)
+ Y : 35 to 55
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+*****************************
+********** T,Y,F ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+ VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND _L LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+ VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND (8-_L) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at LIN using DENSITY field
+ SUBSET : 5 points (Y)
+ T : 35
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at LIN using BDENSITY field
+ SUBSET : 5 points (Y)
+ T : 35
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at PLAVE using DENSITY field
+ SUBSET : 5 points (Y)
+ T : 35 to 55
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at PLAVE using BDENSITY field
+ SUBSET : 5 points (Y)
+ T : 35 to 55
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+*****************************
+********** E,Z,F ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _M LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_M) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: on E at LIN using DENSITY field
+ SUBSET : 5 points (Z)
+ E : 35
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: on E at LIN using BDENSITY field
+ SUBSET : 5 points (Z)
+ E : 35
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: on E at PLAVE using DENSITY field
+ SUBSET : 5 points (Z)
+ E : 35 to 55
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: on E at PLAVE using BDENSITY field
+ SUBSET : 5 points (Z)
+ E : 35 to 55
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+*****************************
+********** F,X,T ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+ VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND _N LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+ VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND (8-_N) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 5 delta on F at LIN using DENSITY field
+ SUBSET : 5 by 16 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 5 delta on F at LIN using DENSITY field
+ SUBSET : 5 by 16 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 5 delta on F at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 5 delta on F at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: on F at LIN using DENSITY field
+ SUBSET : 5 points (X)
+ F : 35
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: on F at LIN using BDENSITY field
+ SUBSET : 5 points (X)
+ F : 35
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 15 delta on F at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 15 delta on F at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 15 delta on F at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 15 delta on F at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: on F at PLAVE using DENSITY field
+ SUBSET : 5 points (X)
+ F : 35 to 55
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: on F at PLAVE using BDENSITY field
+ SUBSET : 5 points (X)
+ F : 35 to 55
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+GO bn_reset
+cancel mode verify
+GO bn_plot_ribbon_gaploc
+! bn_plot_ribbon_gaploc.jnl
+! 7/20/2015 *acm* new PLOT/VS/RIBBON/GAPLOC
+!
+! If a trajectory leaves the selected region and then travels
+! back into the region we want to pick up the pen along that
+! edge, not connect the points.
+
+! Note Ribbon plots define a lot of color/line combos, so
+! lots of ribbon overlays on a page need either SHASET RESET or
+! use of fewer than the default number of levels.
+
+let xpts = {1,2,3,4,5}
+let ypts = {1,1,1,1,1}
+let color = {1,2,3,4,5}
+let gvar = {0,0,1,0,0}
+plot/vs/ribbon/thick/line/lev=10/sym=21/siz=.3 xpts, 10*ypts, color
+plot/ov/ribbon/nolab/vs/thick/line/lev=10/sym=21/siz=.3/gapl xpts, 10.2*ypts, color, gvar
+plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3 xpts, 9.9*ypts, color
+plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3/gap xpts, 9.7*ypts, color, gvar
+
+use 39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
+
+! The line is connected across what should be a gap
+set view left
+plot/vs/hlim=63.5:68/ribbon/line/thick=3/key longitude, latitude, fco2_recommended
+! The gaploc variable is 1 at the location marking the start of gaps.
+let gaploc = if sample_number[I=@DDF] NE 1 THEN 1 ELSE 0
+set view right
+plot/vs/hlim=63.5:68/ribbon/line/thick=3/key/gap longitude, latitude, fco2_recommended, gaploc
+! Intentional errors. Qualifier needs 4 arguments. It does not (currently) apply to
+! other styles of line plots.
+set mode ignore
+plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
+plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
+plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
+set mode/last ignore
GO bn_reset
cancel mode verify
-GO bn_date1900_array
-! bn_date1900_array.jnl
-! Let date1900 accept an array of date strings, returning a list
-! of coordinate values, days since 1-jan-1900.
+GO bn_time_short_axes
+! bn_time_short_axes.jnl
+! testing time axis style with HH:MM on the time axis labels.
+use timesec
-sh func/details date1900
-DATE1900(formatted date)
- Convert date strings into Julian days since 1-Jan-1900
- Axes of result:
- X: inherited from argument(s)
- Y: NORMAL (no axis)
- Z: NORMAL (no axis)
- T: NORMAL (no axis)
- E: NORMAL (no axis)
- F: NORMAL (no axis)
- formatted date: dd-MMM-yy or dd-MMM-yyyy (e.g. "20-Dec-00") (none) (STRING)
- Influence on output axes:
- X: passed to result grid
- Y: no influence (indicate argument limits with "[]")
- Z: no influence (indicate argument limits with "[]")
- T: no influence (indicate argument limits with "[]")
- E: no influence (indicate argument limits with "[]")
- F: no influence (indicate argument limits with "[]")
+plot/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
+plot/axes=0,1,1,0/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
+plot/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
-! Function always worked just on one date string.
-list date1900("01-jan-2001")
- VARIABLE : DATE1900("01-jan-2001")
- 36890.
+plot/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
+plot/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
+plot/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
-! Now the argument can be an array
-let datestrings = {"01-jan-2001", "02-jan-2001", "30-Jul-2002"}
-list date1900(datestrings)
- VARIABLE : DATE1900(DATESTRINGS)
- SUBSET : 3 points (X)
- 1 / 1: 36890.
- 2 / 2: 36891.
- 3 / 3: 37465.
+! 2D plots
-def axis/t/units=days/t0=1-jan-1900 taxis = date1900(datestrings)
-list t[gt=taxis]
- VARIABLE : T
- axis TAXIS
- SUBSET : 3 points (TIME)
- 01-JAN-2001 00 / 1: 36890.
- 02-JAN-2001 00 / 2: 36891.
- 30-JUL-2002 00 / 3: 37465.
+define axis/x=0:360:1/units=degrees_east lonax
+let var2d = airt + 0.1*x[gx=lonax]
+
+shade/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
+fill/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
+shade/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
+shade/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
+fill/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
+shade/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
+
GO bn_reset
cancel mode verify
-GO bn_spawn_size
-! bn_spawn_size.jnl
-! Return the size of the result of a spawn, not
-! the nominalabstract axis length.
+GO bn_floatstr_extended
+! bn_floatstr_extended.jnl
+! test use of Integer and zero-filled formats in FLOATSTR function (Ferret v6.95)
+! 9/28/2015
-! ticket 981
-let files = {spawn:"ls *cdf*.jnl"}
-list files
- VARIABLE : {SPAWN:"ls *cdf*.jnl"}
- SUBSET : 8 points (X)
- 1 / 1:"bn_cdf_errmsg.jnl"
- 2 / 2:"bn_cdf.jnl"
- 3 / 3:"bn_cdf_keepax.jnl"
- 4 / 4:"bn_netcdf4.jnl"
- 5 / 5:"err490_cdf_childax.jnl"
- 6 / 6:"err491_cdf_childax.jnl"
- 7 / 7:"err65_read_epic_cdf.jnl"
- 8 / 8:"err667_5d_netcdf.jnl"
-say `files,return=isize`
- !-> MESSAGE/CONTINUE 8
-8
+LET string = FLOATSTR({3.14159,2.71828},"(i3)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828},"(i3)")
+ SUBSET : 2 points (X)
+ 1 / 1:" 3"
+ 2 / 2:" 2"
-! Evaluate size without loading the variable first
-let datfiles = {spawn:"ls *.dat"}
-say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 36
-36
+LET string = FLOATSTR({3.14159,2.71828},"(i3.3)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828},"(i3.3)")
+ SUBSET : 2 points (X)
+ 1 / 1:"003"
+ 2 / 2:"002"
-! expression syntax
-say `{spawn:"ls xml*.jnl"},return=isize`
- !-> MESSAGE/CONTINUE 3
-3
-list {spawn:"ls xml*.jnl"}
- VARIABLE : {SPAWN:"ls xml*.jnl"}
+LET string = FLOATSTR({3.14159,2.71828},"(i03)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828},"(i03)")
+ SUBSET : 2 points (X)
+ 1 / 1:"003"
+ 2 / 2:"002"
+
+! Missing data returned as the null string
+LET string = FLOATSTR({3.14159,2.71828,},"(i3)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828,},"(i3)")
SUBSET : 3 points (X)
- 1 / 1:"xml_header_script.jnl"
- 2 / 2:"xml_use_coads.jnl"
- 3 / 3:"xml_use_numstring.jnl"
+ 1 / 1:" 3"
+ 2 / 2:" 2"
+ 3 / 3:""
-! Test variables based on output of a spawn.
-! These already worked correctly, has a grid-changing function.
+! Test some large and small values
+LET var = {3.14159,2.71828,}
+LIST FLOATSTR(36*var,"(i5)")
+ VARIABLE : FLOATSTR(36*VAR,"(i5)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 113"
+ 2 / 2:" 97"
+ 3 / 3:""
+LIST FLOATSTR(36*var,"(i4.3)")
+ VARIABLE : FLOATSTR(36*VAR,"(i4.3)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 113"
+ 2 / 2:" 097"
+ 3 / 3:""
+LIST FLOATSTR(1.e14*var,"(i12)")
+ VARIABLE : FLOATSTR(1.E14*VAR,"(i12)")
+ SUBSET : 3 points (X)
+ 1 / 1:" -2147483648"
+ 2 / 2:" -2147483648"
+ 3 / 3:""
+LIST FLOATSTR(1.e-14*var,"(i5)")
+ VARIABLE : FLOATSTR(1.E-14*VAR,"(i5)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 0"
+ 2 / 2:" 0"
+ 3 / 3:""
-LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
-say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 875
-875
+! Result shape is inherited from the input variable
+USE gt4d011.cdf
+LIST/I=100/J=36:38/T=1-dec-1982:1-jan-1983 FLOATSTR(10000*tauy, "(i4)")
+ VARIABLE : FLOATSTR(10000*TAUY, "(i4)")
+ FILENAME : gt4d011.cdf
+ SUBSET : 3 by 6 points (LATITUDE-TIME)
+ LONGITUDE: 130W
+ 3S 2.67S 2.33S
+ 36 37 38
+ 28-NOV-1982 22 / 18:"-271""-240""-208"
+ 05-DEC-1982 00 / 19:"-283""-251""-220"
+ 11-DEC-1982 02 / 20:"-294""-263""-231"
+ 17-DEC-1982 04 / 21:"-356""-323""-290"
+ 23-DEC-1982 06 / 22:"-469""-433""-397"
+ 29-DEC-1982 08 / 23:"-583""-543""-503"
-let files = {spawn:"ls *cdf*.jnl"}
-let name_len = strindex(files, ".sub")
-say `name_len, return=isize`
- !-> MESSAGE/CONTINUE 8
-8
+USE coads_climatology
+
+! i4.4 is the same as i04
+
+LET var = FLOATSTR(sst,"(i4.4)")
+LET var = FLOATSTR(sst,"(i04)")
+
+LIST/X=165W:135W/Y=-50/L=1 var
+ VARIABLE : FLOATSTR(SST,"(i04)")
+ FILENAME : coads_climatology.cdf
+ SUBSET : 16 points (LONGITUDE)
+ LATITUDE : 50S (interpolated)
+ TIME : 16-JAN 06:00
+ 165W / 88:""
+ 163W / 89:""
+ 161W / 90:""
+ 159W / 91:""
+ 157W / 92:""
+ 155W / 93:""
+ 153W / 94:""
+ 151W / 95:""
+ 149W / 96:""
+ 147W / 97:""
+ 145W / 98:""
+ 143W / 99:""
+ 141W / 100:""
+ 139W / 101:""
+ 137W / 102:""
+ 135W / 103:""
+
+! Negative numbers cannot be listed with (i5.5) but can with (I05)
+LET var1 = FLOATSTR(sst-10,"(i5.5)")
+LET var2 = FLOATSTR(sst-10,"(i05)")
+
+LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
+ DATA SET: ./coads_climatology.cdf
+ LATITUDE: 91S to 11S
+ LONGITUDE: 165W
+ TIME: 16-JAN 06:00
+ Column 1: VAR1[G=4 deg on Y] is FLOATSTR(SST-10,"(i5.5)") (regrid: 4 deg on Y)
+ Column 2: VAR2[G=4 deg on Y] is FLOATSTR(SST-10,"(i05)") (regrid: 4 deg on Y)
+ VAR1 VAR2
+89S / 1: "" ""
+85S / 2: "" ""
+81S / 3: "" ""
+77S / 4: "*****" "00-10"
+73S / 5: "*****" "00-11"
+69S / 6: "*****" "000-9"
+65S / 7: "*****" "00-10"
+61S / 8: "*****" "000-7"
+57S / 9: "*****" "000-3"
+53S / 10: "*****" "000-1"
+49S / 11: "00002" "00002"
+45S / 12: "00004" "00004"
+41S / 13: "00006" "00006"
+37S / 14: "00008" "00008"
+33S / 15: "00010" "00010"
+29S / 16: "00012" "00012"
+25S / 17: "00015" "00015"
+21S / 18: "00017" "00017"
+17S / 19: "00018" "00018"
+13S / 20: "00019" "00019"
+
+
+! F0 format for zero-filled F format
+
+let a = {1.1, 3.7}
+list floatstr(a, "(f04.1)")
+ VARIABLE : FLOATSTR(A, "(f04.1)")
+ SUBSET : 2 points (X)
+ 1 / 1:"01.1"
+ 2 / 2:"03.7"
+
+let a = {1.1, 13.7}
+list floatstr(a, "(f06.1)")
+ VARIABLE : FLOATSTR(A, "(f06.1)")
+ SUBSET : 2 points (X)
+ 1 / 1:"0001.1"
+ 2 / 2:"0013.7"
+
+let a = {-1.1, 13.7}
+list floatstr(a, "(f04.1)")
+ VARIABLE : FLOATSTR(A, "(f04.1)")
+ SUBSET : 2 points (X)
+ 1 / 1:"-1.1"
+ 2 / 2:"13.7"
+
+! testing negative numbers and null/missing results
+LET var1 = FLOATSTR(sst-20,"(f5.1)")
+LET var2 = FLOATSTR(sst-20,"(f05.1)")
+LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
+ DATA SET: ./coads_climatology.cdf
+ LATITUDE: 91S to 11S
+ LONGITUDE: 165W
+ TIME: 16-JAN 06:00
+ Column 1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f5.1)") (regrid: 4 deg on Y)
+ Column 2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(f05.1)") (regrid: 4 deg on Y)
+ VAR1 VAR2
+89S / 1: "" ""
+85S / 2: "" ""
+81S / 3: "" ""
+77S / 4: "-20.4" "-20.4"
+73S / 5: "-21.0" "-21.0"
+69S / 6: "-19.8" "-19.8"
+65S / 7: "-20.0" "-20.0"
+61S / 8: "-17.3" "-17.3"
+57S / 9: "-13.9" "-13.9"
+53S / 10: "-11.2" "-11.2"
+49S / 11: " -7.5" "0-7.5"
+45S / 12: " -5.7" "0-5.7"
+41S / 13: " -3.5" "0-3.5"
+37S / 14: " -1.3" "0-1.3"
+33S / 15: " 0.9" "000.9"
+29S / 16: " 3.0" "003.0"
+25S / 17: " 5.1" "005.1"
+21S / 18: " 7.5" "007.5"
+17S / 19: " 8.1" "008.1"
+13S / 20: " 9.7" "009.7"
+
+! *********** v6.96 Additions ***********
+
+GO bn_reset
+cancel mode verify
+GO bn696_bug_fixes
+! bn696_bug_fixes
+! test various fixes that went into version 6.96
+
+GO bn_reset
+cancel mode verify
+GO err695_bounds_match_axis
+! err695_bounds_match_axis.jnl
+! ticket 2321.
+!
+! The coordinates match the upper bound of each cell
+! to machine accuracy. The internal rep of the value
+! has pt > bound_hi however. The logic in tm_check_bnds
+! handes this.
+
+use shorttemp.nc
+
+! Previously showed tbox=0 for every second pt.
+sh grid/l=1:4444 temp
+ GRID GSL1
+ name axis # pts start end
+ LON1 LONGITUDE 1 r 97.45W 97.45W
+ LAT LATITUDE 1 r 36.65N 36.65N
+ PFULL1_1 Z (hpa) 1 r- 3.3236 3.3236
+ TIME16 TIME 4 i 19-JUN-1997 00:00 19-JUN-1997 01:30
+ normal E
+ normal F
+
+ L T TBOX TBOXLO TSTEP (days)
+ 1> 19-JUN-1997 00:00:00 0.0208333 18-JUN-1997 23:30:00 0.02083333
+ 2> 19-JUN-1997 00:30:00 0.0208333 19-JUN-1997 00:00:00 0.04166667
+ 3> 19-JUN-1997 01:00:00 0.0208333 19-JUN-1997 00:30:00 0.0625
+ 4> 19-JUN-1997 01:30:00 0.0208333 19-JUN-1997 01:00:00 0.08333333
GO bn_reset
cancel mode verify
-GO bn_polygon_log
-! bn_polygon_log.jnl
-! polygon plots on a log axis need tests
+GO err695_show_dat_nodata
+! err695_show_dat_nodata.jnl
+! ticket 2322
+!
+! SHOW DATA noexist should include the dataset name or number
+! in the error message.
-let xsqr = YSEQUENCE({0,.1,.1,0})
-let ysqr = YSEQUENCE({0,0,.1,.1})
-let xpts = cos(x/10) + 2
-let ypts = x/10+1
+USE coads_climatology
-! Polygon plot
+SHOW DATA 1
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
-set view ul
-polygon/title="NOT LOG"/i=1:100 xpts+xsqr, ypts+ysqr, x*x/10
+SHOW DATA coads_climatology
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
-! Poly/vlog and /hlog
-! (known bug: Whats up with the colorbar labels?)
-set view ur; poly/title=VLOG/i=1:100/vlog xpts+xsqr,ypts+ysqr,x*x/10
-set view ll; poly/title=HLOG/i=1:100/hlog xpts+xsqr,ypts+ysqr,x*x/10
-set view lr;poly/title=BOTH/i=1:100/vlog/hlog xpts+xsqr,ypts+ysqr,x*x/10
-! These are errors - log of negative values on axis
+! intentional errors
+SET MODE ignore
+SHOW DATA noexist
+SHOW DATA 2
+SHOW DATA/ATT noexist
-set mode ignore
+SET MODE/LAST ignore
-let ybad = x/10 - 1
-let xbad = cos(x/10) + 0.8
+GO bn_reset
+cancel mode verify
+GO bn_bin_regrid
+! bin regridding tests
-can view
-polygon/i=1:100/nolab xbad+xsqr,ybad+ysqr,x*x/10
+go bn_bin_regrid.sub X
+! Tests of @BIN and @NBIN regridding transforms
-poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
-poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/X=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/X irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _X[GX=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _X[GX=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+ X: 0.5 to 5.5
+ Column 1: DEST is _X[GX=DCOARSE]
+ Column 2: VAR[G=1 delta on X at AVE] is _X[GX=IRR] (regrid: 1 delta on X at AVE)
+ Column 3: VAR[G=1 delta on X at BIN] is _X[GX=IRR] (regrid: 1 delta on X at BIN)
+ Column 4: VAR[G=1 delta on X at NBIN] is _X[GX=IRR] (regrid: 1 delta on X at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.177778 1.150000 2.000000
+2 / 2: 2.000000 1.545000 .... 0.000000
+3 / 3: 3.000000 3.500000 .... 0.000000
+4 / 4: 4.000000 3.980000 3.500000 1.000000
+5 / 5: 5.000000 4.838462 4.850000 2.000000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _X[gX=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _X[GX=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+ X: 0.5 to 5.5
+ Column 1: DEST is _X[GX=DCOARSE]
+ Column 2: VAR[G=1 delta on X at AVE] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at AVE)
+ Column 3: VAR[G=1 delta on X at BIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at BIN)
+ Column 4: VAR[G=1 delta on X at NBIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.955556 1.650000 2.000000
+2 / 2: 2.000000 2.200000 .... 0.000000
+3 / 3: 3.000000 .... .... 0.000000
+4 / 4: 4.000000 .... .... 0.000000
+5 / 5: 5.000000 5.000000 5.000000 1.000000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GX=dcoarse]
+ X: 0.5 to 5.5
+ Column 1: DEST is _X[GX=DCOARSE]
+ Column 2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
+ DEST VAR
+1 / 1: 1.000000 ....
+2 / 2: 2.000000 ....
+3 / 3: 3.000000 ....
+4 / 4: 4.000000 ....
+5 / 5: 5.000000 5.000000
+
+go bn_bin_regrid.sub Y
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Y=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Y irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Y[GY=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Y[GY=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+ Y: 0.5 to 5.5
+ Column 1: DEST is _Y[GY=DCOARSE]
+ Column 2: VAR[G=1 delta on Y at AVE] is _Y[GY=IRR] (regrid: 1 delta on Y at AVE)
+ Column 3: VAR[G=1 delta on Y at BIN] is _Y[GY=IRR] (regrid: 1 delta on Y at BIN)
+ Column 4: VAR[G=1 delta on Y at NBIN] is _Y[GY=IRR] (regrid: 1 delta on Y at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.177778 1.150000 2.000000
+2 / 2: 2.000000 1.545000 .... 0.000000
+3 / 3: 3.000000 3.500000 .... 0.000000
+4 / 4: 4.000000 3.980000 3.500000 1.000000
+5 / 5: 5.000000 4.838462 4.850000 2.000000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Y[gY=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Y[GY=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+ Y: 0.5 to 5.5
+ Column 1: DEST is _Y[GY=DCOARSE]
+ Column 2: VAR[G=1 delta on Y at AVE] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at AVE)
+ Column 3: VAR[G=1 delta on Y at BIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at BIN)
+ Column 4: VAR[G=1 delta on Y at NBIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.955556 1.650000 2.000000
+2 / 2: 2.000000 2.200000 .... 0.000000
+3 / 3: 3.000000 .... .... 0.000000
+4 / 4: 4.000000 .... .... 0.000000
+5 / 5: 5.000000 5.000000 5.000000 1.000000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GY=dcoarse]
+ Y: 0.5 to 5.5
+ Column 1: DEST is _Y[GY=DCOARSE]
+ Column 2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
+ DEST VAR
+1 / 1: 1.000000 ....
+2 / 2: 2.000000 ....
+3 / 3: 3.000000 ....
+4 / 4: 4.000000 ....
+5 / 5: 5.000000 5.000000
+
+go bn_bin_regrid.sub Z
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Z=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Z irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Z[GZ=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Z[GZ=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+ Z: 0.5 to 5.5
+ Column 1: DEST is _Z[GZ=DCOARSE]
+ Column 2: VAR[G=1 delta on Z at AVE] is _Z[GZ=IRR] (regrid: 1 delta on Z at AVE)
+ Column 3: VAR[G=1 delta on Z at BIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at BIN)
+ Column 4: VAR[G=1 delta on Z at NBIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.177778 1.150000 2.000000
+2 / 2: 2.000000 1.545000 .... 0.000000
+3 / 3: 3.000000 3.500000 .... 0.000000
+4 / 4: 4.000000 3.980000 3.500000 1.000000
+5 / 5: 5.000000 4.838462 4.850000 2.000000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Z[gZ=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Z[GZ=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+ Z: 0.5 to 5.5
+ Column 1: DEST is _Z[GZ=DCOARSE]
+ Column 2: VAR[G=1 delta on Z at AVE] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at AVE)
+ Column 3: VAR[G=1 delta on Z at BIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at BIN)
+ Column 4: VAR[G=1 delta on Z at NBIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.955556 1.650000 2.000000
+2 / 2: 2.000000 2.200000 .... 0.000000
+3 / 3: 3.000000 .... .... 0.000000
+4 / 4: 4.000000 .... .... 0.000000
+5 / 5: 5.000000 5.000000 5.000000 1.000000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GZ=dcoarse]
+ Z: 0.5 to 5.5
+ Column 1: DEST is _Z[GZ=DCOARSE]
+ Column 2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
+ DEST VAR
+1 / 1: 1.000000 ....
+2 / 2: 2.000000 ....
+3 / 3: 3.000000 ....
+4 / 4: 4.000000 ....
+5 / 5: 5.000000 5.000000
+
+go bn_bin_regrid.sub T
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/T=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/T irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _T[GT=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _T[GT=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+ T: 0.5 to 5.5
+ Column 1: DEST is _T[GT=DCOARSE]
+ Column 2: VAR[G=1 delta on T at AVE] is _T[GT=IRR] (regrid: 1 delta on T at AVE)
+ Column 3: VAR[G=1 delta on T at BIN] is _T[GT=IRR] (regrid: 1 delta on T at BIN)
+ Column 4: VAR[G=1 delta on T at NBIN] is _T[GT=IRR] (regrid: 1 delta on T at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.177778 1.150000 2.000000
+2 / 2: 2.000000 1.545000 .... 0.000000
+3 / 3: 3.000000 3.500000 .... 0.000000
+4 / 4: 4.000000 3.980000 3.500000 1.000000
+5 / 5: 5.000000 4.838462 4.850000 2.000000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _T[gT=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _T[GT=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+ T: 0.5 to 5.5
+ Column 1: DEST is _T[GT=DCOARSE]
+ Column 2: VAR[G=1 delta on T at AVE] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at AVE)
+ Column 3: VAR[G=1 delta on T at BIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at BIN)
+ Column 4: VAR[G=1 delta on T at NBIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.955556 1.650000 2.000000
+2 / 2: 2.000000 2.200000 .... 0.000000
+3 / 3: 3.000000 .... .... 0.000000
+4 / 4: 4.000000 .... .... 0.000000
+5 / 5: 5.000000 5.000000 5.000000 1.000000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GT=dcoarse]
+ T: 0.5 to 5.5
+ Column 1: DEST is _T[GT=DCOARSE]
+ Column 2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
+ DEST VAR
+1 / 1: 1.000000 ....
+2 / 2: 2.000000 ....
+3 / 3: 3.000000 ....
+4 / 4: 4.000000 ....
+5 / 5: 5.000000 5.000000
+
+go bn_bin_regrid.sub E
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/E=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/E irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _E[GE=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _E[GE=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+ E: 0.5 to 5.5
+ Column 1: DEST is _E[GE=DCOARSE]
+ Column 2: VAR[G=1 delta on E at AVE] is _E[GE=IRR] (regrid: 1 delta on E at AVE)
+ Column 3: VAR[G=1 delta on E at BIN] is _E[GE=IRR] (regrid: 1 delta on E at BIN)
+ Column 4: VAR[G=1 delta on E at NBIN] is _E[GE=IRR] (regrid: 1 delta on E at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.177778 1.150000 2.000000
+2 / 2: 2.000000 1.545000 .... 0.000000
+3 / 3: 3.000000 3.500000 .... 0.000000
+4 / 4: 4.000000 3.980000 3.500000 1.000000
+5 / 5: 5.000000 4.838462 4.850000 2.000000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _E[gE=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _E[GE=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+ E: 0.5 to 5.5
+ Column 1: DEST is _E[GE=DCOARSE]
+ Column 2: VAR[G=1 delta on E at AVE] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at AVE)
+ Column 3: VAR[G=1 delta on E at BIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at BIN)
+ Column 4: VAR[G=1 delta on E at NBIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.955556 1.650000 2.000000
+2 / 2: 2.000000 2.200000 .... 0.000000
+3 / 3: 3.000000 .... .... 0.000000
+4 / 4: 4.000000 .... .... 0.000000
+5 / 5: 5.000000 5.000000 5.000000 1.000000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GE=dcoarse]
+ E: 0.5 to 5.5
+ Column 1: DEST is _E[GE=DCOARSE]
+ Column 2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
+ DEST VAR
+1 / 1: 1.000000 ....
+2 / 2: 2.000000 ....
+3 / 3: 3.000000 ....
+4 / 4: 4.000000 ....
+5 / 5: 5.000000 5.000000
+
+go bn_bin_regrid.sub F
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/F=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/F irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _F[GF=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _F[GF=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+ F: 0.5 to 5.5
+ Column 1: DEST is _F[GF=DCOARSE]
+ Column 2: VAR[G=1 delta on F at AVE] is _F[GF=IRR] (regrid: 1 delta on F at AVE)
+ Column 3: VAR[G=1 delta on F at BIN] is _F[GF=IRR] (regrid: 1 delta on F at BIN)
+ Column 4: VAR[G=1 delta on F at NBIN] is _F[GF=IRR] (regrid: 1 delta on F at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.177778 1.150000 2.000000
+2 / 2: 2.000000 1.545000 .... 0.000000
+3 / 3: 3.000000 3.500000 .... 0.000000
+4 / 4: 4.000000 3.980000 3.500000 1.000000
+5 / 5: 5.000000 4.838462 4.850000 2.000000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _F[gF=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _F[GF=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+ F: 0.5 to 5.5
+ Column 1: DEST is _F[GF=DCOARSE]
+ Column 2: VAR[G=1 delta on F at AVE] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at AVE)
+ Column 3: VAR[G=1 delta on F at BIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at BIN)
+ Column 4: VAR[G=1 delta on F at NBIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.955556 1.650000 2.000000
+2 / 2: 2.000000 2.200000 .... 0.000000
+3 / 3: 3.000000 .... .... 0.000000
+4 / 4: 4.000000 .... .... 0.000000
+5 / 5: 5.000000 5.000000 5.000000 1.000000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GF=dcoarse]
+ F: 0.5 to 5.5
+ Column 1: DEST is _F[GF=DCOARSE]
+ Column 2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
+ DEST VAR
+1 / 1: 1.000000 ....
+2 / 2: 2.000000 ....
+3 / 3: 3.000000 ....
+4 / 4: 4.000000 ....
+5 / 5: 5.000000 5.000000
-set mode/last ignore
! *********** Always do a bn_reset ***********
! *********** make sure things clean up well **
@@ -78647,9 +86831,9 @@ yes? ! run bn_all_ef tests
yes?
yes? GO bn_all_ef
NOAA/PMEL TMAP
- FERRET v6.93
- Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
- 29-Oct-14 15:57
+ FERRET v6.951 (beta)
+ Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
+ 17-Nov-15 09:28
SET MODE VERIFY
! bn_all_ef.jnl
@@ -78790,23 +86974,23 @@ list a - sst[l=@ave]
SUBSET : 15 points (LONGITUDE)
LATITUDE : 1S
TIME : 01-JAN 00:45 to 01-APR 08:12
- 1S
- 45
- 151E / 66: 0.0000
- 153E / 67: 0.0000
- 155E / 68: 0.0000
- 157E / 69: 0.0000
- 159E / 70: 0.0000
- 161E / 71: 0.0000
- 163E / 72: 0.0000
- 165E / 73: 0.0000
- 167E / 74: 0.0000
- 169E / 75: 0.0000
- 171E / 76: 0.0000
- 173E / 77: 0.0000
- 175E / 78: 0.0000
- 177E / 79: 0.0000
- 179E / 80: 0.0000
+ 1S
+ 45
+ 151E / 66: 3.553E-15
+ 153E / 67: 0.000E+00
+ 155E / 68: 3.553E-15
+ 157E / 69: 0.000E+00
+ 159E / 70: 3.553E-15
+ 161E / 71: 3.553E-15
+ 163E / 72: 3.553E-15
+ 165E / 73: 0.000E+00
+ 167E / 74: 3.553E-15
+ 169E / 75: 3.553E-15
+ 171E / 76: -3.553E-15
+ 173E / 77: 3.553E-15
+ 175E / 78: 0.000E+00
+ 177E / 79: 3.553E-15
+ 179E / 80: 3.553E-15
can region
let a = x[i=1:9,k=1:5] + t[l=1:5]
@@ -79503,7 +87687,7 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79528,7 +87712,7 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79552,7 +87736,7 @@ variables:
B:long_name = "\"one line of text\"" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79591,7 +87775,7 @@ variables:
D:history = "From test_string" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79626,7 +87810,7 @@ variables:
B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79667,7 +87851,7 @@ variables:
V:long_name = "T[GT=MONTH_IRREG]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79724,7 +87908,7 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79781,7 +87965,7 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79836,7 +88020,7 @@ variables:
T2:long_name = "Z[GZ=ZIRR]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79884,7 +88068,7 @@ variables:
V:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79978,7 +88162,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80048,7 +88232,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80099,7 +88283,7 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80174,7 +88358,7 @@ variables:
A:long_name = "T[GT=TIME]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80201,7 +88385,7 @@ variables:
X_:long_name_mod = "axis ABSTRACT" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
data:
@@ -80225,7 +88409,7 @@ variables:
A:history = "From x" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
:title = "a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short." ;
data:
@@ -80252,11 +88436,11 @@ variables:
A:history = "From t0_cdc" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_long_revision_num.jnl --- history attribute
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
bn_bounds_defineax.jnl --- N+1 def of bounds.
netcdf irrxzt {
dimensions:
@@ -80287,7 +88471,7 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80359,7 +88543,7 @@ variables:
VAR_B:long_name = "my strings" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80403,7 +88587,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80445,7 +88629,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80553,7 +88737,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -80594,7 +88778,7 @@ variables:
Elev:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -80617,7 +88801,7 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80643,7 +88827,7 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80663,7 +88847,7 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80684,7 +88868,7 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80727,7 +88911,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -80767,7 +88951,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -80805,7 +88989,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -80834,7 +89018,7 @@ variables:
A3:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80867,7 +89051,7 @@ variables:
V4:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80893,7 +89077,7 @@ variables:
A:four = "theory" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80939,7 +89123,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
:simulation = "K-Bay OAR3d model (200m)" ;
:start_date = "980105000000" ;
@@ -81046,7 +89230,7 @@ variables:
TEMP:units = "deg. C" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
:dt_internal = 15. ;
}
@@ -81088,7 +89272,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81171,7 +89355,7 @@ variables:
RIGUE:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81208,7 +89392,7 @@ variables:
B:long_name = "hello" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81248,7 +89432,7 @@ variables:
VWND:units = "M/S" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81299,7 +89483,7 @@ variables:
T2:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81358,7 +89542,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81403,7 +89587,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81446,7 +89630,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81481,7 +89665,7 @@ variables:
TEMP:units = "DEG C" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81515,7 +89699,7 @@ variables:
TWO:history = "From levitus_climatology" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 27 attributes of user-defined axes
@@ -81545,7 +89729,7 @@ variables:
AXY:long_name = "RESHAPE (A,RVAR)" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 28 Define a new global attribute
@@ -81574,7 +89758,7 @@ variables:
BROILED:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
:glob = "Global attribute" ;
:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -81635,7 +89819,7 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81680,7 +89864,7 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81699,7 +89883,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81729,7 +89913,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81759,7 +89943,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81812,7 +89996,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81854,7 +90038,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81872,7 +90056,7 @@ variables:
V:long_name = "Y[GY=YAXIS]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
err611_set_var_ez.jnl ---
@@ -81891,7 +90075,7 @@ variables:
MY_ASC:history = "From dat.dat" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81909,7 +90093,7 @@ variables:
MY_UNF:history = "From unf.dat" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -81926,7 +90110,7 @@ variables:
A:long_name = "{1.1,2.2,3.3}" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81947,7 +90131,7 @@ variables:
A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -82010,7 +90194,7 @@ variables:
newvar:history = "From a" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
@@ -82037,7 +90221,7 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -82064,7 +90248,7 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
@@ -82130,7 +90314,7 @@ variables:
ZUP:long_name = "Z[GZ=ZAXUP]" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -82162,7 +90346,7 @@ variables:
Y_:long_name_mod = "axis YFIFTEEN" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -82195,8 +90379,84 @@ variables:
XYTVAR:history = "From bn_strides" ;
// global attributes:
- :history = "FERRET V6.93 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
+ :Conventions = "CF-1.6" ;
+}
+netcdf a {
+dimensions:
+ TIME16 = 8 ;
+ reftime = 3 ;
+ bnds = 2 ;
+variables:
+ double reftime(reftime) ;
+ reftime:units = "calendar month since 2014-11-01t00:00:00z" ;
+ reftime:long_name = "GRIB reference time" ;
+ reftime:calendar = "proleptic_gregorian" ;
+ reftime:point_spacing = "uneven" ;
+ reftime:axis = "F" ;
+ reftime:bounds = "reftime_bnds" ;
+ double reftime_bnds(reftime, bnds) ;
+ double time(reftime, TIME16) ;
+ time:units = "calendar Month since 2014-11-01T00:00:00Z" ;
+ time:long_name = "GRIB forecast or observation time" ;
+ time:calendar = "proleptic_gregorian" ;
+ time:bounds = "time_bounds" ;
+ time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
+
+// global attributes:
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
+ :Conventions = "CF-1.6" ;
+data:
+
+ reftime = 0, 1, 2.03333333333333 ;
+
+ reftime_bnds =
+ -0.5, 0.5,
+ 0.5, 1.51666666666667,
+ 1.51666666666667, 2.55 ;
+
+ time =
+ 1, 2, 3, 4, 5, 6, 7, 8,
+ 2, 3, 4, 5, 6, 7, 8, 9,
+ 3, 4, 5, 6, 7, 8, 9, 10 ;
+}
+netcdf a {
+dimensions:
+ time = 8 ;
+ reftime = 3 ;
+ bnds = 2 ;
+variables:
+ double reftime(reftime) ;
+ reftime:units = "calendar month since 2014-11-01t00:00:00z" ;
+ reftime:long_name = "GRIB reference time" ;
+ reftime:calendar = "proleptic_gregorian" ;
+ reftime:point_spacing = "uneven" ;
+ reftime:axis = "F" ;
+ reftime:bounds = "reftime_bnds" ;
+ double reftime_bnds(reftime, bnds) ;
+ double time(reftime, time) ;
+ time:units = "calendar Month since 2014-11-01T00:00:00Z" ;
+ time:long_name = "GRIB forecast or observation time" ;
+ time:calendar = "proleptic_gregorian" ;
+ time:bounds = "time_bounds" ;
+ time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
+
+// global attributes:
+ :history = "FERRET V6.951 (beta) 17-Nov-15" ;
:Conventions = "CF-1.6" ;
+data:
+
+ reftime = 0, 1, 2.03333333333333 ;
+
+ reftime_bnds =
+ -0.5, 0.5,
+ 0.5, 1.51666666666667,
+ 1.51666666666667, 2.55 ;
+
+ time =
+ 1, 2, 3, 4, 5, 6, 7, 8,
+ 2, 3, 4, 5, 6, 7, 8, 9,
+ 3, 4, 5, 6, 7, 8, 9, 10 ;
}
-----
end of ncdump output
@@ -82209,49 +90469,49 @@ yes?
yes?
yes? GO bn_startupfile
NOAA/PMEL TMAP
- FERRET v6.93
- Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
- 29-Oct-14 15:57
+ FERRET v6.951 (beta)
+ Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
+ 17-Nov-15 09:28
CAN MODE VERIFY
Current size of FERRET memory cache: 31 MegaWords (1 word = 8 bytes)
PPL$XPIXEL = "656"
PPL$YPIXEL = "492"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5PAE 32-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.18-407.el5PAE 32-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3-rc2 of Oct 6 2014 16:16:52 $"
+NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
FERRET_MEMORY = "31"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "15:57"
-SESSION_PID = "1762"
-DELTA_CPU = "0.036993"
-CLOCK_SECS = "0.328"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "15:57:39"
+SESSION_DATE = "17-Nov-15"
+SESSION_TIME = "09:28"
+SESSION_PID = "6820"
+DELTA_CPU = "0.035993"
+CLOCK_SECS = "0.355"
+CURRENT_DATE = "17-Nov-15"
+CURRENT_TIME = "09:28:10"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
LAST_GO_FILE = "./bn_startupfile.jnl"
PPL$FORMAT = "(3F10.2)"
PPL$PLTNME = "startup_tests.plt"
-PPL$TEKNME = "/dev/tty"
-PPL$XLEN = "8.000"
-PPL$YLEN = "6.000"
-PPL$XORG = "1.200"
-PPL$YORG = "1.400"
-PPL$WIDTH = "10.20"
-PPL$HEIGHT = "8.800"
+PPL$TEKNME = "/dev/tt"
+PPL$XLEN = "8.00000"
+PPL$YLEN = "6.00000"
+PPL$XORG = "1.20000"
+PPL$YORG = "1.40000"
+PPL$WIDTH = "10.2000"
+PPL$HEIGHT = "8.80000"
PPL$LINE_COUNT = "0"
-PPL$XFACT1 = "1.000"
-PPL$XOFF1 = "0.000"
-PPL$YFACT1 = "1.000"
-PPL$YOFF1 = "0.000"
+PPL$XFACT1 = "1.000000"
+PPL$XOFF1 = "0.000000"
+PPL$YFACT1 = "1.000000"
+PPL$YOFF1 = "0.000000"
PPL$VIEW_X = "0.000"
PPL$VIEW_Y = "0.000"
PPL$VIEW_Z = "0.000"
PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "29-Oct-14:15:57"
+WIN_TITLE = "17-Nov-15:09:28"
VP_WIDTH = "10.2"
VP_HEIGHT = "8.8"
VP_SCALE = "1"
@@ -82273,7 +90533,8 @@ GO_FILE = "./bn_startupfile.jnl"
LATIT_LABEL CANCELLED 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -82292,7 +90553,8 @@ GO_FILE = "./bn_startupfile.jnl"
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
currently SET data sets:
1> ./gtbc011.cdf (default)
name title I J K L M N
@@ -82313,9 +90575,9 @@ yes?
yes?
yes? GO bn_gif
NOAA/PMEL TMAP
- FERRET v6.93
- Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
- 29-Oct-14 15:57
+ FERRET v6.951 (beta)
+ Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
+ 17-Nov-15 09:28
! bn450_gif.JNL - copied from bn450_plot.jnl
! this journal file only tests the writing of gif file in batch mode using
@@ -82532,9 +90794,9 @@ yes?
yes?
yes? GO bn_ps
NOAA/PMEL TMAP
- FERRET v6.93
- Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
- 29-Oct-14 15:57
+ FERRET v6.951 (beta)
+ Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
+ 17-Nov-15 09:28
! bn450_ps.JNL - copied from bn450_plot.jnl
! this journal file only tests the writing of ps files in batch mode using
@@ -82646,9 +90908,9 @@ yes?
yes?
yes? GO bn_batch_metafile
NOAA/PMEL TMAP
- FERRET v6.93
- Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
- 29-Oct-14 15:57
+ FERRET v6.951 (beta)
+ Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
+ 17-Nov-15 09:28
! bn_batch_metafile.jnl
! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -82732,4 +90994,4 @@ set window/location=0.1,0.1/title="another title"
set mode/last logo
exit/command
-Ended at Wed Oct 29 15:57:41 PDT 2014
+Ended at Tue Nov 17 09:28:13 PST 2015
diff --git a/bench/ansley_official.rhel6-32_err b/bench/ansley_official.rhel6-32_err
deleted file mode 100644
index f0cef0b..0000000
--- a/bench/ansley_official.rhel6-32_err
+++ /dev/null
@@ -1,3676 +0,0 @@
-Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/v685Release/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 42809389 Nov 12 15:10 /home/users/ansley/build/v685Release/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/v685Release/FERRET/external_functions/ext_func
-Running the tests of external functions y
-Benchmark run by ansley
-Note: v6.85 on flat 32-bit
-ncdump output will be in all_ncdump.out, and appended to this log file
-***** Restricting Ferret paths to bench directory *****
-FER_DAT=.
-FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/tmap/ferret/linux/fer_dsets
-FER_DESCR=.
-FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func
-FER_FONTS=/home/users/tmap/ferret/rhel6-x86_64-linux/ppl/fonts
-FER_GO=. /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
-FER_GRIDS=.
-FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
-FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
-FER_WEB_BROWSER=firefox
-PWD=/home/users/ansley/build/v685Release/FERRET/bench
-Beginning at Tue Nov 12 15:12:09 PST 2013
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- SET EXPRESSION has not been given or implied
- SET EXPRESSION has not been given or implied
- **ERROR: unknown command qualifier: help
-MESSAGE/CONTINUE /help
- **ERROR: unknown command: that
-that
- **ERROR: command syntax: \!
-\! ignore (err cuz bang gets escaped)
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: Value needed for argument 3 in command
- GO bn_dollar hello
-message/cont $3
- **ERROR: my error message
-message/cont $3"<my error message"
- **ERROR: my error message
-message/cont $1"|xxxxx|goodbye<my error message"
- **ERROR: invalid command: Valid value needed for argument $1
-message/cont $1"greetings|xxxxx|goodbye"
- *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
- **ERROR: my error message
-message/cont $3"|hello|goodbye<my error message"
- **ERROR: invalid command: Valid value needed for argument $3
-message/cont $3">greetings|hello|goodbye"
- *** NOTE: Valid argument $3 choices are: hello|goodbye
- **ERROR: my error message
-message/cont $3">greetings|hello|goodbye<my error message"
- **ERROR: my error message
-message/cont $3">greetings|hello>replacement text|goodbye<my error message"
- **ERROR: command syntax: empty argument replacement string: $3""
-message/cont $3""
- **ERROR: command syntax: empty text string provided with ">": <
-message/cont $3"<"
- **ERROR: invalid command: Valid value needed for argument $3
-message/cont $3"||"
- *** NOTE: Valid argument $3 choices are: |
- **ERROR: invalid command: Valid value needed for argument $3
-message/cont $3"|>|"
- *** NOTE: Valid argument $3 choices are: >|
- **ERROR: command syntax: empty text string provided with ">": >|
-message/cont $3">|"
- **ERROR: command syntax: empty text string provided with ">": |<
-message/cont $3"|<"
- **ERROR: invalid command: Valid value needed for argument $3
-message/cont $3"|>"
- *** NOTE: Valid argument $3 choices are: >
- **ERROR: command syntax: arg number not in 1-99 range: $100
-say $100
- **ERROR: command syntax: arg number not in 1-99 range: $100)
-say ($100)
- **ERROR: invalid command: Value needed for argument 10 in command
- GO bn_dollar hello
-say ($10)0
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: unpaired grave accents: message/continue "2+2=`2+2"
-message/continue "2+2=`2+2"
- **ERROR: variable unknown or not in data set: GARBAGE
-message/continue "2+2=`garbage`"
- **ERROR: invalid command: grave accent doesnt evaluate to scalar
- I[i=3:5]
-message/continue "3 numbers: `I[i=3:5]`"
- **ERROR: command syntax: options: "P=prec","B=bad","W=width","ZW=zero-width" or "R=return-item"
- message/continue "1/3=`1/3BAD=-999`"
-message/continue "1/3=`1/3BAD=-999`"
- **ERROR: command syntax: options: "P=prec","B=bad","W=width","ZW=zero-width" or "R=return-item"
- message/continue "1/3=`1/3,qBAD=-999`"
-message/continue "1/3=`1/3,qBAD=-999`"
- **ERROR: command syntax: unpaired quotation marks, grave accent or brackets
-MESSAGE/CONTINUE \`2+2`
- **ERROR: command syntax: unpaired quotation marks, grave accent or brackets
-MESSAGE/CONTINUE `2+2\`
- **ERROR: command syntax: 2+2\
- illegal character: \
-MESSAGE/CONTINUE `2+2\`+1`
- **ERROR: command syntax: unpaired quotation marks, grave accent or brackets
-MESSAGE/CONTINUE \`2+2`+1\`
- **ERROR: command syntax: 1*/3
- * before / is illegal
-MESSAGE/CONTINUE `1*/3`
- **ERROR: command syntax: sst*/3
- * before / is illegal
-MESSAGE/CONTINUE `sst*/3,return=lunits`
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
- dsetnum,dsetpath,dsettitle,*size,*start,*end,
- *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
- sst,return=Xsize
-MESSAGE/CONTINUE `sst,return=Xsize`
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
- dsetnum,dsetpath,dsettitle,*size,*start,*end,
- *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
- sst,return=trash
-MESSAGE/CONTINUE `sst,return=trash`
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: unknown data set: NOEXIST
-DEFINE VARIABLE/d=noexist a = b
- **ERROR: variable unknown or not in data set: AIRT[D=GT4D011]
-list/l=1/x=180/y=0 airt[d=gt4d011]
- **ERROR: invalid command: CANCEL what?
-can var
- LISTing to file v12file.nc
- LISTing to file v1file.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: ELSE can only be used between IF and ENDIF
-else
- **ERROR: invalid command: ENDIF can only be used in an IF clause
-endif
- **ERROR: invalid command: ELIF can only be used between IF and ENDIF
-elif
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
- Cannot use multiple IFs in an expression
-LIST/ORDER=X IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
- **ERROR: command syntax: IF I LT 5 THEN I ELSE -9
- ELSE before - is illegal
- negative constants need to be enclosed in parentheses
-DEFINE VARIABLE A = IF I LT 5 THEN I ELSE -9
- **ERROR: variable unknown or not in data set: A1
-load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
- **ERROR: inconsistent sizes of data regions: X axis
- X[I=6:9] has 4 points (I=6:9)
- expression has 5 points (I=1:5)
-LIST X[I=1:5] - X[I=6:9]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file WV.J34K56L7
- LISTing to file test.dat
- LISTing to file test.dat
- LISTing to file test.unf
- **ERROR: invalid subcommand: File type no longer supported TMA
-LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XFINE
-Replacing definition of axis XCOARSE
-Replacing definition of axis YFINE
-Replacing definition of axis YCOARSE
-Replacing definition of grid G24
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test.unf
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
-plot/i=1:10/j=1:20/nolabel i+j
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i,i+j"
-plot/i=1:10/j=1:20/nolabel i,i+j
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j,i"
-plot/i=1:10/j=1:20/nolabel i+j,i
- **ERROR: dimensions improperly specified: differing axes:
- first line is on Y axis
- line 2 is on X axis
-plot/i=1:10/j=1:20/nolabel j,i
- **ERROR: dimensions improperly specified: unequal line lengths:
- First expression has 20 points.
- Expression 2 has 10 points:
- "plot/i=1:10/j=1:20/vs/line/nolabel j,i"
-plot/i=1:10/j=1:20/vs/line/nolabel j,i
- **ERROR: dimensions improperly specified: must be a 2D region
- contour/i=1:10/j=1:20/nolabel i
-contour/i=1:10/j=1:20/nolabel i
- **ERROR: invalid command: can only CONTOUR single fields
- Use /OVERLAY for multiple variables
-contour/i=1:10/j=1:20/nolabel i/j,j/i
- **ERROR: invalid command: VECTOR requires paired components
-vector/i=1:10/j=1:20/nolabel i/j
- **ERROR: invalid command: VECTOR requires paired components
-vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
-Re-defining viewport LM6
-Re-defining viewport UM6
- Using every 2th vector in the X direction
- Using every 2th vector in the Y direction
-Re-defining viewport LM6
- Using every 2th vector in the X direction
- Using every 2th vector in the Y direction
- Using every 2th vector in the X direction
- Using every 2th vector in the Y direction
-Re-defining viewport UM6
- Using every 2th vector in the X direction
- Using every 2th vector in the Y direction
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
- **ERROR: invalid command: color=noexist
- Colors are Black,Red,Green,Blue,LightBlue,Purple, and White
-plot/over/i=1:10/color=noexist i
- **ERROR: value out of legal range: thick=4
- Legal range is 1 to 3
-plot/over/i=1:10/thick=4 i
- **ERROR: value out of legal range: size=-1
- Symbol size must be positive
-plot/over/i=1:10/size=-1 i
- Using every 2th vector in the Y direction
- **ERROR: invalid command: color=noexist
- Colors are Black,Red,Green,Blue,LightBlue,Purple, and White
-cont/over/i=1:10/color=noexist i
- **ERROR: unknown command qualifier: thick=4
-cont/over/i=1:10/thick=4 i
- **ERROR: value out of legal range: sigdig=-1
- Value must be positive
-cont/over/i=1:10/sigdig=-1 i
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis LON_FIELD_I_AXIS
-Replacing definition of axis LON_FIELD_J_AXIS
-Replacing definition of axis LAT_FIELD_I_AXIS
-Replacing definition of axis LAT_FIELD_J_AXIS
- **ERROR: inconsistent sizes of data regions: Y coord field lies
- in different plane from data to be plotted
-shade/nolabel sst, x_page, y_page
- **ERROR: all data have same value: X coordinate field
-shade/nolabel sst, 0*x_page, y_page
- **ERROR: all data have same value: Y coordinate field
-shade/nolabel sst, x_page, 0*y_page
- **ERROR: inconsistent sizes of data regions: Y axis of X position array
-shade/nolabel sst, x_page[j=1:12], y_page
- **ERROR: inconsistent sizes of data regions: Y axis of X position array
-shade/nolabel sst, x_page[j=1:12], y_page
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: illegal name: TEST*
-define symbol test* = hello
- **ERROR: invalid command: Value needed for argument 5 in command
- GO bn_symbols
-define symbol t$5 = hi
- **ERROR: error message
-message/continue ($test2"<error message")
- **ERROR: invalid command: Valid value needed for symbol test2
-message/continue ($test2"|hello|bye|")
- *** NOTE: Valid symbol test2 choices are: hello|bye|
- **ERROR: error message
-message/continue ($test2"|hello|bye|<error message")
- **ERROR: invalid command: Valid value needed for symbol t2
-message/continue ($t2"|solong>really hello|bye|")
- *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: unknown defining grid: GX=NOEXIST
-list temp[gx=noexist]
- **ERROR: command syntax: P=NOEXIST
-list temp[gx=u,p=noexist]
- **ERROR: command syntax: used GX=lo:hi:delta with X=lo:hi (ditto for Y,Z, or T)
- X=160E:160W
-list temp[gx=130e:80w:10,x=160e:160w]
- **ERROR: command syntax: used GX=lo:hi:delta with X=lo:hi (ditto for Y,Z, or T)
- I=2:5
-list temp[gx=130e:80w:10,i=2:5]
- **ERROR: command syntax: used GX=lo:hi:delta with X=lo:hi (ditto for Y,Z, or T)
- GX=130E:80W:10
-list temp[i=2:5,gx=130e:80w:10]
- **ERROR: command syntax: GX=lo:hi:delta with no delta (or ditto for Y,Z, or T)
- GX=130E:80W
-list temp[gx=130e:80w]
- **ERROR: variable unknown or not in data set: NOEXIST
-list temp[gx=u] + noexist
- **ERROR: illegal limits: TEMP on grid (G003) does not exist at K=30
- Axis extremes are K=1:27
-list temp[gx=u,k=30]
- **ERROR: illegal limits: TEMP does not contain K=20
- Data are available in K = 1:2
-list temp[gx=u,k=20]
- **ERROR: regridding: Axis orientation not matching request:GX=PSYU
-list temp[gx=psyu]
- **ERROR: regridding: Axis orientation not matching request:GX=PSYT
-list/i=3:6 X[gx=PSYT]
- **ERROR: unknown defining grid: GX=NOEXIST
-list tu
- **ERROR: command syntax: P=NOEXIST
-list tu
- **ERROR: variable unknown or not in data set: NOEXIST
-list tu
- **ERROR: illegal limits: TEMP on grid (G003) does not exist at K=30
- Axis extremes are K=1:27
-list tu
- **ERROR: illegal limits: TEMP does not contain K=20
- Data are available in K = 1:2
-list tu
- **ERROR: regridding: Axis orientation not matching request:GX=PSYU
-list tu
- Cached data cleared from memory
- **ERROR: request exceeds memory setting: 25 Mwords were requested.
-list temp[gz=z999999,z=5:15]
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
- Cached data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
- **ERROR: invalid command: non-positive delta value: X[I=1:5:-1]
-list x[i=1:5:-1]
- **ERROR: invalid command: non-positive delta value: X[I=1:5:0]
-list x[i=1:5:0]
- **ERROR: invalid command: non-positive delta value: X[X=1:5:-1]
-list x[x=1:5:-1]
- **ERROR: invalid command: non-positive delta value: X[X=1:5:0]
-list x[x=1:5:0]
- **ERROR: illegal limits: A is not in the range I=101:105
- Axis extremes are I=1:11
-list a
- **ERROR: illegal limits: A is not in the range J=46:50
- Axis extremes are J=1:7
-list a
- **ERROR: illegal limits: A is not in the range I=101:105
- Axis extremes are I=1:8
-list a
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test0a.cdf
- LISTing to file test0b.cdf
- LISTing to file test0c.cdf
- LISTing to file test0d.cdf
- LISTing to file test0e.cdf
- LISTing to file test0f.cdf
- LISTing to file test0g.cdf
- LISTing to file test0h.cdf
- LISTing to file test0i.cdf
- LISTing to file test0j.cdf
- LISTing to file test0k.cdf
- LISTing to file test0l.cdf
- LISTing to file test0m.cdf
- LISTing to file test0n.cdf
- LISTing to file test0o.cdf
- LISTing to file test0p.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
- LISTing to file test2.cdf
- LISTing to file FL.cdf
- LISTing to file FTLON.cdf
- **ERROR: invalid command: /CLOBBER not specified and file exists: test_abs.cdf
-list/format=cdf/l=1:10/file=test_abs.cdf l
- LISTing to file test_abs.cdf
- **TMAP ERR: Requested data range is outside of data set limits
- inconsistent I axis length for IL
-list/format=cdf/i=5:15/l=5:10/append/file=test_abs.cdf il
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- **TMAP ERR: attempt to redefine line
- # of dims in variable IJL2 is inconsist. w/ CDF file
-list/format=cdf/append/file=test_abs.cdf ijl2
- **ERROR: variable unknown or not in data set: IJKL[K=@AVE]
-list/format=cdf/append/file=test_abs.cdf ijkl[k=@ave]
- LISTing to file test_abs.cdf
- **TMAP ERR: error in line definition
- disordered output coordinate value: 363 Axis: TCENTURY
-list/format=cdf/l=13/append/file=test_abs.cdf l1
- LISTing to file FI.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil0.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: regridding: no target grid specified
-load temp[g=@lin]
- **ERROR: regridding: no target grid specified
-load temp[gx=@ave]
- **ERROR: regridding: G=W - more than 1 target grid
-load temp[g=u,g=w]
- **ERROR: unknown defining grid: G=X --> g=user-or-pseudo-var not allowed
-load temp[g=x]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: xlimits
-plot/xlimits i
- **ERROR: command syntax: xlimits= i
-plot/xlimits= i
- **ERROR: command syntax: xlimits=text
-plot/xlimits=text i
- **ERROR: command syntax: xlimits=1
-plot/xlimits=1 i
- **ERROR: command syntax: i
-plot/xlimits=1: i
- **ERROR: command syntax: xlimits=1:: i
-plot/xlimits=1:: i
- **ERROR: command syntax: i
-plot/xlimits=1:2: i
- **ERROR: invalid command: Must give a range: xlimits=5:5
-plot/xlimits=5:5 i
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test_perm10.dat
- LISTing to file test_perm24.dat
- LISTing to file test_perm48.dat
- LISTing to file test_perm48_10.dat
-Replacing definition of grid G12
-Replacing definition of grid G24
- LISTing to file test_stream.unf
- LISTing to file test_stream.unf
- LISTing to file test_stream.unf
- LISTing to file test_stream.unf
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **TMAP ERR: Attempt to access unsupported feature
- Descriptor requests delta of 0, please use 1
- Data set: ./coads_clim_bad_delta.des
-set data coads_clim_bad_delta.des
- **TMAP ERR: error in line definition
- A gap or overlap exists in time axis
-set data coads_clim_step_order.des
- **TMAP ERR: non-existent or not on line
- coads_clim.001b
-list sst
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test.cdf
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Cached data cleared from memory
- **ERROR: command syntax: v2-and-minus
- - before and is illegal
-list v2-and-minus
- **ERROR: dimensions improperly specified: 99999999 words were requested.
-list x
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: dimensions improperly specified: 99999999 words were requested.
-list i
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: variable unknown or not in data set: 'i'
-list 'i'
- **ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
- - before and is illegal
-list v2-and-minus[i=5:15 at ddc]
- Cached data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file permutedBinaryTest.dat
- LISTing to file junk.dat
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: A negative number of words were requested.
-load num
- *** NOTE: The current grid is most likely too large
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 1000 Mwords were requested.
-load num
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- **TMAP ERR: non-existent or not on line
- NoSuchFile.dat
-SET DATA/EZ/format=stream/var=num/grid=mygrid NoSuchFile.dat
- **ERROR: Size of file ./junk.dat doesn't match size specified by variables/grid
-load num
- *** NOTE: Binary file reading: Insufficient memory reading variable 2
- **ERROR: invalid command: variable permutations only allowed for STREAM format
-SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
- **ERROR: invalid command: invalid argument for /TYPE
-SET DATA/EZ/var=num/type=i3/grid=mygrid/form=stream junk.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis XAX
-Replacing definition of axis XAX
-Replacing definition of axis XAX
- **ERROR: improper grid or axis definition: NPOINTS=1 incompatible with limits given
-define axis/x=1:5/npoints=1 xax
-Replacing definition of axis XAX
- **ERROR: improper grid or axis definition: error in start,end,delta
-define axis/x=5/npoints=1/edges xax
-Replacing definition of axis XAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
- **ERROR: improper grid or axis definition: NPOINTS=1 incompatible with limits given
-define axis/t=15-jan-1980:25-jan-1980/npoints=1/unit=days tax
-Replacing definition of axis TAX
- **ERROR: improper grid or axis definition: error in start,end,delta
-define axis/t=15-jan-1980/npoints=1/unit=days/edges tax
-Replacing definition of axis TAX
-Replacing definition of axis XAX
-Replacing definition of axis XAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax/edges {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax/edges {6,6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis XAX
-Replacing definition of axis XAX2
- *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
-Replacing definition of axis XAX2
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TCAL
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file out.cdf
- LISTing to file out.cdf
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: noname(i)
- unknown function "noname"
-stat i, noname(i)
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- **ERROR: invalid command: delta values may only modify variable names
-LIST/i=2:4:2 VAR
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of grid GX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis YAX
-Replacing definition of grid GG2
- **ERROR: unknown defining grid: G=NO_EXIST
-load/x=160e/y=5s temp[d=2,k=1,g=no_exist]
- **ERROR: unknown defining grid: GX=A[D=1]
-load/x=160e/y=5s v2
-Replacing definition of axis Y1
-Replacing definition of axis Y2
-Replacing definition of grid MYGRID
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TDAYS
-Replacing definition of axis TDAYS
-Replacing definition of axis TDAYS
-Replacing definition of grid TGRID
-Replacing definition of axis TWEEKS
-Replacing definition of axis TWEEKS
-Replacing definition of axis TWEEKS
- LISTing to file calsst.cdf
-
-Bailing out of external function "ffta":
- Time axis must be a regular axis
-
-Bailing out of external function "eof_space":
- Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
-
-Bailing out of external function "eof_stat":
- Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
-
-Bailing out of external function "eof_tfunc":
- Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
-Replacing definition of grid TGRID
-Replacing definition of axis TDAYS
-Replacing definition of grid TGRID
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: dash=(1., 2.)
- DASH[=(dn1,up1,dn2,up2)] takes 4 arguments or no argument
-plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
- **ERROR: value out of legal range: dash=(-1., 2., 3., 4.)
- DASH arguments must be positive
-plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Using every 2th vector in the Y direction
- Using every 2th vector in the Y direction
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Using every 2th vector in the X direction
- Using every 2th vector in the Y direction
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis DLOG
-Replacing definition of axis DLOG
- **ERROR: value out of legal range: Limits for log axis negative or too small: -9.00 : 0.00
-plot/hlog fcn
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis DAYT
-Replacing definition of grid TGRID
- **ERROR: error in external function
-LIST vw_fft
-Replacing definition of grid TGRID
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis X10
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: illegal limits: VWND does not contain L=102:150
- Data are available in L = 1:60
-list tsorted_indices, tsorted_wnd
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: error in external function
-list/l=1:2 eofxyfcn
- **ERROR: error in external function
-list/i=1:3/j=1:3 eofstat
- **ERROR: error in external function
-list/i=1:2 eoftime
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: strindex("Ferret is fun for the whole family - real family fun")
- The strindex function has an incorrect number of arguments
-list strindex("Ferret is fun for the whole family - real family fun")
- **ERROR: command syntax: strrindex("Ferret is fun for the whole family - real family fun")
- The strrindex function has an incorrect number of arguments
-list strrindex("Ferret is fun for the whole family - real family fun")
- **ERROR: command syntax: substring("Have you fed your ferret today", 19)
- The substring function has an incorrect number of arguments
-list substring("Have you fed your ferret today", 19)
- **ERROR: command syntax: substring("Have you fed your ferret today")
- The substring function has an incorrect number of arguments
-list substring("Have you fed your ferret today")
- **ERROR: command syntax: strcat ("All work and no play")
- The strcat function has an incorrect number of arguments
-list strcat ("All work and no play")
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test_modulo.cdf
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Re-defining viewport MID
-Re-defining viewport MID2
-Re-defining viewport LLAX
-Re-defining viewport LRAX
-Re-defining viewport ULAX
-Re-defining viewport URAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: "string2"}
-list e
- **ERROR: command syntax: 5, "string2"}
-list e
- **ERROR: illegal data type (float,string,...) for operation: D
-plot d
- **ERROR: illegal data type (float,string,...) for operation: D
-define axis/x xax = d
- LISTing to file test_string.cdf
- LISTing to file test_string.cdf
- LISTing to file test_string.cdf
- LISTing to file test_string.cdf
- LISTing to file test_string.cdf
- LISTing to file test_string2.cdf
- **ERROR: invalid command: cant use this regrid transform on strings: @LIN
-list a[gx=xnrst]
- **ERROR: invalid command: cant use this regrid transform on strings: @AVE
-list a[gx=xnrst at ave]
- **ERROR: invalid command: cant use this regrid transform on strings: @VAR
-list a[gx=xnrst at var]
- **ERROR: invalid command: cant use this regrid transform on strings: @NGD
-list a[gx=xnrst at ngd]
- **ERROR: invalid command: cant use this regrid transform on strings: @MAX
-list a[gx=xnrst at max]
- **ERROR: invalid command: cant use this regrid transform on strings: @SUM
-list a[gx=xnrst at sum]
- **ERROR: invalid command: cant use this regrid transform on strings: @MOD
-list a[gx=xnrst at mod]
- LISTing to file foo.cdf
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis X1
-Replacing definition of grid G1
-Replacing definition of axis TAX
-Replacing definition of axis TAX
-Replacing definition of axis Z1
-Replacing definition of grid G1
- **TMAP ERR: syntax error in string
- Unrecognized field type: D
- Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
-SET DATA/FORM=delimited/type="d, da2,date2" bn_delimited_read_date_time.dat
- **TMAP ERR: syntax error in string
- Unrecognized field type: DATE2
- Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
-SET DATA/FORM=delimited/type="da,da, date2" bn_delimited_read_date_time.dat
- **ERROR: command syntax: ,,:
-SET DATA/EZ/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test_good_order.cdf
- LISTing to file test_bad_order.cdf
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis T2
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Re-defining viewport LL6
-Re-defining viewport UL6
-Re-defining viewport LM6
-Re-defining viewport UM6
-Re-defining viewport LR6
-Re-defining viewport UR6
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file profiles.nc
- LISTing to file profiles.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test_100x100.nc
- Cached data cleared from memory
- Cached data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of grid MYGRID
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file longax.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
-Replacing definition of axis TAX2
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file string4d.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G022)
- *** NOTE: Not deleted: XEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: XODD
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** NOTE: Axis is in use by grid JGRID
- *** NOTE: Not deleted: MONTHT
- *** NOTE: Axis is in use by grid TGRID
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: YAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAXLEVITR1_160
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: TIME5
- *** NOTE: Axis is in use by grid GLB1
- *** NOTE: Not deleted: COADSX
- *** NOTE: Axis is in use by grid GG
- *** NOTE: Not deleted: COADSY
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: YAXLEVITR1_90
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G022)
- *** NOTE: Not deleted: ZAXLEVITR1_1
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: (AX020)
- *** NOTE: Axis is in use by grid GG3
- *** NOTE: Not deleted: XEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: XODD
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** NOTE: Axis is in use by grid JGRID
- *** NOTE: Not deleted: MONTHT
- *** NOTE: Axis is in use by grid TGRID
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: YAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAXLEVITR1_160
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: TIME5
- *** NOTE: Axis is in use by grid GLB1
- *** NOTE: Not deleted: COADSX
- *** NOTE: Axis is in use by grid GG
- *** NOTE: Not deleted: COADSY
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: YAXLEVITR1_90
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: ZAXLEVITR1_1
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: (AX020)
- *** NOTE: Axis is in use by grid GG3
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- **ERROR: improper grid or axis definition: Axis length exceeds modulo length
-define axis/x=130e:500:10/modulo=360 xsub
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_mod.cdf
- LISTing to file test_subspan_modulo.nc
- LISTing to file test_subspan_modulo.nc
- LISTing to file test_subspan_modulo.nc
- LISTing to file test_subspan_modulo.nc
- LISTing to file test_subspan_modulo.nc
- LISTing to file test_subspan_modulo.nc
- LISTing to file test_subspan_modulo.nc
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /THICKNESS ignored on /SYMBOL=DOT
- *** NOTE: /SIZE= ignored on /SYMBOL=DOT
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
- *** NOTE: modulo = "j"
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Re-defining viewport MID
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Re-defining viewport MID1
-Re-defining viewport MID2
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: value out of legal range: # of contour levels > 500 (3283)
-CONTOUR/L=1/LEV=0.01d sst
- **ERROR: value out of legal range: # of contour levels > 500 (3283)
-CONTOUR/FILL/L=1/LEV=0.01d sst
- **ERROR: value out of legal range: # of shade levels > 500 (3283)
-SHADE/L=1/LEV=0.01d sst
- **ERROR: value out of legal range: # of levels > 500 (4094)
-POLYGON/KEY/LEV=0.01d/coord_ax=Z PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-ls: cannot access input.txt: No such file or directory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
- dsetnum,dsetpath,dsettitle,*size,*start,*end,
- *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
- axy, return=xx
-MESSAGE/CONTINUE `axy, return=xx`
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
- LISTing to file a.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis YAX
-Replacing definition of axis Z1
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file clim.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
- **ERROR: illegal limits: "DUMMY" does not exist at T=JAN-1990
- Axis extremes are T=DEC-1997:JAN-1998
-list/t=1-jan-1990 dummy
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: Can SET VARIABLE/OFFSET= only with NetCDF datasets
-SET VAR/OFFSET=1 x1
- **ERROR: invalid command: Can SET VARIABLE/SCALEFAC= only with NetCDF datasets
-SET VAR/SCALE=10 x2
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file longvname.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file longvname.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file eofsp.cdf
- LISTing to file eofti.cdf
- LISTing to file eofst.cdf
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file confuse_xz.nc
- LISTing to file confuse_yz.nc
- LISTing to file confuse_yt.nc
- LISTing to file confuse_yzt.nc
- LISTing to file confuse_xz.nc
- LISTing to file confuse_yz.nc
- LISTing to file confuse_yt.nc
- LISTing to file confuse_yzt.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis YQ
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
-Replacing definition of axis XAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-SHO VAR/XML
-SHO VAR/XML
-SHO VAR/XML
-SHO VAR/XML
-SHOW VAR/XML
-SHOW VAR/XML
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Using every 5th vector in the X direction
- Using every 3th vector in the Y direction
- Using every 2th vector in the X direction
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-Replacing definition of axis TAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: REPEAT/NAME requires /RANGE
-rep/name=a say `a`
- **ERROR: command syntax: L is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/L=
-rep/range=1:3/name=L (use coads_climatology; list/nohead [sst=I=1,j=1])
- **ERROR: command syntax: I is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/I=
-rep/range=1:3/name=I (use coads_climatology; list/nohead [sst])
- **ERROR: command syntax: j is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/j=
-rep/range=1:3/name=j (use coads_climatology; list/nohead [sst])
- **ERROR: command syntax: k is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/k=
-rep/range=1:3/name=k (use coads_climatology; list/nohead [sst])
- **ERROR: command syntax: X is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/X=
-rep/range=1:3/name=X (use coads_climatology; list/nohead [sst])
- **ERROR: command syntax: y is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/y=
-rep/range=1:3/name=y (use coads_climatology; list/nohead [sst])
- **ERROR: command syntax: z is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/z=
-rep/range=1:3/name=z (use coads_climatology; list/nohead [sst])
- **ERROR: command syntax: tbox is a pseudo-variable; cannot use with REPEAT/RANGE/NAME=
-rep/range=1:3/name=tbox (use coads_climatology; list/nohead[sst,x=181,y=0,t=`tbox`])
- **ERROR: command syntax: xboxlo is a pseudo-variable; cannot use with REPEAT/RANGE/NAME=
-rep/range=1:3/name=xboxlo (list/nohead xboxlo)
- **ERROR: command syntax: nested REPEAT loops with the same counter name a
-repeat/range=3:1:-1/name=a list a
- **ERROR: command syntax: nested REPEAT loops with the same counter name a
-repeat/range=3:1:-1/name=a list a
- **ERROR: command syntax: nested REPEAT loops with the same counter name a
-repeat/range=3:1:-1/name=a list a
- **ERROR: command syntax: nested REPEAT loops with the same counter name a
-repeat/range=3:1:-1/name=a list a
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: illegal limits: "TEMP" does not exist at T=AUG-1980:JAN-1982
- Axis extremes are T=AUG-1982:JAN-1983
-list/t=1-aug-1980:1-jan-1982/i=92/j=35 temp
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX1
-Replacing definition of axis TAX2
-Replacing definition of axis TAX1
-Replacing definition of axis TAX2
-Replacing definition of axis TAX1
-Replacing definition of axis TAX2
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of grid AGRID
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis X_AX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
-Replacing definition of axis TAX
-Replacing definition of axis TAX
- *** NOTE: Axis definition error on axis: TAX
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
-Replacing definition of axis TAX
- **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
-def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
- **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
-def axis/t/bounds tax={0.1,2,3.2,5,7,8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
- **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
-def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
- **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
-def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
- **ERROR: improper grid or axis definition: dimension of bounds (15) must be 2*N or N+1, N=number of axis coordinates (7)
-def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
- **ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
-def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- LISTing to file a.nc
- LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
- LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
- LISTing to file a.nc
-Replacing definition of axis XAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- LISTing to file irrxzt.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
- *** NOTE: Write the data initially with the /BOUNDS qualifier
- LISTing to file a.nc
- LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of grid TGRID
- **ERROR: command syntax: Invalid calendar name. Names are, GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
-def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Units not recognized: SOMETHING
- *** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: SOMETHING
- *** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: ZORRO
- *** NOTE: They will not be convertible:
- *** NOTE: Units not recognized for T axis: METERS
- *** NOTE: They will not be convertible
- *** NOTE: Units not recognized for Y axis: SECONDS
- *** NOTE: They will not be convertible
-Replacing definition of axis TAX
-Replacing definition of axis XAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
-Replacing definition of axis TAX
-Replacing definition of axis ZAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
- LISTing to file xlong.nc
- LISTing to file xlongshift.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Re-defining viewport VP_1
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis XAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XFINE
-Replacing definition of axis YFINE
- LISTing to file fine.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: illegal limits: One-point independent axis: Requires a /HLIMIT or /VLIMIT specification
-plot/sym/siz=0.3 0*t[gt=vwnd]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
-Replacing definition of axis TAX
- LISTing to file aa.nc
- LISTing to file cc.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: First argument is a letter of the alphabet
-query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
- **ERROR: invalid command: Valid value needed for argument $2
-query/ignore $2%|a|b|c|d|%
- *** NOTE: Valid argument $2 choices are: a|b|c|d|
- **ERROR: my error message
-message/cont $1"|xxxxx|goodbye<my error message"
- **ERROR: invalid command: Valid value needed for argument $1
-message/cont $1"greetings|xxxxx|goodbye"
- *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
- **ERROR: my error message
-message/cont $3"|hello|goodbye<my error message"
- **ERROR: invalid command: Valid value needed for argument $3
-message/cont $3">greetings|hello|goodbye"
- *** NOTE: Valid argument $3 choices are: hello|goodbye
- **ERROR: my error message
-message/continue ($test2"<my error message")
- **ERROR: invalid command: Valid value needed for symbol test2
-message/continue ($test2"|hello|bye|")
- *** NOTE: Valid symbol test2 choices are: hello|bye|
- **ERROR: my error message
-message/continue ($test2"|hello|bye|<my error message")
- **ERROR: invalid command: Valid value needed for symbol t2
-message/continue ($t2"|solong>really hello|bye|")
- *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: delta non-positive on X axis of EX#1
-list/l=1/j=40/i=0:300:0 sst
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file 10a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XQ
-Replacing definition of axis YQ
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Evenly spaced axis has edges definition: TCOADS - ignored
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME1
- *** NOTE: grid used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
-Replacing definition of axis TIME1
- *** NOTE: grid used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis COADSX.ILLEGAL
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
-Replacing definition of axis COADSY.ILLEGAL
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME
- LISTing to file a.nc
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file longtitle.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file longtitle.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- **ERROR: improper grid or axis definition: error in start,end,delta
-DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
- **ERROR: improper grid or axis definition: error in start,end,delta
-DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file t0_cdc.nc
- LISTing to file my_cdc_timeaxis.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TGREG
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file revision.nc
-
-Bailing out of external function "ffta":
- Time axis must be a regular axis
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
- Cannot use multiple IFs in an expression
-LIST/ORDER=X IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
- **ERROR: command syntax: IF I LT 5 THEN I ELSE -9
- ELSE before - is illegal
- negative constants need to be enclosed in parentheses
-DEFINE VARIABLE A = IF I LT 5 THEN I ELSE -9
- **ERROR: variable unknown or not in data set: A1
-load a1,a2,a3
- **TMAP ERR: non-existent or not on line
- nofile.nc
-set data nofile.nc
- **ERROR: invalid command: REPEAT/NAME requires /RANGE
-repeat/name=a (say `a`)
- **ERROR: command syntax: L is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/L=
-repeat/range=1:3/name=L (use coads_climatology; list/nohead [sst=I=1,j=1])
- **ERROR: error in external function
-LOAD vw_fft
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
-Replacing definition of axis XAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- LISTing to file irrxzt.nc
-Replacing definition of axis ZAX
-Replacing definition of axis ZAX2
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: SHOW ATTRIBUTE given with no argument
-sho att/all
- **ERROR: unknown data set: d=2
-show att/all temp[d=2]
- **ERROR: attribute undefined or invalid attribute name: salt.nonsense
- attribute nonsense not found for variable SALT
-sho att salt.nonsense
- **ERROR: invalid command: dataset not found for varname.attname .
-sho att/all .
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the value of attribute temp.missing_value
- *** NOTE: Changing the value of attribute temp.missing_value
- LISTing to file a.nc
- LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSZT1).positive
- *** NOTE: Changing the type of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (TIME4).time_origin
- **ERROR: command syntax: enclose coordinate variable name in parentheses
-list coadsx.units
- **ERROR: variable unknown or not in data set: COADSX.UNITS
-list coadsx.units
- **ERROR: invalid command: Cannot change attribute for direction of axis.
-set att (COADSX81_81).axis = "Z"
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the type of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
-Replacing definition of grid MYGRID
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
- LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- *** NOTE: Changing the value of attribute (COADSX).point_spacing
- *** NOTE: Changing the value of attribute (COADSY).point_spacing
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
-NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
- data in attribute missing_value not representable in output type NC_INT
-LIST/FORMAT=CDF/file=a.nc/clobber/x=132w/k=1 temp
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
-set var/outtype=char broiled
- **ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
-set var/outtype=garbage broiled
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (PSXT1).units
- LISTing to file a.nc
- LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSXT1).units
- *** NOTE: Changing the value of attribute (PSYT1).units
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis X2AX
- *** NOTE: Changing the value of attribute (z4ax).positive
- LISTing to file string4d.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-Replacing definition of axis TIME
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
-syntax error, unexpected WORD_STRING, expecting WORD_WORD
-context: Error { code = 404; message = "data/PMEL/COADS/coads_nothing.cdf"^;};
-curl error details:
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- Using every 3th vector in the X direction
- Using every 4th vector in the Y direction
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **TMAP ERR: non-existent or not on line
- this_is_not_a_file.nc
-SET DAT/FORM=CDF this_is_not_a_file.nc
- **Internet Data error
- NetCDF: Malformed or inaccessible DAP DDS (OPeNDAP/netCDF Error code -72)
- Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
-SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
- **Internet Data error
- NetCDF: I/O failure (OPeNDAP/netCDF Error code -68)
- Data set: http://noserver/a/nofile.cdf
-SET DAT/FORM=CDF "http://noserver/a/nofile.cdf"
- LISTing to file asc.dat
- **netCDF error
- NetCDF: Unknown file format (OPeNDAP/netCDF Error code -51)
- Data set: ./asc.nc
-SET DAT/FORM=CDF asc.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file err581_subspanx_fill_bug.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XIR
- LISTing to file xyir.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: illegal use of transformation: not all dimensions present on grid
-shade sst[x=@var,k=@var]
- **ERROR: illegal use of transformation: not all dimensions present on grid
-shade sst[t=@AVE,Z=@ave]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
- LISTing to file t3file.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file 0000_a.nc
- LISTing to file subdir/a.nc
- LISTing to file subdir/0000_a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-Replacing definition of axis TAX
- LISTing to file a.nc
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: cannot parse "units since date", date= "event"; leaving units string
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
- *** NOTE: Invalid I axis limits ignored: TEMP
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
-plot/i=100/k=1 temp[x=122.5W]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis XAX
-Replacing definition of axis XAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file b.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file b.nc
- LISTing to file b.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-Replacing definition of axis TIME9
- *** NOTE: grid used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME
- LISTing to file a.nc
- LISTing to file t2.nc
- LISTing to file t12.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file out.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: it is a child axis already
-set axis/stride=2/offset=1 (AX047)
- **ERROR: invalid command: not a strided axis: COADSX
-cancel axis/stride COADSX
- **ERROR: invalid command: offset must be less than stride value
-set axis/stride=2/offset=4 COADSX
- **ERROR: invalid command: not a strided axis: COADSX
-cancel axis/stride COADSX
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
- LISTing to file d2.nc
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
- **ERROR: invalid command: unknown axis: NORMAL
-set axis/stride=2 NORMAL
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file noleap.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file tripolar_missing_lon.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-**ERROR in External Function add_9:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/add_9.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function appende:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/appende.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function avet:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/avet.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function dates:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/dates.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function expndi_by_z_counts:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/expndi_by_z_counts.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function expndi_id_by_z_counts:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/expndi_id_by_z_counts.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function factorial:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/factorial.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function fft_amp:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/fft_amp.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function ffta_sample:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/ffta_sample.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function fft_phas:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/fft_phas.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function fill_xy:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/fill_xy.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function minmax:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/minmax.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function pass_thru:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/pass_thru.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function percent_good_t:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/percent_good_t.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function storage:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/storage.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function string_arg:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/string_arg.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function student_t_cutoff:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/student_t_cutoff.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function subtract:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/subtract.so: wrong ELF class: ELFCLASS64".
-curl error details:
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: "300": Number of contour levels must be between 1 and 250
-SHADE/LEV=300/I=1:100/J=1:100 i+j
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
- LISTing to file a.nc
- LISTing to file b.nc
- LISTing to file b.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file z1.nc
- LISTing to file z2.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME
-Replacing definition of axis TIME
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME
- LISTing to file a.nc
- LISTing to file b.nc
- LISTing to file b.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Using every 5th vector in the X direction
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis ZAX
- **ERROR: value out of legal range: Median smoother length must be odd
-plot/trans var, var[z=@med:4]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME
-Replacing definition of axis TIME
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TIME
- LISTing to file a.nc
- LISTing to file b.nc
- LISTing to file b.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file 1a.dat
- LISTing to file 3a.dat
- LISTing to file 5a.dat
- LISTing to file 7a.dat
- LISTing to file 9a.dat
- LISTing to file 11a.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: variable unknown or not in data set: A_REGRID[D=1,GT=B[D=2]@MOD]
-LIST a_regrid[D=1,GT=b[D=2]@MOD]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file dat.dat
- LISTing to file a.nc
- LISTing to file unf.dat
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file lonlat.dat
- LISTing to file lonlat.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
-Replacing definition of grid GG
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file b.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
-Replacing definition of axis XAX
-Replacing definition of axis YAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
-Replacing definition of axis ZAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
-Replacing definition of axis TAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis TAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis X1
-Replacing definition of axis Y1
-Replacing definition of grid G1
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file test0a.cdf
- LISTing to file test0b.cdf
- LISTing to file test0c.cdf
- LISTing to file test0d.cdf
- LISTing to file test0e.cdf
- LISTing to file test0f.cdf
- LISTing to file test0g.cdf
- LISTing to file test0h.cdf
- LISTing to file test0i.cdf
- LISTing to file test0j.cdf
- LISTing to file test0k.cdf
- LISTing to file test0l.cdf
- LISTing to file test0m.cdf
- LISTing to file test0n.cdf
- LISTing to file test0o.cdf
- LISTing to file test0p.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
- LISTing to file test2.cdf
- LISTing to file FL.cdf
- LISTing to file FTLON.cdf
- **ERROR: invalid command: /CLOBBER not specified and file exists: test_abs.cdf
-list/format=cdf/keep_axnames/l=1:10/file=test_abs.cdf l
- LISTing to file test_abs.cdf
- **TMAP ERR: Requested data range is outside of data set limits
- inconsistent I axis length for IL
-list/format=cdf/keep_axnames/i=5:15/l=5:10/append/file=test_abs.cdf il
- LISTing to file test_abs.cdf
- LISTing to file test_abs.cdf
- **TMAP ERR: attempt to redefine line
- # of dims in variable IJL2 is inconsist. w/ CDF file
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijl2
- **ERROR: variable unknown or not in data set: IJKL[K=@AVE]
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave]
- LISTing to file test_abs.cdf
- **TMAP ERR: error in line definition
- disordered output coordinate value: 363 Axis: TCENTURY
-list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
- LISTing to file FI.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
- LISTing to file test_fil0.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
- axis PSXT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
- axis PSXT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
- axis PSXT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
- axis PSYT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
- axis PSXU doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
- axis PSXT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
- axis PSXT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
- axis PSXU doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
- axis PSZT doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
- axis PSXU doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
- axis PSXU doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
- LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
- **TMAP ERR: attempt to redefine line
- axis PSXU doesnt match CDF file
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
- **ERROR: variable unknown or not in data set: IJKL
-show grid ijkl
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
-Replacing definition of grid TGRID
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
-Replacing definition of axis TSEC
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis CAXIS
- *** NOTE: grid used by data set grads_bug_file
- *** NOTE: Redefinition may alter apparent contents of data set
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-Replacing definition of axis TAX
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file xz.nc
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file t_bug.nc
-Replacing definition of axis T_AXIS
- LISTing to file t_bug.nc
-NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
- T_AXIS_bnds not found. Attempt to append irregular coordinates to NetCDF axis which has no bounds attribute. Write data originally with the /BOUNDS qualifier.
-LIST/FORMAT=CDF/FILE=t_bug.nc/APPEND var
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: invalid command: offset must be greater than or equal to zero
-SET AXIS/STRIDE=12/OFFSET=-1 truemonth
- **ERROR: invalid command: stride must be greater than zero
-SET AXIS/STRIDE=-1/OFFSET=1 truemonth
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis YAX
-Replacing definition of grid GG123456789012345678902
- **ERROR: unknown defining grid: G=NO_EXIST12345678901234567890
-load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute sst.history
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
- LISTing to file mypack.nc
- *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file list_of_numbers.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Re-defining viewport V1
-Re-defining viewport V1
-Re-defining viewport V2
-Re-defining viewport V3
-Re-defining viewport V4
-Re-defining viewport V5
-Re-defining viewport V6
-Re-defining viewport V7
-Re-defining viewport V8
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file dummy.dat
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Restoring default chunk cache settings
- Restoring default chunk cache settings
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file nc4_deflate4.nc
- *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
- *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
- LISTing to file nc4_nodeflate3.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file nc4_deflate4bigchunk.nc
- LISTing to file nc4_nodeflate3.nc
- LISTing to file nc4_deflate4_xyt.nc
- LISTing to file nc4_deflate4_defaultchunk.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file nc4_inttemp_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
- LISTing to file nc4_inttemp_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
- LISTing to file nc4_inttemp_shuffle_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
- LISTing to file nc4_inttemp_set_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
- LISTing to file nc4_deflate4_t1.nc
- **TMAP ERR: syntax error in string
- If ChunkSize is set for any dimension of var, must set for all its dimensions
-LIST/FORMAT=CDF/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchunk=1 sst
- LISTing to file nc4_deflate4bigchunk.nc
- **TMAP ERR: error specifying chunk sizes
- TChunkSize 0 is larger than dimension length 3
-LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of grid MYGRID
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX
- *** NOTE: Axis is already regular: MYX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Use the GO command to name a file of FERRET commands to be executed.
- e.g. yes? GO filename
-
- Use "GO/HELP filename" to read documentation in the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
- e.g. yes? GO filename
-
- Use "GO/HELP filename" to read documentation in the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
- e.g. yes? GO filename
-
- Use "GO/HELP filename" to read documentation in the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
- e.g. yes? GO filename
-
- Use "GO/HELP filename" to read documentation in the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
- e.g. yes? GO filename
-
- Use "GO/HELP filename" to read documentation in the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
- e.g. yes? GO filename
-
- Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: No active redirects to cancel
- Use the GO command to name a file of FERRET commands to be executed.
- e.g. yes? GO filename
-
- Use "GO/HELP filename" to read documentation in the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
- e.g. yes? GO filename
-
- Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: Axis is already regular: MYAXIS
- **ERROR: variable unknown or not in data set: GARBAGE
-show grid garbage
- Use the GO command to name a file of FERRET commands to be executed.
- e.g. yes? GO filename
-
- Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: stderr is not redirected
- Use the GO command to name a file of FERRET commands to be executed.
- e.g. yes? GO filename
-
- Use "GO/HELP filename" to read documentation in the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
- e.g. yes? GO filename
-
- Use "GO/HELP filename" to read documentation in the file to be executed.
- Use the GO command to name a file of FERRET commands to be executed.
- e.g. yes? GO filename
-
- Use "GO/HELP filename" to read documentation in the file to be executed.
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Using every 8th vector in the X direction
- Using every 7th vector in the Y direction
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
-Replacing definition of axis YAX
-Replacing definition of axis ZAX
-Replacing definition of axis YAX
-Replacing definition of axis YAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-
-Bailing out of external function "tax_year":
- Function not valid for modulo time axis
- *** NOTE: b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb [...]
- *** NOTE: exceeds expected length. Maximum characters: 2048
- LISTing to file aa.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
-set mode desperate 1.E+10
- **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
-set mode desperate 1234567890123456789
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file g.nc
-Replacing definition of axis YAX_DUP_AXNAMES
- LISTing to file h.nc
- LISTing to file gh.nc
- LISTing to file justh.nc
- LISTing to file justg.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: error in external function
-list/L=15:20 tax_year(t[gt=tvar],tvar)
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file cc.nc
- LISTing to file c1.nc
- TEMPORARY data cleared from memory
- LISTing to file c2.nc
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TAXIS
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: illegal name, matches an operator: AND
-DEFINE VARIABLE AND = 5
- **ERROR: command syntax: illegal name, matches an operator: OR
-DEFINE VARIABLE OR = 5
- **ERROR: command syntax: illegal name, matches an operator: GT
-DEFINE VARIABLE GT = 5
- **ERROR: command syntax: illegal name, matches an operator: GE
-DEFINE VARIABLE GE = 5
- **ERROR: command syntax: illegal name, matches an operator: LT
-DEFINE VARIABLE LT = 5
- **ERROR: command syntax: illegal name, matches an operator: LE
-DEFINE VARIABLE LE = 5
- **ERROR: command syntax: illegal name, matches an operator: EQ
-DEFINE VARIABLE EQ = 5
- **ERROR: command syntax: illegal name, matches an operator: NE
-DEFINE VARIABLE NE = 5
- **ERROR: command syntax: illegal name, matches an operator: IF
-DEFINE VARIABLE IF = 5
- **ERROR: command syntax: illegal name, matches an operator: ELSE
-DEFINE VARIABLE ELSE = 5
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a1.nc
- LISTing to file a2.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
- Cannot use multiple IFs in an expression
-LIST/ORDER=X IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
- **ERROR: command syntax: ifv I LT 5 THEN I ELSE -9
- ELSE before - is illegal
- negative constants need to be enclosed in parentheses
-DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis ZAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XAX
- LISTing to file a.nc
-Replacing definition of axis YAX
- LISTing to file a.nc
-Replacing definition of axis TAXIS
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting TMIN
- *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis has repeated values -- micro-adjusting ...
-Replacing definition of axis TNEW
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-
-Bailing out of external function "eofsvd_stat":
- There are no spatial locations having complete time series.
-
-Bailing out of external function "eofsvd_space":
- There are no spatial locations having complete time series.
-
-Bailing out of external function "eofsvd_tfunc":
- There are no spatial locations having complete time series.
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis YAXIS
-Replacing definition of axis TAXIS
-Replacing definition of axis XAXIS
- **ERROR: error in external function
-list eofsvd_stat(spacegap)
- **ERROR: error in external function
-list eofsvd_space(spacegap)
- **ERROR: error in external function
-list eofsvd_tfunc(spacegap)
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of grid EVEN
-Replacing definition of grid G1
-Replacing definition of grid G2
-Replacing definition of grid G3
-Replacing definition of grid G4
-Replacing definition of grid G13
-Replacing definition of grid G14
-Replacing definition of grid G23
-Replacing definition of grid G33
-Replacing definition of grid G234
-Replacing definition of grid G134
-Replacing definition of grid G124
-Replacing definition of grid G123
-Replacing definition of grid G1234
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XFINE
-Replacing definition of axis XCOARSE
-Replacing definition of axis YFINE
-Replacing definition of axis YCOARSE
-Replacing definition of axis XFINE
-Replacing definition of axis XCOARSE
-Replacing definition of axis YFINE
-Replacing definition of axis YCOARSE
-Replacing definition of grid G24
-Replacing definition of grid G48
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
- Cannot use multiple IFs in an expression
-LIST/order=e IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
- **ERROR: command syntax: IF _m LT 5 THEN _m ELSE -9
- ELSE before - is illegal
- negative constants need to be enclosed in parentheses
-DEFINE VARIABLE A = IF _m LT 5 THEN _m ELSE -9
- **ERROR: variable unknown or not in data set: A1
-load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of grid G5DAY
-Replacing definition of axis FAX4DAY
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- **ERROR: unknown data set: dset 3 unknown or is already an aggregate dataset
-define data/agg windy = 1,2,3
- **ERROR: error defining aggregate dataset: Aggregate dataset not defined
-define data/agg windy = 1,2,3
- *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
- *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
- **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
-define data/agg windy = 1,2
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **netCDF error
- NetCDF: Unknown file format (OPeNDAP/netCDF Error code -51)
- Data set: ./.
-SET DAT/FORM=CDF ./z1.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
- LISTing to file mytype.nc
-NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
- failure writing to CDF output file
-LIST/FORMAT=CDF/L=32875000:32875201/clobber/file=mytype.nc tt
- LISTing to file mytype.nc
-NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
- failure writing to CDF output file
-LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
- LISTing to file mytype.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index 12
-define axis/t/units=days tax = tvar
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Using every 9th vector in the X direction
- Using every 9th vector in the X direction
- Using every 9th vector in the X direction
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis TDAY
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file aa.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file aa.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file aa.nc
- LISTing to file aa.nc
- LISTing to file aa.nc
- LISTing to file aa.nc
- LISTing to file aa.nc
-NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
- data in attribute missing_value not representable in output type NC_INT
-NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
- data in attribute _FillValue not representable in output type NC_INT
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: .HELLO
-list .hello
- **ERROR: variable unknown or not in data set: A.UNITS
-
-list a.units
- **ERROR: variable unknown or not in data set: A.UNITS
-list a.units
- **ERROR: attribute undefined or invalid attribute name: ..HISTORY
- attribute HISTORY not found for dataset
-list ..history
- **ERROR: variable unknown or not in data set: ..HISTORY
-list ..history
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis AXI
-Replacing definition of axis AXI_COARSE
-Replacing definition of axis AXI
-Replacing definition of axis AXI_COARSE
-Replacing definition of axis AXI
-Replacing definition of axis AXI_COARSE
-Replacing definition of axis AXI
-Replacing definition of axis AXI_COARSE
-Replacing definition of axis AXI
-Replacing definition of axis AXI_COARSE
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
- *** NOTE: A dummy axis of subscripts will be used
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file sst_new.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis ZAX
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file append_to_this.nc
-ncks: WARNING Overwriting global attribute history
-ncks: WARNING Overwriting global attribute Conventions
-ncks: WARNING Overwriting attribute point_spacing for output variable ZAXIS_ORIG
-ncks: WARNING Overwriting attribute axis for output variable ZAXIS_ORIG
-ncks: WARNING Overwriting attribute standard_name for output variable ZAXIS_ORIG
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis XIRREG
- LISTing to file a.nc
- LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- LISTing to file a.nc
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- LISTing to file a.nc
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
- **ERROR: command syntax: COLOR
- /COLOR must have an argument for PLOT/OVERLAY
-plot/i=1:100/over/COLOR 0.6*sin(i/7)
- **ERROR: command syntax: COLOR
- /COLOR not valid for PLOT/LEVELS ribbon plot
-plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
-Replacing definition of axis ZAX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
- **ERROR: illegal limits: X axis limits don't match variable def'n: A
- Are you giving explicit limits when SET REGION would suffice ?
-list f
-**ERROR in External Function add_9:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/add_9.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function avet:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/avet.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function pass_thru:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/pass_thru.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function storage:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/storage.so: wrong ELF class: ELFCLASS64".
-**ERROR in External Function add_9:
- Dynamic linking call dlopen() returns --
- "/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func/add_9.so: wrong ELF class: ELFCLASS64".
-**ERROR Ferret crash; signal = 11
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Cached data cleared from memory
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
-plot/i=1:10/j=1:20/nolabel i+j
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i,i+j"
-plot/i=1:10/j=1:20/nolabel i,i+j
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j,i"
-plot/i=1:10/j=1:20/nolabel i+j,i
- **ERROR: dimensions improperly specified: differing axes:
- first line is on Y axis
- line 2 is on X axis
-plot/i=1:10/j=1:20/nolabel j,i
- **ERROR: dimensions improperly specified: unequal line lengths:
- First expression has 20 points.
- Expression 2 has 10 points:
- "plot/i=1:10/j=1:20/vs/line/nolabel j,i"
-plot/i=1:10/j=1:20/vs/line/nolabel j,i
- **ERROR: dimensions improperly specified: must be a 2D region
- contour/i=1:10/j=1:20/nolabel i
-contour/i=1:10/j=1:20/nolabel i
- **ERROR: invalid command: can only CONTOUR single fields
- Use /OVERLAY for multiple variables
-contour/i=1:10/j=1:20/nolabel i/j,j/i
- **ERROR: invalid command: VECTOR requires paired components
-vector/i=1:10/j=1:20/nolabel i/j
- **ERROR: invalid command: VECTOR requires paired components
-vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
-Re-defining viewport LM6
-Re-defining viewport UM6
- Using every 2th vector in the X direction
- Using every 2th vector in the Y direction
-Re-defining viewport LM6
- Using every 2th vector in the X direction
- Using every 2th vector in the Y direction
- Using every 2th vector in the X direction
- Using every 2th vector in the Y direction
-Re-defining viewport UM6
- Using every 2th vector in the X direction
- Using every 2th vector in the Y direction
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
-plot/i=1:10/j=1:20/nolabel i+j
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i,i+j"
-plot/i=1:10/j=1:20/nolabel i,i+j
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j,i"
-plot/i=1:10/j=1:20/nolabel i+j,i
- **ERROR: dimensions improperly specified: differing axes:
- first line is on Y axis
- line 2 is on X axis
-plot/i=1:10/j=1:20/nolabel j,i
- **ERROR: dimensions improperly specified: unequal line lengths:
- First expression has 20 points.
- Expression 2 has 10 points:
- "plot/i=1:10/j=1:20/vs/line/nolabel j,i"
-plot/i=1:10/j=1:20/vs/line/nolabel j,i
- **ERROR: dimensions improperly specified: must be a 2D region
- contour/i=1:10/j=1:20/nolabel i
-contour/i=1:10/j=1:20/nolabel i
- **ERROR: invalid command: can only CONTOUR single fields
- Use /OVERLAY for multiple variables
-contour/i=1:10/j=1:20/nolabel i/j,j/i
- **ERROR: invalid command: VECTOR requires paired components
-vector/i=1:10/j=1:20/nolabel i/j
- **ERROR: invalid command: VECTOR requires paired components
-vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
-Re-defining viewport LM6
-Re-defining viewport UM6
- *** NOTE: Cannot create new windows when batch mode set
-Ended at Tue Nov 12 15:14:02 PST 2013
diff --git a/bench/ansley_official.rhel6-32_log b/bench/ansley_official.rhel6-32_log
deleted file mode 100644
index ea05e35..0000000
--- a/bench/ansley_official.rhel6-32_log
+++ /dev/null
@@ -1,78481 +0,0 @@
-Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/v685Release/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 42809389 Nov 12 15:10 /home/users/ansley/build/v685Release/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/v685Release/FERRET/external_functions/ext_func
-Running the tests of external functions y
-Benchmark run by ansley
-Note: v6.85 on flat 32-bit
-ncdump output will be in all_ncdump.out, and appended to this log file
-***** Restricting Ferret paths to bench directory *****
-FER_DAT=.
-FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/tmap/ferret/linux/fer_dsets
-FER_DESCR=.
-FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/v685Release/FERRET/external_functions/ext_func
-FER_FONTS=/home/users/tmap/ferret/rhel6-x86_64-linux/ppl/fonts
-FER_GO=. /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
-FER_GRIDS=.
-FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
-FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
-FER_WEB_BROWSER=firefox
-PWD=/home/users/ansley/build/v685Release/FERRET/bench
-Beginning at Tue Nov 12 15:12:09 PST 2013
-! BN500_ALL.JNL
-! - run all the benchmark tests
-! - ordered (more or less) from least to most complex
-! V2.30: uses BN230_syntax instead of BN200_syntax
-! added BN230_cdf
-! added BN230_regrid_transforms 8/92
-! V3.00: uses BN300_syntax instead of BN230_syntax
-! added bn300_dollar 4/93
-! V3.01: adds bn301_axis_limits and ppl echo ON
-! V3.11: adds bn311_ez_order (/ORDER and /FORMAT=STREAM)
-! V3.12: adds bn312_user (tests SAMPLE and OBJECTIVE)
-! V3.13: for AIX testing: removed mem_mgmt & ignore errors during bn200_output
-! V3.20: to test SAVE/HEADING=enhanced (new BN320_cdf)
-! V4.00: added "*" tests to bnxxx_dollar and added new test bn400_grave
-! 6/95 - added bn401_symbols
-! 7/95 - modified bn*_syntax: bn401_syntax has var1[G=var2[d=dset]]
-! 8/95 - modified bn*_ez: bn401_ez tests FORM=unf
-! V4.20:
-! 9/95 - added test of LET/D and LIST/FORMAT=STREAM
-! - slightly modified syntax in bn420_regrid_transforms
-! - added bn420_dynamic_grids and bn420_comma_delimited
-! - added 2 small additional tests in bn420_grave
-! - added a small syntax test in bn420_syntax
-! - tested for commas inside args in bn420_dollar
-! - tested for enclosing parens in bn420_symbol
-! V4.30:
-! 5/96 - added IF tests
-! 9/96 - added MC data tests *kob*
-! V4.50:
-! 1/97 - eliminated MODE POLISH
-! (bn301_expressions.jnl -> bn450_expressions.jnl)
-! 8/97 - bn430_if -> bn450_if: added symbol substitution test
-!10/97*kob*- cancel metafile creation after bn420_syntax and turn it
-! on only before bn450_plot (upgraded from bn320_plot)
-! - also add test for negative time steps (bn450_negative_t)
-! - also add test for cuvilinear stuff
-! - also added steve's "exact match" regridding
-!11/97 *kob* - added bn450_gc_functions
-! V4.91:
-! 1/98 - corrected bug in this script -- need to cancel viewports after
-! bn312_user or the plots which follow come up in a small viewport
-! 2/98 *kob* - moved bn450_curv.jnl up to right after bn450_plot.jnl in
-! order to have those metafiles saves as well for checking
-! also renamed it to bn491_curv.jnl and added some minor
-! cosmetic changes
-! 2/98 *kob* - add in bn491_bug_fixes.jnl
-! 4/98 *sh* - replaced bn420_dynamic_grids with bn491_... (minor chg)
-! V5.00:
-! 2/99 *sh* -- bn420_regrid_transform ==> bn500_regrid_transform
-! 3/1/99 *kob* - removed bn200_budget from distributable benchmarks
-! 5/99 *kob* - added V50 bench files
-! V5.10:
-! 10/99 *sh* -- added bn_sample.jnl to test SAMPLEI,J,K,L
-! bn_non_COARDS_netCDF.jnl
-! bn_cache_hits.jnl, .sub
-! bn_strides_revs_perms.jnl
-! bn_regrid_to_user.jnl
-! V5.33:
-! 6/01 *sh* -- added bn_modulo_strides.jnl
-! 6/01 *acm* -- add bn_calendar
-! bn_dash_dot
-! bn_flowlines
-! 6/08 *kob* -- add bn_internal_external_functions
-!
-! V5.40:
-! 9/01 *sh* -- added bn_axis_viewports
-! -- added bn_strings
-! 10/01 *acm* -- added bn_axcontrol
-! -- add EOF's and cmprsi_by to bn_internal_external_functions.jnl
-! 11/01 *sh* -- added bn_delimited_read
-!
-! V5.41:
-! 3/02 *acm*-- Add bn540_bug_fixes.jnl
-!
-! V5.50:
-! 11/02 *sh*-- Add bn_subspan_modulo.jnl
-!
-! V5.52
-! 5/03 *acm* add bn_multi_line_labels.jnl, bn552_bug_fixes.jnl,
-! bn_set_var_scale_off.jnl, bn_longvarnames.jnl, bn_shakey.jnl
-! v5.53
-! 9/03 *kob* added bn_test_nan
-
-! v5.81
-! 9/05 *acm* remove bn_curv_shade_mod.jnl which was duplicated by bn_curv_mod.jnl
-
-! V6.00
-! 9/06 *acm* new scripts bn_tab_comma_multivar.jnl, bn_element_functions.jnl,
-! bn_long_revision_num.jnl, bn_window_title.jnl, bn_last_error.jnl,
-! bn_deg_min.jnl, bn_dp_readscale.jnl, bn_bounds_defineax.jnl,
-! bn_attributes.jnl, n600_bug_fixes.jnl
-!
-! 9/06 *acm* New bn601_bug_fixes for version 6.02
-
-! 6/06 *acm* add bn_transforms.jnl -- there was a benchmark testing regridding
-! transforms but not the others: smoothers, fillers, etc.
-! 1/12 *acm* add bn_variance.jnl -- testing @VAR transform
-
-! 10/06 *acm* Remove tests of nco funcions: we dont want to require them to be installed
-! on a system in order for it to pass the benchmarks.
-!
-! 11/06 *acm* New bn602_bug_fixes for version 6.02
-* V610 *acm* 3/08 - add new MODE NLEVELS
-* V685 *sh* 11/13 - added bn_vtree to test SHOW VAR/TREE
-
-! Include this statement to compare the outupt of 6D Ferret with
-! previous 4D benchmark logs.
-! cancel mode 6d_lab
-
-GO bn_reset
-cancel mode verify
-GO bn_syntax
-! bn401_syntax.JNL
-! - test syntax interpretation of Program FERRET
-! - major changes for FERRET ver 2.00 5/90
-! - changed mode REMOTE to mode STUPID - REMOTE removed in V2.30
-! - added semicolon-separated command group processing in V3.00 2/93
-! - added mode journal and mode ppllist tests
-! - extended mode journal, ppllist, and metafile tests to include paths
-! for V4.01 added var1[G=var2[d=dset]] (nested brackets) syntax
-! for V4.20 added blanks surrounding colons
-! and tests of "escapes" using back slashes
-! for V531 test continuation lines and long input lines
-
-! SET - SHOW - CANCEL DATA
-USE gtbc011
-SHOW DATA/BRIEF
- currently SET data sets:
- 1> ./gtbc011.cdf (default)
-SHOW DATA
- currently SET data sets:
- 1> ./gtbc011.cdf (default)
- name title I J K L M N
- TEMP TEMPERATURE 70:72 1:100 1:27 1:3 ... ...
- SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3 ... ...
- U ZONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- V MERIDIONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- W VERTICAL VELOCITY 70:71 1:100 1:27 1:3 ... ...
- TAUX ZONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
-
-SHOW DATA/VARIABLES
- currently SET data sets:
- 1> ./gtbc011.cdf (default)
-
- name title I J K L M N
- TEMP TEMPERATURE 70:72 1:100 1:27 1:3 ... ...
- deg. C on grid PS3DT1 with -1.E+34 for missing data
- X=161W:158W Y=30S:50N Z=0:4149
- SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3 ... ...
- frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
- X=161W:159W Y=30S:50N Z=0:4149
- U ZONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.8S:51.4N Z=0:4149
- V MERIDIONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.8S:51.4N Z=0:4149
- W VERTICAL VELOCITY 70:71 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DW1 with -1.E+34 for missing data
- X=161W:159W Y=30S:50N Z=5:4149
- TAUX ZONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.8S:51.4N
- TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.8S:51.4N
- PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
- cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:156.5W Y=28.8S:51.4N
-
- time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
-
-SHOW DATA/FILES
- currently SET data sets:
- 1> ./gtbc011.cdf (default)
- name title I J K L M N
- TEMP TEMPERATURE 70:72 1:100 1:27 1:3 ... ...
- SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3 ... ...
- U ZONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- V MERIDIONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- W VERTICAL VELOCITY 70:71 1:100 1:27 1:3 ... ...
- TAUX ZONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
-
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./gtbc011.cdf (default)
-
- name title I J K L M N
- TEMP TEMPERATURE 70:72 1:100 1:27 1:3 ... ...
- deg. C on grid PS3DT1 with -1.E+34 for missing data
- X=161W:158W Y=30S:50N Z=0:4149
- SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3 ... ...
- frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
- X=161W:159W Y=30S:50N Z=0:4149
- U ZONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.8S:51.4N Z=0:4149
- V MERIDIONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.8S:51.4N Z=0:4149
- W VERTICAL VELOCITY 70:71 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DW1 with -1.E+34 for missing data
- X=161W:159W Y=30S:50N Z=5:4149
- TAUX ZONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.8S:51.4N
- TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.8S:51.4N
- PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
- cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:156.5W Y=28.8S:51.4N
-
- time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
-
-CANCEL DATA 1
-SHOW DATA
- currently SET data sets:
-USE gtbc011
-USE gt4d011
-SHOW DATA/BRIEF
- currently SET data sets:
- 1> ./gtbc011.cdf
- 2> ./gt4d011.cdf (default)
-SHOW DATA/BRIEF gtbc011
- currently SET data sets:
- 1> ./gtbc011.cdf
-! ... save and restore data set
-SET DATA 1
-SET DATA/SAVE
-SHOW DATA/BRIEF
- currently SET data sets:
- 1> ./gtbc011.cdf (default)
- 2> ./gt4d011.cdf
-SET DATA 2
-SHOW DATA/BRIEF
- currently SET data sets:
- 1> ./gtbc011.cdf
- 2> ./gt4d011.cdf (default)
-SET DATA/RESTORE
-CANCEL DATA/ALL
-! ... EZ data sets
-FILE snoopy.dat
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./snoopy.dat (default)
-
- name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
-
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 1
-FILE/TITLE="quick and dirty" snoopy.dat
-SHOW DATA
- currently SET data sets:
- 1> ./snoopy.dat (default)
- name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
-
-SET MODE IGNORE_ERROR
-SET DATA/EZ/VAR="P,Q" 1
-FILE/TITLE="quick and dirty"/VAR="P,Q"/COL=4/GRID=ABSTRACT/FORM=UNF/SKIP=2 snoopy.dat
-SET MODE/LAST IGNORE_ERROR
-CANCEL DATA 1
-FILE/TITLE="quick and dirty"/VAR="P,Q"/COL=4/GRID=ABSTRACT/FORM=UNF/SKIP=2 snoopy.dat
-SET VARIABLE/TITLE="my P variable" P
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./snoopy.dat (default)
- quick and dirty
- name title I J K L M N
- P my P variable 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999
- on grid ABSTRACT with -1.E+34 for missing data
- X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1
- Q Q 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999
- on grid ABSTRACT with -1.E+34 for missing data
- X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1
-
- /FORMAT = UNF
- /SKIP = 2
- /COLUMNS = 4
-
-! SET - SHOW - CANCEL - DEFINE REGION
-SHOW REGION
-default region:
- X/I is unspecified
- Y/J is unspecified
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-SET REGION/I=101:105/J=46:48/Z=0/L=1
-SHOW REGION
-default region:
- I=101:105
- J=46:48
- Z=0
- L=1
- E/M is unspecified
- F/N is unspecified
-DEFINE REGION SAVE
-CANCEL REGION
-SHOW REGION
-default region:
- X/I is unspecified
- Y/J is unspecified
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-DEFINE REGION/X=130E:70W/Y=28.9S:48.6N W ! re-define to default
-SET REGION/@W
-SHOW REGION
-default region:
- X=130:290
- Y=-28.9:48.6
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-SHOW REGION SAVE
-region SAVE
- I=101:105
- J=46:48
- Z=0
- L=1
- E/M is unspecified
- F/N is unspecified
-SHOW REGION/ALL
-default region:
- X=130:290
- Y=-28.9:48.6
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-region SAVE
- I=101:105
- J=46:48
- Z=0
- L=1
- E/M is unspecified
- F/N is unspecified
-region W
- X=130:290
- Y=-28.9:48.6
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-SET REGION SAVE
-SHOW REGION
-default region:
- I=101:105
- J=46:48
- Z=0
- L=1
- E/M is unspecified
- F/N is unspecified
-! delta regions
-CANCEL REGION
-SET REGION/L=1
-SET REGION/DL=1:3
-SHOW REGION
-default region:
- X/I is unspecified
- Y/J is unspecified
- Z/K is unspecified
- L=2:4
- E/M is unspecified
- F/N is unspecified
-DEFINE REGION/dX=5 W
-SHOW REGION W
-region W
- X=135:295
- Y=-28.9:48.6
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-
-! SET - SHOW - CANCEL MODE
-SHOW MODES
- MODE STATE ARGUMENT
- DIAGNOSTIC CANCELLED 99
- VERIFY SET DEFAULT
- INTERPOLATE CANCELLED
- IGNORE_ERROR CANCELLED
- STUPID CANCELLED
- JOURNAL SET ferret.jnl
- LONG_LABEL SET 1
- LATIT_LABEL SET 1
- DEPTH_LABEL SET -4
- CALENDAR SET minutes
- 6D_LAB SET
- ASCII_FONT SET
- SEGMENT SET
- WAIT CANCELLED
- DESPERATE CANCELLED 2560000
- GKS SET
- REFRESH SET
- METAFILE CANCELLED metafile.plt
- PPLLIST CANCELLED ppllist.out
- GUI CANCELLED
- LOGO SET
- LABELS SET
- GRATICULE CANCELLED
- LINECOLORS SET 6
- UPCASE_OUTPU SET
- NLEVELS SET 30
- NODATA_LAB SET
- shrink_ylab CANCELLED
-SET MODE IGNORE_ERROR
-SHOW MODES
- MODE STATE ARGUMENT
- DIAGNOSTIC CANCELLED 99
- VERIFY SET DEFAULT
- INTERPOLATE CANCELLED
- IGNORE_ERROR SET
- STUPID CANCELLED
- JOURNAL SET ferret.jnl
- LONG_LABEL SET 1
- LATIT_LABEL SET 1
- DEPTH_LABEL SET -4
- CALENDAR SET minutes
- 6D_LAB SET
- ASCII_FONT SET
- SEGMENT SET
- WAIT CANCELLED
- DESPERATE CANCELLED 2560000
- GKS SET
- REFRESH SET
- METAFILE CANCELLED metafile.plt
- PPLLIST CANCELLED ppllist.out
- GUI CANCELLED
- LOGO SET
- LABELS SET
- GRATICULE CANCELLED
- LINECOLORS SET 6
- UPCASE_OUTPU SET
- NLEVELS SET 30
- NODATA_LAB SET
- shrink_ylab CANCELLED
-CANCEL MODE IGNORE_ERROR
-SHOW MODES
- MODE STATE ARGUMENT
- DIAGNOSTIC CANCELLED 99
- VERIFY SET DEFAULT
- INTERPOLATE CANCELLED
- IGNORE_ERROR CANCELLED
- STUPID CANCELLED
- JOURNAL SET ferret.jnl
- LONG_LABEL SET 1
- LATIT_LABEL SET 1
- DEPTH_LABEL SET -4
- CALENDAR SET minutes
- 6D_LAB SET
- ASCII_FONT SET
- SEGMENT SET
- WAIT CANCELLED
- DESPERATE CANCELLED 2560000
- GKS SET
- REFRESH SET
- METAFILE CANCELLED metafile.plt
- PPLLIST CANCELLED ppllist.out
- GUI CANCELLED
- LOGO SET
- LABELS SET
- GRATICULE CANCELLED
- LINECOLORS SET 6
- UPCASE_OUTPU SET
- NLEVELS SET 30
- NODATA_LAB SET
- shrink_ylab CANCELLED
-SHOW MODE STUPID
- MODE STATE ARGUMENT
- STUPID CANCELLED
-SET MODE STUPID
-SHOW MODE STUPID
- MODE STATE ARGUMENT
- STUPID SET
-SET MODE/LAST STUPID
-SHOW MODE STUPID
- MODE STATE ARGUMENT
- STUPID CANCELLED
-
-! new modes 5/93
-set mode journal newjournal.jnl
-show mode journal
- MODE STATE ARGUMENT
- JOURNAL SET newjournal.jnl
-set mode journal ferret.jnl
-ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
- WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
- PLOT MODE= A
- PLOT FILE= metafile.plt [...]
-set mode ppllist:ppllist.out
-show mode ppllist
- MODE STATE ARGUMENT
- PPLLIST SET ppllist.out
-ppl list plot
-ppl listsym
-cancel mode ppllist
-ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
- WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
- PLOT MODE= A
- PLOT FILE= metafile.plt [...]
-cancel mode journal
-show mode journal
- MODE STATE ARGUMENT
- JOURNAL CANCELLED ferret.jnl
-
-! new 1/94 (syntax check also applies to modes journal and ppllist)
-show mode metafile
- MODE STATE ARGUMENT
- METAFILE CANCELLED metafile.plt
-set mode metafile newmetafile1.plt
-show mode metafile
- MODE STATE ARGUMENT
- METAFILE SET newmetafile1.plt
-set mode metafile:newmetafile2.plt
-show mode metafile
- MODE STATE ARGUMENT
- METAFILE SET newmetafile2.plt
-set mode metafile: newmetafile3.plt
-show mode metafile
- MODE STATE ARGUMENT
- METAFILE SET newmetafile3.plt
-set mode metafile: "newmetafile4.plt"
-show mode metafile
- MODE STATE ARGUMENT
- METAFILE SET newmetafile4.plt
-set mode metafile: "./newmetafile5.plt"
-show mode metafile
- MODE STATE ARGUMENT
- METAFILE SET ./newmetafile5.plt
-set mode metafile: ./newmetafile6.plt
-show mode metafile
- MODE STATE ARGUMENT
- METAFILE SET ./newmetafile6.plt
-set mode metafile newmetafile7.plt
-show mode metafile
- MODE STATE ARGUMENT
- METAFILE SET newmetafile7.plt
-set mode metafile "newmetafile8.plt"
-show mode metafile
- MODE STATE ARGUMENT
- METAFILE SET newmetafile8.plt
-set mode metafile "./newmetafile9.plt"
-show mode metafile
- MODE STATE ARGUMENT
- METAFILE SET ./newmetafile9.plt
-set mode metafile ./newmetafile10.plt
-show mode metafile
- MODE STATE ARGUMENT
- METAFILE SET ./newmetafile10.plt
-set mode metafile metafile.plt
-
-! SET - SHOW - CANCEL EXPRESSION
-SHOW EXPRESSION
-CANCEL EXPRESSION
-SHOW EXPRESSION
-SET EXPRESSION i+5,i-j
-SHOW EXPRESSION
- current output expression(s):
- I+5
- I-J
-LIST/i=1:3/j=6:8
- X: 0.5 to 3.5
- Y: 5.5 to 8.5
- Column 1: EX#1 is I+5
- Column 2: EX#2 is I-J
- EX#1 EX#2
- ---- J:6 Y: 6
-1 / 1: 6.000 -5.000
-2 / 2: 7.000 -4.000
-3 / 3: 8.000 -3.000
- ---- J:7 Y: 7
-1 / 1: 6.000 -6.000
-2 / 2: 7.000 -5.000
-3 / 3: 8.000 -4.000
- ---- J:8 Y: 8
-1 / 1: 6.000 -7.000
-2 / 2: 7.000 -6.000
-3 / 3: 8.000 -5.000
-
-! SET,SHOW GRID
-USE gt4d011
-SHOW GRID
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid XABSTRACT
- GRID XABSTRACT
- name axis # pts start end
- ABSTRACT X 99999999 r 1 1.E+08
- normal Y
- normal Z
- normal T
- normal E
- normal F
-LIST/I=101:105/J=50/K=1/L=5 SALT
- VARIABLE : (SALINITY(ppt) - 35) /1000 (frac. by wt. less .035)
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (LONGITUDE)
- LATITUDE : 1.5N
- DEPTH (m): 5
- TIME : 10-SEP-1982 20:00
- 1.5N
- 50
- 129.5W / 101: 1.123E-04
- 128.5W / 102: 1.092E-04
- 127.5W / 103: 1.064E-04
- 126.5W / 104: 1.042E-04
- 125.5W / 105: 1.015E-04
-SHOW GRID
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid PS3DT2
- GRID PS3DT2
- name axis # pts start end
- PSXT LONGITUDE 160mr 130.5E 70.5W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME1 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
- normal E
- normal F
-SET GRID/SAVE
-SET GRID ABSTRACT
-SHOW GRID
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid PS3DT2
- GRID PS3DT2
- name axis # pts start end
- PSXT LONGITUDE 160mr 130.5E 70.5W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME1 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
- normal E
- normal F
-SHOW GRID/X=180:165W SALT
- GRID PS3DT2
- name axis # pts start end
- PSXT LONGITUDE 160mr 130.5E 70.5W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME1 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
- normal E
- normal F
-
- I X XBOX XBOXLO
- 50> 179.5E 1 179E
- 51> 179.5W 1 180E
- 52> 178.5W 1 179W
- 53> 177.5W 1 178W
- 54> 176.5W 1 177W
- 55> 175.5W 1 176W
- 56> 174.5W 1 175W
- 57> 173.5W 1 174W
- 58> 172.5W 1 173W
- 59> 171.5W 1 172W
- 60> 170.5W 1 171W
- 61> 169.5W 1 170W
- 62> 168.5W 1 169W
- 63> 167.5W 1 168W
- 64> 166.5W 1 167W
- 65> 165.5W 1 166W
- 66> 164.5W 1 165W
-SET GRID/RESTORE
-SHOW GRID
- Default grid for DEFINE VARIABLE is ABSTRACT
-
-! SHOW VARIABLES
-SHOW VARIABLES/DIAGNOSTIC ! alphabetical list
-Diagnostic variables:
-name title
-AIR AIR TEMPERATURE
-CAIR CLIMATOLOGICAL AIR TEMPERATURE
-CMSK CONVECTIVE ADJUSTMENT MASK
-DENS (DENSITY-1)*1000
-DPDX d/dX( BAROCLINIC PRESSURE )
-DPDY d/dY( BAROCLINIC PRESSURE )
-DTDT d/dt(TEMPERATURE)
-DUDT d/dt(U)
-DVDT d/dt(V)
-DWDT d/dt(W)
-FUW ZONAL ADVECTIVE COEFFICIENT, FUW
-FVN MERIDIONAL ADVECTIVE COEFFICIENT, FVN
-PCDZ VERTICAL MOMENTUM DIFFUSION COEFFICIENT
-QAD TOTAL HEAT ADVECTION
-QADX ZONAL HEAT ADVECTION
-QADY MERIDIONAL HEAT ADVECTION
-QADZ VERTICAL HEAT ADVECTION
-QCDZ VERTICAL HEAT DIFFUSION COEFFICIENT
-QDF TOTAL HEAT DIFFUSION
-QDFH HORIZONTAL HEAT DIFFUSION
-QDFZ VERTICAL HEAT DIFFUSION
-QEVA EVAPORATIVE HEAT
-QFLX SURFACE HEAT FLUX
-QRAD RADIATIVE HEAT
-QSEN SENSIBLE HEAT
-RHO NORMALIZED DENSITY
-RHO0 DENSITY REFERENCED TO SURFACE
-SALI SALINITY
-TAU MAGNITUDE OF WIND STRESS
-UAD TOTAL ADVECTION OF U
-UADX ZONAL ADVECTION OF U
-UADY MERIDIONAL ADVECTION OF U
-UADZ VERTICAL ADVECTION OF U
-UAVZ VERTICALLY AVERAGED ZONAL VELOCITY
-UBP U DUE TO TOTAL PRESSURE
-UBPI U DUE TO BAROCLINIC PRESSURE EFFECTS
-UBPS U DUE TO SURFACE PRESSURE EFFECTS
-UBWI U DUE TO WIND STRESS EFFECTS
-UCOE U DUE TO EXPLICIT CORIOLIS CALCULATION
-UCOI U DUE TO IMPLICIT CORIOLIS CORRECTION
-UDF TOTAL DIFFUSION OF U
-UDFH HORIZONTAL DIFFUSION OF U
-UDFZ VERTICAL DIFFUSION OF U
-VAD TOTAL ADVECTION OF V
-VADX ZONAL ADVECTION OF V
-VADY MERIDIONAL ADVECTION OF V
-VADZ VERTICAL ADVECTION OF V
-VAVZ VERTICALLY AVERAGED MERIDIONAL VELOCITY
-VBP V DUE TO TOTAL PRESSURE
-VBPI V DUE TO BAROCLINIC PRESSURE EFFECTS
-VBPS V DUE TO SURFACE PRESSURE EFFECTS
-VBWI V DUE TO WIND STRESS EFFECTS
-VCOE V DUE TO EXPLICIT CORIOLIS CALCULATION
-VCOI V DUE TO IMPLICIT CORIOLIS CORRECTION
-VDF TOTAL DIFFUSION OF V
-VDFH HORIZONTAL DIFFUSION OF V
-VDFZ VERTICAL DIFFUSION OF V
-W_T VERTICAL VELOCITY COMPUTED ON TS GRID
-W_U VERTICAL VELOCITY COMPUTED ON UV GRID
-SHOW VARIABLES/DIAGNOSTIC Q
-Diagnostic variables:
-name title
-QAD TOTAL HEAT ADVECTION
-QADX ZONAL HEAT ADVECTION
-QADY MERIDIONAL HEAT ADVECTION
-QADZ VERTICAL HEAT ADVECTION
-QCDZ VERTICAL HEAT DIFFUSION COEFFICIENT
-QDF TOTAL HEAT DIFFUSION
-QDFH HORIZONTAL HEAT DIFFUSION
-QDFZ VERTICAL HEAT DIFFUSION
-QEVA EVAPORATIVE HEAT
-QFLX SURFACE HEAT FLUX
-QRAD RADIATIVE HEAT
-QSEN SENSIBLE HEAT
-LET A=i
-SHOW VARIABLES
- Created by DEFINE VARIABLE:
- >>> Definitions that replace any file variable of same name:
- A = I
-CANC VARIABLES/ALL
-SHOW VARIABLES
- Created by DEFINE VARIABLE:
-
-! SHOW MEMORY , LOAD
-SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
-SHOW MEMORY/TEMPORARY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
-data loaded without /PERMANENT:
- SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
- 101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
- 105 /125W 50 /1.7N 1 /10 5 /13-SEP-1982 ... / ... ... / ...
-
-SHOW MEMORY/PERMANENT
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
-data loaded with /PERMANENT:
-SHOW MEMORY/ALL
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
-all data in memory:
- SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
- 101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
- 105 /125W 50 /1.7N 1 /10 5 /13-SEP-1982 ... / ... ... / ...
-
-
-LET A=i
-LOAD/PERM/I=1:5 A
-SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
-SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
- total memory table slots: 500
- total memory blocks: 2000
- memory block size: 12800
-
- number of free memory blocks: 1997
- largest free region: 1997
- number of free regions: 1
- free memory table slots: 497
- number of UN-CACHED variables: 0
- number of /PERMANENT variables: 1
- number of blocks used /PERM: 1
-LOAD/TEMPORARY/I=1:5 A
-SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
-SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
- total memory table slots: 500
- total memory blocks: 2000
- memory block size: 12800
-
- number of free memory blocks: 1998
- largest free region: 1997
- number of free regions: 2
- free memory table slots: 498
- number of UN-CACHED variables: 0
-
-! REPEAT
-REPEAT/L=1:3 LIST/I=1:6/ORDER=X 1/(I+L)
-!-> REPEAT: L=1
- VARIABLE : 1/(I+L)
- SUBSET : 6 points (X)
- T : 1
- 1 2 3 4 5 6
- 1 2 3 4 5 6
- 0.5000 0.3333 0.2500 0.2000 0.1667 0.1429
-!-> REPEAT: L=2
- VARIABLE : 1/(I+L)
- SUBSET : 6 points (X)
- T : 2
- 1 2 3 4 5 6
- 1 2 3 4 5 6
- 0.3333 0.2500 0.2000 0.1667 0.1429 0.1250
-!-> REPEAT: L=3
- VARIABLE : 1/(I+L)
- SUBSET : 6 points (X)
- T : 3
- 1 2 3 4 5 6
- 1 2 3 4 5 6
- 0.2500 0.2000 0.1667 0.1429 0.1250 0.1111
-
-! semicolon-separated command groups
-cancel region
-cancel data/all
-(show data)
- currently SET data sets:
-show data;show data
- currently SET data sets:
- currently SET data sets:
-set region/l=99;show region;repeat/l=1:3 (show data;sh reg);can reg;show reg
-default region:
- X/I is unspecified
- Y/J is unspecified
- Z/K is unspecified
- L=99
- E/M is unspecified
- F/N is unspecified
-!-> REPEAT: L=1
- currently SET data sets:
-default region:
- X/I is unspecified
- Y/J is unspecified
- Z/K is unspecified
- L=1
- E/M is unspecified
- F/N is unspecified
-!-> REPEAT: L=2
- currently SET data sets:
-default region:
- X/I is unspecified
- Y/J is unspecified
- Z/K is unspecified
- L=2
- E/M is unspecified
- F/N is unspecified
-!-> REPEAT: L=3
- currently SET data sets:
-default region:
- X/I is unspecified
- Y/J is unspecified
- Z/K is unspecified
- L=3
- E/M is unspecified
- F/N is unspecified
-default region:
- X/I is unspecified
- Y/J is unspecified
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-((show wind;show reg);repeat/l=1:2 (show reg;list/i=1:3/ord=x (i+5)))
- OPEN ACTIVE
- 1 *
-default region:
- X/I is unspecified
- Y/J is unspecified
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-!-> REPEAT: L=1
-default region:
- X/I is unspecified
- Y/J is unspecified
- Z/K is unspecified
- L=1
- E/M is unspecified
- F/N is unspecified
- VARIABLE : (I+5)
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 6.000 7.000 8.000
-!-> REPEAT: L=2
-default region:
- X/I is unspecified
- Y/J is unspecified
- Z/K is unspecified
- L=2
- E/M is unspecified
- F/N is unspecified
- VARIABLE : (I+5)
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 6.000 7.000 8.000
-
-
-! nested brackets (7/95 - version 4.01)
-use gtbc011,gt4d011
-stat/k=1/l=1/j=40/i=70/d=2 temp[d=1]
-
- TEMPERATURE
- LONGITUDE: 160.5W
- LATITUDE: 1.8S
- DEPTH (m): 5
- TIME: 15-MAR-1983 10:00
- E: N/A
- F: N/A
- DATA SET: ./gtbc011.cdf
-
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 30.082
- Maximum value: 30.082
- Mean value: 30.082 (unweighted average)
-stat/k=1/l=1/j=40/i=70/d=2 temp[d=1,g=u]
-
- TEMPERATURE
- regrid: U
- LONGITUDE: 160W
- LATITUDE: 1.7S
- DEPTH (m): 5
- TIME: 15-MAR-1983 10:00
- E: N/A
- F: N/A
- DATA SET: ./gtbc011.cdf
-
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 30.252
- Maximum value: 30.252
- Mean value: 30.252 (unweighted average)
-! ... note that since the data set times do not overlap the regrid request
-! produces only a single missing value flag
-stat/k=1/l=1/j=40/i=70/d=2 temp[d=1,g=u[d=2]]
-
- TEMPERATURE
- regrid: U[D=gt4d011]
- LONGITUDE: 160W
- LATITUDE: 1.7S
- DEPTH (m): 5
- TIME: 17-AUG-1982 12:00
- E: N/A
- F: N/A
- DATA SET: ./gtbc011.cdf
-
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad data: 1
-stat/k=1/l=1/j=40/i=70/d=2 temp[d=gtbc011,g=u[d=gt4d011]]
-
- TEMPERATURE
- regrid: U[D=gt4d011]
- LONGITUDE: 160W
- LATITUDE: 1.7S
- DEPTH (m): 5
- TIME: 17-AUG-1982 12:00
- E: N/A
- F: N/A
- DATA SET: ./gtbc011.cdf
-
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad data: 1
-
-! test blanks surrounding colons (bn420 - 10/95)
-list/nohead/i=1 : 3 i
- 1 / 1: 1.000
- 2 / 2: 2.000
- 3 / 3: 3.000
-
-! test escapes using back slashes (bn420 - 11/95)
-! (moved to bn420_grave)
-
-say \/help ! "/" should pass through
-/help
-set mode ignore
-say /help
-canc mode ignore
-
-say this\;that ! ";" should pass through
-this;that
-set mode ignore
-say this;that
-this
-canc mode ignore
-
-say yes\! "\!" passes through
-yes! "!" passes through
-say yes! "!" passes through
-yes
-
-! ********* V5.31 **********
-! test continuation line capabilities
-define axis \ ! comment on the command
-/x=1:10:1 \ ! comment on the qualifier
-xax\ ! comment on the argument
- ! this line is significant -- completes the command
-show axis xax; cancel axis xax ! clean up
- name axis # pts start end
- XAX X 10 r 1 10
- Axis span (to cell edges) = 10
-
-! long quotations can span multiple lines
-say "start of quote \ ! quotations left open
-followed by the end of the quote\
-" ! and the closing quote all by itself
-start of quote followed by the end of the quote
-
-! leading blanks are significant on continuation lines
-say "demonstrate that these leading blanks:\
- really are preserved"
-demonstrate that these leading blanks: really are preserved
-
-! continuation prompts are ignored, too
-yes? say "demonstrate that these leading blanks:\
-...? really are preserved"
-demonstrate that these leading blanks: really are preserved
-
-! weird little blank line inputs
-
-
-cancel region ! to make next output predictable
-show region\
-! comment
-default region:
- X/I is unspecified
- Y/J is unspecified
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-
-! a common example: continuation for REPEAT loops
-repeat/i=1:3 (cancel data/all;\
-show data;\
-let a = i;\
-list/nohead a;\
-cancel variables/all;\
-)
-!-> REPEAT: I=1
- currently SET data sets:
- 1.000
-!-> REPEAT: I=2
- currently SET data sets:
- 2.000
-!-> REPEAT: I=3
- currently SET data sets:
- 3.000
-
-! deliberate error -- backslash escapes the bang
-set mode ignore; \! ignore (err cuz bang gets escaped); can mode ignore
-
-! test long input lines with continuation (V5.31)
-! *kob* 6/01 - note shorten this test for long lines to 1024 characters. This
-! because that is the maximum record length for NAG f95. Any
-! longer and the program is aborted
-
-say *** A111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000B111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000C111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000D111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000E11111111122222222223333333333444444444455555555556666666666777777777788888888889999 [...]
-F111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000G111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000H111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000I111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000\
-J111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000
-*** A111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000B111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000C111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000D111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000E111111111222222222233333333334444444444555555555566666666667777777777888888888899999999 [...]
-
-cancel mode metafile !9/97
-
-GO bn_reset
-cancel mode verify
-GO bn_dollar hello ! test command arg
-! test this with GO journal hello
-
-! V510: 3/00 *sh* added tests of backslash escapes and surrounding quotations
-! V532: 5/01 *sh* added tests of 2-digit arguments; made mode ignore stricter
-
-set mode ignore
-message/continue $1
- !-> message/continue hello
-hello
-
-message/continue here is: $1"some text" and some more stuff
- !-> message/continue here is: hello and some more stuff
-here is: hello and some more stuff
-
-message/cont here is a big $1 and $3&some text& ! default provided
- !-> message/cont here is a big hello and some text ! default provided
-here is a big hello and some text
-
-message/cont $3 ! error - no default
-
-message/cont $3"<my error message" ! error - with message
-
-message/cont $*
- !-> message/cont hello
-hello
-
-message/continue here is: $*"some text" and some more stuff
- !-> message/continue here is: hello and some more stuff
-here is: hello and some more stuff
-
-message/continue $no_digit_text ! no substitution
-$no_digit_text
-
-!!!!!!!!!!!!!!!!!!
-
-message/cont $1"|hello|goodbye<my error message"
- !-> message/cont hello
-hello
-
-message/cont $1"greetings|hello|goodbye"
- !-> message/cont hello
-hello
-
-message/cont $1">greetings|hello|goodbye"
- !-> message/cont hello
-hello
-
-message/cont $1">greetings|hello|goodbye<my error message"
- !-> message/cont hello
-hello
-
-message/cont $1">greetings|hello>replacement text|goodbye<my error message"
- !-> message/cont replacement text
-replacement text
-
-! doesn't match on "hello"
-
-message/cont $1"|xxxxx|goodbye<my error message"
-
-message/cont $1"greetings|xxxxx|goodbye"
-
-message/cont $1">greetings|xxxxx|goodbye"
- !-> message/cont greetings
-greetings
-
-message/cont $1">greetings|xxxxx|goodbye<my error message"
- !-> message/cont greetings
-greetings
-
-message/cont $1">greetings|xxxxx>replacement text|goodbye<my error message"
- !-> message/cont greetings
-greetings
-
-! no argument supplied
-
-message/cont $3"|hello|goodbye<my error message"
-
-message/cont $3"greetings|hello|goodbye"
- !-> message/cont greetings
-greetings
-
-message/cont $3">greetings|hello|goodbye"
-
-message/cont $3">greetings|hello|goodbye<my error message"
-
-message/cont $3">greetings|hello>replacement text|goodbye<my error message"
-
-! pathological examples
-!*********
-! works ok with 500 character input buffer
-message/cont here is a very long text $1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx the end 1234567890 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 1234567890
- !-> message/cont here is a very long text hello xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx the end 1234567890 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 1234567890
-here is a very long text hello xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx the end 1234567890 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 1234567890
-message/cont here is a very long text $1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx the end 1234567890 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy [...]
- !-> message/cont here is a very long text hello xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx the end 1234567890 yyyyyyyyyyyyyyyyyyyyyyyyy [...]
-here is a very long text hello xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx the end 1234567890 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 1234567890
-message/cont $3""
-message/cont $3"<"
-message/cont $3"||"
-message/cont $3">"
- !-> message/cont >
->
-message/cont $3"|>|"
-message/cont $3">|"
-message/cont $3"|<"
-message/cont $3"|>"
-
-set mode/last ignore
-
-! bn420 10/95 - added tests that arguments don't get incorrectly broken up
-! ==> EACH OF THESE SHOULD PASS AS A SINGLE ARGUMENT!!!
-go bn_dollar.sub VAR[x=1,y=1] ! should be interpreted as a single arg
-VAR[x=1,y=1] 2-n/a 3-n/a 4-n/a
-go bn_dollar.sub VAR[x=1,g=var2[d=d1],y=1] ! a single arg
-VAR[x=1,g=var2[d=d1],y=1] 2-n/a 3-n/a 4-n/a
-go bn_dollar.sub ((x+y)/(x-5)) ! ignore slash, get single arg
-((x+y)/(x-5)) 2-n/a 3-n/a 4-n/a
-go bn_dollar.sub ((x+y),(x-5)) ! ignore comma, get single arg
-((x+y),(x-5)) 2-n/a 3-n/a 4-n/a
-
-! V510 3/00
-set mode ignore
- message/continue "$1" ! final quote used to get mis-applied
- !-> message/continue "hello" ! final quote used to get mis-applied
-hello
-set mode/last ignore
-go bn_dollar.sub \"hello\" ! quotations as part of argument
-"hello" 2-n/a 3-n/a 4-n/a
-go bn_dollar.sub "\"hello with blanks\"" ! quotations as part of argument
-"hello with blanks" 2-n/a 3-n/a 4-n/a
-go bn_dollar.sub \"((x+y),(x-5))\" ! quotations as part of argument
-"((x+y),(x-5))" 2-n/a 3-n/a 4-n/a
-
-! V5.3 additions 5/01 -- 2-digit arguments in parentheses
-go bn_dollar.sub VAR[x=1,y=1] "arg 2" " " "arg 4" "arg 5"
-VAR[x=1,y=1] arg 2 3-n/a arg 4
-VAR[x=1,y=1]999 arg 2 3-parens
-11-n/a 12-n/a 13-n/a
-41-n/a 42-n/a 43-n/a
-
-go bn_dollar.sub VAR[x=1,y=1] "arg 2" " " "arg 4" "arg 5" \
-"arg 6" "arg 7" "arg 8" "arg 9" "arg 10" \
-"arg 11" "arg 12" " " "arg 14" "arg 15"
-VAR[x=1,y=1] arg 2 3-n/a arg 4
-VAR[x=1,y=1]999 arg 2 3-parens
-arg 11 arg 12 13-n/a
-41-n/a 42-n/a 43-n/a
-
-go bn_dollar.sub VAR[x=1,y=1] "arg 2" " " "arg 4" "arg 5" \
-"arg 6" "arg 7" "arg 8" "arg 9" "arg 10" \
-"arg 11" "arg 12" " " "arg 14" "arg 15" \
-"arg 16" "arg 17" "arg 18" "arg 19" "arg 20" \
-"arg 21" "arg 22" "arg 23" "arg 24" "arg 25" \
-"arg 26" "arg 27" "arg 28" "arg 29" "arg 30" \
-"arg 31" "arg 32" "arg 33" "arg 34" "arg 35" \
-"arg 36" "arg 37" "arg 38" "arg 39" "arg 40" \
-"arg 41" "arg 42" " " "arg 44" "arg 45"
-VAR[x=1,y=1] arg 2 3-n/a arg 4
-VAR[x=1,y=1]999 arg 2 3-parens
-arg 11 arg 12 13-n/a
-star 41 subst 42 43-n/a
-
-! deliberate errors
-set mode ignore
- say $100 ! argument number too large
- say ($100) ! argument number too large
- say ($10)0 ! argument 10 not defined
-set mode/last ignore
-
-! added in bn400
-GO bn_reset
-cancel mode verify
-GO bn_grave
-! bn420_grave
-! benchmark to test evaluation of grave accent-enclosed expressions
-! requires FERRET version 4.00 or later
-
-! added one new command since bn400_grave to test for unwanted leading blanks
-! (a problem noticed on HP)
-! and make sure that grave accents protect "/" and other chars from the parser
-
-! 2/96 - added tests of PRECISION=n abd BAD=string
-
-message/continue "2+2=`2+2`"
- !-> message/continue "2+2=4"
-2+2=4
-
-message/continue "2 squared + 2 squared =`2^2` + `2+2`"
- !-> message/continue "2 squared + 2 squared =4 + 4"
-2 squared + 2 squared =4 + 4
-
-message/continue "50/0 =`50/0`" ! invalid result
- !-> message/continue "50/0 =bad" ! invalid result
-50/0 =bad
-
-repeat/i=1:3 message/continue "I=`I`"
-!-> REPEAT: I=1
- !-> message/continue "I=1"
-I=1
-!-> REPEAT: I=2
- !-> message/continue "I=2"
-I=2
-!-> REPEAT: I=3
- !-> message/continue "I=3"
-I=3
-
-LET start = 5; repeat/i=`start`:`start+2` message/continue "I=`I`"
- !-> repeat/i=5:7 message/continue "I=`I`"
-!-> REPEAT: I=5
- !-> message/continue "I=5"
-I=5
-!-> REPEAT: I=6
- !-> message/continue "I=6"
-I=6
-!-> REPEAT: I=7
- !-> message/continue "I=7"
-I=7
-!cancel region/X ! removed - temporary experiment 3/00 *sh*
-
-message/continue "2+2=``2+2``" ! double grave accents get condensed
- !-> message/continue "2+2=`2+2`" ! double grave accents get condensed
-2+2=`2+2`
-
-message/continue A default substitution: $9"default string|2+2=`2+2`"
- !-> message/continue A default substitution: default string
-A default substitution: default string
-
-message/continue A grave substitution: $9"2+2=`2+2`|replacement string"
- !-> message/continue A grave substitution: 2+2=4
-A grave substitution: 2+2=4
-
-canc var/all;LET XX = 5+4; mess/cont "xx is `xx`"
- !-> mess/cont "xx is 9"
-xx is 9
-
-! 2/96
-message/continue "1/300=`1/300,p=5`"
- !-> message/continue "1/300=0.0033333"
-1/300=0.0033333
-message/continue "1/300=`1/300,p=-5`" ! decimal places
- !-> message/continue "1/300=0.00333" ! decimal places
-1/300=0.00333
-message/continue "1/300=`1/300 , precision=10`"
- !-> message/continue "1/300=0.003333333333"
-1/300=0.003333333333
-message/continue "1/0=`1/0, b=-999`"
- !-> message/continue "1/0=-999"
-1/0=-999
-message/continue "1/0=`1/0 ,BAD=missing`"
- !-> message/continue "1/0=missing"
-1/0=missing
-message/continue "1/3=`1/3, precision=10, BAD=-999`"
- !-> message/continue "1/3=0.3333333333"
-1/3=0.3333333333
-message/continue "1/3=`1/3, BAD=-999 ,precision=10`"
- !-> message/continue "1/3=0.3333333333"
-1/3=0.3333333333
-
-! deliberate error
-set mode ignore_errors
-message/continue "2+2=`2+2" ! unclosed grave accent
-message/continue "2+2=`garbage`" ! invalid expression
-message/continue "3 numbers: `I[i=3:5]`"! not a scalar
-
-! 2/96 deliberate errors
-message/continue "1/3=`1/3,BAD=-999,precision=11`"
- !-> message/continue "1/3=0.33333333333"
-1/3=0.33333333333
-message/continue "1/3=`1/3BAD=-999`"
-message/continue "1/3=`1/3,qBAD=-999`"
-canc mode ignore_errors
-
-! bn420_grave:
-! CHECK THIS TO MAKE SURE THERE ARE NO LEADING BLANKS (ESP. HP!!!)
-let x1 = 0.012954
-let x2 = 7.5E-09
-let x3 = .1
-say >>`x1`<< --- >>`x2`<< --- >>`x3`<<
- !-> MESSAGE/CONTINUE >>0.012954<< --- >>7.5E-09 << --- >>0.1<<
->>0.012954<< --- >>7.5E-09 << --- >>0.1<<
-
-! must recognize "/" inside immediate mode exprn
-list/I=`6/2` i
- !-> list/I=3 i
- VARIABLE : I
- axis ABSTRACT
- X : 3
- 3.000
-
-! test escapes using back slashes (bn420 - 11/95)
-say `2+2` ! normal evaluation
- !-> MESSAGE/CONTINUE 4
-4
-say \`2+2\` ! these grave accents should pass through
-`2+2`
-say \`2+2\`
-`2+2`
-say \`2+`1+1`\` ! should translate 1+1=>2
- !-> MESSAGE/CONTINUE `2+2`
-`2+2`
-set mode ignore
-say \`2+2` ! syntax error
-say `2+2\` ! syntax error
-say `2+2\`+1` ! syntax error
-say \`2+2`+1\` ! syntax error
-canc mode ignore
-
-! test nested brackets mixed with grave accents
-let long = x
-say temp[x=`long[i=1]`:`long[i=160]`:5]
- !-> MESSAGE/CONTINUE temp[x=1:160:5]
-temp[x=1:160:5]
-
-! V5.10 - test new features
-use coads_climatology
-set mode diagnostic
-let sst2 = sst[l=5:8]
-say `sst, return=size` ! should only do a GETGRID
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME NORMAL NORMAL
- !-> MESSAGE/CONTINUE 48600
-48600
-say `sst2,return=lend` ! should inherit L=5:8
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid SST2 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME NORMAL NORMAL
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME NORMAL NORMAL
- !-> MESSAGE/CONTINUE 8
-8
-set mode/last diagnostic
-
-say `sst,return=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `sst,return=T0`
- !-> MESSAGE/CONTINUE 01-JAN-0000 00:00:00
-01-JAN-0000 00:00:00
-say `sst,return=TITLE`
- !-> MESSAGE/CONTINUE SEA SURFACE TEMPERATURE
-SEA SURFACE TEMPERATURE
-say `sst,return=units`
- !-> MESSAGE/CONTINUE Deg C
-Deg C
-say `sst,return=GRID`
- !-> MESSAGE/CONTINUE GSQ1
-GSQ1
-
-say `sst,ret=isize`
- !-> MESSAGE/CONTINUE 180
-180
-say `sst,ret=jsize`
- !-> MESSAGE/CONTINUE 90
-90
-say `sst,ret=ksize`
- !-> MESSAGE/CONTINUE 1
-1
-say `sst,ret=lsize`
- !-> MESSAGE/CONTINUE 3
-3
-
-say `sst,r=istart`
- !-> MESSAGE/CONTINUE 1
-1
-say `sst,r=jstart`
- !-> MESSAGE/CONTINUE 1
-1
-say `sst,r=kstart`
- !-> MESSAGE/CONTINUE 0
-0
-say `sst,r=lstart`
- !-> MESSAGE/CONTINUE 1
-1
-
-say `sst,R=iend`
- !-> MESSAGE/CONTINUE 180
-180
-say `sst,R=jend`
- !-> MESSAGE/CONTINUE 90
-90
-say `sst,R=kend`
- !-> MESSAGE/CONTINUE 0
-0
-say `sst,R=LEND`
- !-> MESSAGE/CONTINUE 3
-3
-
-say `sst,return=xstart`
- !-> MESSAGE/CONTINUE 21E
-21E
-say `sst,return=ystart`
- !-> MESSAGE/CONTINUE 89S
-89S
-say `sst,return=zstart`
- !-> MESSAGE/CONTINUE *
-*
-say `sst,return=tstart`
- !-> MESSAGE/CONTINUE 16-JAN 06:00:00
-16-JAN 06:00:00
-
-say `sst,return=xend`
- !-> MESSAGE/CONTINUE 19E(379)
-19E(379)
-say `sst,return=yend`
- !-> MESSAGE/CONTINUE 89N
-89N
-say `sst,return=zend`
- !-> MESSAGE/CONTINUE *
-*
-say `sst,return=tend`
- !-> MESSAGE/CONTINUE 17-MAR 02:58:12
-17-MAR 02:58:12
-
-say `sst,return=xunit`
- !-> MESSAGE/CONTINUE degrees_east
-degrees_east
-say `sst,return=junits`
- !-> MESSAGE/CONTINUE degrees_north
-degrees_north
-say `sst,return=kunit`
- !-> MESSAGE/CONTINUE
-
-say `sst,return=tunits`
- !-> MESSAGE/CONTINUE hour
-hour
-
-say `sst^2,return=size`
- !-> MESSAGE/CONTINUE 48600
-48600
-say `sst[L=1]+sst,return=lsize`
- !-> MESSAGE/CONTINUE 3
-3
-say `sst[L=1:3 at ave],return=lsize`
- !-> MESSAGE/CONTINUE 1
-1
-say `sst[L=1:3 at ave]+sst,return=lsize`
- !-> MESSAGE/CONTINUE 3
-3
-
-! test case of grid-changing variables returning an imposed (ABSTRACT) axes
-let a = XSEQUENCE(J[j=1:5])
-set mode diagnostic
-say `a,return=isize` ! full evaluation occurs
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C01,V08 C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C11,V08 C: 11 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 (C11,V08 C: 11 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- -DELETE X M: 3 dset: 0 I: 160 160 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C01,V08 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C11,V08 C: 10 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo J M: 3 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- !-> MESSAGE/CONTINUE 5
-5
-say `a[i=2:3],return=isize` ! full evaluation is bypassed
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- !-> MESSAGE/CONTINUE 2
-2
-say `a[i=100:200],return=isize` ! WRONG! because full evaluation is bypassed
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- !-> MESSAGE/CONTINUE 101
-101
-set mode/last diagnostic
-
-! deliberate errors
-set mode ignore_errors
-say `1*/3` ! deliberate syntax error
-say `sst*/3,return=lunits`
-say `sst,rr=size` ! could be an error ...
- !-> MESSAGE/CONTINUE 48600
-48600
-say `sst,return=Xsize`
-say `sst,return=trash`
-set mode/last ignore_errors
-
-
-! added in bn420
-GO bn_reset
-cancel mode verify
-GO bn_letd
-! bn420_letd.jnl
-! 9/1/95
-
-! test LET definitions with the /D qualifier: LET, SHOW, SET VAR, CANCEL
-! .. not a particularly inspired benchmark, but, what the heck
-
-! 9/2005 acm
-! test for the behavior of bug 1336 by listing contents of variables;
-! tests with SHOW VAR did not detect the bug.
-
-sp touch snoopy.dat
-
-! set and show 3 types of variables
-let a = global_pre-empt
-show var
- Created by DEFINE VARIABLE:
- >>> Definitions that replace any file variable of same name:
- A = GLOBAL_PRE-EMPT
-show var/d
-let/d a = global_default
-show var
- Created by DEFINE VARIABLE:
- >>> Definitions that replace any file variable of same name:
- A = GLOBAL_PRE-EMPT
- >>> Definitions used if no file variable of this name exists:
- A (/D default) = GLOBAL_DEFAULT
-show var/d
- A (/D default) = GLOBAL_DEFAULT
-USE clim_airt_lev
-let/d=clim_airt_lev a = clim_airt_lev-specific
-set mode ignore; let/d=noexist a = b; set mode/last ignore
-show var
- Created by DEFINE VARIABLE:
- A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
- >>> Definitions that replace any file variable of same name:
- A = GLOBAL_PRE-EMPT
- >>> Definitions used if no file variable of this name exists:
- A (/D default) = GLOBAL_DEFAULT
-show var/d=clim_airt_lev
- A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
-show data clim_airt_lev
- currently SET data sets:
- 1> ./clim_airt_lev.cdf (default)
- name title I J K L M N
- AIRT CLIMATOLOGICAL AIR TEMPERATURE 1:160 1:100 ... 1:12 ... ...
- ------------------------------
- A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
-
-use gt4d011
-let/d=2 a = specific-to-gt4d
-show var
- Created by DEFINE VARIABLE:
- A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
- A[D=gt4d011] = SPECIFIC-TO-GT4D
- >>> Definitions that replace any file variable of same name:
- A = GLOBAL_PRE-EMPT
- >>> Definitions used if no file variable of this name exists:
- A (/D default) = GLOBAL_DEFAULT
-show var/d=clim_airt_lev
- A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
-show var airt
-list/l=1/x=180/y=0 airt[d=clim_airt_lev]
- VARIABLE : CLIMATOLOGICAL AIR TEMPERATURE (deg. C)
- FILENAME : clim_airt_lev.cdf
- LONGITUDE: 179.5E
- LATITUDE : 0.2S
- TIME : 12-JAN-1982 12:00
- 27.14
-
-! data set-specific definition
-let/d=clim_airt_lev airt = 1
-list/l=1/x=180/y=0 airt[d=clim_airt_lev]
- VARIABLE : 1
- FILENAME : clim_airt_lev.cdf
- 1.000
-set mode ignore; list/l=1/x=180/y=0 airt[d=gt4d011]; set mode/last ignore
-
-! default definition where no data set variable exists
-let/d airt = 2
-list/l=1/x=180/y=0 airt[d=clim_airt_lev]
- VARIABLE : 1
- FILENAME : clim_airt_lev.cdf
- 1.000
-list/l=1/x=180/y=0 airt[d=gt4d011]
- VARIABLE : 2
- FILENAME : gt4d011.cdf
- 2.000
-
-! global def'n replacing all file variables (but not data-set specific uvars)
-let airt = 2
-list/l=1/x=180/y=0 airt[d=clim_airt_lev]
- VARIABLE : 1
- FILENAME : clim_airt_lev.cdf
- 1.000
-list/l=1/x=180/y=0 airt[d=gt4d011]
- VARIABLE : 2
- 2.000
-canc data/all
-list/l=1/x=180/y=0 airt
- VARIABLE : 2
- 2.000
-show var
- Created by DEFINE VARIABLE:
- >>> Definitions that replace any file variable of same name:
- AIRT = 2
- A = GLOBAL_PRE-EMPT
- >>> Definitions used if no file variable of this name exists:
- AIRT (/D default) = 2
- A (/D default) = GLOBAL_DEFAULT
-
-! SET VARIABLE testing
-USE clim_airt_lev
-let t1 = 1
-let/d t2 = 2
-let/d=clim_airt_lev t3 = 3
-file/var=t4,t3 snoopy.dat
-set var/titl=test1 t1
-set var/titl=test2 t2
-set var/titl=test3 t3[d=clim_airt_lev]
-set var/titl=test4 t4[d=snoopy.dat]
-set var/titl=test3 t3[d=snoopy.dat]
-show data
- currently SET data sets:
- 1> ./clim_airt_lev.cdf
- name title I J K L M N
- AIRT CLIMATOLOGICAL AIR TEMPERATURE 1:160 1:100 ... 1:12 ... ...
- ------------------------------
- T3[D=clim_airt_lev] = 3
-
- 2> ./snoopy.dat (default)
- name title I J K L M N
- T4 test4 1:20480 ... ... ... ... ...
- T3 test3 1:20480 ... ... ... ... ...
-
-show data/full 1
- currently SET data sets:
- 1> ./clim_airt_lev.cdf
-
- name title I J K L M N
- AIRT CLIMATOLOGICAL AIR TEMPERATURE 1:160 1:100 ... 1:12 ... ...
- deg. C on grid GGT1 with -1.E+34 for missing data
- X=130E:70W Y=30S:50N
-
- time range: 12-JAN-1982 12:00 to 13-DEC-1982 02:00
- ------------------------------
- T3[D=clim_airt_lev] = 3
- "test3"
-
-show var
- Created by DEFINE VARIABLE:
- T3[D=clim_airt_lev] = 3
- "test3"
- >>> Definitions that replace any file variable of same name:
- T1 = 1
- "test1"
- AIRT = 2
- A = GLOBAL_PRE-EMPT
- >>> Definitions used if no file variable of this name exists:
- T2 (/D default) = 2
- "test2"
- AIRT (/D default) = 2
- A (/D default) = GLOBAL_DEFAULT
-
-! selective cancelling
-canc var/d/all
-show var ! LET/D, only, deleted
- Created by DEFINE VARIABLE:
- T3[D=clim_airt_lev] = 3
- "test3"
- >>> Definitions that replace any file variable of same name:
- T1 = 1
- "test1"
- AIRT = 2
- A = GLOBAL_PRE-EMPT
-can var t3[d=clim_airt_lev]
-show var
- Created by DEFINE VARIABLE:
- >>> Definitions that replace any file variable of same name:
- T1 = 1
- "test1"
- AIRT = 2
- A = GLOBAL_PRE-EMPT
-set mode ignore; can var; set mode/last ignore
-can var/all
-show var
- Created by DEFINE VARIABLE:
-
-! cancelling various categiries in various ways
-let/d=clim_airt_lev t1 = 1
-let/d=clim_airt_lev t2 = 2
-let/d=clim_airt_lev t3 = 3
-show var
- Created by DEFINE VARIABLE:
- T3[D=clim_airt_lev] = 3
- T2[D=clim_airt_lev] = 2
- T1[D=clim_airt_lev] = 1
-can var/d=clim_airt_lev t1
-show var
- Created by DEFINE VARIABLE:
- T3[D=clim_airt_lev] = 3
- T2[D=clim_airt_lev] = 2
-can var/all/d=clim_airt_lev
-show var
- Created by DEFINE VARIABLE:
-let/d=clim_airt_lev t1 = 1
-let/d=clim_airt_lev t2 = 2
-let/d=clim_airt_lev t3 = 3
-can var/d=clim_airt_lev ! implied "/all"
-show var
- Created by DEFINE VARIABLE:
-let/d t1 = 1
-let/d t2 = 2
-let/d t3 = 3
-can var/d ! implied/d/all
-show var
- Created by DEFINE VARIABLE:
-
-! test for the behavior of bug 1336 by listing contents of variables;
-
-let v1 = x[x=1:8]
-let v2 = x[x=1:8] + y[y=1:3]
-save/clobber/file=v12file.nc v1, v2
-save/clobber/file=v1file.nc/i=3:8 v1
-can var v1
-can var v2
-
-use v12file
-use v1file
-
-list v1 ! from vfile
- VARIABLE : X[X=1:8]
- FILENAME : v1file.nc
- SUBSET : 6 points (X)
- 3 / 1: 3.000
- 4 / 2: 4.000
- 5 / 3: 5.000
- 6 / 4: 6.000
- 7 / 5: 7.000
- 8 / 6: 8.000
-let/d v1 = 0
-let/d v2 = 2
-
-list v1 ! v1 exists in default data set so use dataset variable
- VARIABLE : X[X=1:8]
- FILENAME : v1file.nc
- SUBSET : 6 points (X)
- 3 / 1: 3.000
- 4 / 2: 4.000
- 5 / 3: 5.000
- 6 / 4: 6.000
- 7 / 5: 7.000
- 8 / 6: 8.000
-
-list v2 ! v2 does not exist in default dset so use let/d definition
- VARIABLE : 2
- FILENAME : v1file.nc
- 2.000
-
-let/d q = v2
-list q
- VARIABLE : V2
- FILENAME : v1file.nc
- 2.000
-list q[d=v12file]
- VARIABLE : V2
- FILENAME : v12file.nc
- SUBSET : 8 by 3 points (X-Y)
- 1 2 3 4 5 6 7 8
- 1 2 3 4 5 6 7 8
- 1 / 1: 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00
- 2 / 2: 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00
- 3 / 3: 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00
-
-
-! added in bn430
-GO bn_reset
-cancel mode verify
-GO bn_if
-! bn430_if
-! 5/6/96
-! 5/22/96 - added nested multi-line IF with nesting in REJECTED clause
-
-! 8/97 bn430_if -> bn450_if: added test of symbol substitution with IF
-
-CANC MODE VERIFY
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->all is well after checking TRUE
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->all is well after checking FALSE
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->CORRECT
----->all is well after checking single line IFs
----->CORRECT
----->CORRECT, again
-100
-1
-2
----->all is well after command group and loop tests
-CORRECT:sym sub
----->CORRECT
----->CORRECT again
----->all is well
----->CORRECT
----->all is well
----->CORRECT: took ELSE
----->CORRECT again
----->all is well
----->CORRECT: took ELIF
----->all is well
----->CORRECT
----->all is well following multi-line IF tests
----->all is well following weird multi-line IF
--->CORRECT: nested single line IFs
--->CORRECT: nested single line IFs
--->CORRECT: nested single line IFs
----->CORRECT: took ELIF -- starting nested IF
----->CORRECT: took ELSE inside nested IF
-----> CORRECT: took non-nested IF clause
----->all is well following nested multi-line IF
----->CORRECT: took ELIF -- starting single line nested IF
----->all is well following embedded single line IF
----->CORRECT
----->nested: all is well after single line IF
----->CORRECT
----->CORRECT, again
----->nested: all is well after command group and loop tests
----->CORRECT
----->CORRECT again
----->nested: all is well after multi-line IF
->>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<
----->... now inside of nested IF clause
----->CORRECT
----->all is well following unclosed nested IF
->>> DELIBERATE ERRORS <<<
-SAY ">>> --> DELIBERATE WARNING: UNCLOSED IF <<<"
->>> --> DELIBERATE WARNING: UNCLOSED IF <<<
-IF yes THEN
- say ---->... now inside of IF clause
----->... now inside of IF clause
-
-
-
-
-
-GO bn_reset
-cancel mode verify
-GO bn_expressions
-! bn450_expressions.JNL
-! test all manner of expressions
-! V450 - commented out MODE POLISH test -- mode was eliminated
-! V530 - new pseudo-variables XBOXLO, YBOXHI, etc.
-
-! test infix expressions
-! 1/96 - commented out: CANCEL MODE POLISH
-
-! test grid creation for a variety of combos
-let c1 = 2
-let i1 = i
-let k1 = k
-
-! . . . constants
-list 4
- VARIABLE : constant
- 4.000
-list 2 + 2
- VARIABLE : 2 + 2
- 4.000
-list c1 + 2
- VARIABLE : C1 + 2
- 4.000
-list 2 + c1
- VARIABLE : 2 + C1
- 4.000
-list c1 + c1
- VARIABLE : C1 + C1
- 4.000
-
-! ... constant plus variable or pseudovariable
-set reg/i=1:3
-list/order=x i + 2
- VARIABLE : I + 2
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x 2 + i
- VARIABLE : 2 + I
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x i1 + 2
- VARIABLE : I1 + 2
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x 2 + i1
- VARIABLE : 2 + I1
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x i + c1
- VARIABLE : I + C1
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x c1 + i
- VARIABLE : C1 + I
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x i1 + c1
- VARIABLE : I1 + C1
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x c1 + i1
- VARIABLE : C1 + I1
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-
-! ... constant plus variable or pseudovariable with modified region
-set reg/i=11:13
-list/order=x i[i=1:3] + 2
- VARIABLE : I[I=1:3] + 2
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x 2 + i[i=1:3]
- VARIABLE : 2 + I[I=1:3]
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x i1[i=1:3] + 2
- VARIABLE : I1[I=1:3] + 2
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x 2 + i1[i=1:3]
- VARIABLE : 2 + I1[I=1:3]
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x i[i=1:3] + c1
- VARIABLE : I[I=1:3] + C1
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x c1 + i[i=1:3]
- VARIABLE : C1 + I[I=1:3]
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x i1[i=1:3] + c1
- VARIABLE : I1[I=1:3] + C1
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x c1 + i1[i=1:3]
- VARIABLE : C1 + I1[I=1:3]
- SUBSET : 3 points (X)
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-
-! ... two variables or pseudovariables
-set reg/i=1:3/k=2
-list/order=x i + k
- VARIABLE : I + K
- SUBSET : 3 points (X)
- Z : 2
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x i + k1
- VARIABLE : I + K1
- SUBSET : 3 points (X)
- Z : 2
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x k1 + i
- VARIABLE : K1 + I
- SUBSET : 3 points (X)
- Z : 2
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-
-! ... two variables or pseudovariables with modified region
-set reg/i=1:3/k=1
-list/order=x i + k[k=2]
- VARIABLE : I + K[K=2]
- SUBSET : 3 points (X)
- Z : 2
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-list/order=x i + k1[k=2]
- VARIABLE : I + K1[K=2]
- SUBSET : 3 points (X)
- Z : 2
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-! ... crash here ...
-list/order=x k1[k=2] + i
- VARIABLE : K1[K=2] + I
- SUBSET : 3 points (X)
- Z : 2
- 1 2 3
- 1 2 3
- 3.000 4.000 5.000
-
-
-! operators
-CANCEL REGION
-SET REGION/I=1:5/J=1:5
-LIST 10+2
- VARIABLE : 10+2
- 12.00
-LIST/ORDER=X I
- VARIABLE : I
- axis ABSTRACT
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.000 2.000 3.000 4.000 5.000
-LIST/ORDER=X I*3
- VARIABLE : I*3
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 3.00 6.00 9.00 12.00 15.00
-LIST/ORDER=X I/3
- VARIABLE : I/3
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.333 0.667 1.000 1.333 1.667
-LIST/ORDER=X I+3
- VARIABLE : I+3
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 4.000 5.000 6.000 7.000 8.000
-LIST/ORDER=X I-3
- VARIABLE : I-3
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- -2.000 -1.000 0.000 1.000 2.000
-LIST/ORDER=X I^3
- VARIABLE : I^3
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.0 8.0 27.0 64.0 125.0
-LIST/ORDER=X I EQ 3
- VARIABLE : I EQ 3
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.000 0.000 1.000 0.000 0.000
-LIST/ORDER=X I NE 3
- VARIABLE : I NE 3
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.000 1.000 0.000 1.000 1.000
-LIST/ORDER=X I GT 3
- VARIABLE : I GT 3
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.000 0.000 0.000 1.000 1.000
-LIST/ORDER=X I GE 3
- VARIABLE : I GE 3
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.000 0.000 1.000 1.000 1.000
-LIST/ORDER=X I LT 3
- VARIABLE : I LT 3
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.000 1.000 0.000 0.000 0.000
-LIST/ORDER=X I LE 3
- VARIABLE : I LE 3
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.000 1.000 1.000 0.000 0.000
-LIST/ORDER=X (I LT 3) OR (I GT 3)
- VARIABLE : (I LT 3) OR (I GT 3)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.000 1.000 0.000 1.000 1.000
-LIST/ORDER=X (I LE 3) AND (I GE 3)
- VARIABLE : (I LE 3) AND (I GE 3)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.000 0.000 1.000 0.000 0.000
-LIST/ORDER=X (I+3)*3 - 9 - (I+I+I)
- VARIABLE : (I+3)*3 - 9 - (I+I+I)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.0000 0.0000 0.0000 0.0000 0.0000
-LIST/ORDER=X J * ( (I+3)*3 - 9 - (I+I+I) )
- VARIABLE : J * ( (I+3)*3 - 9 - (I+I+I) )
- SUBSET : 5 by 5 points (X-Y)
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: 0.0000 0.0000 0.0000 0.0000 0.0000
- 2 / 2: 0.0000 0.0000 0.0000 0.0000 0.0000
- 3 / 3: 0.0000 0.0000 0.0000 0.0000 0.0000
- 4 / 4: 0.0000 0.0000 0.0000 0.0000 0.0000
- 5 / 5: 0.0000 0.0000 0.0000 0.0000 0.0000
-
-! IF, THEN, ELSE
-LIST/ORDER=X IF I GT 3 THEN I
- VARIABLE : IF I GT 3 THEN I
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- .... .... .... 4.000 5.000
-LIST/ORDER=X IF I GT 3 THEN I ELSE 0
- VARIABLE : IF I GT 3 THEN I ELSE 0
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.000 0.000 0.000 4.000 5.000
-! error: nested IF tests
-SET MODE IGNORE_ERRORS
-LIST/ORDER=X IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333 ! err
-LET A = IF I LT 5 THEN I ELSE -9 ! err
-SET MODE/LAST IGNORE_ERRORS
-LET A = IF I LT 5 THEN I ELSE (-9)
-LIST/ORDER=X IF I GT 3 THEN ( A ) ELSE .333
- VARIABLE : IF I GT 3 THEN ( A ) ELSE .333
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.333 0.333 0.333 4.000 -9.000
-
-! functions
-LIST/ORDER=X MAX(I,3)
- VARIABLE : MAX(I,3)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 3.000 3.000 3.000 4.000 5.000
-LIST/ORDER=X MIN(I,3)
- VARIABLE : MIN(I,3)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.000 2.000 3.000 3.000 3.000
-LIST/ORDER=X INT(I/3)
- VARIABLE : INT(I/3)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.000 0.000 1.000 1.000 1.000
-LIST/ORDER=X ABS(I-3)
- VARIABLE : ABS(I-3)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 2.000 1.000 0.000 1.000 2.000
-LIST/ORDER=X EXP(I)
- VARIABLE : EXP(I)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 2.7 7.4 20.1 54.6 148.4
-LIST/ORDER=X LN(I)
- VARIABLE : LN(I)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.000 0.693 1.099 1.386 1.609
-LIST/ORDER=X LN(EXP(I))
- VARIABLE : LN(EXP(I))
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.000 2.000 3.000 4.000 5.000
-LIST/ORDER=X EXP(LN(I))
- VARIABLE : EXP(LN(I))
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.000 2.000 3.000 4.000 5.000
-LIST/ORDER=X LOG(I)
- VARIABLE : LOG(I)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.0000 0.3010 0.4771 0.6021 0.6990
-LIST/ORDER=X LOG(10^I)
- VARIABLE : LOG(10^I)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.000 2.000 3.000 4.000 5.000
-LIST/ORDER=X 10^LOG(I)
- VARIABLE : 10^LOG(I)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.000 2.000 3.000 4.000 5.000
-LIST/ORDER=X SIN(I)
- VARIABLE : SIN(I)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.8415 0.9093 0.1411 -0.7568 -0.9589
-LIST/ORDER=X ASIN(SIN(I/3))
- VARIABLE : ASIN(SIN(I/3))
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.333 0.667 1.000 1.333 1.475
-LIST/ORDER=X COS(I)
- VARIABLE : COS(I)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.5403 -0.4161 -0.9900 -0.6536 0.2837
-LIST/ORDER=X ACOS(COS(I/3))
- VARIABLE : ACOS(COS(I/3))
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.333 0.667 1.000 1.333 1.667
-LIST/ORDER=X TAN(I)
- VARIABLE : TAN(I)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.557 -2.185 -0.143 1.158 -3.381
-LIST/ORDER=X ATAN(TAN(I/3))
- VARIABLE : ATAN(TAN(I/3))
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.333 0.667 1.000 1.333 -1.475
-LIST/J=1:3 ATAN2(J-1,I-1)
- VARIABLE : ATAN2(J-1,I-1)
- SUBSET : 5 by 3 points (X-Y)
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: .... 0.000 0.000 0.000 0.000
- 2 / 2: 1.571 0.785 0.464 0.322 0.245
- 3 / 3: 1.571 1.107 0.785 0.588 0.464
-LIST/ORDER=X MOD(I,3)
- VARIABLE : MOD(I,3)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.000 2.000 0.000 1.000 2.000
-LIST/ORDER=X IGNORE0(I-3)
- VARIABLE : IGNORE0(I-3)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- -2.000 -1.000 .... 1.000 2.000
-LIST/ORDER=X MISSING( IGNORE0(I-3),-9 )
- VARIABLE : MISSING( IGNORE0(I-3),-9 )
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- -2.000 -1.000 -9.000 1.000 2.000
-LIST/ORDER=X RANDU(I)
- VARIABLE : RANDU(I)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.3376 0.7238 0.0304 0.8499 0.1694
-LIST/ORDER=X RANDN(I)
- VARIABLE : RANDN(I)
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- -0.267 0.283 -0.323 1.217 -0.304
-
-! syntax errors
-SET MODE IGNORE_ERRORS
-load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
-SET MODE/LAST IGNORE_ERRORS
-
-! commented out 1/96
-!! test a little postfix, too
-!SET MODE POLISH
-!SET REGION/I=1:5/J=1:5
-!LIST/ORDER=X I 3 LE I 3 GE AND
-!LIST/ORDER=X I 3 + 3 * 9 - I I I + + -
-!LIST/J=1:3 J 1 - I 1 - ATAN2
-!! ... bug - negative constants not processed properly ...
-!SET MODE IGNORE_ERRORS
-!LIST/ORDER=X I 3 - IGNORE0 -9 MISSING
-!SET MODE/LAST IGNORE_ERRORS
-!LIST/ORDER=X I 3 - IGNORE0 0 9 - MISSING
-!CANCEL MODE POLISH
-
-! test formatted output where the output field is too small
-LIST/I=1:3/FORMAT=(F6.2) 1/(i-2) ! single column test
- VARIABLE : 1/(I-2)
- BAD FLAG : -1.E+34
- SUBSET : 3 points (X)
- X : 0.5 to 3.5
- -1.00
-******
- 1.00
-LIST/I=1:3/FORMAT=(2F6.2) 1/(i-2),2/(i-2) ! multi-column test
- X: 0.5 to 3.5
- Column 1: EX#1 is 1/(I-2)
- Column 2: EX#2 is 2/(I-2)
- -1.00 -2.00
-************
- 1.00 2.00
-
-! test new grid box limit pseudo-variables
-LIST/I=5:7 XBOXLO, XBOXHI
- X: 4.5 to 7.5
- Column 1: XBOXLO is XBOXLO (axis ABSTRACT)
- Column 2: XBOXHI is XBOXHI (axis ABSTRACT)
- XBOXLO XBOXHI
-5 / 5: 4.500 5.500
-6 / 6: 5.500 6.500
-7 / 7: 6.500 7.500
-LIST/J=5:7 YBOXLO, YBOXHI
- Y: 4.5 to 7.5
- Column 1: YBOXLO is YBOXLO (axis ABSTRACT)
- Column 2: YBOXHI is YBOXHI (axis ABSTRACT)
- YBOXLO YBOXHI
-5 / 5: 4.500 5.500
-6 / 6: 5.500 6.500
-7 / 7: 6.500 7.500
-LIST/K=5:7 ZBOXLO, ZBOXHI
- Z: 4.5 to 7.5
- Column 1: ZBOXLO is ZBOXLO (axis ABSTRACT)
- Column 2: ZBOXHI is ZBOXHI (axis ABSTRACT)
- ZBOXLO ZBOXHI
-5 / 5: 4.500 5.500
-6 / 6: 5.500 6.500
-7 / 7: 6.500 7.500
-LIST/L=5:7 TBOXLO, TBOXHI
- T: 4.5 to 7.5
- Column 1: TBOXLO is TBOXLO (axis ABSTRACT)
- Column 2: TBOXHI is TBOXHI (axis ABSTRACT)
- TBOXLO TBOXHI
-5 / 5: 4.500 5.500
-6 / 6: 5.500 6.500
-7 / 7: 6.500 7.500
-
-GO bn_reset
-cancel mode verify
-GO bn_geometry
-! bn200_geometry.JNL
-! benchmark various geometries for accessing FERRET data
-! similar tests are performed on:
-! abstract variable
-! (user variable) transformed file variable
-! memory-resident file variable
-! disk-resident file variable
-! diagnostic variable
-
-! ******** abstract variable ************
-LET v_abst = i + 10*j + 100*k + 1000*l
-DEFINE REGION/I=1 IPT
-DEFINE REGION/J=1 JPT
-DEFINE REGION/K=1 KPT
-DEFINE REGION/L=1 LPT
-DEFINE REGION/I=1:5/J=1:5/K=1:5/L=1:5 R4D
-SET REG R4D
-SET EXPRESSION v_abst
-GO bn_geometry.sub
-! BN200_GEOMETRY.SUB
-! list the variable vtest on variuos geometries
-
-! this routine assumes that a 4-D region and an expression are already set
-
-! lines of data
-LIST/@JPT/@KPT/@LPT/ORDER=X
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 points (X)
- Y : 1
- Z : 1
- T : 1
- 1 2 3 4 5
- 1 2 3 4 5
- 1111. 1112. 1113. 1114. 1115.
-LIST/@IPT/@KPT/@LPT/ORDER=Y
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 points (Y)
- X : 1
- Z : 1
- T : 1
- 1 2 3 4 5
- 1 2 3 4 5
- 1111. 1121. 1131. 1141. 1151.
-LIST/@IPT/@JPT/@LPT/ORDER=Z
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 points (Z)
- X : 1
- Y : 1
- T : 1
- 1 2 3 4 5
- 1 2 3 4 5
- 1111. 1211. 1311. 1411. 1511.
-LIST/@IPT/@JPT/@KPT/ORDER=T
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 points (T)
- X : 1
- Y : 1
- Z : 1
- 1 2 3 4 5
- 1 2 3 4 5
- 1111. 2111. 3111. 4111. 5111.
-
-! planes of data
-LIST/@KPT/@LPT !XY
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 by 5 points (X-Y)
- Z : 1
- T : 1
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: 1111. 1112. 1113. 1114. 1115.
- 2 / 2: 1121. 1122. 1123. 1124. 1125.
- 3 / 3: 1131. 1132. 1133. 1134. 1135.
- 4 / 4: 1141. 1142. 1143. 1144. 1145.
- 5 / 5: 1151. 1152. 1153. 1154. 1155.
-LIST/@JPT/@LPT !XZ
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 by 5 points (X-Z)
- Y : 1
- T : 1
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: 1111. 1112. 1113. 1114. 1115.
- 2 / 2: 1211. 1212. 1213. 1214. 1215.
- 3 / 3: 1311. 1312. 1313. 1314. 1315.
- 4 / 4: 1411. 1412. 1413. 1414. 1415.
- 5 / 5: 1511. 1512. 1513. 1514. 1515.
-LIST/@JPT/@KPT !XT
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 by 5 points (X-T)
- Y : 1
- Z : 1
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: 1111. 1112. 1113. 1114. 1115.
- 2 / 2: 2111. 2112. 2113. 2114. 2115.
- 3 / 3: 3111. 3112. 3113. 3114. 3115.
- 4 / 4: 4111. 4112. 4113. 4114. 4115.
- 5 / 5: 5111. 5112. 5113. 5114. 5115.
-LIST/@IPT/@LPT !YZ
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 by 5 points (Y-Z)
- X : 1
- T : 1
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: 1111. 1121. 1131. 1141. 1151.
- 2 / 2: 1211. 1221. 1231. 1241. 1251.
- 3 / 3: 1311. 1321. 1331. 1341. 1351.
- 4 / 4: 1411. 1421. 1431. 1441. 1451.
- 5 / 5: 1511. 1521. 1531. 1541. 1551.
-LIST/@IPT/@KPT !YT
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 by 5 points (Y-T)
- X : 1
- Z : 1
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: 1111. 1121. 1131. 1141. 1151.
- 2 / 2: 2111. 2121. 2131. 2141. 2151.
- 3 / 3: 3111. 3121. 3131. 3141. 3151.
- 4 / 4: 4111. 4121. 4131. 4141. 4151.
- 5 / 5: 5111. 5121. 5131. 5141. 5151.
-LIST/@IPT/@JPT !ZT
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 by 5 points (Z-T)
- X : 1
- Y : 1
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: 1111. 1211. 1311. 1411. 1511.
- 2 / 2: 2111. 2211. 2311. 2411. 2511.
- 3 / 3: 3111. 3211. 3311. 3411. 3511.
- 4 / 4: 4111. 4211. 4311. 4411. 4511.
- 5 / 5: 5111. 5211. 5311. 5411. 5511.
-
-! cubes of data
-LIST/@LPT
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 by 5 by 5 points (X-Y-Z)
- T : 1
- 1 2 3 4 5
- 1 2 3 4 5
- ---- K:1 Z: 1
- 1 / 1: 1111. 1112. 1113. 1114. 1115.
- 2 / 2: 1121. 1122. 1123. 1124. 1125.
- 3 / 3: 1131. 1132. 1133. 1134. 1135.
- 4 / 4: 1141. 1142. 1143. 1144. 1145.
- 5 / 5: 1151. 1152. 1153. 1154. 1155.
- ---- K:2 Z: 2
- 1 / 1: 1211. 1212. 1213. 1214. 1215.
- 2 / 2: 1221. 1222. 1223. 1224. 1225.
- 3 / 3: 1231. 1232. 1233. 1234. 1235.
- 4 / 4: 1241. 1242. 1243. 1244. 1245.
- 5 / 5: 1251. 1252. 1253. 1254. 1255.
- ---- K:3 Z: 3
- 1 / 1: 1311. 1312. 1313. 1314. 1315.
- 2 / 2: 1321. 1322. 1323. 1324. 1325.
- 3 / 3: 1331. 1332. 1333. 1334. 1335.
- 4 / 4: 1341. 1342. 1343. 1344. 1345.
- 5 / 5: 1351. 1352. 1353. 1354. 1355.
- ---- K:4 Z: 4
- 1 / 1: 1411. 1412. 1413. 1414. 1415.
- 2 / 2: 1421. 1422. 1423. 1424. 1425.
- 3 / 3: 1431. 1432. 1433. 1434. 1435.
- 4 / 4: 1441. 1442. 1443. 1444. 1445.
- 5 / 5: 1451. 1452. 1453. 1454. 1455.
- ---- K:5 Z: 5
- 1 / 1: 1511. 1512. 1513. 1514. 1515.
- 2 / 2: 1521. 1522. 1523. 1524. 1525.
- 3 / 3: 1531. 1532. 1533. 1534. 1535.
- 4 / 4: 1541. 1542. 1543. 1544. 1545.
- 5 / 5: 1551. 1552. 1553. 1554. 1555.
-LIST/@KPT
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 by 5 by 5 points (X-Y-T)
- Z : 1
- 1 2 3 4 5
- 1 2 3 4 5
- ---- L:1 T: 1
- 1 / 1: 1111. 1112. 1113. 1114. 1115.
- 2 / 2: 1121. 1122. 1123. 1124. 1125.
- 3 / 3: 1131. 1132. 1133. 1134. 1135.
- 4 / 4: 1141. 1142. 1143. 1144. 1145.
- 5 / 5: 1151. 1152. 1153. 1154. 1155.
- ---- L:2 T: 2
- 1 / 1: 2111. 2112. 2113. 2114. 2115.
- 2 / 2: 2121. 2122. 2123. 2124. 2125.
- 3 / 3: 2131. 2132. 2133. 2134. 2135.
- 4 / 4: 2141. 2142. 2143. 2144. 2145.
- 5 / 5: 2151. 2152. 2153. 2154. 2155.
- ---- L:3 T: 3
- 1 / 1: 3111. 3112. 3113. 3114. 3115.
- 2 / 2: 3121. 3122. 3123. 3124. 3125.
- 3 / 3: 3131. 3132. 3133. 3134. 3135.
- 4 / 4: 3141. 3142. 3143. 3144. 3145.
- 5 / 5: 3151. 3152. 3153. 3154. 3155.
- ---- L:4 T: 4
- 1 / 1: 4111. 4112. 4113. 4114. 4115.
- 2 / 2: 4121. 4122. 4123. 4124. 4125.
- 3 / 3: 4131. 4132. 4133. 4134. 4135.
- 4 / 4: 4141. 4142. 4143. 4144. 4145.
- 5 / 5: 4151. 4152. 4153. 4154. 4155.
- ---- L:5 T: 5
- 1 / 1: 5111. 5112. 5113. 5114. 5115.
- 2 / 2: 5121. 5122. 5123. 5124. 5125.
- 3 / 3: 5131. 5132. 5133. 5134. 5135.
- 4 / 4: 5141. 5142. 5143. 5144. 5145.
- 5 / 5: 5151. 5152. 5153. 5154. 5155.
-LIST/@JPT
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 by 5 by 5 points (X-Z-T)
- Y : 1
- 1 2 3 4 5
- 1 2 3 4 5
- ---- L:1 T: 1
- 1 / 1: 1111. 1112. 1113. 1114. 1115.
- 2 / 2: 1211. 1212. 1213. 1214. 1215.
- 3 / 3: 1311. 1312. 1313. 1314. 1315.
- 4 / 4: 1411. 1412. 1413. 1414. 1415.
- 5 / 5: 1511. 1512. 1513. 1514. 1515.
- ---- L:2 T: 2
- 1 / 1: 2111. 2112. 2113. 2114. 2115.
- 2 / 2: 2211. 2212. 2213. 2214. 2215.
- 3 / 3: 2311. 2312. 2313. 2314. 2315.
- 4 / 4: 2411. 2412. 2413. 2414. 2415.
- 5 / 5: 2511. 2512. 2513. 2514. 2515.
- ---- L:3 T: 3
- 1 / 1: 3111. 3112. 3113. 3114. 3115.
- 2 / 2: 3211. 3212. 3213. 3214. 3215.
- 3 / 3: 3311. 3312. 3313. 3314. 3315.
- 4 / 4: 3411. 3412. 3413. 3414. 3415.
- 5 / 5: 3511. 3512. 3513. 3514. 3515.
- ---- L:4 T: 4
- 1 / 1: 4111. 4112. 4113. 4114. 4115.
- 2 / 2: 4211. 4212. 4213. 4214. 4215.
- 3 / 3: 4311. 4312. 4313. 4314. 4315.
- 4 / 4: 4411. 4412. 4413. 4414. 4415.
- 5 / 5: 4511. 4512. 4513. 4514. 4515.
- ---- L:5 T: 5
- 1 / 1: 5111. 5112. 5113. 5114. 5115.
- 2 / 2: 5211. 5212. 5213. 5214. 5215.
- 3 / 3: 5311. 5312. 5313. 5314. 5315.
- 4 / 4: 5411. 5412. 5413. 5414. 5415.
- 5 / 5: 5511. 5512. 5513. 5514. 5515.
-LIST/@IPT
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 5 by 5 by 5 points (Y-Z-T)
- X : 1
- 1 2 3 4 5
- 1 2 3 4 5
- ---- L:1 T: 1
- 1 / 1: 1111. 1121. 1131. 1141. 1151.
- 2 / 2: 1211. 1221. 1231. 1241. 1251.
- 3 / 3: 1311. 1321. 1331. 1341. 1351.
- 4 / 4: 1411. 1421. 1431. 1441. 1451.
- 5 / 5: 1511. 1521. 1531. 1541. 1551.
- ---- L:2 T: 2
- 1 / 1: 2111. 2121. 2131. 2141. 2151.
- 2 / 2: 2211. 2221. 2231. 2241. 2251.
- 3 / 3: 2311. 2321. 2331. 2341. 2351.
- 4 / 4: 2411. 2421. 2431. 2441. 2451.
- 5 / 5: 2511. 2521. 2531. 2541. 2551.
- ---- L:3 T: 3
- 1 / 1: 3111. 3121. 3131. 3141. 3151.
- 2 / 2: 3211. 3221. 3231. 3241. 3251.
- 3 / 3: 3311. 3321. 3331. 3341. 3351.
- 4 / 4: 3411. 3421. 3431. 3441. 3451.
- 5 / 5: 3511. 3521. 3531. 3541. 3551.
- ---- L:4 T: 4
- 1 / 1: 4111. 4121. 4131. 4141. 4151.
- 2 / 2: 4211. 4221. 4231. 4241. 4251.
- 3 / 3: 4311. 4321. 4331. 4341. 4351.
- 4 / 4: 4411. 4421. 4431. 4441. 4451.
- 5 / 5: 4511. 4521. 4531. 4541. 4551.
- ---- L:5 T: 5
- 1 / 1: 5111. 5121. 5131. 5141. 5151.
- 2 / 2: 5211. 5221. 5231. 5241. 5251.
- 3 / 3: 5311. 5321. 5331. 5341. 5351.
- 4 / 4: 5411. 5421. 5431. 5441. 5451.
- 5 / 5: 5511. 5521. 5531. 5541. 5551.
-
-! 4D region
-LOAD
-
-! ******** transformed file variable ************
-USE gt4d011
-LET temp_sq = temp^2
-DEFINE REGION/I=101 IPT
-DEFINE REGION/J=46 JPT
-DEFINE REGION/K=1 KPT
-DEFINE REGION/L=1 LPT
-DEFINE REGION/I=101:105/J=46:50/K=1:5/L=1:5 R4D
-SET REG R4D
-SET EXPRESSION temp_sq
-GO bn_geometry.sub
-! BN200_GEOMETRY.SUB
-! list the variable vtest on variuos geometries
-
-! this routine assumes that a 4-D region and an expression are already set
-
-! lines of data
-LIST/@JPT/@KPT/@LPT/ORDER=X
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (LONGITUDE)
- LATITUDE : 0.2N
- DEPTH (m): 5
- TIME : 17-AUG-1982 12:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 664.8 665.8 666.6 665.4 662.8
-LIST/@IPT/@KPT/@LPT/ORDER=Y
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (LATITUDE)
- LONGITUDE: 129.5W
- DEPTH (m): 5
- TIME : 17-AUG-1982 12:00
- 0.17N 0.5N 0.83N 1.17N 1.5N
- 46 47 48 49 50
- 664.8 670.7 678.3 687.3 698.1
-LIST/@IPT/@JPT/@LPT/ORDER=Z
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (DEPTH (m))
- LONGITUDE: 129.5W
- LATITUDE : 0.2N
- TIME : 17-AUG-1982 12:00
- 5 15 25 35 45
- 1 2 3 4 5
- 664.8 658.8 650.5 642.6 633.2
-LIST/@IPT/@JPT/@KPT/ORDER=T
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (TIME)
- LONGITUDE: 129.5W
- LATITUDE : 0.2N
- DEPTH (m): 5
- 1982 1982 1982 1982 1982
- 1 2 3 4 5
- 664.8 674.8 685.3 696.6 708.4
-
-! planes of data
-LIST/@KPT/@LPT !XY
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 17-AUG-1982 12:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 1.5N / 50: 698.1 699.9 702.0 702.5 701.2
- 1.17N / 49: 687.3 690.0 691.9 691.7 689.5
- 0.83N / 48: 678.3 681.0 682.6 681.7 678.9
- 0.5N / 47: 670.7 672.9 674.1 672.9 670.1
- 0.17N / 46: 664.8 665.8 666.6 665.4 662.8
-LIST/@JPT/@LPT !XZ
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LONGITUDE-DEPTH (m))
- LATITUDE : 0.2N
- TIME : 17-AUG-1982 12:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 5 / 1: 664.8 665.8 666.6 665.4 662.8
- 15 / 2: 658.8 659.8 660.6 659.5 657.0
- 25 / 3: 650.5 651.6 652.5 651.8 649.5
- 35 / 4: 642.6 643.2 643.2 642.2 639.8
- 45 / 5: 633.2 632.6 631.0 628.7 625.8
-LIST/@JPT/@KPT !XT
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LONGITUDE-TIME)
- LATITUDE : 0.2N
- DEPTH (m): 5
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 17-AUG-1982 12 / 1: 664.8 665.8 666.6 665.4 662.8
- 23-AUG-1982 14 / 2: 674.8 674.4 672.8 670.1 667.2
- 29-AUG-1982 16 / 3: 685.3 682.5 679.4 676.5 674.4
- 04-SEP-1982 18 / 4: 696.6 692.3 688.4 685.6 684.0
- 10-SEP-1982 20 / 5: 708.4 704.7 700.4 697.1 695.1
-LIST/@IPT/@LPT !YZ
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LATITUDE-DEPTH (m))
- LONGITUDE: 129.5W
- TIME : 17-AUG-1982 12:00
- 0.17N 0.5N 0.83N 1.17N 1.5N
- 46 47 48 49 50
- 5 / 1: 664.8 670.7 678.3 687.3 698.1
- 15 / 2: 658.8 665.4 673.8 683.5 694.9
- 25 / 3: 650.5 659.6 670.7 682.2 694.3
- 35 / 4: 642.6 654.3 668.7 681.9 694.4
- 45 / 5: 633.2 645.7 664.2 681.4 694.5
-LIST/@IPT/@KPT !YT
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LATITUDE-TIME)
- LONGITUDE: 129.5W
- DEPTH (m): 5
- 0.17N 0.5N 0.83N 1.17N 1.5N
- 46 47 48 49 50
- 17-AUG-1982 12 / 1: 664.8 670.7 678.3 687.3 698.1
- 23-AUG-1982 14 / 2: 674.8 681.5 689.5 699.0 710.0
- 29-AUG-1982 16 / 3: 685.3 691.9 700.1 710.3 721.6
- 04-SEP-1982 18 / 4: 696.6 702.9 711.1 721.2 731.5
- 10-SEP-1982 20 / 5: 708.4 714.1 721.8 730.4 738.2
-LIST/@IPT/@JPT !ZT
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (DEPTH (m)-TIME)
- LONGITUDE: 129.5W
- LATITUDE : 0.2N
- 5 15 25 35 45
- 1 2 3 4 5
- 17-AUG-1982 12 / 1: 664.8 658.8 650.5 642.6 633.2
- 23-AUG-1982 14 / 2: 674.8 669.2 660.6 652.7 643.1
- 29-AUG-1982 16 / 3: 685.3 680.3 672.3 665.2 655.3
- 04-SEP-1982 18 / 4: 696.6 692.0 684.3 677.9 667.3
- 10-SEP-1982 20 / 5: 708.4 704.0 695.0 688.9 678.3
-
-! cubes of data
-LIST/@LPT
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
- TIME : 17-AUG-1982 12:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- ---- K:1 Z: 5
- 1.5N / 50: 698.1 699.9 702.0 702.5 701.2
- 1.17N / 49: 687.3 690.0 691.9 691.7 689.5
- 0.83N / 48: 678.3 681.0 682.6 681.7 678.9
- 0.5N / 47: 670.7 672.9 674.1 672.9 670.1
- 0.17N / 46: 664.8 665.8 666.6 665.4 662.8
- ---- K:2 Z: 15
- 1.5N / 50: 694.9 696.6 698.7 699.4 698.2
- 1.17N / 49: 683.5 686.1 688.3 688.2 686.2
- 0.83N / 48: 673.8 676.5 678.3 677.6 675.0
- 0.5N / 47: 665.4 667.6 669.0 668.0 665.2
- 0.17N / 46: 658.8 659.8 660.6 659.5 657.0
- ---- K:3 Z: 25
- 1.5N / 50: 694.3 695.9 698.0 698.9 697.7
- 1.17N / 49: 682.2 684.7 687.1 687.4 685.4
- 0.83N / 48: 670.7 673.5 675.7 675.5 673.0
- 0.5N / 47: 659.6 661.9 663.6 663.2 660.6
- 0.17N / 46: 650.5 651.6 652.5 651.8 649.5
- ---- K:4 Z: 35
- 1.5N / 50: 694.4 696.0 698.1 699.0 697.8
- 1.17N / 49: 681.9 684.4 686.8 687.2 685.2
- 0.83N / 48: 668.7 671.3 673.3 673.5 671.0
- 0.5N / 47: 654.3 656.2 657.3 656.9 654.3
- 0.17N / 46: 642.6 643.2 643.2 642.2 639.8
- ---- K:5 Z: 45
- 1.5N / 50: 694.5 696.1 698.2 699.0 697.9
- 1.17N / 49: 681.4 683.8 685.9 686.5 684.5
- 0.83N / 48: 664.2 665.9 666.5 666.0 663.3
- 0.5N / 47: 645.7 646.5 645.8 644.0 641.0
- 0.17N / 46: 633.2 632.6 631.0 628.7 625.8
-LIST/@KPT
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
- DEPTH (m): 5
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- ---- L:1 T: 17-AUG-1982 12:00
- 1.5N / 50: 698.1 699.9 702.0 702.5 701.2
- 1.17N / 49: 687.3 690.0 691.9 691.7 689.5
- 0.83N / 48: 678.3 681.0 682.6 681.7 678.9
- 0.5N / 47: 670.7 672.9 674.1 672.9 670.1
- 0.17N / 46: 664.8 665.8 666.6 665.4 662.8
- ---- L:2 T: 23-AUG-1982 14:00
- 1.5N / 50: 710.0 709.0 707.8 706.0 703.5
- 1.17N / 49: 699.0 698.2 697.0 694.4 691.4
- 0.83N / 48: 689.5 689.0 687.5 684.5 681.3
- 0.5N / 47: 681.5 681.1 679.5 676.5 673.4
- 0.17N / 46: 674.8 674.4 672.8 670.1 667.2
- ---- L:3 T: 29-AUG-1982 16:00
- 1.5N / 50: 721.6 717.3 712.8 709.6 707.5
- 1.17N / 49: 710.3 705.9 701.5 698.1 695.9
- 0.83N / 48: 700.1 696.1 692.1 688.7 686.5
- 0.5N / 47: 691.9 688.4 684.9 681.7 679.5
- 0.17N / 46: 685.3 682.5 679.4 676.5 674.4
- ---- L:4 T: 04-SEP-1982 18:00
- 1.5N / 50: 731.5 725.7 718.0 713.9 713.0
- 1.17N / 49: 721.2 714.2 707.1 703.4 702.5
- 0.83N / 48: 711.1 704.5 698.6 695.2 694.3
- 0.5N / 47: 702.9 697.4 692.6 689.5 688.3
- 0.17N / 46: 696.6 692.3 688.4 685.6 684.0
- ---- L:5 T: 10-SEP-1982 20:00
- 1.5N / 50: 738.2 735.8 726.4 720.5 720.1
- 1.17N / 49: 730.4 725.1 716.1 711.0 710.5
- 0.83N / 48: 721.8 715.7 708.5 704.2 703.4
- 0.5N / 47: 714.1 708.9 703.4 699.8 698.4
- 0.17N / 46: 708.4 704.7 700.4 697.1 695.1
-LIST/@JPT
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
- LATITUDE : 0.2N
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- ---- L:1 T: 17-AUG-1982 12:00
- 5 / 1: 664.8 665.8 666.6 665.4 662.8
- 15 / 2: 658.8 659.8 660.6 659.5 657.0
- 25 / 3: 650.5 651.6 652.5 651.8 649.5
- 35 / 4: 642.6 643.2 643.2 642.2 639.8
- 45 / 5: 633.2 632.6 631.0 628.7 625.8
- ---- L:2 T: 23-AUG-1982 14:00
- 5 / 1: 674.8 674.4 672.8 670.1 667.2
- 15 / 2: 669.2 668.9 667.3 664.6 661.6
- 25 / 3: 660.6 660.8 659.4 656.7 653.6
- 35 / 4: 652.7 652.9 651.0 648.1 644.9
- 45 / 5: 643.1 642.3 639.7 636.2 633.0
- ---- L:3 T: 29-AUG-1982 16:00
- 5 / 1: 685.3 682.5 679.4 676.5 674.4
- 15 / 2: 680.3 677.5 674.3 671.3 669.0
- 25 / 3: 672.3 670.2 666.5 662.8 660.1
- 35 / 4: 665.2 663.6 659.6 655.6 652.4
- 45 / 5: 655.3 653.6 649.7 645.7 642.6
- ---- L:4 T: 04-SEP-1982 18:00
- 5 / 1: 696.6 692.3 688.4 685.6 684.0
- 15 / 2: 692.0 687.7 683.5 680.5 678.8
- 25 / 3: 684.3 680.5 675.0 670.7 668.3
- 35 / 4: 677.9 674.9 669.3 664.5 661.4
- 45 / 5: 667.3 665.0 660.5 656.2 653.0
- ---- L:5 T: 10-SEP-1982 20:00
- 5 / 1: 708.4 704.7 700.4 697.1 695.1
- 15 / 2: 704.0 700.2 695.7 692.1 690.1
- 25 / 3: 695.0 692.2 685.8 680.4 677.6
- 35 / 4: 688.9 687.1 680.9 675.2 671.8
- 45 / 5: 678.3 676.6 672.2 667.7 664.3
-LIST/@IPT
- VARIABLE : TEMP^2
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
- LONGITUDE: 129.5W
- 0.17N 0.5N 0.83N 1.17N 1.5N
- 46 47 48 49 50
- ---- L:1 T: 17-AUG-1982 12:00
- 5 / 1: 664.8 670.7 678.3 687.3 698.1
- 15 / 2: 658.8 665.4 673.8 683.5 694.9
- 25 / 3: 650.5 659.6 670.7 682.2 694.3
- 35 / 4: 642.6 654.3 668.7 681.9 694.4
- 45 / 5: 633.2 645.7 664.2 681.4 694.5
- ---- L:2 T: 23-AUG-1982 14:00
- 5 / 1: 674.8 681.5 689.5 699.0 710.0
- 15 / 2: 669.2 676.7 685.5 695.7 707.2
- 25 / 3: 660.6 671.4 683.3 694.9 706.9
- 35 / 4: 652.7 666.4 681.9 694.9 707.0
- 45 / 5: 643.1 657.3 677.1 694.8 707.0
- ---- L:3 T: 29-AUG-1982 16:00
- 5 / 1: 685.3 691.9 700.1 710.3 721.6
- 15 / 2: 680.3 687.7 696.8 707.5 719.1
- 25 / 3: 672.3 683.9 695.6 707.2 718.8
- 35 / 4: 665.2 680.2 695.2 707.3 718.9
- 45 / 5: 655.3 670.9 691.1 707.3 718.9
- ---- L:4 T: 04-SEP-1982 18:00
- 5 / 1: 696.6 702.9 711.1 721.2 731.5
- 15 / 2: 692.0 699.1 708.1 718.5 728.9
- 25 / 3: 684.3 696.0 707.3 718.3 728.5
- 35 / 4: 677.9 693.1 707.2 718.3 728.7
- 45 / 5: 667.3 683.1 703.1 718.3 728.7
- ---- L:5 T: 10-SEP-1982 20:00
- 5 / 1: 708.4 714.1 721.8 730.4 738.2
- 15 / 2: 704.0 710.4 718.6 727.4 735.1
- 25 / 3: 695.0 706.8 717.4 726.4 733.8
- 35 / 4: 688.9 703.8 717.2 726.4 733.8
- 45 / 5: 678.3 692.9 712.0 726.2 733.9
-
-! 4D region
-LOAD
-
-! ******** memory-resident file variable ************
-USE gt4d011
-CANCEL MEMORY/ALL
-SET MODE DIAGNOSTIC
-DEFINE REGION/I=101 IPT
- dealloc dynamic grid PS3DT2 PSXT PSYT PSZT TIME1 NORMAL NORMAL
- dealloc dynamic grid PS3DT2 PSXT PSYT PSZT TIME1 NORMAL NORMAL
-DEFINE REGION/J=46 JPT
-DEFINE REGION/K=1 KPT
-DEFINE REGION/L=1 LPT
-DEFINE REGION/I=101:105/J=46:50/K=1:5/L=1:5 R4D
-SET REG R4D
-SET EXPRESSION temp
-LOAD ! load full 4-D region
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DT2 PSXT PSYT PSZT TIME1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- reading TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
-GO bn_geometry.sub
-! BN200_GEOMETRY.SUB
-! list the variable vtest on variuos geometries
-
-! this routine assumes that a 4-D region and an expression are already set
-
-! lines of data
-LIST/@JPT/@KPT/@LPT/ORDER=X
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 46 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (LONGITUDE)
- LATITUDE : 0.2N
- DEPTH (m): 5
- TIME : 17-AUG-1982 12:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 25.78 25.80 25.82 25.80 25.74
- -DELETE TEMP M: 29 dset: 1 I: 101 105 J: 46 46 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-LIST/@IPT/@KPT/@LPT/ORDER=Y
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 50 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (LATITUDE)
- LONGITUDE: 129.5W
- DEPTH (m): 5
- TIME : 17-AUG-1982 12:00
- 0.17N 0.5N 0.83N 1.17N 1.5N
- 46 47 48 49 50
- 25.78 25.90 26.04 26.22 26.42
- -DELETE TEMP M: 29 dset: 1 I: 46 50 J: 101 101 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-LIST/@IPT/@JPT/@LPT/ORDER=Z
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 46 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (DEPTH (m))
- LONGITUDE: 129.5W
- LATITUDE : 0.2N
- TIME : 17-AUG-1982 12:00
- 5 15 25 35 45
- 1 2 3 4 5
- 25.78 25.67 25.51 25.35 25.16
- -DELETE TEMP M: 29 dset: 1 I: 1 5 J: 101 101 K: 46 46 L: 1 1 M: -999 -999 N: -999 -999
-LIST/@IPT/@JPT/@KPT/ORDER=T
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 46 K: 1 1 L: 1 5 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (TIME)
- LONGITUDE: 129.5W
- LATITUDE : 0.2N
- DEPTH (m): 5
- 1982 1982 1982 1982 1982
- 1 2 3 4 5
- 25.78 25.98 26.18 26.39 26.62
- -DELETE TEMP M: 29 dset: 1 I: 1 5 J: 101 101 K: 46 46 L: 1 1 M: -999 -999 N: -999 -999
-
-! planes of data
-LIST/@KPT/@LPT !XY
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 50 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 17-AUG-1982 12:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 1.5N / 50: 26.42 26.46 26.50 26.51 26.48
- 1.17N / 49: 26.22 26.27 26.30 26.30 26.26
- 0.83N / 48: 26.04 26.10 26.13 26.11 26.06
- 0.5N / 47: 25.90 25.94 25.96 25.94 25.89
- 0.17N / 46: 25.78 25.80 25.82 25.80 25.74
- -DELETE TEMP M: 29 dset: 1 I: 101 105 J: 46 50 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-LIST/@JPT/@LPT !XZ
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 46 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LONGITUDE-DEPTH (m))
- LATITUDE : 0.2N
- TIME : 17-AUG-1982 12:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 5 / 1: 25.78 25.80 25.82 25.80 25.74
- 15 / 2: 25.67 25.69 25.70 25.68 25.63
- 25 / 3: 25.51 25.53 25.54 25.53 25.48
- 35 / 4: 25.35 25.36 25.36 25.34 25.29
- 45 / 5: 25.16 25.15 25.12 25.07 25.02
- -DELETE TEMP M: 29 dset: 1 I: 101 105 J: 1 5 K: 46 46 L: 1 1 M: -999 -999 N: -999 -999
-LIST/@JPT/@KPT !XT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 46 K: 1 1 L: 1 5 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LONGITUDE-TIME)
- LATITUDE : 0.2N
- DEPTH (m): 5
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 17-AUG-1982 12 / 1: 25.78 25.80 25.82 25.80 25.74
- 23-AUG-1982 14 / 2: 25.98 25.97 25.94 25.89 25.83
- 29-AUG-1982 16 / 3: 26.18 26.13 26.07 26.01 25.97
- 04-SEP-1982 18 / 4: 26.39 26.31 26.24 26.18 26.15
- 10-SEP-1982 20 / 5: 26.62 26.55 26.47 26.40 26.36
- -DELETE TEMP M: 29 dset: 1 I: 101 105 J: 1 5 K: 46 46 L: 1 1 M: -999 -999 N: -999 -999
-LIST/@IPT/@LPT !YZ
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 50 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LATITUDE-DEPTH (m))
- LONGITUDE: 129.5W
- TIME : 17-AUG-1982 12:00
- 0.17N 0.5N 0.83N 1.17N 1.5N
- 46 47 48 49 50
- 5 / 1: 25.78 25.90 26.04 26.22 26.42
- 15 / 2: 25.67 25.80 25.96 26.14 26.36
- 25 / 3: 25.51 25.68 25.90 26.12 26.35
- 35 / 4: 25.35 25.58 25.86 26.11 26.35
- 45 / 5: 25.16 25.41 25.77 26.10 26.35
- -DELETE TEMP M: 29 dset: 1 I: 46 50 J: 1 5 K: 101 101 L: 1 1 M: -999 -999 N: -999 -999
-LIST/@IPT/@KPT !YT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 50 K: 1 1 L: 1 5 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LATITUDE-TIME)
- LONGITUDE: 129.5W
- DEPTH (m): 5
- 0.17N 0.5N 0.83N 1.17N 1.5N
- 46 47 48 49 50
- 17-AUG-1982 12 / 1: 25.78 25.90 26.04 26.22 26.42
- 23-AUG-1982 14 / 2: 25.98 26.10 26.26 26.44 26.65
- 29-AUG-1982 16 / 3: 26.18 26.30 26.46 26.65 26.86
- 04-SEP-1982 18 / 4: 26.39 26.51 26.67 26.85 27.05
- 10-SEP-1982 20 / 5: 26.62 26.72 26.87 27.03 27.17
- -DELETE TEMP M: 29 dset: 1 I: 46 50 J: 1 5 K: 101 101 L: 1 1 M: -999 -999 N: -999 -999
-LIST/@IPT/@JPT !ZT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 46 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (DEPTH (m)-TIME)
- LONGITUDE: 129.5W
- LATITUDE : 0.2N
- 5 15 25 35 45
- 1 2 3 4 5
- 17-AUG-1982 12 / 1: 25.78 25.67 25.51 25.35 25.16
- 23-AUG-1982 14 / 2: 25.98 25.87 25.70 25.55 25.36
- 29-AUG-1982 16 / 3: 26.18 26.08 25.93 25.79 25.60
- 04-SEP-1982 18 / 4: 26.39 26.31 26.16 26.04 25.83
- 10-SEP-1982 20 / 5: 26.62 26.53 26.36 26.25 26.04
- -DELETE TEMP M: 29 dset: 1 I: 1 5 J: 1 5 K: 101 101 L: 46 46 M: -999 -999 N: -999 -999
-
-! cubes of data
-LIST/@LPT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
- TIME : 17-AUG-1982 12:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- ---- K:1 Z: 5
- 1.5N / 50: 26.42 26.46 26.50 26.51 26.48
- 1.17N / 49: 26.22 26.27 26.30 26.30 26.26
- 0.83N / 48: 26.04 26.10 26.13 26.11 26.06
- 0.5N / 47: 25.90 25.94 25.96 25.94 25.89
- 0.17N / 46: 25.78 25.80 25.82 25.80 25.74
- ---- K:2 Z: 15
- 1.5N / 50: 26.36 26.39 26.43 26.45 26.42
- 1.17N / 49: 26.14 26.19 26.23 26.23 26.19
- 0.83N / 48: 25.96 26.01 26.04 26.03 25.98
- 0.5N / 47: 25.80 25.84 25.87 25.85 25.79
- 0.17N / 46: 25.67 25.69 25.70 25.68 25.63
- ---- K:3 Z: 25
- 1.5N / 50: 26.35 26.38 26.42 26.44 26.41
- 1.17N / 49: 26.12 26.17 26.21 26.22 26.18
- 0.83N / 48: 25.90 25.95 25.99 25.99 25.94
- 0.5N / 47: 25.68 25.73 25.76 25.75 25.70
- 0.17N / 46: 25.51 25.53 25.54 25.53 25.48
- ---- K:4 Z: 35
- 1.5N / 50: 26.35 26.38 26.42 26.44 26.42
- 1.17N / 49: 26.11 26.16 26.21 26.22 26.18
- 0.83N / 48: 25.86 25.91 25.95 25.95 25.90
- 0.5N / 47: 25.58 25.62 25.64 25.63 25.58
- 0.17N / 46: 25.35 25.36 25.36 25.34 25.29
- ---- K:5 Z: 45
- 1.5N / 50: 26.35 26.38 26.42 26.44 26.42
- 1.17N / 49: 26.10 26.15 26.19 26.20 26.16
- 0.83N / 48: 25.77 25.81 25.82 25.81 25.76
- 0.5N / 47: 25.41 25.43 25.41 25.38 25.32
- 0.17N / 46: 25.16 25.15 25.12 25.07 25.02
- -DELETE TEMP M: 29 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
-LIST/@KPT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 50 K: 1 1 L: 1 5 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
- DEPTH (m): 5
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- ---- L:1 T: 17-AUG-1982 12:00
- 1.5N / 50: 26.42 26.46 26.50 26.51 26.48
- 1.17N / 49: 26.22 26.27 26.30 26.30 26.26
- 0.83N / 48: 26.04 26.10 26.13 26.11 26.06
- 0.5N / 47: 25.90 25.94 25.96 25.94 25.89
- 0.17N / 46: 25.78 25.80 25.82 25.80 25.74
- ---- L:2 T: 23-AUG-1982 14:00
- 1.5N / 50: 26.65 26.63 26.60 26.57 26.52
- 1.17N / 49: 26.44 26.42 26.40 26.35 26.29
- 0.83N / 48: 26.26 26.25 26.22 26.16 26.10
- 0.5N / 47: 26.10 26.10 26.07 26.01 25.95
- 0.17N / 46: 25.98 25.97 25.94 25.89 25.83
- ---- L:3 T: 29-AUG-1982 16:00
- 1.5N / 50: 26.86 26.78 26.70 26.64 26.60
- 1.17N / 49: 26.65 26.57 26.49 26.42 26.38
- 0.83N / 48: 26.46 26.38 26.31 26.24 26.20
- 0.5N / 47: 26.30 26.24 26.17 26.11 26.07
- 0.17N / 46: 26.18 26.13 26.07 26.01 25.97
- ---- L:4 T: 04-SEP-1982 18:00
- 1.5N / 50: 27.05 26.94 26.80 26.72 26.70
- 1.17N / 49: 26.85 26.72 26.59 26.52 26.51
- 0.83N / 48: 26.67 26.54 26.43 26.37 26.35
- 0.5N / 47: 26.51 26.41 26.32 26.26 26.23
- 0.17N / 46: 26.39 26.31 26.24 26.18 26.15
- ---- L:5 T: 10-SEP-1982 20:00
- 1.5N / 50: 27.17 27.13 26.95 26.84 26.83
- 1.17N / 49: 27.03 26.93 26.76 26.66 26.65
- 0.83N / 48: 26.87 26.75 26.62 26.54 26.52
- 0.5N / 47: 26.72 26.63 26.52 26.45 26.43
- 0.17N / 46: 26.62 26.55 26.47 26.40 26.36
- -DELETE TEMP M: 29 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
-LIST/@JPT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 46 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
- LATITUDE : 0.2N
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- ---- L:1 T: 17-AUG-1982 12:00
- 5 / 1: 25.78 25.80 25.82 25.80 25.74
- 15 / 2: 25.67 25.69 25.70 25.68 25.63
- 25 / 3: 25.51 25.53 25.54 25.53 25.48
- 35 / 4: 25.35 25.36 25.36 25.34 25.29
- 45 / 5: 25.16 25.15 25.12 25.07 25.02
- ---- L:2 T: 23-AUG-1982 14:00
- 5 / 1: 25.98 25.97 25.94 25.89 25.83
- 15 / 2: 25.87 25.86 25.83 25.78 25.72
- 25 / 3: 25.70 25.71 25.68 25.63 25.57
- 35 / 4: 25.55 25.55 25.52 25.46 25.40
- 45 / 5: 25.36 25.34 25.29 25.22 25.16
- ---- L:3 T: 29-AUG-1982 16:00
- 5 / 1: 26.18 26.13 26.07 26.01 25.97
- 15 / 2: 26.08 26.03 25.97 25.91 25.87
- 25 / 3: 25.93 25.89 25.82 25.75 25.69
- 35 / 4: 25.79 25.76 25.68 25.60 25.54
- 45 / 5: 25.60 25.56 25.49 25.41 25.35
- ---- L:4 T: 04-SEP-1982 18:00
- 5 / 1: 26.39 26.31 26.24 26.18 26.15
- 15 / 2: 26.31 26.22 26.14 26.09 26.05
- 25 / 3: 26.16 26.09 25.98 25.90 25.85
- 35 / 4: 26.04 25.98 25.87 25.78 25.72
- 45 / 5: 25.83 25.79 25.70 25.62 25.55
- ---- L:5 T: 10-SEP-1982 20:00
- 5 / 1: 26.62 26.55 26.47 26.40 26.36
- 15 / 2: 26.53 26.46 26.38 26.31 26.27
- 25 / 3: 26.36 26.31 26.19 26.08 26.03
- 35 / 4: 26.25 26.21 26.09 25.98 25.92
- 45 / 5: 26.04 26.01 25.93 25.84 25.77
- -DELETE TEMP M: 29 dset: 1 I: 101 105 J: 1 5 K: 1 5 L: 46 46 M: -999 -999 N: -999 -999
-LIST/@IPT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
- LONGITUDE: 129.5W
- 0.17N 0.5N 0.83N 1.17N 1.5N
- 46 47 48 49 50
- ---- L:1 T: 17-AUG-1982 12:00
- 5 / 1: 25.78 25.90 26.04 26.22 26.42
- 15 / 2: 25.67 25.80 25.96 26.14 26.36
- 25 / 3: 25.51 25.68 25.90 26.12 26.35
- 35 / 4: 25.35 25.58 25.86 26.11 26.35
- 45 / 5: 25.16 25.41 25.77 26.10 26.35
- ---- L:2 T: 23-AUG-1982 14:00
- 5 / 1: 25.98 26.10 26.26 26.44 26.65
- 15 / 2: 25.87 26.01 26.18 26.38 26.59
- 25 / 3: 25.70 25.91 26.14 26.36 26.59
- 35 / 4: 25.55 25.82 26.11 26.36 26.59
- 45 / 5: 25.36 25.64 26.02 26.36 26.59
- ---- L:3 T: 29-AUG-1982 16:00
- 5 / 1: 26.18 26.30 26.46 26.65 26.86
- 15 / 2: 26.08 26.22 26.40 26.60 26.82
- 25 / 3: 25.93 26.15 26.38 26.59 26.81
- 35 / 4: 25.79 26.08 26.37 26.59 26.81
- 45 / 5: 25.60 25.90 26.29 26.59 26.81
- ---- L:4 T: 04-SEP-1982 18:00
- 5 / 1: 26.39 26.51 26.67 26.85 27.05
- 15 / 2: 26.31 26.44 26.61 26.81 27.00
- 25 / 3: 26.16 26.38 26.60 26.80 26.99
- 35 / 4: 26.04 26.33 26.59 26.80 26.99
- 45 / 5: 25.83 26.14 26.52 26.80 26.99
- ---- L:5 T: 10-SEP-1982 20:00
- 5 / 1: 26.62 26.72 26.87 27.03 27.17
- 15 / 2: 26.53 26.65 26.81 26.97 27.11
- 25 / 3: 26.36 26.59 26.78 26.95 27.09
- 35 / 4: 26.25 26.53 26.78 26.95 27.09
- 45 / 5: 26.04 26.32 26.68 26.95 27.09
- -DELETE TEMP M: 29 dset: 1 I: 46 50 J: 1 5 K: 1 5 L: 101 101 M: -999 -999 N: -999 -999
-
-! 4D region
-LOAD
- eval EX#1 C: 4 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- found TEMP M: 31 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
-SET MODE/LAST DIAGNOSTIC
-
-! ******** disk-resident file variable ************
-USE gt4d011
-CANCEL MEMORY/ALL
-SET MODE DIAGNOSTIC
-DEFINE REGION/I=101 IPT
- dealloc dynamic grid PS3DT2 PSXT PSYT PSZT TIME1 NORMAL NORMAL
-DEFINE REGION/J=46 JPT
-DEFINE REGION/K=1 KPT
-DEFINE REGION/L=1 LPT
-DEFINE REGION/I=101:105/J=46:50/K=1:5/L=1:5 R4D
-SET REG R4D
-SET EXPRESSION temp
-GO bn_geometry.sub
-! BN200_GEOMETRY.SUB
-! list the variable vtest on variuos geometries
-
-! this routine assumes that a 4-D region and an expression are already set
-
-! lines of data
-LIST/@JPT/@KPT/@LPT/ORDER=X
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DT2 PSXT PSYT PSZT TIME1 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 46 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- reading TEMP M: 31 dset: 1 I: 101 105 J: 46 46 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (LONGITUDE)
- LATITUDE : 0.2N
- DEPTH (m): 5
- TIME : 17-AUG-1982 12:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 25.78 25.80 25.82 25.80 25.74
-LIST/@IPT/@KPT/@LPT/ORDER=Y
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 50 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- reading TEMP M: 29 dset: 1 I: 101 101 J: 46 50 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (LATITUDE)
- LONGITUDE: 129.5W
- DEPTH (m): 5
- TIME : 17-AUG-1982 12:00
- 0.17N 0.5N 0.83N 1.17N 1.5N
- 46 47 48 49 50
- 25.78 25.90 26.04 26.22 26.42
-LIST/@IPT/@JPT/@LPT/ORDER=Z
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 46 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
- reading TEMP M: 28 dset: 1 I: 101 101 J: 46 46 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (DEPTH (m))
- LONGITUDE: 129.5W
- LATITUDE : 0.2N
- TIME : 17-AUG-1982 12:00
- 5 15 25 35 45
- 1 2 3 4 5
- 25.78 25.67 25.51 25.35 25.16
-LIST/@IPT/@JPT/@KPT/ORDER=T
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 46 K: 1 1 L: 1 5 M: -999 -999 N: -999 -999
- reading TEMP M: 27 dset: 1 I: 101 101 J: 46 46 K: 1 1 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (TIME)
- LONGITUDE: 129.5W
- LATITUDE : 0.2N
- DEPTH (m): 5
- 1982 1982 1982 1982 1982
- 1 2 3 4 5
- 25.78 25.98 26.18 26.39 26.62
-
-! planes of data
-LIST/@KPT/@LPT !XY
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 50 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- reading TEMP M: 26 dset: 1 I: 101 105 J: 46 50 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 17-AUG-1982 12:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 1.5N / 50: 26.42 26.46 26.50 26.51 26.48
- 1.17N / 49: 26.22 26.27 26.30 26.30 26.26
- 0.83N / 48: 26.04 26.10 26.13 26.11 26.06
- 0.5N / 47: 25.90 25.94 25.96 25.94 25.89
- 0.17N / 46: 25.78 25.80 25.82 25.80 25.74
-LIST/@JPT/@LPT !XZ
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 46 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
- reading TEMP M: 25 dset: 1 I: 101 105 J: 46 46 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LONGITUDE-DEPTH (m))
- LATITUDE : 0.2N
- TIME : 17-AUG-1982 12:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 5 / 1: 25.78 25.80 25.82 25.80 25.74
- 15 / 2: 25.67 25.69 25.70 25.68 25.63
- 25 / 3: 25.51 25.53 25.54 25.53 25.48
- 35 / 4: 25.35 25.36 25.36 25.34 25.29
- 45 / 5: 25.16 25.15 25.12 25.07 25.02
-LIST/@JPT/@KPT !XT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 46 K: 1 1 L: 1 5 M: -999 -999 N: -999 -999
- reading TEMP M: 24 dset: 1 I: 101 105 J: 46 46 K: 1 1 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LONGITUDE-TIME)
- LATITUDE : 0.2N
- DEPTH (m): 5
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 17-AUG-1982 12 / 1: 25.78 25.80 25.82 25.80 25.74
- 23-AUG-1982 14 / 2: 25.98 25.97 25.94 25.89 25.83
- 29-AUG-1982 16 / 3: 26.18 26.13 26.07 26.01 25.97
- 04-SEP-1982 18 / 4: 26.39 26.31 26.24 26.18 26.15
- 10-SEP-1982 20 / 5: 26.62 26.55 26.47 26.40 26.36
-LIST/@IPT/@LPT !YZ
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 50 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
- reading TEMP M: 23 dset: 1 I: 101 101 J: 46 50 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LATITUDE-DEPTH (m))
- LONGITUDE: 129.5W
- TIME : 17-AUG-1982 12:00
- 0.17N 0.5N 0.83N 1.17N 1.5N
- 46 47 48 49 50
- 5 / 1: 25.78 25.90 26.04 26.22 26.42
- 15 / 2: 25.67 25.80 25.96 26.14 26.36
- 25 / 3: 25.51 25.68 25.90 26.12 26.35
- 35 / 4: 25.35 25.58 25.86 26.11 26.35
- 45 / 5: 25.16 25.41 25.77 26.10 26.35
-LIST/@IPT/@KPT !YT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 50 K: 1 1 L: 1 5 M: -999 -999 N: -999 -999
- reading TEMP M: 22 dset: 1 I: 101 101 J: 46 50 K: 1 1 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (LATITUDE-TIME)
- LONGITUDE: 129.5W
- DEPTH (m): 5
- 0.17N 0.5N 0.83N 1.17N 1.5N
- 46 47 48 49 50
- 17-AUG-1982 12 / 1: 25.78 25.90 26.04 26.22 26.42
- 23-AUG-1982 14 / 2: 25.98 26.10 26.26 26.44 26.65
- 29-AUG-1982 16 / 3: 26.18 26.30 26.46 26.65 26.86
- 04-SEP-1982 18 / 4: 26.39 26.51 26.67 26.85 27.05
- 10-SEP-1982 20 / 5: 26.62 26.72 26.87 27.03 27.17
-LIST/@IPT/@JPT !ZT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 46 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- reading TEMP M: 21 dset: 1 I: 101 101 J: 46 46 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 points (DEPTH (m)-TIME)
- LONGITUDE: 129.5W
- LATITUDE : 0.2N
- 5 15 25 35 45
- 1 2 3 4 5
- 17-AUG-1982 12 / 1: 25.78 25.67 25.51 25.35 25.16
- 23-AUG-1982 14 / 2: 25.98 25.87 25.70 25.55 25.36
- 29-AUG-1982 16 / 3: 26.18 26.08 25.93 25.79 25.60
- 04-SEP-1982 18 / 4: 26.39 26.31 26.16 26.04 25.83
- 10-SEP-1982 20 / 5: 26.62 26.53 26.36 26.25 26.04
-
-! cubes of data
-LIST/@LPT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
- reading TEMP M: 20 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 1 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
- TIME : 17-AUG-1982 12:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- ---- K:1 Z: 5
- 1.5N / 50: 26.42 26.46 26.50 26.51 26.48
- 1.17N / 49: 26.22 26.27 26.30 26.30 26.26
- 0.83N / 48: 26.04 26.10 26.13 26.11 26.06
- 0.5N / 47: 25.90 25.94 25.96 25.94 25.89
- 0.17N / 46: 25.78 25.80 25.82 25.80 25.74
- ---- K:2 Z: 15
- 1.5N / 50: 26.36 26.39 26.43 26.45 26.42
- 1.17N / 49: 26.14 26.19 26.23 26.23 26.19
- 0.83N / 48: 25.96 26.01 26.04 26.03 25.98
- 0.5N / 47: 25.80 25.84 25.87 25.85 25.79
- 0.17N / 46: 25.67 25.69 25.70 25.68 25.63
- ---- K:3 Z: 25
- 1.5N / 50: 26.35 26.38 26.42 26.44 26.41
- 1.17N / 49: 26.12 26.17 26.21 26.22 26.18
- 0.83N / 48: 25.90 25.95 25.99 25.99 25.94
- 0.5N / 47: 25.68 25.73 25.76 25.75 25.70
- 0.17N / 46: 25.51 25.53 25.54 25.53 25.48
- ---- K:4 Z: 35
- 1.5N / 50: 26.35 26.38 26.42 26.44 26.42
- 1.17N / 49: 26.11 26.16 26.21 26.22 26.18
- 0.83N / 48: 25.86 25.91 25.95 25.95 25.90
- 0.5N / 47: 25.58 25.62 25.64 25.63 25.58
- 0.17N / 46: 25.35 25.36 25.36 25.34 25.29
- ---- K:5 Z: 45
- 1.5N / 50: 26.35 26.38 26.42 26.44 26.42
- 1.17N / 49: 26.10 26.15 26.19 26.20 26.16
- 0.83N / 48: 25.77 25.81 25.82 25.81 25.76
- 0.5N / 47: 25.41 25.43 25.41 25.38 25.32
- 0.17N / 46: 25.16 25.15 25.12 25.07 25.02
-LIST/@KPT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 50 K: 1 1 L: 1 5 M: -999 -999 N: -999 -999
- reading TEMP M: 19 dset: 1 I: 101 105 J: 46 50 K: 1 1 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
- DEPTH (m): 5
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- ---- L:1 T: 17-AUG-1982 12:00
- 1.5N / 50: 26.42 26.46 26.50 26.51 26.48
- 1.17N / 49: 26.22 26.27 26.30 26.30 26.26
- 0.83N / 48: 26.04 26.10 26.13 26.11 26.06
- 0.5N / 47: 25.90 25.94 25.96 25.94 25.89
- 0.17N / 46: 25.78 25.80 25.82 25.80 25.74
- ---- L:2 T: 23-AUG-1982 14:00
- 1.5N / 50: 26.65 26.63 26.60 26.57 26.52
- 1.17N / 49: 26.44 26.42 26.40 26.35 26.29
- 0.83N / 48: 26.26 26.25 26.22 26.16 26.10
- 0.5N / 47: 26.10 26.10 26.07 26.01 25.95
- 0.17N / 46: 25.98 25.97 25.94 25.89 25.83
- ---- L:3 T: 29-AUG-1982 16:00
- 1.5N / 50: 26.86 26.78 26.70 26.64 26.60
- 1.17N / 49: 26.65 26.57 26.49 26.42 26.38
- 0.83N / 48: 26.46 26.38 26.31 26.24 26.20
- 0.5N / 47: 26.30 26.24 26.17 26.11 26.07
- 0.17N / 46: 26.18 26.13 26.07 26.01 25.97
- ---- L:4 T: 04-SEP-1982 18:00
- 1.5N / 50: 27.05 26.94 26.80 26.72 26.70
- 1.17N / 49: 26.85 26.72 26.59 26.52 26.51
- 0.83N / 48: 26.67 26.54 26.43 26.37 26.35
- 0.5N / 47: 26.51 26.41 26.32 26.26 26.23
- 0.17N / 46: 26.39 26.31 26.24 26.18 26.15
- ---- L:5 T: 10-SEP-1982 20:00
- 1.5N / 50: 27.17 27.13 26.95 26.84 26.83
- 1.17N / 49: 27.03 26.93 26.76 26.66 26.65
- 0.83N / 48: 26.87 26.75 26.62 26.54 26.52
- 0.5N / 47: 26.72 26.63 26.52 26.45 26.43
- 0.17N / 46: 26.62 26.55 26.47 26.40 26.36
-LIST/@JPT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 46 46 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- reading TEMP M: 18 dset: 1 I: 101 105 J: 46 46 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
- LATITUDE : 0.2N
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- ---- L:1 T: 17-AUG-1982 12:00
- 5 / 1: 25.78 25.80 25.82 25.80 25.74
- 15 / 2: 25.67 25.69 25.70 25.68 25.63
- 25 / 3: 25.51 25.53 25.54 25.53 25.48
- 35 / 4: 25.35 25.36 25.36 25.34 25.29
- 45 / 5: 25.16 25.15 25.12 25.07 25.02
- ---- L:2 T: 23-AUG-1982 14:00
- 5 / 1: 25.98 25.97 25.94 25.89 25.83
- 15 / 2: 25.87 25.86 25.83 25.78 25.72
- 25 / 3: 25.70 25.71 25.68 25.63 25.57
- 35 / 4: 25.55 25.55 25.52 25.46 25.40
- 45 / 5: 25.36 25.34 25.29 25.22 25.16
- ---- L:3 T: 29-AUG-1982 16:00
- 5 / 1: 26.18 26.13 26.07 26.01 25.97
- 15 / 2: 26.08 26.03 25.97 25.91 25.87
- 25 / 3: 25.93 25.89 25.82 25.75 25.69
- 35 / 4: 25.79 25.76 25.68 25.60 25.54
- 45 / 5: 25.60 25.56 25.49 25.41 25.35
- ---- L:4 T: 04-SEP-1982 18:00
- 5 / 1: 26.39 26.31 26.24 26.18 26.15
- 15 / 2: 26.31 26.22 26.14 26.09 26.05
- 25 / 3: 26.16 26.09 25.98 25.90 25.85
- 35 / 4: 26.04 25.98 25.87 25.78 25.72
- 45 / 5: 25.83 25.79 25.70 25.62 25.55
- ---- L:5 T: 10-SEP-1982 20:00
- 5 / 1: 26.62 26.55 26.47 26.40 26.36
- 15 / 2: 26.53 26.46 26.38 26.31 26.27
- 25 / 3: 26.36 26.31 26.19 26.08 26.03
- 35 / 4: 26.25 26.21 26.09 25.98 25.92
- 45 / 5: 26.04 26.01 25.93 25.84 25.77
-LIST/@IPT
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 101 101 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- reading TEMP M: 17 dset: 1 I: 101 101 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
- LONGITUDE: 129.5W
- 0.17N 0.5N 0.83N 1.17N 1.5N
- 46 47 48 49 50
- ---- L:1 T: 17-AUG-1982 12:00
- 5 / 1: 25.78 25.90 26.04 26.22 26.42
- 15 / 2: 25.67 25.80 25.96 26.14 26.36
- 25 / 3: 25.51 25.68 25.90 26.12 26.35
- 35 / 4: 25.35 25.58 25.86 26.11 26.35
- 45 / 5: 25.16 25.41 25.77 26.10 26.35
- ---- L:2 T: 23-AUG-1982 14:00
- 5 / 1: 25.98 26.10 26.26 26.44 26.65
- 15 / 2: 25.87 26.01 26.18 26.38 26.59
- 25 / 3: 25.70 25.91 26.14 26.36 26.59
- 35 / 4: 25.55 25.82 26.11 26.36 26.59
- 45 / 5: 25.36 25.64 26.02 26.36 26.59
- ---- L:3 T: 29-AUG-1982 16:00
- 5 / 1: 26.18 26.30 26.46 26.65 26.86
- 15 / 2: 26.08 26.22 26.40 26.60 26.82
- 25 / 3: 25.93 26.15 26.38 26.59 26.81
- 35 / 4: 25.79 26.08 26.37 26.59 26.81
- 45 / 5: 25.60 25.90 26.29 26.59 26.81
- ---- L:4 T: 04-SEP-1982 18:00
- 5 / 1: 26.39 26.51 26.67 26.85 27.05
- 15 / 2: 26.31 26.44 26.61 26.81 27.00
- 25 / 3: 26.16 26.38 26.60 26.80 26.99
- 35 / 4: 26.04 26.33 26.59 26.80 26.99
- 45 / 5: 25.83 26.14 26.52 26.80 26.99
- ---- L:5 T: 10-SEP-1982 20:00
- 5 / 1: 26.62 26.72 26.87 27.03 27.17
- 15 / 2: 26.53 26.65 26.81 26.97 27.11
- 25 / 3: 26.36 26.59 26.78 26.95 27.09
- 35 / 4: 26.25 26.53 26.78 26.95 27.09
- 45 / 5: 26.04 26.32 26.68 26.95 27.09
-
-! 4D region
-LOAD
- eval EX#1 C: 4 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
- reading TEMP M: 16 dset: 1 I: 101 105 J: 46 50 K: 1 5 L: 1 5 M: -999 -999 N: -999 -999
-SET MODE/LAST DIAGNOSTIC
-
-! ******** diagnostic variable ************
-! *3/99* *kob* comment out look at qady variable - no longer important
-!USE gt160w011
-!DEFINE REGION/I=70 IPT
-!DEFINE REGION/J=50 JPT
-!DEFINE REGION/K=1 KPT
-!DEFINE REGION/L=1 LPT
-!DEFINE REGION/I=70:72/J=46:50/K=1:5/L=1:3 R4D
-!SET REG R4D
-!SET EXPRESSION qady
-!GO bn_geometry.sub
-
-! generate error through non-comformable limits
-SET MODE IGNORE_ERRORS
-LIST X[I=1:5] - X[I=6:9]
-SET MODE/LAST IGNORE_ERRORS
-
-
-
-GO bn_reset
-cancel mode verify
-set mode ignore ! needed for AIX 11/94
-GO bn_output
-! bn200_output.JNL
-! - test various output methods in FERRET
-! rev 0.0 4/27/90 *sh*
-
-LET v = 1000*i + 100*j + 10*k + l
-SET REGION/I=1:2/J=3:4/K=5:6/L=7:8
-SET EXPRESSION v
-LOAD
-
-! ------------------------------------------
-! single variable list
-GO bn_output.sub
-! BN200_OUTPUT.SUB
-! - test various output order permutations FERRET
-! rev 0.0 9/18/90 *sh*
-
-! test permutations on output
-! ------ 4D region
-SET REGION/I=1:2/J=3:4/K=5:6/L=7:8
-LIST/ORDER=XYZT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:7 T: 7
- ---- K:5 Z: 5
- 3 / 3: 1357. 2357.
- 4 / 4: 1457. 2457.
- ---- K:6 Z: 6
- 3 / 3: 1367. 2367.
- 4 / 4: 1467. 2467.
- ---- L:8 T: 8
- ---- K:5 Z: 5
- 3 / 3: 1358. 2358.
- 4 / 4: 1458. 2458.
- ---- K:6 Z: 6
- 3 / 3: 1368. 2368.
- 4 / 4: 1468. 2468.
-LIST/ORDER=XYTZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (X-Y-T-Z)
- 1 2
- 1 2
- ---- K:5 Z: 5
- ---- L:7 T: 7
- 3 / 3: 1357. 2357.
- 4 / 4: 1457. 2457.
- ---- L:8 T: 8
- 3 / 3: 1358. 2358.
- 4 / 4: 1458. 2458.
- ---- K:6 Z: 6
- ---- L:7 T: 7
- 3 / 3: 1367. 2367.
- 4 / 4: 1467. 2467.
- ---- L:8 T: 8
- 3 / 3: 1368. 2368.
- 4 / 4: 1468. 2468.
-LIST/ORDER=XZYT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (X-Z-Y-T)
- 1 2
- 1 2
- ---- L:7 T: 7
- ---- J:3 Y: 3
- 5 / 5: 1357. 2357.
- 6 / 6: 1367. 2367.
- ---- J:4 Y: 4
- 5 / 5: 1457. 2457.
- 6 / 6: 1467. 2467.
- ---- L:8 T: 8
- ---- J:3 Y: 3
- 5 / 5: 1358. 2358.
- 6 / 6: 1368. 2368.
- ---- J:4 Y: 4
- 5 / 5: 1458. 2458.
- 6 / 6: 1468. 2468.
-LIST/ORDER=XZTY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (X-Z-T-Y)
- 1 2
- 1 2
- ---- J:3 Y: 3
- ---- L:7 T: 7
- 5 / 5: 1357. 2357.
- 6 / 6: 1367. 2367.
- ---- L:8 T: 8
- 5 / 5: 1358. 2358.
- 6 / 6: 1368. 2368.
- ---- J:4 Y: 4
- ---- L:7 T: 7
- 5 / 5: 1457. 2457.
- 6 / 6: 1467. 2467.
- ---- L:8 T: 8
- 5 / 5: 1458. 2458.
- 6 / 6: 1468. 2468.
-LIST/ORDER=XTYZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (X-T-Y-Z)
- 1 2
- 1 2
- ---- K:5 Z: 5
- ---- J:3 Y: 3
- 7 / 7: 1357. 2357.
- 8 / 8: 1358. 2358.
- ---- J:4 Y: 4
- 7 / 7: 1457. 2457.
- 8 / 8: 1458. 2458.
- ---- K:6 Z: 6
- ---- J:3 Y: 3
- 7 / 7: 1367. 2367.
- 8 / 8: 1368. 2368.
- ---- J:4 Y: 4
- 7 / 7: 1467. 2467.
- 8 / 8: 1468. 2468.
-LIST/ORDER=XTZY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (X-T-Z-Y)
- 1 2
- 1 2
- ---- J:3 Y: 3
- ---- K:5 Z: 5
- 7 / 7: 1357. 2357.
- 8 / 8: 1358. 2358.
- ---- K:6 Z: 6
- 7 / 7: 1367. 2367.
- 8 / 8: 1368. 2368.
- ---- J:4 Y: 4
- ---- K:5 Z: 5
- 7 / 7: 1457. 2457.
- 8 / 8: 1458. 2458.
- ---- K:6 Z: 6
- 7 / 7: 1467. 2467.
- 8 / 8: 1468. 2468.
-LIST/ORDER=YXZT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (Y-X-Z-T)
- 3 4
- 3 4
- ---- L:7 T: 7
- ---- K:5 Z: 5
- 1 / 1: 1357. 1457.
- 2 / 2: 2357. 2457.
- ---- K:6 Z: 6
- 1 / 1: 1367. 1467.
- 2 / 2: 2367. 2467.
- ---- L:8 T: 8
- ---- K:5 Z: 5
- 1 / 1: 1358. 1458.
- 2 / 2: 2358. 2458.
- ---- K:6 Z: 6
- 1 / 1: 1368. 1468.
- 2 / 2: 2368. 2468.
-LIST/ORDER=YXTZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (Y-X-T-Z)
- 3 4
- 3 4
- ---- K:5 Z: 5
- ---- L:7 T: 7
- 1 / 1: 1357. 1457.
- 2 / 2: 2357. 2457.
- ---- L:8 T: 8
- 1 / 1: 1358. 1458.
- 2 / 2: 2358. 2458.
- ---- K:6 Z: 6
- ---- L:7 T: 7
- 1 / 1: 1367. 1467.
- 2 / 2: 2367. 2467.
- ---- L:8 T: 8
- 1 / 1: 1368. 1468.
- 2 / 2: 2368. 2468.
-LIST/ORDER=YZXT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (Y-Z-X-T)
- 3 4
- 3 4
- ---- L:7 T: 7
- ---- I:1 X: 1
- 5 / 5: 1357. 1457.
- 6 / 6: 1367. 1467.
- ---- I:2 X: 2
- 5 / 5: 2357. 2457.
- 6 / 6: 2367. 2467.
- ---- L:8 T: 8
- ---- I:1 X: 1
- 5 / 5: 1358. 1458.
- 6 / 6: 1368. 1468.
- ---- I:2 X: 2
- 5 / 5: 2358. 2458.
- 6 / 6: 2368. 2468.
-LIST/ORDER=YZTX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (Y-Z-T-X)
- 3 4
- 3 4
- ---- I:1 X: 1
- ---- L:7 T: 7
- 5 / 5: 1357. 1457.
- 6 / 6: 1367. 1467.
- ---- L:8 T: 8
- 5 / 5: 1358. 1458.
- 6 / 6: 1368. 1468.
- ---- I:2 X: 2
- ---- L:7 T: 7
- 5 / 5: 2357. 2457.
- 6 / 6: 2367. 2467.
- ---- L:8 T: 8
- 5 / 5: 2358. 2458.
- 6 / 6: 2368. 2468.
-LIST/ORDER=YTXZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (Y-T-X-Z)
- 3 4
- 3 4
- ---- K:5 Z: 5
- ---- I:1 X: 1
- 7 / 7: 1357. 1457.
- 8 / 8: 1358. 1458.
- ---- I:2 X: 2
- 7 / 7: 2357. 2457.
- 8 / 8: 2358. 2458.
- ---- K:6 Z: 6
- ---- I:1 X: 1
- 7 / 7: 1367. 1467.
- 8 / 8: 1368. 1468.
- ---- I:2 X: 2
- 7 / 7: 2367. 2467.
- 8 / 8: 2368. 2468.
-LIST/ORDER=YTZX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (Y-T-Z-X)
- 3 4
- 3 4
- ---- I:1 X: 1
- ---- K:5 Z: 5
- 7 / 7: 1357. 1457.
- 8 / 8: 1358. 1458.
- ---- K:6 Z: 6
- 7 / 7: 1367. 1467.
- 8 / 8: 1368. 1468.
- ---- I:2 X: 2
- ---- K:5 Z: 5
- 7 / 7: 2357. 2457.
- 8 / 8: 2358. 2458.
- ---- K:6 Z: 6
- 7 / 7: 2367. 2467.
- 8 / 8: 2368. 2468.
-LIST/ORDER=ZXYT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (Z-X-Y-T)
- 5 6
- 5 6
- ---- L:7 T: 7
- ---- J:3 Y: 3
- 1 / 1: 1357. 1367.
- 2 / 2: 2357. 2367.
- ---- J:4 Y: 4
- 1 / 1: 1457. 1467.
- 2 / 2: 2457. 2467.
- ---- L:8 T: 8
- ---- J:3 Y: 3
- 1 / 1: 1358. 1368.
- 2 / 2: 2358. 2368.
- ---- J:4 Y: 4
- 1 / 1: 1458. 1468.
- 2 / 2: 2458. 2468.
-LIST/ORDER=ZXTY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (Z-X-T-Y)
- 5 6
- 5 6
- ---- J:3 Y: 3
- ---- L:7 T: 7
- 1 / 1: 1357. 1367.
- 2 / 2: 2357. 2367.
- ---- L:8 T: 8
- 1 / 1: 1358. 1368.
- 2 / 2: 2358. 2368.
- ---- J:4 Y: 4
- ---- L:7 T: 7
- 1 / 1: 1457. 1467.
- 2 / 2: 2457. 2467.
- ---- L:8 T: 8
- 1 / 1: 1458. 1468.
- 2 / 2: 2458. 2468.
-LIST/ORDER=ZYXT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (Z-Y-X-T)
- 5 6
- 5 6
- ---- L:7 T: 7
- ---- I:1 X: 1
- 3 / 3: 1357. 1367.
- 4 / 4: 1457. 1467.
- ---- I:2 X: 2
- 3 / 3: 2357. 2367.
- 4 / 4: 2457. 2467.
- ---- L:8 T: 8
- ---- I:1 X: 1
- 3 / 3: 1358. 1368.
- 4 / 4: 1458. 1468.
- ---- I:2 X: 2
- 3 / 3: 2358. 2368.
- 4 / 4: 2458. 2468.
-LIST/ORDER=ZYTX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (Z-Y-T-X)
- 5 6
- 5 6
- ---- I:1 X: 1
- ---- L:7 T: 7
- 3 / 3: 1357. 1367.
- 4 / 4: 1457. 1467.
- ---- L:8 T: 8
- 3 / 3: 1358. 1368.
- 4 / 4: 1458. 1468.
- ---- I:2 X: 2
- ---- L:7 T: 7
- 3 / 3: 2357. 2367.
- 4 / 4: 2457. 2467.
- ---- L:8 T: 8
- 3 / 3: 2358. 2368.
- 4 / 4: 2458. 2468.
-LIST/ORDER=ZTXY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (Z-T-X-Y)
- 5 6
- 5 6
- ---- J:3 Y: 3
- ---- I:1 X: 1
- 7 / 7: 1357. 1367.
- 8 / 8: 1358. 1368.
- ---- I:2 X: 2
- 7 / 7: 2357. 2367.
- 8 / 8: 2358. 2368.
- ---- J:4 Y: 4
- ---- I:1 X: 1
- 7 / 7: 1457. 1467.
- 8 / 8: 1458. 1468.
- ---- I:2 X: 2
- 7 / 7: 2457. 2467.
- 8 / 8: 2458. 2468.
-LIST/ORDER=ZTYX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (Z-T-Y-X)
- 5 6
- 5 6
- ---- I:1 X: 1
- ---- J:3 Y: 3
- 7 / 7: 1357. 1367.
- 8 / 8: 1358. 1368.
- ---- J:4 Y: 4
- 7 / 7: 1457. 1467.
- 8 / 8: 1458. 1468.
- ---- I:2 X: 2
- ---- J:3 Y: 3
- 7 / 7: 2357. 2367.
- 8 / 8: 2358. 2368.
- ---- J:4 Y: 4
- 7 / 7: 2457. 2467.
- 8 / 8: 2458. 2468.
-LIST/ORDER=TXYZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (T-X-Y-Z)
- 7 8
- 7 8
- ---- K:5 Z: 5
- ---- J:3 Y: 3
- 1 / 1: 1357. 1358.
- 2 / 2: 2357. 2358.
- ---- J:4 Y: 4
- 1 / 1: 1457. 1458.
- 2 / 2: 2457. 2458.
- ---- K:6 Z: 6
- ---- J:3 Y: 3
- 1 / 1: 1367. 1368.
- 2 / 2: 2367. 2368.
- ---- J:4 Y: 4
- 1 / 1: 1467. 1468.
- 2 / 2: 2467. 2468.
-LIST/ORDER=TXZY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (T-X-Z-Y)
- 7 8
- 7 8
- ---- J:3 Y: 3
- ---- K:5 Z: 5
- 1 / 1: 1357. 1358.
- 2 / 2: 2357. 2358.
- ---- K:6 Z: 6
- 1 / 1: 1367. 1368.
- 2 / 2: 2367. 2368.
- ---- J:4 Y: 4
- ---- K:5 Z: 5
- 1 / 1: 1457. 1458.
- 2 / 2: 2457. 2458.
- ---- K:6 Z: 6
- 1 / 1: 1467. 1468.
- 2 / 2: 2467. 2468.
-LIST/ORDER=TYXZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (T-Y-X-Z)
- 7 8
- 7 8
- ---- K:5 Z: 5
- ---- I:1 X: 1
- 3 / 3: 1357. 1358.
- 4 / 4: 1457. 1458.
- ---- I:2 X: 2
- 3 / 3: 2357. 2358.
- 4 / 4: 2457. 2458.
- ---- K:6 Z: 6
- ---- I:1 X: 1
- 3 / 3: 1367. 1368.
- 4 / 4: 1467. 1468.
- ---- I:2 X: 2
- 3 / 3: 2367. 2368.
- 4 / 4: 2467. 2468.
-LIST/ORDER=TYZX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (T-Y-Z-X)
- 7 8
- 7 8
- ---- I:1 X: 1
- ---- K:5 Z: 5
- 3 / 3: 1357. 1358.
- 4 / 4: 1457. 1458.
- ---- K:6 Z: 6
- 3 / 3: 1367. 1368.
- 4 / 4: 1467. 1468.
- ---- I:2 X: 2
- ---- K:5 Z: 5
- 3 / 3: 2357. 2358.
- 4 / 4: 2457. 2458.
- ---- K:6 Z: 6
- 3 / 3: 2367. 2368.
- 4 / 4: 2467. 2468.
-LIST/ORDER=TZXY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (T-Z-X-Y)
- 7 8
- 7 8
- ---- J:3 Y: 3
- ---- I:1 X: 1
- 5 / 5: 1357. 1358.
- 6 / 6: 1367. 1368.
- ---- I:2 X: 2
- 5 / 5: 2357. 2358.
- 6 / 6: 2367. 2368.
- ---- J:4 Y: 4
- ---- I:1 X: 1
- 5 / 5: 1457. 1458.
- 6 / 6: 1467. 1468.
- ---- I:2 X: 2
- 5 / 5: 2457. 2458.
- 6 / 6: 2467. 2468.
-LIST/ORDER=TZYX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 by 2 points (T-Z-Y-X)
- 7 8
- 7 8
- ---- I:1 X: 1
- ---- J:3 Y: 3
- 5 / 5: 1357. 1358.
- 6 / 6: 1367. 1368.
- ---- J:4 Y: 4
- 5 / 5: 1457. 1458.
- 6 / 6: 1467. 1468.
- ---- I:2 X: 2
- ---- J:3 Y: 3
- 5 / 5: 2357. 2358.
- 6 / 6: 2367. 2368.
- ---- J:4 Y: 4
- 5 / 5: 2457. 2458.
- 6 / 6: 2467. 2468.
-
-! ------ 3D regions
-SET REGION/I=1/J=3:4/K=5:6/L=7:8
-LIST/ORDER=YZT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (Y-Z-T)
- X : 1
- 3 4
- 3 4
- ---- L:7 T: 7
- 5 / 5: 1357. 1457.
- 6 / 6: 1367. 1467.
- ---- L:8 T: 8
- 5 / 5: 1358. 1458.
- 6 / 6: 1368. 1468.
-LIST/ORDER=YTZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (Y-T-Z)
- X : 1
- 3 4
- 3 4
- ---- K:5 Z: 5
- 7 / 7: 1357. 1457.
- 8 / 8: 1358. 1458.
- ---- K:6 Z: 6
- 7 / 7: 1367. 1467.
- 8 / 8: 1368. 1468.
-LIST/ORDER=ZYT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (Z-Y-T)
- X : 1
- 5 6
- 5 6
- ---- L:7 T: 7
- 3 / 3: 1357. 1367.
- 4 / 4: 1457. 1467.
- ---- L:8 T: 8
- 3 / 3: 1358. 1368.
- 4 / 4: 1458. 1468.
-LIST/ORDER=ZTY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (Z-T-Y)
- X : 1
- 5 6
- 5 6
- ---- J:3 Y: 3
- 7 / 7: 1357. 1367.
- 8 / 8: 1358. 1368.
- ---- J:4 Y: 4
- 7 / 7: 1457. 1467.
- 8 / 8: 1458. 1468.
-LIST/ORDER=TYZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (T-Y-Z)
- X : 1
- 7 8
- 7 8
- ---- K:5 Z: 5
- 3 / 3: 1357. 1358.
- 4 / 4: 1457. 1458.
- ---- K:6 Z: 6
- 3 / 3: 1367. 1368.
- 4 / 4: 1467. 1468.
-LIST/ORDER=TZY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (T-Z-Y)
- X : 1
- 7 8
- 7 8
- ---- J:3 Y: 3
- 5 / 5: 1357. 1358.
- 6 / 6: 1367. 1368.
- ---- J:4 Y: 4
- 5 / 5: 1457. 1458.
- 6 / 6: 1467. 1468.
-
-SET REGION/I=1:2/J=3/K=5:6/L=7:8
-LIST/ORDER=XZT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (X-Z-T)
- Y : 3
- 1 2
- 1 2
- ---- L:7 T: 7
- 5 / 5: 1357. 2357.
- 6 / 6: 1367. 2367.
- ---- L:8 T: 8
- 5 / 5: 1358. 2358.
- 6 / 6: 1368. 2368.
-LIST/ORDER=XTZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (X-T-Z)
- Y : 3
- 1 2
- 1 2
- ---- K:5 Z: 5
- 7 / 7: 1357. 2357.
- 8 / 8: 1358. 2358.
- ---- K:6 Z: 6
- 7 / 7: 1367. 2367.
- 8 / 8: 1368. 2368.
-LIST/ORDER=ZXT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (Z-X-T)
- Y : 3
- 5 6
- 5 6
- ---- L:7 T: 7
- 1 / 1: 1357. 1367.
- 2 / 2: 2357. 2367.
- ---- L:8 T: 8
- 1 / 1: 1358. 1368.
- 2 / 2: 2358. 2368.
-LIST/ORDER=ZTX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (Z-T-X)
- Y : 3
- 5 6
- 5 6
- ---- I:1 X: 1
- 7 / 7: 1357. 1367.
- 8 / 8: 1358. 1368.
- ---- I:2 X: 2
- 7 / 7: 2357. 2367.
- 8 / 8: 2358. 2368.
-LIST/ORDER=TXZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (T-X-Z)
- Y : 3
- 7 8
- 7 8
- ---- K:5 Z: 5
- 1 / 1: 1357. 1358.
- 2 / 2: 2357. 2358.
- ---- K:6 Z: 6
- 1 / 1: 1367. 1368.
- 2 / 2: 2367. 2368.
-LIST/ORDER=TZX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (T-Z-X)
- Y : 3
- 7 8
- 7 8
- ---- I:1 X: 1
- 5 / 5: 1357. 1358.
- 6 / 6: 1367. 1368.
- ---- I:2 X: 2
- 5 / 5: 2357. 2358.
- 6 / 6: 2367. 2368.
-
-SET REGION/I=1:2/J=3:4/K=5/L=7:8
-LIST/ORDER=XYT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (X-Y-T)
- Z : 5
- 1 2
- 1 2
- ---- L:7 T: 7
- 3 / 3: 1357. 2357.
- 4 / 4: 1457. 2457.
- ---- L:8 T: 8
- 3 / 3: 1358. 2358.
- 4 / 4: 1458. 2458.
-LIST/ORDER=XTY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (X-T-Y)
- Z : 5
- 1 2
- 1 2
- ---- J:3 Y: 3
- 7 / 7: 1357. 2357.
- 8 / 8: 1358. 2358.
- ---- J:4 Y: 4
- 7 / 7: 1457. 2457.
- 8 / 8: 1458. 2458.
-LIST/ORDER=YXT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (Y-X-T)
- Z : 5
- 3 4
- 3 4
- ---- L:7 T: 7
- 1 / 1: 1357. 1457.
- 2 / 2: 2357. 2457.
- ---- L:8 T: 8
- 1 / 1: 1358. 1458.
- 2 / 2: 2358. 2458.
-LIST/ORDER=YTX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (Y-T-X)
- Z : 5
- 3 4
- 3 4
- ---- I:1 X: 1
- 7 / 7: 1357. 1457.
- 8 / 8: 1358. 1458.
- ---- I:2 X: 2
- 7 / 7: 2357. 2457.
- 8 / 8: 2358. 2458.
-LIST/ORDER=TXY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (T-X-Y)
- Z : 5
- 7 8
- 7 8
- ---- J:3 Y: 3
- 1 / 1: 1357. 1358.
- 2 / 2: 2357. 2358.
- ---- J:4 Y: 4
- 1 / 1: 1457. 1458.
- 2 / 2: 2457. 2458.
-LIST/ORDER=TYX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (T-Y-X)
- Z : 5
- 7 8
- 7 8
- ---- I:1 X: 1
- 3 / 3: 1357. 1358.
- 4 / 4: 1457. 1458.
- ---- I:2 X: 2
- 3 / 3: 2357. 2358.
- 4 / 4: 2457. 2458.
-
-SET REGION/I=1:2/J=3:4/K=5:6/L=7
-LIST/ORDER=XYZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 7
- 1 2
- 1 2
- ---- K:5 Z: 5
- 3 / 3: 1357. 2357.
- 4 / 4: 1457. 2457.
- ---- K:6 Z: 6
- 3 / 3: 1367. 2367.
- 4 / 4: 1467. 2467.
-LIST/ORDER=XZY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (X-Z-Y)
- T : 7
- 1 2
- 1 2
- ---- J:3 Y: 3
- 5 / 5: 1357. 2357.
- 6 / 6: 1367. 2367.
- ---- J:4 Y: 4
- 5 / 5: 1457. 2457.
- 6 / 6: 1467. 2467.
-LIST/ORDER=YXZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (Y-X-Z)
- T : 7
- 3 4
- 3 4
- ---- K:5 Z: 5
- 1 / 1: 1357. 1457.
- 2 / 2: 2357. 2457.
- ---- K:6 Z: 6
- 1 / 1: 1367. 1467.
- 2 / 2: 2367. 2467.
-LIST/ORDER=YZX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (Y-Z-X)
- T : 7
- 3 4
- 3 4
- ---- I:1 X: 1
- 5 / 5: 1357. 1457.
- 6 / 6: 1367. 1467.
- ---- I:2 X: 2
- 5 / 5: 2357. 2457.
- 6 / 6: 2367. 2467.
-LIST/ORDER=ZXY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (Z-X-Y)
- T : 7
- 5 6
- 5 6
- ---- J:3 Y: 3
- 1 / 1: 1357. 1367.
- 2 / 2: 2357. 2367.
- ---- J:4 Y: 4
- 1 / 1: 1457. 1467.
- 2 / 2: 2457. 2467.
-LIST/ORDER=ZYX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 by 2 points (Z-Y-X)
- T : 7
- 5 6
- 5 6
- ---- I:1 X: 1
- 3 / 3: 1357. 1367.
- 4 / 4: 1457. 1467.
- ---- I:2 X: 2
- 3 / 3: 2357. 2367.
- 4 / 4: 2457. 2467.
-
-! ------ 2D regions
-SET REGION/I=1/J=3/K=5:6/L=7:8
-LIST/ORDER=ZT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 points (Z-T)
- X : 1
- Y : 3
- 5 6
- 5 6
- 7 / 7: 1357. 1367.
- 8 / 8: 1358. 1368.
-LIST/ORDER=TZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 points (T-Z)
- X : 1
- Y : 3
- 7 8
- 7 8
- 5 / 5: 1357. 1358.
- 6 / 6: 1367. 1368.
-
-SET REGION/I=1/J=3:4/K=5/L=7:8
-LIST/ORDER=YT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 points (Y-T)
- X : 1
- Z : 5
- 3 4
- 3 4
- 7 / 7: 1357. 1457.
- 8 / 8: 1358. 1458.
-LIST/ORDER=TY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 points (T-Y)
- X : 1
- Z : 5
- 7 8
- 7 8
- 3 / 3: 1357. 1358.
- 4 / 4: 1457. 1458.
-
-SET REGION/I=1/J=3:4/K=5:6/L=7
-LIST/ORDER=YZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 points (Y-Z)
- X : 1
- T : 7
- 3 4
- 3 4
- 5 / 5: 1357. 1457.
- 6 / 6: 1367. 1467.
-LIST/ORDER=ZY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 points (Z-Y)
- X : 1
- T : 7
- 5 6
- 5 6
- 3 / 3: 1357. 1367.
- 4 / 4: 1457. 1467.
-
-SET REGION/I=1:2/J=3/K=5/L=7:8
-LIST/ORDER=XT
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 points (X-T)
- Y : 3
- Z : 5
- 1 2
- 1 2
- 7 / 7: 1357. 2357.
- 8 / 8: 1358. 2358.
-LIST/ORDER=TX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 points (T-X)
- Y : 3
- Z : 5
- 7 8
- 7 8
- 1 / 1: 1357. 1358.
- 2 / 2: 2357. 2358.
-
-SET REGION/I=1:2/J=3/K=5:6/L=7
-LIST/ORDER=XZ
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 points (X-Z)
- Y : 3
- T : 7
- 1 2
- 1 2
- 5 / 5: 1357. 2357.
- 6 / 6: 1367. 2367.
-LIST/ORDER=ZX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 points (Z-X)
- Y : 3
- T : 7
- 5 6
- 5 6
- 1 / 1: 1357. 1367.
- 2 / 2: 2357. 2367.
-
-SET REGION/I=1:2/J=3:4/K=5/L=7
-LIST/ORDER=XY
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 points (X-Y)
- Z : 5
- T : 7
- 1 2
- 1 2
- 3 / 3: 1357. 2357.
- 4 / 4: 1457. 2457.
-LIST/ORDER=YX
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 by 2 points (Y-X)
- Z : 5
- T : 7
- 3 4
- 3 4
- 1 / 1: 1357. 1457.
- 2 / 2: 2357. 2457.
-
-! ------ 1D regions
-LIST/I=1:2/J=3/K=5/L=7
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 points (X)
- Y : 3
- Z : 5
- T : 7
- 3
- 3
- 1 / 1: 1357.
- 2 / 2: 2357.
-LIST/I=1/J=3:4/K=5/L=7
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 points (Y)
- X : 1
- Z : 5
- T : 7
- 1
- 1
- 3 / 3: 1357.
- 4 / 4: 1457.
-LIST/I=1/J=3/K=5:6/L=7
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 points (Z)
- X : 1
- Y : 3
- T : 7
- 1
- 1
- 5 / 5: 1357.
- 6 / 6: 1367.
-LIST/I=1/J=3/K=5/L=7:8
- VARIABLE : 1000*I + 100*J + 10*K + L
- SUBSET : 2 points (T)
- X : 1
- Y : 3
- Z : 5
- 1
- 1
- 7 / 7: 1357.
- 8 / 8: 1358.
-
-! multiple variable list
-SET EXPRESSION v,i,j,k,l
-GO bn_output.sub
-! BN200_OUTPUT.SUB
-! - test various output order permutations FERRET
-! rev 0.0 9/18/90 *sh*
-
-! test permutations on output
-! ------ 4D region
-SET REGION/I=1:2/J=3:4/K=5:6/L=7:8
-LIST/ORDER=XYZT
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- T: 6.5 to 8.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
- ---- K:5 Z: 5
- ---- J:3 Y: 3
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
- ---- J:3 Y: 3
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1467. 1.000 4.000 6.000 7.000
-2 / 2: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- K:5 Z: 5
- ---- J:3 Y: 3
-1 / 1: 1358. 1.000 3.000 5.000 8.000
-2 / 2: 2358. 2.000 3.000 5.000 8.000
- ---- J:4 Y: 4
-1 / 1: 1458. 1.000 4.000 5.000 8.000
-2 / 2: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- J:3 Y: 3
-1 / 1: 1368. 1.000 3.000 6.000 8.000
-2 / 2: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
-1 / 1: 1468. 1.000 4.000 6.000 8.000
-2 / 2: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=XYTZ
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- T: 6.5 to 8.5
- Z: 4.5 to 6.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- L:7 T: 7
- ---- J:3 Y: 3
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- L:8 T: 8
- ---- J:3 Y: 3
-1 / 1: 1358. 1.000 3.000 5.000 8.000
-2 / 2: 2358. 2.000 3.000 5.000 8.000
- ---- J:4 Y: 4
-1 / 1: 1458. 1.000 4.000 5.000 8.000
-2 / 2: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- L:7 T: 7
- ---- J:3 Y: 3
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1467. 1.000 4.000 6.000 7.000
-2 / 2: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- J:3 Y: 3
-1 / 1: 1368. 1.000 3.000 6.000 8.000
-2 / 2: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
-1 / 1: 1468. 1.000 4.000 6.000 8.000
-2 / 2: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=XZYT
- X: 0.5 to 2.5
- Z: 4.5 to 6.5
- Y: 2.5 to 4.5
- T: 6.5 to 8.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
- ---- J:3 Y: 3
- ---- K:5 Z: 5
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- K:6 Z: 6
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
- ---- K:5 Z: 5
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
-1 / 1: 1467. 1.000 4.000 6.000 7.000
-2 / 2: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- J:3 Y: 3
- ---- K:5 Z: 5
-1 / 1: 1358. 1.000 3.000 5.000 8.000
-2 / 2: 2358. 2.000 3.000 5.000 8.000
- ---- K:6 Z: 6
-1 / 1: 1368. 1.000 3.000 6.000 8.000
-2 / 2: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- K:5 Z: 5
-1 / 1: 1458. 1.000 4.000 5.000 8.000
-2 / 2: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
-1 / 1: 1468. 1.000 4.000 6.000 8.000
-2 / 2: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=XZTY
- X: 0.5 to 2.5
- Z: 4.5 to 6.5
- T: 6.5 to 8.5
- Y: 2.5 to 4.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
- ---- L:7 T: 7
- ---- K:5 Z: 5
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- K:6 Z: 6
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- L:8 T: 8
- ---- K:5 Z: 5
-1 / 1: 1358. 1.000 3.000 5.000 8.000
-2 / 2: 2358. 2.000 3.000 5.000 8.000
- ---- K:6 Z: 6
-1 / 1: 1368. 1.000 3.000 6.000 8.000
-2 / 2: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- L:7 T: 7
- ---- K:5 Z: 5
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
-1 / 1: 1467. 1.000 4.000 6.000 7.000
-2 / 2: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- K:5 Z: 5
-1 / 1: 1458. 1.000 4.000 5.000 8.000
-2 / 2: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
-1 / 1: 1468. 1.000 4.000 6.000 8.000
-2 / 2: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=XTYZ
- X: 0.5 to 2.5
- T: 6.5 to 8.5
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- J:3 Y: 3
- ---- L:7 T: 7
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- L:8 T: 8
-1 / 1: 1358. 1.000 3.000 5.000 8.000
-2 / 2: 2358. 2.000 3.000 5.000 8.000
- ---- J:4 Y: 4
- ---- L:7 T: 7
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- L:8 T: 8
-1 / 1: 1458. 1.000 4.000 5.000 8.000
-2 / 2: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- J:3 Y: 3
- ---- L:7 T: 7
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- L:8 T: 8
-1 / 1: 1368. 1.000 3.000 6.000 8.000
-2 / 2: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- L:7 T: 7
-1 / 1: 1467. 1.000 4.000 6.000 7.000
-2 / 2: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
-1 / 1: 1468. 1.000 4.000 6.000 8.000
-2 / 2: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=XTZY
- X: 0.5 to 2.5
- T: 6.5 to 8.5
- Z: 4.5 to 6.5
- Y: 2.5 to 4.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
- ---- K:5 Z: 5
- ---- L:7 T: 7
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- L:8 T: 8
-1 / 1: 1358. 1.000 3.000 5.000 8.000
-2 / 2: 2358. 2.000 3.000 5.000 8.000
- ---- K:6 Z: 6
- ---- L:7 T: 7
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- L:8 T: 8
-1 / 1: 1368. 1.000 3.000 6.000 8.000
-2 / 2: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- K:5 Z: 5
- ---- L:7 T: 7
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- L:8 T: 8
-1 / 1: 1458. 1.000 4.000 5.000 8.000
-2 / 2: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- L:7 T: 7
-1 / 1: 1467. 1.000 4.000 6.000 7.000
-2 / 2: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
-1 / 1: 1468. 1.000 4.000 6.000 8.000
-2 / 2: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=YXZT
- Y: 2.5 to 4.5
- X: 0.5 to 2.5
- Z: 4.5 to 6.5
- T: 6.5 to 8.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
- ---- K:5 Z: 5
- ---- I:1 X: 1
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- I:2 X: 2
-3 / 3: 2357. 2.000 3.000 5.000 7.000
-4 / 4: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
- ---- I:1 X: 1
-3 / 3: 1367. 1.000 3.000 6.000 7.000
-4 / 4: 1467. 1.000 4.000 6.000 7.000
- ---- I:2 X: 2
-3 / 3: 2367. 2.000 3.000 6.000 7.000
-4 / 4: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- K:5 Z: 5
- ---- I:1 X: 1
-3 / 3: 1358. 1.000 3.000 5.000 8.000
-4 / 4: 1458. 1.000 4.000 5.000 8.000
- ---- I:2 X: 2
-3 / 3: 2358. 2.000 3.000 5.000 8.000
-4 / 4: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- I:1 X: 1
-3 / 3: 1368. 1.000 3.000 6.000 8.000
-4 / 4: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
-3 / 3: 2368. 2.000 3.000 6.000 8.000
-4 / 4: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=YXTZ
- Y: 2.5 to 4.5
- X: 0.5 to 2.5
- T: 6.5 to 8.5
- Z: 4.5 to 6.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- L:7 T: 7
- ---- I:1 X: 1
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- I:2 X: 2
-3 / 3: 2357. 2.000 3.000 5.000 7.000
-4 / 4: 2457. 2.000 4.000 5.000 7.000
- ---- L:8 T: 8
- ---- I:1 X: 1
-3 / 3: 1358. 1.000 3.000 5.000 8.000
-4 / 4: 1458. 1.000 4.000 5.000 8.000
- ---- I:2 X: 2
-3 / 3: 2358. 2.000 3.000 5.000 8.000
-4 / 4: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- L:7 T: 7
- ---- I:1 X: 1
-3 / 3: 1367. 1.000 3.000 6.000 7.000
-4 / 4: 1467. 1.000 4.000 6.000 7.000
- ---- I:2 X: 2
-3 / 3: 2367. 2.000 3.000 6.000 7.000
-4 / 4: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- I:1 X: 1
-3 / 3: 1368. 1.000 3.000 6.000 8.000
-4 / 4: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
-3 / 3: 2368. 2.000 3.000 6.000 8.000
-4 / 4: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=YZXT
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- X: 0.5 to 2.5
- T: 6.5 to 8.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
- ---- I:1 X: 1
- ---- K:5 Z: 5
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- K:6 Z: 6
-3 / 3: 1367. 1.000 3.000 6.000 7.000
-4 / 4: 1467. 1.000 4.000 6.000 7.000
- ---- I:2 X: 2
- ---- K:5 Z: 5
-3 / 3: 2357. 2.000 3.000 5.000 7.000
-4 / 4: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
-3 / 3: 2367. 2.000 3.000 6.000 7.000
-4 / 4: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- I:1 X: 1
- ---- K:5 Z: 5
-3 / 3: 1358. 1.000 3.000 5.000 8.000
-4 / 4: 1458. 1.000 4.000 5.000 8.000
- ---- K:6 Z: 6
-3 / 3: 1368. 1.000 3.000 6.000 8.000
-4 / 4: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
- ---- K:5 Z: 5
-3 / 3: 2358. 2.000 3.000 5.000 8.000
-4 / 4: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
-3 / 3: 2368. 2.000 3.000 6.000 8.000
-4 / 4: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=YZTX
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- T: 6.5 to 8.5
- X: 0.5 to 2.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
- ---- L:7 T: 7
- ---- K:5 Z: 5
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- K:6 Z: 6
-3 / 3: 1367. 1.000 3.000 6.000 7.000
-4 / 4: 1467. 1.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- K:5 Z: 5
-3 / 3: 1358. 1.000 3.000 5.000 8.000
-4 / 4: 1458. 1.000 4.000 5.000 8.000
- ---- K:6 Z: 6
-3 / 3: 1368. 1.000 3.000 6.000 8.000
-4 / 4: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
- ---- L:7 T: 7
- ---- K:5 Z: 5
-3 / 3: 2357. 2.000 3.000 5.000 7.000
-4 / 4: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
-3 / 3: 2367. 2.000 3.000 6.000 7.000
-4 / 4: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- K:5 Z: 5
-3 / 3: 2358. 2.000 3.000 5.000 8.000
-4 / 4: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
-3 / 3: 2368. 2.000 3.000 6.000 8.000
-4 / 4: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=YTXZ
- Y: 2.5 to 4.5
- T: 6.5 to 8.5
- X: 0.5 to 2.5
- Z: 4.5 to 6.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- I:1 X: 1
- ---- L:7 T: 7
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- L:8 T: 8
-3 / 3: 1358. 1.000 3.000 5.000 8.000
-4 / 4: 1458. 1.000 4.000 5.000 8.000
- ---- I:2 X: 2
- ---- L:7 T: 7
-3 / 3: 2357. 2.000 3.000 5.000 7.000
-4 / 4: 2457. 2.000 4.000 5.000 7.000
- ---- L:8 T: 8
-3 / 3: 2358. 2.000 3.000 5.000 8.000
-4 / 4: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- I:1 X: 1
- ---- L:7 T: 7
-3 / 3: 1367. 1.000 3.000 6.000 7.000
-4 / 4: 1467. 1.000 4.000 6.000 7.000
- ---- L:8 T: 8
-3 / 3: 1368. 1.000 3.000 6.000 8.000
-4 / 4: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
- ---- L:7 T: 7
-3 / 3: 2367. 2.000 3.000 6.000 7.000
-4 / 4: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
-3 / 3: 2368. 2.000 3.000 6.000 8.000
-4 / 4: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=YTZX
- Y: 2.5 to 4.5
- T: 6.5 to 8.5
- Z: 4.5 to 6.5
- X: 0.5 to 2.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
- ---- K:5 Z: 5
- ---- L:7 T: 7
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- L:8 T: 8
-3 / 3: 1358. 1.000 3.000 5.000 8.000
-4 / 4: 1458. 1.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- L:7 T: 7
-3 / 3: 1367. 1.000 3.000 6.000 7.000
-4 / 4: 1467. 1.000 4.000 6.000 7.000
- ---- L:8 T: 8
-3 / 3: 1368. 1.000 3.000 6.000 8.000
-4 / 4: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
- ---- K:5 Z: 5
- ---- L:7 T: 7
-3 / 3: 2357. 2.000 3.000 5.000 7.000
-4 / 4: 2457. 2.000 4.000 5.000 7.000
- ---- L:8 T: 8
-3 / 3: 2358. 2.000 3.000 5.000 8.000
-4 / 4: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- L:7 T: 7
-3 / 3: 2367. 2.000 3.000 6.000 7.000
-4 / 4: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
-3 / 3: 2368. 2.000 3.000 6.000 8.000
-4 / 4: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=ZXYT
- Z: 4.5 to 6.5
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- T: 6.5 to 8.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
- ---- J:3 Y: 3
- ---- I:1 X: 1
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- I:2 X: 2
-5 / 5: 2357. 2.000 3.000 5.000 7.000
-6 / 6: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
- ---- I:1 X: 1
-5 / 5: 1457. 1.000 4.000 5.000 7.000
-6 / 6: 1467. 1.000 4.000 6.000 7.000
- ---- I:2 X: 2
-5 / 5: 2457. 2.000 4.000 5.000 7.000
-6 / 6: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- J:3 Y: 3
- ---- I:1 X: 1
-5 / 5: 1358. 1.000 3.000 5.000 8.000
-6 / 6: 1368. 1.000 3.000 6.000 8.000
- ---- I:2 X: 2
-5 / 5: 2358. 2.000 3.000 5.000 8.000
-6 / 6: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- I:1 X: 1
-5 / 5: 1458. 1.000 4.000 5.000 8.000
-6 / 6: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
-5 / 5: 2458. 2.000 4.000 5.000 8.000
-6 / 6: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=ZXTY
- Z: 4.5 to 6.5
- X: 0.5 to 2.5
- T: 6.5 to 8.5
- Y: 2.5 to 4.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
- ---- L:7 T: 7
- ---- I:1 X: 1
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- I:2 X: 2
-5 / 5: 2357. 2.000 3.000 5.000 7.000
-6 / 6: 2367. 2.000 3.000 6.000 7.000
- ---- L:8 T: 8
- ---- I:1 X: 1
-5 / 5: 1358. 1.000 3.000 5.000 8.000
-6 / 6: 1368. 1.000 3.000 6.000 8.000
- ---- I:2 X: 2
-5 / 5: 2358. 2.000 3.000 5.000 8.000
-6 / 6: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- L:7 T: 7
- ---- I:1 X: 1
-5 / 5: 1457. 1.000 4.000 5.000 7.000
-6 / 6: 1467. 1.000 4.000 6.000 7.000
- ---- I:2 X: 2
-5 / 5: 2457. 2.000 4.000 5.000 7.000
-6 / 6: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- I:1 X: 1
-5 / 5: 1458. 1.000 4.000 5.000 8.000
-6 / 6: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
-5 / 5: 2458. 2.000 4.000 5.000 8.000
-6 / 6: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=ZYXT
- Z: 4.5 to 6.5
- Y: 2.5 to 4.5
- X: 0.5 to 2.5
- T: 6.5 to 8.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
- ---- I:1 X: 1
- ---- J:3 Y: 3
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-5 / 5: 1457. 1.000 4.000 5.000 7.000
-6 / 6: 1467. 1.000 4.000 6.000 7.000
- ---- I:2 X: 2
- ---- J:3 Y: 3
-5 / 5: 2357. 2.000 3.000 5.000 7.000
-6 / 6: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-5 / 5: 2457. 2.000 4.000 5.000 7.000
-6 / 6: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- I:1 X: 1
- ---- J:3 Y: 3
-5 / 5: 1358. 1.000 3.000 5.000 8.000
-6 / 6: 1368. 1.000 3.000 6.000 8.000
- ---- J:4 Y: 4
-5 / 5: 1458. 1.000 4.000 5.000 8.000
-6 / 6: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
- ---- J:3 Y: 3
-5 / 5: 2358. 2.000 3.000 5.000 8.000
-6 / 6: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
-5 / 5: 2458. 2.000 4.000 5.000 8.000
-6 / 6: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=ZYTX
- Z: 4.5 to 6.5
- Y: 2.5 to 4.5
- T: 6.5 to 8.5
- X: 0.5 to 2.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
- ---- L:7 T: 7
- ---- J:3 Y: 3
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-5 / 5: 1457. 1.000 4.000 5.000 7.000
-6 / 6: 1467. 1.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- J:3 Y: 3
-5 / 5: 1358. 1.000 3.000 5.000 8.000
-6 / 6: 1368. 1.000 3.000 6.000 8.000
- ---- J:4 Y: 4
-5 / 5: 1458. 1.000 4.000 5.000 8.000
-6 / 6: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
- ---- L:7 T: 7
- ---- J:3 Y: 3
-5 / 5: 2357. 2.000 3.000 5.000 7.000
-6 / 6: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-5 / 5: 2457. 2.000 4.000 5.000 7.000
-6 / 6: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- J:3 Y: 3
-5 / 5: 2358. 2.000 3.000 5.000 8.000
-6 / 6: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
-5 / 5: 2458. 2.000 4.000 5.000 8.000
-6 / 6: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=ZTXY
- Z: 4.5 to 6.5
- T: 6.5 to 8.5
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
- ---- I:1 X: 1
- ---- L:7 T: 7
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- L:8 T: 8
-5 / 5: 1358. 1.000 3.000 5.000 8.000
-6 / 6: 1368. 1.000 3.000 6.000 8.000
- ---- I:2 X: 2
- ---- L:7 T: 7
-5 / 5: 2357. 2.000 3.000 5.000 7.000
-6 / 6: 2367. 2.000 3.000 6.000 7.000
- ---- L:8 T: 8
-5 / 5: 2358. 2.000 3.000 5.000 8.000
-6 / 6: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- I:1 X: 1
- ---- L:7 T: 7
-5 / 5: 1457. 1.000 4.000 5.000 7.000
-6 / 6: 1467. 1.000 4.000 6.000 7.000
- ---- L:8 T: 8
-5 / 5: 1458. 1.000 4.000 5.000 8.000
-6 / 6: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
- ---- L:7 T: 7
-5 / 5: 2457. 2.000 4.000 5.000 7.000
-6 / 6: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
-5 / 5: 2458. 2.000 4.000 5.000 8.000
-6 / 6: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=ZTYX
- Z: 4.5 to 6.5
- T: 6.5 to 8.5
- Y: 2.5 to 4.5
- X: 0.5 to 2.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
- ---- J:3 Y: 3
- ---- L:7 T: 7
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- L:8 T: 8
-5 / 5: 1358. 1.000 3.000 5.000 8.000
-6 / 6: 1368. 1.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- L:7 T: 7
-5 / 5: 1457. 1.000 4.000 5.000 7.000
-6 / 6: 1467. 1.000 4.000 6.000 7.000
- ---- L:8 T: 8
-5 / 5: 1458. 1.000 4.000 5.000 8.000
-6 / 6: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
- ---- J:3 Y: 3
- ---- L:7 T: 7
-5 / 5: 2357. 2.000 3.000 5.000 7.000
-6 / 6: 2367. 2.000 3.000 6.000 7.000
- ---- L:8 T: 8
-5 / 5: 2358. 2.000 3.000 5.000 8.000
-6 / 6: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- L:7 T: 7
-5 / 5: 2457. 2.000 4.000 5.000 7.000
-6 / 6: 2467. 2.000 4.000 6.000 7.000
- ---- L:8 T: 8
-5 / 5: 2458. 2.000 4.000 5.000 8.000
-6 / 6: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=TXYZ
- T: 6.5 to 8.5
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- J:3 Y: 3
- ---- I:1 X: 1
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- I:2 X: 2
-7 / 7: 2357. 2.000 3.000 5.000 7.000
-8 / 8: 2358. 2.000 3.000 5.000 8.000
- ---- J:4 Y: 4
- ---- I:1 X: 1
-7 / 7: 1457. 1.000 4.000 5.000 7.000
-8 / 8: 1458. 1.000 4.000 5.000 8.000
- ---- I:2 X: 2
-7 / 7: 2457. 2.000 4.000 5.000 7.000
-8 / 8: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- J:3 Y: 3
- ---- I:1 X: 1
-7 / 7: 1367. 1.000 3.000 6.000 7.000
-8 / 8: 1368. 1.000 3.000 6.000 8.000
- ---- I:2 X: 2
-7 / 7: 2367. 2.000 3.000 6.000 7.000
-8 / 8: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- I:1 X: 1
-7 / 7: 1467. 1.000 4.000 6.000 7.000
-8 / 8: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
-7 / 7: 2467. 2.000 4.000 6.000 7.000
-8 / 8: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=TXZY
- T: 6.5 to 8.5
- X: 0.5 to 2.5
- Z: 4.5 to 6.5
- Y: 2.5 to 4.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
- ---- K:5 Z: 5
- ---- I:1 X: 1
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- I:2 X: 2
-7 / 7: 2357. 2.000 3.000 5.000 7.000
-8 / 8: 2358. 2.000 3.000 5.000 8.000
- ---- K:6 Z: 6
- ---- I:1 X: 1
-7 / 7: 1367. 1.000 3.000 6.000 7.000
-8 / 8: 1368. 1.000 3.000 6.000 8.000
- ---- I:2 X: 2
-7 / 7: 2367. 2.000 3.000 6.000 7.000
-8 / 8: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- K:5 Z: 5
- ---- I:1 X: 1
-7 / 7: 1457. 1.000 4.000 5.000 7.000
-8 / 8: 1458. 1.000 4.000 5.000 8.000
- ---- I:2 X: 2
-7 / 7: 2457. 2.000 4.000 5.000 7.000
-8 / 8: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- I:1 X: 1
-7 / 7: 1467. 1.000 4.000 6.000 7.000
-8 / 8: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
-7 / 7: 2467. 2.000 4.000 6.000 7.000
-8 / 8: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=TYXZ
- T: 6.5 to 8.5
- Y: 2.5 to 4.5
- X: 0.5 to 2.5
- Z: 4.5 to 6.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- I:1 X: 1
- ---- J:3 Y: 3
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- J:4 Y: 4
-7 / 7: 1457. 1.000 4.000 5.000 7.000
-8 / 8: 1458. 1.000 4.000 5.000 8.000
- ---- I:2 X: 2
- ---- J:3 Y: 3
-7 / 7: 2357. 2.000 3.000 5.000 7.000
-8 / 8: 2358. 2.000 3.000 5.000 8.000
- ---- J:4 Y: 4
-7 / 7: 2457. 2.000 4.000 5.000 7.000
-8 / 8: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- I:1 X: 1
- ---- J:3 Y: 3
-7 / 7: 1367. 1.000 3.000 6.000 7.000
-8 / 8: 1368. 1.000 3.000 6.000 8.000
- ---- J:4 Y: 4
-7 / 7: 1467. 1.000 4.000 6.000 7.000
-8 / 8: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
- ---- J:3 Y: 3
-7 / 7: 2367. 2.000 3.000 6.000 7.000
-8 / 8: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
-7 / 7: 2467. 2.000 4.000 6.000 7.000
-8 / 8: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=TYZX
- T: 6.5 to 8.5
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- X: 0.5 to 2.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
- ---- K:5 Z: 5
- ---- J:3 Y: 3
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- J:4 Y: 4
-7 / 7: 1457. 1.000 4.000 5.000 7.000
-8 / 8: 1458. 1.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- J:3 Y: 3
-7 / 7: 1367. 1.000 3.000 6.000 7.000
-8 / 8: 1368. 1.000 3.000 6.000 8.000
- ---- J:4 Y: 4
-7 / 7: 1467. 1.000 4.000 6.000 7.000
-8 / 8: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
- ---- K:5 Z: 5
- ---- J:3 Y: 3
-7 / 7: 2357. 2.000 3.000 5.000 7.000
-8 / 8: 2358. 2.000 3.000 5.000 8.000
- ---- J:4 Y: 4
-7 / 7: 2457. 2.000 4.000 5.000 7.000
-8 / 8: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- J:3 Y: 3
-7 / 7: 2367. 2.000 3.000 6.000 7.000
-8 / 8: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
-7 / 7: 2467. 2.000 4.000 6.000 7.000
-8 / 8: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=TZXY
- T: 6.5 to 8.5
- Z: 4.5 to 6.5
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
- ---- I:1 X: 1
- ---- K:5 Z: 5
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- K:6 Z: 6
-7 / 7: 1367. 1.000 3.000 6.000 7.000
-8 / 8: 1368. 1.000 3.000 6.000 8.000
- ---- I:2 X: 2
- ---- K:5 Z: 5
-7 / 7: 2357. 2.000 3.000 5.000 7.000
-8 / 8: 2358. 2.000 3.000 5.000 8.000
- ---- K:6 Z: 6
-7 / 7: 2367. 2.000 3.000 6.000 7.000
-8 / 8: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- I:1 X: 1
- ---- K:5 Z: 5
-7 / 7: 1457. 1.000 4.000 5.000 7.000
-8 / 8: 1458. 1.000 4.000 5.000 8.000
- ---- K:6 Z: 6
-7 / 7: 1467. 1.000 4.000 6.000 7.000
-8 / 8: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
- ---- K:5 Z: 5
-7 / 7: 2457. 2.000 4.000 5.000 7.000
-8 / 8: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
-7 / 7: 2467. 2.000 4.000 6.000 7.000
-8 / 8: 2468. 2.000 4.000 6.000 8.000
-LIST/ORDER=TZYX
- T: 6.5 to 8.5
- Z: 4.5 to 6.5
- Y: 2.5 to 4.5
- X: 0.5 to 2.5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
- ---- J:3 Y: 3
- ---- K:5 Z: 5
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- K:6 Z: 6
-7 / 7: 1367. 1.000 3.000 6.000 7.000
-8 / 8: 1368. 1.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- K:5 Z: 5
-7 / 7: 1457. 1.000 4.000 5.000 7.000
-8 / 8: 1458. 1.000 4.000 5.000 8.000
- ---- K:6 Z: 6
-7 / 7: 1467. 1.000 4.000 6.000 7.000
-8 / 8: 1468. 1.000 4.000 6.000 8.000
- ---- I:2 X: 2
- ---- J:3 Y: 3
- ---- K:5 Z: 5
-7 / 7: 2357. 2.000 3.000 5.000 7.000
-8 / 8: 2358. 2.000 3.000 5.000 8.000
- ---- K:6 Z: 6
-7 / 7: 2367. 2.000 3.000 6.000 7.000
-8 / 8: 2368. 2.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- K:5 Z: 5
-7 / 7: 2457. 2.000 4.000 5.000 7.000
-8 / 8: 2458. 2.000 4.000 5.000 8.000
- ---- K:6 Z: 6
-7 / 7: 2467. 2.000 4.000 6.000 7.000
-8 / 8: 2468. 2.000 4.000 6.000 8.000
-
-! ------ 3D regions
-SET REGION/I=1/J=3:4/K=5:6/L=7:8
-LIST/ORDER=YZT
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- T: 6.5 to 8.5
- X: 1
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
- ---- K:5 Z: 5
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- K:6 Z: 6
-3 / 3: 1367. 1.000 3.000 6.000 7.000
-4 / 4: 1467. 1.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- K:5 Z: 5
-3 / 3: 1358. 1.000 3.000 5.000 8.000
-4 / 4: 1458. 1.000 4.000 5.000 8.000
- ---- K:6 Z: 6
-3 / 3: 1368. 1.000 3.000 6.000 8.000
-4 / 4: 1468. 1.000 4.000 6.000 8.000
-LIST/ORDER=YTZ
- Y: 2.5 to 4.5
- T: 6.5 to 8.5
- Z: 4.5 to 6.5
- X: 1
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- L:7 T: 7
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- L:8 T: 8
-3 / 3: 1358. 1.000 3.000 5.000 8.000
-4 / 4: 1458. 1.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- L:7 T: 7
-3 / 3: 1367. 1.000 3.000 6.000 7.000
-4 / 4: 1467. 1.000 4.000 6.000 7.000
- ---- L:8 T: 8
-3 / 3: 1368. 1.000 3.000 6.000 8.000
-4 / 4: 1468. 1.000 4.000 6.000 8.000
-LIST/ORDER=ZYT
- Z: 4.5 to 6.5
- Y: 2.5 to 4.5
- T: 6.5 to 8.5
- X: 1
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
- ---- J:3 Y: 3
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-5 / 5: 1457. 1.000 4.000 5.000 7.000
-6 / 6: 1467. 1.000 4.000 6.000 7.000
- ---- L:8 T: 8
- ---- J:3 Y: 3
-5 / 5: 1358. 1.000 3.000 5.000 8.000
-6 / 6: 1368. 1.000 3.000 6.000 8.000
- ---- J:4 Y: 4
-5 / 5: 1458. 1.000 4.000 5.000 8.000
-6 / 6: 1468. 1.000 4.000 6.000 8.000
-LIST/ORDER=ZTY
- Z: 4.5 to 6.5
- T: 6.5 to 8.5
- Y: 2.5 to 4.5
- X: 1
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
- ---- L:7 T: 7
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- L:8 T: 8
-5 / 5: 1358. 1.000 3.000 5.000 8.000
-6 / 6: 1368. 1.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- L:7 T: 7
-5 / 5: 1457. 1.000 4.000 5.000 7.000
-6 / 6: 1467. 1.000 4.000 6.000 7.000
- ---- L:8 T: 8
-5 / 5: 1458. 1.000 4.000 5.000 8.000
-6 / 6: 1468. 1.000 4.000 6.000 8.000
-LIST/ORDER=TYZ
- T: 6.5 to 8.5
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- X: 1
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- J:3 Y: 3
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- J:4 Y: 4
-7 / 7: 1457. 1.000 4.000 5.000 7.000
-8 / 8: 1458. 1.000 4.000 5.000 8.000
- ---- K:6 Z: 6
- ---- J:3 Y: 3
-7 / 7: 1367. 1.000 3.000 6.000 7.000
-8 / 8: 1368. 1.000 3.000 6.000 8.000
- ---- J:4 Y: 4
-7 / 7: 1467. 1.000 4.000 6.000 7.000
-8 / 8: 1468. 1.000 4.000 6.000 8.000
-LIST/ORDER=TZY
- T: 6.5 to 8.5
- Z: 4.5 to 6.5
- Y: 2.5 to 4.5
- X: 1
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
- ---- K:5 Z: 5
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- K:6 Z: 6
-7 / 7: 1367. 1.000 3.000 6.000 7.000
-8 / 8: 1368. 1.000 3.000 6.000 8.000
- ---- J:4 Y: 4
- ---- K:5 Z: 5
-7 / 7: 1457. 1.000 4.000 5.000 7.000
-8 / 8: 1458. 1.000 4.000 5.000 8.000
- ---- K:6 Z: 6
-7 / 7: 1467. 1.000 4.000 6.000 7.000
-8 / 8: 1468. 1.000 4.000 6.000 8.000
-
-SET REGION/I=1:2/J=3/K=5:6/L=7:8
-LIST/ORDER=XZT
- X: 0.5 to 2.5
- Z: 4.5 to 6.5
- T: 6.5 to 8.5
- Y: 3
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
- ---- K:5 Z: 5
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- K:6 Z: 6
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- L:8 T: 8
- ---- K:5 Z: 5
-1 / 1: 1358. 1.000 3.000 5.000 8.000
-2 / 2: 2358. 2.000 3.000 5.000 8.000
- ---- K:6 Z: 6
-1 / 1: 1368. 1.000 3.000 6.000 8.000
-2 / 2: 2368. 2.000 3.000 6.000 8.000
-LIST/ORDER=XTZ
- X: 0.5 to 2.5
- T: 6.5 to 8.5
- Z: 4.5 to 6.5
- Y: 3
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- L:7 T: 7
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- L:8 T: 8
-1 / 1: 1358. 1.000 3.000 5.000 8.000
-2 / 2: 2358. 2.000 3.000 5.000 8.000
- ---- K:6 Z: 6
- ---- L:7 T: 7
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- L:8 T: 8
-1 / 1: 1368. 1.000 3.000 6.000 8.000
-2 / 2: 2368. 2.000 3.000 6.000 8.000
-LIST/ORDER=ZXT
- Z: 4.5 to 6.5
- X: 0.5 to 2.5
- T: 6.5 to 8.5
- Y: 3
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
- ---- I:1 X: 1
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- I:2 X: 2
-5 / 5: 2357. 2.000 3.000 5.000 7.000
-6 / 6: 2367. 2.000 3.000 6.000 7.000
- ---- L:8 T: 8
- ---- I:1 X: 1
-5 / 5: 1358. 1.000 3.000 5.000 8.000
-6 / 6: 1368. 1.000 3.000 6.000 8.000
- ---- I:2 X: 2
-5 / 5: 2358. 2.000 3.000 5.000 8.000
-6 / 6: 2368. 2.000 3.000 6.000 8.000
-LIST/ORDER=ZTX
- Z: 4.5 to 6.5
- T: 6.5 to 8.5
- X: 0.5 to 2.5
- Y: 3
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
- ---- L:7 T: 7
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- L:8 T: 8
-5 / 5: 1358. 1.000 3.000 5.000 8.000
-6 / 6: 1368. 1.000 3.000 6.000 8.000
- ---- I:2 X: 2
- ---- L:7 T: 7
-5 / 5: 2357. 2.000 3.000 5.000 7.000
-6 / 6: 2367. 2.000 3.000 6.000 7.000
- ---- L:8 T: 8
-5 / 5: 2358. 2.000 3.000 5.000 8.000
-6 / 6: 2368. 2.000 3.000 6.000 8.000
-LIST/ORDER=TXZ
- T: 6.5 to 8.5
- X: 0.5 to 2.5
- Z: 4.5 to 6.5
- Y: 3
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- I:1 X: 1
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- I:2 X: 2
-7 / 7: 2357. 2.000 3.000 5.000 7.000
-8 / 8: 2358. 2.000 3.000 5.000 8.000
- ---- K:6 Z: 6
- ---- I:1 X: 1
-7 / 7: 1367. 1.000 3.000 6.000 7.000
-8 / 8: 1368. 1.000 3.000 6.000 8.000
- ---- I:2 X: 2
-7 / 7: 2367. 2.000 3.000 6.000 7.000
-8 / 8: 2368. 2.000 3.000 6.000 8.000
-LIST/ORDER=TZX
- T: 6.5 to 8.5
- Z: 4.5 to 6.5
- X: 0.5 to 2.5
- Y: 3
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
- ---- K:5 Z: 5
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- K:6 Z: 6
-7 / 7: 1367. 1.000 3.000 6.000 7.000
-8 / 8: 1368. 1.000 3.000 6.000 8.000
- ---- I:2 X: 2
- ---- K:5 Z: 5
-7 / 7: 2357. 2.000 3.000 5.000 7.000
-8 / 8: 2358. 2.000 3.000 5.000 8.000
- ---- K:6 Z: 6
-7 / 7: 2367. 2.000 3.000 6.000 7.000
-8 / 8: 2368. 2.000 3.000 6.000 8.000
-
-SET REGION/I=1:2/J=3:4/K=5/L=7:8
-LIST/ORDER=XYT
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- T: 6.5 to 8.5
- Z: 5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
- ---- J:3 Y: 3
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- L:8 T: 8
- ---- J:3 Y: 3
-1 / 1: 1358. 1.000 3.000 5.000 8.000
-2 / 2: 2358. 2.000 3.000 5.000 8.000
- ---- J:4 Y: 4
-1 / 1: 1458. 1.000 4.000 5.000 8.000
-2 / 2: 2458. 2.000 4.000 5.000 8.000
-LIST/ORDER=XTY
- X: 0.5 to 2.5
- T: 6.5 to 8.5
- Y: 2.5 to 4.5
- Z: 5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
- ---- L:7 T: 7
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- L:8 T: 8
-1 / 1: 1358. 1.000 3.000 5.000 8.000
-2 / 2: 2358. 2.000 3.000 5.000 8.000
- ---- J:4 Y: 4
- ---- L:7 T: 7
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- L:8 T: 8
-1 / 1: 1458. 1.000 4.000 5.000 8.000
-2 / 2: 2458. 2.000 4.000 5.000 8.000
-LIST/ORDER=YXT
- Y: 2.5 to 4.5
- X: 0.5 to 2.5
- T: 6.5 to 8.5
- Z: 5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
- ---- I:1 X: 1
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- I:2 X: 2
-3 / 3: 2357. 2.000 3.000 5.000 7.000
-4 / 4: 2457. 2.000 4.000 5.000 7.000
- ---- L:8 T: 8
- ---- I:1 X: 1
-3 / 3: 1358. 1.000 3.000 5.000 8.000
-4 / 4: 1458. 1.000 4.000 5.000 8.000
- ---- I:2 X: 2
-3 / 3: 2358. 2.000 3.000 5.000 8.000
-4 / 4: 2458. 2.000 4.000 5.000 8.000
-LIST/ORDER=YTX
- Y: 2.5 to 4.5
- T: 6.5 to 8.5
- X: 0.5 to 2.5
- Z: 5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
- ---- L:7 T: 7
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- L:8 T: 8
-3 / 3: 1358. 1.000 3.000 5.000 8.000
-4 / 4: 1458. 1.000 4.000 5.000 8.000
- ---- I:2 X: 2
- ---- L:7 T: 7
-3 / 3: 2357. 2.000 3.000 5.000 7.000
-4 / 4: 2457. 2.000 4.000 5.000 7.000
- ---- L:8 T: 8
-3 / 3: 2358. 2.000 3.000 5.000 8.000
-4 / 4: 2458. 2.000 4.000 5.000 8.000
-LIST/ORDER=TXY
- T: 6.5 to 8.5
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- Z: 5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
- ---- I:1 X: 1
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- I:2 X: 2
-7 / 7: 2357. 2.000 3.000 5.000 7.000
-8 / 8: 2358. 2.000 3.000 5.000 8.000
- ---- J:4 Y: 4
- ---- I:1 X: 1
-7 / 7: 1457. 1.000 4.000 5.000 7.000
-8 / 8: 1458. 1.000 4.000 5.000 8.000
- ---- I:2 X: 2
-7 / 7: 2457. 2.000 4.000 5.000 7.000
-8 / 8: 2458. 2.000 4.000 5.000 8.000
-LIST/ORDER=TYX
- T: 6.5 to 8.5
- Y: 2.5 to 4.5
- X: 0.5 to 2.5
- Z: 5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
- ---- J:3 Y: 3
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- J:4 Y: 4
-7 / 7: 1457. 1.000 4.000 5.000 7.000
-8 / 8: 1458. 1.000 4.000 5.000 8.000
- ---- I:2 X: 2
- ---- J:3 Y: 3
-7 / 7: 2357. 2.000 3.000 5.000 7.000
-8 / 8: 2358. 2.000 3.000 5.000 8.000
- ---- J:4 Y: 4
-7 / 7: 2457. 2.000 4.000 5.000 7.000
-8 / 8: 2458. 2.000 4.000 5.000 8.000
-
-SET REGION/I=1:2/J=3:4/K=5:6/L=7
-LIST/ORDER=XYZ
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- J:3 Y: 3
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
- ---- J:3 Y: 3
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1467. 1.000 4.000 6.000 7.000
-2 / 2: 2467. 2.000 4.000 6.000 7.000
-LIST/ORDER=XZY
- X: 0.5 to 2.5
- Z: 4.5 to 6.5
- Y: 2.5 to 4.5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
- ---- K:5 Z: 5
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- K:6 Z: 6
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
- ---- K:5 Z: 5
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
-1 / 1: 1467. 1.000 4.000 6.000 7.000
-2 / 2: 2467. 2.000 4.000 6.000 7.000
-LIST/ORDER=YXZ
- Y: 2.5 to 4.5
- X: 0.5 to 2.5
- Z: 4.5 to 6.5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- I:1 X: 1
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- I:2 X: 2
-3 / 3: 2357. 2.000 3.000 5.000 7.000
-4 / 4: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
- ---- I:1 X: 1
-3 / 3: 1367. 1.000 3.000 6.000 7.000
-4 / 4: 1467. 1.000 4.000 6.000 7.000
- ---- I:2 X: 2
-3 / 3: 2367. 2.000 3.000 6.000 7.000
-4 / 4: 2467. 2.000 4.000 6.000 7.000
-LIST/ORDER=YZX
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- X: 0.5 to 2.5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
- ---- K:5 Z: 5
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- K:6 Z: 6
-3 / 3: 1367. 1.000 3.000 6.000 7.000
-4 / 4: 1467. 1.000 4.000 6.000 7.000
- ---- I:2 X: 2
- ---- K:5 Z: 5
-3 / 3: 2357. 2.000 3.000 5.000 7.000
-4 / 4: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
-3 / 3: 2367. 2.000 3.000 6.000 7.000
-4 / 4: 2467. 2.000 4.000 6.000 7.000
-LIST/ORDER=ZXY
- Z: 4.5 to 6.5
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
- ---- I:1 X: 1
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- I:2 X: 2
-5 / 5: 2357. 2.000 3.000 5.000 7.000
-6 / 6: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
- ---- I:1 X: 1
-5 / 5: 1457. 1.000 4.000 5.000 7.000
-6 / 6: 1467. 1.000 4.000 6.000 7.000
- ---- I:2 X: 2
-5 / 5: 2457. 2.000 4.000 5.000 7.000
-6 / 6: 2467. 2.000 4.000 6.000 7.000
-LIST/ORDER=ZYX
- Z: 4.5 to 6.5
- Y: 2.5 to 4.5
- X: 0.5 to 2.5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
- ---- J:3 Y: 3
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-5 / 5: 1457. 1.000 4.000 5.000 7.000
-6 / 6: 1467. 1.000 4.000 6.000 7.000
- ---- I:2 X: 2
- ---- J:3 Y: 3
-5 / 5: 2357. 2.000 3.000 5.000 7.000
-6 / 6: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-5 / 5: 2457. 2.000 4.000 5.000 7.000
-6 / 6: 2467. 2.000 4.000 6.000 7.000
-
-! ------ 2D regions
-SET REGION/I=1/J=3/K=5:6/L=7:8
-LIST/ORDER=ZT
- Z: 4.5 to 6.5
- T: 6.5 to 8.5
- X: 1
- Y: 3
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- L:8 T: 8
-5 / 5: 1358. 1.000 3.000 5.000 8.000
-6 / 6: 1368. 1.000 3.000 6.000 8.000
-LIST/ORDER=TZ
- T: 6.5 to 8.5
- Z: 4.5 to 6.5
- X: 1
- Y: 3
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- K:6 Z: 6
-7 / 7: 1367. 1.000 3.000 6.000 7.000
-8 / 8: 1368. 1.000 3.000 6.000 8.000
-
-SET REGION/I=1/J=3:4/K=5/L=7:8
-LIST/ORDER=YT
- Y: 2.5 to 4.5
- T: 6.5 to 8.5
- X: 1
- Z: 5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- L:8 T: 8
-3 / 3: 1358. 1.000 3.000 5.000 8.000
-4 / 4: 1458. 1.000 4.000 5.000 8.000
-LIST/ORDER=TY
- T: 6.5 to 8.5
- Y: 2.5 to 4.5
- X: 1
- Z: 5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- J:4 Y: 4
-7 / 7: 1457. 1.000 4.000 5.000 7.000
-8 / 8: 1458. 1.000 4.000 5.000 8.000
-
-SET REGION/I=1/J=3:4/K=5:6/L=7
-LIST/ORDER=YZ
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- X: 1
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- K:6 Z: 6
-3 / 3: 1367. 1.000 3.000 6.000 7.000
-4 / 4: 1467. 1.000 4.000 6.000 7.000
-LIST/ORDER=ZY
- Z: 4.5 to 6.5
- Y: 2.5 to 4.5
- X: 1
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-5 / 5: 1457. 1.000 4.000 5.000 7.000
-6 / 6: 1467. 1.000 4.000 6.000 7.000
-
-SET REGION/I=1:2/J=3/K=5/L=7:8
-LIST/ORDER=XT
- X: 0.5 to 2.5
- T: 6.5 to 8.5
- Y: 3
- Z: 5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- L:7 T: 7
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- L:8 T: 8
-1 / 1: 1358. 1.000 3.000 5.000 8.000
-2 / 2: 2358. 2.000 3.000 5.000 8.000
-LIST/ORDER=TX
- T: 6.5 to 8.5
- X: 0.5 to 2.5
- Y: 3
- Z: 5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
- ---- I:2 X: 2
-7 / 7: 2357. 2.000 3.000 5.000 7.000
-8 / 8: 2358. 2.000 3.000 5.000 8.000
-
-SET REGION/I=1:2/J=3/K=5:6/L=7
-LIST/ORDER=XZ
- X: 0.5 to 2.5
- Z: 4.5 to 6.5
- Y: 3
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- K:6 Z: 6
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
-LIST/ORDER=ZX
- Z: 4.5 to 6.5
- X: 0.5 to 2.5
- Y: 3
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
- ---- I:2 X: 2
-5 / 5: 2357. 2.000 3.000 5.000 7.000
-6 / 6: 2367. 2.000 3.000 6.000 7.000
-
-SET REGION/I=1:2/J=3:4/K=5/L=7
-LIST/ORDER=XY
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- Z: 5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- J:3 Y: 3
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
-LIST/ORDER=YX
- Y: 2.5 to 4.5
- X: 0.5 to 2.5
- Z: 5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- I:1 X: 1
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
- ---- I:2 X: 2
-3 / 3: 2357. 2.000 3.000 5.000 7.000
-4 / 4: 2457. 2.000 4.000 5.000 7.000
-
-! ------ 1D regions
-LIST/I=1:2/J=3/K=5/L=7
- X: 0.5 to 2.5
- Y: 3
- Z: 5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
-LIST/I=1/J=3:4/K=5/L=7
- Y: 2.5 to 4.5
- X: 1
- Z: 5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
-3 / 3: 1357. 1.000 3.000 5.000 7.000
-4 / 4: 1457. 1.000 4.000 5.000 7.000
-LIST/I=1/J=3/K=5:6/L=7
- Z: 4.5 to 6.5
- X: 1
- Y: 3
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
-5 / 5: 1357. 1.000 3.000 5.000 7.000
-6 / 6: 1367. 1.000 3.000 6.000 7.000
-LIST/I=1/J=3/K=5/L=7:8
- T: 6.5 to 8.5
- X: 1
- Y: 3
- Z: 5
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
-7 / 7: 1357. 1.000 3.000 5.000 7.000
-8 / 8: 1358. 1.000 3.000 5.000 8.000
-
-! ------------------------------------------
-! test other output mechanisms
-SET REGION/I=1:2/J=3:4/K=5:6/L=7
-LIST/NOHEAD
- ---- K:5 Z: 5
- ---- J:3 Y: 3
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
- ---- J:3 Y: 3
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1467. 1.000 4.000 6.000 7.000
-2 / 2: 2467. 2.000 4.000 6.000 7.000
-SET LIST/PRECISION=6
-LIST
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- J:3 Y: 3
-1 / 1: 1357.00 1.00000 3.00000 5.00000 7.00000
-2 / 2: 2357.00 2.00000 3.00000 5.00000 7.00000
- ---- J:4 Y: 4
-1 / 1: 1457.00 1.00000 4.00000 5.00000 7.00000
-2 / 2: 2457.00 2.00000 4.00000 5.00000 7.00000
- ---- K:6 Z: 6
- ---- J:3 Y: 3
-1 / 1: 1367.00 1.00000 3.00000 6.00000 7.00000
-2 / 2: 2367.00 2.00000 3.00000 6.00000 7.00000
- ---- J:4 Y: 4
-1 / 1: 1467.00 1.00000 4.00000 6.00000 7.00000
-2 / 2: 2467.00 2.00000 4.00000 6.00000 7.00000
-SHOW LIST
- SET LIST/PRECISION = 6
- SET LIST/FORMAT = [Default]
- SET LIST/HEADING is ENABLED
- SET LIST/APPEND is DISABLED
- SET LIST/FILE=AUTO [created by program] ( when LIST/FILE is used )
- SET LIST/OUTTYPE = [Default]
- ----
- NetCDF-4 settings:
- NetCDF file type = classic
- NetCDF chunk sizes = default
- SHUFFLE set to on
- ENDIAN set to native
-CANCEL LIST/PRECISION
-LIST
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- J:3 Y: 3
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
- ---- J:3 Y: 3
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1467. 1.000 4.000 6.000 7.000
-2 / 2: 2467. 2.000 4.000 6.000 7.000
-SET LIST/FORMAT=(1X,5F14.7)
-LIST/FORMAT
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- 1357.0000000 1.0000000 3.0000000 5.0000000 7.0000000
- 2357.0000000 2.0000000 3.0000000 5.0000000 7.0000000
- 1457.0000000 1.0000000 4.0000000 5.0000000 7.0000000
- 2457.0000000 2.0000000 4.0000000 5.0000000 7.0000000
- 1367.0000000 1.0000000 3.0000000 6.0000000 7.0000000
- 2367.0000000 2.0000000 3.0000000 6.0000000 7.0000000
- 1467.0000000 1.0000000 4.0000000 6.0000000 7.0000000
- 2467.0000000 2.0000000 4.0000000 6.0000000 7.0000000
-LIST/FORMAT=(1X,10F6.1)
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- 1357.0 1.0 3.0 5.0 7.0
- 2357.0 2.0 3.0 5.0 7.0
- 1457.0 1.0 4.0 5.0 7.0
- 2457.0 2.0 4.0 5.0 7.0
- 1367.0 1.0 3.0 6.0 7.0
- 2367.0 2.0 3.0 6.0 7.0
- 1467.0 1.0 4.0 6.0 7.0
- 2467.0 2.0 4.0 6.0 7.0
-CANCEL LIST/FORMAT
-LIST
- X: 0.5 to 2.5
- Y: 2.5 to 4.5
- Z: 4.5 to 6.5
- T: 7
- Column 1: V is 1000*I + 100*J + 10*K + L
- Column 2: I is I (axis ABSTRACT)
- Column 3: J is J (axis ABSTRACT)
- Column 4: K is K (axis ABSTRACT)
- Column 5: L is L (axis ABSTRACT)
- V I J K L
- ---- K:5 Z: 5
- ---- J:3 Y: 3
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
- ---- J:3 Y: 3
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1467. 1.000 4.000 6.000 7.000
-2 / 2: 2467. 2.000 4.000 6.000 7.000
-CANCEL LIST/HEAD
-LIST
- ---- K:5 Z: 5
- ---- J:3 Y: 3
-1 / 1: 1357. 1.000 3.000 5.000 7.000
-2 / 2: 2357. 2.000 3.000 5.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1457. 1.000 4.000 5.000 7.000
-2 / 2: 2457. 2.000 4.000 5.000 7.000
- ---- K:6 Z: 6
- ---- J:3 Y: 3
-1 / 1: 1367. 1.000 3.000 6.000 7.000
-2 / 2: 2367. 2.000 3.000 6.000 7.000
- ---- J:4 Y: 4
-1 / 1: 1467. 1.000 4.000 6.000 7.000
-2 / 2: 2467. 2.000 4.000 6.000 7.000
-CANCEL LIST/ALL
-SET LIST/FILE=AUTO-X
-LIST/FILE
-LIST/FILE=test.dat
-LIST/FILE=test.dat/APPEND
-LIST/FILE=test.unf/FORMAT=UNFORMATTED
-! V6.8 we no longer write this file type
-SET MODE IGNORE
-LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
-SET MODE/LAST IGNORE
-CANCEL LIST
-cancel list/format
-can mode ignore ! needed for AIX
-
-GO bn_reset
-cancel mode verify
-GO bn_in_plane
-! bn200_in_plane.JNL
-! benchmark various geometries with in-plane transformation applied (@SBX)
-! this benchmark is layered on the compress benchmark to obtain the geometries
-! similar tests are performed on:
-! abstract variable
-! file variable
-
-! ******** abstract variable ************
-! (this case can be checked against the bn200_in_plane.sub in the same region)
-! (results should be identical since v is linear along all axes)
-LET v = i + 10*j + 100*k + 1000*l
-SET REGION/I=2:4/J=2:4/K=2:4/L=2:4
-GO bn_in_plane.sub
-! BN200_COMPRESS.SUB_V
-! list the variable v averaged on various geometries
-
-! this routine assumes that a 4-D region and an expression are already set
-
-! full data region
-LIST v[x=@sbx,y=@sbx,z=@sbx,t=@sbx]
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on X - box smoothed by 3 pts on Y - box smoothed by 3 pts on Z - box smoothed by 3 pts on T
- SUBSET : 3 by 3 by 3 by 3 points (X-Y-Z-T)
- 2 3 4
- 2 3 4
- ---- L:2 T: 2
- ---- K:2 Z: 2
- 2 / 2: 2222. 2223. 2224.
- 3 / 3: 2232. 2233. 2234.
- 4 / 4: 2242. 2243. 2244.
- ---- K:3 Z: 3
- 2 / 2: 2322. 2323. 2324.
- 3 / 3: 2332. 2333. 2334.
- 4 / 4: 2342. 2343. 2344.
- ---- K:4 Z: 4
- 2 / 2: 2422. 2423. 2424.
- 3 / 3: 2432. 2433. 2434.
- 4 / 4: 2442. 2443. 2444.
- ---- L:3 T: 3
- ---- K:2 Z: 2
- 2 / 2: 3222. 3223. 3224.
- 3 / 3: 3232. 3233. 3234.
- 4 / 4: 3242. 3243. 3244.
- ---- K:3 Z: 3
- 2 / 2: 3322. 3323. 3324.
- 3 / 3: 3332. 3333. 3334.
- 4 / 4: 3342. 3343. 3344.
- ---- K:4 Z: 4
- 2 / 2: 3422. 3423. 3424.
- 3 / 3: 3432. 3433. 3434.
- 4 / 4: 3442. 3443. 3444.
- ---- L:4 T: 4
- ---- K:2 Z: 2
- 2 / 2: 4222. 4223. 4224.
- 3 / 3: 4232. 4233. 4234.
- 4 / 4: 4242. 4243. 4244.
- ---- K:3 Z: 3
- 2 / 2: 4322. 4323. 4324.
- 3 / 3: 4332. 4333. 4334.
- 4 / 4: 4342. 4343. 4344.
- ---- K:4 Z: 4
- 2 / 2: 4422. 4423. 4424.
- 3 / 3: 4432. 4433. 4434.
- 4 / 4: 4442. 4443. 4444.
-
-! cubes of data
-LIST v[x=@sbx,y=@sbx,z=@sbx,l=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on X - box smoothed by 3 pts on Y - box smoothed by 3 pts on Z
- SUBSET : 3 by 3 by 3 points (X-Y-Z)
- T : 1.5 to 4.5 (averaged)
- 2 3 4
- 2 3 4
- ---- K:2 Z: 2
- 2 / 2: 3222. 3223. 3224.
- 3 / 3: 3232. 3233. 3234.
- 4 / 4: 3242. 3243. 3244.
- ---- K:3 Z: 3
- 2 / 2: 3322. 3323. 3324.
- 3 / 3: 3332. 3333. 3334.
- 4 / 4: 3342. 3343. 3344.
- ---- K:4 Z: 4
- 2 / 2: 3422. 3423. 3424.
- 3 / 3: 3432. 3433. 3434.
- 4 / 4: 3442. 3443. 3444.
-LIST v[x=@sbx,y=@sbx,t=@sbx,k=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on X - box smoothed by 3 pts on Y - box smoothed by 3 pts on T
- SUBSET : 3 by 3 by 3 points (X-Y-T)
- Z : 1.5 to 4.5 (averaged)
- 2 3 4
- 2 3 4
- ---- L:2 T: 2
- 2 / 2: 2322. 2323. 2324.
- 3 / 3: 2332. 2333. 2334.
- 4 / 4: 2342. 2343. 2344.
- ---- L:3 T: 3
- 2 / 2: 3322. 3323. 3324.
- 3 / 3: 3332. 3333. 3334.
- 4 / 4: 3342. 3343. 3344.
- ---- L:4 T: 4
- 2 / 2: 4322. 4323. 4324.
- 3 / 3: 4332. 4333. 4334.
- 4 / 4: 4342. 4343. 4344.
-LIST v[x=@sbx,z=@sbx,t=@sbx,j=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on X - box smoothed by 3 pts on Z - box smoothed by 3 pts on T
- SUBSET : 3 by 3 by 3 points (X-Z-T)
- Y : 1.5 to 4.5 (averaged)
- 2 3 4
- 2 3 4
- ---- L:2 T: 2
- 2 / 2: 2232. 2233. 2234.
- 3 / 3: 2332. 2333. 2334.
- 4 / 4: 2432. 2433. 2434.
- ---- L:3 T: 3
- 2 / 2: 3232. 3233. 3234.
- 3 / 3: 3332. 3333. 3334.
- 4 / 4: 3432. 3433. 3434.
- ---- L:4 T: 4
- 2 / 2: 4232. 4233. 4234.
- 3 / 3: 4332. 4333. 4334.
- 4 / 4: 4432. 4433. 4434.
-LIST v[y=@sbx,z=@sbx,t=@sbx,i=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on Y - box smoothed by 3 pts on Z - box smoothed by 3 pts on T
- SUBSET : 3 by 3 by 3 points (Y-Z-T)
- X : 1.5 to 4.5 (averaged)
- 2 3 4
- 2 3 4
- ---- L:2 T: 2
- 2 / 2: 2223. 2233. 2243.
- 3 / 3: 2323. 2333. 2343.
- 4 / 4: 2423. 2433. 2443.
- ---- L:3 T: 3
- 2 / 2: 3223. 3233. 3243.
- 3 / 3: 3323. 3333. 3343.
- 4 / 4: 3423. 3433. 3443.
- ---- L:4 T: 4
- 2 / 2: 4223. 4233. 4243.
- 3 / 3: 4323. 4333. 4343.
- 4 / 4: 4423. 4433. 4443.
-
-! planes of data
-LIST v[x=@sbx,y=@sbx,k=@ave,l=@ave] !XY
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on X - box smoothed by 3 pts on Y
- SUBSET : 3 by 3 points (X-Y)
- Z : 1.5 to 4.5 (ZT ave)
- T : 1.5 to 4.5 (ZT ave)
- 2 3 4
- 2 3 4
- 2 / 2: 3322. 3323. 3324.
- 3 / 3: 3332. 3333. 3334.
- 4 / 4: 3342. 3343. 3344.
-LIST v[x=@sbx,z=@sbx,j=@ave,l=@ave] !XZ
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on X - box smoothed by 3 pts on Z
- SUBSET : 3 by 3 points (X-Z)
- Y : 1.5 to 4.5 (YT ave)
- T : 1.5 to 4.5 (YT ave)
- 2 3 4
- 2 3 4
- 2 / 2: 3232. 3233. 3234.
- 3 / 3: 3332. 3333. 3334.
- 4 / 4: 3432. 3433. 3434.
-LIST v[x=@sbx,t=@sbx,j=@ave,k=@ave] !XT
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on X - box smoothed by 3 pts on T
- SUBSET : 3 by 3 points (X-T)
- Y : 1.5 to 4.5 (YZ ave)
- Z : 1.5 to 4.5 (YZ ave)
- 2 3 4
- 2 3 4
- 2 / 2: 2332. 2333. 2334.
- 3 / 3: 3332. 3333. 3334.
- 4 / 4: 4332. 4333. 4334.
-LIST v[y=@sbx,z=@sbx,i=@ave,l=@ave] !YZ
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on Y - box smoothed by 3 pts on Z
- SUBSET : 3 by 3 points (Y-Z)
- X : 1.5 to 4.5 (XT ave)
- T : 1.5 to 4.5 (XT ave)
- 2 3 4
- 2 3 4
- 2 / 2: 3223. 3233. 3243.
- 3 / 3: 3323. 3333. 3343.
- 4 / 4: 3423. 3433. 3443.
-LIST v[y=@sbx,t=@sbx,i=@ave,k=@ave] !YT
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on Y - box smoothed by 3 pts on T
- SUBSET : 3 by 3 points (Y-T)
- X : 1.5 to 4.5 (XZ ave)
- Z : 1.5 to 4.5 (XZ ave)
- 2 3 4
- 2 3 4
- 2 / 2: 2323. 2333. 2343.
- 3 / 3: 3323. 3333. 3343.
- 4 / 4: 4323. 4333. 4343.
-LIST v[z=@sbx,t=@sbx,i=@ave,j=@ave] !ZT
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on Z - box smoothed by 3 pts on T
- SUBSET : 3 by 3 points (Z-T)
- X : 1.5 to 4.5 (XY ave)
- Y : 1.5 to 4.5 (XY ave)
- 2 3 4
- 2 3 4
- 2 / 2: 2233. 2333. 2433.
- 3 / 3: 3233. 3333. 3433.
- 4 / 4: 4233. 4333. 4433.
-
-! lines of data
-LIST/ORDER=X v[x=@sbx,j=@ave,k=@ave,l=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on X
- SUBSET : 3 points (X)
- Y : 1.5 to 4.5 (YZT ave)
- Z : 1.5 to 4.5 (YZT ave)
- T : 1.5 to 4.5 (YZT ave)
- 2 3 4
- 2 3 4
- 3332. 3333. 3334.
-LIST/ORDER=Y v[y=@sbx,i=@ave,k=@ave,l=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on Y
- SUBSET : 3 points (Y)
- X : 1.5 to 4.5 (XZT ave)
- Z : 1.5 to 4.5 (XZT ave)
- T : 1.5 to 4.5 (XZT ave)
- 2 3 4
- 2 3 4
- 3323. 3333. 3343.
-LIST/ORDER=Z v[z=@sbx,i=@ave,j=@ave,l=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on Z
- SUBSET : 3 points (Z)
- X : 1.5 to 4.5 (XYT ave)
- Y : 1.5 to 4.5 (XYT ave)
- T : 1.5 to 4.5 (XYT ave)
- 2 3 4
- 2 3 4
- 3233. 3333. 3433.
-LIST/ORDER=T v[t=@sbx,i=@ave,j=@ave,k=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- box smoothed by 3 pts on T
- SUBSET : 3 points (T)
- X : 1.5 to 4.5 (XYZ ave)
- Y : 1.5 to 4.5 (XYZ ave)
- Z : 1.5 to 4.5 (XYZ ave)
- 2 3 4
- 2 3 4
- 2333. 3333. 4333.
-
-! ******** file variable ************
-CANCEL VARIABLE V
-USE gt4d011
-SET REGION/I=101:103/J=46:48/K=2:4/L=2:4
-SET EXPRESSION v
-GO bn_in_plane.sub
-! BN200_COMPRESS.SUB_V
-! list the variable v averaged on various geometries
-
-! this routine assumes that a 4-D region and an expression are already set
-
-! full data region
-LIST v[x=@sbx,y=@sbx,z=@sbx,t=@sbx]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on X - box smoothed by 3 pts on Y - box smoothed by 3 pts on Z - box smoothed by 3 pts on T
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 by 3 by 3 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 129W 128W 127W
- 101 102 103
- ---- L:2 T: 23-AUG-1982 14:00
- ---- K:2 Z: 15
- 1N / 48: 2.849 4.058 5.125
- 0.67N / 47: 1.415 2.665 3.817
- 0.33N / 46: -0.848 0.534 1.821
- ---- K:3 Z: 25
- 1N / 48: -2.896 -1.523 -0.356
- 0.67N / 47: -4.228 -2.855 -1.590
- 0.33N / 46: -5.712 -4.222 -2.782
- ---- K:4 Z: 35
- 1N / 48: -6.759 -5.268 -4.029
- 0.67N / 47: -7.824 -6.405 -5.032
- 0.33N / 46: -8.195 -6.626 -5.019
- ---- L:3 T: 29-AUG-1982 16:00
- ---- K:2 Z: 15
- 1N / 48: 2.921 4.900 6.164
- 0.67N / 47: 1.949 4.139 5.405
- 0.33N / 46: 0.232 2.556 3.808
- ---- K:3 Z: 25
- 1N / 48: -2.893 -0.649 0.564
- 0.67N / 47: -3.906 -1.567 -0.284
- 0.33N / 46: -5.003 -2.591 -1.204
- ---- K:4 Z: 35
- 1N / 48: -6.685 -4.117 -2.890
- 0.67N / 47: -7.574 -5.111 -3.733
- 0.33N / 46: -7.680 -5.189 -3.608
- ---- L:4 T: 04-SEP-1982 18:00
- ---- K:2 Z: 15
- 1N / 48: 3.252 5.404 6.662
- 0.67N / 47: 2.651 5.141 6.269
- 0.33N / 46: 1.418 4.032 4.953
- ---- K:3 Z: 25
- 1N / 48: -2.821 -0.259 0.807
- 0.67N / 47: -3.539 -0.836 0.184
- 0.33N / 46: -4.302 -1.591 -0.594
- ---- K:4 Z: 35
- 1N / 48: -6.758 -3.638 -2.600
- 0.67N / 47: -7.392 -4.438 -3.362
- 0.33N / 46: -7.280 -4.436 -3.244
-
-! cubes of data
-LIST v[x=@sbx,y=@sbx,z=@sbx,l=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on X - box smoothed by 3 pts on Y - box smoothed by 3 pts on Z
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 by 3 points (LONGITUDE-LATITUDE-DEPTH (m))
- TIME : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (averaged)
- 129W 128W 127W
- 101 102 103
- ---- K:2 Z: 15
- 1N / 48: 2.921 4.900 6.164
- 0.67N / 47: 1.949 4.139 5.405
- 0.33N / 46: 0.232 2.556 3.808
- ---- K:3 Z: 25
- 1N / 48: -2.893 -0.649 0.564
- 0.67N / 47: -3.906 -1.567 -0.284
- 0.33N / 46: -5.003 -2.591 -1.204
- ---- K:4 Z: 35
- 1N / 48: -6.685 -4.117 -2.890
- 0.67N / 47: -7.574 -5.111 -3.733
- 0.33N / 46: -7.680 -5.189 -3.608
-LIST v[x=@sbx,y=@sbx,t=@sbx,k=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on X - box smoothed by 3 pts on Y - box smoothed by 3 pts on T
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 by 3 points (LONGITUDE-LATITUDE-TIME)
- DEPTH (m): 10 to 40 (averaged)
- 129W 128W 127W
- 101 102 103
- ---- L:2 T: 23-AUG-1982 14:00
- 1N / 48: -2.896 -1.523 -0.356
- 0.67N / 47: -4.228 -2.855 -1.590
- 0.33N / 46: -5.712 -4.222 -2.782
- ---- L:3 T: 29-AUG-1982 16:00
- 1N / 48: -2.893 -0.649 0.564
- 0.67N / 47: -3.906 -1.567 -0.284
- 0.33N / 46: -5.003 -2.591 -1.204
- ---- L:4 T: 04-SEP-1982 18:00
- 1N / 48: -2.821 -0.259 0.807
- 0.67N / 47: -3.539 -0.836 0.184
- 0.33N / 46: -4.302 -1.591 -0.594
-LIST v[x=@sbx,z=@sbx,t=@sbx,j=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on X - box smoothed by 3 pts on Z - box smoothed by 3 pts on T
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 by 3 points (LONGITUDE-DEPTH (m)-TIME)
- LATITUDE : 0.2N to 1.2N (averaged)
- 129W 128W 127W
- 101 102 103
- ---- L:2 T: 23-AUG-1982 14:00
- 15 / 2: 1.415 2.665 3.817
- 25 / 3: -4.228 -2.855 -1.590
- 35 / 4: -7.824 -6.405 -5.032
- ---- L:3 T: 29-AUG-1982 16:00
- 15 / 2: 1.949 4.139 5.405
- 25 / 3: -3.906 -1.567 -0.284
- 35 / 4: -7.574 -5.111 -3.733
- ---- L:4 T: 04-SEP-1982 18:00
- 15 / 2: 2.651 5.141 6.269
- 25 / 3: -3.539 -0.836 0.184
- 35 / 4: -7.392 -4.438 -3.362
-LIST v[y=@sbx,z=@sbx,t=@sbx,i=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on Y - box smoothed by 3 pts on Z - box smoothed by 3 pts on T
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 by 3 points (LATITUDE-DEPTH (m)-TIME)
- LONGITUDE: 129.5W to 126.5W (averaged)
- 0.33N 0.67N 1N
- 46 47 48
- ---- L:2 T: 23-AUG-1982 14:00
- 15 / 2: 0.534 2.665 4.058
- 25 / 3: -4.222 -2.855 -1.523
- 35 / 4: -6.626 -6.405 -5.268
- ---- L:3 T: 29-AUG-1982 16:00
- 15 / 2: 2.556 4.139 4.900
- 25 / 3: -2.591 -1.567 -0.649
- 35 / 4: -5.189 -5.111 -4.117
- ---- L:4 T: 04-SEP-1982 18:00
- 15 / 2: 4.032 5.141 5.404
- 25 / 3: -1.591 -0.836 -0.259
- 35 / 4: -4.436 -4.438 -3.638
-
-! planes of data
-LIST v[x=@sbx,y=@sbx,k=@ave,l=@ave] !XY
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on X - box smoothed by 3 pts on Y
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 points (LONGITUDE-LATITUDE)
- DEPTH (m): 10 to 40 (ZT ave)
- TIME : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (ZT ave)
- 129W 128W 127W
- 101 102 103
- 1N / 48: -2.893 -0.649 0.564
- 0.67N / 47: -3.906 -1.567 -0.284
- 0.33N / 46: -5.003 -2.591 -1.204
-LIST v[x=@sbx,z=@sbx,j=@ave,l=@ave] !XZ
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on X - box smoothed by 3 pts on Z
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 points (LONGITUDE-DEPTH (m))
- LATITUDE : 0.2N to 1.2N (YT ave)
- TIME : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (YT ave)
- 129W 128W 127W
- 101 102 103
- 15 / 2: 1.949 4.139 5.405
- 25 / 3: -3.906 -1.567 -0.284
- 35 / 4: -7.574 -5.111 -3.733
-LIST v[x=@sbx,t=@sbx,j=@ave,k=@ave] !XT
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on X - box smoothed by 3 pts on T
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 points (LONGITUDE-TIME)
- LATITUDE : 0.2N to 1.2N (YZ ave)
- DEPTH (m): 10 to 40 (YZ ave)
- 129W 128W 127W
- 101 102 103
- 23-AUG-1982 14 / 2: -4.228 -2.855 -1.590
- 29-AUG-1982 16 / 3: -3.906 -1.567 -0.284
- 04-SEP-1982 18 / 4: -3.539 -0.836 0.184
-LIST v[y=@sbx,z=@sbx,i=@ave,l=@ave] !YZ
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on Y - box smoothed by 3 pts on Z
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 points (LATITUDE-DEPTH (m))
- LONGITUDE: 129.5W to 126.5W (XT ave)
- TIME : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (XT ave)
- 0.33N 0.67N 1N
- 46 47 48
- 15 / 2: 2.556 4.139 4.900
- 25 / 3: -2.591 -1.567 -0.649
- 35 / 4: -5.189 -5.111 -4.117
-LIST v[y=@sbx,t=@sbx,i=@ave,k=@ave] !YT
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on Y - box smoothed by 3 pts on T
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 points (LATITUDE-TIME)
- LONGITUDE: 129.5W to 126.5W (XZ ave)
- DEPTH (m): 10 to 40 (XZ ave)
- 0.33N 0.67N 1N
- 46 47 48
- 23-AUG-1982 14 / 2: -4.222 -2.855 -1.523
- 29-AUG-1982 16 / 3: -2.591 -1.567 -0.649
- 04-SEP-1982 18 / 4: -1.591 -0.836 -0.259
-LIST v[z=@sbx,t=@sbx,i=@ave,j=@ave] !ZT
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on Z - box smoothed by 3 pts on T
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 points (DEPTH (m)-TIME)
- LONGITUDE: 129.5W to 126.5W (XY ave)
- LATITUDE : 0.2N to 1.2N (XY ave)
- 15 25 35
- 2 3 4
- 23-AUG-1982 14 / 2: 2.665 -2.855 -6.405
- 29-AUG-1982 16 / 3: 4.139 -1.567 -5.111
- 04-SEP-1982 18 / 4: 5.141 -0.836 -4.438
-
-! lines of data
-LIST/ORDER=X v[x=@sbx,j=@ave,k=@ave,l=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on X
- FILENAME : gt4d011.cdf
- SUBSET : 3 points (LONGITUDE)
- LATITUDE : 0.2N to 1.2N (YZT ave)
- DEPTH (m): 10 to 40 (YZT ave)
- TIME : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (YZT ave)
- 129W 128W 127W
- 101 102 103
- -3.906 -1.567 -0.284
-LIST/ORDER=Y v[y=@sbx,i=@ave,k=@ave,l=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on Y
- FILENAME : gt4d011.cdf
- SUBSET : 3 points (LATITUDE)
- LONGITUDE: 129.5W to 126.5W (XZT ave)
- DEPTH (m): 10 to 40 (XZT ave)
- TIME : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (XZT ave)
- 0.33N 0.67N 1N
- 46 47 48
- -2.591 -1.567 -0.649
-LIST/ORDER=Z v[z=@sbx,i=@ave,j=@ave,l=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on Z
- FILENAME : gt4d011.cdf
- SUBSET : 3 points (DEPTH (m))
- LONGITUDE: 129.5W to 126.5W (XYT ave)
- LATITUDE : 0.2N to 1.2N (XYT ave)
- TIME : 20-AUG-1982 13:00 to 07-SEP-1982 19:00 (XYT ave)
- 15 25 35
- 2 3 4
- 4.139 -1.567 -5.111
-LIST/ORDER=T v[t=@sbx,i=@ave,j=@ave,k=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- box smoothed by 3 pts on T
- FILENAME : gt4d011.cdf
- SUBSET : 3 points (TIME)
- LONGITUDE: 129.5W to 126.5W (XYZ ave)
- LATITUDE : 0.2N to 1.2N (XYZ ave)
- DEPTH (m): 10 to 40 (XYZ ave)
- 1982 1982 1982
- 2 3 4
- -2.855 -1.567 -0.836
-
-GO bn_reset
-cancel mode verify
-GO bn_compress
-! bn200_compress.JNL
-! benchmark various geometries obtained by compressing FERRET data with @AVE
-! similar tests are performed on:
-! abstract variable
-! file variable
-! diagnostic variable
-
-! ******** abstract variable ************
-LET v = i + 10*j + 100*k + 1000*l
-SET REGION/I=1:3/J=1:3/K=1:3/L=1:3
-GO bn_compress.sub_v
-! BN200_COMPRESS.SUB_V
-! list the variable v averaged on various geometries
-
-! this routine assumes that a 4-D region and an expression are already set
-
-! full data region
-LIST v
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 by 3 by 3 by 3 points (X-Y-Z-T)
- 1 2 3
- 1 2 3
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1111. 1112. 1113.
- 2 / 2: 1121. 1122. 1123.
- 3 / 3: 1131. 1132. 1133.
- ---- K:2 Z: 2
- 1 / 1: 1211. 1212. 1213.
- 2 / 2: 1221. 1222. 1223.
- 3 / 3: 1231. 1232. 1233.
- ---- K:3 Z: 3
- 1 / 1: 1311. 1312. 1313.
- 2 / 2: 1321. 1322. 1323.
- 3 / 3: 1331. 1332. 1333.
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 2111. 2112. 2113.
- 2 / 2: 2121. 2122. 2123.
- 3 / 3: 2131. 2132. 2133.
- ---- K:2 Z: 2
- 1 / 1: 2211. 2212. 2213.
- 2 / 2: 2221. 2222. 2223.
- 3 / 3: 2231. 2232. 2233.
- ---- K:3 Z: 3
- 1 / 1: 2311. 2312. 2313.
- 2 / 2: 2321. 2322. 2323.
- 3 / 3: 2331. 2332. 2333.
- ---- L:3 T: 3
- ---- K:1 Z: 1
- 1 / 1: 3111. 3112. 3113.
- 2 / 2: 3121. 3122. 3123.
- 3 / 3: 3131. 3132. 3133.
- ---- K:2 Z: 2
- 1 / 1: 3211. 3212. 3213.
- 2 / 2: 3221. 3222. 3223.
- 3 / 3: 3231. 3232. 3233.
- ---- K:3 Z: 3
- 1 / 1: 3311. 3312. 3313.
- 2 / 2: 3321. 3322. 3323.
- 3 / 3: 3331. 3332. 3333.
-
-! cubes of data
-LIST v[l=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 by 3 by 3 points (X-Y-Z)
- T : 0.5 to 3.5 (averaged)
- 1 2 3
- 1 2 3
- ---- K:1 Z: 1
- 1 / 1: 2111. 2112. 2113.
- 2 / 2: 2121. 2122. 2123.
- 3 / 3: 2131. 2132. 2133.
- ---- K:2 Z: 2
- 1 / 1: 2211. 2212. 2213.
- 2 / 2: 2221. 2222. 2223.
- 3 / 3: 2231. 2232. 2233.
- ---- K:3 Z: 3
- 1 / 1: 2311. 2312. 2313.
- 2 / 2: 2321. 2322. 2323.
- 3 / 3: 2331. 2332. 2333.
-LIST v[k=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 by 3 by 3 points (X-Y-T)
- Z : 0.5 to 3.5 (averaged)
- 1 2 3
- 1 2 3
- ---- L:1 T: 1
- 1 / 1: 1211. 1212. 1213.
- 2 / 2: 1221. 1222. 1223.
- 3 / 3: 1231. 1232. 1233.
- ---- L:2 T: 2
- 1 / 1: 2211. 2212. 2213.
- 2 / 2: 2221. 2222. 2223.
- 3 / 3: 2231. 2232. 2233.
- ---- L:3 T: 3
- 1 / 1: 3211. 3212. 3213.
- 2 / 2: 3221. 3222. 3223.
- 3 / 3: 3231. 3232. 3233.
-LIST v[j=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 by 3 by 3 points (X-Z-T)
- Y : 0.5 to 3.5 (averaged)
- 1 2 3
- 1 2 3
- ---- L:1 T: 1
- 1 / 1: 1121. 1122. 1123.
- 2 / 2: 1221. 1222. 1223.
- 3 / 3: 1321. 1322. 1323.
- ---- L:2 T: 2
- 1 / 1: 2121. 2122. 2123.
- 2 / 2: 2221. 2222. 2223.
- 3 / 3: 2321. 2322. 2323.
- ---- L:3 T: 3
- 1 / 1: 3121. 3122. 3123.
- 2 / 2: 3221. 3222. 3223.
- 3 / 3: 3321. 3322. 3323.
-LIST v[i=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 by 3 by 3 points (Y-Z-T)
- X : 0.5 to 3.5 (averaged)
- 1 2 3
- 1 2 3
- ---- L:1 T: 1
- 1 / 1: 1112. 1122. 1132.
- 2 / 2: 1212. 1222. 1232.
- 3 / 3: 1312. 1322. 1332.
- ---- L:2 T: 2
- 1 / 1: 2112. 2122. 2132.
- 2 / 2: 2212. 2222. 2232.
- 3 / 3: 2312. 2322. 2332.
- ---- L:3 T: 3
- 1 / 1: 3112. 3122. 3132.
- 2 / 2: 3212. 3222. 3232.
- 3 / 3: 3312. 3322. 3332.
-
-! planes of data
-LIST v[k=@ave,l=@ave] !XY
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 by 3 points (X-Y)
- Z : 0.5 to 3.5 (ZT ave)
- T : 0.5 to 3.5 (ZT ave)
- 1 2 3
- 1 2 3
- 1 / 1: 2211. 2212. 2213.
- 2 / 2: 2221. 2222. 2223.
- 3 / 3: 2231. 2232. 2233.
-LIST v[j=@ave,l=@ave] !XZ
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 by 3 points (X-Z)
- Y : 0.5 to 3.5 (YT ave)
- T : 0.5 to 3.5 (YT ave)
- 1 2 3
- 1 2 3
- 1 / 1: 2121. 2122. 2123.
- 2 / 2: 2221. 2222. 2223.
- 3 / 3: 2321. 2322. 2323.
-LIST v[j=@ave,k=@ave] !XT
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 by 3 points (X-T)
- Y : 0.5 to 3.5 (YZ ave)
- Z : 0.5 to 3.5 (YZ ave)
- 1 2 3
- 1 2 3
- 1 / 1: 1221. 1222. 1223.
- 2 / 2: 2221. 2222. 2223.
- 3 / 3: 3221. 3222. 3223.
-LIST v[i=@ave,l=@ave] !YZ
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 by 3 points (Y-Z)
- X : 0.5 to 3.5 (XT ave)
- T : 0.5 to 3.5 (XT ave)
- 1 2 3
- 1 2 3
- 1 / 1: 2112. 2122. 2132.
- 2 / 2: 2212. 2222. 2232.
- 3 / 3: 2312. 2322. 2332.
-LIST v[i=@ave,k=@ave] !YT
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 by 3 points (Y-T)
- X : 0.5 to 3.5 (XZ ave)
- Z : 0.5 to 3.5 (XZ ave)
- 1 2 3
- 1 2 3
- 1 / 1: 1212. 1222. 1232.
- 2 / 2: 2212. 2222. 2232.
- 3 / 3: 3212. 3222. 3232.
-LIST v[i=@ave,j=@ave] !ZT
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 by 3 points (Z-T)
- X : 0.5 to 3.5 (XY ave)
- Y : 0.5 to 3.5 (XY ave)
- 1 2 3
- 1 2 3
- 1 / 1: 1122. 1222. 1322.
- 2 / 2: 2122. 2222. 2322.
- 3 / 3: 3122. 3222. 3322.
-
-! lines of data
-LIST/ORDER=X v[j=@ave,k=@ave,l=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 points (X)
- Y : 0.5 to 3.5 (YZT ave)
- Z : 0.5 to 3.5 (YZT ave)
- T : 0.5 to 3.5 (YZT ave)
- 1 2 3
- 1 2 3
- 2221. 2222. 2223.
-LIST/ORDER=Y v[i=@ave,k=@ave,l=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 points (Y)
- X : 0.5 to 3.5 (XZT ave)
- Z : 0.5 to 3.5 (XZT ave)
- T : 0.5 to 3.5 (XZT ave)
- 1 2 3
- 1 2 3
- 2212. 2222. 2232.
-LIST/ORDER=Z v[i=@ave,j=@ave,l=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 points (Z)
- X : 0.5 to 3.5 (XYT ave)
- Y : 0.5 to 3.5 (XYT ave)
- T : 0.5 to 3.5 (XYT ave)
- 1 2 3
- 1 2 3
- 2122. 2222. 2322.
-LIST/ORDER=T v[i=@ave,j=@ave,k=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- SUBSET : 3 points (T)
- X : 0.5 to 3.5 (XYZ ave)
- Y : 0.5 to 3.5 (XYZ ave)
- Z : 0.5 to 3.5 (XYZ ave)
- 1 2 3
- 1 2 3
- 1222. 2222. 3222.
-
-! point of data
-LIST/ORDER=X v[i=@ave,j=@ave,k=@ave,l=@ave]
- VARIABLE : I + 10*J + 100*K + 1000*L
- X : 0.5 to 3.5 (XYZT ave)
- Y : 0.5 to 3.5 (XYZT ave)
- Z : 0.5 to 3.5 (XYZT ave)
- T : 0.5 to 3.5 (XYZT ave)
- 2222.
-
-! ******** file variable ************
-CANCEL VARIABLE V
-USE gt4d011
-CANCEL MEMORY/ALL
-SET REGION/I=101:103/J=46:48/K=1:3/L=1:3
-SET EXPRESSION v
-GO bn_compress.sub_v
-! BN200_COMPRESS.SUB_V
-! list the variable v averaged on various geometries
-
-! this routine assumes that a 4-D region and an expression are already set
-
-! full data region
-LIST v
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 by 3 by 3 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 129W 128W 127W
- 101 102 103
- ---- L:1 T: 17-AUG-1982 12:00
- ---- K:1 Z: 5
- 1N / 48: 10.50 11.05 11.24
- 0.67N / 47: 7.89 7.84 8.33
- 0.33N / 46: 4.10 4.06 4.78
- ---- K:2 Z: 15
- 1N / 48: 2.85 3.45 3.89
- 0.67N / 47: 0.69 0.73 1.38
- 0.33N / 46: -2.43 -2.33 -1.49
- ---- K:3 Z: 25
- 1N / 48: -3.15 -2.57 -1.79
- 0.67N / 47: -5.26 -5.17 -4.37
- 0.33N / 46: -7.30 -7.07 -6.17
- ---- L:2 T: 23-AUG-1982 14:00
- ---- K:1 Z: 5
- 1N / 48: 10.27 12.27 13.17
- 0.67N / 47: 8.14 9.98 11.31
- 0.33N / 46: 4.79 6.72 8.32
- ---- K:2 Z: 15
- 1N / 48: 2.19 4.29 5.39
- 0.67N / 47: 0.46 2.40 3.88
- 0.33N / 46: -2.18 -0.16 1.57
- ---- K:3 Z: 25
- 1N / 48: -3.70 -1.52 -0.17
- 0.67N / 47: -5.96 -3.85 -2.20
- 0.33N / 46: -7.70 -5.56 -3.69
- ---- L:3 T: 29-AUG-1982 16:00
- ---- K:1 Z: 5
- 1N / 48: 10.11 13.41 14.78
- 0.67N / 47: 9.46 12.65 13.99
- 0.33N / 46: 6.97 10.15 11.50
- ---- K:2 Z: 15
- 1N / 48: 1.84 5.11 6.48
- 0.67N / 47: 1.43 4.64 6.01
- 0.33N / 46: -0.46 2.80 4.22
- ---- K:3 Z: 25
- 1N / 48: -3.16 -0.23 0.86
- 0.67N / 47: -4.97 -1.70 -0.50
- 0.33N / 46: -6.73 -3.24 -1.70
-
-! cubes of data
-LIST v[l=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 by 3 points (LONGITUDE-LATITUDE-DEPTH (m))
- TIME : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (averaged)
- 129W 128W 127W
- 101 102 103
- ---- K:1 Z: 5
- 1N / 48: 10.29 12.24 13.06
- 0.67N / 47: 8.50 10.16 11.21
- 0.33N / 46: 5.29 6.98 8.20
- ---- K:2 Z: 15
- 1N / 48: 2.29 4.28 5.25
- 0.67N / 47: 0.86 2.59 3.76
- 0.33N / 46: -1.69 0.10 1.43
- ---- K:3 Z: 25
- 1N / 48: -3.34 -1.44 -0.37
- 0.67N / 47: -5.40 -3.57 -2.36
- 0.33N / 46: -7.25 -5.29 -3.85
-LIST v[k=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 by 3 points (LONGITUDE-LATITUDE-TIME)
- DEPTH (m): 0 to 30 (averaged)
- 129W 128W 127W
- 101 102 103
- ---- L:1 T: 17-AUG-1982 12:00
- 1N / 48: 3.398 3.976 4.445
- 0.67N / 47: 1.107 1.133 1.784
- 0.33N / 46: -1.881 -1.779 -0.959
- ---- L:2 T: 23-AUG-1982 14:00
- 1N / 48: 2.920 5.015 6.129
- 0.67N / 47: 0.881 2.845 4.328
- 0.33N / 46: -1.696 0.334 2.067
- ---- L:3 T: 29-AUG-1982 16:00
- 1N / 48: 2.933 6.096 7.372
- 0.67N / 47: 1.975 5.195 6.502
- 0.33N / 46: -0.073 3.238 4.671
-LIST v[j=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 by 3 points (LONGITUDE-DEPTH (m)-TIME)
- LATITUDE : 0.2N to 1.2N (averaged)
- 129W 128W 127W
- 101 102 103
- ---- L:1 T: 17-AUG-1982 12:00
- 5 / 1: 7.50 7.65 8.12
- 15 / 2: 0.37 0.62 1.26
- 25 / 3: -5.24 -4.94 -4.11
- ---- L:2 T: 23-AUG-1982 14:00
- 5 / 1: 7.73 9.66 10.93
- 15 / 2: 0.16 2.18 3.61
- 25 / 3: -5.79 -3.64 -2.02
- ---- L:3 T: 29-AUG-1982 16:00
- 5 / 1: 8.85 12.07 13.42
- 15 / 2: 0.94 4.18 5.57
- 25 / 3: -4.95 -1.72 -0.45
-LIST v[i=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 by 3 points (LATITUDE-DEPTH (m)-TIME)
- LONGITUDE: 129.5W to 126.5W (averaged)
- 0.33N 0.67N 1N
- 46 47 48
- ---- L:1 T: 17-AUG-1982 12:00
- 5 / 1: 4.31 8.02 10.93
- 15 / 2: -2.08 0.93 3.39
- 25 / 3: -6.85 -4.93 -2.51
- ---- L:2 T: 23-AUG-1982 14:00
- 5 / 1: 6.61 9.81 11.90
- 15 / 2: -0.25 2.25 3.96
- 25 / 3: -5.65 -4.00 -1.80
- ---- L:3 T: 29-AUG-1982 16:00
- 5 / 1: 9.54 12.04 12.77
- 15 / 2: 2.19 4.03 4.48
- 25 / 3: -3.89 -2.39 -0.84
-
-! planes of data
-LIST v[k=@ave,l=@ave] !XY
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 points (LONGITUDE-LATITUDE)
- DEPTH (m): 0 to 30 (ZT ave)
- TIME : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (ZT ave)
- 129W 128W 127W
- 101 102 103
- 1N / 48: 3.084 5.029 5.982
- 0.67N / 47: 1.321 3.057 4.204
- 0.33N / 46: -1.217 0.598 1.927
-LIST v[j=@ave,l=@ave] !XZ
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 points (LONGITUDE-DEPTH (m))
- LATITUDE : 0.2N to 1.2N (YT ave)
- TIME : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (YT ave)
- 129W 128W 127W
- 101 102 103
- 5 / 1: 8.03 9.79 10.82
- 15 / 2: 0.49 2.33 3.48
- 25 / 3: -5.33 -3.43 -2.19
-LIST v[j=@ave,k=@ave] !XT
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 points (LONGITUDE-TIME)
- LATITUDE : 0.2N to 1.2N (YZ ave)
- DEPTH (m): 0 to 30 (YZ ave)
- 129W 128W 127W
- 101 102 103
- 17-AUG-1982 12 / 1: 0.875 1.110 1.757
- 23-AUG-1982 14 / 2: 0.701 2.731 4.175
- 29-AUG-1982 16 / 3: 1.612 4.843 6.182
-LIST v[i=@ave,l=@ave] !YZ
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 points (LATITUDE-DEPTH (m))
- LONGITUDE: 129.5W to 126.5W (XT ave)
- TIME : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (XT ave)
- 0.33N 0.67N 1N
- 46 47 48
- 5 / 1: 6.82 9.96 11.87
- 15 / 2: -0.05 2.40 3.94
- 25 / 3: -5.46 -3.78 -1.72
-LIST v[i=@ave,k=@ave] !YT
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 points (LATITUDE-TIME)
- LONGITUDE: 129.5W to 126.5W (XZ ave)
- DEPTH (m): 0 to 30 (XZ ave)
- 0.33N 0.67N 1N
- 46 47 48
- 17-AUG-1982 12 / 1: -1.540 1.341 3.940
- 23-AUG-1982 14 / 2: 0.235 2.684 4.688
- 29-AUG-1982 16 / 3: 2.612 4.557 5.467
-LIST v[i=@ave,j=@ave] !ZT
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 3 points (DEPTH (m)-TIME)
- LONGITUDE: 129.5W to 126.5W (XY ave)
- LATITUDE : 0.2N to 1.2N (XY ave)
- 5 15 25
- 1 2 3
- 17-AUG-1982 12 / 1: 7.75 0.75 -4.76
- 23-AUG-1982 14 / 2: 9.44 1.98 -3.82
- 29-AUG-1982 16 / 3: 11.45 3.56 -2.37
-
-! lines of data
-LIST/ORDER=X v[j=@ave,k=@ave,l=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 points (LONGITUDE)
- LATITUDE : 0.2N to 1.2N (YZT ave)
- DEPTH (m): 0 to 30 (YZT ave)
- TIME : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (YZT ave)
- 129W 128W 127W
- 101 102 103
- 1.063 2.895 4.038
-LIST/ORDER=Y v[i=@ave,k=@ave,l=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 points (LATITUDE)
- LONGITUDE: 129.5W to 126.5W (XZT ave)
- DEPTH (m): 0 to 30 (XZT ave)
- TIME : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (XZT ave)
- 0.33N 0.67N 1N
- 46 47 48
- 0.436 2.861 4.698
-LIST/ORDER=Z v[i=@ave,j=@ave,l=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 points (DEPTH (m))
- LONGITUDE: 129.5W to 126.5W (XYT ave)
- LATITUDE : 0.2N to 1.2N (XYT ave)
- TIME : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (XYT ave)
- 5 15 25
- 1 2 3
- 9.547 2.099 -3.651
-LIST/ORDER=T v[i=@ave,j=@ave,k=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- SUBSET : 3 points (TIME)
- LONGITUDE: 129.5W to 126.5W (XYZ ave)
- LATITUDE : 0.2N to 1.2N (XYZ ave)
- DEPTH (m): 0 to 30 (XYZ ave)
- 1982 1982 1982
- 1 2 3
- 1.247 2.536 4.212
-
-! point of data
-LIST/ORDER=X v[i=@ave,j=@ave,k=@ave,l=@ave]
- VARIABLE : MERIDIONAL VELOCITY (cm/sec)
- FILENAME : gt4d011.cdf
- LONGITUDE: 129.5W to 126.5W (XYZT ave)
- LATITUDE : 0.2N to 1.2N (XYZT ave)
- DEPTH (m): 0 to 30 (XYZT ave)
- TIME : 14-AUG-1982 11:00 to 01-SEP-1982 17:00 (XYZT ave)
- 2.665
-
-! ****
-! remove call to bn200_compress.sub_qady for portable benchmarks *kob* 5/99
-! ****
-
-GO bn_reset
-cancel mode verify
-GO bn_interpolate
-! bn200_interpolate.JNL
-! benchmark interpolation along various axes
-
-SET LIST/PRECISION=6
-SET MODE LATITUDE:4
-
-LET v = x + 10*y + 100*z + 1000*t
-SET REGION/I=1:3/J=1:3/K=1:3/L=1:3
-DEF REG/x=1.5 xpt
-DEF REG/y=1.05 ypt
-DEF REG/z=1.005 zpt
-DEF REG/t=1.0005 tpt
-
-! first without interpolation
-CANCEL MODE INTERPOLATE
-GO bn_interpolate.sub
-! BN200_INTERPOLATE.SUB
-! interpolate in various geometries
-
-! this routine assumes that a 4-D region and an expression are already set
-
-! cubes of data
-LIST v[@xpt]
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 by 3 points (Y-Z-T)
- X : 1
- 1 2 3
- 1 2 3
- ---- L:1 T: 1
- 1 / 1: 1111.00 1121.00 1131.00
- 2 / 2: 1211.00 1221.00 1231.00
- 3 / 3: 1311.00 1321.00 1331.00
- ---- L:2 T: 2
- 1 / 1: 2111.00 2121.00 2131.00
- 2 / 2: 2211.00 2221.00 2231.00
- 3 / 3: 2311.00 2321.00 2331.00
- ---- L:3 T: 3
- 1 / 1: 3111.00 3121.00 3131.00
- 2 / 2: 3211.00 3221.00 3231.00
- 3 / 3: 3311.00 3321.00 3331.00
-LIST v[@ypt]
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 by 3 points (X-Z-T)
- Y : 1
- 1 2 3
- 1 2 3
- ---- L:1 T: 1
- 1 / 1: 1111.00 1112.00 1113.00
- 2 / 2: 1211.00 1212.00 1213.00
- 3 / 3: 1311.00 1312.00 1313.00
- ---- L:2 T: 2
- 1 / 1: 2111.00 2112.00 2113.00
- 2 / 2: 2211.00 2212.00 2213.00
- 3 / 3: 2311.00 2312.00 2313.00
- ---- L:3 T: 3
- 1 / 1: 3111.00 3112.00 3113.00
- 2 / 2: 3211.00 3212.00 3213.00
- 3 / 3: 3311.00 3312.00 3313.00
-LIST v[@zpt]
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 by 3 points (X-Y-T)
- Z : 1
- 1 2 3
- 1 2 3
- ---- L:1 T: 1
- 1 / 1: 1111.00 1112.00 1113.00
- 2 / 2: 1121.00 1122.00 1123.00
- 3 / 3: 1131.00 1132.00 1133.00
- ---- L:2 T: 2
- 1 / 1: 2111.00 2112.00 2113.00
- 2 / 2: 2121.00 2122.00 2123.00
- 3 / 3: 2131.00 2132.00 2133.00
- ---- L:3 T: 3
- 1 / 1: 3111.00 3112.00 3113.00
- 2 / 2: 3121.00 3122.00 3123.00
- 3 / 3: 3131.00 3132.00 3133.00
-LIST v[@tpt]
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 by 3 points (X-Y-Z)
- T : 1
- 1 2 3
- 1 2 3
- ---- K:1 Z: 1
- 1 / 1: 1111.00 1112.00 1113.00
- 2 / 2: 1121.00 1122.00 1123.00
- 3 / 3: 1131.00 1132.00 1133.00
- ---- K:2 Z: 2
- 1 / 1: 1211.00 1212.00 1213.00
- 2 / 2: 1221.00 1222.00 1223.00
- 3 / 3: 1231.00 1232.00 1233.00
- ---- K:3 Z: 3
- 1 / 1: 1311.00 1312.00 1313.00
- 2 / 2: 1321.00 1322.00 1323.00
- 3 / 3: 1331.00 1332.00 1333.00
-
-! planes of data
-LIST v[@zpt, at tpt] !XY
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 points (X-Y)
- Z : 1
- T : 1
- 1 2 3
- 1 2 3
- 1 / 1: 1111.00 1112.00 1113.00
- 2 / 2: 1121.00 1122.00 1123.00
- 3 / 3: 1131.00 1132.00 1133.00
-LIST v[@ypt, at tpt] !XZ
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 points (X-Z)
- Y : 1
- T : 1
- 1 2 3
- 1 2 3
- 1 / 1: 1111.00 1112.00 1113.00
- 2 / 2: 1211.00 1212.00 1213.00
- 3 / 3: 1311.00 1312.00 1313.00
-LIST v[@ypt, at zpt] !XT
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 points (X-T)
- Y : 1
- Z : 1
- 1 2 3
- 1 2 3
- 1 / 1: 1111.00 1112.00 1113.00
- 2 / 2: 2111.00 2112.00 2113.00
- 3 / 3: 3111.00 3112.00 3113.00
-LIST v[@xpt, at tpt] !YZ
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 points (Y-Z)
- X : 1
- T : 1
- 1 2 3
- 1 2 3
- 1 / 1: 1111.00 1121.00 1131.00
- 2 / 2: 1211.00 1221.00 1231.00
- 3 / 3: 1311.00 1321.00 1331.00
-LIST v[@xpt, at zpt] !YT
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 points (Y-T)
- X : 1
- Z : 1
- 1 2 3
- 1 2 3
- 1 / 1: 1111.00 1121.00 1131.00
- 2 / 2: 2111.00 2121.00 2131.00
- 3 / 3: 3111.00 3121.00 3131.00
-LIST v[@xpt, at ypt] !ZT
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 points (Z-T)
- X : 1
- Y : 1
- 1 2 3
- 1 2 3
- 1 / 1: 1111.00 1211.00 1311.00
- 2 / 2: 2111.00 2211.00 2311.00
- 3 / 3: 3111.00 3211.00 3311.00
-
-! lines of data
-LIST/ORDER=T v[@xpt, at ypt, at zpt] ! T
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 points (T)
- X : 1
- Y : 1
- Z : 1
- 1 2 3
- 1 2 3
- 1111.00 2111.00 3111.00
-LIST/ORDER=Z v[@xpt, at ypt, at tpt] ! Z
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 points (Z)
- X : 1
- Y : 1
- T : 1
- 1 2 3
- 1 2 3
- 1111.00 1211.00 1311.00
-LIST/ORDER=Y v[@xpt, at zpt, at tpt] ! Y
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 points (Y)
- X : 1
- Z : 1
- T : 1
- 1 2 3
- 1 2 3
- 1111.00 1121.00 1131.00
-LIST/ORDER=X v[@ypt, at zpt, at tpt] ! X
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 points (X)
- Y : 1
- Z : 1
- T : 1
- 1 2 3
- 1 2 3
- 1111.00 1112.00 1113.00
-
-! point of data
-LIST v[@xpt, at ypt, at zpt, at tpt]
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- X : 1
- Y : 1
- Z : 1
- T : 1
- 1111.00
-
-! then with interpolation
-SET MODE INTERPOLATE
-GO bn_interpolate.sub
-! BN200_INTERPOLATE.SUB
-! interpolate in various geometries
-
-! this routine assumes that a 4-D region and an expression are already set
-
-! cubes of data
-LIST v[@xpt]
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 by 3 points (Y-Z-T)
- X : 1.5 (interpolated)
- 1 2 3
- 1 2 3
- ---- L:1 T: 1
- 1 / 1: 1111.50 1121.50 1131.50
- 2 / 2: 1211.50 1221.50 1231.50
- 3 / 3: 1311.50 1321.50 1331.50
- ---- L:2 T: 2
- 1 / 1: 2111.50 2121.50 2131.50
- 2 / 2: 2211.50 2221.50 2231.50
- 3 / 3: 2311.50 2321.50 2331.50
- ---- L:3 T: 3
- 1 / 1: 3111.50 3121.50 3131.50
- 2 / 2: 3211.50 3221.50 3231.50
- 3 / 3: 3311.50 3321.50 3331.50
-LIST v[@ypt]
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 by 3 points (X-Z-T)
- Y : 1.05 (interpolated)
- 1 2 3
- 1 2 3
- ---- L:1 T: 1
- 1 / 1: 1111.50 1112.50 1113.50
- 2 / 2: 1211.50 1212.50 1213.50
- 3 / 3: 1311.50 1312.50 1313.50
- ---- L:2 T: 2
- 1 / 1: 2111.50 2112.50 2113.50
- 2 / 2: 2211.50 2212.50 2213.50
- 3 / 3: 2311.50 2312.50 2313.50
- ---- L:3 T: 3
- 1 / 1: 3111.50 3112.50 3113.50
- 2 / 2: 3211.50 3212.50 3213.50
- 3 / 3: 3311.50 3312.50 3313.50
-LIST v[@zpt]
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 by 3 points (X-Y-T)
- Z : 1.005 (interpolated)
- 1 2 3
- 1 2 3
- ---- L:1 T: 1
- 1 / 1: 1111.50 1112.50 1113.50
- 2 / 2: 1121.50 1122.50 1123.50
- 3 / 3: 1131.50 1132.50 1133.50
- ---- L:2 T: 2
- 1 / 1: 2111.50 2112.50 2113.50
- 2 / 2: 2121.50 2122.50 2123.50
- 3 / 3: 2131.50 2132.50 2133.50
- ---- L:3 T: 3
- 1 / 1: 3111.50 3112.50 3113.50
- 2 / 2: 3121.50 3122.50 3123.50
- 3 / 3: 3131.50 3132.50 3133.50
-LIST v[@tpt]
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 by 3 points (X-Y-Z)
- T : 1.0005 (interpolated)
- 1 2 3
- 1 2 3
- ---- K:1 Z: 1
- 1 / 1: 1111.50 1112.50 1113.50
- 2 / 2: 1121.50 1122.50 1123.50
- 3 / 3: 1131.50 1132.50 1133.50
- ---- K:2 Z: 2
- 1 / 1: 1211.50 1212.50 1213.50
- 2 / 2: 1221.50 1222.50 1223.50
- 3 / 3: 1231.50 1232.50 1233.50
- ---- K:3 Z: 3
- 1 / 1: 1311.50 1312.50 1313.50
- 2 / 2: 1321.50 1322.50 1323.50
- 3 / 3: 1331.50 1332.50 1333.50
-
-! planes of data
-LIST v[@zpt, at tpt] !XY
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 points (X-Y)
- Z : 1.005 (interpolated)
- T : 1.0005 (interpolated)
- 1 2 3
- 1 2 3
- 1 / 1: 1112.00 1113.00 1114.00
- 2 / 2: 1122.00 1123.00 1124.00
- 3 / 3: 1132.00 1133.00 1134.00
-LIST v[@ypt, at tpt] !XZ
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 points (X-Z)
- Y : 1.05 (interpolated)
- T : 1.0005 (interpolated)
- 1 2 3
- 1 2 3
- 1 / 1: 1112.00 1113.00 1114.00
- 2 / 2: 1212.00 1213.00 1214.00
- 3 / 3: 1312.00 1313.00 1314.00
-LIST v[@ypt, at zpt] !XT
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 points (X-T)
- Y : 1.05 (interpolated)
- Z : 1.005 (interpolated)
- 1 2 3
- 1 2 3
- 1 / 1: 1112.00 1113.00 1114.00
- 2 / 2: 2112.00 2113.00 2114.00
- 3 / 3: 3112.00 3113.00 3114.00
-LIST v[@xpt, at tpt] !YZ
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 points (Y-Z)
- X : 1.5 (interpolated)
- T : 1.0005 (interpolated)
- 1 2 3
- 1 2 3
- 1 / 1: 1112.00 1122.00 1132.00
- 2 / 2: 1212.00 1222.00 1232.00
- 3 / 3: 1312.00 1322.00 1332.00
-LIST v[@xpt, at zpt] !YT
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 points (Y-T)
- X : 1.5 (interpolated)
- Z : 1.005 (interpolated)
- 1 2 3
- 1 2 3
- 1 / 1: 1112.00 1122.00 1132.00
- 2 / 2: 2112.00 2122.00 2132.00
- 3 / 3: 3112.00 3122.00 3132.00
-LIST v[@xpt, at ypt] !ZT
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 by 3 points (Z-T)
- X : 1.5 (interpolated)
- Y : 1.05 (interpolated)
- 1 2 3
- 1 2 3
- 1 / 1: 1112.00 1212.00 1312.00
- 2 / 2: 2112.00 2212.00 2312.00
- 3 / 3: 3112.00 3212.00 3312.00
-
-! lines of data
-LIST/ORDER=T v[@xpt, at ypt, at zpt] ! T
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 points (T)
- X : 1.5 (interpolated)
- Y : 1.05 (interpolated)
- Z : 1.005 (interpolated)
- 1 2 3
- 1 2 3
- 1112.50 2112.50 3112.50
-LIST/ORDER=Z v[@xpt, at ypt, at tpt] ! Z
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 points (Z)
- X : 1.5 (interpolated)
- Y : 1.05 (interpolated)
- T : 1.0005 (interpolated)
- 1 2 3
- 1 2 3
- 1112.50 1212.50 1312.50
-LIST/ORDER=Y v[@xpt, at zpt, at tpt] ! Y
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 points (Y)
- X : 1.5 (interpolated)
- Z : 1.005 (interpolated)
- T : 1.0005 (interpolated)
- 1 2 3
- 1 2 3
- 1112.50 1122.50 1132.50
-LIST/ORDER=X v[@ypt, at zpt, at tpt] ! X
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- SUBSET : 3 points (X)
- Y : 1.05 (interpolated)
- Z : 1.005 (interpolated)
- T : 1.0005 (interpolated)
- 1 2 3
- 1 2 3
- 1112.50 1113.50 1114.50
-
-! point of data
-LIST v[@xpt, at ypt, at zpt, at tpt]
- VARIABLE : X + 10*Y + 100*Z + 1000*T
- X : 1.5 (interpolated)
- Y : 1.05 (interpolated)
- Z : 1.005 (interpolated)
- T : 1.0005 (interpolated)
- 1113.00
-
-GO bn_reset
-cancel mode verify
-GO bn_regrid
-! bn200_regrid.JNL
-! test regridding
-! first test consists of regridding and re-regridding back and comparing
-! when the variable, v is linear along all axes results should be exact
-
-! second test checks area-averaging regridding
-! both with and without COS(latitude) factors computed
-
-! third test consists of time axis regridding with differing time steps
-
-set mode latit_label -4
-set mode long_label -4
-
-define axis/x=2:20:2 xeven
-define axis/x=1:19:2 xodd
-define axis/y=2:20:2 yeven
-define axis/y=1:19:2 yodd
-define axis/z=2:20:2 zeven
-define axis/z=1:19:2 zodd
-define axis/t=2:20:2/t0="1-jan-1980"/unit=days teven
-define axis/t=1:19:2/t0="1-jan-1980"/unit=days todd
-
-! default grid
-define grid/x=xeven/y=yeven/z=zeven/t=teven even
-
-! 1 axis different
-define grid/x=xodd/y=yeven/z=zeven/t=teven g1
-define grid/x=xeven/y=yodd/z=zeven/t=teven g2
-define grid/x=xeven/y=yeven/z=zodd/t=teven g3
-define grid/x=xeven/y=yeven/z=zeven/t=todd g4
-
-! 2 axes different
-define grid/x=xodd/y=yodd/z=zeven/t=teven g12
-define grid/x=xodd/y=yeven/z=zodd/t=teven g13
-define grid/x=xodd/y=yeven/z=zeven/t=todd g14
-define grid/x=xeven/y=yodd/z=zodd/t=teven g23
-define grid/x=xeven/y=yodd/z=zeven/t=todd g24
-define grid/x=xeven/y=yeven/z=zodd/t=todd g33
-
-! 3 axes different
-define grid/x=xeven/y=yodd/z=zodd/t=todd g234
-define grid/x=xodd/y=yeven/z=zodd/t=todd g134
-define grid/x=xodd/y=yodd/z=zeven/t=todd g124
-define grid/x=xodd/y=yodd/z=zodd/t=teven g123
-
-! all axes different
-define grid/x=xodd/y=yodd/z=zodd/t=todd g1234
-
-LET veven = 1000*i[g=even] + 100*j[g=even] + 10*k[g=even] + l[g=even]
-
-LET v1 = veven[g=g1]
-LET v2 = veven[g=g2]
-LET v3 = veven[g=g3]
-LET v4 = veven[g=g4]
-LET v12 = veven[g=g12]
-LET v13 = veven[g=g13]
-LET v14 = veven[g=g14]
-LET v23 = veven[g=g23]
-LET v24 = veven[g=g24]
-LET v33 = veven[g=g33]
-LET v234 = veven[g=g234]
-LET v134 = veven[g=g134]
-LET v124 = veven[g=g124]
-LET v123 = veven[g=g123]
-LET v1234 = veven[g=g1234]
-
-SET REGION/X=4.01:8.99/Y=4.01:8.99/Z=4.01:8.99/T=4.01:8.99
-
-! background
-list veven
- VARIABLE : 1000*I[G=EVEN] + 100*J[G=EVEN] + 10*K[G=EVEN] + L[G=EVEN]
- SUBSET : 3 by 3 by 3 by 3 points (X-Y-Z-TIME)
- 4 6 8
- 2 3 4
- ---- L:2 T: 05-JAN-1980 00:00
- ---- K:2 Z: 4
- 4 / 2: 2222.00 3222.00 4222.00
- 6 / 3: 2322.00 3322.00 4322.00
- 8 / 4: 2422.00 3422.00 4422.00
- ---- K:3 Z: 6
- 4 / 2: 2232.00 3232.00 4232.00
- 6 / 3: 2332.00 3332.00 4332.00
- 8 / 4: 2432.00 3432.00 4432.00
- ---- K:4 Z: 8
- 4 / 2: 2242.00 3242.00 4242.00
- 6 / 3: 2342.00 3342.00 4342.00
- 8 / 4: 2442.00 3442.00 4442.00
- ---- L:3 T: 07-JAN-1980 00:00
- ---- K:2 Z: 4
- 4 / 2: 2223.00 3223.00 4223.00
- 6 / 3: 2323.00 3323.00 4323.00
- 8 / 4: 2423.00 3423.00 4423.00
- ---- K:3 Z: 6
- 4 / 2: 2233.00 3233.00 4233.00
- 6 / 3: 2333.00 3333.00 4333.00
- 8 / 4: 2433.00 3433.00 4433.00
- ---- K:4 Z: 8
- 4 / 2: 2243.00 3243.00 4243.00
- 6 / 3: 2343.00 3343.00 4343.00
- 8 / 4: 2443.00 3443.00 4443.00
- ---- L:4 T: 09-JAN-1980 00:00
- ---- K:2 Z: 4
- 4 / 2: 2224.00 3224.00 4224.00
- 6 / 3: 2324.00 3324.00 4324.00
- 8 / 4: 2424.00 3424.00 4424.00
- ---- K:3 Z: 6
- 4 / 2: 2234.00 3234.00 4234.00
- 6 / 3: 2334.00 3334.00 4334.00
- 8 / 4: 2434.00 3434.00 4434.00
- ---- K:4 Z: 8
- 4 / 2: 2244.00 3244.00 4244.00
- 6 / 3: 2344.00 3344.00 4344.00
- 8 / 4: 2444.00 3444.00 4444.00
-list v1234
- VARIABLE : VEVEN[G=G1234]
- SUBSET : 3 by 3 by 3 by 3 points (X-Y-Z-TIME)
- 5 7 9
- 3 4 5
- ---- L:3 T: 06-JAN-1980 00:00
- ---- K:3 Z: 5
- 5 / 3: 2777.50 3777.50 4777.50
- 7 / 4: 2877.50 3877.50 4877.50
- 9 / 5: 2977.50 3977.50 4977.50
- ---- K:4 Z: 7
- 5 / 3: 2787.50 3787.50 4787.50
- 7 / 4: 2887.50 3887.50 4887.50
- 9 / 5: 2987.50 3987.50 4987.50
- ---- K:5 Z: 9
- 5 / 3: 2797.50 3797.50 4797.50
- 7 / 4: 2897.50 3897.50 4897.50
- 9 / 5: 2997.50 3997.50 4997.50
- ---- L:4 T: 08-JAN-1980 00:00
- ---- K:3 Z: 5
- 5 / 3: 2778.50 3778.50 4778.50
- 7 / 4: 2878.50 3878.50 4878.50
- 9 / 5: 2978.50 3978.50 4978.50
- ---- K:4 Z: 7
- 5 / 3: 2788.50 3788.50 4788.50
- 7 / 4: 2888.50 3888.50 4888.50
- 9 / 5: 2988.50 3988.50 4988.50
- ---- K:5 Z: 9
- 5 / 3: 2798.50 3798.50 4798.50
- 7 / 4: 2898.50 3898.50 4898.50
- 9 / 5: 2998.50 3998.50 4998.50
- ---- L:5 T: 10-JAN-1980 00:00
- ---- K:3 Z: 5
- 5 / 3: 2779.50 3779.50 4779.50
- 7 / 4: 2879.50 3879.50 4879.50
- 9 / 5: 2979.50 3979.50 4979.50
- ---- K:4 Z: 7
- 5 / 3: 2789.50 3789.50 4789.50
- 7 / 4: 2889.50 3889.50 4889.50
- 9 / 5: 2989.50 3989.50 4989.50
- ---- K:5 Z: 9
- 5 / 3: 2799.50 3799.50 4799.50
- 7 / 4: 2899.50 3899.50 4899.50
- 9 / 5: 2999.50 3999.50 4999.50
-stat veven
-
- 1000*I[G=EVEN] + 100*J[G=EVEN] + 10*K[G=EVEN] + L[G=EVEN]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2222
- Maximum value: 4444
- Mean value: 3333 (unweighted average)
- Standard deviation: 825.72
-
-! first all from one memory variable
-load/x=1:11/y=1:11/z=1:11/t=1:11 veven
-GO bn_regrid.sub
-! BN200_REGRID.SUB
-! compare various regriddings to the original data
-
-stat v1[g=even]-veven, v1
-
- V1[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G1]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2722
- Maximum value: 4944
- Mean value: 3833 (unweighted average)
- Standard deviation: 825.72
-stat v2[g=even]-veven, v2
-
- V2[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G2]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2272
- Maximum value: 4494
- Mean value: 3383 (unweighted average)
- Standard deviation: 825.72
-stat v3[g=even]-veven, v3
-
- V3[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G3]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2227
- Maximum value: 4449
- Mean value: 3338 (unweighted average)
- Standard deviation: 825.72
-stat v4[g=even]-veven, v4
-
- V4[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G4]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2222.5
- Maximum value: 4444.5
- Mean value: 3333.5 (unweighted average)
- Standard deviation: 825.72
-stat v12[g=even]-veven, v12
-
- V12[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G12]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2772
- Maximum value: 4994
- Mean value: 3883 (unweighted average)
- Standard deviation: 825.72
-stat v13[g=even]-veven, v13
-
- V13[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G13]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2727
- Maximum value: 4949
- Mean value: 3838 (unweighted average)
- Standard deviation: 825.72
-stat v14[g=even]-veven, v14
-
- V14[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G14]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2722.5
- Maximum value: 4944.5
- Mean value: 3833.5 (unweighted average)
- Standard deviation: 825.72
-stat v23[g=even]-veven, v23
-
- V23[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G23]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2277
- Maximum value: 4499
- Mean value: 3388 (unweighted average)
- Standard deviation: 825.72
-stat v24[g=even]-veven, v24
-
- V24[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G24]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2272.5
- Maximum value: 4494.5
- Mean value: 3383.5 (unweighted average)
- Standard deviation: 825.72
-stat v33[g=even]-veven, v33
-
- V33[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G33]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2227.5
- Maximum value: 4449.5
- Mean value: 3338.5 (unweighted average)
- Standard deviation: 825.72
-stat v234[g=even]-veven, v234
-
- V234[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G234]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2277.5
- Maximum value: 4499.5
- Mean value: 3388.5 (unweighted average)
- Standard deviation: 825.72
-stat v134[g=even]-veven, v134
-
- V134[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G134]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2727.5
- Maximum value: 4949.5
- Mean value: 3838.5 (unweighted average)
- Standard deviation: 825.72
-stat v124[g=even]-veven, v124
-
- V124[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G124]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2772.5
- Maximum value: 4994.5
- Mean value: 3883.5 (unweighted average)
- Standard deviation: 825.72
-stat v123[g=even]-veven, v123
-
- V123[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G123]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2777
- Maximum value: 4999
- Mean value: 3888 (unweighted average)
- Standard deviation: 825.72
-stat v1234[g=even]-veven, v1234
-
- V1234[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G1234]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2777.5
- Maximum value: 4999.5
- Mean value: 3888.5 (unweighted average)
- Standard deviation: 825.72
-
-! and now with recalculations at every step
-CANCEL MEMORY/ALL
-SET MODE STUPID
-GO bn_regrid.sub
-! BN200_REGRID.SUB
-! compare various regriddings to the original data
-
-stat v1[g=even]-veven, v1
-
- V1[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G1]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2722
- Maximum value: 4944
- Mean value: 3833 (unweighted average)
- Standard deviation: 825.72
-stat v2[g=even]-veven, v2
-
- V2[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G2]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2272
- Maximum value: 4494
- Mean value: 3383 (unweighted average)
- Standard deviation: 825.72
-stat v3[g=even]-veven, v3
-
- V3[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G3]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2227
- Maximum value: 4449
- Mean value: 3338 (unweighted average)
- Standard deviation: 825.72
-stat v4[g=even]-veven, v4
-
- V4[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G4]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2222.5
- Maximum value: 4444.5
- Mean value: 3333.5 (unweighted average)
- Standard deviation: 825.72
-stat v12[g=even]-veven, v12
-
- V12[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G12]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2772
- Maximum value: 4994
- Mean value: 3883 (unweighted average)
- Standard deviation: 825.72
-stat v13[g=even]-veven, v13
-
- V13[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G13]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2727
- Maximum value: 4949
- Mean value: 3838 (unweighted average)
- Standard deviation: 825.72
-stat v14[g=even]-veven, v14
-
- V14[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G14]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2722.5
- Maximum value: 4944.5
- Mean value: 3833.5 (unweighted average)
- Standard deviation: 825.72
-stat v23[g=even]-veven, v23
-
- V23[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G23]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2277
- Maximum value: 4499
- Mean value: 3388 (unweighted average)
- Standard deviation: 825.72
-stat v24[g=even]-veven, v24
-
- V24[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G24]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2272.5
- Maximum value: 4494.5
- Mean value: 3383.5 (unweighted average)
- Standard deviation: 825.72
-stat v33[g=even]-veven, v33
-
- V33[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G33]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2227.5
- Maximum value: 4449.5
- Mean value: 3338.5 (unweighted average)
- Standard deviation: 825.72
-stat v234[g=even]-veven, v234
-
- V234[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G234]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2277.5
- Maximum value: 4499.5
- Mean value: 3388.5 (unweighted average)
- Standard deviation: 825.72
-stat v134[g=even]-veven, v134
-
- V134[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G134]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2727.5
- Maximum value: 4949.5
- Mean value: 3838.5 (unweighted average)
- Standard deviation: 825.72
-stat v124[g=even]-veven, v124
-
- V124[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G124]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2772.5
- Maximum value: 4994.5
- Mean value: 3883.5 (unweighted average)
- Standard deviation: 825.72
-stat v123[g=even]-veven, v123
-
- V123[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G123]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2777
- Maximum value: 4999
- Mean value: 3888 (unweighted average)
- Standard deviation: 825.72
-stat v1234[g=even]-veven, v1234
-
- V1234[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G1234]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: 05-JAN-1980 00:14 to 09-JAN-1980 23:45
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2777.5
- Maximum value: 4999.5
- Mean value: 3888.5 (unweighted average)
- Standard deviation: 825.72
-
-!****************** area-averaging regrids *******************
-! check easily computable area-averaged regrid
-LET vfine = X+Y
-LET vcoarse = vfine[g=gcoarse]
-
-! first test without COS(latitude) corrections
-define axis/x=1:100:1/unit=cm xfine
-define axis/x=5.5:95.5:10/unit=cm xcoarse
-define axis/y=1:100:1/unit=cm yfine
-define axis/y=5.5:95.5:10/unit=cm ycoarse
-define grid/x=xfine/y=yfine gfine
-define grid/x=xcoarse/y=ycoarse gcoarse
-
-set grid gfine
-set reg/x=20.5:80.5/y=20.5:80.5
-list vcoarse
- VARIABLE : VFINE[G=GCOARSE]
- SUBSET : 6 by 6 points (X (CM)-Y (CM))
- 25.5 35.5 45.5 55.5 65.5 75.5
- 3 4 5 6 7 8
- 25.5 / 3: 51.000 61.000 71.000 81.000 91.000 101.000
- 35.5 / 4: 61.000 71.000 81.000 91.000 101.000 111.000
- 45.5 / 5: 71.000 81.000 91.000 101.000 111.000 121.000
- 55.5 / 6: 81.000 91.000 101.000 111.000 121.000 131.000
- 65.5 / 7: 91.000 101.000 111.000 121.000 131.000 141.000
- 75.5 / 8: 101.000 111.000 121.000 131.000 141.000 151.000
-stat vcoarse,vfine
-
- VFINE[G=GCOARSE]
- X (CM): 20.5 to 80.5
- Y (CM): 20.5 to 80.5
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 36 (6*6*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 51
- Maximum value: 151
- Mean value: 101 (unweighted average)
- Standard deviation: 24.495
-
- X+Y
- X (CM): 20.5 to 80.5
- Y (CM): 20.5 to 80.5
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 3600 (60*60*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 42
- Maximum value: 160
- Mean value: 101 (unweighted average)
- Standard deviation: 24.495
-list vcoarse[x=@ave,y=@ave],vfine[x=@ave,y=@ave]
- X (CM): 20.5 to 80.5 (XY ave)
- Y (CM): 20.5 to 80.5 (XY ave)
- Column 1: VCOARSE is VFINE[G=GCOARSE]
- Column 2: VFINE is X+Y
- VCOARSE VFINE
-I / *: 101.000 101.000
-
-! then test with COS(latitude) corrections
-define axis/x=1:100:1/unit=degrees xfine
-define axis/x=5.5:95.5:10/unit=degrees xcoarse
-define axis/y=1:100:1/unit=degrees yfine
-define axis/y=5.5:95.5:10/unit=degrees ycoarse
-define grid/x=xfine/y=yfine gfine
-define grid/x=xcoarse/y=ycoarse gcoarse
-
-set grid gfine
-set reg/x=20.5:80.5/y=20.5:80.5
-list vcoarse
- VARIABLE : VFINE[G=GCOARSE]
- SUBSET : 6 by 6 points (LONGITUDE-LATITUDE)
- 25.5E 35.5E 45.5E 55.5E 65.5E 75.5E
- 3 4 5 6 7 8
- 75.5N / 8: 101.000 111.000 121.000 131.000 141.000 151.000
- 65.5N / 7: 91.000 101.000 111.000 121.000 131.000 141.000
- 55.5N / 6: 81.000 91.000 101.000 111.000 121.000 131.000
- 45.5N / 5: 71.000 81.000 91.000 101.000 111.000 121.000
- 35.5N / 4: 61.000 71.000 81.000 91.000 101.000 111.000
- 25.5N / 3: 51.000 61.000 71.000 81.000 91.000 101.000
-stat vcoarse,vfine
-
- VFINE[G=GCOARSE]
- LONGITUDE: 20.5E to 80.5E
- LATITUDE: 20.5N to 80.5N
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 36 (6*6*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 51
- Maximum value: 151
- Mean value: 101 (unweighted average)
- Standard deviation: 24.495
-
- X+Y
- LONGITUDE: 20.5E to 80.5E
- LATITUDE: 20.5N to 80.5N
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 3600 (60*60*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 42
- Maximum value: 160
- Mean value: 101 (unweighted average)
- Standard deviation: 24.495
-list vcoarse[x=@ave,y=@ave],vfine[x=@ave,y=@ave]
- LONGITUDE: 20.5E to 80.5E (XY ave)
- LATITUDE: 20.5N to 80.5N (XY ave)
- Column 1: VCOARSE is VFINE[G=GCOARSE]
- Column 2: VFINE is X+Y
- VCOARSE VFINE
-I / *: 94.7056 94.5308
-
-!****************** time axis regridding *******************
-define axis/t="1-jan-1980":"1-jan-1982":24/t0="1-jan-1970" tax24
-define axis/t="1-jan-1980":"1-jan-1982":48/t0="1-jan-1920" tax48
-define grid/t=tax24 g24
-define grid/t=tax48 g48
-!show grid/l=1:4 g24,g48 ! requires blank separators: 11/1/91 *sh*
-show grid/l=1:4 g24 g48
- GRID G24
- name axis # pts start end
- normal X
- normal Y
- normal Z
- TAX24 TIME 732 r 01-JAN-1980 00:00 01-JAN-1982 00:00
- normal E
- normal F
-
- L T TBOX TBOXLO TSTEP (HOURS)
- 1> 01-JAN-1980 00:00:00 24 31-DEC-1979 12:00:00 87648
- 2> 02-JAN-1980 00:00:00 24 01-JAN-1980 12:00:00 87672
- 3> 03-JAN-1980 00:00:00 24 02-JAN-1980 12:00:00 87696
- 4> 04-JAN-1980 00:00:00 24 03-JAN-1980 12:00:00 87720
- GRID G48
- name axis # pts start end
- normal X
- normal Y
- normal Z
- TAX48 TIME 367 r 01-JAN-1980 00:00 02-JAN-1982 00:00
- normal E
- normal F
-
- L T TBOX TBOXLO TSTEP (HOURS)
- 1> 01-JAN-1980 00:00:00 48 31-DEC-1979 00:00:00 525960
- 2> 03-JAN-1980 00:00:00 48 02-JAN-1980 00:00:00 526008
- 3> 05-JAN-1980 00:00:00 48 04-JAN-1980 00:00:00 526056
- 4> 07-JAN-1980 00:00:00 48 06-JAN-1980 00:00:00 526104
-set region/t="1-jan-1980":"8-jan-1980"
-let a24 = t[g=g24]
-let a48 = t[g=g48]
-list a24
- VARIABLE : T[G=G24]
- SUBSET : 8 points (TIME)
- 01-JAN-1980 00 / 1: 87648.0
- 02-JAN-1980 00 / 2: 87672.0
- 03-JAN-1980 00 / 3: 87696.0
- 04-JAN-1980 00 / 4: 87720.0
- 05-JAN-1980 00 / 5: 87744.0
- 06-JAN-1980 00 / 6: 87768.0
- 07-JAN-1980 00 / 7: 87792.0
- 08-JAN-1980 00 / 8: 87816.0
-list a48
- VARIABLE : T[G=G48]
- SUBSET : 4 points (TIME)
- 01-JAN-1980 00 / 1: 525960.
- 03-JAN-1980 00 / 2: 526008.
- 05-JAN-1980 00 / 3: 526056.
- 07-JAN-1980 00 / 4: 526104.
-list a24[g=g48]
- VARIABLE : T[G=G24]
- regrid: G48
- SUBSET : 4 points (TIME)
- 01-JAN-1980 00 / 1: 87648.0
- 03-JAN-1980 00 / 2: 87696.0
- 05-JAN-1980 00 / 3: 87744.0
- 07-JAN-1980 00 / 4: 87792.0
-list a24[g=g48]-a48
- VARIABLE : A24[G=G48]-A48
- SUBSET : 4 points (TIME)
- 01-JAN-1980 00 / 1: -438312.
- 03-JAN-1980 00 / 2: -438312.
- 05-JAN-1980 00 / 3: -438312.
- 07-JAN-1980 00 / 4: -438312.
-
-GO bn_reset
-cancel mode verify
-GO bn_ez ! changed from bn200_ez 8/10/95
-! bn401_ez.JNL
-! test all manner of accessing non-TMAP data files
-! V401 modified from bn200_ez.jnl by the addition of a test of UNF reading
-
-
-! quick and dirty
-FILE EZ.DAT
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./EZ.DAT (default)
-
- name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
-
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 1
-LIST V1
- VARIABLE : V1
- FILENAME : EZ.DAT
- SUBSET : 5 points (X)
- 1 / 1: 0.006000
- 2 / 2: 0.355000
- 3 / 3: 0.410000
- 4 / 4: 0.435000
- 5 / 5: 0.478000
-SHOW DATA
- currently SET data sets:
- 1> ./EZ.DAT (default)
- name title I J K L M N
- V1 V1 1:5 ... ... ... ... ...
-
-
-! first 2 values from each line
-FILE/VAR="X1,X2" EZ.DAT
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./EZ.DAT (default)
-
- name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
-
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 2
-LIST X1,X2
- DATA SET: ./EZ.DAT
- X: 0.5 to 5.5
- Column 1: X1
- Column 2: X2
- X1 X2
-1 / 1: 0.006000 0.886500
-2 / 2: 0.355000 0.664300
-3 / 3: 0.410000 0.607100
-4 / 4: 0.435000 0.553500
-5 / 5: 0.478000 0.533700
-SHOW DATA
- currently SET data sets:
- 1> ./EZ.DAT (default)
- name title I J K L M N
- X1 X1 1:5 ... ... ... ... ...
- X2 X2 1:5 ... ... ... ... ...
-
-
-! all 6 values on each line
-FILE/VAR="X1,X2"/COLUMNS=6 EZ.DAT
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./EZ.DAT (default)
-
- name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
-
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 6
-LIST X1
- VARIABLE : X1
- FILENAME : EZ.DAT
- SUBSET : 15 points (X)
- 1 / 1: 0.006000
- 2 / 2: 0.176000
- 3 / 3: 0.282000
- 4 / 4: 0.355000
- 5 / 5: 0.379000
- 6 / 6: 0.393000
- 7 / 7: 0.410000
- 8 / 8: 0.417000
- 9 / 9: 0.467000
- 10 / 10: 0.435000
- 11 / 11: 0.444000
- 12 / 12: 0.470000
- 13 / 13: 0.478000
- 14 / 14: 0.515000
- 15 / 15: 0.469000
-SHOW DATA
- currently SET data sets:
- 1> ./EZ.DAT (default)
- name title I J K L M N
- X1 X1 1:15 ... ... ... ... ...
- X2 X2 1:15 ... ... ... ... ...
-
-
-! all 6 but skip first 2 lines
-FILE/VAR="X1,X2"/COLUMNS=6/SKIP=2 EZ.DAT
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./EZ.DAT (default)
-
- name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
-
- /FORMAT = FREE
- /SKIP = 2
- /COLUMNS = 6
-LIST X1
- VARIABLE : X1
- FILENAME : EZ.DAT
- SUBSET : 9 points (X)
- 1 / 1: 0.410000
- 2 / 2: 0.417000
- 3 / 3: 0.467000
- 4 / 4: 0.435000
- 5 / 5: 0.444000
- 6 / 6: 0.470000
- 7 / 7: 0.478000
- 8 / 8: 0.515000
- 9 / 9: 0.469000
-SHOW DATA
- currently SET data sets:
- 1> ./EZ.DAT (default)
- name title I J K L M N
- X1 X1 1:9 ... ... ... ... ...
- X2 X2 1:9 ... ... ... ... ...
-
-
-! take 1st and 4th values on each line as X1
-FILE/VAR="X1,-,X2"/COLUMNS=6/SKIP=2 EZ.DAT
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./EZ.DAT (default)
-
- name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
-
- /FORMAT = FREE
- /SKIP = 2
- /COLUMNS = 6
-LIST X1
- VARIABLE : X1
- FILENAME : EZ.DAT
- SUBSET : 6 points (X)
- 1 / 1: 0.410000
- 2 / 2: 0.593500
- 3 / 3: 0.435000
- 4 / 4: 0.545800
- 5 / 5: 0.478000
- 6 / 6: 0.514700
-SHOW DATA
- currently SET data sets:
- 1> ./EZ.DAT (default)
- name title I J K L M N
- X1 X1 1:6 ... ... ... ... ...
- X2 X2 1:6 ... ... ... ... ...
-
-
-! specify the format explicitly
-FILE/VAR="X1,X2"/COLUMNS=6/SKIP=2/FORMAT=(3(F14.0,F7.0)) EZ.DAT
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./EZ.DAT (default)
-
- name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
-
- /FORMAT = (3(F14.0,F7.0))
- /SKIP = 2
- /COLUMNS = 6
-LIST X1
- VARIABLE : X1
- FILENAME : EZ.DAT
- SUBSET : 9 points (X)
- 1 / 1: 0.410000
- 2 / 2: 0.417000
- 3 / 3: 0.467000
- 4 / 4: 0.435000
- 5 / 5: 0.444000
- 6 / 6: 0.470000
- 7 / 7: 0.478000
- 8 / 8: 0.515000
- 9 / 9: 0.469000
-SHOW DATA
- currently SET data sets:
- 1> ./EZ.DAT (default)
- name title I J K L M N
- X1 X1 1:9 ... ... ... ... ...
- X2 X2 1:9 ... ... ... ... ...
-
-
-! specify the format to skip every second line
-FILE/VAR="X1,X2"/COLUMNS=6/SKIP=1/FORMAT="(3(F14.0,F7.0)/)" EZ.DAT
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./EZ.DAT (default)
-
- name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
-
- /FORMAT = (3(F14.0,F7.0)/)
- /SKIP = 1
- /COLUMNS = 6
-LIST X1
- VARIABLE : X1
- FILENAME : EZ.DAT
- SUBSET : 6 points (X)
- 1 / 1: 0.355000
- 2 / 2: 0.379000
- 3 / 3: 0.393000
- 4 / 4: 0.435000
- 5 / 5: 0.444000
- 6 / 6: 0.470000
-SHOW DATA
- currently SET data sets:
- 1> ./EZ.DAT (default)
- name title I J K L M N
- X1 X1 1:6 ... ... ... ... ...
- X2 X2 1:6 ... ... ... ... ...
-
-
-! modify variable title
-SET VARIABLE/TITLE="first variable" X1
-SHOW DATA
- currently SET data sets:
- 1> ./EZ.DAT (default)
- name title I J K L M N
- X1 first variable 1:6 ... ... ... ... ...
- X2 X2 1:6 ... ... ... ... ...
-
-
-! read onto a 2D grid
-DEFINE AXIS/X=1:3:1 xez1
-DEFINE GRID/X=XEZ1/Y=EZ GEZ1
-FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ1 EZ.DAT
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./EZ.DAT (default)
-
- name title I J K L M N
- X1 X1 1:3 1:20480 ... ... ... ...
- on grid GEZ1 with -1.E+34 for missing data
- X=0.5:3.5 Y=0.5:20481
- X2 X2 1:3 1:20480 ... ... ... ...
- on grid GEZ1 with -1.E+34 for missing data
- X=0.5:3.5 Y=0.5:20481
-
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 6
-LIST X1
- VARIABLE : X1
- FILENAME : EZ.DAT
- SUBSET : 3 by 5 points (X-Y)
- 1 2 3
- 1 2 3
- 1 / 1: 0.006000 0.176000 0.282000
- 2 / 2: 0.355000 0.379000 0.393000
- 3 / 3: 0.410000 0.417000 0.467000
- 4 / 4: 0.435000 0.444000 0.470000
- 5 / 5: 0.478000 0.515000 0.469000
-SHOW DATA
- currently SET data sets:
- 1> ./EZ.DAT (default)
- name title I J K L M N
- X1 X1 1:3 1:5 ... ... ... ...
- X2 X2 1:3 1:5 ... ... ... ...
-
-
-! read onto a 4D grid
-DEFINE AXIS/X=1:1:1 xez2
-DEFINE AXIS/Y=1:3:1 yez
-DEFINE AXIS/Z=1:2:1 zez
-DEFINE GRID/X=XEZ2/Y=YEZ/Z=ZEZ/T=EZ GEZ2
-FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ2 EZ.DAT
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./EZ.DAT (default)
-
- name title I J K L M N
- X1 X1 1:1 1:3 1:2 1:20480 ... ...
- on grid GEZ2 with -1.E+34 for missing data
- X=0.5:1.5 Y=0.5:3.5 Z=0.5:2.5
- X2 X2 1:1 1:3 1:2 1:20480 ... ...
- on grid GEZ2 with -1.E+34 for missing data
- X=0.5:1.5 Y=0.5:3.5 Z=0.5:2.5
-
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 6
-LIST X1
- VARIABLE : X1
- FILENAME : EZ.DAT
- SUBSET : 3 by 2 by 2 points (Y-Z-T)
- X : 1
- 1 2 3
- 1 2 3
- ---- L:1 T: 1
- 1 / 1: 0.006000 0.176000 0.282000
- 2 / 2: 0.355000 0.379000 0.393000
- ---- L:2 T: 2
- 1 / 1: 0.410000 0.417000 0.467000
- 2 / 2: 0.435000 0.444000 0.470000
-SHOW DATA
- currently SET data sets:
- 1> ./EZ.DAT (default)
- name title I J K L M N
- X1 X1 1:1 1:3 1:2 1:2 ... ...
- X2 X2 1:1 1:3 1:2 1:2 ... ...
-
-
-! truncate reading by grid size limit
-DEFINE AXIS/X=1:8:1 xez3
-DEFINE GRID/X=XEZ3 GEZ3
-FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ3 EZ.DAT
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./EZ.DAT (default)
-
- name title I J K L M N
- X1 X1 1:8 ... ... ... ... ...
- on grid GEZ3 with -1.E+34 for missing data
- X=0.5:8.5
- X2 X2 1:8 ... ... ... ... ...
- on grid GEZ3 with -1.E+34 for missing data
- X=0.5:8.5
-
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 6
-LIST X1
- VARIABLE : X1
- FILENAME : EZ.DAT
- SUBSET : 8 points (X)
- 1 / 1: 0.006000
- 2 / 2: 0.176000
- 3 / 3: 0.282000
- 4 / 4: 0.355000
- 5 / 5: 0.379000
- 6 / 6: 0.393000
- 7 / 7: 0.410000
- 8 / 8: 0.417000
-SHOW DATA
- currently SET data sets:
- 1> ./EZ.DAT (default)
- name title I J K L M N
- X1 X1 1:8 ... ... ... ... ...
- X2 X2 1:8 ... ... ... ... ...
-
-
-! 8/10/95 -- added tests of unformatted writing and reading
-SP rm -f test.unf
-LIST/FILE=test.unf/format=unf/i=1:10 i
-file/form=unf/var=my_var test.unf
-list my_var
- VARIABLE : MY_VAR
- FILENAME : test.unf
- SUBSET : 10 points (X)
- 1 / 1: 1.0000
- 2 / 2: 2.0000
- 3 / 3: 3.0000
- 4 / 4: 4.0000
- 5 / 5: 5.0000
- 6 / 6: 6.0000
- 7 / 7: 7.0000
- 8 / 8: 8.0000
- 9 / 9: 9.0000
- 10 / 10: 10.0000
-
-! ****
-! remove bn200_budgets for portable benchmarks *kob* 5/99
-! ****
-
-! ppl echo on turns on fort.41 to capture ppl commands.
-PPL ECHO ON ! added 10/27/93
-
-! 10/97 *kob* now set mode metafile
-set mode metafile bnplot.plt
-GO bn_reset
-cancel mode verify
-GO bn_plot ! upgraded from bn320_plot 10/1/97 *kob*
-! bn450_plot.JNL - updated 9/97 from bn320_plot.jnl
-! upgraded from bn320 to provide method for testing batch mode. Also remove
-! all labels to create "master" gif and ps files to compare against
-! *kob*
-! V530 - added tests of PLOT/STEP[=connected] to existing plots
-! v581 - for the last set, cancel mode logo, so that .plt files are comparable.
-
-! define a 6 viewport window (modified definitions 11/92)
-def view/text=.4/xlim=0,.333/ylim=0,.5 ll6
-def view/text=.2/xlim=0,.333/ylim=.5,1 ul6
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6
-def view/text=1.5/xlim=.666,1/ylim=0,.5 lr6
-def view/xlim=.666,1/ylim=.5,1 ur6 ! auto /TEXT
-show view
-
- name text xlimits ylimits mode
-
- UPPER 1.00 0.00,1.00 0.50,1.00 edges
- LOWER 1.00 0.00,1.00 0.00,0.50 edges
- RIGHT 1.00 0.50,1.00 0.00,1.00 edges
- LEFT 1.00 0.00,0.50 0.00,1.00 edges
- LL 0.50 0.00,0.50 0.00,0.50 edges
- LR 0.50 0.50,1.00 0.00,0.50 edges
- UL 0.50 0.00,0.50 0.50,1.00 edges
- UR 0.50 0.50,1.00 0.50,1.00 edges
- FULL 1.00 0.00,1.00 0.00,1.00 edges
- LL6 0.40 0.00,0.33 0.00,0.50 edges
- UL6 0.20 0.00,0.33 0.50,1.00 edges
- LM6 0.10 0.33,0.67 0.00,0.50 edges
- UM6 0.60 0.33,0.67 0.50,1.00 edges
- LR6 1.50 0.67,1.00 0.00,0.50 edges
- UR6 0.41 0.67,1.00 0.50,1.00 edges
- current viewport is NONE
-
-! some variables for plotting
-let a = 0.8*sin(l/10)
-let b = 0.6*cos(l/10)
-let c = sin(100/(l+k))
-let d = l/50
-let e = k-(l/25)
-let f = -.5+(l/125)
-let g = (l-25)/(k*35)
-let h = 0.1
-let m = 0.2
-
-! illegal plot commands
-set mode ignore
-plot/i=1:10/j=1:20/nolabel i+j ! not a line
-plot/i=1:10/j=1:20/nolabel i,i+j ! not a line
-plot/i=1:10/j=1:20/nolabel i+j,i ! not a line
-plot/i=1:10/j=1:20/nolabel j,i ! differing axes
-plot/i=1:10/j=1:20/vs/line/nolabel j,i ! unequal lengths
-contour/i=1:10/j=1:20/nolabel i ! only 1 D
-contour/i=1:10/j=1:20/nolabel i/j,j/i ! multiple fields
-vector/i=1:10/j=1:20/nolabel i/j ! only 1 field
-vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j ! 3 fields
-set mode/last ignore
-
-! notice the default window size is 10.2,width x 8.8,height
-ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
- WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
- PLOT MODE= A
- PLOT FILE= bnplot.plt [...]
-
-! enlarge it to accomodate an additional 50% width
-ppl size 15.3,8.8
-
-! turn on metafile (enabled 10/29/91)
-! commented out 9/97 - instead set in bn450_all.jnl
-! set mode metafile
-
-! draw a plot into a viewport - to be deleted (check hard copy)
-set view ll6
-contour/i=1:50/j=1:50/nolabel i/(j+20)
-
-! 4 frames testing PLOT output
-set view ul6
-plot/l=1:50/k=1/trans/nolabel a,b,c
-plot/l=1:50/k=1/trans/over/line=6/nolabel d
-plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
-plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
-def view/text=.1/xlim=.333,1/ylim=0,.5 lm6 ! redefine longer in x (11/92)
-set view lm6
-!ppl axlen 16
-set region/k=1
-plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-def view/text=.6/xlim=.333,1/ylim=.5,1 um6 ! redefine it longer in x (11/92)
-set view um6
-!ppl axlen 17,5
-plot/l=1:50/nolabel sin(100/(l+5))
-plot/l=1:50/over/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-set view ll6
-!ppl axlen 8,6
-plot/l=1:99000/nolabel sin(200000/(l+10000))
-
-! reset to normal axis lengths and prepare for a new piccie
-!ppl axlen 8
-set wind/clear
-
-! draw six frames
-set view ll6
-contour/i=1:50/j=1:50/levels=(0,2.5,.25)/nolabel i/(j+20)
-plot/over/nolab/vs/line/i=1:50/j=1:50/nolabel 6*i/j,5*j/i
-set view ul6
-vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6 ! redefine it (11/92)
-set view lm6
-shade/i=1:50/j=1:50/nolabel i/(j+20)
-set view lr6
-ppl lev () (0,2.5,.1)
-shade/i=1:50/j=1:50/line/level/nolabel i/(j+20)
-set view ur6
-let icomp = (sin(i/20)*10+j-20)
-let jcomp = (-1*cos(j/10)*10+i-20)
-contour/i=1:50/j=1:50/nolabel icomp^2+jcomp^2
-contour/i=1:50/j=1:50/over/level/nolabel icomp^2+(-1*cos(i/10)*80)^2
-! note: "i-i" and "j-j" are needed to create 2D structures
-vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
-vector/i=1:50/j=1:50/overlay/length/nolabel i-20+(j-j),40-j+(i-i)
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6 ! redefine it (11/92)
-set view um6
-shade/i=1:50/j=1:50/nolabel i/(j+20)
-contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
-vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
-
-! additions for version 3.01 "/TITLE=" controls
-cancel viewports
-set view ul6
-plot/title="My Custom Title"/i=1:100/nolabel sin(i/6)
-plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/5)
-set view um6
-plot/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
-plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view ur6
-plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
-plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view ll6
-plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
-plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view lm6
-contour/i=1:20/j=1:20/title="My Contour Title"/nolabel sin(i/3)*cos(j/4)
-contour/over/i=5:30/j=5:30/title="My Contour Overlay"/nolabel sin(i/2)*cos(j/3)
-set view lr6
-wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
-
-! addition for 3.20 showing changed default behavior of plot/vs
-! return to window and redraw with symbols
-set view ll6
-plot/vs/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
-plot/vs/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-
-! test of qualifiers added for V510
-cancel viewport
-set wind/asp=.75/clear
-set view ul
-plot/i=1:10/ylimits=1:40/nolabel i ! note that /nolabel supresses XLAB
-plot/i=1:10/over/sym=2 i^1.1
-plot/i=1:10/over/sym=2/size=.12 i^1.2
-plot/i=1:10/over/sym=2/color=red i^1.3
-plot/i=1:10/over/thick/step i^1.4
-plot/i=1:10/over/thick/color=blue/step=connected i^1.5
-plot/i=1:10/over/thick=3/color=purple/size=.14 i^1.6
-
-! deliberate error
-set mode ignore
-plot/over/i=1:10/color=noexist i
-plot/over/i=1:10/thick=4 i
-plot/over/i=1:10/size=-1 i
-set mode/last ignore
-
-can mode logo
-set view ur
-let eps = .1; plot/vs RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
-let eps = .2; plot/vs/over/sym=2 RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
-let eps = .3; plot/vs/over/line/size=.12 RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
-let eps = .4; plot/vs/over/line/sym=2/color=red RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
-let eps = .5; plot/vs/over/thick RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
-let eps = .6; plot/vs/over/thick/color=blue RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
-let eps = .7; plot/vs/over/thick=3/color=purple/size=.14 RANDU(I[i=1:10]+eps), RANDU(I[i=1:10]+10+eps)
-
-set view ll
-contour/color=lightBlue/sig=1/size=.12 x[x=0:1:.1]*SIN(Y[y=0:6.3:.2])
-vector/over/thick=3/color=green x[x=0:1:.1]*SIN(Y[y=0:6.3:.2]),x[x=0:1:.1]*COS(Y[y=0:6.3:.2])
-
-! deliberate error
-set mode ignore
-cont/over/i=1:10/color=noexist i
-cont/over/i=1:10/thick=4 i
-cont/over/i=1:10/sigdig=-1 i
-set mode/last ignore
-
-set view lr
-polygon/thick/color=red/palette=blue {1,2,1}, {2,1,0.5}
-
-set mode/last logo
-
-
-!added in bn450 10/97 *kob*
-! moved to right after bn450_plot to capture metafiles *kob* 2/98
-GO bn_reset
-cancel mode verify
-! 2/98 changed bn450_curv to bn491_curv - just some cosmetic changes *kob*
-GO bn_curv
-cancel mode ignore
-!
-! Your basic map projection
-!
-! v 4.91 - *kob* 2/98 - just clean up window a bit before plotting and remove
-! all the ferret labels in order to be able to automate
-! metafile checking.
-can view all
-! 2/98 *kob* just clean up the window a bit
-! 4/05 *acm* save only one of the plots as a metafile for checking; had four of them.
-
-can mode meta
-set view full
-set wind/clear/asp=1
-
-use coads_climatology
-set region/l=3
-go mp_sinusoidal
-set grid sst
-shade/nolabel sst, x_page, y_page
-
-!
-! A more complex projection
-!
-set mode meta bnplot.plt
-go mp_orthographic 210 45
-set grid sst
-let masked_sst = sst * mp_mask
-fill/nolabel/title="Orthographic View" masked_sst, x_page, y_page
-
-!
-! Some of the utility functions
-!
-!go mp_fland
-go mp_land
-go mp_label 237.7 47.6 -1 0 .1 @IISeattle
-go mp_label 204.4 19.5 -1 0 .1 @IIHawaii
-go mp_graticule
-go mp_graticule 160 200 40 50 65 15 11
-go mp_label 180 45 0 -22 .15 "@p5 at DRThe Bering Sea"
-
-! move the cancel mode meta to avoid changes in the plot output
-can mode meta
-
-! Some map projections use 1-D x_page and y_page
-! (mp_mercator, mp_plate_caree, mp_lambert_cyl). Test the
-! whole zoo of map projection scripts.
-
-go bn_mp_zoo.jnl
-! bn_mp_zoo.jnl
-! taken from mp_demo.jnl
-! acm 9/2005
-!
-
-define viewport/xlimits=0.000,0.333/ylim=0.666,0.999 tl
-define viewport/xlimits=0.000,0.333/ylim=0.333,0.666 ml
-define viewport/xlimits=0.000,0.333/ylim=0.000,0.333 bl
-define viewport/xlimits=0.333,0.666/ylim=0.666,0.999 tm
-define viewport/xlimits=0.333,0.666/ylim=0.333,0.666 mm
-define viewport/xlimits=0.333,0.666/ylim=0.000,0.333 bm
-define viewport/xlimits=0.666,0.999/ylim=0.666,0.999 tr
-define viewport/xlimits=0.666,0.999/ylim=0.333,0.666 mr
-define viewport/xlimits=0.666,0.999/ylim=0.000,0.333 br
-
-use coads_climatology
-set region/l=1/y=0:90
-
-set view tl
-go margins .2, .6, .2, .2
-go mp_hammer
-set grid sst
-shade/nolab/nokey/noaxes sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Hammer
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Hammer
-
-set view tm
-go mp_sinusoidal
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Sinusoidal
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Sinusoidal
-
-set view tr
-go mp_lambert_cyl
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Lambert Equal Area
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Lambert Equal Area
-
-set view ml
-go mp_bonne
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Bonne
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Bonne
-
-set view mm
-go mp_mcbryde_fpp
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 McBryde Flat Polar
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 McBryde Flat Polar
-
-set view mr
-go mp_polyconic
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Polyconic
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Polyconic
-
-set view bl
-go mp_orthographic 300 45
-go margins .2, .6, .2, .2
-let masked_sst = sst * mp_mask
-shade/nolab/nokey/noaxes masked_sst, x_page, y_page
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 OrthoGraphic
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 OrthoGraphic
-
-set view bm
-set region/x=240:420
-go mp_stereographic_eq
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-
- PPL warning: You're attempting to use more colors than are available.
- Using PPL SHASET RESET to re-use protected colors may help.
-
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Stereographic Equatorial
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Stereographic Equatorial
-
-set view br
-set region/x=0:360/y=00:90
-go mp_stereographic_north
-go margins .2, .6, .2, .2
-shade/nolab/nokey/noaxes sst, x_page, y_page
-
- PPL warning: You're attempting to use more colors than are available.
- Using PPL SHASET RESET to re-use protected colors may help.
-
-label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Stereographic North
- !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Stereographic North
-
-can region
-cancel viewport
-exit
-
-!
-! What can go wrong
-!
-
-! Do we catch incorrect region specifications?
-can region
-go mp_sinusoidal
-set grid sst
-set region/x=145
-set mode ignore
-shade/nolabel sst, x_page, y_page ! DELIBERATE ERROR
-can region
-
-! Crazy stuff with the transformation fields:
-set region/l=1
-let phi = y * deg2rad
-shade/nolabel sst, 0*x_page, y_page ! DELIBERATE ERROR
-shade/nolabel sst, x_page, 0*y_page ! DELIBERATE ERROR
-shade/nolabel sst, x_page, sin(y_page)
-shade/nolabel sst, randn(x_page), randn(y_page)
-!2/98 *kob* - can mode meta before this plot
-can mode meta
-shade/nolabel sst, x_page[j=1:12], y_page ! DELIBERATE ERROR
-shade/nolabel sst, x_page, asin(y_page) ! DELIBERATE ERROR
-
-shade/nolabel sst, x_page, y_page ! DELIBERATE gsetviewport() ERROR
-
-
-can win 1
-set win 1
-
-!2/98 *kob* - set mode meta again
-!sset mode meta bnplot.plt
-let phi = l * deg2rad
-shade/nolabel sst, x_page, y_page
-shade/nolabel sst, x_page[j=1:12], y_page ! DELIBERATE ERROR
-can mode ignore
-
-set mode meta bnplot.plt
-
-SET WINDOW/CLEAR/SIZE=0.2 ! 8/25/92
-!CANCEL WINDOW/ALL ! added 7/27/92
-! 10/97 *kob* now cancel mode metafile
-cancel mode metafile
-
-GO bn_reset
-cancel mode verify
-GO bn_symbols ! added 6/22/95
-! bn420_symbols
-! benchmark to test machinery of symbol definition and use
-! requires FERRET version 4.00 or later
-
-! note on max number of symbols:
-! As of 6/95 (version 4.01) an attempt to define more that 1000 symbols
-! will encounter a PLOT+ "STOP 'exceeded symbol storage'"
-
-! bn420 - 10/95 -- make sure that symbols at start and end aren't
-! confused with enclosing parens
-! 4/96 -- test symbol editing in the style of dollar args
-! -- use template notation for SHOW SYMBOL and CANCEL SYMBOL
-
-! V510: added tests of backslash escaping
-! V533: *sh* 7/01 - Ferret allows single quoted strings -- syntax change
-
-cancel symbols/all
-show symbols/all
-PPL$XPIXEL = "406"
-PPL$YPIXEL = "406"
-BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.85"
-FERRET_PLATFORM = "Linux 2.6.32-358.23.2.el6.x86_64 32-bit"
-FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.0 of May 13 2013 13:48:05 $"
-FERRET_MEMORY = "25.6"
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-SESSION_PID = "27740"
-DELTA_CPU = "4.84326"
-CLOCK_SECS = "9.779"
-CURRENT_DATE = "12-Nov-13"
-CURRENT_TIME = "15:12:19"
-N_OPEN_DSETS = "0"
-PROGRAM_NAME = "Ferret"
-
-! define some symbols ... syntax variations
-define symbol s1 = hello
-define symbol s2 = "hello"
-define symbol s3 "hello and goodbye"
-define symbol num = 3
-define symbol t$dollar = hi
-define symbol t_($s1) = hi ! define "t_hello" as a symbol
- !-> define symbol t_hello = hi
-
-! exercise SHOW SYMBOL
-show symbol/all
-PPL$XPIXEL = "406"
-PPL$YPIXEL = "406"
-BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.85"
-FERRET_PLATFORM = "Linux 2.6.32-358.23.2.el6.x86_64 32-bit"
-FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.0 of May 13 2013 13:48:05 $"
-FERRET_MEMORY = "25.6"
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-SESSION_PID = "27740"
-DELTA_CPU = "0.001"
-CLOCK_SECS = "9.78"
-CURRENT_DATE = "12-Nov-13"
-CURRENT_TIME = "15:12:19"
-N_OPEN_DSETS = "0"
-PROGRAM_NAME = "Ferret"
-S1 = "hello"
-S2 = ""hello""
-S3 = "hello and goodbye"
-NUM = "3"
-T$DOLLAR = "hi"
-T_HELLO = "hi"
-show symbol s*
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-SESSION_PID = "27740"
-S1 = "hello"
-S2 = ""hello""
-S3 = "hello and goodbye"
-show symbol s2
-S2 = ""hello""
-
-! exercise CANCEL SYMBOL
-cancel symbol s2
-show symbol s*
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-SESSION_PID = "27740"
-S1 = "hello"
-S3 = "hello and goodbye"
-show symbol S*
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-SESSION_PID = "27740"
-S1 = "hello"
-S3 = "hello and goodbye"
-cancel symbol s2 ! already deleted
-
-! exercise symbol translation
-message/continue ($s1)
- !-> message/continue hello
-hello
-message/continue ($s1) and ($S3)
- !-> message/continue hello and hello and goodbye
-hello and hello and goodbye
-message/continue ($s1) and ($s`3`) ! no good - grave accent evaluated AFTER
- !-> message/continue hello and
-hello and
-message/continue ($s1) and ($s($num)) ! nested symbol translation gets ($S3)
- !-> message/continue hello and hello and goodbye
-hello and hello and goodbye
-
-! demonstrate the 30 character cap on symbol length
-define symbol q23456789012345678901234567890 = 4
-show symbol q*
-Q23456789012345678901234567890 = "4"
-define symbol q23456789012345678901234567890aaaaa = 5
-define symbol q23456789012345678901234567xxxaaaaa = 6
-show symbol q*
-Q23456789012345678901234567890 = "5"
-Q23456789012345678901234567XXX = "6"
-
-! show the upper left coordinate limits labels as symbols
-plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
-show symbol lab*
-LAB1 = "FERRET Ver. 6.85"
-LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "12-NOV-2013 15:12:19"
-LABX = "X"
-LAB4 = "Y : 10"
-LABNUM_Y = "4"
-LAB5 = "Z : 5"
-LABNUM_Z = "5"
-LABY = ""
-LABTIT = "SIN(I/6)+Y+Z"
-message/continue Z value saved as ($LAB($LABNUM_Z))
- !-> message/continue Z value saved as Z : 5
-Z value saved as Z : 5
-message/continue Y value saved as "($LAB($LABNUM_Y))"
- !-> message/continue Y value saved as "Y : 10"
-Y value saved as "Y : 10"
-message/continue No T value saved: "($LAB($LABNUM_T))"
- !-> message/continue No T value saved: " "
-No T value saved: " "
-
-! template tests (4/23/96)
-cancel symbol lab?
-show symbol lab*
-LABNUM_Y = "4"
-LABNUM_Z = "5"
-LABTIT = "SIN(I/6)+Y+Z"
-show symbol lab*y
-LABNUM_Y = "4"
-
-! deliberate errors
-set mode ignore_errors
-define symbol test* = hello
-define symbol t$5 = hi
-set mode/last ignore_errors
-
-! bn420 - check enclosing parens
-define symbol cmnd "show symbol"; define symbol arg "cmnd"
-($cmnd) ($arg)
- !-> show symbol cmnd
-CMND = "show symbol"
-
-! bn420 - check symbol editing
-define symbol test "\"I'm here\"" ! added surrounding quotes V533
-define symbol t2 hello
-cancel symbol test2
-message/continue ($test)
- !-> message/continue "I'm here"
-I'm here
-message/continue ($test"default")
- !-> message/continue "I'm here"
-I'm here
-message/continue ($test2"default")
- !-> message/continue default
-default
-
-message/continue ($t2"|hello|bye|")
- !-> message/continue hello
-hello
-message/continue ($t2"|hello>really hello|bye|")
- !-> message/continue really hello
-really hello
-message/continue ($t2"|hello>you said: *|bye|")
- !-> message/continue you said: hello
-you said: hello
-message/continue ($test"|*>you said: *|bye|")
- !-> message/continue you said: "I'm here"
-you said: "I'm here"
-
-! deliberate errors
-set mode ignore_errors
-message/continue ($test2"<error message")
-message/continue ($test2"|hello|bye|")
-message/continue ($test2"|hello|bye|<error message") ! silent error
-message/continue ($t2"|solong>really hello|bye|")
-set mode/last ignore_errors
-
-! V510 - added processing of backslash escapes
-define symbol ss \"hello\"
-show symbol ss
-SS = ""hello""
-define symbol ss "\"hello\""
-show symbol ss
-SS = ""hello""
-define symbol delayed_eval \`1+1\`
-show symbol delayed_eval
-DELAYED_EVAL = "`1+1`"
-say ($delayed_eval) ! translate symbol and then evaluate
- !-> MESSAGE/CONTINUE 2
-2
-
-
-! cleanup
-cancel symbols/all
-show symbols/all
-PPL$XPIXEL = "406"
-PPL$YPIXEL = "406"
-BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.85"
-FERRET_PLATFORM = "Linux 2.6.32-358.23.2.el6.x86_64 32-bit"
-FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.0 of May 13 2013 13:48:05 $"
-FERRET_MEMORY = "25.6"
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-SESSION_PID = "27740"
-DELTA_CPU = "0.008998"
-CLOCK_SECS = "9.788"
-CURRENT_DATE = "12-Nov-13"
-CURRENT_TIME = "15:12:19"
-N_OPEN_DSETS = "0"
-PROGRAM_NAME = "Ferret"
-
-
-GO bn_reset
-cancel mode verify
-GO bn_comma_delimited ! added 10/2/95
-! bn420_comma_delimited
-
-! 10/2/95 - test comma and tab-delimited outputs
-
-use gt4d011
-
-! all possible 1, 2, and 3 dimensional lists
-!XYZT
-set region/i=95:96/j=41:42/k=2:3/l=5:6
-go bn_comma_delimited.sub comma temp
-! bn420_comma_delimited.sub
-! 10/95 benchmark various permutations for FERRET listed output
-
-! similar to bn200_permute except that a "format" argument can be passed
-! and the region and expression information are external
-
-! usage:
-! SET REGION/xxxx
-! GO bn420_permute tab_delimited TEMP
-
-LOAD $2
- !-> LOAD temp
-
-LIST/ORDER=XYZT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XYZT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 135.5W ,134.5W
- ---- L:5 T: 10-SEP-1982 20:00
- ---- K:2 Z: 15
-1.5S,27.3346,27.2218
-1.167S,27.2382,27.1246
- ---- K:3 Z: 25
-1.5S,27.2481,27.1248
-1.167S,27.1293,27.011
- ---- L:6 T: 16-SEP-1982 22:00
- ---- K:2 Z: 15
-1.5S,27.7751,27.6218
-1.167S,27.678,27.5239
- ---- K:3 Z: 25
-1.5S,27.6518,27.4892
-1.167S,27.51,27.3501
-LIST/ORDER=XYTZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XYTZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-TIME-DEPTH (m))
- 135.5W ,134.5W
- ---- K:2 Z: 15
- ---- L:5 T: 10-SEP-1982 20:00
-1.5S,27.3346,27.2218
-1.167S,27.2382,27.1246
- ---- L:6 T: 16-SEP-1982 22:00
-1.5S,27.7751,27.6218
-1.167S,27.678,27.5239
- ---- K:3 Z: 25
- ---- L:5 T: 10-SEP-1982 20:00
-1.5S,27.2481,27.1248
-1.167S,27.1293,27.011
- ---- L:6 T: 16-SEP-1982 22:00
-1.5S,27.6518,27.4892
-1.167S,27.51,27.3501
-LIST/ORDER=XZYT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XZYT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (LONGITUDE-DEPTH (m)-LATITUDE-TIME)
- 135.5W ,134.5W
- ---- L:5 T: 10-SEP-1982 20:00
- ---- J:41 Y: 1.5S
-15,27.3346,27.2218
-25,27.2481,27.1248
- ---- J:42 Y: 1.167S
-15,27.2382,27.1246
-25,27.1293,27.011
- ---- L:6 T: 16-SEP-1982 22:00
- ---- J:41 Y: 1.5S
-15,27.7751,27.6218
-25,27.6518,27.4892
- ---- J:42 Y: 1.167S
-15,27.678,27.5239
-25,27.51,27.3501
-LIST/ORDER=XZTY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XZTY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (LONGITUDE-DEPTH (m)-TIME-LATITUDE)
- 135.5W ,134.5W
- ---- J:41 Y: 1.5S
- ---- L:5 T: 10-SEP-1982 20:00
-15,27.3346,27.2218
-25,27.2481,27.1248
- ---- L:6 T: 16-SEP-1982 22:00
-15,27.7751,27.6218
-25,27.6518,27.4892
- ---- J:42 Y: 1.167S
- ---- L:5 T: 10-SEP-1982 20:00
-15,27.2382,27.1246
-25,27.1293,27.011
- ---- L:6 T: 16-SEP-1982 22:00
-15,27.678,27.5239
-25,27.51,27.3501
-LIST/ORDER=XTYZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XTYZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (LONGITUDE-TIME-LATITUDE-DEPTH (m))
- 135.5W ,134.5W
- ---- K:2 Z: 15
- ---- J:41 Y: 1.5S
-10-SEP-1982 20,27.3346,27.2218
-16-SEP-1982 22,27.7751,27.6218
- ---- J:42 Y: 1.167S
-10-SEP-1982 20,27.2382,27.1246
-16-SEP-1982 22,27.678,27.5239
- ---- K:3 Z: 25
- ---- J:41 Y: 1.5S
-10-SEP-1982 20,27.2481,27.1248
-16-SEP-1982 22,27.6518,27.4892
- ---- J:42 Y: 1.167S
-10-SEP-1982 20,27.1293,27.011
-16-SEP-1982 22,27.51,27.3501
-LIST/ORDER=XTZY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XTZY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (LONGITUDE-TIME-DEPTH (m)-LATITUDE)
- 135.5W ,134.5W
- ---- J:41 Y: 1.5S
- ---- K:2 Z: 15
-10-SEP-1982 20,27.3346,27.2218
-16-SEP-1982 22,27.7751,27.6218
- ---- K:3 Z: 25
-10-SEP-1982 20,27.2481,27.1248
-16-SEP-1982 22,27.6518,27.4892
- ---- J:42 Y: 1.167S
- ---- K:2 Z: 15
-10-SEP-1982 20,27.2382,27.1246
-16-SEP-1982 22,27.678,27.5239
- ---- K:3 Z: 25
-10-SEP-1982 20,27.1293,27.011
-16-SEP-1982 22,27.51,27.3501
-LIST/ORDER=YXZT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YXZT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (LATITUDE-LONGITUDE-DEPTH (m)-TIME)
- 1.5S ,1.167S
- ---- L:5 T: 10-SEP-1982 20:00
- ---- K:2 Z: 15
-135.5W,27.3346,27.2382
-134.5W,27.2218,27.1246
- ---- K:3 Z: 25
-135.5W,27.2481,27.1293
-134.5W,27.1248,27.011
- ---- L:6 T: 16-SEP-1982 22:00
- ---- K:2 Z: 15
-135.5W,27.7751,27.678
-134.5W,27.6218,27.5239
- ---- K:3 Z: 25
-135.5W,27.6518,27.51
-134.5W,27.4892,27.3501
-LIST/ORDER=YXTZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YXTZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (LATITUDE-LONGITUDE-TIME-DEPTH (m))
- 1.5S ,1.167S
- ---- K:2 Z: 15
- ---- L:5 T: 10-SEP-1982 20:00
-135.5W,27.3346,27.2382
-134.5W,27.2218,27.1246
- ---- L:6 T: 16-SEP-1982 22:00
-135.5W,27.7751,27.678
-134.5W,27.6218,27.5239
- ---- K:3 Z: 25
- ---- L:5 T: 10-SEP-1982 20:00
-135.5W,27.2481,27.1293
-134.5W,27.1248,27.011
- ---- L:6 T: 16-SEP-1982 22:00
-135.5W,27.6518,27.51
-134.5W,27.4892,27.3501
-LIST/ORDER=YZXT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YZXT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (LATITUDE-DEPTH (m)-LONGITUDE-TIME)
- 1.5S ,1.167S
- ---- L:5 T: 10-SEP-1982 20:00
- ---- I:95 X: 135.5W
-15,27.3346,27.2382
-25,27.2481,27.1293
- ---- I:96 X: 134.5W
-15,27.2218,27.1246
-25,27.1248,27.011
- ---- L:6 T: 16-SEP-1982 22:00
- ---- I:95 X: 135.5W
-15,27.7751,27.678
-25,27.6518,27.51
- ---- I:96 X: 134.5W
-15,27.6218,27.5239
-25,27.4892,27.3501
-LIST/ORDER=YZTX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YZTX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (LATITUDE-DEPTH (m)-TIME-LONGITUDE)
- 1.5S ,1.167S
- ---- I:95 X: 135.5W
- ---- L:5 T: 10-SEP-1982 20:00
-15,27.3346,27.2382
-25,27.2481,27.1293
- ---- L:6 T: 16-SEP-1982 22:00
-15,27.7751,27.678
-25,27.6518,27.51
- ---- I:96 X: 134.5W
- ---- L:5 T: 10-SEP-1982 20:00
-15,27.2218,27.1246
-25,27.1248,27.011
- ---- L:6 T: 16-SEP-1982 22:00
-15,27.6218,27.5239
-25,27.4892,27.3501
-LIST/ORDER=YTXZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YTXZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (LATITUDE-TIME-LONGITUDE-DEPTH (m))
- 1.5S ,1.167S
- ---- K:2 Z: 15
- ---- I:95 X: 135.5W
-10-SEP-1982 20,27.3346,27.2382
-16-SEP-1982 22,27.7751,27.678
- ---- I:96 X: 134.5W
-10-SEP-1982 20,27.2218,27.1246
-16-SEP-1982 22,27.6218,27.5239
- ---- K:3 Z: 25
- ---- I:95 X: 135.5W
-10-SEP-1982 20,27.2481,27.1293
-16-SEP-1982 22,27.6518,27.51
- ---- I:96 X: 134.5W
-10-SEP-1982 20,27.1248,27.011
-16-SEP-1982 22,27.4892,27.3501
-LIST/ORDER=YTZX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YTZX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (LATITUDE-TIME-DEPTH (m)-LONGITUDE)
- 1.5S ,1.167S
- ---- I:95 X: 135.5W
- ---- K:2 Z: 15
-10-SEP-1982 20,27.3346,27.2382
-16-SEP-1982 22,27.7751,27.678
- ---- K:3 Z: 25
-10-SEP-1982 20,27.2481,27.1293
-16-SEP-1982 22,27.6518,27.51
- ---- I:96 X: 134.5W
- ---- K:2 Z: 15
-10-SEP-1982 20,27.2218,27.1246
-16-SEP-1982 22,27.6218,27.5239
- ---- K:3 Z: 25
-10-SEP-1982 20,27.1248,27.011
-16-SEP-1982 22,27.4892,27.3501
-LIST/ORDER=ZXYT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZXYT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (DEPTH (m)-LONGITUDE-LATITUDE-TIME)
- 15 ,25
- ---- L:5 T: 10-SEP-1982 20:00
- ---- J:41 Y: 1.5S
-135.5W,27.3346,27.2481
-134.5W,27.2218,27.1248
- ---- J:42 Y: 1.167S
-135.5W,27.2382,27.1293
-134.5W,27.1246,27.011
- ---- L:6 T: 16-SEP-1982 22:00
- ---- J:41 Y: 1.5S
-135.5W,27.7751,27.6518
-134.5W,27.6218,27.4892
- ---- J:42 Y: 1.167S
-135.5W,27.678,27.51
-134.5W,27.5239,27.3501
-LIST/ORDER=ZXTY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZXTY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (DEPTH (m)-LONGITUDE-TIME-LATITUDE)
- 15 ,25
- ---- J:41 Y: 1.5S
- ---- L:5 T: 10-SEP-1982 20:00
-135.5W,27.3346,27.2481
-134.5W,27.2218,27.1248
- ---- L:6 T: 16-SEP-1982 22:00
-135.5W,27.7751,27.6518
-134.5W,27.6218,27.4892
- ---- J:42 Y: 1.167S
- ---- L:5 T: 10-SEP-1982 20:00
-135.5W,27.2382,27.1293
-134.5W,27.1246,27.011
- ---- L:6 T: 16-SEP-1982 22:00
-135.5W,27.678,27.51
-134.5W,27.5239,27.3501
-LIST/ORDER=ZYXT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZYXT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (DEPTH (m)-LATITUDE-LONGITUDE-TIME)
- 15 ,25
- ---- L:5 T: 10-SEP-1982 20:00
- ---- I:95 X: 135.5W
-1.5S,27.3346,27.2481
-1.167S,27.2382,27.1293
- ---- I:96 X: 134.5W
-1.5S,27.2218,27.1248
-1.167S,27.1246,27.011
- ---- L:6 T: 16-SEP-1982 22:00
- ---- I:95 X: 135.5W
-1.5S,27.7751,27.6518
-1.167S,27.678,27.51
- ---- I:96 X: 134.5W
-1.5S,27.6218,27.4892
-1.167S,27.5239,27.3501
-LIST/ORDER=ZYTX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZYTX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (DEPTH (m)-LATITUDE-TIME-LONGITUDE)
- 15 ,25
- ---- I:95 X: 135.5W
- ---- L:5 T: 10-SEP-1982 20:00
-1.5S,27.3346,27.2481
-1.167S,27.2382,27.1293
- ---- L:6 T: 16-SEP-1982 22:00
-1.5S,27.7751,27.6518
-1.167S,27.678,27.51
- ---- I:96 X: 134.5W
- ---- L:5 T: 10-SEP-1982 20:00
-1.5S,27.2218,27.1248
-1.167S,27.1246,27.011
- ---- L:6 T: 16-SEP-1982 22:00
-1.5S,27.6218,27.4892
-1.167S,27.5239,27.3501
-LIST/ORDER=ZTXY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZTXY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (DEPTH (m)-TIME-LONGITUDE-LATITUDE)
- 15 ,25
- ---- J:41 Y: 1.5S
- ---- I:95 X: 135.5W
-10-SEP-1982 20,27.3346,27.2481
-16-SEP-1982 22,27.7751,27.6518
- ---- I:96 X: 134.5W
-10-SEP-1982 20,27.2218,27.1248
-16-SEP-1982 22,27.6218,27.4892
- ---- J:42 Y: 1.167S
- ---- I:95 X: 135.5W
-10-SEP-1982 20,27.2382,27.1293
-16-SEP-1982 22,27.678,27.51
- ---- I:96 X: 134.5W
-10-SEP-1982 20,27.1246,27.011
-16-SEP-1982 22,27.5239,27.3501
-LIST/ORDER=ZTYX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZTYX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (DEPTH (m)-TIME-LATITUDE-LONGITUDE)
- 15 ,25
- ---- I:95 X: 135.5W
- ---- J:41 Y: 1.5S
-10-SEP-1982 20,27.3346,27.2481
-16-SEP-1982 22,27.7751,27.6518
- ---- J:42 Y: 1.167S
-10-SEP-1982 20,27.2382,27.1293
-16-SEP-1982 22,27.678,27.51
- ---- I:96 X: 134.5W
- ---- J:41 Y: 1.5S
-10-SEP-1982 20,27.2218,27.1248
-16-SEP-1982 22,27.6218,27.4892
- ---- J:42 Y: 1.167S
-10-SEP-1982 20,27.1246,27.011
-16-SEP-1982 22,27.5239,27.3501
-LIST/ORDER=TXYZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TXYZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (TIME-LONGITUDE-LATITUDE-DEPTH (m))
- 10-SEP-1982 20:00,16-SEP-1982 22:00
- ---- K:2 Z: 15
- ---- J:41 Y: 1.5S
-135.5W,27.3346,27.7751
-134.5W,27.2218,27.6218
- ---- J:42 Y: 1.167S
-135.5W,27.2382,27.678
-134.5W,27.1246,27.5239
- ---- K:3 Z: 25
- ---- J:41 Y: 1.5S
-135.5W,27.2481,27.6518
-134.5W,27.1248,27.4892
- ---- J:42 Y: 1.167S
-135.5W,27.1293,27.51
-134.5W,27.011,27.3501
-LIST/ORDER=TXZY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TXZY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (TIME-LONGITUDE-DEPTH (m)-LATITUDE)
- 10-SEP-1982 20:00,16-SEP-1982 22:00
- ---- J:41 Y: 1.5S
- ---- K:2 Z: 15
-135.5W,27.3346,27.7751
-134.5W,27.2218,27.6218
- ---- K:3 Z: 25
-135.5W,27.2481,27.6518
-134.5W,27.1248,27.4892
- ---- J:42 Y: 1.167S
- ---- K:2 Z: 15
-135.5W,27.2382,27.678
-134.5W,27.1246,27.5239
- ---- K:3 Z: 25
-135.5W,27.1293,27.51
-134.5W,27.011,27.3501
-LIST/ORDER=TYXZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TYXZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (TIME-LATITUDE-LONGITUDE-DEPTH (m))
- 10-SEP-1982 20:00,16-SEP-1982 22:00
- ---- K:2 Z: 15
- ---- I:95 X: 135.5W
-1.5S,27.3346,27.7751
-1.167S,27.2382,27.678
- ---- I:96 X: 134.5W
-1.5S,27.2218,27.6218
-1.167S,27.1246,27.5239
- ---- K:3 Z: 25
- ---- I:95 X: 135.5W
-1.5S,27.2481,27.6518
-1.167S,27.1293,27.51
- ---- I:96 X: 134.5W
-1.5S,27.1248,27.4892
-1.167S,27.011,27.3501
-LIST/ORDER=TYZX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TYZX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (TIME-LATITUDE-DEPTH (m)-LONGITUDE)
- 10-SEP-1982 20:00,16-SEP-1982 22:00
- ---- I:95 X: 135.5W
- ---- K:2 Z: 15
-1.5S,27.3346,27.7751
-1.167S,27.2382,27.678
- ---- K:3 Z: 25
-1.5S,27.2481,27.6518
-1.167S,27.1293,27.51
- ---- I:96 X: 134.5W
- ---- K:2 Z: 15
-1.5S,27.2218,27.6218
-1.167S,27.1246,27.5239
- ---- K:3 Z: 25
-1.5S,27.1248,27.4892
-1.167S,27.011,27.3501
-LIST/ORDER=TZXY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TZXY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (TIME-DEPTH (m)-LONGITUDE-LATITUDE)
- 10-SEP-1982 20:00,16-SEP-1982 22:00
- ---- J:41 Y: 1.5S
- ---- I:95 X: 135.5W
-15,27.3346,27.7751
-25,27.2481,27.6518
- ---- I:96 X: 134.5W
-15,27.2218,27.6218
-25,27.1248,27.4892
- ---- J:42 Y: 1.167S
- ---- I:95 X: 135.5W
-15,27.2382,27.678
-25,27.1293,27.51
- ---- I:96 X: 134.5W
-15,27.1246,27.5239
-25,27.011,27.3501
-LIST/ORDER=TZYX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TZYX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (TIME-DEPTH (m)-LATITUDE-LONGITUDE)
- 10-SEP-1982 20:00,16-SEP-1982 22:00
- ---- I:95 X: 135.5W
- ---- J:41 Y: 1.5S
-15,27.3346,27.7751
-25,27.2481,27.6518
- ---- J:42 Y: 1.167S
-15,27.2382,27.678
-25,27.1293,27.51
- ---- I:96 X: 134.5W
- ---- J:41 Y: 1.5S
-15,27.2218,27.6218
-25,27.1248,27.4892
- ---- J:42 Y: 1.167S
-15,27.1246,27.5239
-25,27.011,27.3501
-
-!XYZ
-set region/i=95:96/j=41:42/k=2:3/l=5
-go bn_comma_delimited.sub comma temp
-! bn420_comma_delimited.sub
-! 10/95 benchmark various permutations for FERRET listed output
-
-! similar to bn200_permute except that a "format" argument can be passed
-! and the region and expression information are external
-
-! usage:
-! SET REGION/xxxx
-! GO bn420_permute tab_delimited TEMP
-
-LOAD $2
- !-> LOAD temp
-
-LIST/ORDER=XYZT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XYZT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m))
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
- ---- K:2 Z: 15
-1.5S,27.3346,27.2218
-1.167S,27.2382,27.1246
- ---- K:3 Z: 25
-1.5S,27.2481,27.1248
-1.167S,27.1293,27.011
-LIST/ORDER=XYTZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XYTZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m))
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
- ---- K:2 Z: 15
- ---- L:5 T: 10-SEP-1982 20:00
-1.5S,27.3346,27.2218
-1.167S,27.2382,27.1246
- ---- K:3 Z: 25
- ---- L:5 T: 10-SEP-1982 20:00
-1.5S,27.2481,27.1248
-1.167S,27.1293,27.011
-LIST/ORDER=XZYT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XZYT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LONGITUDE-DEPTH (m)-LATITUDE)
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
- ---- J:41 Y: 1.5S
-15,27.3346,27.2218
-25,27.2481,27.1248
- ---- J:42 Y: 1.167S
-15,27.2382,27.1246
-25,27.1293,27.011
-LIST/ORDER=XZTY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XZTY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LONGITUDE-DEPTH (m)-LATITUDE)
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
- ---- J:41 Y: 1.5S
- ---- L:5 T: 10-SEP-1982 20:00
-15,27.3346,27.2218
-25,27.2481,27.1248
- ---- J:42 Y: 1.167S
- ---- L:5 T: 10-SEP-1982 20:00
-15,27.2382,27.1246
-25,27.1293,27.011
-LIST/ORDER=XTYZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XTYZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m))
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
- ---- K:2 Z: 15
- ---- J:41 Y: 1.5S
-10-SEP-1982 20,27.3346,27.2218
- ---- J:42 Y: 1.167S
-10-SEP-1982 20,27.2382,27.1246
- ---- K:3 Z: 25
- ---- J:41 Y: 1.5S
-10-SEP-1982 20,27.2481,27.1248
- ---- J:42 Y: 1.167S
-10-SEP-1982 20,27.1293,27.011
-LIST/ORDER=XTZY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XTZY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LONGITUDE-DEPTH (m)-LATITUDE)
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
- ---- J:41 Y: 1.5S
- ---- K:2 Z: 15
-10-SEP-1982 20,27.3346,27.2218
- ---- K:3 Z: 25
-10-SEP-1982 20,27.2481,27.1248
- ---- J:42 Y: 1.167S
- ---- K:2 Z: 15
-10-SEP-1982 20,27.2382,27.1246
- ---- K:3 Z: 25
-10-SEP-1982 20,27.1293,27.011
-LIST/ORDER=YXZT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YXZT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LATITUDE-LONGITUDE-DEPTH (m))
- TIME : 10-SEP-1982 20:00
- 1.5S ,1.167S
- ---- K:2 Z: 15
-135.5W,27.3346,27.2382
-134.5W,27.2218,27.1246
- ---- K:3 Z: 25
-135.5W,27.2481,27.1293
-134.5W,27.1248,27.011
-LIST/ORDER=YXTZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YXTZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LATITUDE-LONGITUDE-DEPTH (m))
- TIME : 10-SEP-1982 20:00
- 1.5S ,1.167S
- ---- K:2 Z: 15
- ---- L:5 T: 10-SEP-1982 20:00
-135.5W,27.3346,27.2382
-134.5W,27.2218,27.1246
- ---- K:3 Z: 25
- ---- L:5 T: 10-SEP-1982 20:00
-135.5W,27.2481,27.1293
-134.5W,27.1248,27.011
-LIST/ORDER=YZXT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YZXT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LATITUDE-DEPTH (m)-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- 1.5S ,1.167S
- ---- I:95 X: 135.5W
-15,27.3346,27.2382
-25,27.2481,27.1293
- ---- I:96 X: 134.5W
-15,27.2218,27.1246
-25,27.1248,27.011
-LIST/ORDER=YZTX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YZTX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LATITUDE-DEPTH (m)-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- 1.5S ,1.167S
- ---- I:95 X: 135.5W
- ---- L:5 T: 10-SEP-1982 20:00
-15,27.3346,27.2382
-25,27.2481,27.1293
- ---- I:96 X: 134.5W
- ---- L:5 T: 10-SEP-1982 20:00
-15,27.2218,27.1246
-25,27.1248,27.011
-LIST/ORDER=YTXZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YTXZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LATITUDE-LONGITUDE-DEPTH (m))
- TIME : 10-SEP-1982 20:00
- 1.5S ,1.167S
- ---- K:2 Z: 15
- ---- I:95 X: 135.5W
-10-SEP-1982 20,27.3346,27.2382
- ---- I:96 X: 134.5W
-10-SEP-1982 20,27.2218,27.1246
- ---- K:3 Z: 25
- ---- I:95 X: 135.5W
-10-SEP-1982 20,27.2481,27.1293
- ---- I:96 X: 134.5W
-10-SEP-1982 20,27.1248,27.011
-LIST/ORDER=YTZX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YTZX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LATITUDE-DEPTH (m)-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- 1.5S ,1.167S
- ---- I:95 X: 135.5W
- ---- K:2 Z: 15
-10-SEP-1982 20,27.3346,27.2382
- ---- K:3 Z: 25
-10-SEP-1982 20,27.2481,27.1293
- ---- I:96 X: 134.5W
- ---- K:2 Z: 15
-10-SEP-1982 20,27.2218,27.1246
- ---- K:3 Z: 25
-10-SEP-1982 20,27.1248,27.011
-LIST/ORDER=ZXYT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZXYT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (DEPTH (m)-LONGITUDE-LATITUDE)
- TIME : 10-SEP-1982 20:00
- 15 ,25
- ---- J:41 Y: 1.5S
-135.5W,27.3346,27.2481
-134.5W,27.2218,27.1248
- ---- J:42 Y: 1.167S
-135.5W,27.2382,27.1293
-134.5W,27.1246,27.011
-LIST/ORDER=ZXTY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZXTY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (DEPTH (m)-LONGITUDE-LATITUDE)
- TIME : 10-SEP-1982 20:00
- 15 ,25
- ---- J:41 Y: 1.5S
- ---- L:5 T: 10-SEP-1982 20:00
-135.5W,27.3346,27.2481
-134.5W,27.2218,27.1248
- ---- J:42 Y: 1.167S
- ---- L:5 T: 10-SEP-1982 20:00
-135.5W,27.2382,27.1293
-134.5W,27.1246,27.011
-LIST/ORDER=ZYXT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZYXT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (DEPTH (m)-LATITUDE-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- 15 ,25
- ---- I:95 X: 135.5W
-1.5S,27.3346,27.2481
-1.167S,27.2382,27.1293
- ---- I:96 X: 134.5W
-1.5S,27.2218,27.1248
-1.167S,27.1246,27.011
-LIST/ORDER=ZYTX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZYTX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (DEPTH (m)-LATITUDE-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- 15 ,25
- ---- I:95 X: 135.5W
- ---- L:5 T: 10-SEP-1982 20:00
-1.5S,27.3346,27.2481
-1.167S,27.2382,27.1293
- ---- I:96 X: 134.5W
- ---- L:5 T: 10-SEP-1982 20:00
-1.5S,27.2218,27.1248
-1.167S,27.1246,27.011
-LIST/ORDER=ZTXY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZTXY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (DEPTH (m)-LONGITUDE-LATITUDE)
- TIME : 10-SEP-1982 20:00
- 15 ,25
- ---- J:41 Y: 1.5S
- ---- I:95 X: 135.5W
-10-SEP-1982 20,27.3346,27.2481
- ---- I:96 X: 134.5W
-10-SEP-1982 20,27.2218,27.1248
- ---- J:42 Y: 1.167S
- ---- I:95 X: 135.5W
-10-SEP-1982 20,27.2382,27.1293
- ---- I:96 X: 134.5W
-10-SEP-1982 20,27.1246,27.011
-LIST/ORDER=ZTYX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZTYX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (DEPTH (m)-LATITUDE-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- 15 ,25
- ---- I:95 X: 135.5W
- ---- J:41 Y: 1.5S
-10-SEP-1982 20,27.3346,27.2481
- ---- J:42 Y: 1.167S
-10-SEP-1982 20,27.2382,27.1293
- ---- I:96 X: 134.5W
- ---- J:41 Y: 1.5S
-10-SEP-1982 20,27.2218,27.1248
- ---- J:42 Y: 1.167S
-10-SEP-1982 20,27.1246,27.011
-LIST/ORDER=TXYZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TXYZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m))
- TIME : 10-SEP-1982 20:00
- 10-SEP-1982 20:00
- ---- K:2 Z: 15
- ---- J:41 Y: 1.5S
-135.5W,27.3346
-134.5W,27.2218
- ---- J:42 Y: 1.167S
-135.5W,27.2382
-134.5W,27.1246
- ---- K:3 Z: 25
- ---- J:41 Y: 1.5S
-135.5W,27.2481
-134.5W,27.1248
- ---- J:42 Y: 1.167S
-135.5W,27.1293
-134.5W,27.011
-LIST/ORDER=TXZY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TXZY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LONGITUDE-DEPTH (m)-LATITUDE)
- TIME : 10-SEP-1982 20:00
- 10-SEP-1982 20:00
- ---- J:41 Y: 1.5S
- ---- K:2 Z: 15
-135.5W,27.3346
-134.5W,27.2218
- ---- K:3 Z: 25
-135.5W,27.2481
-134.5W,27.1248
- ---- J:42 Y: 1.167S
- ---- K:2 Z: 15
-135.5W,27.2382
-134.5W,27.1246
- ---- K:3 Z: 25
-135.5W,27.1293
-134.5W,27.011
-LIST/ORDER=TYXZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TYXZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LATITUDE-LONGITUDE-DEPTH (m))
- TIME : 10-SEP-1982 20:00
- 10-SEP-1982 20:00
- ---- K:2 Z: 15
- ---- I:95 X: 135.5W
-1.5S,27.3346
-1.167S,27.2382
- ---- I:96 X: 134.5W
-1.5S,27.2218
-1.167S,27.1246
- ---- K:3 Z: 25
- ---- I:95 X: 135.5W
-1.5S,27.2481
-1.167S,27.1293
- ---- I:96 X: 134.5W
-1.5S,27.1248
-1.167S,27.011
-LIST/ORDER=TYZX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TYZX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (LATITUDE-DEPTH (m)-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- 10-SEP-1982 20:00
- ---- I:95 X: 135.5W
- ---- K:2 Z: 15
-1.5S,27.3346
-1.167S,27.2382
- ---- K:3 Z: 25
-1.5S,27.2481
-1.167S,27.1293
- ---- I:96 X: 134.5W
- ---- K:2 Z: 15
-1.5S,27.2218
-1.167S,27.1246
- ---- K:3 Z: 25
-1.5S,27.1248
-1.167S,27.011
-LIST/ORDER=TZXY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TZXY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (DEPTH (m)-LONGITUDE-LATITUDE)
- TIME : 10-SEP-1982 20:00
- 10-SEP-1982 20:00
- ---- J:41 Y: 1.5S
- ---- I:95 X: 135.5W
-15,27.3346
-25,27.2481
- ---- I:96 X: 134.5W
-15,27.2218
-25,27.1248
- ---- J:42 Y: 1.167S
- ---- I:95 X: 135.5W
-15,27.2382
-25,27.1293
- ---- I:96 X: 134.5W
-15,27.1246
-25,27.011
-LIST/ORDER=TZYX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TZYX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 points (DEPTH (m)-LATITUDE-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- 10-SEP-1982 20:00
- ---- I:95 X: 135.5W
- ---- J:41 Y: 1.5S
-15,27.3346
-25,27.2481
- ---- J:42 Y: 1.167S
-15,27.2382
-25,27.1293
- ---- I:96 X: 134.5W
- ---- J:41 Y: 1.5S
-15,27.2218
-25,27.1248
- ---- J:42 Y: 1.167S
-15,27.1246
-25,27.011
-
-!!XYT
-!set region/i=95:96/j=41:42/k=2/l=5:6
-!go bn_comma_delimited.sub comma temp
-!!XZT
-!set region/i=95:96/j=41/k=2:3/l=5:6
-!go bn_comma_delimited.sub comma temp
-!!YZT
-!set region/i=95/j=41:42/k=2:3/l=5:6
-!!go bn_comma_delimited.sub comma temp
-!XY
-set region/i=95:96/j=41:42/k=2/l=5
-go bn_comma_delimited.sub comma temp
-! bn420_comma_delimited.sub
-! 10/95 benchmark various permutations for FERRET listed output
-
-! similar to bn200_permute except that a "format" argument can be passed
-! and the region and expression information are external
-
-! usage:
-! SET REGION/xxxx
-! GO bn420_permute tab_delimited TEMP
-
-LOAD $2
- !-> LOAD temp
-
-LIST/ORDER=XYZT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XYZT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
-1.5S,27.3346,27.2218
-1.167S,27.2382,27.1246
-LIST/ORDER=XYTZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XYTZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- TIME : 10-SEP-1982 20:00
- DEPTH (m): 15
- 135.5W ,134.5W
-1.5S,27.3346,27.2218
-1.167S,27.2382,27.1246
-LIST/ORDER=XZYT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XZYT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
- ---- J:41 Y: 1.5S
-15,27.3346,27.2218
- ---- J:42 Y: 1.167S
-15,27.2382,27.1246
-LIST/ORDER=XZTY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XZTY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
- ---- J:41 Y: 1.5S
- ---- L:5 T: 10-SEP-1982 20:00
-15,27.3346,27.2218
- ---- J:42 Y: 1.167S
- ---- L:5 T: 10-SEP-1982 20:00
-15,27.2382,27.1246
-LIST/ORDER=XTYZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XTYZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- TIME : 10-SEP-1982 20:00
- DEPTH (m): 15
- 135.5W ,134.5W
- ---- J:41 Y: 1.5S
-10-SEP-1982 20,27.3346,27.2218
- ---- J:42 Y: 1.167S
-10-SEP-1982 20,27.2382,27.1246
-LIST/ORDER=XTZY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=XTZY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- TIME : 10-SEP-1982 20:00
- DEPTH (m): 15
- 135.5W ,134.5W
- ---- J:41 Y: 1.5S
- ---- K:2 Z: 15
-10-SEP-1982 20,27.3346,27.2218
- ---- J:42 Y: 1.167S
- ---- K:2 Z: 15
-10-SEP-1982 20,27.2382,27.1246
-LIST/ORDER=YXZT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YXZT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-LONGITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 1.5S ,1.167S
-135.5W,27.3346,27.2382
-134.5W,27.2218,27.1246
-LIST/ORDER=YXTZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YXTZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- DEPTH (m): 15
- 1.5S ,1.167S
-135.5W,27.3346,27.2382
-134.5W,27.2218,27.1246
-LIST/ORDER=YZXT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YZXT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-LONGITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 1.5S ,1.167S
- ---- I:95 X: 135.5W
-15,27.3346,27.2382
- ---- I:96 X: 134.5W
-15,27.2218,27.1246
-LIST/ORDER=YZTX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YZTX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-LONGITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 1.5S ,1.167S
- ---- I:95 X: 135.5W
- ---- L:5 T: 10-SEP-1982 20:00
-15,27.3346,27.2382
- ---- I:96 X: 134.5W
- ---- L:5 T: 10-SEP-1982 20:00
-15,27.2218,27.1246
-LIST/ORDER=YTXZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YTXZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- DEPTH (m): 15
- 1.5S ,1.167S
- ---- I:95 X: 135.5W
-10-SEP-1982 20,27.3346,27.2382
- ---- I:96 X: 134.5W
-10-SEP-1982 20,27.2218,27.1246
-LIST/ORDER=YTZX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=YTZX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- DEPTH (m): 15
- 1.5S ,1.167S
- ---- I:95 X: 135.5W
- ---- K:2 Z: 15
-10-SEP-1982 20,27.3346,27.2382
- ---- I:96 X: 134.5W
- ---- K:2 Z: 15
-10-SEP-1982 20,27.2218,27.1246
-LIST/ORDER=ZXYT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZXYT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 15
- ---- J:41 Y: 1.5S
-135.5W,27.3346
-134.5W,27.2218
- ---- J:42 Y: 1.167S
-135.5W,27.2382
-134.5W,27.1246
-LIST/ORDER=ZXTY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZXTY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 15
- ---- J:41 Y: 1.5S
- ---- L:5 T: 10-SEP-1982 20:00
-135.5W,27.3346
-134.5W,27.2218
- ---- J:42 Y: 1.167S
- ---- L:5 T: 10-SEP-1982 20:00
-135.5W,27.2382
-134.5W,27.1246
-LIST/ORDER=ZYXT $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZYXT /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-LONGITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 15
- ---- I:95 X: 135.5W
-1.5S,27.3346
-1.167S,27.2382
- ---- I:96 X: 134.5W
-1.5S,27.2218
-1.167S,27.1246
-LIST/ORDER=ZYTX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZYTX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-LONGITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 15
- ---- I:95 X: 135.5W
- ---- L:5 T: 10-SEP-1982 20:00
-1.5S,27.3346
-1.167S,27.2382
- ---- I:96 X: 134.5W
- ---- L:5 T: 10-SEP-1982 20:00
-1.5S,27.2218
-1.167S,27.1246
-LIST/ORDER=ZTXY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZTXY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 15
- ---- J:41 Y: 1.5S
- ---- I:95 X: 135.5W
-10-SEP-1982 20,27.3346
- ---- I:96 X: 134.5W
-10-SEP-1982 20,27.2218
- ---- J:42 Y: 1.167S
- ---- I:95 X: 135.5W
-10-SEP-1982 20,27.2382
- ---- I:96 X: 134.5W
-10-SEP-1982 20,27.1246
-LIST/ORDER=ZTYX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=ZTYX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-LONGITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 15
- ---- I:95 X: 135.5W
- ---- J:41 Y: 1.5S
-10-SEP-1982 20,27.3346
- ---- J:42 Y: 1.167S
-10-SEP-1982 20,27.2382
- ---- I:96 X: 134.5W
- ---- J:41 Y: 1.5S
-10-SEP-1982 20,27.2218
- ---- J:42 Y: 1.167S
-10-SEP-1982 20,27.1246
-LIST/ORDER=TXYZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TXYZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- TIME : 10-SEP-1982 20:00
- DEPTH (m): 15
- 10-SEP-1982 20:00
- ---- J:41 Y: 1.5S
-135.5W,27.3346
-134.5W,27.2218
- ---- J:42 Y: 1.167S
-135.5W,27.2382
-134.5W,27.1246
-LIST/ORDER=TXZY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TXZY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- TIME : 10-SEP-1982 20:00
- DEPTH (m): 15
- 10-SEP-1982 20:00
- ---- J:41 Y: 1.5S
- ---- K:2 Z: 15
-135.5W,27.3346
-134.5W,27.2218
- ---- J:42 Y: 1.167S
- ---- K:2 Z: 15
-135.5W,27.2382
-134.5W,27.1246
-LIST/ORDER=TYXZ $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TYXZ /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- DEPTH (m): 15
- 10-SEP-1982 20:00
- ---- I:95 X: 135.5W
-1.5S,27.3346
-1.167S,27.2382
- ---- I:96 X: 134.5W
-1.5S,27.2218
-1.167S,27.1246
-LIST/ORDER=TYZX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TYZX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- DEPTH (m): 15
- 10-SEP-1982 20:00
- ---- I:95 X: 135.5W
- ---- K:2 Z: 15
-1.5S,27.3346
-1.167S,27.2382
- ---- I:96 X: 134.5W
- ---- K:2 Z: 15
-1.5S,27.2218
-1.167S,27.1246
-LIST/ORDER=TZXY $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TZXY /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- TIME : 10-SEP-1982 20:00
- DEPTH (m): 15
- 10-SEP-1982 20:00
- ---- J:41 Y: 1.5S
- ---- I:95 X: 135.5W
-15,27.3346
- ---- I:96 X: 134.5W
-15,27.2218
- ---- J:42 Y: 1.167S
- ---- I:95 X: 135.5W
-15,27.2382
- ---- I:96 X: 134.5W
-15,27.1246
-LIST/ORDER=TZYX $1" |*>/FORMAT=*" $2
- !-> LIST/ORDER=TZYX /FORMAT=comma temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-LONGITUDE)
- TIME : 10-SEP-1982 20:00
- DEPTH (m): 15
- 10-SEP-1982 20:00
- ---- I:95 X: 135.5W
- ---- J:41 Y: 1.5S
-15,27.3346
- ---- J:42 Y: 1.167S
-15,27.2382
- ---- I:96 X: 134.5W
- ---- J:41 Y: 1.5S
-15,27.2218
- ---- J:42 Y: 1.167S
-15,27.1246
-
-!XZ
-set region/i=95:96/j=41/k=2:3/l=5
-LIST/FORMAT=comma/precision=5/order=xz temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-DEPTH (m))
- LATITUDE : 1.5S
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
-15,27.335,27.222
-25,27.248,27.125
-LIST/FORMAT=comma/precision=5/order=zx temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (DEPTH (m)-LONGITUDE)
- LATITUDE : 1.5S
- TIME : 10-SEP-1982 20:00
- 15 ,25
-135.5W,27.335,27.248
-134.5W,27.222,27.125
-!XT
-set region/i=95:96/j=41/k=2/l=5:6
-LIST/FORMAT=comma/precision=5/order=xt temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-TIME)
- LATITUDE : 1.5S
- DEPTH (m): 15
- 135.5W ,134.5W
-10-SEP-1982 20,27.335,27.222
-16-SEP-1982 22,27.775,27.622
-LIST/FORMAT=comma/precision=5/order=tx temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (TIME-LONGITUDE)
- LATITUDE : 1.5S
- DEPTH (m): 15
- 10-SEP-1982 20:00,16-SEP-1982 22:00
-135.5W,27.335,27.775
-134.5W,27.222,27.622
-!YZ
-set region/i=95/j=41:42/k=2:3/l=5
-LIST/FORMAT=comma/precision=5/order=yz temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-DEPTH (m))
- LONGITUDE: 135.5W
- TIME : 10-SEP-1982 20:00
- 1.5S ,1.167S
-15,27.335,27.238
-25,27.248,27.129
-LIST/FORMAT=comma/precision=5/order=zy temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (DEPTH (m)-LATITUDE)
- LONGITUDE: 135.5W
- TIME : 10-SEP-1982 20:00
- 15 ,25
-1.5S,27.335,27.248
-1.167S,27.238,27.129
-!YT
-set region/i=95/j=41:42/k=2/l=5:6
-LIST/FORMAT=comma/precision=5/order=yt temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LATITUDE-TIME)
- LONGITUDE: 135.5W
- DEPTH (m): 15
- 1.5S ,1.167S
-10-SEP-1982 20,27.335,27.238
-16-SEP-1982 22,27.775,27.678
-LIST/FORMAT=comma/precision=5/order=ty temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (TIME-LATITUDE)
- LONGITUDE: 135.5W
- DEPTH (m): 15
- 10-SEP-1982 20:00,16-SEP-1982 22:00
-1.5S,27.335,27.775
-1.167S,27.238,27.678
-!ZT
-set region/i=95/j=41/k=2:3/l=5:6
-LIST/FORMAT=comma/precision=5/order=zt temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (DEPTH (m)-TIME)
- LONGITUDE: 135.5W
- LATITUDE : 1.5S
- 15 ,25
-10-SEP-1982 20,27.335,27.248
-16-SEP-1982 22,27.775,27.652
-LIST/FORMAT=comma/precision=5/order=tz temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (TIME-DEPTH (m))
- LONGITUDE: 135.5W
- LATITUDE : 1.5S
- 10-SEP-1982 20:00,16-SEP-1982 22:00
-15,27.335,27.775
-25,27.248,27.652
-!X
-set region/i=95:96/j=41/k=2/l=5
-LIST/FORMAT=comma/precision=5/order=x temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 points (LONGITUDE)
- LATITUDE : 1.5S
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
-row 1,27.335,27.222
-LIST/FORMAT=comma/precision=5/order=y temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 points (LONGITUDE)
- LATITUDE : 1.5S
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 1.5S
-135.5W,27.335
-134.5W,27.222
-!Y
-set region/i=95/j=41:42/k=2/l=5
-LIST/FORMAT=comma/precision=5/order=y temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 points (LATITUDE)
- LONGITUDE: 135.5W
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 1.5S ,1.167S
-row 1,27.335,27.238
-LIST/FORMAT=comma/precision=5/order=x temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 points (LATITUDE)
- LONGITUDE: 135.5W
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 135.5W
-1.5S,27.335
-1.167S,27.238
-!Z
-set region/i=95/j=41/k=2:3/l=5
-LIST/FORMAT=comma/precision=5/order=z temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 points (DEPTH (m))
- LONGITUDE: 135.5W
- LATITUDE : 1.5S
- TIME : 10-SEP-1982 20:00
- 15 ,25
-row 1,27.335,27.248
-LIST/FORMAT=comma/precision=5/order=x temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 points (DEPTH (m))
- LONGITUDE: 135.5W
- LATITUDE : 1.5S
- TIME : 10-SEP-1982 20:00
- 135.5W
- ---- K:2 Z: 15
-1.5S,27.335
- ---- K:3 Z: 25
-1.5S,27.248
-!T
-set region/i=95/j=41/k=2/l=5:6
-LIST/FORMAT=comma/precision=5/order=t temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 points (TIME)
- LONGITUDE: 135.5W
- LATITUDE : 1.5S
- DEPTH (m): 15
- 10-SEP-1982 20:00,16-SEP-1982 22:00
-row 1,27.335,27.775
-LIST/FORMAT=comma/precision=5/order=x temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 points (TIME)
- LONGITUDE: 135.5W
- LATITUDE : 1.5S
- DEPTH (m): 15
- 135.5W
- ---- L:5 T: 10-SEP-1982 20:00
- ---- K:2 Z: 15
-1.5S,27.335
- ---- L:6 T: 16-SEP-1982 22:00
- ---- K:2 Z: 15
-1.5S,27.775
-
-! tab-delimited test
-set region/i=95:96/j=41:42/k=2:3/l=5:6
-LIST/FORMAT=tab temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 135.5W 134.5W
- ---- L:5 T: 10-SEP-1982 20:00
- ---- K:2 Z: 15
-1.5S 27.3346 27.2218
-1.167S 27.2382 27.1246
- ---- K:3 Z: 25
-1.5S 27.2481 27.1248
-1.167S 27.1293 27.011
- ---- L:6 T: 16-SEP-1982 22:00
- ---- K:2 Z: 15
-1.5S 27.7751 27.6218
-1.167S 27.678 27.5239
- ---- K:3 Z: 25
-1.5S 27.6518 27.4892
-1.167S 27.51 27.3501
-
-! big number formatting test
-set region/i=95:96/j=41:42/k=2/l=5
-LIST/FORMAT=comma/precision=1 randu(i)*temp*1e7
- VARIABLE : RANDU(I)*TEMP*1E7
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
-1.5S,2.E+08,2.E+08
-1.167S,2.E+08,2.E+08
-LIST/FORMAT=comma/precision=9 randu(i)*temp*1e7
- VARIABLE : RANDU(I)*TEMP*1E7
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
-1.5S,1.6675084E+08,2.0208841E+08
-1.167S,1.6616283E+08,2.0136658E+08
-
-! small number formatting test
-set region/i=95:96/j=41:42/k=2/l=5
-LIST/FORMAT=comma/precision=1 randu(i)*temp*1e-7
- VARIABLE : RANDU(I)*TEMP*1E-7
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
-1.5S,0.000002,0.000002
-1.167S,0.000002,0.000002
-LIST/FORMAT=comma/precision=9 randu(i)*temp*1e-7
- VARIABLE : RANDU(I)*TEMP*1E-7
- FILENAME : gt4d011.cdf
- BAD FLAG : -1.E+34
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- DEPTH (m): 15
- TIME : 10-SEP-1982 20:00
- 135.5W ,134.5W
-1.5S,0.00000166750845,0.00000202088412
-1.167S,0.00000166162833,0.00000201366579
-
-! multiple variable test
-set region/i=95:96/j=41:42/k=2/l=5
-LIST/FORMAT=comma/precision=5 u,v
- DATA SET: ./gt4d011.cdf
- LONGITUDE: 135.5W to 133.5W
- LATITUDE: 1.5S to 0.833S
- DEPTH (m): 15
- TIME: 10-SEP-1982 20:00
- Column 1: U is ZONAL VELOCITY (cm/sec) BAD FLAG : -1.E+34
- Column 2: V is MERIDIONAL VELOCITY (cm/sec) BAD FLAG : -1.E+34
- U,V
- ---- J:41 Y: 1.333S
-135W / 95:41.597,-1.5366
-134W / 96:39.163,-1.7415
- ---- J:42 Y: 1S
-135W / 95:42.39,1.4695
-134W / 96:40.019,1.5182
-
-! abstract expression test
-set region/i=1:5/j=1:3
-LIST/FORMAT=comma/precision=5 10*j+i
- VARIABLE : 10*J+I
- BAD FLAG : -1.E+34
- SUBSET : 5 by 3 points (X-Y)
- 1 ,2 ,3 ,4 ,5
-1,11,12,13,14,15
-2,21,22,23,24,25
-3,31,32,33,34,35
-
-GO bn_reset
-cancel mode verify
-GO bn_dynamic_grids ! added 9/27/95, V420 ->V491 4/98
-! bn420_dynamic_grids
-! 9/95-9/11/95 - test the creation, destruction, and use of dynamic grids
-! 2/96 - added GX=lo:hi:delta notation
-! 4/98 *sh* changes once again to confine_axis -- earlier trapped error is once
-! again an error
-! V500beta1.1 5/26/99 *kob* - As of v500beta1.1, there is a modification to
-! tm_world_recur.c which fixes a previous problem
-! w/ implicit strides on an underlying irregular grid.
-! This caused numerical differences in the output benchmark
-! log files when compared to pre beta5001.1 logs. The
-! numericals results found here are verified to be correct
-! V550 11/02 *sh* - documentation change only reflecting new modulo behavior
-! V603 5/07 *acm* documentation changew - some of the context errors have gone away.
-
-! deliberate dynamic grid errors
-
-can mode diag
-
-use gtsa056_1
-
-set region/l=1/k=1/i=101:105/j=46:50
-
-! what the implicit grids look like
-load temp[gx=u]
-show grid/dynamic
-Dynamic grids:
- GRID (G003) use count: 1
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- no implicit axes
-
-
-set mode ignore_errors
-
-list temp[gx=noexist] ! err during get_context_mods
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- no implicit axes
-
-list temp[gx=u,p=noexist] ! err during get_context_mods
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- no implicit axes
-
-! new error checks 2/96
-list temp[gx=130e:80w:10,x=160e:160w] ! err during get_context_mods
-list temp[gx=130e:80w:10,i=2:5] ! err during get_context_mods
-list temp[i=2:5,gx=130e:80w:10] ! err during get_context_mods
-list temp[gx=130e:80w] ! err during get_context_mods
-
-list temp[gx=u] + noexist ! err during is_algebra
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- no implicit axes
-
-list temp[gx=u,k=30] ! err during get_var_context
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- no implicit axes
-
-list temp[gx=u,k=20] ! err during read
-show grid/dynamic
-Dynamic grids:
- GRID (G003) use count: 1
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- no implicit axes
-
-list temp[gx=psyu] ! err during get_context_grid - axis mismatch
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- no implicit axes
-
-list/i=3:6 X[gx=PSYT] ! same err but on pseudo-variable
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- no implicit axes
-
-! now similar error tests but nested one level down on stack
-
-let a = u
-list temp[gx=a] ! uvar for grid name
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 1 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129W 128W 127W 126W 125W
- 101 102 103 104 105
- 1.5N / 50: 24.4391 24.2803 24.2283 24.3266 24.6189
- 1.17N / 49: 24.2444 24.0991 24.0441 24.1235 24.3692
- 0.83N / 48: 24.0779 23.9440 23.8736 23.9176 24.1125
- 0.5N / 47: 23.9588 23.8406 23.7576 23.7500 23.8696
- 0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
-show grid/dynamic
-Dynamic grids:
- GRID (G003) use count: 1
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- no implicit axes
-
-let tu = temp[gx=noexist]
-list tu ! err during get_context_mods
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- no implicit axes
-
-let tu = temp[gx=u,p=noexist]
-list tu ! err during get_context_mods
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- no implicit axes
-
-let tu = temp[gx=u] + noexist
-list tu ! err during is_algebra
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- no implicit axes
-
-let tu = temp[gx=u,k=30]
-list tu ! err during get_var_context
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- no implicit axes
-
-let tu = temp[gx=u,k=20]
-list tu ! err during read
-show grid/dynamic
-Dynamic grids:
- GRID (G003) use count: 2
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- no implicit axes
-
-let tu = temp[gx=psyu]
-list tu ! err during get_context_grid - axis mismatch
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- no implicit axes
-
-define axis/z=5:15/npoints=999999/unit=meters/depth z999999
-
-! SET MEM smaller to make sure to get the intended error,
-! else we list huge amount of adata
-
-let save_mem = ($ferret_memory)
- !-> DEFINE VARIABLE save_mem = 25.6
-set mem/siz = 10
-
-list temp[gz=z999999,z=5:15] ! err during regrid
-show grid/dynamic
-Dynamic grids:
- GRID (G003) use count: 1
- name axis # pts start end
- PSXT LONGITUDE 160mr 130.5E 70.5W
- PSYT LATITUDE 100 i 28.836S 48.568N
- Z999999 DEPTH (m) 999999 r- 5 15
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- no implicit axes
-set mem/siz=`save_mem`
- !-> set mem/siz=25.6
-
-shade 1/0 * temp[gx=u] ! err during plot
-show grid/dynamic
-Dynamic grids:
- GRID (G003) use count: 1
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- no implicit axes
-
-set mode/last ignore
-
-! =================================
-
-! basic implicit grid accesses
-list temp[gx=psxu]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 1 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129W 128W 127W 126W 125W
- 101 102 103 104 105
- 1.5N / 50: 24.4391 24.2803 24.2283 24.3266 24.6189
- 1.17N / 49: 24.2444 24.0991 24.0441 24.1235 24.3692
- 0.83N / 48: 24.0779 23.9440 23.8736 23.9176 24.1125
- 0.5N / 47: 23.9588 23.8406 23.7576 23.7500 23.8696
- 0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
-show grid/dyn
-Dynamic grids:
- GRID (G003) use count: 1
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- no implicit axes
-
-list temp[gy=psyu]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 1.67N / 50: 24.6561 24.4277 24.3118 24.3162 24.5191
- 1.33N / 49: 24.4396 24.2439 24.1355 24.1369 24.3131
- 1N / 48: 24.2464 24.0759 23.9672 23.9505 24.0906
- 0.67N / 47: 24.0904 23.9463 23.8383 23.7928 23.8749
- 0.33N / 46: 23.9899 23.8698 23.7654 23.6951 23.7076
-
-list temp[gx=u]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 1 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129W 128W 127W 126W 125W
- 101 102 103 104 105
- 1.5N / 50: 24.4391 24.2803 24.2283 24.3266 24.6189
- 1.17N / 49: 24.2444 24.0991 24.0441 24.1235 24.3692
- 0.83N / 48: 24.0779 23.9440 23.8736 23.9176 24.1125
- 0.5N / 47: 23.9588 23.8406 23.7576 23.7500 23.8696
- 0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
-show grid/dyn
-Dynamic grids:
- GRID (G003) use count: 1
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- no implicit axes
-
-list temp[gx=w]
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 1.5N / 50: 24.5431 24.3351 24.2254 24.2312 24.4219
- 1.17N / 49: 24.3362 24.1527 24.0455 24.0427 24.2042
- 0.83N / 48: 24.1567 23.9991 23.8888 23.8583 23.9770
- 0.5N / 47: 24.0242 23.8934 23.7879 23.7273 23.7728
- 0.17N / 46: 23.9556 23.8461 23.7430 23.6629 23.6425
-
-list temp[gx=psxu] + 5
- VARIABLE : TEMP[GX=PSXU] + 5
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129W 128W 127W 126W 125W
- 101 102 103 104 105
- 1.5N / 50: 29.4391 29.2803 29.2283 29.3266 29.6189
- 1.17N / 49: 29.2444 29.0991 29.0441 29.1235 29.3692
- 0.83N / 48: 29.0779 28.9440 28.8736 28.9176 29.1125
- 0.5N / 47: 28.9588 28.8406 28.7576 28.7500 28.8696
- 0.17N / 46: 28.9009 28.7946 28.7029 28.6527 28.6934
-show grid/dyn
-Dynamic grids:
- GRID (G003) use count: 1
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- no implicit axes
-
-list 5 + temp[gx=psxu]
- VARIABLE : 5 + TEMP[GX=PSXU]
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129W 128W 127W 126W 125W
- 101 102 103 104 105
- 1.5N / 50: 29.4391 29.2803 29.2283 29.3266 29.6189
- 1.17N / 49: 29.2444 29.0991 29.0441 29.1235 29.3692
- 0.83N / 48: 29.0779 28.9440 28.8736 28.9176 29.1125
- 0.5N / 47: 28.9588 28.8406 28.7576 28.7500 28.8696
- 0.17N / 46: 28.9009 28.7946 28.7029 28.6527 28.6934
-show grid/dyn
-Dynamic grids:
- GRID (G003) use count: 1
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- no implicit axes
-
-let tu = temp[gx=psxu]
-list tu
- VARIABLE : TEMP[GX=PSXU]
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129W 128W 127W 126W 125W
- 101 102 103 104 105
- 1.5N / 50: 24.4391 24.2803 24.2283 24.3266 24.6189
- 1.17N / 49: 24.2444 24.0991 24.0441 24.1235 24.3692
- 0.83N / 48: 24.0779 23.9440 23.8736 23.9176 24.1125
- 0.5N / 47: 23.9588 23.8406 23.7576 23.7500 23.8696
- 0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
-show grid/dyn
-Dynamic grids:
- GRID (G003) use count: 2
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- no implicit axes
-show grid tu
- GRID (G003)
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-
-let tu = temp[gx=psxu] + 5
-list tu
- VARIABLE : TEMP[GX=PSXU] + 5
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129W 128W 127W 126W 125W
- 101 102 103 104 105
- 1.5N / 50: 29.4391 29.2803 29.2283 29.3266 29.6189
- 1.17N / 49: 29.2444 29.0991 29.0441 29.1235 29.3692
- 0.83N / 48: 29.0779 28.9440 28.8736 28.9176 29.1125
- 0.5N / 47: 28.9588 28.8406 28.7576 28.7500 28.8696
- 0.17N / 46: 28.9009 28.7946 28.7029 28.6527 28.6934
-show grid/dyn
-Dynamic grids:
- GRID (G003) use count: 2
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- no implicit axes
-
-
-! implicit grid conformability
-set reg/x=180:175w/y=0:2n/z=0/l=1
-list taux[g=temp] ! grid to temp w/out Z axis
- VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
- regrid: 1 deg on X, on Y, 73 hour on T
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 7 points (LONGITUDE-LATITUDE)
- TIME : 15-JAN-1982 14:00
- 179.5W 178.5W 177.5W 176.5W 175.5W
- 51 52 53 54 55
- 1.83N / 51: -0.627987 -0.652220 -0.659763 -0.663230 -0.662623
- 1.5N / 50: -0.631590 -0.653915 -0.653717 -0.650547 -0.644405
- 1.17N / 49: -0.635168 -0.655610 -0.647673 -0.637865 -0.626188
- 0.83N / 48: -0.627037 -0.647150 -0.637065 -0.626707 -0.616078
- 0.5N / 47: -0.607180 -0.628495 -0.621847 -0.617047 -0.614073
- 0.17N / 46: -0.587298 -0.609840 -0.606630 -0.607388 -0.612068
- 0.17S / 45: -0.567438 -0.591208 -0.591415 -0.597708 -0.610065
-list temp[g=taux] ! grid to taux w/ Z axis (same grid as "U")
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 1 deg on X, on Y, 73 hour on T
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 7 points (LONGITUDE-LATITUDE)
- DEPTH (m): 0 (interpolated)
- TIME : 15-JAN-1982 14:00
- 180E 179W 178W 177W 176W 175W
- 50 51 52 53 54 55
- 2N / 51: 27.5799 27.5356 27.4992 27.4507 27.3693 27.2712
- 1.67N / 50: 27.6149 27.5639 27.5186 27.4671 27.3903 27.2903
- 1.33N / 49: 27.6580 27.6003 27.5494 27.4926 27.4148 27.3150
- 1N / 48: 27.7046 27.6371 27.5806 27.5195 27.4400 27.3410
- 0.67N / 47: 27.7530 27.6753 27.6127 27.5468 27.4642 27.3648
- 0.33N / 46: 27.8004 27.7159 27.6494 27.5789 27.4919 27.3900
- 0 / 45: 27.8480 27.7622 27.6962 27.6232 27.5320 27.4267
-list temp[gx=taux,gy=taux]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: U
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 7 points (LONGITUDE-LATITUDE)
- DEPTH (m): 0 (interpolated)
- TIME : 15-JAN-1982 14:00
- 180E 179W 178W 177W 176W 175W
- 50 51 52 53 54 55
- 2N / 51: 27.5799 27.5356 27.4992 27.4507 27.3693 27.2712
- 1.67N / 50: 27.6149 27.5639 27.5186 27.4671 27.3903 27.2903
- 1.33N / 49: 27.6580 27.6003 27.5494 27.4926 27.4148 27.3150
- 1N / 48: 27.7046 27.6371 27.5806 27.5195 27.4400 27.3410
- 0.67N / 47: 27.7530 27.6753 27.6127 27.5468 27.4642 27.3648
- 0.33N / 46: 27.8004 27.7159 27.6494 27.5789 27.4919 27.3900
- 0 / 45: 27.8480 27.7622 27.6962 27.6232 27.5320 27.4267
-list temp[gx=taux] ! X only
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 1 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 7 points (LONGITUDE-LATITUDE)
- DEPTH (m): 0 (interpolated)
- TIME : 15-JAN-1982 14:00
- 180E 179W 178W 177W 176W 175W
- 50 51 52 53 54 55
- 1.83N / 51: 27.5946 27.5458 27.5038 27.4555 27.3787 27.2791
- 1.5N / 50: 27.6353 27.5819 27.5333 27.4787 27.4018 27.3015
- 1.17N / 49: 27.6807 27.6187 27.5654 27.5064 27.4279 27.3285
- 0.83N / 48: 27.7285 27.6555 27.5958 27.5327 27.4522 27.3536
- 0.5N / 47: 27.7775 27.6952 27.6296 27.5610 27.4762 27.3760
- 0.17N / 46: 27.8234 27.7366 27.6691 27.5969 27.5077 27.4040
- 0.17S / 45: 27.8727 27.7878 27.7232 27.6494 27.5563 27.4494
-show grid/dynamic
-Dynamic grids:
- GRID (G003) use count: 2
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- no implicit axes
-
-! regridding between grids with mutually exclusive axes
-cancel region
-define grid/y=ps3dt gy
-define grid/x=ps3dt gx
-LET/QUIET a = x[g=gx]
-list/i=1:4 a,a[g=gy] ! nothing to regrid - both are same
- LONGITUDE: 130E to 134E
- Column 1: A is X[G=GX]
- Column 2: A is X[G=GX]
- A A
-130.5E / 1: 130.500 130.500
-131.5E / 2: 131.500 131.500
-132.5E / 3: 132.500 132.500
-133.5E / 4: 133.500 133.500
-
-
-!!!!!!!!!!!!!!!!!!!!!!!!
-! pseudo-variables
-set data gtsa056_1
-
-list/i=3:6 X ! abstract
- VARIABLE : X
- axis ABSTRACT
- SUBSET : 4 points (X)
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
- 6 / 6: 6.00000
-list/i=3:6 X[g=u] ! PS3DU
- VARIABLE : X
- axis PSXU
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 points (LONGITUDE)
- 133E / 3: 133.000
- 134E / 4: 134.000
- 135E / 5: 135.000
- 136E / 6: 136.000
-list/i=3:6 X[gx=u] ! PS3DU
- VARIABLE : X
- axis PSXU
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 points (LONGITUDE)
- 133E / 3: 133.000
- 134E / 4: 134.000
- 135E / 5: 135.000
- 136E / 6: 136.000
-list/i=3:6 X[gx=PSXT] ! PS3DT
- VARIABLE : X
- axis PSXT
- SUBSET : 4 points (LONGITUDE)
- 132.5E / 3: 132.500
- 133.5E / 4: 133.500
- 134.5E / 5: 134.500
- 135.5E / 6: 135.500
-
-let ax = x
-list/i=3:6 ax ! abstract
- VARIABLE : X
- SUBSET : 4 points (X)
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
- 6 / 6: 6.00000
-let ax = X[g=u]
-list/i=3:6 ax ! PS3DU
- VARIABLE : X[G=U]
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 points (LONGITUDE)
- 133E / 3: 133.000
- 134E / 4: 134.000
- 135E / 5: 135.000
- 136E / 6: 136.000
-let ax = X[gx=u]
-list/i=3:6 ax ! PS3DU
- VARIABLE : X[GX=U]
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 points (LONGITUDE)
- 133E / 3: 133.000
- 134E / 4: 134.000
- 135E / 5: 135.000
- 136E / 6: 136.000
-let ax = X[gx=PSXT]
-list/i=3:6 ax ! PS3DT
- VARIABLE : X[GX=PSXT]
- SUBSET : 4 points (LONGITUDE)
- 132.5E / 3: 132.500
- 133.5E / 4: 133.500
- 134.5E / 5: 134.500
- 135.5E / 6: 135.500
-show grid/dyn
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- no implicit axes
-
-!!!!!!!!!!!!!!!!!!!!!!!!
-! dynamic axes
-! * * * dynamic generation of pseudo-variables * * *
-list x[x=.1:1:.1] ! dynamic abstract
- VARIABLE : X
- axis (AX003)
- SUBSET : 10 points (X)
- 0.1 / 1: 0.10000
- 0.2 / 2: 0.20000
- 0.3 / 3: 0.30000
- 0.4 / 4: 0.40000
- 0.5 / 5: 0.50000
- 0.6 / 6: 0.60000
- 0.7 / 7: 0.70000
- 0.8 / 8: 0.80000
- 0.9 / 9: 0.90000
- 1 / 10: 1.00000
-list x[gx=psxu,x=130:150:2.5] ! dynamic based on named axis
- VARIABLE : X
- axis (AX004)
- SUBSET : 9 points (LONGITUDE)
- 130E / 1: 130.000
- 132.5E / 2: 132.500
- 135E / 3: 135.000
- 137.5E / 4: 137.500
- 140E / 5: 140.000
- 142.5E / 6: 142.500
- 145E / 7: 145.000
- 147.5E / 8: 147.500
- 150E / 9: 150.000
-! abstract variables
-cancel region
-LET/QUIET a = x[x=0.1:10:1.5] + y[y=101:110:1]
-list a
- VARIABLE : X[X=0.1:10:1.5] + Y[Y=101:110:1]
- SUBSET : 7 by 10 points (X-Y)
- 0.1 1.6 3.1 4.6 6.1 7.6 9.1
- 1 2 3 4 5 6 7
- 101 / 1: 101.100 102.600 104.100 105.600 107.100 108.600 110.100
- 102 / 2: 102.100 103.600 105.100 106.600 108.100 109.600 111.100
- 103 / 3: 103.100 104.600 106.100 107.600 109.100 110.600 112.100
- 104 / 4: 104.100 105.600 107.100 108.600 110.100 111.600 113.100
- 105 / 5: 105.100 106.600 108.100 109.600 111.100 112.600 114.100
- 106 / 6: 106.100 107.600 109.100 110.600 112.100 113.600 115.100
- 107 / 7: 107.100 108.600 110.100 111.600 113.100 114.600 116.100
- 108 / 8: 108.100 109.600 111.100 112.600 114.100 115.600 117.100
- 109 / 9: 109.100 110.600 112.100 113.600 115.100 116.600 118.100
- 110 / 10: 110.100 111.600 113.100 114.600 116.100 117.600 119.100
-list a[i=1:10:3]
- VARIABLE : X[X=0.1:10:1.5] + Y[Y=101:110:1]
- regrid: 4.5 delta on X
- SUBSET : 3 by 10 points (X-Y)
- 0.1 4.6 9.1
- 1 2 3
- 101 / 1: 101.100 105.600 110.100
- 102 / 2: 102.100 106.600 111.100
- 103 / 3: 103.100 107.600 112.100
- 104 / 4: 104.100 108.600 113.100
- 105 / 5: 105.100 109.600 114.100
- 106 / 6: 106.100 110.600 115.100
- 107 / 7: 107.100 111.600 116.100
- 108 / 8: 108.100 112.600 117.100
- 109 / 9: 109.100 113.600 118.100
- 110 / 10: 110.100 114.600 119.100
-list a[i=-1:20:5] ! clips to allowed limits
- VARIABLE : X[X=0.1:10:1.5] + Y[Y=101:110:1]
- regrid: 7.5 delta on X
- SUBSET : 2 by 10 points (X-Y)
- 0.1 7.6
- 1 2
- 101 / 1: 101.100 108.600
- 102 / 2: 102.100 109.600
- 103 / 3: 103.100 110.600
- 104 / 4: 104.100 111.600
- 105 / 5: 105.100 112.600
- 106 / 6: 106.100 113.600
- 107 / 7: 107.100 114.600
- 108 / 8: 108.100 115.600
- 109 / 9: 109.100 116.600
- 110 / 10: 110.100 117.600
-list a[y=102:105:.5]
- VARIABLE : X[X=0.1:10:1.5] + Y[Y=101:110:1]
- regrid: 0.5 delta on Y
- SUBSET : 7 by 7 points (X-Y)
- 0.1 1.6 3.1 4.6 6.1 7.6 9.1
- 1 2 3 4 5 6 7
- 102 / 1: 102.100 103.600 105.100 106.600 108.100 109.600 111.100
- 102.5 / 2: 102.600 104.100 105.600 107.100 108.600 110.100 111.600
- 103 / 3: 103.100 104.600 106.100 107.600 109.100 110.600 112.100
- 103.5 / 4: 103.600 105.100 106.600 108.100 109.600 111.100 112.600
- 104 / 5: 104.100 105.600 107.100 108.600 110.100 111.600 113.100
- 104.5 / 6: 104.600 106.100 107.600 109.100 110.600 112.100 113.600
- 105 / 7: 105.100 106.600 108.100 109.600 111.100 112.600 114.100
-list a[y=95:115:7]
- VARIABLE : X[X=0.1:10:1.5] + Y[Y=101:110:1]
- regrid: 7 delta on Y
- SUBSET : 7 by 3 points (X-Y)
- 0.1 1.6 3.1 4.6 6.1 7.6 9.1
- 1 2 3 4 5 6 7
- 95 / 1: .... .... .... .... .... .... ....
- 102 / 2: 102.100 103.600 105.100 106.600 108.100 109.600 111.100
- 109 / 3: 109.100 110.600 112.100 113.600 115.100 116.600 118.100
-show grid/dyn
-Dynamic grids:
- GRID (G006) use count: 1
- name axis # pts start end
- (AX002) X 7 r 0.1 9.1
- (AX004) Y 3 r 95 109
- normal Z
- normal T
- normal E
- normal F
- GRID (G003) use count: 1
- name axis # pts start end
- (AX002) X 7 r 0.1 9.1
- (AX003) Y 10 r 101 110
- normal Z
- normal T
- normal E
- normal F
-Dynamic axes:
- AXIS (AX004) use count: 1
- AXIS (AX002) use count: 2
- AXIS (AX003) use count: 1
-
-! ambiguous coordinate tests
-list/order=x x[x=0.1:10:1.5] + x[x=1.1:11:1.5]
- VARIABLE : X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- SUBSET : 7 points (X)
- 0.1 1.6 3.1 4.6 6.1 7.6 9.1
- 1 2 3 4 5 6 7
- 1.2000 4.2000 7.2000 10.2000 13.2000 16.2000 19.2000
-LET/QUIET a = x[x=0.1:10:1.5] + x[x=1.1:11:1.5]
-list/order=x a
- VARIABLE : X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- SUBSET : 7 points (X)
- 0.1 1.6 3.1 4.6 6.1 7.6 9.1
- 1 2 3 4 5 6 7
- 1.2000 4.2000 7.2000 10.2000 13.2000 16.2000 19.2000
-show grid/dyn
-Dynamic grids:
- GRID (G003) use count: 2
- name axis # pts start end
- (AX004) X 7 r 0.1 9.1
- normal Y
- normal Z
- normal T
- normal E
- normal F
-Dynamic axes:
- AXIS (AX004) use count: 1
-
-! box size on dynamic axes
-cancel region
-define axis/from/x/name=xirreg x[x=1:100:10]^2
-define grid/x=xirreg girreg
-let/quiet a = xbox[gx=xirreg]
-list a ! "normal" irregular axis
- VARIABLE : XBOX[GX=XIRREG]
- SUBSET : 10 points (X)
- 1 / 1: 120.00
- 121 / 2: 220.00
- 441 / 3: 420.00
- 961 / 4: 620.00
- 1681 / 5: 820.00
- 2601 / 6: 1020.00
- 3721 / 7: 1220.00
- 5041 / 8: 1420.00
- 6561 / 9: 1620.00
- 8281 / 10: 1720.00
-let/quiet b = a[i=1:10:2]
-load b ! "child" irregular axis
-show grid/x
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
- GRID (G003)
- name axis # pts start end
- (AX002) X 5 i 1 6561
- normal Y
- normal Z
- normal T
- normal E
- normal F
-
- I X XBOX XBOXLO
- 1> 1 280 -59
- 2> 441 840 221
- 3> 1681 1640 1061
- 4> 3721 2440 2701
- 5> 6561 4000 5141
-
-use gtsa056_1
-list/i=1:10 x[gx=temp] ! from named variable
- VARIABLE : X
- axis PSXT
- FILENAME : gtsa056_1.cdf
- SUBSET : 10 points (LONGITUDE)
- 130.5E / 1: 130.500
- 131.5E / 2: 131.500
- 132.5E / 3: 132.500
- 133.5E / 4: 133.500
- 134.5E / 5: 134.500
- 135.5E / 6: 135.500
- 136.5E / 7: 136.500
- 137.5E / 8: 137.500
- 138.5E / 9: 138.500
- 139.5E / 10: 139.500
-list x[g=temp,x=150w:130w:2.5] ! dynamic based on named variable
- VARIABLE : X
- axis (AX005)
- FILENAME : gtsa056_1.cdf
- SUBSET : 9 points (LONGITUDE)
- 150W / 1: 210.000
- 147.5W / 2: 212.500
- 145W / 3: 215.000
- 142.5W / 4: 217.500
- 140W / 5: 220.000
- 137.5W / 6: 222.500
- 135W / 7: 225.000
- 132.5W / 8: 227.500
- 130W / 9: 230.000
-list x[gx=temp,x=150w:130w:2.5] ! dynamic based on named variable
- VARIABLE : X
- axis (AX003)
- FILENAME : gtsa056_1.cdf
- SUBSET : 9 points (LONGITUDE)
- 150W / 1: 210.000
- 147.5W / 2: 212.500
- 145W / 3: 215.000
- 142.5W / 4: 217.500
- 140W / 5: 220.000
- 137.5W / 6: 222.500
- 135W / 7: 225.000
- 132.5W / 8: 227.500
- 130W / 9: 230.000
-
-list/i=101:105/j=46:50/l=1/k=1 temp+x ! grid inherited from expression
- VARIABLE : TEMP+X
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 1.5N / 50: 255.043 255.835 256.725 257.731 258.922
- 1.17N / 49: 254.836 255.653 256.546 257.543 258.704
- 0.83N / 48: 254.657 255.499 256.389 257.358 258.477
- 0.5N / 47: 254.524 255.393 256.288 257.227 258.273
- 0.17N / 46: 254.456 255.346 256.243 257.163 258.142
-show grid/dyn
-Dynamic grids:
- GRID (G003) use count: 1
- name axis # pts start end
- (AX002) X 5 i 1 6561
- normal Y
- normal Z
- normal T
- normal E
- normal F
-Dynamic axes:
- AXIS (AX002) use count: 1
-
-! this expression does NOT inherit the X axis -- the result is
-! i) ambiguous X axis coordinates
-! ii) 2 dynamic axes are created in the course of processing
-list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[i=101:120:4] ! NOT !!!
- VARIABLE : TEMP[I=101:120:4]+X[I=101:120:4]
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 125.5W 121.5W 117.5W 113.5W
- 1 2 3 4 5
- 1.5N / 50: 125.543 129.422 134.545 137.119 141.562
- 1.17N / 49: 125.336 129.204 134.163 136.896 141.270
- 0.83N / 48: 125.157 128.977 133.703 136.690 140.960
- 0.5N / 47: 125.024 128.773 133.295 136.512 140.644
- 0.17N / 46: 124.956 128.642 132.987 136.380 140.376
-show grid/dynamic
-Dynamic grids:
- GRID (G006) use count: 1
- name axis # pts start end
- (AX004) LONGITUDE 5 r 129.5W 113.5W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
- GRID (G003) use count: 1
- name axis # pts start end
- (AX002) X 5 i 1 6561
- normal Y
- normal Z
- normal T
- normal E
- normal F
-Dynamic axes:
- AXIS (AX004) use count: 1
- AXIS (AX002) use count: 1
-
-list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[g=temp,i=101:120:4]
- VARIABLE : TEMP[I=101:120:4]+X[G=TEMP,I=101:120:4]
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 125.5W 121.5W 117.5W 113.5W
- 1 2 3 4 5
- 1.5N / 50: 255.043 258.922 264.045 266.619 271.062
- 1.17N / 49: 254.836 258.704 263.663 266.396 270.770
- 0.83N / 48: 254.657 258.477 263.203 266.190 270.460
- 0.5N / 47: 254.524 258.273 262.795 266.012 270.144
- 0.17N / 46: 254.456 258.142 262.487 265.880 269.876
-
-
-! * * * dynamic axis generation used to regrid variables * * *
-SET REGION/I=101:105/J=46:50/l=1/k=1
-
-! deliberate errors: ****
-list x[i=5:1:1] ! not an error: inverted order
- VARIABLE : X
- axis (AX004)
- SUBSET : 5 points (X)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-set mode ignore
-list x[i=1:5:-1] ! error: negative delta
-list x[i=1:5:0] ! error: delta=0
-list x[x=1:5:-1] ! error: negative delta
-list x[x=1:5:0] ! error: delta=0
-list temp[i=200:210:2] ! was: "completely out of range" now: ok - subspan modulo 11/02
- VARIABLE : TEMPERATURE (deg. C)
- regrid: on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 168.5E 170.5E 172.5E 174.5E 176.5E 178.5E
- 1 2 3 4 5 6
- 1.5N / 50: 29.2186 29.1820 28.9284 28.6727 28.1158 27.7262
- 1.17N / 49: 29.2537 29.1794 28.9683 28.7060 28.2175 27.8045
- 0.83N / 48: 29.2747 29.1817 28.9842 28.7218 28.2984 27.8834
- 0.5N / 47: 29.3025 29.1943 28.9819 28.7306 28.3551 27.9545
- 0.17N / 46: 29.3441 29.2219 28.9889 28.7493 28.3962 28.0105
-list temp[i=-200:-190:2]! was: "completely out of range" now: ok - subspan modulo 11/0
- VARIABLE : TEMPERATURE (deg. C)
- regrid: on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 108.5W 106.5W 104.5W 102.5W 100.5W 98.5W
- 1 2 3 4 5 6
- 1.5N / 50: 25.4248 25.2404 25.0453 25.2349 25.4898 25.8063
- 1.17N / 49: 25.0178 24.8787 24.7362 24.9070 25.2015 25.5514
- 0.83N / 48: 24.6455 24.5412 24.4230 24.5627 24.8753 25.2469
- 0.5N / 47: 24.2823 24.1999 24.1010 24.2162 24.5241 24.8980
- 0.17N / 46: 23.9664 23.8958 23.8185 23.9163 24.1945 24.5649
-canc mode ignore
-show grid/dyn
-Dynamic grids:
- GRID (G006) use count: 1
- name axis # pts start end
- (AX004) LONGITUDE 6 i 108.5W(-468.5) 98.5W(-458.5)
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
- GRID (G003) use count: 1
- name axis # pts start end
- (AX002) X 5 i 1 6561
- normal Y
- normal Z
- normal T
- normal E
- normal F
-Dynamic axes:
- AXIS (AX004) use count: 1
- AXIS (AX002) use count: 1
-
-! regular dynamic axis
-! ... by subscript
-list temp[i=100:110:2]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 2 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 130.5W 128.5W 126.5W 124.5W 122.5W 120.5W
- 1 2 3 4 5 6
- 1.5N / 50: 24.8629 24.3351 24.2312 24.8158 25.6044 25.2192
- 1.17N / 49: 24.5966 24.1527 24.0427 24.5341 25.2208 24.8153
- 0.83N / 48: 24.3667 23.9991 23.8583 24.2480 24.7736 24.4029
- 0.5N / 47: 24.1928 23.8934 23.7273 23.9665 24.3603 24.0696
- 0.17N / 46: 24.0902 23.8461 23.6629 23.7442 24.0341 23.8270
-! ... by world coord
-list temp[x=130w:120W:3]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 3 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 130W 127W 124W 121W
- 1 2 3 4
- 1.5N / 50: 24.7030 24.2283 25.0596 25.3824
- 1.17N / 49: 24.4664 24.0441 24.7395 24.9891
- 0.83N / 48: 24.2617 23.8736 24.4085 24.5531
- 0.5N / 47: 24.1085 23.7576 24.0884 24.1823
- 0.17N / 46: 24.0229 23.7029 23.8301 23.9069
-
-! irregular dynamic axis (Y axis of model grid)
-! ... by subscript
-list temp[j=45:55:3]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 4 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 2.8N / 4: 25.5051 25.1016 24.8243 24.7591 24.9401
- 1.8N / 3: 24.7692 24.5204 24.3981 24.4013 24.6163
- 0.8N / 2: 24.1567 23.9991 23.8888 23.8583 23.9770
- 0.2S / 1: 23.9783 23.8819 23.7796 23.6864 23.6174
-! ... by world coord
-list temp[y=0.5s:5n:1.5]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 1.5 deg on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 4 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 4N / 4: 26.0703 25.7627 25.4253 25.1684 25.1772
- 2.5N / 3: 25.2743 24.9014 24.6921 24.6646 24.8801
- 1N / 2: 24.2464 24.0759 23.9672 23.9505 24.0906
- 0.5S / 1: 24.0685 23.9855 23.8878 23.7919 23.7022
-show grid/dyn
-Dynamic grids:
- GRID (G006) use count: 1
- name axis # pts start end
- PSXT LONGITUDE 160mr 130.5E 70.5W
- (AX004) LATITUDE 4 r 0.5S 4N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
- GRID (G003) use count: 1
- name axis # pts start end
- (AX002) X 5 i 1 6561
- normal Y
- normal Z
- normal T
- normal E
- normal F
-Dynamic axes:
- AXIS (AX004) use count: 1
- AXIS (AX002) use count: 1
-
-! ========
-! 2/96: repeat the very same commands using GX=lo:hi:delta notation
-! regular dynamic axis
-! ... by subscript
-list temp[gi=100:110:2]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 2 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 130.5W 128.5W 126.5W 124.5W 122.5W 120.5W
- 1 2 3 4 5 6
- 1.5N / 50: 24.8629 24.3351 24.2312 24.8158 25.6044 25.2192
- 1.17N / 49: 24.5966 24.1527 24.0427 24.5341 25.2208 24.8153
- 0.83N / 48: 24.3667 23.9991 23.8583 24.2480 24.7736 24.4029
- 0.5N / 47: 24.1928 23.8934 23.7273 23.9665 24.3603 24.0696
- 0.17N / 46: 24.0902 23.8461 23.6629 23.7442 24.0341 23.8270
-! ... by world coord
-list temp[gx=130w:120W:3]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 3 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 130W 127W 124W 121W
- 1 2 3 4
- 1.5N / 50: 24.7030 24.2283 25.0596 25.3824
- 1.17N / 49: 24.4664 24.0441 24.7395 24.9891
- 0.83N / 48: 24.2617 23.8736 24.4085 24.5531
- 0.5N / 47: 24.1085 23.7576 24.0884 24.1823
- 0.17N / 46: 24.0229 23.7029 23.8301 23.9069
-
-! irregular dynamic axis (Y axis of model grid)
-! ... by subscript
-list temp[gj=45:55:3]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 4 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 2.8N / 4: 25.5051 25.1016 24.8243 24.7591 24.9401
- 1.8N / 3: 24.7692 24.5204 24.3981 24.4013 24.6163
- 0.8N / 2: 24.1567 23.9991 23.8888 23.8583 23.9770
- 0.2S / 1: 23.9783 23.8819 23.7796 23.6864 23.6174
-! ... by world coord
-list temp[gy=0.5s:5n:1.5]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 1.5 deg on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 4 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 4N / 4: 26.0703 25.7627 25.4253 25.1684 25.1772
- 2.5N / 3: 25.2743 24.9014 24.6921 24.6646 24.8801
- 1N / 2: 24.2464 24.0759 23.9672 23.9505 24.0906
- 0.5S / 1: 24.0685 23.9855 23.8878 23.7919 23.7022
-
-! and a few more for pseudo-variables
-list/nohead X[GX=130e:80w:40]
- 130E / 1: 130.000
- 170E / 2: 170.000
- 150W / 3: 210.000
- 110W / 4: 250.000
-list/nohead Y[GY=10s:10n:8]
- 6N / 3: 6.0000
- 2S / 2: -2.0000
- 10S / 1: -10.0000
-list/nohead Z[GZ=0:100:30]
- 0 / 1: 0.0000
- 30 / 2: 30.0000
- 60 / 3: 60.0000
- 90 / 4: 90.0000
-list/nohead T[GT=0:100:30]
- 0 / 1: 0.0000
- 30 / 2: 30.0000
- 60 / 3: 60.0000
- 90 / 4: 90.0000
-list/nohead i[gi=1:11:5]
- 1 / 1: 1.00000
- 6 / 2: 2.00000
- 11 / 3: 3.00000
-list/nohead j[gj=1:11:5]
- 1 / 1: 1.00000
- 6 / 2: 2.00000
- 11 / 3: 3.00000
-list/nohead k[gk=1:11:5]
- 1 / 1: 1.00000
- 6 / 2: 2.00000
- 11 / 3: 3.00000
-list/nohead l[gl=1:11:5]
- 1 / 1: 1.00000
- 6 / 2: 2.00000
- 11 / 3: 3.00000
-
-! ========
-
-! multiple axes, simultaneously
-list temp[i=100:110:2,j=45:55:3]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 2 deg on X, on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 4 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 130.5W 128.5W 126.5W 124.5W 122.5W 120.5W
- 1 2 3 4 5 6
- 2.8N / 4: 25.8760 25.1016 24.7591 25.3616 25.9523 26.1052
- 1.8N / 3: 25.1492 24.5204 24.4013 25.0592 25.8372 25.5690
- 0.8N / 2: 24.3667 23.9991 23.8583 24.2480 24.7736 24.4029
- 0.2S / 1: 24.0844 23.8819 23.6864 23.6291 23.8094 23.6664
-list temp[i=100:110:2,y=0.5s:5n:1.5]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 2 deg on X, 1.5 deg on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 4 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 130.5W 128.5W 126.5W 124.5W 122.5W 120.5W
- 1 2 3 4 5 6
- 4N / 4: 26.3100 25.7627 25.1684 25.4169 26.0928 26.4324
- 2.5N / 3: 25.6892 24.9014 24.6646 25.3345 25.9631 26.0034
- 1N / 2: 24.4816 24.0759 23.9505 24.3911 24.9972 24.6091
- 0.5S / 1: 24.1489 23.9855 23.7919 23.6520 23.7144 23.6009
-list temp[x=130w:120W:3,j=45:55:3]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 3 deg on X, on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 by 4 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 130W 127W 124W 121W
- 1 2 3 4
- 2.8N / 4: 25.6905 24.7917 25.5507 26.0875
- 1.8N / 3: 24.9592 24.3997 25.3139 25.6838
- 0.8N / 2: 24.2617 23.8736 24.4085 24.5531
- 0.2S / 1: 24.0313 23.7330 23.6749 23.7233
-list temp[x=130w:120W:3,y=0.5s:5n:1.5]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 3 deg on X, 1.5 deg on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 by 4 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 130W 127W 124W 121W
- 1 2 3 4
- 4N / 4: 26.1901 25.2969 25.5832 26.3921
- 2.5N / 3: 25.4818 24.6784 25.5471 26.0151
- 1N / 2: 24.3640 23.9588 24.5740 24.7711
- 0.5S / 1: 24.1087 23.8399 23.6597 23.6433
-show grid/dyn
-Dynamic grids:
- GRID (G006) use count: 1
- name axis # pts start end
- (AX005) LONGITUDE 4 r 130W 121W
- (AX003) LATITUDE 4 r 0.5S 4N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
- GRID (G003) use count: 1
- name axis # pts start end
- (AX002) X 5 i 1 6561
- normal Y
- normal Z
- normal T
- normal E
- normal F
-Dynamic axes:
- AXIS (AX003) use count: 1
- AXIS (AX005) use count: 1
- AXIS (AX002) use count: 1
-
-! the same tests but now on a nested definition
-! regular dynamic axis
-! ... by subscript
-LET/QUIET a temp[i=90:110:2]
-! changes on 11/29 in CONFINE_AXIS this no longer an error ... a bit mysterious
-! changes on 4/98 in CONFINE_AXIS this is once again an error
-set mode ignore; list a; cancel mode ignore ! SET REGION mis-applied
-list a[i=1:6]
- VARIABLE : TEMP[I=90:110:2]
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 140.5W 138.5W 136.5W 134.5W 132.5W 130.5W
- 1 2 3 4 5 6
- 1.5N / 50: 24.9330 24.4927 25.4749 25.9529 25.6235 24.8629
- 1.17N / 49: 24.8195 24.3658 25.1683 25.8306 25.3698 24.5966
- 0.83N / 48: 24.6946 24.2521 24.7974 25.6708 25.1391 24.3667
- 0.5N / 47: 24.5726 24.1661 24.4685 25.4813 24.9214 24.1928
- 0.17N / 46: 24.4684 24.1208 24.2760 25.1658 24.7013 24.0902
-list a[i=1:6:2]
- VARIABLE : TEMP[I=90:110:2]
- regrid: 4 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 3 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 140.5W 136.5W 132.5W
- 1 2 3
- 1.5N / 50: 24.9330 25.4749 25.6235
- 1.17N / 49: 24.8195 25.1683 25.3698
- 0.83N / 48: 24.6946 24.7974 25.1391
- 0.5N / 47: 24.5726 24.4685 24.9214
- 0.17N / 46: 24.4684 24.2760 24.7013
-list a[i=-2:8:2] ! clips to allowed limits
- VARIABLE : TEMP[I=90:110:2]
- regrid: 4 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 140.5W 136.5W 132.5W 128.5W
- 1 2 3 4
- 1.5N / 50: 24.9330 25.4749 25.6235 24.3351
- 1.17N / 49: 24.8195 25.1683 25.3698 24.1527
- 0.83N / 48: 24.6946 24.7974 25.1391 23.9991
- 0.5N / 47: 24.5726 24.4685 24.9214 23.8934
- 0.17N / 46: 24.4684 24.2760 24.7013 23.8461
-list a[x=135w:125w]
- VARIABLE : TEMP[I=90:110:2]
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 134.5W 132.5W 130.5W 128.5W 126.5W 124.5W
- 4 5 6 7 8 9
- 1.5N / 50: 25.9529 25.6235 24.8629 24.3351 24.2312 24.8158
- 1.17N / 49: 25.8306 25.3698 24.5966 24.1527 24.0427 24.5341
- 0.83N / 48: 25.6708 25.1391 24.3667 23.9991 23.8583 24.2480
- 0.5N / 47: 25.4813 24.9214 24.1928 23.8934 23.7273 23.9665
- 0.17N / 46: 25.1658 24.7013 24.0902 23.8461 23.6629 23.7442
-list a[x=135w:125w:3]
- VARIABLE : TEMP[I=90:110:2]
- regrid: 3 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 135W 132W 129W 126W
- 1 2 3 4
- 1.5N / 50: 25.8334 25.4333 24.4671 24.3773
- 1.17N / 49: 25.6650 25.1765 24.2637 24.1656
- 0.83N / 48: 25.4524 24.9460 24.0910 23.9557
- 0.5N / 47: 25.2281 24.7393 23.9683 23.7871
- 0.17N / 46: 24.9433 24.5486 23.9072 23.6832
-! ... by world coord
-LET/QUIET a = temp[x=130w:120W:3]
-! changes on 11/29 in CONFINE_AXIS this no longer an error ... a bit mysterious
-! changes on 4/98 in CONFINE_AXIS this is once again an error
-! Changes 5/2007 in GET_VAR_CONTEXT this is no longer an error (acm) !
-set mode ignore; list a; cancel mode ignore ! SET REGION mis-applied
- VARIABLE : TEMP[X=130W:120W:3]
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 130W 127W 124W 121W
- 1 2 3 4
- 1.5N / 50: 24.7030 24.2283 25.0596 25.3824
- 1.17N / 49: 24.4664 24.0441 24.7395 24.9891
- 0.83N / 48: 24.2617 23.8736 24.4085 24.5531
- 0.5N / 47: 24.1085 23.7576 24.0884 24.1823
- 0.17N / 46: 24.0229 23.7029 23.8301 23.9069
-list a[i=1:4]
- VARIABLE : TEMP[X=130W:120W:3]
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 130W 127W 124W 121W
- 1 2 3 4
- 1.5N / 50: 24.7030 24.2283 25.0596 25.3824
- 1.17N / 49: 24.4664 24.0441 24.7395 24.9891
- 0.83N / 48: 24.2617 23.8736 24.4085 24.5531
- 0.5N / 47: 24.1085 23.7576 24.0884 24.1823
- 0.17N / 46: 24.0229 23.7029 23.8301 23.9069
-list a[i=1:4:2]
- VARIABLE : TEMP[X=130W:120W:3]
- regrid: 6 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 2 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 130W 124W
- 1 2
- 1.5N / 50: 24.7030 25.0596
- 1.17N / 49: 24.4664 24.7395
- 0.83N / 48: 24.2617 24.4085
- 0.5N / 47: 24.1085 24.0884
- 0.17N / 46: 24.0229 23.8301
-list a[i=-2:8:2] ! clips to allowed limits
- VARIABLE : TEMP[X=130W:120W:3]
- regrid: 6 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 2 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 130W 124W
- 1 2
- 1.5N / 50: 24.7030 25.0596
- 1.17N / 49: 24.4664 24.7395
- 0.83N / 48: 24.2617 24.4085
- 0.5N / 47: 24.1085 24.0884
- 0.17N / 46: 24.0229 23.8301
-list a[x=129w:120w:2]
- VARIABLE : TEMP[X=130W:120W:3]
- regrid: 2 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129W 127W 125W 123W 121W
- 1 2 3 4 5
- 1.5N / 50: 24.5447 24.2283 24.7825 25.1672 25.3824
- 1.17N / 49: 24.3256 24.0441 24.5077 24.8227 24.9891
- 0.83N / 48: 24.1323 23.8736 24.2302 24.4567 24.5531
- 0.5N / 47: 23.9915 23.7576 23.9781 24.1197 24.1823
- 0.17N / 46: 23.9163 23.7029 23.7877 23.8557 23.9069
-list a[x=138w:110w:5]
- VARIABLE : TEMP[X=130W:120W:3]
- regrid: 5 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 138W 133W 128W 123W 118W 113W
- 1 2 3 4 5 6
- 1.5N / 50: .... .... 24.3865 25.1672 .... ....
- 1.17N / 49: .... .... 24.1849 24.8227 .... ....
- 0.83N / 48: .... .... 24.0029 24.4567 .... ....
- 0.5N / 47: .... .... 23.8746 24.1197 .... ....
- 0.17N / 46: .... .... 23.8096 23.8557 .... ....
-show grid/dyn
-Dynamic grids:
- GRID (G006) use count: 1
- name axis # pts start end
- (AX003) LONGITUDE 6 r 138W 113W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
- GRID (G003) use count: 1
- name axis # pts start end
- (AX005) LONGITUDE 4 r 130W 121W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- AXIS (AX003) use count: 1
- AXIS (AX005) use count: 1
-
-! irregular dynamic axis
-! ... by subscript
-LET/QUIET a = temp[j=45:65:3]
-! changes on 11/29 in CONFINE_AXIS this no longer an error ... a bit mysterious
-! changes on 4/98 in CONFINE_AXIS this is once again an error
-set mode ignore; list a; cancel mode ignore ! SET REGION mis-applied
-list a[j=1:6]
- VARIABLE : TEMP[J=45:65:3]
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 6 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 4.8N / 6: 26.3655 26.1878 26.0268 25.9290 25.9885
- 3.8N / 5: 26.0047 25.6791 25.3175 25.0630 25.0886
- 2.8N / 4: 25.5051 25.1016 24.8243 24.7591 24.9401
- 1.8N / 3: 24.7692 24.5204 24.3981 24.4013 24.6163
- 0.8N / 2: 24.1567 23.9991 23.8888 23.8583 23.9770
- 0.2S / 1: 23.9783 23.8819 23.7796 23.6864 23.6174
-list a[j=1:6:2]
- VARIABLE : TEMP[J=45:65:3]
- regrid: on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 3 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 3.8N / 3: 26.0047 25.6791 25.3175 25.0630 25.0886
- 1.8N / 2: 24.7692 24.5204 24.3981 24.4013 24.6163
- 0.2S / 1: 23.9783 23.8819 23.7796 23.6864 23.6174
-list a[j=-2:8:2] ! clips to allowed limits
- VARIABLE : TEMP[J=45:65:3]
- regrid: on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 4 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 5.8N / 4: 26.6294 26.5670 26.5361 26.5638 26.6554
- 3.8N / 3: 26.0047 25.6791 25.3175 25.0630 25.0886
- 1.8N / 2: 24.7692 24.5204 24.3981 24.4013 24.6163
- 0.2S / 1: 23.9783 23.8819 23.7796 23.6864 23.6174
-list a[y=1S:8N:2]
- VARIABLE : TEMP[J=45:65:3]
- regrid: 2 deg on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 7N / 5: .... .... .... .... ....
- 5N / 4: 26.4095 26.2510 26.1116 26.0348 26.0997
- 3N / 3: 25.5883 25.1978 24.9065 24.8097 24.9649
- 1N / 2: 24.2587 24.0860 23.9737 23.9488 24.0835
- 1S / 1: .... .... .... .... ....
-! ... by world coord
-LET/QUIET a = temp[y=3.5s:5n:1.5]
-list a[j=1:6:2]
- VARIABLE : TEMP[Y=3.5S:5N:1.5]
- regrid: 3 deg on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 3 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 2.5N / 3: 25.2743 24.9014 24.6921 24.6646 24.8801
- 0.5S / 2: 24.0685 23.9855 23.8878 23.7919 23.7022
- 3.5S / 1: 25.1885 25.1493 25.0939 25.0408 25.0261
-list a[j=-2:8:2]
- VARIABLE : TEMP[Y=3.5S:5N:1.5]
- regrid: 3 deg on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 3 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 2.5N / 3: 25.2743 24.9014 24.6921 24.6646 24.8801
- 0.5S / 2: 24.0685 23.9855 23.8878 23.7919 23.7022
- 3.5S / 1: 25.1885 25.1493 25.0939 25.0408 25.0261
-list a[y=1S:8N:2]
- VARIABLE : TEMP[Y=3.5S:5N:1.5]
- regrid: 2 deg on Y
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- 7N / 5: .... .... .... .... ....
- 5N / 4: .... .... .... .... ....
- 3N / 3: 25.5396 25.1885 24.9365 24.8326 24.9791
- 1N / 2: 24.2464 24.0759 23.9672 23.9505 24.0906
- 1S / 1: 24.2763 24.2177 24.1436 24.0651 23.9786
-
-! modulo (regular) dynamic axis
-set axis/modulo psxt
-! ... by subscript
-list temp[i=155:170:2]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 2 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 8 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 75.5W 73.5W 71.5W 69.5W 67.5W 65.5W 63.5W 61.5W
- 1 2 3 4 5 6 7 8
- 1.5N / 50: .... .... .... .... 29.5035 29.3966 29.4136 29.5107
- 1.17N / 49: .... .... .... .... 29.5373 29.4191 29.4462 29.5279
- 0.83N / 48: .... .... .... .... 29.6002 29.4689 29.4873 29.5544
- 0.5N / 47: .... .... .... .... 29.6787 29.5330 29.5361 29.5888
- 0.17N / 46: .... .... .... .... 29.7929 29.5966 29.5858 29.6187
-! ... by world coord
-list temp[x=90w:60W:4]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 4 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 8 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 90W 86W 82W 78W 74W 70W 66W 62W
- 1 2 3 4 5 6 7 8
- 1.5N / 50: 27.2194 27.5576 27.9470 .... .... .... 29.3528 29.4885
- 1.17N / 49: 27.1122 27.4131 27.8883 .... .... .... 29.3882 29.5084
- 0.83N / 48: 26.9645 27.2528 27.7639 .... .... .... 29.4644 29.5380
- 0.5N / 47: 26.7776 27.0851 27.5584 .... .... .... 29.5482 29.5745
- 0.17N / 46: 26.5410 26.8980 27.2770 .... .... .... 29.6283 29.6082
-show grid/dyn
-Dynamic grids:
- GRID (G006) use count: 1
- name axis # pts start end
- (AX005) LONGITUDE 8 r 90W 62W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
- GRID (G003) use count: 1
- name axis # pts start end
- PSXT LONGITUDE 160mr 130.5E 70.5W
- (AX002) LATITUDE 6 r 3.5S 4N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- AXIS (AX005) use count: 1
- AXIS (AX002) use count: 1
-
-! nested modulo (the dynamic axis is **NOT** modulo)
-! ... by subscript
-LET/QUIET a temp[i=155:170:2]
-! changes on 11/29 in CONFINE_AXIS this no longer an error ... a bit mysterious
-! changes on 4/98 in CONFINE_AXIS this is once again an error
-set mode ignore; list a; cancel mode ignore ! SET REGION mis-applied
-list a[i=1:6]
- VARIABLE : TEMP[I=155:170:2]
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 75.5W 73.5W 71.5W 69.5W 67.5W 65.5W
- 1 2 3 4 5 6
- 1.5N / 50: .... .... .... .... 29.5035 29.3966
- 1.17N / 49: .... .... .... .... 29.5373 29.4191
- 0.83N / 48: .... .... .... .... 29.6002 29.4689
- 0.5N / 47: .... .... .... .... 29.6787 29.5330
- 0.17N / 46: .... .... .... .... 29.7929 29.5966
-list a[i=1:6:2]
- VARIABLE : TEMP[I=155:170:2]
- regrid: 4 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 3 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 75.5W 71.5W 67.5W
- 1 2 3
- 1.5N / 50: .... .... 29.5035
- 1.17N / 49: .... .... 29.5373
- 0.83N / 48: .... .... 29.6002
- 0.5N / 47: .... .... 29.6787
- 0.17N / 46: .... .... 29.7929
-list a[i=-2:8:2] ! clips to allowed limits
- VARIABLE : TEMP[I=155:170:2]
- regrid: 4 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 75.5W 71.5W 67.5W 63.5W
- 1 2 3 4
- 1.5N / 50: .... .... 29.5035 29.4136
- 1.17N / 49: .... .... 29.5373 29.4462
- 0.83N / 48: .... .... 29.6002 29.4873
- 0.5N / 47: .... .... 29.6787 29.5361
- 0.17N / 46: .... .... 29.7929 29.5858
-list a[x=75w:65w] ! limits ignored --> behavior could be improved
- VARIABLE : TEMP[I=155:170:2]
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 75.5W 73.5W 71.5W 69.5W 67.5W 65.5W
- 1 2 3 4 5 6
- 1.5N / 50: .... .... .... .... 29.5035 29.3966
- 1.17N / 49: .... .... .... .... 29.5373 29.4191
- 0.83N / 48: .... .... .... .... 29.6002 29.4689
- 0.5N / 47: .... .... .... .... 29.6787 29.5330
- 0.17N / 46: .... .... .... .... 29.7929 29.5966
-list a[x=85w:45w:5]
- VARIABLE : TEMP[I=155:170:2]
- regrid: 5 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 9 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 85W 80W 75W 70W 65W 60W 55W 50W 45W
- 1 2 3 4 5 6 7 8 9
- 1.5N / 50: .... .... .... .... 29.4009 .... .... .... ....
- 1.17N / 49: .... .... .... .... 29.4259 .... .... .... ....
- 0.83N / 48: .... .... .... .... 29.4735 .... .... .... ....
- 0.5N / 47: .... .... .... .... 29.5338 .... .... .... ....
- 0.17N / 46: .... .... .... .... 29.5939 .... .... .... ....
-! ... by world coord
-LET/QUIET a = temp[x=90w:60W:4]
-! changes on 11/29 in CONFINE_AXIS this no longer an error ... a bit mysterious
-! changes on 4/98 in CONFINE_AXIS this is once again an error
-! Changes 5/2007 in GET_VAR_CONTEXT this is no longer an error (acm) !
-set mode ignore; list a; cancel mode ignore ! SET REGION mis-applied
- VARIABLE : TEMP[X=90W:60W:4]
- FILENAME : gtsa056_1.cdf
- SUBSET : 8 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 90W 86W 82W 78W 74W 70W 66W 62W
- 1 2 3 4 5 6 7 8
- 1.5N / 50: 27.2194 27.5576 27.9470 .... .... .... 29.3528 29.4885
- 1.17N / 49: 27.1122 27.4131 27.8883 .... .... .... 29.3882 29.5084
- 0.83N / 48: 26.9645 27.2528 27.7639 .... .... .... 29.4644 29.5380
- 0.5N / 47: 26.7776 27.0851 27.5584 .... .... .... 29.5482 29.5745
- 0.17N / 46: 26.5410 26.8980 27.2770 .... .... .... 29.6283 29.6082
-list a[i=1:6]
- VARIABLE : TEMP[X=90W:60W:4]
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 90W 86W 82W 78W 74W 70W
- 1 2 3 4 5 6
- 1.5N / 50: 27.2194 27.5576 27.9470 .... .... ....
- 1.17N / 49: 27.1122 27.4131 27.8883 .... .... ....
- 0.83N / 48: 26.9645 27.2528 27.7639 .... .... ....
- 0.5N / 47: 26.7776 27.0851 27.5584 .... .... ....
- 0.17N / 46: 26.5410 26.8980 27.2770 .... .... ....
-list a[i=1:6:2]
- VARIABLE : TEMP[X=90W:60W:4]
- regrid: 8 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 3 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 90W 82W 74W
- 1 2 3
- 1.5N / 50: 27.2194 27.9470 ....
- 1.17N / 49: 27.1122 27.8883 ....
- 0.83N / 48: 26.9645 27.7639 ....
- 0.5N / 47: 26.7776 27.5584 ....
- 0.17N / 46: 26.5410 27.2770 ....
-list a[i=-2:8:2]
- VARIABLE : TEMP[X=90W:60W:4]
- regrid: 8 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 4 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 90W 82W 74W 66W
- 1 2 3 4
- 1.5N / 50: 27.2194 27.9470 .... 29.3528
- 1.17N / 49: 27.1122 27.8883 .... 29.3882
- 0.83N / 48: 26.9645 27.7639 .... 29.4644
- 0.5N / 47: 26.7776 27.5584 .... 29.5482
- 0.17N / 46: 26.5410 27.2770 .... 29.6283
-list a[x=129w:120w:2] ! no overlap
- VARIABLE : TEMP[X=90W:60W:4]
- regrid: 2 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 129W127W125W123W121W
- 1 2 3 4 5
- 1.5N / 50:....................
- 1.17N / 49:....................
- 0.83N / 48:....................
- 0.5N / 47:....................
- 0.17N / 46:....................
-list a[x=92w:75w:3]
- VARIABLE : TEMP[X=90W:60W:4]
- regrid: 3 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 92W 89W 86W 83W 80W 77W
- 1 2 3 4 5 6
- 1.5N / 50: .... 27.3039 27.5576 27.8497 .... ....
- 1.17N / 49: .... 27.1874 27.4131 27.7695 .... ....
- 0.83N / 48: .... 27.0366 27.2528 27.6362 .... ....
- 0.5N / 47: .... 26.8545 27.0851 27.4401 .... ....
- 0.17N / 46: .... 26.6303 26.8980 27.1822 .... ....
-list a[x=101w:50w:6]
- VARIABLE : TEMP[X=90W:60W:4]
- regrid: 6 deg on X
- FILENAME : gtsa056_1.cdf
- SUBSET : 9 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 15-JAN-1982 14:00
- 101W 95W 89W 83W 77W 71W 65W 59W 53W
- 1 2 3 4 5 6 7 8 9
- 1.5N / 50: .... .... 27.3039 27.8497 .... .... 29.3867 .... ....
- 1.17N / 49: .... .... 27.1874 27.7695 .... .... 29.4183 .... ....
- 0.83N / 48: .... .... 27.0366 27.6362 .... .... 29.4828 .... ....
- 0.5N / 47: .... .... 26.8545 27.4401 .... .... 29.5548 .... ....
- 0.17N / 46: .... .... 26.6303 27.1822 .... .... 29.6233 .... ....
-cancel axis/modulo psxt
-show grid/dyn
-Dynamic grids:
- GRID (G006) use count: 1
- name axis # pts start end
- (AX002) LONGITUDE 9 r 101W 53W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
- GRID (G003) use count: 1
- name axis # pts start end
- (AX003) LONGITUDE 8 r 90W 62W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
- normal E
- normal F
-Dynamic axes:
- AXIS (AX002) use count: 1
- AXIS (AX003) use count: 1
-
-! calendar axes
-list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave] ! 6-day ave
- !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave] ! 6-day ave
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 144 hour on T at AVE
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 points (TIME)
- LONGITUDE: 180E (interpolated)
- LATITUDE : 0 (interpolated)
- DEPTH (m): 5
- 15-JAN-1982 00 / 1: 27.7767
- 21-JAN-1982 00 / 2: 27.7818
- 27-JAN-1982 00 / 3: 27.6992
- 02-FEB-1982 00 / 4: 27.8253
- 08-FEB-1982 00 / 5: 27.7319
-! ... note that the "explicit limits" changes to Ferret V4.20 mean that
-! ... an explicit L=1 qualifying the command **WILL** apply
-list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
- !-> list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: 144 hour on T at AVE
- FILENAME : gtsa056_1.cdf
- LONGITUDE: 180E (interpolated)
- LATITUDE : 0 (interpolated)
- DEPTH (m): 5
- TIME : 15-JAN-1982 00:00
- 27.7767
-list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`] ! pseudo-var
- !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48] ! pseudo-var
- VARIABLE : T
- axis (AX004)
- SUBSET : 3 points (TIME)
- 15-JAN-1982 00 / 1: 723925.
- 17-JAN-1982 00 / 2: 723927.
- 19-JAN-1982 00 / 3: 723929.
-
-cancel var/all
-show grid/dyn
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- no implicit axes
-set axis/modulo psxt
-
-set mode/last diag
-
-GO bn_reset
-cancel mode verify
-GO bn_cdf
-! bn320_cdf
-! benchmark to test netCDF input and output
-! requires version 3.20 or later
-! updated from version 2.3 1/26/95
-! added reverse-axis tests 3/2/95
-! V5 *sh* 7/99 -- added /clobber
-
-! test many simultaneous netCDF files
-GO bn_cdf.sub1
-! bn230_cdf.sub1
-! benchmark to test multiple netCDF simultaneous accesses
-! requires version 2.30 or later
-! 6/92
-
-! V5 *sh* 7/99 -- clean up files before writing
-
-cancel region
-canc var/all
-cancel data/all
-
-! delete old ones
-sp rm -f test0[a-p].cdf
-
-! write a bunch of em
-list/format=cdf/append/l=1:500/file=test0a.cdf l
-list/format=cdf/append/l=1:500/file=test0b.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0c.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0d.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0e.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0f.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0g.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0h.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0i.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0j.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0k.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0l.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0m.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0n.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0o.cdf/rigid l
-list/format=cdf/append/l=1:500/file=test0p.cdf/rigid l
-
-! initialize all at once
-set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test0h, test0i, test0j, test0k, test0l, test0n, test0m, test0o, test0p
-show data 1
- currently SET data sets:
- 1> ./test0a.cdf
- name title I J K L M N
- L_ L ... ... ... 1:500 ... ...
- (axis ABSTRACT)
-
-show data/br
- currently SET data sets:
- 1> ./test0a.cdf
- 2> ./test0b.cdf
- 3> ./test0c.cdf
- 4> ./test0d.cdf
- 5> ./test0e.cdf
- 6> ./test0f.cdf
- 7> ./test0g.cdf
- 8> ./test0h.cdf
- 9> ./test0i.cdf
- 10> ./test0j.cdf
- 11> ./test0k.cdf
- 12> ./test0l.cdf
- 13> ./test0n.cdf
- 14> ./test0m.cdf
- 15> ./test0o.cdf
- 16> ./test0p.cdf (default)
-
-! test access to one
-stat l_[d=1]
-
- L
- axis ABSTRACT
- X: N/A
- Y: N/A
- Z: N/A
- T: 0.5 to 500.5
- E: N/A
- F: N/A
- DATA SET: ./test0a.cdf
-
- Total # of data points: 500 (1*1*1*500*1*1)
- # flagged as bad data: 0
- Minimum value: 1
- Maximum value: 500
- Mean value: 250.5 (unweighted average)
- Standard deviation: 144.48
-
-! test access to all
-stat l_[d=1]-l_[d=2]+l_[d=3]-l_[d=4]+l_[d=5]-l_[d=6]+l_[d=7]-l_[d=8]+l_[d=9]-l_[d=10]+l_[d=11]-l_[d=12]+l_[d=13]-l_[d=14]+l_[d=15]-l_[d=16]
-
- L_[D=test0a]-L_[D=test0b]+L_[D=test0c]-L_[D=test0d]+L_[D=test0e]-L_[D=test0f]+L_[D=test0g]-L_[D=test0h]+L_[D=test0i]-L_[D=test0j]+L_[D=test0k]-L_[D=test0l]+L_[D=test0n]-L_[D=test0m
- X: N/A
- Y: N/A
- Z: N/A
- T: 0.5 to 500.5
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 500 (1*1*1*500*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-cancel data/all
-
-! test abstract variable io
-GO bn_cdf.sub2
-! bn230_cdf.sub2
-! benchmark to test abstract variable netCDF input and output
-! requires version 2.30 or later
-! 6/92
-
-! V5 *sh* 7/99 added /CLOBBER
-
-cancel region
-canc var/all
-cancel data/all
-
-! define a realistic time series grid
-define axis/t="1-jan-1902":"1-jan-2010":1/unit=day tcentury
-define grid/like=abstract/t=tcentury gcentury
-let tlong = t[g=gcentury]
-
-let i1 = i
-let j1 = j
-let k1 = k
-let l1 = l[g=gcentury]
-let l2 = l
-let ij = i+j
-let ik = i+k
-let il = i+l1
-let jk = j+k
-let jl = j+l1
-let kl = k+l1
-let ijk = i+j+k
-let ikl = i+k+l1
-let ijl = i+j+l1
-let jkl = j+k+l1
-let ijkl = i+j+k+l1
-let ijk2 = i+j+k
-let ikl2 = i+k+l1
-let ijl2 = i+j+l1
-let jkl2 = j+k+l1
-let iavejkl = ijkl[i=@ave]
-let ijavekl = ijkl[j=@ave]
-let ijkavel = ijkl[k=@ave]
-let ijklave = ijkl[l=@ave]
-
-! a bunch of basic geometries
-! 1d
-list/format=cdf/i=1:10/clobber/file=test_abs.cdf i1 ! not /APPEND - must be new
-list/format=cdf/j=1:20/append/file=test_abs.cdf j1
-list/format=cdf/k=1:100/append/file=test_abs.cdf k1
-list/format=cdf/l=1:10/append/file=test_abs.cdf l1 ! record axis
-list/format=cdf/l=1:10/append/file=test_abs.cdf l2 ! rigid axis
-
-! 2D
-list/format=cdf/i=1:10/j=1:20/append/file=test_abs.cdf ij
-list/format=cdf/i=1:10/k=1:100/append/file=test_abs.cdf ik
-list/format=cdf/i=1:10/l=5:10/append/file=test_abs.cdf il
-list/format=cdf/k=1:100/j=1:20/append/file=test_abs.cdf jk
-
-!3D
-set region/i=1:10/j=1:20/k=1:100/l=4:8
-list/format=cdf/append/file=test_abs.cdf ijk
-list/format=cdf/append/file=test_abs.cdf ikl
-list/format=cdf/append/file=test_abs.cdf ijl
-list/format=cdf/append/file=test_abs.cdf jkl
-
-!4D
-list/format=cdf/append/file=test_abs.cdf ijkl
-
-! extend along time axis and write sub-regions
-! (note: this may leave undefined regions in other variables)
-list/format=cdf/append/file=test_abs.cdf/i=1:5 /j=1:5 /l=11:12 ijl
-list/format=cdf/append/file=test_abs.cdf/i=6:10/j=1:5 /l=11:12 ijl
-list/format=cdf/append/file=test_abs.cdf/i=1:5 /j=6:10/l=11:12 ijl
-list/format=cdf/append/file=test_abs.cdf/i=6:10/j=6:10/l=11:12 ijl
-
-! rewrite a sub-region in the middle of the data
-list/format=cdf/append/file=test_abs.cdf/i=6:8/j=6:8/l=8:10/k=3:5 ijkl
-
-! check documentation of transforms
-list/format=cdf/append/file=test_abs.cdf ijk2[i=@ave]
-list/format=cdf/append/file=test_abs.cdf ikl2[i=@ave,k=@sbx:3]
-list/format=cdf/append/file=test_abs.cdf ijl2[i=@ave,j=@ave]
-list/format=cdf/append/file=test_abs.cdf jkl2[k=@ave,l=@ave]
-list/format=cdf/append/file=test_abs.cdf iavejkl
-list/format=cdf/append/file=test_abs.cdf ijavekl
-list/format=cdf/append/file=test_abs.cdf ijkavel
-list/format=cdf/append/file=test_abs.cdf ijklave
-
-! look at what we've created - time axis should be regular
-set data/format=cdf test_abs
-show data/full
- currently SET data sets:
- 1> ./test_abs.cdf (default)
-
- name title I J K L M N
- I1 I 1:10 ... ... ... ... ...
- on grid GEU1 with -1.E+34 for missing data
- X=0.5:10.5
- J1 J ... 1:20 ... ... ... ...
- on grid GEU2 with -1.E+34 for missing data
- Y=0.5:20.5
- K1 K ... ... 1:100 ... ... ...
- on grid GEU3 with -1.E+34 for missing data
- Z=0.5:100.5
- L1 L[G=GCENTURY] ... ... ... 1:12 ... ...
- on grid GEU4 with -1.E+34 for missing data
-
- L2 L ... ... ... 1:10 ... ...
- on grid GEU5 with -1.E+34 for missing data
-
- IJ I+J 1:10 1:20 ... ... ... ...
- on grid GEU6 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5
- IK I+K 1:10 ... 1:100 ... ... ...
- on grid GEU7 with -1.E+34 for missing data
- X=0.5:10.5 Z=0.5:100.5
- IL I+L1 1:10 ... ... 1:12 ... ...
- on grid GEU8 with -1.E+34 for missing data
- X=0.5:10.5
- JK J+K ... 1:20 1:100 ... ... ...
- on grid GEU9 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IJK I+J+K 1:10 1:20 1:100 ... ... ...
- on grid GEU10 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5 Z=0.5:100.5
- IKL I+K+L1 1:10 ... 1:100 1:12 ... ...
- on grid GEU11 with -1.E+34 for missing data
- X=0.5:10.5 Z=0.5:100.5
- IJL I+J+L1 1:10 1:20 ... 1:12 ... ...
- on grid GEU12 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5
- JKL J+K+L1 ... 1:20 1:100 1:12 ... ...
- on grid GEU13 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IJKL I+J+K+L1 1:10 1:20 1:100 1:12 ... ...
- on grid GEU14 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5 Z=0.5:100.5
- IJK2 I+J+K ... 1:20 1:100 ... ... ...
- (X=0.5:10.5 at AVE)
- on grid GEU9 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IKL2 I+K+L1 ... ... 1:100 1:12 ... ...
- (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
- on grid GEU15 with -1.E+34 for missing data
- Z=0.5:100.5
- IJL2 I+J+L1 ... ... ... 1:12 ... ...
- (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
- on grid GEU4 with -1.E+34 for missing data
-
- JKL2 J+K+L1 ... 1:20 ... ... ... ...
- (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
- on grid GEU2 with -1.E+34 for missing data
- Y=0.5:20.5
- IAVEJKL IJKL[I=@AVE] ... 1:20 1:100 1:12 ... ...
- (X=0.5:10.5)
- on grid GEU13 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IJAVEKL IJKL[J=@AVE] 1:10 ... 1:100 1:12 ... ...
- (Y=0.5:20.5)
- on grid GEU11 with -1.E+34 for missing data
- X=0.5:10.5 Z=0.5:100.5
- IJKAVEL IJKL[K=@AVE] 1:10 1:20 ... 1:12 ... ...
- (Z=0.5:100.5)
- on grid GEU12 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5
- IJKLAVE IJKL[L=@AVE] 1:10 1:20 1:100 ... ... ...
- (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
- on grid GEU10 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5 Z=0.5:100.5
-
- time range: 01-JAN-1902 00:00 to 12-JAN-1902 00:00
-
-cancel variable ijkl
-show grid ijkl
- GRID GEU14
- name axis # pts start end
- XAX1_10 X 10 r 1 10
- YAX1_20 Y 20 r 1 20
- ZAX1_100 Z 100 r 1 100
- TCENTURY1 TIME 12 r 01-JAN-1902 00:00 12-JAN-1902 00:00
- normal E
- normal F
-cancel data test_abs
-
-! make the time axis irregular by leaving out l=13
-list/format=cdf/l=14:16/append/file=test_abs.cdf l1
-set data/format=cdf test_abs
-show data/full
- currently SET data sets:
- 1> ./test_abs.cdf (default)
-
- name title I J K L M N
- I1 I 1:10 ... ... ... ... ...
- on grid GEU1 with -1.E+34 for missing data
- X=0.5:10.5
- J1 J ... 1:20 ... ... ... ...
- on grid GEU2 with -1.E+34 for missing data
- Y=0.5:20.5
- K1 K ... ... 1:100 ... ... ...
- on grid GEU3 with -1.E+34 for missing data
- Z=0.5:100.5
- L1 L[G=GCENTURY] ... ... ... 1:15 ... ...
- on grid GEU4 with -1.E+34 for missing data
-
- L2 L ... ... ... 1:10 ... ...
- on grid GEU5 with -1.E+34 for missing data
-
- IJ I+J 1:10 1:20 ... ... ... ...
- on grid GEU6 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5
- IK I+K 1:10 ... 1:100 ... ... ...
- on grid GEU7 with -1.E+34 for missing data
- X=0.5:10.5 Z=0.5:100.5
- IL I+L1 1:10 ... ... 1:15 ... ...
- on grid GEU8 with -1.E+34 for missing data
- X=0.5:10.5
- JK J+K ... 1:20 1:100 ... ... ...
- on grid GEU9 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IJK I+J+K 1:10 1:20 1:100 ... ... ...
- on grid GEU10 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5 Z=0.5:100.5
- IKL I+K+L1 1:10 ... 1:100 1:15 ... ...
- on grid GEU11 with -1.E+34 for missing data
- X=0.5:10.5 Z=0.5:100.5
- IJL I+J+L1 1:10 1:20 ... 1:15 ... ...
- on grid GEU12 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5
- JKL J+K+L1 ... 1:20 1:100 1:15 ... ...
- on grid GEU13 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IJKL I+J+K+L1 1:10 1:20 1:100 1:15 ... ...
- on grid GEU14 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5 Z=0.5:100.5
- IJK2 I+J+K ... 1:20 1:100 ... ... ...
- (X=0.5:10.5 at AVE)
- on grid GEU9 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IKL2 I+K+L1 ... ... 1:100 1:15 ... ...
- (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
- on grid GEU15 with -1.E+34 for missing data
- Z=0.5:100.5
- IJL2 I+J+L1 ... ... ... 1:15 ... ...
- (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
- on grid GEU4 with -1.E+34 for missing data
-
- JKL2 J+K+L1 ... 1:20 ... ... ... ...
- (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
- on grid GEU2 with -1.E+34 for missing data
- Y=0.5:20.5
- IAVEJKL IJKL[I=@AVE] ... 1:20 1:100 1:15 ... ...
- (X=0.5:10.5)
- on grid GEU13 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IJAVEKL IJKL[J=@AVE] 1:10 ... 1:100 1:15 ... ...
- (Y=0.5:20.5)
- on grid GEU11 with -1.E+34 for missing data
- X=0.5:10.5 Z=0.5:100.5
- IJKAVEL IJKL[K=@AVE] 1:10 1:20 ... 1:15 ... ...
- (Z=0.5:100.5)
- on grid GEU12 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5
- IJKLAVE IJKL[L=@AVE] 1:10 1:20 1:100 ... ... ...
- (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
- on grid GEU10 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5 Z=0.5:100.5
-
- time range: 01-JAN-1902 00:00 to 16-JAN-1902 00:00
-
-show grid ijkl
- GRID GEU14
- name axis # pts start end
- XAX1_10 X 10 r 1 10
- YAX1_20 Y 20 r 1 20
- ZAX1_100 Z 100 r 1 100
- TCENTURY1 TIME 15 i 01-JAN-1902 00:00 16-JAN-1902 00:00
- normal E
- normal F
-
-
-! list long time series using a rigid (non-record axis) time axis --> FAST
-list/clobber/format=cdf/l=1:300000/rigid/file=test2.cdf l ! without record dimension
-! list time series using the record dimension --> SLOW (1/50th as long axis)
-list/clobber/format=cdf/l=1:5000 l ! auto-filename
-list/clobber/format=cdf/t="1-jan-1902":"1-jan-2010"/rigid tlong ! auto-filename
-
-
-cancel data/all
-! deliberate errors
-set mode ignore
-list/format=cdf/l=1:10/file=test_abs.cdf l ! file exists error
-list/format=cdf/i=5:15/l=5:10/append/file=test_abs.cdf il ! inconsistent i limits
-list/format=cdf/i=1:10/j=20:25/append/file=test_abs.cdf ij ! inconsistent j limits
-list/format=cdf/append/file=test_abs.cdf ijl2 ! i and j not avg'd
-list/format=cdf/append/file=test_abs.cdf ijkl[k=@ave] ! k axis averaged
-list/format=cdf/l=13/append/file=test_abs.cdf l1 ! inconsistent time pt
-set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test0h, test0i, test0j, test0k, test0l, test0n, test0m, test0o, test0p
-list/clobber/format=cdf/i=1:10 i ! too many netcdf files
-canc data/all
-cancel mode ignore
-
-! show the grids created
-cancel variables/all
-set data/format=cdf test_abs
-show grid j1 jkl jkl2 iavejkl ijkl
- GRID GEU2
- name axis # pts start end
- normal X
- YAX1_20 Y 20 r 1 20
- normal Z
- normal T
- normal E
- normal F
- GRID GEU13
- name axis # pts start end
- normal X
- YAX1_20 Y 20 r 1 20
- ZAX1_100 Z 100 r 1 100
- TCENTURY1 TIME 15 i 01-JAN-1902 00:00 16-JAN-1902 00:00
- normal E
- normal F
- GRID GEU2
- name axis # pts start end
- normal X
- YAX1_20 Y 20 r 1 20
- normal Z
- normal T
- normal E
- normal F
- GRID GEU13
- name axis # pts start end
- normal X
- YAX1_20 Y 20 r 1 20
- ZAX1_100 Z 100 r 1 100
- TCENTURY1 TIME 15 i 01-JAN-1902 00:00 16-JAN-1902 00:00
- normal E
- normal F
- GRID GEU14
- name axis # pts start end
- XAX1_10 X 10 r 1 10
- YAX1_20 Y 20 r 1 20
- ZAX1_100 Z 100 r 1 100
- TCENTURY1 TIME 15 i 01-JAN-1902 00:00 16-JAN-1902 00:00
- normal E
- normal F
-cancel data test_abs
-
-! test TMAP data io
-GO bn_cdf.sub3 ! matches old outputs by using /HEADING=enhanced
-! bn320_cdf.sub3
-! benchmark to test netCDF input and output of TMAP data set variables
-! this routine added 1/26/95 to test the SAVE/HEADING=enhanced option
-
-! V5 *sh* 7/99 added /CLOBBER
-
-cancel data/all
-cancel variables/all
-cancel region
-
-use gtbc011
-
-let i1 = x[g=temp,i=1:10]
-let j1 = y[g=temp,j=5:10]
-let k1 = z[g=u,k=5:15]
-let l1 = l[g=u,l=1:3]
-let l2 = l
-let ij = taux[l=@ave]
-let ik = i1+k1
-let il = i1+l1
-let jk = j1+k1
-let jl = j1+l1
-let kl = k1+l1
-let ijk = temp[l=@ave]
-let ikl = temp[j=@ave]
-let ijl = temp[k=@ave]
-let jkl = temp[i=@ave]
-let ijkl = u
-let ijk2 = temp
-let iavejkl = ijkl[i=@ave]
-let ijavekl = ijkl[j=@ave]
-let ijkavel = ijkl[k=@ave]
-let ijklave = ijkl[l=@ave]
-
-set region/l=1:2 ! i,j, and k unspecified
-
-! a bunch of basic geometries
-! 1d
-list/format=cdf/clobber/file=test_fil0.cdf/heading="enh" i1 ! not /APPEND - must be new
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" j1
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" k1
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" l1 ! record axis
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" l2 ! rigid axis
-
-! 2D
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ij
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ik
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" il
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" jk
-
-!3D
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijk
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ikl
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijl
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" jkl
-
-!4D
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijkl
-
-! extend along time axis and write sub-regions
-! (note: this may leave undefined regions in other variables)
-list/format=cdf/append/file=test_fil0.cdf/heading="enh"/j=1:50/l=2:3 ijl
-list/format=cdf/append/file=test_fil0.cdf/heading="enh"/j=51:100/l=2:3 ijl
-
-! rewrite a sub-region in the middle of the data
-list/format=cdf/append/file=test_fil0.cdf/heading="enh"/j=30:40/k=5/l=1:3 ijkl
-
-! check documentation of transforms
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" iavejkl
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijavekl
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijkavel
-list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijklave
-
-! look at what we've created - time axis should be regular
-set data/format=cdf test_fil0
-show data/full
- currently SET data sets:
- 1> ./gtbc011.cdf
-
- name title I J K L M N
- TEMP TEMPERATURE 70:72 1:100 1:27 1:3 ... ...
- deg. C on grid PS3DT1 with -1.E+34 for missing data
- X=161W:158W Y=30S:50N Z=0:4149
- SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3 ... ...
- frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
- X=161W:159W Y=30S:50N Z=0:4149
- U ZONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
- V MERIDIONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
- W VERTICAL VELOCITY 70:71 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DW1 with -1.E+34 for missing data
- X=161W:159W Y=30S:50N Z=5:4149
- TAUX ZONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.84S:51.43N
- TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.84S:51.43N
- PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
- cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:156.5W Y=28.84S:51.43N
-
- time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
-
- 2> ./test_fil0.cdf (default)
-
- name title I J K L M N
- I1 X[G=TEMP,I=1:10] 1:10 ... ... ... ... ...
- on grid PS3DT1_NYZT with -1.E+34 for missing data
- X=130E:140E
- J1 Y[G=TEMP,J=5:10] ... 5:10 ... ... ... ...
- on grid PS3DT1_NXZT with -1.E+34 for missing data
- Y=21.11S:12.52S
- K1 Z[G=U,K=5:15] ... ... 5:15 ... ... ...
- on grid PS3DU1_NXYT with -1.E+34 for missing data
- Z=40:190
- L1 L[G=U,L=1:3] ... ... ... 1:3 ... ...
- on grid GRH1 with -1.E+34 for missing data
-
- L2 L ... ... ... 1:2 ... ...
- on grid GRH2 with -1.E+34 for missing data
-
- IJ TAUX[L=@AVE] 69:71 1:100 ... ... ... ...
- (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
- on grid PS2DU1_NT with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.84S:51.43N
- IK I1+K1 1:10 ... 5:15 ... ... ...
- on grid G016_NYT with -1.E+34 for missing data
- X=130E:140E Z=40:190
- IL I1+L1 1:10 ... ... 1:3 ... ...
- on grid G016_NYZ with -1.E+34 for missing data
- X=130E:140E
- JK J1+K1 ... 5:10 5:15 ... ... ...
- on grid G007_NXT with -1.E+34 for missing data
- Y=21.11S:12.52S Z=40:190
- IJK TEMP[L=@AVE] 70:72 1:100 1:27 ... ... ...
- (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
- on grid PS3DT1_NT with -1.E+34 for missing data
- X=161W:158W Y=30S:50N Z=0:4149
- IKL TEMP[J=@AVE] 70:72 ... 1:27 1:3 ... ...
- (Y=30S:50N)
- on grid PS3DT1_NY with -1.E+34 for missing data
- X=161W:158W Z=0:4149
- IJL TEMP[K=@AVE] 70:72 1:100 ... 1:3 ... ...
- (Z=0:4149)
- on grid PS3DT1_NZ with -1.E+34 for missing data
- X=161W:158W Y=30S:50N
- JKL TEMP[I=@AVE] ... 1:100 1:27 1:3 ... ...
- (X=161W:158W)
- on grid GRH3 with -1.E+34 for missing data
- Y=30S:50N Z=0:4149
- IJKL U 69:72 1:100 1:27 1:3 ... ...
- on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
- IAVEJKL IJKL[I=@AVE] ... 1:100 1:27 1:3 ... ...
- (X=161.5W:157.5W)
- on grid GRH4 with -1.E+34 for missing data
- Y=28.84S:51.43N Z=0:4149
- IJAVEKL IJKL[J=@AVE] 69:72 ... 1:27 1:3 ... ...
- (Y=28.84S:51.43N)
- on grid PS3DU1_NY with -1.E+34 for missing data
- X=161.5W:157.5W Z=0:4149
- IJKAVEL IJKL[K=@AVE] 69:72 1:100 ... 1:3 ... ...
- (Z=0:4149)
- on grid PS3DU1_NZ with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N
- IJKLAVE IJKL[L=@AVE] 69:72 1:100 1:27 ... ... ...
- (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
- on grid PS3DU1_NT with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
-
- time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
-
-cancel variable ijkl
-show grid ijkl
- GRID PS3DU1
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYU LATITUDE 100 i 27.672S 50N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00
- normal E
- normal F
-cancel data test_fil0
-! 5/99 moved old bn230_cdf.sub3 to bn_cdf.sub4 to stay inline w/ old benchmarks *kob*
-GO bn_cdf.sub4
-! bn230_cdf
-! benchmark to test netCDF input and output of TMAP data set variables
-! requires version 2.30 or later
-! 6/92
-
-! V5 *sh* 7/99 -- added /CLOBBER
-
-cancel data/all
-cancel variables/all
-cancel region
-
-use gtbc011
-
-let i1 = x[g=temp,i=1:10]
-let j1 = y[g=temp,j=5:10]
-let k1 = z[g=u,k=5:15]
-let l1 = l[g=u,l=1:3]
-let l2 = l
-let ij = taux[l=@ave]
-let ik = i1+k1
-let il = i1+l1
-let jk = j1+k1
-let jl = j1+l1
-let kl = k1+l1
-let ijk = temp[l=@ave]
-let ikl = temp[j=@ave]
-let ijl = temp[k=@ave]
-let jkl = temp[i=@ave]
-let ijkl = u
-let ijk2 = temp
-let iavejkl = ijkl[i=@ave]
-let ijavekl = ijkl[j=@ave]
-let ijkavel = ijkl[k=@ave]
-let ijklave = ijkl[l=@ave]
-
-set region/l=1:2 ! i,j, and k unspecified
-
-! a bunch of basic geometries
-! 1d
-list/format=cdf/clobber/file=test_fil.cdf i1 ! not /APPEND - must be new
-list/format=cdf/append/file=test_fil.cdf j1
-list/format=cdf/append/file=test_fil.cdf k1
-list/format=cdf/append/file=test_fil.cdf l1 ! record axis
-list/format=cdf/append/file=test_fil.cdf l2 ! rigid axis
-
-! 2D
-list/format=cdf/append/file=test_fil.cdf ij
-list/format=cdf/append/file=test_fil.cdf ik
-list/format=cdf/append/file=test_fil.cdf il
-list/format=cdf/append/file=test_fil.cdf jk
-
-!3D
-list/format=cdf/append/file=test_fil.cdf ijk
-list/format=cdf/append/file=test_fil.cdf ikl
-list/format=cdf/append/file=test_fil.cdf ijl
-list/format=cdf/append/file=test_fil.cdf jkl
-
-!4D
-list/format=cdf/append/file=test_fil.cdf ijkl
-
-! extend along time axis and write sub-regions
-! (note: this may leave undefined regions in other variables)
-list/format=cdf/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
-list/format=cdf/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
-
-! rewrite a sub-region in the middle of the data
-list/format=cdf/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
-
-! check documentation of transforms
-list/format=cdf/append/file=test_fil.cdf iavejkl
-list/format=cdf/append/file=test_fil.cdf ijavekl
-list/format=cdf/append/file=test_fil.cdf ijkavel
-list/format=cdf/append/file=test_fil.cdf ijklave
-
-! look at what we've created - time axis should be regular
-set data/format=cdf test_fil
-show data/full
- currently SET data sets:
- 1> ./gtbc011.cdf
-
- name title I J K L M N
- TEMP TEMPERATURE 70:72 1:100 1:27 1:3 ... ...
- deg. C on grid PS3DT1 with -1.E+34 for missing data
- X=161W:158W Y=30S:50N Z=0:4149
- SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3 ... ...
- frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
- X=161W:159W Y=30S:50N Z=0:4149
- U ZONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
- V MERIDIONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
- W VERTICAL VELOCITY 70:71 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DW1 with -1.E+34 for missing data
- X=161W:159W Y=30S:50N Z=5:4149
- TAUX ZONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.84S:51.43N
- TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.84S:51.43N
- PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
- cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:156.5W Y=28.84S:51.43N
-
- time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
-
- 2> ./test_fil.cdf (default)
-
- name title I J K L M N
- I1 X[G=TEMP,I=1:10] 1:10 ... ... ... ... ...
- on grid GLZ1 with -1.E+34 for missing data
- X=130E:140E
- J1 Y[G=TEMP,J=5:10] ... 1:6 ... ... ... ...
- on grid GLZ2 with -1.E+34 for missing data
- Y=21.11S:12.52S
- K1 Z[G=U,K=5:15] ... ... 1:11 ... ... ...
- on grid GLZ3 with -1.E+34 for missing data
- Z=40:190
- L1 L[G=U,L=1:3] ... ... ... 1:3 ... ...
- on grid GLZ4 with -1.E+34 for missing data
-
- L2 L ... ... ... 1:2 ... ...
- on grid GLZ5 with -1.E+34 for missing data
-
- IJ TAUX[L=@AVE] 1:3 1:100 ... ... ... ...
- (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
- on grid GLZ6 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.84S:51.43N
- IK I1+K1 1:10 ... 1:11 ... ... ...
- on grid GLZ7 with -1.E+34 for missing data
- X=130E:140E Z=40:190
- IL I1+L1 1:10 ... ... 1:3 ... ...
- on grid GLZ8 with -1.E+34 for missing data
- X=130E:140E
- JK J1+K1 ... 1:6 1:11 ... ... ...
- on grid GLZ9 with -1.E+34 for missing data
- Y=21.11S:12.52S Z=40:190
- IJK TEMP[L=@AVE] 1:3 1:100 1:27 ... ... ...
- (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
- on grid GLZ10 with -1.E+34 for missing data
- X=161W:158W Y=30S:50N Z=0:4149
- IKL TEMP[J=@AVE] 1:3 ... 1:27 1:3 ... ...
- (Y=30S:50N)
- on grid GLZ11 with -1.E+34 for missing data
- X=161W:158W Z=0:4149
- IJL TEMP[K=@AVE] 1:3 1:100 ... 1:3 ... ...
- (Z=0:4149)
- on grid GLZ12 with -1.E+34 for missing data
- X=161W:158W Y=30S:50N
- JKL TEMP[I=@AVE] ... 1:100 1:27 1:3 ... ...
- (X=161W:158W)
- on grid GLZ13 with -1.E+34 for missing data
- Y=30S:50N Z=0:4149
- IJKL U 1:4 1:100 1:27 1:3 ... ...
- on grid GLZ14 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
- IAVEJKL IJKL[I=@AVE] ... 1:100 1:27 1:3 ... ...
- (X=161.5W:157.5W)
- on grid GLZ15 with -1.E+34 for missing data
- Y=28.84S:51.43N Z=0:4149
- IJAVEKL IJKL[J=@AVE] 1:4 ... 1:27 1:3 ... ...
- (Y=28.84S:51.43N)
- on grid GLZ16 with -1.E+34 for missing data
- X=161.5W:157.5W Z=0:4149
- IJKAVEL IJKL[K=@AVE] 1:4 1:100 ... 1:3 ... ...
- (Z=0:4149)
- on grid GLZ17 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N
- IJKLAVE IJKL[L=@AVE] 1:4 1:100 1:27 ... ... ...
- (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
- on grid GLZ18 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
-
- time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
-
-cancel variable ijkl
-show grid ijkl
- GRID GLZ14
- name axis # pts start end
- PSXU69_72 LONGITUDE 4mr 161W 158W
- PSYU LATITUDE 100 i 27.672S 50N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00
- normal E
- normal F
-cancel data test_fil
-GO bn_cdf_reversed.sub
-! bn320_cdf_reversed.sub
-! benchmark to test netCDF input of reverse-coordinate axes
-! this routine added 3/2/95
-
-cancel data/all
-cancel variables/all
-cancel region
-
-set data reverse_axes
-
-show data/var
- currently SET data sets:
- 1> ./reverse_axes.cdf (default)
-
- name title I J K L M N
- FCN_NORM COS(X/10)*SIN(Y/2) 1:51 1:21 ... ... ... ...
- on grid GAF1 with -1.E+34 for missing data
- X=129.5E:179.5W Y=10.5S:10.5N
- FCN_REV COS(X/10)*SIN(Y/2) 1:51 1:21 ... ... ... ...
- on grid GAF2 with -1.E+34 for missing data
- X=129.5E:179.5W Y=10.5S:10.5N
- FCN_REV_SUB
- COS(X/10)*SIN(Y/2) 1:51 10:19 ... ... ... ...
- on grid GREV with -1.E+34 for missing data
- X=129.5E:179.5W Y=1.5S:8.5N
-
-
-list/x=180 fcn_norm,fcn_rev
- WARNING: Listed variables have ambiguous coordinates on axes: Y
- DATA SET: ./reverse_axes.cdf
- LONGITUDE: 180E
- Column 1: FCN_NORM is COS(X/10)*SIN(Y/2)
- Column 2: FCN_REV is COS(X/10)*SIN(Y/2)
- FCN_NOR FCN_REV
-J / 1: 0.633194 -0.633194
-J / 2: 0.645479 -0.645479
-J / 3: 0.499729 -0.499729
-J / 4: 0.231628 -0.231628
-J / 5: -0.093184 0.093184
-J / 6: -0.395181 0.395181
-J / 7: -0.600424 0.600424
-J / 8: -0.658663 0.658663
-J / 9: -0.555637 0.555637
-J / 10: -0.316573 0.316573
-J / 11: 0.000000 0.000000
-J / 12: 0.316573 -0.316573
-J / 13: 0.555637 -0.555637
-J / 14: 0.658663 -0.658663
-J / 15: 0.600424 -0.600424
-J / 16: 0.395181 -0.395181
-J / 17: 0.093184 -0.093184
-J / 18: -0.231628 0.231628
-J / 19: -0.499729 0.499729
-J / 20: -0.645479 0.645479
-J / 21: -0.633194 0.633194
-list/x=180 fcn_rev_sub
- VARIABLE : COS(X/10)*SIN(Y/2)
- FILENAME : reverse_axes.cdf
- SUBSET : 10 points (LATITUDE)
- LONGITUDE: 180E
- 180E
- 51
- 8N / 19: 0.499729
- 7N / 18: 0.231628
- 6N / 17: -0.093184
- 5N / 16: -0.395181
- 4N / 15: -0.600424
- 3N / 14: -0.658663
- 2N / 13: -0.555637
- 1N / 12: -0.316573
- 0 / 11: 0.000000
- 1S / 10: 0.316573
-
-GO bn_reset
-cancel mode verify
-GO bn_regrid_transforms
-! bn500_regrid_transforms
-! benchmark to test regridding transformations and syntax
-! requires version 2.30 or later
-! 8/92
-
-! 9/95 - modified reflecting the new interpretation of var[GX=u]
-! previously this meant to fully regrid to U
-! Now it means to regrid only the X axis to U (other axes as in "var")
-! ==> this is an implicit grid creation
-! 2/99 *sh* - The behavior of regridding in cases where the region is
-! unspecified has been changed in V.5 of Ferret. The behavior is now to
-! attempt to obtain the full destination axis span. This means that
-! an unspecified region regrid request applied to a sliced TMAP data
-! set will error: Requested data range is outside of data set limits
-! A "SET MODE IGNORE" has been added in this benchmark script fo rthese
-! cases. (The proper fix to this is in tm_read ... to trim the region
-! when a sliced data set is being read.
-! 1/00 *sh* @MIN and @MAX bugs corrected. @AVE, @SUM, @VAR to handle partial
-! grid boxes
-
-!set data gtsa056
-!use gtsa056
-use gtsa056_1
-use gtsa056_2
-set mode diag
-
-define axis/t=15-jan-1982:15-mar-1984:120/unit=hour tax5day
-define axis/x=120e:60w:10/unit=degrees xax10
-define grid/like=u/t=tax5day g5day
- getgrid EX#1 C: 6 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
-define grid/like=u/x=xax10/z=w/t=tax5day g5_10
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 8 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DW11 PSXT1 PSYT PSZW TIME1 NORMAL NORMAL
-
-set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
-!set reg/i=101:105/j=41:42/k=1:2/l=3:4
-
-use gtsa056_1 !kob 4/99
-
-! deliberate errors
-set mode ignore
-load temp[g=@lin] ! no target grid specified
- dealloc dynamic grid PS3DW11 PSXT1 PSYT PSZW TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
-load temp[gx=@ave] ! no target grid specified
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
-load temp[g=u,g=w] ! more than 1 target grid
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
-load temp[g=x] ! g=user-or-pseudo-var not allowed
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
-set mode/last ignore
-
-! valid syntax tests
-load temp
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DT2 PSXT1 PSYT PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 101 105 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- reading TEMP M: 57 dset: 1 I: 101 105 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
-load temp[g=u]
- dealloc dynamic grid PS3DT2 PSXT1 PSYT PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @LIN
- reading TEMP M: 55 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 45 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
-load temp[g=u at lin]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @LIN
- reading TEMP M: 43 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 39 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
-load temp[g=u at ave,gy=@asn]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @AVE
- strip regrid on Y: TEMP --> XNTERMED @ASN
- reading TEMP M: 36 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 33 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
-load temp[g=u at lin,gy=@asn]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @LIN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- reading TEMP M: 34 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 31 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 30 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 31 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
-load temp[g=u,gx=@ave,gy=@asn]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @AVE
- strip regrid on Y: TEMP --> XNTERMED @ASN
- reading TEMP M: 31 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 28 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 25 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 28 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
-load temp[gx=u] ! changed V4.20 --> implicit regrid
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G009) PSXU PSYT PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid (G009) PSXU PSYT PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid (G009) PSXU PSYT PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- allocate dynamic grid (G009) PSXU PSYT PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> (G009) @LIN
- reading TEMP M: 28 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 22 dset: 1 I: 100 105 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G009) PSXU PSYT PSZT TIME2 NORMAL NORMAL
-stat temp[g=u] - temp[g=u at ave,gx=u at lin,gy=u at lin,gz=u at lin,gt=u at lin] ! == 0
- dealloc dynamic grid (G009) PSXU PSYT PSZT TIME2 NORMAL NORMAL
- -DELETE TEMP M: 22 dset: 1 I: 100 105 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @LIN
- reading TEMP M: 22 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 21 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @LIN
- reading TEMP M: 16 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 14 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
-
- TEMP[G=U] - TEMP[G=U at AVE,GX=U at LIN,GY=U at LIN,GZ=U at LIN,GT=U at LIN]
- LONGITUDE: 130W to 125W
- LATITUDE: 0 to 1.5N
- DEPTH (m): 0 to 15
- TIME: 21-JAN-1982 00:00 to 24-JAN-1982 00:00
- E: N/A
- F: N/A
- DATA SET: ./gtsa056_1.cdf
-
- Total # of data points: 120 (6*5*2*2*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u] ! == 0
- -DELETE EX#1 M: 12 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @AVE
- strip regrid on Y: TEMP --> XNTERMED @LIN
- reading TEMP M: 12 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 10 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @AVE
- strip regrid on Y: TEMP --> XNTERMED @LIN
- reading TEMP M: 11 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 7 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 53 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 7 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
-
- TEMP[G=U,GX=@AVE] - TEMP[GX=@AVE,G=U]
- LONGITUDE: 130W to 125W
- LATITUDE: 0 to 1.5N
- DEPTH (m): 0 to 15
- TIME: 21-JAN-1982 00:00 to 24-JAN-1982 00:00
- E: N/A
- F: N/A
- DATA SET: ./gtsa056_1.cdf
-
- Total # of data points: 120 (6*5*2*2*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
-! basic regrid tests
-LIST temp[g=u at ave]
- -DELETE EX#1 M: 7 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @AAV
- reading TEMP M: 7 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 27 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: U on X at AAV, on Y at AAV
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:3 T: 21-JAN-1982 16:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2757 24.2696 24.3629 24.6373 25.0615 25.4410
- 1N / 48: 24.1124 24.0973 24.1580 24.3776 24.7508 25.0998
- 0.67N / 47: 23.9930 23.9638 23.9801 24.1238 24.4241 24.7297
- 0.33N / 46: 23.9344 23.8880 23.8589 23.9144 24.1193 24.3743
- 0 / 45: 23.9566 23.8866 23.8159 23.7910 23.8916 24.0818
- ---- K:2 Z: 15
- 1.33N / 49: 24.0317 24.0211 24.1131 24.3923 24.8465 25.2791
- 1N / 48: 23.8191 23.8041 23.8705 24.1001 24.5038 24.9069
- 0.67N / 47: 23.6398 23.6127 23.6381 23.7968 24.1294 24.4871
- 0.33N / 46: 23.5298 23.4863 23.4638 23.5312 23.7653 24.0683
- 0 / 45: 23.5312 23.4606 23.3902 23.3664 23.4839 23.7124
- ---- L:4 T: 24-JAN-1982 17:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3180 24.4327 24.7033 25.1283 25.5109 25.6495
- 1N / 48: 24.1494 24.2321 24.4464 24.8164 25.1767 25.3092
- 0.67N / 47: 24.0206 24.0575 24.1976 24.4870 24.8053 24.9316
- 0.33N / 46: 23.9510 23.9366 23.9929 24.1798 24.4380 24.5703
- 0 / 45: 23.9593 23.8939 23.8707 23.9498 24.1283 24.2608
- ---- K:2 Z: 15
- 1.33N / 49: 24.0658 24.1785 24.4540 24.9097 25.3460 25.5339
- 1N / 48: 23.8539 23.9406 24.1631 24.5634 24.9781 25.1610
- 0.67N / 47: 23.6691 23.7132 23.8644 24.1827 24.5525 24.7281
- 0.33N / 46: 23.5511 23.5410 23.6056 23.8149 24.1179 24.2970
- 0 / 45: 23.5391 23.4697 23.4454 23.5341 23.7437 23.9152
-LIST temp[g=u,gx=u at ave] ! V4.20 mod
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @AVE
- strip regrid on Y: TEMP --> XNTERMED @LIN
- reading TEMP M: 24 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 49 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 18 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 49 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- VARIABLE : TEMPERATURE (deg. C)
- regrid: U on X at AVE, on Y at LIN
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:3 T: 21-JAN-1982 16:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2757 24.2696 24.3629 24.6374 25.0615 25.4411
- 1N / 48: 24.1124 24.0973 24.1580 24.3776 24.7508 25.0998
- 0.67N / 47: 23.9930 23.9638 23.9801 24.1238 24.4241 24.7297
- 0.33N / 46: 23.9344 23.8880 23.8589 23.9144 24.1193 24.3743
- 0 / 45: 23.9566 23.8866 23.8159 23.7910 23.8916 24.0818
- ---- K:2 Z: 15
- 1.33N / 49: 24.0317 24.0211 24.1131 24.3923 24.8465 25.2791
- 1N / 48: 23.8191 23.8041 23.8706 24.1001 24.5038 24.9069
- 0.67N / 47: 23.6398 23.6127 23.6381 23.7968 24.1294 24.4871
- 0.33N / 46: 23.5298 23.4863 23.4638 23.5312 23.7653 24.0683
- 0 / 45: 23.5312 23.4606 23.3902 23.3664 23.4839 23.7124
- ---- L:4 T: 24-JAN-1982 17:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3180 24.4327 24.7033 25.1283 25.5109 25.6496
- 1N / 48: 24.1494 24.2321 24.4465 24.8165 25.1768 25.3092
- 0.67N / 47: 24.0206 24.0575 24.1976 24.4870 24.8053 24.9316
- 0.33N / 46: 23.9510 23.9366 23.9929 24.1798 24.4380 24.5703
- 0 / 45: 23.9593 23.8939 23.8707 23.9498 24.1283 24.2608
- ---- K:2 Z: 15
- 1.33N / 49: 24.0658 24.1785 24.4540 24.9097 25.3460 25.5339
- 1N / 48: 23.8539 23.9406 24.1631 24.5634 24.9781 25.1610
- 0.67N / 47: 23.6692 23.7132 23.8644 24.1827 24.5525 24.7281
- 0.33N / 46: 23.5511 23.5410 23.6056 23.8149 24.1179 24.2970
- 0 / 45: 23.5391 23.4697 23.4454 23.5341 23.7437 23.9152
-LIST temp[g=u,gy=u at ave] ! V4.20 mod
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @LIN
- strip regrid on Y: TEMP --> XNTERMED @AVE
- reading TEMP M: 49 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 48 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 23 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 48 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- VARIABLE : TEMPERATURE (deg. C)
- regrid: U on X at LIN, on Y at AVE
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:3 T: 21-JAN-1982 16:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2757 24.2696 24.3629 24.6374 25.0615 25.4411
- 1N / 48: 24.1124 24.0973 24.1580 24.3776 24.7508 25.0998
- 0.67N / 47: 23.9930 23.9638 23.9801 24.1238 24.4241 24.7297
- 0.33N / 46: 23.9344 23.8880 23.8589 23.9144 24.1193 24.3743
- 0 / 45: 23.9566 23.8866 23.8159 23.7910 23.8916 24.0818
- ---- K:2 Z: 15
- 1.33N / 49: 24.0317 24.0211 24.1131 24.3923 24.8465 25.2791
- 1N / 48: 23.8191 23.8041 23.8706 24.1001 24.5038 24.9069
- 0.67N / 47: 23.6398 23.6127 23.6381 23.7968 24.1294 24.4871
- 0.33N / 46: 23.5298 23.4863 23.4638 23.5312 23.7653 24.0683
- 0 / 45: 23.5312 23.4606 23.3902 23.3664 23.4839 23.7124
- ---- L:4 T: 24-JAN-1982 17:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3180 24.4327 24.7033 25.1283 25.5109 25.6496
- 1N / 48: 24.1494 24.2321 24.4465 24.8165 25.1768 25.3092
- 0.67N / 47: 24.0206 24.0575 24.1976 24.4870 24.8053 24.9316
- 0.33N / 46: 23.9510 23.9366 23.9929 24.1798 24.4380 24.5703
- 0 / 45: 23.9593 23.8939 23.8707 23.9498 24.1283 24.2608
- ---- K:2 Z: 15
- 1.33N / 49: 24.0658 24.1785 24.4540 24.9097 25.3460 25.5339
- 1N / 48: 23.8539 23.9406 24.1631 24.5634 24.9781 25.1610
- 0.67N / 47: 23.6692 23.7132 23.8644 24.1827 24.5525 24.7281
- 0.33N / 46: 23.5511 23.5410 23.6056 23.8149 24.1179 24.2970
- 0 / 45: 23.5391 23.4697 23.4454 23.5341 23.7437 23.9152
-LIST temp[g=u,gz=u at ave] ! V4.20 mod
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @LIN
- reading TEMP M: 48 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 6 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- VARIABLE : TEMPERATURE (deg. C)
- regrid: U
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:3 T: 21-JAN-1982 16:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2757 24.2696 24.3629 24.6374 25.0615 25.4411
- 1N / 48: 24.1124 24.0973 24.1580 24.3776 24.7508 25.0998
- 0.67N / 47: 23.9930 23.9638 23.9801 24.1238 24.4241 24.7297
- 0.33N / 46: 23.9344 23.8880 23.8589 23.9144 24.1193 24.3743
- 0 / 45: 23.9566 23.8866 23.8159 23.7910 23.8916 24.0818
- ---- K:2 Z: 15
- 1.33N / 49: 24.0317 24.0211 24.1131 24.3923 24.8465 25.2791
- 1N / 48: 23.8191 23.8041 23.8706 24.1001 24.5038 24.9069
- 0.67N / 47: 23.6398 23.6127 23.6381 23.7968 24.1294 24.4871
- 0.33N / 46: 23.5298 23.4863 23.4638 23.5312 23.7653 24.0683
- 0 / 45: 23.5312 23.4606 23.3902 23.3664 23.4839 23.7124
- ---- L:4 T: 24-JAN-1982 17:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3180 24.4327 24.7033 25.1283 25.5109 25.6496
- 1N / 48: 24.1494 24.2321 24.4465 24.8165 25.1768 25.3092
- 0.67N / 47: 24.0206 24.0575 24.1976 24.4870 24.8053 24.9316
- 0.33N / 46: 23.9510 23.9366 23.9929 24.1798 24.4380 24.5703
- 0 / 45: 23.9593 23.8939 23.8707 23.9498 24.1283 24.2608
- ---- K:2 Z: 15
- 1.33N / 49: 24.0658 24.1785 24.4540 24.9097 25.3460 25.5339
- 1N / 48: 23.8539 23.9406 24.1631 24.5634 24.9781 25.1610
- 0.67N / 47: 23.6692 23.7132 23.8644 24.1827 24.5525 24.7281
- 0.33N / 46: 23.5511 23.5410 23.6056 23.8149 24.1179 24.2970
- 0 / 45: 23.5391 23.4697 23.4454 23.5341 23.7437 23.9152
-LIST temp[g=u,gt=u at ave] ! V4.20 mod, etc --> many more similar syntax chgs
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @LIN
- reading TEMP M: 40 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 15 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- VARIABLE : TEMPERATURE (deg. C)
- regrid: U
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:3 T: 21-JAN-1982 16:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2757 24.2696 24.3629 24.6374 25.0615 25.4411
- 1N / 48: 24.1124 24.0973 24.1580 24.3776 24.7508 25.0998
- 0.67N / 47: 23.9930 23.9638 23.9801 24.1238 24.4241 24.7297
- 0.33N / 46: 23.9344 23.8880 23.8589 23.9144 24.1193 24.3743
- 0 / 45: 23.9566 23.8866 23.8159 23.7910 23.8916 24.0818
- ---- K:2 Z: 15
- 1.33N / 49: 24.0317 24.0211 24.1131 24.3923 24.8465 25.2791
- 1N / 48: 23.8191 23.8041 23.8706 24.1001 24.5038 24.9069
- 0.67N / 47: 23.6398 23.6127 23.6381 23.7968 24.1294 24.4871
- 0.33N / 46: 23.5298 23.4863 23.4638 23.5312 23.7653 24.0683
- 0 / 45: 23.5312 23.4606 23.3902 23.3664 23.4839 23.7124
- ---- L:4 T: 24-JAN-1982 17:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3180 24.4327 24.7033 25.1283 25.5109 25.6496
- 1N / 48: 24.1494 24.2321 24.4465 24.8165 25.1768 25.3092
- 0.67N / 47: 24.0206 24.0575 24.1976 24.4870 24.8053 24.9316
- 0.33N / 46: 23.9510 23.9366 23.9929 24.1798 24.4380 24.5703
- 0 / 45: 23.9593 23.8939 23.8707 23.9498 24.1283 24.2608
- ---- K:2 Z: 15
- 1.33N / 49: 24.0658 24.1785 24.4540 24.9097 25.3460 25.5339
- 1N / 48: 23.8539 23.9406 24.1631 24.5634 24.9781 25.1610
- 0.67N / 47: 23.6692 23.7132 23.8644 24.1827 24.5525 24.7281
- 0.33N / 46: 23.5511 23.5410 23.6056 23.8149 24.1179 24.2970
- 0 / 45: 23.5391 23.4697 23.4454 23.5341 23.7437 23.9152
-
-LIST temp[g=u]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @LIN
- reading TEMP M: 37 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 32 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: U
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:3 T: 21-JAN-1982 16:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2757 24.2696 24.3629 24.6374 25.0615 25.4411
- 1N / 48: 24.1124 24.0973 24.1580 24.3776 24.7508 25.0998
- 0.67N / 47: 23.9930 23.9638 23.9801 24.1238 24.4241 24.7297
- 0.33N / 46: 23.9344 23.8880 23.8589 23.9144 24.1193 24.3743
- 0 / 45: 23.9566 23.8866 23.8159 23.7910 23.8916 24.0818
- ---- K:2 Z: 15
- 1.33N / 49: 24.0317 24.0211 24.1131 24.3923 24.8465 25.2791
- 1N / 48: 23.8191 23.8041 23.8706 24.1001 24.5038 24.9069
- 0.67N / 47: 23.6398 23.6127 23.6381 23.7968 24.1294 24.4871
- 0.33N / 46: 23.5298 23.4863 23.4638 23.5312 23.7653 24.0683
- 0 / 45: 23.5312 23.4606 23.3902 23.3664 23.4839 23.7124
- ---- L:4 T: 24-JAN-1982 17:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3180 24.4327 24.7033 25.1283 25.5109 25.6496
- 1N / 48: 24.1494 24.2321 24.4465 24.8165 25.1768 25.3092
- 0.67N / 47: 24.0206 24.0575 24.1976 24.4870 24.8053 24.9316
- 0.33N / 46: 23.9510 23.9366 23.9929 24.1798 24.4380 24.5703
- 0 / 45: 23.9593 23.8939 23.8707 23.9498 24.1283 24.2608
- ---- K:2 Z: 15
- 1.33N / 49: 24.0658 24.1785 24.4540 24.9097 25.3460 25.5339
- 1N / 48: 23.8539 23.9406 24.1631 24.5634 24.9781 25.1610
- 0.67N / 47: 23.6692 23.7132 23.8644 24.1827 24.5525 24.7281
- 0.33N / 46: 23.5511 23.5410 23.6056 23.8149 24.1179 24.2970
- 0 / 45: 23.5391 23.4697 23.4454 23.5341 23.7437 23.9152
-LIST temp[g=u at asn]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- reading TEMP M: 19 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 13 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 3 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 13 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: U on X at ASN, on Y at ASN
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:3 T: 21-JAN-1982 16:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2023 24.1706 24.1868 24.3320 24.6889 25.1380
- 1N / 48: 24.0570 24.0199 24.0121 24.1010 24.3886 24.7878
- 0.67N / 47: 23.9679 23.9272 23.8960 23.9112 24.0946 24.4255
- 0.33N / 46: 23.9500 23.8924 23.8363 23.7920 23.8598 24.0974
- 0 / 45: 24.0303 23.9535 23.8642 23.7713 23.7408 23.8683
- ---- K:2 Z: 15
- 1.33N / 49: 23.9413 23.9053 23.9237 24.0709 24.4373 24.9355
- 1N / 48: 23.7355 23.6943 23.6933 23.7943 24.0980 24.5443
- 0.67N / 47: 23.5856 23.5436 23.5197 23.5450 23.7499 24.1251
- 0.33N / 46: 23.5242 23.4660 23.4157 23.3749 23.4550 23.7312
- 0 / 45: 23.6083 23.5263 23.4345 23.3357 23.3000 23.4491
- ---- L:4 T: 24-JAN-1982 17:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2012 24.2556 24.4066 24.7485 25.2133 25.5037
- 1N / 48: 24.0581 24.0827 24.1835 24.4473 24.8567 25.1333
- 0.67N / 47: 23.9772 23.9643 23.9994 24.1601 24.4838 24.7472
- 0.33N / 46: 23.9584 23.9040 23.8788 23.9333 24.1419 24.3790
- 0 / 45: 24.0357 23.9390 23.8536 23.8172 23.9069 24.0855
- ---- K:2 Z: 15
- 1.33N / 49: 23.9325 23.9890 24.1393 24.4928 25.0067 25.3582
- 1N / 48: 23.7314 23.7626 23.8716 24.1488 24.6053 24.9421
- 0.67N / 47: 23.5951 23.5875 23.6312 23.8060 24.1706 24.4921
- 0.33N / 46: 23.5385 23.4834 23.4619 23.5233 23.7598 24.0491
- 0 / 45: 23.6210 23.5135 23.4199 23.3768 23.4767 23.6893
-LIST temp[g=u,gx=u at asn]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @ASN
- strip regrid on Y: TEMP --> XNTERMED @LIN
- reading TEMP M: 13 dset: 1 I: 100 105 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 1 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 26 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 1 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- VARIABLE : TEMPERATURE (deg. C)
- regrid: U on X at ASN, on Y at LIN
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:3 T: 21-JAN-1982 16:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2921 24.2593 24.2798 24.4459 24.8288 25.2942
- 1N / 48: 24.1296 24.0952 24.0995 24.2165 24.5387 24.9629
- 0.67N / 47: 24.0124 23.9735 23.9541 24.0061 24.2416 24.6067
- 0.33N / 46: 23.9590 23.9098 23.8662 23.8516 23.9772 24.2614
- 0 / 45: 23.9901 23.9230 23.8503 23.7816 23.8003 23.9828
- ---- K:2 Z: 15
- 1.33N / 49: 24.0517 24.0117 24.0305 24.1957 24.5888 25.1042
- 1N / 48: 23.8384 23.7998 23.8085 23.9326 24.2677 24.7399
- 0.67N / 47: 23.6606 23.6190 23.6065 23.6697 23.9240 24.3347
- 0.33N / 46: 23.5549 23.5048 23.4677 23.4600 23.6025 23.9282
- 0 / 45: 23.5662 23.4962 23.4251 23.3553 23.3775 23.5902
- ---- L:4 T: 24-JAN-1982 17:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2879 24.3481 24.5174 24.8892 25.3674 25.6544
- 1N / 48: 24.1297 24.1691 24.2950 24.5979 25.0350 25.3185
- 0.67N / 47: 24.0177 24.0235 24.0914 24.3037 24.6703 24.9403
- 0.33N / 46: 23.9678 23.9342 23.9391 24.0467 24.3128 24.5631
- 0 / 45: 23.9971 23.9215 23.8662 23.8753 24.0244 24.2322
- ---- K:2 Z: 15
- 1.33N / 49: 24.0365 24.0951 24.2619 24.6460 25.1734 25.5187
- 1N / 48: 23.8319 23.8758 24.0055 24.3208 24.8060 25.1502
- 0.67N / 47: 23.6632 23.6751 23.7514 23.9774 24.3880 24.7171
- 0.33N / 46: 23.5668 23.5355 23.5465 23.6647 23.9652 24.2706
- 0 / 45: 23.5798 23.4985 23.4409 23.4500 23.6182 23.8692
-LIST temp[g=u,gy=u at asn]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @LIN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- reading TEMP M: 1 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 52 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 29 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 52 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- VARIABLE : TEMPERATURE (deg. C)
- regrid: U on X at LIN, on Y at ASN
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:3 T: 21-JAN-1982 16:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.1864 24.1787 24.2594 24.5105 24.9134 25.2830
- 1N / 48: 24.0384 24.0160 24.0566 24.2448 24.5882 24.9167
- 0.67N / 47: 23.9476 23.9116 23.9036 24.0029 24.2600 24.5428
- 0.33N / 46: 23.9212 23.8644 23.8142 23.8259 23.9786 24.2058
- 0 / 45: 23.9919 23.9089 23.8177 23.7561 23.8046 23.9579
- ---- K:2 Z: 15
- 1.33N / 49: 23.9233 23.9145 23.9973 24.2541 24.6864 25.1105
- 1N / 48: 23.7149 23.6938 23.7438 23.9462 24.3212 24.7033
- 0.67N / 47: 23.5646 23.5317 23.5324 23.6475 23.9375 24.2709
- 0.33N / 46: 23.4951 23.4409 23.3953 23.4150 23.5931 23.8658
- 0 / 45: 23.5673 23.4804 23.3851 23.3179 23.3746 23.5590
- ---- L:4 T: 24-JAN-1982 17:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2284 24.3311 24.5775 24.9809 25.3585 25.4979
- 1N / 48: 24.0704 24.1331 24.3154 24.6520 24.9950 25.1205
- 0.67N / 47: 23.9708 23.9819 24.0798 24.3220 24.6155 24.7426
- 0.33N / 46: 23.9312 23.8914 23.9061 24.0376 24.2605 24.3979
- 0 / 45: 23.9874 23.8963 23.8354 23.8620 23.9962 24.1237
- ---- K:2 Z: 15
- 1.33N / 49: 23.9608 24.0642 24.3160 24.7497 25.1824 25.3725
- 1N / 48: 23.7470 23.8171 24.0102 24.3770 24.7737 24.9496
- 0.67N / 47: 23.5913 23.6093 23.7186 23.9883 24.3314 24.5067
- 0.33N / 46: 23.5110 23.4726 23.4926 23.6415 23.9044 24.0873
- 0 / 45: 23.5673 23.4667 23.3983 23.4267 23.5830 23.7431
-LIST temp[g=u,gz=u at asn]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @LIN
- reading TEMP M: 52 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 20 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- VARIABLE : TEMPERATURE (deg. C)
- regrid: U
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:3 T: 21-JAN-1982 16:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2757 24.2696 24.3629 24.6374 25.0615 25.4411
- 1N / 48: 24.1124 24.0973 24.1580 24.3776 24.7508 25.0998
- 0.67N / 47: 23.9930 23.9638 23.9801 24.1238 24.4241 24.7297
- 0.33N / 46: 23.9344 23.8880 23.8589 23.9144 24.1193 24.3743
- 0 / 45: 23.9566 23.8866 23.8159 23.7910 23.8916 24.0818
- ---- K:2 Z: 15
- 1.33N / 49: 24.0317 24.0211 24.1131 24.3923 24.8465 25.2791
- 1N / 48: 23.8191 23.8041 23.8706 24.1001 24.5038 24.9069
- 0.67N / 47: 23.6398 23.6127 23.6381 23.7968 24.1294 24.4871
- 0.33N / 46: 23.5298 23.4863 23.4638 23.5312 23.7653 24.0683
- 0 / 45: 23.5312 23.4606 23.3902 23.3664 23.4839 23.7124
- ---- L:4 T: 24-JAN-1982 17:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3180 24.4327 24.7033 25.1283 25.5109 25.6496
- 1N / 48: 24.1494 24.2321 24.4465 24.8165 25.1768 25.3092
- 0.67N / 47: 24.0206 24.0575 24.1976 24.4870 24.8053 24.9316
- 0.33N / 46: 23.9510 23.9366 23.9929 24.1798 24.4380 24.5703
- 0 / 45: 23.9593 23.8939 23.8707 23.9498 24.1283 24.2608
- ---- K:2 Z: 15
- 1.33N / 49: 24.0658 24.1785 24.4540 24.9097 25.3460 25.5339
- 1N / 48: 23.8539 23.9406 24.1631 24.5634 24.9781 25.1610
- 0.67N / 47: 23.6692 23.7132 23.8644 24.1827 24.5525 24.7281
- 0.33N / 46: 23.5511 23.5410 23.6056 23.8149 24.1179 24.2970
- 0 / 45: 23.5391 23.4697 23.4454 23.5341 23.7437 23.9152
-LIST temp[g=u,gt=u at asn]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @LIN
- reading TEMP M: 56 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 51 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- VARIABLE : TEMPERATURE (deg. C)
- regrid: U
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:3 T: 21-JAN-1982 16:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2757 24.2696 24.3629 24.6374 25.0615 25.4411
- 1N / 48: 24.1124 24.0973 24.1580 24.3776 24.7508 25.0998
- 0.67N / 47: 23.9930 23.9638 23.9801 24.1238 24.4241 24.7297
- 0.33N / 46: 23.9344 23.8880 23.8589 23.9144 24.1193 24.3743
- 0 / 45: 23.9566 23.8866 23.8159 23.7910 23.8916 24.0818
- ---- K:2 Z: 15
- 1.33N / 49: 24.0317 24.0211 24.1131 24.3923 24.8465 25.2791
- 1N / 48: 23.8191 23.8041 23.8706 24.1001 24.5038 24.9069
- 0.67N / 47: 23.6398 23.6127 23.6381 23.7968 24.1294 24.4871
- 0.33N / 46: 23.5298 23.4863 23.4638 23.5312 23.7653 24.0683
- 0 / 45: 23.5312 23.4606 23.3902 23.3664 23.4839 23.7124
- ---- L:4 T: 24-JAN-1982 17:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3180 24.4327 24.7033 25.1283 25.5109 25.6496
- 1N / 48: 24.1494 24.2321 24.4465 24.8165 25.1768 25.3092
- 0.67N / 47: 24.0206 24.0575 24.1976 24.4870 24.8053 24.9316
- 0.33N / 46: 23.9510 23.9366 23.9929 24.1798 24.4380 24.5703
- 0 / 45: 23.9593 23.8939 23.8707 23.9498 24.1283 24.2608
- ---- K:2 Z: 15
- 1.33N / 49: 24.0658 24.1785 24.4540 24.9097 25.3460 25.5339
- 1N / 48: 23.8539 23.9406 24.1631 24.5634 24.9781 25.1610
- 0.67N / 47: 23.6692 23.7132 23.8644 24.1827 24.5525 24.7281
- 0.33N / 46: 23.5511 23.5410 23.6056 23.8149 24.1179 24.2970
- 0 / 45: 23.5391 23.4697 23.4454 23.5341 23.7437 23.9152
-
-! Z and T axes different
-LIST temp[g=g5day at ave]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @AAV
- strip regrid on T: TEMP --> XNTERMED @AVE
- reading TEMP M: 44 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 42 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 41 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 42 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5DAY on X at AAV, on Y at AAV, on T at AVE
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:2 T: 20-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3222 24.2574 24.2792 24.4559 24.8014 25.1989
- 1N / 48: 24.1494 24.0886 24.0899 24.2231 24.5192 24.8735
- 0.67N / 47: 24.0194 23.9594 23.9338 24.0060 24.2309 24.5292
- 0.33N / 46: 23.9494 23.8865 23.8348 23.8403 23.9749 24.2056
- 0 / 45: 23.9610 23.8876 23.8101 23.7577 23.8012 23.9526
- ---- K:2 Z: 15
- 1.33N / 49: 24.0893 24.0128 24.0305 24.2093 24.5723 25.0111
- 1N / 48: 23.8655 23.7966 23.7992 23.9411 24.2590 24.6558
- 0.67N / 47: 23.6732 23.6084 23.5863 23.6706 23.9224 24.2649
- 0.33N / 46: 23.5483 23.4836 23.4354 23.4489 23.6072 23.8806
- 0 / 45: 23.5360 23.4598 23.3824 23.3292 23.3833 23.5675
- ---- L:3 T: 25-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3572 24.4967 24.7799 25.1728 25.4968 25.5979
- 1N / 48: 24.1819 24.2866 24.5172 24.8632 25.1660 25.2557
- 0.67N / 47: 24.0430 24.0993 24.2582 24.5330 24.7997 24.8843
- 0.33N / 46: 23.9617 23.9632 24.0394 24.2224 24.4405 24.5349
- 0 / 45: 23.9585 23.9048 23.9006 23.9848 24.1378 24.2396
- ---- K:2 Z: 15
- 1.33N / 49: 24.1046 24.2438 24.5379 24.9641 25.3385 25.4831
- 1N / 48: 23.8866 23.9959 24.2403 24.6203 24.9739 25.1064
- 0.67N / 47: 23.6926 23.7557 23.9301 24.2379 24.5528 24.6786
- 0.33N / 46: 23.5623 23.5678 23.6554 23.8652 24.1261 24.2599
- 0 / 45: 23.5376 23.4796 23.4768 23.5746 23.7580 23.8929
-LIST temp[g=g5day,gx=g5day at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- -DELETE TEMP M: 41 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @AVE
- strip regrid on Y: TEMP --> XNTERMED @LIN
- strip regrid on T: TEMP --> YNTERMED @LIN
- reading TEMP M: 41 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 42 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 38 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 42 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 42 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 38 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5DAY on X at AVE, on Y at LIN, on T at LIN
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:2 T: 20-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3238 24.2570 24.2762 24.4494 24.7922 25.1903
- 1N / 48: 24.1507 24.0883 24.0875 24.2176 24.5110 24.8654
- 0.67N / 47: 24.0203 23.9592 23.9321 24.0018 24.2240 24.5221
- 0.33N / 46: 23.9499 23.8864 23.8340 23.8376 23.9698 24.1996
- 0 / 45: 23.9612 23.8877 23.8099 23.7565 23.7980 23.9480
- ---- K:2 Z: 15
- 1.33N / 49: 24.0913 24.0125 24.0276 24.2028 24.5625 25.0016
- 1N / 48: 23.8672 23.7964 23.7967 23.9354 24.2503 24.6469
- 0.67N / 47: 23.6744 23.6082 23.5844 23.6661 23.9151 24.2570
- 0.33N / 46: 23.5490 23.4835 23.4343 23.4459 23.6016 23.8740
- 0 / 45: 23.5362 23.4598 23.3821 23.3279 23.3797 23.5624
- ---- L:3 T: 25-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3350 24.4653 24.7499 25.1705 25.5289 25.6409
- 1N / 48: 24.1636 24.2597 24.4881 24.8569 25.1948 25.2999
- 0.67N / 47: 24.0305 24.0781 24.2317 24.5232 24.8229 24.9242
- 0.33N / 46: 23.9559 23.9492 24.0174 24.2096 24.4555 24.5671
- 0 / 45: 23.9591 23.8984 23.8848 23.9713 24.1442 24.2621
- ---- K:2 Z: 15
- 1.33N / 49: 24.0822 24.2113 24.5033 24.9571 25.3691 25.5280
- 1N / 48: 23.8680 23.9686 24.2074 24.6089 25.0011 25.1536
- 0.67N / 47: 23.6795 23.7345 23.9009 24.2235 24.5746 24.7220
- 0.33N / 46: 23.5565 23.5539 23.6318 23.8486 24.1393 24.2949
- 0 / 45: 23.5390 23.4739 23.4601 23.5581 23.7626 23.9173
-LIST temp[g=g5day,gy=g5day at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @LIN
- strip regrid on Y: TEMP --> XNTERMED @AVE
- strip regrid on T: TEMP --> YNTERMED @LIN
- reading TEMP M: 38 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 35 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 9 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 35 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 35 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 9 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5DAY on X at LIN, on Y at AVE, on T at LIN
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:2 T: 20-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3238 24.2570 24.2762 24.4494 24.7922 25.1903
- 1N / 48: 24.1507 24.0883 24.0875 24.2176 24.5110 24.8654
- 0.67N / 47: 24.0203 23.9592 23.9321 24.0018 24.2240 24.5221
- 0.33N / 46: 23.9499 23.8864 23.8340 23.8376 23.9698 24.1996
- 0 / 45: 23.9612 23.8877 23.8099 23.7565 23.7980 23.9480
- ---- K:2 Z: 15
- 1.33N / 49: 24.0913 24.0125 24.0276 24.2029 24.5625 25.0016
- 1N / 48: 23.8672 23.7964 23.7967 23.9354 24.2503 24.6469
- 0.67N / 47: 23.6744 23.6082 23.5844 23.6661 23.9151 24.2570
- 0.33N / 46: 23.5490 23.4835 23.4343 23.4459 23.6016 23.8740
- 0 / 45: 23.5362 23.4598 23.3821 23.3279 23.3797 23.5624
- ---- L:3 T: 25-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3350 24.4653 24.7499 25.1705 25.5289 25.6409
- 1N / 48: 24.1636 24.2597 24.4881 24.8569 25.1948 25.2999
- 0.67N / 47: 24.0305 24.0781 24.2317 24.5232 24.8229 24.9242
- 0.33N / 46: 23.9559 23.9492 24.0174 24.2096 24.4555 24.5671
- 0 / 45: 23.9591 23.8984 23.8848 23.9713 24.1442 24.2621
- ---- K:2 Z: 15
- 1.33N / 49: 24.0822 24.2113 24.5033 24.9571 25.3691 25.5280
- 1N / 48: 23.8680 23.9686 24.2074 24.6089 25.0011 25.1536
- 0.67N / 47: 23.6795 23.7345 23.9009 24.2235 24.5746 24.7220
- 0.33N / 46: 23.5565 23.5539 23.6318 23.8486 24.1393 24.2949
- 0 / 45: 23.5390 23.4739 23.4601 23.5581 23.7626 23.9173
-LIST temp[g=g5day,gz=g5day at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @LIN
- strip regrid on T: TEMP --> XNTERMED @LIN
- reading TEMP M: 9 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 8 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 5 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 8 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5DAY
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:2 T: 20-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3238 24.2570 24.2762 24.4494 24.7922 25.1903
- 1N / 48: 24.1507 24.0883 24.0875 24.2176 24.5110 24.8654
- 0.67N / 47: 24.0203 23.9592 23.9321 24.0018 24.2240 24.5221
- 0.33N / 46: 23.9499 23.8864 23.8340 23.8376 23.9698 24.1996
- 0 / 45: 23.9612 23.8877 23.8099 23.7565 23.7980 23.9480
- ---- K:2 Z: 15
- 1.33N / 49: 24.0913 24.0125 24.0276 24.2028 24.5625 25.0016
- 1N / 48: 23.8672 23.7964 23.7967 23.9354 24.2503 24.6469
- 0.67N / 47: 23.6744 23.6082 23.5844 23.6661 23.9151 24.2570
- 0.33N / 46: 23.5490 23.4835 23.4343 23.4459 23.6016 23.8740
- 0 / 45: 23.5362 23.4598 23.3821 23.3279 23.3797 23.5624
- ---- L:3 T: 25-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3350 24.4653 24.7499 25.1705 25.5289 25.6409
- 1N / 48: 24.1636 24.2597 24.4881 24.8569 25.1948 25.2999
- 0.67N / 47: 24.0305 24.0781 24.2317 24.5232 24.8229 24.9242
- 0.33N / 46: 23.9559 23.9492 24.0174 24.2096 24.4555 24.5671
- 0 / 45: 23.9591 23.8984 23.8848 23.9713 24.1442 24.2621
- ---- K:2 Z: 15
- 1.33N / 49: 24.0822 24.2113 24.5033 24.9571 25.3691 25.5280
- 1N / 48: 23.8680 23.9686 24.2074 24.6089 25.0011 25.1536
- 0.67N / 47: 23.6795 23.7345 23.9009 24.2235 24.5746 24.7220
- 0.33N / 46: 23.5565 23.5539 23.6318 23.8486 24.1393 24.2949
- 0 / 45: 23.5390 23.4739 23.4601 23.5581 23.7626 23.9173
-LIST temp[g=g5day,gt=g5day at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @LIN
- strip regrid on T: TEMP --> XNTERMED @AVE
- reading TEMP M: 8 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 2 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 47 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 2 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5DAY on X at LIN, on Y at LIN, on T at AVE
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:2 T: 20-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3222 24.2574 24.2792 24.4559 24.8014 25.1989
- 1N / 48: 24.1494 24.0886 24.0899 24.2231 24.5192 24.8735
- 0.67N / 47: 24.0194 23.9594 23.9338 24.0060 24.2309 24.5292
- 0.33N / 46: 23.9494 23.8865 23.8348 23.8403 23.9749 24.2056
- 0 / 45: 23.9610 23.8876 23.8101 23.7577 23.8012 23.9526
- ---- K:2 Z: 15
- 1.33N / 49: 24.0893 24.0128 24.0305 24.2093 24.5723 25.0111
- 1N / 48: 23.8655 23.7966 23.7992 23.9411 24.2590 24.6558
- 0.67N / 47: 23.6732 23.6084 23.5863 23.6706 23.9224 24.2649
- 0.33N / 46: 23.5483 23.4836 23.4354 23.4489 23.6072 23.8806
- 0 / 45: 23.5360 23.4598 23.3824 23.3292 23.3833 23.5675
- ---- L:3 T: 25-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3572 24.4967 24.7800 25.1728 25.4968 25.5979
- 1N / 48: 24.1819 24.2866 24.5172 24.8632 25.1660 25.2557
- 0.67N / 47: 24.0430 24.0993 24.2582 24.5331 24.7997 24.8843
- 0.33N / 46: 23.9617 23.9632 24.0394 24.2224 24.4405 24.5349
- 0 / 45: 23.9585 23.9048 23.9006 23.9848 24.1378 24.2396
- ---- K:2 Z: 15
- 1.33N / 49: 24.1046 24.2439 24.5379 24.9641 25.3385 25.4831
- 1N / 48: 23.8866 23.9959 24.2403 24.6203 24.9740 25.1065
- 0.67N / 47: 23.6926 23.7557 23.9301 24.2379 24.5528 24.6786
- 0.33N / 46: 23.5623 23.5678 23.6554 23.8652 24.1261 24.2599
- 0 / 45: 23.5376 23.4796 23.4768 23.5746 23.7580 23.8929
-
-LIST temp[g=g5day]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @LIN
- strip regrid on T: TEMP --> XNTERMED @LIN
- reading TEMP M: 2 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 17 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 17 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5DAY
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:2 T: 20-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3238 24.2570 24.2762 24.4494 24.7922 25.1903
- 1N / 48: 24.1507 24.0883 24.0875 24.2176 24.5110 24.8654
- 0.67N / 47: 24.0203 23.9592 23.9321 24.0018 24.2240 24.5221
- 0.33N / 46: 23.9499 23.8864 23.8340 23.8376 23.9698 24.1996
- 0 / 45: 23.9612 23.8877 23.8099 23.7565 23.7980 23.9480
- ---- K:2 Z: 15
- 1.33N / 49: 24.0913 24.0125 24.0276 24.2028 24.5625 25.0016
- 1N / 48: 23.8672 23.7964 23.7967 23.9354 24.2503 24.6469
- 0.67N / 47: 23.6744 23.6082 23.5844 23.6661 23.9151 24.2570
- 0.33N / 46: 23.5490 23.4835 23.4343 23.4459 23.6016 23.8740
- 0 / 45: 23.5362 23.4598 23.3821 23.3279 23.3797 23.5624
- ---- L:3 T: 25-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3350 24.4653 24.7499 25.1705 25.5289 25.6409
- 1N / 48: 24.1636 24.2597 24.4881 24.8569 25.1948 25.2999
- 0.67N / 47: 24.0305 24.0781 24.2317 24.5232 24.8229 24.9242
- 0.33N / 46: 23.9559 23.9492 24.0174 24.2096 24.4555 24.5671
- 0 / 45: 23.9591 23.8984 23.8848 23.9713 24.1442 24.2621
- ---- K:2 Z: 15
- 1.33N / 49: 24.0822 24.2113 24.5033 24.9571 25.3691 25.5280
- 1N / 48: 23.8680 23.9686 24.2074 24.6089 25.0011 25.1536
- 0.67N / 47: 23.6795 23.7345 23.9009 24.2235 24.5746 24.7220
- 0.33N / 46: 23.5565 23.5539 23.6318 23.8486 24.1393 24.2949
- 0 / 45: 23.5390 23.4739 23.4601 23.5581 23.7626 23.9173
-LIST temp[g=g5day at asn]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- strip regrid on T: TEMP --> YNTERMED @ASN
- reading TEMP M: 17 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 46 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 50 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 46 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 46 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 50 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5DAY on X at ASN, on Y at ASN, on T at ASN
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:2 T: 20-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3316 24.1982 24.1149 24.1101 24.2698 24.6194
- 1N / 48: 24.1534 24.0459 23.9640 23.9283 24.0343 24.3289
- 0.67N / 47: 24.0296 23.9427 23.8693 23.8085 23.8334 24.0392
- 0.33N / 46: 23.9776 23.9013 23.8273 23.7484 23.7068 23.8063
- 0 / 45: 24.0264 23.9547 23.8708 23.7728 23.6845 23.6853
- ---- K:2 Z: 15
- 1.33N / 49: 24.0998 23.9419 23.8502 23.8473 24.0126 24.3725
- 1N / 48: 23.8568 23.7289 23.6389 23.6068 23.7315 24.0484
- 0.67N / 47: 23.6628 23.5633 23.4870 23.4278 23.4670 23.7064
- 0.33N / 46: 23.5593 23.4735 23.4013 23.3239 23.2836 23.4092
- 0 / 45: 23.6053 23.5232 23.4384 23.3380 23.2391 23.2432
- ---- L:3 T: 25-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2023 24.1706 24.1868 24.3320 24.6889 25.1380
- 1N / 48: 24.0570 24.0199 24.0121 24.1010 24.3886 24.7878
- 0.67N / 47: 23.9679 23.9272 23.8960 23.9112 24.0946 24.4255
- 0.33N / 46: 23.9500 23.8924 23.8363 23.7920 23.8598 24.0974
- 0 / 45: 24.0303 23.9535 23.8642 23.7713 23.7408 23.8683
- ---- K:2 Z: 15
- 1.33N / 49: 23.9413 23.9053 23.9237 24.0709 24.4373 24.9355
- 1N / 48: 23.7355 23.6943 23.6933 23.7943 24.0980 24.5443
- 0.67N / 47: 23.5856 23.5436 23.5197 23.5450 23.7499 24.1251
- 0.33N / 46: 23.5242 23.4660 23.4157 23.3749 23.4550 23.7312
- 0 / 45: 23.6083 23.5263 23.4345 23.3357 23.3000 23.4491
-LIST temp[g=g5day,gx=g5day at asn]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @ASN
- strip regrid on Y: TEMP --> XNTERMED @LIN
- strip regrid on T: TEMP --> YNTERMED @LIN
- reading TEMP M: 50 dset: 1 I: 100 105 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 54 dset: 1 I: 100 105 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 58 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 54 dset: 1 I: 100 105 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 54 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 58 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5DAY on X at ASN, on Y at LIN, on T at LIN
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:2 T: 20-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3718 24.2759 24.2381 24.3143 24.5845 24.9998
- 1N / 48: 24.1915 24.1099 24.0666 24.1084 24.3268 24.6951
- 0.67N / 47: 24.0557 23.9849 23.9336 23.9307 24.0730 24.3751
- 0.33N / 46: 23.9834 23.9165 23.8564 23.8115 23.8637 24.0759
- 0 / 45: 23.9966 23.9258 23.8496 23.7701 23.7430 23.8530
- ---- K:2 Z: 15
- 1.33N / 49: 24.1479 24.0348 23.9902 24.0651 24.3406 24.7844
- 1N / 48: 23.9151 23.8193 23.7735 23.8199 24.0509 24.4498
- 0.67N / 47: 23.7150 23.6338 23.5826 23.5862 23.7461 24.0841
- 0.33N / 46: 23.5857 23.5123 23.4548 23.4139 23.4780 23.7252
- 0 / 45: 23.5750 23.4974 23.4222 23.3420 23.3139 23.4455
- ---- L:3 T: 25-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2986 24.3714 24.5593 24.9405 25.4006 25.6571
- 1N / 48: 24.1387 24.1885 24.3309 24.6454 25.0684 25.3212
- 0.67N / 47: 24.0238 24.0371 24.1191 24.3444 24.7020 24.9439
- 0.33N / 46: 23.9705 23.9413 23.9571 24.0777 24.3415 24.5694
- 0 / 45: 23.9960 23.9223 23.8745 23.8951 24.0474 24.2410
- ---- K:2 Z: 15
- 1.33N / 49: 24.0465 24.1179 24.3048 24.7018 25.2123 25.5259
- 1N / 48: 23.8411 23.8950 24.0422 24.3726 24.8452 25.1571
- 0.67N / 47: 23.6700 23.6890 23.7799 24.0219 24.4252 24.7240
- 0.33N / 46: 23.5701 23.5428 23.5650 23.6985 23.9987 24.2798
- 0 / 45: 23.5791 23.4988 23.4489 23.4714 23.6448 23.8804
-LIST temp[g=g5day,gy=g5day at asn]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @LIN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- strip regrid on T: TEMP --> YNTERMED @LIN
- reading TEMP M: 58 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 59 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 60 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 59 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 59 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 60 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5DAY on X at LIN, on Y at ASN, on T at LIN
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:2 T: 20-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2294 24.1666 24.1789 24.3348 24.6565 25.0363
- 1N / 48: 24.0720 24.0100 23.9961 24.1004 24.3654 24.6946
- 0.67N / 47: 23.9687 23.9085 23.8682 23.9032 24.0827 24.3496
- 0.33N / 46: 23.9312 23.8643 23.7997 23.7720 23.8569 24.0495
- 0 / 45: 23.9912 23.9110 23.8200 23.7410 23.7390 23.8465
- ---- K:2 Z: 15
- 1.33N / 49: 23.9767 23.9044 23.9159 24.0764 24.4158 24.8366
- 1N / 48: 23.7576 23.6884 23.6775 23.7944 24.0849 24.4571
- 0.67N / 47: 23.5912 23.5281 23.4913 23.5379 23.7453 24.0569
- 0.33N / 46: 23.5068 23.4390 23.3774 23.3540 23.4579 23.6911
- 0 / 45: 23.5656 23.4806 23.3868 23.3018 23.3015 23.4336
- ---- L:3 T: 25-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2444 24.3616 24.6223 25.0230 25.3769 25.4884
- 1N / 48: 24.0827 24.1577 24.3539 24.6907 25.0127 25.1114
- 0.67N / 47: 23.9782 23.9985 24.1095 24.3557 24.6332 24.7370
- 0.33N / 46: 23.9336 23.8998 23.9253 24.0636 24.2777 24.3972
- 0 / 45: 23.9847 23.8969 23.8444 23.8789 24.0106 24.1269
- ---- K:2 Z: 15
- 1.33N / 49: 23.9764 24.0949 24.3635 24.7971 25.2062 25.3654
- 1N / 48: 23.7597 23.8423 24.0513 24.4207 24.7960 24.9418
- 0.67N / 47: 23.5993 23.6266 23.7505 24.0264 24.3532 24.5021
- 0.33N / 46: 23.5136 23.4812 23.5130 23.6709 23.9254 24.0877
- 0 / 45: 23.5643 23.4665 23.4073 23.4453 23.5998 23.7470
-LIST temp[g=g5day,gz=g5day at asn]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @LIN
- strip regrid on T: TEMP --> XNTERMED @LIN
- reading TEMP M: 60 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 61 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 62 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 61 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5DAY
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:2 T: 20-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3238 24.2570 24.2762 24.4494 24.7922 25.1903
- 1N / 48: 24.1507 24.0883 24.0875 24.2176 24.5110 24.8654
- 0.67N / 47: 24.0203 23.9592 23.9321 24.0018 24.2240 24.5221
- 0.33N / 46: 23.9499 23.8864 23.8340 23.8376 23.9698 24.1996
- 0 / 45: 23.9612 23.8877 23.8099 23.7565 23.7980 23.9480
- ---- K:2 Z: 15
- 1.33N / 49: 24.0913 24.0125 24.0276 24.2028 24.5625 25.0016
- 1N / 48: 23.8672 23.7964 23.7967 23.9354 24.2503 24.6469
- 0.67N / 47: 23.6744 23.6082 23.5844 23.6661 23.9151 24.2570
- 0.33N / 46: 23.5490 23.4835 23.4343 23.4459 23.6016 23.8740
- 0 / 45: 23.5362 23.4598 23.3821 23.3279 23.3797 23.5624
- ---- L:3 T: 25-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3350 24.4653 24.7499 25.1705 25.5289 25.6409
- 1N / 48: 24.1636 24.2597 24.4881 24.8569 25.1948 25.2999
- 0.67N / 47: 24.0305 24.0781 24.2317 24.5232 24.8229 24.9242
- 0.33N / 46: 23.9559 23.9492 24.0174 24.2096 24.4555 24.5671
- 0 / 45: 23.9591 23.8984 23.8848 23.9713 24.1442 24.2621
- ---- K:2 Z: 15
- 1.33N / 49: 24.0822 24.2113 24.5033 24.9571 25.3691 25.5280
- 1N / 48: 23.8680 23.9686 24.2074 24.6089 25.0011 25.1536
- 0.67N / 47: 23.6795 23.7345 23.9009 24.2235 24.5746 24.7220
- 0.33N / 46: 23.5565 23.5539 23.6318 23.8486 24.1393 24.2949
- 0 / 45: 23.5390 23.4739 23.4601 23.5581 23.7626 23.9173
-LIST temp[g=g5day,gt=g5day at asn]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @LIN
- strip regrid on T: TEMP --> XNTERMED @ASN
- reading TEMP M: 61 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 63 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 64 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 63 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5DAY on X at LIN, on Y at LIN, on T at ASN
- FILENAME : gtsa056_1.cdf
- SUBSET : 6 by 5 by 2 by 2 points (LONGITUDE-LATITUDE-DEPTH (m)-TIME)
- 130W 129W 128W 127W 126W 125W
- 100 101 102 103 104 105
- ---- L:2 T: 20-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.3636 24.2466 24.2047 24.2944 24.5700 24.9834
- 1N / 48: 24.1823 24.0808 24.0293 24.0856 24.3131 24.6721
- 0.67N / 47: 24.0429 23.9555 23.8925 23.9012 24.0590 24.3508
- 0.33N / 46: 23.9628 23.8852 23.8134 23.7743 23.8464 24.0554
- 0 / 45: 23.9650 23.8885 23.8048 23.7281 23.7207 23.8377
- ---- K:2 Z: 15
- 1.33N / 49: 24.1405 24.0053 23.9571 24.0466 24.3282 24.7726
- 1N / 48: 23.9068 23.7900 23.7358 23.7995 24.0412 24.4324
- 0.67N / 47: 23.7030 23.6045 23.5401 23.5583 23.7383 24.0672
- 0.33N / 46: 23.5647 23.4813 23.4100 23.3756 23.4665 23.7136
- 0 / 45: 23.5403 23.4591 23.3754 23.2961 23.2938 23.4386
- ---- L:3 T: 25-JAN-1982 00:00
- ---- K:1 Z: 5
- 1.33N / 49: 24.2757 24.2696 24.3629 24.6374 25.0615 25.4411
- 1N / 48: 24.1124 24.0973 24.1580 24.3776 24.7508 25.0998
- 0.67N / 47: 23.9930 23.9638 23.9801 24.1238 24.4241 24.7297
- 0.33N / 46: 23.9344 23.8880 23.8589 23.9144 24.1193 24.3743
- 0 / 45: 23.9566 23.8866 23.8159 23.7910 23.8916 24.0818
- ---- K:2 Z: 15
- 1.33N / 49: 24.0317 24.0211 24.1131 24.3923 24.8465 25.2791
- 1N / 48: 23.8191 23.8041 23.8706 24.1001 24.5038 24.9069
- 0.67N / 47: 23.6398 23.6127 23.6381 23.7968 24.1294 24.4871
- 0.33N / 46: 23.5298 23.4863 23.4638 23.5312 23.7653 24.0683
- 0 / 45: 23.5312 23.4606 23.3902 23.3664 23.4839 23.7124
-
-! all 4 axes different
-LIST temp[g=g5_10 at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @AAV
- strip regrid on Z: TEMP --> XNTERMED @AVE
- strip regrid on T: TEMP --> ZNTERMED @AVE
- reading TEMP M: 63 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 65 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 66 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 65 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 65 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 66 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5_10 on X at AAV, on Y at AAV, on Z at AVE, on T at AVE
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 2 points (LATITUDE-TIME)
- LONGITUDE: 130W
- DEPTH (m): 10
- 0 0.33N 0.67N 1N 1.33N
- 45 46 47 48 49
- 20-JAN-1982 00 / 2: 23.8829 23.9742 24.1489 24.3750 24.6256
- 25-JAN-1982 00 / 3: 23.8850 23.9834 24.1657 24.3983 24.6503
-LIST temp[g=g5_10,gx=g5_10 at ave]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- -DELETE TEMP M: 65 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @AVE
- strip regrid on Y: TEMP --> XNTERMED @LIN
- strip regrid on Z: TEMP --> YNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @LIN
- reading TEMP M: 65 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 66 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 67 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 66 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 66 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 67 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 67 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 66 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 2 points (LATITUDE-TIME)
- LONGITUDE: 130W
- DEPTH (m): 10
- 0 0.33N 0.67N 1N 1.33N
- 45 46 47 48 49
- 20-JAN-1982 00 / 2: 23.8838 23.9752 24.1501 24.3761 24.6265
- 25-JAN-1982 00 / 3: 23.8774 23.9728 24.1535 24.3857 24.6381
-LIST temp[g=g5_10,gy=g5_10 at ave]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @LIN
- strip regrid on Y: TEMP --> XNTERMED @AVE
- strip regrid on Z: TEMP --> YNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @LIN
- reading TEMP M: 66 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 68 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 69 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 68 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 68 dset: 1 I: 100 101 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 69 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 69 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 68 dset: 1 I: 100 101 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5_10 on X at LIN, on Y at AVE, on Z at LIN, on T at LIN
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 2 points (LATITUDE-TIME)
- LONGITUDE: 130W
- DEPTH (m): 10
- 0 0.33N 0.67N 1N 1.33N
- 45 46 47 48 49
- 20-JAN-1982 00 / 2: 23.7487 23.7495 23.8474 24.0089 24.2076
- 25-JAN-1982 00 / 3: 23.7491 23.7562 23.8550 24.0158 24.2086
-LIST temp[g=g5_10,gz=g5_10 at ave]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @LIN
- strip regrid on Z: TEMP --> XNTERMED @AVE
- strip regrid on T: TEMP --> ZNTERMED @LIN
- reading TEMP M: 68 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 70 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 71 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 70 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 70 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 71 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5_10 on X at LIN, on Y at LIN, on Z at AVE, on T at LIN
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 2 points (LATITUDE-TIME)
- LONGITUDE: 130W
- DEPTH (m): 10
- 0 0.33N 0.67N 1N 1.33N
- 45 46 47 48 49
- 20-JAN-1982 00 / 2: 23.7487 23.7495 23.8474 24.0089 24.2076
- 25-JAN-1982 00 / 3: 23.7491 23.7562 23.8550 24.0158 24.2086
-LIST temp[g=g5_10,gt=g5_10 at ave]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @LIN
- strip regrid on Z: TEMP --> XNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @AVE
- reading TEMP M: 71 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 72 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 73 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 72 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 72 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 73 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at AVE
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 2 points (LATITUDE-TIME)
- LONGITUDE: 130W
- DEPTH (m): 10
- 0 0.33N 0.67N 1N 1.33N
- 45 46 47 48 49
- 20-JAN-1982 00 / 2: 23.7485 23.7489 23.8463 24.0075 24.2057
- 25-JAN-1982 00 / 3: 23.7481 23.7620 23.8678 24.0343 24.2309
-
-LIST temp[g=g5_10 at asn]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- strip regrid on Z: TEMP --> YNTERMED @ASN
- strip regrid on T: TEMP --> ZNTERMED @ASN
- reading TEMP M: 73 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 74 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 75 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 74 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 74 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 75 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 75 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 74 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5_10 on X at ASN, on Y at ASN, on Z at ASN, on T at ASN
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 2 points (LATITUDE-TIME)
- LONGITUDE: 130W
- DEPTH (m): 10
- 0 0.33N 0.67N 1N 1.33N
- 45 46 47 48 49
- 20-JAN-1982 00 / 2: 29.5859 29.5797 29.5756 29.5662 29.5590
- 25-JAN-1982 00 / 3: 29.5787 29.5737 29.5698 29.5546 29.5421
-LIST temp[g=g5_10,gx=g5_10 at asn]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @ASN
- strip regrid on Y: TEMP --> XNTERMED @LIN
- strip regrid on Z: TEMP --> YNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @LIN
- reading TEMP M: 74 dset: 1 I: 12 12 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 76 dset: 1 I: 12 12 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 77 dset: 1 I: 12 12 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 76 dset: 1 I: 12 12 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 76 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 77 dset: 1 I: 12 12 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 77 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 76 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5_10 on X at ASN, on Y at LIN, on Z at LIN, on T at LIN
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 2 points (LATITUDE-TIME)
- LONGITUDE: 130W
- DEPTH (m): 10
- 0 0.33N 0.67N 1N 1.33N
- 45 46 47 48 49
- 20-JAN-1982 00 / 2: 29.5747 29.5654 29.5513 29.5344 29.5265
- 25-JAN-1982 00 / 3: 29.5636 29.5536 29.5355 29.5146 29.5054
-LIST temp[g=g5_10,gy=g5_10 at asn]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @LIN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- strip regrid on Z: TEMP --> YNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @LIN
- reading TEMP M: 76 dset: 1 I: 100 101 J: 45 49 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 78 dset: 1 I: 100 101 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 79 dset: 1 I: 100 101 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 78 dset: 1 I: 100 101 J: 45 49 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 78 dset: 1 I: 100 101 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 79 dset: 1 I: 100 101 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 79 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 78 dset: 1 I: 100 101 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5_10 on X at LIN, on Y at ASN, on Z at LIN, on T at LIN
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 2 points (LATITUDE-TIME)
- LONGITUDE: 130W
- DEPTH (m): 10
- 0 0.33N 0.67N 1N 1.33N
- 45 46 47 48 49
- 20-JAN-1982 00 / 2: 23.7784 23.7190 23.7799 23.9148 24.1031
- 25-JAN-1982 00 / 3: 23.7745 23.7236 23.7888 23.9212 24.1104
-LIST temp[g=g5_10,gz=g5_10 at asn]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @LIN
- strip regrid on Z: TEMP --> XNTERMED @ASN
- strip regrid on T: TEMP --> ZNTERMED @LIN
- reading TEMP M: 78 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 80 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 81 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 80 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 80 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 81 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5_10 on X at LIN, on Y at LIN, on Z at ASN, on T at LIN
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 2 points (LATITUDE-TIME)
- LONGITUDE: 130W
- DEPTH (m): 10
- 0 0.33N 0.67N 1N 1.33N
- 45 46 47 48 49
- 20-JAN-1982 00 / 2: 23.9612 23.9499 24.0203 24.1507 24.3238
- 25-JAN-1982 00 / 3: 23.9591 23.9559 24.0305 24.1636 24.3350
-LIST temp[g=g5_10,gt=g5_10 at asn]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @LIN
- strip regrid on Z: TEMP --> XNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @ASN
- reading TEMP M: 81 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 82 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 83 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 82 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 82 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 83 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 2 points (LATITUDE-TIME)
- LONGITUDE: 130W
- DEPTH (m): 10
- 0 0.33N 0.67N 1N 1.33N
- 45 46 47 48 49
- 20-JAN-1982 00 / 2: 23.7527 23.7638 23.8729 24.0446 24.2520
- 25-JAN-1982 00 / 3: 23.7439 23.7321 23.8164 23.9658 24.1537
-
-! unspecified regions
-SET MODE IGNORE ! V.5 change
-canc reg
-set reg/l=1:3 ! x,y,z unspecified
-load temp
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DT2 PSXT1 PSYT PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 3 M: -999 -999 N: -999 -999
- reading TEMP M: 83 dset: 1 I: 1 160 J: 5 89 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
-load temp[g=u]
- dealloc dynamic grid PS3DT2 PSXT1 PSYT PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @LIN
- strip modulo-void-filling TEMP on X axis: 1 161 dset: 1
- reading TEMP M: 84 dset: 1 I: 1 160 J: 5 89 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- doing modulo-void-filling TEMP on X axis: 1 160 dset: 1
- regrid XY
- regrid TEMP M: 86 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
-load temp[g=u at lin]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @LIN
- strip modulo-void-filling TEMP on X axis: 1 161 dset: 1
- reading TEMP M: 87 dset: 1 I: 1 160 J: 5 89 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- doing modulo-void-filling TEMP on X axis: 1 160 dset: 1
- regrid XY
- regrid TEMP M: 89 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
-
-load temp[g=u at ave]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @AAV
- strip modulo-void-filling TEMP on X axis: 1 161 dset: 1
- reading TEMP M: 90 dset: 1 I: 1 160 J: 5 89 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- doing modulo-void-filling TEMP on X axis: 1 160 dset: 1
- regrid XY
- regrid TEMP M: 92 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
-load temp[g=u,gx=u at ave]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 3 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @AVE
- strip modulo-void-filling TEMP on X axis: 1 161 dset: 1
- strip regrid on Y: TEMP --> XNTERMED @LIN
- reading TEMP M: 93 dset: 1 I: 1 160 J: 5 89 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 94 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- doing modulo-void-filling TEMP on X axis: 1 160 dset: 1
- regrid TEMP M: 96 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 95 dset: 1 I: 1 161 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
-load temp[g=u,gy=u at ave]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 3 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @LIN
- strip modulo-void-filling TEMP on X axis: 1 161 dset: 1
- strip regrid on Y: TEMP --> XNTERMED @AVE
- reading TEMP M: 95 dset: 1 I: 1 160 J: 5 89 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 97 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- doing modulo-void-filling TEMP on X axis: 1 160 dset: 1
- regrid TEMP M: 99 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 98 dset: 1 I: 1 161 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
-
-load temp[g=u at asn]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- reading TEMP M: 98 dset: 1 I: 1 160 J: 5 89 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- regrid TEMP M:100 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- regrid TEMP M:101 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:100 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
-load temp[g=u,gx=u at asn]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 3 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @ASN
- strip regrid on Y: TEMP --> XNTERMED @LIN
- reading TEMP M:100 dset: 1 I: 1 160 J: 5 89 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- regrid TEMP M:102 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- regrid TEMP M:103 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:102 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
-load temp[g=u,gy=u at asn]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 3 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @LIN
- strip modulo-void-filling TEMP on X axis: 1 161 dset: 1
- strip regrid on Y: TEMP --> XNTERMED @ASN
- reading TEMP M:102 dset: 1 I: 1 160 J: 5 89 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- regrid TEMP M:104 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- doing modulo-void-filling TEMP on X axis: 1 160 dset: 1
- regrid TEMP M:106 dset: 1 I: 1 160 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:105 dset: 1 I: 1 161 J: 1 100 K: 1 2 L: 1 3 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
-
-canc reg
-use gtsa056_2 !kob 4/99
-set reg/i=101:105/j=41:42 ! z,t unspecified
-load temp[g=u]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: 101 105 J: 41 42 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU1 @LIN
- reading TEMP M:105 dset: 2 I: 101 106 J: 41 43 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:107 dset: 2 I: 101 105 J: 41 42 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
-
-load temp[g=u at ave]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: 101 105 J: 41 42 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU1 @AAV
- reading TEMP M:108 dset: 2 I: 101 106 J: 41 43 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:109 dset: 2 I: 101 105 J: 41 42 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
-load temp[g=u,gz=u at ave]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: 101 105 J: 41 42 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU1 @LIN
- reading TEMP M:110 dset: 2 I: 101 106 J: 41 43 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:111 dset: 2 I: 101 105 J: 41 42 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
-load temp[g=u,gt=u at ave]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: 101 105 J: 41 42 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU1 @LIN
- reading TEMP M:112 dset: 2 I: 101 106 J: 41 43 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:113 dset: 2 I: 101 105 J: 41 42 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
-
-load temp[g=u at asn]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: 101 105 J: 41 42 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU1 @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- reading TEMP M:114 dset: 2 I: 101 105 J: 41 42 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- regrid TEMP M:115 dset: 2 I: 101 105 J: 41 42 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- regrid TEMP M:116 dset: 2 I: 101 105 J: 41 42 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- -DELETE TEMP M:115 dset: 2 I: 101 105 J: 41 42 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
-load temp[g=u,gz=u at asn]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: 101 105 J: 41 42 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU1 @LIN
- reading TEMP M:115 dset: 2 I: 101 106 J: 41 43 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:117 dset: 2 I: 101 105 J: 41 42 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
-load temp[g=u,gt=u at asn]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: 101 105 J: 41 42 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU1 @LIN
- reading TEMP M:118 dset: 2 I: 101 106 J: 41 43 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:119 dset: 2 I: 101 105 J: 41 42 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
-SET MODE/LAST IGNORE ! V.5 change
-
-! plot verifications
-set mode interp ! regridding is also an interpolation
-cancel viewports
-set window/size=.5/aspect=.4 1
-
-! X axis
-use gtsa056_1 !kob 4/99
-set region/x=130E:90W/y=0/z=5/t=21-JAN-1982
-plot temp
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DT2 PSXT1 PSYT PSZT TIME2 NORMAL NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 1 140 J: 45 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- reading TEMP M:120 dset: 1 I: 1 140 J: 45 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 76 complete
-plot/over temp[g=u]
- dealloc dynamic grid PS3DT2 PSXT1 PSYT PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 0 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip moduloing TEMP on X axis: 0 140 dset: 1
- strip regrid on X: TEMP --> PS3DU2 @LIN
- reading TEMP M:123 dset: 1 I: 1 141 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:124 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing moduloing TEMP on X axis: 1 140 dset: 1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 77 complete
-plot/over temp[g=g5day]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 0 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip moduloing TEMP on X axis: 0 140 dset: 1
- strip regrid on X: TEMP --> G5DAY @LIN
- strip regrid on T: TEMP --> XNTERMED @LIN
- reading TEMP M:128 dset: 1 I: 1 141 J: 44 46 K: 1 1 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M:129 dset: 1 I: 1 141 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:130 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:129 dset: 1 I: 1 141 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing moduloing TEMP on X axis: 1 140 dset: 1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 78 complete
-plot/over temp[g=g5_10]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval EX#1 C: 7 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @LIN
- strip moduloing TEMP on X axis: 0 141 dset: 1
- strip regrid on Z: TEMP --> XNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @LIN
- reading TEMP M:133 dset: 1 I: 1 141 J: 44 46 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M:134 dset: 1 I: 1 141 J: 44 46 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:135 dset: 1 I: 1 141 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:134 dset: 1 I: 1 141 J: 44 46 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- doing moduloing TEMP on X axis: 1 141 dset: 1
- regrid XY
- regrid TEMP M:136 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:134 dset: 1 I: 0 141 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 79 complete
-plot/over temp[g=u at ave]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 0 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip moduloing TEMP on X axis: 0 140 dset: 1
- strip regrid on X: TEMP --> PS3DU2 @AAV
- reading TEMP M:139 dset: 1 I: 1 141 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:140 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing moduloing TEMP on X axis: 1 140 dset: 1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 80 complete
-plot/over temp[g=g5day at ave]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 0 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip moduloing TEMP on X axis: 0 140 dset: 1
- strip regrid on X: TEMP --> G5DAY @AAV
- strip regrid on T: TEMP --> XNTERMED @AVE
- reading TEMP M:144 dset: 1 I: 1 141 J: 44 46 K: 1 1 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M:145 dset: 1 I: 1 141 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:146 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:145 dset: 1 I: 1 141 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing moduloing TEMP on X axis: 1 140 dset: 1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 81 complete
-plot/over temp[g=g5_10 at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval EX#1 C: 7 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @AAV
- strip moduloing TEMP on X axis: 0 146 dset: 1
- strip regrid on Z: TEMP --> XNTERMED @AVE
- strip regrid on T: TEMP --> ZNTERMED @AVE
- reading TEMP M:149 dset: 1 I: 1 146 J: 44 46 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M:150 dset: 1 I: 1 146 J: 44 46 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:151 dset: 1 I: 1 146 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:150 dset: 1 I: 1 146 J: 44 46 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- doing moduloing TEMP on X axis: 1 146 dset: 1
- regrid XY
- regrid TEMP M:152 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:150 dset: 1 I: 0 146 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 82 complete
-plot/over temp[g=u at asn]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 0 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip moduloing TEMP on X axis: 0 140 dset: 1
- strip regrid on X: TEMP --> PS3DU2 @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- reading TEMP M:155 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:156 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:157 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:156 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing moduloing TEMP on X axis: 1 140 dset: 1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 83 complete
-plot/over temp[g=g5day at asn]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 0 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip moduloing TEMP on X axis: 0 140 dset: 1
- strip regrid on X: TEMP --> G5DAY @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- strip regrid on T: TEMP --> YNTERMED @ASN
- reading TEMP M:160 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:161 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:162 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:161 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:161 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:162 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing moduloing TEMP on X axis: 1 140 dset: 1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 84 complete
-plot/over temp[g=u,gx=u at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 0 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip moduloing TEMP on X axis: 0 140 dset: 1
- strip regrid on X: TEMP --> PS3DU2 @AVE
- strip regrid on Y: TEMP --> XNTERMED @LIN
- reading TEMP M:165 dset: 1 I: 1 141 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:166 dset: 1 I: 1 141 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:167 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:166 dset: 1 I: 1 141 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing moduloing TEMP on X axis: 1 140 dset: 1
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 85 complete
-plot/over temp[g=g5day,gx=g5day at ave]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 0 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip moduloing TEMP on X axis: 0 140 dset: 1
- strip regrid on X: TEMP --> G5DAY @AVE
- strip regrid on Y: TEMP --> XNTERMED @LIN
- strip regrid on T: TEMP --> YNTERMED @LIN
- reading TEMP M:170 dset: 1 I: 1 141 J: 44 46 K: 1 1 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M:171 dset: 1 I: 1 141 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:172 dset: 1 I: 1 141 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:171 dset: 1 I: 1 141 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:171 dset: 1 I: 1 140 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:172 dset: 1 I: 1 141 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing moduloing TEMP on X axis: 1 140 dset: 1
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 86 complete
-plot/over temp[g=g5_10,gx=g5_10 at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval EX#1 C: 7 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @AVE
- strip moduloing TEMP on X axis: 0 146 dset: 1
- strip regrid on Y: TEMP --> XNTERMED @LIN
- strip regrid on Z: TEMP --> YNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @LIN
- reading TEMP M:175 dset: 1 I: 1 146 J: 44 46 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M:176 dset: 1 I: 1 146 J: 44 46 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:177 dset: 1 I: 1 146 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:176 dset: 1 I: 1 146 J: 44 46 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:176 dset: 1 I: 1 146 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:177 dset: 1 I: 1 146 J: 44 46 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing moduloing TEMP on X axis: 1 146 dset: 1
- regrid TEMP M:178 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:177 dset: 1 I: 0 146 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 87 complete
-plot/over temp[g=g5_10 at asn] ! invalid interpretation of data
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- eval EX#1 C: 7 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- strip regrid on Z: TEMP --> YNTERMED @ASN
- strip regrid on T: TEMP --> ZNTERMED @ASN
- reading TEMP M:181 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:182 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:183 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:182 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:182 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:183 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:183 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:182 dset: 1 I: 2 16 J: 44 45 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 88 complete
-
-! Y axis
-set region/x=180/y=20s:20n/z=5/t=21-JAN-1982
-plot temp
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DT2 PSXT1 PSYT PSZT TIME2 NORMAL NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[X=180E at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 50 51 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- reading TEMP M:186 dset: 1 I: 50 51 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 89 complete
-plot/over temp[g=u]
- dealloc dynamic grid PS3DT2 PSXT1 PSYT PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval EX#1 C: 5 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @LIN
- reading TEMP M:189 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:190 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 90 complete
-plot/over temp[g=g5day]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval EX#1 C: 5 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @LIN
- strip regrid on T: TEMP --> XNTERMED @LIN
- reading TEMP M:192 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M:193 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:194 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:193 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 91 complete
-plot/over temp[g=g5_10]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @LIN
- strip regrid on Z: TEMP --> XNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @LIN
- reading TEMP M:195 dset: 1 I: 50 51 J: 5 89 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M:196 dset: 1 I: 50 51 J: 5 89 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:197 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:196 dset: 1 I: 50 51 J: 5 89 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:196 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:197 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 92 complete
-plot/over temp[g=u at ave]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval EX#1 C: 5 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @AAV
- reading TEMP M:199 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:200 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 93 complete
-plot/over temp[g=g5day at ave]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval EX#1 C: 5 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @AAV
- strip regrid on T: TEMP --> XNTERMED @AVE
- reading TEMP M:202 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M:203 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:204 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:203 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 94 complete
-plot/over temp[g=g5_10 at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @AAV
- strip regrid on Z: TEMP --> XNTERMED @AVE
- strip regrid on T: TEMP --> ZNTERMED @AVE
- reading TEMP M:205 dset: 1 I: 45 56 J: 5 89 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M:206 dset: 1 I: 45 56 J: 5 89 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:207 dset: 1 I: 45 56 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:206 dset: 1 I: 45 56 J: 5 89 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:206 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:207 dset: 1 I: 45 56 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 95 complete
-plot/over temp[g=u at asn]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval EX#1 C: 5 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> PS3DU2 @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- reading TEMP M:209 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:210 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:211 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:210 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 96 complete
-plot/over temp[g=g5day at asn]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval EX#1 C: 5 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- strip regrid on T: TEMP --> YNTERMED @ASN
- reading TEMP M:212 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:213 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:214 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:213 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:213 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:214 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 97 complete
-plot/over temp[g=u,gy=u at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval EX#1 C: 5 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- strip regrid on X: TEMP --> PS3DU2 @LIN
- strip regrid on Y: TEMP --> XNTERMED @AVE
- reading TEMP M:215 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:216 dset: 1 I: 50 51 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:217 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:216 dset: 1 I: 50 51 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 98 complete
-plot/over temp[g=g5day,gy=g5day at ave]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval EX#1 C: 5 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @LIN
- strip regrid on Y: TEMP --> XNTERMED @AVE
- strip regrid on T: TEMP --> YNTERMED @LIN
- reading TEMP M:218 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M:219 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:220 dset: 1 I: 50 51 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:219 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:219 dset: 1 I: 50 50 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:220 dset: 1 I: 50 51 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 99 complete
-plot/over temp[g=g5_10,gy=g5_10 at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @LIN
- strip regrid on Y: TEMP --> XNTERMED @AVE
- strip regrid on Z: TEMP --> YNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @LIN
- reading TEMP M:221 dset: 1 I: 50 51 J: 5 89 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M:222 dset: 1 I: 50 51 J: 5 89 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:223 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:222 dset: 1 I: 50 51 J: 5 89 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:222 dset: 1 I: 50 51 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:223 dset: 1 I: 50 51 J: 5 89 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:223 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:222 dset: 1 I: 50 51 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 100 complete
-plot/over temp[g=g5_10 at asn] ! invalid interpretation of data
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Z=5 at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- strip regrid on Z: TEMP --> YNTERMED @ASN
- strip regrid on T: TEMP --> ZNTERMED @ASN
- reading TEMP M:225 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:226 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:227 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:226 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:226 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:227 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M:227 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M:226 dset: 1 I: 7 7 J: 5 88 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- doing --> TEMP[Z=5 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 101 complete
-
-! T axis
-use gtsa056_2 !kob 4/99
-set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
-load temp[i=50:51,j=45:56,k=1:2,l=1:172] ! preload to save time
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DT1 PSXT1 PSYT PSZT TIME1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip moduloing TEMP on T axis: 1 172 dset: 2
- reading TEMP M:229 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 168 dset: 2
-plot temp
- dealloc dynamic grid PS3DT1 PSXT1 PSYT PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DT1 PSXT1 PSYT PSZT TIME1 NORMAL NORMAL
- strip --> EX#1[Y=0 at ITP,D=2]
- strip --> EX#1[X=180E at ITP,D=2]
- eval EX#1 C: 6 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- strip moduloing TEMP on T axis: 3 170 dset: 2
- reading TEMP M:231 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 3 168 dset: 2
- reading TEMP M:233 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 2 dset: 2
- doing --> TEMP[X=180E at ITP,D=2]
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 102 complete
-plot/over temp[g=u]
- dealloc dynamic grid PS3DT1 PSXT1 PSYT PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- strip --> EX#1[Y=0 at ITP,D=2]
- eval EX#1 C: 5 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- strip moduloing TEMP on T axis: 3 170 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @LIN
- reading TEMP M:236 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:237 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 3 168 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @LIN
- reading TEMP M:239 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:240 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 2 dset: 2
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 103 complete
-plot/over temp[g=g5day]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[Y=0 at ITP,D=2]
- eval EX#1 C: 5 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @LIN
- strip regrid on T: TEMP --> XNTERMED @LIN
- strip moduloing TEMP on T axis: 2 171 dset: 2
- reading TEMP M:242 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 1 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 168 dset: 2
- regrid TEMP M:244 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:245 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M:244 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 104 complete
-plot/over temp[g=g5_10]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[Z=5 at ITP,D=2]
- strip --> EX#1[Y=0 at ITP,D=2]
- eval EX#1 C: 6 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @LIN
- strip regrid on Z: TEMP --> XNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @LIN
- strip moduloing TEMP on T axis: 2 171 dset: 2
- reading TEMP M:246 dset: 2 I: 50 51 J: 44 46 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 168 dset: 2
- regrid TEMP M:248 dset: 2 I: 50 51 J: 44 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M:249 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M:248 dset: 2 I: 50 51 J: 44 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:248 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M:249 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
- doing --> TEMP[Z=5 at ITP,D=2]
-setting up plot
-PPL plot 105 complete
-plot/over temp[g=u at ave]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- strip --> EX#1[Y=0 at ITP,D=2]
- eval EX#1 C: 5 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- strip moduloing TEMP on T axis: 3 170 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @AAV
- reading TEMP M:251 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:252 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 3 168 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @AAV
- reading TEMP M:254 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:255 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 2 dset: 2
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 106 complete
-plot/over temp[g=g5day at ave]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[Y=0 at ITP,D=2]
- eval EX#1 C: 5 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @AAV
- strip regrid on T: TEMP --> XNTERMED @AVE
- strip moduloing TEMP on T axis: 2 171 dset: 2
- reading TEMP M:257 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 1 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 168 dset: 2
- regrid TEMP M:259 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:260 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M:259 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 107 complete
-plot/over temp[g=g5_10 at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[Z=5 at ITP,D=2]
- strip --> EX#1[Y=0 at ITP,D=2]
- eval EX#1 C: 6 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @AAV
- strip regrid on Z: TEMP --> XNTERMED @AVE
- strip regrid on T: TEMP --> ZNTERMED @AVE
- strip moduloing TEMP on T axis: 2 171 dset: 2
- reading TEMP M:261 dset: 2 I: 45 56 J: 44 46 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 168 dset: 2
- regrid TEMP M:263 dset: 2 I: 45 56 J: 44 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M:264 dset: 2 I: 45 56 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M:263 dset: 2 I: 45 56 J: 44 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:263 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M:264 dset: 2 I: 45 56 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
- doing --> TEMP[Z=5 at ITP,D=2]
-setting up plot
-PPL plot 108 complete
-plot/over temp[g=u at asn]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- strip --> EX#1[Y=0 at ITP,D=2]
- eval EX#1 C: 5 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- strip moduloing TEMP on T axis: 3 170 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- reading TEMP M:266 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- regrid TEMP M:267 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- regrid TEMP M:268 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- -DELETE TEMP M:267 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 3 168 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- reading TEMP M:269 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- regrid TEMP M:270 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- regrid TEMP M:271 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE TEMP M:270 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 2 dset: 2
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 109 complete
-plot/over temp[g=g5_10 at asn]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[Z=5 at ITP,D=2]
- strip --> EX#1[Y=0 at ITP,D=2]
- eval EX#1 C: 6 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- strip regrid on Z: TEMP --> YNTERMED @ASN
- strip regrid on T: TEMP --> ZNTERMED @ASN
- reading TEMP M:272 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M:273 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M:274 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M:273 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M:273 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M:274 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M:274 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M:273 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
- doing --> TEMP[Z=5 at ITP,D=2]
-setting up plot
-PPL plot 110 complete
-plot/over temp[g=u,gt=u at ave]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- strip --> EX#1[Y=0 at ITP,D=2]
- eval EX#1 C: 5 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- strip moduloing TEMP on T axis: 3 170 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @LIN
- reading TEMP M:276 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:277 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 3 168 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @LIN
- reading TEMP M:279 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:280 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 2 dset: 2
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 111 complete
-plot/over temp[g=g5day,gt=g5day at ave]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[Y=0 at ITP,D=2]
- eval EX#1 C: 5 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @LIN
- strip regrid on T: TEMP --> XNTERMED @AVE
- strip moduloing TEMP on T axis: 2 171 dset: 2
- reading TEMP M:282 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 1 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 168 dset: 2
- regrid TEMP M:284 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:285 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M:284 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 112 complete
-plot/over temp[g=g5_10,gt=g5_10 at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[Z=5 at ITP,D=2]
- strip --> EX#1[Y=0 at ITP,D=2]
- eval EX#1 C: 6 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @LIN
- strip regrid on Z: TEMP --> XNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @AVE
- strip moduloing TEMP on T axis: 2 171 dset: 2
- reading TEMP M:286 dset: 2 I: 50 51 J: 44 46 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 168 dset: 2
- regrid TEMP M:288 dset: 2 I: 50 51 J: 44 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M:289 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M:288 dset: 2 I: 50 51 J: 44 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:288 dset: 2 I: 7 7 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M:289 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
- doing --> TEMP[Z=5 at ITP,D=2]
-setting up plot
-PPL plot 113 complete
-plot/over temp[g=g5day,gt=g5day at asn] ! invalid interpretation of data
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[Y=0 at ITP,D=2]
- eval EX#1 C: 5 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAY @LIN
- strip regrid on T: TEMP --> XNTERMED @ASN
- reading TEMP M:291 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M:292 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M:293 dset: 2 I: 50 50 J: 44 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M:292 dset: 2 I: 50 51 J: 44 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- doing --> TEMP[Y=0 at ITP,D=2]
-setting up plot
-PPL plot 114 complete
-
-set mode/last interp
-cancel region
-
-! 1/00 additions to check details of @AVE bevavior
-define axis/x=1.1:7.1:1 xoffset
-define axis/x=5/npoints=1 x1pt
-define axis/x=5:6:1 x2pt
-
-! test 1D regrid
-let a1 = x[gx=x1pt] ! single point
-let a2 = x[gx=x2pt]
-
-list a1[gx=xoffset at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A1 C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A1 --> (G011) @AVE
- eval A1 C: 7 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:294 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A1 M:296 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X1PT]
- regrid: 1 delta on X at AVE
- SUBSET : 7 points (X)
- 1.1 / 1: ....
- 2.1 / 2: ....
- 3.1 / 3: ....
- 4.1 / 4: 5.00000
- 5.1 / 5: 5.00000
- 6.1 / 6: ....
- 7.1 / 7: ....
-list a1[gx=xoffset at sum] ! should sum to 5
- -DELETE X M:294 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A1 M:296 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A1 --> (G011) @SUM
- eval A1 C: 7 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:296 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A1 M:297 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X1PT]
- regrid: 1 delta on X at SUM
- SUBSET : 7 points (X)
- 1.1 / 1: ....
- 2.1 / 2: ....
- 3.1 / 3: ....
- 4.1 / 4: 0.50000
- 5.1 / 5: 4.50000
- 6.1 / 6: ....
- 7.1 / 7: ....
-list a1[gx=xoffset at var] ! should be all missing
- -DELETE X M:296 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A1 M:297 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A1 --> (G011) @VAR
- eval A1 C: 7 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:297 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A1 M:298 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : Variance of X[GX=X1PT]
- regrid: 1 delta on X at VAR
- SUBSET : 7 points (X)
- 1.1 / 1:....
- 2.1 / 2:....
- 3.1 / 3:....
- 4.1 / 4:....
- 5.1 / 5:....
- 6.1 / 6:....
- 7.1 / 7:....
-
-list a2[gx=xoffset at ave]
- -DELETE X M:297 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A1 M:298 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A2 C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A2 --> (G006) @AVE
- eval A2 C: 7 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:298 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A2 M:299 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X2PT]
- regrid: 1 delta on X at AVE
- SUBSET : 7 points (X)
- 1.1 / 1: ....
- 2.1 / 2: ....
- 3.1 / 3: ....
- 4.1 / 4: 5.00000
- 5.1 / 5: 5.10000
- 6.1 / 6: 6.00000
- 7.1 / 7: ....
-list a2[gx=xoffset at sum] ! should sum to 5+6=11
- -DELETE X M:298 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A2 M:299 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A2 --> (G006) @SUM
- eval A2 C: 7 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:299 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A2 M:300 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X2PT]
- regrid: 1 delta on X at SUM
- SUBSET : 7 points (X)
- 1.1 / 1: ....
- 2.1 / 2: ....
- 3.1 / 3: ....
- 4.1 / 4: 0.50000
- 5.1 / 5: 5.10000
- 6.1 / 6: 5.40000
- 7.1 / 7: ....
-list a2[gx=xoffset at var]
- -DELETE X M:299 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A2 M:300 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A2 --> (G006) @VAR
- eval A2 C: 7 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:300 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A2 M:301 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : Variance of X[GX=X2PT]
- regrid: 1 delta on X at VAR
- SUBSET : 7 points (X)
- 1.1 / 1: ....
- 2.1 / 2: ....
- 3.1 / 3: ....
- 4.1 / 4: ....
- 5.1 / 5: 0.0900000
- 6.1 / 6: ....
- 7.1 / 7: ....
-
-! test 2D regrid
-define axis/y=1.1:7.1:1 yoffset
-define axis/y=5/npoints=1 y1pt
-define axis/y=5:6:1 y2pt
-
-let a1 = x[gx=x1pt]+y[gy=y1pt]
- dealloc dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A2 M:301 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A2 M:297 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A2 M:298 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A2 M:299 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE X M:300 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A1 M:294 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A1 M:295 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A1 M:296 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
-let a2 = x[gx=x2pt]+y[gy=y2pt]
-
-list a1[gx=xoffset at ave, gy=yoffset at ave]
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A1 C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G009) NORMAL Y1PT NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G009) NORMAL Y1PT NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G009) X1PT Y1PT NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A1 --> (G011) @AVE
- strip regrid on Y: A1 --> XNTERMED @AVE
- eval A1 C: 8 dset: 0 I: 1 1 J: 1 1 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:296 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) NORMAL Y1PT NORMAL NORMAL NORMAL NORMAL
- pseudo Y M:295 dset: 0 I: -999 -999 J: 1 1 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE Y M:295 dset: 0 I: -999 -999 J: 1 1 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) NORMAL Y1PT NORMAL NORMAL NORMAL NORMAL
- -DELETE X M:296 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A1 M:296 dset: 0 I: 1 1 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid A1 M:295 dset: 0 I: 1 7 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A1 M:296 dset: 0 I: 1 1 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X1PT]+Y[GY=Y1PT]
- regrid: 1 delta on X at AVE, 1 delta on Y at AVE
- SUBSET : 7 by 7 points (X-Y)
- 1.1 2.1 3.1 4.1 5.1 6.1 7.1
- 1 2 3 4 5 6 7
- 1.1 / 1: .... .... .... .... .... .... ....
- 2.1 / 2: .... .... .... .... .... .... ....
- 3.1 / 3: .... .... .... .... .... .... ....
- 4.1 / 4: .... .... .... 10.0000 10.0000 .... ....
- 5.1 / 5: .... .... .... 10.0000 10.0000 .... ....
- 6.1 / 6: .... .... .... .... .... .... ....
- 7.1 / 7: .... .... .... .... .... .... ....
-list a1[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10
- dealloc dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- -DELETE A1 M:295 dset: 0 I: 1 7 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A1 --> (G011) @SUM
- strip regrid on Y: A1 --> XNTERMED @SUM
- eval A1 C: 8 dset: 0 I: 1 1 J: 1 1 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:295 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) NORMAL Y1PT NORMAL NORMAL NORMAL NORMAL
- pseudo Y M:296 dset: 0 I: -999 -999 J: 1 1 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE Y M:296 dset: 0 I: -999 -999 J: 1 1 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) NORMAL Y1PT NORMAL NORMAL NORMAL NORMAL
- -DELETE X M:295 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A1 M:295 dset: 0 I: 1 1 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid A1 M:296 dset: 0 I: 1 7 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A1 M:295 dset: 0 I: 1 1 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X1PT]+Y[GY=Y1PT]
- regrid: 1 delta on X at SUM, 1 delta on Y at SUM
- SUBSET : 7 by 7 points (X-Y)
- 1.1 2.1 3.1 4.1 5.1 6.1 7.1
- 1 2 3 4 5 6 7
- 1.1 / 1: .... .... .... .... .... .... ....
- 2.1 / 2: .... .... .... .... .... .... ....
- 3.1 / 3: .... .... .... .... .... .... ....
- 4.1 / 4: .... .... .... 0.10000 0.90000 .... ....
- 5.1 / 5: .... .... .... 0.90000 8.10000 .... ....
- 6.1 / 6: .... .... .... .... .... .... ....
- 7.1 / 7: .... .... .... .... .... .... ....
-list a1[gx=xoffset at var, gy=yoffset at var] ! should be all missing
- dealloc dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- -DELETE A1 M:296 dset: 0 I: 1 7 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A1 --> (G011) @VAR
- strip regrid on Y: A1 --> XNTERMED @VAR
- eval A1 C: 8 dset: 0 I: 1 1 J: 1 1 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:296 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) NORMAL Y1PT NORMAL NORMAL NORMAL NORMAL
- pseudo Y M:295 dset: 0 I: -999 -999 J: 1 1 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE Y M:295 dset: 0 I: -999 -999 J: 1 1 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) NORMAL Y1PT NORMAL NORMAL NORMAL NORMAL
- -DELETE X M:296 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A1 M:296 dset: 0 I: 1 1 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid A1 M:295 dset: 0 I: 1 7 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A1 M:296 dset: 0 I: 1 1 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- VARIABLE : Variance of X[GX=X1PT]+Y[GY=Y1PT]
- regrid: 1 delta on X at VAR, 1 delta on Y at VAR
- SUBSET : 7 by 7 points (X-Y)
- 1.1 2.1 3.1 4.1 5.1 6.1 7.1
- 1 2 3 4 5 6 7
- 1.1 / 1:............................
- 2.1 / 2:............................
- 3.1 / 3:............................
- 4.1 / 4:............................
- 5.1 / 5:............................
- 6.1 / 6:............................
- 7.1 / 7:............................
-
-list a2[gx=xoffset at ave, gy=yoffset at ave]
- dealloc dynamic grid (G011) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- -DELETE A1 M:295 dset: 0 I: 1 7 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A2 C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G011) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) X2PT Y2PT NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A2 --> (G006) @AVE
- strip regrid on Y: A2 --> XNTERMED @AVE
- eval A2 C: 8 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:295 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
- pseudo Y M:296 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE Y M:296 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
- -DELETE X M:295 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A2 M:295 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid A2 M:296 dset: 0 I: 1 7 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A2 M:295 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X2PT]+Y[GY=Y2PT]
- regrid: 1 delta on X at AVE, 1 delta on Y at AVE
- SUBSET : 7 by 7 points (X-Y)
- 1.1 2.1 3.1 4.1 5.1 6.1 7.1
- 1 2 3 4 5 6 7
- 1.1 / 1: .... .... .... .... .... .... ....
- 2.1 / 2: .... .... .... .... .... .... ....
- 3.1 / 3: .... .... .... .... .... .... ....
- 4.1 / 4: .... .... .... 10.0000 10.1000 11.0000 ....
- 5.1 / 5: .... .... .... 10.1000 10.2000 11.1000 ....
- 6.1 / 6: .... .... .... 11.0000 11.1000 12.0000 ....
- 7.1 / 7: .... .... .... .... .... .... ....
-list a2[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10+11+11+12=44
- dealloc dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- -DELETE A2 M:296 dset: 0 I: 1 7 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A2 --> (G006) @SUM
- strip regrid on Y: A2 --> XNTERMED @SUM
- eval A2 C: 8 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:296 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
- pseudo Y M:295 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE Y M:295 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
- -DELETE X M:296 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A2 M:296 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid A2 M:295 dset: 0 I: 1 7 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A2 M:296 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X2PT]+Y[GY=Y2PT]
- regrid: 1 delta on X at SUM, 1 delta on Y at SUM
- SUBSET : 7 by 7 points (X-Y)
- 1.1 2.1 3.1 4.1 5.1 6.1 7.1
- 1 2 3 4 5 6 7
- 1.1 / 1: .... .... .... .... .... .... ....
- 2.1 / 2: .... .... .... .... .... .... ....
- 3.1 / 3: .... .... .... .... .... .... ....
- 4.1 / 4: .... .... .... 0.1000 1.0100 0.9900 ....
- 5.1 / 5: .... .... .... 1.0100 10.2000 9.9900 ....
- 6.1 / 6: .... .... .... 0.9900 9.9900 9.7200 ....
- 7.1 / 7: .... .... .... .... .... .... ....
- ! NOTE: as of V5.1 NO xy_var trans exists. Need it to be complete ...!
-list a2[gx=xoffset at var, gy=yoffset at var]
- dealloc dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- -DELETE A2 M:295 dset: 0 I: 1 7 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A2 --> (G006) @VAR
- strip regrid on Y: A2 --> XNTERMED @VAR
- eval A2 C: 8 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:295 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
- pseudo Y M:296 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE Y M:296 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
- -DELETE X M:295 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A2 M:295 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid A2 M:296 dset: 0 I: 1 7 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A2 M:295 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- VARIABLE : Variance of X[GX=X2PT]+Y[GY=Y2PT]
- regrid: 1 delta on X at VAR, 1 delta on Y at VAR
- SUBSET : 7 by 7 points (X-Y)
- 1.1 2.1 3.1 4.1 5.1 6.1 7.1
- 1 2 3 4 5 6 7
- 1.1 / 1: .... .... .... .... .... .... ....
- 2.1 / 2: .... .... .... .... .... .... ....
- 3.1 / 3: .... .... .... .... .... .... ....
- 4.1 / 4: .... .... .... .... .... .... ....
- 5.1 / 5: .... .... .... .... 0.000000 .... ....
- 6.1 / 6: .... .... .... .... .... .... ....
- 7.1 / 7: .... .... .... .... .... .... ....
-
-! 1/00 additions to check details of @MIN, at MAX bevavior
-define axis/x=1.1:7.1:1 xoffset
-define axis/x=5/npoints=1 x1pt
-define axis/x=5:6:1 x2pt
-define axis/x=5:6.5:.5 x4pt
-
-let a1 = x[gx=x1pt]
- dealloc dynamic grid (G006) XOFFSET YOFFSET NORMAL NORMAL NORMAL NORMAL
- -DELETE A2 M:296 dset: 0 I: 1 7 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A2 M:297 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A2 M:298 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A2 M:301 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) X2PT Y2PT NORMAL NORMAL NORMAL NORMAL
- -DELETE A1 M:294 dset: 0 I: 1 1 J: 1 1 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A1 M:299 dset: 0 I: 1 1 J: 1 1 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A1 M:300 dset: 0 I: 1 1 J: 1 1 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G009) X1PT Y1PT NORMAL NORMAL NORMAL NORMAL
-let a2 = x[gx=x2pt]
-let a4 = x[gx=x4pt]
-
-list a1[gx=xoffset at max]
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A1 C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A1 --> (G011) @MAX
- eval A1 C: 7 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:300 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A1 M:294 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X1PT]
- regrid: 1 delta on X at MAX
- SUBSET : 7 points (X)
- 1.1 / 1: ....
- 2.1 / 2: ....
- 3.1 / 3: ....
- 4.1 / 4: ....
- 5.1 / 5: 5.00000
- 6.1 / 6: ....
- 7.1 / 7: ....
-list a2[gx=xoffset at max]
- -DELETE X M:300 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A1 M:294 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A2 C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A2 --> (G006) @MAX
- eval A2 C: 7 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:294 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A2 M:301 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X2PT]
- regrid: 1 delta on X at MAX
- SUBSET : 7 points (X)
- 1.1 / 1: ....
- 2.1 / 2: ....
- 3.1 / 3: ....
- 4.1 / 4: ....
- 5.1 / 5: 5.00000
- 6.1 / 6: 6.00000
- 7.1 / 7: ....
-list a4[gx=xoffset at max]
- -DELETE X M:294 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A2 M:301 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A4 C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G006) X4PT NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) X4PT NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G006) X4PT NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A4 --> (G010) @MAX
- eval A4 C: 7 dset: 0 I: 1 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) X4PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:301 dset: 0 I: 1 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) X4PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A4 M:298 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X4PT]
- regrid: 1 delta on X at MAX
- SUBSET : 7 points (X)
- 1.1 / 1: ....
- 2.1 / 2: ....
- 3.1 / 3: ....
- 4.1 / 4: ....
- 5.1 / 5: 5.50000
- 6.1 / 6: 6.50000
- 7.1 / 7: ....
-list a4[gx=xoffset at min]
- -DELETE X M:301 dset: 0 I: 1 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A4 M:298 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A4 --> (G010) @MIN
- eval A4 C: 7 dset: 0 I: 1 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) X4PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:298 dset: 0 I: 1 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) X4PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A4 M:297 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X4PT]
- regrid: 1 delta on X at MIN
- SUBSET : 7 points (X)
- 1.1 / 1: ....
- 2.1 / 2: ....
- 3.1 / 3: ....
- 4.1 / 4: ....
- 5.1 / 5: 5.00000
- 6.1 / 6: 6.00000
- 7.1 / 7: ....
-list a4[gx=xoffset at sum] ! 5+5.5+6+6.5=23
- -DELETE X M:298 dset: 0 I: 1 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A4 M:297 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A4 --> (G010) @SUM
- eval A4 C: 7 dset: 0 I: 1 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) X4PT NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:297 dset: 0 I: 1 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) X4PT NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A4 M:296 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X4PT]
- regrid: 1 delta on X at SUM
- SUBSET : 7 points (X)
- 1.1 / 1: ....
- 2.1 / 2: ....
- 3.1 / 3: ....
- 4.1 / 4: ....
- 5.1 / 5: 8.8500
- 6.1 / 6: 12.2000
- 7.1 / 7: 1.9500
-
-! round-off issues when source points lie on destination cell boundaries
-define axis/x=1:5:1 x5
-define axis/x=0.5:5.5:1 x5_edges
-let a5 = x[gx=x5_edges]
-list a5[gx=x5 at max] ! note: top dest axis point, only, looks at point above
- -DELETE X M:297 dset: 0 I: 1 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) XOFFSET NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A4 M:296 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A5 C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A5 --> (G008) @MAX
- eval A5 C: 7 dset: 0 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:296 dset: 0 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A5 M:295 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X5_EDGES]
- regrid: 1 delta on X at MAX
- SUBSET : 5 points (X)
- 1 / 1: 0.50000
- 2 / 2: 1.50000
- 3 / 3: 2.50000
- 4 / 4: 3.50000
- 5 / 5: 5.50000
-let a5 = x[gx=x5_edges, i=3]
- dealloc dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A5 M:295 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A5 M:297 dset: 0 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE X M:296 dset: 0 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A4 M:294 dset: 0 I: 1 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A4 M:298 dset: 0 I: 1 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A4 M:301 dset: 0 I: 1 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) X4PT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A2 M:300 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A1 M:299 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
-list a5[gx=x5 at max]
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A5 C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G009) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G009) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G009) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A5 --> (G011) @MAX
- eval A5 C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G009) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:299 dset: 0 I: 3 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G009) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A5 M:301 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X5_EDGES, I=3]
- regrid: 1 delta on X at MAX
- SUBSET : 5 points (X)
- 1 / 1: ....
- 2 / 2: ....
- 3 / 3: 2.50000
- 4 / 4: ....
- 5 / 5: ....
-list a5[gx=x5 at max,i=3]
- -DELETE X M:299 dset: 0 I: 3 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A5 M:301 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A5 --> (G011) @MAX
- eval A5 C: 7 dset: 0 I: 3 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G009) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:301 dset: 0 I: 3 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G009) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- regrid A5 M:298 dset: 0 I: 3 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X5_EDGES, I=3]
- regrid: 1 delta on X at MAX
- X : 3
- 2.50000
-list a5[gx=x5 at max,i=4]
- -DELETE X M:301 dset: 0 I: 3 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A5 M:298 dset: 0 I: 3 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A5 --> (G011) @MAX
- eval A5 C: 7 dset: 0 I: 4 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G009) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- pseudo X M:298 dset: 0 I: 3 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G009) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- VARIABLE : X[GX=X5_EDGES, I=3]
- regrid: 1 delta on X at MAX
- X : 4
- ....
-
-! time axes with different encodings
-define axis/t=1-jan-1990:5-jan-1990:1/units=days tday
-define axis/t=1-jan-1990:5-jan-1990:24/units=hours thour
-let atime = T[gt=tday]
-list atime
- -DELETE X M:298 dset: 0 I: 3 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A5 M:294 dset: 0 I: 4 4 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid ATIME C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G011) NORMAL NORMAL NORMAL TDAY NORMAL NORMAL
- dealloc dynamic grid (G011) NORMAL NORMAL NORMAL TDAY NORMAL NORMAL
- allocate dynamic grid (G011) NORMAL NORMAL NORMAL TDAY NORMAL NORMAL
- allocate dynamic grid (G011) NORMAL NORMAL NORMAL TDAY NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval ATIME C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) NORMAL NORMAL NORMAL TDAY NORMAL NORMAL
- pseudo T M:294 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) NORMAL NORMAL NORMAL TDAY NORMAL NORMAL
- VARIABLE : T[GT=TDAY]
- SUBSET : 5 points (TIME)
- 01-JAN-1990 00 / 1: 32493.0
- 02-JAN-1990 00 / 2: 32494.0
- 03-JAN-1990 00 / 3: 32495.0
- 04-JAN-1990 00 / 4: 32496.0
- 05-JAN-1990 00 / 5: 32497.0
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G011)
- GRID (G011)
- name axis # pts start end
- normal X
- normal Y
- normal Z
- TDAY TIME 5 r 01-JAN-1990 00:00 05-JAN-1990 00:00
- normal E
- normal F
-list atime[gt=thour at max]
- -DELETE T M:294 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) NORMAL NORMAL NORMAL TDAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G006) NORMAL NORMAL NORMAL THOUR NORMAL NORMAL
- dealloc dynamic grid (G006) NORMAL NORMAL NORMAL THOUR NORMAL NORMAL
- allocate dynamic grid (G006) NORMAL NORMAL NORMAL THOUR NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G006) NORMAL NORMAL NORMAL THOUR NORMAL NORMAL
- strip regrid on T: ATIME --> (G006) @MAX
- eval ATIME C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
- allocate dynamic grid (G011) NORMAL NORMAL NORMAL TDAY NORMAL NORMAL
- pseudo T M:294 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G011) NORMAL NORMAL NORMAL TDAY NORMAL NORMAL
- regrid ATIME M:297 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) NORMAL NORMAL NORMAL THOUR NORMAL NORMAL
- VARIABLE : T[GT=TDAY]
- regrid: 24 hour on T at MAX
- SUBSET : 5 points (TIME)
- 01-JAN-1990 00 / 1: 32493.0
- 02-JAN-1990 00 / 2: 32494.0
- 03-JAN-1990 00 / 3: 32495.0
- 04-JAN-1990 00 / 4: 32496.0
- 05-JAN-1990 00 / 5: 32497.0
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
- GRID (G006)
- name axis # pts start end
- normal X
- normal Y
- normal Z
- THOUR TIME 5 r 01-JAN-1990 00:00 05-JAN-1990 00:00
- normal E
- normal F
-
-set mode/last diag
-
-
-
-
-
-
-GO bn_reset ! reordered reset before next test: 2/94
-cancel mode verify
-GO bn_axis_limits ! added 10/27/93
-!bn301_axis_limits.jnl
-! exercise the new-V301 /XLIMITS and /YLIMITS qualifiers
-
-define axis/x=20e:10w:10/unit=degree xax
-define axis/y=60s:60n/unit=degree/npoints=41 yax
-define axis/z=0:1000:40/unit=meter/depth zax
-define axis/t=1-jan-1960:15-dec-1999:5/unit=days tax
-define grid/x=xax/y=yax/z=zax/t=tax gformat
-
-set wind/asp=1:ax/size=1 1
-
-define view/x=0.00,0.25/y=0.00,0.25 v11
-define view/x=0.25,0.50/y=0.00,0.25 v12
-define view/x=0.50,0.75/y=0.00,0.25 v13
-define view/x=0.75,1.00/y=0.00,0.25 v14
-define view/x=0.00,0.25/y=0.25,0.50 v21
-define view/x=0.25,0.50/y=0.25,0.50 v22
-define view/x=0.50,0.75/y=0.25,0.50 v23
-define view/x=0.75,1.00/y=0.25,0.50 v24
-define view/x=0.00,0.25/y=0.50,0.75 v31
-define view/x=0.25,0.50/y=0.50,0.75 v32
-define view/x=0.50,0.75/y=0.50,0.75 v33
-define view/x=0.75,1.00/y=0.50,0.75 v34
-define view/x=0.00,0.25/y=0.75,1.00 v41
-define view/x=0.25,0.50/y=0.75,1.00 v42
-define view/x=0.50,0.75/y=0.75,1.00 v43
-define view/x=0.75,1.00/y=0.75,1.00 v44
-
-* error checks
-set grid abstract
-set region/i=1:5
-set mode ignore_errors
-plot/xlimits i
-plot/xlimits= i
-plot/xlimits=text i
-plot/xlimits=1 i
-plot/xlimits=1: i
-plot/xlimits=1:: i
-plot/xlimits=1:2: i
-plot/xlimits=5:5 i
-set mode/last ignore_errors
-
-GO bn_axis_limits.sub1 ! lines
-!bn301_axis_limits.sub1
-! exercise the new-V301 /XLIMITS and /YLIMITS qualifiers
-! this file to exercise the PLOT command
-
-set window/clear
-
-* abstract X line plots
-set grid abstract
-set view v11
-plot/x=1:100 sin(x/6)
-set view v12
-plot/x=1:100/xlimits=-100:200 sin(x/6)
-set view v13
-plot/x=1:100/xlimits=-100:200:-30/ylimits=-2:2:-0.2 sin(x/6)
-set view v14
-plot/x=1:100/xlimits=-100:200:-30/ylimits=-2:2:-0.2/trans sin(x/6)
-
-* formatted Y line plots
-set grid gformat
-set view v21
-plot/y=30s:30n/xlimits=50s:40n:-8 sin(y/10)
-set view v22
-plot/y=30s:30n/xlimits=50s:40n:-8/ylimits=0:2:-0.2 sin(y/10)
-
-* plot/vs
-set view v23
-set grid abstract
-plot/vs/x=1:100/y=101:200/xlim=1:-1:.1/ylim=-3:0:.5 sin(x/5),cos(y/9)
-set view v24
-set grid gformat
-plot/vs/t=1-jan-1980:1-jan-1990/xlim=1:-1:-.1/ylim=-3:3:-.5 sin(t/100),cos(t/300)
-
-* formatted T line plots
-set grid gformat
-set mode calendar
-set view v31
-plot/t=1-jan-1980:1-jan-1990 sin(t/500)
-set view v32
-plot/t=1-jan-1980:1-jan-1990/xlimits=1-mar-1977:15-jun-1994 sin(t/500)
-set view v33
-plot/t=1-jan-1980:1-jan-1990/xlimits=1-mar-1977:15-jun-1994:-5 sin(t/500)
-set view v34
-plot/t=1-jan-1980:1-jan-1990/xlimits=1-mar-1977:15-jun-1994:-5/ylimits=-2:0:-0.2 sin(t/500)
-
-* unformatted T line plots
-set grid gformat
-cancel mode calendar
-set view v41
-plot/t=1-jan-1980:1-jan-1990/xlimits=1-mar-1977:15-jun-1994 sin(t/500)
-set view v42
-plot/t=1-jan-1980:1-jan-1990/xlimits=29400:31800/ylimits=-2:0:-0.2 sin(t/500)
-set view v43
-plot/t=1-jan-1980:1-jan-1990/xlimits=29400:31800:-200/ylimits=-2:0:-0.2 sin(t/500)
-set view v44
-plot/t=1-jan-1980:1-jan-1990/xlimits=29400:31800:-200/ylimits=-2:0:-0.2/trans sin(t/500)
-GO bn_axis_limits.sub2 ! 2D graphics
-! bn301_axis_limits.sub2
-! exercise the new-V301 /XLIMITS and /YLIMITS qualifiers
-! this file to exercise 2D graphics
-
-set window/clear
-
-* abstract XY contours
-set grid abstract
-set view v11
-contour/x=1:100/y=101:200/lev=(-1,1,.5) sin(x/6)*cos(y/9)
-set view v12
-contour/x=1:100/y=101:200/lev=(-1,1,.5)/xlimits=-100:200 sin(x/6)*cos(y/9)
-set view v13
-contour/x=1:100/y=101:200/lev=(-1,1,.5)/xlimits=-100:200:-30/ylimits=250:150 sin(x/6)*cos(y/9)
-set view v14
-contour/x=1:100/y=101:200/lev=(-1,1,.5)/xlimits=-100:200:-30/ylimits=250:150/trans sin(x/6)*cos(y/9)
-
-* formatted XY contours
-set grid gformat
-set view v21
-contour/x=160E:160W/y=15s:25n/lev=(-1,1,.5) sin(x/3)*ABS(Y)^1.5
-set view v22
-contour/x=160E:160W/y=15s:25n/lev=(-1,1,.5)/xlimits=140e:110W:10 sin(x/3)*ABS(Y)^1.5
-set view v23
-contour/x=160E:160W/y=15s:25n/lev=(-1,1,.5)/xlimits=140e:110w:-9/ylimits=0:30N sin(x/3)*ABS(Y)^1.5
-set view v24
-contour/x=160E:160W/y=15s:25n/lev=(-1,1,.5)/xlimits=140e:110w:-9/ylimits=0:30N/trans sin(x/3)*ABS(Y)^1.5
-
-* calendar axis contours involving T
-set grid gformat
-set mode calendar
-set view v31
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=1-jan-1978:1-jan-1984 sin(x/3)*sin(t/100)
-set view v32
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=28110:29115 sin(x/3)*sin(t/100)
-set view v33
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=28110:29115:-200 sin(x/3)*sin(t/100) ! delta ignored
-set view v34
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=1-jan-1978:1-jan-1984/trans sin(x/3)*sin(t/100)
-
-* non-calendar axis contours involving T
-set grid gformat
-cancel mode calendar
-set view v41
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=1-jan-1978:1-jan-1984 sin(x/3)*sin(t/100)
-set view v42
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=28110:29115 sin(x/3)*sin(t/100)
-set view v43 ! intentionally blank
-contour/x=160E:160W/t=28000:29000/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=1-jan-1975:1-jan-1978 sin(x/3)*sin(t/100)
-set view v44
-contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=28000:29000:-400/trans sin(x/3)*sin(t/100)
-
-SET WINDOW/CLEAR/SIZE=0.2 ! added 2/94
-
-!GO bn_reset
-!GO bn301_mem_mgmt
-MESSAGE/CONTINUE ***** bn301_mem_mgmt has been removed from run_all.
-***** bn301_mem_mgmt has been removed from run_all.
-MESSAGE/CONTINUE ***** Its too slow!!!
-***** Its too slow
-MESSAGE/CONTINUE ***** Remember to run it separately
-***** Remember to run it separately
-
-GO bn_reset
-cancel mode verify
-GO bn_movie
-! bn301_movie.JNL
-! - test on-HDF movie creation by Program FERRET
-! - FERRET ver 3.10 10/93
-
-! ===> NOTE: This may fail with an X error if the movie window is iconified
-
-! Dont run this script - fails with hdf5 libraries
-exit/script
-
-! added in bn311
-GO bn_reset
-cancel mode verify
-GO bn_ez_order ! was bn311 until 9/95
-! bn420_ez_order
-! updated from bn311_ez_order 9/95 - improved testing of /FORMAT=STREAM
-
-! create test files
-sp rm -f test_perm*.dat
-list/i=1:10/nohead/form=(f4.0)/file=test_perm10.dat i
-list/i=1:24/nohead/form=(f4.0)/file=test_perm24.dat i
-list/i=1:48/nohead/form=(f4.0)/file=test_perm48.dat i
-list/i=1:48/nohead/form=(10f8.0)/file=test_perm48_10.dat i*1000,i*500,i*200,i*100,i*50,i*20,i*10,i*5,i*2,i
-
-! create test axes
-define axis/x=1:2:1 x2
-define axis/x=1:3:1 x3
-define axis/x=1:4:1 x4
-define grid/x=x2/y=x3 g6
-define grid/y=x2/t=x3 g6yt
-define grid/x=x2/y=x3/z=x2 g12
-define grid/x=x2/y=x3/z=x2/t=x2 g24
-
-! basic permutations, single variable
-! *** 2D
-file/grid=g6 test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 points (X-Y)
- 1 2
- 1 2
- 1 / 1: 1.00000 2.00000
- 2 / 2: 3.00000 4.00000
- 3 / 3: 5.00000 6.00000
-file/grid=g6/order=yx test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 points (X-Y)
- 1 2
- 1 2
- 1 / 1: 1.00000 4.00000
- 2 / 2: 2.00000 5.00000
- 3 / 3: 3.00000 6.00000
-file/grid=g6yt test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 points (Y-T)
- 1 2
- 1 2
- 1 / 1: 1.00000 2.00000
- 2 / 2: 3.00000 4.00000
- 3 / 3: 5.00000 6.00000
-file/grid=g6yt/order=ty test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 points (Y-T)
- 1 2
- 1 2
- 1 / 1: 1.00000 4.00000
- 2 / 2: 2.00000 5.00000
- 3 / 3: 3.00000 6.00000
-file/grid=g6yt/order=xtyz test_perm48.dat
-list v1 ! should be just the same as the last
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 points (Y-T)
- 1 2
- 1 2
- 1 / 1: 1.00000 4.00000
- 2 / 2: 2.00000 5.00000
- 3 / 3: 3.00000 6.00000
-
-! *** 3D
-file/grid=g12 test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 3.0000 4.0000
- 3 / 3: 5.0000 6.0000
- ---- K:2 Z: 2
- 1 / 1: 7.0000 8.0000
- 2 / 2: 9.0000 10.0000
- 3 / 3: 11.0000 12.0000
-file/grid=g12/order=xzy test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 5.0000 6.0000
- 3 / 3: 9.0000 10.0000
- ---- K:2 Z: 2
- 1 / 1: 3.0000 4.0000
- 2 / 2: 7.0000 8.0000
- 3 / 3: 11.0000 12.0000
-file/grid=g12/order=yxz test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.0000 4.0000
- 2 / 2: 2.0000 5.0000
- 3 / 3: 3.0000 6.0000
- ---- K:2 Z: 2
- 1 / 1: 7.0000 10.0000
- 2 / 2: 8.0000 11.0000
- 3 / 3: 9.0000 12.0000
-file/grid=g12/order=yzx test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.0000 7.0000
- 2 / 2: 2.0000 8.0000
- 3 / 3: 3.0000 9.0000
- ---- K:2 Z: 2
- 1 / 1: 4.0000 10.0000
- 2 / 2: 5.0000 11.0000
- 3 / 3: 6.0000 12.0000
-file/grid=g12/order=zxy test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.0000 3.0000
- 2 / 2: 5.0000 7.0000
- 3 / 3: 9.0000 11.0000
- ---- K:2 Z: 2
- 1 / 1: 2.0000 4.0000
- 2 / 2: 6.0000 8.0000
- 3 / 3: 10.0000 12.0000
-file/grid=g12/order=zyx test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.0000 7.0000
- 2 / 2: 3.0000 9.0000
- 3 / 3: 5.0000 11.0000
- ---- K:2 Z: 2
- 1 / 1: 2.0000 8.0000
- 2 / 2: 4.0000 10.0000
- 3 / 3: 6.0000 12.0000
-
-
-! *** 4D (incomplete - 24 in all)
-file/grid=g24 test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 3.0000 4.0000
- 3 / 3: 5.0000 6.0000
- ---- K:2 Z: 2
- 1 / 1: 7.0000 8.0000
- 2 / 2: 9.0000 10.0000
- 3 / 3: 11.0000 12.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 13.0000 14.0000
- 2 / 2: 15.0000 16.0000
- 3 / 3: 17.0000 18.0000
- ---- K:2 Z: 2
- 1 / 1: 19.0000 20.0000
- 2 / 2: 21.0000 22.0000
- 3 / 3: 23.0000 24.0000
-file/grid=g24/order=xytz test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 3.0000 4.0000
- 3 / 3: 5.0000 6.0000
- ---- K:2 Z: 2
- 1 / 1: 13.0000 14.0000
- 2 / 2: 15.0000 16.0000
- 3 / 3: 17.0000 18.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 7.0000 8.0000
- 2 / 2: 9.0000 10.0000
- 3 / 3: 11.0000 12.0000
- ---- K:2 Z: 2
- 1 / 1: 19.0000 20.0000
- 2 / 2: 21.0000 22.0000
- 3 / 3: 23.0000 24.0000
-file/grid=g24/order=xzyt test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 5.0000 6.0000
- 3 / 3: 9.0000 10.0000
- ---- K:2 Z: 2
- 1 / 1: 3.0000 4.0000
- 2 / 2: 7.0000 8.0000
- 3 / 3: 11.0000 12.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 13.0000 14.0000
- 2 / 2: 17.0000 18.0000
- 3 / 3: 21.0000 22.0000
- ---- K:2 Z: 2
- 1 / 1: 15.0000 16.0000
- 2 / 2: 19.0000 20.0000
- 3 / 3: 23.0000 24.0000
-file/grid=g24/order=xtyz test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 5.0000 6.0000
- 3 / 3: 9.0000 10.0000
- ---- K:2 Z: 2
- 1 / 1: 13.0000 14.0000
- 2 / 2: 17.0000 18.0000
- 3 / 3: 21.0000 22.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 3.0000 4.0000
- 2 / 2: 7.0000 8.0000
- 3 / 3: 11.0000 12.0000
- ---- K:2 Z: 2
- 1 / 1: 15.0000 16.0000
- 2 / 2: 19.0000 20.0000
- 3 / 3: 23.0000 24.0000
-file/grid=g24/order=xtzy test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 9.0000 10.0000
- 3 / 3: 17.0000 18.0000
- ---- K:2 Z: 2
- 1 / 1: 5.0000 6.0000
- 2 / 2: 13.0000 14.0000
- 3 / 3: 21.0000 22.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 3.0000 4.0000
- 2 / 2: 11.0000 12.0000
- 3 / 3: 19.0000 20.0000
- ---- K:2 Z: 2
- 1 / 1: 7.0000 8.0000
- 2 / 2: 15.0000 16.0000
- 3 / 3: 23.0000 24.0000
-file/grid=g24/order=ytzx test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 13.0000
- 2 / 2: 2.0000 14.0000
- 3 / 3: 3.0000 15.0000
- ---- K:2 Z: 2
- 1 / 1: 7.0000 19.0000
- 2 / 2: 8.0000 20.0000
- 3 / 3: 9.0000 21.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 4.0000 16.0000
- 2 / 2: 5.0000 17.0000
- 3 / 3: 6.0000 18.0000
- ---- K:2 Z: 2
- 1 / 1: 10.0000 22.0000
- 2 / 2: 11.0000 23.0000
- 3 / 3: 12.0000 24.0000
-file/grid=g24/order=zytx test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 13.0000
- 2 / 2: 3.0000 15.0000
- 3 / 3: 5.0000 17.0000
- ---- K:2 Z: 2
- 1 / 1: 2.0000 14.0000
- 2 / 2: 4.0000 16.0000
- 3 / 3: 6.0000 18.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 7.0000 19.0000
- 2 / 2: 9.0000 21.0000
- 3 / 3: 11.0000 23.0000
- ---- K:2 Z: 2
- 1 / 1: 8.0000 20.0000
- 2 / 2: 10.0000 22.0000
- 3 / 3: 12.0000 24.0000
-file/grid=g24/order=tyzx test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 13.0000
- 2 / 2: 3.0000 15.0000
- 3 / 3: 5.0000 17.0000
- ---- K:2 Z: 2
- 1 / 1: 7.0000 19.0000
- 2 / 2: 9.0000 21.0000
- 3 / 3: 11.0000 23.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 2.0000 14.0000
- 2 / 2: 4.0000 16.0000
- 3 / 3: 6.0000 18.0000
- ---- K:2 Z: 2
- 1 / 1: 8.0000 20.0000
- 2 / 2: 10.0000 22.0000
- 3 / 3: 12.0000 24.0000
-file/grid=g24/order=tzyx test_perm48.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm48.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 13.0000
- 2 / 2: 5.0000 17.0000
- 3 / 3: 9.0000 21.0000
- ---- K:2 Z: 2
- 1 / 1: 3.0000 15.0000
- 2 / 2: 7.0000 19.0000
- 3 / 3: 11.0000 23.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 2.0000 14.0000
- 2 / 2: 6.0000 18.0000
- 3 / 3: 10.0000 22.0000
- ---- K:2 Z: 2
- 1 / 1: 4.0000 16.0000
- 2 / 2: 8.0000 20.0000
- 3 / 3: 12.0000 24.0000
-
-
-! basic permutations, 10 variables
-! *** 2D
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6 test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 points (X-Y)
- 1 2
- 1 2
- 1 / 1: 1.00000 2.00000
- 2 / 2: 3.00000 4.00000
- 3 / 3: 5.00000 6.00000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6/order=yx test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 points (X-Y)
- 1 2
- 1 2
- 1 / 1: 1.00000 4.00000
- 2 / 2: 2.00000 5.00000
- 3 / 3: 3.00000 6.00000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 points (Y-T)
- 1 2
- 1 2
- 1 / 1: 1.00000 2.00000
- 2 / 2: 3.00000 4.00000
- 3 / 3: 5.00000 6.00000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt/order=ty test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 points (Y-T)
- 1 2
- 1 2
- 1 / 1: 1.00000 4.00000
- 2 / 2: 2.00000 5.00000
- 3 / 3: 3.00000 6.00000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt/order=xtyz test_perm48_10.dat
-list v10 ! should be just the same as the last
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 points (Y-T)
- 1 2
- 1 2
- 1 / 1: 1.00000 4.00000
- 2 / 2: 2.00000 5.00000
- 3 / 3: 3.00000 6.00000
-
-! *** 3D
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12 test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 3.0000 4.0000
- 3 / 3: 5.0000 6.0000
- ---- K:2 Z: 2
- 1 / 1: 7.0000 8.0000
- 2 / 2: 9.0000 10.0000
- 3 / 3: 11.0000 12.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=xzy test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 5.0000 6.0000
- 3 / 3: 9.0000 10.0000
- ---- K:2 Z: 2
- 1 / 1: 3.0000 4.0000
- 2 / 2: 7.0000 8.0000
- 3 / 3: 11.0000 12.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=yxz test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.0000 4.0000
- 2 / 2: 2.0000 5.0000
- 3 / 3: 3.0000 6.0000
- ---- K:2 Z: 2
- 1 / 1: 7.0000 10.0000
- 2 / 2: 8.0000 11.0000
- 3 / 3: 9.0000 12.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=yzx test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.0000 7.0000
- 2 / 2: 2.0000 8.0000
- 3 / 3: 3.0000 9.0000
- ---- K:2 Z: 2
- 1 / 1: 4.0000 10.0000
- 2 / 2: 5.0000 11.0000
- 3 / 3: 6.0000 12.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=zxy test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.0000 3.0000
- 2 / 2: 5.0000 7.0000
- 3 / 3: 9.0000 11.0000
- ---- K:2 Z: 2
- 1 / 1: 2.0000 4.0000
- 2 / 2: 6.0000 8.0000
- 3 / 3: 10.0000 12.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=zyx test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.0000 7.0000
- 2 / 2: 3.0000 9.0000
- 3 / 3: 5.0000 11.0000
- ---- K:2 Z: 2
- 1 / 1: 2.0000 8.0000
- 2 / 2: 4.0000 10.0000
- 3 / 3: 6.0000 12.0000
-! *** 4D (incomplete - 24 in all)
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24 test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 3.0000 4.0000
- 3 / 3: 5.0000 6.0000
- ---- K:2 Z: 2
- 1 / 1: 7.0000 8.0000
- 2 / 2: 9.0000 10.0000
- 3 / 3: 11.0000 12.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 13.0000 14.0000
- 2 / 2: 15.0000 16.0000
- 3 / 3: 17.0000 18.0000
- ---- K:2 Z: 2
- 1 / 1: 19.0000 20.0000
- 2 / 2: 21.0000 22.0000
- 3 / 3: 23.0000 24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xytz test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 3.0000 4.0000
- 3 / 3: 5.0000 6.0000
- ---- K:2 Z: 2
- 1 / 1: 13.0000 14.0000
- 2 / 2: 15.0000 16.0000
- 3 / 3: 17.0000 18.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 7.0000 8.0000
- 2 / 2: 9.0000 10.0000
- 3 / 3: 11.0000 12.0000
- ---- K:2 Z: 2
- 1 / 1: 19.0000 20.0000
- 2 / 2: 21.0000 22.0000
- 3 / 3: 23.0000 24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xzyt test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 5.0000 6.0000
- 3 / 3: 9.0000 10.0000
- ---- K:2 Z: 2
- 1 / 1: 3.0000 4.0000
- 2 / 2: 7.0000 8.0000
- 3 / 3: 11.0000 12.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 13.0000 14.0000
- 2 / 2: 17.0000 18.0000
- 3 / 3: 21.0000 22.0000
- ---- K:2 Z: 2
- 1 / 1: 15.0000 16.0000
- 2 / 2: 19.0000 20.0000
- 3 / 3: 23.0000 24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xtyz test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 5.0000 6.0000
- 3 / 3: 9.0000 10.0000
- ---- K:2 Z: 2
- 1 / 1: 13.0000 14.0000
- 2 / 2: 17.0000 18.0000
- 3 / 3: 21.0000 22.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 3.0000 4.0000
- 2 / 2: 7.0000 8.0000
- 3 / 3: 11.0000 12.0000
- ---- K:2 Z: 2
- 1 / 1: 15.0000 16.0000
- 2 / 2: 19.0000 20.0000
- 3 / 3: 23.0000 24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xtzy test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 9.0000 10.0000
- 3 / 3: 17.0000 18.0000
- ---- K:2 Z: 2
- 1 / 1: 5.0000 6.0000
- 2 / 2: 13.0000 14.0000
- 3 / 3: 21.0000 22.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 3.0000 4.0000
- 2 / 2: 11.0000 12.0000
- 3 / 3: 19.0000 20.0000
- ---- K:2 Z: 2
- 1 / 1: 7.0000 8.0000
- 2 / 2: 15.0000 16.0000
- 3 / 3: 23.0000 24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=ytzx test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 13.0000
- 2 / 2: 2.0000 14.0000
- 3 / 3: 3.0000 15.0000
- ---- K:2 Z: 2
- 1 / 1: 7.0000 19.0000
- 2 / 2: 8.0000 20.0000
- 3 / 3: 9.0000 21.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 4.0000 16.0000
- 2 / 2: 5.0000 17.0000
- 3 / 3: 6.0000 18.0000
- ---- K:2 Z: 2
- 1 / 1: 10.0000 22.0000
- 2 / 2: 11.0000 23.0000
- 3 / 3: 12.0000 24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=zytx test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 13.0000
- 2 / 2: 3.0000 15.0000
- 3 / 3: 5.0000 17.0000
- ---- K:2 Z: 2
- 1 / 1: 2.0000 14.0000
- 2 / 2: 4.0000 16.0000
- 3 / 3: 6.0000 18.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 7.0000 19.0000
- 2 / 2: 9.0000 21.0000
- 3 / 3: 11.0000 23.0000
- ---- K:2 Z: 2
- 1 / 1: 8.0000 20.0000
- 2 / 2: 10.0000 22.0000
- 3 / 3: 12.0000 24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=tyzx test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 13.0000
- 2 / 2: 3.0000 15.0000
- 3 / 3: 5.0000 17.0000
- ---- K:2 Z: 2
- 1 / 1: 7.0000 19.0000
- 2 / 2: 9.0000 21.0000
- 3 / 3: 11.0000 23.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 2.0000 14.0000
- 2 / 2: 4.0000 16.0000
- 3 / 3: 6.0000 18.0000
- ---- K:2 Z: 2
- 1 / 1: 8.0000 20.0000
- 2 / 2: 10.0000 22.0000
- 3 / 3: 12.0000 24.0000
-file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=tzyx test_perm48_10.dat
-list v10
- VARIABLE : V10
- FILENAME : test_perm48_10.dat
- SUBSET : 2 by 3 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1.0000 13.0000
- 2 / 2: 5.0000 17.0000
- 3 / 3: 9.0000 21.0000
- ---- K:2 Z: 2
- 1 / 1: 3.0000 15.0000
- 2 / 2: 7.0000 19.0000
- 3 / 3: 11.0000 23.0000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 2.0000 14.0000
- 2 / 2: 6.0000 18.0000
- 3 / 3: 10.0000 22.0000
- ---- K:2 Z: 2
- 1 / 1: 4.0000 16.0000
- 2 / 2: 8.0000 20.0000
- 3 / 3: 12.0000 24.0000
-
-
-! test grids that have more points than the data
-cancel data/all
-file/grid=g12/order=xzy test_perm10.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm10.dat
- SUBSET : 2 by 3 points (X-Y)
- Z : 1
- 1 2
- 1 2
- 1 / 1: 1.0000 2.0000
- 2 / 2: 5.0000 6.0000
- 3 / 3: 9.0000 10.0000
-show data
- currently SET data sets:
- 1> ./test_perm10.dat (default)
- name title I J K L M N
- V1 V1 1:2 1:3 1:1 ... ... ...
-
-
-file/grid=g24/order=xytz test_perm10.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm10.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- T : 1
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.00000 2.00000
- 2 / 2: 3.00000 4.00000
- 3 / 3: 5.00000 6.00000
- ---- K:2 Z: 2
- 1 / 1: .... ....
- 2 / 2: .... ....
- 3 / 3: .... ....
-show data
- currently SET data sets:
- 1> ./test_perm10.dat (default)
- name title I J K L M N
- V1 V1 1:2 1:3 1:2 1:1 ... ...
-
-
-file/grid=g24/order=xzyt test_perm10.dat
-list v1
- VARIABLE : V1
- FILENAME : test_perm10.dat
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- T : 1
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 5.0000 6.0000
- 3 / 3: 9.0000 10.0000
- ---- K:2 Z: 2
- 1 / 1: 3.0000 4.0000
- 2 / 2: 7.0000 8.0000
- 3 / 3: .... ....
-show data
- currently SET data sets:
- 1> ./test_perm10.dat (default)
- name title I J K L M N
- V1 V1 1:2 1:3 1:2 1:1 ... ...
-
-
-
-
-! limited testing of /FORMAT=STREAM
-! note that as of 5/16/94 this is a fragile capability that will blow up
-! NO ==> 1) on attempt to read more data than the file has
-! ("BACKSPACE error" not trapped by ERR= branch)
-! (This behavior was fixed 9/7/95 in ez_read.F)
-! 2) on many attempts to process record length information (contained
-! at the start and end of each variable length record) as data
-! (?? illegal floating point value - formats as zero but computes as
-! something else)
-
-! simple test - write a single record of 16 floating point values (encased
-! in record length information) and read it back as a 2x2x2x2 grid
-
-define grid/x=x2/y=x2/z=x2/t=x2 g2222
-
-! Unformatted files have a count value before and after which may be four or
-! eight bytes depending on the system (gfortran version), so only verify a
-! list/format=unf can then be read using file/format=unf
-sp rm -f test_stream.unf
-list/file=test_stream.unf/format=unf/order=x/i=1:16 i/10
-file/grid=g2222/form=unf/col=16 test_stream.unf
-list v1
- VARIABLE : V1
- FILENAME : test_stream.unf
- SUBSET : 2 by 2 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 0.10000 0.20000
- 2 / 2: 0.30000 0.40000
- ---- K:2 Z: 2
- 1 / 1: 0.50000 0.60000
- 2 / 2: 0.70000 0.80000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 0.90000 1.00000
- 2 / 2: 1.10000 1.20000
- ---- K:2 Z: 2
- 1 / 1: 1.30000 1.40000
- 2 / 2: 1.50000 1.60000
-! /ORDER= applies here, too
-file/grid=g2222/form=unf/order=yzxt/col=16 test_stream.unf
-list v1
- VARIABLE : V1
- FILENAME : test_stream.unf
- SUBSET : 2 by 2 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 0.10000 0.50000
- 2 / 2: 0.20000 0.60000
- ---- K:2 Z: 2
- 1 / 1: 0.30000 0.70000
- 2 / 2: 0.40000 0.80000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 0.90000 1.30000
- 2 / 2: 1.00000 1.40000
- ---- K:2 Z: 2
- 1 / 1: 1.10000 1.50000
- 2 / 2: 1.20000 1.60000
-
-! 9/95 - also test the **WRITING** of STREAM-formatted files (added 12/28/94)
-sp rm -f test_stream.unf
-list/file=test_stream.unf/format=stream/order=x/i=1:16 i/100
-file/grid=g2222/form=stream test_stream.unf
-list v1
- VARIABLE : V1
- FILENAME : test_stream.unf
- SUBSET : 2 by 2 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 0.010000 0.020000
- 2 / 2: 0.030000 0.040000
- ---- K:2 Z: 2
- 1 / 1: 0.050000 0.060000
- 2 / 2: 0.070000 0.080000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 0.090000 0.100000
- 2 / 2: 0.110000 0.120000
- ---- K:2 Z: 2
- 1 / 1: 0.130000 0.140000
- 2 / 2: 0.150000 0.160000
-! /ORDER= applies here, too
-file/grid=g2222/form=stream/order=yzxt test_stream.unf
-list v1
- VARIABLE : V1
- FILENAME : test_stream.unf
- SUBSET : 2 by 2 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 0.010000 0.050000
- 2 / 2: 0.020000 0.060000
- ---- K:2 Z: 2
- 1 / 1: 0.030000 0.070000
- 2 / 2: 0.040000 0.080000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 0.090000 0.130000
- 2 / 2: 0.100000 0.140000
- ---- K:2 Z: 2
- 1 / 1: 0.110000 0.150000
- 2 / 2: 0.120000 0.160000
-
-! and test /ORDER on the STREAM output listing
-! ... first the default order
-sp rm -f test_stream.unf
-list/file=test_stream.unf/format=stream/i=1:2/j=3:4/k=5:6/l=7:8 (((((i*10)+j)*10)+k)*10)+l
-file/grid=g2222/form=stream test_stream.unf
-list v1
- VARIABLE : V1
- FILENAME : test_stream.unf
- SUBSET : 2 by 2 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1357.00 2357.00
- 2 / 2: 1457.00 2457.00
- ---- K:2 Z: 2
- 1 / 1: 1367.00 2367.00
- 2 / 2: 1467.00 2467.00
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 1358.00 2358.00
- 2 / 2: 1458.00 2458.00
- ---- K:2 Z: 2
- 1 / 1: 1368.00 2368.00
- 2 / 2: 1468.00 2468.00
-file/grid=g2222/form=stream/order=yzxt test_stream.unf
-list v1
- VARIABLE : V1
- FILENAME : test_stream.unf
- SUBSET : 2 by 2 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1357.00 1367.00
- 2 / 2: 2357.00 2367.00
- ---- K:2 Z: 2
- 1 / 1: 1457.00 1467.00
- 2 / 2: 2457.00 2467.00
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 1358.00 1368.00
- 2 / 2: 2358.00 2368.00
- ---- K:2 Z: 2
- 1 / 1: 1458.00 1468.00
- 2 / 2: 2458.00 2468.00
-! ... then re-order on write and reverse the re-ordering on read
-sp rm -f test_stream.unf
-list/file=test_stream.unf/format=stream/order=yzxt/i=1:2/j=3:4/k=5:6/l=7:8 (((((i*10)+j)*10)+k)*10)+l
-file/grid=g2222/form=stream/order=yzxt test_stream.unf
-list v1
- VARIABLE : V1
- FILENAME : test_stream.unf
- SUBSET : 2 by 2 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: 1357.00 2357.00
- 2 / 2: 1457.00 2457.00
- ---- K:2 Z: 2
- 1 / 1: 1367.00 2367.00
- 2 / 2: 1467.00 2467.00
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 1358.00 2358.00
- 2 / 2: 1458.00 2458.00
- ---- K:2 Z: 2
- 1 / 1: 1368.00 2368.00
- 2 / 2: 1468.00 2468.00
-
-! clean up
-set grid abstract
-CANCEL DATA/ALL
-cancel grid g2222
-cancel grid g24
-cancel grid g12
-cancel grid g6yt
-cancel grid g6
-cancel axis x4
-cancel axis x3
-cancel axis x2
-sp rm -f test_stream.unf
-sp rm -f test_perm10.dat
-sp rm -f test_perm24.dat
-sp rm -f test_perm48.dat
-sp rm -f test_perm48_10.dat
-
-
-! added in bn312 6/3/94
-GO bn_reset
-cancel mode verify
-! cancel mode metafile ! needed temporarily 6/94: PLOT+/XGKS interaction bug
-GO bn_user
-! bn312_user.jnl
-
-! test the USER command options
-
-! test the SAMPLE command using the polar plotting scripts
-
-! Skip for 6D: USER command not implemented
-
-! These are the windows that have always been set after bn_user.jn
-set window/size=.5/aspect=.75:ax 1
-set window/size=.5/aspect=.75 2
-
-exit/script
-set window 1 ! clean up
-
-! added in bn420 1/96
-GO bn_reset
-cancel mode verify
-GO bn_stream
-! bn420_stream.jnl
-
-! jan 96
-! note that although this benchmark was added only in 1/96 the STREAM
-! reading capabilities have been available much longer
-
-! read the file stream_data_link.unf as a single 10 by 5 variable
-define axis/x=1:10:1 x10
-define axis/y=1:5:1 y5
-define grid/x=x10/y=y5 g10x5
-file/var=myvar/grid=g10x5/format=stream stream_data_link.unf
-list myvar
- VARIABLE : MYVAR
- FILENAME : stream_data_link.unf
- SUBSET : 10 by 5 points (X-Y)
- 1 2 3 4 5 6 7 8 9 10
- 1 2 3 4 5 6 7 8 9 10
- 1 / 1: 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000
- 2 / 2: 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000
- 3 / 3: 21.0000 22.0000 23.0000 24.0000 25.0000 26.0000 27.0000 28.0000 29.0000 30.0000
- 4 / 4: 31.0000 32.0000 33.0000 34.0000 35.0000 36.0000 37.0000 38.0000 39.0000 40.0000
- 5 / 5: 41.0000 42.0000 43.0000 44.0000 45.0000 46.0000 47.0000 48.0000 49.0000 50.0000
-cancel data stream_data_link.unf
-
-! read the same file as two 10 by 2 variables skipping the first line
-define axis/x=1:10:1 x10
-define axis/y=1:2:1 y2
-define grid/x=x10/y=y2 g10x2
-file/skip=10/columns=20/grid=g10x2/var=myv1,myv2/format=stream stream_data_link.unf
-list myv1,myv2
- DATA SET: ./stream_data_link.unf
- X: 0.5 to 10.5
- Y: 0.5 to 2.5
- Column 1: MYV1
- Column 2: MYV2
- MYV1 MYV2
- ---- J:1 Y: 1
-1 / 1: 11.0000 31.0000
-2 / 2: 12.0000 32.0000
-3 / 3: 13.0000 33.0000
-4 / 4: 14.0000 34.0000
-5 / 5: 15.0000 35.0000
-6 / 6: 16.0000 36.0000
-7 / 7: 17.0000 37.0000
-8 / 8: 18.0000 38.0000
-9 / 9: 19.0000 39.0000
-10 / 10: 20.0000 40.0000
- ---- J:2 Y: 2
-1 / 1: 21.0000 41.0000
-2 / 2: 22.0000 42.0000
-3 / 3: 23.0000 43.0000
-4 / 4: 24.0000 44.0000
-5 / 5: 25.0000 45.0000
-6 / 6: 26.0000 46.0000
-7 / 7: 27.0000 47.0000
-8 / 8: 28.0000 48.0000
-9 / 9: 29.0000 49.0000
-10 / 10: 30.0000 50.0000
-cancel data stream_data_link.unf
-
-
-!added in bn430 9/96 *kob*
-GO bn_reset
-cancel mode verify
-GO bn_mc
-!bn430_mc.jnl
-! kob - 9/5/96
-! - simple test of mc data access for both irregular and regular time
-! axis
-! - 9/6/96 - add tests for bad delta, out of order stepfiles, missing first step file
-! and missing step file other than the first
-! - 11/06/97 - added a set mode/last verify
-CAN MODE VERIFY
- currently SET data sets:
- 1> ./coads_clim.des (default)
- COAD
- name title I J K L M N
- SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:6 ... ...
- Deg C on grid GHB1 with -1.E+34 for missing data
- X=20E:20E(380) Y=90S:90N
-
- time range: 366 to 4018.4
-
- GRID GHB1
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- COADSY LATITUDE 90 r 89S 89N
- normal Z
- TIME1 T (hour) 6 r 366 4018.4
- normal E
- normal F
-
- L T TBOX TBOXLO
- 1> 366 730.485 0.7575
- 2> 1096.485 730.485 731.2425
- 3> 1826.97 730.485 1461.727
- 4> 2557.455 730.485 2192.213
- 5> 3287.94 730.485 2922.698
- 6> 4018.425 730.485 3653.182
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- DATA SET : COAD
- FILENAME : coads_clim.des
- SUBSET : 8 by 6 points (LATITUDE-T (hour))
- LONGITUDE: 140W (interpolated)
- 7S 5S 3S 1S 1N 3N 5N 7N
- 42 43 44 45 46 47 48 49
- 366 / 1: 27.4922 27.0790 26.2177 25.8117 25.8974 26.4319 26.8698 26.9781
- 1096.5 / 2: 27.5431 27.4416 26.6992 26.3360 26.4503 26.8090 27.0577 26.9103
- 1827 / 3: 28.2710 28.1010 27.1568 26.6065 26.5793 27.1318 27.1135 27.1007
- 2557.5 / 4: 28.3570 28.5412 27.6643 27.2819 27.1998 27.4282 27.5459 27.4002
- 3287.9 / 5: 28.2175 28.1635 27.4141 26.7167 26.9325 27.7459 27.7151 27.4877
- 4018.4 / 6: 28.0824 27.9723 27.7204 26.8768 26.9810 27.7220 28.0643 27.8845
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- DATA SET : COAD
- FILENAME : coads_clim.des
- SUBSET : 20 by 6 points (LONGITUDE-T (hour))
- LATITUDE : 0 (interpolated)
- ... listing every 2th point
- 179W 175W 171W 167W 163W 159W 155W 151W 147W 143W
- 81 83 85 87 89 91 93 95 97 99
- 366 / 1: 28.5733 27.8591 27.7604 27.6391 27.4060 26.8263 26.5254 26.2984 26.0875 25.9927
- 1096.5 / 2: 28.3556 28.1094 27.6296 27.2492 27.1351 26.6124 26.6061 26.5371 26.0686 26.4401
- 1827 / 3: 27.9375 27.9731 27.8331 27.5333 27.0461 27.2091 27.2154 27.0734 26.8618 26.6585
- 2557.5 / 4: 27.9532 27.8072 27.9180 27.9515 27.7807 27.6695 27.5253 27.3922 27.3396 27.2409
- 3287.9 / 5: 28.3764 27.9455 28.2888 28.1323 27.9742 27.6899 27.5363 27.5056 26.9876 27.0593
- 4018.4 / 6: 28.1912 28.2880 28.4249 28.1785 27.8359 27.8262 27.5394 27.3811 27.1444 27.0317
-
- SEA SURFACE TEMPERATURE
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- T (hour): 0.7575 to 4383.7
- E: N/A
- F: N/A
- DATA SET: ./coads_clim.des
-
- Total # of data points: 97200 (180*90*1*6*1*1)
- # flagged as bad data: 44263
- Minimum value: -2.3
- Maximum value: 32
- Mean value: 17.806 (unweighted average)
- Standard deviation: 9.6933
- currently SET data sets:
- 1> ./coads_clim.des
- COAD
- name title I J K L M N
- SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:6 ... ...
- Deg C on grid GHB1 with -1.E+34 for missing data
- X=20E:20E(380) Y=90S:90N
-
- time range: 366 to 4018.4
-
- 2> ./coads_clim_irreg.des (default)
- COAD
- name title I J K L M N
- SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
- Deg C on grid GJR1 with -1.E+34 for missing data
- X=20E:20E(380) Y=90S:90N
-
- time range: 366 to 3287.9
-
- GRID GJR1
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- COADSY LATITUDE 90 r 89S 89N
- normal Z
- TIME2 T (hour) 3 i 366 3287.9
- normal E
- normal F
-
- L T TBOX TBOXLO
- 1> 366 730.485 0.7575
- 2> 1096.485 1460.97 731.2425
- 3> 3287.94 2191.455 2192.213
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- DATA SET : COAD
- FILENAME : coads_clim_irreg.des
- SUBSET : 8 by 3 points (LATITUDE-T (hour))
- LONGITUDE: 140W (interpolated)
- 7S 5S 3S 1S 1N 3N 5N 7N
- 42 43 44 45 46 47 48 49
- 366 / 1: 27.4922 27.0790 26.2177 25.8117 25.8974 26.4319 26.8698 26.9781
- 1096.5 / 2: 27.5431 27.4416 26.6992 26.3360 26.4503 26.8090 27.0577 26.9103
- 3287.9 / 3: 28.2175 28.1635 27.4141 26.7167 26.9325 27.7459 27.7151 27.4877
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- DATA SET : COAD
- FILENAME : coads_clim_irreg.des
- SUBSET : 20 by 3 points (LONGITUDE-T (hour))
- LATITUDE : 0 (interpolated)
- ... listing every 2th point
- 179W 175W 171W 167W 163W 159W 155W 151W 147W 143W
- 81 83 85 87 89 91 93 95 97 99
- 366 / 1: 28.5733 27.8591 27.7604 27.6391 27.4060 26.8263 26.5254 26.2984 26.0875 25.9927
- 1096.5 / 2: 28.3556 28.1094 27.6296 27.2492 27.1351 26.6124 26.6061 26.5371 26.0686 26.4401
- 3287.9 / 3: 28.3764 27.9455 28.2888 28.1323 27.9742 27.6899 27.5363 27.5056 26.9876 27.0593
-
- SEA SURFACE TEMPERATURE
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- T (hour): 0.7575 to 4383.7
- E: N/A
- F: N/A
- DATA SET: ./coads_clim_irreg.des
-
- Total # of data points: 48600 (180*90*1*3*1*1)
- # flagged as bad data: 21459
- Minimum value: -2.2
- Maximum value: 31
- Mean value: 17.359 (unweighted average)
- Standard deviation: 9.8799
- currently SET data sets:
- 1> ./coads_clim_missing_step1.des (default)
- COAD
- name title I J K L M N
- SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
- Deg C on grid GQO1 with -1.E+34 for missing data
- X=20E:20E(380) Y=90S:90N
-
- time range: 366 to 3287.9
-
- currently SET data sets:
- 1> ./coads_clim_missing_stepN.des (default)
- COAD
- name title I J K L M N
- SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
- Deg C on grid GCQ1 with -1.E+34 for missing data
- X=20E:20E(380) Y=90S:90N
-
- time range: 366 to 3287.9
-
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- DATA SET : COAD
- FILENAME : coads_clim_missing_stepN.des
- SUBSET : 180 by 90 by 3 points (LONGITUDE-LATITUDE-T (hour))
- ... listing every 14th point
- 21E 49E 77E 105E 133E 161E 171W 143W 115W 87W 59W 31W 3W
- 1 15 29 43 57 71 85 99 113 127 141 155 169
- ---- L:1 T: 366
- 89N / 90: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 87N / 89: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 85N / 88: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 83N / 87: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 81N / 86: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 79N / 85: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 77N / 84: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 75N / 83: 1.5550 .... .... .... .... .... .... .... .... .... .... .... ....
- 73N / 82: 3.7205 0.5871 .... .... .... .... .... .... .... .... .... .... 6.0000
- 71N / 81: 5.0934 0.6186 .... .... .... .... .... .... .... .... .... .... 4.1287
- 69N / 80: 5.4500 0.4500 .... .... .... .... .... .... .... .... .... 3.0000 4.8885
- 67N / 79: .... .... .... .... .... .... .... .... .... .... 1.6000 4.3120 4.5952
- 65N / 78: 0.0718 .... .... .... .... .... .... .... .... .... 0.8767 5.0952 5.2194
- 63N / 77: 0.5111 .... .... .... .... .... -0.8467 .... .... .... 0.8500 5.9579 6.4264
- 61N / 76: 1.2269 .... .... .... .... 0.3500 0.1214 6.0000 .... .... 0.8000 6.2213 8.1800
- 59N / 75: 2.9000 .... .... .... .... 1.1500 1.6321 5.7458 .... .... 2.7033 7.3962 7.6307
- 57N / 74: 3.0388 .... .... .... .... 1.1250 2.8750 5.2914 .... .... 0.5308 7.5317 6.4543
- 55N / 73: 3.2013 .... .... .... .... 0.6459 3.6936 5.2583 .... .... -0.4622 7.4551 6.5806
- 53N / 72: .... .... .... .... .... 1.1996 4.2880 5.7998 .... .... 1.2333 7.7514 7.1047
- 51N / 71: .... .... .... .... .... 2.1893 4.2290 6.2278 .... .... -0.2905 10.2702 9.3957
- 49N / 70: .... .... .... .... .... 2.5412 4.6069 6.6250 .... 3.0125 0.6527 11.6186 10.2970
- 47N / 69: .... .... .... .... .... 2.9602 5.5956 7.6881 .... 3.1794 1.2426 12.6823 11.3385
- 45N / 68: .... 3.3167 .... .... .... 4.4480 7.0744 8.9556 .... 3.4525 2.2314 13.7819 12.2254
- 43N / 67: .... 4.7221 .... .... 2.4068 6.9255 8.9646 10.3486 .... 3.1277 6.3709 14.7211 13.0557
- 41N / 66: .... 4.8365 .... .... 4.3635 9.6898 10.9751 11.9288 .... .... 15.5498 15.4318 ....
- 39N / 65: 15.4366 8.6262 .... .... 8.8837 12.8097 12.5484 13.4077 .... .... 18.6870 16.2119 ....
- 37N / 64: 16.0318 8.0667 .... .... 12.3600 15.0324 13.9800 15.0021 .... .... 19.2616 17.1874 15.1152
- 35N / 63: 16.2507 .... .... .... 13.3810 16.7364 15.4538 16.4689 .... .... 19.5398 18.1828 15.5754
- 33N / 62: 16.7783 .... .... .... 18.5491 18.0244 16.8419 17.7790 .... .... 20.1041 19.2886 ....
- 31N / 61: 17.9786 .... .... .... 19.9407 19.3074 18.5523 19.1648 17.8500 17.4183 20.8400 20.0450 ....
- 29N / 60: .... 18.9119 .... .... 20.5019 20.6291 20.1257 20.1026 16.8274 20.6176 22.0740 20.6790 ....
- 27N / 59: .... 20.8300 .... .... 21.3326 22.0026 21.6086 20.9032 17.8323 23.7582 23.1533 21.5070 ....
- 25N / 58: .... .... .... .... 22.3495 23.8248 23.2779 21.5841 18.8269 24.8593 24.0919 22.3336 ....
- 23N / 57: .... .... .... .... 23.6807 25.0783 24.0186 22.3034 20.2700 25.5195 24.7930 22.7905 ....
- 21N / 56: .... .... .... .... 24.7072 25.9688 24.7256 22.9079 22.0270 26.4860 25.3493 22.9386 ....
- 19N / 55: .... .... .... 22.6383 25.9015 26.6802 25.6078 23.5313 23.8074 27.0339 25.8612 23.4342 ....
- 17N / 54: .... .... .... .... 26.8579 27.0091 25.9585 24.1694 25.2841 27.0695 26.1928 23.8282 ....
- 15N / 53: .... 25.4074 .... .... 27.4243 27.0312 26.1212 24.8069 26.3029 26.9280 26.3665 24.2289 ....
- 13N / 52: .... 25.3684 .... .... 27.7591 27.2962 26.4994 25.1181 26.6522 26.8229 26.6502 24.8118 ....
- 11N / 51: .... 25.8188 27.8253 27.8789 27.8781 27.9126 26.8606 25.7058 27.0455 26.2577 26.8927 25.3867 ....
- 9N / 50: .... 27.2000 27.8411 26.3897 28.1118 28.0045 27.4964 26.6136 26.7775 26.8093 27.0323 25.9038 ....
- 7N / 49: .... 26.1127 27.5677 26.0238 28.0494 28.7383 27.8221 27.0807 26.9304 27.5097 26.8869 26.5924 ....
- 5N / 48: .... 26.1020 27.8127 26.5939 28.3079 28.7465 28.1379 27.1305 27.5967 27.5257 .... 26.9872 27.8152
- 3N / 47: .... 26.2525 27.9241 26.8579 28.5464 28.9967 27.6071 26.2341 25.5129 27.0847 .... 27.0516 28.3003
- 1N / 46: .... 26.4437 28.2462 27.2532 28.7823 28.7893 27.5856 25.9683 24.2075 25.8155 .... 27.0482 27.9197
- 1S / 45: .... 27.0068 28.1397 27.7957 28.9633 29.1200 27.9352 26.0170 24.4768 24.9226 .... 27.0957 27.0229
- 3S / 44: .... 27.6137 28.2304 27.5868 28.9390 29.4694 27.9904 26.2519 24.6900 24.9094 .... 27.1568 26.8912
- 5S / 43: .... 28.2419 28.1710 28.0148 28.8535 29.6225 28.6900 26.6985 24.8254 25.1700 .... 27.1489 26.2070
- 7S / 42: .... 28.7080 28.1502 28.3020 28.9045 29.3650 29.1496 27.0025 25.1069 24.9153 .... 27.3142 25.4034
- 9S / 41: .... 28.4648 28.3721 28.3145 28.9483 29.3450 28.9944 28.0900 25.3219 24.4950 .... 27.2335 24.8536
- 11S / 40: .... 28.0725 28.3709 28.1023 29.6033 29.3462 29.1837 28.2076 25.4194 24.1157 .... 27.2170 24.0960
- 13S / 39: .... 28.1510 28.0187 27.8073 30.0000 29.1755 29.0507 28.1889 25.3569 23.7371 .... 27.3476 23.4967
- 15S / 38: .... 28.0800 27.7714 27.2320 .... 28.6954 28.8358 28.2165 25.5737 22.9877 .... 27.0100 23.0127
- 17S / 37: .... 28.2857 26.9409 26.4882 .... 28.2425 28.1673 27.9296 25.5046 22.3944 .... 26.7405 22.9133
- 19S / 36: .... 27.6122 26.1967 25.0514 .... 27.7552 27.8560 27.5000 25.4854 21.0467 .... 26.6053 22.7264
- 21S / 35: .... 27.5942 25.6929 24.4583 .... 26.3083 26.9939 27.2162 25.5969 21.8550 .... 26.4333 22.5890
- 23S / 34: .... 27.0610 25.3542 23.6893 .... 26.0250 26.0238 26.6869 25.5377 21.5647 .... 26.5500 22.9482
- 25S / 33: .... 26.6974 25.2817 22.6691 .... 25.5528 25.4389 25.4775 25.2041 21.3664 .... 25.4338 23.1510
- 27S / 32: .... 25.8897 24.5000 22.1500 .... 24.8603 24.1297 24.3742 24.8067 21.0300 .... 24.8628 22.9100
- 29S / 31: .... 24.6453 23.8583 21.1592 .... 24.0408 23.2608 23.1950 24.4300 21.1500 .... 23.4096 22.5004
- 31S / 30: .... 23.8611 22.6739 20.5028 .... 23.2794 21.8597 21.8462 22.7130 21.3700 .... 22.5936 22.0041
- 33S / 29: .... 22.1584 21.2131 19.2542 18.8470 22.4742 20.8053 20.6944 22.4667 20.3670 .... 20.5743 20.8167
- 35S / 28: 21.0773 20.5794 19.8725 18.4359 18.1523 22.1463 20.1823 19.6000 20.4500 19.2450 21.7333 19.9441 19.5977
- 37S / 27: 21.2868 19.1969 17.8018 16.7463 16.9175 20.0833 19.0935 18.1643 18.1575 18.4543 .... 18.6379 17.6856
- 39S / 26: 20.7459 17.5123 15.9600 14.8400 16.3010 18.3956 18.3997 16.9135 16.9625 17.0514 18.6879 16.7446 15.4764
- 41S / 25: 16.4473 14.4439 14.4573 13.5944 14.4030 17.4141 17.2206 15.2329 .... 15.7317 16.7885 14.7942 12.6567
- 43S / 24: 14.3660 8.5494 12.8214 11.9753 13.3524 15.0229 16.4218 13.6950 .... 13.6375 13.9769 12.5075 10.4100
- 45S / 23: 8.4925 7.5150 11.1860 10.5093 11.8445 13.9774 14.9780 13.0112 .... 12.0000 12.2990 10.5100 7.9967
- 47S / 22: 6.0621 5.7733 7.4400 9.0110 10.8888 13.2065 13.4630 11.6550 .... 10.2400 11.1783 8.6200 6.4500
- 49S / 21: 4.4209 4.2067 6.0325 6.1945 9.7129 10.8775 12.9344 .... .... 9.3675 10.3435 5.2987 4.5450
- 51S / 20: 1.8375 3.6387 3.1564 5.7656 8.0480 10.0143 11.0070 10.9750 .... 9.2000 9.8156 3.6350 2.5350
- 53S / 19: 1.0891 2.8667 2.1950 4.1600 6.5630 9.4455 9.7660 .... .... 8.5500 8.5604 2.1900 1.0550
- 55S / 18: 0.6469 2.6750 2.3478 4.1000 5.1560 6.5700 8.0000 .... 7.8000 7.8786 6.9458 1.3933 0.5425
- 57S / 17: 0.4114 2.0529 1.8425 2.4260 4.2929 4.7383 7.0125 3.9825 .... 6.8667 5.7852 0.7771 0.5529
- 59S / 16: 0.6236 1.3700 1.4776 2.0189 3.2000 4.0325 4.4000 1.8360 .... 6.5150 2.7940 0.0694 0.0558
- 61S / 15: 0.8438 1.3312 1.2144 1.2400 1.9900 2.2237 3.2143 0.8080 3.6867 .... 1.6781 0.0830 0.6620
- 63S / 14: 0.8813 0.7700 1.1575 0.4750 1.2344 1.1619 1.6000 0.5280 2.3275 3.4000 1.1667 -0.3333 0.4050
- 65S / 13: 0.3667 -0.0356 0.8123 0.0871 0.1521 0.3286 0.5200 0.4550 0.5067 1.8325 -0.9000 -0.5500 0.2060
- 67S / 12: -0.6667 -0.9250 0.5317 .... .... -0.3906 -0.0233 -1.2000 -0.1537 0.8722 .... -0.2533 0.2300
- 69S / 11: 0.0425 .... 1.2033 .... .... -0.6200 -0.1364 .... -0.4150 0.1786 .... 0.5000 0.0700
- 71S / 10: .... .... .... .... .... .... -0.7040 0.0000 .... .... .... -1.0167 -1.0100
- 73S / 9: .... .... .... .... .... .... -0.3500 .... .... .... .... -1.2000 ....
- 75S / 8: .... .... .... .... .... .... -1.1750 .... .... .... .... -0.4233 ....
- 77S / 7: .... .... .... .... .... .... -0.6250 .... .... .... .... -0.8678 ....
- 79S / 6: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 81S / 5: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 83S / 4: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 85S / 3: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 87S / 2: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 89S / 1: .... .... .... .... .... .... .... .... .... .... .... .... ....
- ---- L:2 T: 1096.5
- 89N / 90: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 87N / 89: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 85N / 88: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 83N / 87: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 81N / 86: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 79N / 85: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 77N / 84: .... .... .... .... .... .... .... .... .... .... .... .... 1.0000
- 75N / 83: 2.5283 .... .... .... .... .... .... .... .... .... .... .... -1.5500
- 73N / 82: 4.0984 0.3050 .... .... .... .... .... .... .... .... .... .... -0.1087
- 71N / 81: 4.6724 0.1046 .... .... .... .... .... .... .... .... .... .... 2.7960
- 69N / 80: 4.1971 0.0000 .... .... .... .... .... .... .... .... .... .... 3.8097
- 67N / 79: .... .... .... .... .... .... .... .... .... .... 1.6000 3.7596 4.3979
- 65N / 78: -0.0625 .... .... .... .... .... -0.2000 .... .... .... 0.4221 4.4633 4.8655
- 63N / 77: 0.0745 .... .... .... .... .... -1.7560 .... .... .... -0.2712 5.8617 6.3740
- 61N / 76: 0.4814 .... .... .... .... 2.4947 -1.5404 4.7000 .... .... 2.1750 6.4468 7.9008
- 59N / 75: 1.6399 .... .... .... .... 2.0000 0.0008 5.2586 .... .... 1.3824 7.0788 6.9452
- 57N / 74: 2.0350 .... .... .... .... 1.0500 2.0321 4.7989 .... .... 1.5986 7.2850 5.6111
- 55N / 73: 2.0609 .... .... .... .... 0.2492 3.3744 4.9032 .... .... 1.1250 7.1357 5.8718
- 53N / 72: .... .... .... .... .... 0.6807 3.7572 5.4648 .... .... -2.2000 7.5902 6.5032
- 51N / 71: .... .... .... .... .... 1.6469 3.7090 5.7799 .... .... -1.1807 10.0328 8.4741
- 49N / 70: .... .... .... .... .... 1.8588 4.3120 6.2452 .... .... -0.3648 11.3871 9.5089
- 47N / 69: .... .... .... .... .... 2.3163 5.1206 7.3744 .... 1.9691 -0.0062 12.2219 10.1338
- 45N / 68: .... 3.6500 .... .... .... 3.6392 6.7455 8.6209 .... 2.8224 0.9671 13.4022 11.7268
- 43N / 67: .... 4.6473 .... .... 1.3648 5.8679 8.5111 9.8453 .... 2.4835 5.0119 14.2248 12.1942
- 41N / 66: .... 4.7861 .... .... 3.0570 8.4719 10.3051 11.4213 .... .... 14.7565 15.0002 ....
- 39N / 65: 15.0270 8.4385 .... .... 7.3566 11.4912 12.1752 12.8504 .... .... 18.0116 15.7098 ....
- 37N / 64: 15.3211 .... .... .... 10.8839 13.7783 13.3446 14.3616 .... .... 18.5301 16.5598 14.7798
- 35N / 63: 15.5386 .... .... .... 11.5113 15.5093 14.6245 15.8741 .... .... 18.7629 17.4589 15.1510
- 33N / 62: 16.0085 .... .... .... 18.0727 16.9360 16.0912 17.1296 .... .... 19.2839 18.5539 ....
- 31N / 61: 15.5003 .... .... .... 19.3688 18.1290 17.7404 18.4996 16.6805 17.1886 20.0995 19.3186 ....
- 29N / 60: .... 17.9540 .... .... 19.6179 19.5035 19.2114 19.5065 16.2029 20.0335 21.3973 20.0384 ....
- 27N / 59: .... 19.2895 .... .... 20.5089 21.1212 20.6266 20.3709 17.2076 23.4895 22.6302 20.8561 ....
- 25N / 58: .... .... .... .... 21.6717 22.9821 22.7977 21.2932 18.4958 24.6577 23.6045 21.6921 ....
- 23N / 57: .... .... .... .... 23.0715 24.4551 23.5951 22.2253 19.8338 25.2474 24.2970 22.1740 ....
- 21N / 56: .... .... .... .... 24.4908 25.3921 24.3804 22.7672 21.2780 25.9320 24.9042 22.6199 ....
- 19N / 55: .... .... .... 21.9809 25.6218 26.2087 25.0433 23.4827 23.0766 26.7496 25.4450 22.7637 ....
- 17N / 54: .... .... .... .... 26.5571 26.5915 25.7194 24.1352 24.9649 26.7912 25.7799 22.9853 ....
- 15N / 53: .... 25.4092 .... .... 27.2200 26.8560 25.9733 24.7324 26.0247 26.0114 26.0969 23.6629 ....
- 13N / 52: .... 25.4771 .... .... 27.5037 27.5150 26.1672 25.1314 26.5769 26.9127 26.4016 24.1635 ....
- 11N / 51: .... 25.9857 28.0015 26.7764 27.5853 27.5652 26.8019 25.7690 27.0738 26.0525 26.6473 24.7404 ....
- 9N / 50: .... 26.4544 28.2288 26.5501 27.7983 28.1491 27.4758 26.8996 26.9893 26.8687 26.7045 25.5850 ....
- 7N / 49: .... 26.2609 27.8816 26.4870 27.6868 28.5162 27.7850 27.0898 27.0539 28.0777 26.7957 26.6243 ....
- 5N / 48: .... 26.4131 27.9713 26.8734 27.7794 28.6949 27.8279 26.7964 26.6060 28.0647 .... 26.8913 28.0427
- 3N / 47: .... 26.5913 28.1749 26.9865 28.4875 29.1712 27.8616 26.6257 26.2312 27.7434 .... 27.1225 28.5353
- 1N / 46: .... 26.8491 28.6115 27.3775 28.2466 28.9555 27.5331 26.4050 26.4266 26.5208 .... 27.2455 28.5152
- 1S / 45: .... 27.3064 28.4080 27.9040 28.4680 29.2010 27.7261 26.4751 24.6569 26.0235 .... 27.4196 27.9833
- 3S / 44: .... 27.9602 28.2742 28.3296 28.8893 29.5794 28.3834 26.5213 25.4925 26.6125 .... 27.6638 27.3859
- 5S / 43: .... 28.2396 28.0572 28.3176 28.7901 29.3721 28.2957 26.7982 25.7981 26.6252 .... 27.6334 27.2052
- 7S / 42: .... 28.6815 28.2612 28.2786 28.7463 29.4168 28.8967 27.4410 26.1729 26.5534 .... 27.7374 26.6993
- 9S / 41: .... 28.4790 28.3137 28.5841 28.7040 29.4256 29.1270 28.3372 25.9400 25.9795 .... 27.6607 26.1480
- 11S / 40: .... 28.2829 28.6414 28.3339 29.3503 29.1771 29.1492 28.2032 25.9871 25.9624 .... 27.5419 25.5310
- 13S / 39: .... 28.3226 28.3738 28.5679 .... 29.0269 29.1852 28.3130 25.7940 25.0490 .... 27.3347 25.0641
- 15S / 38: .... 27.6600 28.2896 27.7713 .... 28.8387 29.0820 28.4626 25.9384 24.0311 .... 27.4378 24.5993
- 17S / 37: .... 28.0370 27.5108 27.3368 .... 28.5764 28.4527 27.9555 26.0744 23.1143 .... 27.5051 24.0454
- 19S / 36: .... 27.7741 27.0157 26.4074 .... 28.0387 28.2036 28.0002 26.1485 23.5125 .... 27.4665 23.8172
- 21S / 35: .... 27.5781 26.3341 25.2805 .... 26.9356 27.5820 27.6097 26.0473 22.5984 .... 27.0379 23.6919
- 23S / 34: .... 27.4302 26.2267 24.4780 .... 26.2735 26.9770 26.9149 25.9504 22.6780 .... 27.2712 23.6569
- 25S / 33: .... 27.1106 25.3692 23.3572 .... 25.8933 25.9116 26.4028 25.5674 21.8153 .... 26.4321 23.8424
- 27S / 32: .... 26.2136 25.2324 22.5225 .... 25.1302 24.7613 25.0533 25.4781 22.3270 .... 26.0936 23.3768
- 29S / 31: .... 25.1187 23.9464 21.6124 .... 24.6507 24.1035 24.0470 24.7712 21.6070 .... 25.1327 23.1977
- 31S / 30: .... 24.1655 22.8869 20.9082 .... 23.9437 22.8024 22.8395 23.8185 21.6885 .... 23.6302 22.7434
- 33S / 29: .... 23.0193 21.8809 19.7883 19.8276 23.0018 21.7527 21.3169 21.5627 21.0475 .... 22.6172 21.4319
- 35S / 28: 20.9734 21.1547 20.7043 18.8851 18.9300 22.5357 20.8505 20.5353 22.0240 20.2323 22.8700 20.8750 20.1989
- 37S / 27: 21.7237 19.9086 18.4469 17.2227 17.7141 20.7386 19.8244 18.3687 19.8411 19.7704 .... 19.5269 18.6070
- 39S / 26: 22.0397 18.3765 16.5437 15.5140 17.0989 19.0830 18.8514 17.5866 .... 18.7405 19.1255 18.2102 15.7730
- 41S / 25: 17.8526 16.3651 15.5023 14.2290 15.4274 17.6752 17.4792 15.9576 18.1650 17.1268 17.4312 16.4894 13.9250
- 43S / 24: 13.4949 9.2836 13.3727 12.3420 13.9432 16.1595 17.0221 14.6650 16.3947 14.2424 14.2672 14.1820 10.6937
- 45S / 23: 8.3840 7.6307 11.6679 11.2457 12.8452 14.4788 15.0178 13.5082 .... 12.0600 12.7115 10.9652 8.1250
- 47S / 22: 6.7167 6.0540 8.2500 9.1190 10.9825 12.8255 13.8707 12.4650 .... 10.8575 11.1699 8.5767 5.5000
- 49S / 21: 4.8858 5.4150 5.9088 6.2255 10.1339 11.2443 12.5930 11.4167 .... 10.0842 10.6338 7.4442 4.9572
- 51S / 20: 2.3210 3.9822 3.9846 5.7576 7.7675 9.9738 10.8426 10.1840 .... 10.0000 10.2138 5.1999 3.5755
- 53S / 19: 1.6715 3.2515 2.9610 4.1500 6.9224 8.5819 9.1357 .... .... 8.1500 8.4738 3.8071 2.1017
- 55S / 18: 1.3318 3.1000 2.6454 3.0000 5.7914 6.1994 7.9489 6.6000 .... 7.7692 7.2001 1.8440 1.0135
- 57S / 17: 0.9767 1.9018 1.9953 2.7540 5.2543 4.5237 6.5740 3.7000 .... 7.5635 6.0275 1.7052 1.1491
- 59S / 16: 1.1588 2.1100 1.9107 2.7212 3.8002 3.8360 4.9089 1.7892 .... 6.7092 3.6242 1.2592 0.7025
- 61S / 15: 0.9937 1.7382 1.5836 2.3000 3.0766 2.3196 3.4012 1.9993 .... 4.4088 2.4941 0.0903 0.4673
- 63S / 14: 1.0650 1.2982 1.6343 1.2108 1.5136 1.6090 1.8151 1.2050 .... 3.1150 1.2840 0.3114 0.9075
- 65S / 13: 0.6686 0.1303 0.8185 0.2022 0.5104 0.3644 1.0079 0.2598 1.8500 1.8860 0.7000 0.0021 0.9191
- 67S / 12: 0.4623 -0.5492 0.0874 .... .... -0.0052 -0.2830 -0.0203 1.1982 0.4323 -0.5000 0.2120 -0.0205
- 69S / 11: -0.3438 .... -0.2335 .... .... -1.3365 -0.1277 .... -0.2716 -0.3135 .... -0.7000 -0.2723
- 71S / 10: .... .... .... .... .... -1.6000 -1.0248 .... -1.0000 .... .... -1.5633 -0.9349
- 73S / 9: .... .... .... .... .... .... -1.0216 .... .... .... .... -1.4771 ....
- 75S / 8: .... .... .... .... .... .... -0.6115 .... .... .... -1.6061 -1.2224 ....
- 77S / 7: .... .... .... .... .... .... -0.6974 .... .... .... .... -1.3728 ....
- 79S / 6: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 81S / 5: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 83S / 4: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 85S / 3: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 87S / 2: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 89S / 1: .... .... .... .... .... .... .... .... .... .... .... .... ....
- ---- L:3 T: 3287.9
- 89N / 90: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 87N / 89: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 85N / 88: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 83N / 87: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 81N / 86: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 79N / 85: 2.5000 .... .... .... .... .... .... .... .... .... .... .... 0.3750
- 77N / 84: 3.4400 .... .... .... .... .... .... .... .... .... .... .... -0.6250
- 75N / 83: 2.6000 .... .... .... .... .... .... .... .... .... .... .... -0.8460
- 73N / 82: 4.4409 0.5100 .... .... .... .... .... .... .... .... -1.3667 .... -0.8225
- 71N / 81: 5.4388 0.3400 .... .... .... .... .... .... .... .... .... .... 3.6240
- 69N / 80: 5.9773 .... .... .... .... .... .... .... .... .... .... 7.0333 5.7596
- 67N / 79: .... .... .... .... .... .... .... .... .... .... -0.6000 6.2775 5.0971
- 65N / 78: 1.4558 .... .... .... .... .... -0.2350 .... .... .... -0.0333 5.5736 5.9673
- 63N / 77: 3.4200 .... .... .... .... .... 0.6400 .... .... .... -1.6700 6.6186 7.9123
- 61N / 76: 3.4160 .... .... .... .... 2.5655 0.7717 6.6667 .... .... 1.8667 7.0529 8.8649
- 59N / 75: 5.6405 .... .... .... .... 2.0611 0.9867 6.9750 .... .... 2.0100 7.4621 8.4868
- 57N / 74: 5.9800 .... .... .... .... 3.0850 2.7321 6.8916 .... .... 0.9500 8.2306 8.5784
- 55N / 73: 8.0252 .... .... .... .... 2.3115 4.5506 6.4479 .... .... 3.7000 8.3973 9.5559
- 53N / 72: .... .... .... .... .... 2.6937 4.8088 6.7680 .... .... 2.8900 9.2218 10.4003
- 51N / 71: .... .... .... .... .... 3.2503 4.9117 6.8015 .... .... 2.5529 11.3034 10.8005
- 49N / 70: .... .... .... .... .... 3.0545 5.1517 7.2869 .... 2.7152 3.2139 12.3364 11.3225
- 47N / 69: .... 2.7000 .... .... .... 3.3659 5.8927 8.3193 .... 2.7223 3.4114 13.6252 13.5042
- 45N / 68: .... 10.0571 .... .... .... 4.8410 7.4161 9.4102 .... 3.6258 3.8275 14.6266 14.1615
- 43N / 67: .... 12.7416 .... .... 6.7189 6.9232 9.1093 10.6638 .... 4.2112 7.7514 15.5934 14.2717
- 41N / 66: .... 12.2736 .... .... 9.4889 10.0966 11.2221 12.2000 .... 7.4752 17.0025 16.5220 ....
- 39N / 65: 18.3061 17.6344 .... .... 13.1272 13.1707 13.2898 13.6927 .... .... 20.0227 17.1398 ....
- 37N / 64: 18.5141 17.9063 .... .... 15.3549 15.3983 15.0444 15.3707 .... .... 20.4579 18.0923 17.5707
- 35N / 63: 18.7384 .... .... .... 16.8426 17.6000 16.7552 16.7829 .... .... 20.4300 19.0107 17.7344
- 33N / 62: 18.9508 .... .... .... 21.5277 18.7307 18.1471 17.9534 .... .... 21.0125 20.0088 ....
- 31N / 61: 18.7025 .... .... .... 22.5800 20.5256 20.0583 19.4733 17.4200 24.2768 21.8716 20.6057 ....
- 29N / 60: .... 25.7695 .... .... 22.5733 22.5723 21.6635 20.2684 16.2180 24.9511 23.1845 21.2752 ....
- 27N / 59: .... 25.4122 .... .... 23.6602 24.0498 22.5812 21.2723 16.7570 26.3925 24.2020 21.7641 ....
- 25N / 58: .... .... .... .... 25.2143 25.5321 24.3246 21.9995 17.9540 26.9720 24.9484 22.4602 ....
- 23N / 57: .... .... .... .... 26.6917 26.0579 24.8529 22.5776 20.2795 27.1909 25.5700 22.9362 ....
- 21N / 56: .... .... .... .... 27.8576 26.6563 25.3957 23.1102 22.1345 27.7200 26.0730 23.0700 ....
- 19N / 55: .... .... .... 26.8300 28.4227 27.1402 25.9305 23.6595 23.7516 28.1905 26.6716 23.3293 ....
- 17N / 54: .... .... .... .... 28.8737 27.3141 26.3835 24.2809 25.2149 28.3251 27.0405 23.5656 ....
- 15N / 53: .... 29.6770 .... .... 29.0020 27.5648 26.8352 25.0370 26.4873 28.2522 27.1788 24.0619 ....
- 13N / 52: .... 29.7957 .... .... 29.0452 27.9505 26.9712 25.7979 27.9270 29.0510 27.4940 24.9544 ....
- 11N / 51: .... 29.9600 29.6100 29.9485 29.1975 28.5281 27.2419 26.2275 28.2569 28.6935 27.4943 25.4832 ....
- 9N / 50: .... 29.0000 29.2055 29.9940 29.1339 28.5629 28.0300 26.8865 28.1333 28.7602 27.5655 26.2932 ....
- 7N / 49: .... 28.0975 29.2157 29.8208 29.1260 28.9489 28.3765 27.6896 27.9185 28.6481 27.8075 26.9731 ....
- 5N / 48: .... 28.5837 28.9960 29.6031 29.2848 28.8200 28.2841 28.0367 28.0050 28.1459 .... 27.4683 28.6742
- 3N / 47: .... 28.8228 28.8738 29.6720 29.1708 29.1114 27.9356 27.4223 27.0792 27.4624 .... 27.7005 28.7616
- 1N / 46: .... 28.9241 28.9488 29.6711 29.2204 29.2053 27.9759 26.7708 26.2331 24.6843 .... 27.7243 28.5300
- 1S / 45: .... 28.8412 28.8305 29.7569 29.3532 29.1575 28.6016 27.3479 26.1727 23.7911 .... 27.7941 27.3629
- 3S / 44: .... 28.7131 28.7504 29.7065 28.8744 29.3853 29.0300 27.7041 26.2321 24.2555 .... 27.9582 27.0115
- 5S / 43: .... 28.2603 28.5437 29.3988 28.6953 29.4181 29.4700 28.0004 26.6977 25.2607 .... 28.0911 26.9673
- 7S / 42: .... 28.4590 28.1998 29.0577 28.3900 29.3039 29.4132 28.1829 26.9186 25.5194 .... 28.0741 26.4868
- 9S / 41: .... 27.4126 27.8088 28.6505 28.0595 29.3987 29.4488 28.6235 26.8222 25.9759 .... 27.9426 25.9048
- 11S / 40: .... 27.3103 27.5905 28.4839 28.4948 28.7670 29.4367 28.7400 26.7212 25.1000 .... 27.5707 25.3691
- 13S / 39: .... 27.6357 27.1885 28.1500 29.0750 28.2963 29.0007 28.3957 26.0152 23.9237 .... 27.2888 23.9450
- 15S / 38: .... 27.4167 26.8054 27.3040 .... 27.6349 28.8591 28.2997 25.6416 22.9757 .... 26.8832 23.2593
- 17S / 37: .... 26.5750 26.3315 26.3547 .... 26.9741 27.8112 27.7504 25.2758 22.2731 .... 26.9240 22.9660
- 19S / 36: .... 26.3800 25.6018 25.5118 .... 26.2589 26.8355 27.3067 25.1597 21.8636 .... 26.4242 22.7498
- 21S / 35: .... 26.3962 24.9433 24.4010 .... 25.0882 26.0626 26.7074 25.1090 21.2900 .... 26.0265 22.2924
- 23S / 34: .... 25.5153 23.9938 23.6290 .... 23.7930 24.8873 25.7890 24.6791 21.6500 .... 25.0545 22.3546
- 25S / 33: .... 25.0498 23.4605 22.4263 .... 23.5336 23.1886 24.5767 23.8922 21.0542 .... 24.0368 22.0510
- 27S / 32: .... 24.0579 22.4800 21.3337 .... 22.9638 22.6794 22.9685 23.3845 20.5250 .... 23.4248 21.4712
- 29S / 31: .... 22.2597 20.8924 20.4105 .... 22.1940 21.7986 21.7838 22.1056 20.3556 .... 22.2542 20.3204
- 31S / 30: .... 21.4554 20.1326 19.0221 .... 21.7333 20.2379 20.6162 21.0963 19.7514 .... 21.3928 19.9943
- 33S / 29: .... 20.1174 18.7177 17.8882 17.9775 20.9526 18.9529 18.9267 19.8433 18.7275 .... 19.5163 19.1597
- 35S / 28: 17.4848 19.0512 17.2736 16.4823 17.0525 20.2329 17.9626 17.6227 19.3250 17.7730 18.5000 18.2119 17.9181
- 37S / 27: 19.0393 18.4096 15.7970 14.9422 15.5643 18.4488 16.9900 16.4614 16.4140 16.1780 .... 17.4080 16.3346
- 39S / 26: 19.3745 17.0241 15.1964 13.3975 14.9817 16.2655 15.9971 15.1350 15.1000 15.0855 13.9982 15.9207 14.3391
- 41S / 25: 17.5125 14.8843 13.7848 11.6755 13.7962 15.6597 15.2020 13.3413 .... 13.7836 12.0222 14.1123 13.4425
- 43S / 24: 14.8667 8.6540 13.1967 10.4214 12.3867 14.4790 14.1935 12.8180 .... 12.5791 9.4489 13.2311 12.1000
- 45S / 23: 14.8333 .... 10.7300 10.0000 10.7150 12.2380 12.7589 11.4000 .... 11.8200 8.4016 .... ....
- 47S / 22: .... .... 6.0500 .... .... 11.8750 11.9511 10.9667 .... 9.6250 7.7883 7.6600 ....
- 49S / 21: .... .... 5.4000 .... .... 10.7667 11.0757 9.8500 .... 8.9767 7.4821 6.6840 ....
- 51S / 20: .... .... 2.5333 .... .... 8.8000 .... 9.2571 .... 7.6900 7.7200 3.7350 ....
- 53S / 19: .... 3.4133 .... .... .... 8.4600 .... .... 5.0000 6.6850 7.1267 1.1217 ....
- 55S / 18: .... .... .... .... .... .... .... .... .... 6.5000 6.0667 1.4680 ....
- 57S / 17: .... .... .... .... .... .... .... .... .... 5.2000 5.2657 1.0000 ....
- 59S / 16: .... .... -0.4400 .... .... .... .... .... .... .... 1.5000 -0.8000 ....
- 61S / 15: .... .... .... .... .... .... .... .... .... .... -0.4500 .... ....
- 63S / 14: .... .... .... .... .... .... .... .... .... 2.0700 .... .... ....
- 65S / 13: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 67S / 12: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 69S / 11: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 71S / 10: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 73S / 9: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 75S / 8: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 77S / 7: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 79S / 6: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 81S / 5: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 83S / 4: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 85S / 3: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 87S / 2: .... .... .... .... .... .... .... .... .... .... .... .... ....
- 89S / 1: .... .... .... .... .... .... .... .... .... .... .... .... ....
-
-
-
-!added in bn450 10/97 *kob*
-GO bn_reset
-cancel mode verify
-GO bn_negative_t
-! bn450_negative_t - 10/97
-
-! test behavior of negative time step values (unsupported except as absolute
-! dates prior to Ferret version 4.5)
-
-
-! define an axis of negative and positive time steps and test all
-! transformation on it over various ranges
-
-DEFINE AXIS/T=-10:10:2 tax
-LET tvar = t[gt=tax]
-LET tgap = IF MOD(T,4) eq 0 then tvar
-
-! ****** test transformations ********
-
-GO bn_negative_t.sub tvar ave ! like var and din
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ave] ! neg/pos t endpoints
- VARIABLE : T[GT=TAX]
- T : -5 to 5 (averaged)
- 0.000000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ave] ! neg/neq t endpoints
- VARIABLE : T[GT=TAX]
- T : -8 to -5 (averaged)
- -6.66667
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ave] ! neg/pos l endpoints
- VARIABLE : T[GT=TAX]
- T : -9 to 3 (averaged)
- -3.00000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ave] ! neg/neg l endpoints
- VARIABLE : T[GT=TAX]
- T : -9 to -3 (averaged)
- -6.00000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ave] ! unspecified limits (neg/pos)
- VARIABLE : T[GT=TAX]
- T : -11 to 11 (averaged)
- 0.000000
-
-GO bn_negative_t.sub tvar iin
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at iin] ! neg/pos t endpoints
- VARIABLE : T[GT=TAX]
- indef. integ. on T
- SUBSET : 5 points (T)
- -4 / 4: -8.0000
- -2 / 5: -12.0000
- 0 / 6: -12.0000
- 2 / 7: -8.0000
- 4 / 8: 0.0000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at iin] ! neg/neq t endpoints
- VARIABLE : T[GT=TAX]
- indef. integ. on T
- SUBSET : 2 points (T)
- -8 / 2: -8.0000
- -6 / 3: -20.0000
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at iin] ! neg/pos l endpoints
- VARIABLE : T[GT=TAX]
- indef. integ. on T
- SUBSET : 6 points (T)
- -8 / 2: -16.0000
- -6 / 3: -28.0000
- -4 / 4: -36.0000
- -2 / 5: -40.0000
- 0 / 6: -40.0000
- 2 / 7: -36.0000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at iin] ! neg/neg l endpoints
- VARIABLE : T[GT=TAX]
- indef. integ. on T
- SUBSET : 3 points (T)
- -8 / 2: -16.0000
- -6 / 3: -28.0000
- -4 / 4: -36.0000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@iin] ! unspecified limits (neg/pos)
- VARIABLE : T[GT=TAX]
- indef. integ. on T
- SUBSET : 11 points (T)
- -10 / 1: -20.0000
- -8 / 2: -36.0000
- -6 / 3: -48.0000
- -4 / 4: -56.0000
- -2 / 5: -60.0000
- 0 / 6: -60.0000
- 2 / 7: -56.0000
- 4 / 8: -48.0000
- 6 / 9: -36.0000
- 8 / 10: -20.0000
- 10 / 11: 0.0000
-
-GO bn_negative_t.sub tvar sum
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sum] ! neg/pos t endpoints
- VARIABLE : T[GT=TAX]
- T : -5 to 5 (summed)
- 0.000000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sum] ! neg/neq t endpoints
- VARIABLE : T[GT=TAX]
- T : -8 to -5 (summed)
- -14.0000
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sum] ! neg/pos l endpoints
- VARIABLE : T[GT=TAX]
- T : -9 to 3 (summed)
- -18.0000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sum] ! neg/neg l endpoints
- VARIABLE : T[GT=TAX]
- T : -9 to -3 (summed)
- -18.0000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sum] ! unspecified limits (neg/pos)
- VARIABLE : T[GT=TAX]
- T : -11 to 11 (summed)
- 0.000000
-
-GO bn_negative_t.sub tvar rsu
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at rsu] ! neg/pos t endpoints
- VARIABLE : T[GT=TAX]
- running sum on T
- SUBSET : 5 points (T)
- -4 / 4: -4.00000
- -2 / 5: -6.00000
- 0 / 6: -6.00000
- 2 / 7: -4.00000
- 4 / 8: 0.00000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at rsu] ! neg/neq t endpoints
- VARIABLE : T[GT=TAX]
- running sum on T
- SUBSET : 2 points (T)
- -8 / 2: -8.0000
- -6 / 3: -14.0000
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at rsu] ! neg/pos l endpoints
- VARIABLE : T[GT=TAX]
- running sum on T
- SUBSET : 6 points (T)
- -8 / 2: -8.0000
- -6 / 3: -14.0000
- -4 / 4: -18.0000
- -2 / 5: -20.0000
- 0 / 6: -20.0000
- 2 / 7: -18.0000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at rsu] ! neg/neg l endpoints
- VARIABLE : T[GT=TAX]
- running sum on T
- SUBSET : 3 points (T)
- -8 / 2: -8.0000
- -6 / 3: -14.0000
- -4 / 4: -18.0000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@rsu] ! unspecified limits (neg/pos)
- VARIABLE : T[GT=TAX]
- running sum on T
- SUBSET : 11 points (T)
- -10 / 1: -10.0000
- -8 / 2: -18.0000
- -6 / 3: -24.0000
- -4 / 4: -28.0000
- -2 / 5: -30.0000
- 0 / 6: -30.0000
- 2 / 7: -28.0000
- 4 / 8: -24.0000
- 6 / 9: -18.0000
- 8 / 10: -10.0000
- 10 / 11: 0.0000
-
-GO bn_negative_t.sub tvar shf
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at shf] ! neg/pos t endpoints
- VARIABLE : T[GT=TAX]
- shifted by 1 pts on T
- SUBSET : 5 points (T)
- -4 / 4: -2.00000
- -2 / 5: 0.00000
- 0 / 6: 2.00000
- 2 / 7: 4.00000
- 4 / 8: 6.00000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at shf] ! neg/neq t endpoints
- VARIABLE : T[GT=TAX]
- shifted by 1 pts on T
- SUBSET : 2 points (T)
- -8 / 2: -6.00000
- -6 / 3: -4.00000
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at shf] ! neg/pos l endpoints
- VARIABLE : T[GT=TAX]
- shifted by 1 pts on T
- SUBSET : 6 points (T)
- -8 / 2: -6.00000
- -6 / 3: -4.00000
- -4 / 4: -2.00000
- -2 / 5: 0.00000
- 0 / 6: 2.00000
- 2 / 7: 4.00000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at shf] ! neg/neg l endpoints
- VARIABLE : T[GT=TAX]
- shifted by 1 pts on T
- SUBSET : 3 points (T)
- -8 / 2: -6.00000
- -6 / 3: -4.00000
- -4 / 4: -2.00000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@shf] ! unspecified limits (neg/pos)
- VARIABLE : T[GT=TAX]
- shifted by 1 pts on T
- SUBSET : 11 points (T)
- -10 / 1: -8.0000
- -8 / 2: -6.0000
- -6 / 3: -4.0000
- -4 / 4: -2.0000
- -2 / 5: 0.0000
- 0 / 6: 2.0000
- 2 / 7: 4.0000
- 4 / 8: 6.0000
- 6 / 9: 8.0000
- 8 / 10: 10.0000
- 10 / 11: ....
-
-GO bn_negative_t.sub tvar min ! like @max
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at min] ! neg/pos t endpoints
- VARIABLE : T[GT=TAX]
- T : -5 to 5 (minimum)
- -4.00000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at min] ! neg/neq t endpoints
- VARIABLE : T[GT=TAX]
- T : -8 to -5 (minimum)
- -8.00000
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at min] ! neg/pos l endpoints
- VARIABLE : T[GT=TAX]
- T : -9 to 3 (minimum)
- -8.00000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at min] ! neg/neg l endpoints
- VARIABLE : T[GT=TAX]
- T : -9 to -3 (minimum)
- -8.00000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@min] ! unspecified limits (neg/pos)
- VARIABLE : T[GT=TAX]
- T : -11 to 11 (minimum)
- -10.0000
-
-GO bn_negative_t.sub tvar ddf
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddf] ! neg/pos t endpoints
- VARIABLE : T[GT=TAX]
- forward derivative on T
- SUBSET : 5 points (T)
- -4 / 4: 1.00000
- -2 / 5: 1.00000
- 0 / 6: 1.00000
- 2 / 7: 1.00000
- 4 / 8: 1.00000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddf] ! neg/neq t endpoints
- VARIABLE : T[GT=TAX]
- forward derivative on T
- SUBSET : 2 points (T)
- -8 / 2: 1.00000
- -6 / 3: 1.00000
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddf] ! neg/pos l endpoints
- VARIABLE : T[GT=TAX]
- forward derivative on T
- SUBSET : 6 points (T)
- -8 / 2: 1.00000
- -6 / 3: 1.00000
- -4 / 4: 1.00000
- -2 / 5: 1.00000
- 0 / 6: 1.00000
- 2 / 7: 1.00000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddf] ! neg/neg l endpoints
- VARIABLE : T[GT=TAX]
- forward derivative on T
- SUBSET : 3 points (T)
- -8 / 2: 1.00000
- -6 / 3: 1.00000
- -4 / 4: 1.00000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddf] ! unspecified limits (neg/pos)
- VARIABLE : T[GT=TAX]
- forward derivative on T
- SUBSET : 11 points (T)
- -10 / 1: 1.00000
- -8 / 2: 1.00000
- -6 / 3: 1.00000
- -4 / 4: 1.00000
- -2 / 5: 1.00000
- 0 / 6: 1.00000
- 2 / 7: 1.00000
- 4 / 8: 1.00000
- 6 / 9: 1.00000
- 8 / 10: 1.00000
- 10 / 11: ....
-
-GO bn_negative_t.sub tvar ddb ! @ddc like ddf and ddb
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddb] ! neg/pos t endpoints
- VARIABLE : T[GT=TAX]
- backwards derivative on T
- SUBSET : 5 points (T)
- -4 / 4: 1.00000
- -2 / 5: 1.00000
- 0 / 6: 1.00000
- 2 / 7: 1.00000
- 4 / 8: 1.00000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddb] ! neg/neq t endpoints
- VARIABLE : T[GT=TAX]
- backwards derivative on T
- SUBSET : 2 points (T)
- -8 / 2: 1.00000
- -6 / 3: 1.00000
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddb] ! neg/pos l endpoints
- VARIABLE : T[GT=TAX]
- backwards derivative on T
- SUBSET : 6 points (T)
- -8 / 2: 1.00000
- -6 / 3: 1.00000
- -4 / 4: 1.00000
- -2 / 5: 1.00000
- 0 / 6: 1.00000
- 2 / 7: 1.00000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddb] ! neg/neg l endpoints
- VARIABLE : T[GT=TAX]
- backwards derivative on T
- SUBSET : 3 points (T)
- -8 / 2: 1.00000
- -6 / 3: 1.00000
- -4 / 4: 1.00000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddb] ! unspecified limits (neg/pos)
- VARIABLE : T[GT=TAX]
- backwards derivative on T
- SUBSET : 11 points (T)
- -10 / 1: ....
- -8 / 2: 1.00000
- -6 / 3: 1.00000
- -4 / 4: 1.00000
- -2 / 5: 1.00000
- 0 / 6: 1.00000
- 2 / 7: 1.00000
- 4 / 8: 1.00000
- 6 / 9: 1.00000
- 8 / 10: 1.00000
- 10 / 11: 1.00000
-
-GO bn_negative_t.sub tvar sbx ! like sbn, swl, shn, spz
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sbx] ! neg/pos t endpoints
- VARIABLE : T[GT=TAX]
- box smoothed by 3 pts on T
- SUBSET : 5 points (T)
- -4 / 4: -4.00000
- -2 / 5: -2.00000
- 0 / 6: 0.00000
- 2 / 7: 2.00000
- 4 / 8: 4.00000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sbx] ! neg/neq t endpoints
- VARIABLE : T[GT=TAX]
- box smoothed by 3 pts on T
- SUBSET : 2 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sbx] ! neg/pos l endpoints
- VARIABLE : T[GT=TAX]
- box smoothed by 3 pts on T
- SUBSET : 6 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
- -4 / 4: -4.00000
- -2 / 5: -2.00000
- 0 / 6: 0.00000
- 2 / 7: 2.00000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sbx] ! neg/neg l endpoints
- VARIABLE : T[GT=TAX]
- box smoothed by 3 pts on T
- SUBSET : 3 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
- -4 / 4: -4.00000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sbx] ! unspecified limits (neg/pos)
- VARIABLE : T[GT=TAX]
- box smoothed by 3 pts on T
- SUBSET : 11 points (T)
- -10 / 1: ....
- -8 / 2: -8.00000
- -6 / 3: -6.00000
- -4 / 4: -4.00000
- -2 / 5: -2.00000
- 0 / 6: 0.00000
- 2 / 7: 2.00000
- 4 / 8: 4.00000
- 6 / 9: 6.00000
- 8 / 10: 8.00000
- 10 / 11: ....
-
-GO bn_negative_t.sub tvar loc:-2.2
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at loc:-2.2] ! neg/pos t endpoints
- VARIABLE : T of -2.2 in T[GT=TAX]
- T : -5 to 5 (location of -2.2)
- -2.20000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at loc:-2.2] ! neg/neq t endpoints
- VARIABLE : T of -2.2 in T[GT=TAX]
- T : -8 to -5 (location of -2.2)
- ....
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at loc:-2.2] ! neg/pos l endpoints
- VARIABLE : T of -2.2 in T[GT=TAX]
- T : -9 to 3 (location of -2.2)
- -2.20000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at loc:-2.2] ! neg/neg l endpoints
- VARIABLE : T of -2.2 in T[GT=TAX]
- T : -9 to -3 (location of -2.2)
- ....
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@loc:-2.2] ! unspecified limits (neg/pos)
- VARIABLE : T of -2.2 in T[GT=TAX]
- T : -11 to 11 (location of -2.2)
- -2.20000
-
-GO bn_negative_t.sub tvar weq:-2.2
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at weq:-2.2] ! neg/pos t endpoints
- VARIABLE : T[GT=TAX]
- weighted equal of -2.2 on T
- SUBSET : 5 points (T)
- -4 / 4: 0.100000
- -2 / 5: 0.900000
- 0 / 6: ....
- 2 / 7: ....
- 4 / 8: ....
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at weq:-2.2] ! neg/neq t endpoints
- VARIABLE : T[GT=TAX]
- weighted equal of -2.2 on T
- SUBSET : 2 points (T)
- -8 / 2:....
- -6 / 3:....
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at weq:-2.2] ! neg/pos l endpoints
- VARIABLE : T[GT=TAX]
- weighted equal of -2.2 on T
- SUBSET : 6 points (T)
- -8 / 2: ....
- -6 / 3: ....
- -4 / 4: 0.100000
- -2 / 5: 0.900000
- 0 / 6: ....
- 2 / 7: ....
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at weq:-2.2] ! neg/neg l endpoints
- VARIABLE : T[GT=TAX]
- weighted equal of -2.2 on T
- SUBSET : 3 points (T)
- -8 / 2:....
- -6 / 3:....
- -4 / 4:....
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@weq:-2.2] ! unspecified limits (neg/pos)
- VARIABLE : T[GT=TAX]
- weighted equal of -2.2 on T
- SUBSET : 11 points (T)
- -10 / 1: ....
- -8 / 2: ....
- -6 / 3: ....
- -4 / 4: 0.100000
- -2 / 5: 0.900000
- 0 / 6: ....
- 2 / 7: ....
- 4 / 8: ....
- 6 / 9: ....
- 8 / 10: ....
- 10 / 11: ....
-
-
-! transformations requiring gappy data to test
-LIST tgap
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
- SUBSET : 11 points (T)
- -10 / 1: ....
- -8 / 2: -8.00000
- -6 / 3: ....
- -4 / 4: -4.00000
- -2 / 5: ....
- 0 / 6: 0.00000
- 2 / 7: ....
- 4 / 8: 4.00000
- 6 / 9: ....
- 8 / 10: 8.00000
- 10 / 11: ....
-GO bn_negative_t.sub tgap ngd ! like @nbd
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at ngd] ! neg/pos t endpoints
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
- T : -5 to 5 (number of valid)
- 3.00000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at ngd] ! neg/neq t endpoints
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
- T : -8 to -5 (number of valid)
- 1.00000
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at ngd] ! neg/pos l endpoints
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
- T : -9 to 3 (number of valid)
- 3.00000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at ngd] ! neg/neg l endpoints
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
- T : -9 to -3 (number of valid)
- 2.00000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tgap[l=@ngd] ! unspecified limits (neg/pos)
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
- T : -11 to 11 (number of valid)
- 5.00000
-
-GO bn_negative_t.sub tgap fav ! like fln (fnr not implemented)
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at fav] ! neg/pos t endpoints
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
- ave-filled by 3 pts on T
- SUBSET : 5 points (T)
- -4 / 4: -4.00000
- -2 / 5: -2.00000
- 0 / 6: 0.00000
- 2 / 7: 2.00000
- 4 / 8: 4.00000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at fav] ! neg/neq t endpoints
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
- ave-filled by 3 pts on T
- SUBSET : 2 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at fav] ! neg/pos l endpoints
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
- ave-filled by 3 pts on T
- SUBSET : 6 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
- -4 / 4: -4.00000
- -2 / 5: -2.00000
- 0 / 6: 0.00000
- 2 / 7: 2.00000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at fav] ! neg/neg l endpoints
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
- ave-filled by 3 pts on T
- SUBSET : 3 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
- -4 / 4: -4.00000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tgap[l=@fav] ! unspecified limits (neg/pos)
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
- ave-filled by 3 pts on T
- SUBSET : 11 points (T)
- -10 / 1: -8.00000
- -8 / 2: -8.00000
- -6 / 3: -6.00000
- -4 / 4: -4.00000
- -2 / 5: -2.00000
- 0 / 6: 0.00000
- 2 / 7: 2.00000
- 4 / 8: 4.00000
- 6 / 9: 6.00000
- 8 / 10: 8.00000
- 10 / 11: 8.00000
-
-
-LIST tvar[t=-2.2 at itp] ! test "@itp"
- VARIABLE : T[GT=TAX]
- T : -2.2 (interpolated)
- -2.20000
-
-
-! ****** test regridding ********
-
-! source axis
-DEFINE AXIS/t=-9:9:1 tsrc
-LET a = t[gt=tsrc]
-
-! destination axis
-DEFINE AXIS/t=-10:10:2 tdst
-
-! regrid by various means
-LET blin = a[gt=tdst at lin]
-LET bave = a[gt=tdst at ave]
-LET basn = a[gt=tdst at asn]
-
-! test each of these over various ranges
-GO bn_negative_t.sub blin nul
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST blin[t=-5:5 at nul] ! neg/pos t endpoints
- VARIABLE : A[GT=TDST at LIN]
- SUBSET : 5 points (T)
- -4 / 4: -4.00000
- -2 / 5: -2.00000
- 0 / 6: 0.00000
- 2 / 7: 2.00000
- 4 / 8: 4.00000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST blin[t=-5:-8 at nul] ! neg/neq t endpoints
- VARIABLE : A[GT=TDST at LIN]
- SUBSET : 2 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST blin[l=2:7 at nul] ! neg/pos l endpoints
- VARIABLE : A[GT=TDST at LIN]
- SUBSET : 6 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
- -4 / 4: -4.00000
- -2 / 5: -2.00000
- 0 / 6: 0.00000
- 2 / 7: 2.00000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST blin[l=2:4 at nul] ! neg/neg l endpoints
- VARIABLE : A[GT=TDST at LIN]
- SUBSET : 3 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
- -4 / 4: -4.00000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST blin[l=@nul] ! unspecified limits (neg/pos)
- VARIABLE : A[GT=TDST at LIN]
- SUBSET : 11 points (T)
- -10 / 1: ....
- -8 / 2: -8.00000
- -6 / 3: -6.00000
- -4 / 4: -4.00000
- -2 / 5: -2.00000
- 0 / 6: 0.00000
- 2 / 7: 2.00000
- 4 / 8: 4.00000
- 6 / 9: 6.00000
- 8 / 10: 8.00000
- 10 / 11: ....
-
-GO bn_negative_t.sub bave nul
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST bave[t=-5:5 at nul] ! neg/pos t endpoints
- VARIABLE : A[GT=TDST at AVE]
- SUBSET : 5 points (T)
- -4 / 4: -4.00000
- -2 / 5: -2.00000
- 0 / 6: 0.00000
- 2 / 7: 2.00000
- 4 / 8: 4.00000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST bave[t=-5:-8 at nul] ! neg/neq t endpoints
- VARIABLE : A[GT=TDST at AVE]
- SUBSET : 2 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST bave[l=2:7 at nul] ! neg/pos l endpoints
- VARIABLE : A[GT=TDST at AVE]
- SUBSET : 6 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
- -4 / 4: -4.00000
- -2 / 5: -2.00000
- 0 / 6: 0.00000
- 2 / 7: 2.00000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST bave[l=2:4 at nul] ! neg/neg l endpoints
- VARIABLE : A[GT=TDST at AVE]
- SUBSET : 3 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
- -4 / 4: -4.00000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST bave[l=@nul] ! unspecified limits (neg/pos)
- VARIABLE : A[GT=TDST at AVE]
- SUBSET : 11 points (T)
- -10 / 1: -9.00000
- -8 / 2: -8.00000
- -6 / 3: -6.00000
- -4 / 4: -4.00000
- -2 / 5: -2.00000
- 0 / 6: 0.00000
- 2 / 7: 2.00000
- 4 / 8: 4.00000
- 6 / 9: 6.00000
- 8 / 10: 8.00000
- 10 / 11: 9.00000
-
-GO bn_negative_t.sub basn nul
-! bn450_neg_t_trans.sub
-
-! support routine for bn450_negative_t.jnl
-
-! call as
-! GO bn450_neg_t_sub varname transform
-
-! tvar axis runs from -10 to 10 by 1's
-
-LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST basn[t=-5:5 at nul] ! neg/pos t endpoints
- VARIABLE : A[GT=TDST at ASN]
- SUBSET : 5 points (T)
- -4 / 4: -6.00000
- -2 / 5: -5.00000
- 0 / 6: -4.00000
- 2 / 7: -3.00000
- 4 / 8: -2.00000
-LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST basn[t=-5:-8 at nul] ! neg/neq t endpoints
- VARIABLE : A[GT=TDST at ASN]
- SUBSET : 2 points (T)
- -8 / 2: -8.00000
- -6 / 3: -7.00000
-LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST basn[l=2:7 at nul] ! neg/pos l endpoints
- VARIABLE : A[GT=TDST at ASN]
- SUBSET : 6 points (T)
- -8 / 2: -8.00000
- -6 / 3: -7.00000
- -4 / 4: -6.00000
- -2 / 5: -5.00000
- 0 / 6: -4.00000
- 2 / 7: -3.00000
-LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST basn[l=2:4 at nul] ! neg/neg l endpoints
- VARIABLE : A[GT=TDST at ASN]
- SUBSET : 3 points (T)
- -8 / 2: -8.00000
- -6 / 3: -7.00000
- -4 / 4: -6.00000
-LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST basn[l=@nul] ! unspecified limits (neg/pos)
- VARIABLE : A[GT=TDST at ASN]
- SUBSET : 11 points (T)
- -10 / 1: -9.00000
- -8 / 2: -8.00000
- -6 / 3: -7.00000
- -4 / 4: -6.00000
- -2 / 5: -5.00000
- 0 / 6: -4.00000
- 2 / 7: -3.00000
- 4 / 8: -2.00000
- 6 / 9: -1.00000
- 8 / 10: 0.00000
- 10 / 11: 1.00000
-
-
-! true calendar axis
-DEFINE AXIS/t=1-jan-1980:30-jan-1980:24/UNITS=hours tcal
-! we can regrid by association
-LIST a[gt=tcal at asn]
- VARIABLE : T[GT=TSRC]
- regrid: 24 hour on T at ASN
- SUBSET : 30 points (T (HOURS))
- 692160 / 1: -9.00000
- 692184 / 2: -8.00000
- 692208 / 3: -7.00000
- 692232 / 4: -6.00000
- 692256 / 5: -5.00000
- 692280 / 6: -4.00000
- 692304 / 7: -3.00000
- 692328 / 8: -2.00000
- 692352 / 9: -1.00000
- 692376 / 10: 0.00000
- 692400 / 11: 1.00000
- 692424 / 12: 2.00000
- 692448 / 13: 3.00000
- 692472 / 14: 4.00000
- 692496 / 15: 5.00000
- 692520 / 16: 6.00000
- 692544 / 17: 7.00000
- 692568 / 18: 8.00000
- 692592 / 19: 9.00000
- 692616 / 20: ....
- 692640 / 21: ....
- 692664 / 22: ....
- 692688 / 23: ....
- 692712 / 24: ....
- 692736 / 25: ....
- 692760 / 26: ....
- 692784 / 27: ....
- 692808 / 28: ....
- 692832 / 29: ....
- 692856 / 30: ....
-LIST/t=1-jan-1980:30-jan-1980 a[gt=tcal at asn]
- VARIABLE : T[GT=TSRC]
- regrid: 24 hour on T at ASN
- SUBSET : 30 points (T (HOURS))
- 692160 / 1: -9.00000
- 692184 / 2: -8.00000
- 692208 / 3: -7.00000
- 692232 / 4: -6.00000
- 692256 / 5: -5.00000
- 692280 / 6: -4.00000
- 692304 / 7: -3.00000
- 692328 / 8: -2.00000
- 692352 / 9: -1.00000
- 692376 / 10: 0.00000
- 692400 / 11: 1.00000
- 692424 / 12: 2.00000
- 692448 / 13: 3.00000
- 692472 / 14: 4.00000
- 692496 / 15: 5.00000
- 692520 / 16: 6.00000
- 692544 / 17: 7.00000
- 692568 / 18: 8.00000
- 692592 / 19: 9.00000
- 692616 / 20: ....
- 692640 / 21: ....
- 692664 / 22: ....
- 692688 / 23: ....
- 692712 / 24: ....
- 692736 / 25: ....
- 692760 / 26: ....
- 692784 / 27: ....
- 692808 / 28: ....
- 692832 / 29: ....
- 692856 / 30: ....
-! but any other regridding operation is nonsense
-SET MODE ignore_error
-LIST a[gt=tcal] ! deliberate error
- VARIABLE : T[GT=TSRC]
- regrid: 24 hour on T
- SUBSET : 30 points (T (HOURS))
- 692160 / 1:....
- 692184 / 2:....
- 692208 / 3:....
- 692232 / 4:....
- 692256 / 5:....
- 692280 / 6:....
- 692304 / 7:....
- 692328 / 8:....
- 692352 / 9:....
- 692376 / 10:....
- 692400 / 11:....
- 692424 / 12:....
- 692448 / 13:....
- 692472 / 14:....
- 692496 / 15:....
- 692520 / 16:....
- 692544 / 17:....
- 692568 / 18:....
- 692592 / 19:....
- 692616 / 20:....
- 692640 / 21:....
- 692664 / 22:....
- 692688 / 23:....
- 692712 / 24:....
- 692736 / 25:....
- 692760 / 26:....
- 692784 / 27:....
- 692808 / 28:....
- 692832 / 29:....
- 692856 / 30:....
-CANCEL MODE ignore_error
-
-
-!added in bn450 10/97 *kob*
-GO bn_reset
-cancel mode verify
-GO bn_xact_regrid
-! BN450_xact_regrid.jnl
-
-! 10/97 - test "exact match" regridding
-! wherein destination points are filled only if they exactly match
-! the coordinate of the cooesponding point on the source grid
-
-! X axis tests
-CANCEL REGION
-GO bn_xact_regrid.sub X
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
- VARIABLE : X[GX=XSCOARSE]
- regrid: 1 delta on X at XACT
- SUBSET : 5 points (X)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
- VARIABLE : X[GX=XSCOARSE]
- regrid: 0.5 delta on X at XACT
- SUBSET : 9 points (X)
- 1 / 1: 1.00000
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
- 5 / 9: 5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : X[GX=XSFINE]
- regrid: 1 delta on X at XACT
- SUBSET : 5 points (X)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : X[GX=XSOFFSETBIG]
- regrid: 0.5 delta on X at XACT
- SUBSET : 9 points (X)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : X[GX=XSOFFSETSMALL]
- regrid: 0.5 delta on X at XACT
- SUBSET : 9 points (X)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : X[GX=XSFINEOFFSET]
- regrid: 1 delta on X at XACT
- SUBSET : 5 points (X)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
-SET REGION/X=2:4
-GO bn_xact_regrid.sub X
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
- VARIABLE : X[GX=XSCOARSE]
- regrid: 1 delta on X at XACT
- SUBSET : 3 points (X)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
- VARIABLE : X[GX=XSCOARSE]
- regrid: 0.5 delta on X at XACT
- SUBSET : 5 points (X)
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : X[GX=XSFINE]
- regrid: 1 delta on X at XACT
- SUBSET : 3 points (X)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : X[GX=XSOFFSETBIG]
- regrid: 0.5 delta on X at XACT
- SUBSET : 5 points (X)
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : X[GX=XSOFFSETSMALL]
- regrid: 0.5 delta on X at XACT
- SUBSET : 5 points (X)
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : X[GX=XSFINEOFFSET]
- regrid: 1 delta on X at XACT
- SUBSET : 3 points (X)
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
-SET REGION/X=1:5
-GO bn_xact_regrid.sub X
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
- VARIABLE : X[GX=XSCOARSE]
- regrid: 1 delta on X at XACT
- SUBSET : 5 points (X)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
- VARIABLE : X[GX=XSCOARSE]
- regrid: 0.5 delta on X at XACT
- SUBSET : 9 points (X)
- 1 / 1: 1.00000
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
- 5 / 9: 5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : X[GX=XSFINE]
- regrid: 1 delta on X at XACT
- SUBSET : 5 points (X)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : X[GX=XSOFFSETBIG]
- regrid: 0.5 delta on X at XACT
- SUBSET : 9 points (X)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : X[GX=XSOFFSETSMALL]
- regrid: 0.5 delta on X at XACT
- SUBSET : 9 points (X)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : X[GX=XSFINEOFFSET]
- regrid: 1 delta on X at XACT
- SUBSET : 5 points (X)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
-SET REGION/X=1.5:4.5
-GO bn_xact_regrid.sub X
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
- VARIABLE : X[GX=XSCOARSE]
- regrid: 1 delta on X at XACT
- SUBSET : 3 points (X)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
- VARIABLE : X[GX=XSCOARSE]
- regrid: 0.5 delta on X at XACT
- SUBSET : 7 points (X)
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : X[GX=XSFINE]
- regrid: 1 delta on X at XACT
- SUBSET : 3 points (X)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : X[GX=XSOFFSETBIG]
- regrid: 0.5 delta on X at XACT
- SUBSET : 7 points (X)
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : X[GX=XSOFFSETSMALL]
- regrid: 0.5 delta on X at XACT
- SUBSET : 7 points (X)
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : X[GX=XSFINEOFFSET]
- regrid: 1 delta on X at XACT
- SUBSET : 3 points (X)
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
-SET REGION/X=0:6
-GO bn_xact_regrid.sub X
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
- VARIABLE : X[GX=XSCOARSE]
- regrid: 1 delta on X at XACT
- SUBSET : 5 points (X)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
- VARIABLE : X[GX=XSCOARSE]
- regrid: 0.5 delta on X at XACT
- SUBSET : 9 points (X)
- 1 / 1: 1.00000
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
- 5 / 9: 5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : X[GX=XSFINE]
- regrid: 1 delta on X at XACT
- SUBSET : 5 points (X)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : X[GX=XSOFFSETBIG]
- regrid: 0.5 delta on X at XACT
- SUBSET : 9 points (X)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : X[GX=XSOFFSETSMALL]
- regrid: 0.5 delta on X at XACT
- SUBSET : 9 points (X)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : X[GX=XSFINEOFFSET]
- regrid: 1 delta on X at XACT
- SUBSET : 5 points (X)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
-
-! Y axis tests
-CANCEL REGION
-GO bn_xact_regrid.sub Y
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
- VARIABLE : Y[GY=YSCOARSE]
- regrid: 1 delta on Y at XACT
- SUBSET : 5 points (Y)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
- VARIABLE : Y[GY=YSCOARSE]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 9 points (Y)
- 1 / 1: 1.00000
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
- 5 / 9: 5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : Y[GY=YSFINE]
- regrid: 1 delta on Y at XACT
- SUBSET : 5 points (Y)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Y[GY=YSOFFSETBIG]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 9 points (Y)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Y[GY=YSOFFSETSMALL]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 9 points (Y)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : Y[GY=YSFINEOFFSET]
- regrid: 1 delta on Y at XACT
- SUBSET : 5 points (Y)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
-SET REGION/Y=2:4
-GO bn_xact_regrid.sub Y
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
- VARIABLE : Y[GY=YSCOARSE]
- regrid: 1 delta on Y at XACT
- SUBSET : 3 points (Y)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
- VARIABLE : Y[GY=YSCOARSE]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 5 points (Y)
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : Y[GY=YSFINE]
- regrid: 1 delta on Y at XACT
- SUBSET : 3 points (Y)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Y[GY=YSOFFSETBIG]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 5 points (Y)
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Y[GY=YSOFFSETSMALL]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 5 points (Y)
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : Y[GY=YSFINEOFFSET]
- regrid: 1 delta on Y at XACT
- SUBSET : 3 points (Y)
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
-SET REGION/Y=1:5
-GO bn_xact_regrid.sub Y
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
- VARIABLE : Y[GY=YSCOARSE]
- regrid: 1 delta on Y at XACT
- SUBSET : 5 points (Y)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
- VARIABLE : Y[GY=YSCOARSE]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 9 points (Y)
- 1 / 1: 1.00000
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
- 5 / 9: 5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : Y[GY=YSFINE]
- regrid: 1 delta on Y at XACT
- SUBSET : 5 points (Y)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Y[GY=YSOFFSETBIG]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 9 points (Y)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Y[GY=YSOFFSETSMALL]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 9 points (Y)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : Y[GY=YSFINEOFFSET]
- regrid: 1 delta on Y at XACT
- SUBSET : 5 points (Y)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
-SET REGION/Y=1.5:4.5
-GO bn_xact_regrid.sub Y
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
- VARIABLE : Y[GY=YSCOARSE]
- regrid: 1 delta on Y at XACT
- SUBSET : 3 points (Y)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
- VARIABLE : Y[GY=YSCOARSE]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 7 points (Y)
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : Y[GY=YSFINE]
- regrid: 1 delta on Y at XACT
- SUBSET : 3 points (Y)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Y[GY=YSOFFSETBIG]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 7 points (Y)
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Y[GY=YSOFFSETSMALL]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 7 points (Y)
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : Y[GY=YSFINEOFFSET]
- regrid: 1 delta on Y at XACT
- SUBSET : 3 points (Y)
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
-SET REGION/Y=0:6
-GO bn_xact_regrid.sub Y
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
- VARIABLE : Y[GY=YSCOARSE]
- regrid: 1 delta on Y at XACT
- SUBSET : 5 points (Y)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
- VARIABLE : Y[GY=YSCOARSE]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 9 points (Y)
- 1 / 1: 1.00000
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
- 5 / 9: 5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : Y[GY=YSFINE]
- regrid: 1 delta on Y at XACT
- SUBSET : 5 points (Y)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Y[GY=YSOFFSETBIG]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 9 points (Y)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Y[GY=YSOFFSETSMALL]
- regrid: 0.5 delta on Y at XACT
- SUBSET : 9 points (Y)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : Y[GY=YSFINEOFFSET]
- regrid: 1 delta on Y at XACT
- SUBSET : 5 points (Y)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
-
-! Z axis tests
-CANCEL REGION
-GO bn_xact_regrid.sub Z
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
- VARIABLE : Z[GZ=ZSCOARSE]
- regrid: 1 delta on Z at XACT
- SUBSET : 5 points (Z)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
- VARIABLE : Z[GZ=ZSCOARSE]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 9 points (Z)
- 1 / 1: 1.00000
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
- 5 / 9: 5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : Z[GZ=ZSFINE]
- regrid: 1 delta on Z at XACT
- SUBSET : 5 points (Z)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Z[GZ=ZSOFFSETBIG]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 9 points (Z)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Z[GZ=ZSOFFSETSMALL]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 9 points (Z)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : Z[GZ=ZSFINEOFFSET]
- regrid: 1 delta on Z at XACT
- SUBSET : 5 points (Z)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
-SET REGION/Z=2:4
-GO bn_xact_regrid.sub Z
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
- VARIABLE : Z[GZ=ZSCOARSE]
- regrid: 1 delta on Z at XACT
- SUBSET : 3 points (Z)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
- VARIABLE : Z[GZ=ZSCOARSE]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 5 points (Z)
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : Z[GZ=ZSFINE]
- regrid: 1 delta on Z at XACT
- SUBSET : 3 points (Z)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Z[GZ=ZSOFFSETBIG]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 5 points (Z)
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Z[GZ=ZSOFFSETSMALL]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 5 points (Z)
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : Z[GZ=ZSFINEOFFSET]
- regrid: 1 delta on Z at XACT
- SUBSET : 3 points (Z)
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
-SET REGION/Z=1:5
-GO bn_xact_regrid.sub Z
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
- VARIABLE : Z[GZ=ZSCOARSE]
- regrid: 1 delta on Z at XACT
- SUBSET : 5 points (Z)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
- VARIABLE : Z[GZ=ZSCOARSE]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 9 points (Z)
- 1 / 1: 1.00000
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
- 5 / 9: 5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : Z[GZ=ZSFINE]
- regrid: 1 delta on Z at XACT
- SUBSET : 5 points (Z)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Z[GZ=ZSOFFSETBIG]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 9 points (Z)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Z[GZ=ZSOFFSETSMALL]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 9 points (Z)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : Z[GZ=ZSFINEOFFSET]
- regrid: 1 delta on Z at XACT
- SUBSET : 5 points (Z)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
-SET REGION/Z=1.5:4.5
-GO bn_xact_regrid.sub Z
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
- VARIABLE : Z[GZ=ZSCOARSE]
- regrid: 1 delta on Z at XACT
- SUBSET : 3 points (Z)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
- VARIABLE : Z[GZ=ZSCOARSE]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 7 points (Z)
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : Z[GZ=ZSFINE]
- regrid: 1 delta on Z at XACT
- SUBSET : 3 points (Z)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Z[GZ=ZSOFFSETBIG]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 7 points (Z)
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Z[GZ=ZSOFFSETSMALL]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 7 points (Z)
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : Z[GZ=ZSFINEOFFSET]
- regrid: 1 delta on Z at XACT
- SUBSET : 3 points (Z)
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
-SET REGION/Z=0:6
-GO bn_xact_regrid.sub Z
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
- VARIABLE : Z[GZ=ZSCOARSE]
- regrid: 1 delta on Z at XACT
- SUBSET : 5 points (Z)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
- VARIABLE : Z[GZ=ZSCOARSE]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 9 points (Z)
- 1 / 1: 1.00000
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
- 5 / 9: 5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : Z[GZ=ZSFINE]
- regrid: 1 delta on Z at XACT
- SUBSET : 5 points (Z)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Z[GZ=ZSOFFSETBIG]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 9 points (Z)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : Z[GZ=ZSOFFSETSMALL]
- regrid: 0.5 delta on Z at XACT
- SUBSET : 9 points (Z)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : Z[GZ=ZSFINEOFFSET]
- regrid: 1 delta on Z at XACT
- SUBSET : 5 points (Z)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
-
-! T axis tests
-CANCEL REGION
-GO bn_xact_regrid.sub T
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
- VARIABLE : T[GT=TSCOARSE]
- regrid: 1 delta on T at XACT
- SUBSET : 5 points (T)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
- VARIABLE : T[GT=TSCOARSE]
- regrid: 0.5 delta on T at XACT
- SUBSET : 9 points (T)
- 1 / 1: 1.00000
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
- 5 / 9: 5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : T[GT=TSFINE]
- regrid: 1 delta on T at XACT
- SUBSET : 5 points (T)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : T[GT=TSOFFSETBIG]
- regrid: 0.5 delta on T at XACT
- SUBSET : 9 points (T)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : T[GT=TSOFFSETSMALL]
- regrid: 0.5 delta on T at XACT
- SUBSET : 9 points (T)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : T[GT=TSFINEOFFSET]
- regrid: 1 delta on T at XACT
- SUBSET : 5 points (T)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
-SET REGION/T=2:4
-GO bn_xact_regrid.sub T
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
- VARIABLE : T[GT=TSCOARSE]
- regrid: 1 delta on T at XACT
- SUBSET : 3 points (T)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
- VARIABLE : T[GT=TSCOARSE]
- regrid: 0.5 delta on T at XACT
- SUBSET : 5 points (T)
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : T[GT=TSFINE]
- regrid: 1 delta on T at XACT
- SUBSET : 3 points (T)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : T[GT=TSOFFSETBIG]
- regrid: 0.5 delta on T at XACT
- SUBSET : 5 points (T)
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : T[GT=TSOFFSETSMALL]
- regrid: 0.5 delta on T at XACT
- SUBSET : 5 points (T)
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : T[GT=TSFINEOFFSET]
- regrid: 1 delta on T at XACT
- SUBSET : 3 points (T)
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
-SET REGION/T=1:5
-GO bn_xact_regrid.sub T
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
- VARIABLE : T[GT=TSCOARSE]
- regrid: 1 delta on T at XACT
- SUBSET : 5 points (T)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
- VARIABLE : T[GT=TSCOARSE]
- regrid: 0.5 delta on T at XACT
- SUBSET : 9 points (T)
- 1 / 1: 1.00000
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
- 5 / 9: 5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : T[GT=TSFINE]
- regrid: 1 delta on T at XACT
- SUBSET : 5 points (T)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : T[GT=TSOFFSETBIG]
- regrid: 0.5 delta on T at XACT
- SUBSET : 9 points (T)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : T[GT=TSOFFSETSMALL]
- regrid: 0.5 delta on T at XACT
- SUBSET : 9 points (T)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : T[GT=TSFINEOFFSET]
- regrid: 1 delta on T at XACT
- SUBSET : 5 points (T)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
-SET REGION/T=1.5:4.5
-GO bn_xact_regrid.sub T
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
- VARIABLE : T[GT=TSCOARSE]
- regrid: 1 delta on T at XACT
- SUBSET : 3 points (T)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
- VARIABLE : T[GT=TSCOARSE]
- regrid: 0.5 delta on T at XACT
- SUBSET : 7 points (T)
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : T[GT=TSFINE]
- regrid: 1 delta on T at XACT
- SUBSET : 3 points (T)
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : T[GT=TSOFFSETBIG]
- regrid: 0.5 delta on T at XACT
- SUBSET : 7 points (T)
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : T[GT=TSOFFSETSMALL]
- regrid: 0.5 delta on T at XACT
- SUBSET : 7 points (T)
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : T[GT=TSFINEOFFSET]
- regrid: 1 delta on T at XACT
- SUBSET : 3 points (T)
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
-SET REGION/T=0:6
-GO bn_xact_regrid.sub T
-! PERFORM REGRIDDINGS
-LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
- VARIABLE : T[GT=TSCOARSE]
- regrid: 1 delta on T at XACT
- SUBSET : 5 points (T)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
- VARIABLE : T[GT=TSCOARSE]
- regrid: 0.5 delta on T at XACT
- SUBSET : 9 points (T)
- 1 / 1: 1.00000
- 1.5 / 2: ....
- 2 / 3: 2.00000
- 2.5 / 4: ....
- 3 / 5: 3.00000
- 3.5 / 6: ....
- 4 / 7: 4.00000
- 4.5 / 8: ....
- 5 / 9: 5.00000
-LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
- VARIABLE : T[GT=TSFINE]
- regrid: 1 delta on T at XACT
- SUBSET : 5 points (T)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : T[GT=TSOFFSETBIG]
- regrid: 0.5 delta on T at XACT
- SUBSET : 9 points (T)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
- VARIABLE : T[GT=TSOFFSETSMALL]
- regrid: 0.5 delta on T at XACT
- SUBSET : 9 points (T)
- 1 / 1: ....
- 1.5 / 2: 1.50000
- 2 / 3: ....
- 2.5 / 4: 2.50000
- 3 / 5: ....
- 3.5 / 6: 3.50000
- 4 / 7: ....
- 4.5 / 8: 4.50000
- 5 / 9: ....
-LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
- VARIABLE : T[GT=TSFINEOFFSET]
- regrid: 1 delta on T at XACT
- SUBSET : 5 points (T)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
-
-
-
-!added in bn450 11/97 *kob*
-! replace w/ bn500 *kob* 5/99
-GO bn_reset
-cancel mode verify
-GO bn_gc_functions
-! bn500_gc_functions.jnl
-
-! 10/97 - first version - test GC functions released in V4.9
-! 3/98 - added single test of a dynamic axis passed to GC fcn
-! Note: OFFSET VALUES NOT YET TESTED
-
-! 2/99 "UNRAVEL" renamed to XSEQUENCE
-! 1/00 changes to RESHAPE tests ==> "K=1" removed
-
-CANCEL REGION
-CANCEL VIEWPORTS
-
-! XSEQUENCE function
-LET v = X[x=1:4:1] + Y[Y=.1:.4:.1]
-LIST v
- VARIABLE : X[X=1:4:1] + Y[Y=.1:.4:.1]
- SUBSET : 4 by 4 points (X-Y)
- 1 2 3 4
- 1 2 3 4
- 0.1 / 1: 1.10000 2.10000 3.10000 4.10000
- 0.2 / 2: 1.20000 2.20000 3.20000 4.20000
- 0.3 / 3: 1.30000 2.30000 3.30000 4.30000
- 0.4 / 4: 1.40000 2.40000 3.40000 4.40000
-LIST SIN(v) ! preserves source grid
- VARIABLE : SIN(V)
- SUBSET : 4 by 4 points (X-Y)
- 1 2 3 4
- 1 2 3 4
- 0.1 / 1: 0.891207 0.863209 0.041581 -0.818277
- 0.2 / 2: 0.932039 0.808496 -0.058374 -0.871576
- 0.3 / 3: 0.963558 0.745705 -0.157746 -0.916166
- 0.4 / 4: 0.985450 0.675463 -0.255541 -0.951602
-LIST XSEQUENCE(v) ! replaces source grid
- VARIABLE : XSEQUENCE(V)
- SUBSET : 16 points (X)
- 1 / 1: 1.10000
- 2 / 2: 2.10000
- 3 / 3: 3.10000
- 4 / 4: 4.10000
- 5 / 5: 1.20000
- 6 / 6: 2.20000
- 7 / 7: 3.20000
- 8 / 8: 4.20000
- 9 / 9: 1.30000
- 10 / 10: 2.30000
- 11 / 11: 3.30000
- 12 / 12: 4.30000
- 13 / 13: 1.40000
- 14 / 14: 2.40000
- 15 / 15: 3.40000
- 16 / 16: 4.40000
-STAT v, XSEQUENCE(v)
-
- X[X=1:4:1] + Y[Y=.1:.4:.1]
- X: 0.5 to 4.5
- Y: 0.05 to 0.45
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 16 (4*4*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 1.1
- Maximum value: 4.4
- Mean value: 2.75 (unweighted average)
- Standard deviation: 1.1605
-
- XSEQUENCE(V)
- X: 0.5 to 16.5
- Y: N/A
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 16 (16*1*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 1.1
- Maximum value: 4.4
- Mean value: 2.75 (unweighted average)
- Standard deviation: 1.1605
-
-! check regions specified on source and on destination
-LIST/I=3:5 XSEQUENCE(v) ! destination region
- VARIABLE : XSEQUENCE(V)
- SUBSET : 3 points (X)
- 3 / 3: 3.10000
- 4 / 4: 4.10000
- 5 / 5: 1.20000
-
-LIST v[I=2:3,J=2:3]
- VARIABLE : X[X=1:4:1] + Y[Y=.1:.4:.1]
- SUBSET : 2 by 2 points (X-Y)
- 2 3
- 2 3
- 0.2 / 2: 2.20000 3.20000
- 0.3 / 3: 2.30000 3.30000
-LIST XSEQUENCE( v[I=2:3,J=2:3] )
- VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] )
- SUBSET : 4 points (X)
- 1 / 1: 2.20000
- 2 / 2: 3.20000
- 3 / 3: 2.30000
- 4 / 4: 3.30000
-LIST/I=2:3 XSEQUENCE( v[I=2:3,J=2:3] )
- VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] )
- SUBSET : 2 points (X)
- 2 / 2: 3.20000
- 3 / 3: 2.30000
-
-! check grid interactions where XSEQUENCE is inside of expression
-LET a = XSEQUENCE( v[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
-LIST a
- VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
- SUBSET : 4 by 2 points (X-Z)
- 1 2 3 4
- 1 2 3 4
- 0.01 / 1: 2.21000 3.21000 2.31000 3.31000
- 0.02 / 2: 2.22000 3.22000 2.32000 3.32000
-
-! RESHAPE function
-DEFINE AXIS/X=1:4:1 x4
-DEFINE AXIS/Y=.1:.4:.1 y4
-DEFINE AXIS/Z=.01:.04:.01 z4
-DEFINE AXIS/T=.001:.004:.001 T4
-DEFINE GRID/X=x4/Y=y4/Z=z4/T=t4 g4d
-LET v4d = X[x=1:3:1] + Y[Y=.1:.3:.1] + Z[Z=.01:.03:.01] + T[T=.001:.003:.001]
-LIST v4d
- VARIABLE : X[X=1:3:1] + Y[Y=.1:.3:.1] + Z[Z=.01:.03:.01] + T[T=.001:.003:.001]
- SUBSET : 3 by 3 by 3 by 3 points (X-Y-Z-T)
- 1 2 3
- 1 2 3
- ---- L:1 T: 0.001
- ---- K:1 Z: 0.01
- 0.1 / 1: 1.11100 2.11100 3.11100
- 0.2 / 2: 1.21100 2.21100 3.21100
- 0.3 / 3: 1.31100 2.31100 3.31100
- ---- K:2 Z: 0.02
- 0.1 / 1: 1.12100 2.12100 3.12100
- 0.2 / 2: 1.22100 2.22100 3.22100
- 0.3 / 3: 1.32100 2.32100 3.32100
- ---- K:3 Z: 0.03
- 0.1 / 1: 1.13100 2.13100 3.13100
- 0.2 / 2: 1.23100 2.23100 3.23100
- 0.3 / 3: 1.33100 2.33100 3.33100
- ---- L:2 T: 0.002
- ---- K:1 Z: 0.01
- 0.1 / 1: 1.11200 2.11200 3.11200
- 0.2 / 2: 1.21200 2.21200 3.21200
- 0.3 / 3: 1.31200 2.31200 3.31200
- ---- K:2 Z: 0.02
- 0.1 / 1: 1.12200 2.12200 3.12200
- 0.2 / 2: 1.22200 2.22200 3.22200
- 0.3 / 3: 1.32200 2.32200 3.32200
- ---- K:3 Z: 0.03
- 0.1 / 1: 1.13200 2.13200 3.13200
- 0.2 / 2: 1.23200 2.23200 3.23200
- 0.3 / 3: 1.33200 2.33200 3.33200
- ---- L:3 T: 0.003
- ---- K:1 Z: 0.01
- 0.1 / 1: 1.11300 2.11300 3.11300
- 0.2 / 2: 1.21300 2.21300 3.21300
- 0.3 / 3: 1.31300 2.31300 3.31300
- ---- K:2 Z: 0.02
- 0.1 / 1: 1.12300 2.12300 3.12300
- 0.2 / 2: 1.22300 2.22300 3.22300
- 0.3 / 3: 1.32300 2.32300 3.32300
- ---- K:3 Z: 0.03
- 0.1 / 1: 1.13300 2.13300 3.13300
- 0.2 / 2: 1.23300 2.23300 3.23300
- 0.3 / 3: 1.33300 2.33300 3.33300
-LET V3d = X[x=1:3:1] + Y[Y=.1:.3:.1] + Z[Z=.01:.09:.01] ! same size
-LIST v3d
- VARIABLE : X[X=1:3:1] + Y[Y=.1:.3:.1] + Z[Z=.01:.09:.01]
- SUBSET : 3 by 3 by 9 points (X-Y-Z)
- 1 2 3
- 1 2 3
- ---- K:1 Z: 0.01
- 0.1 / 1: 1.11000 2.11000 3.11000
- 0.2 / 2: 1.21000 2.21000 3.21000
- 0.3 / 3: 1.31000 2.31000 3.31000
- ---- K:2 Z: 0.02
- 0.1 / 1: 1.12000 2.12000 3.12000
- 0.2 / 2: 1.22000 2.22000 3.22000
- 0.3 / 3: 1.32000 2.32000 3.32000
- ---- K:3 Z: 0.03
- 0.1 / 1: 1.13000 2.13000 3.13000
- 0.2 / 2: 1.23000 2.23000 3.23000
- 0.3 / 3: 1.33000 2.33000 3.33000
- ---- K:4 Z: 0.04
- 0.1 / 1: 1.14000 2.14000 3.14000
- 0.2 / 2: 1.24000 2.24000 3.24000
- 0.3 / 3: 1.34000 2.34000 3.34000
- ---- K:5 Z: 0.05
- 0.1 / 1: 1.15000 2.15000 3.15000
- 0.2 / 2: 1.25000 2.25000 3.25000
- 0.3 / 3: 1.35000 2.35000 3.35000
- ---- K:6 Z: 0.06
- 0.1 / 1: 1.16000 2.16000 3.16000
- 0.2 / 2: 1.26000 2.26000 3.26000
- 0.3 / 3: 1.36000 2.36000 3.36000
- ---- K:7 Z: 0.07
- 0.1 / 1: 1.17000 2.17000 3.17000
- 0.2 / 2: 1.27000 2.27000 3.27000
- 0.3 / 3: 1.37000 2.37000 3.37000
- ---- K:8 Z: 0.08
- 0.1 / 1: 1.18000 2.18000 3.18000
- 0.2 / 2: 1.28000 2.28000 3.28000
- 0.3 / 3: 1.38000 2.38000 3.38000
- ---- K:9 Z: 0.09
- 0.1 / 1: 1.19000 2.19000 3.19000
- 0.2 / 2: 1.29000 2.29000 3.29000
- 0.3 / 3: 1.39000 2.39000 3.39000
-LIST RESHAPE(v4d, v3d)
- VARIABLE : RESHAPE(V4D, V3D)
- SUBSET : 3 by 3 by 9 points (X-Y-Z)
- 1 2 3
- 1 2 3
- ---- K:1 Z: 0.01
- 0.1 / 1: 1.11100 2.11100 3.11100
- 0.2 / 2: 1.21100 2.21100 3.21100
- 0.3 / 3: 1.31100 2.31100 3.31100
- ---- K:2 Z: 0.02
- 0.1 / 1: 1.12100 2.12100 3.12100
- 0.2 / 2: 1.22100 2.22100 3.22100
- 0.3 / 3: 1.32100 2.32100 3.32100
- ---- K:3 Z: 0.03
- 0.1 / 1: 1.13100 2.13100 3.13100
- 0.2 / 2: 1.23100 2.23100 3.23100
- 0.3 / 3: 1.33100 2.33100 3.33100
- ---- K:4 Z: 0.04
- 0.1 / 1: 1.11200 2.11200 3.11200
- 0.2 / 2: 1.21200 2.21200 3.21200
- 0.3 / 3: 1.31200 2.31200 3.31200
- ---- K:5 Z: 0.05
- 0.1 / 1: 1.12200 2.12200 3.12200
- 0.2 / 2: 1.22200 2.22200 3.22200
- 0.3 / 3: 1.32200 2.32200 3.32200
- ---- K:6 Z: 0.06
- 0.1 / 1: 1.13200 2.13200 3.13200
- 0.2 / 2: 1.23200 2.23200 3.23200
- 0.3 / 3: 1.33200 2.33200 3.33200
- ---- K:7 Z: 0.07
- 0.1 / 1: 1.11300 2.11300 3.11300
- 0.2 / 2: 1.21300 2.21300 3.21300
- 0.3 / 3: 1.31300 2.31300 3.31300
- ---- K:8 Z: 0.08
- 0.1 / 1: 1.12300 2.12300 3.12300
- 0.2 / 2: 1.22300 2.22300 3.22300
- 0.3 / 3: 1.32300 2.32300 3.32300
- ---- K:9 Z: 0.09
- 0.1 / 1: 1.13300 2.13300 3.13300
- 0.2 / 2: 1.23300 2.23300 3.23300
- 0.3 / 3: 1.33300 2.33300 3.33300
-! if source and dest grid share an axis then the region is passed to the arg
-LIST RESHAPE(v4d[i=2:3,j=2:3], v3d) ! I,J preserved
- VARIABLE : RESHAPE(V4D[I=2:3,J=2:3], V3D)
- SUBSET : 2 by 2 by 9 points (X-Y-Z)
- 2 3
- 2 3
- ---- K:1 Z: 0.01
- 0.2 / 2: 2.21100 3.21100
- 0.3 / 3: 2.31100 3.31100
- ---- K:2 Z: 0.02
- 0.2 / 2: 2.22100 3.22100
- 0.3 / 3: 2.32100 3.32100
- ---- K:3 Z: 0.03
- 0.2 / 2: 2.23100 3.23100
- 0.3 / 3: 2.33100 3.33100
- ---- K:4 Z: 0.04
- 0.2 / 2: 2.21200 3.21200
- 0.3 / 3: 2.31200 3.31200
- ---- K:5 Z: 0.05
- 0.2 / 2: 2.22200 3.22200
- 0.3 / 3: 2.32200 3.32200
- ---- K:6 Z: 0.06
- 0.2 / 2: 2.23200 3.23200
- 0.3 / 3: 2.33200 3.33200
- ---- K:7 Z: 0.07
- 0.2 / 2: 2.21300 3.21300
- 0.3 / 3: 2.31300 3.31300
- ---- K:8 Z: 0.08
- 0.2 / 2: 2.22300 3.22300
- 0.3 / 3: 2.32300 3.32300
- ---- K:9 Z: 0.09
- 0.2 / 2: 2.23300 3.23300
- 0.3 / 3: 2.33300 3.33300
-LIST/k=2:3 RESHAPE(v4d[i=2:3,j=2:3,k=2:3], v3d) ! K,L not preserved
- VARIABLE : RESHAPE(V4D[I=2:3,J=2:3,K=2:3], V3D)
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- 2 3
- 2 3
- ---- K:2 Z: 0.02
- 0.2 / 2: 2.23100 3.23100
- 0.3 / 3: 2.33100 3.33100
- ---- K:3 Z: 0.03
- 0.2 / 2: 2.22200 3.22200
- 0.3 / 3: 2.32200 3.32200
-LIST/I=2:3/J=2:3 RESHAPE(v4d, v3d)
- VARIABLE : RESHAPE(V4D, V3D)
- SUBSET : 2 by 2 by 9 points (X-Y-Z)
- 2 3
- 2 3
- ---- K:1 Z: 0.01
- 0.2 / 2: 2.21100 3.21100
- 0.3 / 3: 2.31100 3.31100
- ---- K:2 Z: 0.02
- 0.2 / 2: 2.22100 3.22100
- 0.3 / 3: 2.32100 3.32100
- ---- K:3 Z: 0.03
- 0.2 / 2: 2.23100 3.23100
- 0.3 / 3: 2.33100 3.33100
- ---- K:4 Z: 0.04
- 0.2 / 2: 2.21200 3.21200
- 0.3 / 3: 2.31200 3.31200
- ---- K:5 Z: 0.05
- 0.2 / 2: 2.22200 3.22200
- 0.3 / 3: 2.32200 3.32200
- ---- K:6 Z: 0.06
- 0.2 / 2: 2.23200 3.23200
- 0.3 / 3: 2.33200 3.33200
- ---- K:7 Z: 0.07
- 0.2 / 2: 2.21300 3.21300
- 0.3 / 3: 2.31300 3.31300
- ---- K:8 Z: 0.08
- 0.2 / 2: 2.22300 3.22300
- 0.3 / 3: 2.32300 3.32300
- ---- K:9 Z: 0.09
- 0.2 / 2: 2.23300 3.23300
- 0.3 / 3: 2.33300 3.33300
-LIST/I=2:3/J=2:3/K=2:3 RESHAPE(v4d, v3d) ! K refers to result, only
- VARIABLE : RESHAPE(V4D, V3D)
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- 2 3
- 2 3
- ---- K:2 Z: 0.02
- 0.2 / 2: 2.22100 3.22100
- 0.3 / 3: 2.32100 3.32100
- ---- K:3 Z: 0.03
- 0.2 / 2: 2.23100 3.23100
- 0.3 / 3: 2.33100 3.33100
-LIST/I=2:3/J=2:3 RESHAPE(v4d[k=1:3], v3d[k=2:5]) ! output to a subregion in K
- VARIABLE : RESHAPE(V4D[K=1:3], V3D[K=2:5])
- SUBSET : 2 by 2 by 4 points (X-Y-Z)
- 2 3
- 2 3
- ---- K:2 Z: 0.02
- 0.2 / 2: 2.21100 3.21100
- 0.3 / 3: 2.31100 3.31100
- ---- K:3 Z: 0.03
- 0.2 / 2: 2.22100 3.22100
- 0.3 / 3: 2.32100 3.32100
- ---- K:4 Z: 0.04
- 0.2 / 2: 2.23100 3.23100
- 0.3 / 3: 2.33100 3.33100
- ---- K:5 Z: 0.05
- 0.2 / 2: 2.21200 3.21200
- 0.3 / 3: 2.31200 3.31200
-LIST/I=2:3/J=2:3/K=4:5 RESHAPE(v4d[k=1:3], v3d[k=2:5]) ! "conflicting" K specs
- VARIABLE : RESHAPE(V4D[K=1:3], V3D[K=2:5])
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- 2 3
- 2 3
- ---- K:4 Z: 0.04
- 0.2 / 2: 2.23100 3.23100
- 0.3 / 3: 2.33100 3.33100
- ---- K:5 Z: 0.05
- 0.2 / 2: 2.21200 3.21200
- 0.3 / 3: 2.31200 3.31200
-
-! ZAXREPLACE function
-! definitions taken from sigma_coordinate_demo.jnl 9/96 *sh*
-! 1) CREATE AN ARTIFICIAL SIGMA COORDINATE MODEL OUTPUT
-define axis/x=-50:50:10/unit=km xchannel
-define axis/y=-30:30:10/unit=km yrise
-define axis/z=1:10:2/unit=layer/depth zlayer
-define axis/T=1:20:1/unit=hours time
-define grid/x=xchannel/y=yrise/z=zlayer/t=time gsigma
-
-! bathymetry: a channel with a rise along the axis of the channel
-let pi = 3.14159
-let nominal_depth = 100
-let cross_channel_size = nominal_depth * (1 + COS(X[g=gsigma]/60*pi))
-let xchannel = -1 * cross_channel_size
-let rise_shape = (1 + COS(Y[g=gsigma]/40*pi))/6
-let bathymetry = xchannel + rise_shape*CROSS_CHANNEL_SIZE
-set variable/title="Channel Bathymetry"/unit=meters bathymetry
-
-! sigma layer thickness: varies in X, Y, Z, and T in this example
-let time_evolve = 0 + L[g=gsigma]/100
-let h0 = EXP(time_evolve*K[g=gsigma])
-let h_normalized = h0/h0[k=1:10 at sum]
-let h = h_normalized * (-1 * bathymetry)
-set variable/title="layer thickness"/unit=meters h
-
-! fictitious flow field:
-let flow_profile = LOG((11-K[g=gsigma]))
-let time_ramp = 1 + L[g=gsigma]/20 + 0.2*SIN((L[g=gsigma]-1)/2)
-let flow = time_ramp * flow_profile * cross_channel_size / (1-rise_shape)
-set variable/title="non-physical flow field" flow
-
-! ----------------------
-! "DEPTH" -- THE VERTICAL INTEGRAL OF LAYER THICKNESS
-let depth = h[k=@rsum]-h/2
-set variable/title="DEPTH function"/unit=meters depth
-
-! Desired result axes - depth in meters
-define axis/depth/z=0:200:50/units=meters z50m
-define axis/depth/z=0:200:20/units=meters z20m
-define axis/depth/z=0:200:2/units=meters z2m
-
-LIST/x=0/l=1 flow
- VARIABLE : non-physical flow field
- SUBSET : 7 by 6 points (Y (KM)-Z (LAYER))
- X (KM) : 0
- T (HOURS): 1
- -30 -20 -10 0 10 20 30
- 1 2 3 4 5 6 7
- 1 / 1: 220.777 252.000 293.508 315.000 293.508 252.000 220.777
- 3 / 2: 210.675 240.469 280.078 300.586 280.078 240.469 210.675
- 5 / 3: 199.382 227.579 265.064 284.473 265.064 227.579 199.382
- 7 / 4: 186.579 212.965 248.043 266.206 248.043 212.965 186.579
- 9 / 5: 171.798 196.094 228.394 245.118 228.394 196.094 171.798
- 11 / 6: 154.317 176.140 205.154 220.176 205.154 176.140 154.317
-LIST/x=0/l=1 depth
- VARIABLE : DEPTH function (meters)
- SUBSET : 7 by 6 points (Y (KM)-Z (LAYER))
- X (KM) : 0
- T (HOURS): 1
- -30 -20 -10 0 10 20 30
- 1 2 3 4 5 6 7
- 1 / 1: 15.459 13.544 11.629 10.835 11.629 13.544 15.459
- 3 / 2: 46.534 40.768 35.003 32.614 35.003 40.768 46.534
- 5 / 3: 77.920 68.266 58.612 54.613 58.612 68.266 77.920
- 7 / 4: 109.622 96.040 82.458 76.832 82.458 96.040 109.622
- 9 / 5: 141.642 124.093 106.544 99.274 106.544 124.093 141.642
- 11 / 6: 173.985 152.428 130.872 121.943 130.872 152.428 173.985
-set view ul
-shade/x=0/l=1/lev=30 flow
-!LIST/x=0/l=1 ZAXREPLACE(flow,depth,z[gz=z50m])
-!LIST/x=0/l=1 ZAXREPLACE(flow,depth,z[gz=z20m])
-LIST/x=0/l=1 ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[gz=z50m])
- VARIABLE : ZAXREPLACE(FLOW[Z=0:200],DEPTH[Z=0:200],Z[GZ=Z50M])
- SUBSET : 7 by 5 points (Y (KM)-DEPTH (m))
- X (KM) : 0
- T (HOURS): 1
- -30 -20 -10 0 10 20 30
- 1 2 3 4 5 6 7
- 0 / 1: .... .... .... .... .... .... ....
- 50 / 2: 209.428 236.141 270.541 287.852 270.541 236.141 209.428
- 100 / 3: 190.465 210.583 233.732 244.319 233.732 210.583 190.465
- 150 / 4: 167.281 177.850 .... .... .... 177.850 167.281
- 200 / 5: .... .... .... .... .... .... ....
-LIST/x=0/l=1 ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[gz=z20m])
- VARIABLE : ZAXREPLACE(FLOW[Z=0:200],DEPTH[Z=0:200],Z[GZ=Z20M])
- SUBSET : 7 by 11 points (Y (KM)-DEPTH (m))
- X (KM) : 0
- T (HOURS): 1
- -30 -20 -10 0 10 20 30
- 1 2 3 4 5 6 7
- 0 / 1: .... .... .... .... .... .... ....
- 20 / 2: 219.301 249.266 288.698 308.935 288.698 249.266 219.301
- 40 / 3: 212.799 240.795 276.900 295.177 276.900 240.795 212.799
- 60 / 4: 205.830 231.454 264.073 280.044 264.073 231.454 205.830
- 80 / 5: 198.542 221.405 249.798 263.229 249.798 221.405 198.542
- 100 / 6: 190.465 210.583 233.732 244.319 233.732 210.583 190.465
- 120 / 7: 181.788 198.556 215.539 222.313 215.539 198.556 181.788
- 140 / 8: 172.556 184.892 .... .... .... 184.892 172.556
- 160 / 9: 161.876 .... .... .... .... .... 161.876
- 180 / 10: .... .... .... .... .... .... ....
- 200 / 11: .... .... .... .... .... .... ....
-
-set view ur
-shade/x=0/l=1/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[gz=z20m])
-
-! how do the layers get distributed?
-!LET Kflow = ZAXREPLACE(flow,depth,z[gz=z20m])
-!LET Kdepth = ZAXREPLACE(k[g=gsigma],depth,z[gz=z20m])
-LET Kflow = ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[gz=z20m])
-LET Kdepth = ZAXREPLACE(k[z=0:200,g=gsigma],depth[z=0:200],z[gz=z20m])
-LIST/x=0/l=1 Kdepth
- VARIABLE : ZAXREPLACE(K[Z=0:200,G=GSIGMA],DEPTH[Z=0:200],Z[GZ=Z20M])
- SUBSET : 7 by 11 points (Y (KM)-DEPTH (m))
- X (KM) : 0
- T (HOURS): 1
- -30 -20 -10 0 10 20 30
- 1 2 3 4 5 6 7
- 0 / 1: .... .... .... .... .... .... ....
- 20 / 2: 1.14612 1.23714 1.35815 1.42080 1.35815 1.23714 1.14612
- 40 / 3: 1.78974 1.97179 2.21167 2.33573 2.21167 1.97179 1.78974
- 60 / 4: 2.42905 2.69940 3.05822 3.24246 3.05822 2.69940 2.42905
- 80 / 5: 3.06561 3.42249 3.89693 4.14116 3.89693 3.42249 3.06561
- 100 / 6: 3.69649 4.14116 4.72832 5.03201 4.72832 4.14116 3.69649
- 120 / 7: 4.32411 4.85410 5.55312 5.91430 5.55312 4.85410 4.32411
- 140 / 8: 4.94871 5.56139 .... .... .... 5.56139 4.94871
- 160 / 9: 5.56760 .... .... .... .... .... 5.56760
- 180 / 10: .... .... .... .... .... .... ....
- 200 / 11: .... .... .... .... .... .... ....
-LIST/x=0/l=1 Kdepth[k=@max]
- VARIABLE : ZAXREPLACE(K[Z=0:200,G=GSIGMA],DEPTH[Z=0:200],Z[GZ=Z20M])
- SUBSET : 7 points (Y (KM))
- X (KM) : 0
- DEPTH (m): -10 to 210 (maximum)
- T (HOURS): 1
- 0
- 6
- -30 / 1: 5.56760
- -20 / 2: 5.56139
- -10 / 3: 5.55312
- 0 / 4: 5.91430
- 10 / 5: 5.55312
- 20 / 6: 5.56139
- 30 / 7: 5.56760
-
-! mark deepest layer with a zero
-LET K0 = Kdepth - Kdepth[K=@max]
-LET Kkernel = K0[K=@WEQ] * Kflow
-
-! compare flow at bottom
-LET Z10_flow = flow[Z=10]
-LIST/x=0/l=1 Z10_flow ! bottom layer in layered version
- VARIABLE : FLOW[Z=10]
- SUBSET : 7 points (Y (KM))
- X (KM) : 0
- Z (LAYER): 10
- T (HOURS): 1
- 0
- 6
- -30 / 1: 163.058
- -20 / 2: 186.117
- -10 / 3: 216.774
- 0 / 4: 232.647
- 10 / 5: 216.774
- 20 / 6: 186.117
- 30 / 7: 163.058
-
-LET bottom_flow = Kkernel[z=0:200 at sum]
-!message LIST/x=0/l=1 Kkernel[z=0:200] ! crash!!!
-!message LIST/x=0/l=1 bottom_flow ! deepest flow in depth version
-!message
-
-! error using 20 meter depth resolution
-LIST/x=0/l=1 Z10_flow - bottom_flow
- VARIABLE : Z10_FLOW - BOTTOM_FLOW
- SUBSET : 7 points (Y (KM))
- X (KM) : 0
- Z (LAYER): 10
- T (HOURS): 1
- 0
- 6
- -30 / 1: 1.1817
- -20 / 2: 1.2249
- -10 / 3: 1.2346
- 0 / 4: 10.3336
- 10 / 5: 1.2346
- 20 / 6: 1.2249
- 30 / 7: 1.1817
-
-! reduced error using 2 meter depth resolution
-set view ll
-shade/x=0/l=1/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[gz=z2m])
-LET Kflow = ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[gz=z2m])
-LET Kdepth = ZAXREPLACE(k[g=gsigma,z=0:200],depth[z=0:200],z[gz=z2m])
-LIST/x=0/l=1 Z10_flow - bottom_flow
- VARIABLE : Z10_FLOW - BOTTOM_FLOW
- SUBSET : 7 points (Y (KM))
- X (KM) : 0
- Z (LAYER): 10
- T (HOURS): 1
- 0
- 6
- -30 / 1: 7.6679
- -20 / 2: 9.6753
- -10 / 3: 10.7875
- 0 / 4: 10.3336
- 10 / 5: 10.7875
- 20 / 6: 9.6753
- 30 / 7: 7.6679
-
-! dynamic axis passes to GC function -- 1 meter resolution (3/98)
-set view lr
-shade/x=0/l=1/ylim=0:200:-20/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[z=0:200:.5])
-
-!added in bn491 - originally had this in run_all, but moved it here to
-! properly echo commands *kob*
-GO bn_reset
-cancel mode verify
-set mode verify ! somehow this was off
-
-GO bn491_bug_fixes.jnl
-! bn491_bug_fixes.jnl
-! test various fixes that went into version 4.91
-! 2/98 *kob*
-!
-! 3/98 - replaced err490_repeat w/ err490_repeat_first_echo - simpler test
-! 3/98 - *kob* removed err490_tilde because it was a silly test. some systems
-! allowed use of go "~/xx" and others didnt.
-! 4/98 - added err491_asn.jnl - regrid by association problem
-! 4/98 - added err491_attrib_dp.jnl - problem w/ double precision attributes
-
-set mode/last verify
-can viewport
-can win/all
-set window 1
-
-!netcdf write error
-GO err490_cdf_childax
-!err490_cdf_childax *kob* 12/10/97 - initial crash reported by jerry
-
-! ERROR Fixed: listing a netcdf file w/ an extended child axis caused OSF
-! core dump
-!
-! routines modified: fmt/src/cd_childax_name.F
-! fmt/src/cd_write_axis.F
-! fmt/src/cd_make_var.F
-! 3.4.98 *kob* add define region statement - needed to include the
-! bn491_bug_fixes.jnl in w/ bn491_all
-
-
-define region/x=130:290/y=-23.5:23.5 t
-set data ocean_atlas_temp
-set reg/@t/z=0/l=1
-save/file=test.cdf/clobber temp
-
-message/continue ********File successfully written******
-********File successfully written******
-
-
-! command parser
-GO bn_reset
-cancel mode verify
-GO err490_command_parser
-! err490_command_parser.jnl 12/1/98 - reported by billy kessler
-
-! ERROR Fixed: command parser fix
-! the following caused an abort of ferret to occur
-!
-! routines modifed: gnl/parse_command.F
-! rpn/init_uvar_sub.F
-! common/xvariables.cmn
-
-go ptest
-! Description: create a simple test line plot
-
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
-
-label/nou `($ppl$xlen)-.3` -1.1 0 0 .16 a b c d e f g h i j k l m n o p
- !-> PPL %LABEL/nou 8.44 -1.1 0 0 .16 a b c d e f g h i j k l m n o p
-
-! the following also caused an abort of ferret
-let sstb = if ( (i eq 172 and j eq 36) or (i ge 173 and i le 175 and j eq 35) or (i ge 176 and i le 178 and j eq 36) or (i eq 178 and j eq 35) ) then 1.e35 else sst
-message/continue ****Variable defined successfully******
-****Variable defined successfully******
-
-
-! tilde error
-!GO bn_reset
-!GO err490_tilde
-
-
-!repeat error
-GO bn_reset
-cancel mode verify
-GO err490_repeat_first_echo
-! err490_repeat_first_echo (created later 23/98)
-
-! for the first REPEAT loop on T the formatting of the "verify" output
-! is based on the last previous command given
-
-! fixed 1/98 sh&kob
-! relevant routines (bug not yet fixed)
-! gnl/cs_command.F
-! xeq/xeq_repeat.F
-! ctx/cs_set_context.F
-
-set mode calendar
-can mode interp
-
-! cause the "last" command to be non-calendar
-stat t[t=15]
-
- T
- axis ABSTRACT
- X: N/A
- Y: N/A
- Z: N/A
- T: 15
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 15
- Maximum value: 15
- Mean value: 15 (unweighted average)
-
-! now note the first loop echo
-set mode verify
-define axis/t=1-jan-1980:1-jan-1981:1/units=days tax
-repeat/t=1-jan-1980:2-jan-1980:24 stat t[gt=tax]
-!-> REPEAT: T=-6.2483E+10
-
- T
- axis TAX
- X: N/A
- Y: N/A
- Z: N/A
- TIME: 01-JAN-1980 00:00
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 28840
- Maximum value: 28840
- Mean value: 28840 (unweighted average)
-!-> REPEAT: T=02-JAN-1980 00:00:00
-
- T
- axis TAX
- X: N/A
- Y: N/A
- Z: N/A
- TIME: 02-JAN-1980 00:00
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 28841
- Maximum value: 28841
- Mean value: 28841 (unweighted average)
-
-message/cont Note: THE ECHO-ONE REPEAT BUG HAS NOT BEEN FIXED
-Note: THE ECHO-ONE REPEAT BUG HAS NOT BEEN FIXED
-
-! fixed variable size
-!GO bn_reset
-GO err490_fixed_var_size
-! 1/2/98 *sh*
-
-! Situation: the component (variable) size is fixed in the definition.
-! The requested result size is separately specified
-! by a command qualifier. Leads to a crash.
-
-! The "doo" transformations (convolve.F, do_run_sum_sub.F, etc. ) are guided
-! by the size of the component rather than the size of the result.
-! (Under other circumstances this is to allow "bad edges" to be filled in
-! when the component is too small for the result.)
-
-! In IS_TRANS we need to catch this problem and avoid it ...
-! but it is fraught with pitfalls as it involves changing the apparent
-! component (cx) size passed into IS_TRANS (normally considered read-only)
-! Further, Ferret regards the result as self-describing on this axis
-! (uvar_gvn<uvlim_gvn_xact) so exact limits are not checked when looking in
-! cache. Since we are violating the assumption of self-describing we need to
-! un-cache the result.
-! ==> THE FIX IS IS A KLUDGE: The "right" solution is that the full limits
-! of the variable should be computed and the requested limits used to
-! clip the result. But this would be costly in memory xxxxx
-! should never get applied to cx ... but this is too difficult to
-! implement in GET_VAR_CONTEXT and PARSE_VAR_NAME
-
-
-!set mode diag - removed *sh* 10/99
-
-let vx = SIN(X[X=1:60:1])
-stat vx
-
- SIN(X[X=1:60:1])
- X: 0.5 to 60.5
- Y: N/A
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 60 (60*1*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: -0.99999
- Maximum value: 0.99991
- Mean value: 0.027242 (unweighted average)
- Standard deviation: 0.71199
-list/i=13:18 vx[x=@sbx:3] ! CRASH in V4.90
- VARIABLE : SIN(X[X=1:60:1])
- box smoothed by 3 pts on X
- SUBSET : 6 points (X)
- 13 / 13: 0.291400
- 14 / 14: 0.687021
- 15 / 15: 0.450997
- 16 / 16: -0.199671
- 17 / 17: -0.666763
- 18 / 18: -0.520836
-list/i=13:18 vx[x=@rsum] ! CRASH in V4.90
- VARIABLE : SIN(X[X=1:60:1])
- running sum on X
- SUBSET : 6 points (X)
- 13 / 13: 0.42017
- 14 / 14: 1.41077
- 15 / 15: 2.06106
- 16 / 16: 1.77316
- 17 / 17: 0.81176
- 18 / 18: 0.06077
-
-list/i=11:20 vx[x=@sbx:3] ! wrong result if pulled from cache
- VARIABLE : SIN(X[X=1:60:1])
- box smoothed by 3 pts on X
- SUBSET : 10 points (X)
- 11 / 11: -0.693528
- 12 / 12: -0.372132
- 13 / 13: 0.291400
- 14 / 14: 0.687021
- 15 / 15: 0.450997
- 16 / 16: -0.199671
- 17 / 17: -0.666763
- 18 / 18: -0.520836
- 19 / 19: 0.103945
- 20 / 20: 0.633159
-list/i=11:20 vx[x=@rsum] ! wrong result if pulled from cache
- VARIABLE : SIN(X[X=1:60:1])
- running sum on X
- SUBSET : 10 points (X)
- 11 / 11: -0.99999
- 12 / 12: -1.53656
- 13 / 13: -1.11640
- 14 / 14: -0.12579
- 15 / 15: 0.52450
- 16 / 16: 0.23660
- 17 / 17: -0.72480
- 18 / 18: -1.47579
- 19 / 19: -1.32591
- 20 / 20: -0.41297
-
-! now test a special problem that can occur with filling transforms --
-! special because in IS_TRANS they require OFFSETS but do not require filling
-! "bad edges" in the result
-
-DEFINE AXIS/T=-10:10:2 tax
-LET tvar = t[gt=tax]
-LET tgap = IF MOD(T,4) eq 0 then tvar
-list tgap
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
- SUBSET : 11 points (T)
- -10 / 1: ....
- -8 / 2: -8.00000
- -6 / 3: ....
- -4 / 4: -4.00000
- -2 / 5: ....
- 0 / 6: 0.00000
- 2 / 7: ....
- 4 / 8: 4.00000
- 6 / 9: ....
- 8 / 10: 8.00000
- 10 / 11: ....
-list tgap[l=2:7 at fav] ! value at L=7 should be 2
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
- ave-filled by 3 pts on T
- SUBSET : 6 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
- -4 / 4: -4.00000
- -2 / 5: -2.00000
- 0 / 6: 0.00000
- 2 / 7: 2.00000
-list tgap[t=-5:-8 at fav] ! value at T=-6 should be -6
- VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
- ave-filled by 3 pts on T
- SUBSET : 2 points (T)
- -8 / 2: -8.00000
- -6 / 3: -6.00000
-
-! l=@ave compression failure
-GO bn_reset
-cancel mode verify
-GO err490_l_ave.jnl
-! err490_lave.jnl 12/1/97 - *sh* (reported by Weimin Wang)
-! L=@AVE is failing to compress to a point
-
-! 2/28/97:
-! bug from this script re-emerged 2/98 after change to MERGE_GRID
-! (see err491_explicit_limits.jnl)
-! This time it was fixed in MERGE_GRID by correcting inconsistent use of
-! the variable expl_com_lim
-
-! 12/97: ---------------------
-! ==> fixed in IS_GRID_MODE with more thorough initialization
-! probably was introduced with changes to is-uvar_grid and merge_grid
-! when GCF functions were introduced
-
-! the bug was introduced between ferret_c_pre_10jan (created Dec. 19 '96)
-! and ferret_c_passed_bench (created Jan 22 1997). This is when the GCF
-! changes were made
-
-! tracing the problem (axis T):
-! in IS_TRANS the bad case enters with cx_hi_ww(cx=6)=91369
-! the successful case with it set BAD
-! ==> result is that T axis doesn't get fleshed out
-
-! IS_TRANS gets the cx=6 value from IS_ALGEBRA's call to GET_VAR_CONTEXT
-
-! In turn this gets it from cx=4 which is set early in INTERP_STACK (dflt_cx)
-
-! INTERP_STACK works correctly when uvar_given(4,ex#1)=-1 ("uvlim_irrelevant")
-! ==> for some reason uvar_given(4,ex#1) is 7 (uvlim_needed) in the bad case
-
-! ... need to look in is_uvar_grid and esp. merge_grid
-! ---------------------------
-! *kob* 3/98 - modifed to use coads_vwnd.cdf data set. this is a local data
-! set (ie, it resides in the bench area). this was important for
-! benchmarking the sgi version (on cyborg and vikenty) because
-! not all tmap disks were available.
-
-cancel memory/all
-!set mode diag ! removed *sh* 10/99
-
-! *kob* set data coads
-set data coads_vwnd
-
-set region/x=160w/y=40n
-set region/l=1:50
-
-! 12/97: this works OK -- a single point ... with value of zero!
-! 2/98: now it gets a list of values, where the first one, only is correct
-let tseries = vwnd[l=1:50]
-list tseries[l=@ave]
- VARIABLE : VWND[L=1:50]
- FILENAME : coads_vwnd.cdf
- LONGITUDE: 161W
- LATITUDE : 39N
- TIME : 01-JAN-1946 00:00 to 01-MAR-1950 00:00 (averaged)
- 2.19333
-
-! this gets a list of values!
-cancel memory/all
-load tseries
-list tseries[l=@ave]
- VARIABLE : VWND[L=1:50]
- FILENAME : coads_vwnd.cdf
- LONGITUDE: 161W
- LATITUDE : 39N
- TIME : 01-JAN-1946 00:00 to 01-MAR-1950 00:00 (averaged)
- 2.19333
-
-! and finally a crash ...
-list/l=1 tseries[l=1:50 at ave]
- VARIABLE : VWND[L=1:50]
- FILENAME : coads_vwnd.cdf
- LONGITUDE: 161W
- LATITUDE : 39N
- TIME : 01-JAN-1946 00:00 to 01-MAR-1950 00:00 (averaged)
- 2.19333
-
-quit
-
-! neg time axis grid failure
-GO bn_reset
-cancel mode verify
-GO err490_neg_time_show_grid.jnl
-! err490_neg_time_show_grid
-
-! V4.9 fails to show the invividual grid points, so the below request would
-! only show column headings, but no data. make sure data is there
-
-set data gtsa056_2
-show grid/t=15-JAN-1982:15-JAN-1983 temp
- GRID PS3DT1
- name axis # pts start end
- PSXT1 LONGITUDE 160mr 130.5E 70.5W
- PSYT LATITUDE 100 i 28.836S 48.568N
- PSZT DEPTH (m) 27 i- 5 3824
- TIME4 TIME 168mr 15-JAN-1982 14:00 07-JUN-1983 13:00
- normal E
- normal F
-
- L T TBOX TBOXLO TSTEP (hour)
- 1> 15-JAN-1982 14:00:00 73 14-JAN-1982 01:30:00 52632
- 2> 18-JAN-1982 15:00:00 73 17-JAN-1982 02:30:00 52705
- 3> 21-JAN-1982 16:00:00 73 20-JAN-1982 03:30:00 52778
- 4> 24-JAN-1982 17:00:00 73 23-JAN-1982 04:30:00 52851
- 5> 27-JAN-1982 18:00:00 73 26-JAN-1982 05:30:00 52924
- 6> 30-JAN-1982 19:00:00 73 29-JAN-1982 06:30:00 52997
- 7> 02-FEB-1982 20:00:00 73 01-FEB-1982 07:30:00 53070
- 8> 05-FEB-1982 21:00:00 73 04-FEB-1982 08:30:00 53143
- 9> 08-FEB-1982 22:00:00 73 07-FEB-1982 09:30:00 53216
- 10> 11-FEB-1982 23:00:00 73 10-FEB-1982 10:30:00 53289
- 11> 15-FEB-1982 00:00:00 73 13-FEB-1982 11:30:00 53362
- 12> 18-FEB-1982 01:00:00 73 16-FEB-1982 12:30:00 53435
- 13> 21-FEB-1982 02:00:00 73 19-FEB-1982 13:30:00 53508
- 14> 24-FEB-1982 03:00:00 73 22-FEB-1982 14:30:00 53581
- 15> 27-FEB-1982 04:00:00 73 25-FEB-1982 15:30:00 53654
- 16> 02-MAR-1982 05:00:00 73 28-FEB-1982 16:30:00 53727
- 17> 05-MAR-1982 06:00:00 73 03-MAR-1982 17:30:00 53800
- 18> 08-MAR-1982 07:00:00 73 06-MAR-1982 18:30:00 53873
- 19> 11-MAR-1982 08:00:00 73 09-MAR-1982 19:30:00 53946
- 20> 14-MAR-1982 09:00:00 73 12-MAR-1982 20:30:00 54019
- 21> 17-MAR-1982 10:00:00 73 15-MAR-1982 21:30:00 54092
- 22> 20-MAR-1982 11:00:00 73 18-MAR-1982 22:30:00 54165
- 23> 23-MAR-1982 12:00:00 73 21-MAR-1982 23:30:00 54238
- 24> 26-MAR-1982 13:00:00 73 25-MAR-1982 00:30:00 54311
- 25> 29-MAR-1982 14:00:00 73 28-MAR-1982 01:30:00 54384
- 26> 01-APR-1982 15:00:00 73 31-MAR-1982 02:30:00 54457
- 27> 04-APR-1982 16:00:00 73 03-APR-1982 03:30:00 54530
- 28> 07-APR-1982 17:00:00 73 06-APR-1982 04:30:00 54603
- 29> 10-APR-1982 18:00:00 73 09-APR-1982 05:30:00 54676
- 30> 13-APR-1982 19:00:00 73 12-APR-1982 06:30:00 54749
- 31> 16-APR-1982 20:00:00 73 15-APR-1982 07:30:00 54822
- 32> 19-APR-1982 21:00:00 73 18-APR-1982 08:30:00 54895
- 33> 22-APR-1982 22:00:00 73 21-APR-1982 09:30:00 54968
- 34> 25-APR-1982 23:00:00 73 24-APR-1982 10:30:00 55041
- 35> 29-APR-1982 00:00:00 73 27-APR-1982 11:30:00 55114
- 36> 02-MAY-1982 01:00:00 73 30-APR-1982 12:30:00 55187
- 37> 05-MAY-1982 02:00:00 73 03-MAY-1982 13:30:00 55260
- 38> 08-MAY-1982 03:00:00 73 06-MAY-1982 14:30:00 55333
- 39> 11-MAY-1982 04:00:00 73 09-MAY-1982 15:30:00 55406
- 40> 14-MAY-1982 05:00:00 73 12-MAY-1982 16:30:00 55479
- 41> 17-MAY-1982 06:00:00 73 15-MAY-1982 17:30:00 55552
- 42> 20-MAY-1982 07:00:00 73 18-MAY-1982 18:30:00 55625
- 43> 23-MAY-1982 08:00:00 73 21-MAY-1982 19:30:00 55698
- 44> 26-MAY-1982 09:00:00 73 24-MAY-1982 20:30:00 55771
- 45> 29-MAY-1982 10:00:00 73 27-MAY-1982 21:30:00 55844
- 46> 01-JUN-1982 11:00:00 73 30-MAY-1982 22:30:00 55917
- 47> 04-JUN-1982 12:00:00 73 02-JUN-1982 23:30:00 55990
- 48> 07-JUN-1982 13:00:00 73 06-JUN-1982 00:30:00 56063
- 49> 10-JUN-1982 14:00:00 73 09-JUN-1982 01:30:00 56136
- 50> 13-JUN-1982 15:00:00 73 12-JUN-1982 02:30:00 56209
- 51> 16-JUN-1982 16:00:00 73 15-JUN-1982 03:30:00 56282
- 52> 19-JUN-1982 17:00:00 73 18-JUN-1982 04:30:00 56355
- 53> 22-JUN-1982 18:00:00 73 21-JUN-1982 05:30:00 56428
- 54> 25-JUN-1982 19:00:00 73 24-JUN-1982 06:30:00 56501
- 55> 28-JUN-1982 20:00:00 73 27-JUN-1982 07:30:00 56574
- 56> 01-JUL-1982 21:00:00 73 30-JUN-1982 08:30:00 56647
- 57> 04-JUL-1982 22:00:00 73 03-JUL-1982 09:30:00 56720
- 58> 07-JUL-1982 23:00:00 73 06-JUL-1982 10:30:00 56793
- 59> 11-JUL-1982 00:00:00 73 09-JUL-1982 11:30:00 56866
- 60> 14-JUL-1982 01:00:00 73 12-JUL-1982 12:30:00 56939
- 61> 17-JUL-1982 02:00:00 73 15-JUL-1982 13:30:00 57012
- 62> 20-JUL-1982 03:00:00 73 18-JUL-1982 14:30:00 57085
- 63> 23-JUL-1982 04:00:00 73 21-JUL-1982 15:30:00 57158
- 64> 26-JUL-1982 05:00:00 73 24-JUL-1982 16:30:00 57231
- 65> 29-JUL-1982 06:00:00 73 27-JUL-1982 17:30:00 57304
- 66> 01-AUG-1982 07:00:00 73 30-JUL-1982 18:30:00 57377
- 67> 04-AUG-1982 08:00:00 73 02-AUG-1982 19:30:00 57450
- 68> 07-AUG-1982 09:00:00 73 05-AUG-1982 20:30:00 57523
- 69> 10-AUG-1982 10:00:00 73 08-AUG-1982 21:30:00 57596
- 70> 13-AUG-1982 11:00:00 73 11-AUG-1982 22:30:00 57669
- 71> 16-AUG-1982 12:00:00 73 14-AUG-1982 23:30:00 57742
- 72> 19-AUG-1982 13:00:00 73 18-AUG-1982 00:30:00 57815
- 73> 22-AUG-1982 14:00:00 73 21-AUG-1982 01:30:00 57888
- 74> 25-AUG-1982 15:00:00 73 24-AUG-1982 02:30:00 57961
- 75> 28-AUG-1982 16:00:00 73 27-AUG-1982 03:30:00 58034
- 76> 31-AUG-1982 17:00:00 73 30-AUG-1982 04:30:00 58107
- 77> 03-SEP-1982 18:00:00 73 02-SEP-1982 05:30:00 58180
- 78> 06-SEP-1982 19:00:00 73 05-SEP-1982 06:30:00 58253
- 79> 09-SEP-1982 20:00:00 73 08-SEP-1982 07:30:00 58326
- 80> 12-SEP-1982 21:00:00 73 11-SEP-1982 08:30:00 58399
- 81> 15-SEP-1982 22:00:00 73 14-SEP-1982 09:30:00 58472
- 82> 18-SEP-1982 23:00:00 73 17-SEP-1982 10:30:00 58545
- 83> 22-SEP-1982 00:00:00 73 20-SEP-1982 11:30:00 58618
- 84> 25-SEP-1982 01:00:00 73 23-SEP-1982 12:30:00 58691
- 85> 28-SEP-1982 02:00:00 73 26-SEP-1982 13:30:00 58764
- 86> 01-OCT-1982 03:00:00 73 29-SEP-1982 14:30:00 58837
- 87> 04-OCT-1982 04:00:00 73 02-OCT-1982 15:30:00 58910
- 88> 07-OCT-1982 05:00:00 73 05-OCT-1982 16:30:00 58983
- 89> 10-OCT-1982 06:00:00 73 08-OCT-1982 17:30:00 59056
- 90> 13-OCT-1982 07:00:00 73 11-OCT-1982 18:30:00 59129
- 91> 16-OCT-1982 08:00:00 73 14-OCT-1982 19:30:00 59202
- 92> 19-OCT-1982 09:00:00 73 17-OCT-1982 20:30:00 59275
- 93> 22-OCT-1982 10:00:00 73 20-OCT-1982 21:30:00 59348
- 94> 25-OCT-1982 11:00:00 73 23-OCT-1982 22:30:00 59421
- 95> 28-OCT-1982 12:00:00 73 26-OCT-1982 23:30:00 59494
- 96> 31-OCT-1982 13:00:00 73 30-OCT-1982 00:30:00 59567
- 97> 03-NOV-1982 14:00:00 73 02-NOV-1982 01:30:00 59640
- 98> 06-NOV-1982 15:00:00 73 05-NOV-1982 02:30:00 59713
- 99> 09-NOV-1982 16:00:00 73 08-NOV-1982 03:30:00 59786
- 100> 12-NOV-1982 17:00:00 73 11-NOV-1982 04:30:00 59859
- 101> 15-NOV-1982 18:00:00 73 14-NOV-1982 05:30:00 59932
- 102> 18-NOV-1982 19:00:00 73 17-NOV-1982 06:30:00 60005
- 103> 21-NOV-1982 20:00:00 73 20-NOV-1982 07:30:00 60078
- 104> 24-NOV-1982 21:00:00 73 23-NOV-1982 08:30:00 60151
- 105> 27-NOV-1982 22:00:00 73 26-NOV-1982 09:30:00 60224
- 106> 30-NOV-1982 23:00:00 73 29-NOV-1982 10:30:00 60297
- 107> 04-DEC-1982 00:00:00 73 02-DEC-1982 11:30:00 60370
- 108> 07-DEC-1982 01:00:00 73 05-DEC-1982 12:30:00 60443
- 109> 10-DEC-1982 02:00:00 73 08-DEC-1982 13:30:00 60516
- 110> 13-DEC-1982 03:00:00 73 11-DEC-1982 14:30:00 60589
- 111> 16-DEC-1982 04:00:00 73 14-DEC-1982 15:30:00 60662
- 112> 19-DEC-1982 05:00:00 73 17-DEC-1982 16:30:00 60735
- 113> 22-DEC-1982 06:00:00 73 20-DEC-1982 17:30:00 60808
- 114> 25-DEC-1982 07:00:00 73 23-DEC-1982 18:30:00 60881
- 115> 28-DEC-1982 08:00:00 73 26-DEC-1982 19:30:00 60954
- 116> 31-DEC-1982 09:00:00 73 29-DEC-1982 20:30:00 61027
- 117> 03-JAN-1983 10:00:00 73 01-JAN-1983 21:30:00 61100
- 118> 06-JAN-1983 11:00:00 73 04-JAN-1983 22:30:00 61173
- 119> 09-JAN-1983 12:00:00 73 07-JAN-1983 23:30:00 61246
- 120> 12-JAN-1983 13:00:00 73 11-JAN-1983 00:30:00 61319
- 121> 15-JAN-1983 14:00:00 73 14-JAN-1983 01:30:00 61392
-
-
-!explicit limit problem
-GO bn_reset
-cancel mode verify
-GO err491_explicit_limits.jnl
-! err491_explicit_limits
-! 2/98 *sh*
-! bugs reported by Mark Wetzler and Mike Knezevitch
-
-! ferret was assigning uvar_given = uvlim_irrelevant to axes of uvars where
-! the limits were given in square brackets.
-
-! fixed by change in MERGE_GRID (2/23/98)
-
-! Note that the repair caused a bug in err490_l_ave to re-emerge. That bug
-! was fixed through a further repair to MERGE_GRID (2/28/98)
-
-!SET MODE DIAGNOSTIC - removed *sh* 10/99
-
-! Wetzler bug
-! @AVE is ignored -- size of result on X is 5 points instead of 1
-let p = i[i=1:5]
-let q = i[i=1:5]
-let pq = p*q
-stat pq[i=@ave]
-
- P*Q
- X: 0.5 to 5.5 (averaged)
- Y: N/A
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 11
- Maximum value: 11
- Mean value: 11 (unweighted average)
-
-! Knezevitch bug
-! causes crash in nest_region_class.F
-let timestamp = DAYS1900(1998,02,23) - DAYS1900(1998,02,1)
-list timestamp[i=1:1]
- VARIABLE : DAYS1900(1998,02,23) - DAYS1900(1998,02,1)
- 22.0000
-
-
-
-
-!regridding by association problem *kob* 4/98
-GO bn_reset
-cancel mode verify
-GO err491_asn.jnl
-! err491_asn.jnl 4/98 *sh* (extracted from bug reported by Jennifer Adams)
-! Ferret crashes on regridding by association where destination
-! axis does not overlap the input subscript range at all
-
-! fixed with repair to RECVD_REGRID
-
-!set mode diag - removed *sh* 10/99
-set mode ignore ! added for benchmark suite...
-
-let test = y[y=101:200:1]
-let test2 = test[y=151:200] ! defined on 151:200
-
-define axis/y=1:50:1 y50
-list test2[gy=y50 at asn] ! request association onto 1:50
- VARIABLE : TEST[Y=151:200]
- regrid: 1 delta on Y at ASN
- SUBSET : 50 points (Y)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
- 6 / 6:....
- 7 / 7:....
- 8 / 8:....
- 9 / 9:....
- 10 / 10:....
- 11 / 11:....
- 12 / 12:....
- 13 / 13:....
- 14 / 14:....
- 15 / 15:....
- 16 / 16:....
- 17 / 17:....
- 18 / 18:....
- 19 / 19:....
- 20 / 20:....
- 21 / 21:....
- 22 / 22:....
- 23 / 23:....
- 24 / 24:....
- 25 / 25:....
- 26 / 26:....
- 27 / 27:....
- 28 / 28:....
- 29 / 29:....
- 30 / 30:....
- 31 / 31:....
- 32 / 32:....
- 33 / 33:....
- 34 / 34:....
- 35 / 35:....
- 36 / 36:....
- 37 / 37:....
- 38 / 38:....
- 39 / 39:....
- 40 / 40:....
- 41 / 41:....
- 42 / 42:....
- 43 / 43:....
- 44 / 44:....
- 45 / 45:....
- 46 / 46:....
- 47 / 47:....
- 48 / 48:....
- 49 / 49:....
- 50 / 50:....
-
-!list/y=1:50 test2[gy=y50 at asn] ! same misbehavior and crash
-
-cancel mode ignore ! added for benchmark suite...
-
-! v5.4 *kob* 10/01 - need to add exit/script - new exit command qualifiers
-exit/script
-
-!double precision attribute problem *kob* 4/98
-GO bn_reset
-cancel mode verify
-GO err491_attrib_dp.jnl
-! err491_attrib_dp.jnl
-! kob 4/23/98
-
-! bug reported by Donald S. Dunbar 4/21/98
-!
-! there was a difference in behavior between v445 and v491. the problem was
-! that between the versions, a bug was introduced into cd_get_attval.F
-! which caused invalid values to be used if an attribute contained double
-! precision values. the lines below read in a small sample of DD's cdf file
-! and list the variable elev. values should be around 2-3.
-!
-! routine modifed: fmt/src/cd_get_attval.F
-
-
-use err491_attval.cdf
-list elev
- VARIABLE : Surface elevation (meter)
- DATA SET : K-Bay OAR3d model (200m)
- FILENAME : err491_attval.cdf
- SUBSET : 35 by 127 points (LONGITUDE-LATITUDE)
- T (day) : 1.7837
- ... listing every 3th point
- 135.51W 135.469W 135.429W 135.389W 135.348W 135.308W 135.267W 135.227W 135.187W 135.146W 135.106W 135.066W
- 1 4 7 10 13 16 19 22 25 28 31 34
- 59.4667N / 127: .... .... .... .... .... .... .... .... .... .... .... ....
- 59.4599N / 126: .... .... .... .... .... .... .... .... .... .... .... ....
- 59.453N / 125: .... .... .... .... .... .... .... .... .... .... .... ....
- 59.4462N / 124: .... .... .... .... .... .... .... .... .... .... 2.97638 ....
- 59.4394N / 123: .... .... .... .... .... .... .... .... .... .... .... ....
- 59.4325N / 122: .... .... .... .... .... .... .... .... .... .... .... ....
- 59.4257N / 121: .... .... .... .... .... .... .... .... .... .... .... ....
- 59.4189N / 120: .... .... .... .... .... .... .... .... .... 2.97500 .... ....
- 59.412N / 119: .... .... .... .... .... .... .... .... .... 2.97500 .... ....
- 59.4052N / 118: .... .... .... .... .... .... .... .... .... 2.97528 .... ....
- 59.3983N / 117: .... .... .... .... .... .... .... .... .... 2.97500 .... ....
- 59.3915N / 116: .... .... .... .... .... .... .... .... .... 2.97528 .... ....
- 59.3846N / 115: .... .... .... .... .... .... .... .... .... 2.97555 .... ....
- 59.3778N / 114: .... .... .... .... .... .... .... .... .... .... .... ....
- 59.3709N / 113: .... .... .... .... .... .... .... .... .... .... .... ....
- 59.3641N / 112: .... .... .... .... .... .... .... .... 2.98572 .... .... ....
- 59.3572N / 111: .... .... .... .... .... .... .... .... 2.98764 .... .... ....
- 59.3504N / 110: .... .... .... .... .... .... .... .... 2.98791 .... .... ....
- 59.3435N / 109: .... .... .... .... .... .... .... .... .... .... .... ....
- 59.3366N / 108: .... .... .... .... .... .... .... .... .... .... .... ....
- 59.3298N / 107: .... .... .... .... .... .... .... 2.98599 .... .... .... ....
- 59.3229N / 106: .... .... .... .... 2.98956 .... .... 2.98709 .... .... .... ....
- 59.3161N / 105: .... .... .... .... 2.98901 .... .... 2.98627 .... .... .... ....
- 59.3092N / 104: .... .... .... .... 2.98846 .... 2.98379 2.98517 .... .... .... ....
- 59.3023N / 103: .... .... .... .... .... 2.98379 2.98297 2.98407 .... .... .... ....
- 59.2955N / 102: .... .... .... .... .... 2.98297 .... 2.98270 .... .... .... ....
- 59.2886N / 101: .... 2.99863 .... .... .... 2.98297 2.98077 2.98105 .... .... .... ....
- 59.2817N / 100: .... .... 2.98956 .... .... .... 2.98132 .... .... .... .... ....
- 59.2748N / 99: .... .... 2.99149 .... .... 2.98462 2.98050 .... .... .... .... ....
- 59.268N / 98: .... .... 2.99341 .... .... 2.98462 2.97967 .... .... .... .... ....
- 59.2611N / 97: .... .... 2.99561 .... .... .... 2.97967 .... .... .... .... ....
- 59.2542N / 96: .... .... 2.99615 3.00055 .... .... 2.98132 .... .... .... .... ....
- 59.2473N / 95: .... .... 2.99643 2.99945 .... 2.98434 2.98709 .... .... .... .... ....
- 59.2405N / 94: .... .... .... 2.99753 .... 2.98572 2.99286 .... .... .... .... ....
- 59.2336N / 93: .... .... .... 2.99561 2.99588 2.98627 2.99313 .... .... .... .... ....
- 59.2267N / 92: .... .... .... 2.99396 2.99451 .... 2.99588 2.99588 .... .... .... ....
- 59.2198N / 91: .... .... .... 2.99231 2.99341 .... 2.99643 2.99698 .... .... .... ....
- 59.2129N / 90: .... .... .... 2.99039 2.99176 .... 2.99561 2.99780 .... .... .... ....
- 59.2061N / 89: .... .... .... 2.98984 2.99231 .... 2.99396 2.99725 .... .... .... ....
- 59.1992N / 88: .... .... .... 2.98984 2.99176 .... .... 2.99368 .... .... .... ....
- 59.1923N / 87: .... .... .... .... 2.99203 .... .... 2.99039 .... .... .... ....
- 59.1854N / 86: .... .... .... .... 2.99451 .... .... 2.98956 .... .... .... ....
- 59.1785N / 85: .... .... .... 2.99313 2.99670 2.99918 .... 2.98956 .... .... .... ....
- 59.1716N / 84: .... .... .... 2.99423 2.99808 .... .... 2.99066 .... .... .... ....
- 59.1647N / 83: .... .... .... 2.99561 2.99780 3.00494 .... 2.99149 .... .... .... ....
- 59.1578N / 82: .... .... .... 2.99588 2.99835 .... .... 2.99286 .... .... .... ....
- 59.1509N / 81: .... .... .... 2.99588 2.99945 .... 2.99506 2.99423 .... .... .... ....
- 59.144N / 80: .... .... .... .... 2.99973 .... 2.99561 2.99396 .... .... .... ....
- 59.1371N / 79: .... .... .... .... 2.99973 .... 2.99643 2.99396 .... .... .... ....
- 59.1302N / 78: .... .... .... .... 3.00055 .... 2.99808 2.99451 .... .... .... ....
- 59.1233N / 77: .... .... .... .... 3.00247 .... 3.00027 2.99561 .... .... .... ....
- 59.1164N / 76: .... .... .... .... 3.00385 .... 3.00110 2.99670 .... .... .... ....
- 59.1095N / 75: .... .... .... .... .... 3.00330 3.00275 2.99753 .... .... .... ....
- 59.1026N / 74: .... .... .... .... .... 3.00192 .... 2.99808 .... .... .... ....
- 59.0957N / 73: .... .... .... .... 2.99643 3.00027 .... 2.99973 .... .... .... ....
- 59.0888N / 72: .... .... .... .... 2.99615 3.00000 .... 3.00082 .... .... .... ....
- 59.0819N / 71: .... .... .... .... 2.99670 3.00055 3.00412 3.00110 .... .... .... ....
- 59.075N / 70: .... .... .... .... 2.99780 3.00137 3.00302 3.00137 .... .... .... ....
- 59.0681N / 69: .... .... .... .... 2.99890 3.00137 3.00082 3.00055 .... .... .... ....
- 59.0612N / 68: .... .... .... .... 2.99863 3.00000 .... 2.99780 .... .... .... ....
- 59.0542N / 67: .... .... .... .... 2.99835 2.99780 .... 2.99533 .... .... .... ....
- 59.0473N / 66: .... .... .... .... 2.99808 2.99615 .... 2.99341 .... .... .... ....
- 59.0404N / 65: .... .... .... .... 2.99780 2.99588 2.99368 2.99094 .... .... .... ....
- 59.0335N / 64: .... .... .... 2.99835 2.99753 2.99506 2.99286 2.98791 .... .... .... ....
- 59.0266N / 63: .... .... .... 2.99780 .... 2.99396 2.99039 2.98599 .... .... .... ....
- 59.0196N / 62: .... .... .... 2.99698 .... 2.99258 .... 2.98324 .... .... .... ....
- 59.0127N / 61: .... .... .... 2.99561 .... 2.99203 2.98572 2.97995 .... .... .... ....
- 59.0058N / 60: .... .... .... 2.99423 .... 2.99121 2.98572 2.97748 .... .... .... ....
- 58.9989N / 59: .... .... .... 2.99506 .... 2.99094 2.98572 2.97748 .... .... .... ....
- 58.9919N / 58: .... .... .... 2.99808 .... 2.99066 2.98489 2.97748 .... .... .... ....
- 58.985N / 57: .... .... .... 3.00027 .... 2.99011 2.98407 2.97720 .... .... .... ....
- 58.9781N / 56: .... .... .... 3.00055 .... 2.98929 2.98160 2.97720 .... .... .... ....
- 58.9711N / 55: .... .... .... 3.00000 .... 2.98819 2.97693 2.97638 .... .... .... ....
- 58.9642N / 54: .... .... .... 2.99863 .... 2.98736 2.97775 2.97198 .... .... .... ....
- 58.9573N / 53: .... .... .... 2.99670 .... 2.98682 2.97803 2.96512 .... .... .... ....
- 58.9503N / 52: .... .... .... 2.99588 2.99203 2.98654 2.97830 2.96676 .... .... .... ....
- 58.9434N / 51: .... .... .... 2.99588 2.99231 2.98654 2.97748 2.96814 .... .... .... ....
- 58.9365N / 50: .... .... .... 2.99780 2.99258 2.98627 2.97665 .... .... .... .... ....
- 58.9295N / 49: .... .... .... .... 2.99231 2.98572 2.97638 .... .... .... .... ....
- 58.9226N / 48: .... .... .... .... 2.99286 2.98544 2.97610 .... .... .... .... ....
- 58.9156N / 47: .... .... .... 2.99478 2.99423 2.98544 2.97528 .... .... .... .... ....
- 58.9087N / 46: .... .... .... 2.99533 2.99368 2.98517 2.97500 .... .... .... .... ....
- 58.9017N / 45: .... .... .... 2.99506 2.99286 2.98489 2.97528 .... .... .... .... ....
- 58.8948N / 44: .... .... .... 2.99533 2.99231 2.98489 2.97528 .... .... .... .... ....
- 58.8878N / 43: .... .... .... 2.99615 2.99176 2.98462 2.97555 .... .... .... .... ....
- 58.8809N / 42: .... .... .... 2.99698 2.99258 2.98489 2.97638 .... .... .... .... ....
- 58.8739N / 41: .... .... .... 2.99698 2.99341 2.98544 2.97555 .... .... .... .... ....
- 58.867N / 40: .... .... .... 2.99698 2.99341 2.98544 2.97418 .... .... .... .... ....
- 58.86N / 39: .... .... .... 2.99753 2.99368 2.98544 2.97171 .... .... .... .... ....
- 58.8531N / 38: .... .... .... 2.99835 2.99368 2.98572 2.96786 .... .... .... .... ....
- 58.8461N / 37: .... .... .... 2.99863 2.99368 2.98572 2.96621 .... .... .... .... ....
- 58.8392N / 36: .... .... .... 2.99890 2.99368 2.98517 2.96814 .... .... .... .... ....
- 58.8322N / 35: .... .... .... .... 2.99313 2.98379 2.97061 .... .... .... .... ....
- 58.8252N / 34: .... .... .... .... 2.99258 2.98215 2.96896 .... .... .... .... ....
- 58.8183N / 33: .... .... .... .... 2.99121 2.98160 2.96814 .... .... .... .... ....
- 58.8113N / 32: .... .... .... .... 2.99094 2.98242 2.96869 .... .... .... 2.93408 2.92254
- 58.8043N / 31: .... .... .... .... 2.99341 2.98297 2.96759 .... .... .... 2.93463 ....
- 58.7974N / 30: .... .... .... 3.00247 2.99286 2.98242 2.96621 2.94754 .... .... 2.93545 ....
- 58.7904N / 29: .... .... .... .... 2.99149 2.98105 2.96567 2.94809 .... .... .... ....
- 58.7834N / 28: .... .... .... .... 2.99094 2.97967 2.96512 2.94644 .... .... 2.96374 ....
- 58.7765N / 27: .... .... .... .... 2.98956 2.97748 2.96347 2.94864 .... .... 2.95880 ....
- 58.7695N / 26: .... .... .... .... 2.98874 2.97940 2.96484 2.95440 .... 2.94781 2.95660 ....
- 58.7625N / 25: .... .... .... .... 2.98846 2.98187 2.96869 2.95990 .... 2.95166 2.95495 ....
- 58.7555N / 24: .... .... .... .... 2.98791 2.98160 2.96896 2.96264 .... 2.95358 2.95303 ....
- 58.7486N / 23: .... .... .... 2.98682 2.98627 2.97940 2.96841 2.96127 .... 2.95440 2.95056 ....
- 58.7416N / 22: .... .... .... 2.98544 2.98462 2.97693 2.96731 2.95935 .... 2.95276 2.94616 ....
- 58.7346N / 21: .... .... .... 2.98352 2.98297 2.97500 2.96484 2.95797 2.95166 2.94919 2.94507 ....
- 58.7276N / 20: .... .... .... .... 2.98160 2.97226 2.96292 2.95605 2.95138 2.94644 2.94232 ....
- 58.7206N / 19: .... .... .... .... 2.97995 2.96896 2.96209 2.95578 2.95056 2.94452 .... ....
- 58.7137N / 18: .... .... .... .... 2.97858 2.97088 2.96292 2.95440 2.94891 2.94424 .... ....
- 58.7067N / 17: .... .... .... .... 2.97775 2.97391 2.96402 2.95331 2.94699 2.94561 .... ....
- 58.6997N / 16: .... .... .... .... 2.97748 2.97446 2.96457 2.95248 2.94507 2.94616 .... ....
- 58.6927N / 15: .... .... .... .... 2.97803 2.97446 2.96457 2.95056 2.94424 2.94699 .... ....
- 58.6857N / 14: .... .... .... .... 2.97967 2.97446 2.96567 2.94836 2.94397 2.94726 .... ....
- 58.6787N / 13: .... .... .... .... 2.98050 2.97500 2.96924 2.95193 2.94534 2.94864 .... ....
- 58.6717N / 12: .... .... .... .... 2.98215 2.97638 2.96814 2.95550 2.94424 2.95193 .... ....
- 58.6647N / 11: .... .... .... .... 2.98270 2.97830 2.96539 2.94919 .... 2.95248 .... ....
- 58.6577N / 10: .... .... .... .... 2.98215 2.97885 2.96594 2.94534 .... .... .... ....
- 58.6507N / 9: .... .... .... 2.98160 2.97995 2.97500 2.97088 2.95331 .... .... .... ....
- 58.6437N / 8: .... .... .... .... 2.97967 2.97116 2.97198 2.95852 .... .... .... ....
- 58.6367N / 7: .... .... .... .... 2.98160 2.97500 2.96841 2.96017 .... .... .... ....
- 58.6297N / 6: .... .... .... .... 2.98132 2.97693 2.96896 2.96292 2.94946 .... .... ....
- 58.6227N / 5: .... .... .... .... 2.98160 2.97665 2.97143 2.96155 2.95221 .... .... ....
- 58.6157N / 4: .... .... .... .... 2.96951 2.96814 2.96484 2.95660 2.95138 .... .... ....
- 58.6087N / 3: .... .... .... .... 2.95276 2.95138 2.94397 2.96127 2.94644 .... .... ....
- 58.6017N / 2: .... .... .... .... 2.93957 2.93957 2.93957 2.93957 2.93957 .... .... ....
- 58.5947N / 1: .... .... .... .... 2.93957 2.93957 2.93957 2.93957 2.93957 .... .... ....
-
-
-! ******** V500 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn_odd_variable_name
-! make sure memory is limited; otherwise the abstract axis will list
-let save_mem = ($ferret_memory)
- !-> DEFINE VARIABLE save_mem = 25.6
-set mem /size=10
-use weird_name1.cdf
-sh data
- currently SET data sets:
- 1> ./weird_name1.cdf (default)
- name title I J K L M N
- v1 lower case v1 1:20 ... ... ... ... ...
- v2-and-minus
- SIN(2+I/10) 1:20 ... ... ... ... ...
- V1 Upper case V1 1:20 ... ... ... ... ...
- I SIN(4+I/10) 1:20 ... ... ... ... ...
- X SIN(5+I/10) 1:20 ... ... ... ... ...
-
-set mode ignore
-list v1
- VARIABLE : Upper case V1
- FILENAME : weird_name1.cdf
- SUBSET : 20 points (X)
- 1 / 1: 0.041581
- 2 / 2: -0.058374
- 3 / 3: -0.157746
- 4 / 4: -0.255541
- 5 / 5: -0.350783
- 6 / 6: -0.442520
- 7 / 7: -0.529836
- 8 / 8: -0.611858
- 9 / 9: -0.687766
- 10 / 10: -0.756802
- 11 / 11: -0.818277
- 12 / 12: -0.871576
- 13 / 13: -0.916166
- 14 / 14: -0.951602
- 15 / 15: -0.977530
- 16 / 16: -0.993691
- 17 / 17: -0.999923
- 18 / 18: -0.996165
- 19 / 19: -0.982453
- 20 / 20: -0.958924
-list 'v1'
- VARIABLE : lower case v1
- FILENAME : weird_name1.cdf
- SUBSET : 20 points (X)
- 1 / 1: 0.891207
- 2 / 2: 0.932039
- 3 / 3: 0.963558
- 4 / 4: 0.985450
- 5 / 5: 0.997495
- 6 / 6: 0.999574
- 7 / 7: 0.991665
- 8 / 8: 0.973848
- 9 / 9: 0.946300
- 10 / 10: 0.909297
- 11 / 11: 0.863209
- 12 / 12: 0.808496
- 13 / 13: 0.745705
- 14 / 14: 0.675463
- 15 / 15: 0.598472
- 16 / 16: 0.515501
- 17 / 17: 0.427380
- 18 / 18: 0.334988
- 19 / 19: 0.239249
- 20 / 20: 0.141120
-list v2-and-minus ! Deliberate error
-list 'v2-and-minus' ! Now the proper syntax
- VARIABLE : SIN(2+I/10)
- FILENAME : weird_name1.cdf
- SUBSET : 20 points (X)
- 1 / 1: 0.863209
- 2 / 2: 0.808496
- 3 / 3: 0.745705
- 4 / 4: 0.675463
- 5 / 5: 0.598472
- 6 / 6: 0.515501
- 7 / 7: 0.427380
- 8 / 8: 0.334988
- 9 / 9: 0.239249
- 10 / 10: 0.141120
- 11 / 11: 0.041581
- 12 / 12: -0.058374
- 13 / 13: -0.157746
- 14 / 14: -0.255541
- 15 / 15: -0.350783
- 16 / 16: -0.442520
- 17 / 17: -0.529836
- 18 / 18: -0.611858
- 19 / 19: -0.687766
- 20 / 20: -0.756802
-list x ! Deliberate error
-list 'X' ! Now the proper syntax
- VARIABLE : SIN(5+I/10)
- FILENAME : weird_name1.cdf
- SUBSET : 20 points (X)
- 1 / 1: -0.925815
- 2 / 2: -0.883455
- 3 / 3: -0.832267
- 4 / 4: -0.772764
- 5 / 5: -0.705540
- 6 / 6: -0.631267
- 7 / 7: -0.550686
- 8 / 8: -0.464602
- 9 / 9: -0.373877
- 10 / 10: -0.279415
- 11 / 11: -0.182163
- 12 / 12: -0.083090
- 13 / 13: 0.016814
- 14 / 14: 0.116549
- 15 / 15: 0.215120
- 16 / 16: 0.311541
- 17 / 17: 0.404850
- 18 / 18: 0.494114
- 19 / 19: 0.578440
- 20 / 20: 0.656987
-list i ! Deliberate error
-list 'i' ! Deliberate error
-list 'I' ! Now the proper syntax
- VARIABLE : SIN(4+I/10)
- FILENAME : weird_name1.cdf
- SUBSET : 20 points (X)
- 1 / 1: -0.818277
- 2 / 2: -0.871576
- 3 / 3: -0.916166
- 4 / 4: -0.951602
- 5 / 5: -0.977530
- 6 / 6: -0.993691
- 7 / 7: -0.999923
- 8 / 8: -0.996165
- 9 / 9: -0.982453
- 10 / 10: -0.958924
- 11 / 11: -0.925815
- 12 / 12: -0.883455
- 13 / 13: -0.832267
- 14 / 14: -0.772764
- 15 / 15: -0.705540
- 16 / 16: -0.631267
- 17 / 17: -0.550686
- 18 / 18: -0.464602
- 19 / 19: -0.373877
- 20 / 20: -0.279415
-list 'V1' - 'v1'
- VARIABLE : 'V1' - 'v1'
- FILENAME : weird_name1.cdf
- SUBSET : 20 points (X)
- 1 / 1: -0.84963
- 2 / 2: -0.99041
- 3 / 3: -1.12130
- 4 / 4: -1.24099
- 5 / 5: -1.34828
- 6 / 6: -1.44209
- 7 / 7: -1.52150
- 8 / 8: -1.58571
- 9 / 9: -1.63407
- 10 / 10: -1.66610
- 11 / 11: -1.68149
- 12 / 12: -1.68007
- 13 / 13: -1.66187
- 14 / 14: -1.62707
- 15 / 15: -1.57600
- 16 / 16: -1.50919
- 17 / 17: -1.42730
- 18 / 18: -1.33115
- 19 / 19: -1.22170
- 20 / 20: -1.10004
-list 'I'[i=6:15 at sbx:10] - 'X'[i=6:15 at ave]
- VARIABLE : 'I'[I=6:15 at SBX:10] - 'X'[I=6:15 at AVE]
- FILENAME : weird_name1.cdf
- SUBSET : 10 points (X)
- 6 / 6: -0.730346
- 7 / 7: -0.736317
- 8 / 8: -0.732716
- 9 / 9: -0.719579
- 10 / 10: -0.697038
- 11 / 11: -0.665317
- 12 / 12: -0.624734
- 13 / 13: -0.575694
- 14 / 14: -0.518687
- 15 / 15: -0.454283
-list v1[i=6:15 at sbx:3]
- VARIABLE : Upper case V1
- box smoothed by 3 pts on X
- FILENAME : weird_name1.cdf
- SUBSET : 10 points (X)
- 6 / 6: -0.441047
- 7 / 7: -0.528071
- 8 / 8: -0.609820
- 9 / 9: -0.685476
- 10 / 10: -0.754282
- 11 / 11: -0.815552
- 12 / 12: -0.868673
- 13 / 13: -0.913115
- 14 / 14: -0.948433
- 15 / 15: -0.974274
-list 'v1'[i=6:15 at sbx:3]
- VARIABLE : lower case v1
- box smoothed by 3 pts on X
- FILENAME : weird_name1.cdf
- SUBSET : 10 points (X)
- 6 / 6: 0.996244
- 7 / 7: 0.988362
- 8 / 8: 0.970604
- 9 / 9: 0.943148
- 10 / 10: 0.906269
- 11 / 11: 0.860334
- 12 / 12: 0.805804
- 13 / 13: 0.743222
- 14 / 14: 0.673213
- 15 / 15: 0.596479
-list 'I'-'X'/'v2-and-minus'
- VARIABLE : 'I'-'X'/'v2-and-minus'
- FILENAME : weird_name1.cdf
- SUBSET : 20 points (X)
- 1 / 1: 0.25425
- 2 / 2: 0.22114
- 3 / 3: 0.19991
- 4 / 4: 0.19245
- 5 / 5: 0.20137
- 6 / 6: 0.23088
- 7 / 7: 0.28859
- 8 / 8: 0.39076
- 9 / 9: 0.58026
- 10 / 10: 1.02106
- 11 / 11: 3.45512
- 12 / 12: -2.30685
- 13 / 13: -0.72568
- 14 / 14: -0.31668
- 15 / 15: -0.09228
- 16 / 16: 0.07275
- 17 / 17: 0.21342
- 18 / 18: 0.34296
- 19 / 19: 0.46716
- 20 / 20: 0.58869
-list v1[i=@max]
- VARIABLE : Upper case V1
- FILENAME : weird_name1.cdf
- X : 0.5 to 20.5 (maximum)
- 0.0415808
-list 'v1'[i=@max]
- VARIABLE : lower case v1
- FILENAME : weird_name1.cdf
- X : 0.5 to 20.5 (maximum)
- 0.999574
-list v2-and-minus[i=5:15 at ddc] ! Deliberate error
-list 'v2-and-minus'[i=5:15 at ddc] ! Now the proper syntax
- VARIABLE : SIN(2+I/10)
- centered derivative on X
- FILENAME : weird_name1.cdf
- SUBSET : 11 points (X)
- 5 / 5: -0.0799809
- 6 / 6: -0.0855462
- 7 / 7: -0.0902566
- 8 / 8: -0.0940653
- 9 / 9: -0.0969341
- 10 / 10: -0.0988342
- 11 / 11: -0.0997471
- 12 / 12: -0.0996632
- 13 / 13: -0.0985835
- 14 / 14: -0.0965188
- 15 / 15: -0.0934896
-! restore orginal memory size
-set mem /size=`save_mem`
- !-> set mem /size=25.6
-
-GO bn_reset
-cancel mode verify
-GO bn_test_stream
-
-canc data/all
-
-sp rm -f permutedBinaryTest.dat
-list/i=1:48/form=stream/file=permutedBinaryTest.dat i
-sp rm -f junk.dat
-list/i=1:5/form=stream/file=junk.dat i
-
-
-
-!
-! Following are intentional errors...
-!
-set mode ignore
-
-!
-! Ultra large grid
-
-canc data/all
-
-def axis/x=1:1000000000:1 xax
-def axis/y=1:2:1 yax
-def axis/z=1:3:1 zax
-def axis/t=1:4:1 tax
-def grid/x=xax/y=yax/z=zax/t=tax mygrid
-
-file/format=stream/var=num/grid=mygrid junk.dat
-load num
-
-!
-! Semilarge grid
-!
-
-canc data/all
-
-def axis/x=1:1000000000:1 xax
-def axis/y=1:1:1 yax
-def axis/z=1:1:1 zax
-def axis/t=1:1:1 tax
-def grid/x=xax/y=yax/z=zax/t=tax mygrid
-
-file/format=stream/var=num/grid=mygrid junk.dat
-load num
-
-canc data/all
-
-def axis/x=1:1:1 xax
-def axis/y=1:2:1 yax
-def axis/z=1:3:1 zax
-def axis/t=1:4:1 tax
-def grid/x=xax/y=yax/z=zax/t=tax mygrid
-
-
-
-! Non-existent file
-file/format=stream/var=num/grid=mygrid NoSuchFile.dat
-
-! File that doesn't match specified size
-file/format=stream/var=num/grid=mygrid junk.dat
-load num
-
-! Try listing with V permutation (disable: hangs Ferret)
-!list/clobber/file=foobar.dat/form=str/order=badsyntax/i=1:100 i
-
-! Try reading in with V permutation for non-stream data
-file/var=num/order=vxyzt/grid=mygrid junk.dat
-
-! Try /type flag with non-stream data
-file/type=i2/grid=mygrid junk.dat
-
-! Try /swap flag with non-stream data
-file/type=i2/grid=mygrid junk.dat
-
-! Try bad type flag
-file/var=num/type=i3/grid=mygrid/form=stream junk.dat
-
-! Try list of types that is smaller than list of variables
-file/var=num,num1,num2/type=i2,i1/form=stream junk.dat
-
-canc dat/all
-canc mode ignore
-
-!!OK, load file in 'normal order'
-file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
-list num
- VARIABLE : NUM
- FILENAME : permutedBinaryTest.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 3.0000 4.0000
- 3 / 3: 5.0000 6.0000
- ---- L:2 T: 2
- 1 / 1: 7.0000 8.0000
- 2 / 2: 9.0000 10.0000
- 3 / 3: 11.0000 12.0000
- ---- L:3 T: 3
- 1 / 1: 13.0000 14.0000
- 2 / 2: 15.0000 16.0000
- 3 / 3: 17.0000 18.0000
- ---- L:4 T: 4
- 1 / 1: 19.0000 20.0000
- 2 / 2: 21.0000 22.0000
- 3 / 3: 23.0000 24.0000
-list num1
- VARIABLE : NUM1
- FILENAME : permutedBinaryTest.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 25.0000 26.0000
- 2 / 2: 27.0000 28.0000
- 3 / 3: 29.0000 30.0000
- ---- L:2 T: 2
- 1 / 1: 31.0000 32.0000
- 2 / 2: 33.0000 34.0000
- 3 / 3: 35.0000 36.0000
- ---- L:3 T: 3
- 1 / 1: 37.0000 38.0000
- 2 / 2: 39.0000 40.0000
- 3 / 3: 41.0000 42.0000
- ---- L:4 T: 4
- 1 / 1: 43.0000 44.0000
- 2 / 2: 45.0000 46.0000
- 3 / 3: 47.0000 48.0000
-
-!! Load file w/o order qualifier (should be same as above)
-file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
-list num
- VARIABLE : NUM
- FILENAME : permutedBinaryTest.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 1.0000 2.0000
- 2 / 2: 3.0000 4.0000
- 3 / 3: 5.0000 6.0000
- ---- L:2 T: 2
- 1 / 1: 7.0000 8.0000
- 2 / 2: 9.0000 10.0000
- 3 / 3: 11.0000 12.0000
- ---- L:3 T: 3
- 1 / 1: 13.0000 14.0000
- 2 / 2: 15.0000 16.0000
- 3 / 3: 17.0000 18.0000
- ---- L:4 T: 4
- 1 / 1: 19.0000 20.0000
- 2 / 2: 21.0000 22.0000
- 3 / 3: 23.0000 24.0000
-list num1
- VARIABLE : NUM1
- FILENAME : permutedBinaryTest.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 25.0000 26.0000
- 2 / 2: 27.0000 28.0000
- 3 / 3: 29.0000 30.0000
- ---- L:2 T: 2
- 1 / 1: 31.0000 32.0000
- 2 / 2: 33.0000 34.0000
- 3 / 3: 35.0000 36.0000
- ---- L:3 T: 3
- 1 / 1: 37.0000 38.0000
- 2 / 2: 39.0000 40.0000
- 3 / 3: 41.0000 42.0000
- ---- L:4 T: 4
- 1 / 1: 43.0000 44.0000
- 2 / 2: 45.0000 46.0000
- 3 / 3: 47.0000 48.0000
-
-
-!! Permute tzyxv
-file/format=str/var=num,num1/grid=mygrid/order=tzyxv permutedBinaryTest.dat
-list num
- VARIABLE : NUM
- FILENAME : permutedBinaryTest.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 1.0000 13.0000
- 2 / 2: 5.0000 17.0000
- 3 / 3: 9.0000 21.0000
- ---- L:2 T: 2
- 1 / 1: 2.0000 14.0000
- 2 / 2: 6.0000 18.0000
- 3 / 3: 10.0000 22.0000
- ---- L:3 T: 3
- 1 / 1: 3.0000 15.0000
- 2 / 2: 7.0000 19.0000
- 3 / 3: 11.0000 23.0000
- ---- L:4 T: 4
- 1 / 1: 4.0000 16.0000
- 2 / 2: 8.0000 20.0000
- 3 / 3: 12.0000 24.0000
-list num1
- VARIABLE : NUM1
- FILENAME : permutedBinaryTest.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 25.0000 37.0000
- 2 / 2: 29.0000 41.0000
- 3 / 3: 33.0000 45.0000
- ---- L:2 T: 2
- 1 / 1: 26.0000 38.0000
- 2 / 2: 30.0000 42.0000
- 3 / 3: 34.0000 46.0000
- ---- L:3 T: 3
- 1 / 1: 27.0000 39.0000
- 2 / 2: 31.0000 43.0000
- 3 / 3: 35.0000 47.0000
- ---- L:4 T: 4
- 1 / 1: 28.0000 40.0000
- 2 / 2: 32.0000 44.0000
- 3 / 3: 36.0000 48.0000
-
-!!Try permuted v
-file/format=str/var=num,num1/grid=mygrid/order=vxyzt permutedBinaryTest.dat
-list num
- VARIABLE : NUM
- FILENAME : permutedBinaryTest.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 1.0000 3.0000
- 2 / 2: 5.0000 7.0000
- 3 / 3: 9.0000 11.0000
- ---- L:2 T: 2
- 1 / 1: 13.0000 15.0000
- 2 / 2: 17.0000 19.0000
- 3 / 3: 21.0000 23.0000
- ---- L:3 T: 3
- 1 / 1: 25.0000 27.0000
- 2 / 2: 29.0000 31.0000
- 3 / 3: 33.0000 35.0000
- ---- L:4 T: 4
- 1 / 1: 37.0000 39.0000
- 2 / 2: 41.0000 43.0000
- 3 / 3: 45.0000 47.0000
-list num1
- VARIABLE : NUM1
- FILENAME : permutedBinaryTest.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 2.0000 4.0000
- 2 / 2: 6.0000 8.0000
- 3 / 3: 10.0000 12.0000
- ---- L:2 T: 2
- 1 / 1: 14.0000 16.0000
- 2 / 2: 18.0000 20.0000
- 3 / 3: 22.0000 24.0000
- ---- L:3 T: 3
- 1 / 1: 26.0000 28.0000
- 2 / 2: 30.0000 32.0000
- 3 / 3: 34.0000 36.0000
- ---- L:4 T: 4
- 1 / 1: 38.0000 40.0000
- 2 / 2: 42.0000 44.0000
- 3 / 3: 46.0000 48.0000
-
-!! Test stuff for different data types (files previously generated by matlab
-!! for big endian architecture)
-file/format=str/var=num,num1/grid=mygrid/type=i1 byte.dat
-list num1
- VARIABLE : NUM1
- FILENAME : byte.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 24.0000 25.0000
- 2 / 2: 26.0000 27.0000
- 3 / 3: 28.0000 29.0000
- ---- L:2 T: 2
- 1 / 1: 30.0000 31.0000
- 2 / 2: 32.0000 33.0000
- 3 / 3: 34.0000 35.0000
- ---- L:3 T: 3
- 1 / 1: 36.0000 37.0000
- 2 / 2: 38.0000 39.0000
- 3 / 3: 40.0000 41.0000
- ---- L:4 T: 4
- 1 / 1: 42.0000 43.0000
- 2 / 2: 44.0000 45.0000
- 3 / 3: 46.0000 47.0000
-
-file/format=str/var=num,num1/grid=mygrid/type=i2/swap short.dat
-list num1
- VARIABLE : NUM1
- FILENAME : short.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 24.0000 25.0000
- 2 / 2: 26.0000 27.0000
- 3 / 3: 28.0000 29.0000
- ---- L:2 T: 2
- 1 / 1: 30.0000 31.0000
- 2 / 2: 32.0000 33.0000
- 3 / 3: 34.0000 35.0000
- ---- L:3 T: 3
- 1 / 1: 36.0000 37.0000
- 2 / 2: 38.0000 39.0000
- 3 / 3: 40.0000 41.0000
- ---- L:4 T: 4
- 1 / 1: 42.0000 43.0000
- 2 / 2: 44.0000 45.0000
- 3 / 3: 46.0000 47.0000
-
-file/format=str/var=num,num1/grid=mygrid/type=i4/swap int.dat
-list num1
- VARIABLE : NUM1
- FILENAME : int.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 24.0000 25.0000
- 2 / 2: 26.0000 27.0000
- 3 / 3: 28.0000 29.0000
- ---- L:2 T: 2
- 1 / 1: 30.0000 31.0000
- 2 / 2: 32.0000 33.0000
- 3 / 3: 34.0000 35.0000
- ---- L:3 T: 3
- 1 / 1: 36.0000 37.0000
- 2 / 2: 38.0000 39.0000
- 3 / 3: 40.0000 41.0000
- ---- L:4 T: 4
- 1 / 1: 42.0000 43.0000
- 2 / 2: 44.0000 45.0000
- 3 / 3: 46.0000 47.0000
-
-file/format=str/var=num,num1/grid=mygrid/type=r4/swap float.dat
-list num1
- VARIABLE : NUM1
- FILENAME : float.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 24.0000 25.0000
- 2 / 2: 26.0000 27.0000
- 3 / 3: 28.0000 29.0000
- ---- L:2 T: 2
- 1 / 1: 30.0000 31.0000
- 2 / 2: 32.0000 33.0000
- 3 / 3: 34.0000 35.0000
- ---- L:3 T: 3
- 1 / 1: 36.0000 37.0000
- 2 / 2: 38.0000 39.0000
- 3 / 3: 40.0000 41.0000
- ---- L:4 T: 4
- 1 / 1: 42.0000 43.0000
- 2 / 2: 44.0000 45.0000
- 3 / 3: 46.0000 47.0000
-
-file/format=str/var=num,num1/grid=mygrid/type=r8/swap double.dat
-list num1
- VARIABLE : NUM1
- FILENAME : double.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 24.0000 25.0000
- 2 / 2: 26.0000 27.0000
- 3 / 3: 28.0000 29.0000
- ---- L:2 T: 2
- 1 / 1: 30.0000 31.0000
- 2 / 2: 32.0000 33.0000
- 3 / 3: 34.0000 35.0000
- ---- L:3 T: 3
- 1 / 1: 36.0000 37.0000
- 2 / 2: 38.0000 39.0000
- 3 / 3: 40.0000 41.0000
- ---- L:4 T: 4
- 1 / 1: 42.0000 43.0000
- 2 / 2: 44.0000 45.0000
- 3 / 3: 46.0000 47.0000
-
-
-!! Test swapped
-file/format=str/var=num,num1/grid=mygrid/type=i1 byteSwapped.dat
-list num1
- VARIABLE : NUM1
- FILENAME : byteSwapped.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 24.0000 25.0000
- 2 / 2: 26.0000 27.0000
- 3 / 3: 28.0000 29.0000
- ---- L:2 T: 2
- 1 / 1: 30.0000 31.0000
- 2 / 2: 32.0000 33.0000
- 3 / 3: 34.0000 35.0000
- ---- L:3 T: 3
- 1 / 1: 36.0000 37.0000
- 2 / 2: 38.0000 39.0000
- 3 / 3: 40.0000 41.0000
- ---- L:4 T: 4
- 1 / 1: 42.0000 43.0000
- 2 / 2: 44.0000 45.0000
- 3 / 3: 46.0000 47.0000
-
-file/format=str/var=num,num1/grid=mygrid/type=i2 shortSwapped.dat
-list num1
- VARIABLE : NUM1
- FILENAME : shortSwapped.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 24.0000 25.0000
- 2 / 2: 26.0000 27.0000
- 3 / 3: 28.0000 29.0000
- ---- L:2 T: 2
- 1 / 1: 30.0000 31.0000
- 2 / 2: 32.0000 33.0000
- 3 / 3: 34.0000 35.0000
- ---- L:3 T: 3
- 1 / 1: 36.0000 37.0000
- 2 / 2: 38.0000 39.0000
- 3 / 3: 40.0000 41.0000
- ---- L:4 T: 4
- 1 / 1: 42.0000 43.0000
- 2 / 2: 44.0000 45.0000
- 3 / 3: 46.0000 47.0000
-
-file/format=str/var=num,num1/grid=mygrid/type=i4 intSwapped.dat
-list num1
- VARIABLE : NUM1
- FILENAME : intSwapped.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 24.0000 25.0000
- 2 / 2: 26.0000 27.0000
- 3 / 3: 28.0000 29.0000
- ---- L:2 T: 2
- 1 / 1: 30.0000 31.0000
- 2 / 2: 32.0000 33.0000
- 3 / 3: 34.0000 35.0000
- ---- L:3 T: 3
- 1 / 1: 36.0000 37.0000
- 2 / 2: 38.0000 39.0000
- 3 / 3: 40.0000 41.0000
- ---- L:4 T: 4
- 1 / 1: 42.0000 43.0000
- 2 / 2: 44.0000 45.0000
- 3 / 3: 46.0000 47.0000
-
-file/format=str/var=num,num1/grid=mygrid/type=r4 floatSwapped.dat
-list num1
- VARIABLE : NUM1
- FILENAME : floatSwapped.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 24.0000 25.0000
- 2 / 2: 26.0000 27.0000
- 3 / 3: 28.0000 29.0000
- ---- L:2 T: 2
- 1 / 1: 30.0000 31.0000
- 2 / 2: 32.0000 33.0000
- 3 / 3: 34.0000 35.0000
- ---- L:3 T: 3
- 1 / 1: 36.0000 37.0000
- 2 / 2: 38.0000 39.0000
- 3 / 3: 40.0000 41.0000
- ---- L:4 T: 4
- 1 / 1: 42.0000 43.0000
- 2 / 2: 44.0000 45.0000
- 3 / 3: 46.0000 47.0000
-
-file/format=str/var=num,num1/grid=mygrid/type=r8 doubleSwapped.dat
-list num1
- VARIABLE : NUM1
- FILENAME : doubleSwapped.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 24.0000 25.0000
- 2 / 2: 26.0000 27.0000
- 3 / 3: 28.0000 29.0000
- ---- L:2 T: 2
- 1 / 1: 30.0000 31.0000
- 2 / 2: 32.0000 33.0000
- 3 / 3: 34.0000 35.0000
- ---- L:3 T: 3
- 1 / 1: 36.0000 37.0000
- 2 / 2: 38.0000 39.0000
- 3 / 3: 40.0000 41.0000
- ---- L:4 T: 4
- 1 / 1: 42.0000 43.0000
- 2 / 2: 44.0000 45.0000
- 3 / 3: 46.0000 47.0000
-
-! Test skip
-!file/format=str/var=num,num1/grid=mygrid/type=r8/skip=4/swap skip.dat
-! For double-precision Ferret, /skip=4 stops with error,
-! get correct result with /skip=2 (??)
-file/format=str/var=num,num1/grid=mygrid/type=r8/skip=2/swap skip.dat
-list num1
- VARIABLE : NUM1
- FILENAME : skip.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 24.0000 25.0000
- 2 / 2: 26.0000 27.0000
- 3 / 3: 28.0000 29.0000
- ---- L:2 T: 2
- 1 / 1: 30.0000 31.0000
- 2 / 2: 32.0000 33.0000
- 3 / 3: 34.0000 35.0000
- ---- L:3 T: 3
- 1 / 1: 36.0000 37.0000
- 2 / 2: 38.0000 39.0000
- 3 / 3: 40.0000 41.0000
- ---- L:4 T: 4
- 1 / 1: 42.0000 43.0000
- 2 / 2: 44.0000 45.0000
- 3 / 3: 46.0000 47.0000
-
-
-! Try list of types
-file/format=str/var=num,num1/grid=mygrid/type=r8,i1/swap twoType.dat
-list num
- VARIABLE : NUM
- FILENAME : twoType.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 0.0000 1.0000
- 2 / 2: 2.0000 3.0000
- 3 / 3: 4.0000 5.0000
- ---- L:2 T: 2
- 1 / 1: 6.0000 7.0000
- 2 / 2: 8.0000 9.0000
- 3 / 3: 10.0000 11.0000
- ---- L:3 T: 3
- 1 / 1: 12.0000 13.0000
- 2 / 2: 14.0000 15.0000
- 3 / 3: 16.0000 17.0000
- ---- L:4 T: 4
- 1 / 1: 18.0000 19.0000
- 2 / 2: 20.0000 21.0000
- 3 / 3: 22.0000 23.0000
-list num1
- VARIABLE : NUM1
- FILENAME : twoType.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 24.0000 25.0000
- 2 / 2: 26.0000 27.0000
- 3 / 3: 28.0000 29.0000
- ---- L:2 T: 2
- 1 / 1: 30.0000 31.0000
- 2 / 2: 32.0000 33.0000
- 3 / 3: 34.0000 35.0000
- ---- L:3 T: 3
- 1 / 1: 36.0000 37.0000
- 2 / 2: 38.0000 39.0000
- 3 / 3: 40.0000 41.0000
- ---- L:4 T: 4
- 1 / 1: 42.0000 43.0000
- 2 / 2: 44.0000 45.0000
- 3 / 3: 46.0000 47.0000
-
-! Grand finale of xyvzt permutation with r4,i2 types
-file/format=str/var=num,num1/grid=mygrid/type=r4,i2/order=xyvzt/swap finale.dat
-list num
- VARIABLE : NUM
- FILENAME : finale.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 0.0000 1.0000
- 2 / 2: 2.0000 3.0000
- 3 / 3: 4.0000 5.0000
- ---- L:2 T: 2
- 1 / 1: 6.0000 7.0000
- 2 / 2: 8.0000 9.0000
- 3 / 3: 10.0000 11.0000
- ---- L:3 T: 3
- 1 / 1: 12.0000 13.0000
- 2 / 2: 14.0000 15.0000
- 3 / 3: 16.0000 17.0000
- ---- L:4 T: 4
- 1 / 1: 18.0000 19.0000
- 2 / 2: 20.0000 21.0000
- 3 / 3: 22.0000 23.0000
-list num1
- VARIABLE : NUM1
- FILENAME : finale.dat
- SUBSET : 2 by 3 by 4 points (Y-Z-T)
- X : 1
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 0.0000 1.0000
- 2 / 2: 2.0000 3.0000
- 3 / 3: 4.0000 5.0000
- ---- L:2 T: 2
- 1 / 1: 6.0000 7.0000
- 2 / 2: 8.0000 9.0000
- 3 / 3: 10.0000 11.0000
- ---- L:3 T: 3
- 1 / 1: 12.0000 13.0000
- 2 / 2: 14.0000 15.0000
- 3 / 3: 16.0000 17.0000
- ---- L:4 T: 4
- 1 / 1: 18.0000 19.0000
- 2 / 2: 20.0000 21.0000
- 3 / 3: 22.0000 23.0000
-
-GO bn_reset
-cancel mode verify
-GO bn_define_axes
-! bn_define_axes.jnl
-! *sh* 5/99
-! *sh* 12/99 - with streamlined syntax
-
-! exercise the DEFINE AXIS command
-
-
-! ====================== REGULAR ==================
-! lo:hi:delta
-define axis/x=1:5:1 xax
-show axis/x xax
- name axis # pts start end
- XAX X 5 r 1 5
- Axis span (to cell edges) = 5
-
- I X XBOX XBOXLO
- 1> 1 1 0.5
- 2> 2 1 1.5
- 3> 3 1 2.5
- 4> 4 1 3.5
- 5> 5 1 4.5
-define axis/x=1:5:1/edges xax
-show axis/x xax
- name axis # pts start end
- XAX X 4 r 1.5 4.5
- Axis span (to cell edges) = 4
-
- I X XBOX XBOXLO
- 1> 1.5 1 1
- 2> 2.5 1 2
- 3> 3.5 1 3
- 4> 4.5 1 4
-
-! lo:hi /NPOINTS>1
-define axis/x=1:5/npoints=5 xax
-show axis/x xax
- name axis # pts start end
- XAX X 5 r 1 5
- Axis span (to cell edges) = 5
-
- I X XBOX XBOXLO
- 1> 1 1 0.5
- 2> 2 1 1.5
- 3> 3 1 2.5
- 4> 4 1 3.5
- 5> 5 1 4.5
-define axis/x=1:5/npoints=4/edges xax
-show axis/x xax
- name axis # pts start end
- XAX X 4 r 1.5 4.5
- Axis span (to cell edges) = 4
-
- I X XBOX XBOXLO
- 1> 1.5 1 1
- 2> 2.5 1 2
- 3> 3.5 1 3
- 4> 4.5 1 4
-
-! lo:hi /NPOINTS=1
-set mode ignore; define axis/x=1:5/npoints=1 xax; cancel mode ignore
-define axis/x=5/npoints=1 xax
-show axis/x xax
- name axis # pts start end
- XAX X 1 r 5 5
- Axis span (to cell edges) = 1
-
- I X XBOX XBOXLO
- 1> 5 1 4.5
-set mode ignore; define axis/x=5/npoints=1/edges xax; cancel mode ignore
-define axis/x=1:5/npoints=1/edges xax
-show axis/x xax
- name axis # pts start end
- XAX X 1 r 3 3
- Axis span (to cell edges) = 4
-
- I X XBOX XBOXLO
- 1> 3 4 1
-
-!======= calendar
-! lo:hi:delta
-define axis/t=15-jan-1980:25-jan-1980:1/unit=days tax
-show axis/t tax
- name axis # pts start end
- TAX TIME 11 r 15-JAN-1980 00:00 25-JAN-1980 00:00
-T0 = 15-JAN-1901
- Axis span (to cell edges) = 11
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 15-JAN-1980 00:00:00 1 14-JAN-1980 12:00:00 28854
- 2> 16-JAN-1980 00:00:00 1 15-JAN-1980 12:00:00 28855
- 3> 17-JAN-1980 00:00:00 1 16-JAN-1980 12:00:00 28856
- 4> 18-JAN-1980 00:00:00 1 17-JAN-1980 12:00:00 28857
- 5> 19-JAN-1980 00:00:00 1 18-JAN-1980 12:00:00 28858
- 6> 20-JAN-1980 00:00:00 1 19-JAN-1980 12:00:00 28859
- 7> 21-JAN-1980 00:00:00 1 20-JAN-1980 12:00:00 28860
- 8> 22-JAN-1980 00:00:00 1 21-JAN-1980 12:00:00 28861
- 9> 23-JAN-1980 00:00:00 1 22-JAN-1980 12:00:00 28862
- 10> 24-JAN-1980 00:00:00 1 23-JAN-1980 12:00:00 28863
- 11> 25-JAN-1980 00:00:00 1 24-JAN-1980 12:00:00 28864
-define axis/t=15-jan-1980:25-jan-1980:1/unit=days/edges tax
-show axis/t tax
- name axis # pts start end
- TAX TIME 10 r 15-JAN-1980 12:00 24-JAN-1980 12:00
-T0 = 15-JAN-1901
- Axis span (to cell edges) = 10
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 15-JAN-1980 12:00:00 1 15-JAN-1980 00:00:00 28854.5
- 2> 16-JAN-1980 12:00:00 1 16-JAN-1980 00:00:00 28855.5
- 3> 17-JAN-1980 12:00:00 1 17-JAN-1980 00:00:00 28856.5
- 4> 18-JAN-1980 12:00:00 1 18-JAN-1980 00:00:00 28857.5
- 5> 19-JAN-1980 12:00:00 1 19-JAN-1980 00:00:00 28858.5
- 6> 20-JAN-1980 12:00:00 1 20-JAN-1980 00:00:00 28859.5
- 7> 21-JAN-1980 12:00:00 1 21-JAN-1980 00:00:00 28860.5
- 8> 22-JAN-1980 12:00:00 1 22-JAN-1980 00:00:00 28861.5
- 9> 23-JAN-1980 12:00:00 1 23-JAN-1980 00:00:00 28862.5
- 10> 24-JAN-1980 12:00:00 1 24-JAN-1980 00:00:00 28863.5
-
-! lo:hi /NPOINTS>1
-define axis/t=15-jan-1980:25-jan-1980/npoints=11/unit=days tax
-show axis/t tax
- name axis # pts start end
- TAX TIME 11 r 15-JAN-1980 00:00 25-JAN-1980 00:00
-T0 = 15-JAN-1901
- Axis span (to cell edges) = 11
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 15-JAN-1980 00:00:00 1 14-JAN-1980 12:00:00 28854
- 2> 16-JAN-1980 00:00:00 1 15-JAN-1980 12:00:00 28855
- 3> 17-JAN-1980 00:00:00 1 16-JAN-1980 12:00:00 28856
- 4> 18-JAN-1980 00:00:00 1 17-JAN-1980 12:00:00 28857
- 5> 19-JAN-1980 00:00:00 1 18-JAN-1980 12:00:00 28858
- 6> 20-JAN-1980 00:00:00 1 19-JAN-1980 12:00:00 28859
- 7> 21-JAN-1980 00:00:00 1 20-JAN-1980 12:00:00 28860
- 8> 22-JAN-1980 00:00:00 1 21-JAN-1980 12:00:00 28861
- 9> 23-JAN-1980 00:00:00 1 22-JAN-1980 12:00:00 28862
- 10> 24-JAN-1980 00:00:00 1 23-JAN-1980 12:00:00 28863
- 11> 25-JAN-1980 00:00:00 1 24-JAN-1980 12:00:00 28864
-define axis/t=15-jan-1980:25-jan-1980/npoints=10/unit=days/edges tax
-show axis/t tax
- name axis # pts start end
- TAX TIME 10 r 15-JAN-1980 12:00 24-JAN-1980 12:00
-T0 = 15-JAN-1901
- Axis span (to cell edges) = 10
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 15-JAN-1980 12:00:00 1 15-JAN-1980 00:00:00 28854.5
- 2> 16-JAN-1980 12:00:00 1 16-JAN-1980 00:00:00 28855.5
- 3> 17-JAN-1980 12:00:00 1 17-JAN-1980 00:00:00 28856.5
- 4> 18-JAN-1980 12:00:00 1 18-JAN-1980 00:00:00 28857.5
- 5> 19-JAN-1980 12:00:00 1 19-JAN-1980 00:00:00 28858.5
- 6> 20-JAN-1980 12:00:00 1 20-JAN-1980 00:00:00 28859.5
- 7> 21-JAN-1980 12:00:00 1 21-JAN-1980 00:00:00 28860.5
- 8> 22-JAN-1980 12:00:00 1 22-JAN-1980 00:00:00 28861.5
- 9> 23-JAN-1980 12:00:00 1 23-JAN-1980 00:00:00 28862.5
- 10> 24-JAN-1980 12:00:00 1 24-JAN-1980 00:00:00 28863.5
-
-
-! lo:hi /NPOINTS=1
-set mode ignore; define axis/t=15-jan-1980:25-jan-1980/npoints=1/unit=days tax; cancel mode ignore
-define axis/t=15-jan-1980/npoints=1/unit=days tax
-show axis/t tax
- name axis # pts start end
- TAX TIME 1 r 15-JAN-1980 00:00 15-JAN-1980 00:00
-T0 = 15-JAN-1901
- Axis span (to cell edges) = 1
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 15-JAN-1980 00:00:00 1 14-JAN-1980 12:00:00 28854
-set mode ignore; define axis/t=15-jan-1980/npoints=1/unit=days/edges tax; cancel mode ignore
-define axis/t=15-jan-1980:25-jan-1980/npoints=1/unit=days/edges tax
-show axis/t tax
- name axis # pts start end
- TAX TIME 1 r 20-JAN-1980 00:00 20-JAN-1980 00:00
-T0 = 15-JAN-1901
- Axis span (to cell edges) = 10
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 20-JAN-1980 00:00:00 10 15-JAN-1980 00:00:00 28859
-
-! =============== IRREGULAR ===================
-define axis/x/from_data/name=xax {1,2,5}
-show axis/x xax
- name axis # pts start end
- XAX X 3 i 1 5
- Axis span (to cell edges) = 6
-
- I X XBOX XBOXLO
- 1> 1 1 0.5
- 2> 2 2 1.5
- 3> 5 3 3.5
-define axis/x/from_data/name=xax/edges {1,2,5}
-show axis/x xax
- name axis # pts start end
- XAX X 2 i 1.5 3.5
- Axis span (to cell edges) = 4
-
- I X XBOX XBOXLO
- 1> 1.5 1 1
- 2> 3.5 3 2
-
-!======= calendar
-define axis/t/from_data/name=tax/unit=days/t0=1-jan-1990 {1,2,5}
-show axis/t tax
- name axis # pts start end
- TAX TIME 3 i 02-JAN-1990 00:00 06-JAN-1990 00:00
-T0 = 1-JAN-1990
- Axis span (to cell edges) = 6
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 02-JAN-1990 00:00:00 1 01-JAN-1990 12:00:00 1
- 2> 03-JAN-1990 00:00:00 2 02-JAN-1990 12:00:00 2
- 3> 06-JAN-1990 00:00:00 3 04-JAN-1990 12:00:00 5
-define axis/t/from_data/name=tax/unit=days/t0=1-jan-1990/edges {1,2,5}
-show axis/t tax
- name axis # pts start end
- TAX TIME 2 i 02-JAN-1990 12:00 04-JAN-1990 12:00
-T0 = 1-JAN-1990
- Axis span (to cell edges) = 4
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 02-JAN-1990 12:00:00 1 02-JAN-1990 00:00:00 1.5
- 2> 04-JAN-1990 12:00:00 3 03-JAN-1990 00:00:00 3.5
-
-! real monthly calendar
-let month = MOD(l-1,12)+1
-let add_year = INT((l-1)/12)
-let tstep = DAYS1900(1980+add_year,month,1)
-define axis/from_data/T/units=days/name=tax/t0=1-jan-1900/edges tstep[l=1:`20*12+1`]
- !-> define axis/from_data/T/units=days/name=tax/t0=1-jan-1900/edges tstep[l=1:241]
-show axis/l=1:20 tax
- name axis # pts start end
- TAX TIME 240 i 16-JAN-1980 12:00 16-DEC-1999 12:00
-T0 = 1-JAN-1900
- Axis span (to cell edges) = 7305
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 16-JAN-1980 12:00:00 31 01-JAN-1980 00:00:00 29234.5
- 2> 15-FEB-1980 12:00:00 29 01-FEB-1980 00:00:00 29264.5
- 3> 16-MAR-1980 12:00:00 31 01-MAR-1980 00:00:00 29294.5
- 4> 16-APR-1980 00:00:00 30 01-APR-1980 00:00:00 29325
- 5> 16-MAY-1980 12:00:00 31 01-MAY-1980 00:00:00 29355.5
- 6> 16-JUN-1980 00:00:00 30 01-JUN-1980 00:00:00 29386
- 7> 16-JUL-1980 12:00:00 31 01-JUL-1980 00:00:00 29416.5
- 8> 16-AUG-1980 12:00:00 31 01-AUG-1980 00:00:00 29447.5
- 9> 16-SEP-1980 00:00:00 30 01-SEP-1980 00:00:00 29478
- 10> 16-OCT-1980 12:00:00 31 01-OCT-1980 00:00:00 29508.5
- 11> 16-NOV-1980 00:00:00 30 01-NOV-1980 00:00:00 29539
- 12> 16-DEC-1980 12:00:00 31 01-DEC-1980 00:00:00 29569.5
- 13> 16-JAN-1981 12:00:00 31 01-JAN-1981 00:00:00 29600.5
- 14> 15-FEB-1981 00:00:00 28 01-FEB-1981 00:00:00 29630
- 15> 16-MAR-1981 12:00:00 31 01-MAR-1981 00:00:00 29659.5
- 16> 16-APR-1981 00:00:00 30 01-APR-1981 00:00:00 29690
- 17> 16-MAY-1981 12:00:00 31 01-MAY-1981 00:00:00 29720.5
- 18> 16-JUN-1981 00:00:00 30 01-JUN-1981 00:00:00 29751
- 19> 16-JUL-1981 12:00:00 31 01-JUL-1981 00:00:00 29781.5
- 20> 16-AUG-1981 12:00:00 31 01-AUG-1981 00:00:00 29812.5
-show axis/l=1:240:12 tax
- name axis # pts start end
- TAX TIME 240 i 16-JAN-1980 12:00 16-DEC-1999 12:00
-T0 = 1-JAN-1900
- Axis span (to cell edges) = 7305
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 16-JAN-1980 12:00:00 31 01-JAN-1980 00:00:00 29234.5
- 13> 16-JAN-1981 12:00:00 31 01-JAN-1981 00:00:00 29600.5
- 25> 16-JAN-1982 12:00:00 31 01-JAN-1982 00:00:00 29965.5
- 37> 16-JAN-1983 12:00:00 31 01-JAN-1983 00:00:00 30330.5
- 49> 16-JAN-1984 12:00:00 31 01-JAN-1984 00:00:00 30695.5
- 61> 16-JAN-1985 12:00:00 31 01-JAN-1985 00:00:00 31061.5
- 73> 16-JAN-1986 12:00:00 31 01-JAN-1986 00:00:00 31426.5
- 85> 16-JAN-1987 12:00:00 31 01-JAN-1987 00:00:00 31791.5
- 97> 16-JAN-1988 12:00:00 31 01-JAN-1988 00:00:00 32156.5
- 109> 16-JAN-1989 12:00:00 31 01-JAN-1989 00:00:00 32522.5
- 121> 16-JAN-1990 12:00:00 31 01-JAN-1990 00:00:00 32887.5
- 133> 16-JAN-1991 12:00:00 31 01-JAN-1991 00:00:00 33252.5
- 145> 16-JAN-1992 12:00:00 31 01-JAN-1992 00:00:00 33617.5
- 157> 16-JAN-1993 12:00:00 31 01-JAN-1993 00:00:00 33983.5
- 169> 16-JAN-1994 12:00:00 31 01-JAN-1994 00:00:00 34348.5
- 181> 16-JAN-1995 12:00:00 31 01-JAN-1995 00:00:00 34713.5
- 193> 16-JAN-1996 12:00:00 31 01-JAN-1996 00:00:00 35078.5
- 205> 16-JAN-1997 12:00:00 31 01-JAN-1997 00:00:00 35444.5
- 217> 16-JAN-1998 12:00:00 31 01-JAN-1998 00:00:00 35809.5
- 229> 16-JAN-1999 12:00:00 31 01-JAN-1999 00:00:00 36174.5
-
-! modulo axis for arbitrary time interval
-define axis/t=1-jan-0001:1-jan-0002:1/unit=days/t0=1-jan-0000 tencoding
-let tstep = t[gt=tencoding]
-let start_date = tstep[t=15-mar-0001]
-let end_date = tstep[t=27-may-0001]
-define axis/from_data/T/units=days/name=tax/t0=1-jan-0000/edges/modulo {`start_date,p=7`,`end_date,p=7`,`start_date+365.2425,p=7`}
- !-> define axis/from_data/T/units=days/name=tax/t0=1-jan-0000/edges/modulo {439,512,804.2425}
-show axis/l=1:6 tax
- name axis # pts start end
- TAX TIME 2mi 20-APR 12:00 20-OCT 02:54
-T0 = 1-JAN-0000
- Axis span (to cell edges) = 365.2425 (modulo length = axis span)
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 20-APR 12:00:00 73 15-MAR 00:00:00 475.5
- 2> 20-OCT 02:54:35 292.2425 27-MAY 00:00:00 658.1212
- 3> 20-APR-0002 17:49:12 73 15-MAR-0002 05:49:12 840.7425
- 4> 20-OCT-0002 08:43:47 292.2425 27-MAY-0002 05:49:12 1023.364
- 5> 20-APR-0003 23:38:23 73 15-MAR-0003 11:38:23 1205.985
- 6> 20-OCT-0003 14:32:59 292.2425 27-MAY-0003 11:38:23 1388.606
-show axis/l=1:6000:1200 tax
- name axis # pts start end
- TAX TIME 2mi 20-APR 12:00 20-OCT 02:54
-T0 = 1-JAN-0000
- Axis span (to cell edges) = 365.2425 (modulo length = axis span)
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 20-APR 12:00:00 73 15-MAR 00:00:00 475.5
- 1201> 20-APR-0601 23:59:59 73 15-MAR-0601 11:59:59 219621
- 2401> 20-APR-1201 11:59:59 73 14-MAR-1201 23:59:59 438766.5
- 3601> 20-APR-1801 23:59:59 73 15-MAR-1801 11:59:59 657912
- 4801> 20-APR-2401 11:59:59 73 14-MAR-2401 23:59:59 877057.5
-
-! ================ REPEATED VALUES ====================
-! points
-define axis/from/x/name=xax {5,6,6,7}
-show axis/x xax
- name axis # pts start end
- XAX X 4 i 5 7
- Axis span (to cell edges) = 2.999999
-
- I X XBOX XBOXLO
- 1> 5 1 4.5
- 2> 6 0.500001 5.5
- 3> 6.000002 0.5 6.000001
- 4> 7 0.999998 6.500001
-define axis/from/x/name=xax {5,6,6,6,7}
-show axis/x xax
- name axis # pts start end
- XAX X 5 i 5 7
- Axis span (to cell edges) = 2.999998
-
- I X XBOX XBOXLO
- 1> 5 1 4.5
- 2> 6 0.500001 5.5
- 3> 6.000002 2.E-06 6.000001
- 4> 6.000004 0.499999 6.000003
- 5> 7 0.999996 6.500002
-define axis/from/x/name=xax {5,6,6,6}
-show axis/x xax
- name axis # pts start end
- XAX X 4 i 5 6
- Axis span (to cell edges) = 1.500003
-
- I X XBOX XBOXLO
- 1> 5 1 4.5
- 2> 6 0.5000005 5.5
- 3> 6.000001 1.E-06 6.000001
- 4> 6.000002 1.E-06 6.000001
-define axis/from/x/name=xax {6,6,7}
-show axis/x xax
- name axis # pts start end
- XAX X 3 i 6 7
- Axis span (to cell edges) = 1.5
-
- I X XBOX XBOXLO
- 1> 6 1.E-06 5.999999
- 2> 6.000001 0.5 6.000001
- 3> 7 0.999999 6.500001
-! edges
-define axis/from/x/name=xax/edges {5,6,6,7}
-show axis/x xax
- name axis # pts start end
- XAX X 3 i 5.5 6.5
- Axis span (to cell edges) = 2
-
- I X XBOX XBOXLO
- 1> 5.5 1 5
- 2> 6.000001 2.E-06 6
- 3> 6.500001 0.999998 6.000002
-define axis/from/x/name=xax/edges {5,6,6,6,7}
-show axis/x xax
- name axis # pts start end
- XAX X 4 i 5.5 6.5
- Axis span (to cell edges) = 2
-
- I X XBOX XBOXLO
- 1> 5.5 1 5
- 2> 6.000001 2.E-06 6
- 3> 6.000003 2.E-06 6.000002
- 4> 6.500002 0.999996 6.000004
-define axis/from/x/name=xax/edges {5,6,6}
-show axis/x xax
- name axis # pts start end
- XAX X 2 i 5.5 6
- Axis span (to cell edges) = 1.000001
-
- I X XBOX XBOXLO
- 1> 5.5 1 5
- 2> 6.000001 1.E-06 6
-define axis/from/x/name=xax/edges {6,6,7}
-show axis/x xax
- name axis # pts start end
- XAX X 2 i 6 6.5
- Axis span (to cell edges) = 1
-
- I X XBOX XBOXLO
- 1> 6.000001 1.E-06 6
- 2> 6.500001 0.999999 6.000001
-
-! unresolvable repeated points
-set mode ignore
-define axis/from/x/name=xax {6,6}
-define axis/from/x/name=xax/edges {6,6}
-define axis/from/x/name=xax/edges {6,6,6}
-define axis/from/x/name=xax {6,6,6.000001,7}
-define axis/from/x/name=xax/edges {6,6,6.000001,7}
-
-! ================= STREAMLINED SYNTAX ================
-! name=expression syntax
-define axis/x XAX2 = {1,2,5}
-show axis/x xax2
- name axis # pts start end
- XAX2 X 3 i 1 5
- Axis span (to cell edges) = 6
-
- I X XBOX XBOXLO
- 1> 1 1 0.5
- 2> 2 2 1.5
- 3> 5 3 3.5
-define axis/unit=days/t0=1-jan-1990 TAX2 = {1,2,5} ! inferred /T
-show axis/t tax2
- name axis # pts start end
- TAX2 TIME 3 i 02-JAN-1990 00:00 06-JAN-1990 00:00
-T0 = 1-JAN-1990
- Axis span (to cell edges) = 6
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 02-JAN-1990 00:00:00 1 01-JAN-1990 12:00:00 1
- 2> 03-JAN-1990 00:00:00 2 02-JAN-1990 12:00:00 2
- 3> 06-JAN-1990 00:00:00 3 04-JAN-1990 12:00:00 5
-define axis/depth ZAX2 = {1,2,5} ! inferred /Z
-show axis/z zax2
- name axis # pts start end
- ZAX2 Z 3 i- 1 5
- Axis span (to cell edges) = 6
-
- K Z ZBOX ZBOXLO
- 1> 1 1 0.5
- 2> 2 2 1.5
- 3> 5 3 3.5
-
-! units inferred from formatting
-define axis/X=130e:180:5 xax2
-show axis xax2
- name axis # pts start end
- XAX2 LONGITUDE 11mr 130E 180E
- Axis span (to cell edges) = 55 (modulo length = 360)
-define axis/Y=0:80n:5 yax2
-show axis yax2
- name axis # pts start end
- YAX2 LATITUDE 17 r 0 80N
- Axis span (to cell edges) = 85
-define axis/X=130e:80w:5/units=blahs xax2
-show axis xax2
- name axis # pts start end
- XAX2 X (BLAHS) 31 r 130 280
- Axis span (to cell edges) = 155
-
-! cleanup
-set mode/last ignore
-
-GO bn_reset
-cancel mode verify
-! GO bn_external_functions ! move to tests of shared-obj efs.
-
-GO bn_reset
-cancel mode verify
-GO bn_pattern
-! pattern_bench.jnl
-! Quick demo of Ferret pattern feature *jd* 12.18.98
-
-set view full
-
-use coads_climatology
-set reg/l=3/y=50s:60n/x=100e:60w
-set mode cal months
-
-! The /pattern qualifier sets patterns to be used, like /palette sets colors.
-! Files in $FER_PALETTE with extension .pat are read in to set patterns.
-! Use "Fpattern '*'" to find available pattern files.
-
-! Note that colors are set in the usual way...
-
-set win 1
-
-set mode meta pattern_plot1.plt
-shade/pal=black/lev=(10,30,5,-3)/line/key/pattern=4patterns/nolabel sst
-
-go land thick
-
-! Colors and patterns can be overlaid; patterns are transparent
-
-set win 2
-
-set data coads_climatology
-set data clim_airt_lev.cdf
-set reg/l=1:3/y=50s:60n/x=100e:60w
-set mode cal months
-
-set mode meta pattern_plot2.plt
-fill/lev=(0,33,3)/nolabel sst[l=@ave,d=1]
-
-fill/lev=(25,27,1)/over/nolab/pal=black/pat=angled_grid/nolabel airt[l=@ave]
-label/user,200,-30,-1,0,.15, at trAIRT gt 25 and lt 27 deg. C
-
-go land thick
-
-!can data/all
-can win 2
-set win 1
-can mode meta
-
-GO bn_reset
-cancel mode verify
-GO bn_polygon
-! Demo of new POLYGON command
-! *jd * 3.99
-
-let xsqr = YSEQUENCE({0,.1,.1,0})
-let ysqr = YSEQUENCE({0,0,.1,.1})
-
-let ypts = x/10
-let xpts = cos(x/10)
-
-set win/asp=.4
-
-set mode meta polygon_plot.plt
-polygon/trans/i=1:100/nolable xpts+xsqr, ypts+ysqr, x*x/10
-
-polygon/trans/line=6/fill/over/lev/i=1:100/pattern=ball_bearings/nolabel xpts+xsqr, ypts+ysqr+.5, x*x/10
-
-polygon/trans/line=4/over/i=1:100/nolabel xpts+xsqr-.25, ypts+ysqr, x*x/10
-
-can mode meta
-
-GO bn_reset
-cancel mode verify
-GO bn500_bug_fixes
-! bn500_bug_fixes.jnl
-! test various fixes that went into version 5.00
-! 5/99 *kob*
-
-GO bn_reset
-cancel mode verify
-GO err491_RESHAPE_ctx.jnl
-! err491_RESHAPE_ctx
-
-! modified 3/2000 to reflect new significance of context limits
-! on arg 2
-
-! 3/99 *sh* (bug reported by Jennifer Adams)
-! Ferret fails to recognize that source and dest T axes are different
-! so it erroneously passes T context to src argument
-
-! fixed 3/99 with change to GCF_IMPOSE_ARG_LIM_DFLT
-! (and consequent bug fixes to PARSE_NAM_DSET_GRD and GRID_FROM_NAME)
-
-! source data in X,TCAL
-define axis/x=1:5:1 x5
-define axis/y=1:1:1 y1
-define axis/t=15-jan-1951:15-dec-1952/npoints=24 tcal
-define grid/x=x5/y=y1/t=tcal gsrc
-LET src = x[g=gsrc] + t[g=gsrc]
-
-list src
- VARIABLE : X[G=GSRC] + T[G=GSRC]
- SUBSET : 5 by 24 points (X-TIME)
- 1 2 3 4 5
- 1 2 3 4 5
- 15-JAN-1951 / 1: 438289. 438290. 438291. 438292. 438293.
- 14-FEB-1951 / 2: 439019. 439020. 439021. 439022. 439023.
- 16-MAR-1951 / 3: 439750. 439751. 439752. 439753. 439754.
- 16-APR-1951 / 4: 440480. 440481. 440482. 440483. 440484.
- 16-MAY-1951 / 5: 441211. 441212. 441213. 441214. 441215.
- 16-JUN-1951 / 6: 441941. 441942. 441943. 441944. 441945.
- 16-JUL-1951 / 7: 442672. 442673. 442674. 442675. 442676.
- 16-AUG-1951 / 8: 443402. 443403. 443404. 443405. 443406.
- 15-SEP-1951 / 9: 444132. 444133. 444134. 444135. 444136.
- 15-OCT-1951 / 10: 444863. 444864. 444865. 444866. 444867.
- 15-NOV-1951 / 11: 445593. 445594. 445595. 445596. 445597.
- 15-DEC-1951 / 12: 446324. 446325. 446326. 446327. 446328.
- 15-JAN-1952 / 13: 447054. 447055. 447056. 447057. 447058.
- 14-FEB-1952 / 14: 447785. 447786. 447787. 447788. 447789.
- 16-MAR-1952 / 15: 448515. 448516. 448517. 448518. 448519.
- 15-APR-1952 / 16: 449246. 449247. 449248. 449249. 449250.
- 15-MAY-1952 / 17: 449976. 449977. 449978. 449979. 449980.
- 15-JUN-1952 / 18: 450706. 450707. 450708. 450709. 450710.
- 15-JUL-1952 / 19: 451437. 451438. 451439. 451440. 451441.
- 15-AUG-1952 / 20: 452167. 452168. 452169. 452170. 452171.
- 14-SEP-1952 / 21: 452898. 452899. 452900. 452901. 452902.
- 15-OCT-1952 / 22: 453628. 453629. 453630. 453631. 453632.
- 14-NOV-1952 / 23: 454359. 454360. 454361. 454362. 454363.
- 15-DEC-1952 / 24: 455089. 455090. 455091. 455092. 455093.
-
-! reshaping grid - TCAL ==> 12 month by years
-def axis/t=1951:1952:1 tyear
-def axis/z=1:12:1 zmonth
-!let out_grid = x[g=gsrc,i=1] + y[g=gsrc,j=1] + z[gz=zmonth,k=1] + t[gt=tyear,l=1] ! pre 3/00
-let out_grid = x[g=gsrc] + y[g=gsrc] + z[gz=zmonth] + t[gt=tyear]
-
-! reshape the source data -- OK
-let out = reshape(src,out_grid)
-list out
- VARIABLE : RESHAPE(SRC,OUT_GRID)
- SUBSET : 5 by 12 by 2 points (X-Z-T)
- Y : 0.5 to 1.5
- 1 2 3 4 5
- 1 2 3 4 5
- ---- L:1 T: 1951
- 1 / 1: 438289. 438290. 438291. 438292. 438293.
- 2 / 2: 439019. 439020. 439021. 439022. 439023.
- 3 / 3: 439750. 439751. 439752. 439753. 439754.
- 4 / 4: 440480. 440481. 440482. 440483. 440484.
- 5 / 5: 441211. 441212. 441213. 441214. 441215.
- 6 / 6: 441941. 441942. 441943. 441944. 441945.
- 7 / 7: 442672. 442673. 442674. 442675. 442676.
- 8 / 8: 443402. 443403. 443404. 443405. 443406.
- 9 / 9: 444132. 444133. 444134. 444135. 444136.
- 10 / 10: 444863. 444864. 444865. 444866. 444867.
- 11 / 11: 445593. 445594. 445595. 445596. 445597.
- 12 / 12: 446324. 446325. 446326. 446327. 446328.
- ---- L:2 T: 1952
- 1 / 1: 447054. 447055. 447056. 447057. 447058.
- 2 / 2: 447785. 447786. 447787. 447788. 447789.
- 3 / 3: 448515. 448516. 448517. 448518. 448519.
- 4 / 4: 449246. 449247. 449248. 449249. 449250.
- 5 / 5: 449976. 449977. 449978. 449979. 449980.
- 6 / 6: 450706. 450707. 450708. 450709. 450710.
- 7 / 7: 451437. 451438. 451439. 451440. 451441.
- 8 / 8: 452167. 452168. 452169. 452170. 452171.
- 9 / 9: 452898. 452899. 452900. 452901. 452902.
- 10 / 10: 453628. 453629. 453630. 453631. 453632.
- 11 / 11: 454359. 454360. 454361. 454362. 454363.
- 12 / 12: 455089. 455090. 455091. 455092. 455093.
-
-! NOW THE ERROR: L LIMITS PASSED INCORRECTLY(ERRONEOUSLY) TO SRC
-list/l=1 out
- VARIABLE : RESHAPE(SRC,OUT_GRID)
- SUBSET : 5 by 12 points (X-Z)
- Y : 0.5 to 1.5
- T : 1951
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: 438289. 438290. 438291. 438292. 438293.
- 2 / 2: 439019. 439020. 439021. 439022. 439023.
- 3 / 3: 439750. 439751. 439752. 439753. 439754.
- 4 / 4: 440480. 440481. 440482. 440483. 440484.
- 5 / 5: 441211. 441212. 441213. 441214. 441215.
- 6 / 6: 441941. 441942. 441943. 441944. 441945.
- 7 / 7: 442672. 442673. 442674. 442675. 442676.
- 8 / 8: 443402. 443403. 443404. 443405. 443406.
- 9 / 9: 444132. 444133. 444134. 444135. 444136.
- 10 / 10: 444863. 444864. 444865. 444866. 444867.
- 11 / 11: 445593. 445594. 445595. 445596. 445597.
- 12 / 12: 446324. 446325. 446326. 446327. 446328.
-
-
-GO bn_reset
-cancel mode verify
-GO err491_delete_child_var.jnl
-! err491_delete_child_var.jnl
-! *sh* 4/99
-
-! when a grid-changing variable definition was redefined (replaced)
-! Its child variables were not removed, leading to wrong results
-
-! fixed with mod to XEQ_DEFINE
-
-! why does ypolymark depend on xpolyshape ??
-let xpolyshape = X[X=1:3:1]
-let ypolyshape = X[X=10:30:10]
-
-! THE ACT OF DEFINING XPOLYMARK CHANGES THE OUTCOME ...
-LET xpolymark = XSEQUENCE(xpolyshape) * 1
-LET ypolymark = XSEQUENCE(ypolyshape) * 1
-
-list ypolymark ! correct values: 1,2,3
- VARIABLE : XSEQUENCE(YPOLYSHAPE) * 1
- SUBSET : 3 points (X)
- 1 / 1: 10.0000
- 2 / 2: 20.0000
- 3 / 3: 30.0000
-
-! THE ACT OF DEFINING XPOLYMARK CHANGES THE OUTCOME ...
-LET xpolymark = XSEQUENCE(xpolyshape) * 1
-LET ypolymark = XSEQUENCE(ypolyshape) * 1
-
-list ypolymark ! incorrect values: 10, 20, 30
- VARIABLE : XSEQUENCE(YPOLYSHAPE) * 1
- SUBSET : 3 points (X)
- 1 / 1: 10.0000
- 2 / 2: 20.0000
- 3 / 3: 30.0000
-
-GO bn_reset
-cancel mode verify
-GO err491_dp_time_write.jnl
-! err491_dp_time_write.jnl
-! *sh* 10/98
-
-
-! when appending ("synchronizing") a new output time to an existing
-! netCDF file, Ferret fails to do a valid double precision comparison
-
-
-define axis/t="18-jul-1997:14:09":"20-jul-1997:00:09":5/units=min t5
-LET my_var = t[gt=t5]
-
-save/clobber/file=out.cdf my_var[l=1]
-sp echo "err491_dp_time_write.jnl --- 1 original file" >> all_ncdump.out
-sp ncdump out.cdf >> all_ncdump.out
-
-save/append/file=out.cdf my_var[l=2]
-sp echo "err491_dp_time_write.jnl --- 2 after append" >> all_ncdump.out
-sp ncdump out.cdf >> all_ncdump.out
-
-GO bn_reset
-cancel mode verify
-GO err491_gmax.jnl
-! err491_gmax.jnl
-! 9 Dec. 1998 *sh*
-
-! .. crash when attempting a time regridding with g=@MAX
-
-let ts = RANDU(T[T=1-jan-1990:15-jan-1990:1])
-plot ts
-define axis/t="1-jan-1990:12:00":"15-jan-1990:12:00":24/unit=hours t24
-plot/over ts[gt=t24 at ave]
-
-! crash when attempting an @MAX regridding
-load ts[gt=t24 at max]
-
-GO bn_reset
-cancel mode verify
-GO err491_grid_from_name.jnl
-! err491_grid_from_name.jnl
-! *sh* 3/99
-
-! implicit grid, such as "Z[gz=zax]", are allowed in places they shouldn't be
-
-! fixed with change to GRID_FROM_NAME (and PARSE_NAM_DSET_GRD)
-
-set mode ignore
-define axis/z=1:10:1 z10
-set grid z[gz=z10]
-show grid
- Default grid for DEFINE VARIABLE is (G012)
- Last successful data access was on grid (G012)
- GRID (G012)
- name axis # pts start end
- normal X
- normal Y
- Z10 Z 10 r 1 10
- normal T
- normal E
- normal F
-can mode ignore
-
-GO bn_reset
-cancel mode verify
-GO err491_let_d.jnl
-! err491_let_d.jnl
-! *sh* 10/98
-
-! using /d in the definition of a data-set independent variable causes a crash
-
-let/d a = x+y
-stat/i=1:3/j=1:3 a
-
- X+Y
- X: 0.5 to 3.5
- Y: 0.5 to 3.5
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 9 (3*3*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 2
- Maximum value: 6
- Mean value: 4 (unweighted average)
- Standard deviation: 1.2247
-
-! 3/01 *kob* uncomment the below - seems to run on all systems
-! GO err491_long_gif_name.jnl ! moved to bn_gif.jnl
-
-GO bn_reset
-cancel mode verify
-GO err491_sh_var_templates.jnl
-! SHOW VARIABLE templates are not robust
-
-let mld5dec = 1
-
-sho var m*dec ! no response ??
-sho var ml*dec ! no response ??
-sho var mld*dec ! works
- MLD5DEC = 1
-
-
-
-GO bn_reset
-cancel mode verify
-GO err491_single_char_replace.jnl
-! err491_single_char_replace.jnl
-
-! 4/99 *sh*
-
-! erroneous error trap for single character symbol replacement
-! **ERROR: command syntax: empty argument replacement string: ($undefined|"h")
-SAY ($undefined|"h")
- !-> MESSAGE/CONTINUE h
-h
-
-! but OK in this case
-SAY ($undefined|"hh")
- !-> MESSAGE/CONTINUE hh
-hh
-
-GO bn_reset
-cancel mode verify
-GO err491_spawn_quotes.jnl
-! err491_spawn_quotes.jnl
-
-! fixed in xeq_spawn 1/99 *sh*
-
-! this should be a valid command
-SPAWN "date"
-Tue Nov 12 15:12:30 PST 2013
-
-GO bn_reset
-cancel mode verify
-GO err491_time_regridding.jnl
-! err491_time_regridding.jnl
-! from Jon 10/16/98
-
-! this core dumps ... it is unable to reconcile the
-! l=13:48 in the current region with the t=15-jan-1995:15-jan-1998
-! (which corresponds to L=1:37) in the definition of "bad"
-
-!set mode diag
-set wind/siz=.3
-
-set data TAO_SST_clim.cdf
-
-define axis/t=15-jan-1995:15-dec-1999:1/unit=mon my_t_axis
-
-let good = sst_clim[gt=my_t_axis]
-let bad = sst_clim[gt=my_t_axis,t=15-jan-1995:15-jan-1998]
-
-set region/x=125w/y=0n/l=13:48
-
-plot good[x=@sbx:3]
-plot/over good[y=@sbx:3]
-plot/over good[z=@sbx:3]
-plot/over good[t=@sbx:3]
-
-
-cancel memory/all
-plot/over bad[x=@sbx:3]
-plot/over bad[y=@sbx:3]
-plot/over bad[z=@sbx:3]
-plot/over bad[t=@sbx:3]
-
-! 3/01 *kob* uncomment the below - seems to run on all systems
-GO bn_reset
-cancel mode verify
-GO err491_unknown_function.jnl
-! err491_unknown_function
-! 3/99 *sh*
-
-! when unknown function occurs in the 2nd (or higher) expression in a line
-! a crash occurs
-
-! crash occurs processing error message in subroutine RPN.
-! Cause is incorrect string limits passed from INIT_UVAR_SUB.
-
-set mode ignore
-stat i, noname(i)
-can mode ignore
-
-! *kob* added 6/11/1999
-GO bn_reset
-cancel mode verify
-GO err500_IF_THEN_ELSE_quote.jnl
-! err500_IF_THEN_ELSE_quote.jnl
-
-! 6/9/99 - final quotation mark is lost by parser resulting in error.
-
-! solved 6/11/99 in xeq_if.F
-
-
-IF 1 THEN SAY "I is too big" ENDIF
-I is too big
-
-! ******** V510 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn_sample ! internal (optimized) SAMPLE* functions
-! bn_sample.jnl
-! 10/99 *sh*
-! V550 *sh* 11/02 - documentation change only, reflecting subspan modulo
-
-! test the internally optimized version of the SAMPLE* commands
-
-! basic file variable access
-use coads_climatology
-let/quiet a = sst
-list sst[I=30:50:10,l=1,y=-2:2] ! reference listing
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- regrid: 20 deg on X
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 2 points (LONGITUDE-LATITUDE)
- TIME : JAN
- 79E 99E 119E
- 1 2 3
- 1N / 46: 28.2222 28.1992 28.4514
- 1S / 45: 28.1514 28.5607 28.8326
-list SAMPLEI(sst[l=1,y=0],{30,40,50})
- VARIABLE : SAMPLEI(SST[L=1,Y=0],{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- LATITUDE : 1S
- TIME : JAN
- 1S
- 45
- 1 / 1: 28.1514
- 2 / 2: 28.5607
- 3 / 3: 28.8326
-list SAMPLEI(sst[l=1,y=-2:2],{30,40,50})
- VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 2 points (X-LATITUDE)
- TIME : JAN
- 1 2 3
- 1 2 3
- 1N / 46: 28.2222 28.1992 28.4514
- 1S / 45: 28.1514 28.5607 28.8326
-list SAMPLEI(sst[l=1:3,y=-2:2],{30,40,50})
- VARIABLE : SAMPLEI(SST[L=1:3,Y=-2:2],{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 2 by 3 points (X-LATITUDE-TIME)
- 1 2 3
- 1 2 3
- ---- L:1 T: JAN
- 1N / 46: 28.2222 28.1992 28.4514
- 1S / 45: 28.1514 28.5607 28.8326
- ---- L:2 T: FEB
- 1N / 46: 28.5769 28.5925 28.1495
- 1S / 45: 28.3343 28.7146 28.4674
- ---- L:3 T: MAR
- 1N / 46: 29.1373 28.9243 28.3264
- 1S / 45: 28.8965 28.8240 28.5357
-SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
- total memory table slots: 500
- total memory blocks: 2000
- memory block size: 12800
-
- number of free memory blocks: 1987
- largest free region: 1984
- number of free regions: 4
- free memory table slots: 487
- number of UN-CACHED variables: 0
-
-! these should break sampling up into separate reads
-cancel memory/all
-set mode diagnostic
-list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50}) ! only I=2 from result
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C01,V02 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C09,V02 C: 10 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C01,V02 C: 7 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 34 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 3 dset: 1
- eval (C09,V02 C: 11 dset: 1 I: 30 30 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- reading SST M: 31 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval (C09,V02 C: 11 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 26 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval (C09,V02 C: 11 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 23 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 32 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE (C01,V02 M: 33 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 27 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 34 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 2 points (LATITUDE)
- X : 2
- TIME : JAN
- 2
- 2
- 1N / 46: 28.1992
- 1S / 45: 28.5607
- -DELETE (C01,V02 M: 34 dset: 1 I: 2 2 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-cancel memory/all
- -DELETE (C09,V02 M: 22 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 23 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE (C09,V02 M: 25 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 26 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE (C09,V02 M: 28 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 31 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE (C01,V02 M: 33 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-list/l=1/y=-2:2 SAMPLEI(sst,{30,40,50})
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 33 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 3 dset: 1
- reading SST M: 26 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 23 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 22 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE M: 28 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE SST M: 31 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 25 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 33 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(SST,{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 2 points (X-LATITUDE)
- TIME : JAN
- 1 2 3
- 1 2 3
- 1N / 46: 28.2222 28.1992 28.4514
- 1S / 45: 28.1514 28.5607 28.8326
-cancel memory/all
- -DELETE SST M: 22 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 23 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 26 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 31 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-list/l=1/y=-2:2 SAMPLEI(a ,{30,40,50})
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 8 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 31 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 3 dset: 1
- eval A C: 9 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 22 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 9 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 28 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 9 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 27 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 23 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE SST M: 26 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 25 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 31 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(A ,{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 2 points (X-LATITUDE)
- TIME : JAN
- 1 2 3
- 1 2 3
- 1N / 46: 28.2222 28.1992 28.4514
- 1S / 45: 28.1514 28.5607 28.8326
-
-! these should NOT break up the access into chunks
-cancel memory/all
- -DELETE SST M: 22 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 26 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 27 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 28 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 32 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 33 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 34 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-list/l=1/y=-2:2 SAMPLEI(sst[i=30:40],{30,40,50})
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C01,V02 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C09,V02 C: 10 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval (C01,V02 C: 7 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 34 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 3 dset: 1
- eval (C09,V02 C: 11 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 28 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 32 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE A M: 33 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 26 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 34 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(SST[I=30:40],{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 2 points (X-LATITUDE)
- TIME : JAN
- 1 2 3
- 1 2 3
- 1N / 46: 28.2222 28.1992 ....
- 1S / 45: 28.1514 28.5607 ....
-let/quiet a = sst[i=30:40]
- -DELETE (C09,V02 M: 27 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE (C01,V02 M: 33 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
-cancel memory/all
- -DELETE SST M: 28 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-list/l=1/y=-2:2 SAMPLEI(a,{30,40,50})
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 8 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 28 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 3 dset: 1
- eval A C: 9 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 34 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE M: 27 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE M: 33 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 32 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 28 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(A,{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 2 points (X-LATITUDE)
- TIME : JAN
- 1 2 3
- 1 2 3
- 1N / 46: 28.2222 28.1992 ....
- 1S / 45: 28.1514 28.5607 ....
-cancel memory/all
- -DELETE A M: 26 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 33 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 34 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-list/l=1/y=-2:2 SAMPLEI(a,{30}) ! sample at just 1 point
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30} M: 34 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 1 dset: 1
- eval A C: 9 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 28 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 26 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 33 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 27 dset: 1 I: 1 1 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30} M: 34 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(A,{30})
- FILENAME : coads_climatology.cdf
- SUBSET : 2 points (LATITUDE)
- X : 1
- TIME : JAN
- 1
- 1
- 1N / 46: 28.2222
- 1S / 45: 28.1514
-cancel memory/all
- -DELETE SST M: 28 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 32 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 33 dset: 1 I: 1 1 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-list/l=1/y=-2:2 SAMPLEI(a,30) ! sample at just 1 point
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C01,V02 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C11,V02 C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval (C01,V02 C: 7 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval (C11,V02 C: 9 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- constan cnst M: 33 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 33 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 1 dset: 1
- eval A C: 11 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 34 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 28 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE cnst M: 33 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 26 dset: 1 I: 1 1 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(A,30)
- FILENAME : coads_climatology.cdf
- SUBSET : 2 points (LATITUDE)
- X : 1
- TIME : JAN
- 1
- 1
- 1N / 46: 28.2222
- 1S / 45: 28.1514
-cancel memory/all
- -DELETE A M: 27 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE (C11,V02 M: 32 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C01,V02 M: 33 dset: 1 I: 1 1 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 34 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-let/quiet fsst = sst[x=@fln] ! fill holes to allow @iin to work
-let/quiet a = fsst[i=@iin] ! @iin forces all-at-once
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
-list/l=1/y=-2:2 SAMPLEI(a,{30,40,50})
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 8 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid FSST C: 10 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 34 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 3 dset: 1
- eval A C: 9 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> FSST[X=???@IIN,D=1]
- eval FSST C: 12 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST[I=1:180 at FLN:1,D=1]
- strip moduloing SST on X axis: 0 181 dset: 1
- reading SST M: 27 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- doing moduloing SST on X axis: 1 180 dset: 1
- doing --> SST[I=1:180 at FLN:1,D=1]
- doing --> FSST[I=1:180 at IIN,D=1]
- -DELETE M: 32 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE M: 33 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 23 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 34 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(A,{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 2 points (X-LATITUDE)
- TIME : JAN
- 1 2 3
- 1 2 3
- 1N / 46: 182881720. 245818833. 306844239.
- 1S / 45: 183667676. 246892478. 309487473.
-cancel memory/all
- -DELETE FSST M: 22 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 25 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 26 dset: 1 I: 0 181 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 27 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 28 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE FSST M: 31 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 33 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
-! now test optimization that uses large memory chunks if available
-cancel memory/all
-load/l=1/y=0 sst[I=30:50]
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 33 dset: 1 I: 30 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-list/l=1/y=0 SAMPLEI(sst,{30,40,50})
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 31 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 3 dset: 1
- reading SST M: 26 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 22 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 34 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 27 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE SST M: 28 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 25 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 31 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(SST,{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- LATITUDE : 1S
- TIME : JAN
- 1S
- 45
- 1 / 1: 28.1514
- 2 / 2: 28.5607
- 3 / 3: 28.8326
-cancel memory/all
- -DELETE SST M: 22 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 26 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 28 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 33 dset: 1 I: 30 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 34 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-load/l=1/y=0 sst[I=30:39]
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 34 dset: 1 I: 30 39 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-list/l=1/y=0 SAMPLEI(sst,{30,40,50})
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 33 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 3 dset: 1
- reading SST M: 22 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 25 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 27 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 26 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 28 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 31 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 33 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(SST,{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- LATITUDE : 1S
- TIME : JAN
- 1S
- 45
- 1 / 1: 28.1514
- 2 / 2: 28.5607
- 3 / 3: 28.8326
-cancel memory/all
- -DELETE SST M: 22 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 25 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 27 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 28 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 34 dset: 1 I: 30 39 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-load/l=1/y=0 sst[I=30:40]
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 34 dset: 1 I: 30 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-list/l=1/y=0 SAMPLEI(sst,{30,40,50})
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 28 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 3 dset: 1
- reading SST M: 22 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 31 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 26 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 25 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE SST M: 27 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 33 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 28 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(SST,{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- LATITUDE : 1S
- TIME : JAN
- 1S
- 45
- 1 / 1: 28.1514
- 2 / 2: 28.5607
- 3 / 3: 28.8326
-cancel memory/all
- -DELETE SST M: 22 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 26 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 27 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 31 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 34 dset: 1 I: 30 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-load/l=1/y=0 sst[I=30:41]
- dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 34 dset: 1 I: 30 41 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-list/l=1/y=0 SAMPLEI(sst,{30,40,50})
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 31 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 3 dset: 1
- reading SST M: 22 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 33 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 25 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 26 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 27 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 28 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 31 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(SST,{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- LATITUDE : 1S
- TIME : JAN
- 1S
- 45
- 1 / 1: 28.1514
- 2 / 2: 28.5607
- 3 / 3: 28.8326
-set mode/last diagnostic
-
-! sampling a user var
-let/quiet a = sst + 1
-list SAMPLEI(a[l=1:3,y=-2:2],{30,40,50})
- VARIABLE : SAMPLEI(A[L=1:3,Y=-2:2],{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 2 by 3 points (X-LATITUDE-TIME)
- 1 2 3
- 1 2 3
- ---- L:1 T: JAN
- 1N / 46: 29.2222 29.1992 29.4514
- 1S / 45: 29.1514 29.5607 29.8326
- ---- L:2 T: FEB
- 1N / 46: 29.5769 29.5925 29.1495
- 1S / 45: 29.3343 29.7146 29.4674
- ---- L:3 T: MAR
- 1N / 46: 30.1373 29.9243 29.3264
- 1S / 45: 29.8965 29.8240 29.5357
-let/quiet a = sst[l=1:3,y=-2:2] + 1 ! same result, different syntax
-list SAMPLEI(a, {30,40,50})
- VARIABLE : SAMPLEI(A, {30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 2 by 3 points (X-LATITUDE-TIME)
- 1 2 3
- 1 2 3
- ---- L:1 T: JAN
- 1N / 46: 29.2222 29.1992 29.4514
- 1S / 45: 29.1514 29.5607 29.8326
- ---- L:2 T: FEB
- 1N / 46: 29.5769 29.5925 29.1495
- 1S / 45: 29.3343 29.7146 29.4674
- ---- L:3 T: MAR
- 1N / 46: 30.1373 29.9243 29.3264
- 1S / 45: 29.8965 29.8240 29.5357
-
-! combined with a dynamic axis
-list SAMPLEI(sst[l=1,y=1s:1n:.5],{30,40,50})
- VARIABLE : SAMPLEI(SST[L=1,Y=1S:1N:.5],{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 5 points (X-LATITUDE)
- TIME : JAN
- 1 2 3
- 1 2 3
- 1N / 5: 28.2222 28.1992 28.4514
- 0.5N / 4: 28.2045 28.2896 28.5467
- 0 / 3: 28.1868 28.3800 28.6420
- 0.5S / 2: 28.1691 28.4703 28.7373
- 1S / 1: 28.1514 28.5607 28.8326
-show grid/dyn
-Dynamic grids:
- GRID (G017) use count: 2
- name axis # pts start end
- ABSTRACT X 99999999 r 1 1.E+08
- (AX001) LATITUDE 5 r 1S 1N
- normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
- GRID (G006) use count: 1
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- (AX001) LATITUDE 5 r 1S 1N
- normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
-Dynamic axes:
- AXIS (AX001) use count: 2
-cancel memory/all
-let/quiet a = sst[l=1,y=1s:1n:.5]
-list SAMPLEI(a,{30,40,50})
- VARIABLE : SAMPLEI(A,{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 5 points (X-LATITUDE)
- TIME : JAN
- 1 2 3
- 1 2 3
- 1N / 5: 28.2222 28.1992 28.4514
- 0.5N / 4: 28.2045 28.2896 28.5467
- 0 / 3: 28.1868 28.3800 28.6420
- 0.5S / 2: 28.1691 28.4703 28.7373
- 1S / 1: 28.1514 28.5607 28.8326
-show grid/dyn
-Dynamic grids:
- GRID (G006) use count: 1
- name axis # pts start end
- ABSTRACT X 99999999 r 1 1.E+08
- (AX005) LATITUDE 5 r 1S 1N
- normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
- GRID (G017) use count: 1
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 5 r 1S 1N
- normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
-Dynamic axes:
- AXIS (AX005) use count: 2
-
-! sampling a pseudo-variable
-list SAMPLEI(X[x=1:12],{3,4,7,15})
- VARIABLE : SAMPLEI(X[X=1:12],{3,4,7,15})
- SUBSET : 4 points (X)
- 1 / 1: 3.00000
- 2 / 2: 4.00000
- 3 / 3: 7.00000
- 4 / 4: ....
-list SAMPLEI(X[x=111:120],{3,4,7}) ! indices out of range
- VARIABLE : SAMPLEI(X[X=111:120],{3,4,7})
- SUBSET : 3 points (X)
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
-list SAMPLEI(X[x=111:120:1],{3,4,7}) ! now OK
- VARIABLE : SAMPLEI(X[X=111:120:1],{3,4,7})
- SUBSET : 3 points (X)
- 1 / 1: 113.000
- 2 / 2: 114.000
- 3 / 3: 117.000
-list SAMPLEI(X[x=110:200:10],{3,4,7})
- VARIABLE : SAMPLEI(X[X=110:200:10],{3,4,7})
- SUBSET : 3 points (X)
- 1 / 1: 130.000
- 2 / 2: 140.000
- 3 / 3: 170.000
-cancel memory/all
-let/quiet a = X[x=110:200:10]
-list SAMPLEI(a,{3,4,7})
- VARIABLE : SAMPLEI(A,{3,4,7})
- SUBSET : 3 points (X)
- 1 / 1: 130.000
- 2 / 2: 140.000
- 3 / 3: 170.000
-
-! sampling a constant !!??!
-list SAMPLEI(5,{3,,1})
- VARIABLE : SAMPLEI(5,{3,,1})
- SUBSET : 3 points (X)
- 1 / 1: ....
- 2 / 2: ....
- 3 / 3: 5.00000
-let/quiet a = 5
-list SAMPLEI(a,{3,,1})
- VARIABLE : SAMPLEI(A,{3,,1})
- SUBSET : 3 points (X)
- 1 / 1: ....
- 2 / 2: ....
- 3 / 3: 5.00000
-
-! sampling a constant list
-list SAMPLEI({1,2,3,4,5},{3,,7})
- VARIABLE : SAMPLEI({1,2,3,4,5},{3,,7})
- SUBSET : 3 points (X)
- 1 / 1: 3.00000
- 2 / 2: ....
- 3 / 3: ....
-
-! over-defined X axis limits
-cancel memory/all
-list SAMPLEI(sst[l=1,y=0,i=30:50],{30,40,50})
- VARIABLE : SAMPLEI(SST[L=1,Y=0,I=30:50],{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- LATITUDE : 1S
- TIME : JAN
- 1S
- 45
- 1 / 1: 28.1514
- 2 / 2: 28.5607
- 3 / 3: 28.8326
-cancel memory/all
-list SAMPLEI(sst[l=1,y=0,i=35:38],{30,40,50})
- VARIABLE : SAMPLEI(SST[L=1,Y=0,I=35:38],{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- LATITUDE : 1S
- TIME : JAN
- 1S
- 45
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
-
-! sampling with disordered and missing values in the index list
-list SAMPLEI(sst[l=1,y=-2:2],{30,40,,50})
- VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{30,40,,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 4 by 2 points (X-LATITUDE)
- TIME : JAN
- 1 2 3 4
- 1 2 3 4
- 1N / 46: 28.2222 28.1992 .... 28.4514
- 1S / 45: 28.1514 28.5607 .... 28.8326
-list SAMPLEI(sst[l=1,y=-2:2],{40,,50,30})
- VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{40,,50,30})
- FILENAME : coads_climatology.cdf
- SUBSET : 4 by 2 points (X-LATITUDE)
- TIME : JAN
- 1 2 3 4
- 1 2 3 4
- 1N / 46: 28.1992 .... 28.4514 28.2222
- 1S / 45: 28.5607 .... 28.8326 28.1514
-
-! out of bounds indices
-list SAMPLEI(sst[l=1,y=0,i=30:50],{30 ,400,500})
- VARIABLE : SAMPLEI(SST[L=1,Y=0,I=30:50],{30 ,400,500})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- LATITUDE : 1S
- TIME : JAN
- 1S
- 45
- 1 / 1: 28.1514
- 2 / 2: ....
- 3 / 3: ....
-list SAMPLEI(sst[l=1,y=0,i=30:50],{-300,400,500})
- VARIABLE : SAMPLEI(SST[L=1,Y=0,I=30:50],{-300,400,500})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- LATITUDE : 1S
- TIME : JAN
- 1S
- 45
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
-list SAMPLEI(X[x=110:200:10],{3,40,7})
- VARIABLE : SAMPLEI(X[X=110:200:10],{3,40,7})
- SUBSET : 3 points (X)
- 1 / 1: 130.000
- 2 / 2: ....
- 3 / 3: 170.000
-
-! sampling along a normal axis
-list SAMPLEI(Y[y=110:200:10],{3,4,7})
- VARIABLE : SAMPLEI(Y[Y=110:200:10],{3,4,7})
- SUBSET : 3 by 10 points (X-Y)
- 1 2 3
- 1 2 3
- 110 / 1:............
- 120 / 2:............
- 130 / 3:............
- 140 / 4:............
- 150 / 5:............
- 160 / 6:............
- 170 / 7:............
- 180 / 8:............
- 190 / 9:............
- 200 / 10:............
-
-! test sampling optimization
-cancel memory/all
-set mode diagnostic
-list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
- dealloc dynamic grid (G017) NORMAL (AX001) NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT (AX001) NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT (AX001) NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C01,V02 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C09,V02 C: 10 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C01,V02 C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- const_v {31-,48} M: 34 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 7 dset: 1
- eval (C09,V02 C: 10 dset: 1 I: 31 35 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- reading SST M: 29 dset: 1 I: 31 35 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval (C09,V02 C: 10 dset: 1 I: 37 37 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 25 dset: 1 I: 37 37 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval (C09,V02 C: 10 dset: 1 I: 44 48 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 20 dset: 1 I: 44 48 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE Y M: 31 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: 7 7 M: -999 -999 N: -999 -999
- -DELETE SST M: 32 dset: 1 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 26 dset: 1 I: 1 7 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {31-,48} M: 34 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
- FILENAME : coads_climatology.cdf
- SUBSET : 7 points (X)
- LATITUDE : 5N
- TIME : JAN
- 5N
- 48
- 1 / 1: 27.5245
- 2 / 2: 27.8502
- 3 / 3: 27.9891
- 4 / 4: 28.0330
- 5 / 5: 26.2343
- 6 / 6: 27.0648
- 7 / 7: 27.2798
-
-! test cache hits
-list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48}) ! <-- CACHE HIT FAILS!!!
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C01,V02 C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- const_v {31-,48} M: 34 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 7 dset: 1
- eval (C09,V02 C: 10 dset: 1 I: 31 35 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- reading SST M: 18 dset: 1 I: 31 35 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval (C09,V02 C: 10 dset: 1 I: 37 37 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 33 dset: 1 I: 37 37 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval (C09,V02 C: 10 dset: 1 I: 44 48 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 16 dset: 1 I: 44 48 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE Y M: 31 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: 7 7 M: -999 -999 N: -999 -999
- -DELETE tpry M: 26 dset: 1 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 28 dset: 1 I: 1 7 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {31-,48} M: 34 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
- FILENAME : coads_climatology.cdf
- SUBSET : 7 points (X)
- LATITUDE : 5N
- TIME : JAN
- 5N
- 48
- 1 / 1: 27.5245
- 2 / 2: 27.8502
- 3 / 3: 27.9891
- 4 / 4: 28.0330
- 5 / 5: 26.2343
- 6 / 6: 27.0648
- 7 / 7: 27.2798
-set mode/last diagnostic
-let a = SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
-load a
-set mode diagnostic
-list a ! <-- CACHE HIT FAILS!!!
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C01,V01 C: 8 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- const_v {31-,48} M: 19 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 7 dset: 1
- eval (C09,V01 C: 12 dset: 1 I: 31 35 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- reading SST M: 14 dset: 1 I: 31 35 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval (C09,V01 C: 12 dset: 1 I: 37 37 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 11 dset: 1 I: 37 37 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval (C09,V01 C: 12 dset: 1 I: 44 48 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 9 dset: 1 I: 44 48 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE Y M: 31 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: 7 7 M: -999 -999 N: -999 -999
- -DELETE M: 27 dset: 1 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 12 dset: 1 I: 1 7 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {31-,48} M: 19 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
- FILENAME : coads_climatology.cdf
- SUBSET : 7 points (X)
- LATITUDE : 5N
- TIME : JAN
- 5N
- 48
- 1 / 1: 27.5245
- 2 / 2: 27.8502
- 3 / 3: 27.9891
- 4 / 4: 28.0330
- 5 / 5: 26.2343
- 6 / 6: 27.0648
- 7 / 7: 27.2798
-set mode/last diagnostic
-
-SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
- total memory table slots: 500
- total memory blocks: 2000
- memory block size: 12800
-
- number of free memory blocks: 1978
- largest free region: 1976
- number of free regions: 3
- free memory table slots: 478
- number of UN-CACHED variables: 0
-
-! test SAMPLEJ
-let/quiet a = sst + Z[z=0:500:5]
-list SAMPLEJ(a[l=1,k=1:2,x=180],30)
- VARIABLE : SAMPLEJ(A[L=1,K=1:2,X=180],30)
- FILENAME : coads_climatology.cdf
- SUBSET : 2 points (Z)
- LONGITUDE: 179E
- Y : 1
- TIME : JAN
- 179E
- 80
- 0 / 1: 22.6389
- 5 / 2: 27.6389
-list SAMPLEJ(a[l=1,k=1:2,x=180],{30,31,35, 40})
- VARIABLE : SAMPLEJ(A[L=1,K=1:2,X=180],{30,31,35, 40})
- FILENAME : coads_climatology.cdf
- SUBSET : 4 by 2 points (Y-Z)
- LONGITUDE: 179E
- TIME : JAN
- 1 2 3 4
- 1 2 3 4
- 0 / 1: 22.6389 23.5251 26.9131 29.2606
- 5 / 2: 27.6389 28.5251 31.9131 34.2606
-list SAMPLEJ(a[l=1,k=1,x=180],{30,40,50})
- VARIABLE : SAMPLEJ(A[L=1,K=1,X=180],{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (Y)
- LONGITUDE: 179E
- Z : 0
- TIME : JAN
- 179E
- 80
- 1 / 1: 22.6389
- 2 / 2: 29.2606
- 3 / 3: 27.7269
-list SAMPLEJ(a[l=1,k=1,x=160e:160w:5],{30,40,50})
- VARIABLE : SAMPLEJ(A[L=1,K=1,X=160E:160W:5],{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 9 by 3 points (LONGITUDE-Y)
- Z : 0
- TIME : JAN
- 160E 165E 170E 175E 180E 175W 170W 165W 160W
- 1 2 3 4 5 6 7 8 9
- 1 / 1: 23.5649 22.6150 21.9434 22.5531 22.5856 22.4436 21.9629 22.2754 21.6575
- 2 / 2: 29.3521 29.1692 29.2257 29.4440 29.0923 29.3430 29.1310 28.6520 28.9082
- 3 / 3: 27.9696 28.0578 27.8618 27.9059 27.4280 27.4100 27.3646 27.3974 27.1177
-list SAMPLEJ(Y[y=110:200:10],{3,4,7})
- VARIABLE : SAMPLEJ(Y[Y=110:200:10],{3,4,7})
- SUBSET : 3 points (Y)
- 1 / 1: 130.000
- 2 / 2: 140.000
- 3 / 3: 170.000
-list SAMPLEJ(YSEQUENCE({1,2,3,4,5}),{5,2,3,,7,2})
- VARIABLE : SAMPLEJ(YSEQUENCE({1,2,3,4,5}),{5,2,3,,7,2})
- SUBSET : 6 points (Y)
- 1 / 1: 5.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: ....
- 5 / 5: ....
- 6 / 6: 2.00000
-list SAMPLEJ(X[x=110:200:10],{3,4,7}) ! normal axis
- VARIABLE : SAMPLEJ(X[X=110:200:10],{3,4,7})
- SUBSET : 10 by 3 points (X-Y)
- 110 120 130 140 150 160 170 180 190 200
- 1 2 3 4 5 6 7 8 9 10
- 1 / 1:........................................
- 2 / 2:........................................
- 3 / 3:........................................
-
-! test SAMPLEK
-let/quiet a = sst + Z[z=0:500:5]
-list SAMPLEK(a[l=1,y=0,x=180],30)
- VARIABLE : SAMPLEK(A[L=1,Y=0,X=180],30)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 179E
- LATITUDE : 1S
- Z : 1
- TIME : JAN
- 173.202
-list SAMPLEK(a[l=1,y=0,x=180],{30,31,35, 40})
- VARIABLE : SAMPLEK(A[L=1,Y=0,X=180],{30,31,35, 40})
- FILENAME : coads_climatology.cdf
- SUBSET : 4 points (Z)
- LONGITUDE: 179E
- LATITUDE : 1S
- TIME : JAN
- 179E
- 80
- 1 / 1: 173.202
- 2 / 2: 178.202
- 3 / 3: 198.202
- 4 / 4: 223.202
-list SAMPLEK(a[l=1,y=0,x=180],{30,40,50})
- VARIABLE : SAMPLEK(A[L=1,Y=0,X=180],{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (Z)
- LONGITUDE: 179E
- LATITUDE : 1S
- TIME : JAN
- 179E
- 80
- 1 / 1: 173.202
- 2 / 2: 223.202
- 3 / 3: 273.202
-list SAMPLEK(a[l=1,y=0,x=160e:160w:5],{30,40,50})
- VARIABLE : SAMPLEK(A[L=1,Y=0,X=160E:160W:5],{30,40,50})
- FILENAME : coads_climatology.cdf
- SUBSET : 9 by 3 points (LONGITUDE-Z)
- LATITUDE : 1S
- TIME : JAN
- 160E 165E 170E 175E 180E 175W 170W 165W 160W
- 1 2 3 4 5 6 7 8 9
- 1 / 1: 174.169 174.225 173.963 173.313 173.532 172.803 172.991 172.548 171.929
- 2 / 2: 224.169 224.225 223.963 223.313 223.532 222.803 222.991 222.548 221.929
- 3 / 3: 274.169 274.225 273.963 273.313 273.532 272.803 272.991 272.548 271.929
-list SAMPLEK(Z[z=110:200:10],{3,4,7})
- VARIABLE : SAMPLEK(Z[Z=110:200:10],{3,4,7})
- SUBSET : 3 points (Z)
- 1 / 1: 130.000
- 2 / 2: 140.000
- 3 / 3: 170.000
-list SAMPLEK(ZSEQUENCE({1,2,3,4,5}),{5,2,3,,7,2})
- VARIABLE : SAMPLEK(ZSEQUENCE({1,2,3,4,5}),{5,2,3,,7,2})
- SUBSET : 6 points (Z)
- 1 / 1: 5.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: ....
- 5 / 5: ....
- 6 / 6: 2.00000
-list SAMPLEK(X[x=110:200:10],{3,4,7}) ! normal axis
- VARIABLE : SAMPLEK(X[X=110:200:10],{3,4,7})
- SUBSET : 10 by 3 points (X-Z)
- 110 120 130 140 150 160 170 180 190 200
- 1 2 3 4 5 6 7 8 9 10
- 1 / 1:........................................
- 2 / 2:........................................
- 3 / 3:........................................
-
-! test SAMPLEL
-let/quiet a = sst + Z[z=0:500:5]
-! Note: (V550) In the SAMPLEL examples which follow the L index values
-! which exceed L=3 lie outside of the time axis range. As of V550 this
-! triggers a subspan modulo operation (3 months from the full year of 12)
-list SAMPLEL(a[y=0,k=1:2,x=180],5)
- VARIABLE : SAMPLEL(A[Y=0,K=1:2,X=180],5)
- FILENAME : coads_climatology.cdf
- SUBSET : 2 points (Z)
- LONGITUDE: 179E
- LATITUDE : 1S
- T : 1
- 179E
- 80
- 0 / 1: 28.2022
- 5 / 2: 33.2022
-list SAMPLEL(a[y=0,k=1:2,x=180],{2,3,5, 10})
- VARIABLE : SAMPLEL(A[Y=0,K=1:2,X=180],{2,3,5, 10})
- FILENAME : coads_climatology.cdf
- SUBSET : 2 by 4 points (Z-T)
- LONGITUDE: 179E
- LATITUDE : 1S
- 0 5
- 1 2
- 1 / 1: 28.3646 33.3646
- 2 / 2: 28.3538 33.3538
- 3 / 3: 28.2022 33.2022
- 4 / 4: 28.3646 33.3646
-list SAMPLEL(a[y=0,k=1,x=180],{1,5,10})
- VARIABLE : SAMPLEL(A[Y=0,K=1,X=180],{1,5,10})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (T)
- LONGITUDE: 179E
- LATITUDE : 1S
- Z : 0
- 179E
- 80
- 1 / 1: 28.2022
- 2 / 2: 28.2022
- 3 / 3: 28.3646
-list SAMPLEL(a[y=0,k=1,x=160e:160w:5],{1,5,10})
- VARIABLE : SAMPLEL(A[Y=0,K=1,X=160E:160W:5],{1,5,10})
- FILENAME : coads_climatology.cdf
- SUBSET : 9 by 3 points (LONGITUDE-T)
- LATITUDE : 1S
- Z : 0
- 160E 165E 170E 175E 180E 175W 170W 165W 160W
- 1 2 3 4 5 6 7 8 9
- 1 / 1: 29.1694 29.2247 28.9631 28.3130 28.5324 27.8029 27.9907 27.5481 26.9291
- 2 / 2: 29.1694 29.2247 28.9631 28.3130 28.5324 27.8029 27.9907 27.5481 26.9291
- 3 / 3: 29.0509 29.1878 28.7239 29.5150 28.3287 28.1944 27.4815 27.4749 26.7886
-list SAMPLEL(T[t=110:200:10],{3,4,7})
- VARIABLE : SAMPLEL(T[T=110:200:10],{3,4,7})
- SUBSET : 3 points (T)
- 1 / 1: 130.000
- 2 / 2: 140.000
- 3 / 3: 170.000
-list SAMPLEL(TSEQUENCE({1,2,3,4,5}),{5,2,3,,7,2})
- VARIABLE : SAMPLEL(TSEQUENCE({1,2,3,4,5}),{5,2,3,,7,2})
- SUBSET : 6 points (T)
- 1 / 1: 5.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: ....
- 5 / 5: ....
- 6 / 6: 2.00000
-list SAMPLEL(X[x=110:200:10],{3,4,7}) ! normal axis
- VARIABLE : SAMPLEL(X[X=110:200:10],{3,4,7})
- SUBSET : 10 by 3 points (X-T)
- 110 120 130 140 150 160 170 180 190 200
- 1 2 3 4 5 6 7 8 9 10
- 1 / 1:........................................
- 2 / 2:........................................
- 3 / 3:........................................
-
-
-GO bn_reset
-cancel mode verify
-GO bn_strides_revs_perms ! netCDF fancy reads
-! bn_strides_revs_perms.jnl
-! *sh* 6/99
-
-! exercise special netCDF performance and robustness enhancements to allow
-! reading with strides and permuting and reversing axes
-
-! * * * * * PERMUTATIONS * * * * *
-! How to evaluate the correct ordering:
-! The data in bn_strides.cdf is ordered with the 1's digit
-! moving fastert, then the 10's, then 100's, etc.
-
-! If (say) /ORDER=ZXY is given we should see the 100's digit
-! moving fastest (left to right on each line), the 1's next
-! (vertically within each block of output), and the 10's next
-! advancing from block to block
-
-canc data/all
-cancel mode diagnostic
-
-! first with an XYZT variable
-set region/i=3:6/j=2:4/k=1:2/l=1
-use bn_strides
-list bigvar
- VARIABLE : VAR
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 4 5 6
- 3 4 5 6
- ---- K:1 Z: 1
- 2 / 2: 1123.00 1124.00 1125.00 1126.00
- 3 / 3: 1133.00 1134.00 1135.00 1136.00
- 4 / 4: 1143.00 1144.00 1145.00 1146.00
- ---- K:2 Z: 2
- 2 / 2: 1223.00 1224.00 1225.00 1226.00
- 3 / 3: 1233.00 1234.00 1235.00 1236.00
- 4 / 4: 1243.00 1244.00 1245.00 1246.00
-canc data/all
-
-use/order=yx bn_strides
-list bigvar
- VARIABLE : VAR
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 4 5 6
- 3 4 5 6
- ---- K:1 Z: 1
- 2 / 2: 1132.00 1142.00 1152.00 1162.00
- 3 / 3: 1133.00 1143.00 1153.00 1163.00
- 4 / 4: 1134.00 1144.00 1154.00 1164.00
- ---- K:2 Z: 2
- 2 / 2: 1232.00 1242.00 1252.00 1262.00
- 3 / 3: 1233.00 1243.00 1253.00 1263.00
- 4 / 4: 1234.00 1244.00 1254.00 1264.00
-canc data/all
-
-use/order=zyx bn_strides
-list bigvar
- VARIABLE : VAR
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 4 5 6
- 3 4 5 6
- ---- K:1 Z: 1
- 2 / 2: 1321.00 1421.00 1521.00 1621.00
- 3 / 3: 1331.00 1431.00 1531.00 1631.00
- 4 / 4: 1341.00 1441.00 1541.00 1641.00
- ---- K:2 Z: 2
- 2 / 2: 1322.00 1422.00 1522.00 1622.00
- 3 / 3: 1332.00 1432.00 1532.00 1632.00
- 4 / 4: 1342.00 1442.00 1542.00 1642.00
-canc data/all
-
-use/order=zxy bn_strides
-list bigvar
- VARIABLE : VAR
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 4 5 6
- 3 4 5 6
- ---- K:1 Z: 1
- 2 / 2: 1312.00 1412.00 1512.00 1612.00
- 3 / 3: 1313.00 1413.00 1513.00 1613.00
- 4 / 4: 1314.00 1414.00 1514.00 1614.00
- ---- K:2 Z: 2
- 2 / 2: 1322.00 1422.00 1522.00 1622.00
- 3 / 3: 1323.00 1423.00 1523.00 1623.00
- 4 / 4: 1324.00 1424.00 1524.00 1624.00
-canc data/all
-
-! now with an XYT variable
-cancel region
-set region/i=1:4/j=1:3/l=1:2
-use bn_strides
-show grid xytvar
- GRID GPC5
- name axis # pts start end
- XLON LONGITUDE 40mr 141E 180E
- YLAT LATITUDE 30 r 1N 30N
- normal Z
- TTIME TIME 20 r 01-JAN-1995 00:00 20-JAN-1995 00:00
- normal E
- normal F
-list xytvar
- VARIABLE : L*1000 + J*10 + I
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (LONGITUDE-LATITUDE-TIME)
- 141E 142E 143E 144E
- 1 2 3 4
- ---- L:1 T: JAN-1995
- 3N / 3: 1031.00 1032.00 1033.00 1034.00
- 2N / 2: 1021.00 1022.00 1023.00 1024.00
- 1N / 1: 1011.00 1012.00 1013.00 1014.00
- ---- L:2 T: JAN-1995
- 3N / 3: 2031.00 2032.00 2033.00 2034.00
- 2N / 2: 2021.00 2022.00 2023.00 2024.00
- 1N / 1: 2011.00 2012.00 2013.00 2014.00
-canc data/all
-
-use/order=yx bn_strides
-show grid xytvar
- GRID GPC5
- name axis # pts start end
- YLAT X (degrees_north) 30 r 1 30
- XLON Y (degrees_east) 40mr 141 180
- normal Z
- TTIME TIME 20 r 01-JAN-1995 00:00 20-JAN-1995 00:00
- normal E
- normal F
-list xytvar
- VARIABLE : L*1000 + J*10 + I
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (degrees_north)-Y (degrees_east)-TIME)
- 1 2 3 4
- 1 2 3 4
- ---- L:1 T: JAN-1995
- 141 / 1: 1011.00 1021.00 1031.00 1041.00
- 142 / 2: 1012.00 1022.00 1032.00 1042.00
- 143 / 3: 1013.00 1023.00 1033.00 1043.00
- ---- L:2 T: JAN-1995
- 141 / 1: 2011.00 2021.00 2031.00 2041.00
- 142 / 2: 2012.00 2022.00 2032.00 2042.00
- 143 / 3: 2013.00 2023.00 2033.00 2043.00
-canc data/all
-
-use/order=tyx bn_strides
-show grid xytvar
- GRID GPC5
- name axis # pts start end
- TTIME X (DAYS) 20 r 34319 34338
- YLAT LATITUDE 30 r 1N 30N
- normal Z
- XLON T (degrees_east) 40mr 141 180
- normal E
- normal F
-list xytvar
- VARIABLE : L*1000 + J*10 + I
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-LATITUDE-T (degrees_east))
- 34319 34320 34321 34322
- 1 2 3 4
- ---- L:1 T: 141
- 3N / 3: 1031.00 2031.00 3031.00 4031.00
- 2N / 2: 1021.00 2021.00 3021.00 4021.00
- 1N / 1: 1011.00 2011.00 3011.00 4011.00
- ---- L:2 T: 142
- 3N / 3: 1032.00 2032.00 3032.00 4032.00
- 2N / 2: 1022.00 2022.00 3022.00 4022.00
- 1N / 1: 1012.00 2012.00 3012.00 4012.00
-canc data/all
-
-use/order=txy bn_strides
-show grid xytvar
- GRID GPC5
- name axis # pts start end
- TTIME X (DAYS) 20 r 34319 34338
- XLON Y (degrees_east) 40mr 141 180
- normal Z
- YLAT T (degrees_north) 30 r 1 30
- normal E
- normal F
-list xytvar
- VARIABLE : L*1000 + J*10 + I
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-T (degrees_north))
- 34319 34320 34321 34322
- 1 2 3 4
- ---- L:1 T: 1
- 141 / 1: 1011.00 2011.00 3011.00 4011.00
- 142 / 2: 1012.00 2012.00 3012.00 4012.00
- 143 / 3: 1013.00 2013.00 3013.00 4013.00
- ---- L:2 T: 2
- 141 / 1: 1021.00 2021.00 3021.00 4021.00
- 142 / 2: 1022.00 2022.00 3022.00 4022.00
- 143 / 3: 1023.00 2023.00 3023.00 4023.00
-canc data/all
-
-! map into Z instead of T
-use/order=zxy bn_strides
-show grid xytvar
- GRID GPC5
- name axis # pts start end
- TTIME X (DAYS) 20 r 34319 34338
- XLON Y (degrees_east) 40mr 141 180
- YLAT Z (degrees_north) 30 r 1 30
- normal T
- normal E
- normal F
-list/k=1:2 xytvar
- VARIABLE : L*1000 + J*10 + I
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-Z (degrees_north))
- 34319 34320 34321 34322
- 1 2 3 4
- ---- K:1 Z: 1
- 141 / 1: 1011.00 2011.00 3011.00 4011.00
- 142 / 2: 1012.00 2012.00 3012.00 4012.00
- 143 / 3: 1013.00 2013.00 3013.00 4013.00
- ---- K:2 Z: 2
- 141 / 1: 1021.00 2021.00 3021.00 4021.00
- 142 / 2: 1022.00 2022.00 3022.00 4022.00
- 143 / 3: 1023.00 2023.00 3023.00 4023.00
-canc data/all
-
-! ambiguous mapping
-use/order=tx bn_strides
-show grid xytvar
- GRID GPC5
- name axis # pts start end
- TTIME X (DAYS) 20 r 34319 34338
- XLON Y (degrees_east) 40mr 141 180
- normal Z
- YLAT T (degrees_north) 30 r 1 30
- normal E
- normal F
-list xytvar
- VARIABLE : L*1000 + J*10 + I
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-T (degrees_north))
- 34319 34320 34321 34322
- 1 2 3 4
- ---- L:1 T: 1
- 141 / 1: 1011.00 2011.00 3011.00 4011.00
- 142 / 2: 1012.00 2012.00 3012.00 4012.00
- 143 / 3: 1013.00 2013.00 3013.00 4013.00
- ---- L:2 T: 2
- 141 / 1: 1021.00 2021.00 3021.00 4021.00
- 142 / 2: 1022.00 2022.00 3022.00 4022.00
- 143 / 3: 1023.00 2023.00 3023.00 4023.00
-canc data/all
-
-! final "z" goes beyond the 3D -- no effect
-use/order=txyz bn_strides
-show grid xytvar
- GRID GPC5
- name axis # pts start end
- TTIME X (DAYS) 20 r 34319 34338
- XLON Y (degrees_east) 40mr 141 180
- normal Z
- YLAT T (degrees_north) 30 r 1 30
- normal E
- normal F
-show grid var
- GRID GPC1
- name axis # pts start end
- TAX1_1 X 1 r 1 1
- XAX1_4 Y 4 r 1 4
- YAX1_3 Z 3 r 1 3
- ZAX1_2 T 2 r 1 2
- normal E
- normal F
-canc data/all
-
-! * * * * * STRIDES * * * * *
-use bn_strides
-set mode diag
-cancel memory/all
-
-SHOW DATA
- currently SET data sets:
- 1> ./bn_strides.cdf (default)
- name title I J K L M N
- VAR L*1000 + K*100 + J*10 + I 1:4 1:3 1:2 1:1 ... ...
- MIDVAR VAR 1:9 1:8 1:7 1:6 ... ...
- BIGVAR VAR 1:40 1:30 1:20 1:10 ... ...
- UNEVENVAR
- L*1000 + K*100 + J[GY=YUNEVEN]* 1:10 1:8 1:6 1:4 ... ...
- XYTVAR L*1000 + J*10 + I 1:40 1:30 ... 1:20 ... ...
-
-
-! basic strides
-LIST VAR[i=2:4:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G018) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G018) @XACT
- rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J*10 + I
- regrid: 2 delta on X
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- T : 1
- 2 4
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1112.00 1114.00
- 2 / 2: 1122.00 1124.00
- 3 / 3: 1132.00 1134.00
- ---- K:2 Z: 2
- 1 / 1: 1212.00 1214.00
- 2 / 2: 1222.00 1224.00
- 3 / 3: 1232.00 1234.00
-
-! cache hit after changes to COMPLETE_MISSING_LIMS and FLESH_OUT_AXIS
-LIST VAR[i=2:4:2]
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G018) @XACT
- rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 27 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J*10 + I
- regrid: 2 delta on X
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- T : 1
- 2 4
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1112.00 1114.00
- 2 / 2: 1122.00 1124.00
- 3 / 3: 1132.00 1134.00
- ---- K:2 Z: 2
- 1 / 1: 1212.00 1214.00
- 2 / 2: 1222.00 1224.00
- 3 / 3: 1232.00 1234.00
-
-! cache hit through non-file variable
-let a = VAR[i=2:4:2]
-list a
- dealloc dynamic grid (G018) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M: 27 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 1 I: 1 2 J: 1 3 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G018) @XACT
- rdstride VAR C: 9 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 27 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 47 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : VAR[I=2:4:2]
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- T : 1
- 2 4
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1112.00 1114.00
- 2 / 2: 1122.00 1124.00
- 3 / 3: 1132.00 1134.00
- ---- K:2 Z: 2
- 1 / 1: 1212.00 1214.00
- 2 / 2: 1222.00 1224.00
- 3 / 3: 1232.00 1234.00
-list a ! from cache ...
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 1 I: 1 2 J: 1 3 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G018) @XACT
- rdstride VAR C: 9 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 54 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : VAR[I=2:4:2]
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- T : 1
- 2 4
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1112.00 1114.00
- 2 / 2: 1122.00 1124.00
- 3 / 3: 1132.00 1134.00
- ---- K:2 Z: 2
- 1 / 1: 1212.00 1214.00
- 2 / 2: 1222.00 1224.00
- 3 / 3: 1232.00 1234.00
-
-! cache hit from full region cache -- bypass use of strides
-cancel memory/all
- -DELETE VAR M: 27 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 54 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 55 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-load var
- dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC1 XAX1_4 YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading VAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-LIST VAR[i=2:4:2]
- dealloc dynamic grid GPC1 XAX1_4 YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G018) @XACT
- rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 54 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J*10 + I
- regrid: 2 delta on X
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- T : 1
- 2 4
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1112.00 1114.00
- 2 / 2: 1122.00 1124.00
- 3 / 3: 1132.00 1134.00
- ---- K:2 Z: 2
- 1 / 1: 1212.00 1214.00
- 2 / 2: 1222.00 1224.00
- 3 / 3: 1232.00 1234.00
-LIST VAR[i=2:4:2,j=1:3:2]
- dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G010) @XACT
- rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 27 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 54 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J*10 + I
- regrid: 2 delta on X, 2 delta on Y
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 2 4
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1112.00 1114.00
- 3 / 2: 1132.00 1134.00
- ---- K:2 Z: 2
- 1 / 1: 1212.00 1214.00
- 3 / 2: 1232.00 1234.00
-CANC MEM/ALL
- -DELETE VAR M: 27 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-
-! modulo requests cannot use strides (as this example shows)
-set axis/modulo XAX1_4
-LIST VAR[I=1:10:3,j=1,k=1,l=1] ! 1, 4, 7(3), 10(2)
- dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G010) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G010) @XACT
- strip moduloing VAR on X axis: 1 10 dset: 1
- reading VAR M: 55 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- doing moduloing VAR on X axis: 1 4 dset: 1
- regrid VAR M: 27 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J*10 + I
- regrid: 3 delta on X
- FILENAME : bn_strides.cdf
- SUBSET : 4 points (X)
- Y : 1
- Z : 1
- T : 1
- 1
- 1
- 1 / 1: 1111.00
- 4 / 2: 1114.00
- 7 / 3: 1113.00
- 10 / 4: 1112.00
-cancel axis/modulo XAX1_4
- -DELETE VAR M: 27 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 47 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-
-! strides applied to more than one axis need special attention in IS_REGRID
-LIST VAR[i=2:4:2,j=1:3:2]
- dealloc dynamic grid (G010) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G010) @XACT
- rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 47 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J*10 + I
- regrid: 2 delta on X, 2 delta on Y
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 2 4
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1112.00 1114.00
- 3 / 2: 1132.00 1134.00
- ---- K:2 Z: 2
- 1 / 1: 1212.00 1214.00
- 3 / 2: 1232.00 1234.00
-LIST VAR[i=2:6:2,j=1:5:2]
- dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M: 47 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX023) (AX024) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX023) (AX024) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G010) (AX023) (AX024) ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX023) (AX024) ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G010) @XACT
- rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 47 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX023) (AX024) ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J*10 + I
- regrid: 2 delta on X, 2 delta on Y
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 2 4
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1112.00 1114.00
- 3 / 2: 1132.00 1134.00
- ---- K:2 Z: 2
- 1 / 1: 1212.00 1214.00
- 3 / 2: 1232.00 1234.00
-
-! deliberate error
-set mode ignore; LIST/i=2:4:2 VAR; cancel mode ignore
- dealloc dynamic grid (G010) (AX023) (AX024) ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC1 XAX1_4 YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
-
-! averaging causes bypass of strides
-LIST VAR[i=2:4:2 at ave]
- dealloc dynamic grid GPC1 XAX1_4 YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G018) @AVE
- reading VAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- regrid VAR M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J*10 + I
- regrid: 2 delta on X at AVE
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 3 by 2 points (X-Y-Z)
- T : 1
- 2 4
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1112.00 1113.67
- 2 / 2: 1122.00 1123.67
- 3 / 3: 1132.00 1133.67
- ---- K:2 Z: 2
- 1 / 1: 1212.00 1213.67
- 2 / 2: 1222.00 1223.67
- 3 / 3: 1232.00 1233.67
-
-! test sub-region selection on strides axis
-let a = bigvar[i=1:40:5]
- dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-list/j=1/k=1/l=1 a[i=3:5]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 7 dset: 1 I: 3 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G018) @XACT
- rdstride BIGVAR C: 10 dset: 1 I: 1 36 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 27 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 47 dset: 1 I: 1 36 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- VARIABLE : BIGVAR[I=1:40:5]
- FILENAME : bn_strides.cdf
- SUBSET : 3 points (X)
- Y : 1
- Z : 1
- T : 1
- 1
- 1
- 11 / 3: 1121.00
- 16 / 4: 1126.00
- 21 / 5: 1131.00
- -DELETE A M: 54 dset: 1 I: 1 1 J: 3 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX024) (AX025) ZAX1_20 TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX024) (AX025) ZAX1_20 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G010) (AX024) (AX025) ZAX1_20 TAX1_10 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX024) (AX025) ZAX1_20 TAX1_10 NORMAL NORMAL
- strip regrid on Y: A --> (G010) @XACT
- eval A C: 8 dset: 1 I: 3 5 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G018) @XACT
- rdstride BIGVAR C: 11 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 52 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 54 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- regrid A M: 49 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX024) (AX025) ZAX1_20 TAX1_10 NORMAL NORMAL
- VARIABLE : BIGVAR[I=1:40:5]
- regrid: 2 delta on Y
- FILENAME : bn_strides.cdf
- SUBSET : 3 by 4 points (X-Y)
- Z : 1
- T : 1
- 11 16 21
- 3 4 5
- 1 / 1: 1121.00 1126.00 1131.00
- 3 / 2: 1141.00 1146.00 1151.00
- 5 / 3: 1161.00 1166.00 1171.00
- 7 / 4: 1181.00 1186.00 1191.00
-
-! ****** unequally spaced points on parent axis
-! reference data
-LIST/order=x/j=1/k=1/l=1 UNEVENVAR
- dealloc dynamic grid (G010) (AX024) (AX025) ZAX1_20 TAX1_10 NORMAL NORMAL
- -DELETE A M: 49 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC4 XUNEVEN YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- reading UNE-NVAR M: 49 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
- FILENAME : bn_strides.cdf
- SUBSET : 4 points (X)
- Y : 0
- Z : 1
- T : 1
- 0 0.3 0.48 0.6
- 1 2 3 4
- 1111.00 1112.00 1113.00 1114.00
-cancel mem/all
- -DELETE BIGVAR M: 27 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 47 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 49 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 52 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 54 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-
-! basic strides
-LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc dynamic grid GPC4 XUNEVEN YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G010) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G010) @XACT
- rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 54 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
- regrid: on X
- FILENAME : bn_strides.cdf
- SUBSET : 2 points (X)
- Y : 0
- Z : 1
- T : 1
- 0.3 0.6
- 1 2
- 1112.00 1114.00
-
-! cache hit after changes to COMPLETE_MISSING_LIMS and FLESH_OUT_AXIS
-LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G010) @XACT
- rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
- regrid: on X
- FILENAME : bn_strides.cdf
- SUBSET : 2 points (X)
- Y : 0
- Z : 1
- T : 1
- 0.3 0.6
- 1 2
- 1112.00 1114.00
-
-! cache hit through non-file variable
-let a = UNEVENVAR[i=2:4:2]
- dealloc dynamic grid (G010) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 54 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
-list/order=x/j=1/k=1/l=1 a
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 7 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G018) @XACT
- rdstride UNE-NVAR C: 10 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 54 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- VARIABLE : UNEVENVAR[I=2:4:2]
- FILENAME : bn_strides.cdf
- SUBSET : 2 points (X)
- Y : 0
- Z : 1
- T : 1
- 0.3 0.6
- 1 2
- 1112.00 1114.00
-list/order=x/j=1/k=1/l=1 a ! from cache ...
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 7 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G018) @XACT
- rdstride UNE-NVAR C: 10 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 49 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- VARIABLE : UNEVENVAR[I=2:4:2]
- FILENAME : bn_strides.cdf
- SUBSET : 2 points (X)
- Y : 0
- Z : 1
- T : 1
- 0.3 0.6
- 1 2
- 1112.00 1114.00
-
-! cache hit from full region cache -- bypass use of strides
-cancel memory/all
- -DELETE UNE-NVAR M: 49 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 54 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 55 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-load/k=1/l=1 UNEVENVAR
- dealloc dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC4 XUNEVEN YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- reading UNE-NVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc dynamic grid GPC4 XUNEVEN YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G018) @XACT
- rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 54 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
- regrid: on X
- FILENAME : bn_strides.cdf
- SUBSET : 2 points (X)
- Y : 0
- Z : 1
- T : 1
- 0
- 1
- 0.3 / 1: 1112.00
- 0.6 / 2: 1114.00
-LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
- dealloc dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G010) @XACT
- rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 49 dset: 1 I: 1 2 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 54 dset: 1 I: 2 4 J: 1 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
- doing limits reconciliation on Y axis: UNEVENVAR
- VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
- regrid: on X, on Y
- FILENAME : bn_strides.cdf
- SUBSET : 2 points (X)
- Y : 0
- Z : 1
- T : 1
- 0
- 1
- 0.3 / 1: 1112.00
- 0.6 / 2: 1114.00
- -DELETE UNE-NVAR M: 54 dset: 1 I: 1 1 J: 1 2 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-CANC MEM/ALL
- -DELETE UNE-NVAR M: 49 dset: 1 I: 1 2 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-
-! modulo requests cannot use strides (as this example shows)
-set axis/modulo XUNEVEN
-LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1] ! 1, 8, 15(5), 22(2)
- dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G010) @XACT
- strip moduloing UNEVENVAR on X axis: 1 29 dset: 1
- reading UNE-NVAR M: 55 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- doing moduloing UNEVENVAR on X axis: 1 10 dset: 1
- regrid UNE-NVAR M: 49 dset: 1 I: 1 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
- regrid: on X
- FILENAME : bn_strides.cdf
- SUBSET : 5 points (X)
- Y : 0
- Z : 1
- T : 1
- 0 0.9 1.87 2.65 3.3
- 1 2 3 4 5
- 1111.00 1118.00 1115.00 1112.00 1119.00
-cancel axis/modulo XUNEVEN
- -DELETE UNE-NVAR M: 49 dset: 1 I: 1 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 29 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-
-! strides applied to more than one axis need special attention in IS_REGRID
-LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
- dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G010) @XACT
- rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 2 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
- regrid: on X, on Y
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 points (X-Y)
- Z : 1
- T : 1
- 0.3 0.6
- 1 2
- 0 / 1: 1112.00 1114.00
- 0.95 / 2: 1132.00 1134.00
-LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
- dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX024) (AX026) ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX024) (AX026) ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G010) (AX024) (AX026) ZAX1_6 TAX1_4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX024) (AX026) ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G010) @XACT
- rdstride UNE-NVAR C: 8 dset: 1 I: 2 6 J: 1 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 55 dset: 1 I: 1 3 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 52 dset: 1 I: 2 6 J: 1 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX024) (AX026) ZAX1_6 TAX1_4 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
- regrid: on X, on Y
- FILENAME : bn_strides.cdf
- SUBSET : 3 by 3 points (X-Y)
- Z : 1
- T : 1
- 0.3 0.6 0.78
- 1 2 3
- 0 / 1: 1112.00 1114.00 1116.00
- 0.95 / 2: 1132.00 1134.00 1136.00
- 1.4 / 3: 1152.00 1154.00 1156.00
-
-! averaging causes bypass of strides
-LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
- dealloc dynamic grid (G010) (AX024) (AX026) ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M: 55 dset: 1 I: 1 3 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G010) @AVE
- reading UNE-NVAR M: 55 dset: 1 I: 1 9 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- regrid UNE-NVAR M: 52 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
- regrid: on X at AVE
- FILENAME : bn_strides.cdf
- SUBSET : 4 points (X)
- Y : 0
- Z : 1
- T : 1
- 0
- 1
- 0.3 / 1: 1111.60376
- 0.6 / 2: 1113.79689
- 0.78 / 3: 1115.87072
- 0.9 / 4: 1117.90449
-LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2] ! for comparison
- dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX026) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX026) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G010) (AX026) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX026) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G010) @XACT
- rdstride UNE-NVAR C: 8 dset: 1 I: 2 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 49 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 52 dset: 1 I: 2 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX026) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
- regrid: on X
- FILENAME : bn_strides.cdf
- SUBSET : 4 points (X)
- Y : 0
- Z : 1
- T : 1
- 0
- 1
- 0.3 / 1: 1112.00000
- 0.6 / 2: 1114.00000
- 0.78 / 3: 1116.00000
- 0.9 / 4: 1118.00000
-
-! test special logic in tm_world_recur for endpoints of strides on irreg axis
-LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=1:10:2 at ave]
- dealloc dynamic grid (G010) (AX026) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M: 49 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G010) @AVE
- reading UNE-NVAR M: 49 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- regrid UNE-NVAR M: 52 dset: 1 I: 1 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
- regrid: on X at AVE
- FILENAME : bn_strides.cdf
- SUBSET : 5 points (X)
- Y : 0
- Z : 1
- T : 1
- 0
- 1
- 0 / 1: 1111.22629
- 0.48 / 2: 1112.70797
- 0.7 / 3: 1114.84240
- 0.85 / 4: 1116.89020
- 0.95 / 5: 1119.13604
-
-
-! * * * * * MIXED STRIDES and PERMUTATIONS * * * * *
-
-set region/i=3:6/j=2:4/k=1:2/l=1
-
-use/order=yx bn_strides
-list bigvar[i=3:9:2]
- dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX026) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX026) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G010) (AX026) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX026) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G010) @XACT
- rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 54 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 52 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX026) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 2 delta on X
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 5 7 9
- 1 2 3 4
- ---- K:1 Z: 1
- 2 / 2: 1123.00 1125.00 1127.00 1129.00
- 3 / 3: 1133.00 1135.00 1137.00 1139.00
- 4 / 4: 1143.00 1145.00 1147.00 1149.00
- ---- K:2 Z: 2
- 2 / 2: 1223.00 1225.00 1227.00 1229.00
- 3 / 3: 1233.00 1235.00 1237.00 1239.00
- 4 / 4: 1243.00 1245.00 1247.00 1249.00
-list bigvar[j=2:6:2]
- dealloc dynamic grid (G010) (AX026) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- -DELETE BIGVAR M: 54 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XAX1_40 (AX024) ZAX1_20 TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G010) XAX1_40 (AX024) ZAX1_20 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G010) XAX1_40 (AX024) ZAX1_20 TAX1_10 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) XAX1_40 (AX024) ZAX1_20 TAX1_10 NORMAL NORMAL
- strip regrid on Y: BIGVAR --> (G010) @XACT
- rdstride BIGVAR C: 7 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 52 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 54 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) XAX1_40 (AX024) ZAX1_20 TAX1_10 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 2 delta on Y
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 4 5 6
- 3 4 5 6
- ---- K:1 Z: 1
- 2 / 1: 1123.00 1124.00 1125.00 1126.00
- 4 / 2: 1143.00 1144.00 1145.00 1146.00
- 6 / 3: 1163.00 1164.00 1165.00 1166.00
- ---- K:2 Z: 2
- 2 / 1: 1223.00 1224.00 1225.00 1226.00
- 4 / 2: 1243.00 1244.00 1245.00 1246.00
- 6 / 3: 1263.00 1264.00 1265.00 1266.00
-list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc dynamic grid (G010) XAX1_40 (AX024) ZAX1_20 TAX1_10 NORMAL NORMAL
- -DELETE BIGVAR M: 52 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) (AX026) (AX025) (AX027) TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G010) (AX026) (AX025) (AX027) TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G010) (AX026) (AX025) (AX027) TAX1_10 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G010) (AX026) (AX025) (AX027) TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G010) @XACT
- rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 52 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX026) (AX025) (AX027) TAX1_10 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 5 7 9
- 1 2 3 4
- ---- K:1 Z: 1
- 2 / 1: 1123.00 1125.00 1127.00 1129.00
- 4 / 2: 1143.00 1145.00 1147.00 1149.00
- 6 / 3: 1163.00 1165.00 1167.00 1169.00
- ---- K:2 Z: 3
- 2 / 1: 1323.00 1325.00 1327.00 1329.00
- 4 / 2: 1343.00 1345.00 1347.00 1349.00
- 6 / 3: 1363.00 1365.00 1367.00 1369.00
-canc data/all
- -DELETE UNE-NVAR M: 49 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 1 9 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G010) (AX026) (AX025) (AX027) TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
-
-use/order=zyx bn_strides
-list bigvar[i=3:9:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX027) YAX1_30 XAX1_40 TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX027) YAX1_30 XAX1_40 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G018) (AX027) YAX1_30 XAX1_40 TAX1_10 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX027) YAX1_30 XAX1_40 TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G018) @XACT
- rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 54 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 55 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) YAX1_30 XAX1_40 TAX1_10 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 2 delta on X
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 5 7 9
- 1 2 3 4
- ---- K:1 Z: 1
- 2 / 2: 1321.00 1521.00 1721.00 1921.00
- 3 / 3: 1331.00 1531.00 1731.00 1931.00
- 4 / 4: 1341.00 1541.00 1741.00 1941.00
- ---- K:2 Z: 2
- 2 / 2: 1322.00 1522.00 1722.00 1922.00
- 3 / 3: 1332.00 1532.00 1732.00 1932.00
- 4 / 4: 1342.00 1542.00 1742.00 1942.00
-list bigvar[j=2:6:2]
- dealloc dynamic grid (G018) (AX027) YAX1_30 XAX1_40 TAX1_10 NORMAL NORMAL
- -DELETE BIGVAR M: 54 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) ZAX1_20 (AX023) XAX1_40 TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G018) ZAX1_20 (AX023) XAX1_40 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G018) ZAX1_20 (AX023) XAX1_40 TAX1_10 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) ZAX1_20 (AX023) XAX1_40 TAX1_10 NORMAL NORMAL
- strip regrid on Y: BIGVAR --> (G018) @XACT
- rdstride BIGVAR C: 7 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 55 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 54 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) ZAX1_20 (AX023) XAX1_40 TAX1_10 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 2 delta on Y
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 4 5 6
- 3 4 5 6
- ---- K:1 Z: 1
- 2 / 1: 1321.00 1421.00 1521.00 1621.00
- 4 / 2: 1341.00 1441.00 1541.00 1641.00
- 6 / 3: 1361.00 1461.00 1561.00 1661.00
- ---- K:2 Z: 2
- 2 / 1: 1322.00 1422.00 1522.00 1622.00
- 4 / 2: 1342.00 1442.00 1542.00 1642.00
- 6 / 3: 1362.00 1462.00 1562.00 1662.00
-list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc dynamic grid (G018) ZAX1_20 (AX023) XAX1_40 TAX1_10 NORMAL NORMAL
- -DELETE BIGVAR M: 55 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_10 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G018) @XACT
- rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 55 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_10 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 5 7 9
- 1 2 3 4
- ---- K:1 Z: 1
- 2 / 1: 1321.00 1521.00 1721.00 1921.00
- 4 / 2: 1341.00 1541.00 1741.00 1941.00
- 6 / 3: 1361.00 1561.00 1761.00 1961.00
- ---- K:2 Z: 3
- 2 / 1: 1323.00 1523.00 1723.00 1923.00
- 4 / 2: 1343.00 1543.00 1743.00 1943.00
- 6 / 3: 1363.00 1563.00 1763.00 1963.00
-canc data/all
- -DELETE BIGVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_10 NORMAL NORMAL
-
-use/order=zxy bn_strides
-list bigvar[i=3:9:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX025) XAX1_40 YAX1_30 TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX025) XAX1_40 YAX1_30 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G018) (AX025) XAX1_40 YAX1_30 TAX1_10 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX025) XAX1_40 YAX1_30 TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G018) @XACT
- rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 55 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 54 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) XAX1_40 YAX1_30 TAX1_10 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 2 delta on X
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 5 7 9
- 1 2 3 4
- ---- K:1 Z: 1
- 2 / 2: 1312.00 1512.00 1712.00 1912.00
- 3 / 3: 1313.00 1513.00 1713.00 1913.00
- 4 / 4: 1314.00 1514.00 1714.00 1914.00
- ---- K:2 Z: 2
- 2 / 2: 1322.00 1522.00 1722.00 1922.00
- 3 / 3: 1323.00 1523.00 1723.00 1923.00
- 4 / 4: 1324.00 1524.00 1724.00 1924.00
-list bigvar[j=2:6:2]
- dealloc dynamic grid (G018) (AX025) XAX1_40 YAX1_30 TAX1_10 NORMAL NORMAL
- -DELETE BIGVAR M: 55 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) ZAX1_20 (AX026) YAX1_30 TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G018) ZAX1_20 (AX026) YAX1_30 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G018) ZAX1_20 (AX026) YAX1_30 TAX1_10 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) ZAX1_20 (AX026) YAX1_30 TAX1_10 NORMAL NORMAL
- strip regrid on Y: BIGVAR --> (G018) @XACT
- rdstride BIGVAR C: 7 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 54 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 55 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) ZAX1_20 (AX026) YAX1_30 TAX1_10 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 2 delta on Y
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 4 5 6
- 3 4 5 6
- ---- K:1 Z: 1
- 2 / 1: 1312.00 1412.00 1512.00 1612.00
- 4 / 2: 1314.00 1414.00 1514.00 1614.00
- 6 / 3: 1316.00 1416.00 1516.00 1616.00
- ---- K:2 Z: 2
- 2 / 1: 1322.00 1422.00 1522.00 1622.00
- 4 / 2: 1324.00 1424.00 1524.00 1624.00
- 6 / 3: 1326.00 1426.00 1526.00 1626.00
-list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc dynamic grid (G018) ZAX1_20 (AX026) YAX1_30 TAX1_10 NORMAL NORMAL
- -DELETE BIGVAR M: 54 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_10 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G018) @XACT
- rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 54 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_10 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 5 7 9
- 1 2 3 4
- ---- K:1 Z: 1
- 2 / 1: 1312.00 1512.00 1712.00 1912.00
- 4 / 2: 1314.00 1514.00 1714.00 1914.00
- 6 / 3: 1316.00 1516.00 1716.00 1916.00
- ---- K:2 Z: 3
- 2 / 1: 1332.00 1532.00 1732.00 1932.00
- 4 / 2: 1334.00 1534.00 1734.00 1934.00
- 6 / 3: 1336.00 1536.00 1736.00 1936.00
-canc data/all
- -DELETE BIGVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_10 NORMAL NORMAL
-
-! now with xytvar
-cancel region
-set region/i=1:4/j=1:3/l=1:2
-use bn_strides
-show grid xytvar
- getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC5 XLON YLAT NORMAL TTIME NORMAL NORMAL
- GRID GPC5
- name axis # pts start end
- XLON LONGITUDE 40mr 141E 180E
- YLAT LATITUDE 30 r 1N 30N
- normal Z
- TTIME TIME 20 r 01-JAN-1995 00:00 20-JAN-1995 00:00
- normal E
- normal F
-list xytvar[i=1:7:2]
- dealloc dynamic grid GPC5 XLON YLAT NORMAL TTIME NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX027) YLAT NORMAL TTIME NORMAL NORMAL
- dealloc dynamic grid (G018) (AX027) YLAT NORMAL TTIME NORMAL NORMAL
- allocate dynamic grid (G018) (AX027) YLAT NORMAL TTIME NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX027) YLAT NORMAL TTIME NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) YLAT NORMAL TTIME NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 deg on X
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (LONGITUDE-LATITUDE-TIME)
- 141E 143E 145E 147E
- 1 2 3 4
- ---- L:1 T: JAN-1995
- 3N / 3: 1031.00 1033.00 1035.00 1037.00
- 2N / 2: 1021.00 1023.00 1025.00 1027.00
- 1N / 1: 1011.00 1013.00 1015.00 1017.00
- ---- L:2 T: JAN-1995
- 3N / 3: 2031.00 2033.00 2035.00 2037.00
- 2N / 2: 2021.00 2023.00 2025.00 2027.00
- 1N / 1: 2011.00 2013.00 2015.00 2017.00
-list xytvar[j=2:6:2]
- dealloc dynamic grid (G018) (AX027) YLAT NORMAL TTIME NORMAL NORMAL
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) XLON (AX023) NORMAL TTIME NORMAL NORMAL
- dealloc dynamic grid (G018) XLON (AX023) NORMAL TTIME NORMAL NORMAL
- allocate dynamic grid (G018) XLON (AX023) NORMAL TTIME NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) XLON (AX023) NORMAL TTIME NORMAL NORMAL
- strip regrid on Y: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) XLON (AX023) NORMAL TTIME NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 deg on Y
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (LONGITUDE-LATITUDE-TIME)
- 141E 142E 143E 144E
- 1 2 3 4
- ---- L:1 T: JAN-1995
- 6N / 3: 1061.00 1062.00 1063.00 1064.00
- 4N / 2: 1041.00 1042.00 1043.00 1044.00
- 2N / 1: 1021.00 1022.00 1023.00 1024.00
- ---- L:2 T: JAN-1995
- 6N / 3: 2061.00 2062.00 2063.00 2064.00
- 4N / 2: 2041.00 2042.00 2043.00 2044.00
- 2N / 1: 2021.00 2022.00 2023.00 2024.00
-list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc dynamic grid (G018) XLON (AX023) NORMAL TTIME NORMAL NORMAL
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
- dealloc dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
- allocate dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 deg on X, 2 deg on Y, 2 day on T
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (LONGITUDE-LATITUDE-TIME)
- 141E 143E 145E 147E
- 1 2 3 4
- ---- L:1 T: JAN-1995
- 6N / 3: 3061.00 3063.00 3065.00 3067.00
- 4N / 2: 3041.00 3043.00 3045.00 3047.00
- 2N / 1: 3021.00 3023.00 3025.00 3027.00
- ---- L:2 T: JAN-1995
- 6N / 3: 5061.00 5063.00 5065.00 5067.00
- 4N / 2: 5041.00 5043.00 5045.00 5047.00
- 2N / 1: 5021.00 5023.00 5025.00 5027.00
-canc data/all
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
-
-use/order=yx bn_strides
-show grid xytvar
- getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC5 YLAT XLON NORMAL TTIME NORMAL NORMAL
- GRID GPC5
- name axis # pts start end
- YLAT X (degrees_north) 30 r 1 30
- XLON Y (degrees_east) 40mr 141 180
- normal Z
- TTIME TIME 20 r 01-JAN-1995 00:00 20-JAN-1995 00:00
- normal E
- normal F
-list xytvar[i=1:7:2]
- dealloc dynamic grid GPC5 YLAT XLON NORMAL TTIME NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX025) XLON NORMAL TTIME NORMAL NORMAL
- dealloc dynamic grid (G018) (AX025) XLON NORMAL TTIME NORMAL NORMAL
- allocate dynamic grid (G018) (AX025) XLON NORMAL TTIME NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX025) XLON NORMAL TTIME NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) XLON NORMAL TTIME NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 deg on X
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (degrees_north)-Y (degrees_east)-TIME)
- 1 3 5 7
- 1 2 3 4
- ---- L:1 T: JAN-1995
- 141 / 1: 1011.00 1031.00 1051.00 1071.00
- 142 / 2: 1012.00 1032.00 1052.00 1072.00
- 143 / 3: 1013.00 1033.00 1053.00 1073.00
- ---- L:2 T: JAN-1995
- 141 / 1: 2011.00 2031.00 2051.00 2071.00
- 142 / 2: 2012.00 2032.00 2052.00 2072.00
- 143 / 3: 2013.00 2033.00 2053.00 2073.00
-list xytvar[j=2:6:2]
- dealloc dynamic grid (G018) (AX025) XLON NORMAL TTIME NORMAL NORMAL
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) YLAT (AX026) NORMAL TTIME NORMAL NORMAL
- dealloc dynamic grid (G018) YLAT (AX026) NORMAL TTIME NORMAL NORMAL
- allocate dynamic grid (G018) YLAT (AX026) NORMAL TTIME NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) YLAT (AX026) NORMAL TTIME NORMAL NORMAL
- strip regrid on Y: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) YLAT (AX026) NORMAL TTIME NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 deg on Y
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (degrees_north)-Y (degrees_east)-TIME)
- 1 2 3 4
- 1 2 3 4
- ---- L:1 T: JAN-1995
- 142 / 1: 1012.00 1022.00 1032.00 1042.00
- 144 / 2: 1014.00 1024.00 1034.00 1044.00
- 146 / 3: 1016.00 1026.00 1036.00 1046.00
- ---- L:2 T: JAN-1995
- 142 / 1: 2012.00 2022.00 2032.00 2042.00
- 144 / 2: 2014.00 2024.00 2034.00 2044.00
- 146 / 3: 2016.00 2026.00 2036.00 2046.00
-list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc dynamic grid (G018) YLAT (AX026) NORMAL TTIME NORMAL NORMAL
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
- dealloc dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
- allocate dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 deg on X, 2 deg on Y, 2 day on T
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (degrees_north)-Y (degrees_east)-TIME)
- 1 3 5 7
- 1 2 3 4
- ---- L:1 T: JAN-1995
- 142 / 1: 3012.00 3032.00 3052.00 3072.00
- 144 / 2: 3014.00 3034.00 3054.00 3074.00
- 146 / 3: 3016.00 3036.00 3056.00 3076.00
- ---- L:2 T: JAN-1995
- 142 / 1: 5012.00 5032.00 5052.00 5072.00
- 144 / 2: 5014.00 5034.00 5054.00 5074.00
- 146 / 3: 5016.00 5036.00 5056.00 5076.00
-canc data/all
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
-
-use/order=tyx bn_strides
-show grid xytvar
- getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC5 TTIME YLAT NORMAL XLON NORMAL NORMAL
- GRID GPC5
- name axis # pts start end
- TTIME X (DAYS) 20 r 34319 34338
- YLAT LATITUDE 30 r 1N 30N
- normal Z
- XLON T (degrees_east) 40mr 141 180
- normal E
- normal F
-list xytvar[i=1:7:2]
- dealloc dynamic grid GPC5 TTIME YLAT NORMAL XLON NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX027) YLAT NORMAL XLON NORMAL NORMAL
- dealloc dynamic grid (G018) (AX027) YLAT NORMAL XLON NORMAL NORMAL
- allocate dynamic grid (G018) (AX027) YLAT NORMAL XLON NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX027) YLAT NORMAL XLON NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) YLAT NORMAL XLON NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 day on X
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-LATITUDE-T (degrees_east))
- 34319 34321 34323 34325
- 1 2 3 4
- ---- L:1 T: 141
- 3N / 3: 1031.00 3031.00 5031.00 7031.00
- 2N / 2: 1021.00 3021.00 5021.00 7021.00
- 1N / 1: 1011.00 3011.00 5011.00 7011.00
- ---- L:2 T: 142
- 3N / 3: 1032.00 3032.00 5032.00 7032.00
- 2N / 2: 1022.00 3022.00 5022.00 7022.00
- 1N / 1: 1012.00 3012.00 5012.00 7012.00
-list xytvar[j=2:6:2]
- dealloc dynamic grid (G018) (AX027) YLAT NORMAL XLON NORMAL NORMAL
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) TTIME (AX023) NORMAL XLON NORMAL NORMAL
- dealloc dynamic grid (G018) TTIME (AX023) NORMAL XLON NORMAL NORMAL
- allocate dynamic grid (G018) TTIME (AX023) NORMAL XLON NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) TTIME (AX023) NORMAL XLON NORMAL NORMAL
- strip regrid on Y: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) TTIME (AX023) NORMAL XLON NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 deg on Y
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-LATITUDE-T (degrees_east))
- 34319 34320 34321 34322
- 1 2 3 4
- ---- L:1 T: 141
- 6N / 3: 1061.00 2061.00 3061.00 4061.00
- 4N / 2: 1041.00 2041.00 3041.00 4041.00
- 2N / 1: 1021.00 2021.00 3021.00 4021.00
- ---- L:2 T: 142
- 6N / 3: 1062.00 2062.00 3062.00 4062.00
- 4N / 2: 1042.00 2042.00 3042.00 4042.00
- 2N / 1: 1022.00 2022.00 3022.00 4022.00
-list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc dynamic grid (G018) TTIME (AX023) NORMAL XLON NORMAL NORMAL
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
- dealloc dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
- allocate dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 day on X, 2 deg on Y, 2 deg on T
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-LATITUDE-T (degrees_east))
- 34319 34321 34323 34325
- 1 2 3 4
- ---- L:1 T: 143
- 6N / 3: 1063.00 3063.00 5063.00 7063.00
- 4N / 2: 1043.00 3043.00 5043.00 7043.00
- 2N / 1: 1023.00 3023.00 5023.00 7023.00
- ---- L:2 T: 145
- 6N / 3: 1065.00 3065.00 5065.00 7065.00
- 4N / 2: 1045.00 3045.00 5045.00 7045.00
- 2N / 1: 1025.00 3025.00 5025.00 7025.00
-canc data/all
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
-
-use/order=txy bn_strides
-show grid xytvar
- getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC5 TTIME XLON NORMAL YLAT NORMAL NORMAL
- GRID GPC5
- name axis # pts start end
- TTIME X (DAYS) 20 r 34319 34338
- XLON Y (degrees_east) 40mr 141 180
- normal Z
- YLAT T (degrees_north) 30 r 1 30
- normal E
- normal F
-list xytvar[i=1:7:2]
- dealloc dynamic grid GPC5 TTIME XLON NORMAL YLAT NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX025) XLON NORMAL YLAT NORMAL NORMAL
- dealloc dynamic grid (G018) (AX025) XLON NORMAL YLAT NORMAL NORMAL
- allocate dynamic grid (G018) (AX025) XLON NORMAL YLAT NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX025) XLON NORMAL YLAT NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) XLON NORMAL YLAT NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 day on X
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-T (degrees_north))
- 34319 34321 34323 34325
- 1 2 3 4
- ---- L:1 T: 1
- 141 / 1: 1011.00 3011.00 5011.00 7011.00
- 142 / 2: 1012.00 3012.00 5012.00 7012.00
- 143 / 3: 1013.00 3013.00 5013.00 7013.00
- ---- L:2 T: 2
- 141 / 1: 1021.00 3021.00 5021.00 7021.00
- 142 / 2: 1022.00 3022.00 5022.00 7022.00
- 143 / 3: 1023.00 3023.00 5023.00 7023.00
-list xytvar[j=2:6:2]
- dealloc dynamic grid (G018) (AX025) XLON NORMAL YLAT NORMAL NORMAL
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) TTIME (AX026) NORMAL YLAT NORMAL NORMAL
- dealloc dynamic grid (G018) TTIME (AX026) NORMAL YLAT NORMAL NORMAL
- allocate dynamic grid (G018) TTIME (AX026) NORMAL YLAT NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) TTIME (AX026) NORMAL YLAT NORMAL NORMAL
- strip regrid on Y: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) TTIME (AX026) NORMAL YLAT NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 deg on Y
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-T (degrees_north))
- 34319 34320 34321 34322
- 1 2 3 4
- ---- L:1 T: 1
- 142 / 1: 1012.00 2012.00 3012.00 4012.00
- 144 / 2: 1014.00 2014.00 3014.00 4014.00
- 146 / 3: 1016.00 2016.00 3016.00 4016.00
- ---- L:2 T: 2
- 142 / 1: 1022.00 2022.00 3022.00 4022.00
- 144 / 2: 1024.00 2024.00 3024.00 4024.00
- 146 / 3: 1026.00 2026.00 3026.00 4026.00
-list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc dynamic grid (G018) TTIME (AX026) NORMAL YLAT NORMAL NORMAL
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
- dealloc dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
- allocate dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 day on X, 2 deg on Y, 2 deg on T
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-T (degrees_north))
- 34319 34321 34323 34325
- 1 2 3 4
- ---- L:1 T: 3
- 142 / 1: 1032.00 3032.00 5032.00 7032.00
- 144 / 2: 1034.00 3034.00 5034.00 7034.00
- 146 / 3: 1036.00 3036.00 5036.00 7036.00
- ---- L:2 T: 5
- 142 / 1: 1052.00 3052.00 5052.00 7052.00
- 144 / 2: 1054.00 3054.00 5054.00 7054.00
- 146 / 3: 1056.00 3056.00 5056.00 7056.00
-canc data/all
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
-
-! map into Z instead of T
-use/order=zxy bn_strides
-show grid xytvar
- getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC5 TTIME XLON YLAT NORMAL NORMAL NORMAL
- GRID GPC5
- name axis # pts start end
- TTIME X (DAYS) 20 r 34319 34338
- XLON Y (degrees_east) 40mr 141 180
- YLAT Z (degrees_north) 30 r 1 30
- normal T
- normal E
- normal F
-list/k=1:2 xytvar[i=1:7:2]
- dealloc dynamic grid GPC5 TTIME XLON YLAT NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX027) XLON YLAT NORMAL NORMAL NORMAL
- dealloc dynamic grid (G018) (AX027) XLON YLAT NORMAL NORMAL NORMAL
- allocate dynamic grid (G018) (AX027) XLON YLAT NORMAL NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX027) XLON YLAT NORMAL NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 8 dset: 1 I: 1 7 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 7 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) XLON YLAT NORMAL NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 day on X
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-Z (degrees_north))
- 34319 34321 34323 34325
- 1 2 3 4
- ---- K:1 Z: 1
- 141 / 1: 1011.00 3011.00 5011.00 7011.00
- 142 / 2: 1012.00 3012.00 5012.00 7012.00
- 143 / 3: 1013.00 3013.00 5013.00 7013.00
- ---- K:2 Z: 2
- 141 / 1: 1021.00 3021.00 5021.00 7021.00
- 142 / 2: 1022.00 3022.00 5022.00 7022.00
- 143 / 3: 1023.00 3023.00 5023.00 7023.00
-list/k=1:2 xytvar[j=2:6:2]
- dealloc dynamic grid (G018) (AX027) XLON YLAT NORMAL NORMAL NORMAL
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) TTIME (AX023) YLAT NORMAL NORMAL NORMAL
- dealloc dynamic grid (G018) TTIME (AX023) YLAT NORMAL NORMAL NORMAL
- allocate dynamic grid (G018) TTIME (AX023) YLAT NORMAL NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) TTIME (AX023) YLAT NORMAL NORMAL NORMAL
- strip regrid on Y: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 8 dset: 1 I: 1 4 J: 2 6 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 2 6 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) TTIME (AX023) YLAT NORMAL NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 deg on Y
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-Z (degrees_north))
- 34319 34320 34321 34322
- 1 2 3 4
- ---- K:1 Z: 1
- 142 / 1: 1012.00 2012.00 3012.00 4012.00
- 144 / 2: 1014.00 2014.00 3014.00 4014.00
- 146 / 3: 1016.00 2016.00 3016.00 4016.00
- ---- K:2 Z: 2
- 142 / 1: 1022.00 2022.00 3022.00 4022.00
- 144 / 2: 1024.00 2024.00 3024.00 4024.00
- 146 / 3: 1026.00 2026.00 3026.00 4026.00
-list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc dynamic grid (G018) TTIME (AX023) YLAT NORMAL NORMAL NORMAL
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) NORMAL NORMAL NORMAL
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) NORMAL NORMAL NORMAL
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) NORMAL NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G018) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) NORMAL NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 day on X, 2 deg on Y, 2 deg on Z
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-Z (degrees_north))
- 34319 34321 34323 34325
- 1 2 3 4
- ---- K:1 Z: 3
- 142 / 1: 1032.00 3032.00 5032.00 7032.00
- 144 / 2: 1034.00 3034.00 5034.00 7034.00
- 146 / 3: 1036.00 3036.00 5036.00 7036.00
- ---- K:2 Z: 5
- 142 / 1: 1052.00 3052.00 5052.00 7052.00
- 144 / 2: 1054.00 3054.00 5054.00 7054.00
- 146 / 3: 1056.00 3056.00 5056.00 7056.00
-canc data/all
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) NORMAL NORMAL NORMAL
-
-
-! * * * * * MIXED STRIDES, PERMUTATIONS and REVERSALS * * * * *
-! to evaluate the output remember
-! 1) the axis lengths on disk are 9,8,7,6 for X,Y,Z,T, respectively
-! 2) the negatives apply to the axis in memory (after permutation)
-! Thus, with /ORDER=y-x we expect the 2nd disk axis (the 10's place) to
-! be reversed and the values 1:5:4 to be replaced by 9-(1:5:4) => 8:4:4
-
-! Note that the logic of the /ORDER syntax when BOTH permutations and
-! reversals are aplied would be more natural if the reversal were applied
-! BEFORE the permutation. This should occur in routine TM_AXIS_ORDER.
-! However, the logic changes needed were messay compared to the rare
-! usage of complex combinations of reversals and permutations, so it was
-! left as-is.
-
-cancel region; set region/l=1
-
-! reference output
-use/order=yx bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G018) @XACT
- rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 54 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 1 5
- 1 2
- ---- K:1 Z: 3
- 2 / 1: 1312.00 1352.00
- 5 / 2: 1315.00 1355.00
- ---- K:2 Z: 5
- 2 / 1: 1512.00 1552.00
- 5 / 2: 1515.00 1555.00
-canc data/all
- -DELETE MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
-
-use/order=-yx bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_6 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_6 NORMAL NORMAL
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_6 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_6 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G018) @XACT
- strip reversing MIDVAR on Y axis: 2 5 dset: 1
- rdstride MIDVAR C: 8 dset: 1 I: 1 5 J: 5 8 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- doing reversing MIDVAR on Y axis: 2 5 dset: 1
- -DELETE MIDVAR M: 55 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 54 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_6 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 1 5
- 1 2
- ---- K:1 Z: 3
- 2 / 1: 1318.00 1358.00
- 5 / 2: 1315.00 1355.00
- ---- K:2 Z: 5
- 2 / 1: 1518.00 1558.00
- 5 / 2: 1515.00 1555.00
-canc data/all
- -DELETE MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_6 NORMAL NORMAL
-
-use/order=y-x bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G018) @XACT
- strip reversing MIDVAR on X axis: 1 5 dset: 1
- rdstride MIDVAR C: 8 dset: 1 I: 4 8 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- doing reversing MIDVAR on X axis: 1 5 dset: 1
- -DELETE MIDVAR M: 55 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 54 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 1 5
- 1 2
- ---- K:1 Z: 3
- 2 / 1: 1382.00 1342.00
- 5 / 2: 1385.00 1345.00
- ---- K:2 Z: 5
- 2 / 1: 1582.00 1542.00
- 5 / 2: 1585.00 1545.00
-canc data/all
- -DELETE MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
-
-! reference output
-use/order=tyx bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G018) @XACT
- rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 54 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 55 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 1 5
- 1 2
- ---- K:1 Z: 3
- 2 / 1: 1123.00 5123.00
- 5 / 2: 1153.00 5153.00
- ---- K:2 Z: 5
- 2 / 1: 1125.00 5125.00
- 5 / 2: 1155.00 5155.00
-canc data/all
- -DELETE MIDVAR M: 54 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
-
-! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
-use/order=-t-y-x bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G018) @XACT
- strip reversing MIDVAR on X axis: 1 5 dset: 1
- rdstride MIDVAR C: 8 dset: 1 I: 2 6 J: 4 7 K: 3 5 L: 7 7 M: -999 -999 N: -999 -999
- doing reversing MIDVAR on X axis: 1 5 dset: 1
- -DELETE MIDVAR M: 54 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 54 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 55 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 1 5
- 1 2
- ---- K:1 Z: 3
- 2 / 1: 6773.00 2773.00
- 5 / 2: 6743.00 2743.00
- ---- K:2 Z: 5
- 2 / 1: 6775.00 2775.00
- 5 / 2: 6745.00 2745.00
-canc data/all
- -DELETE MIDVAR M: 54 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
-
-! reference output
-use/order=txy bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G018) @XACT
- rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 54 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 1 5
- 1 2
- ---- K:1 Z: 3
- 2 / 1: 1132.00 5132.00
- 5 / 2: 1135.00 5135.00
- ---- K:2 Z: 5
- 2 / 1: 1152.00 5152.00
- 5 / 2: 1155.00 5155.00
-canc data/all
- -DELETE MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
-
-use/order=-t-x-y bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G018) @XACT
- strip reversing MIDVAR on Y axis: 2 5 dset: 1
- rdstride MIDVAR C: 8 dset: 1 I: 2 6 J: 5 8 K: 3 5 L: 7 7 M: -999 -999 N: -999 -999
- doing reversing MIDVAR on Y axis: 2 5 dset: 1
- -DELETE MIDVAR M: 55 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 54 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 1 5
- 1 2
- ---- K:1 Z: 3
- 2 / 1: 6738.00 2738.00
- 5 / 2: 6735.00 2735.00
- ---- K:2 Z: 5
- 2 / 1: 6758.00 2758.00
- 5 / 2: 6755.00 2755.00
-canc data/all
- -DELETE MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
-
-GO bn_reset
-cancel mode verify
-GO bn_non_COARDS_netCDF ! non-standard netCDF files
-! bn_non_COARDS_netCDF.jnl
-! *sh* 3/99
-! *sh* 6/00 -- added true scalar variable, TRUE_SCALAR
-
-! test robust treatment of non-standard netCDF files
-
-use non_COARDS
-
-show data
- currently SET data sets:
- 1> ./non_COARDS.cdf (default)
- name title I J K L M N
- UNORDERED_AXIS
- disordered axis 1:5 ... ... ... ... ...
- (invalid coordinate axis)
- GAPPY_AXIS
- gappy axis 1:5 ... ... ... ... ...
- (invalid coordinate axis)
- SCALAR_VAR
- a good way to encode model parm 1:1 ... ... ... ... ...
- TRUE_SCALAR
- with no dims at all ... ... ... ... ... ...
- MASKED_SST
- SST * MP_MASK 1:180 1:90 ... 1:1 ... ...
- COADSX Longitude page positions 1:180 1:90 ... ... ... ...
- COADSY Latitude page positions 1:180 1:90 ... ... ... ...
- HAS_NO_AXIS
- variable with no axis 1:5 ... ... ... ... ...
- HAS_UNORDERED_AXIS
- variable with disordered axis 1:5 ... ... ... ... ...
- HAS_GAPPY_AXIS
- variable with gappy axis 1:5 ... ... ... ... ...
- HAS_BACKWARDS_AXIS
- variable with backwards axis 1:5 ... ... ... ... ...
- USES_BIG_IRREG
- variable defined on too-long ir ... ... ... 1:200000 ... ...
-
-show grid/x HAS_NO_AXIS
- GRID GAB7
- name axis # pts start end
- NO_AXIS X 5 r 1 5
- normal Y
- normal Z
- normal T
- normal E
- normal F
-
- I X XBOX XBOXLO
- 1> 1 1 0.5
- 2> 2 1 1.5
- 3> 3 1 2.5
- 4> 4 1 3.5
- 5> 5 1 4.5
-show grid/x HAS_UNORDERED_AXIS
- GRID GAB1
- name axis # pts start end
- UNORDERED_AXIS X 5 r 1 5
- normal Y
- normal Z
- normal T
- normal E
- normal F
-
- I X XBOX XBOXLO
- 1> 1 1 0.5
- 2> 2 1 1.5
- 3> 3 1 2.5
- 4> 4 1 3.5
- 5> 5 1 4.5
-show grid/x HAS_GAPPY_AXIS
- GRID GAB2
- name axis # pts start end
- GAPPY_AXIS X 5 r 1 5
- normal Y
- normal Z
- normal T
- normal E
- normal F
-
- I X XBOX XBOXLO
- 1> 1 1 0.5
- 2> 2 1 1.5
- 3> 3 1 2.5
- 4> 4 1 3.5
- 5> 5 1 4.5
-show grid/x HAS_BACKWARDS_AXIS
- GRID GAB8
- name axis # pts start end
- BACKWARDS_AXIS X 5 r 1 5
- normal Y
- normal Z
- normal T
- normal E
- normal F
-
- I X XBOX XBOXLO
- 1> 1 1 0.5
- 2> 2 1 1.5
- 3> 3 1 2.5
- 4> 4 1 3.5
- 5> 5 1 4.5
-show grid/x SCALAR_VAR
- GRID GAB3
- name axis # pts start end
- SCALAR X 1 r 1 1
- normal Y
- normal Z
- normal T
- normal E
- normal F
-
- I X XBOX XBOXLO
- 1> 1 1 0.5
-
-show grid/i=1:5 USES_BIG_IRREG
- GRID GAB9
- name axis # pts start end
- normal X
- normal Y
- normal Z
- BIG_IRREG T (hours) 200000 i 1 200000
- normal E
- normal F
-
-show grid MASKED_SST
- GRID GAB5
- name axis # pts start end
- COADSX1 LONGITUDE 180 r 1E 180E
- COADSY1 LATITUDE 90 r 1N 90N
- normal Z
- TIME4 TIME 1mr 16-JAN 06:00 16-JAN 06:00
- normal E
- normal F
-show grid COADSX
- GRID GAB6
- name axis # pts start end
- COADSX1 LONGITUDE 180 r 1E 180E
- COADSY1 LATITUDE 90 r 1N 90N
- normal Z
- normal T
- normal E
- normal F
-show grid COADSY
- GRID GAB6
- name axis # pts start end
- COADSX1 LONGITUDE 180 r 1E 180E
- COADSY1 LATITUDE 90 r 1N 90N
- normal Z
- normal T
- normal E
- normal F
-
-show data
- currently SET data sets:
- 1> ./non_COARDS.cdf (default)
- name title I J K L M N
- UNORDERED_AXIS
- disordered axis 1:5 ... ... ... ... ...
- (invalid coordinate axis)
- GAPPY_AXIS
- gappy axis 1:5 ... ... ... ... ...
- (invalid coordinate axis)
- SCALAR_VAR
- a good way to encode model parm 1:1 ... ... ... ... ...
- TRUE_SCALAR
- with no dims at all ... ... ... ... ... ...
- MASKED_SST
- SST * MP_MASK 1:180 1:90 ... 1:1 ... ...
- COADSX Longitude page positions 1:180 1:90 ... ... ... ...
- COADSY Latitude page positions 1:180 1:90 ... ... ... ...
- HAS_NO_AXIS
- variable with no axis 1:5 ... ... ... ... ...
- HAS_UNORDERED_AXIS
- variable with disordered axis 1:5 ... ... ... ... ...
- HAS_GAPPY_AXIS
- variable with gappy axis 1:5 ... ... ... ... ...
- HAS_BACKWARDS_AXIS
- variable with backwards axis 1:5 ... ... ... ... ...
- USES_BIG_IRREG
- variable defined on too-long ir ... ... ... 1:200000 ... ...
-
-list UNORDERED_AXIS
- VARIABLE : disordered axis
- invalid coordinate axis
- FILENAME : non_COARDS.cdf
- SUBSET : 5 points (X)
- 1 / 1: 1.00000
- 2 / 2: 3.00000
- 3 / 3: 5.00000
- 4 / 4: 2.00000
- 5 / 5: 4.00000
-list GAPPY_AXIS
- VARIABLE : gappy axis
- invalid coordinate axis
- FILENAME : non_COARDS.cdf
- SUBSET : 5 points (X)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: ....
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-list SCALAR_VAR
- VARIABLE : a good way to encode model parms
- FILENAME : non_COARDS.cdf
- X : 1
- 99.0000
-list TRUE_SCALAR
- VARIABLE : with no dims at all
- FILENAME : non_COARDS.cdf
- ....
-list HAS_BACKWARDS_AXIS
- VARIABLE : variable with backwards axis
- FILENAME : non_COARDS.cdf
- SUBSET : 5 points (X)
- 1 / 1: 50.0000
- 2 / 2: 40.0000
- 3 / 3: 30.0000
- 4 / 4: 20.0000
- 5 / 5: 10.0000
-
-! With 250000 irregular coordinate storage locations, the variable BIG_IRREG
-! is not created; if irreg axis too long for coord storage, a variable
-! is generated with its values.
-
-! list/i=1:5 BIG_IRREG
-
-GO bn_reset
-cancel mode verify
-GO bn_cache_hits ! cache hits on unspecified (full) regions
-! bn_cache_hits.jnl
-
-! 3/99 *sh*
-! Test the success of Ferret in recalling past results
-
-! 7/01 -- added bn_cache_hits_gcfcn.sub
-
-define alias CONFUSE load/i=1:5 i
-
-set mode diag
-use coads_climatology
-set region/l=1
-
-GO bn_cache_hits.sub sst
-! bn_cache_hits.sub
-! *sh* 3/99
-! usage: GO bn_cache_hits.sub variable
-
-stat $1
- !-> stat sst
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 55 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SEA SURFACE TEMPERATURE
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 6694
- Minimum value: -1.8
- Maximum value: 31
- Mean value: 16.52 (unweighted average)
- Standard deviation: 10.139
-CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 54 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1
- !-> stat sst
- -DELETE I M: 54 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 54 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SEA SURFACE TEMPERATURE
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 6694
- Minimum value: -1.8
- Maximum value: 31
- Mean value: 16.52 (unweighted average)
- Standard deviation: 10.139
-
-define axis/x=130e:80w:1 xtrop
-stat $1[gx=xtrop]
- !-> stat sst[gx=xtrop]
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
- reading SST M: 52 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid SST M: 49 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-
- SEA SURFACE TEMPERATURE
- regrid: 1 deg on X
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad data: 4962
- Minimum value: -1.7
- Maximum value: 31
- Mean value: 17.605 (unweighted average)
- Standard deviation: 9.8848
-CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 49 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 49 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1[gx=xtrop]
- !-> stat sst[gx=xtrop]
- -DELETE I M: 49 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
- reading SST M: 49 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid SST M: 27 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-
- SEA SURFACE TEMPERATURE
- regrid: 1 deg on X
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad data: 4962
- Minimum value: -1.7
- Maximum value: 31
- Mean value: 17.605 (unweighted average)
- Standard deviation: 9.8848
-
-let $1x = $1[gx=xtrop]
- !-> DEFINE VARIABLE sstx = sst[gx=xtrop]
-stat $1x
- !-> stat sstx
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 27 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid SSTX C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SSTX C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
- reading SST M: 27 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid SST M: 47 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-
- SST[GX=XTROP]
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad data: 4962
- Minimum value: -1.7
- Maximum value: 31
- Mean value: 17.605 (unweighted average)
- Standard deviation: 9.8848
-CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 44 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1x
- !-> stat sstx
- -DELETE I M: 44 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SSTX C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
- reading SST M: 44 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-
- SST[GX=XTROP]
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad data: 4962
- Minimum value: -1.7
- Maximum value: 31
- Mean value: 17.605 (unweighted average)
- Standard deviation: 9.8848
-
-define grid/x=xtrop gx
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SSTX M: 40 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SSTX M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 47 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-stat $1[g=gx]
- !-> stat sst[g=gx]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
- reading SST M: 47 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-
- SEA SURFACE TEMPERATURE
- regrid: 1 deg on X
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad data: 4962
- Minimum value: -1.7
- Maximum value: 31
- Mean value: 17.605 (unweighted average)
- Standard deviation: 9.8848
-CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 43 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1[g=gx]
- !-> stat sst[g=gx]
- -DELETE I M: 43 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
- reading SST M: 43 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid SST M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-
- SEA SURFACE TEMPERATURE
- regrid: 1 deg on X
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad data: 4962
- Minimum value: -1.7
- Maximum value: 31
- Mean value: 17.605 (unweighted average)
- Standard deviation: 9.8848
-
-define axis/y=20s:20n:1 ytrop
-stat $1[gx=xtrop,gy=ytrop]
- !-> stat sst[gx=xtrop,gy=ytrop]
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
- reading SST M: 46 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST M: 40 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
-
- SEA SURFACE TEMPERATURE
- regrid: 1 deg on X, 1 deg on Y
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean value: 26.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 40 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 40 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1[gx=xtrop,gy=ytrop]
- !-> stat sst[gx=xtrop,gy=ytrop]
- -DELETE I M: 40 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
- reading SST M: 40 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST M: 39 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
-
- SEA SURFACE TEMPERATURE
- regrid: 1 deg on X, 1 deg on Y
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean value: 26.908 (unweighted average)
- Standard deviation: 1.778
-
-define grid/like=$1/x=xtrop/y=ytrop gxyt
- !-> define grid/like=sst/x=xtrop/y=ytrop gxyt
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 39 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
-stat $1[g=gxyt]
- !-> stat sst[g=gxyt]
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST --> GXYT @LIN
- reading SST M: 39 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST M: 38 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SEA SURFACE TEMPERATURE
- regrid: GXYT
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean value: 26.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 37 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1[g=gxyt]
- !-> stat sst[g=gxyt]
- -DELETE I M: 37 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST --> GXYT @LIN
- reading SST M: 37 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST M: 36 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SEA SURFACE TEMPERATURE
- regrid: GXYT
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean value: 26.908 (unweighted average)
- Standard deviation: 1.778
-
-let $1xyt = $1[g=gxyt]
- !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
-stat $1xyt
- !-> stat sstxyt
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid SSTXYT C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SSTXYT C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST --> GXYT @LIN
- reading SST M: 35 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST M: 34 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SST[G=GXYT]
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean value: 26.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 32 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1xyt
- !-> stat sstxyt
- -DELETE I M: 32 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SSTXYT C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST --> GXYT @LIN
- reading SST M: 32 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST M: 30 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SST[G=GXYT]
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean value: 26.908 (unweighted average)
- Standard deviation: 1.778
-
-let $1xyt = $1[g=gxyt]
- !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- -DELETE SSTXYT M: 29 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SSTXYT M: 33 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
-stat $1xyt
- !-> stat sstxyt
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid SSTXYT C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SSTXYT C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST --> GXYT @LIN
- reading SST M: 33 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST M: 29 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SST[G=GXYT]
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean value: 26.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 26 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1xyt
- !-> stat sstxyt
- -DELETE I M: 26 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SSTXYT C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST --> GXYT @LIN
- reading SST M: 26 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST M: 25 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SST[G=GXYT]
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 20.428
- Maximum value: 31
- Mean value: 26.908 (unweighted average)
- Standard deviation: 1.778
-
-stat $1[x=@ave]
- !-> stat sst[x=@ave]
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST M: 23 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- doing --> SST[X=20E:20E(380)@AVE,D=1]
-
- SEA SURFACE TEMPERATURE
- LONGITUDE: 20E to 20E(380) (averaged)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad data: 12
- Minimum value: -0.69743
- Maximum value: 27.612
- Mean value: 14.429 (unweighted average)
- Standard deviation: 10.445
-CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 21 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1[x=@ave]
- !-> stat sst[x=@ave]
- -DELETE I M: 21 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST M: 21 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- doing --> SST[X=20E:20E(380)@AVE,D=1]
-
- SEA SURFACE TEMPERATURE
- LONGITUDE: 20E to 20E(380) (averaged)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad data: 12
- Minimum value: -0.69743
- Maximum value: 27.612
- Mean value: 14.429 (unweighted average)
- Standard deviation: 10.445
-
-let $1xave = $1[x=@ave]
- !-> DEFINE VARIABLE sstxave = sst[x=@ave]
-stat $1xave
- !-> stat sstxave
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid SSTXAVE C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SSTXAVE C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST M: 19 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- doing --> SST[X=20E:20E(380)@AVE,D=1]
-
- SST[X=@AVE]
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad data: 12
- Minimum value: -0.69743
- Maximum value: 27.612
- Mean value: 14.429 (unweighted average)
- Standard deviation: 10.445
-CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 16 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1xave
- !-> stat sstxave
- -DELETE I M: 16 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SSTXAVE C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST M: 16 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- doing --> SST[X=20E:20E(380)@AVE,D=1]
-
- SST[X=@AVE]
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad data: 12
- Minimum value: -0.69743
- Maximum value: 27.612
- Mean value: 14.429 (unweighted average)
- Standard deviation: 10.445
-
-stat $1[x=@sbx]
- !-> stat sst[x=@sbx]
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST[I=1:180 at SBX:3,D=1]
- strip moduloing SST on X axis: 0 181 dset: 1
- reading SST M: 13 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- doing moduloing SST on X axis: 1 180 dset: 1
- doing --> SST[I=1:180 at SBX:3,D=1]
-
- SEA SURFACE TEMPERATURE
- box smoothed by 3 pts on X
- LONGITUDE: 20E to 20E(380) (box smoothed by 3 pts)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 7173
- Minimum value: -1.3854
- Maximum value: 30.382
- Mean value: 16.633 (unweighted average)
- Standard deviation: 10.112
-CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 10 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1[x=@sbx]
- !-> stat sst[x=@sbx]
- -DELETE I M: 10 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST[I=1:180 at SBX:3,D=1]
- strip moduloing SST on X axis: 0 181 dset: 1
- reading SST M: 10 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- doing moduloing SST on X axis: 1 180 dset: 1
- doing --> SST[I=1:180 at SBX:3,D=1]
-
- SEA SURFACE TEMPERATURE
- box smoothed by 3 pts on X
- LONGITUDE: 20E to 20E(380) (box smoothed by 3 pts)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 7173
- Minimum value: -1.3854
- Maximum value: 30.382
- Mean value: 16.633 (unweighted average)
- Standard deviation: 10.112
-
-let $1sbx = $1[x=@sbx]
- !-> DEFINE VARIABLE sstsbx = sst[x=@sbx]
-stat $1sbx
- !-> stat sstsbx
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid SSTSBX C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SSTSBX C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST[I=1:180 at SBX:3,D=1]
- strip moduloing SST on X axis: 0 181 dset: 1
- reading SST M: 7 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- doing moduloing SST on X axis: 1 180 dset: 1
- doing --> SST[I=1:180 at SBX:3,D=1]
-
- SST[X=@SBX]
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 7173
- Minimum value: -1.3854
- Maximum value: 30.382
- Mean value: 16.633 (unweighted average)
- Standard deviation: 10.112
-CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 3 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1sbx
- !-> stat sstsbx
- -DELETE I M: 3 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SSTSBX C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST[I=1:180 at SBX:3,D=1]
- strip moduloing SST on X axis: 0 181 dset: 1
- reading SST M: 3 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- doing moduloing SST on X axis: 1 180 dset: 1
- doing --> SST[I=1:180 at SBX:3,D=1]
-
- SST[X=@SBX]
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 7173
- Minimum value: -1.3854
- Maximum value: 30.382
- Mean value: 16.633 (unweighted average)
- Standard deviation: 10.112
-
-
-
-LET sst5 = sst+5
-GO bn_cache_hits.sub sst5
-! bn_cache_hits.sub
-! *sh* 3/99
-! usage: GO bn_cache_hits.sub variable
-
-stat $1
- !-> stat sst5
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid SST5 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SST5 C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 48 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 53 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 53 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-
- SST+5
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 6694
- Minimum value: 3.2
- Maximum value: 36
- Mean value: 21.52 (unweighted average)
- Standard deviation: 10.139
-CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 53 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1
- !-> stat sst5
- -DELETE I M: 53 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SST5 C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 53 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-
- SST+5
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 6694
- Minimum value: 3.2
- Maximum value: 36
- Mean value: 21.52 (unweighted average)
- Standard deviation: 10.139
-
-define axis/x=130e:80w:1 xtrop
-stat $1[gx=xtrop]
- !-> stat sst5[gx=xtrop]
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
- eval SST5 C: 7 dset: 1 I: 55 131 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 50 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 42 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 42 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid SST5 M: 42 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-
- SST+5
- regrid: 1 deg on X
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad data: 4962
- Minimum value: 3.3
- Maximum value: 36
- Mean value: 22.605 (unweighted average)
- Standard deviation: 9.8848
-CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST5 M: 42 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 42 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1[gx=xtrop]
- !-> stat sst5[gx=xtrop]
- -DELETE I M: 42 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
- eval SST5 C: 7 dset: 1 I: 55 131 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 42 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 45 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 45 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid SST5 M: 45 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-
- SST+5
- regrid: 1 deg on X
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad data: 4962
- Minimum value: 3.3
- Maximum value: 36
- Mean value: 22.605 (unweighted average)
- Standard deviation: 9.8848
-
-let $1x = $1[gx=xtrop]
- !-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
-stat $1x
- !-> stat sst5x
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST5 M: 45 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid SST5X C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SST5X C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
- eval SST5 C: 9 dset: 1 I: 55 131 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 45 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid SST5 M: 58 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-
- SST5[GX=XTROP]
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad data: 4962
- Minimum value: 3.3
- Maximum value: 36
- Mean value: 22.605 (unweighted average)
- Standard deviation: 9.8848
-CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 61 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1x
- !-> stat sst5x
- -DELETE I M: 61 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SST5X C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
- eval SST5 C: 9 dset: 1 I: 55 131 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 61 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid SST5 M: 62 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-
- SST5[GX=XTROP]
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad data: 4962
- Minimum value: 3.3
- Maximum value: 36
- Mean value: 22.605 (unweighted average)
- Standard deviation: 9.8848
-
-define grid/x=xtrop gx
-stat $1[g=gx]
- !-> stat sst5[g=gx]
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
- eval SST5 C: 7 dset: 1 I: 55 131 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 65 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid SST5 M: 66 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-
- SST+5
- regrid: 1 deg on X
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad data: 4962
- Minimum value: 3.3
- Maximum value: 36
- Mean value: 22.605 (unweighted average)
- Standard deviation: 9.8848
-CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 68 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1[g=gx]
- !-> stat sst5[g=gx]
- -DELETE I M: 68 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
- eval SST5 C: 7 dset: 1 I: 55 131 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 68 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 69 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 69 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid SST5 M: 69 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-
- SST+5
- regrid: 1 deg on X
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 13590 (151*90*1*1*1*1)
- # flagged as bad data: 4962
- Minimum value: 3.3
- Maximum value: 36
- Mean value: 22.605 (unweighted average)
- Standard deviation: 9.8848
-
-define axis/y=20s:20n:1 ytrop
-stat $1[gx=xtrop,gy=ytrop]
- !-> stat sst5[gx=xtrop,gy=ytrop]
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST5 --> GXYT @LIN
- eval SST5 C: 7 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 71 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 72 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 72 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST5 M: 72 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SST+5
- regrid: GXYT
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean value: 31.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 74 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1[gx=xtrop,gy=ytrop]
- !-> stat sst5[gx=xtrop,gy=ytrop]
- -DELETE I M: 74 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST5 --> GXYT @LIN
- eval SST5 C: 7 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 74 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 75 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 75 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST5 M: 75 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SST+5
- regrid: GXYT
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean value: 31.908 (unweighted average)
- Standard deviation: 1.778
-
-define grid/like=$1/x=xtrop/y=ytrop gxyt
- !-> define grid/like=sst5/x=xtrop/y=ytrop gxyt
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
-stat $1[g=gxyt]
- !-> stat sst5[g=gxyt]
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST5 --> GXYT @LIN
- eval SST5 C: 7 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 77 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 78 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 78 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST5 M: 78 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SST+5
- regrid: GXYT
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean value: 31.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 80 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1[g=gxyt]
- !-> stat sst5[g=gxyt]
- -DELETE I M: 80 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST5 --> GXYT @LIN
- eval SST5 C: 7 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 80 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 81 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 81 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST5 M: 81 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SST+5
- regrid: GXYT
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean value: 31.908 (unweighted average)
- Standard deviation: 1.778
-
-let $1xyt = $1[g=gxyt]
- !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
-stat $1xyt
- !-> stat sst5xyt
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid SST5XYT C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SST5XYT C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST5 --> GXYT @LIN
- eval SST5 C: 9 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 83 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 84 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 84 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST5 M: 84 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SST5[G=GXYT]
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean value: 31.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 87 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1xyt
- !-> stat sst5xyt
- -DELETE I M: 87 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SST5XYT C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST5 --> GXYT @LIN
- eval SST5 C: 9 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 87 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 88 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 88 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST5 M: 88 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SST5[G=GXYT]
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean value: 31.908 (unweighted average)
- Standard deviation: 1.778
-
-let $1xyt = $1[g=gxyt]
- !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- -DELETE SST5XYT M: 86 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5XYT M: 90 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- -DELETE SST5X M: 60 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5X M: 64 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST5 M: 58 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 62 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 66 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 69 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 31 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 41 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 51 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 57 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 59 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 63 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 67 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 70 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 72 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 73 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 75 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 76 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 78 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 79 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 81 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 82 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 84 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 85 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 88 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 89 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SSTSBX M: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SSTSBX M: 56 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SSTXAVE M: 14 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SSTXAVE M: 17 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SSTXYT M: 24 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SSTXYT M: 28 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
-stat $1xyt
- !-> stat sst5xyt
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid SST5XYT C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid SST5 C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SST5XYT C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST5 --> GXYT @LIN
- eval SST5 C: 9 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 28 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 24 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 24 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST5 M: 24 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SST5[G=GXYT]
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean value: 31.908 (unweighted average)
- Standard deviation: 1.778
-CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 56 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1xyt
- !-> stat sst5xyt
- -DELETE I M: 56 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SST5XYT C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip regrid on X: SST5 --> GXYT @LIN
- eval SST5 C: 9 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 56 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 4 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 4 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- regrid XY
- regrid SST5 M: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-
- SST5[G=GXYT]
- LONGITUDE: 129.5E to 79.5W
- LATITUDE: 20.5S to 20.5N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 6191 (151*41*1*1*1*1)
- # flagged as bad data: 151
- Minimum value: 25.428
- Maximum value: 36
- Mean value: 31.908 (unweighted average)
- Standard deviation: 1.778
-
-stat $1[x=@ave]
- !-> stat sst5[x=@ave]
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST5[X=???@AVE,D=1]
- eval SST5 C: 7 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 85 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 84 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 84 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
-
- SST+5
- LONGITUDE: 20E to 20E(380) (averaged)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad data: 12
- Minimum value: 4.3026
- Maximum value: 32.612
- Mean value: 19.429 (unweighted average)
- Standard deviation: 10.445
-CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 81 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1[x=@ave]
- !-> stat sst5[x=@ave]
- -DELETE I M: 81 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST5[X=???@AVE,D=1]
- eval SST5 C: 7 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 81 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 79 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 79 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
-
- SST+5
- LONGITUDE: 20E to 20E(380) (averaged)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad data: 12
- Minimum value: 4.3026
- Maximum value: 32.612
- Mean value: 19.429 (unweighted average)
- Standard deviation: 10.445
-
-let $1xave = $1[x=@ave]
- !-> DEFINE VARIABLE sst5xave = sst5[x=@ave]
-stat $1xave
- !-> stat sst5xave
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid SST5XAVE C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SST5XAVE C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST5[X=???@AVE,D=1]
- eval SST5 C: 9 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 76 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 75 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 75 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
-
- SST5[X=@AVE]
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad data: 12
- Minimum value: 4.3026
- Maximum value: 32.612
- Mean value: 19.429 (unweighted average)
- Standard deviation: 10.445
-CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 70 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1xave
- !-> stat sst5xave
- -DELETE I M: 70 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SST5XAVE C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST5[X=???@AVE,D=1]
- eval SST5 C: 9 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 70 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 67 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 67 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
-
- SST5[X=@AVE]
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 90 (1*90*1*1*1*1)
- # flagged as bad data: 12
- Minimum value: 4.3026
- Maximum value: 32.612
- Mean value: 19.429 (unweighted average)
- Standard deviation: 10.445
-
-stat $1[x=@sbx]
- !-> stat sst5[x=@sbx]
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST5[X=???@SBX:3,D=1]
- eval SST5 C: 7 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 57 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 51 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 51 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing --> SST5[I=1:180 at SBX:3,D=1]
-
- SST+5
- box smoothed by 3 pts on X
- LONGITUDE: 20E to 20E(380) (box smoothed by 3 pts)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 7234
- Minimum value: 3.6146
- Maximum value: 35.382
- Mean value: 21.698 (unweighted average)
- Standard deviation: 10.097
-CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 31 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1[x=@sbx]
- !-> stat sst5[x=@sbx]
- -DELETE I M: 31 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST5[X=???@SBX:3,D=1]
- eval SST5 C: 7 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 31 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 69 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 69 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing --> SST5[I=1:180 at SBX:3,D=1]
-
- SST+5
- box smoothed by 3 pts on X
- LONGITUDE: 20E to 20E(380) (box smoothed by 3 pts)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 7234
- Minimum value: 3.6146
- Maximum value: 35.382
- Mean value: 21.698 (unweighted average)
- Standard deviation: 10.097
-
-let $1sbx = $1[x=@sbx]
- !-> DEFINE VARIABLE sst5sbx = sst5[x=@sbx]
-stat $1sbx
- !-> stat sst5sbx
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid SST5SBX C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SST5SBX C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST5[X=???@SBX:3,D=1]
- eval SST5 C: 9 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 62 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing --> SST5[I=1:180 at SBX:3,D=1]
-
- SST5[X=@SBX]
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 7234
- Minimum value: 3.6146
- Maximum value: 35.382
- Mean value: 21.698 (unweighted average)
- Standard deviation: 10.097
-CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 90 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-stat $1sbx
- !-> stat sst5sbx
- -DELETE I M: 90 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval SST5SBX C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST5[X=???@SBX:3,D=1]
- eval SST5 C: 9 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 90 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 86 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 86 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing --> SST5[I=1:180 at SBX:3,D=1]
-
- SST5[X=@SBX]
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 7234
- Minimum value: 3.6146
- Maximum value: 35.382
- Mean value: 21.698 (unweighted average)
- Standard deviation: 10.097
-
-
-
-GO bn_cache_hits_gcfcn.sub
-! bn_cache_hits_gcfcn.sub
-! 7/01 *sh*
-
-! test cache hits on grid-changing functions
-
-! caching that happens because gcf_impose_axes sets uvlim_hidden
-set mode diag
-
-let a = i[i=1:10]
-say `a,return=isize` ! no evaluation of a required -- just context
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- !-> MESSAGE/CONTINUE 10
-10
-list/nohead a ! evaluate it now
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo I M: 93 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- 1 / 1: 1.0000
- 2 / 2: 2.0000
- 3 / 3: 3.0000
- 4 / 4: 4.0000
- 5 / 5: 5.0000
- 6 / 6: 6.0000
- 7 / 7: 7.0000
- 8 / 8: 8.0000
- 9 / 9: 9.0000
- 10 / 10: 10.0000
-
-let a = XSEQUENCE(j[j=1:5])
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A M: 94 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE I M: 93 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE SST5SBX M: 60 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5SBX M: 92 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST5XAVE M: 59 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5XAVE M: 72 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST5XYT M: 14 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5XYT M: 88 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- -DELETE SST5 M: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 17 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 24 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 41 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 51 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 58 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 63 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 64 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 66 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 67 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 69 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 73 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 75 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 78 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 79 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 82 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 84 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 86 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 89 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 91 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
-say `a,return=isize` ! evaluate it now
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C01,V11 C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C11,V11 C: 11 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 (C11,V11 C: 11 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C01,V11 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C11,V11 C: 10 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo J M: 91 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- !-> MESSAGE/CONTINUE 5
-5
-list/nohead a ! cache hit
- -DELETE J M: 91 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C01,V11 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C11,V11 C: 10 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo J M: 91 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-
-let a = SAMPLEI(I[i=1:100], {8,5,3})
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE (C11,V11 M: 82 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C11,V11 M: 89 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid YABSTRACT NORMAL ABSTRACT NORMAL NORMAL NORMAL NORMAL
- -DELETE J M: 91 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C01,V11 M: 79 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C01,V11 M: 86 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A M: 78 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A M: 84 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
-say `a,return=isize` ! evaluate it now
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C01,V11 C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C09,V11 C: 12 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 (C09,V11 C: 12 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C01,V11 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- const_v {8,5,3} M: 84 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 3 dset: 0
- eval (C09,V11 C: 12 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo I M: 79 dset: 0 I: 1 100 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C01,V11 M: 86 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE A M: 78 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 89 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE {8,5,3} M: 84 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- !-> MESSAGE/CONTINUE 3
-3
-list/nohead a ! cache hit
- -DELETE I M: 79 dset: 0 I: 1 100 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C01,V11 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- const_v {8,5,3} M: 79 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing sampling tpry on I axis: 1 3 dset: 0
- eval (C09,V11 C: 12 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo I M: 82 dset: 0 I: 1 100 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C01,V11 M: 86 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE tpry M: 89 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 73 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE {8,5,3} M: 79 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- 1 / 1: 8.00000
- 2 / 2: 5.00000
- 3 / 3: 3.00000
-
-spawn rm -f foo.bar*
-spawn touch foo.bar1 foo.bar2 foo.bar3
-let a = SPAWN("ls foo.bar*")
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE (C09,V11 M: 75 dset: 0 I: 1 100 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C09,V11 M: 91 dset: 0 I: 1 100 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE (C01,V11 M: 78 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C01,V11 M: 89 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A M: 79 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A M: 84 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE I M: 82 dset: 0 I: 1 100 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-say `a,return=isize` ! evaluate it now
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- string str M: 82 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- !-> MESSAGE/CONTINUE 3
-3
-list/nohead a ! cache hit
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- string str M: 79 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- 1 / 1:"foo.bar1"
- 2 / 2:"foo.bar2"
- 3 / 3:"foo.bar3"
-
-! RESHAPE, alone, is set to require matched limits in order to make a cache hit
-let a = RESHAPE(I[I=1:3]+10*j[j=1:3], I[i=1:9])
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A M: 84 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A M: 89 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
-say `a,return=isize`
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C01,V11 C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C31,V11 C: 11 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 (C31,V11 C: 11 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid (C09,V11 C: 12 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- pass #2 (C09,V11 C: 12 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C01,V11 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C09,V11 C: 10 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo I M: 89 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- constan cnst M: 84 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo J M: 78 dset: 0 I: -999 -999 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE J M: 78 dset: 0 I: -999 -999 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 84 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 91 dset: 0 I: -999 -999 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE I M: 89 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C31,V11 C: 11 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo I M: 89 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- !-> MESSAGE/CONTINUE 9
-9
-list/nohead a ! no cache hit
- -DELETE I M: 89 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C01,V11 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C09,V11 C: 10 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo I M: 89 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- constan cnst M: 73 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo J M: 86 dset: 0 I: -999 -999 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE J M: 86 dset: 0 I: -999 -999 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 73 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 69 dset: 0 I: -999 -999 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE I M: 89 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval (C31,V11 C: 11 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo I M: 89 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- 1 / 1: 11.0000
- 2 / 2: 12.0000
- 3 / 3: 13.0000
- 4 / 4: 21.0000
- 5 / 5: 22.0000
- 6 / 6: 23.0000
- 7 / 7: 31.0000
- 8 / 8: 32.0000
- 9 / 9: 33.0000
-
-set mode/last diag
-
-! v5.4 *kob* 10/01 - need to add exit/script - new exit command qualifiers
-EXIT/SCRIPT
-
-GO bn_reset
-cancel mode verify
- -DELETE SST M: 1 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 2 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 3 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 5 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 6 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 7 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 8 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 9 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 10 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 11 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 12 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 13 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 15 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 16 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 18 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 19 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 20 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 21 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 22 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 23 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 25 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 26 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 27 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 28 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 29 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 30 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 31 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 32 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 33 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 34 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 35 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 36 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 37 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 38 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 39 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 40 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 42 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 43 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 44 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 45 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 46 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 47 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 48 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 49 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 50 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 52 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 53 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 54 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 55 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 56 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 57 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 61 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 62 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 65 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 68 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 70 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 71 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 74 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 76 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 77 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 80 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 81 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 83 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 85 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 87 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 90 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE (C31,V11 M: 69 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C31,V11 M: 91 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE (C09,V11 M: 73 dset: 0 I: 1 3 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C09,V11 M: 84 dset: 0 I: 1 3 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
- -DELETE (C01,V11 M: 78 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C01,V11 M: 86 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A M: 67 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A M: 75 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE I M: 89 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE str M: 79 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE str M: 82 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-GO bn_regrid_to_user ! G=user_var and related
-! bn_regrid_to_user
-! 8/99 *sh*
-! 5/01 *sh* - changes to accomodate truncated levitus_climatology.cdf
-! - additions to test use of expressions in SET/SHOW/DEFINE grid
-
-! test various regridding combos that involve user-defined variables
-! for the target grids
-
-use coads_climatology
-use levitus_climatology
-
-! define test objects
-let a = sst[d=coads_climatology] + 1
-let b = sst + 1 ! data set unspecified
-DEFINE AXIS/Y=20s:20n:.5/units=degrees yax
-DEFINE GRID/like=sst[d=coads_climatology]/y=yax gg
-
-! reference data
-list/x=158e:161e/y=6s:4s temp[d=2,k=1]
- VARIABLE : TEMPERATURE (DEG C)
- FILENAME : levitus_climatology.cdf
- SUBSET : 3 by 2 points (LONGITUDE-LATITUDE)
- DEPTH (m): 0
- 158.5E 159.5E 160.5E
- 139 140 141
- 4.5S / 86: 29.5110 29.4430 29.3800
- 5.5S / 85: 29.5890 29.5250 29.4570
-
-! basic regrid (implicit grid -- sst and temp geometries are mismatched)
-list/x=160e/y=5s temp[d=2,k=1,g=a[d=1]]
- VARIABLE : TEMPERATURE (DEG C)
- regrid: 2 deg on X, 2 deg on Y
- FILENAME : levitus_climatology.cdf
- LONGITUDE: 159E
- LATITUDE : 5S
- DEPTH (m): 0
- 29.5170
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
- GRID (G006)
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- COADSY LATITUDE 90 r 89S 89N
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-
-! per axis regrid
-! 5/01 note: changed from y=0 yo y=5s to accomodate Y-truncated
-! levitus_climatology.cdf
-list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],gy=yax]
- VARIABLE : TEMPERATURE (DEG C)
- regrid: 2 deg on X, 0.5 deg on Y
- FILENAME : levitus_climatology.cdf
- LONGITUDE: 159E
- LATITUDE : 5S
- DEPTH (m): 0
- 29.5170
-list/x=160e/y=5s temp[d=2,k=1,gy=yax,gx=a[d=1]]
- VARIABLE : TEMPERATURE (DEG C)
- regrid: 2 deg on X, 0.5 deg on Y
- FILENAME : levitus_climatology.cdf
- LONGITUDE: 159E
- LATITUDE : 5S
- DEPTH (m): 0
- 29.5170
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
- GRID (G006)
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- YAX LATITUDE 81 r 20S 20N
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-
-! combined full grid and per-axis
-list/x=160e/y=5s temp[d=2,k=1,g=gg,gx=a[d=1]]
- VARIABLE : TEMPERATURE (DEG C)
- regrid: 2 deg on X, 0.5 deg on Y
- FILENAME : levitus_climatology.cdf
- LONGITUDE: 159E
- LATITUDE : 5S
- DEPTH (m): 0
- 29.5170
-list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],g=gg]
- VARIABLE : TEMPERATURE (DEG C)
- regrid: 2 deg on X, 0.5 deg on Y
- FILENAME : levitus_climatology.cdf
- LONGITUDE: 159E
- LATITUDE : 5S
- DEPTH (m): 0
- 29.5170
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G006)
- GRID (G006)
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- YAX LATITUDE 81 r 20S 20N
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-
-! pseudo-variable access
-list/i=1:4 i[g=a] ! a is previously loaded
- VARIABLE : I
- axis COADSX
- SUBSET : 4 points (LONGITUDE)
- 21E / 1: 1.00000
- 23E / 2: 2.00000
- 25E / 3: 3.00000
- 27E / 4: 4.00000
-let c = a
-list/i=1:4 i[g=c] ! c is not previously loaded
- VARIABLE : I
- axis COADSX
- SUBSET : 4 points (LONGITUDE)
- 21E / 1: 1.00000
- 23E / 2: 2.00000
- 25E / 3: 3.00000
- 27E / 4: 4.00000
-let d = c
-list/i=1:4 x[gx=d]
- VARIABLE : X
- axis COADSX
- SUBSET : 4 points (LONGITUDE)
- 21E / 1: 21.0000
- 23E / 2: 23.0000
- 25E / 3: 25.0000
- 27E / 4: 27.0000
-
-! DEFINE GRID based on a user-defined variable
-let e = d
-DEFINE GRID/LIKE=e/x=temp[d=levitus_climatology] gg1
-show grid gg1
- GRID GG1
- name axis # pts start end
- XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- COADSY LATITUDE 90 r 89S 89N
- normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
-let f = sst[y=20s:20n:.1,d=coads_climatology]
-DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg2
-cancel variable f
-show grid gg2
- GRID GG2
- name axis # pts start end
- XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX020) LATITUDE 401 r 20S 20N
- normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- AXIS (AX020) use count: 1
-
-! demonstrate proper management of dynamic axes
-DEFINE GRID/LIKE=gg2 gg3
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- AXIS (AX020) use count: 2
-DEFINE GRID/like=temp[d=levitus_climatology] gg2
-show grid gg2
- GRID GG2
- name axis # pts start end
- XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- YAXLEVITR1_90 LATITUDE 90 r 89.5S 0.5S
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- AXIS (AX020) use count: 1
-
-! SET GRID using a user-defined variable
-let g = sst[x=0:30:.1,d=coads_climatology]
-set grid g
-show grid
- Default grid for DEFINE VARIABLE is (G006)
- Last successful data access was on grid (G006)
- GRID (G006)
- name axis # pts start end
- (AX012) LONGITUDE 301 r 0E 30E
- COADSY LATITUDE 90 r 89S 89N
- normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
-
-! The SET GRID (default) definition should be protected -- not altered
-load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
-show grid
- Default grid for DEFINE VARIABLE is (G006)
- Last successful data access was on grid (G012)
- GRID (G012)
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 201 r 10S 10N
- normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
-show grid/dynamic
-Dynamic grids:
- GRID (G012) use count: 1
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 201 r 10S 10N
- normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
- GRID (G006) use count: 1
- name axis # pts start end
- (AX012) LONGITUDE 301 r 0E 30E
- COADSY LATITUDE 90 r 89S 89N
- normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
-Dynamic axes:
- AXIS (AX005) use count: 1
- AXIS (AX012) use count: 1
- AXIS (AX020) use count: 1
-
-! deliberate errors
-set mode ignore
-load/x=160e/y=5s temp[d=2,k=1,g=no_exist] ! non-existent target variable
-let v2 = temp[d=2,k=1,gx=a[d=1],gy=yax]
-load/x=160e/y=5s v2
-cancel variable a
-load/x=160e/y=5s v2 ! non-existent target grid
-set mode/last ignore
-
-! 12/99
-! bug fix: g=abstract now works
-! new multiple axis syntax: GXY=gg
-define axis/x=1:6:1 x1
-define axis/y=1:4:1 y1
-define axis/z=1:3:1 z1
-define axis/x=1:6:2 x2
-define axis/y=1:4:2 y2
-define axis/z=1:3:2 z2
-let a1 = x[gx=x1]+y[gy=y1]+z[gz=z1]
-let a2 = x[gx=x2]+y[gy=y2]+z[gz=z2]
-list a1
- VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
- SUBSET : 6 by 4 by 3 points (X-Y-Z)
- 1 2 3 4 5 6
- 1 2 3 4 5 6
- ---- K:1 Z: 1
- 1 / 1: 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000
- 2 / 2: 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000
- 3 / 3: 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000
- 4 / 4: 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000
- ---- K:2 Z: 2
- 1 / 1: 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000
- 2 / 2: 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000
- 3 / 3: 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000
- 4 / 4: 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000
- ---- K:3 Z: 3
- 1 / 1: 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000
- 2 / 2: 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000
- 3 / 3: 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000
- 4 / 4: 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000
-list a1[gx=a2]
- VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
- regrid: 2 delta on X
- SUBSET : 4 by 4 by 3 points (X-Y-Z)
- 1 3 5 7
- 1 2 3 4
- ---- K:1 Z: 1
- 1 / 1: 3.0000 5.0000 7.0000 ....
- 2 / 2: 4.0000 6.0000 8.0000 ....
- 3 / 3: 5.0000 7.0000 9.0000 ....
- 4 / 4: 6.0000 8.0000 10.0000 ....
- ---- K:2 Z: 2
- 1 / 1: 4.0000 6.0000 8.0000 ....
- 2 / 2: 5.0000 7.0000 9.0000 ....
- 3 / 3: 6.0000 8.0000 10.0000 ....
- 4 / 4: 7.0000 9.0000 11.0000 ....
- ---- K:3 Z: 3
- 1 / 1: 5.0000 7.0000 9.0000 ....
- 2 / 2: 6.0000 8.0000 10.0000 ....
- 3 / 3: 7.0000 9.0000 11.0000 ....
- 4 / 4: 8.0000 10.0000 12.0000 ....
-list a1[gxy=a2]
- VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
- regrid: 2 delta on X, 2 delta on Y
- SUBSET : 4 by 3 by 3 points (X-Y-Z)
- 1 3 5 7
- 1 2 3 4
- ---- K:1 Z: 1
- 1 / 1: 3.0000 5.0000 7.0000 ....
- 3 / 2: 5.0000 7.0000 9.0000 ....
- 5 / 3: .... .... .... ....
- ---- K:2 Z: 2
- 1 / 1: 4.0000 6.0000 8.0000 ....
- 3 / 2: 6.0000 8.0000 10.0000 ....
- 5 / 3: .... .... .... ....
- ---- K:3 Z: 3
- 1 / 1: 5.0000 7.0000 9.0000 ....
- 3 / 2: 7.0000 9.0000 11.0000 ....
- 5 / 3: .... .... .... ....
-list a1[gzxy=a2]
- VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
- regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- 1 3 5 7
- 1 2 3 4
- ---- K:1 Z: 1
- 1 / 1: 3.0000 5.0000 7.0000 ....
- 3 / 2: 5.0000 7.0000 9.0000 ....
- 5 / 3: .... .... .... ....
- ---- K:2 Z: 3
- 1 / 1: 5.0000 7.0000 9.0000 ....
- 3 / 2: 7.0000 9.0000 11.0000 ....
- 5 / 3: .... .... .... ....
-list a1[gxz=a2]
- VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
- regrid: 2 delta on X, 2 delta on Z
- SUBSET : 4 by 4 by 2 points (X-Y-Z)
- 1 3 5 7
- 1 2 3 4
- ---- K:1 Z: 1
- 1 / 1: 3.0000 5.0000 7.0000 ....
- 2 / 2: 4.0000 6.0000 8.0000 ....
- 3 / 3: 5.0000 7.0000 9.0000 ....
- 4 / 4: 6.0000 8.0000 10.0000 ....
- ---- K:2 Z: 3
- 1 / 1: 5.0000 7.0000 9.0000 ....
- 2 / 2: 6.0000 8.0000 10.0000 ....
- 3 / 3: 7.0000 9.0000 11.0000 ....
- 4 / 4: 8.0000 10.0000 12.0000 ....
-
-! 6/01
-! test use of expressions in dynamic grid commands
-SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2] ! implicit Y axis
- GRID (G018)
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- (AX002) LATITUDE 41 r 10S 2S
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
- GRID (G018)
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 41 r 10S 2S
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
- GRID (G011)
- name axis # pts start end
- XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
- normal Z
- (AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
- normal E
- normal F
-SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2]) ! abstract X axis
- GRID (G018)
- name axis # pts start end
- ABSTRACT X 99999999 r 1 1.E+08
- (AX002) LATITUDE 41 r 10S 2S
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]),SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])
- GRID (G018)
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- (AX011) LATITUDE 41 r 10S 2S
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
- GRID (G011)
- name axis # pts start end
- XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
- normal Z
- (AX005) T (CYC/hour) 2 r 0.00034224 0.00068448
- normal E
- normal F
- GRID (G018)
- name axis # pts start end
- ABSTRACT X 99999999 r 1 1.E+08
- (AX002) LATITUDE 41 r 10S 2S
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-
-load/x=160e/y=5s temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5
-SHOW GRID
- Default grid for DEFINE VARIABLE is (G006)
- Last successful data access was on grid (G018)
- GRID (G018)
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 41 r 10S 2S
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-SET GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) + 5
-SHOW GRID
- Default grid for DEFINE VARIABLE is (G011)
- Last successful data access was on grid (G011)
- GRID (G011)
- name axis # pts start end
- XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
- normal Z
- (AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
- normal E
- normal F
-list/j=1:5 j
- VARIABLE : J
- axis (AX002)
- SUBSET : 5 points (LATITUDE)
- 9.2S / 5: 5.00000
- 9.4S / 4: 4.00000
- 9.6S / 3: 3.00000
- 9.8S / 2: 2.00000
- 10S / 1: 1.00000
-DEFINE GRID/LIKE="temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5" mygrid
-SHOW GRID MYGRID
- GRID MYGRID
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- (AX002) LATITUDE 41 r 10S 2S
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-SHOW GRID/DYNAMIC
-Dynamic grids:
- GRID (G011) use count: 1
- name axis # pts start end
- XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
- normal Z
- (AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
- normal E
- normal F
-Dynamic axes:
- AXIS (AX011) use count: 1
- AXIS (AX002) use count: 2
- AXIS (AX020) use count: 1
-
-
-! ******** V53 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn_calendar
-! bn_calendar.jnl
-! Version 5.3
-! Add definitions of calendar axes as a NetCDF attribute of the time axis
-! DEFINE AXIS/CALENDAR
-! regridding between different calendar axes
-! write and read NetCDF files with the new attribute.
-
-define axis/t="1-jan-1988":"1-jan-1990":1/units=days/calendar=360DAY tdays
-define grid/t=tdays tgrid
-let my_data = sin(l[g=tgrid])
-list my_data[t="27-feb-1988":"1-mar-1988"]
- VARIABLE : SIN(L[G=TGRID])
- SUBSET : 5 points (TIME)
- CALENDAR : 360DAY
- 27-FEB-1988 00 / 57: 0.436165
- 28-FEB-1988 00 / 58: 0.992873
- 29-FEB-1988 00 / 59: 0.636738
- 30-FEB-1988 00 / 60: -0.304811
- 01-MAR-1988 00 / 61: -0.966118
-
-define axis/t="1-jan-1988":"1-jan-1990":1/units=days/calendar=noleap tdays
-define grid/t=tdays tgrid
-let my_data = sin(l[g=tgrid])
-list my_data[t="27-feb-1988":"1-mar-1988"]
- VARIABLE : SIN(L[G=TGRID])
- SUBSET : 3 points (TIME)
- CALENDAR : NOLEAP
- 27-FEB-1988 00 / 58: 0.992873
- 28-FEB-1988 00 / 59: 0.636738
- 01-MAR-1988 00 / 60: -0.304811
-
-
-
-define axis/t="1-jan-1988":"1-jan-1990":1/units=days/calendar=julian tdays
-define grid/t=tdays tgrid
-let my_data = sin(l[g=tgrid])
-list my_data[t="27-feb-1988":"1-mar-1988"]
- VARIABLE : SIN(L[G=TGRID])
- SUBSET : 4 points (TIME)
- CALENDAR : JULIAN
- 27-FEB-1988 00 / 58: 0.992873
- 28-FEB-1988 00 / 59: 0.636738
- 29-FEB-1988 00 / 60: -0.304811
- 01-MAR-1988 00 / 61: -0.966118
-
-define axis/t="1-jan-1988":"1-jan-1990":1/units=days/calendar=gregorian tdays
-define grid/t=tdays tgrid
-let my_data = sin(l[g=tgrid])
-list my_data[t="27-feb-1988":"1-mar-1988"]
- VARIABLE : SIN(L[G=TGRID])
- SUBSET : 4 points (TIME)
- 27-FEB-1988 00 / 58: 0.992873
- 28-FEB-1988 00 / 59: 0.636738
- 29-FEB-1988 00 / 60: -0.304811
- 01-MAR-1988 00 / 61: -0.966118
-
-
-
-! Regrid between different calendar axes using @lin(default) @asn and @nrst
-use gt4d011
-
-set region/x=132w/y=2n/k=1
-define axis/t="20-aug-1982":"1-jan-1983":7/units=days/calendar=noleap tweeks
-define grid/t=tweeks tgrid
-let ndata = temp[gt=tgrid]
-list/l=15:18 ndata
- VARIABLE : TEMP[GT=TGRID]
- FILENAME : gt4d011.cdf
- SUBSET : 4 points (TIME)
- CALENDAR : NOLEAP
- LONGITUDE: 132.5W
- LATITUDE : 1.833N
- DEPTH (m): 5
- 132.5W
- 98
- 26-NOV-1982 00 / 15: 32.8979
- 03-DEC-1982 00 / 16: 32.9221
- 10-DEC-1982 00 / 17: 32.9583
- 17-DEC-1982 00 / 18: 32.9707
-
-define axis/t="20-aug-1982":"1-jan-1983":7/units=days/calendar=360day tweeks
-let ndata = temp[gt=tgrid at asn]
-list/l=15:18 ndata
- VARIABLE : TEMP[GT=TGRID at ASN]
- FILENAME : gt4d011.cdf
- SUBSET : 4 points (TIME)
- CALENDAR : 360DAY
- LONGITUDE: 132.5W
- LATITUDE : 1.833N
- DEPTH (m): 5
- 132.5W
- 98
- 28-NOV-1982 00 / 15: 32.9508
- 05-DEC-1982 00 / 16: 32.9011
- 12-DEC-1982 00 / 17: 32.8862
- 19-DEC-1982 00 / 18: 32.9099
-
-
-define axis/t="20-aug-1982":"1-jan-1983":7/units=days/calendar=julian tweeks
-let ndata = temp[gt=tgrid at nrst]
-list/t="25-nov-1982":"18-dec-1982" ndata
- VARIABLE : TEMP[GT=TGRID at NRST]
- FILENAME : gt4d011.cdf
- SUBSET : 4 points (TIME)
- CALENDAR : JULIAN
- LONGITUDE: 132.5W
- LATITUDE : 1.833N
- DEPTH (m): 5
- 132.5W
- 98
- 26-NOV-1982 00 / 15: 32.9099
- 03-DEC-1982 00 / 16: 32.9287
- 10-DEC-1982 00 / 17: 32.9658
- 17-DEC-1982 00 / 18: 32.9710
-
-
-
-
-! Regrid to a new calendar, write to NetCDF file and read back in.
-can data/all
-can region
-can var/all
-
-use gt4d011
-
-set region/k=1
-define axis/t="20-aug-1982":"1-jan-1983":7/units=days/calendar=noleap tweeks
-define grid/t=tweeks tgrid
-let ndata = temp[gt=tgrid]
-
-save/clobber/file=calsst.cdf/x=140w:130w/y=2s:2n ndata
-
-can data/all
-can var/all
-can region
-
-use calsst
-sh data
- currently SET data sets:
- 1> ./calsst.cdf (default)
- name title I J K L M N
- NDATA TEMP[GT=TGRID] 1:10 1:13 1:1 1:21 ... ...
-
-sh grid ndata
- GRID GSH1
- name axis # pts start end
- PSXT91_100 LONGITUDE 10mr 139.5W 130.5W
- PSYT39_51 LATITUDE 13 i 2.167S 1.833N
- PSZT1_1 DEPTH (m) 1 r- 5 5
- TWEEKS1 TIME 21 r 20-AUG-1982 00:00 07-JAN-1983 00:00
- normal E
- normal F
-sh axis tweeks
- name axis # pts start end
- TWEEKS TIME 21 r 20-AUG-1982 00:00 07-JAN-1983 00:00
-T0 = 15-JAN-1901
-CALENDAR = NOLEAP
- Axis span (to cell edges) = 147
-
-stat/x=135w/y=0 ndata
-
- TEMP[GT=TGRID]
- LONGITUDE: 135.5W
- LATITUDE: 0.167S
- DEPTH (m): 5
- TIME: AUG-1982 to JAN-1983 NOLEAP
- E: N/A
- F: N/A
- DATA SET: ./calsst.cdf
-
- Total # of data points: 21 (1*1*1*21*1*1)
- # flagged as bad data: 0
- Minimum value: 26.228
- Maximum value: 32.608
- Mean value: 30.454 (unweighted average)
- Standard deviation: 2.4414
-
-sp rm -f calsst.cdf
-
-
-can data/all
-can var/all
-can region
-
-! regrid between weekly, daily, monthly axes.
-use gt4d011
-set region/x=132w/y=2n/k=1
-
-define axis/t="18-aug-1982":"1-jan-1983":1/units=months/calendar=360day tmonths
-define grid/t=tmonths tgrid
-let ndata = temp[gt=tgrid at nrst]
-list/t="25-sep-1982":"18-dec-1982" ndata
- VARIABLE : TEMP[GT=TGRID at NRST]
- FILENAME : gt4d011.cdf
- SUBSET : 4 points (TIME)
- CALENDAR : 360DAY
- LONGITUDE: 132.5W
- LATITUDE : 1.833N
- DEPTH (m): 5
- 132.5W
- 98
- 18-SEP-1982 / 2: 27.2694
- 18-OCT-1982 / 3: 31.3241
- 18-NOV-1982 / 4: 32.9011
- 18-DEC-1982 / 5: 32.9710
-
-
-define axis/t="20-aug-1982":"1-jan-1983":1/units=days/calendar=noleap tdays
-define grid/t=tdays tgrid
-let ndata = temp[gt=tgrid]
-list/t="5-dec-1982":"8-dec-1982" ndata
- VARIABLE : TEMP[GT=TGRID]
- FILENAME : gt4d011.cdf
- SUBSET : 4 points (TIME)
- CALENDAR : NOLEAP
- LONGITUDE: 132.5W
- LATITUDE : 1.833N
- DEPTH (m): 5
- 132.5W
- 98
- 05-DEC-1982 00 / 108: ....
- 06-DEC-1982 00 / 109: 32.9340
- 07-DEC-1982 00 / 110: 32.9401
- 08-DEC-1982 00 / 111: 32.9462
-
-
-
-! Regrid to a modulo calendar axis.
-
-can data/all
-can var/all
-can region
-
-use coads_climatology
-set region/x=180/y=0
-
-define axis/t="1-jan-0000":"1-dec-0000":1/units=months/calendar=julian/modulo jmonths
-define grid/t=jmonths jgrid
-let jsst = sst[gt=jgrid]
-let nsst = sst[gt=jgrid at nrst]
-
-list/l=1:4 sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 4 points (TIME)
- LONGITUDE: 179E
- LATITUDE : 1S
- 179E
- 80
- 16-JAN / 1: 28.2022
- 15-FEB / 2: 28.3646
- 17-MAR / 3: 28.3538
- 16-AUG / 4: ....
-list/l=1:4 jsst, nsst
- DATA SET: ./coads_climatology.cdf
- TIME: JAN to APR JULIAN
- LONGITUDE: 179E
- LATITUDE: 1S
- Column 1: JSST is SST[GT=JGRID]
- Column 2: NSST is SST[GT=JGRID at NRST]
- JSST NSST
-01-JAN / 1: .... 28.2022
-31-JAN / 2: 28.2832 28.2022
-01-MAR / 3: 28.3592 28.3646
-01-APR / 4: .... 28.3538
-
-! test negative time step formatting -- added 7/01 *sh*
-! this is not specifically a calendar test, but it is a change in V5.3x
-define axis/units=days/t/t0=1-jan-1980 tax_neg = {-3,-2,-1}
-show axis/l tax_neg
- name axis # pts start end
- TAX_NEG TIME 3 r 29-DEC-1979 00:00 31-DEC-1979 00:00
-T0 = 1-JAN-1980
- Axis span (to cell edges) = 3
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 29-DEC-1979 00:00:00 1 28-DEC-1979 12:00:00 -3
- 2> 30-DEC-1979 00:00:00 1 29-DEC-1979 12:00:00 -2
- 3> 31-DEC-1979 00:00:00 1 30-DEC-1979 12:00:00 -1
-
-! also see bn_all_leap.jnl, 6/2004
-! Added ALL_LEAP, or 366_DAY calendar (which is in the CF conventions).
-
-GO bn_reset
-cancel mode verify
-GO bn_dash_dot
-! new PLOT/DASH and PLOT/SYMBOL=DOT qualifiers
-! *acm* 5/01
-! *acm* 8/02 Remove calls to SYMBOL=DOT until postscript issues are resolved.
-
-plot/dash/i=1:1000 sin(62.8*i)
-plot/over/dash=(0.4,0.1,0.4,0.1)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
-plot/over/dash=(0.1,0.1,0.04,0.05)/color=blue/thick=1/i=1:1000 sin(62.8*(i+20) )
-
-!plot/symbol=dot/i=1:1000 sin(62.8*i)
-!plot/symbol=dot/color=red/over/i=1:1000 sin(62.8*(i+20))
-
-! test warnings
-!plot/symbol=dot/thick/over/i=1:1000 sin(62.8*(i+10) )
-!plot/symbol=dot/size=0.5/over/i=1:1000 sin(62.8*(i+10) )
-
-! intentional errors
-set mode ignore
-plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
-plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
-
-GO bn_reset
-cancel mode verify
-GO bn_flowlines
-! bn_flowlines.jnl
-! VECTOR/FLOW
-! 6/2001
-! ACM 4/2005 set mode meta to save one of the plots for the metafile checks.
-! and cancel mode logo, so that .plt files are comparable.
-! ACM 4/2006 new qualifier /LENGTH sets the length of the arrow heads
-
-set window/asp=1/siz=0.5
-use gtbc011
-set reg/k=1/l=1/y=0:20
-vector/aspect u,v
-vector/flow/over u,v
-
-! /LEN= for setting size of arrow heads
-vector/aspect u,v
-vector/flow/over/len=10 u,v
-
-GO bn_reset
-cancel mode verify
-set mode meta flowlines.plt
-can mode logo
-
-can region
-vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
-flow/i=1:50/j=1:50/over/color=blue/thick/den=1 sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
-flow/i=1:50/j=1:50/over/color=green/den=4/len=20 sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
-
-can mode meta
-! curvilinear flowline plots
-go bn_reset
-cancel mode verify
-
-use coads_climatology
-go mp_sinusoidal
-set grid sst
-
-
-let fsst = missing(sst,5)
-let yy = if abs(y[gt=sst]) le 20 then 10 else (100-abs(y[gt=sst]+1))/ 10.
-
-set reg/l=1
-vec/noax/xskip=16/yskip=8/len=15/title="Sinusoidal Projection" fsst*0,fsst*0+yy*mp_mask, x_page,y_page
-vec/over/flow/noax/xskip=16/yskip=8/len=5/title="Sinusoidal Projection" fsst*0,fsst*0+yy*mp_mask, x_page,y_page
-
-set mode logo
-
-! ******** V533 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn_logaxes
-! Test the qualifiers /HLOG and /VLOG for setting
-! log axes. On a depth axis, inverse log plot.
-
-! use /VLOG
-def axis/z zlog=exp(k[k=1:10])
-let fcn = k[gz=zlog]
-set view lower
-plot/vlog/vlimits=1:100000 fcn
-! The same plot, calling axtype using old syntax
-set view upper
-plot/vlimits=0:5/set fcn
-ppl axtype,1,3
-ppl plot
-
-! use /HLOG, and then /VLOG/HLOG both
-def axis/x dlog = exp(-1*(10-i[i=1:10]))
-let fcn = (i[gx=dlog])^2
-set view upper
-plot/vlog fcn
-set view lower
-plot/vlog/hlog fcn
-can view
-
-! transpose axes for /HLOG on depth axis
-def axis/z/depth dlog=exp(k[k=1:10])
-let fcnd = k[gz=dlog]
-plot/trans/hlog fcnd
-
-! add test for /VLOG on depth axis
-! (prev to v6.3+ the right-hand axis had incorrect tic marks)
-def axis/z/depth dlog=exp(k[k=1:10])
-let fcnd = k[gz=dlog]
-plot/vlog fcnd
-
-! intentional error
-! This wont work - no log of negative values on axis
-
-set mode ignore
-def axis/x dlog = -1*(10-i[i=1:10])
-let fcn = (i[gx=dlog])^2
-plot/hlog fcn
-
-! *kob* same tests for internal external functions but moved out of
-! the bn_external_function jnl file.
-GO bn_reset
-cancel mode verify
-GO bn_internal_external_functions
-! test internal external functions. These moved from bn_external_functions
-! 6/01 because on systems w/out external functions support, the internal
-! functions were not being tested - most notably win32 *kob*
-
-! 8/02/01 *acm* add bench_eof; now internally-linked.
-! 10/22/01 *acm* add bench_compress_by (compressi_by, compressj_by, ...)
-! 06/02 *kob* add bench_internal_string_functions (strlen, strcat, strindex, etc)
-! 05/05 *acm* move bench_compress here; internally linked.
-! 05/07 *acm* move tax_* functions and fill_xy here; internally linked.
-! 3/12 *acm* new script bn_scat2grid tests scat2grid functions in all directions
-! 4/12 *kms* new scripts bn_scat2grid_gl, bn_scat2gridlaplace_tarasoff,
-! bn_scat2grid_nobs, bn_scat2grid_t, bn_transpose, bn_unique_str2int
-
-GO bn_reset
-cancel mode verify
-go bench_fft
-! Benchmark Ferret script for FFT. Uses analytic function of time.
-
-! 5/99 ACM
-! FFTA function computes the FFT amplitude spectrum.
-! FFTP function computes the FFT phase
-!
-! The script bench_fft_visual.jnl plots the results
-
-SET MODE IGNORE_ERRORS
-SAY The message *** NOTE: unknown axis units: FREQ is informational. fcn still works.
-The message *** NOTE: unknown axis units: FREQ is informational. fcn still works.
-
-! Note, previously the time axis was defined as follows. When the
-! function is defined in terms of the time coordinate data, tpts,
-! tpts is single-precision and so its use has precision problems.
-! (Saw this when changing to double-precision Ferret)
-
-DEFINE AXIS/t=1-Jan-1990:31-Dec-1990:24 dayt
-
-
-
-DEFINE AXIS/t=1-Jan-1990:31-Dec-1990:24/t0=1-jan-1980 dayt
-
-
-DEFINE GRID/T=dayt tgrid
-SH GRID tgrid
- GRID TGRID
- name axis # pts start end
- normal X
- normal Y
- normal Z
- DAYT TIME 365 r 01-JAN-1990 00:00 31-DEC-1990 00:00
- normal E
- normal F
-SET GRID tgrid
-
-LET fcn1 = sin(kt*tpts - phase) /2.
-LET fcn2 = cos(pt*tpts)
-LET phase = 6.
-LET kt = 0.5
-LET pt = 0.3
-
-! Use an analytic function.
-
-LET sample_function = fcn1 - fcn2
-LET tpts = t
-LET days_fft = ffta(sample_function[l=1:365])
-
-LIST/L=30:35 days_fft
- VARIABLE : FFTA(SAMPLE_FUNCTION[L=1:365])
- SUBSET : 6 points (T (CYC/HOURS))
- 0.00343 / 30: 0.013664
- 0.00355 / 31: 0.021183
- 0.00366 / 32: 0.048189
- 0.00378 / 33: 0.498982
- 0.00389 / 34: 0.052353
- 0.00401 / 35: 0.032474
-LIST/L=50:55 days_fft
- VARIABLE : FFTA(SAMPLE_FUNCTION[L=1:365])
- SUBSET : 6 points (T (CYC/HOURS))
- 0.00572 / 50: 0.072791
- 0.00584 / 51: 0.104108
- 0.00595 / 52: 0.185372
- 0.00607 / 53: 0.894540
- 0.00618 / 54: 0.311122
- 0.0063 / 55: 0.131705
-
-! Compute the phase spectrum
-
-LET days_fftp = fftp(sample_function[l=1:365])
-
-LIST/l=1:20 days_fftp
- VARIABLE : FFTP(SAMPLE_FUNCTION[L=1:365])
- SUBSET : 20 points (T (CYC/HOURS))
- 0 / 1: -178.057
- 0 / 2: -176.112
- 0 / 3: -174.161
- 0 / 4: -172.203
- 0 / 5: -170.234
- 0 / 6: -168.251
- 0 / 7: -166.250
- 0 / 8: -164.228
- 0.00103 / 9: -162.179
- 0.00114 / 10: -160.100
- 0.00126 / 11: -157.983
- 0.00137 / 12: -155.821
- 0.00149 / 13: -153.606
- 0.0016 / 14: -151.326
- 0.00172 / 15: -148.970
- 0.00183 / 16: -146.520
- 0.00195 / 17: -143.957
- 0.00206 / 18: -141.255
- 0.00217 / 19: -138.381
- 0.00229 / 20: -135.294
-
-
-!PAUSE
-
-
-USE coads_vwnd.cdf
-SET REGION/I=90/J=65
-
-SAY This should bail out with error msg about Time axis must be regular
-This should bail out with error msg about Time axis must be regular
-
-LET vw_fft = ffta(vwnd[l=37:60])
-LIST vw_fft
-
-DEFINE AXIS/T=16-Jan-1949:16-Dec-1950:730.5 at ave montht
-DEFINE GRID/T=montht tgrid
-LET vw_tim = vwnd[gt=tgrid]
-LET vw_fft = ffta(vw_tim[l=2:23])
-
-SAY This one is ok
-This one is ok
-LIST vw_fft
- VARIABLE : FFTA(VW_TIM[L=2:23])
- FILENAME : coads_vwnd.cdf
- SUBSET : 11 points (T (CYC/HOURS))
- LONGITUDE: 161W
- LATITUDE : 39N
- 161W
- 90
- 0 / 1: 1.99605
- 0 / 2: 2.16839
- 0 / 3: 0.17387
- 0 / 4: 2.01530
- 0 / 5: 0.35361
- 0 / 6: 1.72488
- 0 / 7: 1.25348
- 0 / 8: 0.30416
- 0 / 9: 1.65059
- 0 / 10: 0.81359
- 0 / 11: 0.15377
-
-CANCEL MODE IGNORE_ERRORS
-
-GO bn_reset
-cancel mode verify
-go bench_gridding
-! bench_gridding.jnl
-! *acm* 8/99
-
-! Call scat2gridlaplace_xy and scat2gridgauss_xy
-! to put scattered data onto a regularly spaced grid.
-
-! function definition from objective_analysis_demo.jnl
-
-! 2/2005 changed number of arguments to the Gaussing gridding functions
-
-
-define axis/x=0:10:0.05 x10
-define axis/y=0:10:0.05 y10
-define grid/x=x10/y=y10 g10x10
-set grid g10x10
-
-let WAVE = SIN(KX*XPTS + KY*YPTS - PHASE) / 3
-let PHASE = 0
-let KAPPA = 0.4
-let KX = 0.4
-let KY = 0.7
-let FCN1 = SIN(R)/(R+1)
-let R = ((XPTS-X0)^2+ 5*(YPTS-Y0)^2)^0.5
-let X0 = 3
-let Y0 = 8
-
-LET sample_function = fcn1 + wave
-
-let xpts = x; let ypts = y
-
-list/x=4:5/y=1 sample_function
- VARIABLE : FCN1 + WAVE
- SUBSET : 21 points (X)
- Y : 1
- 1
- 21
- 4 / 81: 0.249981
- 4.05 / 82: 0.245294
- 4.1 / 83: 0.240500
- 4.15 / 84: 0.235600
- 4.2 / 85: 0.230597
- 4.25 / 86: 0.225493
- 4.3 / 87: 0.220289
- 4.35 / 88: 0.214988
- 4.4 / 89: 0.209592
- 4.45 / 90: 0.204102
- 4.5 / 91: 0.198521
- 4.55 / 92: 0.192851
- 4.6 / 93: 0.187094
- 4.65 / 94: 0.181253
- 4.7 / 95: 0.175329
- 4.75 / 96: 0.169325
- 4.8 / 97: 0.163243
- 4.85 / 98: 0.157086
- 4.9 / 99: 0.150856
- 4.95 / 100: 0.144555
- 5 / 101: 0.138186
-
-can mem /all
-
-let xpts = 10*randu(i); let ypts = 10*randu(i+2)
-
-set region/i=1:200
-define axis/x=1:10:.5 xax5
-define axis/y=1:10:.5 yax5
-
-let sgrid = scat2gridlaplace_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5], 5., 5)
-! the following in now needed since the result grid axes are no longer extended
-! load sgrid
-! otherwise the following would use a 3-element X axis and 1-element Y axis
-! list/x=4:5/y=1 sgrid
-list /order=yx sgrid
- VARIABLE : SCAT2GRIDLAPLACE_XY (XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], 5., 5)
- SUBSET : 19 by 19 points (Y-X)
- ... listing every 2th point
- 1 2 3 4 5 6 7 8 9 10
- 1 3 5 7 9 11 13 15 17 19
- 1 / 1: 0.308984 0.361972 0.109085 -0.004967 -0.136744 -0.408450 -0.225496 0.151670 0.225024 0.073150
- 1.5 / 2: 0.315638 0.371230 0.093750 -0.037386 -0.201756 -0.452435 -0.150009 0.278155 0.330914 0.069854
- 2 / 3: 0.378812 0.315634 0.037083 -0.088708 -0.253832 -0.492242 -0.073700 0.374786 0.450968 0.081332
- 2.5 / 4: 0.420045 0.252191 -0.063598 -0.144131 -0.252740 -0.466614 0.019391 0.439631 0.491399 0.089314
- 3 / 5: 0.406392 0.198397 -0.139974 -0.197140 -0.279040 -0.425529 0.118978 0.432969 0.545303 0.085462
- 3.5 / 6: 0.351014 0.169762 -0.201579 -0.257493 -0.283843 -0.357982 0.185850 0.585861 0.530755 0.058808
- 4 / 7: 0.277107 0.096747 -0.246534 -0.289021 -0.258951 -0.329342 0.312474 0.641602 0.518714 0.021205
- 4.5 / 8: 0.188951 0.044707 -0.312641 -0.319182 -0.213513 -0.222475 0.302121 0.626625 0.412068 -0.008475
- 5 / 9: 0.139939 -0.037119 -0.323878 -0.333812 -0.199768 -0.134206 0.265570 0.577839 0.312094 -0.056718
- 5.5 / 10: 0.078577 -0.096394 -0.338922 -0.312885 -0.172743 -0.085023 0.206702 0.482419 0.235803 -0.079778
- 6 / 11: 0.007372 -0.135345 -0.377702 -0.274110 -0.121663 -0.019270 0.173802 0.354012 0.148779 -0.122582
- 6.5 / 12: -0.071091 -0.209142 -0.370362 -0.249289 -0.041035 0.069505 0.148512 0.236838 0.045584 -0.173237
- 7 / 13: -0.137482 -0.254334 -0.378632 -0.228148 0.063018 0.183000 0.135520 0.132174 -0.050976 -0.215292
- 7.5 / 14: -0.202760 -0.266868 -0.346402 -0.210460 0.168372 0.279647 0.178541 0.064025 -0.115153 -0.228150
- 8 / 15: -0.275191 -0.259180 -0.300179 -0.155421 0.233304 0.351951 0.219702 0.033928 -0.135697 -0.218938
- 8.5 / 16: -0.326812 -0.273253 -0.245151 -0.113795 0.264889 0.402452 0.253275 0.029382 -0.138544 -0.200463
- 9 / 17: -0.351551 -0.266762 -0.164899 -0.032110 0.276385 0.437033 0.281707 0.036426 -0.134209 -0.191118
- 9.5 / 18: -0.364215 -0.240170 -0.093384 0.038122 0.276072 0.442607 0.294658 0.049712 -0.140883 -0.217410
- 10 / 19: -0.369196 -0.210353 -0.040323 0.103110 0.280278 0.405237 0.298599 0.066760 -0.138644 -0.252572
-
-let sgrid = scat2gridlaplace_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5], 1.,1)
-! the following in now needed since the result grid axes are no longer extended
-! load sgrid
-! otherwise the following would use a 3-element X axis and 1-element Y axis
-! list/x=4:5/y=1 sgrid
-list /order=yx sgrid
- VARIABLE : SCAT2GRIDLAPLACE_XY (XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], 1.,1)
- SUBSET : 19 by 19 points (Y-X)
- ... listing every 2th point
- 1 2 3 4 5 6 7 8 9 10
- 1 3 5 7 9 11 13 15 17 19
- 1 / 1: 0.290994 0.424162 0.097006 0.003143 -0.136744 -0.412297 -0.207808 .... 0.241076 ....
- 1.5 / 2: 0.314929 0.373640 0.124083 -0.001456 -0.201756 -0.441151 -0.189145 0.331034 0.333491 0.005624
- 2 / 3: 0.337643 0.312076 0.046130 -0.011788 -0.267158 -0.486359 -0.073700 .... 0.461555 ....
- 2.5 / 4: 0.359734 0.242399 -0.066085 .... -0.243857 -0.457333 -0.031104 0.417939 0.473995 0.200894
- 3 / 5: .... 0.198698 -0.131262 -0.203700 -0.277160 -0.388506 0.065758 0.434211 0.539378 ....
- 3.5 / 6: 0.310287 0.169976 -0.216298 -0.249436 -0.282498 -0.336468 0.156727 0.537358 0.505391 0.142444
- 4 / 7: 0.274766 0.091884 -0.274252 -0.239529 -0.262206 -0.333969 0.312474 0.580377 0.520608 0.093618
- 4.5 / 8: 0.184044 0.041657 -0.304953 .... -0.210582 -0.196012 0.326227 0.576412 0.366262 0.059061
- 5 / 9: 0.146796 -0.044536 -0.353323 -0.375483 -0.190888 -0.106617 0.284743 0.521940 0.278387 -0.035055
- 5.5 / 10: 0.041582 -0.109698 -0.335399 -0.325452 .... -0.088590 0.221990 0.438637 0.235803 0.041225
- 6 / 11: -0.012273 -0.174380 -0.371063 -0.263403 .... .... 0.172629 0.346297 0.219052 ....
- 6.5 / 12: -0.064809 -0.127226 -0.366128 -0.245270 .... 0.104409 0.165680 0.242858 0.095140 ....
- 7 / 13: -0.138619 .... -0.379843 -0.230018 .... 0.181947 0.135892 0.164309 -0.026041 -0.204659
- 7.5 / 14: -0.203907 -0.289087 -0.346009 -0.209873 0.169451 0.272161 0.184553 0.103343 -0.114248 ....
- 8 / 15: -0.285911 -0.258721 -0.300520 -0.170515 0.240968 0.352162 0.229361 0.066151 -0.135985 ....
- 8.5 / 16: -0.329428 -0.279209 -0.236667 -0.125716 0.292407 0.388989 0.256564 .... -0.139683 -0.183944
- 9 / 17: -0.341597 -0.268585 -0.177502 -0.064298 0.277369 0.431662 0.288204 0.023055 -0.139178 -0.195303
- 9.5 / 18: -0.343919 -0.225702 -0.093580 0.013191 0.253357 0.442399 0.294693 0.034103 -0.137639 -0.211783
- 10 / 19: .... -0.204222 -0.021547 .... .... 0.421118 0.287954 .... -0.144731 -0.203650
-
-let sgrid = scat2gridgauss_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5], 0.5, 0.5, 2, 2)
-! list/x=4:5/y=1 sgrid
-list /order=yx sgrid
- VARIABLE : SCAT2GRIDGAUSS_XY (XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], 0.5, 0.5, 2, 2)
- SUBSET : 19 by 19 points (Y-X)
- ... listing every 2th point
- 1 2 3 4 5 6 7 8 9 10
- 1 3 5 7 9 11 13 15 17 19
- 1 / 1: 0.274901 0.351990 0.125870 0.000547 -0.130676 -0.409444 -0.196473 0.113026 0.291807 0.128390
- 1.5 / 2: 0.299222 0.340543 0.124519 -0.061100 -0.263759 -0.435083 -0.176723 0.348424 0.372371 0.128390
- 2 / 3: 0.281567 0.320514 0.026296 -0.110384 -0.295665 -0.434870 -0.190697 0.460511 0.445156 0.191902
- 2.5 / 4: 0.290517 0.274621 -0.063970 -0.166628 -0.264776 -0.417589 -0.116164 0.537969 0.442169 0.264943
- 3 / 5: 0.291464 0.248219 -0.125567 -0.223844 -0.256285 -0.371561 0.247717 0.497526 0.452304 0.276328
- 3.5 / 6: 0.267037 0.177128 -0.170576 -0.230988 -0.274809 -0.281194 0.254637 0.510104 0.422794 0.248322
- 4 / 7: 0.225394 0.114379 -0.176660 -0.227903 -0.272403 -0.244676 0.280180 0.544886 0.397193 0.212214
- 4.5 / 8: 0.189285 0.081180 -0.332907 -0.343445 -0.230804 -0.244260 0.339829 0.530983 0.335082 0.061286
- 5 / 9: 0.127042 0.039043 -0.356226 -0.369075 -0.177935 -0.153186 0.253590 0.499044 0.303545 0.025609
- 5.5 / 10: 0.048635 -0.126901 -0.331398 -0.289789 -0.162591 -0.082396 0.192227 0.401098 0.303746 0.055576
- 6 / 11: -0.037713 -0.136552 -0.336681 -0.268753 -0.197051 0.016254 0.209390 0.295370 0.263940 -0.135684
- 6.5 / 12: -0.064917 -0.134912 -0.359398 -0.220212 -0.011644 0.110802 0.164667 0.259319 0.078530 -0.137706
- 7 / 13: -0.103972 -0.140560 -0.362975 -0.166853 0.066535 0.193231 0.149487 0.141794 -0.113016 -0.143405
- 7.5 / 14: -0.199710 -0.279592 -0.339043 -0.191829 0.185240 0.262158 0.152165 0.039367 -0.115781 -0.151274
- 8 / 15: -0.235285 -0.278212 -0.283035 -0.157240 0.250258 0.333134 0.204490 0.017943 -0.115931 -0.171603
- 8.5 / 16: -0.306008 -0.278546 -0.240470 -0.100659 0.251651 0.363846 0.251194 0.080410 -0.130532 -0.187823
- 9 / 17: -0.335648 -0.266336 -0.213641 0.013456 0.288406 0.405273 0.272644 0.141238 -0.142601 -0.193561
- 9.5 / 18: -0.349458 -0.212960 -0.108340 0.097657 0.205467 0.422547 0.294706 0.116317 -0.143410 -0.195569
- 10 / 19: -0.353035 -0.181573 -0.086119 0.078837 0.108731 0.420380 0.321587 0.036216 -0.151253 -0.191472
-
-let sgrid = scat2gridgauss_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5], 1., 1., 6, 6)
-! list/x=4:5/y=1 sgrid
-list /order=yx sgrid
- VARIABLE : SCAT2GRIDGAUSS_XY (XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], 1., 1., 6, 6)
- SUBSET : 19 by 19 points (Y-X)
- ... listing every 2th point
- 1 2 3 4 5 6 7 8 9 10
- 1 3 5 7 9 11 13 15 17 19
- 1 / 1: 0.281552 0.312213 0.193558 -0.030592 -0.206961 -0.317374 -0.200235 0.035776 0.251615 0.217897
- 1.5 / 2: 0.275271 0.296173 0.155526 -0.085149 -0.266966 -0.350539 -0.202341 0.168678 0.341517 0.274690
- 2 / 3: 0.267170 0.260868 0.085385 -0.139671 -0.296632 -0.356898 -0.159219 0.302176 0.393862 0.319020
- 2.5 / 4: 0.256878 0.203678 0.000735 -0.176300 -0.300338 -0.332200 -0.037496 0.393557 0.416391 0.336288
- 3 / 5: 0.242290 0.152878 -0.057424 -0.197874 -0.288975 -0.265744 0.103144 0.430207 0.412825 0.327333
- 3.5 / 6: 0.222556 0.121831 -0.090666 -0.216330 -0.271362 -0.184480 0.187704 0.436022 0.391648 0.301597
- 4 / 7: 0.199438 0.094153 -0.126981 -0.240001 -0.252964 -0.137926 0.223192 0.431619 0.360695 0.262091
- 4.5 / 8: 0.165055 0.052904 -0.183379 -0.267119 -0.231965 -0.117235 0.236822 0.416791 0.325354 0.213933
- 5 / 9: 0.103166 -0.013463 -0.234016 -0.283000 -0.207964 -0.093414 0.234809 0.379625 0.299928 0.181999
- 5.5 / 10: 0.019557 -0.082190 -0.253614 -0.280357 -0.179994 -0.046106 0.219394 0.327974 0.276824 0.165491
- 6 / 11: -0.043123 -0.124439 -0.262702 -0.257404 -0.115678 0.036003 0.200459 0.273757 0.219858 0.088693
- 6.5 / 12: -0.080238 -0.159570 -0.282392 -0.216326 0.011196 0.126375 0.181603 0.207992 0.109108 -0.036546
- 7 / 13: -0.125137 -0.215907 -0.293904 -0.180571 0.098961 0.191463 0.171154 0.130122 -0.005575 -0.104958
- 7.5 / 14: -0.186850 -0.262803 -0.283642 -0.149158 0.150674 0.242358 0.181345 0.073483 -0.066151 -0.129099
- 8 / 15: -0.238052 -0.273211 -0.262614 -0.116643 0.191858 0.284230 0.210919 0.059208 -0.090155 -0.143986
- 8.5 / 16: -0.274654 -0.269613 -0.239107 -0.087178 0.223535 0.315867 0.242668 0.071672 -0.107088 -0.159422
- 9 / 17: -0.300031 -0.259464 -0.211792 -0.059935 0.246533 0.340287 0.266976 0.081553 -0.124034 -0.168991
- 9.5 / 18: -0.314125 -0.241656 -0.177924 -0.031561 0.260916 0.358325 0.284307 0.073478 -0.135647 -0.172063
- 10 / 19: -0.318713 -0.220992 -0.146630 -0.009841 0.266488 0.369766 0.296933 0.053734 -0.142473 -0.172360
-
-can mem /all
-can var /all
-can axis yax5
-can axis xax5
-set grid abstract
-can grid g10x10
-can axis y10
-can axis x10
-
-
-GO bn_reset
-cancel mode verify
-go bn_scat2grid_test
-! bn_scat2grid_test.jnl
-! From JonCallahan's insitu_gaussian_*.jnl
-
-! Description: Test functions for XY XZ XT YZ YT ZT gridding of insitu data
-
-set data scat2grid.nc
-
-define axis/x=50:70/npoints=20/units=degrees_east x_20
-define axis/y=10:20/npoints=20/units=degrees_north y_20
-define axis/z=0:100/npoints=20/depth/units=meters z_20
-define axis/t=0:8736/unit=hours/t0="01-JAN-1995 00:00:00"/npoints=20 t_20
-
-!*********
-! SCAT2GRIDGAUSS functions
-! XY
-
-let xy_gauss_gridded = scat2gridgauss_xy(xax,yax,O2_umol_kg,x[gx=x_20],y[gy=y_20],1.5,1.0,5.0,3.0)
-fill/lev=30v xy_gauss_gridded
-plot/vs/over/nolab xax,yax
-ppl shaset reset
-
-! XZ
-
-let xz_gauss_gridded = scat2gridgauss_xz(xax,zax,O2_umol_kg,x[gx=x_20],z[gz=z_20],1.5,10,2,20)
-fill/lev=30v xz_gauss_gridded
-plot/vs/over/nolab xax,zax
-ppl shaset reset
-
-! XT
-
-let xt_gauss_gridded = scat2gridgauss_xt(xax,tax,O2_umol_kg,x[gx=x_20],t[gt=t_20],1.5,720.0,5.0,2160.0)
-fill/lev=30v xt_gauss_gridded
-plot/vs/over/nolab xax,tax
-ppl shaset reset
-
-! YZ
-
-let yz_gauss_gridded = scat2gridgauss_yz(yax,zax,ysequence(O2_umol_kg),y[gy=y_20],z[gz=z_20],1.0,10,3,50)
-fill/lev=30v yz_gauss_gridded
-plot/vs/over/nolab yax,zax
-ppl shaset reset
-
-! YT
-
-let yt_gauss_gridded = scat2gridgauss_yt(yax,tax,ysequence(O2_umol_kg),y[gy=y_20],t[gt=t_20],1.0,720,3,2160)
-fill/lev=30v yt_gauss_gridded
-plot/vs/over/nolab tax,yax
-ppl shaset reset
-
-! ZT
-
-let zt_gauss_gridded = scat2gridgauss_zt(zax,tax,zsequence(O2_umol_kg),z[gz=z_20],t[gt=t_20],10,720,50,2160)
-fill/lev=30v zt_gauss_gridded
-plot/vs/over/nolab tax, zax
-
-can mem/all
-
-! SCAT2GRIDLAPLACE functions
-
-! XY
-
-let xy_laplace_gridded = scat2gridlaplace_xy(xax,yax,O2_umol_kg,x[gx=x_20],y[gy=y_20],2,2)
-show grid xy_laplace_gridded
- GRID (G010)
- name axis # pts start end
- X_20 LONGITUDE 20mr 50E 70E
- Y_20 LATITUDE 20 r 10N 20N
- normal Z
- normal T
- normal E
- normal F
-! when the result grid axes were extended, the axis coordinates in the following were messed up
-list xy_laplace_gridded
- VARIABLE : SCAT2GRIDLAPLACE_XY(XAX,YAX,O2_UMOL_KG,X[GX=X_20],Y[GY=Y_20],2,2)
- FILENAME : scat2grid.nc
- SUBSET : 20 by 20 points (LONGITUDE-LATITUDE)
- ... listing every 2th point
- 50E 52.1E 54.2E 56.3E 58.4E 60.5E 62.6E 64.7E 66.8E 68.9E
- 1 3 5 7 9 11 13 15 17 19
- 20N / 20: .... .... .... .... 143.990 241.090 .... .... .... ....
- 19.47N / 19: .... .... .... .... 117.831 207.449 172.925 .... .... ....
- 18.95N / 18: .... .... .... 137.758 107.307 98.003 .... .... .... ....
- 18.42N / 17: .... .... .... 161.079 156.071 7.072 16.239 .... .... ....
- 17.9N / 16: .... .... .... 179.862 189.128 81.665 .... .... .... ....
- 17.37N / 15: .... .... .... 165.097 200.741 145.418 .... .... .... ....
- 16.84N / 14: .... .... .... 128.322 183.027 168.029 182.582 .... .... ....
- 16.32N / 13: .... .... 76.347 92.413 158.520 190.506 197.367 .... .... ....
- 15.79N / 12: .... .... .... 80.307 .... 189.841 195.829 .... .... ....
- 15.26N / 11: .... .... .... 72.161 .... 187.475 191.467 .... .... ....
- 14.74N / 10: .... .... .... .... .... .... .... .... .... ....
- 14.21N / 9: .... .... .... .... .... .... .... .... .... ....
- 13.68N / 8: .... .... .... .... .... .... .... .... .... ....
- 13.16N / 7: .... .... .... .... .... .... .... .... .... ....
- 12.63N / 6: .... .... .... .... .... .... .... .... .... ....
- 12.11N / 5: .... .... .... .... .... .... .... .... .... ....
- 11.58N / 4: .... .... .... .... .... .... .... .... .... ....
- 11.05N / 3: .... .... .... .... .... .... .... .... .... ....
- 10.53N / 2: .... .... .... .... .... .... .... .... .... ....
- 10N / 1: .... .... .... .... .... .... .... .... .... ....
-fill/lev=30v xy_laplace_gridded
-plot/vs/over/nolab xax,yax
-ppl shaset reset
-
-! XZ
-
-let xz_laplace_gridded = scat2gridlaplace_xz(xax,zax,O2_umol_kg,x[gx=x_20],z[gz=z_20],2,2)
-fill/lev=30v xz_laplace_gridded
-plot/vs/over/nolab xax,zax
-ppl shaset reset
-
-! XT
-
-let xt_laplace_gridded = scat2gridlaplace_xt(xax,tax,O2_umol_kg,x[gx=x_20],t[gt=t_20],2,2)
-fill/lev=30v xt_laplace_gridded
-plot/vs/over/nolab xax,tax
-ppl shaset reset
-
-! YZ
-
-let yz_laplace_gridded = scat2gridlaplace_yz(yax,zax,ysequence(O2_umol_kg),y[gy=y_20],z[gz=z_20],2,2)
-fill/lev=30v yz_laplace_gridded
-plot/vs/over/nolab yax,zax
-ppl shaset reset
-
-! YT
-
-let yt_laplace_gridded = scat2gridlaplace_yt(yax,tax,ysequence(O2_umol_kg),y[gy=y_20],t[gt=t_20],2,2)
-fill/lev=30v yt_laplace_gridded
-plot/vs/over/nolab tax,yax
-ppl shaset reset
-
-! ZT
-
-let zt_laplace_gridded = scat2gridlaplace_zt(zax,tax,zsequence(O2_umol_kg),z[gz=z_20],t[gt=t_20],2,2)
-fill/lev=30v zt_laplace_gridded
-plot/vs/over/nolab tax, zax
-
-can mem /all
-can var /all
-can data /all
-can axis t_20
-can axis z_20
-can axis y_20
-can axis x_20
-
-
-GO bn_reset
-cancel mode verify
-go bn_scat2grid_gl
-! bn_scat2grid_gl.jnl
-! test the scat2gridgauss and scat2gridlaplace functions,
-! listing the results which can be checked against input
-
-define axis/x=173:187/unit=degrees_east/npoints=15 x_15
-define axis/y=13:27/unit=degrees_north/npoints=15 y_15
-define axis/z=15:85/units=meters/depth/npoints=15 z_15
-define axis/t=0:8760/unit=hours/t0="01-JAN-1995 00:00:00"/edges/npoints=16 t_16
-
-let sinx = sin(X[gx=x_15] * 3.14159265 / 180.0)
-let cosyp70 = cos((Y[gy=y_15] + 70.0) * 3.14159265 / 180.0)
-let logzp10 = log(Z[gz=z_15] + 10.0)
-let logtp50 = log(T[gt=t_16] + 50.0)
-
-let smxy = xsequence(sinx + cosyp70)
-let smxy_xs_pos = xsequence(1.0 * X[gx=x_15] + 0.0 * Y[gy=y_15])
-let smxy_xs = if ( smxy_xs_pos gt 180 ) then (smxy_xs_pos - 360) else smxy_xs_pos
-let smxy_ys = xsequence(0.0 * X[gx=x_15] + 1.0 * Y[gy=y_15])
-
-let smxz = xsequence(sinx + logzp10)
-let smxz_xs_pos = xsequence(1.0 * X[gx=x_15] + 0.0 * Z[gz=z_15])
-let smxz_xs = if ( smxz_xs_pos gt 180 ) then (smxz_xs_pos - 360) else smxz_xs_pos
-let smxz_zs = xsequence(0.0 * X[gx=x_15] + 1.0 * Z[gz=z_15])
-
-let smxt = xsequence(sinx + logtp50)
-let smxt_xs_pos = xsequence(1.0 * X[gx=x_15] + 0.0 * T[gt=t_16])
-let smxt_xs = if ( smxt_xs_pos gt 180 ) then (smxt_xs_pos - 360) else smxt_xs_pos
-let smxt_ts = xsequence(0.0 * X[gx=x_15] + 1.0 * T[gt=t_16])
-
-let smyz = ysequence(cosyp70 + logzp10)
-let smyz_ys = ysequence(1.0 * Y[gy=y_15] + 0.0 * Z[gz=z_15])
-let smyz_zs = ysequence(0.0 * Y[gy=y_15] + 1.0 * Z[gz=z_15])
-
-let smyt = ysequence(cosyp70 + logtp50)
-let smyt_ys = ysequence(1.0 * Y[gy=y_15] + 0.0 * T[gt=t_16])
-let smyt_ts = ysequence(0.0 * Y[gy=y_15] + 1.0 * T[gt=t_16])
-
-let smzt = zsequence(logzp10 + logtp50)
-let smzt_zs = zsequence(1.0 * Z[gz=z_15] + 0.0 * T[gt=t_16])
-let smzt_ts = zsequence(0.0 * Z[gz=z_15] + 1.0 * T[gt=t_16])
-
-define axis/x=170:190/unit=degrees_east/npoints=11 x_11
-define axis/y=10:30/units=degrees_north/npoints=11 y_11
-define axis/z=0:100/depth/units=meters/npoints=11 z_11
-define axis/t=0:8760/unit=hours/t0="01-JAN-1995 00:00:00"/edges/npoints=12 t_12
-
-list X[gx=x_11]
- VARIABLE : X
- axis X_11
- SUBSET : 11 points (LONGITUDE)
- 170E / 1: 170.000
- 172E / 2: 172.000
- 174E / 3: 174.000
- 176E / 4: 176.000
- 178E / 5: 178.000
- 180E / 6: 180.000
- 178W / 7: 182.000
- 176W / 8: 184.000
- 174W / 9: 186.000
- 172W / 10: 188.000
- 170W / 11: 190.000
-
-list /i=1:33 smxy_xs, smxy_ys, smxy
- X: 0.5 to 33.5
- Column 1: SMXY_XS is IF ( SMXY_XS_POS GT 180 ) THEN (SMXY_XS_POS - 360) ELSE SMXY_XS_POS
- Column 2: SMXY_YS is XSEQUENCE(0.0 * X[GX=X_15] + 1.0 * Y[GY=Y_15])
- Column 3: SMXY is XSEQUENCE(SINX + COSYP70)
- SMXY_XS SMXY_YS SMXY
-1 / 1: 173.000 13.0000 0.243739
-2 / 2: 174.000 13.0000 0.226398
-3 / 3: 175.000 13.0000 0.209025
-4 / 4: 176.000 13.0000 0.191626
-5 / 5: 177.000 13.0000 0.174205
-6 / 6: 178.000 13.0000 0.156769
-7 / 7: 179.000 13.0000 0.139322
-8 / 8: 180.000 13.0000 0.121869
-9 / 9: -179.000 13.0000 0.104417
-10 / 10: -178.000 13.0000 0.086970
-11 / 11: -177.000 13.0000 0.069533
-12 / 12: -176.000 13.0000 0.052113
-13 / 13: -175.000 13.0000 0.034714
-14 / 14: -174.000 13.0000 0.017341
-15 / 15: -173.000 13.0000 0.000000
-16 / 16: 173.000 14.0000 0.226398
-17 / 17: 174.000 14.0000 0.209057
-18 / 18: 175.000 14.0000 0.191684
-19 / 19: 176.000 14.0000 0.174285
-20 / 20: 177.000 14.0000 0.156864
-21 / 21: 178.000 14.0000 0.139428
-22 / 22: 179.000 14.0000 0.121981
-23 / 23: 180.000 14.0000 0.104528
-24 / 24: -179.000 14.0000 0.087076
-25 / 25: -178.000 14.0000 0.069629
-26 / 26: -177.000 14.0000 0.052193
-27 / 27: -176.000 14.0000 0.034772
-28 / 28: -175.000 14.0000 0.017373
-29 / 29: -174.000 14.0000 0.000000
-30 / 30: -173.000 14.0000 -0.017341
-31 / 31: 173.000 15.0000 0.209025
-32 / 32: 174.000 15.0000 0.191684
-33 / 33: 175.000 15.0000 0.174311
-let xy_gauss_gridded = scat2gridgauss_xy(smxy_xs,smxy_ys,smxy,X[gx=x_11],Y[gy=y_11],1.0,1.0,1.0,0.0)
-list xy_gauss_gridded
- VARIABLE : SCAT2GRIDGAUSS_XY(SMXY_XS,SMXY_YS,SMXY,X[GX=X_11],Y[GY=Y_11],1.0,1.0,1.0,0.0)
- SUBSET : 11 by 11 points (LONGITUDE-LATITUDE)
- 170E 172E 174E 176E 178E 180E 178W 176W 174W 172W 170W
- 1 2 3 4 5 6 7 8 9 10 11
- 30N / 11: .... .... .... .... .... .... .... .... .... .... ....
- 28N / 10: .... 0.000000 -0.017348 -0.052117 -0.086972 -0.121869 -0.156767 -0.191621 -0.226391 -0.243739 ....
- 26N / 9: .... 0.017348 0.000000 -0.034770 -0.069624 -0.104522 -0.139419 -0.174274 -0.209043 -0.226391 ....
- 24N / 8: .... 0.052117 0.034770 0.000000 -0.034855 -0.069752 -0.104649 -0.139504 -0.174274 -0.191621 ....
- 22N / 7: .... 0.086972 0.069624 0.034855 0.000000 -0.034897 -0.069794 -0.104649 -0.139419 -0.156767 ....
- 20N / 6: .... 0.121869 0.104522 0.069752 0.034897 0.000000 -0.034897 -0.069752 -0.104522 -0.121869 ....
- 18N / 5: .... 0.156767 0.139419 0.104649 0.069794 0.034897 0.000000 -0.034855 -0.069624 -0.086972 ....
- 16N / 4: .... 0.191621 0.174274 0.139504 0.104649 0.069752 0.034855 0.000000 -0.034770 -0.052117 ....
- 14N / 3: .... 0.226391 0.209043 0.174274 0.139419 0.104522 0.069624 0.034770 0.000000 -0.017348 ....
- 12N / 2: .... 0.243739 0.226391 0.191621 0.156767 0.121869 0.086972 0.052117 0.017348 0.000000 ....
- 10N / 1: .... .... .... .... .... .... .... .... .... .... ....
-let xy_laplace_gridded = scat2gridlaplace_xy(smxy_xs,smxy_ys,smxy,X[gx=x_11],Y[gy=y_11],2.0,1)
-list xy_laplace_gridded
- VARIABLE : SCAT2GRIDLAPLACE_XY(SMXY_XS,SMXY_YS,SMXY,X[GX=X_11],Y[GY=Y_11],2.0,1)
- SUBSET : 11 by 11 points (LONGITUDE-LATITUDE)
- 170E 172E 174E 176E 178E 180E 178W 176W 174W 172W 170W
- 1 2 3 4 5 6 7 8 9 10 11
- 30N / 11: .... .... -0.057531 -0.086987 -0.119152 -0.153259 -0.187881 -0.221435 -0.252146 -0.279109 ....
- 28N / 10: .... 0.001469 -0.031719 -0.066314 -0.100631 -0.135459 -0.170322 -0.204898 -0.238648 -0.268796 -0.279109
- 26N / 9: .... 0.030054 0.001289 -0.034598 -0.069227 -0.104122 -0.139020 -0.173835 -0.208160 -0.238648 -0.252146
- 24N / 8: .... 0.062225 0.036296 -0.000330 -0.034822 -0.069721 -0.104621 -0.139444 -0.173835 -0.204898 -0.221435
- 22N / 7: .... 0.096660 0.071306 0.034440 0.000001 -0.034898 -0.069798 -0.104621 -0.139020 -0.170322 -0.187881
- 20N / 6: .... 0.131820 0.106170 0.069324 0.034901 0.000001 -0.034898 -0.069721 -0.104122 -0.135459 -0.153259
- 18N / 5: .... 0.166766 0.141022 0.104198 0.069800 0.034901 0.000001 -0.034822 -0.069227 -0.100631 -0.119152
- 16N / 4: .... 0.200738 0.175293 0.138438 0.104198 0.069324 0.034440 -0.000330 -0.034598 -0.066314 -0.086987
- 14N / 3: .... 0.233148 0.215255 0.175293 0.141022 0.106170 0.071306 0.036296 0.001289 -0.031719 -0.057531
- 12N / 2: .... .... 0.233148 0.200738 0.166766 0.131820 0.096660 0.062225 0.030054 0.001469 ....
- 10N / 1: .... .... .... .... .... .... .... .... .... .... ....
-
-list /i=1:33 smxz_xs, smxz_zs, smxz
- X: 0.5 to 33.5
- Column 1: SMXZ_XS is IF ( SMXZ_XS_POS GT 180 ) THEN (SMXZ_XS_POS - 360) ELSE SMXZ_XS_POS
- Column 2: SMXZ_ZS is XSEQUENCE(0.0 * X[GX=X_15] + 1.0 * Z[GZ=Z_15])
- Column 3: SMXZ is XSEQUENCE(SINX + LOGZP10)
- SMXZ_XS SMXZ_ZS SMXZ
-1 / 1: 173.000 15.0000 1.51981
-2 / 2: 174.000 15.0000 1.50247
-3 / 3: 175.000 15.0000 1.48510
-4 / 4: 176.000 15.0000 1.46770
-5 / 5: 177.000 15.0000 1.45028
-6 / 6: 178.000 15.0000 1.43284
-7 / 7: 179.000 15.0000 1.41539
-8 / 8: 180.000 15.0000 1.39794
-9 / 9: -179.000 15.0000 1.38049
-10 / 10: -178.000 15.0000 1.36304
-11 / 11: -177.000 15.0000 1.34560
-12 / 12: -176.000 15.0000 1.32818
-13 / 13: -175.000 15.0000 1.31078
-14 / 14: -174.000 15.0000 1.29341
-15 / 15: -173.000 15.0000 1.27607
-16 / 16: 173.000 20.0000 1.59899
-17 / 17: 174.000 20.0000 1.58165
-18 / 18: 175.000 20.0000 1.56428
-19 / 19: 176.000 20.0000 1.54688
-20 / 20: 177.000 20.0000 1.52946
-21 / 21: 178.000 20.0000 1.51202
-22 / 22: 179.000 20.0000 1.49457
-23 / 23: 180.000 20.0000 1.47712
-24 / 24: -179.000 20.0000 1.45967
-25 / 25: -178.000 20.0000 1.44222
-26 / 26: -177.000 20.0000 1.42479
-27 / 27: -176.000 20.0000 1.40736
-28 / 28: -175.000 20.0000 1.38997
-29 / 29: -174.000 20.0000 1.37259
-30 / 30: -173.000 20.0000 1.35525
-31 / 31: 173.000 25.0000 1.66594
-32 / 32: 174.000 25.0000 1.64860
-33 / 33: 175.000 25.0000 1.63122
-let xz_gauss_gridded = scat2gridgauss_xz(smxz_xs,smxz_zs,smxz,X[gx=x_11],Z[gz=z_11],1.0,5.0,1.0,0.0)
-list xz_gauss_gridded
- VARIABLE : SCAT2GRIDGAUSS_XZ(SMXZ_XS,SMXZ_ZS,SMXZ,X[GX=X_11],Z[GZ=Z_11],1.0,5.0,1.0,0.0)
- SUBSET : 11 by 11 points (LONGITUDE-DEPTH (m))
- 170E 172E 174E 176E 178E 180E 178W 176W 174W 172W 170W
- 1 2 3 4 5 6 7 8 9 10 11
- 0 / 1: .... .... .... .... .... .... .... .... .... .... ....
- 10 / 2: .... 1.51981 1.50246 1.46769 1.43284 1.39794 1.36304 1.32819 1.29342 1.27607 ....
- 20 / 3: .... 1.59640 1.57905 1.54428 1.50943 1.47453 1.43963 1.40478 1.37001 1.35266 ....
- 30 / 4: .... 1.72248 1.70513 1.67036 1.63551 1.60061 1.56571 1.53086 1.49609 1.47874 ....
- 40 / 5: .... 1.81991 1.80257 1.76780 1.73294 1.69804 1.66315 1.62829 1.59352 1.57618 ....
- 50 / 6: .... 1.89938 1.88203 1.84726 1.81241 1.77751 1.74261 1.70776 1.67299 1.65564 ....
- 60 / 7: .... 1.96650 1.94915 1.91438 1.87952 1.84463 1.80973 1.77488 1.74011 1.72276 ....
- 70 / 8: .... 2.02460 2.00725 1.97248 1.93763 1.90273 1.86783 1.83298 1.79821 1.78086 ....
- 80 / 9: .... 2.07583 2.05848 2.02371 1.98886 1.95396 1.91906 1.88421 1.84944 1.83209 ....
- 90 / 10: .... 2.09959 2.08225 2.04748 2.01262 1.97772 1.94283 1.90797 1.87320 1.85585 ....
- 100 / 11: .... .... .... .... .... .... .... .... .... .... ....
-let xz_laplace_gridded = scat2gridlaplace_xz(smxz_xs,smxz_zs,smxz,X[gx=x_11],Z[gz=z_11],2.0,1)
-list xz_laplace_gridded
- VARIABLE : SCAT2GRIDLAPLACE_XZ(SMXZ_XS,SMXZ_ZS,SMXZ,X[GX=X_11],Z[GZ=Z_11],2.0,1)
- SUBSET : 11 by 11 points (LONGITUDE-DEPTH (m))
- 170E 172E 174E 176E 178E 180E 178W 176W 174W 172W 170W
- 1 2 3 4 5 6 7 8 9 10 11
- 0 / 1: .... .... .... .... .... .... .... .... .... .... ....
- 10 / 2: .... .... 1.45967 1.43260 1.40123 1.36726 1.33267 1.29921 1.26926 1.24478 ....
- 20 / 3: .... 1.62568 1.56605 1.53557 1.49928 1.46429 1.42936 1.39419 1.35912 1.33376 1.35199
- 30 / 4: .... 1.73005 1.71421 1.67498 1.64062 1.60574 1.57082 1.53602 1.50175 1.46915 1.44866
- 40 / 5: .... 1.82542 1.80687 1.76803 1.73385 1.69895 1.66405 1.62922 1.59477 1.56211 1.53941
- 50 / 6: .... 1.90691 1.88519 1.84729 1.81306 1.77816 1.74326 1.70844 1.67399 1.64174 1.61939
- 60 / 7: .... 1.97533 1.95176 1.91432 1.88001 1.84511 1.81021 1.77539 1.74096 1.70894 1.68765
- 70 / 8: .... 2.03275 2.00991 1.97225 1.93796 1.90306 1.86816 1.83334 1.79890 1.76672 1.74494
- 80 / 9: .... 2.08017 2.06127 2.02279 1.98867 1.95377 1.91888 1.88407 1.84963 1.81693 1.79226
- 90 / 10: .... 2.11888 2.10181 2.06484 2.03087 1.99606 1.96125 1.92672 1.89288 1.86059 1.83186
- 100 / 11: .... .... 2.11777 2.08710 2.05439 2.02031 1.98599 1.95272 1.92201 1.89466 ....
-
-list /i=1:33 smxt_xs, smxt_ts, smxt
- X: 0.5 to 33.5
- Column 1: SMXT_XS is IF ( SMXT_XS_POS GT 180 ) THEN (SMXT_XS_POS - 360) ELSE SMXT_XS_POS
- Column 2: SMXT_TS is XSEQUENCE(0.0 * X[GX=X_15] + 1.0 * T[GT=T_16])
- Column 3: SMXT is XSEQUENCE(SINX + LOGTP50)
- SMXT_XS SMXT_TS SMXT
-1 / 1: 173.000 273.75 2.63208
-2 / 2: 174.000 273.75 2.61474
-3 / 3: 175.000 273.75 2.59737
-4 / 4: 176.000 273.75 2.57997
-5 / 5: 177.000 273.75 2.56255
-6 / 6: 178.000 273.75 2.54511
-7 / 7: 179.000 273.75 2.52766
-8 / 8: 180.000 273.75 2.51021
-9 / 9: -179.000 273.75 2.49276
-10 / 10: -178.000 273.75 2.47531
-11 / 11: -177.000 273.75 2.45787
-12 / 12: -176.000 273.75 2.44045
-13 / 13: -175.000 273.75 2.42305
-14 / 14: -174.000 273.75 2.40568
-15 / 15: -173.000 273.75 2.38834
-16 / 16: 173.000 821.25 3.06201
-17 / 17: 174.000 821.25 3.04467
-18 / 18: 175.000 821.25 3.02730
-19 / 19: 176.000 821.25 3.00990
-20 / 20: 177.000 821.25 2.99248
-21 / 21: 178.000 821.25 2.97504
-22 / 22: 179.000 821.25 2.95760
-23 / 23: 180.000 821.25 2.94014
-24 / 24: -179.000 821.25 2.92269
-25 / 25: -178.000 821.25 2.90524
-26 / 26: -177.000 821.25 2.88781
-27 / 27: -176.000 821.25 2.87039
-28 / 28: -175.000 821.25 2.85299
-29 / 29: -174.000 821.25 2.83561
-30 / 30: -173.000 821.25 2.81827
-31 / 31: 173.000 1368.75 3.27378
-32 / 32: 174.000 1368.75 3.25643
-33 / 33: 175.000 1368.75 3.23906
-let xt_gauss_gridded = scat2gridgauss_xt(smxt_xs,smxt_ts,smxt,X[gx=x_11],T[gt=t_12],1.0,436.8,1.0,0.0)
-list xt_gauss_gridded
- VARIABLE : SCAT2GRIDGAUSS_XT(SMXT_XS,SMXT_TS,SMXT,X[GX=X_11],T[GT=T_12],1.0,436.8,1.0,0.0)
- SUBSET : 11 by 12 points (LONGITUDE-TIME)
- 170E 172E 174E 176E 178E 180E 178W 176W 174W 172W 170W
- 1 2 3 4 5 6 7 8 9 10 11
- 16-JAN-1995 / 1: .... 2.63208 2.61473 2.57996 2.54511 2.51021 2.47531 2.44046 2.40569 2.38834 ....
- 15-FEB-1995 / 2: .... 3.16789 3.15055 3.11578 3.08092 3.04602 3.01113 2.97627 2.94150 2.92415 ....
- 18-MAR-1995 / 3: .... 3.41551 3.39816 3.36339 3.32854 3.29364 3.25874 3.22389 3.18912 3.17177 ....
- 17-APR-1995 / 4: .... 3.52219 3.50484 3.47007 3.43522 3.40032 3.36542 3.33057 3.29580 3.27845 ....
- 17-MAY-1995 / 5: .... 3.64350 3.62615 3.59138 3.55653 3.52163 3.48673 3.45188 3.41711 3.39976 ....
- 17-JUN-1995 / 6: .... 3.74057 3.72322 3.68845 3.65360 3.61870 3.58380 3.54895 3.51418 3.49683 ....
- 17-JUL-1995 / 7: .... 3.79431 3.77697 3.74220 3.70734 3.67244 3.63755 3.60269 3.56792 3.55057 ....
- 17-AUG-1995 / 8: .... 3.86367 3.84632 3.81155 3.77670 3.74180 3.70690 3.67205 3.63728 3.61993 ....
- 16-SEP-1995 / 9: .... 3.92439 3.90704 3.87227 3.83741 3.80252 3.76762 3.73277 3.69800 3.68065 ....
- 16-OCT-1995 / 10: .... 3.96032 3.94298 3.90821 3.87335 3.83846 3.80356 3.76870 3.73393 3.71659 ....
- 16-NOV-1995 / 11: .... 4.00893 3.99158 3.95681 3.92196 3.88706 3.85217 3.81731 3.78254 3.76519 ....
- 16-DEC-1995 / 12: .... 4.05314 4.03579 4.00102 3.96616 3.93127 3.89637 3.86152 3.82675 3.80940 ....
-let xt_laplace_gridded = scat2gridlaplace_xt(smxt_xs,smxt_ts,smxt,X[gx=x_11],T[gt=t_12],2.0,1)
-list xt_laplace_gridded
- VARIABLE : SCAT2GRIDLAPLACE_XT(SMXT_XS,SMXT_TS,SMXT,X[GX=X_11],T[GT=T_12],2.0,1)
- SUBSET : 11 by 12 points (LONGITUDE-TIME)
- 170E 172E 174E 176E 178E 180E 178W 176W 174W 172W 170W
- 1 2 3 4 5 6 7 8 9 10 11
- 16-JAN-1995 / 1: .... 2.80021 2.65506 2.64695 2.61209 2.57719 2.54229 2.50743 2.47319 2.46266 2.52519
- 15-FEB-1995 / 2: .... 3.11975 3.18472 3.13605 3.10119 3.06629 3.03139 2.99653 2.96230 2.92477 2.84506
- 18-MAR-1995 / 3: .... 3.36860 3.39079 3.34236 3.30750 3.27260 3.23770 3.20284 3.16860 3.13125 3.09408
- 17-APR-1995 / 4: .... 3.53416 3.52162 3.48422 3.44936 3.41446 3.37956 3.34470 3.31046 3.28049 3.25971
- 17-MAY-1995 / 5: .... 3.65364 3.63083 3.59310 3.55824 3.52333 3.48843 3.45357 3.41934 3.38914 3.37928
- 17-JUN-1995 / 6: .... 3.74421 3.71833 3.67938 3.64452 3.60962 3.57471 3.53986 3.50562 3.47462 3.46992
- 17-JUL-1995 / 7: .... 3.81408 3.78571 3.74978 3.71492 3.68002 3.64512 3.61026 3.57602 3.54703 3.53974
- 17-AUG-1995 / 8: .... 3.87631 3.84944 3.81217 3.77731 3.74241 3.70751 3.67265 3.63841 3.60850 3.60176
- 16-SEP-1995 / 9: .... 3.93114 3.90481 3.86643 3.83157 3.79667 3.76177 3.72691 3.69268 3.66199 3.65626
- 16-OCT-1995 / 10: .... 3.97707 3.94990 3.91341 3.87855 3.84364 3.80874 3.77388 3.73965 3.71017 3.70185
- 16-NOV-1995 / 11: .... 4.01929 3.99483 3.95714 3.92228 3.88737 3.85247 3.81761 3.78338 3.75307 3.74382
- 16-DEC-1995 / 12: .... 4.05753 4.03432 3.99551 3.96065 3.92574 3.89084 3.85598 3.82175 3.79068 3.78192
-
-list /j=1:33 smyz_ys, smyz_zs, smyz
- Y: 0.5 to 33.5
- Column 1: SMYZ_YS is YSEQUENCE(1.0 * Y[GY=Y_15] + 0.0 * Z[GZ=Z_15])
- Column 2: SMYZ_ZS is YSEQUENCE(0.0 * Y[GY=Y_15] + 1.0 * Z[GZ=Z_15])
- Column 3: SMYZ is YSEQUENCE(COSYP70 + LOGZP10)
- SMYZ_YS SMYZ_ZS SMYZ
-1 / 1: 13.0000 15.0000 1.51981
-2 / 2: 14.0000 15.0000 1.50247
-3 / 3: 15.0000 15.0000 1.48510
-4 / 4: 16.0000 15.0000 1.46770
-5 / 5: 17.0000 15.0000 1.45028
-6 / 6: 18.0000 15.0000 1.43284
-7 / 7: 19.0000 15.0000 1.41539
-8 / 8: 20.0000 15.0000 1.39794
-9 / 9: 21.0000 15.0000 1.38049
-10 / 10: 22.0000 15.0000 1.36304
-11 / 11: 23.0000 15.0000 1.34560
-12 / 12: 24.0000 15.0000 1.32818
-13 / 13: 25.0000 15.0000 1.31078
-14 / 14: 26.0000 15.0000 1.29341
-15 / 15: 27.0000 15.0000 1.27607
-16 / 16: 13.0000 20.0000 1.59899
-17 / 17: 14.0000 20.0000 1.58165
-18 / 18: 15.0000 20.0000 1.56428
-19 / 19: 16.0000 20.0000 1.54688
-20 / 20: 17.0000 20.0000 1.52946
-21 / 21: 18.0000 20.0000 1.51202
-22 / 22: 19.0000 20.0000 1.49457
-23 / 23: 20.0000 20.0000 1.47712
-24 / 24: 21.0000 20.0000 1.45967
-25 / 25: 22.0000 20.0000 1.44222
-26 / 26: 23.0000 20.0000 1.42479
-27 / 27: 24.0000 20.0000 1.40736
-28 / 28: 25.0000 20.0000 1.38997
-29 / 29: 26.0000 20.0000 1.37259
-30 / 30: 27.0000 20.0000 1.35525
-31 / 31: 13.0000 25.0000 1.66594
-32 / 32: 14.0000 25.0000 1.64860
-33 / 33: 15.0000 25.0000 1.63122
-let yz_gauss_gridded = scat2gridgauss_yz(smyz_ys,smyz_zs,smyz,Y[gy=y_11],Z[gz=z_11],1.0,5.0,1.0,0.0)
-list yz_gauss_gridded
- VARIABLE : SCAT2GRIDGAUSS_YZ(SMYZ_YS,SMYZ_ZS,SMYZ,Y[GY=Y_11],Z[GZ=Z_11],1.0,5.0,1.0,0.0)
- SUBSET : 11 by 11 points (LATITUDE-DEPTH (m))
- 10N 12N 14N 16N 18N 20N 22N 24N 26N 28N 30N
- 1 2 3 4 5 6 7 8 9 10 11
- 0 / 1: .... .... .... .... .... .... .... .... .... .... ....
- 10 / 2: .... 1.51981 1.50246 1.46769 1.43284 1.39794 1.36304 1.32819 1.29342 1.27607 ....
- 20 / 3: .... 1.59640 1.57905 1.54428 1.50943 1.47453 1.43963 1.40478 1.37001 1.35266 ....
- 30 / 4: .... 1.72248 1.70513 1.67036 1.63551 1.60061 1.56571 1.53086 1.49609 1.47874 ....
- 40 / 5: .... 1.81991 1.80257 1.76780 1.73294 1.69804 1.66315 1.62829 1.59352 1.57618 ....
- 50 / 6: .... 1.89938 1.88203 1.84726 1.81241 1.77751 1.74261 1.70776 1.67299 1.65564 ....
- 60 / 7: .... 1.96650 1.94915 1.91438 1.87952 1.84463 1.80973 1.77488 1.74011 1.72276 ....
- 70 / 8: .... 2.02460 2.00725 1.97248 1.93763 1.90273 1.86783 1.83298 1.79821 1.78086 ....
- 80 / 9: .... 2.07583 2.05848 2.02371 1.98886 1.95396 1.91906 1.88421 1.84944 1.83209 ....
- 90 / 10: .... 2.09959 2.08225 2.04748 2.01262 1.97772 1.94283 1.90797 1.87320 1.85585 ....
- 100 / 11: .... .... .... .... .... .... .... .... .... .... ....
-let yz_laplace_gridded = scat2gridlaplace_yz(smyz_ys,smyz_zs,smyz,Y[gy=y_11],Z[gz=z_11],2.0,1)
-list yz_laplace_gridded
- VARIABLE : SCAT2GRIDLAPLACE_YZ(SMYZ_YS,SMYZ_ZS,SMYZ,Y[GY=Y_11],Z[GZ=Z_11],2.0,1)
- SUBSET : 11 by 11 points (LATITUDE-DEPTH (m))
- 10N 12N 14N 16N 18N 20N 22N 24N 26N 28N 30N
- 1 2 3 4 5 6 7 8 9 10 11
- 0 / 1: .... .... .... .... .... .... .... .... .... .... ....
- 10 / 2: .... .... 1.45967 1.43260 1.40123 1.36726 1.33267 1.29921 1.26926 1.24478 ....
- 20 / 3: .... 1.62568 1.56605 1.53557 1.49928 1.46429 1.42936 1.39419 1.35912 1.33376 1.35199
- 30 / 4: .... 1.73005 1.71421 1.67498 1.64062 1.60574 1.57082 1.53602 1.50175 1.46915 1.44866
- 40 / 5: .... 1.82542 1.80687 1.76803 1.73385 1.69895 1.66405 1.62922 1.59477 1.56211 1.53941
- 50 / 6: .... 1.90691 1.88519 1.84729 1.81306 1.77816 1.74326 1.70844 1.67399 1.64174 1.61939
- 60 / 7: .... 1.97533 1.95176 1.91432 1.88001 1.84511 1.81021 1.77539 1.74096 1.70894 1.68765
- 70 / 8: .... 2.03275 2.00991 1.97225 1.93796 1.90306 1.86816 1.83334 1.79890 1.76672 1.74494
- 80 / 9: .... 2.08017 2.06127 2.02279 1.98867 1.95377 1.91888 1.88407 1.84963 1.81693 1.79226
- 90 / 10: .... 2.11888 2.10181 2.06484 2.03087 1.99606 1.96125 1.92672 1.89288 1.86059 1.83186
- 100 / 11: .... .... 2.11777 2.08710 2.05439 2.02031 1.98599 1.95272 1.92201 1.89466 ....
-
-list /j=1:33 smyt_ys, smyt_ts, smyt
- Y: 0.5 to 33.5
- Column 1: SMYT_YS is YSEQUENCE(1.0 * Y[GY=Y_15] + 0.0 * T[GT=T_16])
- Column 2: SMYT_TS is YSEQUENCE(0.0 * Y[GY=Y_15] + 1.0 * T[GT=T_16])
- Column 3: SMYT is YSEQUENCE(COSYP70 + LOGTP50)
- SMYT_YS SMYT_TS SMYT
-1 / 1: 13.0000 273.75 2.63208
-2 / 2: 14.0000 273.75 2.61474
-3 / 3: 15.0000 273.75 2.59737
-4 / 4: 16.0000 273.75 2.57997
-5 / 5: 17.0000 273.75 2.56255
-6 / 6: 18.0000 273.75 2.54511
-7 / 7: 19.0000 273.75 2.52766
-8 / 8: 20.0000 273.75 2.51021
-9 / 9: 21.0000 273.75 2.49276
-10 / 10: 22.0000 273.75 2.47531
-11 / 11: 23.0000 273.75 2.45787
-12 / 12: 24.0000 273.75 2.44045
-13 / 13: 25.0000 273.75 2.42305
-14 / 14: 26.0000 273.75 2.40568
-15 / 15: 27.0000 273.75 2.38834
-16 / 16: 13.0000 821.25 3.06201
-17 / 17: 14.0000 821.25 3.04467
-18 / 18: 15.0000 821.25 3.02730
-19 / 19: 16.0000 821.25 3.00990
-20 / 20: 17.0000 821.25 2.99248
-21 / 21: 18.0000 821.25 2.97504
-22 / 22: 19.0000 821.25 2.95760
-23 / 23: 20.0000 821.25 2.94014
-24 / 24: 21.0000 821.25 2.92269
-25 / 25: 22.0000 821.25 2.90524
-26 / 26: 23.0000 821.25 2.88781
-27 / 27: 24.0000 821.25 2.87039
-28 / 28: 25.0000 821.25 2.85299
-29 / 29: 26.0000 821.25 2.83561
-30 / 30: 27.0000 821.25 2.81827
-31 / 31: 13.0000 1368.75 3.27378
-32 / 32: 14.0000 1368.75 3.25643
-33 / 33: 15.0000 1368.75 3.23906
-let yt_gauss_gridded = scat2gridgauss_yt(smyt_ys,smyt_ts,smyt,Y[gy=y_11],T[gt=t_12],1.0,436.8,1.0,0.0)
-list yt_gauss_gridded
- VARIABLE : SCAT2GRIDGAUSS_YT(SMYT_YS,SMYT_TS,SMYT,Y[GY=Y_11],T[GT=T_12],1.0,436.8,1.0,0.0)
- SUBSET : 11 by 12 points (LATITUDE-TIME)
- 10N 12N 14N 16N 18N 20N 22N 24N 26N 28N 30N
- 1 2 3 4 5 6 7 8 9 10 11
- 16-JAN-1995 / 1: .... 2.63208 2.61473 2.57996 2.54511 2.51021 2.47531 2.44046 2.40569 2.38834 ....
- 15-FEB-1995 / 2: .... 3.16789 3.15055 3.11578 3.08092 3.04602 3.01113 2.97627 2.94150 2.92415 ....
- 18-MAR-1995 / 3: .... 3.41551 3.39816 3.36339 3.32854 3.29364 3.25874 3.22389 3.18912 3.17177 ....
- 17-APR-1995 / 4: .... 3.52219 3.50484 3.47007 3.43522 3.40032 3.36542 3.33057 3.29580 3.27845 ....
- 17-MAY-1995 / 5: .... 3.64350 3.62615 3.59138 3.55653 3.52163 3.48673 3.45188 3.41711 3.39976 ....
- 17-JUN-1995 / 6: .... 3.74057 3.72322 3.68845 3.65360 3.61870 3.58380 3.54895 3.51418 3.49683 ....
- 17-JUL-1995 / 7: .... 3.79431 3.77697 3.74220 3.70734 3.67244 3.63755 3.60269 3.56792 3.55057 ....
- 17-AUG-1995 / 8: .... 3.86367 3.84632 3.81155 3.77670 3.74180 3.70690 3.67205 3.63728 3.61993 ....
- 16-SEP-1995 / 9: .... 3.92439 3.90704 3.87227 3.83741 3.80252 3.76762 3.73277 3.69800 3.68065 ....
- 16-OCT-1995 / 10: .... 3.96032 3.94298 3.90821 3.87335 3.83846 3.80356 3.76870 3.73393 3.71659 ....
- 16-NOV-1995 / 11: .... 4.00893 3.99158 3.95681 3.92196 3.88706 3.85217 3.81731 3.78254 3.76519 ....
- 16-DEC-1995 / 12: .... 4.05314 4.03579 4.00102 3.96616 3.93127 3.89637 3.86152 3.82675 3.80940 ....
-let yt_laplace_gridded = scat2gridlaplace_yt(smyt_ys,smyt_ts,smyt,Y[gy=y_11],T[gt=t_12],2.0,1)
-list yt_laplace_gridded
- VARIABLE : SCAT2GRIDLAPLACE_YT(SMYT_YS,SMYT_TS,SMYT,Y[GY=Y_11],T[GT=T_12],2.0,1)
- SUBSET : 11 by 12 points (LATITUDE-TIME)
- 10N 12N 14N 16N 18N 20N 22N 24N 26N 28N 30N
- 1 2 3 4 5 6 7 8 9 10 11
- 16-JAN-1995 / 1: .... 2.80021 2.65506 2.64695 2.61209 2.57719 2.54229 2.50743 2.47319 2.46266 2.52519
- 15-FEB-1995 / 2: .... 3.11975 3.18472 3.13605 3.10119 3.06629 3.03139 2.99653 2.96230 2.92477 2.84506
- 18-MAR-1995 / 3: .... 3.36860 3.39079 3.34236 3.30750 3.27260 3.23770 3.20284 3.16860 3.13125 3.09408
- 17-APR-1995 / 4: .... 3.53416 3.52162 3.48422 3.44936 3.41446 3.37956 3.34470 3.31046 3.28049 3.25971
- 17-MAY-1995 / 5: .... 3.65364 3.63083 3.59310 3.55824 3.52333 3.48843 3.45357 3.41934 3.38914 3.37928
- 17-JUN-1995 / 6: .... 3.74421 3.71833 3.67938 3.64452 3.60962 3.57471 3.53986 3.50562 3.47462 3.46992
- 17-JUL-1995 / 7: .... 3.81408 3.78571 3.74978 3.71492 3.68002 3.64512 3.61026 3.57602 3.54703 3.53974
- 17-AUG-1995 / 8: .... 3.87631 3.84944 3.81217 3.77731 3.74241 3.70751 3.67265 3.63841 3.60850 3.60176
- 16-SEP-1995 / 9: .... 3.93114 3.90481 3.86643 3.83157 3.79667 3.76177 3.72691 3.69268 3.66199 3.65626
- 16-OCT-1995 / 10: .... 3.97707 3.94990 3.91341 3.87855 3.84364 3.80874 3.77388 3.73965 3.71017 3.70185
- 16-NOV-1995 / 11: .... 4.01929 3.99483 3.95714 3.92228 3.88737 3.85247 3.81761 3.78338 3.75307 3.74382
- 16-DEC-1995 / 12: .... 4.05753 4.03432 3.99551 3.96065 3.92574 3.89084 3.85598 3.82175 3.79068 3.78192
-
-list /k=1:33 smzt_zs, smzt_ts, smzt
- Z: 0.5 to 33.5
- Column 1: SMZT_ZS is ZSEQUENCE(1.0 * Z[GZ=Z_15] + 0.0 * T[GT=T_16])
- Column 2: SMZT_TS is ZSEQUENCE(0.0 * Z[GZ=Z_15] + 1.0 * T[GT=T_16])
- Column 3: SMZT is ZSEQUENCE(LOGZP10 + LOGTP50)
- SMZT_ZS SMZT_TS SMZT
-1 / 1: 15.0000 273.75 3.90815
-2 / 2: 20.0000 273.75 3.98733
-3 / 3: 25.0000 273.75 4.05428
-4 / 4: 30.0000 273.75 4.11227
-5 / 5: 35.0000 273.75 4.16342
-6 / 6: 40.0000 273.75 4.20918
-7 / 7: 45.0000 273.75 4.25057
-8 / 8: 50.0000 273.75 4.28836
-9 / 9: 55.0000 273.75 4.32312
-10 / 10: 60.0000 273.75 4.35531
-11 / 11: 65.0000 273.75 4.38527
-12 / 12: 70.0000 273.75 4.41330
-13 / 13: 75.0000 273.75 4.43963
-14 / 14: 80.0000 273.75 4.46445
-15 / 15: 85.0000 273.75 4.48793
-16 / 16: 15.0000 821.25 4.33808
-17 / 17: 20.0000 821.25 4.41726
-18 / 18: 25.0000 821.25 4.48421
-19 / 19: 30.0000 821.25 4.54220
-20 / 20: 35.0000 821.25 4.59336
-21 / 21: 40.0000 821.25 4.63911
-22 / 22: 45.0000 821.25 4.68051
-23 / 23: 50.0000 821.25 4.71829
-24 / 24: 55.0000 821.25 4.75306
-25 / 25: 60.0000 821.25 4.78524
-26 / 26: 65.0000 821.25 4.81520
-27 / 27: 70.0000 821.25 4.84323
-28 / 28: 75.0000 821.25 4.86956
-29 / 29: 80.0000 821.25 4.89439
-30 / 30: 85.0000 821.25 4.91787
-31 / 31: 15.0000 1368.75 4.54985
-32 / 32: 20.0000 1368.75 4.62903
-33 / 33: 25.0000 1368.75 4.69597
-let zt_gauss_gridded = scat2gridgauss_zt(smzt_zs,smzt_ts,smzt,Z[gz=z_11],T[gt=t_12],5.0,436.8,1.0,0.0)
-list zt_gauss_gridded
- VARIABLE : SCAT2GRIDGAUSS_ZT(SMZT_ZS,SMZT_TS,SMZT,Z[GZ=Z_11],T[GT=T_12],5.0,436.8,1.0,0.0)
- SUBSET : 11 by 12 points (DEPTH (m)-TIME)
- 0 10 20 30 40 50 60 70 80 90 100
- 1 2 3 4 5 6 7 8 9 10 11
- 16-JAN-1995 / 1: .... 3.90815 3.98474 4.11082 4.20825 4.28772 4.35484 4.41294 4.46417 4.48793 ....
- 15-FEB-1995 / 2: .... 4.44396 4.52055 4.64663 4.74407 4.82353 4.89065 4.94875 4.99998 5.02375 ....
- 18-MAR-1995 / 3: .... 4.69158 4.76817 4.89425 4.99168 5.07115 5.13827 5.19637 5.24760 5.27136 ....
- 17-APR-1995 / 4: .... 4.79826 4.87485 5.00093 5.09837 5.17783 5.24495 5.30305 5.35428 5.37805 ....
- 17-MAY-1995 / 5: .... 4.91957 4.99616 5.12224 5.21967 5.29914 5.36626 5.42436 5.47559 5.49935 ....
- 17-JUN-1995 / 6: .... 5.01664 5.09323 5.21931 5.31675 5.39621 5.46333 5.52143 5.57266 5.59643 ....
- 17-JUL-1995 / 7: .... 5.07038 5.14697 5.27305 5.37049 5.44995 5.51707 5.57517 5.62640 5.65017 ....
- 17-AUG-1995 / 8: .... 5.13974 5.21633 5.34241 5.43984 5.51931 5.58643 5.64453 5.69576 5.71952 ....
- 16-SEP-1995 / 9: .... 5.20046 5.27705 5.40313 5.50056 5.58003 5.64714 5.70525 5.75648 5.78024 ....
- 16-OCT-1995 / 10: .... 5.23640 5.31298 5.43907 5.53650 5.61597 5.68308 5.74119 5.79241 5.81618 ....
- 16-NOV-1995 / 11: .... 5.28500 5.36159 5.48767 5.58511 5.66457 5.73169 5.78979 5.84102 5.86479 ....
- 16-DEC-1995 / 12: .... 5.32921 5.40580 5.53188 5.62931 5.70878 5.77589 5.83400 5.88523 5.90899 ....
-let zt_laplace_gridded = scat2gridlaplace_zt(smzt_zs,smzt_ts,smzt,Z[gz=z_11],T[gt=t_12],2.0,1)
-list zt_laplace_gridded
- VARIABLE : SCAT2GRIDLAPLACE_ZT(SMZT_ZS,SMZT_TS,SMZT,Z[GZ=Z_11],T[GT=T_12],2.0,1)
- SUBSET : 11 by 12 points (DEPTH (m)-TIME)
- 0 10 20 30 40 50 60 70 80 90 100
- 1 2 3 4 5 6 7 8 9 10 11
- 16-JAN-1995 / 1: .... 4.01260 4.01103 4.18210 4.27779 4.35640 4.42302 4.48082 4.53115 4.59056 4.66549
- 15-FEB-1995 / 2: .... 4.33307 4.54051 4.67120 4.76690 4.84550 4.91213 4.96992 5.02025 5.05263 4.98503
- 18-MAR-1995 / 3: .... 4.58238 4.74650 4.87751 4.97320 5.05181 5.11843 5.17623 5.22656 5.25909 5.23387
- 17-APR-1995 / 4: .... 4.74816 4.87728 5.01937 5.11506 5.19367 5.26030 5.31809 5.36842 5.40831 5.39943
- 17-MAY-1995 / 5: .... 4.86788 4.98645 5.12825 5.22394 5.30254 5.36917 5.42697 5.47730 5.51696 5.51891
- 17-JUN-1995 / 6: .... 4.95864 5.07392 5.21453 5.31022 5.38882 5.45545 5.51325 5.56358 5.60243 5.60948
- 17-JUL-1995 / 7: .... 5.02839 5.14132 5.28493 5.38062 5.45923 5.52585 5.58365 5.63398 5.67485 5.67935
- 17-AUG-1995 / 8: .... 5.09002 5.20515 5.34732 5.44301 5.52162 5.58824 5.64604 5.69637 5.73635 5.74158
- 16-SEP-1995 / 9: .... 5.14392 5.26070 5.40159 5.49728 5.57588 5.64251 5.70031 5.75064 5.78987 5.79641
- 16-OCT-1995 / 10: .... 5.18891 5.30597 5.44856 5.54425 5.62285 5.68948 5.74728 5.79761 5.83810 5.84235
- 16-NOV-1995 / 11: .... 5.23042 5.35103 5.49229 5.58798 5.66658 5.73321 5.79101 5.84134 5.88103 5.88458
- 16-DEC-1995 / 12: .... 5.26827 5.39059 5.53066 5.62635 5.70495 5.77158 5.82938 5.87971 5.91865 5.92282
-
-can mem /all
-can var /all
-can axis t_12
-can axis z_11
-can axis y_11
-can axis x_11
-can axis t_16
-can axis z_15
-can axis y_15
-can axis x_15
-
-
-GO bn_reset
-cancel mode verify
-go bn_scat2gridlaplace_tarasoff
-! bn_scat2gridlaplace_tarasoff
-! check for error reported by Lev Tarasoff 5/10/2006
-! trac ticket #1412
-! tests modulo of the X axis in the scat2gridlaplace_xy function
-
-let xlnb = { -4.06, -5.07, -3.77, -3.02, 0.83, 0.31, 1.02, 0.33, -1.35, -2.54, \
- -3.75, -5.48, -5.25, 2.98, 3.50, 36.15, 29.40, 19.45, 19.00}
-let ylt = { 52.47, 51.66, 51.58, 51.35, 51.70, 51.46, 51.07, 50.84, 50.80, 50.62, \
- 50.39, 50.13, 56.07, 55.02, 52.50, 69.10, 70.09, 70.15, 69.80}
-let wgt = {0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.03,0.02,0.00,1.34,1.17,0.22,0.49}
-
-def axis/x=12.5w:119.5e/npoints=133/units=deg/modulo xlonef
-def axis/y=47.25N:83.25n/npoints=73/units=deg ylatef
-
-let xln = if xlnb lt 0. then xlnb+360. else xlnb
-let wgtl = scat2gridlaplace_xy(xln,ylt, wgt, x[gx=xlonef], y[gy=ylatef], 2., 1)
-
-show grid wgtl
- GRID (G017)
- name axis # pts start end
- XLONEF LONGITUDE 133mr 12.5W 119.5E(479.5)
- YLATEF LATITUDE 73 r 47.25N 83.25N
- normal Z
- normal T
- normal E
- normal F
-load wgtl
-! shade wgtl ! Result is shifted in X:
-! data shows up at 70e that should be at 35e
-
-! the folowing are listed /order=yx so no data will be skipped
-
-! the following should show three regions of data
-list /order=yx wgtl[X=15E:40E,Y=68N:72N]
- VARIABLE : SCAT2GRIDLAPLACE_XY(XLN,YLT, WGT, X[GX=XLONEF], Y[GY=YLATEF], 2., 1)
- SUBSET : 8 by 25 points (LATITUDE-LONGITUDE)
- 68.25N 68.75N 69.25N 69.75N 70.25N 70.75N 71.25N 71.75N
- 43 44 45 46 47 48 49 50
- 15.5E / -105: .... .... .... .... .... .... .... ....
- 16.5E / -104: .... .... .... .... .... .... .... ....
- 17.5E / -103: .... .... .... .... .... .... .... ....
- 18.5E / -102: .... .... .... 0.45146 0.25859 .... .... ....
- 19.5E / -101: .... .... 0.67000 0.52258 0.17310 0.04000 .... ....
- 20.5E / -100: .... .... .... 0.45141 0.25856 .... .... ....
- 21.5E / -99: .... .... .... .... .... .... .... ....
- 22.5E / -98: .... .... .... .... .... .... .... ....
- 23.5E / -97: .... .... .... .... .... .... .... ....
- 24.5E / -96: .... .... .... .... .... .... .... ....
- 25.5E / -95: .... .... .... .... .... .... .... ....
- 26.5E / -94: .... .... .... .... .... .... .... ....
- 27.5E / -93: .... .... .... .... .... .... .... ....
- 28.5E / -92: .... .... .... .... 1.17000 .... .... ....
- 29.5E / -91: .... .... .... 1.17000 1.17000 1.17000 .... ....
- 30.5E / -90: .... .... .... .... 1.17000 .... .... ....
- 31.5E / -89: .... .... .... .... .... .... .... ....
- 32.5E / -88: .... .... .... .... .... .... .... ....
- 33.5E / -87: .... .... .... .... .... .... .... ....
- 34.5E / -86: .... .... .... .... .... .... .... ....
- 35.5E / -85: .... .... 1.34000 .... .... .... .... ....
- 36.5E / -84: .... 1.34000 1.34000 1.34000 .... .... .... ....
- 37.5E / -83: .... .... 1.34000 .... .... .... .... ....
- 38.5E / -82: .... .... .... .... .... .... .... ....
- 39.5E / -81: .... .... .... .... .... .... .... ....
-! the following should completely undefined
-list /order=yx wgtl[X=55E:80E,Y=68N:72N]
- VARIABLE : SCAT2GRIDLAPLACE_XY(XLN,YLT, WGT, X[GX=XLONEF], Y[GY=YLATEF], 2., 1)
- SUBSET : 8 by 25 points (LATITUDE-LONGITUDE)
- 68N 69N 69N 70N 70N 71N 71N 72N
- 43 44 45 46 47 48 49 50
- 55.5E / -65:................................
- 56.5E / -64:................................
- 57.5E / -63:................................
- 58.5E / -62:................................
- 59.5E / -61:................................
- 60.5E / -60:................................
- 61.5E / -59:................................
- 62.5E / -58:................................
- 63.5E / -57:................................
- 64.5E / -56:................................
- 65.5E / -55:................................
- 66.5E / -54:................................
- 67.5E / -53:................................
- 68.5E / -52:................................
- 69.5E / -51:................................
- 70.5E / -50:................................
- 71.5E / -49:................................
- 72.5E / -48:................................
- 73.5E / -47:................................
- 74.5E / -46:................................
- 75.5E / -45:................................
- 76.5E / -44:................................
- 77.5E / -43:................................
- 78.5E / -42:................................
- 79.5E / -41:................................
-
-cancel data /all
-cancel var /all
-cancel axis xlonef
-cancel axis ylatef
-
-GO bn_reset
-cancel mode verify
-go bn_scat2grid_nobs
-! bn_scat2grid_nobs.jnl
-! test of scat2grid_nobs functions,
-! listing the results which can be checked against input
-
-define axis/x=173:187/unit=degrees_east/npoints=15 x_15
-define axis/y=13:27/unit=degrees_north/npoints=15 y_15
-define axis/t=0:8760/unit=hours/t0="01-JAN-1995 00:00:00"/edges/npoints=16 t_16
-
-let sinx = sin(X[gx=x_15] * 3.14159265 / 180.0)
-let cosyp70 = cos((Y[gy=y_15] + 70.0) * 3.14159265 / 180.0)
-let logtp50 = log(T[gt=t_16] + 50.0)
-
-let smxy = xsequence(sinx + cosyp70)
-let smxy_xs_pos = xsequence(1.0 * X[gx=x_15] + 0.0 * Y[gy=y_15])
-let smxy_xs = if ( smxy_xs_pos gt 180 ) then (smxy_xs_pos - 360) else smxy_xs_pos
-let smxy_ys = xsequence(0.0 * X[gx=x_15] + 1.0 * Y[gy=y_15])
-
-let smxyt = xsequence(sinx + cosyp70 + logtp50)
-let smxyt_xs_pos = xsequence(1.0 * X[gx=x_15] + 0.0 * Y[gy=y_15] + 0.0 * T[gt=t_16])
-let smxyt_xs = if ( smxyt_xs_pos gt 180 ) then (smxyt_xs_pos - 360) else smxyt_xs_pos
-let smxyt_ys = xsequence(0.0 * X[gx=x_15] + 1.0 * Y[gy=y_15] + 0.0 * T[gt=t_16])
-let smxyt_ts = xsequence(0.0 * X[gx=x_15] + 0.0 * Y[gy=y_15] + 1.0 * T[gt=t_16])
-
-define axis/x=170:190/unit=degrees_east/npoints=11 x_11
-define axis/y=10:30/units=degrees_north/npoints=11 y_11
-define axis/t=0:8760/unit=hours/t0="01-JAN-1995 00:00:00"/edges/npoints=12 t_12
-
-list X[gx=x_11]
- VARIABLE : X
- axis X_11
- SUBSET : 11 points (LONGITUDE)
- 170E / 1: 170.000
- 172E / 2: 172.000
- 174E / 3: 174.000
- 176E / 4: 176.000
- 178E / 5: 178.000
- 180E / 6: 180.000
- 178W / 7: 182.000
- 176W / 8: 184.000
- 174W / 9: 186.000
- 172W / 10: 188.000
- 170W / 11: 190.000
-
-list /i=1:33 smxy_xs, smxy_ys, smxy
- X: 0.5 to 33.5
- Column 1: SMXY_XS is IF ( SMXY_XS_POS GT 180 ) THEN (SMXY_XS_POS - 360) ELSE SMXY_XS_POS
- Column 2: SMXY_YS is XSEQUENCE(0.0 * X[GX=X_15] + 1.0 * Y[GY=Y_15])
- Column 3: SMXY is XSEQUENCE(SINX + COSYP70)
- SMXY_XS SMXY_YS SMXY
-1 / 1: 173.000 13.0000 0.243739
-2 / 2: 174.000 13.0000 0.226398
-3 / 3: 175.000 13.0000 0.209025
-4 / 4: 176.000 13.0000 0.191626
-5 / 5: 177.000 13.0000 0.174205
-6 / 6: 178.000 13.0000 0.156769
-7 / 7: 179.000 13.0000 0.139322
-8 / 8: 180.000 13.0000 0.121869
-9 / 9: -179.000 13.0000 0.104417
-10 / 10: -178.000 13.0000 0.086970
-11 / 11: -177.000 13.0000 0.069533
-12 / 12: -176.000 13.0000 0.052113
-13 / 13: -175.000 13.0000 0.034714
-14 / 14: -174.000 13.0000 0.017341
-15 / 15: -173.000 13.0000 0.000000
-16 / 16: 173.000 14.0000 0.226398
-17 / 17: 174.000 14.0000 0.209057
-18 / 18: 175.000 14.0000 0.191684
-19 / 19: 176.000 14.0000 0.174285
-20 / 20: 177.000 14.0000 0.156864
-21 / 21: 178.000 14.0000 0.139428
-22 / 22: 179.000 14.0000 0.121981
-23 / 23: 180.000 14.0000 0.104528
-24 / 24: -179.000 14.0000 0.087076
-25 / 25: -178.000 14.0000 0.069629
-26 / 26: -177.000 14.0000 0.052193
-27 / 27: -176.000 14.0000 0.034772
-28 / 28: -175.000 14.0000 0.017373
-29 / 29: -174.000 14.0000 0.000000
-30 / 30: -173.000 14.0000 -0.017341
-31 / 31: 173.000 15.0000 0.209025
-32 / 32: 174.000 15.0000 0.191684
-33 / 33: 175.000 15.0000 0.174311
-let xy_nobs = scat2grid_nobs_xy(smxy_xs, smxy_ys, X[gx=x_11], Y[gy=y_11])
-list xy_nobs
- VARIABLE : SCAT2GRID_NOBS_XY(SMXY_XS, SMXY_YS, X[GX=X_11], Y[GY=Y_11])
- SUBSET : 11 by 11 points (LONGITUDE-LATITUDE)
- 170E 172E 174E 176E 178E 180E 178W 176W 174W 172W 170W
- 1 2 3 4 5 6 7 8 9 10 11
- 30N / 11: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 28N / 10: 0.00000 0.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 1.00000 0.00000
- 26N / 9: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 24N / 8: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 22N / 7: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 20N / 6: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 18N / 5: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 16N / 4: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 14N / 3: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 12N / 2: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 10N / 1: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
-
-list /i=1:33 smxyt_xs, smxyt_ys, smxyt_ts, smxyt
- X: 0.5 to 33.5
- Column 1: SMXYT_XS is IF ( SMXYT_XS_POS GT 180 ) THEN (SMXYT_XS_POS - 360) ELSE SMXYT_XS_POS
- Column 2: SMXYT_YS is XSEQUENCE(0.0 * X[GX=X_15] + 1.0 * Y[GY=Y_15] + 0.0 * T[GT=T_16])
- Column 3: SMXYT_TS is XSEQUENCE(0.0 * X[GX=X_15] + 0.0 * Y[GY=Y_15] + 1.0 * T[GT=T_16])
- Column 4: SMXYT is XSEQUENCE(SINX + COSYP70 + LOGTP50)
- SMXYT_XS SMXYT_YS SMXYT_TS SMXYT
-1 / 1: 173.000 13.0000 273.750 2.75395
-2 / 2: 174.000 13.0000 273.750 2.73661
-3 / 3: 175.000 13.0000 273.750 2.71923
-4 / 4: 176.000 13.0000 273.750 2.70184
-5 / 5: 177.000 13.0000 273.750 2.68442
-6 / 6: 178.000 13.0000 273.750 2.66698
-7 / 7: 179.000 13.0000 273.750 2.64953
-8 / 8: 180.000 13.0000 273.750 2.63208
-9 / 9: -179.000 13.0000 273.750 2.61463
-10 / 10: -178.000 13.0000 273.750 2.59718
-11 / 11: -177.000 13.0000 273.750 2.57974
-12 / 12: -176.000 13.0000 273.750 2.56232
-13 / 13: -175.000 13.0000 273.750 2.54492
-14 / 14: -174.000 13.0000 273.750 2.52755
-15 / 15: -173.000 13.0000 273.750 2.51021
-16 / 16: 173.000 14.0000 273.750 2.73661
-17 / 17: 174.000 14.0000 273.750 2.71927
-18 / 18: 175.000 14.0000 273.750 2.70189
-19 / 19: 176.000 14.0000 273.750 2.68449
-20 / 20: 177.000 14.0000 273.750 2.66707
-21 / 21: 178.000 14.0000 273.750 2.64964
-22 / 22: 179.000 14.0000 273.750 2.63219
-23 / 23: 180.000 14.0000 273.750 2.61474
-24 / 24: -179.000 14.0000 273.750 2.59729
-25 / 25: -178.000 14.0000 273.750 2.57984
-26 / 26: -177.000 14.0000 273.750 2.56240
-27 / 27: -176.000 14.0000 273.750 2.54498
-28 / 28: -175.000 14.0000 273.750 2.52758
-29 / 29: -174.000 14.0000 273.750 2.51021
-30 / 30: -173.000 14.0000 273.750 2.49287
-31 / 31: 173.000 15.0000 273.750 2.71923
-32 / 32: 174.000 15.0000 273.750 2.70189
-33 / 33: 175.000 15.0000 273.750 2.68452
-let xyt_nobs = scat2grid_nobs_xyt(smxyt_xs, smxyt_ys, smxyt_ts, X[gx=x_11], Y[gy=y_11], T[gt=t_12])
-list xyt_nobs
- VARIABLE : SCAT2GRID_NOBS_XYT(SMXYT_XS, SMXYT_YS, SMXYT_TS, X[GX=X_11], Y[GY=Y_11], T[GT=T_12])
- SUBSET : 11 by 11 by 12 points (LONGITUDE-LATITUDE-TIME)
- 170E 172E 174E 176E 178E 180E 178W 176W 174W 172W 170W
- 1 2 3 4 5 6 7 8 9 10 11
- ---- L:1 T: JAN-1995
- 30N / 11: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 28N / 10: 0.00000 0.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 1.00000 0.00000
- 26N / 9: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 24N / 8: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 22N / 7: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 20N / 6: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 18N / 5: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 16N / 4: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 14N / 3: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 12N / 2: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 10N / 1: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- ---- L:2 T: FEB-1995
- 30N / 11: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 28N / 10: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 26N / 9: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 24N / 8: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 22N / 7: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 20N / 6: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 18N / 5: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 16N / 4: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 14N / 3: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 12N / 2: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 10N / 1: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- ---- L:3 T: MAR-1995
- 30N / 11: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 28N / 10: 0.00000 0.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 1.00000 0.00000
- 26N / 9: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 24N / 8: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 22N / 7: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 20N / 6: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 18N / 5: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 16N / 4: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 14N / 3: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 12N / 2: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 10N / 1: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- ---- L:4 T: APR-1995
- 30N / 11: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 28N / 10: 0.00000 0.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 1.00000 0.00000
- 26N / 9: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 24N / 8: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 22N / 7: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 20N / 6: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 18N / 5: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 16N / 4: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 14N / 3: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 12N / 2: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 10N / 1: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- ---- L:5 T: MAY-1995
- 30N / 11: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 28N / 10: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 26N / 9: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 24N / 8: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 22N / 7: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 20N / 6: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 18N / 5: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 16N / 4: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 14N / 3: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 12N / 2: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 10N / 1: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- ---- L:6 T: JUN-1995
- 30N / 11: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 28N / 10: 0.00000 0.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 1.00000 0.00000
- 26N / 9: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 24N / 8: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 22N / 7: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 20N / 6: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 18N / 5: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 16N / 4: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 14N / 3: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 12N / 2: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 10N / 1: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- ---- L:7 T: JUL-1995
- 30N / 11: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 28N / 10: 0.00000 0.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 1.00000 0.00000
- 26N / 9: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 24N / 8: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 22N / 7: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 20N / 6: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 18N / 5: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 16N / 4: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 14N / 3: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 12N / 2: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 10N / 1: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- ---- L:8 T: AUG-1995
- 30N / 11: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 28N / 10: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 26N / 9: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 24N / 8: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 22N / 7: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 20N / 6: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 18N / 5: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 16N / 4: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 14N / 3: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 12N / 2: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 10N / 1: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- ---- L:9 T: SEP-1995
- 30N / 11: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 28N / 10: 0.00000 0.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 1.00000 0.00000
- 26N / 9: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 24N / 8: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 22N / 7: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 20N / 6: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 18N / 5: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 16N / 4: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 14N / 3: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 12N / 2: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 10N / 1: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- ---- L:10 T: OCT-1995
- 30N / 11: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 28N / 10: 0.00000 0.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 1.00000 0.00000
- 26N / 9: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 24N / 8: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 22N / 7: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 20N / 6: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 18N / 5: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 16N / 4: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 14N / 3: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 12N / 2: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 10N / 1: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- ---- L:11 T: NOV-1995
- 30N / 11: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 28N / 10: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 26N / 9: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 24N / 8: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 22N / 7: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 20N / 6: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 18N / 5: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 16N / 4: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 14N / 3: 0.00000 0.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 8.00000 4.00000 0.00000
- 12N / 2: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 10N / 1: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- ---- L:12 T: DEC-1995
- 30N / 11: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 28N / 10: 0.00000 0.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 1.00000 0.00000
- 26N / 9: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 24N / 8: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 22N / 7: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 20N / 6: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 18N / 5: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 16N / 4: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 14N / 3: 0.00000 0.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 4.00000 2.00000 0.00000
- 12N / 2: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
- 10N / 1: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
-
-can var /all
-can axis t_12
-can axis y_11
-can axis x_11
-can axis t_16
-can axis y_15
-can axis x_15
-
-
-GO bn_reset
-cancel mode verify
-go bn_scat2grid_t
-! bn_scat2grid_t.jnl
-! test the ave_scat2grid_t and scat2grid_t functions,
-! listing the results which can be checked against input
-
-define axis/t=0:8760/unit=hours/t0="01-JAN-1995 00:00:00"/edges/npoints=32 t_32
-
-let logtp50 = log(T[gt=t_32] + 50.0)
-let ltp50_tax = T[gt=t_32]
-list ltp50_tax, logtp50
- TIME: JAN-1995 to JAN-1996
- Column 1: LTP50_TAX is T[GT=T_32]
- Column 2: LOGTP50 is LOG(T[GT=T_32] + 50.0)
- LTP50_TAX LOGTP50
-06-JAN-1995 16 / 1: 136.88 2.27155
-18-JAN-1995 02 / 2: 410.63 2.66335
-29-JAN-1995 12 / 3: 684.38 2.86592
-09-FEB-1995 22 / 4: 958.13 3.00351
-21-FEB-1995 07 / 5: 1231.88 3.10785
-04-MAR-1995 17 / 6: 1505.63 3.19190
-16-MAR-1995 03 / 7: 1779.38 3.26230
-27-MAR-1995 13 / 8: 2053.13 3.32287
-07-APR-1995 22 / 9: 2326.88 3.37601
-19-APR-1995 08 / 10: 2600.63 3.42335
-30-APR-1995 18 / 11: 2874.38 3.46603
-12-MAY-1995 04 / 12: 3148.13 3.50490
-23-MAY-1995 13 / 13: 3421.88 3.54056
-03-JUN-1995 23 / 14: 3695.63 3.57352
-15-JUN-1995 09 / 15: 3969.38 3.60416
-26-JUN-1995 19 / 16: 4243.13 3.63277
-08-JUL-1995 04 / 17: 4516.88 3.65962
-19-JUL-1995 14 / 18: 4790.63 3.68490
-31-JUL-1995 00 / 19: 5064.38 3.70879
-11-AUG-1995 10 / 20: 5338.13 3.73144
-22-AUG-1995 19 / 21: 5611.88 3.75296
-03-SEP-1995 05 / 22: 5885.63 3.77347
-14-SEP-1995 15 / 23: 6159.38 3.79305
-26-SEP-1995 01 / 24: 6433.13 3.81178
-07-OCT-1995 10 / 25: 6706.88 3.82975
-18-OCT-1995 20 / 26: 6980.63 3.84699
-30-OCT-1995 06 / 27: 7254.38 3.86358
-10-NOV-1995 16 / 28: 7528.13 3.87956
-22-NOV-1995 01 / 29: 7801.88 3.89497
-03-DEC-1995 11 / 30: 8075.63 3.90986
-14-DEC-1995 21 / 31: 8349.38 3.92425
-26-DEC-1995 07 / 32: 8623.13 3.93818
-
-define axis/t=0:8760/unit=hours/t0="01-JAN-1995 00:00:00"/edges/npoints=12 t_12
-let new_tax = T[gt=t_12]
-
-let ave_t = ave_scat2grid_t(ltp50_tax, logtp50, new_tax)
-let t_cnt = scat2grid_t(ltp50_tax, new_tax)
-list new_tax, ave_t, t_cnt
- TIME: JAN-1995 to JAN-1996
- Column 1: NEW_TAX is T[GT=T_12]
- Column 2: AVE_T is AVE_SCAT2GRID_T(LTP50_TAX, LOGTP50, NEW_TAX)
- Column 3: T_CNT is SCAT2GRID_T(LTP50_TAX, NEW_TAX)
- NEW_TAX AVE_T T_CNT
-16-JAN-1995 / 1: 365.00 2.60027 3.00000
-15-FEB-1995 / 2: 1095.00 3.05568 2.00000
-18-MAR-1995 / 3: 1825.00 3.25902 3.00000
-17-APR-1995 / 4: 2555.00 3.42180 3.00000
-17-MAY-1995 / 5: 3285.00 3.52273 2.00000
-17-JUN-1995 / 6: 4015.00 3.60349 3.00000
-17-JUL-1995 / 7: 4745.00 3.68444 3.00000
-17-AUG-1995 / 8: 5475.00 3.74220 2.00000
-16-SEP-1995 / 9: 6205.00 3.79277 3.00000
-16-OCT-1995 / 10: 6935.00 3.84677 3.00000
-16-NOV-1995 / 11: 7665.00 3.88727 2.00000
-16-DEC-1995 / 12: 8395.00 3.92409 3.00000
-
-can mem /all
-can var /all
-can axis t_12
-can axis t_32
-
-
-GO bn_reset
-cancel mode verify
-go bn_transpose
-! bn_tranpose.jnl
-! test the transpose functions,
-! listing the results which can be checked against input
-
-def axis /X=0.0:4.0:1.0 xaxs
-def axis /Y=0.0:3.0:1.0 yaxs
-def axis /Z=0.0:2.0:1.0 zaxs
-def axis /T=0.0:1.0:1.0 taxs
-
-def grid /X=xaxs /Y=yaxs /Z=zaxs /T=taxs mygrd
-set grid mygrd
-
-let myvar = X + 5.0 * (Y + 4.0 * (Z + 3.0 * T))
-
-list myvar
- VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T))
- SUBSET : 5 by 4 by 3 by 2 points (X-Y-Z-T)
- 0 1 2 3 4
- 1 2 3 4 5
- ---- L:1 T: 0
- ---- K:1 Z: 0
- 0 / 1: 0.000 1.000 2.000 3.000 4.000
- 1 / 2: 5.000 6.000 7.000 8.000 9.000
- 2 / 3: 10.000 11.000 12.000 13.000 14.000
- 3 / 4: 15.000 16.000 17.000 18.000 19.000
- ---- K:2 Z: 1
- 0 / 1: 20.000 21.000 22.000 23.000 24.000
- 1 / 2: 25.000 26.000 27.000 28.000 29.000
- 2 / 3: 30.000 31.000 32.000 33.000 34.000
- 3 / 4: 35.000 36.000 37.000 38.000 39.000
- ---- K:3 Z: 2
- 0 / 1: 40.000 41.000 42.000 43.000 44.000
- 1 / 2: 45.000 46.000 47.000 48.000 49.000
- 2 / 3: 50.000 51.000 52.000 53.000 54.000
- 3 / 4: 55.000 56.000 57.000 58.000 59.000
- ---- L:2 T: 1
- ---- K:1 Z: 0
- 0 / 1: 60.000 61.000 62.000 63.000 64.000
- 1 / 2: 65.000 66.000 67.000 68.000 69.000
- 2 / 3: 70.000 71.000 72.000 73.000 74.000
- 3 / 4: 75.000 76.000 77.000 78.000 79.000
- ---- K:2 Z: 1
- 0 / 1: 80.000 81.000 82.000 83.000 84.000
- 1 / 2: 85.000 86.000 87.000 88.000 89.000
- 2 / 3: 90.000 91.000 92.000 93.000 94.000
- 3 / 4: 95.000 96.000 97.000 98.000 99.000
- ---- K:3 Z: 2
- 0 / 1: 100.000 101.000 102.000 103.000 104.000
- 1 / 2: 105.000 106.000 107.000 108.000 109.000
- 2 / 3: 110.000 111.000 112.000 113.000 114.000
- 3 / 4: 115.000 116.000 117.000 118.000 119.000
-list transpose_xy(myvar)
- VARIABLE : TRANSPOSE_XY(MYVAR)
- SUBSET : 4 by 5 by 3 by 2 points (X-Y-Z-T)
- 1 2 3 4
- 1 2 3 4
- ---- L:1 T: 0
- ---- K:1 Z: 0
- 1 / 1: 0.000 5.000 10.000 15.000
- 2 / 2: 1.000 6.000 11.000 16.000
- 3 / 3: 2.000 7.000 12.000 17.000
- 4 / 4: 3.000 8.000 13.000 18.000
- 5 / 5: 4.000 9.000 14.000 19.000
- ---- K:2 Z: 1
- 1 / 1: 20.000 25.000 30.000 35.000
- 2 / 2: 21.000 26.000 31.000 36.000
- 3 / 3: 22.000 27.000 32.000 37.000
- 4 / 4: 23.000 28.000 33.000 38.000
- 5 / 5: 24.000 29.000 34.000 39.000
- ---- K:3 Z: 2
- 1 / 1: 40.000 45.000 50.000 55.000
- 2 / 2: 41.000 46.000 51.000 56.000
- 3 / 3: 42.000 47.000 52.000 57.000
- 4 / 4: 43.000 48.000 53.000 58.000
- 5 / 5: 44.000 49.000 54.000 59.000
- ---- L:2 T: 1
- ---- K:1 Z: 0
- 1 / 1: 60.000 65.000 70.000 75.000
- 2 / 2: 61.000 66.000 71.000 76.000
- 3 / 3: 62.000 67.000 72.000 77.000
- 4 / 4: 63.000 68.000 73.000 78.000
- 5 / 5: 64.000 69.000 74.000 79.000
- ---- K:2 Z: 1
- 1 / 1: 80.000 85.000 90.000 95.000
- 2 / 2: 81.000 86.000 91.000 96.000
- 3 / 3: 82.000 87.000 92.000 97.000
- 4 / 4: 83.000 88.000 93.000 98.000
- 5 / 5: 84.000 89.000 94.000 99.000
- ---- K:3 Z: 2
- 1 / 1: 100.000 105.000 110.000 115.000
- 2 / 2: 101.000 106.000 111.000 116.000
- 3 / 3: 102.000 107.000 112.000 117.000
- 4 / 4: 103.000 108.000 113.000 118.000
- 5 / 5: 104.000 109.000 114.000 119.000
-list transpose_xz(myvar)
- VARIABLE : TRANSPOSE_XZ(MYVAR)
- SUBSET : 3 by 4 by 5 by 2 points (X-Y-Z-T)
- 1 2 3
- 1 2 3
- ---- L:1 T: 0
- ---- K:1 Z: 1
- 0 / 1: 0.000 20.000 40.000
- 1 / 2: 5.000 25.000 45.000
- 2 / 3: 10.000 30.000 50.000
- 3 / 4: 15.000 35.000 55.000
- ---- K:2 Z: 2
- 0 / 1: 1.000 21.000 41.000
- 1 / 2: 6.000 26.000 46.000
- 2 / 3: 11.000 31.000 51.000
- 3 / 4: 16.000 36.000 56.000
- ---- K:3 Z: 3
- 0 / 1: 2.000 22.000 42.000
- 1 / 2: 7.000 27.000 47.000
- 2 / 3: 12.000 32.000 52.000
- 3 / 4: 17.000 37.000 57.000
- ---- K:4 Z: 4
- 0 / 1: 3.000 23.000 43.000
- 1 / 2: 8.000 28.000 48.000
- 2 / 3: 13.000 33.000 53.000
- 3 / 4: 18.000 38.000 58.000
- ---- K:5 Z: 5
- 0 / 1: 4.000 24.000 44.000
- 1 / 2: 9.000 29.000 49.000
- 2 / 3: 14.000 34.000 54.000
- 3 / 4: 19.000 39.000 59.000
- ---- L:2 T: 1
- ---- K:1 Z: 1
- 0 / 1: 60.000 80.000 100.000
- 1 / 2: 65.000 85.000 105.000
- 2 / 3: 70.000 90.000 110.000
- 3 / 4: 75.000 95.000 115.000
- ---- K:2 Z: 2
- 0 / 1: 61.000 81.000 101.000
- 1 / 2: 66.000 86.000 106.000
- 2 / 3: 71.000 91.000 111.000
- 3 / 4: 76.000 96.000 116.000
- ---- K:3 Z: 3
- 0 / 1: 62.000 82.000 102.000
- 1 / 2: 67.000 87.000 107.000
- 2 / 3: 72.000 92.000 112.000
- 3 / 4: 77.000 97.000 117.000
- ---- K:4 Z: 4
- 0 / 1: 63.000 83.000 103.000
- 1 / 2: 68.000 88.000 108.000
- 2 / 3: 73.000 93.000 113.000
- 3 / 4: 78.000 98.000 118.000
- ---- K:5 Z: 5
- 0 / 1: 64.000 84.000 104.000
- 1 / 2: 69.000 89.000 109.000
- 2 / 3: 74.000 94.000 114.000
- 3 / 4: 79.000 99.000 119.000
-list transpose_xt(myvar)
- VARIABLE : TRANSPOSE_XT(MYVAR)
- SUBSET : 2 by 4 by 3 by 5 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 0
- 0 / 1: 0.000 60.000
- 1 / 2: 5.000 65.000
- 2 / 3: 10.000 70.000
- 3 / 4: 15.000 75.000
- ---- K:2 Z: 1
- 0 / 1: 20.000 80.000
- 1 / 2: 25.000 85.000
- 2 / 3: 30.000 90.000
- 3 / 4: 35.000 95.000
- ---- K:3 Z: 2
- 0 / 1: 40.000 100.000
- 1 / 2: 45.000 105.000
- 2 / 3: 50.000 110.000
- 3 / 4: 55.000 115.000
- ---- L:2 T: 2
- ---- K:1 Z: 0
- 0 / 1: 1.000 61.000
- 1 / 2: 6.000 66.000
- 2 / 3: 11.000 71.000
- 3 / 4: 16.000 76.000
- ---- K:2 Z: 1
- 0 / 1: 21.000 81.000
- 1 / 2: 26.000 86.000
- 2 / 3: 31.000 91.000
- 3 / 4: 36.000 96.000
- ---- K:3 Z: 2
- 0 / 1: 41.000 101.000
- 1 / 2: 46.000 106.000
- 2 / 3: 51.000 111.000
- 3 / 4: 56.000 116.000
- ---- L:3 T: 3
- ---- K:1 Z: 0
- 0 / 1: 2.000 62.000
- 1 / 2: 7.000 67.000
- 2 / 3: 12.000 72.000
- 3 / 4: 17.000 77.000
- ---- K:2 Z: 1
- 0 / 1: 22.000 82.000
- 1 / 2: 27.000 87.000
- 2 / 3: 32.000 92.000
- 3 / 4: 37.000 97.000
- ---- K:3 Z: 2
- 0 / 1: 42.000 102.000
- 1 / 2: 47.000 107.000
- 2 / 3: 52.000 112.000
- 3 / 4: 57.000 117.000
- ---- L:4 T: 4
- ---- K:1 Z: 0
- 0 / 1: 3.000 63.000
- 1 / 2: 8.000 68.000
- 2 / 3: 13.000 73.000
- 3 / 4: 18.000 78.000
- ---- K:2 Z: 1
- 0 / 1: 23.000 83.000
- 1 / 2: 28.000 88.000
- 2 / 3: 33.000 93.000
- 3 / 4: 38.000 98.000
- ---- K:3 Z: 2
- 0 / 1: 43.000 103.000
- 1 / 2: 48.000 108.000
- 2 / 3: 53.000 113.000
- 3 / 4: 58.000 118.000
- ---- L:5 T: 5
- ---- K:1 Z: 0
- 0 / 1: 4.000 64.000
- 1 / 2: 9.000 69.000
- 2 / 3: 14.000 74.000
- 3 / 4: 19.000 79.000
- ---- K:2 Z: 1
- 0 / 1: 24.000 84.000
- 1 / 2: 29.000 89.000
- 2 / 3: 34.000 94.000
- 3 / 4: 39.000 99.000
- ---- K:3 Z: 2
- 0 / 1: 44.000 104.000
- 1 / 2: 49.000 109.000
- 2 / 3: 54.000 114.000
- 3 / 4: 59.000 119.000
-list transpose_yz(myvar)
- VARIABLE : TRANSPOSE_YZ(MYVAR)
- SUBSET : 5 by 3 by 4 by 2 points (X-Y-Z-T)
- 0 1 2 3 4
- 1 2 3 4 5
- ---- L:1 T: 0
- ---- K:1 Z: 1
- 1 / 1: 0.000 1.000 2.000 3.000 4.000
- 2 / 2: 20.000 21.000 22.000 23.000 24.000
- 3 / 3: 40.000 41.000 42.000 43.000 44.000
- ---- K:2 Z: 2
- 1 / 1: 5.000 6.000 7.000 8.000 9.000
- 2 / 2: 25.000 26.000 27.000 28.000 29.000
- 3 / 3: 45.000 46.000 47.000 48.000 49.000
- ---- K:3 Z: 3
- 1 / 1: 10.000 11.000 12.000 13.000 14.000
- 2 / 2: 30.000 31.000 32.000 33.000 34.000
- 3 / 3: 50.000 51.000 52.000 53.000 54.000
- ---- K:4 Z: 4
- 1 / 1: 15.000 16.000 17.000 18.000 19.000
- 2 / 2: 35.000 36.000 37.000 38.000 39.000
- 3 / 3: 55.000 56.000 57.000 58.000 59.000
- ---- L:2 T: 1
- ---- K:1 Z: 1
- 1 / 1: 60.000 61.000 62.000 63.000 64.000
- 2 / 2: 80.000 81.000 82.000 83.000 84.000
- 3 / 3: 100.000 101.000 102.000 103.000 104.000
- ---- K:2 Z: 2
- 1 / 1: 65.000 66.000 67.000 68.000 69.000
- 2 / 2: 85.000 86.000 87.000 88.000 89.000
- 3 / 3: 105.000 106.000 107.000 108.000 109.000
- ---- K:3 Z: 3
- 1 / 1: 70.000 71.000 72.000 73.000 74.000
- 2 / 2: 90.000 91.000 92.000 93.000 94.000
- 3 / 3: 110.000 111.000 112.000 113.000 114.000
- ---- K:4 Z: 4
- 1 / 1: 75.000 76.000 77.000 78.000 79.000
- 2 / 2: 95.000 96.000 97.000 98.000 99.000
- 3 / 3: 115.000 116.000 117.000 118.000 119.000
-list transpose_yt(myvar)
- VARIABLE : TRANSPOSE_YT(MYVAR)
- SUBSET : 5 by 2 by 3 by 4 points (X-Y-Z-T)
- 0 1 2 3 4
- 1 2 3 4 5
- ---- L:1 T: 1
- ---- K:1 Z: 0
- 1 / 1: 0.000 1.000 2.000 3.000 4.000
- 2 / 2: 60.000 61.000 62.000 63.000 64.000
- ---- K:2 Z: 1
- 1 / 1: 20.000 21.000 22.000 23.000 24.000
- 2 / 2: 80.000 81.000 82.000 83.000 84.000
- ---- K:3 Z: 2
- 1 / 1: 40.000 41.000 42.000 43.000 44.000
- 2 / 2: 100.000 101.000 102.000 103.000 104.000
- ---- L:2 T: 2
- ---- K:1 Z: 0
- 1 / 1: 5.000 6.000 7.000 8.000 9.000
- 2 / 2: 65.000 66.000 67.000 68.000 69.000
- ---- K:2 Z: 1
- 1 / 1: 25.000 26.000 27.000 28.000 29.000
- 2 / 2: 85.000 86.000 87.000 88.000 89.000
- ---- K:3 Z: 2
- 1 / 1: 45.000 46.000 47.000 48.000 49.000
- 2 / 2: 105.000 106.000 107.000 108.000 109.000
- ---- L:3 T: 3
- ---- K:1 Z: 0
- 1 / 1: 10.000 11.000 12.000 13.000 14.000
- 2 / 2: 70.000 71.000 72.000 73.000 74.000
- ---- K:2 Z: 1
- 1 / 1: 30.000 31.000 32.000 33.000 34.000
- 2 / 2: 90.000 91.000 92.000 93.000 94.000
- ---- K:3 Z: 2
- 1 / 1: 50.000 51.000 52.000 53.000 54.000
- 2 / 2: 110.000 111.000 112.000 113.000 114.000
- ---- L:4 T: 4
- ---- K:1 Z: 0
- 1 / 1: 15.000 16.000 17.000 18.000 19.000
- 2 / 2: 75.000 76.000 77.000 78.000 79.000
- ---- K:2 Z: 1
- 1 / 1: 35.000 36.000 37.000 38.000 39.000
- 2 / 2: 95.000 96.000 97.000 98.000 99.000
- ---- K:3 Z: 2
- 1 / 1: 55.000 56.000 57.000 58.000 59.000
- 2 / 2: 115.000 116.000 117.000 118.000 119.000
-list transpose_zt(myvar)
- VARIABLE : TRANSPOSE_ZT(MYVAR)
- SUBSET : 5 by 4 by 2 by 3 points (X-Y-Z-T)
- 0 1 2 3 4
- 1 2 3 4 5
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 0 / 1: 0.000 1.000 2.000 3.000 4.000
- 1 / 2: 5.000 6.000 7.000 8.000 9.000
- 2 / 3: 10.000 11.000 12.000 13.000 14.000
- 3 / 4: 15.000 16.000 17.000 18.000 19.000
- ---- K:2 Z: 2
- 0 / 1: 60.000 61.000 62.000 63.000 64.000
- 1 / 2: 65.000 66.000 67.000 68.000 69.000
- 2 / 3: 70.000 71.000 72.000 73.000 74.000
- 3 / 4: 75.000 76.000 77.000 78.000 79.000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 0 / 1: 20.000 21.000 22.000 23.000 24.000
- 1 / 2: 25.000 26.000 27.000 28.000 29.000
- 2 / 3: 30.000 31.000 32.000 33.000 34.000
- 3 / 4: 35.000 36.000 37.000 38.000 39.000
- ---- K:2 Z: 2
- 0 / 1: 80.000 81.000 82.000 83.000 84.000
- 1 / 2: 85.000 86.000 87.000 88.000 89.000
- 2 / 3: 90.000 91.000 92.000 93.000 94.000
- 3 / 4: 95.000 96.000 97.000 98.000 99.000
- ---- L:3 T: 3
- ---- K:1 Z: 1
- 0 / 1: 40.000 41.000 42.000 43.000 44.000
- 1 / 2: 45.000 46.000 47.000 48.000 49.000
- 2 / 3: 50.000 51.000 52.000 53.000 54.000
- 3 / 4: 55.000 56.000 57.000 58.000 59.000
- ---- K:2 Z: 2
- 0 / 1: 100.000 101.000 102.000 103.000 104.000
- 1 / 2: 105.000 106.000 107.000 108.000 109.000
- 2 / 3: 110.000 111.000 112.000 113.000 114.000
- 3 / 4: 115.000 116.000 117.000 118.000 119.000
-
-can var /all
-set grid abstract
-can grid mygrd
-can axis taxs
-can axis zaxs
-can axis yaxs
-can axis xaxs
-
-
-GO bn_reset
-cancel mode verify
-go bn_unique_str2int
-! bn_unique_str2int.jnl
-
-SHOW FUNC/DETAIL unique_str2int
-UNIQUE_STR2INT(A)
- Returns an ID number for each unique stringin the input array of strings (case sensitive)
- Axes of result:
- X: inherited from argument(s)
- Y: inherited from argument(s)
- Z: inherited from argument(s)
- T: inherited from argument(s)
- E: inherited from argument(s)
- F: inherited from argument(s)
- A: Array of Strings (STRING)
- Influence on output axes:
- X: passed to result grid
- Y: passed to result grid
- Z: passed to result grid
- T: passed to result grid
- E: passed to result grid
- F: passed to result grid
-
-let alist = { \
- "a rat in the house will eat the zucchini", \
- "a rat in the house will eat the ice cream", \
- "ze rats in the house will eat the ice cream",\
- "A rat in the house will eat the ICE CREAM", \
- "", \
- "", \
- "A rat in the house will eat the ICE CREAM", \
- "A rat in the house will eat the ICE CREAM", \
- "ze rats in the house will eat the ice cream",\
- "ze rats in the house will eat the ice cream",\
- "" \
-}
-
-let blist = { \
- "ze rats in the house will eat the ice cream",\
- "", \
- "Something new has been added", \
- "A rat in the house will eat the ICE CREAM", \
- "A rat in the house will eat the ICE CREAM", \
- "" \
-}
-
-! check that it works when first called
-list unique_str2int(alist), alist
- X: 0.5 to 11.5
- Column 1: EX#1 is UNIQUE_STR2INT(ALIST)
- Column 2: ALIST is { "a rat in the house will eat the zucchini", "a rat in the house will eat the ice cream", "ze rats in the house will eat the ice cream", "A rat in the house will eat th
- EX#1 ALIST
-1 / 1: 1.00000 "a rat in the house will eat the zucchini"
-2 / 2: 2.00000 "a rat in the house will eat the ice cream"
-3 / 3: 3.00000 "ze rats in the house will eat the ice cream"
-4 / 4: 4.00000 "A rat in the house will eat the ICE CREAM"
-5 / 5: 5.00000 ""
-6 / 6: 5.00000 ""
-7 / 7: 4.00000 "A rat in the house will eat the ICE CREAM"
-8 / 8: 4.00000 "A rat in the house will eat the ICE CREAM"
-9 / 9: 3.00000 "ze rats in the house will eat the ice cream"
-10 / 10: 3.00000 "ze rats in the house will eat the ice cream"
-11 / 11: 5.00000 ""
-
-! check if the same values are returned for a second call matching strings
-list unique_str2int(blist), blist
- X: 0.5 to 6.5
- Column 1: EX#1 is UNIQUE_STR2INT(BLIST)
- Column 2: BLIST is { "ze rats in the house will eat the ice cream", "", "Something new has been added", "A rat in the house will eat the ICE CREAM", "A rat in the house will eat the ICE
- EX#1 BLIST
-1 / 1: 3.00000 "ze rats in the house will eat the ice cream"
-2 / 2: 5.00000 ""
-3 / 3: 6.00000 "Something new has been added"
-4 / 4: 4.00000 "A rat in the house will eat the ICE CREAM"
-5 / 5: 4.00000 "A rat in the house will eat the ICE CREAM"
-6 / 6: 5.00000 ""
-
-
-GO bn_reset
-cancel mode verify
-go bench_sort
-
-
-! Benchmark for sort and sample external Functions
-! ACM 5/99
-! ACM 8/99 sorti,sortj,sortl have "visual" versions
-
-sh func/ext sort*
-SORTI(DAT)
- Returns indices of data, sorted on the I axis in increasing order
- DAT: variable to sort in I
-SORTI_STR(STR)
- Returns indices of string data, sorted on the I axis in increasing order, null strings at the end
- STR: String variable to sort in I (STRING)
-SORTJ(DAT)
- Returns indices of data, sorted on the J axis in increasing order
- DAT: variable to sort in J
-SORTJ_STR(STR)
- Returns indices of string data, sorted on the J axis in increasing order, null strings at the end
- STR: String variable to sort in J (STRING)
-SORTK(DAT)
- Returns indices of data, sorted on the K axis in increasing order
- DAT: variable to sort in K
-SORTK_STR(STR)
- Returns indices of string data, sorted on the K axis in increasing order, null strings at the end
- STR: String variable to sort in K (STRING)
-SORTL(DAT)
- Returns indices of data, sorted on the L axis in increasing order
- DAT: variable to sort in L
-SORTL_STR(STR)
- Returns indices of string data, sorted on the L axis in increasing order, null strings at the end
- STR: String variable to sort in L (STRING)
-SORTM(DAT)
- Returns indices of data, sorted on the M axis in increasing order
- DAT: variable to sort in M
-SORTM_STR(STR)
- Returns indices of string data, sorted on the M axis in increasing order, null strings at the end
- STR: String variable to sort in L (STRING)
-SORTN(DAT)
- Returns indices of data, sorted on the N axis in increasing order
- DAT: variable to sort in N
-SORTN_STR(STR)
- Returns indices of string data, sorted on the N axis in increasing order, null strings at the end
- STR: String variable to sort in N (STRING)
-sh func/ext sample*
-SAMPLEI(TO_BE_SAMPLED,X_INDICES)
- sample a field at a list of X indices
- TO_BE_SAMPLED: data to sample at list of X indices supplied
- X_INDICES: list of X indices at which to sample
-SAMPLEJ(TO_BE_SAMPLED,Y_INDICES)
- sample a field at a list of Y indices
- TO_BE_SAMPLED: data to sample at list of Y indices supplied
- Y_INDICES: list of Y indices at which to sample
-SAMPLEK(TO_BE_SAMPLED,Z_INDICES)
- sample a field at a list of Z indices
- TO_BE_SAMPLED: data to sample at list of Z indices supplied
- Z_INDICES: list of Z indices at which to sample
-SAMPLEL(TO_BE_SAMPLED,T_INDICES)
- sample a field at a list of T indices
- TO_BE_SAMPLED: data to sample at list of T indices supplied
- T_INDICES: list of T indices at which to sample
-SAMPLEM(TO_BE_SAMPLED,E_INDICES)
- sample a field at a list of E indices
- TO_BE_SAMPLED: data to sample at list of E indices supplied
- E_INDICES: list of E indices at which to sample
-SAMPLEN(TO_BE_SAMPLED,F_INDICES)
- sample a field at a list of F indices
- TO_BE_SAMPLED: data to sample at list of F indices supplied
- F_INDICES: list of F indices at which to sample
-SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
- Returns data sampled at a subset of its grid points, defined by (XPTS, YPTS)
- DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
- XPTS: X indices of grid points
- YPTS: Y indices of grid points
-SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
- Returns data sampled according to I indices which may vary in JKL
- I_INDICES: indices upon which to sample
- DAT_TO_SAMPLE: data to sample using I indices
-SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
- Returns data sampled according to J indices which may vary in IKL
- J_INDICES: ordered indices
- DAT_TO_SAMPLE: data to sample using J indices
-SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
- Returns data sampled according to K indices which may vary in IJL
- K_INDICES: ordered indices
- DAT_TO_SAMPLE: data to sample using K indices
-SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
- Returns data sampled according to L indices which may vary in IJK
- L_INDICES: ordered indices
- DAT_TO_SAMPLE: data to sample using L indices
-SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
- Returns data sampled by interpolating to a set of times
- DAT_TO_SAMPLE: data to sample at set of times
- YR: Year(s) yyyy
- MO: Month(s), integer mm
- DAY: Day(s) of month dd
- HR: Hour(s) hh
- MIN: Minute(s) mm
- SEC: Second(s) ss
-SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
- Returns data sampled at a set of (X,Y) points, using linear interpolation
- DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
- XPTS: X values of sample points
- YPTS: Y values of sample points
-SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
- Returns data sampled at a set of (X,Y) points, using nearest grid intersection
- DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
- XPTS: X values of sample points
- YPTS: Y values of sample points
-SAMPLEXY_CURV(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
- Returns data sampled at a set of (X,Y) points, using linear interpolation
- DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
- DAT_LON: longitudes of input variable
- DAT_LAT: latitudes of input variable
- XPTS: X values of sample points
- YPTS: Y values of sample points
-SAMPLEXY_CURV_AVG(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
- Returns data sampled at a set of (X,Y) points, using unweighted averaging
- DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
- DAT_LON: longitudes of input variable
- DAT_LAT: latitudes of input variable
- XPTS: X values of sample points
- YPTS: Y values of sample points
-SAMPLEXY_CURV_NRST(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
- Returns data at a set of (X,Y) points, from nearest loc on XY curvilinear grid
- DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
- DAT_LON: longitudes of input variable
- DAT_LAT: latitudes of input variable
- XPTS: X values of sample points
- YPTS: Y values of sample points
-SAMPLEXYT(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
- Returns data sampled at a set of (X,Y,T) points, using linear interpolation
- DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
- XPTS: X values of sample points
- YPTS: Y values of sample points
- TPTS: T values of sample points
-SAMPLEXZ(DAT_TO_SAMPLE,XPTS,ZPTS)
- Returns data sampled at a set of (X,Z) points, using linear interpolation
- DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
- XPTS: X values of sample points
- ZPTS: Z values of sample points
-SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
- Returns data sampled at a set of (Y,Z) points, using linear interpolation
- DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
- YPTS: Y values of sample points
- ZPTS: Z values of sample points
-
-go bench_sorti.jnl
-
-
-! Benchmark for sort and sample external Functions
-! ACM 5/99
-
-! V550 *sh* 11/02 - documentation change only, reflecting subspan modulo
-! The use of L=5 on a 3 point time axis triggers a valid subspan modulo calculation
-! V581 *ACM 3/05 Changes in specifying context for arg 2 of SAMPLEI
-! see notes in Bugzilla under bug 1187.
-
-can region
-use coads_climatology
-set region/x=141:151/y=39/z=0/l=2
-
-list sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 6 points (LONGITUDE)
- LATITUDE : 39N
- TIME : FEB
- 39N
- 65
- 141E / 61: 8.8575
- 143E / 62: 8.5178
- 145E / 63: 9.2910
- 147E / 64: 10.2489
- 149E / 65: 10.9823
- 151E / 66: 10.8754
-
-let tsorted_indices = sorti( sst[i=61:66,y=39,z=0,l=2])
-let tsorted_sst = samplei(sst, tsorted_indices)
-
-list tsorted_indices, tsorted_sst
- DATA SET: ./coads_climatology.cdf
- X: 0.5 to 6.5
- TIME: FEB
- Column 1: TSORTED_INDICES[Y=39N] is SORTI( SST[I=61:66,Y=39,Z=0,L=2])
- Column 2: TSORTED_SST[Y=39N] is SAMPLEI(SST, TSORTED_INDICES)
- TSORTED_ TSORTED_SST
-1 / 1: 62.0000 8.5178
-2 / 2: 61.0000 8.8575
-3 / 3: 63.0000 9.2910
-4 / 4: 64.0000 10.2489
-5 / 5: 66.0000 10.8754
-6 / 6: 65.0000 10.9823
-
-
-! test on 2-d data
-
-can region
-!set data coads_climatology
-set region/l=5
-
-let xsorted_indices = sorti(sst)
-let xsorted_sst = samplei(sst, xsorted_indices[y=0,l=5])
-! shade xsorted_sst
-list/y=0/i=1:15 xsorted_sst
- VARIABLE : SAMPLEI(SST, XSORTED_INDICES[Y=0,L=5])
- FILENAME : coads_climatology.cdf
- SUBSET : 15 points (X)
- LATITUDE : 1S
- TIME : JAN
- 1S
- 45
- 1 / 1: 23.7595
- 2 / 2: 23.8632
- 3 / 3: 23.8882
- 4 / 4: 23.9519
- 5 / 5: 23.9616
- 6 / 6: 24.0241
- 7 / 7: 24.0481
- 8 / 8: 24.0854
- 9 / 9: 24.2126
- 10 / 10: 24.2807
- 11 / 11: 24.3114
- 12 / 12: 24.3562
- 13 / 13: 24.3861
- 14 / 14: 24.4567
- 15 / 15: 24.4717
-
-set region/l=5/y=1
-let len = xsorted_sst[i=@ngd]
-list len
- VARIABLE : XSORTED_SST[I=@NGD]
- FILENAME : coads_climatology.cdf
- X : 0.5 to 180.5
- LATITUDE : 1N
- TIME : JAN
- 147.000
-
-go bench_sortj.jnl
-
-
-
-! Benchmark for sort and sample external Functions
-! ACM 5/99
-
-! V550 *sh* 11/02 - documentation change only, reflecting subspan modulo
-! The use of L=5 on a 3 point time axis triggers a valid subspan modulo calculation
-! V581 *ACM 3/05 Changes in specifying context for arg 2 of SAMPLEJ
-! see notes in Bugzilla under bug 1187.
-
-can region
-use coads_climatology
-set region/x=141/y=39:49/z=0/l=2
-
-list sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 6 points (LATITUDE)
- LONGITUDE: 141E
- TIME : FEB
- 141E
- 61
- 49N / 70: 1.88296
- 47N / 69: 2.01405
- 45N / 68: 3.44455
- 43N / 67: 4.55859
- 41N / 66: 6.47285
- 39N / 65: 8.85749
-
-let tsorted_indices = sortj( sst[j=65:70,x=141,z=0,l=2])
-let tsorted_sst = samplej(sst, tsorted_indices)
-
-list tsorted_indices, tsorted_sst
- DATA SET: ./coads_climatology.cdf
- Y: 0.5 to 6.5
- TIME: FEB
- Column 1: TSORTED_INDICES[X=141E] is SORTJ( SST[J=65:70,X=141,Z=0,L=2])
- Column 2: TSORTED_SST[X=141E] is SAMPLEJ(SST, TSORTED_INDICES)
- TSORTED_ TSORTED_SST
-1 / 1: 70.0000 1.88296
-2 / 2: 69.0000 2.01405
-3 / 3: 68.0000 3.44455
-4 / 4: 67.0000 4.55859
-5 / 5: 66.0000 6.47285
-6 / 6: 65.0000 8.85749
-
-! test on 2-D data.
-
-can region
-!set data coads_climatology
-set region/l=5
-
-let ysorted_indices = sortj(sst)
-let ysorted_sst = samplej(sst, ysorted_indices[i=0,l=5])
-!shade ysorted_sst
-list/i=0/j=1:15 ysorted_sst
- VARIABLE : SAMPLEJ(SST, YSORTED_INDICES[I=0,L=5])
- FILENAME : coads_climatology.cdf
- SUBSET : 15 points (Y)
- LONGITUDE: 19E
- TIME : JAN
- 19E
- 0
- 1 / 1: -0.12500
- 2 / 2: 0.05400
- 3 / 3: 0.18556
- 4 / 4: 0.30000
- 5 / 5: 0.43875
- 6 / 6: 0.62500
- 7 / 7: 0.66000
- 8 / 8: 0.72750
- 9 / 9: 0.79955
- 10 / 10: 1.29667
- 11 / 11: 1.58765
- 12 / 12: 1.60684
- 13 / 13: 1.91667
- 14 / 14: 2.05857
- 15 / 15: 2.69400
-
-set region/l=5/x=181
-let len = ysorted_sst[j=@ngd]
-list len
- VARIABLE : YSORTED_SST[J=@NGD]
- FILENAME : coads_climatology.cdf
- LONGITUDE: 179W
- Y : 0.5 to 90.5
- TIME : JAN
- 32.0000
-
-
-go bench_sortk.jnl
-! Benchmark for sort and sample external Functions
-! ACM 7/99
-! Changes with v5.81 and after, specifying context for arg 2 of SAMPLEK
-! see notes in Bugzilla under bug 1187.
-
-! test sortk, samplek
-
-can region
-use gt4d011
-set region/i=99/j=40/l=1
-
-let zsorted_indices = sortk(temp)
-let zsorted_temp = samplek(temp, zsorted_indices[i=99,j=40,l=1])
-list zsorted_temp
- VARIABLE : SAMPLEK(TEMP, ZSORTED_INDICES[I=99,J=40,L=1])
- FILENAME : gt4d011.cdf
- SUBSET : 10 points (Z)
- LONGITUDE: 131.5W
- LATITUDE : 1.833S
- TIME : AUG-1982
- 131.5W
- 99
- 1 / 1: 24.6576
- 2 / 2: 25.2599
- 3 / 3: 25.7023
- 4 / 4: 26.0588
- 5 / 5: 26.1281
- 6 / 6: 26.1309
- 7 / 7: 26.1387
- 8 / 8: 26.1637
- 9 / 9: 26.2191
- 10 / 10: 26.3090
-
-
-can region
-use ocean_atlas_temp
-
-set region/i=70/j=90/l=1
-list temp
- VARIABLE : Temperature (Deg C)
- FILENAME : ocean_atlas_temp.cdf
- LONGITUDE: 89.5E
- LATITUDE : 0.5S
- DEPTH (m): 0
- TIME : JAN
- 28.8626
-
-let zsorted_indices = sortk(temp)
-let zsorted_temp = samplek(temp, zsorted_indices[i=70,j=90,l=1])
-list zsorted_temp
- VARIABLE : SAMPLEK(TEMP, ZSORTED_INDICES[I=70,J=90,L=1])
- FILENAME : ocean_atlas_temp.cdf
- LONGITUDE: 89.5E
- LATITUDE : 0.5S
- Z : 1
- TIME : JAN
- 28.8626
-
-! this should bail out with indices out of range:
-
-let zsorted_indices = sortk(temp[i=70,j=90,l=1]) - 100
-let zsorted_temp = samplek(temp, zsorted_indices)
-list zsorted_temp
- VARIABLE : SAMPLEK(TEMP, ZSORTED_INDICES)
- FILENAME : ocean_atlas_temp.cdf
- LONGITUDE: 89.5E
- LATITUDE : 0.5S
- Z : 1
- TIME : JAN
- ....
-
-
-go bench_sortl.jnl
-
-
-! Benchmark for sort and sample external Functions
-! ACM 5/99
-! *sh* 3/00 - indicate that test of illegal indices should produce an error
-
-! V550 *sh* 11/02 - documentation change only, reflecting subspan modulo
-! The use of L=5 on a 3 point time axis triggers a valid subspan modulo calculation
-! V581 *ACM 3/05 Changes in specifying context for arg 2 of SAMPLEL
-! see notes in Bugzilla under bug 1187.
-
-use coads_climatology
-set region/x=141/y=39/z=0/l=1:6
-
-list sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 6 points (TIME)
- LONGITUDE: 141E
- LATITUDE : 39N
- 141E
- 61
- 16-JAN / 1: 11.0274
- 15-FEB / 2: 8.8575
- 17-MAR / 3: 8.3911
- 16-AUG / 4: ....
- 15-JAN / 5: 11.0274
- 14-FEB / 6: 8.8575
-list samplel(sst, {1,3,5})
- VARIABLE : SAMPLEL(SST, {1,3,5})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (T)
- LONGITUDE: 141E
- LATITUDE : 39N
- 141E
- 61
- 1 / 1: 11.0274
- 2 / 2: 8.3911
- 3 / 3: 11.0274
-
-let tsorted_indices = sortl(sst)
-let tsorted_sst = samplel(sst, tsorted_indices[x=141,y=39,z=0])
-
-list tsorted_indices, tsorted_sst
- DATA SET: ./coads_climatology.cdf
- T: 0.5 to 3.5
- LONGITUDE: 141E
- LATITUDE: 39N
- Column 1: TSORTED_INDICES is SORTL(SST)
- Column 2: TSORTED_SST is SAMPLEL(SST, TSORTED_INDICES[X=141,Y=39,Z=0])
- TSORTED_ TSORTED_SST
-1 / 1: 3.00000 8.3911
-2 / 2: 2.00000 8.8575
-3 / 3: 1.00000 11.0274
-
-! test sortt with data containing bad/missing data.
-
-can region
-
-use coads_vwnd.cdf
-set region/i=90/j=65
-list vwnd
- VARIABLE : MERIDIONAL WIND (M/S)
- FILENAME : coads_vwnd.cdf
- SUBSET : 60 points (TIME)
- LONGITUDE: 161W
- LATITUDE : 39N
- 161W
- 90
- 16-JAN-1946 12 / 1: ....
- 15-FEB-1946 00 / 2: ....
- 16-MAR-1946 12 / 3: ....
- 16-APR-1946 00 / 4: ....
- 16-MAY-1946 12 / 5: ....
- 16-JUN-1946 00 / 6: ....
- 16-JUL-1946 12 / 7: ....
- 16-AUG-1946 12 / 8: ....
- 16-SEP-1946 00 / 9: ....
- 16-OCT-1946 12 / 10: ....
- 16-NOV-1946 00 / 11: ....
- 16-DEC-1946 12 / 12: 12.3500
- 16-JAN-1947 12 / 13: ....
- 15-FEB-1947 00 / 14: ....
- 16-MAR-1947 12 / 15: ....
- 16-APR-1947 00 / 16: 0.0000
- 16-MAY-1947 12 / 17: ....
- 16-JUN-1947 00 / 18: ....
- 16-JUL-1947 12 / 19: ....
- 16-AUG-1947 12 / 20: ....
- 16-SEP-1947 00 / 21: 6.6000
- 16-OCT-1947 12 / 22: ....
- 16-NOV-1947 00 / 23: ....
- 16-DEC-1947 12 / 24: ....
- 16-JAN-1948 12 / 25: 4.5000
- 15-FEB-1948 12 / 26: ....
- 16-MAR-1948 12 / 27: ....
- 16-APR-1948 00 / 28: ....
- 16-MAY-1948 12 / 29: ....
- 16-JUN-1948 00 / 30: 4.7000
- 16-JUL-1948 12 / 31: ....
- 16-AUG-1948 12 / 32: ....
- 16-SEP-1948 00 / 33: -5.8000
- 16-OCT-1948 12 / 34: 0.4500
- 16-NOV-1948 00 / 35: ....
- 16-DEC-1948 12 / 36: ....
- 16-JAN-1949 12 / 37: 4.2300
- 15-FEB-1949 00 / 38: -1.0800
- 16-MAR-1949 12 / 39: 2.0700
- 16-APR-1949 00 / 40: 0.8300
- 16-MAY-1949 12 / 41: 0.0000
- 16-JUN-1949 00 / 42: 5.3700
- 16-JUL-1949 12 / 43: -1.3000
- 16-AUG-1949 12 / 44: 1.3800
- 16-SEP-1949 00 / 45: 5.9200
- 16-OCT-1949 12 / 46: 0.7100
- 16-NOV-1949 00 / 47: -0.9400
- 16-DEC-1949 12 / 48: -0.5200
- 16-JAN-1950 12 / 49: 1.5800
- 15-FEB-1950 00 / 50: 4.9300
- 16-MAR-1950 12 / 51: 3.5100
- 16-APR-1950 00 / 52: 4.5400
- 16-MAY-1950 12 / 53: 1.6000
- 16-JUN-1950 00 / 54: 1.3300
- 16-JUL-1950 12 / 55: 0.9000
- 16-AUG-1950 12 / 56: -0.4500
- 16-SEP-1950 00 / 57: 3.5700
- 16-OCT-1950 12 / 58: -8.7500
- 16-NOV-1950 00 / 59: -5.2400
- 16-DEC-1950 12 / 60: -6.4700
-
-let tsorted_indices = sortl(vwnd)
-let tsorted_wnd = samplel(vwnd, tsorted_indices[i=90,j=65])
-list tsorted_indices, tsorted_wnd
- DATA SET: ./coads_vwnd.cdf
- T: 0.5 to 61
- LONGITUDE: 161W
- LATITUDE: 39N
- Column 1: TSORTED_INDICES is SORTL(VWND)
- Column 2: TSORTED_WND is SAMPLEL(VWND, TSORTED_INDICES[I=90,J=65])
- TSORTED_IN TSORTED_WND
-1 / 1: 58.0000 -8.7500
-2 / 2: 60.0000 -6.4700
-3 / 3: 33.0000 -5.8000
-4 / 4: 59.0000 -5.2400
-5 / 5: 43.0000 -1.3000
-6 / 6: 38.0000 -1.0800
-7 / 7: 47.0000 -0.9400
-8 / 8: 48.0000 -0.5200
-9 / 9: 56.0000 -0.4500
-10 / 10: 41.0000 0.0000
-11 / 11: 16.0000 0.0000
-12 / 12: 34.0000 0.4500
-13 / 13: 46.0000 0.7100
-14 / 14: 40.0000 0.8300
-15 / 15: 55.0000 0.9000
-16 / 16: 54.0000 1.3300
-17 / 17: 44.0000 1.3800
-18 / 18: 49.0000 1.5800
-19 / 19: 53.0000 1.6000
-20 / 20: 39.0000 2.0700
-21 / 21: 51.0000 3.5100
-22 / 22: 57.0000 3.5700
-23 / 23: 37.0000 4.2300
-24 / 24: 25.0000 4.5000
-25 / 25: 52.0000 4.5400
-26 / 26: 30.0000 4.7000
-27 / 27: 50.0000 4.9300
-28 / 28: 42.0000 5.3700
-29 / 29: 45.0000 5.9200
-30 / 30: 21.0000 6.6000
-31 / 31: 12.0000 12.3500
-32 / 32: .... ....
-33 / 33: .... ....
-34 / 34: .... ....
-35 / 35: .... ....
-36 / 36: .... ....
-37 / 37: .... ....
-38 / 38: .... ....
-39 / 39: .... ....
-40 / 40: .... ....
-41 / 41: .... ....
-42 / 42: .... ....
-43 / 43: .... ....
-44 / 44: .... ....
-45 / 45: .... ....
-46 / 46: .... ....
-47 / 47: .... ....
-48 / 48: .... ....
-49 / 49: .... ....
-50 / 50: .... ....
-51 / 51: .... ....
-52 / 52: .... ....
-53 / 53: .... ....
-54 / 54: .... ....
-55 / 55: .... ....
-56 / 56: .... ....
-57 / 57: .... ....
-58 / 58: .... ....
-59 / 59: .... ....
-60 / 60: .... ....
-
-let len = tsorted_wnd[l=@ngd]
-list len
- VARIABLE : TSORTED_WND[L=@NGD]
- FILENAME : coads_vwnd.cdf
- LONGITUDE: 161W
- LATITUDE : 39N
- T : 0.5 to 61
- 31.0000
-
-! deliberately sample at invalid points
-! Note: in MOST circumstances this would simply result in a result of
-! missing values, however, the underlying data set has an "enhanced heading"
-! so that these indices appear to be valid
-SET MODE ignore_error
-let tsorted_indices = sortl(vwnd) + 90
-let tsorted_wnd = samplel(vwnd, tsorted_indices[i=90,j=65])
-list tsorted_indices, tsorted_wnd
-SET MODE/LAST ignore_error
-
-! deliberately sample at invalid points that are outside of the axis range
-let tsorted_indices = sortl(vwnd) + 999
-let tsorted_wnd = samplel(vwnd, tsorted_indices[i=90,j=65])
-stat tsorted_wnd
-
- SAMPLEL(VWND, TSORTED_INDICES[I=90,J=65])
- LONGITUDE: 161W
- LATITUDE: 39N
- Z: N/A
- T: 0.5 to 61
- E: N/A
- F: N/A
- DATA SET: ./coads_vwnd.cdf
-
- Total # of data points: 60 (1*1*1*60*1*1)
- # flagged as bad data: 60
-
-
-go bench_samplexy.jnl
- ! NOAA/PMEL TMAP
- ! Program FERRET (debug)
- ! Version 5.00 - 04/12/99
- ! 13-Apr-99 14:36
-
-use coads_climatology
-
-let asst = samplexy(sst, {171,173,305}, {-1,1,13})
-list asst
- VARIABLE : SAMPLEXY(SST, {171,173,305}, {-1,1,13})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 3 points (X-TIME)
- 1 2 3
- 1 2 3
- 16-JAN / 1: 29.0045 27.8955 26.7131
- 15-FEB / 2: 28.5508 28.2499 26.3700
- 17-MAR / 3: 28.8764 28.4775 26.3180
-
-let asst = samplexy(sst, {171,172,305}, {-1,1,13})
-list asst
- VARIABLE : SAMPLEXY(SST, {171,172,305}, {-1,1,13})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 3 points (X-TIME)
- 1 2 3
- 1 2 3
- 16-JAN / 1: 29.0045 28.2696 26.7131
- 15-FEB / 2: 28.5508 28.4857 26.3700
- 17-MAR / 3: 28.8764 28.6147 26.3180
-
-go bench_samplet_date.jnl
-!
-! Data coads_vwnd in ~kobrien/FERRET/benc
-!
-use coads_vwnd
-set region/x=161w/y=39n
-
-let my_vwnd = samplet_date(vwnd,1950,2,0,0,0,0)
-list my_vwnd
- VARIABLE : SAMPLET_DATE(VWND,1950,2,0,0,0,0)
- FILENAME : coads_vwnd.cdf
- LONGITUDE: 161W
- LATITUDE : 39N
- T : 1
- 3.22661
-
-
-let my_vwnd = samplet_date(vwnd,{1950,1950},{5,8},{16,15},{12,12},{0,0},{0,0})
-list my_vwnd
- VARIABLE : SAMPLET_DATE(VWND,{1950,1950},{5,8},{16,15},{12,12},{0,0},{0,0})
- FILENAME : coads_vwnd.cdf
- SUBSET : 2 points (T)
- LONGITUDE: 161W
- LATITUDE : 39N
- 161W
- 90
- 1 / 1: 1.60000
- 2 / 2: -0.40645
-
-
-
-
-GO bn_reset
-cancel mode verify
-go bench_eof
-! Benchmark for EOF functions
-! Statically linked as of ferret V5.34
-! Ansley Manke 8/2/2001
-
-! In version 6.8 (double precision), the old eof functions are not available
-! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
-
-! Test the bail-out from eof_space, eof_stat, eof_tfunc
-set mode ignore
-
-USE coads_climatology
-LET eofxyfcn = eof_space(sst[X=27w:23w,Y=1S:3N], 1.)
-list/l=1:2 eofxyfcn
-
-LET eofstat = eof_stat(sst[X=27w:23w,Y=1S:3N], 1.)
-list/i=1:3/j=1:3 eofstat
-
-LET eoftime = eof_tfunc(SST[X=27W:23W,Y=1S:3N], 1.)
-list/i=1:2 eoftime
-
-set mode/last ignore
-
-! Test functions eofsvd*
-
-USE coads_climatology
-LET eofxyfcn = eofsvd_space(sst[X=27w:23w,Y=1S:3N])
-list/l=1:2 eofxyfcn
- VARIABLE : EOFSVD_SPACE(SST[X=27W:23W,Y=1S:3N])
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 3 by 2 points (LONGITUDE-LATITUDE-T)
- 27W 25W 23W
- 157 158 159
- ---- L:1 T: 1
- 3N / 47: -0.175348 -0.178392 -0.309239
- 1N / 46: -0.308620 -0.280936 -0.291017
- 1S / 45: -0.271470 -0.497559 -0.595639
- ---- L:2 T: 2
- 3N / 47: 0.052492 0.002775 0.124133
- 1N / 46: -0.064590 -0.057180 0.069549
- 1S / 45: -0.121296 -0.039745 0.034207
-
-LET eofstat = eofsvd_stat(sst[X=27w:23w,Y=1S:3N])
-list/i=1:3/j=1:3 eofstat
- VARIABLE : EOFSVD_STAT(SST[X=27W:23W,Y=1S:3N])
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 3 points (X-Y)
- 1 2 3
- 1 2 3
- 1 / 1: 9.0000 9.0000 9.0000
- 2 / 2: 95.8009 4.1991 0.0000
- 3 / 3: 1.0931 0.0479 0.0000
-
-LET eoftime = eofsvd_tfunc(SST[X=27W:23W,Y=1S:3N])
-list/i=1:2 eoftime
- VARIABLE : EOFSVD_TFUNC(SST[X=27W:23W,Y=1S:3N])
- FILENAME : coads_climatology.cdf
- SUBSET : 2 by 3 points (X-TIME)
- 1 2
- 1 2
- 16-JAN / 1: 1.17837 0.78194
- 15-FEB / 2: 0.08800 -1.41147
- 17-MAR / 3: -1.26637 0.62953
-
-
-exit/script
-
-GO bn_reset
-cancel mode verify
-go bench_compress_by
-let mask = {1,,1,,1} + 0*L[l=101:102] + 0*K[k=10:11]
-list compressi_by({10,20,30,40,50},mask)
- VARIABLE : COMPRESSI_BY({10,20,30,40,50},MASK)
- SUBSET : 5 by 2 by 2 points (X-Z-T)
- 1 2 3 4 5
- 1 2 3 4 5
- ---- L:101 T: 101
- 10 / 10: 10.0000 30.0000 50.0000 .... ....
- 11 / 11: 10.0000 30.0000 50.0000 .... ....
- ---- L:102 T: 102
- 10 / 10: 10.0000 30.0000 50.0000 .... ....
- 11 / 11: 10.0000 30.0000 50.0000 .... ....
-let mask2 = IF J[j=201:202] eq 201 then mask else 1/(MISSING(mask,4)-1)
-list compressi_by({10,20,30,40,50},mask2)
- VARIABLE : COMPRESSI_BY({10,20,30,40,50},MASK2)
- SUBSET : 5 by 2 by 2 by 2 points (X-Y-Z-T)
- 1 2 3 4 5
- 1 2 3 4 5
- ---- L:101 T: 101
- ---- K:10 Z: 10
- 201 / 201: 10.0000 30.0000 50.0000 .... ....
- 202 / 202: 20.0000 40.0000 .... .... ....
- ---- K:11 Z: 11
- 201 / 201: 10.0000 30.0000 50.0000 .... ....
- 202 / 202: 20.0000 40.0000 .... .... ....
- ---- L:102 T: 102
- ---- K:10 Z: 10
- 201 / 201: 10.0000 30.0000 50.0000 .... ....
- 202 / 202: 20.0000 40.0000 .... .... ....
- ---- K:11 Z: 11
- 201 / 201: 10.0000 30.0000 50.0000 .... ....
- 202 / 202: 20.0000 40.0000 .... .... ....
-
-
-GO bn_reset
-cancel mode verify
-go bench_compress
- ! NOAA/PMEL TMAP
- ! Program FERRET
- ! Version 5.21 - 06/15/00
- ! 10-Jul-00 10:39
-
-! V550 *sh* 11/02 - documentation change only reflecting subspan modulo
-
-use coads_climatology
-! Note that L=5 lies outside the time axis range of 3 points
-! As of V550 this triggers a subspan modulo calculation (correctly)
-list sst[l=5,j=66,i=125:131]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 7 points (LONGITUDE)
- LATITUDE : 41N
- TIME : JAN
- 41N
- 66
- 91W / 125:....
- 89W / 126:....
- 87W / 127:....
- 85W / 128:....
- 83W / 129:....
- 81W / 130:....
- 79W / 131:....
-list compressi(sst[l=5,j=66,i=125:131])
- VARIABLE : COMPRESSI(SST[L=5,J=66,I=125:131])
- FILENAME : coads_climatology.cdf
- SUBSET : 7 points (X)
- LATITUDE : 41N
- TIME : JAN
- 41N
- 66
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
- 4 / 4:....
- 5 / 5:....
- 6 / 6:....
- 7 / 7:....
-
-list sst[l=5,j=63:73,i=125]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 11 points (LATITUDE)
- LONGITUDE: 91W
- TIME : JAN
- 91W
- 125
- 55N / 73: ....
- 53N / 72: ....
- 51N / 71: ....
- 49N / 70: ....
- 47N / 69: 2.6969
- 45N / 68: 13.3500
- 43N / 67: ....
- 41N / 66: ....
- 39N / 65: ....
- 37N / 64: ....
- 35N / 63: ....
-list compressj(sst[l=5,j=63:73,i=125])
- VARIABLE : COMPRESSJ(SST[L=5,J=63:73,I=125])
- FILENAME : coads_climatology.cdf
- SUBSET : 11 points (Y)
- LONGITUDE: 91W
- TIME : JAN
- 91W
- 125
- 1 / 1: 13.3500
- 2 / 2: 2.6969
- 3 / 3: ....
- 4 / 4: ....
- 5 / 5: ....
- 6 / 6: ....
- 7 / 7: ....
- 8 / 8: ....
- 9 / 9: ....
- 10 / 10: ....
- 11 / 11: ....
-
-list sst[j=67,i=125]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (TIME)
- LONGITUDE: 91W
- LATITUDE : 43N
- 91W
- 125
- 16-JAN / 1:....
- 15-FEB / 2:....
- 17-MAR / 3:....
-list compressl(sst[j=67,i=125])
- VARIABLE : COMPRESSL(SST[J=67,I=125])
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (T)
- LONGITUDE: 91W
- LATITUDE : 43N
- 91W
- 125
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
-
-
-use gt4d011 ! as in bench_sortk
-let a = if temp le 27 then temp
-list a[i=91,j=35,l=1]
- VARIABLE : IF TEMP LE 27 THEN TEMP
- FILENAME : gt4d011.cdf
- SUBSET : 10 points (DEPTH (m))
- LONGITUDE: 139.5W
- LATITUDE : 3.5S
- TIME : AUG-1982
- 139.5W
- 91
- 5 / 1: ....
- 15 / 2: ....
- 25 / 3: ....
- 35 / 4: ....
- 45 / 5: ....
- 55 / 6: ....
- 65 / 7: 26.3984
- 75 / 8: 26.0190
- 85 / 9: 25.6663
- 95 / 10: 25.3181
-list compressk(a[i=91,j=35,l=1])
- VARIABLE : COMPRESSK(A[I=91,J=35,L=1])
- FILENAME : gt4d011.cdf
- SUBSET : 10 points (Z)
- LONGITUDE: 139.5W
- LATITUDE : 3.5S
- TIME : AUG-1982
- 139.5W
- 91
- 1 / 1: 26.3984
- 2 / 2: 26.0190
- 3 / 3: 25.6663
- 4 / 4: 25.3181
- 5 / 5: ....
- 6 / 6: ....
- 7 / 7: ....
- 8 / 8: ....
- 9 / 9: ....
- 10 / 10: ....
-
-GO bn_reset
-cancel mode verify
-GO bench_internal_string_functions
-! test internal string functions:
-! strlen
-! upcase
-! dncase
-! strindex
-! strrindex
-! substring
-! strcat
-! float - return float value from string
-!
-! *kob* 6/02 Ferret v5.41
-
-
-! STRLEN
-! Result should be 35
-list strlen("This string should be 35 characters")
- VARIABLE : STRLEN("This string should be 35 characters")
- 35.0000
-! Result should be 0
-list strlen("")
- VARIABLE : STRLEN("")
- 0.000000
-
-
-! UPCASE
-! Result should be in all caps
-list upcase ("this String sHould be iN aLl Caps")
- VARIABLE : UPCASE ("this String sHould be iN aLl Caps")
- "THIS STRING SHOULD BE IN ALL CAPS"
-
-! DNCASE
-! Result should be all lower case
-list dncase ("this String sHould be iN loWer caSE")
- VARIABLE : DNCASE ("this String sHould be iN loWer caSE")
- "this string should be in lower case"
-
-! STRINDEX
-! Find first occurence string "fun" in longer string
-! Result should be 11
-list strindex("Ferret is fun for the whole family - real fun, family fun", "fun");
- VARIABLE : STRINDEX("Ferret is fun for the whole family - real fun, family fun", "fun")
- 11.0000
-
-! STRRINDEX
-! Find last occurence string "fun" in longer string
-! Result should be 55
-list strrindex("Ferret is fun for the whole family - real fun, family fun", "fun");
- VARIABLE : STRRINDEX("Ferret is fun for the whole family - real fun, family fun", "fun")
- 55.0000
-
-! SUBSTRING
-! Clip a substring from a string - result should be "ferret"
-list substring("Have you fed your ferret today", 19, 6)
- VARIABLE : SUBSTRING("Have you fed your ferret today", 19, 6)
- "ferret"
-! Ask for offset greater than string lenght - result should be ""
-list substring("Have you fed your ferret today", 50, 6)
- VARIABLE : SUBSTRING("Have you fed your ferret today", 50, 6)
- ""
-! Ask for more chars than in string - result should be "ferret today"
-list substring("Have you fed your ferret today", 19, 60)
- VARIABLE : SUBSTRING("Have you fed your ferret today", 19, 60)
- "ferret today"
-
-
-! STRCAT
-! concatenate two strings
-list strcat ("All work and no play", " makes Ferret a dull boy")
- VARIABLE : STRCAT ("All work and no play", " makes Ferret a dull boy")
- "All work and no play makes Ferret a dull boy"
-
-
-! FLOAT
-! return float value - result should be 7.85
-! list (strfloat("3.14")*10)/4 ! crashes on linux rh5 gfortran...
-list .25*strfloat("3.14")
- VARIABLE : .25*STRFLOAT("3.14")
- 0.785000
-
-
-! the below are deliberate errors for incorrect argument detection
-set mode ignore
-list strindex("Ferret is fun for the whole family - real family fun");
-list strrindex("Ferret is fun for the whole family - real family fun");
-list substring("Have you fed your ferret today", 19)
-list substring("Have you fed your ferret today")
-list strcat ("All work and no play")
-
-set mode/last ignore
-
-! 4/2006 these functions now are also internally linked
-
-GO bn_reset
-cancel mode verify
-GO bn_ef_bench_extrema.jnl
-! bench_extrema.jnl
-! benchmark tests for findhi and findlo
-! external functions; installed as .so files
-! Ferret version 5.4
-
-! ACM 28-Jan-02
-
-use coads_climatology
-set region/l=1/x=100:360/y=-20:60
-
-list/x=1:10 findhi(sst,4,4)
- VARIABLE : FINDHI(SST,4,4)
- FILENAME : coads_climatology.cdf
- SUBSET : 10 by 3 points (X-Y)
- TIME : JAN
- 1 2 3 4 5 6 7 8 9 10
- 1 2 3 4 5 6 7 8 9 10
- 1 / 1: 335.000 359.000 269.000 57.000 195.000 73.000 101.000 209.000 87.000 167.000
- 2 / 2: -69.000 -63.000 -25.000 -13.000 -13.000 -11.000 -11.000 -11.000 -9.000 -9.000
- 3 / 3: 0.340 0.863 23.271 28.382 29.675 28.470 28.341 28.881 28.429 29.847
-list/x=1:10 findlo(sst,4,4)
- VARIABLE : FINDLO(SST,4,4)
- FILENAME : coads_climatology.cdf
- SUBSET : 10 by 3 points (X-Y)
- TIME : JAN
- 1 2 3 4 5 6 7 8 9 10
- 1 2 3 4 5 6 7 8 9 10
- 1 / 1: 331.000 365.000 147.000 79.000 119.000 65.000 83.000 125.000 157.000 237.000
- 2 / 2: -65.000 -61.000 -59.000 -53.000 -9.000 -7.000 -7.000 -7.000 -3.000 -1.000
- 3 / 3: -0.766 -0.063 0.400 1.607 28.333 27.646 27.757 28.387 28.721 23.888
-
-let a = findlo(sst,4,4)
-list a[i=@ngd]
- VARIABLE : FINDLO(SST,4,4) (# of points)
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (Y)
- X : 0.5 to 16201 (number of valid)
- TIME : JAN
- 1 / 1: 13.0000
- 2 / 2: 13.0000
- 3 / 3: 13.0000
-
-let a = findlo(sst,2,2)
-list a[i=@ngd]
- VARIABLE : FINDLO(SST,2,2) (# of points)
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (Y)
- X : 0.5 to 16201 (number of valid)
- TIME : JAN
- 1 / 1: 113.000
- 2 / 2: 113.000
- 3 / 3: 113.000
-
-GO bn_reset
-cancel mode verify
-GO bn_ef_err541_date_delim.jnl
-! err541_date_delim.jnl
-! Fix errors occurring with delimted reads - four digit years were
-! being accuratly calculated.
-!
-! *kob* 11/02
-
-set data/var="date1"/type="date,date"/form=delim dates_bug.dat
-! first date is 12-27-1999 which is unacceptable so should be missing values
-list days1900toymdhms(date1)
- VARIABLE : DAYS1900TOYMDHMS(DATE1)
- FILENAME : dates_bug.dat
- SUBSET : 6 by 6 points (X-Z)
- 1 2 3 4 5 6
- 1 2 3 4 5 6
- 1 / 1: .... 1999.00 2001.00 2001.00 2003.00 999.00
- 2 / 2: .... 7.00 7.00 7.00 7.00 8.00
- 3 / 3: .... 28.00 29.00 30.00 31.00 1.00
- 4 / 4: .... 0.00 0.00 0.00 0.00 0.00
- 5 / 5: .... 0.00 0.00 0.00 0.00 0.00
- 6 / 6: .... 0.00 0.00 0.00 0.00 0.00
-
-
-! now test accuracy of dates
-DEFINE AXIS/T0=1-jan-1900/T=1-jan-1900:1-jan-2005:1/units=days ttt
-
-let date_check = date1[i=2] - T[gt=ttt,t="28-jul-1999"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
-let date_check = date1[i=3] - T[gt=ttt,t="29-jul-2001"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
-let date_check = date1[i=4] - T[gt=ttt,t="30-jul-2001"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
-let date_check = date1[i=5] - T[gt=ttt,t="31-jul-2003"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
-
-
-
-! now test eurodate format
-can data/all
-set data/var="date1"/type="eurodate,eurodate"/form=delim euro_dates_bug.dat
-! first date is 27-07-1999 which is unacceptable so should be missing values
-list days1900toymdhms(date1)
- VARIABLE : DAYS1900TOYMDHMS(DATE1)
- FILENAME : euro_dates_bug.dat
- SUBSET : 5 by 6 points (X-Z)
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: .... 2001.00 2001.00 2003.00 999.00
- 2 / 2: .... 7.00 7.00 7.00 8.00
- 3 / 3: .... 28.00 30.00 31.00 1.00
- 4 / 4: .... 0.00 0.00 0.00 0.00
- 5 / 5: .... 0.00 0.00 0.00 0.00
- 6 / 6: .... 0.00 0.00 0.00 0.00
-
-!test accuracy of eurodates
-let date_check = date1[i=2] - T[gt=ttt,t="28-jul-2001"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
-let date_check = date1[i=3] - T[gt=ttt,t="30-jul-2001"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
-let date_check = date1[i=4] - T[gt=ttt,t="31-jul-2003"]
-if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
- !-> if 0 then say **** DELIMTED READ DATE CHECK FAILED
-
-
-GO bn_reset
-cancel mode verify
-GO bn_ef_zaxr_fcns.jnl
-! bn_ef_zaxr_functions.jnl
-! 04-apr-05 *acm* move to tests of shared-obj efs.
-!
-! bn_zaxr_functions.jnl
-! Compare the various zaxreplace functions
-
-
-! Define some original source data:
-
-let ddat = zsequence({1126,1136,1146,1156,1166})
-let cycle = zsequence({346, 347, 349, 350, 351})
-
-! Put that data on the following original source grid:
-
-Define axis/z=10:50:10 zaxis_orig
-
-let cycle_orig = cycle[gz=zaxis_orig at asn]
-let ddat_orig = ddat[gz=zaxis_orig at asn]
-
-! Define a destination axis
-
-define axis/z=345:353:1 zaxis_des
-let dummy = z[GZ=zaxis_des]
-
-let ddat_a = zaxreplace(ddat_orig, cycle_orig, dummy)
-
-let ddat_b = zaxreplace_avg(ddat_orig, cycle_orig, dummy)
-
-let ddat_c = zaxreplace_bin(ddat_orig, cycle_orig, dummy)
-
-! Compare result of zaxreplace, zaxreplace_avg, zaxreplace_bin
-list ddat_a, ddat_b, ddat_c
- Z: 344.5 to 353.5
- Column 1: DDAT_A is ZAXREPLACE(DDAT_ORIG, CYCLE_ORIG, DUMMY)
- Column 2: DDAT_B is ZAXREPLACE_AVG(DDAT_ORIG, CYCLE_ORIG, DUMMY)
- Column 3: DDAT_C is ZAXREPLACE_BIN(DDAT_ORIG, CYCLE_ORIG, DUMMY)
- DDAT_A DDAT_B DDAT_C
-345 / 1: .... .... ....
-346 / 2: .... 1126.00 1126.00
-347 / 3: 1136.00 1136.00 1136.00
-348 / 4: 1141.00 1141.00 ....
-349 / 5: 1146.00 1146.00 1146.00
-350 / 6: 1156.00 1156.00 1156.00
-351 / 7: 1166.00 1166.00 1166.00
-352 / 8: .... .... ....
-353 / 9: .... .... ....
-
-
-GO bn_reset
-cancel mode verify
-GO bn_ef_curv_to_rect.jnl
-! bn_ef_curv_to_rect.jnl
-! Test of curvilinear to rectilinear regridding
-! Uses shared-object external functions
-! ACM 5/4/05
-
-show func curv*
-CURV_RANGE(LONGITUDES,LATITUDES,xrange_lo,xrange_hi,yrange_lo,yrange_hi,modulo flag for X coordinates)
- find i,j bounds for subset of a variable in curvilinear coordinates
- LONGITUDES: 2-D longitudes of curvilinear grid
- LATITUDES: 2-D latitudes of curvilinear grid
- xrange_lo: Minimum of longitude range
- xrange_hi: Maximum of longitude range
- yrange_lo: Minimum of latitude range
- yrange_hi: Maximum of latitude range
- modulo flag for X coordinates: 1= X modulo; 0= X not modulo
-CURV_TO_RECT(V,mapping)
- Apply mapping to regrid from curvilinear to rectangular grid
- V: Variable to regrid, on curvilinear grid V(x,y,z,t,e,f)
- mapping: mapping computed by curv_to_rect_MAP
-CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
- Compute mapping for regridding: curvilinear to rectangular grid.
- lon_in: Source grid longitudes (2-D) (degrees)
- lat_in: Source grid latitudes (2-D) (degrees)
- grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
- radius: Source points falling within radius are included in mapping to destination point (degrees)
-
-use tripolar_subset.nc
-shade ht, geolon_vert_t, geolat_vert_t
-
-! Define output grid
-
-def axis/x=-300:100:10 xout
-def axis/y=60:90:3 yout
-let a = x[gx=xout] + y[gy=yout]
-
-! Define mapping
-let my_map = curv_to_rect_map (geolon_vert_t, geolat_vert_t, a, 10)
-
-! apply mapping
-let mapped = curv_to_rect (ht, my_map)
-shade mapped
-stat mapped
-
- CURV_TO_RECT (HT, MY_MAP)
- X: -305 to 105
- Y: 58.5 to 91.5
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: ./tripolar_subset.nc
-
- Total # of data points: 451 (41*11*1*1*1*1)
- # flagged as bad data: 79
- Minimum value: 0
- Maximum value: 4298.8
- Mean value: 963.12 (unweighted average)
- Standard deviation: 1380.9
-
-
-! tax_ functions
-use gt4d011
-
-list/L=15:20 tax_datestring(t[gt=temp],temp,"hour")
- VARIABLE : TAX_DATESTRING(T[GT=TEMP],TEMP,"hour")
- FILENAME : gt4d011.cdf
- SUBSET : 6 points (TIME)
- 10-NOV-1982 16 / 15:"10-NOV-1982 16"
- 16-NOV-1982 18 / 16:"16-NOV-1982 18"
- 22-NOV-1982 20 / 17:"22-NOV-1982 20"
- 28-NOV-1982 22 / 18:"28-NOV-1982 22"
- 05-DEC-1982 00 / 19:"05-DEC-1982 00"
- 11-DEC-1982 02 / 20:"11-DEC-1982 02"
-list/L=15:20 tax_datestring(t[gt=temp],temp,"day")
- VARIABLE : TAX_DATESTRING(T[GT=TEMP],TEMP,"day")
- FILENAME : gt4d011.cdf
- SUBSET : 6 points (TIME)
- 10-NOV-1982 16 / 15:"10-NOV-1982"
- 16-NOV-1982 18 / 16:"16-NOV-1982"
- 22-NOV-1982 20 / 17:"22-NOV-1982"
- 28-NOV-1982 22 / 18:"28-NOV-1982"
- 05-DEC-1982 00 / 19:"05-DEC-1982"
- 11-DEC-1982 02 / 20:"11-DEC-1982"
-list/L=15:20 tax_dayfrac(t[gt=temp],temp), tax_dayfrac(t[gt=temp],temp)*24.
- DATA SET: ./gt4d011.cdf
- TIME: NOV-1982 to DEC-1982
- Column 1: TAX_DAYFRAC(T[GT=TEMP],TEMP)
- Column 2: EX#2 is TAX_DAYFRAC(T[GT=TEMP],TEMP)*24.
- (C001,V001) EX#2
-10-NOV-1982 16 / 15: 0.666667 16.0000
-16-NOV-1982 18 / 16: 0.750000 18.0000
-22-NOV-1982 20 / 17: 0.833333 20.0000
-28-NOV-1982 22 / 18: 0.916667 22.0000
-05-DEC-1982 00 / 19: 0.000000 0.0000
-11-DEC-1982 02 / 20: 0.083333 2.0000
-list/L=15:20 tax_day(t[gt=temp],temp), tax_jday(t[gt=temp],temp)
- DATA SET: ./gt4d011.cdf
- TIME: NOV-1982 to DEC-1982
- Column 1: TAX_DAY(T[GT=TEMP],TEMP)
- Column 2: TAX_JDAY(T[GT=TEMP],TEMP)
- (C001,V001) (C001,V009)
-10-NOV-1982 16 / 15: 10.0000 314.000
-16-NOV-1982 18 / 16: 16.0000 320.000
-22-NOV-1982 20 / 17: 22.0000 326.000
-28-NOV-1982 22 / 18: 28.0000 332.000
-05-DEC-1982 00 / 19: 5.0000 339.000
-11-DEC-1982 02 / 20: 11.0000 345.000
-list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
- DATA SET: ./gt4d011.cdf
- TIME: NOV-1982 to DEC-1982
- Column 1: TAX_MONTH(T[GT=TEMP],TEMP)
- Column 2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
- (C001,V001) (C001,V009)
-10-NOV-1982 16 / 15: 11.0000 0.860274
-16-NOV-1982 18 / 16: 11.0000 0.876712
-22-NOV-1982 20 / 17: 11.0000 0.893151
-28-NOV-1982 22 / 18: 11.0000 0.909589
-05-DEC-1982 00 / 19: 12.0000 0.928767
-11-DEC-1982 02 / 20: 12.0000 0.945205
-list/L=15:20 tax_year(t[gt=temp],temp)
- VARIABLE : TAX_YEAR(T[GT=TEMP],TEMP)
- FILENAME : gt4d011.cdf
- SUBSET : 6 points (TIME)
- 10-NOV-1982 16 / 15: 1982.00
- 16-NOV-1982 18 / 16: 1982.00
- 22-NOV-1982 20 / 17: 1982.00
- 28-NOV-1982 22 / 18: 1982.00
- 05-DEC-1982 00 / 19: 1982.00
- 11-DEC-1982 02 / 20: 1982.00
-list tax_units(temp)
- VARIABLE : TAX_UNITS(TEMP)
- FILENAME : gt4d011.cdf
- 3600.00
-
-! fill_xy
-can data/all
-use coads_climatology
-let mask = 0*x[gx=sst] + y[gy=sst] + 1
-shade fill_xy(sst[l=1], mask[l=1], 1)
-shade fill_xy(sst[l=1], mask[l=1], 4)
-
-
-GO bn_reset
-cancel mode verify
-GO bn_modulo_strides
-! bn_modulo_strides.jnl
-! 6/01 *sh*
-! exercise the combination of modulo and netCDF strides IO
-
-define axis/modulo/x=1:20:1 x20
-LET a = X[gx=x20]
-LET str_raw = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t"}
-!list b_raw
-let str = str_raw[gx=x20 at asn]
-save/clobber/file=test_modulo.cdf a, str
-cancel variable a, str
-use test_modulo
-
-! verify that both single IO and double IO cases are doing rdstride
-cancel memory/all
-set mode diag
-let b = a[i=18:23:2]
-list/nohead b ! using rdstride
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid B C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval B C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A --> (G022) @XACT
- strip moduloing A on X axis: 18 22 dset: 1
- rdstride A C: 11 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing moduloing A on X axis: 18 20 dset: 1
- -DELETE A M:322 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- rdstride A C: 11 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing moduloing A on X axis: 2 2 dset: 1
- -DELETE A M:322 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd A M:322 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A M:319 dset: 1 I: 18 22 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- 18 / 1: 18.0000
- 20 / 2: 20.0000
- 22 / 3: 2.0000
-list/nohead a[i=1:25:3] ! no strides --> reads full region without strides
- dealloc dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A --> (G023) @XACT
- strip moduloing A on X axis: 1 25 dset: 1
- reading A M:325 dset: 1 I: 1 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing moduloing A on X axis: 1 20 dset: 1
- regrid A M:341 dset: 1 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
- 1 / 1: 1.0000
- 4 / 2: 4.0000
- 7 / 3: 7.0000
- 10 / 4: 10.0000
- 13 / 5: 13.0000
- 16 / 6: 16.0000
- 19 / 7: 19.0000
- 22 / 8: 2.0000
- 25 / 9: 5.0000
-list/nohead b ! reuse of cached result
- dealloc dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A M:341 dset: 1 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval B C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A --> (G022) @XACT
- strip moduloing A on X axis: 18 22 dset: 1
- rdstride A C: 11 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing moduloing A on X axis: 18 20 dset: 1
- -DELETE A M:341 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- rdstride A C: 11 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing moduloing A on X axis: 2 2 dset: 1
- -DELETE A M:341 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd A M:341 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A M:339 dset: 1 I: 18 22 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- 18 / 1: 18.0000
- 20 / 2: 20.0000
- 22 / 3: 2.0000
-set mode/last diag
-
-! less than one modulo cycle -- grab in 2 pieces
-! ... delta(2) a factor of npts(20)
-list/nohead a[i=18:23:2]
- 18 / 1: 18.0000
- 20 / 2: 20.0000
- 22 / 3: 2.0000
-list/nohead a[i=19:23:2]
- 19 / 1: 19.0000
- 21 / 2: 1.0000
- 23 / 3: 3.0000
-list/nohead a[i=20:23:2]
- 20 / 1: 20.0000
- 22 / 2: 2.0000
-list/nohead a[i=18:24:2]
- 18 / 1: 18.0000
- 20 / 2: 20.0000
- 22 / 3: 2.0000
- 24 / 4: 4.0000
-list/nohead a[i=19:24:2]
- 19 / 1: 19.0000
- 21 / 2: 1.0000
- 23 / 3: 3.0000
-list/nohead a[i=20:24:2]
- 20 / 1: 20.0000
- 22 / 2: 2.0000
- 24 / 3: 4.0000
-
-! ... delta(3) not a factor of npts(20)
-list/nohead a[i=17:23:3]
- 17 / 1: 17.0000
- 20 / 2: 20.0000
- 23 / 3: 3.0000
-list/nohead a[i=18:23:3]
- 18 / 1: 18.0000
- 21 / 2: 1.0000
-list/nohead a[i=19:23:3]
- 19 / 1: 19.0000
- 22 / 2: 2.0000
-list/nohead a[i=20:23:3]
- 20 / 1: 20.0000
- 23 / 2: 3.0000
-list/nohead a[i=17:24:3]
- 17 / 1: 17.0000
- 20 / 2: 20.0000
- 23 / 3: 3.0000
-list/nohead a[i=18:24:3]
- 18 / 1: 18.0000
- 21 / 2: 1.0000
- 24 / 3: 4.0000
-list/nohead a[i=19:24:3]
- 19 / 1: 19.0000
- 22 / 2: 2.0000
-list/nohead a[i=20:24:3]
- 20 / 1: 20.0000
- 23 / 2: 3.0000
-list/nohead a[i=17:25:3]
- 17 / 1: 17.0000
- 20 / 2: 20.0000
- 23 / 3: 3.0000
-list/nohead a[i=18:25:3]
- 18 / 1: 18.0000
- 21 / 2: 1.0000
- 24 / 3: 4.0000
-list/nohead a[i=19:25:3]
- 19 / 1: 19.0000
- 22 / 2: 2.0000
- 25 / 3: 5.0000
-list/nohead a[i=20:25:3]
- 20 / 1: 20.0000
- 23 / 2: 3.0000
-
-! more than one modulo cycle -- grab in one piece
-list/nohead a[i=1:45:5]
- 1 / 1: 1.0000
- 6 / 2: 6.0000
- 11 / 3: 11.0000
- 16 / 4: 16.0000
- 21 / 5: 1.0000
- 26 / 6: 6.0000
- 31 / 7: 11.0000
- 36 / 8: 16.0000
- 41 / 9: 1.0000
-list/nohead a[i=2:45:5]
- 2 / 1: 2.0000
- 7 / 2: 7.0000
- 12 / 3: 12.0000
- 17 / 4: 17.0000
- 22 / 5: 2.0000
- 27 / 6: 7.0000
- 32 / 7: 12.0000
- 37 / 8: 17.0000
- 42 / 9: 2.0000
-list/nohead a[i=3:45:5]
- 3 / 1: 3.0000
- 8 / 2: 8.0000
- 13 / 3: 13.0000
- 18 / 4: 18.0000
- 23 / 5: 3.0000
- 28 / 6: 8.0000
- 33 / 7: 13.0000
- 38 / 8: 18.0000
- 43 / 9: 3.0000
-list/nohead a[i=4:45:5]
- 4 / 1: 4.0000
- 9 / 2: 9.0000
- 14 / 3: 14.0000
- 19 / 4: 19.0000
- 24 / 5: 4.0000
- 29 / 6: 9.0000
- 34 / 7: 14.0000
- 39 / 8: 19.0000
- 44 / 9: 4.0000
-list/nohead a[i=5:45:5]
- 5 / 1: 5.0000
- 10 / 2: 10.0000
- 15 / 3: 15.0000
- 20 / 4: 20.0000
- 25 / 5: 5.0000
- 30 / 6: 10.0000
- 35 / 7: 15.0000
- 40 / 8: 20.0000
- 45 / 9: 5.0000
-list/nohead a[i=6:45:5]
- 6 / 1: 6.0000
- 11 / 2: 11.0000
- 16 / 3: 16.0000
- 21 / 4: 1.0000
- 26 / 5: 6.0000
- 31 / 6: 11.0000
- 36 / 7: 16.0000
- 41 / 8: 1.0000
-list/nohead a[i=101:145:5]
- 101 / 1: 1.0000
- 106 / 2: 6.0000
- 111 / 3: 11.0000
- 116 / 4: 16.0000
- 121 / 5: 1.0000
- 126 / 6: 6.0000
- 131 / 7: 11.0000
- 136 / 8: 16.0000
- 141 / 9: 1.0000
-list/nohead a[i=102:145:5]
- 102 / 1: 2.0000
- 107 / 2: 7.0000
- 112 / 3: 12.0000
- 117 / 4: 17.0000
- 122 / 5: 2.0000
- 127 / 6: 7.0000
- 132 / 7: 12.0000
- 137 / 8: 17.0000
- 142 / 9: 2.0000
-list/nohead a[i=103:145:5]
- 103 / 1: 3.0000
- 108 / 2: 8.0000
- 113 / 3: 13.0000
- 118 / 4: 18.0000
- 123 / 5: 3.0000
- 128 / 6: 8.0000
- 133 / 7: 13.0000
- 138 / 8: 18.0000
- 143 / 9: 3.0000
-list/nohead a[i=104:145:5]
- 104 / 1: 4.0000
- 109 / 2: 9.0000
- 114 / 3: 14.0000
- 119 / 4: 19.0000
- 124 / 5: 4.0000
- 129 / 6: 9.0000
- 134 / 7: 14.0000
- 139 / 8: 19.0000
- 144 / 9: 4.0000
-list/nohead a[i=105:145:5]
- 105 / 1: 5.0000
- 110 / 2: 10.0000
- 115 / 3: 15.0000
- 120 / 4: 20.0000
- 125 / 5: 5.0000
- 130 / 6: 10.0000
- 135 / 7: 15.0000
- 140 / 8: 20.0000
- 145 / 9: 5.0000
-list/nohead a[i=106:145:5]
- 106 / 1: 6.0000
- 111 / 2: 11.0000
- 116 / 3: 16.0000
- 121 / 4: 1.0000
- 126 / 5: 6.0000
- 131 / 6: 11.0000
- 136 / 7: 16.0000
- 141 / 8: 1.0000
-
-
-! ***** STRING TESTS *****
-set mode diag
-list/nohead str[i=18:23:2] ! using rdstride
- dealloc dynamic grid (G023) (AX010) NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A M:335 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: STR --> (G022) @XACT
- strip moduloing STR on X axis: 18 22 dset: 1
- rdstride STR C: 9 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing moduloing STR on X axis: 18 20 dset: 1
- -DELETE STR M:335 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- rdstride STR C: 9 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing moduloing STR on X axis: 2 2 dset: 1
- -DELETE STR M:335 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd STR M:335 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE STR M:334 dset: 1 I: 18 22 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- 18 / 1:"r"
- 20 / 2:"t"
- 22 / 3:"b"
-list/nohead str[i=1:25:3] ! no strides --> reads full region without strides
- dealloc dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: STR --> (G023) @XACT
- strip moduloing STR on X axis: 1 25 dset: 1
- reading STR M:334 dset: 1 I: 1 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing moduloing STR on X axis: 1 20 dset: 1
- regrid STR M:318 dset: 1 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
- 1 / 1:"a"
- 4 / 2:"d"
- 7 / 3:"g"
- 10 / 4:"j"
- 13 / 5:"m"
- 16 / 6:"p"
- 19 / 7:"s"
- 22 / 8:"b"
- 25 / 9:"e"
-set mode/last diag
-
-! less than one modulo cycle -- grab in 2 pieces
-! ... delta(2) a factor of npts(20)
-list/nohead str[i=18:23:2]
- 18 / 1:"r"
- 20 / 2:"t"
- 22 / 3:"b"
-list/nohead str[i=20:23:2]
- 20 / 1:"t"
- 22 / 2:"b"
-
-! ... delta(3) not a factor of npts(20)
-list/nohead str[i=17:23:3]
- 17 / 1:"q"
- 20 / 2:"t"
- 23 / 3:"c"
-list/nohead str[i=18:23:3]
- 18 / 1:"r"
- 21 / 2:"a"
-
-! more than one modulo cycle -- grab in one piece
-list/nohead str[i=1:45:5]
- 1 / 1:"a"
- 6 / 2:"f"
- 11 / 3:"k"
- 16 / 4:"p"
- 21 / 5:"a"
- 26 / 6:"f"
- 31 / 7:"k"
- 36 / 8:"p"
- 41 / 9:"a"
-list/nohead str[i=5:45:5]
- 5 / 1:"e"
- 10 / 2:"j"
- 15 / 3:"o"
- 20 / 4:"t"
- 25 / 5:"e"
- 30 / 6:"j"
- 35 / 7:"o"
- 40 / 8:"t"
- 45 / 9:"e"
-list/nohead str[i=101:145:5]
- 101 / 1:"a"
- 106 / 2:"f"
- 111 / 3:"k"
- 116 / 4:"p"
- 121 / 5:"a"
- 126 / 6:"f"
- 131 / 7:"k"
- 136 / 8:"p"
- 141 / 9:"a"
-list/nohead str[i=105:145:5]
- 105 / 1:"e"
- 110 / 2:"j"
- 115 / 3:"o"
- 120 / 4:"t"
- 125 / 5:"e"
- 130 / 6:"j"
- 135 / 7:"o"
- 140 / 8:"t"
- 145 / 9:"e"
-
-! ******** V54 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn_axis_viewports
-! bn_axis_viewports
-! *sh* 9/01
-
-! demonstrate vieport layout using the /AXES qualifier
-set wind/clear/aspect=1
-def view/axes allax
-
-! make guide lines
-show view allax ! text = 1
-
- name text xlimits ylimits mode
-
- ALLAX 1.00 0.00,1.00 0.00,1.00 axes
- current viewport is NONE
-set view allax
-plot/vs/line/hlim=0:1/vlim=0:1/nolab {0.5,0.5,,0,1},{0,1,,0.5,0.5}
-plot/vs/line/over/nolab {0.25,0.25,,0,1},{0,1,,0.25,0.25}
-plot/vs/line/over/nolab {0.75,0.75,,0,1},{0,1,,0.75,0.75}
-label 0.26,0.95,-1,0,.2 @P2 at AC<-At 0.25
-label 0.76,0.95,-1,0,.2 @P3 at AC<-At 0.75
-
-! a plot from 0.25 to 0.75
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid
-set view mid
-plot/vs/hlim=-1:1/vlim=-1:1/line/i=1:200 cos(i/15),sin(i/15)
-show view mid
-
- name text xlimits ylimits mode
-
- MID 1.00 0.25,0.75 0.25,0.75 axes
- current viewport is MID
-ppl list xaxis
-
-
- XAXIS QUALITIES
- LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 4.74E+00 CSIZE= 1.00E-01
- TOP AXIS= ON BOTTOM AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.20E+00 AUTO LABELLING
-ppl list yaxis
-
-
- YAXIS QUALITIES
- LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 4.74E+00 CSIZE= 1.00E-01
- LEFT AXIS= ON RIGHT AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.40E+00 AUTO LABELLING
-
-! guidelines showing origin, axlen, white space
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
-set view mid2
-ppl origin 0,0
-define symbol xaxl `($PPL$WIDTH)/2`
- !-> define symbol xaxl 4.737
-define symbol yaxl `($PPL$HEIGHT)/2`
- !-> define symbol yaxl 4.737
-ppl axlen `1.2 + ($xaxl) + 1.0`,`1.4 + ($yaxl) + 1.4`
- !-> ppl axlen 6.937,7.537
-plot/vs/hlim=-1.2:`($xaxl)+1.0`:0.2/vlim=-1.4:`($yaxl)+1.4`:0.2/nolab/nolab {0,($xaxl)}, {0,($yaxl)}
- !-> plot/vs/hlim=-1.2:5.737:0.2/vlim=-1.4:6.137:0.2/nolab/nolab {0,4.737}, {0,4.737}
-
-! again with scale determined automatically
-! make guide lines
-set window/clear
-set view allax
-plot/vs/line/hlim=0:1/vlim=0:1/nolab {0.5,0.5,,0,1},{0,1,,0.5,0.5}
-plot/vs/line/over/nolab {0.25,0.25,,0,1},{0,1,,0.25,0.25}
-plot/vs/line/over/nolab {0.75,0.75,,0,1},{0,1,,0.75,0.75}
-label 0.26,0.95,-1,0,.2 @P2 at AC<-At 0.25
-label 0.76,0.95,-1,0,.2 @P3 at AC<-At 0.75
-
-! a plot from 0.25 to 0.75
-def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid
-set view mid
-plot/vs/hlim=-1:1/vlim=-1:1/line/i=1:200/noyadj cos(i/15),sin(i/15)
-show view mid
-
- name text xlimits ylimits mode
-
- MID 0.72 0.25,0.75 0.25,0.75 axes
- current viewport is MID
-ppl list xaxis
-
-
- XAXIS QUALITIES
- LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 5.57E+00 CSIZE= 1.00E-01
- TOP AXIS= ON BOTTOM AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.20E+00 AUTO LABELLING
-ppl list yaxis
-
-
- YAXIS QUALITIES
- LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 5.57E+00 CSIZE= 1.00E-01
- LEFT AXIS= ON RIGHT AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.40E+00 AUTO LABELLING
-
-! guidelines showing origin, axlen, white space
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
-set view mid2
-ppl origin 0,0
-define symbol xaxl `($PPL$WIDTH)/2`
- !-> define symbol xaxl 4.737
-define symbol yaxl `($PPL$HEIGHT)/2`
- !-> define symbol yaxl 4.737
-ppl axlen `1.2 + ($xaxl) + 1.0`,`1.4 + ($yaxl) + 1.4`
- !-> ppl axlen 6.937,7.537
-plot/vs/hlim=-1.2:`($xaxl)+1.0`:0.2/vlim=-1.4:`($yaxl)+1.4`:0.2/nolab/line {0,($xaxl)}, {0,($yaxl)}
- !-> plot/vs/hlim=-1.2:5.737:0.2/vlim=-1.4:6.137:0.2/nolab/line {0,4.737}, {0,4.737}
-
-set wind/clear
-
-! a full window plot
-set view allax
-plot/vs/hlim=-1:1/vlim=-1:1/line/i=1:200/noyadj cos(i/15),sin(i/15)
-show view mid
-
- name text xlimits ylimits mode
-
- MID 0.72 0.25,0.75 0.25,0.75 axes
- current viewport is ALLAX
-
-set wind/clear
-
-def view/axes/xlim=0:0.5/ylim=0:0.5/text=1 llax
-set view llax
-PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
- XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
- TOP AXIS= ON BOTTOM AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 0.00E+00 AUTO LABELLING
-ppl list yaxis
-
-
- YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
- LEFT AXIS= ON RIGHT AXIS= ON
- AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 0.00E+00 AUTO LABELLING
-
-def view/axes/xlim=0:0.5/ylim=0.5:1/text=1 lrax
-set view lrax
-PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
- XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
- TOP AXIS= ON BOTTOM AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 0.00E+00 AUTO LABELLING
-ppl list yaxis
-
-
- YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
- LEFT AXIS= ON RIGHT AXIS= ON
- AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.40E+00 AUTO LABELLING
-
-def view/axes/xlim=0.5:1/ylim=0:0.5/text=1 ulax
-set view ulax
-PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
- XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
- TOP AXIS= ON BOTTOM AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.20E+00 AUTO LABELLING
-ppl list yaxis
-
-
- YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
- LEFT AXIS= ON RIGHT AXIS= ON
- AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 0.00E+00 AUTO LABELLING
-
-def view/axes/xlim=0.5:1/ylim=0.5:1/text=1 urax
-set view urax
-PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
- XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
- TOP AXIS= ON BOTTOM AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.20E+00 AUTO LABELLING
-ppl list yaxis
-
-
- YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
- LEFT AXIS= ON RIGHT AXIS= ON
- AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.40E+00 AUTO LABELLING
-
-! again with viewport scaling determined automatically
-set wind/clear
-
-def view/axes/xlim=0:0.5/ylim=0:0.5 llax
-show view llax
-
- name text xlimits ylimits mode
-
- LLAX 0.60 0.00,0.50 0.00,0.50 axes
- current viewport is URAX
-set view llax
-PLOT/VS/LINE/I=1:314/nolab i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
- XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
- TOP AXIS= ON BOTTOM AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 0.00E+00 AUTO LABELLING
-ppl list yaxis
-
-
- YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
- LEFT AXIS= ON RIGHT AXIS= ON
- AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 0.00E+00 AUTO LABELLING
-
-def view/axes/xlim=0:0.5/ylim=0.5:1 lrax
-show view lrax
-
- name text xlimits ylimits mode
-
- LRAX 0.60 0.00,0.50 0.50,1.00 axes
- current viewport is LLAX
-set view lrax
-PLOT/VS/LINE/I=1:314/nolab i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
- XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
- TOP AXIS= ON BOTTOM AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 0.00E+00 AUTO LABELLING
-ppl list yaxis
-
-
- YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
- LEFT AXIS= ON RIGHT AXIS= ON
- AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.40E+00 AUTO LABELLING
-
-def view/axes/xlim=0.5:1/ylim=0:0.5 ulax
-show view ulax
-
- name text xlimits ylimits mode
-
- ULAX 0.61 0.50,1.00 0.00,0.50 axes
- current viewport is LRAX
-set view ulax
-PLOT/VS/LINE/I=1:314/nolab i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
- XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
- TOP AXIS= ON BOTTOM AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.20E+00 AUTO LABELLING
-ppl list yaxis
-
-
- YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
- LEFT AXIS= ON RIGHT AXIS= ON
- AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 0.00E+00 AUTO LABELLING
-
-def view/axes/xlim=0.5:1/ylim=0.5:1 urax
-show view urax
-
- name text xlimits ylimits mode
-
- URAX 0.61 0.50,1.00 0.50,1.00 axes
- current viewport is ULAX
-set view urax
-PLOT/VS/LINE/I=1:314/nolab i*cos(i/20),i*sin(i/20)
-ppl list xaxis
-
-
- XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
- TOP AXIS= ON BOTTOM AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.20E+00 AUTO LABELLING
-ppl list yaxis
-
-
- YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
- LEFT AXIS= ON RIGHT AXIS= ON
- AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.40E+00 AUTO LABELLING
-
-cancel view
-go ptest
-! Description: create a simple test line plot
-
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
-
-ppl list xaxis
-
-
- XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 7.27E+00 CSIZE= 1.00E-01
- TOP AXIS= ON BOTTOM AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.20E+00 AUTO LABELLING
-ppl list yaxis
-
-
- YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.67E+00 CSIZE= 1.00E-01
- LEFT AXIS= ON RIGHT AXIS= ON
- AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.40E+00 AUTO LABELLING
-
-GO bn_reset
-cancel mode verify
-GO bn_strings
-! bn_strings.jnl
-
-! 7/01 - test string syntax and behaviors
-
-! 5/4/05 acm remove calls to writev5d, shared obj external function
-! (put in separate file bn_ef_v5d_strings)
-
-sh mode stupid
- MODE STATE ARGUMENT
- STUPID SET
-cancel mode stupid ! for testing in double precision
-
-
-! some test files
-sp rm -f *.str_test *.string_tst
-sp touch dummy1.str_test dummy2.str_test dummy3.str_test dummy4.str_test dummy5.str_test dummy6.str_test dummy7.str_test dummy8.str_test dummy9.str_test
-sp touch dummy1.string_tst dummy2.string_tst dummy3.string_tst dummy4.string_tst dummy5.string_tst dummy6.string_tst dummy7.string_tst dummy8.string_tst
-
-cancel data/all
-
-let a = "testa.v5d"
-list a
- VARIABLE : "testa.v5d"
- "testa.v5d"
-
-let b = "goodbye"
-list a,b
- Column 1: A is "testa.v5d"
- Column 2: B is "goodbye"
- A B
-I / *: "testa.v5d" "goodbye"
-
-let a = {"hello","goodbye", "wave to me"}
-list a
- VARIABLE : {"hello","goodbye", "wave to me"}
- SUBSET : 3 points (X)
- 1 / 1:"hello"
- 2 / 2:"goodbye"
- 3 / 3:"wave to me"
-list a[i=2:3]
- VARIABLE : {"hello","goodbye", "wave to me"}
- SUBSET : 2 points (X)
- 2 / 2:"goodbye"
- 3 / 3:"wave to me"
-list/order=x a[i=2:3]
- VARIABLE : {"hello","goodbye", "wave to me"}
- SUBSET : 2 points (X)
- 2 3
- 2 3
- "goodbye" "wave to me"
-
-let e = {,"string1",, "string2"}
-list e
- VARIABLE : {,"string1",, "string2"}
- SUBSET : 4 points (X)
- 1 / 1:""
- 2 / 2:"string1"
- 3 / 3:""
- 4 / 4:"string2"
-
-list {"string","s2","very long string"},5
- X: 0.5 to 3.5
- Column 1: {"string","s2","very long string"}
- Column 2: cnst is constant
- {"string cnst
-1 / 1: "string" 5.00000
-2 / 2: "s2" 5.00000
-3 / 3: "very long string" 5.00000
-
-set mode ignore
- let e = {"string1" "string2"}
- list e
- let e = {,"string1",5, "string2"}
- list e
-set mode/last ignore
-
-* mixed single and double quotes
-list/nohead {",a",',b'}
- 1 / 1:",a"
- 2 / 2:",b"
-list/nohead {'"'}, {"'"}
-I / *: """ "'"
-
-let d = {"INITIALIZE", spawn:"ls *.str_test", "INSERT", spawn:"ls *.string_tst"}
-list d
- VARIABLE : {"INITIALIZE", SPAWN:"ls *.str_test", "INSERT", SPAWN:"ls *.string_tst"}
- SUBSET : 19 points (X)
- 1 / 1:"INITIALIZE"
- 2 / 2:"dummy1.str_test"
- 3 / 3:"dummy2.str_test"
- 4 / 4:"dummy3.str_test"
- 5 / 5:"dummy4.str_test"
- 6 / 6:"dummy5.str_test"
- 7 / 7:"dummy6.str_test"
- 8 / 8:"dummy7.str_test"
- 9 / 9:"dummy8.str_test"
- 10 / 10:"dummy9.str_test"
- 11 / 11:"INSERT"
- 12 / 12:"dummy1.string_tst"
- 13 / 13:"dummy2.string_tst"
- 14 / 14:"dummy3.string_tst"
- 15 / 15:"dummy4.string_tst"
- 16 / 16:"dummy5.string_tst"
- 17 / 17:"dummy6.string_tst"
- 18 / 18:"dummy7.string_tst"
- 19 / 19:"dummy8.string_tst"
-stat d
-
- {"INITIALIZE", SPAWN:"ls *.str_test", "INSERT", SPAWN:"ls *.string_tst"}
- X: 0.5 to 19.5
- Y: N/A
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
- Total # of strings: 19 (19*1*1*1*1*1)
- Maximum string length: 17
-load d
-
-set mode ignore
- plot d
- define axis/x xax = d
-set mode/last ignore
-
-! netCDF file IO
-let a = {"hello"} ! note - a is an array of length 1
-save/clobber/file=test_string.cdf a
-canc var a
-use test_string
-sh dat test_string
- currently SET data sets:
- 1> ./test_string.cdf (default)
- name title I J K L M N
- A {"hello"} 1:1 ... ... ... ... ...
-
-list a
- VARIABLE : {"hello"}
- FILENAME : test_string.cdf
- X : 1
- "hello"
-canc data test_string
-
-let b = "one line of text" ! note - b is scalar
-save/clobber/file=test_string.cdf b
-canc var b
-use test_string
-sh dat test_string
- currently SET data sets:
- 1> ./test_string.cdf (default)
- name title I J K L M N
- B "one line of text" ... ... ... ... ... ...
-
-list b
- VARIABLE : "one line of text"
- FILENAME : test_string.cdf
- "one line of text"
-canc data test_string
-
-let a = {"hello","goodbye", "wave to me"}
-let b = "one line of text"
-save/clobber/file=test_string.cdf a,b
-sp echo "bn_strings.jnl --- 1 original file" >> all_ncdump.out
-sp ncdump test_string.cdf >> all_ncdump.out
-save/append/file=test_string.cdf d
-let b2 = "two line of text" ! the same string length as b
-sp echo "bn_strings.jnl --- 2 append to file" >> all_ncdump.out
-save/append/file=test_string.cdf b2
-canc var/all
-use test_string.cdf
-show data test_string
- currently SET data sets:
- 1> ./test_string.cdf (default)
- name title I J K L M N
- A {"hello","goodbye", "wave to me 1:3 ... ... ... ... ...
- B "one line of text" ... ... ... ... ... ...
- D {"INITIALIZE", SPAWN:"ls *.str_ 1:19 ... ... ... ... ...
- B2 "two line of text" ... ... ... ... ... ...
-
-list/nohead a
- 1 / 1:"hello"
- 2 / 2:"goodbye"
- 3 / 3:"wave to me"
-list/nohead b
- "one line of text"
-
-set var/title="partial filename list" d
-save/clobber/file=test_string2.cdf/heading=enhanced d[i=2:5]
-sp mv test_string2.cdf test_string.cdf
-sp echo "bn_strings.jnl --- 3 enhanced heading" >> all_ncdump.out
-sp ncdump test_string.cdf >> all_ncdump.out
-canc data/all
-use test_string
-show data test_string
- currently SET data sets:
- 1> ./test_string.cdf (default)
- name title I J K L M N
- D partial filename list 2:5 ... ... ... ... ...
-
-list d
- VARIABLE : partial filename list
- FILENAME : test_string.cdf
- SUBSET : 4 points (X)
- 2 / 2:"dummy1.str_test"
- 3 / 3:"dummy2.str_test"
- 4 / 4:"dummy3.str_test"
- 5 / 5:"dummy4.str_test"
-
-! regridding tests
-let a = {spawn:"ls *.str_test"}
-list a
- VARIABLE : {SPAWN:"ls *.str_test"}
- SUBSET : 9 points (X)
- 1 / 1:"dummy1.str_test"
- 2 / 2:"dummy2.str_test"
- 3 / 3:"dummy3.str_test"
- 4 / 4:"dummy4.str_test"
- 5 / 5:"dummy5.str_test"
- 6 / 6:"dummy6.str_test"
- 7 / 7:"dummy7.str_test"
- 8 / 8:"dummy8.str_test"
- 9 / 9:"dummy9.str_test"
-define axis/x=0.1:0.7:.1 xasn
-list a[gx=xasn at asn]
- VARIABLE : {SPAWN:"ls *.str_test"}
- regrid: 0.1 delta on X at ASN
- SUBSET : 7 points (X)
- 0.1 / 1:"dummy1.str_test"
- 0.2 / 2:"dummy2.str_test"
- 0.3 / 3:"dummy3.str_test"
- 0.4 / 4:"dummy4.str_test"
- 0.5 / 5:"dummy5.str_test"
- 0.6 / 6:"dummy6.str_test"
- 0.7 / 7:"dummy7.str_test"
-define axis/x=1:6:.5 xxact
-list a[gx=xxact at xact]
- VARIABLE : {SPAWN:"ls *.str_test"}
- regrid: 0.5 delta on X at XACT
- SUBSET : 11 points (X)
- 1 / 1:"dummy1.str_test"
- 1.5 / 2:""
- 2 / 3:"dummy2.str_test"
- 2.5 / 4:""
- 3 / 5:"dummy3.str_test"
- 3.5 / 6:""
- 4 / 7:"dummy4.str_test"
- 4.5 / 8:""
- 5 / 9:"dummy5.str_test"
- 5.5 / 10:""
- 6 / 11:"dummy6.str_test"
-define axis/x=1:6:.4 xnrst
-list a[gx=xnrst at nrst]
- VARIABLE : {SPAWN:"ls *.str_test"}
- regrid: 0.4 delta on X at NRST
- SUBSET : 14 points (X)
- 1 / 1:"dummy1.str_test"
- 1.4 / 2:"dummy1.str_test"
- 1.8 / 3:"dummy2.str_test"
- 2.2 / 4:"dummy2.str_test"
- 2.6 / 5:"dummy3.str_test"
- 3 / 6:"dummy3.str_test"
- 3.4 / 7:"dummy3.str_test"
- 3.8 / 8:"dummy4.str_test"
- 4.2 / 9:"dummy4.str_test"
- 4.6 / 10:"dummy5.str_test"
- 5 / 11:"dummy5.str_test"
- 5.4 / 12:"dummy5.str_test"
- 5.8 / 13:"dummy6.str_test"
- 6.2 / 14:"dummy6.str_test"
-set mode ignore
- list a[gx=xnrst]
- list a[gx=xnrst at ave]
- list a[gx=xnrst at var]
- list a[gx=xnrst at ngd]
- list a[gx=xnrst at max]
- list a[gx=xnrst at sum]
- set axis/modulo xnrst
- list a[gx=xnrst at mod]
-set mode/last ignore
-
-! functions returning strings
-list/nohead xsequence({"a","b","c","d","e"})
- 1 / 1:"a"
- 2 / 2:"b"
- 3 / 3:"c"
- 4 / 4:"d"
- 5 / 5:"e"
-sh grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid XABSTRACT
- GRID XABSTRACT
- name axis # pts start end
- ABSTRACT X 99999999 r 1 1.E+08
- normal Y
- normal Z
- normal T
- normal E
- normal F
-list/nohead ysequence({"a","b","c","d","e"})
- 1 / 1:"a"
- 2 / 2:"b"
- 3 / 3:"c"
- 4 / 4:"d"
- 5 / 5:"e"
-sh grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid YABSTRACT
- GRID YABSTRACT
- name axis # pts start end
- normal X
- ABSTRACT Y 99999999 r 1 1.E+08
- normal Z
- normal T
- normal E
- normal F
-list/nohead zsequence({"a","b","c","d","e"})
- 1 / 1:"a"
- 2 / 2:"b"
- 3 / 3:"c"
- 4 / 4:"d"
- 5 / 5:"e"
-sh grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid ZABSTRACT
- GRID ZABSTRACT
- name axis # pts start end
- normal X
- normal Y
- ABSTRACT Z 99999999 r 1 1.E+08
- normal T
- normal E
- normal F
-list/nohead tsequence({"a","b","c","d","e"})
- 1 / 1:"a"
- 2 / 2:"b"
- 3 / 3:"c"
- 4 / 4:"d"
- 5 / 5:"e"
-sh grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid TABSTRACT
- GRID TABSTRACT
- name axis # pts start end
- normal X
- normal Y
- normal Z
- ABSTRACT T 99999999 r 1 1.E+08
- normal E
- normal F
-let a = TSEQUENCE({"a","b","c","d","e"})
-list/l=2:3 a
- VARIABLE : TSEQUENCE({"a","b","c","d","e"})
- SUBSET : 2 points (T)
- 2 / 2:"b"
- 3 / 3:"c"
-
-list/nohead {"a",,"b"}
- 1 / 1:"a"
- 2 / 2:""
- 3 / 3:"b"
-list/nohead samplei({"a","b",,"d","e","f"},{3,2,,1})
- 1 / 1:""
- 2 / 2:"b"
- 3 / 3:""
- 4 / 4:"a"
-list/nohead samplej(YSEQUENCE({"a","b",,"d","e","f"}),{3,2,,1})
- 1 / 1:""
- 2 / 2:"b"
- 3 / 3:""
- 4 / 4:"a"
-list/nohead samplek(ZSEQUENCE({"a","b",,"d","e","f"}),{3,2,,1})
- 1 / 1:""
- 2 / 2:"b"
- 3 / 3:""
- 4 / 4:"a"
-list/nohead samplel(TSEQUENCE({"a","b",,"d","e","f"}),{3,2,,1})
- 1 / 1:""
- 2 / 2:"b"
- 3 / 3:""
- 4 / 4:"a"
-
-let a = {"a",," ",""}
-let b = samplej(YSEQUENCE({"a","b",,"d","e","f"}),{2,,1})
-save/clobber/file=foo.cdf a,b
-sp echo "bn_strings.jnl --- 4 sample and ysequence functions on string var" >> all_ncdump.out
-sp ncdump foo.cdf >> all_ncdump.out
-
-let a = RESHAPE({"a","b",,"d","e","f"},I[i=1:3]+j[j=1:2])
-list a
- VARIABLE : RESHAPE({"a","b",,"d","e","f"},I[I=1:3]+J[J=1:2])
- SUBSET : 3 by 2 points (X-Y)
- 1 2 3
- 1 2 3
- 1 / 1:"a""b"""
- 2 / 2:"d""e""f"
-list/i=2:3 a
- VARIABLE : RESHAPE({"a","b",,"d","e","f"},I[I=1:3]+J[J=1:2])
- SUBSET : 2 by 2 points (X-Y)
- 2 3
- 2 3
- 1 / 1:"b"""
- 2 / 2:"e""f"
-list reshape(a,I[I=1:2]+J[J=1:3])
- VARIABLE : RESHAPE(A,I[I=1:2]+J[J=1:3])
- SUBSET : 2 by 3 points (X-Y)
- 1 2
- 1 2
- 1 / 1:"a""b"
- 2 / 2:"" "d"
- 3 / 3:"e""f"
-list reshape(a,I[I=1:3]+J[J=1:3])
- VARIABLE : RESHAPE(A,I[I=1:3]+J[J=1:3])
- SUBSET : 3 by 2 points (X-Y)
- 1 2 3
- 1 2 3
- 1 / 1:"a""b"""
- 2 / 2:"d""e""f"
-list reshape(a,I[I=1:1]+J[J=1:3])
- VARIABLE : RESHAPE(A,I[I=1:1]+J[J=1:3])
- SUBSET : 3 points (Y)
- X : 1
- 1
- 1
- 1 / 1:"a"
- 2 / 2:"b"
- 3 / 3:""
-
-! logical operators applied to strings
-list {"a","b","c"} EQ YSEQUENCE({"A","B","C"}) ! case insensitive
- VARIABLE : {"a","b","c"} EQ YSEQUENCE({"A","B","C"})
- SUBSET : 3 by 3 points (X-Y)
- 1 2 3
- 1 2 3
- 1 / 1: 1.00000 0.00000 0.00000
- 2 / 2: 0.00000 1.00000 0.00000
- 3 / 3: 0.00000 0.00000 1.00000
-list {"a","b","c"} NE YSEQUENCE({"a","B","c"})
- VARIABLE : {"a","b","c"} NE YSEQUENCE({"a","B","c"})
- SUBSET : 3 by 3 points (X-Y)
- 1 2 3
- 1 2 3
- 1 / 1: 0.00000 1.00000 1.00000
- 2 / 2: 1.00000 0.00000 1.00000
- 3 / 3: 1.00000 1.00000 0.00000
-list/nohead "b" LT {"a","b","c"}
- 1 / 1: 0.00000
- 2 / 2: 0.00000
- 3 / 3: 1.00000
-list/nohead "b" LE {"a","b","c"}
- 1 / 1: 0.00000
- 2 / 2: 1.00000
- 3 / 3: 1.00000
-list/nohead "b" EQ {"a","b","c"}
- 1 / 1: 0.00000
- 2 / 2: 1.00000
- 3 / 3: 0.00000
-list/nohead "b" GE {"a","b","c"}
- 1 / 1: 1.00000
- 2 / 2: 1.00000
- 3 / 3: 0.00000
-list/nohead "b" GT {"a","b","c"}
- 1 / 1: 1.00000
- 2 / 2: 0.00000
- 3 / 3: 0.00000
-
-! special hacks allow "+" to be a concatenation operator
-list/nohead "hello" + ", friend"
- "hello, friend"
-list/nohead {"hello","goodbye"}+", "+YSEQUENCE({"old","new"})+" "+"friend"
- 1 / 1:"hello, old friend" "goodbye, old friend"
- 2 / 2:"hello, new friend" "goodbye, new friend"
-list/nohead SAMPLEI(XSEQUENCE({"hello","goodbye"}+", "+YSEQUENCE({"old","new"})+" "+"friend"), {2,3})
- 1 / 1:"goodbye, old friend"
- 2 / 2:"hello, new friend"
-
-! special hacks allow IF-THEN-ELSE to apply to strings
-list/nohead if {0,1} THEN "hello"
- 1 / 1:""
- 2 / 2:"hello"
-list/nohead if {0,1} THEN "hello" ELSE "goodbye"
- 1 / 1:"goodbye"
- 2 / 2:"hello"
-list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "friend"
- 1 / 1:"now, friend" "now, hello, friend"
- 2 / 2:"then, friend" "then, hello, friend"
-list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
- 1 / 1:"now, goodbye, my friend" "now, hello, friend"
- 2 / 2:"then, goodbye, my friend""then, hello, friend"
-list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
- 1 / 1:........
- 2 / 2:........
-list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+99 ELSE "goodbye"+", my ") + "friend"
- 1 / 1:........
- 2 / 2:........
-list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+99) + "friend"
- 1 / 1:........
- 2 / 2:........
-list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + 99
- 1 / 1:........
- 2 / 2:........
-
-! numerical operators applied to strings
-list/nohead "b" - {"a","b"}
- 1 / 1:....
- 2 / 2:....
-list/nohead "b" * {"a","b"}
- 1 / 1:....
- 2 / 2:....
-list/nohead "b" / {"a","b"}
- 1 / 1:....
- 2 / 2:....
-list/nohead "b" ^ {"a","b"}
- 1 / 1:....
- 2 / 2:....
-list/nohead {"a","b"} + 1
- 1 / 1:....
- 2 / 2:....
-list/nohead 1 + {"a","b"}
- 1 / 1:....
- 2 / 2:....
-list/nohead 1 - {"a","b"}
- 1 / 1:....
- 2 / 2:....
-list/nohead SIN({"a","b","c"})
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
-list/nohead MAX("a",{"a","b","c"})
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
-list/nohead MAX(1,{"a","b","c"})
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
-
-! transformations applied to strings
-let a = {"a","b","c","d"}
-list a[i=@shf]
- VARIABLE : {"a","b","c","d"}
- shifted by 1 pts on X
- SUBSET : 4 points (X)
- 1 / 1:"b"
- 2 / 2:"c"
- 3 / 3:"d"
- 4 / 4:""
-list a[i=@shf:-1]
- VARIABLE : {"a","b","c","d"}
- shifted by -1 pts on X
- SUBSET : 4 points (X)
- 1 / 1:""
- 2 / 2:"a"
- 3 / 3:"b"
- 4 / 4:"c"
-list a[i=@ave]
- VARIABLE : {"a","b","c","d"}
- X : 0.5 to 4.5 (averaged)
- ""
-list a[i=@sbx]
- VARIABLE : {"a","b","c","d"}
- box smoothed by 3 pts on X
- SUBSET : 4 points (X)
- 1 / 1:""
- 2 / 2:""
- 3 / 3:""
- 4 / 4:""
-list a[i=@rsum]
- VARIABLE : {"a","b","c","d"}
- running sum on X
- SUBSET : 4 points (X)
- 1 / 1:""
- 2 / 2:""
- 3 / 3:""
- 4 / 4:""
-
-set mode/last stupid
-
-GO bn_reset
-cancel mode verify
-GO bn_axcontrol
- ! NOAA/PMEL TMAP
- ! Program FERRET (alpha)
- ! Version 5.33 - 07/12/01
- ! 12-Jul-01 14:47
-
-define axis/t=1-jan-0001:20-jan-0001:1 begtime
-let tpts = t[gt=begtime]
-set view ul
-plot/axes=1,0,0,1 sin(tpts/15)
-
-set view ur
-plot/axes=1,0,0,1/trans sin(tpts/15)
-
-set view ll
-plot/axes/trans sin(tpts/15)
-
-set view lr
-plot/noaxes sin(tpts/15)
-
-! contour shade and fill, with /TRANS
-
-use coads_climatology
-set view ul
-contour/l=1/axes=0,1,1,0 sst
-
-set view ur
-shade/l=1/axes=1,0,1,0/trans sst
-
-set view ll
-contour/l=1/axes=0,0,0,0/trans sst
-
-set view lr
-fill/l=1/axes sst
-
-! polygon
-
-can view
-polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
-
-GO bn_reset
-cancel mode verify
-GO bn_vec_curv
-! bn_vec_curv.jnl
-!
-! vector plots with curvilinear coordinates
-!
-! ACM 10/23/01
-! 9/12/02 vary the lengths of the vectors in 1st two plots.
-! ACM 4/2005 set mode meta to save one of the plots for the metafile checks.
-! and cancel mode logo, so that .plt files are comparable.
-
-set mode meta vec_curv.plt
-can mode logo
-use coads_climatology
-set reg/l=1
-go mp_orthographic 230 60
-set grid sst
-go mp_aspect
-
-let yy = if abs(y[gt=sst]) le 20 then 10 else (100-abs(y[gt=sst]+1))/ 10.
-
-vec/noax/xskip=6/yskip=6/len=20/title="View From Space" sst*0,(sst*0+yy)*mp_mask, x_page,y_page
-vec/over/xskip=6/yskip=6/len=20 (sst*0+yy)*mp_mask,sst*0, x_page,y_page
-vec/over/xskip=6/yskip=6/color=blue/len=20 (sst*0+yy)*mp_mask,(sst*0+yy)*mp_mask, x_page,y_page
-
-can mode meta
-
-! Sinusoidal projection; put data at the poles
-
-use coads_climatology
-go mp_sinusoidal
-set grid sst
-go mp_aspect
-
-let fsst = missing(sst,5)
-let yy = if abs(y[gt=sst]) le 20 then 10 else (100-abs(y[gt=sst]+1))/ 10.
-
-set reg/l=1
-vec/noax/xskip=16/yskip=8/len=15/title="Sinusoidal Projection" fsst*0,fsst*0+yy*mp_mask, x_page,y_page
-vec/over/xskip=16/yskip=8/len=15 fsst*0+yy*mp_mask,fsst*0, x_page,y_page
-
-! Irregular axes, and manual axis scaling
-set win/asp=1
-set mode meta vec_curv2.plt
-
-def axis/from_data/x/name=xirr {0,1,2,4,6,7,8,10,14,16,20,23,24}
-def axis/from_data/y/name=yirr {0,2,4,5,6,7,8,9,12,13,14,15,18}
-let a = 0.1*x[gx=xirr] + 4*y[gy=yirr]
-let b = 3*x[gx=xirr] + y[gy=yirr]
-set view ul
-vec a,b
-
-! project it to a regular grid
-let mx = i[i=1:13]
-let my = j[j=1:13]
-let mxpage = mx + 0*my
-let mypage = my+0*mx
-set view ll
-vec/title="Regular grid" a,b,mxpage,mypage
-
-! Now stretch the grid
-
-set view lr
-let mx = exp(x[x=2:4.4:0.2])
-let my = exp(y[y=1:3.4:0.2])
-
-let mxpage = mx + 0*my
-let mypage = my + 0*mx
-vec/title="Stretched grid" a,b,mxpage,mypage
-
-can mode meta
-set mode logo
-
-GO bn_reset
-cancel mode verify
-GO bn_delimited_read
-! bn_delimited_read.jnl
-! 10/01 *sh*
-
-! test delimiited (spreadsheet) reads in Ferret
-
-! look at the file
-spawn cat bn_delimited_read_1.dat
-col1,col2,col3,col4,col5
-one,,1.1,24S,130E,,1e1,"word 1"
- two,,2.2,24N,130W,2S,,"word 2"
-three,,3.3,24,130,3N,3e-2," wd 3 "
-
-five,,4.4,-24,-130,91, -4e2 , "word 4" , aa , 77
-extra line
-
-! try the file as-is: record 1 contains 5 column headings (text)
-! so V1 through V5 analyze to be text
-file/format=delim bn_delimited_read_1.dat
-show data/var
- currently SET data sets:
- 1> ./bn_delimited_read_1.dat (default)
-
- name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- Data type = TEXT
- Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V2 V2 1:20480 ... ... ... ... ...
- Data type = TEXT
- Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V3 V3 1:20480 ... ... ... ... ...
- Data type = TEXT
- Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V4 V4 1:20480 ... ... ... ... ...
- Data type = TEXT
- Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V5 V5 1:20480 ... ... ... ... ...
- Data type = TEXT
- Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V6 V6 1:20480 ... ... ... ... ...
- Data type = TEXT
- Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V7 V7 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V8 V8 1:20480 ... ... ... ... ...
- Data type = TEXT
- Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V9 V9 1:20480 ... ... ... ... ...
- Data type = TEXT
- Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V10 V10 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
-
- /DELIMITERS="\t,\,"
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
- X: 0.5 to 7.5
- Column 1: V1
- Column 2: V2
- Column 3: V3
- Column 4: V4
- Column 5: V5
- Column 6: V6
- Column 7: V7
- Column 8: V8
- Column 9: V9
- Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1: "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
-2 / 2: "one" " " "1.1" "24S" "130E" " " 10.000 "word 1" " " ....
-3 / 3: "two" " " "2.2" "24N" "130W" "2S" .... "word 2" " " ....
-4 / 4: "three" " " "3.3" "24" "130" "3N" 0.030 " wd 3 " " " ....
-5 / 5: " " " " " " " " " " " " .... " " " " ....
-6 / 6: "five" " " "4.4" "-24" "-130" "91" -400.000 "word 4" "aa" 77.0000
-7 / 7: "extra line" " " " " " " " " " " .... " " " " ....
-
-! manually name the variables while still automatically analyzing data types
-file/format=delim/var=a1,a2,a3,a4,a5,a6,a7 bn_delimited_read_1.dat
-list a1,a2,a3,a4,a5,a6,a7
- DATA SET: ./bn_delimited_read_1.dat
- X: 0.5 to 7.5
- Column 1: A1
- Column 2: A2
- Column 3: A3
- Column 4: A4
- Column 5: A5
- Column 6: A6
- Column 7: A7
- A1 A2 A3 A4 A5 A6 A7
-1 / 1: "col1" "col2" "col3" "col4" "col5" " " ....
-2 / 2: "one" " " "1.1" "24S" "130E" " " 10.000
-3 / 3: "two" " " "2.2" "24N" "130W" "2S" ....
-4 / 4: "three" " " "3.3" "24" "130" "3N" 0.030
-5 / 5: " " " " " " " " " " " " ....
-6 / 6: "five" " " "4.4" "-24" "-130" "91" -400.000
-7 / 7: "extra line" " " " " " " " " " " ....
-
-! skip the first record to do a better "analysis" of the file fields
-! note that v3 is correctly analyzed as numeric
-file/format=delim/skip=1 bn_delimited_read_1.dat
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
- X: 0.5 to 6.5
- Column 1: V1
- Column 2: V2 is V2 (all values missing)
- Column 3: V3
- Column 4: V4 is V4 (degrees_north)(Latitude)
- Column 5: V5 is V5 (degrees_east)(Longitude)
- Column 6: V6
- Column 7: V7
- Column 8: V8
- Column 9: V9
- Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1: "one" ... 1.10000 -24.0000 130.000 " " 10.000 "word 1" " " ....
-2 / 2: "two" ... 2.20000 24.0000 -130.000 "2S" .... "word 2" " " ....
-3 / 3: "three" ... 3.30000 24.0000 130.000 "3N" 0.030 " wd 3 " " " ....
-4 / 4: " " ... .... .... .... " " .... " " " " ....
-5 / 5: "five" ... 4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa" 77.0000
-6 / 6: "extra line"... .... .... .... " " .... " " " " ....
-
-! insist that all columns be treated as string
-file/format=delim/skip=1/type=text bn_delimited_read_1.dat
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
- X: 0.5 to 6.5
- Column 1: V1
- Column 2: V2
- Column 3: V3
- Column 4: V4
- Column 5: V5
- Column 6: V6
- Column 7: V7
- Column 8: V8
- Column 9: V9
- Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1: "one" " " "1.1" "24S" "130E" " " "1e1" "word 1" " " " "
-2 / 2: "two" " " "2.2" "24N" "130W" "2S" " " "word 2" " " " "
-3 / 3: "three" " " "3.3" "24" "130" "3N" "3e-2" " wd 3 " " " " "
-4 / 4: " " " " " " " " " " " " " " " " " " " "
-5 / 5: "five" " " "4.4" "-24" "-130" "91" "-4e2" "word 4" "aa" "77"
-6 / 6: "extra line" " " " " " " " " " " " " " " " " " "
-
-! insist that all columns be treated as string and name the columns
-file/format=delim/skip=1/type=text/var=a1,a2,a3,a4,a5 bn_delimited_read_1.dat
-show data
- currently SET data sets:
- 1> ./bn_delimited_read_1.dat (default)
- name title I J K L M N
- A1 A1 1:20480 ... ... ... ... ...
- A2 A2 1:20480 ... ... ... ... ...
- A3 A3 1:20480 ... ... ... ... ...
- A4 A4 1:20480 ... ... ... ... ...
- A5 A5 1:20480 ... ... ... ... ...
-
-list a1,a2,a3,a4,a5
- DATA SET: ./bn_delimited_read_1.dat
- X: 0.5 to 6.5
- Column 1: A1
- Column 2: A2
- Column 3: A3
- Column 4: A4
- Column 5: A5
- A1 A2 A3 A4 A5
-1 / 1: "one" " " "1.1" "24S" "130E"
-2 / 2: "two" " " "2.2" "24N" "130W"
-3 / 3: "three" " " "3.3" "24" "130"
-4 / 4: " " " " " " " " " "
-5 / 5: "five" " " "4.4" "-24" "-130"
-6 / 6: "extra line" " " " " " " " "
-
-! insist that all columns be treated as numeric
-file/format=delim/skip=1/type=numeric bn_delimited_read_1.dat
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
- X: 0.5 to 6.5
- Column 1: V1
- Column 2: V2
- Column 3: V3
- Column 4: V4
- Column 5: V5
- Column 6: V6
- Column 7: V7
- Column 8: V8
- Column 9: V9
- Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1:...... 1.10000 .... .... .... 10.000...... ....
-2 / 2:...... 2.20000 .... .... .... .......... ....
-3 / 3:...... 3.30000 24.0000 130.000 .... 0.030...... ....
-4 / 4:...... .... .... .... .... .......... ....
-5 / 5:...... 4.40000 -24.0000 -130.000 91.0000 -400.000...... 77.0000
-6 / 6:...... .... .... .... .... .......... ....
-
-! insist that all columns be treated as latitude
-file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
- X: 0.5 to 6.5
- Column 1: V1 is V1 (degrees_north)(Latitude)
- Column 2: V2 is V2 (degrees_north)(Latitude)
- Column 3: V3 is V3 (degrees_north)(Latitude)
- Column 4: V4 is V4 (degrees_north)(Latitude)
- Column 5: V5 is V5 (degrees_north)(Latitude)
- Column 6: V6 is V6 (degrees_north)(Latitude)
- Column 7: V7 is V7 (degrees_north)(Latitude)
- Column 8: V8 is V8 (degrees_north)(Latitude)
- Column 9: V9 is V9 (degrees_north)(Latitude)
- Column 10: V10 is V10 (degrees_north)(Latitude)
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1:...... 1.10000 -24.0000 .... .... 10.000...... ....
-2 / 2:...... 2.20000 24.0000 .... -2.0000 .......... ....
-3 / 3:...... 3.30000 24.0000 130.000 3.0000 0.030...... ....
-4 / 4:...... .... .... .... .... .......... ....
-5 / 5:...... 4.40000 -24.0000 -130.000 91.0000 -400.000...... 77.0000
-6 / 6:...... .... .... .... .... .......... ....
-
-! read only the first line of the file
-spawn head -1 bn_delimited_read_1.dat
-col1,col2,col3,col4,col5
-define axis/x=1:1:1 x1
-define grid/x=x1 g1
-columns/grid=g1 bn_delimited_read_1.dat
- ! note 10 columns because auto-analysis of file doesnt stop at 1st record
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
- X: 1
- Column 1: V1
- Column 2: V2
- Column 3: V3
- Column 4: V4
- Column 5: V5
- Column 6: V6
- Column 7: V7
- Column 8: V8
- Column 9: V9
- Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-I / *: "col1" "col2" "col3" "col4" "col5" " "... " " " "....
-columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
-list c1,c2,c3,c4,c5
- DATA SET: ./bn_delimited_read_1.dat
- X: 1
- Column 1: C1
- Column 2: C2
- Column 3: C3
- Column 4: C4
- Column 5: C5
- C1 C2 C3 C4 C5
-I / *: "col1" "col2" "col3" "col4" "col5"
-
-! ==========
-cancel data/all
-! file using blank as a delimiter
-! Note record 1 has blanks at end of record
-! Note record of many blanks sandwiched in as record 2
-file/form=delimited bn_delimited_read_2.dat
-show data
- currently SET data sets:
- 1> ./bn_delimited_read_2.dat (default)
- name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
-
-file/form=delimited/delimiter=" " bn_delimited_read_2.dat
-show data
- currently SET data sets:
- 1> ./bn_delimited_read_2.dat (default)
- name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V2 V2 1:20480 ... ... ... ... ...
- (Time of day)
- V3 V3 1:20480 ... ... ... ... ...
- (all values missing)
-
-list v1,v2
- DATA SET: ./bn_delimited_read_2.dat
- X: 0.5 to 3.5
- Column 1: V1 is V1 (days)(Julian days since 1-Jan-1900)
- Column 2: V2 is V2 (hours)(Time of day)
- V1 V2
-1 / 1: 37965.0 12.5833
-2 / 2: .... ....
-3 / 3: 39051.0 13.7514
-
-! ==========
-! look at the date/time file
-spawn cat bn_delimited_read_date_time.dat
-12/1/99,1999-03-01,12:00, 13:45:36.5,12/1/99,1999-03-01,12:00, 13:45:36.5
-12/2/99,1999-03-02,01:00:13.5, 14:45:36.5,12/2/99,1999-03-02,01:00:13.5, 14:45:36.5
-12/3/99x,1999-03-03x,2:00x, 15:45x,12/3/99,1999-03-03,2:00, 15:45
-12/4/99,1999-03-04,03:00, 16:45:36.5, 12/4/99,1999-03-04,03:00, 16:45:36.5
-
-! try the file as-is
-! Note that record 3 has syntax errors in the first 4 fields
-columns bn_delimited_read_date_time.dat
-list v1,v2,v3,v4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
- X: 0.5 to 4.5
- Column 1: V1
- Column 2: V2
- Column 3: V3
- Column 4: V4
- Column 5: V5 is V5 (days)(Julian days since 1-Jan-1900)
- Column 6: V6 is V6 (days)(Julian days since 1-Jan-1900)
- Column 7: V7 is V7 (hours)(Time of day)
- Column 8: V8 is V8 (hours)(Time of day)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1: "12/1/99" "1999-03-01" "12:00" "13:45:36.5" 36493.0 36218.0 12.0000 13.7601
-2 / 2: "12/2/99" "1999-03-02" "01:00:13.5" "14:45:36.5" 36494.0 36219.0 1.0037 14.7601
-3 / 3: "12/3/99x" "1999-03-03x" "2:00x" "15:45x" 36495.0 36220.0 2.0000 15.7500
-4 / 4: "12/4/99" "1999-03-04" "03:00" "16:45:36.5" 36496.0 36221.0 3.0000 16.7601
-show data 2
- currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
- name title I J K L M N
- V1 V1 1:4 ... ... ... ... ...
- V2 V2 1:4 ... ... ... ... ...
- V3 V3 1:4 ... ... ... ... ...
- V4 V4 1:4 ... ... ... ... ...
- V5 V5 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V6 V6 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V7 V7 1:4 ... ... ... ... ...
- (Time of day)
- V8 V8 1:4 ... ... ... ... ...
- (Time of day)
-
-
-! sanity check date encodings
-define axis/t/units=days/T0=1-jan-1900 tax = v5
-show axis tax
- name axis # pts start end
- TAX TIME 4 r 01-DEC-1999 00:00 04-DEC-1999 00:00
-T0 = 1-JAN-1900
- Axis span (to cell edges) = 4
-define axis/t/units=days/T0=1-jan-1900 tax = v6
-show axis tax
- name axis # pts start end
- TAX TIME 4 r 01-MAR-1999 00:00 04-MAR-1999 00:00
-T0 = 1-JAN-1900
- Axis span (to cell edges) = 4
-
-columns/type=date bn_delimited_read_date_time.dat
-list v1,v2,v3,v4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
- X: 0.5 to 4.5
- Column 1: V1 is V1 (days)(Julian days since 1-Jan-1900)
- Column 2: V2 is V2 (days)(Julian days since 1-Jan-1900)
- Column 3: V3 is V3 (days)(Julian days since 1-Jan-1900)
- Column 4: V4 is V4 (days)(Julian days since 1-Jan-1900)
- Column 5: V5 is V5 (days)(Julian days since 1-Jan-1900)
- Column 6: V6 is V6 (days)(Julian days since 1-Jan-1900)
- Column 7: V7 is V7 (days)(Julian days since 1-Jan-1900)
- Column 8: V8 is V8 (days)(Julian days since 1-Jan-1900)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1: 36493.0 36218.0...... 36493.0 36218.0......
-2 / 2: 36494.0 36219.0...... 36494.0 36219.0......
-3 / 3: .... .......... 36495.0 36220.0......
-4 / 4: 36496.0 36221.0...... 36496.0 36221.0......
-show data 2
- currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
- name title I J K L M N
- V1 V1 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V2 V2 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V3 V3 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V4 V4 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V5 V5 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V6 V6 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V7 V7 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V8 V8 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
-
-
-columns/type=time bn_delimited_read_date_time.dat
-list v1,v2,v3,v4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
- X: 0.5 to 4.5
- Column 1: V1 is V1 (hours)(Time of day)
- Column 2: V2 is V2 (hours)(Time of day)
- Column 3: V3 is V3 (hours)(Time of day)
- Column 4: V4 is V4 (hours)(Time of day)
- Column 5: V5 is V5 (hours)(Time of day)
- Column 6: V6 is V6 (hours)(Time of day)
- Column 7: V7 is V7 (hours)(Time of day)
- Column 8: V8 is V8 (hours)(Time of day)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1:...... 12.0000 13.7601...... 12.0000 13.7601
-2 / 2:...... 1.0037 14.7601...... 1.0037 14.7601
-3 / 3:...... .... .......... 2.0000 15.7500
-4 / 4:...... 3.0000 16.7601...... 3.0000 16.7601
-show data 2
- currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
- name title I J K L M N
- V1 V1 1:4 ... ... ... ... ...
- (Time of day)
- V2 V2 1:4 ... ... ... ... ...
- (Time of day)
- V3 V3 1:4 ... ... ... ... ...
- (Time of day)
- V4 V4 1:4 ... ... ... ... ...
- (Time of day)
- V5 V5 1:4 ... ... ... ... ...
- (Time of day)
- V6 V6 1:4 ... ... ... ... ...
- (Time of day)
- V7 V7 1:4 ... ... ... ... ...
- (Time of day)
- V8 V8 1:4 ... ... ... ... ...
- (Time of day)
-
-
-columns/type="da,dat,ti,tim,date, date, time, time" bn_delimited_read_date_time.dat
-list v1,v2,v3,v4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
- X: 0.5 to 4.5
- Column 1: V1 is V1 (days)(Julian days since 1-Jan-1900)
- Column 2: V2 is V2 (days)(Julian days since 1-Jan-1900)
- Column 3: V3 is V3 (hours)(Time of day)
- Column 4: V4 is V4 (hours)(Time of day)
- Column 5: V5 is V5 (days)(Julian days since 1-Jan-1900)
- Column 6: V6 is V6 (days)(Julian days since 1-Jan-1900)
- Column 7: V7 is V7 (hours)(Time of day)
- Column 8: V8 is V8 (hours)(Time of day)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1: 36493.0 36218.0 12.0000 13.7601 36493.0 36218.0 12.0000 13.7601
-2 / 2: 36494.0 36219.0 1.0037 14.7601 36494.0 36219.0 1.0037 14.7601
-3 / 3: .... .... .... .... 36495.0 36220.0 2.0000 15.7500
-4 / 4: 36496.0 36221.0 3.0000 16.7601 36496.0 36221.0 3.0000 16.7601
-show data 2
- currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
- name title I J K L M N
- V1 V1 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V2 V2 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V3 V3 1:4 ... ... ... ... ...
- (Time of day)
- V4 V4 1:4 ... ... ... ... ...
- (Time of day)
- V5 V5 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V6 V6 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V7 V7 1:4 ... ... ... ... ...
- (Time of day)
- V8 V8 1:4 ... ... ... ... ...
- (Time of day)
-
-
-columns/type="da,-,ti,-,date,-,time,-" bn_delimited_read_date_time.dat
-list v1,v3,v5,v7
- DATA SET: ./bn_delimited_read_date_time.dat
- X: 0.5 to 4.5
- Column 1: V1 is V1 (days)(Julian days since 1-Jan-1900)
- Column 2: V3 is V3 (hours)(Time of day)
- Column 3: V5 is V5 (days)(Julian days since 1-Jan-1900)
- Column 4: V7 is V7 (hours)(Time of day)
- V1 V3 V5 V7
-1 / 1: 36493.0 12.0000 36493.0 12.0000
-2 / 2: 36494.0 1.0037 36494.0 1.0037
-3 / 3: .... .... 36495.0 2.0000
-4 / 4: 36496.0 3.0000 36496.0 3.0000
-show data 2
- currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
- name title I J K L M N
- V1 V1 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V3 V3 1:4 ... ... ... ... ...
- (Time of day)
- V5 V5 1:4 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- V7 V7 1:4 ... ... ... ... ...
- (Time of day)
-
-
-! delimiters can be used to break up individual fields
-file/form=delim/delim="/" bn_delimited_read_date_time.dat
-list V1,V2,V3,V4
- DATA SET: ./bn_delimited_read_date_time.dat
- X: 0.5 to 4.5
- Column 1: V1
- Column 2: V2
- Column 3: V3
- Column 4: V4
- V1 V2 V3 V4
-1 / 1: 12.0000 1.00000 "99,1999-03-01,12:00, 13:45:36.5,12" 1.00000
-2 / 2: 12.0000 2.00000 "99,1999-03-02,01:00:13.5, 14:45:36.5,12" 2.00000
-3 / 3: 12.0000 3.00000 "99x,1999-03-03x,2:00x, 15:45x,12" 3.00000
-4 / 4: 12.0000 4.00000 "99,1999-03-04,03:00, 16:45:36.5, 12" 4.00000
-! ---
-sp cat bn_delimited_read_date_time.dat
-12/1/99,1999-03-01,12:00, 13:45:36.5,12/1/99,1999-03-01,12:00, 13:45:36.5
-12/2/99,1999-03-02,01:00:13.5, 14:45:36.5,12/2/99,1999-03-02,01:00:13.5, 14:45:36.5
-12/3/99x,1999-03-03x,2:00x, 15:45x,12/3/99,1999-03-03,2:00, 15:45
-12/4/99,1999-03-04,03:00, 16:45:36.5, 12/4/99,1999-03-04,03:00, 16:45:36.5
-! ---
-file/form=delim/delim="/,\," bn_delimited_read_date_time.dat
-list V1,V2,V3,V4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
- X: 0.5 to 4.5
- Column 1: V1
- Column 2: V2
- Column 3: V3
- Column 4: V4
- Column 5: V5
- Column 6: V6
- Column 7: V7
- Column 8: V8
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1: 12.0000 1.00000 "99" "1999-03-01" "12:00" "13:45:36.5" 12.0000 1.00000
-2 / 2: 12.0000 2.00000 "99" "1999-03-02" "01:00:13.5" "14:45:36.5" 12.0000 2.00000
-3 / 3: 12.0000 3.00000 "99x" "1999-03-03x" "2:00x" "15:45x" 12.0000 3.00000
-4 / 4: 12.0000 4.00000 "99" "1999-03-04" "03:00" "16:45:36.5" 12.0000 4.00000
- file/form=delim/delim="/,\,,-" bn_delimited_read_date_time.dat
-list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_date_time.dat
- X: 0.5 to 4.5
- Column 1: V1
- Column 2: V2
- Column 3: V3
- Column 4: V4
- Column 5: V5
- Column 6: V6
- Column 7: V7
- Column 8: V8
- Column 9: V9
- Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1: 12.0000 1.00000 "99" 1999.00 3.00000 "01" "12:00" "13:45:36.5" 12.0000 1.00000
-2 / 2: 12.0000 2.00000 "99" 1999.00 3.00000 "02" "01:00:13.5" "14:45:36.5" 12.0000 2.00000
-3 / 3: 12.0000 3.00000 "99x" 1999.00 3.00000 "03x" "2:00x" "15:45x" 12.0000 3.00000
-4 / 4: 12.0000 4.00000 "99" 1999.00 3.00000 "04" "03:00" "16:45:36.5" 12.0000 4.00000
- file/form=delim/delim="/,\,,-,:" bn_delimited_read_date_time.dat
-list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_date_time.dat
- X: 0.5 to 4.5
- Column 1: V1
- Column 2: V2
- Column 3: V3
- Column 4: V4
- Column 5: V5
- Column 6: V6
- Column 7: V7
- Column 8: V8
- Column 9: V9
- Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1: 12.0000 1.00000 "99" 1999.00 3.00000 "01" 12.0000 "00" 13.0000 "45"
-2 / 2: 12.0000 2.00000 "99" 1999.00 3.00000 "02" 1.0000 "00" 13.5000 "14"
-3 / 3: 12.0000 3.00000 "99x" 1999.00 3.00000 "03x" 2.0000 "00x" 15.0000 "45x"
-4 / 4: 12.0000 4.00000 "99" 1999.00 3.00000 "04" 3.0000 "00" 16.0000 "45"
-
-! read (beginning of) CO2 data file provided by Chris Sabine (like ODV files)
-cancel data/all
-columns/skip=1 bn_delimited_read_CO2.dat
-show data/full
- currently SET data sets:
- 1> ./bn_delimited_read_CO2.dat (default)
-
- name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- Data type = TEXT
- Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V2 V2 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V3 V3 1:20480 ... ... ... ... ...
- Data type = TEXT
- Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V4 V4 1:20480 ... ... ... ... ...
- (Julian days since 1-Jan-1900)
- Data type = NUMERIC
- Conversion /TYPE=DATE
- days on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V5 V5 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V6 V6 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V7 V7 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V8 V8 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V9 V9 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V10 V10 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V11 V11 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V12 V12 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V13 V13 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V14 V14 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V15 V15 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V16 V16 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V17 V17 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V18 V18 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V19 V19 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V20 V20 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V21 V21 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V22 V22 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V23 V23 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V24 V24 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V25 V25 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V26 V26 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V27 V27 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V28 V28 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V29 V29 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V30 V30 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V31 V31 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V32 V32 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V33 V33 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V34 V34 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V35 V35 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V36 V36 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V37 V37 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V38 V38 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V39 V39 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V40 V40 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V41 V41 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V42 V42 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V43 V43 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V44 V44 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V45 V45 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V46 V46 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V47 V47 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V48 V48 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V49 V49 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V50 V50 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V51 V51 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V52 V52 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V53 V53 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V54 V54 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V55 V55 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V56 V56 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V57 V57 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V58 V58 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V59 V59 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V60 V60 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V61 V61 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V62 V62 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V63 V63 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V64 V64 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V65 V65 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V66 V66 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V67 V67 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V68 V68 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V69 V69 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V70 V70 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V71 V71 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V72 V72 1:20480 ... ... ... ... ...
- Data type = NUMERIC
- Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
-
- /DELIMITERS="\t,\,"
- /FORMAT = DELIMITED
- /SKIP = 1
- /COLUMNS = 72
-list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26
- DATA SET: ./bn_delimited_read_CO2.dat
- X: 0.5 to 19.5
- Column 1: V1
- Column 2: V2
- Column 3: V3
- Column 4: V4 is V4 (days)(Julian days since 1-Jan-1900)
- Column 5: V5
- Column 6: V6
- Column 7: V7
- Column 8: V8
- Column 9: V9
- Column 10: V10
- Column 11: V11
- Column 12: V12
- Column 13: V13
- Column 14: V14
- Column 15: V15
- Column 16: V16
- Column 17: V17
- Column 18: V18
- Column 19: V19
- Column 20: V20
- Column 21: V21
- Column 22: V22
- Column 23: V23
- Column 24: V24
- Column 25: V25
- Column 26: V26
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21 V22 V23 V24 V25 V26
-1 / 1: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 10.00 21.1028 35.9408 0.00000 36.0000 0.000000 1.00000 9.80 224.641 0.000000 0.1172 0.00000 0.000000 0.00000 1.0156 0.00000 0.11621 0.00000 2.22900
-2 / 2: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 54.00 19.8913 35.9437 0.00000 35.0000 0.000000 1.00000 54.70 233.185 0.000000 0.1465 0.00000 0.000000 0.00000 1.0351 0.00000 0.13769 0.00000 2.43100
-3 / 3: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 79.00 19.0138 35.9186 0.00000 34.0000 0.000000 1.00000 79.50 237.026 0.000000 0.1660 0.00000 0.000000 0.00000 1.0449 0.00000 0.13085 0.00000 2.51600
-4 / 4: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 104.00 18.0026 35.8627 0.00000 33.0000 0.000000 1.00000 104.60 233.766 0.000000 0.1855 0.00000 0.000000 0.00000 1.0645 0.00000 0.16602 0.00000 2.65000
-5 / 5: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 154.00 16.3595 35.7126 0.00000 32.0000 0.000000 1.00000 155.10 230.216 0.000000 0.9083 0.00000 0.146501 0.00000 0.8985 0.00000 0.26566 0.00000 2.84600
-6 / 6: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 204.00 14.8461 35.5541 0.00000 31.0000 0.000000 1.00000 206.00 222.307 0.000000 3.7899 0.00000 0.009768 0.00000 1.4359 0.00000 0.44542 0.00000 2.95400
-7 / 7: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 253.00 13.7175 35.3809 0.00000 29.0000 0.000000 1.00000 255.20 227.612 0.000000 5.5293 0.00000 0.009769 0.00000 1.6315 0.00000 0.55880 0.00000 3.00600
-8 / 8: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 254.00 13.7070 35.3835 0.00000 30.0000 0.000000 1.00000 255.60 227.350 0.000000 5.5098 0.00000 0.009769 0.00000 1.7877 0.00000 0.55489 0.00000 2.99600
-9 / 9: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 305.00 12.6234 35.2123 0.00000 28.0000 0.000000 1.00000 307.20 230.868 0.000000 7.6502 0.00000 0.009770 0.00000 2.1593 0.00000 0.68588 0.00000 3.13400
-10 / 10: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 353.00 12.0102 35.1165 0.00000 27.0000 0.000000 1.00000 355.70 235.378 0.000000 8.7158 0.00000 0.009771 0.00000 2.5209 0.00000 0.75335 0.00000 3.19000
-11 / 11: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 404.00 11.4592 .... 9.00000 26.0000 0.000000 1.00000 406.90 .... 0.000000 .... 9.00000 .... 9.00000 .... 9.00000 .... 9.00000 3.25500
-12 / 12: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 452.00 11.0375 34.9575 0.00000 25.0000 0.000000 1.00000 455.90 239.899 0.000000 10.9546 0.00000 0.000000 0.00000 3.0489 0.00000 0.88438 0.00000 3.24500
-13 / 13: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 502.00 10.5797 34.8825 0.00000 24.0000 0.000000 1.00000 506.00 241.090 0.000000 12.1377 0.00000 0.000000 0.00000 3.4009 0.00000 0.95871 0.00000 3.19500
-14 / 14: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 601.00 9.8037 34.7585 0.00000 23.0000 0.000000 1.00000 605.90 238.538 0.000000 14.4357 0.00000 0.000000 0.00000 4.2711 0.00000 1.11419 0.00000 ....
-15 / 15: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 701.00 9.0245 34.6510 0.00000 22.0000 0.000000 1.00000 706.70 229.219 0.000000 17.5353 0.00000 0.000000 0.00000 6.1774 0.00000 1.31173 0.00000 2.45400
-16 / 16: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 800.00 7.6879 34.5292 0.00000 21.0000 0.000000 1.00000 807.00 206.678 0.000000 22.7373 0.00000 0.000000 0.00000 13.2162 0.00000 1.63345 0.00000 1.32000
-17 / 17: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 899.00 6.2124 34.4434 0.00000 20.0000 0.000000 1.00000 907.30 194.602 0.000000 27.2943 0.00000 0.000000 0.00000 23.8630 0.00000 1.92683 0.00000 0.73200
-18 / 18: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 999.00 4.9587 34.4055 0.00000 19.0000 0.000000 1.00000 1008.40 186.926 0.000000 30.2768 0.00000 0.000000 0.00000 36.3870 0.00000 2.15272 0.00000 0.42900
-19 / 19: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 1098.00 4.3083 34.4383 0.00000 18.0000 0.000000 1.00000 1109.00 171.821 0.000000 32.2020 0.00000 0.000000 0.00000 50.4537 0.00000 2.29735 0.00000 0.19800
-list/i=8:14 v11,v19,v21,v23,v25
- DATA SET: ./bn_delimited_read_CO2.dat
- X: 7.5 to 14.5
- Column 1: V11
- Column 2: V19
- Column 3: V21
- Column 4: V23
- Column 5: V25
- V11 V19 V21 V23 V25
-8 / 8: 0.00000 0.00000 0.00000 0.00000 0.00000
-9 / 9: 0.00000 0.00000 0.00000 0.00000 0.00000
-10 / 10: 0.00000 0.00000 0.00000 0.00000 0.00000
-11 / 11: 9.00000 9.00000 9.00000 9.00000 9.00000
-12 / 12: 0.00000 0.00000 0.00000 0.00000 0.00000
-13 / 13: 0.00000 0.00000 0.00000 0.00000 0.00000
-14 / 14: 0.00000 0.00000 0.00000 0.00000 0.00000
-(set variable/bad=9 v11; set variable/bad=9 v19;set variable/bad=9 v21;set variable/bad=9 v23;set variable/bad=9 v25)
-list/i=8:14 v11,v19,v21,v23,v25
- DATA SET: ./bn_delimited_read_CO2.dat
- X: 7.5 to 14.5
- Column 1: V11
- Column 2: V19
- Column 3: V21
- Column 4: V23
- Column 5: V25
- V11 V19 V21 V23 V25
-8 / 8: 0.000000 0.000000 0.000000 0.000000 0.000000
-9 / 9: 0.000000 0.000000 0.000000 0.000000 0.000000
-10 / 10: 0.000000 0.000000 0.000000 0.000000 0.000000
-11 / 11: .... .... .... .... ....
-12 / 12: 0.000000 0.000000 0.000000 0.000000 0.000000
-13 / 13: 0.000000 0.000000 0.000000 0.000000 0.000000
-14 / 14: 0.000000 0.000000 0.000000 0.000000 0.000000
-! ... read column headings, only -- 1 record
-define axis/z=1:1:1 z1
-define grid/z=z1 g1
-columns/grid=g1 bn_delimited_read_CO2.dat
-list/nohead v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26
-I / *: "Cruise" "Station" "Type" "mm/dd/yy" "Lon[E]" "Lat[N]" "BotDep[m]" "Depth[m]" "Temperature[C]" "Salinity" "QF" "Bottle" "QF" "Cast" "Pressure[dbar]" "Oxygen[umol/kg]" "QF" "Nitrate[umol/kg]" "QF" "Nitrite[umol/kg]" "QF" "Silicate[umol/kg]" "QF" "Phosphate[umol/kg]" "QF" "CFC-11[pmol/kg]"
-
-! deliberate syntax errors
-set mode ignore
-columns/type="d, da2,date2" bn_delimited_read_date_time.dat
-columns/type="da,da2,date2" bn_delimited_read_date_time.dat
-columns/type="da,da, date2" bn_delimited_read_date_time.dat
-columns/var="aa.b" bn_delimited_read_date_time.dat
-file/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
-cancel mode ignore
-
-
-
-! ******** V5.41 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn541_bug_fixes
-! bn541_bug_fixes.jnl
-! test various fixes that went into version 5.41
-! 3/02 *acm*
-!
-go bn_reset
-cancel mode verify
-
-! tics on horiz log axes were wrong; (plot only)
-! GO bn_reset
-! tested in bn_logaxes (the plots will be different in 5.40 and 5.41)
-
-
-!missing vertices in polygon call
-GO bn_reset
-cancel mode verify
-GO err540_polymissing
-! err540_polymissing.jnl
-! 3/02 *acm*
-! A previous fix to polygon cut off loading of poly's if a vertex was
-! missing. restore old behavior. (polygon_set_up.F)
-
-
-use coads_climatology
-let xpts0=x[g=sst,x=110:150,y=20:40,l=1]*y[g=sst,x=110:150,y=20:40,l=1]*0+x[g=sst,x=110:150,y=20:40,l=1]
-let ypts0=x[g=sst,x=110:150,y=20:40,l=1]*y[g=sst,x=110:150,y=20:40,l=1]*0+y[g=sst,x=110:150,y=20:40,l=1]
-let values0=sst[x=110:150,y=20:40,l=1]
-LET xpts=ysequence(xpts0)
-LET ypts=ysequence(ypts0)
-LET values=ysequence(values0)
-
-LET xtriangle = {0,1,2}
-LET ytriangle = {0,2,0}
-LET xvertex = xpts+xtriangle
-LET yvertex = ypts+ytriangle
-polygon xvertex,yvertex,values
-
-let xvertex1= IF values NE -1E+34 THEN xvertex
-polygon xvertex1,yvertex,values
-
-! dynamic memory setup for POLYGON
-! GO bn_reset
-! see ~ansley/ans_ferret/users/brockmann/err540/err540_polygon2.jnl
-
-! formatting axis label numbers
-GO bn_reset
-cancel mode verify
-GO err540_ill_format.jnl
-! err540_ill_format.jnl
-! 3/02 *acm*
-
-! formatting of small-magnitude negative numbers on axes is wrong
-! e.g. -0.002 becomes ******
-! fix in frmt.F
-
-plot/i=1:100 0.001 - 0.002/ i
-
-plot/trans/i=1:100 0.001 - 0.002/ i
-
-
-
-
-! variable permutation in netCDF writes
-GO bn_reset
-cancel mode verify
-GO err540_write_order
-! err540_write_order.jnl
-! *sh* 3/02
-
-! the permutation of gridsvariables during writing is inferred *incorrectly*
-! from the context of the first variable only in xeq_list.F
-
-! I think (??) that we need to replace this
-! * ... if no axis order was specified determine the permutation
-! IF (.NOT.permute) CALL GET_CX_DIMS(cx,ndim, perm )
-! DO 200 ilist = 1, num_uvars_in_cmnd
-! CALL CREATE_PERMUTATION( memory,
-
-! with this
-! * ... if no axis order was specified determine the permutation
-! DO 200 ilist = 1, num_uvars_in_cmnd
-! IF (.NOT.permute) CALL GET_CX_DIMS(is_cx(ilist),ndim, perm )
-! CALL CREATE_PERMUTATION( memory,
-
-
-define axis/x=1:2:1 x12
-define axis/y=3:4:1 y34
-define axis/z=5:6:1 z56
-
-let yz = 10*y[gy=y34] + 100*z[gz=z56]
-let xyz = x[gx=x12] + 10*y[gy=y34] + 100*z[gz=z56]
-
-! before
-list xyz
- VARIABLE : X[GX=X12] + 10*Y[GY=Y34] + 100*Z[GZ=Z56]
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 5
- 3 / 1: 531.000 532.000
- 4 / 2: 541.000 542.000
- ---- K:2 Z: 6
- 3 / 1: 631.000 632.000
- 4 / 2: 641.000 642.000
-
-save/clobber/file=test_good_order.cdf xyz, yz
-save/clobber/file=test_bad_order.cdf yz, xyz
-cancel var/all
-
-! after
-use test_good_order
-list xyz
- VARIABLE : X[GX=X12] + 10*Y[GY=Y34] + 100*Z[GZ=Z56]
- FILENAME : test_good_order.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 5
- 3 / 1: 531.000 532.000
- 4 / 2: 541.000 542.000
- ---- K:2 Z: 6
- 3 / 1: 631.000 632.000
- 4 / 2: 641.000 642.000
-use test_bad_order
-list xyz
- VARIABLE : X[GX=X12] + 10*Y[GY=Y34] + 100*Z[GZ=Z56]
- FILENAME : test_bad_order.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- 1 2
- 1 2
- ---- K:1 Z: 5
- 3 / 1: 531.000 532.000
- 4 / 2: 541.000 542.000
- ---- K:2 Z: 6
- 3 / 1: 631.000 632.000
- 4 / 2: 641.000 642.000
-
-sp rm -f test_good_order.cdf
-sp rm -f test_bad_order.cdf
-
-!@AVE error when plotting unlike grids together
-GO bn_reset
-cancel mode verify
-GO err540_ax_ave
-!err540_ax_ave.jnl
-! 3/02 *acm
-! @AVE getting wrong set of indices for forming the average, having
-! loaded range of indices on the first plot. ave_regrid_1_axis.F
-
-use coads_climatology
-def axis/edges/t=1:7306:1461/t0="01-jan-0000"/unit=hour t2
-plot/x=140w/y=0/sym/line sst,sst[gt=t2 at ave]
-
-def axis/edges/t=1:1600:731/t0="01-jan-0000"/unit=hour t2
-plot/x=140w/y=0/sym/line sst,sst[gt=t2 at ave]
-
-!Make PPL AXSET settings persist, but not settings made w/ qualifiers /AXES= or /NOAXES
-GO bn_reset
-cancel mode verify
-GO err540_axset
-!err540_axset.jnl
-! 3/02 *acm
-! backwards compatibility: PPL AXSET settings persist, and
-! PLOT/AXES or PLOT/NOAXES override these, but only for one plot.
-
-! define a 6 viewport window
-def view/xlim= 0,.333/ylim=0,.5 ll6
-def view/xlim= 0,.333/ylim=.5,1 ul6
-def view/xlim=.333,.666/ylim=0,.5 lm6
-def view/xlim=.333,.666/ylim=.5,1 um6
-def view/xlim=.666, 1/ylim=0,.5 lr6
-def view/xlim=.666, 1/ylim=.5,1 ur6
-
-SET VIEW ul6;PLOT/NOAXES/I=1:10/TITLE="PLOT/NOAXES" 1./I
-SET VIEW um6;SHADE/I=1:10/J=1:7/TITLE="No qualifiers" I+J
-
-PPL AXSET 0,1,1,0
-SET VIEW ur6;FILL/I=1:10/J=1:7/TITLE="with PPL AXSET 0,1,1,0" I+J
-
-SET VIEW ll6;CONTOUR/AXES=1,0,0,1/I=1:10/J=1:7/TITLE="CONTOUR/AXES=" I+J
-
-SET VIEW lm6;VECTOR/I=1:10/J=1:7/TITLE="Prev. PPL AXSET setting" I+J, I-0.5*J
-
-SET VIEW lr6;PLOT/i=1:10/SET/TITLE="plot/SET, new setting" 1./I
-PPL AXSET 0,1,0,0
-PPL PLOT
-
-PPL axset 1,1,1,1
-
-
-!Previously couldn't do PLOT/VS/DASH, but no reason not to allow it.
-GO bn_reset
-cancel mode verify
-GO err540_vs_dash
-! PLOT/VS/DASH previously was not allowed.
-
-define axis/x=20e:10w:10/unit=degree xax
-define axis/y=60s:60n/unit=degree/npoints=41 yax
-define axis/z=0:1000:40/unit=meter/depth zax
-define axis/t=1-jan-1960:15-dec-1999:5/unit=days tax
-define grid/x=xax/y=yax/z=zax/t=tax gformat
-
-* XZ shade with VS/DASH/OVER
-set grid gformat
-shade/y=-60:60/z=0:1000 sin(y/3)*ABS(z)^1.5
-
-let ypts = {-60,-50,-40,-30,-20,-10, 0, 8, 15, 30, 35, 40, 60}
-let zpts = {700,667,669,801,732,755,765,789,808,788,822,699,700}
-
-plot/vs/over/thick/line/dash ypts,zpts
-plot/vs/over/thick=3/line/dash=0.05,0.05,0.15,0.15 ypts,zpts+100
-
-* XY shade with VS/DASH/OVER
-set grid abstract
-shade/pal=grayscale/x=1:100/y=101:200 sin(x/6)*cos(y/9)
-
-let xpts = { 0, 8, 12, 15, 23, 28, 30, 35, 40, 44, 54, 60, 75}
-let ypts = {142,147,149,141,142,155,145,149,148,148,152,146,143}
-
-plot/vs/over/thick/color=red/dash xpts,ypts
-plot/vs/over/thick=3/color=red/dash=0.05,0.05,0.15,0.15 xpts+10,ypts+30
-
-! Here, test that settings made with PPL LINE command persist,
-! whereas PLOT/DASH settings do not.
-
-let ypts=y[gy=1:80:1]
-ppl line, 2, 0, 4, 0, 0, 0.04, 0.04, 0.15,0.15
-ppl line, 3, 0, 4, 0, 0, 0.2, 0.2, 0.2,0.2
-plot/thick/dash/vlimits=0:1000 50*sin(ypts/3)+100, 30*cos(ypts/3)+200
-plot/over/color=red/thick/dash=0.04,0.04,0.04,0.04 50*sin(ypts/3)+400, 30*cos(ypts/3)+500
-plot/over/thick/dash/color=blue 50*sin(ypts/3)+700, 30*cos(ypts/3)+800, 20*cos(ypts/5)+900, 20*sin(ypts)+950
-
-
-!overlay on polygon plots
-GO bn_reset
-cancel mode verify
-GO err540_poly_overlay
-!overlay on polygon plots
-
-polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
-shade/over/i=1:2/j=0:2/patt i+j
-
-!polytube failed on plot/over; go polytube, because YAXIS_MIN, _MAX not defined.
-GO bn_reset
-cancel mode verify
-GO err540_axis_symbols
-! err540_axis_symbols.jnl
-! 3/02 *acm*
-! Define YAXIS_MIN and YAXIS_MAX after PPLUS auto-scaling is done.
-! e.g. polytube failed overlaying on PLOT/VS plots, because symbols
-! YAXIS_MIN and YAXIS_MAX or the XAXIS symbols aren't set.
-! Note: when running in the benchmark suite, the go polytube command
-! causes the job to hang.
-
-can var/all
-
-let xpts = i[i=1:100]
-set view left
-plot/line/vs xpts, sin(xpts/10)
-sh sym YAXIS_MAX
-YAXIS_MAX = "1.000000"
-!go polytube polygon/over xpts, sin(xpts/10), sin(xpts/10)
-
-set view right
-
-let xpts = {3,5,6,7,8,9,10,13,15,16,17,18,19,21,22}
-let ypts = {1,2,3,4,5,6, 7, 8, 9, 4, 5, 6, 7, 8, 9}
-let zpts = {1,2,3,4,5,1, 2, 3, 4, 5, 1, 2, 3, 4, 5}
-
-plot/vs/trans/line xpts,ypts
-sh sym XAXIS_MAX
-XAXIS_MAX = "10.00000"
-!go polytube polygon/trans/over xpts,ypts,zpts
-
-!nested repeat loops and parsing parentheses
-GO bn_reset
-cancel mode verify
-GO err540_parse_repeat
-! err540_parse_repeat.jnl
-! 3/03 *acm
-
-!yes? rep/k=1:2 (rep/j=1:1 (say hello))
-!-> REPEAT: K=1
-!-> REPEAT: J=1 <-----------lots of these
-!-> REPEAT: J=1
-!...
-! **ERROR: stack overflow
-!rep/j=1:1 (rep/j=1:1 (say hello))
-!Command file, command group, or REPEAT execution aborted
-
-
-!Cause is parsing parentheses in REPEAT section of parse_command.F
-
-rep/k=1:2 (rep/j=1:1 (say hello))
-!-> REPEAT: K=1
-!-> REPEAT: J=1
-hello
-!-> REPEAT: K=2
-!-> REPEAT: J=1
-hello
-rep/k=1:2 (rep/j=1:1 say hello; say why not)
-!-> REPEAT: K=1
-!-> REPEAT: J=1
-hello
-why not
-!-> REPEAT: K=2
-!-> REPEAT: J=1
-hello
-why not
-rep/k=1:2 (rep/j=1:1 (say hello; (say why not)))
-!-> REPEAT: K=1
-!-> REPEAT: J=1
-hello
-why not
-!-> REPEAT: K=2
-!-> REPEAT: J=1
-hello
-why not
-
-! appending a scalar to NetCDF file
-GO bn_reset
-cancel mode verify
-GO err540_cd_use_recdim
-! err540_cd_use_recdim
-! 3/02 *sh*
-
-! crash appending scalar variable into file
-
-define axis/x=1:50:1 xprofile
-define axis/y=0:360/npoints=10/edges ylon
-define axis/z=-90:90/npoints=10/edges zlat
-define axis/t=1-jan-1900:31-dec-1995/T0=1-jan-1900/npoints=10/edges tdate
-
-let maxprof = 5
-let temp = X[gx=xprofile] + Y[gy=ylon] + Z[gz=zlat] + T[gt=tdate]
-
-save/clobber/file=profiles.nc temp ! 4D variable
-save/append/file=profiles.nc maxprof ! append a scalar variable
-
-use profiles.nc
-sh data
- currently SET data sets:
- 1> ./profiles.nc (default)
- name title I J K L M N
- TEMP X[GX=XPROFILE] + Y[GY=YLON] + Z 1:50 1:10 1:10 1:10 ... ...
- MAXPROF 5 ... ... ... ... ... ...
-
-sp rm -f profiles.nc
-
-! ================================= quit
-!save/append/file=profiles.nc maxprof
-!
-! LISTing to file profiles.nc
-!Subscript out of range on file cd_use_recdim.F, line 97,
-!procedure cd_use_recdim.
-!Subscript number 1 has value 0 in array vdims.
-!Abort
-
-
-
-
-!missing data in xpts,ypts sample points wasnt checked
-go bn_reset
-cancel mode verify
-GO err540_samplexy_missing
-! err540_samplexy_missing.jnl
-! 3/03 *acm
-
-! previously missing data in the sample points caused Ferret to hang
-
-use coads_climatology
-let asst = samplexy(sst, {171,173,-1.e34}, {-1,1,13})
-list asst
- VARIABLE : SAMPLEXY(SST, {171,173,-1.E34}, {-1,1,13})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 3 points (X-TIME)
- 1 2 3
- 1 2 3
- 16-JAN / 1: 29.0045 27.8955 ....
- 15-FEB / 2: 28.5508 28.2499 ....
- 17-MAR / 3: 28.8764 28.4775 ....
-
-let asst = samplexy(sst, {171,173,169}, {-1,,13})
-list asst
- VARIABLE : SAMPLEXY(SST, {171,173,169}, {-1,,13})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 3 points (X-TIME)
- 1 2 3
- 1 2 3
- 16-JAN / 1: 29.0045 .... 26.9596
- 15-FEB / 2: 28.5508 .... 26.7875
- 17-MAR / 3: 28.8764 .... 27.1092
-
-! test the fixed delta stride bug
-go bn_reset
-cancel mode verify
-GO err540_strides_rev.jnl
-! err540_strides_rev.jnl
-
-! reported Feb '02
-! fixed April 17, '02
-
-! Symptom: plots appear to be "tiled" -- repreating content
-
-! file test_100x100 has a diagonal line of 1s in a field of 0s
-sp rm -f test_100x100.nc
-set region/i=1:100/j=1:100
-let a0 = 0
-let a = if i eq j then 1 else a0
-!shade a
-save/file=test_100x100.nc a
-cancel data/all
-cancel var/all
-
-! works fine in V5.33
-! try these lines for reference
-! yes? use test_100x100.nc
-! yes? shade a
-! yes? shade a[i=1:100:10]
-
-! explanation of bug:
-! Following the implicit regrid in IS_REGRID the resultant cx did not
-! have the delta value(s) removed, so the mr thinks
-! that it is 1:10:10 instead of simply 1:10
-
-! this causes an inadequate amount of memory to be allocated and
-! subsequent variables try to occupy the same memory already in use
-! COPY_GRID is where the tiling effect happens, though it is not the
-! cause of the problem
-
-set mode stupid
-set mode diag
-set mem/size=0.05
-show mem/free
- Current size of FERRET memory cache: 0.2 MegaWords (1 word = 4 bytes)
- total memory table slots: 500
- total memory blocks: 2000
- memory block size: 100
-
- number of free memory blocks: 2000
- largest free region: 2000
- number of free regions: 1
- free memory table slots: 500
- number of UN-CACHED variables: 0
-
-use/ord=x-y test_100x100.nc
-list/prec=1 a[i=1:100:10] ! this looks just right!!
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 100 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A --> (G005) @XACT
- strip reversing A on Y axis: 1 100 dset: 1
- rdstride A C: 8 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing reversing A on Y axis: 1 100 dset: 1
- -DELETE A M: 1 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd A M: 1 dset: 1 I: 1 10 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A M: 2 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
- VARIABLE : IF I EQ J THEN 1 ELSE A0
- regrid: 10 delta on X
- FILENAME : test_100x100.nc
- SUBSET : 10 by 100 points (X-Y)
- 1 11 21 31 41 51 61 71 81 91
- 1 2 3 4 5 6 7 8 9 10
- 1 / 1: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 2 / 2: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 3 / 3: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 4 / 4: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 5 / 5: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 6 / 6: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 7 / 7: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 8 / 8: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 9 / 9: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 10 / 10: 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.
- 11 / 11: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 12 / 12: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 13 / 13: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 14 / 14: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 15 / 15: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 16 / 16: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 17 / 17: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 18 / 18: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 19 / 19: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 20 / 20: 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.
- 21 / 21: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 22 / 22: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 23 / 23: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 24 / 24: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 25 / 25: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 26 / 26: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 27 / 27: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 28 / 28: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 29 / 29: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 30 / 30: 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.
- 31 / 31: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 32 / 32: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 33 / 33: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 34 / 34: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 35 / 35: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 36 / 36: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 37 / 37: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 38 / 38: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 39 / 39: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 40 / 40: 0. 0. 0. 0. 0. 0. 1. 0. 0. 0.
- 41 / 41: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 42 / 42: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 43 / 43: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 44 / 44: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 45 / 45: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 46 / 46: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 47 / 47: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 48 / 48: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 49 / 49: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 50 / 50: 0. 0. 0. 0. 0. 1. 0. 0. 0. 0.
- 51 / 51: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 52 / 52: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 53 / 53: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 54 / 54: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 55 / 55: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 56 / 56: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 57 / 57: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 58 / 58: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 59 / 59: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 60 / 60: 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.
- 61 / 61: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 62 / 62: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 63 / 63: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 64 / 64: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 65 / 65: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 66 / 66: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 67 / 67: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 68 / 68: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 69 / 69: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 70 / 70: 0. 0. 0. 1. 0. 0. 0. 0. 0. 0.
- 71 / 71: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 72 / 72: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 73 / 73: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 74 / 74: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 75 / 75: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 76 / 76: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 77 / 77: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 78 / 78: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 79 / 79: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 80 / 80: 0. 0. 1. 0. 0. 0. 0. 0. 0. 0.
- 81 / 81: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 82 / 82: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 83 / 83: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 84 / 84: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 85 / 85: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 86 / 86: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 87 / 87: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 88 / 88: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 89 / 89: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 90 / 90: 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.
- 91 / 91: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 92 / 92: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 93 / 93: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 94 / 94: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 95 / 95: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 96 / 96: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 97 / 97: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 98 / 98: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 99 / 99: 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
- 100 / 100: 1. 0. 0. 0. 0. 0. 0. 0. 0. 0.
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G005)
- GRID (G005)
- name axis # pts start end
- (AX010) X 10 r 1 91
- YAX1_100 Y 100 r 1 100
- normal Z
- normal T
- normal E
- normal F
-
-! should be a diagonal path of steps all the way across the plot
-shade a[i=1:100:10]
- eval EX#1 C: 4 dset: 1 I: 1 100 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A --> (G005) @XACT
- strip reversing A on Y axis: 1 100 dset: 1
- rdstride A C: 8 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing reversing A on Y axis: 1 100 dset: 1
- -DELETE A M: 2 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd A M: 2 dset: 1 I: 1 10 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A M: 3 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
-setting up 2D plot
- -DELETE A M: 3 dset: 1 I: 1 10 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-PPL plot 279 complete
-ppl list stats
-
-
- DATA OF TYPE CONTOUR
- MIN MAX
- X 1.0000E+00 9.1000E+01
- Y 1.0000E+00 1.0000E+02
- Z 0.0000E+00 1.0000E+00
- NX= 10 NY= 100
-ppl list data ! make screen wide -- shows the 1's matching the plot
-
-
- DATA OF TYPE CONTOUR
- MIN MAX
- X 1.0000E+00 9.1000E+01
- Y 1.0000E+00 1.0000E+02
- Z 0.0000E+00 1.0000E+00
- NX= 10 NY= 100
- 1 2 3 4 5 6 7
- 1 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 2 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 3 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 4 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 5 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 6 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 7 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 8 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 9 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 10 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 11 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 12 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 13 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 14 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 15 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 16 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 17 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 18 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 19 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 20 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 21 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 22 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 23 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 24 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 25 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 26 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 27 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 28 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 29 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 30 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 31 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 32 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 33 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 34 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 35 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 36 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 37 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 38 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 39 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 40 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 1.00E+00
- 41 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 42 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 43 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 44 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 45 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 46 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 47 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 48 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 49 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 50 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 1.00E+00 0.00E+00
- 51 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 52 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 53 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 54 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 55 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 56 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 57 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 58 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 59 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 60 0.00E+00 0.00E+00 0.00E+00 0.00E+00 1.00E+00 0.00E+00 0.00E+00
- 61 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 62 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 63 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 64 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 65 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 66 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 67 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 68 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 69 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 70 0.00E+00 0.00E+00 0.00E+00 1.00E+00 0.00E+00 0.00E+00 0.00E+00
- 71 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 72 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 73 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 74 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 75 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 76 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 77 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 78 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 79 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 80 0.00E+00 0.00E+00 1.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 81 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 82 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 83 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 84 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 85 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 86 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 87 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 88 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 89 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 90 0.00E+00 1.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 91 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 92 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 93 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 94 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 95 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 96 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 97 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 98 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 99 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
- 100 1.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00
-
-
- 8 9 10
- 1 0.00E+00 0.00E+00 0.00E+00
- 2 0.00E+00 0.00E+00 0.00E+00
- 3 0.00E+00 0.00E+00 0.00E+00
- 4 0.00E+00 0.00E+00 0.00E+00
- 5 0.00E+00 0.00E+00 0.00E+00
- 6 0.00E+00 0.00E+00 0.00E+00
- 7 0.00E+00 0.00E+00 0.00E+00
- 8 0.00E+00 0.00E+00 0.00E+00
- 9 0.00E+00 0.00E+00 0.00E+00
- 10 0.00E+00 0.00E+00 1.00E+00
- 11 0.00E+00 0.00E+00 0.00E+00
- 12 0.00E+00 0.00E+00 0.00E+00
- 13 0.00E+00 0.00E+00 0.00E+00
- 14 0.00E+00 0.00E+00 0.00E+00
- 15 0.00E+00 0.00E+00 0.00E+00
- 16 0.00E+00 0.00E+00 0.00E+00
- 17 0.00E+00 0.00E+00 0.00E+00
- 18 0.00E+00 0.00E+00 0.00E+00
- 19 0.00E+00 0.00E+00 0.00E+00
- 20 0.00E+00 1.00E+00 0.00E+00
- 21 0.00E+00 0.00E+00 0.00E+00
- 22 0.00E+00 0.00E+00 0.00E+00
- 23 0.00E+00 0.00E+00 0.00E+00
- 24 0.00E+00 0.00E+00 0.00E+00
- 25 0.00E+00 0.00E+00 0.00E+00
- 26 0.00E+00 0.00E+00 0.00E+00
- 27 0.00E+00 0.00E+00 0.00E+00
- 28 0.00E+00 0.00E+00 0.00E+00
- 29 0.00E+00 0.00E+00 0.00E+00
- 30 1.00E+00 0.00E+00 0.00E+00
- 31 0.00E+00 0.00E+00 0.00E+00
- 32 0.00E+00 0.00E+00 0.00E+00
- 33 0.00E+00 0.00E+00 0.00E+00
- 34 0.00E+00 0.00E+00 0.00E+00
- 35 0.00E+00 0.00E+00 0.00E+00
- 36 0.00E+00 0.00E+00 0.00E+00
- 37 0.00E+00 0.00E+00 0.00E+00
- 38 0.00E+00 0.00E+00 0.00E+00
- 39 0.00E+00 0.00E+00 0.00E+00
- 40 0.00E+00 0.00E+00 0.00E+00
- 41 0.00E+00 0.00E+00 0.00E+00
- 42 0.00E+00 0.00E+00 0.00E+00
- 43 0.00E+00 0.00E+00 0.00E+00
- 44 0.00E+00 0.00E+00 0.00E+00
- 45 0.00E+00 0.00E+00 0.00E+00
- 46 0.00E+00 0.00E+00 0.00E+00
- 47 0.00E+00 0.00E+00 0.00E+00
- 48 0.00E+00 0.00E+00 0.00E+00
- 49 0.00E+00 0.00E+00 0.00E+00
- 50 0.00E+00 0.00E+00 0.00E+00
- 51 0.00E+00 0.00E+00 0.00E+00
- 52 0.00E+00 0.00E+00 0.00E+00
- 53 0.00E+00 0.00E+00 0.00E+00
- 54 0.00E+00 0.00E+00 0.00E+00
- 55 0.00E+00 0.00E+00 0.00E+00
- 56 0.00E+00 0.00E+00 0.00E+00
- 57 0.00E+00 0.00E+00 0.00E+00
- 58 0.00E+00 0.00E+00 0.00E+00
- 59 0.00E+00 0.00E+00 0.00E+00
- 60 0.00E+00 0.00E+00 0.00E+00
- 61 0.00E+00 0.00E+00 0.00E+00
- 62 0.00E+00 0.00E+00 0.00E+00
- 63 0.00E+00 0.00E+00 0.00E+00
- 64 0.00E+00 0.00E+00 0.00E+00
- 65 0.00E+00 0.00E+00 0.00E+00
- 66 0.00E+00 0.00E+00 0.00E+00
- 67 0.00E+00 0.00E+00 0.00E+00
- 68 0.00E+00 0.00E+00 0.00E+00
- 69 0.00E+00 0.00E+00 0.00E+00
- 70 0.00E+00 0.00E+00 0.00E+00
- 71 0.00E+00 0.00E+00 0.00E+00
- 72 0.00E+00 0.00E+00 0.00E+00
- 73 0.00E+00 0.00E+00 0.00E+00
- 74 0.00E+00 0.00E+00 0.00E+00
- 75 0.00E+00 0.00E+00 0.00E+00
- 76 0.00E+00 0.00E+00 0.00E+00
- 77 0.00E+00 0.00E+00 0.00E+00
- 78 0.00E+00 0.00E+00 0.00E+00
- 79 0.00E+00 0.00E+00 0.00E+00
- 80 0.00E+00 0.00E+00 0.00E+00
- 81 0.00E+00 0.00E+00 0.00E+00
- 82 0.00E+00 0.00E+00 0.00E+00
- 83 0.00E+00 0.00E+00 0.00E+00
- 84 0.00E+00 0.00E+00 0.00E+00
- 85 0.00E+00 0.00E+00 0.00E+00
- 86 0.00E+00 0.00E+00 0.00E+00
- 87 0.00E+00 0.00E+00 0.00E+00
- 88 0.00E+00 0.00E+00 0.00E+00
- 89 0.00E+00 0.00E+00 0.00E+00
- 90 0.00E+00 0.00E+00 0.00E+00
- 91 0.00E+00 0.00E+00 0.00E+00
- 92 0.00E+00 0.00E+00 0.00E+00
- 93 0.00E+00 0.00E+00 0.00E+00
- 94 0.00E+00 0.00E+00 0.00E+00
- 95 0.00E+00 0.00E+00 0.00E+00
- 96 0.00E+00 0.00E+00 0.00E+00
- 97 0.00E+00 0.00E+00 0.00E+00
- 98 0.00E+00 0.00E+00 0.00E+00
- 99 0.00E+00 0.00E+00 0.00E+00
- 100 0.00E+00 0.00E+00 0.00E+00
-
-
-
-can mode stupid
-can mode diag
-set mem/size=25.6
-
-! unknown data type for clauses with constants only
-go bn_reset
-cancel mode verify
-GO err540_data_type.jnl
-! err540_data_type
-! 2/19/02 *sh*
-
-! Ferret fails to identifies the data type and gets
-! "**ERROR: illegal data type (float,string,...) for operation: A"
-
-! in disp_data_set_up XEQ_PLOT is insisting on ptype_float.
-! The type that is coming back from "a" is "0" (ptype_unknown)
-
-! The problem is that uvar_data_type(uvar=1="A", dset=0) is ptype_unknown=0
-! this is happening because its correct value is lost in IS_UVAR_GRID
-
-! solved 4/02:
-! The constant ("1") was being ignored -- needed to get its data type
-! change to IS_UVAR_GRID.F
-
-! Note - initial soln lead to further problems to resolve for
-! IF cond THEN pseudo + const
-
-!set mode diag
-
-! bad
-plot IF {1,3,5} GE 3 THEN 1 ! data type unknown
-
-! ok -- no error if constant is buried within a user variable
-!let V = 1
-!plot IF {1,3,5} GE 3 THEN v
-
-
-! gridding scattered points to modulo axis had bug
-go bn_reset
-cancel mode verify
-GO err540_modscat.jnl
-! test gridding scattered points to modulo axis.
-! Show Southern hemisphere.
-
-use coads_climatology
-
-let xpts = 360*randu(i+10)-180; let ypts = 80*randu(i) -80
-let sstpts = samplexy(sst[l=1], xpts[i=1:1000], ypts[i=1:1000])
-
-def axis/x=180w:180e:1/modulo xax
-def axis/y=-89:0:1 yax
-def grid/x=xax/y=yax mygrid
-
-let a = scat2gridgauss_xy (xpts[i=1:1000], ypts[i=1:1000], sstpts, x[gx=mygrid], y[gy=mygrid], 6, 1, 6, 6)
-
-let b = if sst[l=1,gx=mygrid,gy=mygrid] then a
-
-shade b
-plot/vs/over xpts[i=1:1000]+360, ypts[i=1:1000]
-
-! make sure the USE bug reported 5/01 by A Wittenberg is fixed
-GO bn_reset
-cancel mode verify
-GO err540_use.jnl
-! err540_use.jnl
-!
-! very subtle bug fix in the "USE" command. What would happen is if dataset A and
-! dataset B were "used", then dset A was cancelled, if the next dataset (dataset C)
-! "used" had a similarly named variable as dataset B, then Ferret would mistakingly
-! set the similarly named variable in dataset C to lower case, making it inaccessible.
-! This was because the logic in cd_scan_vars.F didn't take into account that variables from
-! different datasets may be overlapped in the ds_var_code array.
-
-! Create three simple files containing variables with lowercase names.
-let a = 1
-let b = 2
-save/q/clob/file=f.nc a
-save/q/clob/file=f2.nc a,b
-save/q/clob/file=g.nc b
-can var a b
-
-sp ncrename -h -v A,a f.nc
-sp ncrename -h -v A,a -v B,b f2.nc
-sp ncrename -h -v B,b g.nc
-use f.nc
-use f2.nc
-use g.nc
-sh data
- currently SET data sets:
- 1> ./f.nc
- name title I J K L M N
- A 1 ... ... ... ... ... ...
-
- 2> ./f2.nc
- name title I J K L M N
- A 1 ... ... ... ... ... ...
- B 2 ... ... ... ... ... ...
-
- 3> ./g.nc (default)
- name title I J K L M N
- B 2 ... ... ... ... ... ...
-
-can data/all
-
-! Use two of the files and cancel the first one.
-use f.nc
-sh data
- currently SET data sets:
- 1> ./f.nc (default)
- name title I J K L M N
- A 1 ... ... ... ... ... ...
-
-use g.nc
-sh data
- currently SET data sets:
- 1> ./f.nc
- name title I J K L M N
- A 1 ... ... ... ... ... ...
-
- 2> ./g.nc (default)
- name title I J K L M N
- B 2 ... ... ... ... ... ...
-
-can dat 1
-
-! Now open the f2 file which as both a and b variables
-use f2.nc
-
-! All variables from BOTH datasets should be capitals.
-show dat
- currently SET data sets:
- 1> ./f2.nc (default)
- name title I J K L M N
- A 1 ... ... ... ... ... ...
- B 2 ... ... ... ... ... ...
-
- 2> ./g.nc
- name title I J K L M N
- B 2 ... ... ... ... ... ...
-
-
-! This should work
-list b[d=1]
- VARIABLE : 2
- FILENAME : f2.nc
- 2.00000
-
-
-
-GO bn_reset
-cancel mode verify
-GO bn_cancel_axes
-! bn_cancel_axes.jnl
-
-let ind1 = 1*i
-let tim1 = 20500*randu(ind1[i=1:20500])
-let ind2 = sorti(tim1)
-let tim2 = samplei(tim1, ind2)
-list/format=comma/file=longax.dat/clobber tim2
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-
-go bn_reset
-cancel mode verify
-! longax cancel axis axname
-repeat/k=1:10 go bn_cancel_axes_1.sub
-!-> REPEAT: K=1
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
-
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
-
-!-> REPEAT: K=2
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
-
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
-
-!-> REPEAT: K=3
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
-
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
-
-!-> REPEAT: K=4
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
-
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
-
-!-> REPEAT: K=5
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
-
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
-
-!-> REPEAT: K=6
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
-
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
-
-!-> REPEAT: K=7
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
-
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
-
-!-> REPEAT: K=8
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
-
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
-
-!-> REPEAT: K=9
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
-
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
-
-!-> REPEAT: K=10
-! cancel axis axname
-! Defining lots of irregular axes, used up coordinate storage.
-! Now coordinage storage is recovered; also have the option to cancel axis/all
-
-set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
-def axis/from_data/t/units=days tim_ax=tim
-def grid/t=tim_ax tim_grd
-can grid tim_grd
-can axis tim_ax
-can data longax.dat
-
-
- go bn_reset
-cancel mode verify
-! longax cancel axis/all
-
-! Note: cancel axes/all tested in err541_cancel_axes.jnl
-! Here, it causes huge output because previous benchmarks
-! leave lots of grids defined.
-! repeat/k=1:10 (go bn_cancel_axes_2.sub; cancel grid tim_grd; cancel axis/all)
-
-! test remaining axes are intact when we cancel one.
-go bn_reset
-cancel mode verify
-define axis/x ax1={2,4,5,6,9}
-define axis/x ax2={30,60,90,100}
-sh axis/x ax2
- name axis # pts start end
- AX2 X 4 i 30 100
- Axis span (to cell edges) = 90
-
- I X XBOX XBOXLO
- 1> 30 30 15
- 2> 60 30 45
- 3> 90 20 75
- 4> 100 10 95
-can axis ax1
-sh axis/x ax2
- name axis # pts start end
- AX2 X 4 i 30 100
- Axis span (to cell edges) = 90
-
- I X XBOX XBOXLO
- 1> 30 30 15
- 2> 60 30 45
- 3> 90 20 75
- 4> 100 10 95
-
-! Test interaction with irreg axes from datasets
-
-use test_axes
-cancel data test_axes
-sh axis/t test_irreg
- name axis # pts start end
- TEST_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 365.2425 (modulo length = axis span)
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 16-JAN 12:00:00 31 01-JAN 00:00:00 15.5
- 2> 15-FEB 02:54:36 28.2425 01-FEB 00:00:00 45.12125
- 3> 15-MAR 17:49:12 31 29-FEB 05:49:12 74.7425
- 4> 15-APR 05:49:12 30 31-MAR 05:49:12 105.2425
- 5> 15-MAY 17:49:12 31 30-APR 05:49:12 135.7425
- 6> 15-JUN 05:49:12 30 31-MAY 05:49:12 166.2425
- 7> 15-JUL 17:49:12 31 30-JUN 05:49:12 196.7425
- 8> 15-AUG 17:49:12 31 31-JUL 05:49:12 227.7425
- 9> 15-SEP 05:49:12 30 31-AUG 05:49:12 258.2425
- 10> 15-OCT 17:49:12 31 30-SEP 05:49:12 288.7425
- 11> 15-NOV 05:49:12 30 31-OCT 05:49:12 319.2425
- 12> 15-DEC 17:49:12 31 30-NOV 05:49:12 349.7425
-
-def axis/x ax1 = {1, 3, 4, 5, 9}
-can axis ax1
-sh axis/t test_irreg
- name axis # pts start end
- TEST_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 365.2425 (modulo length = axis span)
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 1> 16-JAN 12:00:00 31 01-JAN 00:00:00 15.5
- 2> 15-FEB 02:54:36 28.2425 01-FEB 00:00:00 45.12125
- 3> 15-MAR 17:49:12 31 29-FEB 05:49:12 74.7425
- 4> 15-APR 05:49:12 30 31-MAR 05:49:12 105.2425
- 5> 15-MAY 17:49:12 31 30-APR 05:49:12 135.7425
- 6> 15-JUN 05:49:12 30 31-MAY 05:49:12 166.2425
- 7> 15-JUL 17:49:12 31 30-JUN 05:49:12 196.7425
- 8> 15-AUG 17:49:12 31 31-JUL 05:49:12 227.7425
- 9> 15-SEP 05:49:12 30 31-AUG 05:49:12 258.2425
- 10> 15-OCT 17:49:12 31 30-SEP 05:49:12 288.7425
- 11> 15-NOV 05:49:12 30 31-OCT 05:49:12 319.2425
- 12> 15-DEC 17:49:12 31 30-NOV 05:49:12 349.7425
-
-cancel axis test_irreg
-
-def axis/x ax1 = {1, 3, 4, 5, 9}
-sh axis/x ax1
- name axis # pts start end
- AX1 X 5 i 1 9
- Axis span (to cell edges) = 11
-
- I X XBOX XBOXLO
- 1> 1 2 0
- 2> 3 1.5 2
- 3> 4 1 3.5
- 4> 5 2.5 4.5
- 5> 9 4 7
-can axis ax1
-
-sh axis/t test_irreg
- name axis # pts start end
-sh axis/t test_seas
- name axis # pts start end
- TEST_SEAS TIME 4mr 15-FEB 15:43 15-NOV 14:05
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 8765.82 (modulo length = axis span)
-
- L T TBOX TBOXLO TSTEP (HOURS)
- 1> 15-FEB 15:43:39 2191.455 01-JAN 00:00:00 1095.727
- 2> 16-MAY 23:10:57 2191.455 01-APR 07:27:18 3287.182
- 3> 16-AUG 06:38:15 2191.455 01-JUL 14:54:36 5478.637
- 4> 15-NOV 14:05:33 2191.455 30-SEP 22:21:54 7670.092
-
-
-! ******** V5.42 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn542_bug_fixes
-! bn542_bug_fixes.jnl
-! test various fixes that went into version 5.42
-! 10/02 *acm*
-!
-
-! Interior tics disappear on FILL plots
-GO bn_reset
-cancel mode verify
-GO err541_fill_tics
-! pplus tics bug - pre 5.42, fill plots overlaid interior tics.
-
-use coads_climatology
-ppl tics 0.,.35,0.,.35,0,0
-
-set view upper
-shade/l=1/x=150e:110w/y=40s:40n sst
-
-set view lower
-fill/l=1/x=150e:110w/y=40s:40n sst
-
-ppl tics,,.25,,.25,-1,-1
-
-! non-Gregorian axes not properly defined when time steps
-! are used rather than date specifications
-GO bn_reset
-cancel mode verify
-GO err541_non_gregorian
-!From Andrew Wittenberg, non-Gregorian time axis bug 01 Oct 2002
-! pre-542, second axis has just one point.
-
-def ax/cal=Gregorian/t=.5:11.5:1/unit=month/t0=1-jan-1980 tax1
-show ax tax2
- name axis # pts start end
- TAX2 TIME 3 i 02-JAN-1990 00:00 06-JAN-1990 00:00
-T0 = 1-JAN-1990
- Axis span (to cell edges) = 6
-
-def ax/cal=Julian/t=.5:11.5:1/unit=month/t0=1-jan-1980 tax2
-show ax tax2
- name axis # pts start end
- TAX2 TIME 12 r 16-JAN-1980 05:15 16-DEC-1980 00:45
-T0 = 1-JAN-1980
-CALENDAR = JULIAN
- Axis span (to cell edges) = 12
-
-! For comparison, use the dates that start and end tax2
-def ax/cal=Julian/t="16-jan-1980:05:15":"16-dec-1980:00:45":1/unit=month/t0=1-jan-1980 tax3
-show ax tax3
- name axis # pts start end
- TAX3 TIME 12 r 16-JAN-1980 05:15 16-DEC-1980 00:45
-T0 = 1-JAN-1980
-CALENDAR = JULIAN
- Axis span (to cell edges) = 12
-
-
-! Could not write or read a NetCDF file with a 4-D string variable.
-GO bn_reset
-cancel mode verify
-GO err541_string4d
- ! Write a 4-D NetCDF file with a string variable.
-
-sp rm -f string4d.nc
-
-def axis/x=1:2:1 x2ax
-def axis/y=1:3:1 y3ax
-def axis/z=1:4:1 z4ax
-def axis/t=1:2:1 t2ax
-
-let a = {"alpha","a2","a3","a4","a5","a6","a7","a8","a9","a10",\
-"bravo","b2","b3","b4","b5","b6","b7","b8","b9","b10",\
-"c1","c2","c3","c4","c5","c6","c7","c8","c9","c10",\
-"d1","d2","d3","d4","d5","d6","d7","d8","d9","d10",\
-"echo","e2","e3","e4","e5","e6","e7","e8"}
-
-let rvar = x[gx=x2ax] + y[gy=y3ax] + z[gz=z4ax] + t[gt=t2ax]
-stat rvar
-
- X[GX=X2AX] + Y[GY=Y3AX] + Z[GZ=Z4AX] + T[GT=T2AX]
- X: 0.5 to 2.5
- Y: 0.5 to 3.5
- Z: 0.5 to 4.5
- T: 0.5 to 2.5
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 48 (2*3*4*2*1*1)
- # flagged as bad data: 0
- Minimum value: 4
- Maximum value: 11
- Mean value: 7.5 (unweighted average)
- Standard deviation: 1.571
-
-let axy = reshape (a,rvar)
-!list axy
-stat axy
-
- RESHAPE (A,RVAR)
- X: 0.5 to 2.5
- Y: 0.5 to 3.5
- Z: 0.5 to 4.5
- T: 0.5 to 2.5
- E: N/A
- F: N/A
- DATA SET: N/A
- Total # of strings: 48 (2*3*4*2*1*1)
- Maximum string length: 5
-save/clobber/file=string4d.nc axy
-
-can var/all
-can data/all
-use string4d.nc
-sh data
- currently SET data sets:
- 1> ./string4d.nc (default)
- name title I J K L M N
- AXY RESHAPE (A,RVAR) 1:2 1:3 1:4 1:2 ... ...
-
-list axy
- VARIABLE : RESHAPE (A,RVAR)
- FILENAME : string4d.nc
- SUBSET : 2 by 3 by 4 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1:"alpha""a2"
- 2 / 2:"a3" "a4"
- 3 / 3:"a5" "a6"
- ---- K:2 Z: 2
- 1 / 1:"a7" "a8"
- 2 / 2:"a9" "a10"
- 3 / 3:"bravo""b2"
- ---- K:3 Z: 3
- 1 / 1:"b3" "b4"
- 2 / 2:"b5" "b6"
- 3 / 3:"b7" "b8"
- ---- K:4 Z: 4
- 1 / 1:"b9" "b10"
- 2 / 2:"c1" "c2"
- 3 / 3:"c3" "c4"
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1:"c5" "c6"
- 2 / 2:"c7" "c8"
- 3 / 3:"c9" "c10"
- ---- K:2 Z: 2
- 1 / 1:"d1" "d2"
- 2 / 2:"d3" "d4"
- 3 / 3:"d5" "d6"
- ---- K:3 Z: 3
- 1 / 1:"d7" "d8"
- 2 / 2:"d9" "d10"
- 3 / 3:"echo" "e2"
- ---- K:4 Z: 4
- 1 / 1:"e3" "e4"
- 2 / 2:"e5" "e6"
- 3 / 3:"e7" "e8"
-
-
-! Cancel axis/all did not check whether axes were in use
-GO bn_reset
-cancel mode verify
-GO err541_cancel_axes
-! Check that an axis in use cannot be cancelled.
-! 4/2013 changes for Ferret with climatological axes
-! defined internally. Use a different datset for this test
-
-use test_axes
-cancel data test_axes
-
-let tt = t[gt=test_irreg] + 50*x[i=1:10]
-load tt
-
-show axis test_i*
- name axis # pts start end
- TEST_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 365.2425 (modulo length = axis span)
-cancel axis test_irreg
-
-show axis test_i*
- name axis # pts start end
- TEST_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 365.2425 (modulo length = axis span)
-
-! Pre V5.42, this causes a crash: axes were cancelled, but not fully.
-cancel axis/all
-show axis test_i*
- name axis # pts start end
- TEST_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 365.2425 (modulo length = axis span)
-
-cancel var tt
-cancel axis/all
-
-show axis test_i*
- name axis # pts start end
-
-
-
-! Make sure delimited reads are processing dates correctly
-! *kob*
-! 5/4/05 *acm* Move to bn_ef_err541_date_delim; pulling all jnls that call shared-obj efs out
-GO bn_reset
-cancel mode verify
-! GO err541_date_delim
-
-
-! ******** V5.50 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn_subspan_modulo
-! bn_subspan_modulo.jnl
-! *sh* 11/02
-
-! a subspan modulo axis is one which is modulo, but the wrapping length
-! exceeds the span of the axis. Ferret generates a phantom "void point"
-! in order to bring the axis length equal to the modulo length. The void
-! point is automatically filled with a missing value (psuedo-vars excluded)
-
-! test defining of subspan modulo axes
-! any longitude axis less than 360 degrees
-define axis/x=130e:80w:10 xsub ! yes
-GO bn_subspan_modulo.sub1 X
-Axis as created:
- name axis # pts start end
- XSUB LONGITUDE 16mr 130E 80W
- Axis span (to cell edges) = 160 (modulo length = 360)
-Axis as inferred from netCDF file:
- name axis # pts start end
- XSUB LONGITUDE 16mr 130E 80W
- Axis span (to cell edges) = 160 (modulo length = 360)
-define axis/x=-180:179:1/units=longitude/edges xsub ! yes
-GO bn_subspan_modulo.sub1 X
-Axis as created:
- name axis # pts start end
- XSUB LONGITUDE 359mr 179.5W(-179.5) 178.5E
- Axis span (to cell edges) = 359 (modulo length = 360)
-Axis as inferred from netCDF file:
- name axis # pts start end
- XSUB LONGITUDE 359mr 179.5W(-179.5) 178.5E
- Axis span (to cell edges) = 359 (modulo length = 360)
-define axis/x=-180:181:1/units=longitude/edges xsub ! no
-GO bn_subspan_modulo.sub1 X
-Axis as created:
- name axis # pts start end
- XSUB LONGITUDE 361 r 179.5W(-179.5) 179.5W
- Axis span (to cell edges) = 361
-Axis as inferred from netCDF file:
- name axis # pts start end
- XSUB LONGITUDE 361 r 179.5W(-179.5) 179.5W
- Axis span (to cell edges) = 361
-
-! not allowed for axis length to exceed modulo length
-set mode ignore
- define axis/x=130e:500:10/modulo=360 xsub
-canc mode ignore
-
-! automatic detection of climatologies
-def ax/t=1-jan-0000:1-apr-0000/np=3 tsub ! yes
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name axis # pts start end
- TSUB TIME 3mr 01-JAN 00:00 01-APR 00:00
-T0 = 01-JAN-0000
- Axis span (to cell edges) = 3276 (modulo length = 8765.82)
-Axis as inferred from netCDF file:
- name axis # pts start end
- TSUB TIME 3mr 01-JAN 00:00 01-APR 00:00
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 3276 (modulo length = 8765.82)
-def ax/t=1-jan-0000:1-apr-0000/np=3/edge/units=days tsub ! yes
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name axis # pts start end
- TSUB TIME 3mr 16-JAN 04:00 16-MAR 20:00
-T0 = 01-JAN-0000
- Axis span (to cell edges) = 91 (modulo length = 365.2425)
-Axis as inferred from netCDF file:
- name axis # pts start end
- TSUB TIME 3mr 16-JAN 04:00 16-MAR 19:59
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 91 (modulo length = 365.2425)
-def ax/t=1-aug-0000:1-aug-0001/np=3/edge/units=days tsub ! yes
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name axis # pts start end
- TSUB TIME 3mr 30-SEP 20:00 01-JUN 04:00
-T0 = 01-JAN-0000
- Axis span (to cell edges) = 365 (modulo length = 365.2425)
-Axis as inferred from netCDF file:
- name axis # pts start end
- TSUB TIME 3mr 30-SEP 19:59 01-JUN 04:00
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 365 (modulo length = 365.2425)
-def ax/t=31-dec-0000:1-may-0001/np=3/units=days tsub ! yes
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name axis # pts start end
- TSUB TIME 3mr 31-DEC 00:00 01-MAY 00:00
-T0 = 01-JAN-0000
- Axis span (to cell edges) = 181.5 (modulo length = 365.2425)
-Axis as inferred from netCDF file:
- name axis # pts start end
- TSUB TIME 3mr 31-DEC 00:00 01-MAY 00:00
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 181.5 (modulo length = 365.2425)
-! the following start in year 0001
-def ax/t=31-dec-0000:1-may-0001/np=3/edges/units=days tsub ! no
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name axis # pts start end
- TSUB TIME 3 r 20-JAN-0001 04:00 10-APR-0001 20:00
-T0 = 01-JAN-0000
- Axis span (to cell edges) = 121
-Axis as inferred from netCDF file:
- name axis # pts start end
- TSUB TIME 3mr 20-JAN 04:00 10-APR 19:59
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 121 (modulo length = 365.2425)
-def ax/t=1-jan-0001:1-sep-0001/np=3/units=days tsub ! no
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name axis # pts start end
- TSUB TIME 3 r 01-JAN-0001 00:00 01-SEP-0001 00:00
-T0 = 01-JAN-0000
- Axis span (to cell edges) = 364.5
-Axis as inferred from netCDF file:
- name axis # pts start end
- TSUB TIME 3mr 01-JAN 00:00 01-SEP 00:00
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 364.5 (modulo length = 365.2425)
-! the following is too long to be a climatological axis
-def ax/t=29-dec-0000:31-dec-0001/np=3/units=days tsub ! no
-GO bn_subspan_modulo.sub1 T
-Axis as created:
- name axis # pts start end
- TSUB TIME 3 r 29-DEC-0000 00:00 31-DEC-0001 00:00
-T0 = 01-JAN-0000
- Axis span (to cell edges) = 550.5
-Axis as inferred from netCDF file:
- name axis # pts start end
- TSUB TIME 3 r 29-DEC-0000 00:00 31-DEC-0001 00:00
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 550.5
-
-
-! now test Ferret handling of the axes
-! make a test file with a subspan modulo variable
-! (need to postpone setting /modulo=100 cuz pseudo-vars have value on void pt)
-sp rm -f test_subspan_modulo.nc
-define axis/x=41:46:1/modulo=100 xax_subspan
-
-! almost identical irregular axis
-define axis/x/modulo=100 Xirreg_subspan = {41,42,42.1,44,45,46}
-set axis/modulo=100 Xirreg_subspan
-
-let vreg = X[gx=xax_subspan] -40 + 10
-let virr = X[gx=Xirreg_subspan] -40 + 10
-save/file=test_subspan_modulo.nc vreg, virr
-
-! noisy field to test smoothing
-let noise = 0.2 * RANDN(0*vreg+1)
-let vreg_ragged = vreg + noise
-let virr_ragged = virr + noise[g=virr at asn]
-save/file=test_subspan_modulo.nc/append vreg_ragged, virr_ragged
-
-! gappy field to test hole-filling
-let vreg_void = if x[g=vreg] LT 43 OR x[g=vreg] GT 45 THEN vreg
-let virr_void = if x[g=virr] LT 43 OR x[g=virr] GT 45 THEN virr
-save/file=test_subspan_modulo.nc/append vreg_void, virr_void
-save/file=test_subspan_modulo.nc/append vreg_void, virr_void
-
-! now define two-dimensional variables -- modulo in time as well
-define axis/t=0:150:30/edges/units=days/modulo=365.2485/t0=1-jan-0000 tax_subspan
-define axis/T0=1-jan-0000/units=days/modulo=365.2485/edges Tirreg_subspan = {0,31,59.2485,90.2485,120.2485,150.2485}
-let treg = TBOXLO[gt=tax_subspan]
-let tirr = TBOXLO[gt=tirreg_subspan]
-let v2d_reg = vreg + treg
-let v2d_irr = virr + tirr
-save/file=test_subspan_modulo.nc/append v2d_reg, v2d_irr
-
-! 2d with voids
-let treg_void = if L[g=v2d_reg] NE 3 THEN treg
-let tirr_void = if L[g=v2d_irr] NE 3 THEN tirr
-let v2d_reg_void = vreg_void + treg_void
-let v2d_irr_void = virr_void + tirr_void
-save/file=test_subspan_modulo.nc/append v2d_reg_void, v2d_irr_void
-
-! string variable on subspan modulo axis
-let my_strings = {"a1","a2","a3","a4","a5","a6"}
-let vreg_strings = my_strings[gx=xax_subspan at asn]
-let virr_strings = my_strings[gx=Xirreg_subspan at asn]
-save/file=test_subspan_modulo.nc/append vreg_strings, virr_strings
-
-canc var/all
-use test_subspan_modulo.nc
-
-go bn_subspan_modulo.sub2 vreg v2d_reg
-! bn_subspan_modulo.sub
-! *sh* 11/02
-
-! subroutine for benchmark test bn_subspan_modulo.jnl
-! call with
-! yes? GO bn_subspan_modulo.sub vreg ! test regular axis
-! yes? GO bn_subspan_modulo.sub virr ! test irregular axis
-
-define alias lsx list/order=x
-define alias lsxn list/order=x/nohead
-
-! check the modulo behavior of the X and T axes
-define symbox xaxname `$1,return=xaxis`
- !-> define symbox xaxname XAX_SUBSPAN
-show axis/x=-60:141 ($XAXNAME)
- !-> show axis/x=-60:141 XAX_SUBSPAN
- name axis # pts start end
- XAX_SUBSPAN X 6mr 41 46
- Axis span (to cell edges) = 6 (modulo length = 100)
-
- I X XBOX XBOXLO
- -7> -106.5 94 -153.5
- -6> -59 1 -59.5
- -5> -58 1 -58.5
- -4> -57 1 -57.5
- -3> -56 1 -56.5
- -2> -55 1 -55.5
- -1> -54 1 -54.5
- 0> -6.5 94 -53.5
- 1> 41 1 40.5
- 2> 42 1 41.5
- 3> 43 1 42.5
- 4> 44 1 43.5
- 5> 45 1 44.5
- 6> 46 1 45.5
- 7> 93.5 94 46.5
- 8> 141 1 140.5
-show axis/x=-60:141:2 ($XAXNAME)
- !-> show axis/x=-60:141:2 XAX_SUBSPAN
- name axis # pts start end
- XAX_SUBSPAN X 6mr 41 46
- Axis span (to cell edges) = 6 (modulo length = 100)
-
- I X XBOX XBOXLO
- -7> -106.5 94 -153.5
- -5> -58 1 -58.5
- -3> -56 1 -56.5
- -1> -54 1 -54.5
- 1> 41 1 40.5
- 3> 43 1 42.5
- 5> 45 1 44.5
- 7> 93.5 94 46.5
-show axis/x=-60:141:7 ($XAXNAME)
- !-> show axis/x=-60:141:7 XAX_SUBSPAN
- name axis # pts start end
- XAX_SUBSPAN X 6mr 41 46
- Axis span (to cell edges) = 6 (modulo length = 100)
-
- I X XBOX XBOXLO
- -7> -106.5 94 -153.5
- 0> -6.5 94 -53.5
- 7> 93.5 94 46.5
-
-define symbox taxname `$2,return=taxis`
- !-> define symbox taxname TAX_SUBSPAN1
-show axis/l=3:10 ($TAXNAME)
- !-> show axis/l=3:10 TAX_SUBSPAN1
- name axis # pts start end
- TAX_SUBSPAN1 TIME 5mr 16-JAN 00:00 15-MAY 00:00
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 150 (modulo length = 365.2485)
-
- L T TBOX TBOXLO TSTEP (days)
- 3> 16-MAR 00:00:00 30 01-MAR 00:00:00 75
- 4> 15-APR 00:00:00 30 31-MAR 00:00:00 105
- 5> 15-MAY 00:00:00 30 30-APR 00:00:00 135
- 6> 14-SEP 14:58:55 215.2485 30-MAY 00:00:00 257.6242
- 7> 15-JAN 05:57:50 30 31-DEC 05:57:50 380.2485
- 8> 14-FEB 05:57:50 30 30-JAN 05:57:50 410.2485
- 9> 16-MAR 05:57:50 30 01-MAR 05:57:50 440.2485
- 10> 15-APR 05:57:50 30 31-MAR 05:57:50 470.2485
-show axis/l=3:10:3 ($TAXNAME)
- !-> show axis/l=3:10:3 TAX_SUBSPAN1
- name axis # pts start end
- TAX_SUBSPAN1 TIME 5mr 16-JAN 00:00 15-MAY 00:00
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 150 (modulo length = 365.2485)
-
- L T TBOX TBOXLO TSTEP (days)
- 3> 16-MAR 00:00:00 30 01-MAR 00:00:00 75
- 6> 14-SEP 14:58:55 215.2485 30-MAY 00:00:00 257.6242
- 9> 16-MAR 05:57:50 30 01-MAR 05:57:50 440.2485
-show axis/l=3:10:6 ($TAXNAME)
- !-> show axis/l=3:10:6 TAX_SUBSPAN1
- name axis # pts start end
- TAX_SUBSPAN1 TIME 5mr 16-JAN 00:00 15-MAY 00:00
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 150 (modulo length = 365.2485)
-
- L T TBOX TBOXLO TSTEP (days)
- 3> 16-MAR 00:00:00 30 01-MAR 00:00:00 75
- 9> 16-MAR 05:57:50 30 01-MAR 05:57:50 440.2485
-
-set mode diag
-set mode stupid ! always re-read and recompute
-lsx $1 ! default avoids void points
- !-> list/order=x vreg
- dealloc dynamic grid GFJ3 XAX_SUBSPANORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GFJ1 XAX_SUBSPANORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- reading VREG M: 8 dset: 1 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : X[GX=XAX_SUBSPAN] -40 + 10
- FILENAME : test_subspan_modulo.nc
- SUBSET : 6 points (X)
- 41 42 43 44 45 46
- 1 2 3 4 5 6
- 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000
-lsxn/x=100 $1 ! void point above, alone (via "modulo-void-filling")
- !-> list/order=x/nohead/x=100 vreg
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 7 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip modulo-void-filling VREG on X axis: 7 7 dset: 1
- reading VREG M: 11 dset: 1 I: 6 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing modulo-void-filling VREG on X axis: 6 6 dset: 1
- ....
-lsxn/x=0 $1 ! void point below, alone (via modulo)
- !-> list/order=x/nohead/x=0 vreg
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 0 0 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip moduloing VREG on X axis: 0 0 dset: 1
- reading VREG M: 6 dset: 1 I: 6 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing moduloing VREG on X axis: 6 6 dset: 1
- ....
-lsxn/x=45:100 $1 ! void above (via subspan-fill)
- !-> list/order=x/nohead/x=45:100 vreg
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 5 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip modulo-void-filling VREG on X axis: 5 7 dset: 1
- reading VREG M: 5 dset: 1 I: 5 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing modulo-void-filling VREG on X axis: 5 6 dset: 1
- 15.0000 16.0000 ....
-lsxn/x=0:100 $1 ! voids above & below (via modulo)
- !-> list/order=x/nohead/x=0:100 vreg
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 0 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip moduloing VREG on X axis: 0 7 dset: 1
- reading VREG M: 17 dset: 1 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing moduloing VREG on X axis: 1 6 dset: 1
- .... 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 ....
-set mode/last diag
-lsxn/x=50:160 $1 ! modulo above
- !-> list/order=x/nohead/x=50:160 vreg
- .... 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 ....
-lsxn/x=-100:40 $1 ! modulo below
- !-> list/order=x/nohead/x=-100:40 vreg
- .... 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 ....
-lsxn/x=-100:160 $1 ! modulo above & below
- !-> list/order=x/nohead/x=-100:160 vreg
- ... listing every 2th point
- . .... 12.0000 14.0000 16.0000 11.0000 13.0000 15.0000 .... 12.0000 14.0000 16.0000
-
-! end point testing
-lsxn/i=-8:-2 $1
- !-> list/order=x/nohead/i=-8:-2 vreg
- 16.0000 .... 11.0000 12.0000 13.0000 14.0000 15.0000
-lsxn/i=-7:-2 $1
- !-> list/order=x/nohead/i=-7:-2 vreg
- .... 11.0000 12.0000 13.0000 14.0000 15.0000
-lsxn/i=-6:-2 $1
- !-> list/order=x/nohead/i=-6:-2 vreg
- 11.0000 12.0000 13.0000 14.0000 15.0000
-lsxn/i=17:20 $1
- !-> list/order=x/nohead/i=17:20 vreg
- 13.0000 14.0000 15.0000 16.0000
-lsxn/i=17:21 $1
- !-> list/order=x/nohead/i=17:21 vreg
- 13.0000 14.0000 15.0000 16.0000 ....
-lsxn/i=17:22 $1
- !-> list/order=x/nohead/i=17:22 vreg
- 13.0000 14.0000 15.0000 16.0000 .... 11.0000
-set mode/last stupid
-
-! test smoothers - pos and neg modulo and combined mod and context edges
-lsx/x=500:600 $1_ragged
- !-> list/order=x/x=500:600 vreg_ragged
- VARIABLE : VREG + NOISE
- FILENAME : test_subspan_modulo.nc
- SUBSET : 8 points (X)
- 493.5 541 542 543 544 545 546 593.5
- 35 36 37 38 39 40 41 42
- .... 10.9466 12.0566 12.9354 14.2434 14.9391 15.9921 ....
-lsxn/x=500:600 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=500:600 vreg_ragged[x=@sbx]
- .... .... 11.9795 13.0784 14.0393 15.0582 .... ....
-lsxn/x=500:545 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=500:545 vreg_ragged[x=@sbx]
- .... .... 11.9795 13.0784 14.0393 15.0582
-lsxn/x=545:600 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=545:600 vreg_ragged[x=@sbx]
- 15.0582 .... ....
-
-lsxn/x=-100:0 $1_ragged
- !-> list/order=x/nohead/x=-100:0 vreg_ragged
- .... 10.9466 12.0566 12.9354 14.2434 14.9391 15.9921 ....
-lsxn/x=-100:0 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=-100:0 vreg_ragged[x=@sbx]
- .... .... 11.9795 13.0784 14.0393 15.0582 .... ....
-lsxn/x=-100:-55 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=-100:-55 vreg_ragged[x=@sbx]
- .... .... 11.9795 13.0784 14.0393 15.0582
-lsxn/x=-56:0 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=-56:0 vreg_ragged[x=@sbx]
- 14.0393 15.0582 .... ....
-
-lsxn/x=-100:142/wid=200 $1_ragged
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_ragged
- .... 10.9466 12.0566 12.9354 14.2434 14.9391 15.9921 .... 10.9466 12.0566 12.9354 14.2434 14.9391 15.9921 .... 10.9466 12.0566
-lsxn/x=-100:142/wid=200 $1_ragged[x=@sbx:3]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_ragged[x=@sbx:3]
- .... .... 11.9795 13.0784 14.0393 15.0582 .... .... .... 11.9795 13.0784 14.0393 15.0582 .... .... .... 11.9795
-lsxn/x=-100:142/wid=200 $1_ragged[x=@swl:5]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_ragged[x=@swl:5]
- .... .... .... 13.0356 14.0408 .... .... .... .... .... 13.0356 14.0408 .... .... .... .... ....
-lsxn/x=-100:142/wid=200 $1_ragged[x=@swl:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_ragged[x=@swl:35]
- ....................................................................
-
-! test fillers - pos and neg modulo and combined mod and context edges
-! @FAV
-lsx/x=500:600 $1_void
- !-> list/order=x/x=500:600 vreg_void
- VARIABLE : IF X[G=VREG] LT 43 OR X[G=VREG] GT 45 THEN VREG
- FILENAME : test_subspan_modulo.nc
- SUBSET : 8 points (X)
- 493.5 541 542 543 544 545 546 593.5
- 35 36 37 38 39 40 41 42
- .... 11.0000 12.0000 .... .... .... 16.0000 ....
-lsxn/x=500:600 $1_void[x=@fav]
- !-> list/order=x/nohead/x=500:600 vreg_void[x=@fav]
- .... 11.0000 12.0000 12.0000 .... 16.0000 16.0000 ....
-
-lsxn/x=-100:0 $1_void
- !-> list/order=x/nohead/x=-100:0 vreg_void
- .... 11.0000 12.0000 .... .... .... 16.0000 ....
-lsxn/x=-100:0 $1_void[x=@fav]
- !-> list/order=x/nohead/x=-100:0 vreg_void[x=@fav]
- .... 11.0000 12.0000 12.0000 .... 16.0000 16.0000 ....
-
-lsxn/x=-100:142/wid=200 $1_void
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void
- .... 11.0000 12.0000 .... .... .... 16.0000 .... 11.0000 12.0000 .... .... .... 16.0000 .... 11.0000 12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fav:3]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void[x=@fav:3]
- .... 11.0000 12.0000 12.0000 .... 16.0000 16.0000 .... 11.0000 12.0000 12.0000 .... 16.0000 16.0000 .... 11.0000 12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fav:5]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void[x=@fav:5]
- .... 11.0000 12.0000 11.5000 14.0000 16.0000 16.0000 .... 11.0000 12.0000 11.5000 14.0000 16.0000 16.0000 .... 11.0000 12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fav:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void[x=@fav:35]
- .... 11.0000 12.0000 13.0000 13.0000 13.0000 16.0000 .... 11.0000 12.0000 13.0000 13.0000 13.0000 16.0000 .... 11.0000 12.0000
-
-! @FLN
-lsxn/x=500:600 $1_void
- !-> list/order=x/nohead/x=500:600 vreg_void
- .... 11.0000 12.0000 .... .... .... 16.0000 ....
-lsxn/x=500:600 $1_void[x=@fln]
- !-> list/order=x/nohead/x=500:600 vreg_void[x=@fln]
- .... 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 ....
-
-lsxn/x=-100:0 $1_void
- !-> list/order=x/nohead/x=-100:0 vreg_void
- .... 11.0000 12.0000 .... .... .... 16.0000 ....
-lsxn/x=-100:0 $1_void[x=@fln]
- !-> list/order=x/nohead/x=-100:0 vreg_void[x=@fln]
- .... 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 ....
-
-lsxn/x=-100:142/wid=200 $1_void
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void
- .... 11.0000 12.0000 .... .... .... 16.0000 .... 11.0000 12.0000 .... .... .... 16.0000 .... 11.0000 12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fln:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void[x=@fln:35]
- .... 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 .... 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 .... 11.0000 12.0000
-
-! @FNR
-lsxn/x=500:600 $1_void
- !-> list/order=x/nohead/x=500:600 vreg_void
- .... 11.0000 12.0000 .... .... .... 16.0000 ....
-lsxn/x=500:600 $1_void[x=@fnr]
- !-> list/order=x/nohead/x=500:600 vreg_void[x=@fnr]
- .... 11.0000 12.0000 12.0000 14.0000 16.0000 16.0000 ....
-
-lsxn/x=-100:0 $1_void
- !-> list/order=x/nohead/x=-100:0 vreg_void
- .... 11.0000 12.0000 .... .... .... 16.0000 ....
-lsxn/x=-100:0 $1_void[x=@fnr]
- !-> list/order=x/nohead/x=-100:0 vreg_void[x=@fnr]
- .... 11.0000 12.0000 12.0000 14.0000 16.0000 16.0000 ....
-
-lsxn/x=-100:142/wid=200 $1_void
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void
- .... 11.0000 12.0000 .... .... .... 16.0000 .... 11.0000 12.0000 .... .... .... 16.0000 .... 11.0000 12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fnr:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 vreg_void[x=@fnr:35]
- .... 11.0000 12.0000 12.0000 14.0000 16.0000 16.0000 .... 11.0000 12.0000 12.0000 14.0000 16.0000 16.0000 .... 11.0000 12.0000
-
-! Test 2-axis modulo (longitude and time)
-define alias l200 list/width=200
-define alias l200n list/width=200/nohead
-l200/i=1:13 $2
- !-> list/width=200/nohead/i=1:13 v2d_reg
- 16-JAN / 1: 11.000 12.000 13.000 14.000 15.000 16.000 .... 11.000 12.000 13.000 14.000 15.000 16.000
- 15-FEB / 2: 41.000 42.000 43.000 44.000 45.000 46.000 .... 41.000 42.000 43.000 44.000 45.000 46.000
- 16-MAR / 3: 71.000 72.000 73.000 74.000 75.000 76.000 .... 71.000 72.000 73.000 74.000 75.000 76.000
- 15-APR / 4: 101.000 102.000 103.000 104.000 105.000 106.000 .... 101.000 102.000 103.000 104.000 105.000 106.000
- 15-MAY / 5: 131.000 132.000 133.000 134.000 135.000 136.000 .... 131.000 132.000 133.000 134.000 135.000 136.000
-l200n/l=1:12 $2
- !-> list/width=200/nohead/l=1:12 v2d_reg
- 16-JAN / 1: 11.000 12.000 13.000 14.000 15.000 16.000
- 15-FEB / 2: 41.000 42.000 43.000 44.000 45.000 46.000
- 16-MAR / 3: 71.000 72.000 73.000 74.000 75.000 76.000
- 15-APR / 4: 101.000 102.000 103.000 104.000 105.000 106.000
- 15-MAY / 5: 131.000 132.000 133.000 134.000 135.000 136.000
- 14-SEP / 6: .... .... .... .... .... ....
- 15-JAN / 7: 11.000 12.000 13.000 14.000 15.000 16.000
- 14-FEB / 8: 41.000 42.000 43.000 44.000 45.000 46.000
- 16-MAR / 9: 71.000 72.000 73.000 74.000 75.000 76.000
- 15-APR / 10: 101.000 102.000 103.000 104.000 105.000 106.000
- 15-MAY / 11: 131.000 132.000 133.000 134.000 135.000 136.000
- 14-SEP / 12: .... .... .... .... .... ....
-l200n/l=1:12/i=1:11 $2
- !-> list/width=200/nohead/l=1:12/i=1:11 v2d_reg
- 16-JAN / 1: 11.000 12.000 13.000 14.000 15.000 16.000 .... 11.000 12.000 13.000 14.000
- 15-FEB / 2: 41.000 42.000 43.000 44.000 45.000 46.000 .... 41.000 42.000 43.000 44.000
- 16-MAR / 3: 71.000 72.000 73.000 74.000 75.000 76.000 .... 71.000 72.000 73.000 74.000
- 15-APR / 4: 101.000 102.000 103.000 104.000 105.000 106.000 .... 101.000 102.000 103.000 104.000
- 15-MAY / 5: 131.000 132.000 133.000 134.000 135.000 136.000 .... 131.000 132.000 133.000 134.000
- 14-SEP / 6: .... .... .... .... .... .... .... .... .... .... ....
- 15-JAN / 7: 11.000 12.000 13.000 14.000 15.000 16.000 .... 11.000 12.000 13.000 14.000
- 14-FEB / 8: 41.000 42.000 43.000 44.000 45.000 46.000 .... 41.000 42.000 43.000 44.000
- 16-MAR / 9: 71.000 72.000 73.000 74.000 75.000 76.000 .... 71.000 72.000 73.000 74.000
- 15-APR / 10: 101.000 102.000 103.000 104.000 105.000 106.000 .... 101.000 102.000 103.000 104.000
- 15-MAY / 11: 131.000 132.000 133.000 134.000 135.000 136.000 .... 131.000 132.000 133.000 134.000
- 14-SEP / 12: .... .... .... .... .... .... .... .... .... .... ....
-l200n/l=12:21/i=-19:-9 $2
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_reg
- 14-SEP / 12: .... .... .... .... .... .... .... .... .... .... ....
- 15-JAN-0002 / 13: 12.000 13.000 14.000 15.000 16.000 .... 11.000 12.000 13.000 14.000 15.000
- 14-FEB-0002 / 14: 42.000 43.000 44.000 45.000 46.000 .... 41.000 42.000 43.000 44.000 45.000
- 16-MAR-0002 / 15: 72.000 73.000 74.000 75.000 76.000 .... 71.000 72.000 73.000 74.000 75.000
- 15-APR-0002 / 16: 102.000 103.000 104.000 105.000 106.000 .... 101.000 102.000 103.000 104.000 105.000
- 15-MAY-0002 / 17: 132.000 133.000 134.000 135.000 136.000 .... 131.000 132.000 133.000 134.000 135.000
- 15-SEP-0002 / 18: .... .... .... .... .... .... .... .... .... .... ....
- 15-JAN-0003 / 19: 12.000 13.000 14.000 15.000 16.000 .... 11.000 12.000 13.000 14.000 15.000
- 14-FEB-0003 / 20: 42.000 43.000 44.000 45.000 46.000 .... 41.000 42.000 43.000 44.000 45.000
- 16-MAR-0003 / 21: 72.000 73.000 74.000 75.000 76.000 .... 71.000 72.000 73.000 74.000 75.000
-l200n/l=12:21/i=-19:-9 $2_void
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_reg_void
- 14-SEP / 12: .... .... .... .... .... .... .... .... .... .... ....
- 15-JAN-0002 / 13: 12.000 .... .... .... 16.000 .... 11.000 12.000 .... .... ....
- 14-FEB-0002 / 14: 42.000 .... .... .... 46.000 .... 41.000 42.000 .... .... ....
- 16-MAR-0002 / 15: .... .... .... .... .... .... .... .... .... .... ....
- 15-APR-0002 / 16: 102.000 .... .... .... 106.000 .... 101.000 102.000 .... .... ....
- 15-MAY-0002 / 17: 132.000 .... .... .... 136.000 .... 131.000 132.000 .... .... ....
- 15-SEP-0002 / 18: .... .... .... .... .... .... .... .... .... .... ....
- 15-JAN-0003 / 19: 12.000 .... .... .... 16.000 .... 11.000 12.000 .... .... ....
- 14-FEB-0003 / 20: 42.000 .... .... .... 46.000 .... 41.000 42.000 .... .... ....
- 16-MAR-0003 / 21: .... .... .... .... .... .... .... .... .... .... ....
-l200n/l=12:21/i=-19:-9 $2_void[x=@fnr,t=@fnr]
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_reg_void[x=@fnr,t=@fnr]
- 14-SEP / 12: .... .... .... .... .... .... .... .... .... .... ....
- 15-JAN-0002 / 13: 12.000 12.000 14.000 16.000 16.000 .... 11.000 12.000 12.000 14.000 16.000
- 14-FEB-0002 / 14: 42.000 42.000 44.000 46.000 46.000 .... 41.000 42.000 42.000 44.000 46.000
- 16-MAR-0002 / 15: 72.000 72.000 74.000 76.000 76.000 .... 71.000 72.000 72.000 74.000 76.000
- 15-APR-0002 / 16: 102.000 102.000 104.000 106.000 106.000 .... 101.000 102.000 102.000 104.000 106.000
- 15-MAY-0002 / 17: 132.000 132.000 134.000 136.000 136.000 .... 131.000 132.000 132.000 134.000 136.000
- 15-SEP-0002 / 18: .... .... .... .... .... .... .... .... .... .... ....
- 15-JAN-0003 / 19: 12.000 12.000 14.000 16.000 16.000 .... 11.000 12.000 12.000 14.000 16.000
- 14-FEB-0003 / 20: 42.000 42.000 44.000 46.000 46.000 .... 41.000 42.000 42.000 44.000 46.000
- 16-MAR-0003 / 21: 72.000 72.000 74.000 76.000 76.000 .... 71.000 72.000 72.000 74.000 76.000
-
-! test shift
-l200n/l=12:21/i=-19:-9 $2[x=@shf:2,t=@shf:-2]
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_reg[x=@shf:2,t=@shf:-2]
- 14-SEP / 12: 104.000 105.000 106.000 .... 101.000 102.000 103.000 104.000 105.000 106.000 ....
- 15-JAN-0002 / 13: 134.000 135.000 136.000 .... 131.000 132.000 133.000 134.000 135.000 136.000 ....
- 14-FEB-0002 / 14: .... .... .... .... .... .... .... .... .... .... ....
- 16-MAR-0002 / 15: 14.000 15.000 16.000 .... 11.000 12.000 13.000 14.000 15.000 16.000 ....
- 15-APR-0002 / 16: 44.000 45.000 46.000 .... 41.000 42.000 43.000 44.000 45.000 46.000 ....
- 15-MAY-0002 / 17: 74.000 75.000 76.000 .... 71.000 72.000 73.000 74.000 75.000 76.000 ....
- 15-SEP-0002 / 18: 104.000 105.000 106.000 .... 101.000 102.000 103.000 104.000 105.000 106.000 ....
- 15-JAN-0003 / 19: 134.000 135.000 136.000 .... 131.000 132.000 133.000 134.000 135.000 136.000 ....
- 14-FEB-0003 / 20: .... .... .... .... .... .... .... .... .... .... ....
- 16-MAR-0003 / 21: 14.000 15.000 16.000 .... 11.000 12.000 13.000 14.000 15.000 16.000 ....
-
-! test strides
-l200n/order=x $2[l=1,i=0:14]
- !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14]
- .... 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 .... 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 ....
-set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
- !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:2]
- dealloc dynamic grid GFJ3 XAX_SUBSPANORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- dealloc dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- allocate dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- strip regrid on X: V2D_REG --> (G008) @XACT
- found V2D_REG M: 69 dset: 1 I: 0 14 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid V2D_REG M: 70 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- .... 12.0000 14.0000 16.0000 11.0000 13.0000 15.0000 ....
-l200n/order=x $2[l=1,i=0:14:7]
- !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:7]
- ............
-set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
- !-> list/width=200/nohead v2d_reg[i=1,l=1:15:2]
- dealloc dynamic grid (G008) (AX017) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- -DELETE V2D_REG M: 71 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- dealloc dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- allocate dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- strip regrid on T: V2D_REG --> (G008) @XACT
- strip moduloing V2D_REG on T axis: 1 15 dset: 1
- rdstride V2D_REG C: 9 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
- doing moduloing V2D_REG on T axis: 1 5 dset: 1
- -DELETE V2D_REG M: 71 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
- nulrgd V2D_REG M: 71 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- -DELETE V2D_REG M: 72 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 15 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- 16-JAN-0000 / 1: 11.000
- 16-MAR-0000 / 2: 71.000
- 15-MAY-0000 / 3: 131.000
- 15-JAN-0001 / 4: 11.000
- 16-MAR-0001 / 5: 71.000
- 15-MAY-0001 / 6: 131.000
- 15-JAN-0002 / 7: 11.000
- 16-MAR-0002 / 8: 71.000
-l200n $2[i=1,l=1:15:3]
- !-> list/width=200/nohead v2d_reg[i=1,l=1:15:3]
- 16-JAN-0000 / 1: 11.000
- 15-APR-0000 / 2: 101.000
- 15-JAN-0001 / 3: 11.000
- 15-APR-0001 / 4: 101.000
- 15-JAN-0002 / 5: 11.000
-l200n $2[i=1,l=1:15:4]
- !-> list/width=200/nohead v2d_reg[i=1,l=1:15:4]
- 16-JAN-0000 / 1: 11.000
- 15-MAY-0000 / 2: 131.000
- 16-MAR-0001 / 3: 71.000
- 15-JAN-0002 / 4: 11.000
-l200n $2[i=0:14:2,l=1:15:3]
- !-> list/width=200/nohead v2d_reg[i=0:14:2,l=1:15:3]
- 16-JAN-0000 / 1: .... 12.000 14.000 16.000 11.000 13.000 15.000 ....
- 15-APR-0000 / 2: .... 102.000 104.000 106.000 101.000 103.000 105.000 ....
- 15-JAN-0001 / 3: .... 12.000 14.000 16.000 11.000 13.000 15.000 ....
- 15-APR-0001 / 4: .... 102.000 104.000 106.000 101.000 103.000 105.000 ....
- 15-JAN-0002 / 5: .... 12.000 14.000 16.000 11.000 13.000 15.000 ....
-
-! test modulo regridding
-define axis/t=15-jan-1981:15-dec-1990/npoints=120 t1980s
-LET/quiet time_series = MOD(L[gt=t1980s]-1,12)+1
-list time_series[gt=($TAXNAME)@mod]
- !-> list time_series[gt=TAX_SUBSPAN1 at mod]
- VARIABLE : MOD(L[GT=T1980S]-1,12)+1
- regrid: 30 day on T at MOD
- SUBSET : 5 points (TIME)
- 16-JAN / 1: 1.00000
- 15-FEB / 2: 2.00000
- 16-MAR / 3: 3.00000
- 15-APR / 4: 4.00000
- 15-MAY / 5: 5.00000
-list time_series[gt=($TAXNAME)@modngd]
- !-> list time_series[gt=TAX_SUBSPAN1 at modngd]
- VARIABLE : MOD(L[GT=T1980S]-1,12)+1 (# of points)
- regrid: 30 day on T at MODNGD
- SUBSET : 5 points (TIME)
- 16-JAN / 1: 10.0000
- 15-FEB / 2: 10.0000
- 16-MAR / 3: 10.0000
- 15-APR / 4: 10.0000
- 15-MAY / 5: 10.0000
-list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
- !-> list/nohead/l=1001:1009 time_series[gt=TAX_SUBSPAN1 at mod]
- 16-MAY-0166 / 1001: 5.00000
- 15-SEP-0166 / 1002: ....
- 16-JAN-0167 / 1003: 1.00000
- 15-FEB-0167 / 1004: 2.00000
- 17-MAR-0167 / 1005: 3.00000
- 16-APR-0167 / 1006: 4.00000
- 16-MAY-0167 / 1007: 5.00000
- 16-SEP-0167 / 1008: ....
- 16-JAN-0168 / 1009: 1.00000
-
-! test modulo string arrays
-list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
- !-> list vreg_strings[i=5:7] ! via IS_SUBSPAN_FILL
- VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
- FILENAME : test_subspan_modulo.nc
- SUBSET : 3 points (X)
- 45 / 5:"a5"
- 46 / 6:"a6"
- 93.5 / 7:""
-list $1_strings[i=1013:1024] ! via IS_MODULO
- !-> list vreg_strings[i=1013:1024] ! via IS_MODULO
- VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
- FILENAME : test_subspan_modulo.nc
- SUBSET : 12 points (X)
- 14445 / 1013:"a5"
- 14446 / 1014:"a6"
- 14493.5 / 1015:""
- 14541 / 1016:"a1"
- 14542 / 1017:"a2"
- 14543 / 1018:"a3"
- 14544 / 1019:"a4"
- 14545 / 1020:"a5"
- 14546 / 1021:"a6"
- 14593.5 / 1022:""
- 14641 / 1023:"a1"
- 14642 / 1024:"a2"
-SAY ********** END OF REGULAR AXIS TEST **************
-********** END OF REGULAR AXIS TEST **************
-SAY ********** START OF IRREGULAR AXIS TEST **************
-********** START OF IRREGULAR AXIS TEST **************
-go bn_subspan_modulo.sub2 virr v2d_irr
-! bn_subspan_modulo.sub
-! *sh* 11/02
-
-! subroutine for benchmark test bn_subspan_modulo.jnl
-! call with
-! yes? GO bn_subspan_modulo.sub vreg ! test regular axis
-! yes? GO bn_subspan_modulo.sub virr ! test irregular axis
-
-define alias lsx list/order=x
-define alias lsxn list/order=x/nohead
-
-! check the modulo behavior of the X and T axes
-define symbox xaxname `$1,return=xaxis`
- !-> define symbox xaxname XIRREG_SUBSPAN
-show axis/x=-60:141 ($XAXNAME)
- !-> show axis/x=-60:141 XIRREG_SUBSPAN
- name axis # pts start end
- XIRREG_SUBSPAN X 6mi 41 46
- Axis span (to cell edges) = 6 (modulo length = 100)
-
- I X XBOX XBOXLO
- -7> -106.5 94 -153.5
- -6> -59 1 -59.5
- -5> -58 0.55 -58.5
- -4> -57.9 1 -57.95
- -3> -56 1.45 -56.95
- -2> -55 1 -55.5
- -1> -54 1 -54.5
- 0> -6.5 94 -53.5
- 1> 41 1 40.5
- 2> 42 0.55 41.5
- 3> 42.1 1 42.05
- 4> 44 1.45 43.05
- 5> 45 1 44.5
- 6> 46 1 45.5
- 7> 93.5 94 46.5
- 8> 141 1 140.5
-show axis/x=-60:141:2 ($XAXNAME)
- !-> show axis/x=-60:141:2 XIRREG_SUBSPAN
- name axis # pts start end
- XIRREG_SUBSPAN X 6mi 41 46
- Axis span (to cell edges) = 6 (modulo length = 100)
-
- I X XBOX XBOXLO
- -7> -106.5 94 -153.5
- -5> -58 0.55 -58.5
- -3> -56 1.45 -56.95
- -1> -54 1 -54.5
- 1> 41 1 40.5
- 3> 42.1 1 42.05
- 5> 45 1 44.5
- 7> 93.5 94 46.5
-show axis/x=-60:141:7 ($XAXNAME)
- !-> show axis/x=-60:141:7 XIRREG_SUBSPAN
- name axis # pts start end
- XIRREG_SUBSPAN X 6mi 41 46
- Axis span (to cell edges) = 6 (modulo length = 100)
-
- I X XBOX XBOXLO
- -7> -106.5 94 -153.5
- 0> -6.5 94 -53.5
- 7> 93.5 94 46.5
-
-define symbox taxname `$2,return=taxis`
- !-> define symbox taxname TIRREG_SUBSPAN1
-show axis/l=3:10 ($TAXNAME)
- !-> show axis/l=3:10 TIRREG_SUBSPAN1
- name axis # pts start end
- TIRREG_SUBSPAN1 TIME 5mi 16-JAN 12:00 15-MAY 05:57
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 150.2485 (modulo length = 365.2485)
-
- L T TBOX TBOXLO TSTEP (days)
- 3> 15-MAR 17:57:50 31 29-FEB 05:57:50 74.7485
- 4> 15-APR 05:57:50 30 31-MAR 05:57:50 105.2485
- 5> 15-MAY 05:57:50 30 30-APR 05:57:50 135.2485
- 6> 14-SEP 17:57:50 215 30-MAY 05:57:50 257.7485
- 7> 15-JAN 17:57:50 31 31-DEC 05:57:50 380.7485
- 8> 14-FEB 08:56:45 28.2485 31-JAN 05:57:50 410.3727
- 9> 15-MAR 23:55:40 31 28-FEB 11:55:40 439.997
- 10> 15-APR 11:55:40 30 31-MAR 11:55:40 470.497
-show axis/l=3:10:3 ($TAXNAME)
- !-> show axis/l=3:10:3 TIRREG_SUBSPAN1
- name axis # pts start end
- TIRREG_SUBSPAN1 TIME 5mi 16-JAN 12:00 15-MAY 05:57
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 150.2485 (modulo length = 365.2485)
-
- L T TBOX TBOXLO TSTEP (days)
- 3> 15-MAR 17:57:50 31 29-FEB 05:57:50 74.7485
- 6> 14-SEP 17:57:50 215 30-MAY 05:57:50 257.7485
- 9> 15-MAR 23:55:40 31 28-FEB 11:55:40 439.997
-show axis/l=3:10:6 ($TAXNAME)
- !-> show axis/l=3:10:6 TIRREG_SUBSPAN1
- name axis # pts start end
- TIRREG_SUBSPAN1 TIME 5mi 16-JAN 12:00 15-MAY 05:57
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 150.2485 (modulo length = 365.2485)
-
- L T TBOX TBOXLO TSTEP (days)
- 3> 15-MAR 17:57:50 31 29-FEB 05:57:50 74.7485
- 9> 15-MAR 23:55:40 31 28-FEB 11:55:40 439.997
-
-set mode diag
-set mode stupid ! always re-read and recompute
-lsx $1 ! default avoids void points
- !-> list/order=x virr
- dealloc dynamic grid GFJ4 XIRREG_SUBNORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GFJ2 XIRREG_SUBNORMAL NORMAL NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- reading VIRR M: 78 dset: 1 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- VARIABLE : X[GX=XIRREG_SUBSPAN] -40 + 10
- FILENAME : test_subspan_modulo.nc
- SUBSET : 6 points (X)
- 41 42 42.1 44 45 46
- 1 2 3 4 5 6
- 11.0000 12.0000 12.1000 14.0000 15.0000 16.0000
-lsxn/x=100 $1 ! void point above, alone (via "modulo-void-filling")
- !-> list/order=x/nohead/x=100 virr
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 7 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip modulo-void-filling VIRR on X axis: 7 7 dset: 1
- reading VIRR M: 79 dset: 1 I: 6 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing modulo-void-filling VIRR on X axis: 6 6 dset: 1
- ....
-lsxn/x=0 $1 ! void point below, alone (via modulo)
- !-> list/order=x/nohead/x=0 virr
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 0 0 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip moduloing VIRR on X axis: 0 0 dset: 1
- reading VIRR M: 81 dset: 1 I: 6 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing moduloing VIRR on X axis: 6 6 dset: 1
- ....
-lsxn/x=45:100 $1 ! void above (via subspan-fill)
- !-> list/order=x/nohead/x=45:100 virr
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 5 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip modulo-void-filling VIRR on X axis: 5 7 dset: 1
- reading VIRR M: 83 dset: 1 I: 5 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing modulo-void-filling VIRR on X axis: 5 6 dset: 1
- 15.0000 16.0000 ....
-lsxn/x=0:100 $1 ! voids above & below (via modulo)
- !-> list/order=x/nohead/x=0:100 virr
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 0 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip moduloing VIRR on X axis: 0 7 dset: 1
- reading VIRR M: 85 dset: 1 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing moduloing VIRR on X axis: 1 6 dset: 1
- .... 11.0000 12.0000 12.1000 14.0000 15.0000 16.0000 ....
-set mode/last diag
-lsxn/x=50:160 $1 ! modulo above
- !-> list/order=x/nohead/x=50:160 virr
- .... 11.0000 12.0000 12.1000 14.0000 15.0000 16.0000 ....
-lsxn/x=-100:40 $1 ! modulo below
- !-> list/order=x/nohead/x=-100:40 virr
- .... 11.0000 12.0000 12.1000 14.0000 15.0000 16.0000 ....
-lsxn/x=-100:160 $1 ! modulo above & below
- !-> list/order=x/nohead/x=-100:160 virr
- ... listing every 2th point
- . .... 12.0000 14.0000 16.0000 11.0000 12.1000 15.0000 .... 12.0000 14.0000 16.0000
-
-! end point testing
-lsxn/i=-8:-2 $1
- !-> list/order=x/nohead/i=-8:-2 virr
- 16.0000 .... 11.0000 12.0000 12.1000 14.0000 15.0000
-lsxn/i=-7:-2 $1
- !-> list/order=x/nohead/i=-7:-2 virr
- .... 11.0000 12.0000 12.1000 14.0000 15.0000
-lsxn/i=-6:-2 $1
- !-> list/order=x/nohead/i=-6:-2 virr
- 11.0000 12.0000 12.1000 14.0000 15.0000
-lsxn/i=17:20 $1
- !-> list/order=x/nohead/i=17:20 virr
- 12.1000 14.0000 15.0000 16.0000
-lsxn/i=17:21 $1
- !-> list/order=x/nohead/i=17:21 virr
- 12.1000 14.0000 15.0000 16.0000 ....
-lsxn/i=17:22 $1
- !-> list/order=x/nohead/i=17:22 virr
- 12.1000 14.0000 15.0000 16.0000 .... 11.0000
-set mode/last stupid
-
-! test smoothers - pos and neg modulo and combined mod and context edges
-lsx/x=500:600 $1_ragged
- !-> list/order=x/x=500:600 virr_ragged
- VARIABLE : VIRR + NOISE[G=VIRR at ASN]
- FILENAME : test_subspan_modulo.nc
- SUBSET : 8 points (X)
- 493.5 541 542 542.1 544 545 546 593.5
- 35 36 37 38 39 40 41 42
- .... 10.9466 12.0566 12.0354 14.2434 14.9391 15.9921 ....
-lsxn/x=500:600 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=500:600 virr_ragged[x=@sbx]
- .... .... 11.6795 12.7784 13.7393 15.0582 .... ....
-lsxn/x=500:545 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=500:545 virr_ragged[x=@sbx]
- .... .... 11.6795 12.7784 13.7393 15.0582
-lsxn/x=545:600 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=545:600 virr_ragged[x=@sbx]
- 15.0582 .... ....
-
-lsxn/x=-100:0 $1_ragged
- !-> list/order=x/nohead/x=-100:0 virr_ragged
- .... 10.9466 12.0566 12.0354 14.2434 14.9391 15.9921 ....
-lsxn/x=-100:0 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=-100:0 virr_ragged[x=@sbx]
- .... .... 11.6795 12.7784 13.7393 15.0582 .... ....
-lsxn/x=-100:-55 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=-100:-55 virr_ragged[x=@sbx]
- .... .... 11.6795 12.7784 13.7393 15.0582
-lsxn/x=-56:0 $1_ragged[x=@sbx]
- !-> list/order=x/nohead/x=-56:0 virr_ragged[x=@sbx]
- 13.7393 15.0582 .... ....
-
-lsxn/x=-100:142/wid=200 $1_ragged
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_ragged
- .... 10.9466 12.0566 12.0354 14.2434 14.9391 15.9921 .... 10.9466 12.0566 12.0354 14.2434 14.9391 15.9921 .... 10.9466 12.0566
-lsxn/x=-100:142/wid=200 $1_ragged[x=@sbx:3]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_ragged[x=@sbx:3]
- .... .... 11.6795 12.7784 13.7393 15.0582 .... .... .... 11.6795 12.7784 13.7393 15.0582 .... .... .... 11.6795
-lsxn/x=-100:142/wid=200 $1_ragged[x=@swl:5]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_ragged[x=@swl:5]
- .... .... .... 12.8042 13.8351 .... .... .... .... .... 12.8042 13.8351 .... .... .... .... ....
-lsxn/x=-100:142/wid=200 $1_ragged[x=@swl:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_ragged[x=@swl:35]
- ....................................................................
-
-! test fillers - pos and neg modulo and combined mod and context edges
-! @FAV
-lsx/x=500:600 $1_void
- !-> list/order=x/x=500:600 virr_void
- VARIABLE : IF X[G=VIRR] LT 43 OR X[G=VIRR] GT 45 THEN VIRR
- FILENAME : test_subspan_modulo.nc
- SUBSET : 8 points (X)
- 493.5 541 542 542.1 544 545 546 593.5
- 35 36 37 38 39 40 41 42
- .... 11.0000 12.0000 12.1000 .... .... 16.0000 ....
-lsxn/x=500:600 $1_void[x=@fav]
- !-> list/order=x/nohead/x=500:600 virr_void[x=@fav]
- .... 11.0000 12.0000 12.1000 12.1000 16.0000 16.0000 ....
-
-lsxn/x=-100:0 $1_void
- !-> list/order=x/nohead/x=-100:0 virr_void
- .... 11.0000 12.0000 12.1000 .... .... 16.0000 ....
-lsxn/x=-100:0 $1_void[x=@fav]
- !-> list/order=x/nohead/x=-100:0 virr_void[x=@fav]
- .... 11.0000 12.0000 12.1000 12.1000 16.0000 16.0000 ....
-
-lsxn/x=-100:142/wid=200 $1_void
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void
- .... 11.0000 12.0000 12.1000 .... .... 16.0000 .... 11.0000 12.0000 12.1000 .... .... 16.0000 .... 11.0000 12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fav:3]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void[x=@fav:3]
- .... 11.0000 12.0000 12.1000 12.1000 16.0000 16.0000 .... 11.0000 12.0000 12.1000 12.1000 16.0000 16.0000 .... 11.0000 12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fav:5]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void[x=@fav:5]
- .... 11.0000 12.0000 12.1000 13.3667 14.0500 16.0000 .... 11.0000 12.0000 12.1000 13.3667 14.0500 16.0000 .... 11.0000 12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fav:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void[x=@fav:35]
- .... 11.0000 12.0000 12.1000 12.7750 12.7750 16.0000 .... 11.0000 12.0000 12.1000 12.7750 12.7750 16.0000 .... 11.0000 12.0000
-
-! @FLN
-lsxn/x=500:600 $1_void
- !-> list/order=x/nohead/x=500:600 virr_void
- .... 11.0000 12.0000 12.1000 .... .... 16.0000 ....
-lsxn/x=500:600 $1_void[x=@fln]
- !-> list/order=x/nohead/x=500:600 virr_void[x=@fln]
- .... 11.0000 12.0000 12.1000 14.0000 15.0000 16.0000 ....
-
-lsxn/x=-100:0 $1_void
- !-> list/order=x/nohead/x=-100:0 virr_void
- .... 11.0000 12.0000 12.1000 .... .... 16.0000 ....
-lsxn/x=-100:0 $1_void[x=@fln]
- !-> list/order=x/nohead/x=-100:0 virr_void[x=@fln]
- .... 11.0000 12.0000 12.1000 14.0000 15.0000 16.0000 ....
-
-lsxn/x=-100:142/wid=200 $1_void
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void
- .... 11.0000 12.0000 12.1000 .... .... 16.0000 .... 11.0000 12.0000 12.1000 .... .... 16.0000 .... 11.0000 12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fln:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void[x=@fln:35]
- .... 11.0000 12.0000 12.1000 14.0000 15.0000 16.0000 .... 11.0000 12.0000 12.1000 14.0000 15.0000 16.0000 .... 11.0000 12.0000
-
-! @FNR
-lsxn/x=500:600 $1_void
- !-> list/order=x/nohead/x=500:600 virr_void
- .... 11.0000 12.0000 12.1000 .... .... 16.0000 ....
-lsxn/x=500:600 $1_void[x=@fnr]
- !-> list/order=x/nohead/x=500:600 virr_void[x=@fnr]
- .... 11.0000 12.0000 12.1000 12.1000 16.0000 16.0000 ....
-
-lsxn/x=-100:0 $1_void
- !-> list/order=x/nohead/x=-100:0 virr_void
- .... 11.0000 12.0000 12.1000 .... .... 16.0000 ....
-lsxn/x=-100:0 $1_void[x=@fnr]
- !-> list/order=x/nohead/x=-100:0 virr_void[x=@fnr]
- .... 11.0000 12.0000 12.1000 12.1000 16.0000 16.0000 ....
-
-lsxn/x=-100:142/wid=200 $1_void
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void
- .... 11.0000 12.0000 12.1000 .... .... 16.0000 .... 11.0000 12.0000 12.1000 .... .... 16.0000 .... 11.0000 12.0000
-lsxn/x=-100:142/wid=200 $1_void[x=@fnr:35]
- !-> list/order=x/nohead/x=-100:142/wid=200 virr_void[x=@fnr:35]
- .... 11.0000 12.0000 12.1000 12.1000 16.0000 16.0000 .... 11.0000 12.0000 12.1000 12.1000 16.0000 16.0000 .... 11.0000 12.0000
-
-! Test 2-axis modulo (longitude and time)
-define alias l200 list/width=200
-define alias l200n list/width=200/nohead
-l200/i=1:13 $2
- !-> list/width=200/nohead/i=1:13 v2d_irr
- 16-JAN 12 / 1: 11.000 12.000 12.100 14.000 15.000 16.000 .... 11.000 12.000 12.100 14.000 15.000 16.000
- 15-FEB 02 / 2: 42.000 43.000 43.100 45.000 46.000 47.000 .... 42.000 43.000 43.100 45.000 46.000 47.000
- 15-MAR 17 / 3: 70.249 71.249 71.349 73.249 74.249 75.249 .... 70.249 71.249 71.349 73.249 74.249 75.249
- 15-APR 05 / 4: 101.249 102.249 102.349 104.249 105.249 106.249 .... 101.249 102.249 102.349 104.249 105.249 106.249
- 15-MAY 05 / 5: 131.249 132.249 132.349 134.249 135.249 136.249 .... 131.249 132.249 132.349 134.249 135.249 136.249
-l200n/l=1:12 $2
- !-> list/width=200/nohead/l=1:12 v2d_irr
- 16-JAN 12 / 1: 11.000 12.000 12.100 14.000 15.000 16.000
- 15-FEB 02 / 2: 42.000 43.000 43.100 45.000 46.000 47.000
- 15-MAR 17 / 3: 70.249 71.249 71.349 73.249 74.249 75.249
- 15-APR 05 / 4: 101.249 102.249 102.349 104.249 105.249 106.249
- 15-MAY 05 / 5: 131.249 132.249 132.349 134.249 135.249 136.249
- 14-SEP 17 / 6: .... .... .... .... .... ....
- 15-JAN 17 / 7: 11.000 12.000 12.100 14.000 15.000 16.000
- 14-FEB 08 / 8: 42.000 43.000 43.100 45.000 46.000 47.000
- 15-MAR 23 / 9: 70.249 71.249 71.349 73.249 74.249 75.249
- 15-APR 11 / 10: 101.249 102.249 102.349 104.249 105.249 106.249
- 15-MAY 11 / 11: 131.249 132.249 132.349 134.249 135.249 136.249
- 14-SEP 23 / 12: .... .... .... .... .... ....
-l200n/l=1:12/i=1:11 $2
- !-> list/width=200/nohead/l=1:12/i=1:11 v2d_irr
- 16-JAN 12 / 1: 11.000 12.000 12.100 14.000 15.000 16.000 .... 11.000 12.000 12.100 14.000
- 15-FEB 02 / 2: 42.000 43.000 43.100 45.000 46.000 47.000 .... 42.000 43.000 43.100 45.000
- 15-MAR 17 / 3: 70.249 71.249 71.349 73.249 74.249 75.249 .... 70.249 71.249 71.349 73.249
- 15-APR 05 / 4: 101.249 102.249 102.349 104.249 105.249 106.249 .... 101.249 102.249 102.349 104.249
- 15-MAY 05 / 5: 131.249 132.249 132.349 134.249 135.249 136.249 .... 131.249 132.249 132.349 134.249
- 14-SEP 17 / 6: .... .... .... .... .... .... .... .... .... .... ....
- 15-JAN 17 / 7: 11.000 12.000 12.100 14.000 15.000 16.000 .... 11.000 12.000 12.100 14.000
- 14-FEB 08 / 8: 42.000 43.000 43.100 45.000 46.000 47.000 .... 42.000 43.000 43.100 45.000
- 15-MAR 23 / 9: 70.249 71.249 71.349 73.249 74.249 75.249 .... 70.249 71.249 71.349 73.249
- 15-APR 11 / 10: 101.249 102.249 102.349 104.249 105.249 106.249 .... 101.249 102.249 102.349 104.249
- 15-MAY 11 / 11: 131.249 132.249 132.349 134.249 135.249 136.249 .... 131.249 132.249 132.349 134.249
- 14-SEP 23 / 12: .... .... .... .... .... .... .... .... .... .... ....
-l200n/l=12:21/i=-19:-9 $2
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_irr
- 14-SEP 23 / 12: .... .... .... .... .... .... .... .... .... .... ....
- 15-JAN-0002 23 / 13: 12.000 12.100 14.000 15.000 16.000 .... 11.000 12.000 12.100 14.000 15.000
- 14-FEB-0002 14 / 14: 43.000 43.100 45.000 46.000 47.000 .... 42.000 43.000 43.100 45.000 46.000
- 16-MAR-0002 05 / 15: 71.249 71.349 73.249 74.249 75.249 .... 70.249 71.249 71.349 73.249 74.249
- 15-APR-0002 17 / 16: 102.249 102.349 104.249 105.249 106.249 .... 101.249 102.249 102.349 104.249 105.249
- 15-MAY-0002 17 / 17: 132.249 132.349 134.249 135.249 136.249 .... 131.249 132.249 132.349 134.249 135.249
- 15-SEP-0002 05 / 18: .... .... .... .... .... .... .... .... .... .... ....
- 16-JAN-0003 05 / 19: 12.000 12.100 14.000 15.000 16.000 .... 11.000 12.000 12.100 14.000 15.000
- 14-FEB-0003 20 / 20: 43.000 43.100 45.000 46.000 47.000 .... 42.000 43.000 43.100 45.000 46.000
- 16-MAR-0003 11 / 21: 71.249 71.349 73.249 74.249 75.249 .... 70.249 71.249 71.349 73.249 74.249
-l200n/l=12:21/i=-19:-9 $2_void
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_irr_void
- 14-SEP 23 / 12: .... .... .... .... .... .... .... .... .... .... ....
- 15-JAN-0002 23 / 13: 12.000 12.100 .... .... 16.000 .... 11.000 12.000 12.100 .... ....
- 14-FEB-0002 14 / 14: 43.000 43.100 .... .... 47.000 .... 42.000 43.000 43.100 .... ....
- 16-MAR-0002 05 / 15: .... .... .... .... .... .... .... .... .... .... ....
- 15-APR-0002 17 / 16: 102.249 102.349 .... .... 106.249 .... 101.249 102.249 102.349 .... ....
- 15-MAY-0002 17 / 17: 132.249 132.349 .... .... 136.249 .... 131.249 132.249 132.349 .... ....
- 15-SEP-0002 05 / 18: .... .... .... .... .... .... .... .... .... .... ....
- 16-JAN-0003 05 / 19: 12.000 12.100 .... .... 16.000 .... 11.000 12.000 12.100 .... ....
- 14-FEB-0003 20 / 20: 43.000 43.100 .... .... 47.000 .... 42.000 43.000 43.100 .... ....
- 16-MAR-0003 11 / 21: .... .... .... .... .... .... .... .... .... .... ....
-l200n/l=12:21/i=-19:-9 $2_void[x=@fnr,t=@fnr]
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_irr_void[x=@fnr,t=@fnr]
- 14-SEP 23 / 12: .... .... .... .... .... .... .... .... .... .... ....
- 15-JAN-0002 23 / 13: 12.000 12.100 12.100 16.000 16.000 .... 11.000 12.000 12.100 12.100 16.000
- 14-FEB-0002 14 / 14: 43.000 43.100 43.100 47.000 47.000 .... 42.000 43.000 43.100 43.100 47.000
- 16-MAR-0002 05 / 15: 72.624 72.724 72.724 76.624 76.624 .... 71.624 72.624 72.724 72.724 76.624
- 15-APR-0002 17 / 16: 102.249 102.349 102.349 106.249 106.249 .... 101.249 102.249 102.349 102.349 106.249
- 15-MAY-0002 17 / 17: 132.249 132.349 132.349 136.249 136.249 .... 131.249 132.249 132.349 132.349 136.249
- 15-SEP-0002 05 / 18: .... .... .... .... .... .... .... .... .... .... ....
- 16-JAN-0003 05 / 19: 12.000 12.100 12.100 16.000 16.000 .... 11.000 12.000 12.100 12.100 16.000
- 14-FEB-0003 20 / 20: 43.000 43.100 43.100 47.000 47.000 .... 42.000 43.000 43.100 43.100 47.000
- 16-MAR-0003 11 / 21: 72.624 72.724 72.724 76.624 76.624 .... 71.624 72.624 72.724 72.724 76.624
-
-! test shift
-l200n/l=12:21/i=-19:-9 $2[x=@shf:2,t=@shf:-2]
- !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_irr[x=@shf:2,t=@shf:-2]
- 14-SEP 23 / 12: 104.249 105.249 106.249 .... 101.249 102.249 102.349 104.249 105.249 106.249 ....
- 15-JAN-0002 23 / 13: 134.249 135.249 136.249 .... 131.249 132.249 132.349 134.249 135.249 136.249 ....
- 14-FEB-0002 14 / 14: .... .... .... .... .... .... .... .... .... .... ....
- 16-MAR-0002 05 / 15: 14.000 15.000 16.000 .... 11.000 12.000 12.100 14.000 15.000 16.000 ....
- 15-APR-0002 17 / 16: 45.000 46.000 47.000 .... 42.000 43.000 43.100 45.000 46.000 47.000 ....
- 15-MAY-0002 17 / 17: 73.249 74.249 75.249 .... 70.249 71.249 71.349 73.249 74.249 75.249 ....
- 15-SEP-0002 05 / 18: 104.249 105.249 106.249 .... 101.249 102.249 102.349 104.249 105.249 106.249 ....
- 16-JAN-0003 05 / 19: 134.249 135.249 136.249 .... 131.249 132.249 132.349 134.249 135.249 136.249 ....
- 14-FEB-0003 20 / 20: .... .... .... .... .... .... .... .... .... .... ....
- 16-MAR-0003 11 / 21: 14.000 15.000 16.000 .... 11.000 12.000 12.100 14.000 15.000 16.000 ....
-
-! test strides
-l200n/order=x $2[l=1,i=0:14]
- !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14]
- .... 11.0000 12.0000 12.1000 14.0000 15.0000 16.0000 .... 11.0000 12.0000 12.1000 14.0000 15.0000 16.0000 ....
-set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
- !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:2]
- dealloc dynamic grid GFJ4 XIRREG_SUBNORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- dealloc dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- allocate dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- strip regrid on X: V2D_IRR --> (G018) @XACT
- found V2D_IRR M:146 dset: 1 I: 0 14 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid V2D_IRR M:147 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- .... 12.0000 14.0000 16.0000 11.0000 12.1000 15.0000 ....
-l200n/order=x $2[l=1,i=0:14:7]
- !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:7]
- ............
-set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
- !-> list/width=200/nohead v2d_irr[i=1,l=1:15:2]
- dealloc dynamic grid (G018) (AX010) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- -DELETE V2D_IRR M:148 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
- dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
- strip regrid on T: V2D_IRR --> (G018) @XACT
- strip moduloing V2D_IRR on T axis: 1 15 dset: 1
- rdstride V2D_IRR C: 9 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
- doing moduloing V2D_IRR on T axis: 1 5 dset: 1
- -DELETE V2D_IRR M:148 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
- nulrgd V2D_IRR M:148 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- -DELETE V2D_IRR M:149 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 15 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
- 16-JAN-0000 / 1: 11.000
- 15-MAR-0000 / 2: 70.249
- 15-MAY-0000 / 3: 131.249
- 15-JAN-0001 / 4: 11.000
- 15-MAR-0001 / 5: 70.249
- 15-MAY-0001 / 6: 131.249
- 15-JAN-0002 / 7: 11.000
- 16-MAR-0002 / 8: 70.249
-l200n $2[i=1,l=1:15:3]
- !-> list/width=200/nohead v2d_irr[i=1,l=1:15:3]
- 16-JAN-0000 / 1: 11.000
- 15-APR-0000 / 2: 101.249
- 15-JAN-0001 / 3: 11.000
- 15-APR-0001 / 4: 101.249
- 15-JAN-0002 / 5: 11.000
-l200n $2[i=1,l=1:15:4]
- !-> list/width=200/nohead v2d_irr[i=1,l=1:15:4]
- 16-JAN-0000 / 1: 11.000
- 15-MAY-0000 / 2: 131.249
- 15-MAR-0001 / 3: 70.249
- 15-JAN-0002 / 4: 11.000
-l200n $2[i=0:14:2,l=1:15:3]
- !-> list/width=200/nohead v2d_irr[i=0:14:2,l=1:15:3]
- 16-JAN-0000 / 1: .... 12.000 14.000 16.000 11.000 12.100 15.000 ....
- 15-APR-0000 / 2: .... 102.249 104.249 106.249 101.249 102.349 105.249 ....
- 15-JAN-0001 / 3: .... 12.000 14.000 16.000 11.000 12.100 15.000 ....
- 15-APR-0001 / 4: .... 102.249 104.249 106.249 101.249 102.349 105.249 ....
- 15-JAN-0002 / 5: .... 12.000 14.000 16.000 11.000 12.100 15.000 ....
-
-! test modulo regridding
-define axis/t=15-jan-1981:15-dec-1990/npoints=120 t1980s
-LET/quiet time_series = MOD(L[gt=t1980s]-1,12)+1
-list time_series[gt=($TAXNAME)@mod]
- !-> list time_series[gt=TIRREG_SUBSPAN1 at mod]
- VARIABLE : MOD(L[GT=T1980S]-1,12)+1
- regrid: on T at MOD
- SUBSET : 5 points (TIME)
- 16-JAN 12 / 1: 1.00000
- 15-FEB 02 / 2: 2.00000
- 15-MAR 17 / 3: 3.00000
- 15-APR 05 / 4: 4.00000
- 15-MAY 05 / 5: 5.00000
-list time_series[gt=($TAXNAME)@modngd]
- !-> list time_series[gt=TIRREG_SUBSPAN1 at modngd]
- VARIABLE : MOD(L[GT=T1980S]-1,12)+1 (# of points)
- regrid: on T at MODNGD
- SUBSET : 5 points (TIME)
- 16-JAN 12 / 1: 10.0000
- 15-FEB 02 / 2: 10.0000
- 15-MAR 17 / 3: 10.0000
- 15-APR 05 / 4: 10.0000
- 15-MAY 05 / 5: 10.0000
-list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
- !-> list/nohead/l=1001:1009 time_series[gt=TIRREG_SUBSPAN1 at mod]
- 16-MAY-0166 11 / 1001: 5.00000
- 15-SEP-0166 23 / 1002: ....
- 16-JAN-0167 23 / 1003: 1.00000
- 15-FEB-0167 14 / 1004: 2.00000
- 17-MAR-0167 05 / 1005: 3.00000
- 16-APR-0167 17 / 1006: 4.00000
- 16-MAY-0167 17 / 1007: 5.00000
- 16-SEP-0167 05 / 1008: ....
- 17-JAN-0168 05 / 1009: 1.00000
-
-! test modulo string arrays
-list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
- !-> list virr_strings[i=5:7] ! via IS_SUBSPAN_FILL
- VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
- FILENAME : test_subspan_modulo.nc
- SUBSET : 3 points (X)
- 45 / 5:"a5"
- 46 / 6:"a6"
- 93.5 / 7:""
-list $1_strings[i=1013:1024] ! via IS_MODULO
- !-> list virr_strings[i=1013:1024] ! via IS_MODULO
- VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
- FILENAME : test_subspan_modulo.nc
- SUBSET : 12 points (X)
- 14445 / 1013:"a5"
- 14446 / 1014:"a6"
- 14493.5 / 1015:""
- 14541 / 1016:"a1"
- 14542 / 1017:"a2"
- 14542.1 / 1018:"a3"
- 14544 / 1019:"a4"
- 14545 / 1020:"a5"
- 14546 / 1021:"a6"
- 14593.5 / 1022:""
- 14641 / 1023:"a1"
- 14642 / 1024:"a2"
-
-
-
-GO bn_reset
-cancel mode verify
-GO bn_dots
-! PLOT/SYMBOL=DOT qualifiers
-! *acm* 12/02
-! ACM 4/2005 set mode meta to save this plot for the metafile checks.
-! and cancel mode logo, so that .plt files are comparable.
-
-set mode meta dots.plt
-can mode logo
-plot/symbol=dot/i=1:1000 sin(62.8*i)
-plot/symbol=dot/color=red/over/i=1:1000 sin(62.8*(i+20))
-can mode meta
-
-! test warnings
-plot/symbol=dot/thick/i=1:1000 sin(62.8*(i+10) )
-plot/symbol=dot/size=0.5/over/i=1:1000 -0.5*sin(62.8*(i+10) )
-
-! Vector plots with null-size vectors
-
-vector/i=1:5/j=1:5 0.*(i+j),0*(i+j)
-set mode logo
-
-GO bn_reset
-cancel mode verify
-GO bn_lev_symbols
-! Test symbols which capture the latest LEVELS settings
-! LEV_TEXT The argument, if any, to the LEV qualifier
-! LEV_MIN Minimum level
-! LEV_MAX Maximum level
-! LEV_NUM Number of levels
-! LEV_DEL Delta level (irregular)
-
-can sym lev*
-define symbol lev_text = ""
-
-shade/i=1:15/j=1:5 i*j
-sho sym lev*
-LEV_TEXT = """"
-LEV_MIN = "0"
-LEV_MAX = "76"
-LEV_NUM = "38"
-LEV_DEL = "2"
-
-contour/over/i=1:15/j=1:5 i*j
-sho sym lev*
-LEV_TEXT = """"
-LEV_MIN = "0"
-LEV_MAX = "80"
-LEV_NUM = "8"
-LEV_DEL = "10"
-
-contour/over/i=1:15/j=1:5/lev=(0,50,3) i*j
-sho sym lev*
-LEV_TEXT = "(0,50,3)"
-LEV_MIN = "0"
-LEV_MAX = "51"
-LEV_NUM = "17"
-LEV_DEL = "3"
-
-fill/i=1:15/j=1:5/lev=(0,50,5) i*j
-sho sym lev*
-LEV_TEXT = "(0,50,5)"
-LEV_MIN = "0"
-LEV_MAX = "50"
-LEV_NUM = "10"
-LEV_DEL = "5"
-
-contour/over/i=1:15/j=1:5/lev=(0,80,3),(56),DARK(56) i*j
-sho sym lev*
-LEV_TEXT = "(0,80,3),(56),DARK(56)"
-LEV_MIN = "0"
-LEV_MAX = "81"
-LEV_NUM = "28"
-LEV_DEL = "3"
-
-contour/over/i=1:15/j=1:5/lev=50 i*j
-sho sym lev*
-LEV_TEXT = "50"
-LEV_MIN = "0"
-LEV_MAX = "76"
-LEV_NUM = "38"
-LEV_DEL = "2"
-
-
-shade/i=1:15/j=1:5/lev=(0,80,1) i*j
-sho sym lev*
-LEV_TEXT = "(0,80,1)"
-LEV_MIN = "0"
-LEV_MAX = "80"
-LEV_NUM = "80"
-LEV_DEL = "1"
-
-contour/over/i=1:15/j=1:5/lev=(33) i*j
-sh sym lev*
-LEV_TEXT = "(33)"
-LEV_MIN = "33"
-LEV_MAX = "33"
-LEV_NUM = "1"
-LEV_DEL = "none"
-
-GO bn_reset
-cancel mode verify
-! GO bench_extrema ! moved to bn_ef_bench_extrema; tests of shared-obj efs.
-
-GO bn_reset
-cancel mode verify
-GO bn_mode_logo_lab
-
-! bn_mode_logo_lab.jnl
-! cancel both logo and labels
-! NOTE this script redefined the pre-defined viewports ul, ur, ll, lr...
-
-
-def view /xlim=0.:0.33/ylim=0.5:1 ul3
-def view /xlim=0.33:0.66/ylim=0.5:1 um3
-def view /xlim=0.66:1./ylim=0.5:1 ur3
-
-def view /xlim=0.:0.33/ylim=0.:0.5 ll3
-def view /xlim=0.33:0.66/ylim=0.:0.5 lm3
-def view /xlim=0.66:1./ylim=0.:0.5 lr3
-
-
-! can mode labels would not plot the logo anyway
-set view ul3
-can mode labels
-can mode logo
-show modes
- MODE STATE ARGUMENT
- DIAGNOSTIC CANCELLED 99
- VERIFY SET DEFAULT
- INTERPOLATE CANCELLED
- IGNORE_ERROR CANCELLED
- STUPID CANCELLED
- JOURNAL CANCELLED ferret.jnl
- LONG_LABEL SET -4
- LATIT_LABEL SET -4
- DEPTH_LABEL SET -4
- CALENDAR SET months
- 6D_LAB SET
- ASCII_FONT SET
- SEGMENT SET
- WAIT CANCELLED
- DESPERATE CANCELLED 2560000
- GKS SET
- REFRESH SET
- METAFILE CANCELLED dots.plt
- PPLLIST CANCELLED ppllist.out
- GUI CANCELLED
- LOGO CANCELLED
- LABELS CANCELLED
- GRATICULE CANCELLED
- LINECOLORS SET 6
- UPCASE_OUTPU SET
- NLEVELS SET 30
- NODATA_LAB SET
- shrink_ylab CANCELLED
-contour/i=1:10/j=1:10 i/j
-
-! restore the labels, logo still gone
-set view um3
-set mode labels
-wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
-
-
-! put only labels, not logo
-set view ur3
-set mode labels
-can mode logo
-go ptest
-! Description: create a simple test line plot
-
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
-
-
-! Labels restored, not logo.
-! logo is not restored on an /overlay plot
-set view ll3
-set mode labels
-shade/i=1:10/j=1:10 i*j
-set mode logo
-plot/vs/over/line/color=white {1,4}, {1,9}
-
-! but the logo is restored on the next plot command.
-set view lm3
-fill/i=1:10/j=1:10 i/j
-
-! Verify for polygon command too
-set view lr3
-can mode logo
-can mode labels
-polygon/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
-
-! restore state of modes
-cancel view
-set mode logo
-set mode labels
-
-GO bn_reset
-cancel mode verify
-GO bn_modulo_attribute
-! Ferret V5.50 m
-
-! Modulo attribute can take numerical values to indicate
-! the modulo length of axis (subspan modulo changes)
-! This script tests various string values of the attribute
-
-use modulo_lon_time
-
-sh ax lon*
- name axis # pts start end
- LON_FIELD_J_AXIS Y 2 r 50 65
- Axis span (to cell edges) = 30
- LON_FIELD_I_AXIS X 7 r 160 208
- Axis span (to cell edges) = 56
- LON_TRUE LONGITUDE 5mr 1.875W(-1.875) 13.125E
- Axis span (to cell edges) = 18.75 (modulo length = 360)
- LON_MODERR X (meters) 5 r 0 15
- Axis span (to cell edges) = 18.75
- LON_FALSE LONGITUDE 5 r 1.875W(-1.875) 13.125E
- Axis span (to cell edges) = 18.75
- LON_MOD_NOUNITS X 5mr 0 15
- Axis span (to cell edges) = 18.75 (modulo length = axis span)
- LON_USUAL LONGITUDE 5mr 0E 15E
- Axis span (to cell edges) = 18.75 (modulo length = 360)
-sh ax tim*
- name axis # pts start end
- TIME1 TIME 6 r 16-JAN-1900 06:00 17-JUN-1900 10:25
-T0 = 01-JAN-1900
- Axis span (to cell edges) = 4382.91
- TIME2 TIME 3 i 16-JAN-1900 06:00 17-MAY-1900 23:56
-T0 = 01-JAN-1900
- Axis span (to cell edges) = 4382.91
- TIME T (HOURS) 20 r 1 20
- Axis span (to cell edges) = 20
- TIME_TRUE T (days) 4mi 30 150
-T0 = %%
- Axis span (to cell edges) = 165 (modulo length = axis span)
- TIME_MODERR T (meters) 4 i 30 150
-T0 = %%
- Axis span (to cell edges) = 165
- TIME_FALSE T (days) 4 r 120 150
-T0 = %%
- Axis span (to cell edges) = 40
- TIME_MOD_NOUNITS T 4mr 120 150
-T0 = %%
- Axis span (to cell edges) = 40 (modulo length = axis span)
- TIME_USUAL T (days) 4mr 120 150
-T0 = %%
- Axis span (to cell edges) = 40 (modulo length = axis span)
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
- TIME5 TIME 2mr 16-MAY 23:56 16-JUN 10:25
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 1460.97 (modulo length = 8765.82)
-
-
-GO bn_reset
-cancel mode verify
-GO bn550_bug_fixes
-! bn550_bug_fixes.jnl
-! test various fixes that went into version 5.5
-! 10/02 *acm*
-!
-
-! Polygon/overlay calendar axis bug
-GO bn_reset
-cancel mode verify
-GO err542_poly_over_calendar
-! POLY/OVER when data has a non-standard calendar caused
-! calendar mismatch error, even on a plot with no time axis.
-
-use err542_poly_over_calendar.nc
-shade pc
-poly/over/color=red/line=2/title="polygon" {220,240,280,250},{-20,70,40,-30}
-
-
-! ******** V5.51 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn551_bug_fixes
-! bn551_bug_fixes.jnl
-! test various fixes that went into version 5.51
-! 2/03 *acm*
-!
-
-! FILL plots in viewports defined with /AXES, fix clipping bug,
-! and allow color keys to plot beyond viewport limits.
-
-go bn_reset
-cancel mode verify
-GO err550_view_axes_fill.jnl
-! err550_view_axes_fill.jnl
-! acm 2/5/03
-! Test FILL plots in viewports defined with /AXES;
-! also let the color keys be plotted in these viewports, unless
-! removed with /nokey
-
-can mode logo
-set win/asp=.5/siz=0.5
-
-define axis/x=-10:10:1 xtest
-define axis/y=-10:10:1 ytest
-
-let test=x[gx=xtest]^2+y[gy=ytest]^2
-
-def vi/x=.1:.9/y=.1:.3/axes bot
-def vi/x=.1:.9/y=.4:.6/axes mid
-def vi/x=.1:.9/y=.6:1 top
-def vi/x=0:.1/y=.1:.3/axes bot1
-def vi/x=0:.1/y=.4:.6/axes mid1
-def vi/x=0:.1/y=.6:1 top1
-
-set vi bot1
-fill/nokey test
-contour/over test
-
-set vi bot
-fill test
-contour/over test
-
-set vi mid1
-shade/nokey test
-contour/over test
-
-set vi mid
-shade test
-contour/over test
-
-set vi top1
-fill/nokey test
-contour/over test
-
-set vi top
-fill test
-
- PPL warning: You're attempting to use more colors than are available.
- Using PPL SHASET RESET to re-use protected colors may help.
-
-contour/over test
-
-
-can view
-set win/asp=2/siz=0.3
-set vi bot1
-fill/nokey test
-contour/over test
-
-set vi bot
-fill test
-contour/over test
-
-set vi mid1
-shade/nokey test
-contour/over test
-
-set vi mid
-shade test
-contour/over test
-
-set vi top1
-fill/nokey test
-contour/over test
-
-set vi top
-fill test
-
- PPL warning: You're attempting to use more colors than are available.
- Using PPL SHASET RESET to re-use protected colors may help.
-
-contour/over test
-
-set win/clear
-set win/aspect=0.75
-
-
-! position on page was incorrect, of first viewport plotted when
-! defined as a VIEW/AXES viewport.
-go bn_reset
-cancel mode verify
-GO err550_view_axes_position.jnl
-! err550_view_axes_position.jnl
-! acm 2/5/03
-
-! position on page was incorrect, of first viewport plotted when defined
-! as a VIEW/AXES viewport.
-
-def view/x=.1:.5/y=.4:.6/axes mid1
-def view/x=.5:.9/y=.4:.6/axes mid2
-
-set view mid1
-shade/x=1:10/y=1:10 x+y
-set view mid2
-shade/x=1:10/y=1:10 x-y
-
-! SHADE bug: hlimits, vlimits without effect
-go bn_reset
-cancel mode verify
-GO err550_shade_limits.jnl
-! err550_shade_limits.jnl
-! acm 2/5/03
-
-! SHADE bug: hlimits, vlimits without effect
-
-use coads_climatology
-set view upper; shade sst[l=1]
-
-set view lower; shade/hlimits=212:324/vlimits=-34:23 sst[l=1]
-
-! Redefining an axis with a new calendar definition
-go bn_reset
-cancel mode verify
-GO err550_redefine_calendar_axis.jnl
-! err550_redefine_calendar_axis.jnl
-! different calendar axis not recognized as a different specifier,
-! requiring the axis to be redefined.
-
-def axis/cal=gregorian/t=1-jan-2000:1-jan-2001:1/unit=days tax
-sh axis tax
- name axis # pts start end
- TAX TIME 367 r 01-JAN-2000 00:00 01-JAN-2001 00:00
-T0 = 15-JAN-1901
- Axis span (to cell edges) = 367
-def axis/cal=julian/t=1-jan-2000:1-jan-2001:1/unit=days tax
-sh axis tax
- name axis # pts start end
- TAX TIME 367 r 01-JAN-2000 00:00 01-JAN-2001 00:00
-T0 = 15-JAN-1901
-CALENDAR = JULIAN
- Axis span (to cell edges) = 367
-
-
-! Bug in defining axis from an expression.
-go bn_reset
-cancel mode verify
-GO err550_define_axis_expression.jnl
-! err550_define_axis_expression.jnl
-! reported by A. Wittenberg.
-! Axes defined from an expression only took the first part of the
-! expression The first two axis defines get it wrong (fix in xeq_define.F)
-
-let a = {1,2,3}
-let b = {2,3,4}
-
-def ax/x xax = a/2 + b/2
-list x[gx=xax]
- VARIABLE : X
- axis XAX
- SUBSET : 3 points (X)
- 1.5 / 1: 1.50000
- 2.5 / 2: 2.50000
- 3.5 / 3: 3.50000
-
-def ax/x xax = (a/2) + (b/2)
-list x[gx=xax]
- VARIABLE : X
- axis XAX
- SUBSET : 3 points (X)
- 1.5 / 1: 1.50000
- 2.5 / 2: 2.50000
- 3.5 / 3: 3.50000
-
-def ax/x xax = (a/2 + b/2)
-list x[gx=xax]
- VARIABLE : X
- axis XAX
- SUBSET : 3 points (X)
- 1.5 / 1: 1.50000
- 2.5 / 2: 2.50000
- 3.5 / 3: 3.50000
-
-
-! Note (acm) The older syntax defines the axis correctly
-
-def axis/from_data/x/name=xax a/2 + b/2
-list x[gx=xax]
- VARIABLE : X
- axis XAX
- SUBSET : 3 points (X)
- 1.5 / 1: 1.50000
- 2.5 / 2: 2.50000
- 3.5 / 3: 3.50000
-
-! Bug in reading seconds from time origin in nc file.
-go bn_reset
-cancel mode verify
-GO err550_nc_seconds.jnl
-! err550_nc_seconds.jnl
-! 2/12/03 ACM
-
-! When the time origin is specified in a NetCDF file as
-! "10-JUN-1996 04:03:36", the seconds are read incorrectly.
-! If it's written as "1996-06-10 04:03:36" it is read OK
-
-use time_axis_seconds.nc
-
-sp echo "err550_nc_seconds.jnl --- seconds of time axis" >> all_ncdump.out
-sp ncdump time_axis_seconds.nc | grep origin >> all_ncdump.out
-list t[gt=height] ! Seconds should be 36, 37, 38...
- VARIABLE : T
- axis TIME3
- FILENAME : time_axis_seconds.nc
- SUBSET : 5 points (TIME)
- 10-JUN-1996 04:03:36 / 1: 0.00000
- 10-JUN-1996 04:03:37 / 2: 1.00000
- 10-JUN-1996 04:03:38 / 3: 2.00000
- 10-JUN-1996 04:03:39 / 4: 3.00000
- 10-JUN-1996 04:03:40 / 5: 4.00000
-
-! Bug in plotting polymarker dots with pen numbers gt 6
-go bn_reset
-cancel mode verify
-GO err550_dots_thickpens.jnl
-! err550_dots_thickpens.jnl
-! For pen code higher than 6, get * rather than dot.
-! also for vector plots having short vectors that are plotted with dots.
-
-plot/sym=dot/color=8/i=1:10 i
-
-! ******** V5.52 Additions below ***********
-
-GO bn_multi_line_labels.jnl
- ! bn_multi_line_labels.jnl
-! March 31, 2003
-!
-! ACM 4/2005 ! set mode meta to save this plot for the metafile checks.
-! and ! cancel mode logo, so that .plt files are comparable.
-! ACM 1/2007 Change from a bunch of plot items in a viewport, to separate
-! plots; for better checking of batch mode
-
-
-plot/i=1:100/title="multi line title<nl>with the second line pretty long: \
-so Ferret will resize the entire title. Titles are sized according to the\
-<nl>longest line <nl>and centered individually" i*cos(i/8)
-ppl plot
-plot/over/i=1:100 i*sin(i/8)
-
-set mode meta multi_line_labels.plt
-cancel mode logo
-plot/i=1:100/title="@p2two-line<NL>RED title"/set i*cos(i/8)
-ppl ylab "A four-line y label.<nl>second line<nl>third line<NL>fourth line"
-ppl xlab "a two-line X label. <nl>Not good together with a multi-line title"
-ppl plot
-
-plot/over/i=1:100/title="short two-line<nl>title for the overlay line" i*sin(i/8)
-plot/over/i=1:100/title="here is the key for the<nl>second overlay line" i*sin(i/4)
-
-label 10,80,-1,-20,0.2,"@CSfonts and @p2colors<nl>a at p1nd at an angle<NL>\
-no at p3w green and @CRCR font<NL>back at CS to script"
-
-label 30,-70,-1,40,0.2,"first line, then blank<NL> <NL>third line, all rotated"
-
-label/nouser 6.5,6,1,90,0.2,"@p2Another @CImoveable label<nl>Set to @CRCR and @p4P4\
-<NL>at 90 degrees"
-set mode/last meta
-set mode/last logo
-
-plot/title="multi-line key labels"/i=1:100 i*sin(i/12)
-plot/over/i=1:100/title="Three-lines<nl>second line<nl>overlay 1" i*sin(i/6)
-plot/over/i=1:100/title="Two-lines<nl>overlay 2" i*cos(i/6)
-plot/over/i=1:100/title="Three-lines<nl>second line<nl>overlay 3" -1*cos(i/10)
-plot/over/i=1:100/title="One-line" i*cos(i/8)
-plot/over/i=1:100/title="Three-line<nl>second<nl>overlay5" i*cos(i/14)
-plot/over/i=1:100/title="Two-line<nl>overlay6" i*cos(i/20)
-plot/over/i=1:100/title="Three-line<nl>second<nl>overlay7" i*sin(i/12)
-
-
-
-plot/i=1:100 i*cos(i/8)
-
-
-! label 30,95,0,0,0.1,\
-! label 70,95,1,0,0.1,\
-label 3,95,-1,0,0.12,\
-"@CRHere is a long label, made with the LABEL command:<NL>\
- <NL> Ferret is an interactive computer visualization and analysis<NL>\
-environment designed to meet the needs of oceanographers and<NL>\
-meteorologists analyzing large and complex gridded data sets. It<NL>\
-runs on most Unix systems, and on Windows NT/9x using X<NL>\
-windows for display. It can be installed to run from a Web<NL>\
-browser (WebFerret) for use while away from your desk or<NL>\
-from a system lacking X windows software. It can transparently<NL>\
-access extensive remote Internet data bases using OPeNDAP,<NL>\
-formerly known as DODS. See the dods webpage\
-<NL> <NL>\
-Ferret was developed by the Thermal Modeling and Analysis<NL>\
-Project (TMAP) at PMEL in Seattle to analyze the outputs of its<NL>\
-numerical ocean models and compare them with gridded,<NL>\
-observational data. The model data sets are generally multi-<NL>\
-gigabyte in size with mixed 3 and 4-dimensional variables defined<NL>\
-on staggered grids. Ferret offers a Mathematica-like approach to<NL>\
-analysis, new variables may be defined interactively as<NL>\
-mathematical expressions involving data set variables.<NL>\
-Calculations may be applied over arbitrarily shaped regions. Fully<NL>\
-documented graphics are produced with a single command.\
-<NL> <NL>\
-Many excellent software packages have been developed recently<NL>\
-for @p2scientific visualization at p1. The features that make Ferret distinctive<NL>\
-among these packages are Mathematica-like flexibility,<NL>\
-geophysical formatting, intelligent connection to its data base,<NL>\
-memory management for very large calculations, and symmetrical<NL>\
-processing in 4 dimensions."
-
-
-set win/clear
-plot/sym/i=1:5/nolab/noaxes i
-ppl ylab "@CRlong y label<NL>@p2line 2 in red, longer than the other lines."
-ppl xlab "@p4Tests using the %xaxis and %yaxis commands<NL>@p5 at CItwo lines<NL>center a at P1 long third line too"
-ppl %yaxis/nouser,0,50,4,1, , , ,-1
-ppl %xaxis/nouser,0,50,4,1, , , ,-1
-
-ppl %yaxis/nouser,0,50,4,2, , , ,0
-ppl %xaxis/nouser,0,50,4,2.5, , , ,0
-
-ppl %yaxis/nouser,0,50,4,6, , , ,1
-ppl %xaxis/nouser,0,50,4,4, , , ,1
-
-
-can view; set view upper
-plot/i=1:100/axes=1,0,0,1/set/title="labels on top and right<nl>space for two lines on the y axis at the right" i*cos(i/8)
-ppl xlab "a multi line x label<NL>here is line 2<NL>here is line three<NL>here is line four"
-ppl labset, , , 0.08
-ppl ylab "a multi line y label<NL>here is line two<NL>here is line three<NL>"
-ppl plot
-
-set view lower
-ppl axlen `($ppl$xlen)-1`
- !-> ppl axlen 7.74
-
-plot/i=1:100/axes=1,0,0,1/set/title="shortened the x axis to make space" i*cos(i/8)
-ppl xlab "a multi line x label<NL>here is line two<NL>here is line three<NL>here is line four"
-ppl ylab "a multi line y label<NL>here is line two<NL>here is line three<NL>here is line four"
-ppl plot
-
-! reset
-can view
-ppl axlen,8
-
-! size and rotate moveable labels.
-
-plot/i=1:100/set i*cos(i/8)
-ppl labs,4,20,-60,-1,"A @CIppl labs at SR label,<NL>change size and <NL>rotation"
-ppl rlabs,4,45
-ppl hlabs,4,.4
-ppl title "@P2 at ACRED title in AC font<NL>put P2 first then AC otherwise \
-the at sign in front of P2 not recognized"
-ppl plot
-
-ppl rlabs,4,0
-
-GO bn_reset
-cancel mode verify
-GO bn552_bug_fixes
-! bn552_bug_fixes.jnl
-! test various fixes that went into version 5.52
-! 3/03 *acm*
-!
-! 4/03 *kob* Add fixes for string bugs
-
-! Default behavior (all axes on) was not reset after a plot/set/AXES=
-GO bn_reset
-cancel mode verify
-GO err551_axes_set.jnl
-! Default behavior (all axes on) was not reset after a PLOT/SET/AXES=
-
-! Choose just some axes to plot with /AXES qualifier
-SET VIEW upper
-PLOT/SET/AXES=0,1,1,0/i=1:12 1./i
-PPL TITLE "PLOT/SET/AXES only two axes"
-PPL PLOT
-
-! This plot should have the default behavior; all axes plotted.
-! But, pre-v552, keeps settings from previous PLOT/SET/AXES=
-
-SET VIEW lower
-plot/i=1:100/title="PLOT (no quals); all axes plotted" i*cos(i/12)
-
-! Test whether too many levels specified. Previous to v552, no
-! test on SHADE and POLYGON plots, and these crashed Ferret.
-GO bn_reset
-cancel mode verify
-GO err551_num_levels.jnl
-! Test whether too many levels specified. Previous to v552, no
-! test was made on SHADE and POLYGON plots, and these crashed Ferret.
-! The results should all be error messages: too many levels.
-
-SET MODE IGNORE_ERROR
-USE coads_climatology
-CONTOUR/L=1/LEV=0.01d sst
-FILL/L=1/LEV=0.01d sst
-
-SHADE/L=1/LEV=0.01d sst
-can data/all
-
-LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
-LET ypts = 15 + 20*SIN(2*3.14*I[I=1:50]/60)
-LET sst = 25 - ypts + RANDN(ypts)
-plot/vs xpts,ypts
-GO polymark POLYGON/KEY/LEV=0.01d xpts,ypts,sst,star
-
-
-SET MODE/LAST IGNORE_ERROR
-SET WIN/CLEAR
-
-! Check for invalid value of calendar attribute on reading NetCDF files.
-GO bn_reset
-cancel mode verify
-GO err551_invalid_calendar.jnl
-! check on input for invalid calendar name
-! If file gives calendar attribute with unrecognized name,
-! give an error message and use an abstract axis.
-
-set data err_calendar.nc
-sh data
- currently SET data sets:
- 1> ./err_calendar.nc (default)
- name title I J K L M N
- TIME observation time ... ... ... 1:12 ... ...
- (invalid coordinate axis)
-
-
-! String bug fixes *kob*
-GO bn_reset
-cancel mode verify
-GO err551_strings.jnl
-
-
-! first make sure file is non-existent
-sp rm input.txt
-
-! first bug - first list always worked fine, and second list would crash.
-! fix turned out to be that you still had to (m)alloc space even
-! for a null pointer in get_sys_cmnd.c
-!
-! define string variable
-let a = {"first", spawn:"ls input.txt", "last"}
-list a
- VARIABLE : {"first", SPAWN:"ls input.txt", "last"}
- SUBSET : 3 points (X)
- 1 / 1:"first"
- 2 / 2:""
- 3 / 3:"last"
-list a
- VARIABLE : {"first", SPAWN:"ls input.txt", "last"}
- SUBSET : 3 points (X)
- 1 / 1:"first"
- 2 / 2:""
- 3 / 3:"last"
-
-
-! second bug fix - this used to crash during the list command.
-! fix turned out to be that needed make sure to (m)alloc enough
-! space for string plus "\n" character - in get_sys_cmnd.c
-
-sp echo "GANGES_BRAHMAPUTRA" > input.txt
-sp echo "X=86e:93e/Y=20n:25n " >> input.txt
-sp echo "X=118e:123e/Y=29n:34n " >> input.txt
-sp echo "X=65w:57w/Y=7n:12n " >> input.txt
-let a = {spawn:"cat input.txt"}
-load a
-list a
- VARIABLE : {SPAWN:"cat input.txt"}
- SUBSET : 4 points (X)
- 1 / 1:"GANGES_BRAHMAPUTRA"
- 2 / 2:"X=86e:93e/Y=20n:25n "
- 3 / 3:"X=118e:123e/Y=29n:34n "
- 4 / 4:"X=65w:57w/Y=7n:12n "
-
-! last one - make sure bug gabe found is fixed as well
-! used to have incorrect results on second list command
-! fix turned out to be that strcmp function was declared "float"
-! when it should have been void.
-
-let mystring = {"a","b","a","c"}
-list strcmp("b", mystring)
- VARIABLE : STRCMP("b", MYSTRING)
- SUBSET : 4 points (X)
- 1 / 1: 1.00000
- 2 / 2: 0.00000
- 3 / 3: 1.00000
- 4 / 4: -1.00000
-list strcmp("b", mystring)
- VARIABLE : STRCMP("b", MYSTRING)
- SUBSET : 4 points (X)
- 1 / 1: 1.00000
- 2 / 2: 0.00000
- 3 / 3: 1.00000
- 4 / 4: -1.00000
-
-
-! 2-D @AVE bug fix
-GO bn_reset
-cancel mode verify
-GO err551_2dave.jnl
-! Bug in 2-D averaging, if source data thats loaded has a
-! larger range than the dest data, code didnt check whether
-! source grid cells actually overlapped destination cells
-
-use coads_climatology
-load/l=1 sst
-
-def axis/x=110w:90w:5 xax
-def axis/y=10n:20n:2 yax
-
-list/l=1/y=20 sst[gx=xax at ave,gy=yax at ave]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- regrid: 5 deg on X at AAV, 2 deg on Y at AAV
- FILENAME : coads_climatology.cdf
- SUBSET : 5 points (LONGITUDE)
- LATITUDE : 20N
- TIME : JAN
- 20N
- 6
- 110W / 1: 24.0382
- 105W / 2: 25.4564
- 100W / 3: 24.5714
- 95W / 4: 23.8243
- 90W / 5: 24.9977
-
-! RETURN error message, and new var,RETURN=dsettitle argument
-GO bn_reset
-cancel mode verify
-GO err551_return_message.jnl
- ! err551_return_message.jnl
- ! 4/15/03 ACM
-
-SET MODE IGNORE_ERROR
-
-use dstitle
-
-! This is not a valid argument for RETURN. The error message
-! has been improved to include all valid arguments.
-
-say `axy, return=xx`
-
-! This is a new argument: title from the global attributes secion.
-say `axy,return=dsettitle`
- !-> MESSAGE/CONTINUE dataset title for 4D string data
-dataset title for 4D string data
-
-SET MODE/LAST IGNORE_ERROR
-
-! file/form=stream didnt see file in another directory
-GO bn_reset
-cancel mode verify
-GO err551_streamread_directory.jnl
-! Bug: file/form=stream doesnt see file in another directory
-
-sp rm -f subdir/a.dat
-
-def ax/x=1:1/np=1 xax
-def grid/x=xax g
-list/clobber/form=stream/file="a.dat" 1
-file/form=stream/grid=g/var=a "a.dat"
-list a
- VARIABLE : A
- FILENAME : a.dat
- X : 1
- 1.00000
-
-can dat/all
-sp mkdir -p subdir
-sp mv a.dat subdir
-file/form=stream/grid=g/var=a "subdir/a.dat"
-list a
- VARIABLE : A
- FILENAME : a.dat
- FILEPATH : subdir/
- X : 1
- 1.00000
-
-! GXY=var regridding syntax, when the variable hasnt been loaded
-GO bn_reset
-cancel mode verify
-GO err551_regrid_undef_grid.jnl
-! err551_regrid_undef_grid.jnl
-! 5/03 *acm* based on bn_regrid_to_user; more testing of multi-axis GXY=var
-! syntax, when the destination grid is not yet defined
-
-! test various regridding combos that involve user-defined variables
-! for the target grids
-
-
-set mode ignore_errors
-
-use coads_climatology
-use levitus_climatology
-
-! define test objects
-let a = sst[d=coads_climatology] + 1
-let b = sst + 1 ! data set unspecified
-DEFINE AXIS/Y=20s:20n:.5/units=degrees yax
-DEFINE GRID/like=sst[d=coads_climatology]/y=yax gg
-
-! reference data
-list/x=158e:161e/y=6s:4s temp[d=2,k=1]
- VARIABLE : TEMPERATURE (DEG C)
- FILENAME : levitus_climatology.cdf
- SUBSET : 3 by 2 points (LONGITUDE-LATITUDE)
- DEPTH (m): 0
- 158.5E 159.5E 160.5E
- 139 140 141
- 4.5S / 86: 29.5110 29.4430 29.3800
- 5.5S / 85: 29.5890 29.5250 29.4570
-
-! basic regrid (implicit grid -- sst and temp geometries are mismatched)
-list/x=160e/y=5s temp[d=2,k=1,gxy=a[d=1]]
- VARIABLE : TEMPERATURE (DEG C)
- regrid: 2 deg on X, 2 deg on Y
- FILENAME : levitus_climatology.cdf
- LONGITUDE: 159E
- LATITUDE : 5S
- DEPTH (m): 0
- 29.5170
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G005)
- GRID (G005)
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- COADSY LATITUDE 90 r 89S 89N
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-
-can data/all
-can var/all
-can grid
-
-! multiple axis syntax: GXY=gg
-define axis/x=1:6:1 x1
-define axis/y=1:4:1 y1
-define axis/z=1:3:1 z1
-define axis/x=1:6:2 x2
-define axis/y=1:4:2 y2
-define axis/z=1:3:2 z2
-let a1 = x[gx=x1]+y[gy=y1]+z[gz=z1]
-let a2 = x[gx=x2]+y[gy=y2]+z[gz=z2]
-list a1
- VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
- SUBSET : 6 by 4 by 3 points (X-Y-Z)
- 1 2 3 4 5 6
- 1 2 3 4 5 6
- ---- K:1 Z: 1
- 1 / 1: 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000
- 2 / 2: 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000
- 3 / 3: 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000
- 4 / 4: 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000
- ---- K:2 Z: 2
- 1 / 1: 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000
- 2 / 2: 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000
- 3 / 3: 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000
- 4 / 4: 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000
- ---- K:3 Z: 3
- 1 / 1: 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000
- 2 / 2: 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000
- 3 / 3: 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000
- 4 / 4: 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000
-list a1[gzxy=a2]
- VARIABLE : X[GX=X1]+Y[GY=Y1]+Z[GZ=Z1]
- regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- 1 3 5 7
- 1 2 3 4
- ---- K:1 Z: 1
- 1 / 1: 3.0000 5.0000 7.0000 ....
- 3 / 2: 5.0000 7.0000 9.0000 ....
- 5 / 3: .... .... .... ....
- ---- K:2 Z: 3
- 1 / 1: 5.0000 7.0000 9.0000 ....
- 3 / 2: 7.0000 9.0000 11.0000 ....
- 5 / 3: .... .... .... ....
-
-can data/all
-can var/all
-
-! Convoluted definitions, LIST needs data on a grid not yet loaded.
-use clim_airt_lev.cdf
-def axis/t=16-JUL-1966:16-MAY-1967:1/unit=month hope_month
-! use climatological_axes
-! can dat climatological_axes
-
-let dzdt_month = airt[gt=hope_month]
-let dzdt_clim = airt[gt=month_reg at mod]
-let dzdt_anom = dzdt_month - dzdt_clim[gt=dzdt_month at asn]
-set region/x=100w/y=0
-list dzdt_anom
- VARIABLE : DZDT_MONTH - DZDT_CLIM[GT=DZDT_MONTH at ASN]
- FILENAME : clim_airt_lev.cdf
- SUBSET : 11 points (TIME)
- LONGITUDE: 100.5W
- LATITUDE : 0.167S
- 100.5W
- 130
- 16-JUL-1966 / 1: -1.42152
- 15-AUG-1966 / 2: -2.97198
- 14-SEP-1966 / 3: -4.50335
- 15-OCT-1966 / 4: -3.88179
- 14-NOV-1966 / 5: -2.57982
- 15-DEC-1966 / 6: -1.07968
- 14-JAN-1967 / 7: 1.42391
- 14-FEB-1967 / 8: 2.96231
- 16-MAR-1967 / 9: 4.50322
- 15-APR-1967 / 10: 3.83807
- 16-MAY-1967 / 11: 2.60886
-
-
-! Symbol substituted on each repetition of REPEAT
-GO bn_reset
-cancel mode verify
-GO err551_repeat_sym.jnl
-
-! This had worked, but stopped working in v541
-! symbol substituted on each repetition of REPEAT
-
-! (The cause was the fix intended to repair what it
-! tested in err540_parse_repeat.jnl )
-
-def sym a 0; rep/i=1:3:1 (def sym a `i`; say ($a))
- !-> rep/i=1:3:1 (def sym a `i`; say ($a))
-!-> REPEAT: I=1
- !-> def sym a 1
- !-> MESSAGE/CONTINUE 1
-1
-!-> REPEAT: I=2
- !-> def sym a 2
- !-> MESSAGE/CONTINUE 2
-2
-!-> REPEAT: I=3
- !-> def sym a 3
- !-> MESSAGE/CONTINUE 3
-3
-
-! data from nc file with time axis modulo=value, when regridded to
-! another time axis, some times have missing data
-GO bn_reset
-cancel mode verify
-GO err551_modulo_nc_regrid.jnl
-! data from nc file with time axis having modulo=value, when regridded
-! to another time axis, some times have missing data
-
-! First write a file with a monthly climatology:
-
-use coads_vwnd
-set region/x=161w/y=39n
-!use climatological_axes
-!can data climatological_axes
-
-let vwnd_clim = vwnd[gt=month_reg at mod]
-
-save/clobber/file=clim.nc vwnd_clim
-
-! File clim.nc is a climatology with the attribute
-! MONTH_REG:modulo = 8765.82 ;
-
-! The data is ok if we now regrid to the monthly_navy_winds time axis
-list/l=23:27 vwnd_clim[gt=vwnd[d=1]]
- VARIABLE : VWND[GT=MONTH_REG at MOD]
- regrid: VWND
- FILENAME : coads_vwnd.cdf
- SUBSET : 5 points (TIME)
- LONGITUDE: 161W
- LATITUDE : 39N
- 161W
- 90
- 16-NOV-1947 00 / 23: -3.07590
- 16-DEC-1947 12 / 24: 1.67401
- 16-JAN-1948 12 / 25: 3.42908
- 15-FEB-1948 12 / 26: 1.95365
- 16-MAR-1948 12 / 27: 2.76119
-
-! now use the climatology data file; note that when regridded to the
-! time axis of vwnd, some times have missing data
-
-can data/all
-can var/all
-
-use coads_vwnd
-use clim
-list/l=23:27 vwnd_clim[gt=vwnd[d=1]]
- VARIABLE : VWND[GT=MONTH_REG at MOD]
- regrid: on T
- FILENAME : clim.nc
- SUBSET : 5 points (TIME)
- LONGITUDE: 161W
- LATITUDE : 39N
- 161W
- 1
- 16-NOV-1947 00 / 23: -3.07590
- 16-DEC-1947 12 / 24: 1.67401
- 16-JAN-1948 12 / 25: 3.42908
- 15-FEB-1948 12 / 26: 1.95365
- 16-MAR-1948 12 / 27: 2.76119
-
-
-! FFT frequency axis not computed accurately enough.
-GO bn_reset
-cancel mode verify
-GO err551_fft_freqaxis.jnl
-
-DEFINE AXIS/t=1:4998:1 dayt
-let tpts = t[gt=dayt]
-
-LET sample_function = sin(0.5*tpts - 6.)/2. - cos(0.3*tpts)
-
-LET days_fft = ffta(sample_function)
-LOAD days_fft
-LET FFT_nf = `days_fft,return=lend`
- !-> DEFINE VARIABLE FFT_nf = 2499
-
-list FFT_nf
- VARIABLE : 2499
- 2499.00
-list 2*FFT_nf
- VARIABLE : 2*FFT_NF
- 4998.00
-list `tpts,return=lend`
- !-> list 4998
- VARIABLE : constant
- 4998.00
-
-
-! No error message on request for time on bad time axis
-GO bn_reset
-cancel mode verify
-GO err551_no_taxis_errmsg.jnl
-! The time axis is bad, having repeated values, so an abstract axis is
-! used by Ferret and the list/t=time should result in an error.
-
-SET MODE IGNORE_ERROR
-
-use bad_taxis.nc
-list/t=1-jan-1990 dummy
-
-SET MODE/LAST IGNORE_ERROR
-
-GO bn_reset
-cancel mode verify
-GO bn_set_var_scale_off.jnl
-! Qualifiers /SCALEFACTOR= and /OFFSET for SET VARIABLE.
-! Only for NetCDF datasets
-! Applied after NetCDF Scale_factor and add_offset attributes
-! New RETURN= arguments NC_SCALE, NC_OFF for values of NetCDF attributes
-! and USER_SCALE, USER_OFF for those set with SET VAR
-
-! This dataset has scale_factor and add_offset attributes.
-
-USE err491_attval
-LIST/NOHEAD/PREC=6 elev[x=@ave,y=@ave]
- 2.97979
-SET VAR/OFFSET=1 elev
-LIST/NOHEAD/PREC=6 elev[x=@ave,y=@ave]
- 3.97979
-SET VAR/SCALE=10 elev
-LIST/NOHEAD/PREC=6 elev[x=@ave,y=@ave]
- 30.7979
-
-! Output the values of the scales and offsets
-
-SAY `elev,RETURN=nc_scale`
- !-> MESSAGE/CONTINUE 0.0002746749679546
-0.0002746749679546
-SAY `elev,RETURN=nc_off`
- !-> MESSAGE/CONTINUE 0
-0
-SAY `elev,RETURN=user_scale`
- !-> MESSAGE/CONTINUE 10
-10
-SAY `elev,RETURN=user_off`
- !-> MESSAGE/CONTINUE 1
-1
-
-! These SET VAR will produce error msgs: qualifiers are set up only for
-! variables in NetCDF files
-
-SET MODE IGNORE_ERROR
-
-FILE/VAR=x1,x2 EZ.DAT
-
-SET VAR/OFFSET=1 x1
-SET VAR/SCALE=10 x2
-
-SET MODE/LAST IGNORE_ERROR
-
-GO bn_reset
-cancel mode verify
-GO bn_longvarnames.jnl
-! variable names up to 128 characters long
-! 3/2006 make them 127 to be able to add the null terminator for C strings
-! else not used correctly in linked-list attribute structure.
-
-LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = {12,14,20,28,22,10}
-LIST a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
- VARIABLE : {12,14,20,28,22,10}
- SUBSET : 6 points (X)
- 1 / 1: 12.0000
- 2 / 2: 14.0000
- 3 / 3: 20.0000
- 4 / 4: 28.0000
- 5 / 5: 22.0000
- 6 / 6: 10.0000
-
-! With a transformation, which makes the whole specification longer
-
-list a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567,\
- A234567890B234567890C234567890D234567890E234567890F234567890G234567890H234567890I234567890D234567890J234567890K234567890L234567[i=@SHF:1]
- X: 0.5 to 6.5
- Column 1: A234567890B234567890C234567890D234567890E234567890F234567890G234567890H234567890I234567890D234567890J234567890K234567890L234567 is {12,14,20,28,22,10}
- Column 2: A234567890B234567890C234567890D234567890E234567890F234567890G234567890H234567890I234567890D234567890J234567890K234567890L234567* is {12,14,20,28,22,10} (shifted by 1 pts on X)
- A2345678 A234567890B234567890C234567890D234567890E234567890F234567890G234567890H234567890I234567890D234567890J234567890K234567890L234567
-1 / 1: 12.0000 14.0000
-2 / 2: 14.0000 20.0000
-3 / 3: 20.0000 28.0000
-4 / 4: 28.0000 22.0000
-5 / 5: 22.0000 10.0000
-6 / 6: 10.0000 ....
-
-! SET GRID using long variable name
-SET GRID a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
-SHOW GRID
- Default grid for DEFINE VARIABLE is XABSTRACT
- Last successful data access was on grid XABSTRACT
- GRID XABSTRACT
- name axis # pts start end
- ABSTRACT X 99999999 r 1 1.E+08
- normal Y
- normal Z
- normal T
- normal E
- normal F
-
-
-
-! save to a file a variable that is 128 long
-GO bn_reset
-cancel mode verify
-
-LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = {12,14,20,28,22,10}
-SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
-
-! read from the file
-GO bn_reset
-cancel mode verify
-USE longvname
-LIST a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
- VARIABLE : {12,14,20,28,22,10}
- FILENAME : longvname.nc
- SUBSET : 6 points (X)
- 1 / 1: 12.0000
- 2 / 2: 14.0000
- 3 / 3: 20.0000
- 4 / 4: 28.0000
- 5 / 5: 22.0000
- 6 / 6: 10.0000
-
-! save a 4-D variable
-GO bn_reset
-cancel mode verify
-LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
-SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
-
-GO bn_reset
-cancel mode verify
-USE longvname.nc
-lIST/I=1/J=2 a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
- VARIABLE : I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
- FILENAME : longvname.nc
- SUBSET : 3 by 3 points (Z-T)
- X : 1
- Y : 2
- 1 2 3
- 1 2 3
- 1 / 1: 3.00000 5.00000 7.00000
- 2 / 2: 4.00000 6.00000 8.00000
- 3 / 3: 5.00000 7.00000 9.00000
-LIST/K=2/L=3 a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
- VARIABLE : I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
- FILENAME : longvname.nc
- SUBSET : 5 by 4 points (X-Y)
- Z : 2
- T : 3
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: 5.0000 7.0000 9.0000 11.0000 13.0000
- 2 / 2: 7.0000 11.0000 15.0000 19.0000 23.0000
- 3 / 3: 9.0000 15.0000 21.0000 27.0000 33.0000
- 4 / 4: 11.0000 19.0000 27.0000 35.0000 43.0000
-
-GO bn_reset
-cancel mode verify
-GO bn_shakey.jnl
-! Changes to shade key:
-! - Default size is a little bigger
-! - To put key labels on the left or bottom of the key, multiply the size by -1
-! - Previously ALL OF kx_lo, kx_hi,ky_lo, ky_hi had to be set, or none of them
-! were applied. With changes as of 3/3/03 can set any of these independently.
-! If, say only x1 and y1 are set, the other corners are set, keeping the default
-! width and/or height.
-
-use ocean_atlas_temp
-set region/x=130:290/y=-45:45
-
-shade/title="shift shakey left and up"/set temp[l=1]
-
-let x1 = `($ppl$xorg)+($ppl$xlen)`
- !-> DEFINE VARIABLE x1 = 9.94
-let y1 = `($ppl$yorg)+.4`
- !-> DEFINE VARIABLE y1 = 1.8
-
-ppl shakey ,,.12,,,,`x1`,,`y1`
- !-> ppl shakey ,,.12,,,,9.94,,1.8
-ppl shade
-ppl list shakey
-
- DO KEY ORIENT LAB SIZE LAB INC LAB DIG LAB LEN
- 1 1 0.12 0 3 9
-
-
- X LO X HI Y LO Y HI
- 9.94 10.23 1.80 7.20
-
-shade/title="set only x2,y2"/set temp[l=1]
-
-let x2 = `($ppl$xorg)+($ppl$xlen)`
- !-> DEFINE VARIABLE x2 = 9.94
-let y2 = `($ppl$yorg)+($ppl$ylen) - .4`
- !-> DEFINE VARIABLE y2 = 6.405
-
-ppl shakey ,,.12,,,,,`x2`,,`y2`
- !-> ppl shakey ,,.12,,,,,9.94,,6.405
-ppl shade
-ppl list shakey
-
- DO KEY ORIENT LAB SIZE LAB INC LAB DIG LAB LEN
- 1 1 0.12 0 3 9
-
-
- X LO X HI Y LO Y HI
- 9.65 9.94 1.00 6.41
-
-
-! resetting location of horizontal shade keys
-
-shade/title="shakey labels above it"/set temp[l=1]
-
-let x1 = `($ppl$xorg)+0.1`
- !-> DEFINE VARIABLE x1 = 1.3
-let y1 = `($ppl$yorg)+($ppl$ylen)+0.1`
- !-> DEFINE VARIABLE y1 = 6.905
-let y2 = `($ppl$yorg)+($ppl$ylen)+0.5`
- !-> DEFINE VARIABLE y2 = 7.305
-
-ppl shakey ,0,-.12,2,,,`x1`,,`y1`,`y2`
- !-> ppl shakey ,0,-.12,2,,,1.3,,6.905,7.305
-go unlabel 4
-go unlabel 5
-ppl shade
-ppl list shakey
-
- DO KEY ORIENT LAB SIZE LAB INC LAB DIG LAB LEN
- 1 0 -0.12 2 3 9
-
-
- X LO X HI Y LO Y HI
- 1.30 10.04 6.91 7.30
-
-
-let x1 = `($ppl$xorg)+1`
- !-> DEFINE VARIABLE x1 = 2.2
-let x2 = `($ppl$xorg)+($ppl$xlen)-1`
- !-> DEFINE VARIABLE x2 = 8.94
-let y1 = `($ppl$yorg)`
- !-> DEFINE VARIABLE y1 = 1.4
-shade/title="shorter, at bottom"/set temp[l=1]
-ppl shakey ,0,-.12,3,,,`x1`,`x2`,`y1`
- !-> ppl shakey ,0,-.12,3,,,2.2,8.94,1.4
-ppl shade
-ppl list shakey
-
- DO KEY ORIENT LAB SIZE LAB INC LAB DIG LAB LEN
- 1 0 -0.12 3 3 9
-
-
- X LO X HI Y LO Y HI
- 2.20 8.94 1.40 1.77
-
-shade/title="on left, labelled on left"/set temp[l=1]
-ppl axlabp, 1,1
-
-let x1 = `($ppl$xorg)` - .5
- !-> DEFINE VARIABLE x1 = 1.2 - .5
-let x2 = `($ppl$xorg)` - 0.1
- !-> DEFINE VARIABLE x2 = 1.2 - 0.1
-ppl shakey ,1,-.1,2,,,`x1`,`x2`
- !-> ppl shakey ,1,-.1,2,,,0.7,1.1
-ppl shade
-
-ppl axlabp, -1, -1
-
-set view upper
-ppl window off
-let y1 = -1* `($ppl$yorg)`
- !-> DEFINE VARIABLE y1 = -1* 1.4
-shade/title="In viewport, shakey located anywhere on page"/set temp[l=1]
-ppl shakey ,0,-.1,2,,,,,`y1`
- !-> ppl shakey ,0,-.1,2,,,,,-1.4
-ppl shade
-ppl list shakey
-
- DO KEY ORIENT LAB SIZE LAB INC LAB DIG LAB LEN
- 1 0 -0.10 2 3 9
-
-
- X LO X HI Y LO Y HI
- 1.20 9.94 -1.40 -1.30
-
-GO bn_reset
-cancel mode verify
-GO bn_eof_4d.jnl
-! bn_eof_4d.jnl
-! test EOFs on XYZT grids
-
-! In version 6.8 (double precision), the old eof functions are not available
-! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
-
-! dataset with 4 dimensions; compute EOF at each vertical level.
-
-use gt4d011.cdf
-
-let eofsp = eofsvd_space (temp[i=91:95,j=36:40,k=1:4])
-save/file=eofsp.cdf/clobber eofsp
-
-can data/all
-can var/all
-use eofsp
-
-set view ul
-shade eofsp[k=1,l=1]
-list eofsp[k=1,l=1]
- VARIABLE : EOFSVD_SPACE (TEMP[I=91:95,J=36:40,K=1:4])
- FILENAME : eofsp.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- T : 1
- 139.5W 138.5W 137.5W 136.5W 135.5W
- 1 2 3 4 5
- 1.83S / 5: 2.25380 2.34749 2.42382 2.47460 2.50064
- 2.17S / 4: 2.26997 2.36147 2.43073 2.47739 2.50277
- 2.5S / 3: 2.26576 2.35100 2.41285 2.45516 2.48145
- 2.83S / 2: 2.23354 2.30728 2.35946 2.39631 2.42393
- 3.17S / 1: 2.16829 2.22692 2.26870 2.30046 2.33013
-set view ur
-shade eofsp[k=2,l=1]
-list eofsp[k=2,l=1]
- VARIABLE : EOFSVD_SPACE (TEMP[I=91:95,J=36:40,K=1:4])
- FILENAME : eofsp.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 15
- T : 1
- 139.5W 138.5W 137.5W 136.5W 135.5W
- 1 2 3 4 5
- 1.83S / 5: 2.28179 2.37704 2.45447 2.50708 2.53486
- 2.17S / 4: 2.29644 2.38952 2.46056 2.50887 2.53607
- 2.5S / 3: 2.29075 2.37736 2.44104 2.48452 2.51240
- 2.83S / 2: 2.25743 2.33286 2.38636 2.42369 2.45233
- 3.17S / 1: 2.19089 2.25118 2.29360 2.32531 2.35557
-
-set view ll
-shade eofsp[k=3,l=1]
-list eofsp[k=3,l=1]
- VARIABLE : EOFSVD_SPACE (TEMP[I=91:95,J=36:40,K=1:4])
- FILENAME : eofsp.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 25
- T : 1
- 139.5W 138.5W 137.5W 136.5W 135.5W
- 1 2 3 4 5
- 1.83S / 5: 1.72333 1.84007 1.94120 2.00514 2.04715
- 2.17S / 4: 1.63876 1.74435 1.83141 1.88234 1.91985
- 2.5S / 3: 1.51509 1.60488 1.67644 1.71352 1.74562
- 2.83S / 2: 1.35750 1.42836 1.48145 1.50285 1.52819
- 3.17S / 1: 1.17476 1.22230 1.25622 1.26294 1.28236
-set view lr
-shade eofsp[k=4,l=1]
-list eofsp[k=4,l=1]
- VARIABLE : EOFSVD_SPACE (TEMP[I=91:95,J=36:40,K=1:4])
- FILENAME : eofsp.cdf
- SUBSET : 5 by 5 points (LONGITUDE-LATITUDE)
- DEPTH (m): 35
- T : 1
- 139.5W 138.5W 137.5W 136.5W 135.5W
- 1 2 3 4 5
- 1.83S / 5: 1.21576 1.30112 1.37420 1.42210 1.45249
- 2.17S / 4: 1.08595 1.16417 1.22895 1.26976 1.29822
- 2.5S / 3: 0.93683 1.00553 1.05923 1.09102 1.11580
- 2.83S / 2: 0.77184 0.82972 0.86888 0.89054 0.91114
- 3.17S / 1: 0.59936 0.64140 0.66649 0.68065 0.69951
-
-can data/all
-
-
-use gt4d011.cdf
-
-let eofti = eofsvd_tfunc (temp[i=91:95,j=36:40,k=1:10])
-save/file=eofti.cdf/clobber eofti
-
-can data/all
-can var/all
-can view
-use eofti
-
-set view ul
-plot eofti[i=1,k=1], eofti[i=2,k=1], eofti[i=3,k=1]
-list eofti[l=1:5,i=1,k=1]
- VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
- T=AUG-1982:JAN-1983
- FILENAME : eofti.cdf
- SUBSET : 5 points (TIME)
- X : 1
- DEPTH (m): 5
- 1
- 1
- 17-AUG-1982 12 / 1: -1.81161
- 23-AUG-1982 14 / 2: -1.75761
- 29-AUG-1982 16 / 3: -1.67763
- 04-SEP-1982 18 / 4: -1.57055
- 10-SEP-1982 20 / 5: -1.42678
-set view ur
-plot eofti[i=1,k=5], eofti[i=2,k=5], eofti[i=3,k=5]
-list eofti[l=1:5,i=1,k=5]
- VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
- T=AUG-1982:JAN-1983
- FILENAME : eofti.cdf
- SUBSET : 5 points (TIME)
- X : 1
- DEPTH (m): 45
- 1
- 1
- 17-AUG-1982 12 / 1: -2.21821
- 23-AUG-1982 14 / 2: -2.04941
- 29-AUG-1982 16 / 3: -1.77359
- 04-SEP-1982 18 / 4: -1.41208
- 10-SEP-1982 20 / 5: -1.05323
-
-set view ll
-plot eofti[i=1,k=8], eofti[i=2,k=8], eofti[i=3,k=8]
-list eofti[l=1:5,i=1,k=8]
- VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
- T=AUG-1982:JAN-1983
- FILENAME : eofti.cdf
- SUBSET : 5 points (TIME)
- X : 1
- DEPTH (m): 75
- 1
- 1
- 17-AUG-1982 12 / 1: -1.77560
- 23-AUG-1982 14 / 2: -1.45491
- 29-AUG-1982 16 / 3: -1.24196
- 04-SEP-1982 18 / 4: -1.05135
- 10-SEP-1982 20 / 5: -0.84706
-set view lr
-plot eofti[i=1,k=4], eofti[i=2,k=10], eofti[i=3,k=10]
-list eofti[l=1:5,i=1,k=10]
- VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
- T=AUG-1982:JAN-1983
- FILENAME : eofti.cdf
- SUBSET : 5 points (TIME)
- X : 1
- DEPTH (m): 95
- 1
- 1
- 17-AUG-1982 12 / 1: 0.003693
- 23-AUG-1982 14 / 2: -0.189178
- 29-AUG-1982 16 / 3: -0.298222
- 04-SEP-1982 18 / 4: -0.405668
- 10-SEP-1982 20 / 5: -0.517797
-
-can data/all
-
-
-
-use gt4d011.cdf
-
-let eofst = eofsvd_stat (temp[i=91:95,j=36:40,k=1:10])
-save/file=eofst.cdf/clobber eofst
-
-can data/all
-can var/all
-use eofst
-
-list/nohead/i=1/j=1/k=1:10 eofst ! # eigenfcns, same at all depths
- 5 / 1: 25.0000
- 15 / 2: 25.0000
- 25 / 3: 25.0000
- 35 / 4: 25.0000
- 45 / 5: 25.0000
- 55 / 6: 25.0000
- 65 / 7: 25.0000
- 75 / 8: 25.0000
- 85 / 9: 25.0000
- 95 / 10: 25.0000
-
-list/nohead/i=1:5/j=2 eofst[k=1:10:4] ! pct variance explained
- 5 / 1: 99.2678 0.6794 0.0319 0.0157 0.0031
- 45 / 2: 98.6525 1.1464 0.1451 0.0296 0.0198
- 85 / 3: 95.1217 4.5698 0.2195 0.0744 0.0084
-
-list/nohead/i=1:5/j=3/k=1 eofst ! eigenvalues
- 1 / 1: 139.576
- 2 / 2: 0.955
- 3 / 3: 0.045
- 4 / 4: 0.022
- 5 / 5: 0.004
-list/nohead/i=1:5/j=3/k=5 eofst
- 1 / 1: 10.8576
- 2 / 2: 0.1262
- 3 / 3: 0.0160
- 4 / 4: 0.0033
- 5 / 5: 0.0022
-list/nohead/i=1:5/j=3/k=9 eofst
- 1 / 1: 2.23641
- 2 / 2: 0.10744
- 3 / 3: 0.00516
- 4 / 4: 0.00175
- 5 / 5: 0.00020
-
-
-exit/script
-
-GO bn_reset
-cancel mode verify
-GO bn_abstract_axis_names.jnl
-! bn_abstract_axis_names.jnl
-! acm 6/12/03
-!
-! Write and read datafiles with no clues about axis orientation from
-! the units or axis name. Getting the axis direction depends on the AXIS
-! attribute in .nc files, and on use of the new line_direction(iaxis) = 'XX'
-! or 'YY' in cd_get_1_axis, xeq_define, tm_axis_direction, show_line.F
-
-! Define axes with confusing axis names (z in an X axis, X in a Z axis, etc)
-
-def axis/x=1:10:1 horiz
-def axis/y=10:80:10 the
-def axis/z=-4:1:1 xxx
-def axis/t=1:13:2 long
-
-show axis horiz
- name axis # pts start end
- HORIZ X 10 r 1 10
- Axis span (to cell edges) = 10
-show axis the
- name axis # pts start end
- THE Y 8 r 10 80
- Axis span (to cell edges) = 80
-show axis xxx
- name axis # pts start end
- XXX Z 6 r -4 1
- Axis span (to cell edges) = 6
-show axis long
- name axis # pts start end
- LONG T 7 r 1 13
- Axis span (to cell edges) = 14
-
-! Write files with different combinations of axes.
-
-let r = x[gx=horiz] + z[gz=xxx]
-save/clobber/file=confuse_xz.nc r
-
-let s = y[gy=the] + z[gz=xxx]
-save/clobber/file=confuse_yz.nc s
-
-let u = y[gy=the] + t[gt=long]
-save/clobber/file=confuse_yt.nc u
-
-let v = z[gz=xxx] + t[gt=long]+ y[gy=the]
-save/clobber/file=confuse_yzt.nc v
-
-
-! Now read the files and see that the vars have the right shape
-cancel data/all
-cancel var/all
-cancel axis horiz
-cancel axis the
-cancel axis xxx
-cancel axis long
-
-use confuse_xz.nc
-sh grid r
- GRID GAP1
- name axis # pts start end
- HORIZ X 10 r 1 10
- normal Y
- XXX Z 6 r -4 1
- normal T
- normal E
- normal F
-can data 1
-
-use confuse_yz.nc
-sh grid s
- GRID GBA1
- name axis # pts start end
- normal X
- THE Y 8 r 10 80
- XXX Z 6 r -4 1
- normal T
- normal E
- normal F
-can data 1
-
-use confuse_yt.nc
-sh grid u
- GRID GGY1
- name axis # pts start end
- normal X
- THE Y 8 r 10 80
- normal Z
- LONG T 7 r 1 13
- normal E
- normal F
-can data 1
-
-use confuse_yzt.nc
-sh grid v
- GRID GFA1
- name axis # pts start end
- normal X
- THE Y 8 r 10 80
- XXX Z 6 r -4 1
- LONG T 7 r 1 13
- normal E
- normal F
-can data 1
-
-
-! Define axes with meaningless axis names.
-
-def axis/x=1:10:1 aaa
-def axis/y=10:80:10 bbb
-def axis/z=-4:1:1 ccc
-def axis/t=1:13:2 ddd
-
-show axis aaa
- name axis # pts start end
- AAA X 10 r 1 10
- Axis span (to cell edges) = 10
-show axis bbb
- name axis # pts start end
- BBB Y 8 r 10 80
- Axis span (to cell edges) = 80
-show axis ccc
- name axis # pts start end
- CCC Z 6 r -4 1
- Axis span (to cell edges) = 6
-show axis ddd
- name axis # pts start end
- DDD T 7 r 1 13
- Axis span (to cell edges) = 14
-
-! Write files with different combinations of axes.
-
-let r = x[gx=aaa] + z[gz=ccc]
-save/clobber/file=confuse_xz.nc r
-
-let s = y[gy=bbb] + z[gz=ccc]
-save/clobber/file=confuse_yz.nc s
-
-let u = y[gy=bbb] + t[gt=ddd]
-save/clobber/file=confuse_yt.nc u
-
-let v = z[gz=ccc] + t[gt=ddd]+ y[gy=bbb]
-save/clobber/file=confuse_yzt.nc v
-
-
-! Now read the files and see that the vars have the right shape
-cancel data/all
-cancel var/all
-cancel axis aaa
-cancel axis bbb
-cancel axis ccc
-cancel axis ddd
-
-use confuse_xz.nc
-sh grid r
- GRID GAP1
- name axis # pts start end
- AAA X 10 r 1 10
- normal Y
- CCC Z 6 r -4 1
- normal T
- normal E
- normal F
-can data 1
-
-use confuse_yz.nc
-sh grid s
- GRID GBA1
- name axis # pts start end
- normal X
- BBB Y 8 r 10 80
- CCC Z 6 r -4 1
- normal T
- normal E
- normal F
-can data 1
-
-use confuse_yt.nc
-sh grid u
- GRID GGY1
- name axis # pts start end
- normal X
- BBB Y 8 r 10 80
- normal Z
- DDD T 7 r 1 13
- normal E
- normal F
-can data 1
-
-use confuse_yzt.nc
-sh grid v
- GRID GFA1
- name axis # pts start end
- normal X
- BBB Y 8 r 10 80
- CCC Z 6 r -4 1
- DDD T 7 r 1 13
- normal E
- normal F
-can data 1
-
-GO bn_reset
-cancel mode verify
-GO bn_many_polygons.jnl
-! testing large number of polygons in a plot. Map plot has
-! 130501 polygons; previously we had an upper limit of 100K polygons
-
-use coads_climatology
-def axis/x=0:360:0.5 xq
-def axis/y=-90:90:0.5 yq
-def axis/y=-90:90:1 yq
-let fsst = sst[l=1,gx=xq,gy=yq]
-shade/title="loading polygon at each grid point" sst[l=1] ! Set up plot params for polymark.jnl
-
-let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
-let lat = xsequence(0*x[gx=xq] + y[gy=yq])
-go polymark poly/key/pal=dark_land_sea/title="130501 polygons", lon, lat, xsequence(fsst), square, 0.3
-
-
-! Test that everythings properly reset afterwards.
-! single polygon.
-
-polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
-
-! Now test that is still also works with the 2-D mode of polygons.
-
-let xtriangle = ysequence({-1,0,1})
-let ytriangle = ysequence({-1,1,-1})
-let xpts = 180 + 30*randu(i[i=1:10])
-let ypts = 30*randu(1+i[i=1:10])
-polygon xtriangle+xpts, ytriangle+ypts, i[i=1:10]
-
-GO bn_reset
-cancel mode verify
-! GO bn_zaxr_fcns.jnl ! move to tests of shared-obj efs.
-
-GO bn_reset
-cancel mode verify
-GO bn_fill_irregular.jnl
-! FILL on vars with irregular axes
-
-use gtbc011
-fill/i=70/l=1 temp
-can data/all
-
-def ax/t tax = {1,5,6,7}
-let v = t[gt=tax]+z[gz=1:3:1]
-fill v
-
-def ax/x xax = {1,5,6,7}
-let v = x[gx=xax]-z[gz=1:3:1]
-fill v
-
-use test_subspan_modulo.nc
-fill v2d_irr[x=-100:100]
-fill v2d_irr[t=1-jan-1990:1-jan-1995]
-
-use coads_clim_irreg.des
-fill/x=180 sst
-
-! ******** V5.53 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_xml_output.jnl
-!bn_xml_output.jnl
-! new-V553 output in XML-style format
-! Illustrate the SHOW commands with /XML xml-style output
-! V5.80 11/04 new tests for SHOW VAR/XML; global variables.
-
-! 22-Feb-2005 use SHO AXIS/XML `temp,return=taxis` instead
-! of naming the axes; other axes of the same name (e.g. TIME)
-! may have been defined in other benchmark scrips.
-
-USE gtsa056_2.cdf
-
-SHO DATA/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="true">
-<title> </title>
-<var name="TEMP" />
-<var name="U" />
-<var name="W" />
-<var name="TAUX" />
-</dataset>
-</datasets>
-
-SHO DATA/VAR/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="true">
-<title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
- <value><![CDATA[deg. C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="U">
-<attribute name="units" type="char">
- <value><![CDATA[cm/sec]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[ZONAL VELOCITY]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="W">
-<attribute name="units" type="char">
- <value><![CDATA[cm/sec]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[VERTICAL VELOCITY]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DW1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZW</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="TAUX">
-<attribute name="units" type="char">
- <value><![CDATA[dynes/cm**2]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[ZONAL WIND STRESS]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS2DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="PSXU">
-<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[LONGITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>160</value>
-</attribute>
-<attribute name="start" type="double">
- <value>131</value>
-</attribute>
-<attribute name="end" type="double">
- <value>290</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
- <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[PSXU]]></value>
-</attribute>
-</axis>
-<axis name="PSYT">
-<attribute name="direction" type="char">
- <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>100</value>
-</attribute>
-<attribute name="start" type="double">
- <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
- <value>48.56797</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value>uneven</value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
- <value><![CDATA[PSYT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[PSYT]]></value>
-</attribute>
-</axis>
-<axis name="PSYU">
-<attribute name="direction" type="char">
- <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>100</value>
-</attribute>
-<attribute name="start" type="double">
- <value>-27.67214</value>
-</attribute>
-<attribute name="end" type="double">
- <value>50.00005</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value>uneven</value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
- <value><![CDATA[PSYU_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[PSYU]]></value>
-</attribute>
-</axis>
-<axis name="PSZT">
-<attribute name="direction" type="char">
- <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[METERS]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>27</value>
-</attribute>
-<attribute name="start" type="double">
- <value>5</value>
-</attribute>
-<attribute name="end" type="double">
- <value>3824</value>
-</attribute>
-<attribute name="positive" type="char">
- <value><![CDATA[down]]></value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value>uneven</value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
- <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-<axis name="PSZW">
-<attribute name="direction" type="char">
- <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[METERS]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>27</value>
-</attribute>
-<attribute name="start" type="double">
- <value>10</value>
-</attribute>
-<attribute name="end" type="double">
- <value>4149</value>
-</attribute>
-<attribute name="positive" type="char">
- <value><![CDATA[down]]></value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value>uneven</value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
- <value><![CDATA[PSZW_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[PSZW]]></value>
-</attribute>
-</axis>
-<axis name="PSXT1">
-<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_east]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>160</value>
-</attribute>
-<attribute name="start" type="double">
- <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
- <value>289.5</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
- <value>360</value>
-</attribute>
-</axis>
-<axis name="TIME6">
-<attribute name="direction" type="char">
- <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>168</value>
-</attribute>
-<attribute name="start" type="double">
- <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
- <value>1983-06-07 13:00:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
- <value><![CDATA[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
- <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-</axis>
-</axes>
-
-SHO GRID/XML ps3du1
-<grid name="PS3DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-
-SHO AXIS/XML `temp,return=xaxis`
- !-> SHO AXIS/XML PSXT1
-<axes>
-<axis name="PSXT1">
-<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_east]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>160</value>
-</attribute>
-<attribute name="start" type="double">
- <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
- <value>289.5</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
- <value>360</value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=yaxis`
- !-> SHO AXIS/XML PSYT
-<axes>
-<axis name="PSYT">
-<attribute name="direction" type="char">
- <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>100</value>
-</attribute>
-<attribute name="start" type="double">
- <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
- <value>48.56797</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value>uneven</value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
- <value><![CDATA[PSYT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[PSYT]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=zaxis`
- !-> SHO AXIS/XML PSZT
-<axes>
-<axis name="PSZT">
-<attribute name="direction" type="char">
- <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[METERS]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>27</value>
-</attribute>
-<attribute name="start" type="double">
- <value>5</value>
-</attribute>
-<attribute name="end" type="double">
- <value>3824</value>
-</attribute>
-<attribute name="positive" type="char">
- <value><![CDATA[down]]></value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value>uneven</value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
- <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=taxis`
- !-> SHO AXIS/XML TIME6
-<axes>
-<axis name="TIME6">
-<attribute name="direction" type="char">
- <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>168</value>
-</attribute>
-<attribute name="start" type="double">
- <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
- <value>1983-06-07 13:00:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
- <value><![CDATA[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
- <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-</axis>
-</axes>
-
-! Define a dataset variable
-! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
-LET/D=gtsa056_2 temp_180 = temp[X=160E:160W at AVE]
-
-USE coads_climatology
-
-SHOW DATA/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="false">
-<title> </title>
-<var name="TEMP" />
-<var name="U" />
-<var name="W" />
-<var name="TAUX" />
-<var name="TEMP_180" />
-</dataset>
-<dataset name="./coads_climatology.cdf" default="true">
-<title> </title>
-<var name="SST" />
-</dataset>
-</datasets>
-SHO DATA/VAR/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="false">
-<title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
- <value><![CDATA[deg. C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="U">
-<attribute name="units" type="char">
- <value><![CDATA[cm/sec]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[ZONAL VELOCITY]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="W">
-<attribute name="units" type="char">
- <value><![CDATA[cm/sec]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[VERTICAL VELOCITY]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DW1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZW</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="TAUX">
-<attribute name="units" type="char">
- <value><![CDATA[dynes/cm**2]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[ZONAL WIND STRESS]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS2DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="temp_180">
-<attribute name="definition" type="char">
- <value><![CDATA[TEMP[X=160E:160W at AVE]]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[TEMP[X=160E:160W at AVE]]]></value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="PSXU">
-<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[LONGITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>160</value>
-</attribute>
-<attribute name="start" type="double">
- <value>131</value>
-</attribute>
-<attribute name="end" type="double">
- <value>290</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
- <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[PSXU]]></value>
-</attribute>
-</axis>
-<axis name="PSYT">
-<attribute name="direction" type="char">
- <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>100</value>
-</attribute>
-<attribute name="start" type="double">
- <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
- <value>48.56797</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value>uneven</value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
- <value><![CDATA[PSYT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[PSYT]]></value>
-</attribute>
-</axis>
-<axis name="PSYU">
-<attribute name="direction" type="char">
- <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>100</value>
-</attribute>
-<attribute name="start" type="double">
- <value>-27.67214</value>
-</attribute>
-<attribute name="end" type="double">
- <value>50.00005</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value>uneven</value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
- <value><![CDATA[PSYU_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[PSYU]]></value>
-</attribute>
-</axis>
-<axis name="PSZT">
-<attribute name="direction" type="char">
- <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[METERS]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>27</value>
-</attribute>
-<attribute name="start" type="double">
- <value>5</value>
-</attribute>
-<attribute name="end" type="double">
- <value>3824</value>
-</attribute>
-<attribute name="positive" type="char">
- <value><![CDATA[down]]></value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value>uneven</value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
- <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-<axis name="PSZW">
-<attribute name="direction" type="char">
- <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[METERS]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>27</value>
-</attribute>
-<attribute name="start" type="double">
- <value>10</value>
-</attribute>
-<attribute name="end" type="double">
- <value>4149</value>
-</attribute>
-<attribute name="positive" type="char">
- <value><![CDATA[down]]></value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value>uneven</value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
- <value><![CDATA[PSZW_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[PSZW]]></value>
-</attribute>
-</axis>
-<axis name="PSXT1">
-<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_east]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>160</value>
-</attribute>
-<attribute name="start" type="double">
- <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
- <value>289.5</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
- <value>360</value>
-</attribute>
-</axis>
-<axis name="TIME6">
-<attribute name="direction" type="char">
- <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>168</value>
-</attribute>
-<attribute name="start" type="double">
- <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
- <value>1983-06-07 13:00:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
- <value><![CDATA[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
- <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-</axis>
-</axes>
-<dataset name="./coads_climatology.cdf" default="true">
-<title> </title>
-<var name="SST">
-<attribute name="units" type="char">
- <value><![CDATA[Deg C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[SEA SURFACE TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME4</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="TIME4">
-<attribute name="direction" type="char">
- <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>3</value>
-</attribute>
-<attribute name="start" type="double">
- <value>0000-01-16 06:00:00</value>
-</attribute>
-<attribute name="end" type="double">
- <value>0000-03-17 02:58:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
- <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
- <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
- <value>8765.82</value>
-</attribute>
-</axis>
-<axis name="COADSX">
-<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_east]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>180</value>
-</attribute>
-<attribute name="start" type="double">
- <value>21</value>
-</attribute>
-<attribute name="end" type="double">
- <value>379</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[COADSX]]></value>
-</attribute>
-</axis>
-<axis name="COADSY">
-<attribute name="direction" type="char">
- <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_north]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>90</value>
-</attribute>
-<attribute name="start" type="double">
- <value>-89</value>
-</attribute>
-<attribute name="end" type="double">
- <value>89</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[COADSY]]></value>
-</attribute>
-</axis>
-</axes>
-
-
-! tests of SHOW VAR/XML for global variables.
-CAN DATA/ALL
-CAN VAR/ALL
-
-USE coads_climatology
-USE gtsa056_2
-
-! Define a dataset variable
-LET/D=gtsa056_2 temp_20 temp[Z=0:20 at SUM]
-
-! Define a global variable
-LET t30 = temp[Z=0:30 at SUM]
-
-! Another variable, setting title, units, bad flag.
-LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral of SALT" salty = salt[Z=@IIN]
-
-! Define a constant
-LET pi = 3.14
-
-! Another variable, irrelevant in the current context
-LET my_sst = sst*12
-
-! This lists all the variables except my_sst
-
-SHO VAR/XML
-<global>
-<var name="TEMP_20[D=./gtsa056_2.cdf]">
-<attribute name="definition" type="char">
- <value><![CDATA[TEMP[Z=0:20 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="PI">
-<attribute name="definition" type="char">
- <value><![CDATA[3.14]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="ABSTRACT">
-<axes>
-</axes>
-</grid>
-</var>
-<var name="T30">
-<attribute name="definition" type="char">
- <value><![CDATA[TEMP[Z=0:30 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-</global>
-
-! Now change datasets, so my_sst has a context, but t30
-! does not temp_20 is listed because it is defined on a dataset
-
-SET DATA coads_climatology
-SHO VAR/XML
-<global>
-<var name="TEMP_20[D=./gtsa056_2.cdf]">
-<attribute name="definition" type="char">
- <value><![CDATA[TEMP[Z=0:20 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="MY_SST">
-<attribute name="definition" type="char">
- <value><![CDATA[SST*12]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME4</taxis>
-</axes>
-</grid>
-</var>
-<var name="PI">
-<attribute name="definition" type="char">
- <value><![CDATA[3.14]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="ABSTRACT">
-<axes>
-</axes>
-</grid>
-</var>
-</global>
-
-! Change default dataset. Now we should just see pi and my_sst
-
-CAN DATA gtsa056_2
-SHOW VAR/XML
-<global>
-<var name="MY_SST">
-<attribute name="definition" type="char">
- <value><![CDATA[SST*12]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME4</taxis>
-</axes>
-</grid>
-</var>
-<var name="PI">
-<attribute name="definition" type="char">
- <value><![CDATA[3.14]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="ABSTRACT">
-<axes>
-</axes>
-</grid>
-</var>
-</global>
-
-! 8/7/2007
-! new form for output of a var whose definition contains quotes
-CANCEL DATA/ALL
-CANCEL VAR/ALL
-
-USE coads_climatology
-LET t3 = sst[x=180,y=1,t="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]
-SHOW VAR/XML
-<global>
-<var name="T3">
-<attribute name="definition" type="char">
- <value><![CDATA[SST[X=180,Y=1,T="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-</axes>
-</grid>
-</var>
-</global>
-
-
-GO bn_reset
-cancel mode verify
-GO bn_test_nan.jnl
-!bn_test_nan.jnl
-! test to make sure that NaN is able to be set by user
-! as bad value. If this fails, Ferret will crash
-! Test on a file which is nothing but NaN's, and use
-! various spellings of NaN
-!
-! 9/03 *kob*
-!
-
-
-
-! test "nan"
-use test_nan.nc
-set var/bad=nan p1
-list p1
- VARIABLE : Pressure (dbar)
- FILENAME : test_nan.nc
- SUBSET : 10 points (TIME)
- 13-OCT-2001 07:21:50 / 1:....
- 13-OCT-2001 07:21:51 / 2:....
- 13-OCT-2001 07:21:52 / 3:....
- 13-OCT-2001 07:21:53 / 4:....
- 13-OCT-2001 07:21:54 / 5:....
- 13-OCT-2001 07:21:55 / 6:....
- 13-OCT-2001 07:21:56 / 7:....
- 13-OCT-2001 07:21:57 / 8:....
- 13-OCT-2001 07:21:58 / 9:....
- 13-OCT-2001 07:21:59 / 10:....
-can data/all
-can var/all
-
-! test "NaN"
-use test_nan.nc
-set var/bad=NaN p1
-list p1
- VARIABLE : Pressure (dbar)
- FILENAME : test_nan.nc
- SUBSET : 10 points (TIME)
- 13-OCT-2001 07:21:50 / 1:....
- 13-OCT-2001 07:21:51 / 2:....
- 13-OCT-2001 07:21:52 / 3:....
- 13-OCT-2001 07:21:53 / 4:....
- 13-OCT-2001 07:21:54 / 5:....
- 13-OCT-2001 07:21:55 / 6:....
- 13-OCT-2001 07:21:56 / 7:....
- 13-OCT-2001 07:21:57 / 8:....
- 13-OCT-2001 07:21:58 / 9:....
- 13-OCT-2001 07:21:59 / 10:....
-can data/all
-can var/all
-
-! test "NAN"
-use test_nan.nc
-set var/bad=NAN p1
-list p1
- VARIABLE : Pressure (dbar)
- FILENAME : test_nan.nc
- SUBSET : 10 points (TIME)
- 13-OCT-2001 07:21:50 / 1:....
- 13-OCT-2001 07:21:51 / 2:....
- 13-OCT-2001 07:21:52 / 3:....
- 13-OCT-2001 07:21:53 / 4:....
- 13-OCT-2001 07:21:54 / 5:....
- 13-OCT-2001 07:21:55 / 6:....
- 13-OCT-2001 07:21:56 / 7:....
- 13-OCT-2001 07:21:57 / 8:....
- 13-OCT-2001 07:21:58 / 9:....
- 13-OCT-2001 07:21:59 / 10:....
-can data/all
-can var/all
-
-
-
-
-
-
-GO bn_reset
-cancel mode verify
-GO bn553_bug_fixes.jnl
-! bn553_bug_fixes.jnl
-! test various fixes that went into version 5.52
-! 9/03 *kob*
-!
-
-! Make sure numeric filenames works
-GO bn_reset
-cancel mode verify
-GO err553_numeric_filename.jnl
-! err553_numeric_filename.jnl
-! 9/03 kob
-
-
-! Use of a filename begining w/ a numberic was a problem
-! w/ g77 - just make sure it works where
-use 123456789000101_100101_test_numeric.nc
-
-list vwnd_clim
- VARIABLE : VWND[GT=MONTH_REG at MOD]
- FILENAME : 123456789000101_100101_test_numeric.nc
- SUBSET : 12 points (TIME)
- LONGITUDE: 161W
- LATITUDE : 39N
- 161W
- 1
- 16-JAN / 1: 3.43667
- 15-FEB / 2: 1.92500
- 17-MAR / 3: 2.79000
- 16-APR / 4: 1.79000
- 16-MAY / 5: 0.80000
- 16-JUN / 6: 3.80000
- 16-JUL / 7: -0.20000
- 16-AUG / 8: 0.46500
- 15-SEP / 9: 2.57250
- 16-OCT / 10: -2.53000
- 15-NOV / 11: -3.09000
- 16-DEC / 12: 1.78667
-
-
-
-! Make sure long string variables work
-GO bn_reset
-cancel mode verify
-GO err553_long_string_var_name.jnl
-! err553_long_string_var_name.jnl
-! 9/03 kob
-
-
-
-! test long string variables - the were being truncated
-! at 100 characters
-
-
-let a = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
-
-list a
- VARIABLE : "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
- "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
-
-
-
-
-
-! Fixes for colorbar key labelling
-GO bn_reset
-cancel mode verify
-GO err551_colorkey.jnl
-
-! colorkey label bugs
-
-
-let zero = 0*x[i=1:10]+0*y[j=1:10]
-set view ul; shade zero !This one is labeled correctly.
-set view ur; shade 1+zero !So is this.
-set view ll; shade/lev=c zero !But here colorkey is 1:1 instead of 0:0.
-
-! Here the zero level is labelled as -.3e-08 rather than 0. (linux)
-can view
-use coads_climatology
-shade/l=1/lev=30/set (sst-10)/10
-ppl axlen 6
-ppl shakey 1,1,.12
-ppl shade
-
-
-
-! ******** V5.6Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn_graticules.jnl
-! /GRAT, /HGRAT and /VGRAT to set graticule lines
-! ACM March 12, 2004
-! ACM 4/2005 set mode meta to save one of the plots for the metafile checks.
-! and cancel mode logo, so that .plt files are comparable.
-
-ppl axnmtc,2,2
-
- ! GRAT on plot commands
-PLOT/grat/i=1:100 sin(i/5)
-let a = sin(i/5) * cos(j/8)
-CONTOUR/color=ligh/grat=(color=red)/i=1:100/j=1:80 a
-use coads_climatology
-SHADE/grat=(color=white) sst[L=1]
-FILL/grat=dash sst[l=1]
-VECTOR/color=red/grat=(blue,dash) sst[l=1], sst[l=2]
-let b = {1,2,1}
-let c = {2,1,0.5}
-POLYGON/thick/color=red/pal=blue/grat b,c
-
-! More complex GRAT arguments
-plot/grat="large(dash),small(dash,color=blue)"/i=1:100 sin(i/5)
-contour/color=ligh/grat="large(color=purple,thick=3,line),small(dash,color=blue)"/i=1:100/j=1:80 a
-shade/grat="small(color=lightblue),large(thick,color=lightblue)" sst[l=1]
-fill/i=1:50/j=1:30/grat="large(line),small(dash,color=lightblue)" i+j
-poly/thi/col=red/pal=blue/grat="lar(col=pur,thi=3,lin),sma(dash,col=whi)" b,c
-vector/i=1:50/j=1:30/grat="small(color=black),large(thick,color=blue)" sst[l=1], sst[l=2]
-
-! /HGRAT and /VGRAT
-plot/vg=large(line,color=red),small(dash,color=blue)/i=1:100 sin(i/5)
-plot/hg=small(color=red,dash),large(color=blue,line,thick)/i=1:100 sin(i/5)
-plot/hg=small(color=red,dash,thick=1),large(color=blue,line,thick=3)/vg=large(line,color=red),small(dash,color=blue)/i=1:100 sin(i/5)
-
-! Log axes: VLOG and HLOG with large and small tics
-
-set mode meta graticules.plt
-can mode logo
-
-set view left
-def axis/z zlog=exp(k[k=1:10])
-let fcn = k[gz=zlog]
-plot/vlog/vlimits=1:100000/grat="large(color=black),small(color=lightblue)" fcn
-
-set view right
-def axis/z/depth dlog=exp(k[k=1:20])
-let fcn = k[gz=dlog]
-plot/vlog/vlimits=1:100000/hg="large(color=red),small(color=lightblue)" fcn
-
-can mode meta
-set mode logo
-
-can view
-
-! HLOG and VLOG
-
-def axis/x ddlog = exp(-1*(10-i[i=1:10]))
-let fcn = (i[gx=ddlog])^2
-plot/thick/hlog/vlog/grat="large(color=red),small=(color=lightblue)" fcn
-
-! Time axes
-let a = sin(t[gt=tax]/5)
-let b = sin(t[gt=tax]/100)
-
-def axis/t=1-jan-1990:1-jan-1998:1/units=months tax
-
-plot/t=1-jan-1990:31-dec-1992/trans/hg="large(dash,color=blue),small(line,color=lightblue)"/vg="(line,color=blue)" a
-
-def axis/t=1-jan-1990:1-mar-1990:1/units=days tax
-plot/hg="(line,color=blue)"/vg="large(line,color=blue),small(line,color=lightblue)" a
-plot/trans/vg="(line,color=blue)"/hg="large(line,color=blue),small(line,color=lightblue)" a
-
-def axis/t=1-jan-1950:1-jan-1990:1/units=years tax
-plot/hg="(line,color=blue)"/vg="large(line,color=blue),small(line,color=lightblue)" a
-plot/trans/vg="(line,color=blue)"/hg="large(line,color=blue),small(line,color=lightblue)" a
-
-def axis/t=1-jan-1800:1-jan-1990:1/units=years tax
-plot/thick/trans/grat="(line,color=blue)" a
-
-def axis/t="1-jan-1990:01":"2-jan-1990:12:00":1/units=minutes tax
-plot/thick/grat="large(line,color=blue),small(line,color=lightblue)" b
-plot/trans/thick/vg="(line,color=blue)"/hg="large(line,color=blue),small(line,color=lightblue)" b
-
-! Tests for MODE GRATICULE added in Ferret v5.7
-show mode graticule
- MODE STATE ARGUMENT
- GRATICULE CANCELLED
-set mode graticule
-show mode graticule
- MODE STATE ARGUMENT
- GRATICULE SET
-
-PLOT/i=1:100 sin(i/5)
-can mode graticule
-
-PLOT/i=1:100 cos(i/5)
-
-set mode graticule:color=red
-PLOT/i=1:100 cos(i/5)
-set mode graticule:(thick,color=red)
-PLOT/i=1:100 cos(i/5)
-
-set mode graticule:(dash,color=blue)
-PLOT/i=1:100 cos(i/5)
-can mode graticule
-
-pplus/reset ! restore tics etc
-
-
-GO bn_reset
-cancel mode verify
-GO bn_repeat_range.jnl
-! REPEAT/RANGE=[/NAME=] for looping without depending
-! on the grid\
-! ACM March 12, 2004
-
-! simplest syntax
-
-repeat/range=5:1:-1 say what
-!-> REPEAT: REPCOUNT:5
-what
-!-> REPEAT: REPCOUNT:4
-what
-!-> REPEAT: REPCOUNT:3
-what
-!-> REPEAT: REPCOUNT:2
-what
-!-> REPEAT: REPCOUNT:1
-what
-repeat/range=1:5:3/name=s (list/nohead s)
-!-> REPEAT: S:1
- 1.00000
-!-> REPEAT: S:4
- 4.00000
-sh var s ! counter variable goes away after a repeat
-
-! Nested loops, and calling a function
-repeat/range=1:5:3/name=s (repeat/range=1:3/name=tt list sin(tt))
-!-> REPEAT: S:1
-!-> REPEAT: TT:1
- VARIABLE : SIN(TT)
- 0.841471
-!-> REPEAT: TT:2
- VARIABLE : SIN(TT)
- 0.909297
-!-> REPEAT: TT:3
- VARIABLE : SIN(TT)
- 0.141120
-!-> REPEAT: S:4
-!-> REPEAT: TT:1
- VARIABLE : SIN(TT)
- 0.841471
-!-> REPEAT: TT:2
- VARIABLE : SIN(TT)
- 0.909297
-!-> REPEAT: TT:3
- VARIABLE : SIN(TT)
- 0.141120
-
-! Nested, use counter variables in computation
-can mode ver
-I / *: 80.0000 6.00000 480.000
-I / *: 80.0000 8.00000 640.000
-I / *: 80.0000 10.0000 800.000
-I / *: 60.0000 6.00000 360.000
-I / *: 60.0000 8.00000 480.000
-I / *: 60.0000 10.0000 600.000
-I / *: 40.0000 6.00000 240.000
-I / *: 40.0000 8.00000 320.000
-I / *: 40.0000 10.0000 400.000
-I / *: 20.0000 6.00000 120.000
-I / *: 20.0000 8.00000 160.000
-I / *: 20.0000 10.0000 200.000
-
-! Nested with a standard repeat loop over Z
-repeat/range=100:200:50/name=m (repeat/z=8:10 list m*z)
-!-> REPEAT: M:100
-!-> REPEAT: Z=8
- VARIABLE : M*Z
- Z : 8
- 800.000
-!-> REPEAT: Z=9
- VARIABLE : M*Z
- Z : 9
- 900.000
-!-> REPEAT: Z=10
- VARIABLE : M*Z
- Z : 10
- 1000.00
-!-> REPEAT: M:150
-!-> REPEAT: Z=8
- VARIABLE : M*Z
- Z : 8
- 1200.00
-!-> REPEAT: Z=9
- VARIABLE : M*Z
- Z : 9
- 1350.00
-!-> REPEAT: Z=10
- VARIABLE : M*Z
- Z : 10
- 1500.00
-!-> REPEAT: M:200
-!-> REPEAT: Z=8
- VARIABLE : M*Z
- Z : 8
- 1600.00
-!-> REPEAT: Z=9
- VARIABLE : M*Z
- Z : 9
- 1800.00
-!-> REPEAT: Z=10
- VARIABLE : M*Z
- Z : 10
- 2000.00
-repeat/z=1:3 (repeat/range=1000:2000:1000/name=m list m*z)
-!-> REPEAT: Z=1
-!-> REPEAT: M:1000
- VARIABLE : M*Z
- Z : 1
- 1000.00
-!-> REPEAT: M:2000
- VARIABLE : M*Z
- Z : 1
- 2000.00
-!-> REPEAT: Z=2
-!-> REPEAT: M:1000
- VARIABLE : M*Z
- Z : 2
- 2000.00
-!-> REPEAT: M:2000
- VARIABLE : M*Z
- Z : 2
- 4000.00
-!-> REPEAT: Z=3
-!-> REPEAT: M:1000
- VARIABLE : M*Z
- Z : 3
- 3000.00
-!-> REPEAT: M:2000
- VARIABLE : M*Z
- Z : 3
- 6000.00
-
-! With regions defined
-set reg/x=-9:9
-repeat/range=1:4/name=m (repeat/range=44:45/name=p list p)
-!-> REPEAT: M:1
-!-> REPEAT: P:44
- VARIABLE : constant
- 44.0000
-!-> REPEAT: P:45
- VARIABLE : constant
- 45.0000
-!-> REPEAT: M:2
-!-> REPEAT: P:44
- VARIABLE : constant
- 44.0000
-!-> REPEAT: P:45
- VARIABLE : constant
- 45.0000
-!-> REPEAT: M:3
-!-> REPEAT: P:44
- VARIABLE : constant
- 44.0000
-!-> REPEAT: P:45
- VARIABLE : constant
- 45.0000
-!-> REPEAT: M:4
-!-> REPEAT: P:44
- VARIABLE : constant
- 44.0000
-!-> REPEAT: P:45
- VARIABLE : constant
- 45.0000
-
-set reg/x=-180:-160/y=1:15/z=-10000:-1000/t="1-jan-1990"
-repeat/range=1:5 (let a = 6; list a)
-!-> REPEAT: REPCOUNT:1
- VARIABLE : 6
- 6.00000
-!-> REPEAT: REPCOUNT:2
- VARIABLE : 6
- 6.00000
-!-> REPEAT: REPCOUNT:3
- VARIABLE : 6
- 6.00000
-!-> REPEAT: REPCOUNT:4
- VARIABLE : 6
- 6.00000
-!-> REPEAT: REPCOUNT:5
- VARIABLE : 6
- 6.00000
-repeat/range=1:5/name=p (let a = 6; list p)
-!-> REPEAT: P:1
- VARIABLE : constant
- 1.00000
-!-> REPEAT: P:2
- VARIABLE : constant
- 2.00000
-!-> REPEAT: P:3
- VARIABLE : constant
- 3.00000
-!-> REPEAT: P:4
- VARIABLE : constant
- 4.00000
-!-> REPEAT: P:5
- VARIABLE : constant
- 5.00000
-
-! Region applies to data, not to loop index.
-use coads_climatology
-let xx = x[gx=sst]
-set reg/x=-180:-160/y=1:15/z=-10000:-1000/t="1-jan-1990"
-repeat/range=1:5/name=p (list p*xx)
-!-> REPEAT: P:1
- VARIABLE : P*XX
- FILENAME : coads_climatology.cdf
- SUBSET : 10 points (LONGITUDE)
- 179W / -99: -179.000
- 177W / -98: -177.000
- 175W / -97: -175.000
- 173W / -96: -173.000
- 171W / -95: -171.000
- 169W / -94: -169.000
- 167W / -93: -167.000
- 165W / -92: -165.000
- 163W / -91: -163.000
- 161W / -90: -161.000
-!-> REPEAT: P:2
- VARIABLE : P*XX
- FILENAME : coads_climatology.cdf
- SUBSET : 10 points (LONGITUDE)
- 179W / -99: -358.000
- 177W / -98: -354.000
- 175W / -97: -350.000
- 173W / -96: -346.000
- 171W / -95: -342.000
- 169W / -94: -338.000
- 167W / -93: -334.000
- 165W / -92: -330.000
- 163W / -91: -326.000
- 161W / -90: -322.000
-!-> REPEAT: P:3
- VARIABLE : P*XX
- FILENAME : coads_climatology.cdf
- SUBSET : 10 points (LONGITUDE)
- 179W / -99: -537.000
- 177W / -98: -531.000
- 175W / -97: -525.000
- 173W / -96: -519.000
- 171W / -95: -513.000
- 169W / -94: -507.000
- 167W / -93: -501.000
- 165W / -92: -495.000
- 163W / -91: -489.000
- 161W / -90: -483.000
-!-> REPEAT: P:4
- VARIABLE : P*XX
- FILENAME : coads_climatology.cdf
- SUBSET : 10 points (LONGITUDE)
- 179W / -99: -716.000
- 177W / -98: -708.000
- 175W / -97: -700.000
- 173W / -96: -692.000
- 171W / -95: -684.000
- 169W / -94: -676.000
- 167W / -93: -668.000
- 165W / -92: -660.000
- 163W / -91: -652.000
- 161W / -90: -644.000
-!-> REPEAT: P:5
- VARIABLE : P*XX
- FILENAME : coads_climatology.cdf
- SUBSET : 10 points (LONGITUDE)
- 179W / -99: -895.000
- 177W / -98: -885.000
- 175W / -97: -875.000
- 173W / -96: -865.000
- 171W / -95: -855.000
- 169W / -94: -845.000
- 167W / -93: -835.000
- 165W / -92: -825.000
- 163W / -91: -815.000
- 161W / -90: -805.000
-
-can region
-
-! factorial
-can mode ver
-I / *: 1.00000 "factorial" 1.00000
-I / *: 2.00000 "factorial" 2.00000
-I / *: 3.00000 "factorial" 6.00000
-I / *: 4.00000 "factorial" 24.0000
-I / *: 5.00000 "factorial" 120.000
-I / *: 6.00000 "factorial" 720.000
-
-! with some data
-use coads_climatology
-repeat/range=80:120:40/name=p (list/L=1/y=1 sst[x=1:360:`p`])
-!-> REPEAT: P:80
- !-> list/L=1/y=1 sst[x=1:360:80]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- regrid: 80 deg on X
- FILENAME : coads_climatology.cdf
- SUBSET : 5 points (LONGITUDE)
- LATITUDE : 1N
- TIME : JAN
- 1N
- 46
- 1E / 1: 27.8258
- 81E / 2: 28.1147
- 161E / 3: 28.7893
- 119W / 4: 24.5394
- 39W / 5: 27.4849
-!-> REPEAT: P:120
- !-> list/L=1/y=1 sst[x=1:360:120]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- regrid: 120 deg on X
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (LONGITUDE)
- LATITUDE : 1N
- TIME : JAN
- 1N
- 46
- 1E / 1: 27.8258
- 121E / 2: 28.5914
- 119W / 3: 24.5394
-
-set reg/x=300:360/y=0:50
-repeat/range=1:12:4/name=m (list sst[l=`m`,x=@ave,y=@ave])
-!-> REPEAT: M:1
- !-> list sst[l=1,x=@ave,y=@ave]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 60W to 0E(360) (XY ave)
- LATITUDE : 0 to 50N (XY ave)
- TIME : JAN
- 20.9844
-!-> REPEAT: M:5
- !-> list sst[l=5,x=@ave,y=@ave]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 60W to 0E(360) (XY ave)
- LATITUDE : 0 to 50N (XY ave)
- TIME : JAN
- 20.9844
-!-> REPEAT: M:9
- !-> list sst[l=9,x=@ave,y=@ave]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 60W to 0E(360) (XY ave)
- LATITUDE : 0 to 50N (XY ave)
- TIME : JAN-0002
- 20.9844
-
-! Look for "reading SST" lines; each has a different X range
-can data/all
-can mem
-can region
-use coads_climatology
-
-set mode diag
-set reg/y=0:50/L=1
-repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
-!-> REPEAT: M:300
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M:153 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M:148 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- !-> list sst[x=280:300 at ave,y=@ave]
- -DELETE cnst M:153 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: 46 70 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST[Y=0:50N at AV4,D=1]
- reading SST M:153 dset: 1 I: 131 140 J: 46 70 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- doing --> SST[Y=0:50N at AV4,D=1]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 80W to 60W (XY ave)
- LATITUDE : 0 to 50N (XY ave)
- TIME : JAN
- 20.7890
-!-> REPEAT: M:330
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M:143 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M:141 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- !-> list sst[x=280:330 at ave,y=@ave]
- -DELETE cnst M:143 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: 46 70 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST[Y=0:50N at AV4,D=1]
- reading SST M:143 dset: 1 I: 131 155 J: 46 70 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- doing --> SST[Y=0:50N at AV4,D=1]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 80W to 30W (XY ave)
- LATITUDE : 0 to 50N (XY ave)
- TIME : JAN
- 21.2500
-!-> REPEAT: M:360
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M:130 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- !-> list sst[x=280:360 at ave,y=@ave]
- -DELETE cnst M:130 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: 46 70 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- strip --> SST[Y=0:50N at AV4,D=1]
- reading SST M:130 dset: 1 I: 131 170 J: 46 70 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- doing --> SST[Y=0:50N at AV4,D=1]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 80W to 0E(360) (XY ave)
- LATITUDE : 0 to 50N (XY ave)
- TIME : JAN
- 20.9385
-cancel mode diag
-
-! order of qualifiers doesnt matter
-repeat/name=a/range=1:3 say `a`
-!-> REPEAT: A:1
- !-> MESSAGE/CONTINUE 1
-1
-!-> REPEAT: A:2
- !-> MESSAGE/CONTINUE 2
-2
-!-> REPEAT: A:3
- !-> MESSAGE/CONTINUE 3
-3
-
-! Test using a file variable name
-use coads_climatology
-repeat/name=sst/range=1:5 (list sst)
-!-> REPEAT: SST:1
- VARIABLE : constant
- 1.00000
-!-> REPEAT: SST:2
- VARIABLE : constant
- 2.00000
-!-> REPEAT: SST:3
- VARIABLE : constant
- 3.00000
-!-> REPEAT: SST:4
- VARIABLE : constant
- 4.00000
-!-> REPEAT: SST:5
- VARIABLE : constant
- 5.00000
-list/l=1/x=181/y=1 sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 179W
- LATITUDE : 1N
- TIME : JAN
- 28.2839
-can data/all
-
-! Intentional errors
-set mode ignore
-
-! /NAME without /RANGE
-rep/name=a say `a`
-
-! Cannot use pseudo-variables.
-
-set mode ignore
-rep/range=1:3/name=L (use coads_climatology; list/nohead [sst=I=1,j=1])
-
-! Check that the state is reset after error
-rep/range=1:3/name=a say `a`
-!-> REPEAT: A:1
- !-> MESSAGE/CONTINUE 1
-1
-!-> REPEAT: A:2
- !-> MESSAGE/CONTINUE 2
-2
-!-> REPEAT: A:3
- !-> MESSAGE/CONTINUE 3
-3
-
-rep/range=1:3/name=I (use coads_climatology; list/nohead [sst])
-rep/range=1:3/name=j (use coads_climatology; list/nohead [sst])
-rep/range=1:3/name=k (use coads_climatology; list/nohead [sst])
-rep/range=1:3/name=X (use coads_climatology; list/nohead [sst])
-rep/range=1:3/name=y (use coads_climatology; list/nohead [sst])
-rep/range=1:3/name=z (use coads_climatology; list/nohead [sst])
-rep/range=1:3/name=tbox (use coads_climatology; list/nohead[sst,x=181,y=0,t=`tbox`])
-rep/range=1:3/name=xboxlo (list/nohead xboxlo)
-
-
-! Nested REPEAT with the same counter variable name
-repeat/range=1:4/name=a (repeat/range=3:1:-1/name=a list a)
-!-> REPEAT: A:1
-!-> REPEAT: A:2
-!-> REPEAT: A:3
-!-> REPEAT: A:4
-cancel mode ignore
-
-GO bn_reset
-cancel mode verify
-GO bn554_bug_fixes.jnl
-! bn554_bug_fixes.jnl
-! test various fixes that went into version 5.54
-! 11/03 *acm*
-!
-
-! Test use of longer strings in region names
-GO bn_reset
-cancel mode verify
-GO err553_regionname_lengths.jnl
-! In v5.50, we upped the region name storage to
-! allow 24-characters. Wasnt fully implemented.
-! acm 11/03
-
-SET MODE IGNORE_ERRORS
-
-def region/x=100e:150e/y=0:40 southeast_asia
-show region southeast_asia
-region southeast_asia
- X=100:150
- Y=0:40
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-set region southeast_asia
-show region
-default region:
- X=100:150
- Y=0:40
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-
-def region/x=150:210/y=-60:0 southwest_pacific
-show region/all
-default region:
- X=100:150
- Y=0:40
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-region southeast_asia
- X=100:150
- Y=0:40
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-region southwest_pacific
- X=150:210
- Y=-60:0
- Z/K is unspecified
- T/L is unspecified
- E/M is unspecified
- F/N is unspecified
-
-SET MODE/LAST IGNORE_ERRORS
-
-
-! Reqests for data at times outside range of data
-GO bn_reset
-cancel mode verify
-GO err553_timeregion.jnl
-! try to apply a region whose limits are both below,
-! or both above, the data bounds. In v5.53 the error
-! handling for this got broken for time axes (an error
-! in the fix for err551_no_taxis_errmsg)
-! acm 11/03
-
-SET MODE IGNORE_ERRORS
-
- use gt4d011.cdf
-list/t=1-aug-1980:1-jan-1982/i=92/j=35 temp
-
-
-SET MODE/LAST IGNORE_ERRORS
-
-! Contour plot on fine grid has precision problems
-GO bn_reset
-cancel mode verify
-GO err553_contour_fine_grid.jnl
-! err553_contour_find_grid.jnl
-! 11/21/03 ACM
-
-! For fine grids, precision isnt sufficient to
-! compute the values to map coordinates to the
-! page. The bug occurs with smith_sandwell_topo
-! and has to do with large index values in the
-! calculations. This small set ss_small.nc is saved
-! from smith_sandwell_topo. Then we need to put it on
-! a large grid to see the error. The first contour
-! command either shows nothing, or a set of contours
-! that are shifted relative to the (correct) second
-! contour plot.
-
-! The fix is to increase precision for some of the
-! calculations in plotz.F, pltit.F and setax.F
-
-use ss_small.nc
-def axis/x=0.16e:0.67w/npoints=10800 xax
-def axis/y=72s:72n/npoints=6336 yax
-def grid/x=xax/y=yax fullgrid
-let rrose = rose[g=fullgrid]
-set grid fullgrid
-set reg/x=137.25w:135.75w/y=58.2n:59.15n
-go mp_mercator
-go mp_aspect
-contour rrose,x_page, y_page
-contour/over/color=red rrose, x_page, y_page
-
-PPLUS/RESET ! reset aspect ratio
-
-! PLOT/SYM/SIZE= did not change the size
-GO bn_reset
-cancel mode verify
-GO err553_symsize.jnl
-! PLOT/SYM/SIZE= does not change the size from the default.
-! acm 11/03
-!
-plot/i=1:10/sym=20/siz=.4 i
-plot/over/i=1:10/sym=20/siz=0.2 i
-
-! test labels on shade keys; consistent number of digits set by 5th shakey arg
-GO bn_reset
-cancel mode verify
-GO err553_shakey_labels.jnl
-! The 5th argument to shakey is supposed to define
-! number of digits in the label.
-! acm 12/03
-
-shade/set/i=1:10/j=1:10 (i+j)/10
-ppl shakey 1, , , , -2
-ppl shade
-shade/set/i=1:10/j=1:10 (i+j)/10
-ppl shakey 1, , , , -1
-ppl shade
-
-
-! couldnt set the number of small tics with arg to %xaxis, %yaxis commands
-GO bn_reset
-cancel mode verify
-GO err553_xaxis_nsmtc.jnl
-! Bug: 5th argument failed to set the number of small
-! tics for the axis.
-
-! ACM 12/12/03
-
-ppl %xaxis/nouser 1,100,10,1,4
-ppl %xaxis/nouser 1,100,10,2,6
-ppl %yaxis/nouser 1,100,10,1,4
-ppl %yaxis/nouser 1,100,10,2,6
-
-
-! The defined year length was different if we used DEFINE AXIS/UNIT=year
-! vs DEFINE AXIS/UNIT=yr
-GO bn_reset
-cancel mode verify
-GO err553_year_yr.jnl
-! err553_year_yr.jnl
-! 2/2004 ACM
-! DEFINE AXIS/UNITS=year and UNITS=yr should be the same;
-! and year length should match the length of a year in
-! the specified calendar
-
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=noleap/unit=year tax1
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=noleap/unit=year tax1
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=noleap/unit=yr tax2
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=noleap/unit=yr tax2
-show axis tax1
- name axis # pts start end
- TAX1 TIME 1188 r 16-JAN-0001 04:59 16-DEC-0099 18:59
-T0 = 01-JAN-0000
-CALENDAR = NOLEAP
- Axis span (to cell edges) = 99
-show axis tax2
- name axis # pts start end
- TAX2 TIME 1188 r 16-JAN-0001 04:59 16-DEC-0099 18:59
-T0 = 01-JAN-0000
-CALENDAR = NOLEAP
- Axis span (to cell edges) = 99
-list/l=1186:1189 t[gt=tax1]
- VARIABLE : T
- axis TAX1
- SUBSET : 3 points (TIME)
- CALENDAR : NOLEAP
- 16-OCT-0099 / 1186: 99.7917
- 16-NOV-0099 / 1187: 99.8750
- 16-DEC-0099 / 1188: 99.9583
-list/l=1186:1189 t[gt=tax2]
- VARIABLE : T
- axis TAX2
- SUBSET : 3 points (TIME)
- CALENDAR : NOLEAP
- 16-OCT-0099 / 1186: 99.7917
- 16-NOV-0099 / 1187: 99.8750
- 16-DEC-0099 / 1188: 99.9583
-
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=julian/unit=year tax1
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=julian/unit=year tax1
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=julian/unit=yr tax2
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=julian/unit=yr tax2
-show axis tax1
- name axis # pts start end
- TAX1 TIME 1188 r 16-JAN-0001 05:14 17-DEC-0099 12:44
-T0 = 01-JAN-0000
-CALENDAR = JULIAN
- Axis span (to cell edges) = 99
-show axis tax2
- name axis # pts start end
- TAX2 TIME 1188 r 16-JAN-0001 05:14 17-DEC-0099 12:44
-T0 = 01-JAN-0000
-CALENDAR = JULIAN
- Axis span (to cell edges) = 99
-list/l=1186:1189 t[gt=tax1]
- VARIABLE : T
- axis TAX1
- SUBSET : 3 points (TIME)
- CALENDAR : JULIAN
- 17-OCT-0099 / 1186: 99.7937
- 17-NOV-0099 / 1187: 99.8771
- 17-DEC-0099 / 1188: 99.9604
-list/l=1186:1189 t[gt=tax2]
- VARIABLE : T
- axis TAX2
- SUBSET : 3 points (TIME)
- CALENDAR : JULIAN
- 17-OCT-0099 / 1186: 99.7937
- 17-NOV-0099 / 1187: 99.8771
- 17-DEC-0099 / 1188: 99.9604
-
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=standard/unit=year tax1
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=standard/unit=year tax1
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=standard/unit=yr tax2
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=standard/unit=yr tax2
-show axis tax1
- name axis # pts start end
- TAX1 TIME 1188 r 16-JAN-0001 05:14 16-DEC-0099 18:56
-T0 = 01-JAN-0000
- Axis span (to cell edges) = 99
-show axis tax2
- name axis # pts start end
- TAX2 TIME 1188 r 16-JAN-0001 05:14 16-DEC-0099 18:56
-T0 = 01-JAN-0000
- Axis span (to cell edges) = 99
-list/l=1186:1189 t[gt=tax1]
- VARIABLE : T
- axis TAX1
- SUBSET : 3 points (TIME)
- 16-OCT-0099 / 1186: 99.7937
- 16-NOV-0099 / 1187: 99.8771
- 16-DEC-0099 / 1188: 99.9604
-list/l=1186:1189 t[gt=tax2]
- VARIABLE : T
- axis TAX2
- SUBSET : 3 points (TIME)
- 16-OCT-0099 / 1186: 99.7937
- 16-NOV-0099 / 1187: 99.8771
- 16-DEC-0099 / 1188: 99.9604
-
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/unit=year tax1
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/unit=year tax1
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/unit=yr tax2
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/unit=yr tax2
-show axis tax1
- name axis # pts start end
- TAX1 TIME 1188 r 16-JAN-0001 05:14 16-DEC-0099 18:56
-T0 = 01-JAN-0000
- Axis span (to cell edges) = 99
-show axis tax2
- name axis # pts start end
- TAX2 TIME 1188 r 16-JAN-0001 05:14 16-DEC-0099 18:56
-T0 = 01-JAN-0000
- Axis span (to cell edges) = 99
-list/l=1186:1189 t[gt=tax1]
- VARIABLE : T
- axis TAX1
- SUBSET : 3 points (TIME)
- 16-OCT-0099 / 1186: 99.7937
- 16-NOV-0099 / 1187: 99.8771
- 16-DEC-0099 / 1188: 99.9604
-list/l=1186:1189 t[gt=tax2]
- VARIABLE : T
- axis TAX2
- SUBSET : 3 points (TIME)
- 16-OCT-0099 / 1186: 99.7937
- 16-NOV-0099 / 1187: 99.8771
- 16-DEC-0099 / 1188: 99.9604
-
-! v553 and before also had a bug in where D360 not properly defined in
-! calendar_blkdat.F so length of year not correct.
-
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=d360/unit=year tax1
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=d360/unit=year tax1
-def ax/t=1-jan-0001:1-jan-0100:`1/12,p=9`/edge/cal=d360/unit=yr tax2
- !-> def ax/t=1-jan-0001:1-jan-0100:0.0833333333/edge/cal=d360/unit=yr tax2
-show axis tax1
- name axis # pts start end
- TAX1 TIME 1188 r 15-JAN-0001 23:59 15-DEC-0099 23:59
-T0 = 01-JAN-0000
-CALENDAR = 360_DAY
- Axis span (to cell edges) = 99
-show axis tax2
- name axis # pts start end
- TAX2 TIME 1188 r 15-JAN-0001 23:59 15-DEC-0099 23:59
-T0 = 01-JAN-0000
-CALENDAR = 360_DAY
- Axis span (to cell edges) = 99
-set mode ignore
-list/l=1186:1189 t[gt=tax1]
- VARIABLE : T
- axis TAX1
- SUBSET : 3 points (TIME)
- CALENDAR : 360_DAY
- 15-OCT-0099 23 / 1186: 99.7917
- 15-NOV-0099 23 / 1187: 99.8750
- 15-DEC-0099 23 / 1188: 99.9583
-list/l=1186:1189 t[gt=tax2]
- VARIABLE : T
- axis TAX2
- SUBSET : 3 points (TIME)
- CALENDAR : 360_DAY
- 15-OCT-0099 23 / 1186: 99.7917
- 15-NOV-0099 23 / 1187: 99.8750
- 15-DEC-0099 23 / 1188: 99.9583
-list/l=1168:1171 t[gt=tax1]
- VARIABLE : T
- axis TAX1
- SUBSET : 4 points (TIME)
- CALENDAR : 360_DAY
- 15-APR-0098 23 / 1168: 98.2917
- 15-MAY-0098 23 / 1169: 98.3750
- 15-JUN-0098 23 / 1170: 98.4583
- 15-JUL-0098 23 / 1171: 98.5417
-list/l=1168:1171 t[gt=tax2]
- VARIABLE : T
- axis TAX2
- SUBSET : 4 points (TIME)
- CALENDAR : 360_DAY
- 15-APR-0098 23 / 1168: 98.2917
- 15-MAY-0098 23 / 1169: 98.3750
- 15-JUN-0098 23 / 1170: 98.4583
- 15-JUL-0098 23 / 1171: 98.5417
-can mode ignore
-
-! When we do a DEFINE GRID/LIKE=var and then try to read the var with
-! strides, Ferret did a regridding instead. Test the fix for this
-GO bn_reset
-cancel mode verify
-GO err553_stride_def_grid.jnl
-
-use gtsa056_2.cdf
-set mode diag
-let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
-load a
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- strip regrid on X: TAUX --> (G023) @XACT
- rdstride TAUX C: 9 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
- nulrgd TAUX M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- -DELETE TAUX M:146 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
-can mem/all
- -DELETE A M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- -DELETE TAUX M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-
-def grid/like=taux agrid
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS2DU1 PSXU PSYU NORMAL TIME6 NORMAL NORMAL
-set mode diag
-let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
- dealloc dynamic grid PS2DU1 PSXU PSYU NORMAL TIME6 NORMAL NORMAL
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
-load a
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- strip regrid on X: TAUX --> (G023) @XACT
- rdstride TAUX C: 9 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
- nulrgd TAUX M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- -DELETE TAUX M:151 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
-
-can mem/all
- -DELETE TAUX M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- -DELETE A M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-can data/all
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
-
-! Some tests taken from bn_strides_revs_perms.jnl but with
-! DEFINE GRID/LIKE= testing permuting and reversing axes
-
-! first with an XYZT variable
-set region/i=3:6/j=2:4/k=1:2/l=1
-use bn_strides
-define grid/like=var agrid
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC1 XAX1_4 YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid GPC1 XAX1_4 YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
-define grid/like=midvar bgrid
- getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC2 XAX1_9 YAX1_8 ZAX1_7 TAX1_6 NORMAL NORMAL
-define grid/like=bigvar cgrid
- dealloc dynamic grid GPC2 XAX1_9 YAX1_8 ZAX1_7 TAX1_6 NORMAL NORMAL
- getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC3 XAX1_40 YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
-define grid/like=unevenvar dgrid
- dealloc dynamic grid GPC3 XAX1_40 YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- getgrid EX#1 C: 8 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC4 XUNEVEN YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
-define grid/like=xytvar egrid
- dealloc dynamic grid GPC4 XUNEVEN YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- getgrid EX#1 C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC5 XLON YLAT NORMAL TTIME NORMAL NORMAL
-canc data/all
- dealloc dynamic grid GPC5 XLON YLAT NORMAL TTIME NORMAL NORMAL
-
-
-! cache hit from full region cache -- bypass use of strides
-cancel memory/all
-use bn_strides
-load var
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 3 4 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- reading VAR M:151 dset: 1 I: 3 4 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-LIST VAR[i=2:4:2]
- dealloc dynamic grid AGRID XAX1_4 YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G014) @XACT
- rdstride VAR C: 7 dset: 1 I: 2 4 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M:147 dset: 1 I: 1 2 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:146 dset: 1 I: 2 4 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J*10 + I
- regrid: 2 delta on X
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 2 4
- 1 2
- ---- K:1 Z: 1
- 2 / 2: 1122.00 1124.00
- 3 / 3: 1132.00 1134.00
- ---- K:2 Z: 2
- 2 / 2: 1222.00 1224.00
- 3 / 3: 1232.00 1234.00
-LIST VAR[i=2:4:2,j=1:3:2]
- dealloc dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M:147 dset: 1 I: 1 2 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G014) @XACT
- rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M:146 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:147 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J*10 + I
- regrid: 2 delta on X, 2 delta on Y
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 2 4
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1112.00 1114.00
- 3 / 2: 1132.00 1134.00
- ---- K:2 Z: 2
- 1 / 1: 1212.00 1214.00
- 3 / 2: 1232.00 1234.00
-CANC MEM/ALL
- -DELETE VAR M:146 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:151 dset: 1 I: 3 4 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-
-! modulo requests cannot use strides (as this example shows)
-set axis/modulo XAX1_4
-LIST VAR[I=1:10:3,j=1,k=1,l=1] ! 1, 4, 7(3), 10(2)
- dealloc dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G014) @XACT
- strip moduloing VAR on X axis: 1 10 dset: 1
- reading VAR M:151 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- doing moduloing VAR on X axis: 1 4 dset: 1
- regrid VAR M:147 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J*10 + I
- regrid: 3 delta on X
- FILENAME : bn_strides.cdf
- SUBSET : 4 points (X)
- Y : 1
- Z : 1
- T : 1
- 1
- 1
- 1 / 1: 1111.00
- 4 / 2: 1114.00
- 7 / 3: 1113.00
- 10 / 4: 1112.00
-cancel axis/modulo XAX1_4
- -DELETE VAR M:146 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:147 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:151 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-
-! strides applied to more than one axis need special attention in IS_REGRID
-LIST VAR[i=2:4:2,j=1:3:2]
- dealloc dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G014) @XACT
- rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:151 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J*10 + I
- regrid: 2 delta on X, 2 delta on Y
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 2 4
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1112.00 1114.00
- 3 / 2: 1132.00 1134.00
- ---- K:2 Z: 2
- 1 / 1: 1212.00 1214.00
- 3 / 2: 1232.00 1234.00
-LIST VAR[i=2:6:2,j=1:5:2]
- dealloc dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G014) @XACT
- rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:147 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J*10 + I
- regrid: 2 delta on X, 2 delta on Y
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 2 4
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 1112.00 1114.00
- 3 / 2: 1132.00 1134.00
- ---- K:2 Z: 2
- 1 / 1: 1212.00 1214.00
- 3 / 2: 1232.00 1234.00
-
-! test sub-region selection on strides axis
-let a = bigvar[i=1:40:5]
- dealloc dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-list/j=1/k=1/l=1 a[i=3:5]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 3 6 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 7 dset: 1 I: 3 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G014) @XACT
- rdstride BIGVAR C: 10 dset: 1 I: 1 36 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M:147 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M:151 dset: 1 I: 1 36 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- VARIABLE : BIGVAR[I=1:40:5]
- FILENAME : bn_strides.cdf
- SUBSET : 3 points (X)
- Y : 1
- Z : 1
- T : 1
- 1
- 1
- 11 / 3: 1121.00
- 16 / 4: 1126.00
- 21 / 5: 1131.00
- -DELETE A M:146 dset: 1 I: 1 1 J: 3 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 3 6 J: 2 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
- strip regrid on Y: A --> (G001) @XACT
- eval A C: 8 dset: 1 I: 3 5 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G014) @XACT
- rdstride BIGVAR C: 11 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 74 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M:146 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- regrid A M:136 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
- VARIABLE : BIGVAR[I=1:40:5]
- regrid: 2 delta on Y
- FILENAME : bn_strides.cdf
- SUBSET : 3 by 4 points (X-Y)
- Z : 1
- T : 1
- 11 16 21
- 3 4 5
- 1 / 1: 1121.00 1126.00 1131.00
- 3 / 2: 1141.00 1146.00 1151.00
- 5 / 3: 1161.00 1166.00 1171.00
- 7 / 4: 1181.00 1186.00 1191.00
-
-! ****** unequally spaced points on parent axis
-
-cancel mem/all
- -DELETE BIGVAR M: 74 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M:136 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M:146 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M:147 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M:151 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-
-! basic strides
-LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: 3 6 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G001) @XACT
- rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M:147 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M:151 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
- regrid: on X
- FILENAME : bn_strides.cdf
- SUBSET : 2 points (X)
- Y : 0
- Z : 1
- T : 1
- 0.3 0.6
- 1 2
- 1112.00 1114.00
-
-! * * * * * MIXED STRIDES and PERMUTATIONS * * * * *
-
-set region/i=3:6/j=2:4/k=1:2/l=1
-
-use/order=yx bn_strides
-list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M:147 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G001) @XACT
- rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M:151 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M:147 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 5 7 9
- 1 2 3 4
- ---- K:1 Z: 1
- 2 / 1: 1123.00 1125.00 1127.00 1129.00
- 4 / 2: 1143.00 1145.00 1147.00 1149.00
- 6 / 3: 1163.00 1165.00 1167.00 1169.00
- ---- K:2 Z: 3
- 2 / 1: 1323.00 1325.00 1327.00 1329.00
- 4 / 2: 1343.00 1345.00 1347.00 1349.00
- 6 / 3: 1363.00 1365.00 1367.00 1369.00
-canc data/all
- -DELETE BIGVAR M:151 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
-
-use/order=zyx bn_strides
-list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G014) @XACT
- rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M:147 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M:151 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X-Y-Z)
- T : 1
- 3 5 7 9
- 1 2 3 4
- ---- K:1 Z: 1
- 2 / 1: 1321.00 1521.00 1721.00 1921.00
- 4 / 2: 1341.00 1541.00 1741.00 1941.00
- 6 / 3: 1361.00 1561.00 1761.00 1961.00
- ---- K:2 Z: 3
- 2 / 1: 1323.00 1523.00 1723.00 1923.00
- 4 / 2: 1343.00 1543.00 1743.00 1943.00
- 6 / 3: 1363.00 1563.00 1763.00 1963.00
-canc data/all
- -DELETE BIGVAR M:147 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
-
-! now with xytvar
-cancel region
-set region/i=1:4/j=1:3/l=1:2
-use bn_strides
-
-list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
- dealloc dynamic grid (G014) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
- allocate dynamic grid (G014) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G014) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M:151 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M:147 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 deg on X, 2 deg on Y, 2 day on T
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (LONGITUDE-LATITUDE-TIME)
- 141E 143E 145E 147E
- 1 2 3 4
- ---- L:1 T: JAN-1995
- 6N / 3: 3061.00 3063.00 3065.00 3067.00
- 4N / 2: 3041.00 3043.00 3045.00 3047.00
- 2N / 1: 3021.00 3023.00 3025.00 3027.00
- ---- L:2 T: JAN-1995
- 6N / 3: 5061.00 5063.00 5065.00 5067.00
- 4N / 2: 5041.00 5043.00 5045.00 5047.00
- 2N / 1: 5021.00 5023.00 5025.00 5027.00
-
-use/order=tyx bn_strides
-show grid xytvar
- dealloc dynamic grid (G014) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
- -DELETE XYTVAR M:151 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- GRID EGRID
- name axis # pts start end
- XLON LONGITUDE 40mr 141E 180E
- YLAT LATITUDE 30 r 1N 30N
- normal Z
- TTIME TIME 20 r 01-JAN-1995 00:00 20-JAN-1995 00:00
- normal E
- normal F
-
-list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc dynamic grid EGRID XLON YLAT NORMAL TTIME NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
- dealloc dynamic grid (G014) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
- allocate dynamic grid (G014) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G014) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M:147 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M:151 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 deg on X, 2 deg on Y, 2 day on T
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (LONGITUDE-LATITUDE-TIME)
- 141E 143E 145E 147E
- 1 2 3 4
- ---- L:1 T: JAN-1995
- 6N / 3: 3061.00 3063.00 3065.00 3067.00
- 4N / 2: 3041.00 3043.00 3045.00 3047.00
- 2N / 1: 3021.00 3023.00 3025.00 3027.00
- ---- L:2 T: JAN-1995
- 6N / 3: 5061.00 5063.00 5065.00 5067.00
- 4N / 2: 5041.00 5043.00 5045.00 5047.00
- 2N / 1: 5021.00 5023.00 5025.00 5027.00
-canc data/all
- -DELETE XYTVAR M:147 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
-
-! map into Z instead of T
-use/order=zxy bn_strides
-show grid xytvar
- getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GPC5 TTIME XLON YLAT NORMAL NORMAL NORMAL
- GRID GPC5
- name axis # pts start end
- TTIME X (DAYS) 20 r 34319 34338
- XLON Y (degrees_east) 40mr 141 180
- YLAT Z (degrees_north) 30 r 1 30
- normal T
- normal E
- normal F
-
-list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc dynamic grid GPC5 TTIME XLON YLAT NORMAL NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G014) @XACT
- rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M:151 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M:147 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
- VARIABLE : L*1000 + J*10 + I
- regrid: 2 day on X, 2 deg on Y, 2 deg on Z
- FILENAME : bn_strides.cdf
- SUBSET : 4 by 3 by 2 points (X (DAYS)-Y (degrees_east)-Z (degrees_north))
- 34319 34321 34323 34325
- 1 2 3 4
- ---- K:1 Z: 3
- 142 / 1: 1032.00 3032.00 5032.00 7032.00
- 144 / 2: 1034.00 3034.00 5034.00 7034.00
- 146 / 3: 1036.00 3036.00 5036.00 7036.00
- ---- K:2 Z: 5
- 142 / 1: 1052.00 3052.00 5052.00 7052.00
- 144 / 2: 1054.00 3054.00 5054.00 7054.00
- 146 / 3: 1056.00 3056.00 5056.00 7056.00
-canc data/all
- -DELETE XYTVAR M:151 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
-
-
-cancel region; set region/l=1
-
-! reference output
-use/order=yx bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G014) @XACT
- rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M:151 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 1 5
- 1 2
- ---- K:1 Z: 3
- 2 / 1: 1312.00 1352.00
- 5 / 2: 1315.00 1355.00
- ---- K:2 Z: 5
- 2 / 1: 1512.00 1552.00
- 5 / 2: 1515.00 1555.00
-canc data/all
- -DELETE MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
-
-use/order=-yx bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G014) @XACT
- strip reversing MIDVAR on Y axis: 2 5 dset: 1
- rdstride MIDVAR C: 8 dset: 1 I: 1 5 J: 5 8 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- doing reversing MIDVAR on Y axis: 2 5 dset: 1
- -DELETE MIDVAR M:147 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M:151 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 1 5
- 1 2
- ---- K:1 Z: 3
- 2 / 1: 1318.00 1358.00
- 5 / 2: 1315.00 1355.00
- ---- K:2 Z: 5
- 2 / 1: 1518.00 1558.00
- 5 / 2: 1515.00 1555.00
-canc data/all
- -DELETE MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
-
-! reference output
-use/order=tyx bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G014) @XACT
- rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M:147 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 1 5
- 1 2
- ---- K:1 Z: 3
- 2 / 1: 1123.00 5123.00
- 5 / 2: 1153.00 5153.00
- ---- K:2 Z: 5
- 2 / 1: 1125.00 5125.00
- 5 / 2: 1155.00 5155.00
-canc data/all
- -DELETE MIDVAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
-
-! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
-use/order=-t-y-x bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G014) @XACT
- strip reversing MIDVAR on X axis: 1 5 dset: 1
- rdstride MIDVAR C: 8 dset: 1 I: 2 6 J: 4 7 K: 3 5 L: 7 7 M: -999 -999 N: -999 -999
- doing reversing MIDVAR on X axis: 1 5 dset: 1
- -DELETE MIDVAR M:151 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M:147 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 1 5
- 1 2
- ---- K:1 Z: 3
- 2 / 1: 6773.00 2773.00
- 5 / 2: 6743.00 2743.00
- ---- K:2 Z: 5
- 2 / 1: 6775.00 2775.00
- 5 / 2: 6745.00 2745.00
-canc data/all
- -DELETE MIDVAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
-
-! reference output
-use/order=txy bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G014) @XACT
- rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M:151 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 1 5
- 1 2
- ---- K:1 Z: 3
- 2 / 1: 1132.00 5132.00
- 5 / 2: 1135.00 5135.00
- ---- K:2 Z: 5
- 2 / 1: 1152.00 5152.00
- 5 / 2: 1155.00 5155.00
-canc data/all
- -DELETE MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
-
-use/order=-t-x-y bn_strides
-list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G014) @XACT
- strip reversing MIDVAR on Y axis: 2 5 dset: 1
- rdstride MIDVAR C: 8 dset: 1 I: 2 6 J: 5 8 K: 3 5 L: 7 7 M: -999 -999 N: -999 -999
- doing reversing MIDVAR on Y axis: 2 5 dset: 1
- -DELETE MIDVAR M:147 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M:151 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- VARIABLE : VAR
- regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
- FILENAME : bn_strides.cdf
- SUBSET : 2 by 2 by 2 points (X-Y-Z)
- T : 1
- 1 5
- 1 2
- ---- K:1 Z: 3
- 2 / 1: 6738.00 2738.00
- 5 / 2: 6735.00 2735.00
- ---- K:2 Z: 5
- 2 / 1: 6758.00 2758.00
- 5 / 2: 6755.00 2755.00
-canc data/all
- -DELETE MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
-
-! DEFINE AXIS can get the axis too long (bug 673)
-GO bn_reset
-cancel mode verify
-GO err553_axis_too_long.jnl
-! From Ned Cokelet
-! First definition of axis had last grid cell completely
-! beyond requested end.
-
-DEF AXIS/X=211:215:3 x_ax
-LIST X[GX=x_ax], XBOXLO[GX=x_ax], XBOXHI[GX=x_ax]
- X: 209.5 to 215.5
- Column 1: X is X (axis X_AX)
- Column 2: XBOXLO is XBOXLO (axis X_AX)
- Column 3: XBOXHI is XBOXHI (axis X_AX)
- X XBOXLO XBOXHI
-211 / 1: 211.000 209.500 212.500
-214 / 2: 214.000 212.500 215.500
-
-DEF AXIS/X=211:215:2.6 x_ax
-LIST X[GX=x_ax], XBOXLO[GX=x_ax], XBOXHI[GX=x_ax]
- X: 209.7 to 217.5
- Column 1: X is X (axis X_AX)
- Column 2: XBOXLO is XBOXLO (axis X_AX)
- Column 3: XBOXHI is XBOXHI (axis X_AX)
- X XBOXLO XBOXHI
-211 / 1: 211.000 209.700 212.300
-213.6 / 2: 213.600 212.300 214.900
-216.2 / 3: 216.200 214.900 217.500
-
-! Under linux, some shade and fill plots with /LEVELS=c had a
-! non-centered shade key
-GO bn_reset
-cancel mode verify
-GO err553_lev_c.jnl
- ! under linux only, this has a non-centered shade key
-
-shade/lev=c {-1.1,1.1}*ysequence({1,1})
-ppl list shakey
-
- DO KEY ORIENT LAB SIZE LAB INC LAB DIG LAB LEN
- 1 1 0.00 0 3 9
-
-
- DEFAULT KEY POSITIONING
- X LO X HI Y LO Y HI
- 9.40 9.69 1.40 7.40
-
-fill/lev=c {-1.1,1.1}*ysequence({1,1})
-ppl list shakey
-
- DO KEY ORIENT LAB SIZE LAB INC LAB DIG LAB LEN
- 1 1 0.00 0 3 9
-
-
- DEFAULT KEY POSITIONING
- X LO X HI Y LO Y HI
- 9.40 9.69 1.40 7.40
-
-
-! At lon = 0, we used to have an E; remove this.
-GO bn_reset
-cancel mode verify
-GO err553_lon_ax_0_label.jnl
-! Label longitude axes with the degree sign only
-! at x=0 (previously had an E).
-
-! ACM 1/6/04
-
-use coads_climatology
-shade/x=-20:20/y=-40:40/L=1 sst
-
-
-! Errors listing string and numeric data together
-GO bn_reset
-cancel mode verify
-GO err553_list_string_numeric.jnl
-! err553_list_string_numeric.jnl
-! 2/2004 ACM
-! LISTing string and numeric variables together.
-
-def axis/t=1:3:1 tax
-let a = reshape ({1,2,3}, t[gt=tax])
-let b = reshape ({"a", "b", "c"}, t[gt=tax])
-list a, b
- T: 0.5 to 3.5
- Column 1: A is RESHAPE ({1,2,3}, T[GT=TAX])
- Column 2: B is RESHAPE ({"a", "b", "c"}, T[GT=TAX])
- A B
-1 / 1: 1.00000 "a"
-2 / 2: 2.00000 "b"
-3 / 3: 3.00000 "c"
-
-! Now in 2D
-let c = {"cat", "rat", "spat", "that", "pat"}
-list/i=2:4/l=1:3 b, c
- T: 0.5 to 3.5
- X: 1.5 to 4.5
- Column 1: B is RESHAPE ({"a", "b", "c"}, T[GT=TAX])
- Column 2: C is {"cat", "rat", "spat", "that", "pat"}
- B C
- ---- I:2 X: 2
-1 / 1: "a" "rat"
-2 / 2: "b" "rat"
-3 / 3: "c" "rat"
- ---- I:3 X: 3
-1 / 1: "a" "spat"
-2 / 2: "b" "spat"
-3 / 3: "c" "spat"
- ---- I:4 X: 4
-1 / 1: "a" "that"
-2 / 2: "b" "that"
-3 / 3: "c" "that"
-
-let v = y[y=1:5]
-list v
- VARIABLE : Y[Y=1:5]
- SUBSET : 5 points (Y)
- 1 / 1: 1.00000
- 2 / 2: 2.00000
- 3 / 3: 3.00000
- 4 / 4: 4.00000
- 5 / 5: 5.00000
-list/i=3:4/l=1:2 b, c, v
- T: 0.5 to 2.5
- X: 2.5 to 4.5
- Y: 0.5 to 5.5
- Column 1: B is RESHAPE ({"a", "b", "c"}, T[GT=TAX])
- Column 2: C is {"cat", "rat", "spat", "that", "pat"}
- Column 3: V is Y[Y=1:5]
- B C V
- ---- J:1 Y: 1
- ---- I:3 X: 3
-1 / 1: "a" "spat" 1.00000
-2 / 2: "b" "spat" 1.00000
- ---- I:4 X: 4
-1 / 1: "a" "that" 1.00000
-2 / 2: "b" "that" 1.00000
- ---- J:2 Y: 2
- ---- I:3 X: 3
-1 / 1: "a" "spat" 2.00000
-2 / 2: "b" "spat" 2.00000
- ---- I:4 X: 4
-1 / 1: "a" "that" 2.00000
-2 / 2: "b" "that" 2.00000
- ---- J:3 Y: 3
- ---- I:3 X: 3
-1 / 1: "a" "spat" 3.00000
-2 / 2: "b" "spat" 3.00000
- ---- I:4 X: 4
-1 / 1: "a" "that" 3.00000
-2 / 2: "b" "that" 3.00000
- ---- J:4 Y: 4
- ---- I:3 X: 3
-1 / 1: "a" "spat" 4.00000
-2 / 2: "b" "spat" 4.00000
- ---- I:4 X: 4
-1 / 1: "a" "that" 4.00000
-2 / 2: "b" "that" 4.00000
- ---- J:5 Y: 5
- ---- I:3 X: 3
-1 / 1: "a" "spat" 5.00000
-2 / 2: "b" "spat" 5.00000
- ---- I:4 X: 4
-1 / 1: "a" "that" 5.00000
-2 / 2: "b" "that" 5.00000
-
-
-! Bug in setting axis to depth when reading from nc file
-GO bn_reset
-cancel mode verify
-GO err553_set_axis_depth.jnl
- ! NOAA/PMEL TMAP
- ! FERRET v5.53
- ! Solaris 5.6 - 12/16/03
- ! 16-Dec-03 10:58
-
-use xz_nozattrib.nc
-set axis/depth zax
-say "axis should be reversed"
-axis should be reversed
-show axis zax
- name axis # pts start end
- ZAX DEPTH (m) 26 r- 0 1000
- Axis span (to cell edges) = 1040
-q
-
-! Set symbols showing levels settings when poly command is called
-GO bn_reset
-cancel mode verify
-GO err553_symbol_lev.jnl
-! err553_symbol_lev.jnl
-! 2/2004 ACM
-! In 5.51 and in 5.53 version, symbols LEV* are not created
-! for polygon plots
-
-LET XTRIANGLE = YSEQUENCE({-1,0,1})
-LET YTRIANGLE = YSEQUENCE({-1,1,-1})
-LET XPTS = 180+30*RANDU(I[i=1:10])
-LET YPTS = 30*RANDU(1+I[i=1:10])
-POLYGON XTRIANGLE+XPTS, YTRIANGLE+YPTS, I[I=1:10]
-
-!*************************************
-! List symbols LEV_MIN, LEV_MAX, LEV_DEL
-
-show symb lev*
-LEV_TEXT = "C"
-LEV_MIN = "1"
-LEV_MAX = "10.2"
-LEV_NUM = "46"
-LEV_DEL = "0.2"
-
-can sym lev*
-! Now with /LEV=(min,max,del)
-
-let xsqr = YSEQUENCE({0,.1,.1,0})
-let ysqr = YSEQUENCE({0,0,.1,.1})
-let ypts = x/10
-let xpts = cos(x/10)
-polygon/trans/i=1:100/nolable/lev=(0,1100,40) xpts+xsqr, ypts+ysqr, x*x/10
-sh sym lev*
-LEV_TEXT = "(0,1100,40)"
-LEV_MIN = "0"
-LEV_MAX = "1120"
-LEV_NUM = "28"
-LEV_DEL = "40"
-
-can sym lev*
-! Now with /LEV=nl
-
-LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
-LET ypts = 15 + 20*SIN(2*3.14*I[I=1:50]/60)
-LET sst = 25 - ypts + RANDN(ypts)
-plot/vs xpts,ypts
-GO polymark POLYGON/KEY/lev=20 xpts,ypts,sst,star
-
-sh sym lev*
-LEV_TEXT = "20"
-LEV_MIN = "-12"
-LEV_MAX = "32"
-LEV_NUM = "22"
-LEV_DEL = "2"
-can sym lev*
-
-! Fixes for modulo striding bugs
-GO bn_reset
-cancel mode verify
-GO err553_stride_modulo.jnl
-! err553_stride_modulo_neg.jnl
-! *acm* 3/31/2004
-! Modulo axis with strides that have negative indices
-! did not work prior to v5.6 of Ferret.
-
-! mylon.nc created as follows:
-! use etopo20
-! let var = sin(x[gx=var])
-! save/file=mylon.nc var
-
-use mylon
-list var[i=-400:-40:20]
- VARIABLE : SIN(X[GX=ROSE])
- regrid: 6.7 deg on X
- FILENAME : mylon.nc
- SUBSET : 19 points (LONGITUDE)
- 113.5W / 1: 0.976269
- 106.8W / 2: 0.824340
- 100.2W / 3: 0.552644
- 93.5W / 4: 0.200690
- 86.8W / 5: -0.180415
- 80.2W / 6: -0.535314
- 73.5W / 7: -0.812473
- 66.8W / 8: -0.971589
- 60.2W / 9: -0.989574
- 53.5W / 10: -0.863802
- 46.8W / 11: -0.612560
- 40.2W / 12: -0.272341
- 33.5W / 13: 0.107469
- 26.8W / 14: 0.471639
- 20.2W / 15: 0.767299
- 13.5W / 16: 0.951514
- 6.8W / 17: 0.997495
- 0.2W / 18: 0.898583
- 6.5E / 19: 0.669123
-list var[i=-400:-40:50]
- VARIABLE : SIN(X[GX=ROSE])
- regrid: 17 deg on X
- FILENAME : mylon.nc
- SUBSET : 8 points (LONGITUDE)
- 113.5W / 1: 0.976269
- 96.8W / 2: -0.383713
- 80.2W / 3: -0.535314
- 63.5W / 4: 0.998887
- 46.8W / 5: -0.612560
- 30.2W / 6: -0.294944
- 13.5W / 7: 0.951514
- 3.2E / 8: -0.798487
-
-! This list, using modulo-ing to go out to a second replication
-! of the data, would have worked under previous versions but
-! with the last point missing, bug 841
-
-list var[i=`2*1081-400`:`2*1082-40`:50]
- !-> list var[i=1762:2124:50]
- VARIABLE : SIN(X[GX=ROSE])
- regrid: 17 deg on X
- FILENAME : mylon.nc
- SUBSET : 8 points (LONGITUDE)
- 112.8W / 1: 0.976269
- 96.2W / 2: -0.383713
- 79.5W / 3: -0.535314
- 62.8W / 4: 0.998887
- 46.2W / 5: -0.612560
- 29.5W / 6: -0.294944
- 12.8W / 7: 0.951514
- 3.8E / 8: -0.798487
-
-! Previously also, the moduloing could return results
-! that are one index off, also bug 841
-
-list/nohead/y=0/prec=6 var[i=1100:1400:50]
- 26.5E / 1: 0.859313
- 43.2E / 2: -0.912341
- 59.8E / 3: 0.189118
- 76.5E / 4: 0.695015
- 93.2E / 5: -0.987803
- 109.8E / 6: 0.440136
- 126.5E / 7: 0.482013
-can mem; list/nohead/y=0/prec=6 var[i=19:319:50,y=0]
- 26.2E / 1: 0.859313
- 42.8E / 2: -0.912341
- 59.5E / 3: 0.189118
- 76.2E / 4: 0.695015
- 92.8E / 5: -0.987803
- 109.5E / 6: 0.440136
- 126.2E / 7: 0.482013
-can mem; list/y=0 var[i=69]
- VARIABLE : SIN(X[GX=ROSE])
- FILENAME : mylon.nc
- LONGITUDE: 42.83E(42.83)
- -0.912341
-can mem; list/y=0 var[i=68]
- VARIABLE : SIN(X[GX=ROSE])
- FILENAME : mylon.nc
- LONGITUDE: 42.5E(42.5)
- -0.996087
-
-! Fixes bug creating format for listing a very long line
-GO bn_reset
-cancel mode verify
-GO err553_list_width.jnl
-! err553_list_width.jnl
-! *acm* 4/1/2004
-! Fix for bug 837; creating a format for very wide ascii listing
-! (this caused an outright crash)
-
-! Note had /wid=9999, but this crashes Ferret under irix,
-! listing to std output and also to an ascii file.
-! Fortran limit for sequential files? 1024 works, 2047 did not.
-! The bug, seen under solaris and linux for pre-v5.6, appears
-! with /WIDTH=9999 but not with /WIDTH=1024.
-
-set mode ignore
-def axis/x=1:5000:1 xax
-def axis/y=1:2:1 yax
-list/wid=1024/y=1:2 sin(x[gx=xax]) + y[gy=yax]
- VARIABLE : SIN(X[GX=XAX]) + Y[GY=YAX]
- SUBSET : 5000 by 2 points (X-Y)
- ... listing every 45th point
- 1 46 91 136 181 226 271 316 361 406 451 496 541 586 631 676 721 766 811 856 901 946 991 1036 1081 1126 1171 1216 1261 1306 1351 1396 1441 1486 1531 1576 1621 1666 1711 1756 1801 1846 1891 1936 1981 2026 2071 2116 2161 2206 2251 2296 2341 238 [...]
- 1 46 91 136 181 226 271 316 361 406 451 496 541 586 631 676 721 766 811 856 901 946 991 1036 1081 1126 1171 1216 1261 1306 1351 1396 1441 1486 1531 1576 1621 1666 1711 1756 1801 1846 1891 1936 1981 2026 2071 2116 2161 2206 2251 2296 2341 2386 [...]
- 1 / 1: 1.84147 1.90179 1.10599 0.20957 0.06355 0.80656 1.73321 1.96379 1.27939 0.32975 0.01642 0.63686 1.60205 1.99568 1.44406 0.47087 0.00001 0.47850 1.45208 1.99647 1.59486 0.62851 0.01484 0.33643 1.28799 1.96614 1.72708 0.79776 0.06044 0.21509 1.11490 1.90563 1.83659 0.97333 0.13539 0.11827 0.93823 1.81683 1.91997 1.14973 0.23734 0.04899 0.76349 1.70252 1.97461 1.32145 0.36312 0.00942 0.59613 1.56626 1.99881 1.48313 0.50879 0.00 [...]
- 2 / 2: 2.84147 2.90179 2.10599 1.20957 1.06355 1.80656 2.73321 2.96379 2.27939 1.32975 1.01642 1.63686 2.60205 2.99568 2.44406 1.47087 1.00001 1.47850 2.45208 2.99647 2.59486 1.62851 1.01484 1.33643 2.28799 2.96614 2.72708 1.79776 1.06044 1.21509 2.11490 2.90563 2.83659 1.97333 1.13539 1.11827 1.93823 2.81683 2.91997 2.14973 1.23734 1.04899 1.76349 2.70252 2.97461 2.32145 1.36312 1.00942 1.59613 2.56626 2.99881 2.48313 1.50879 1.00 [...]
-
-can mode ignore
-
-
-! ******** V5.7 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn_bounds.jnl
-
-! bn_bounds.jnl
-! testing CDF read and write of file with irregular axes and bounds
-! and DEFINE AXIS/BOUNDS
-! 5/2005 made changes so the bounds coordinates {1,2} are written to the
-! file. If axis is Z, write attribute potitive="up". (bug 1196)
-! 2/10 new examples of bounds which overlap each other.
-! 4/13 with climatological axes defined internally the LIST outputs
-! differ by a digit. This is just roundoff in the listing, the
-! number 730.485 shown as 730.48 vs 730.49. Just increase precision
-! for those list commands.
-
-
-! Output data on irregular record axis. No need for:
-! save/clobber/RIGID/HEADING=ENHANCED/LLIMITS=1:3/file=a.nc v
-
-!use climatological_axes
-let v = t[gt=month_irreg]
-save/clobber/file=a.nc v
-
-sp echo "bn_bounds.jnl --- 1 output of bounds on irreg axes." >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-can data/all
-can var v
-
-! Now use coads with long irregular time axis.
-
-can data/all
-use coads_vwnd
-let v = missing(vwnd,28.5)
-save/clobber/file=a.nc/x=199/y=41/l=40:44 v
-sp echo "bn_bounds.jnl --- 2 long irreg axes." >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-
-! Append later time steps: we add a void point between non-contiguous bounds
-
-save/append/file=a.nc/x=199/y=41/l=50:53 v
-sp echo "bn_bounds.jnl --- 3 Append later time steps, adding a void point" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-can data/all
-can var/all
-
-! Depth axis; bounds {1,2} positive up
-
-define axis/z/depth/units=meters zirr = {0,10,40,70}
-let t2 = z[gz=zirr]
-save/clobber/file=a.nc t2
-sp echo "bn_bounds.jnl --- 4 depth axis, bounds positive up" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-can data/all
-can var/all
-
-! SAVE on irregular time axis, multi-dimensional save.
-! Void point is one time, all X and Y
-
-!use climatological_axes
-use coads_climatology
-let v = missing(sst[gt=month_irreg], 28)
-save/clobber/x=181:185/y=1:7/L=1:5/file=a.nc v
-save/append/x=181:185/y=1:7/L=8:9/file=a.nc v
-sp echo "bn_bounds.jnl --- 5 SAVE on irregular time axis, multi-dimensional save." >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-can var v
-
-use a.nc
-list/y=3 v
- VARIABLE : MISSING(SST[GT=MONTH_IRREG], 28)
- FILENAME : a.nc
- SUBSET : 3 by 8 points (LONGITUDE-TIME)
- LATITUDE : 3N
- 179W 177W 175W
- 1 2 3
- 16-JAN 12 / 1: 27.9765 28.2538 28.2807
- 15-FEB 02 / 2: 28.3564 28.4117 27.9982
- 15-MAR 17 / 3: 27.9418 28.0035 27.7238
- 15-APR 05 / 4: 28.0000 28.0000 28.0000
- 15-MAY 17 / 5: 28.0000 28.0000 28.0000
- 30-JUN 17 / 6: .... .... ....
- 15-AUG 17 / 7: 28.0000 28.0000 28.0000
- 15-SEP 05 / 8: 28.0000 28.0000 28.0000
-list/x=177w v
- VARIABLE : MISSING(SST[GT=MONTH_IRREG], 28)
- FILENAME : a.nc
- SUBSET : 4 by 8 points (LATITUDE-TIME)
- LONGITUDE: 177W
- 1N 3N 5N 7N
- 1 2 3 4
- 16-JAN 12 / 1: 28.4146 28.2538 28.0640 28.1024
- 15-FEB 02 / 2: 28.4018 28.4117 28.1639 27.7498
- 15-MAR 17 / 3: 27.5907 28.0035 27.8730 27.8183
- 15-APR 05 / 4: 28.0000 28.0000 28.0000 28.0000
- 15-MAY 17 / 5: 28.0000 28.0000 28.0000 28.0000
- 30-JUN 17 / 6: .... .... .... ....
- 15-AUG 17 / 7: 28.0000 28.0000 28.0000 28.0000
- 15-SEP 05 / 8: 28.0000 28.0000 28.0000 28.0000
-can data/all
-can var/all
-
-! Define an axis using edges
-def axis/t/edges tax={0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
-list t[gt=tax], tboxlo[gt=tax], tboxhi[gt=tax], tbox[gt=tax]
- T: 0.5 to 9.5
- Column 1: T is T (axis TAX)
- Column 2: TBOXLO is TBOXLO (axis TAX)
- Column 3: TBOXHI is TBOXHI (axis TAX)
- Column 4: TBOX is TBOX (axis TAX)
- T TBOXLO TBOXHI TBOX
-1 / 1: 1.00000 0.50000 1.50000 1.00000
-2 / 2: 2.00000 1.50000 2.50000 1.00000
-3 / 3: 3.00000 2.50000 3.50000 1.00000
-5 / 4: 5.00000 3.50000 6.50000 3.00000
-7 / 5: 7.00000 6.50000 7.50000 1.00000
-8 / 6: 8.00000 7.50000 8.50000 1.00000
-9 / 7: 9.00000 8.50000 9.50000 1.00000
-
-! Define an axis using bounds. Note the coordinates need not be
-! centered in the axis cells.
-def axis/t/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5, 1.5,2.5, 2.5,3.5, 3.5,6.5, 6.5,7.5, 7.5,8.5, 8.5,9.5}
-list t[gt=tax], tboxlo[gt=tax], tboxhi[gt=tax], tbox[gt=tax]
- T: 0.5 to 9.5
- Column 1: T is T (axis TAX)
- Column 2: TBOXLO is TBOXLO (axis TAX)
- Column 3: TBOXHI is TBOXHI (axis TAX)
- Column 4: TBOX is TBOX (axis TAX)
- T TBOXLO TBOXHI TBOX
-1.2 / 1: 1.20000 0.50000 1.50000 1.00000
-2 / 2: 2.00000 1.50000 2.50000 1.00000
-3.2 / 3: 3.20000 2.50000 3.50000 1.00000
-5 / 4: 5.00000 3.50000 6.50000 3.00000
-7 / 5: 7.00000 6.50000 7.50000 1.00000
-8.4 / 6: 8.40000 7.50000 8.50000 1.00000
-9 / 7: 9.00000 8.50000 9.50000 1.00000
-
-! Define an axis using bounds, with discontinuity between bounds,
-! detected and changed to contiguous bounds, using lower bound for all cells.
-def axis/t/bounds tax={1,2,3,5,7,8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,4.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
-list t[gt=tax], tboxlo[gt=tax], tboxhi[gt=tax], tbox[gt=tax]
- T: 0.5 to 9.5
- Column 1: T is T (axis TAX)
- Column 2: TBOXLO is TBOXLO (axis TAX)
- Column 3: TBOXHI is TBOXHI (axis TAX)
- Column 4: TBOX is TBOX (axis TAX)
- T TBOXLO TBOXHI TBOX
-1 / 1: 1.00000 0.50000 1.50000 1.00000
-2 / 2: 2.00000 1.50000 2.50000 1.00000
-3 / 3: 3.00000 2.50000 3.50000 1.00000
-5 / 4: 5.00000 3.50000 6.50000 3.00000
-7 / 5: 7.00000 6.50000 7.50000 1.00000
-8 / 6: 8.00000 7.50000 8.50000 1.00000
-9 / 7: 9.00000 8.50000 9.50000 1.00000
-
-! intentional errors
-! coordinate point not inside bounds
-set mode ignore
-def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
-
-! First coordinate lower than first lower bound
-def axis/t/bounds tax={0.1,2,3.2,5,7,8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
-
-! Last coordinate higher than last upper bound
-def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
-
-! Too few or too many bounds values
-def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
-def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
-
-
-! This set of bounds has overlapping bounds. Use midpoints instead.
-def axis/t/bounds tax=\
- {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} ,\
- {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
-
-cancel axis tax
-can mode ignore
-
-! SAVE on regular time axis with bounds and edges attributes
-
-use coads_climatology
-list/x=181/y=1/form=(f6.2, 3f10.4) sst, t[gt=sst], tboxlo[gt=sst], tboxhi[gt=sst]
- DATA SET: ./coads_climatology.cdf
- TIME: JAN to APR
- LONGITUDE: 179W
- LATITUDE: 1N
- Column 1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column 2: T is T (axis TIME4)
- Column 3: TBOXLO is TBOXLO (axis TIME4)
- Column 4: TBOXHI is TBOXHI (axis TIME4)
- 28.28 366.0000 0.7575 731.2425
- 28.42 1096.4850 731.2425 1461.7275
- 28.05 1826.9700 1461.7275 2192.2125
-
-save/clobber/bounds/file=a.nc/x=181/y=1 sst
-sp echo "bn_bounds.jnl --- 6 SAVE on regular time axis with bounds attribute" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-
-save/clobber/edges/file=a.nc/x=181/y=1 sst
-sp echo "bn_bounds.jnl --- 7 SAVE on regular time axis with edges attributes" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-
-! Intentional errors; combinations of qualifiers on SAVE
-set mode ignore
-
-use coads_climatology
-save/clobber/rigid/heading=enhanced/llimits=1:3/bounds/file=a.nc/x=181/y=1 sst
-save/clobber/edges/bounds/file=a.nc/x=181/y=1 sst
-can mode ignore
-
-can data/all
-
-! outputting bounds on all irregular axes
-! test of DEPTH axis
-
-def axis/x xax = {1,2,5,6,7,8}
-def axis/z/depth/bounds zax = {0,20,50,75,120}, {0, 10, 10, 30, 30, 60, 60, 90, 90, 150}
-def axis/t tax = {1,2,9,10,11}
-let v = x[gx=xax] +z[gz=zax] + t[gt=tax]
-save/clobber/file=irrxzt.nc v
-sp echo "bn_bounds.jnl --- 8 outputting bounds on all irregular axes, depth axis" >> all_ncdump.out
-sp ncdump irrxzt.nc >> all_ncdump.out
-
-can data/all
-can var/all
-use irrxzt
-list/x=5/t=5 v, z[gz=v] , zboxlo[gz=v], zboxhi[gz=v]
- DATA SET: ./irrxzt.nc
- Z: 0 to 150
- X: 5
- T: 2
- Column 1: V is X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]
- Column 2: Z is Z (axis ZAX)
- Column 3: ZBOXLO is ZBOXLO (axis ZAX)
- Column 4: ZBOXHI is ZBOXHI (axis ZAX)
- V Z ZBOXLO ZBOXHI
-0 / 1: 7.000 0.000 0.0000 10.000
-20 / 2: 27.000 20.000 10.0000 30.000
-50 / 3: 57.000 50.000 30.0000 60.000
-75 / 4: 82.000 75.000 60.0000 90.000
-120 / 5: 127.000 120.000 90.0000 150.000
-can data/all
-
-! RIGID/HEAD=ENHANCED works the same; issues a note
-
-!use climatological_axes
-use coads_climatology
-let v = sst[gt=month_irreg]
-save/clobber/rigid/head=enh/llimits=1:3/x=181:191/y=1:7/l=1:3/file=a.nc v
-
-! Saving data with regular axes
-! First save without the bounds attribute, result is a file with
-! irregular time axis, possibly unintended large boxes.
-
-! 4/13 Increase precision for those list commands, see comment above
-
-!use climatological_axes
-use coads_climatology
-let v = missing(sst[gt=month_reg], 28)
-
-save/clobber/file=a.nc/x=181/y=1/L=1:4 v
-save/append/file=a.nc/x=181/y=1/L=8:10 v
-can data/all
-can var v
-use a.nc
-list/prec=7 v, t[gt=v], tbox[gt=v]
- DATA SET: ./a.nc
- TIME: JAN to OCT
- LONGITUDE: 179W
- LATITUDE: 1N
- Column 1: V is MISSING(SST[GT=MONTH_REG], 28)
- Column 2: T is T (axis MONTH_REG1)
- Column 3: TBOX is TBOX (axis MONTH_REG1)
- V T TBOX
-16-JAN / 1: 28.28389 366.000 730.485
-15-FEB / 2: 28.41851 1096.485 730.485
-17-MAR / 3: 28.04680 1826.970 730.485
-16-APR / 4: 28.00000 2557.455 1826.213
-16-AUG / 5: 28.00000 5479.395 1826.213
-15-SEP / 6: 28.00000 6209.880 730.485
-16-OCT / 7: 28.00000 6940.365 730.485
-can data a
-
-! Now save with /bounds
-
-!use climatological_axes
-use coads_climatology
-let v = missing(sst[gt=month_reg], 28)
-save/clobber/BOUNDS/file=a.nc/x=181/y=1/L=1:4 v
-save/append/file=a.nc/x=181/y=1/L=8:10 v
-can data/all
-can var v
-use a.nc
-
-list/prec=7 v, t[gt=v], tbox[gt=v]
- DATA SET: ./a.nc
- TIME: JAN to OCT
- LONGITUDE: 179W
- LATITUDE: 1N
- Column 1: V is MISSING(SST[GT=MONTH_REG], 28)
- Column 2: T is T (axis MONTH_REG1)
- Column 3: TBOX is TBOX (axis MONTH_REG1)
- V T TBOX
-16-JAN / 1: 28.28389 366.000 730.485
-15-FEB / 2: 28.41851 1096.485 730.485
-17-MAR / 3: 28.04680 1826.970 730.485
-16-APR / 4: 28.00000 2557.455 730.485
-16-JUN / 5: .... 4018.425 2191.455
-16-AUG / 6: 28.00000 5479.395 730.485
-15-SEP / 7: 28.00000 6209.880 730.485
-16-OCT / 8: 28.00000 6940.365 730.485
-can data/all
-
-! gappy_bounds.nc has discontiguous bounds
-! We use the LOWER bound of all axis cells.
-
-use gappy_bounds.nc
-list/prec=7 a, t[gt=a], tboxlo[gt=a], tboxhi[gt=a]
- DATA SET: ./gappy_bounds.nc
- TIME: JAN-1990 to JAN-1990
- Column 1: A is SST[X=150:180 at AVE,Y=-10:0 at AVE]
- Column 2: T is T (axis TGAP)
- Column 3: TBOXLO is TBOXLO (axis TGAP)
- Column 4: TBOXHI is TBOXHI (axis TGAP)
- A T TBOXLO TBOXHI
-02-JAN-1990 00 / 1: 29.69704 1.000000 0.500000 1.500000
-03-JAN-1990 00 / 2: 29.37104 2.000000 1.500000 2.500000
-04-JAN-1990 00 / 3: 29.11568 3.000000 2.500000 3.500000
-08-JAN-1990 00 / 4: 29.29205 7.000000 3.500000 7.500000
-09-JAN-1990 00 / 5: 28.89826 8.000000 7.500000 8.500000
-10-JAN-1990 00 / 6: 28.93826 9.000000 8.500000 9.500000
-
-cancel dat/all
-
-! bounds_noenclose has bounds that dont enclose the axis coordinate
-! points. Use axis midpoints instead.
-
-use bounds_noenclose
-sh axis/t tax
- name axis # pts start end
- TAX T 5 i 1 11
- Axis span (to cell edges) = 11
-
- L T TBOX TBOXLO
- 1> 1 1 0.5
- 2> 2 4 1.5
- 3> 9 4 5.5
- 4> 10 1 9.5
- 5> 11 1 10.5
-
-! bounds_overlapping has bounds overlap. Use axis midpoints instead.
-
-use bounds_overlapping
-sh axis/t tax
- name axis # pts start end
- TAX T 5 i 1 11
- Axis span (to cell edges) = 11
-
- L T TBOX TBOXLO
- 1> 1 1 0.5
- 2> 2 4 1.5
- 3> 9 4 5.5
- 4> 10 1 9.5
- 5> 11 1 10.5
-
-GO bn_reset
-cancel mode verify
-GO bn_all_leap.jnl
-! bn_all_leap.jnl
-! ACM 6/2004
-! Added ALL_LEAP, or 366_DAY calendar (which is in the CF conventions).
-! leap year every year
-
-define axis/t="1-jan-1988":"1-jan-1990":1/units=days/calendar=366_DAY tdays
-define grid/t=tdays tgrid
-let my_data = sin(l[g=tgrid])
-list my_data[t="27-feb-1988":"1-mar-1988"]
- VARIABLE : SIN(L[G=TGRID])
- SUBSET : 4 points (TIME)
- CALENDAR : ALL_LEAP
- 27-FEB-1988 00 / 58: 0.992873
- 28-FEB-1988 00 / 59: 0.636738
- 29-FEB-1988 00 / 60: -0.304811
- 01-MAR-1988 00 / 61: -0.966118
-list my_data[t="27-feb-1989":"1-mar-1989"]
- VARIABLE : SIN(L[G=TGRID])
- SUBSET : 4 points (TIME)
- CALENDAR : ALL_LEAP
- 27-FEB-1989 00 / 424: 0.114755
- 28-FEB-1989 00 / 425: -0.773910
- 29-FEB-1989 00 / 426: -0.951045
- 01-MAR-1989 00 / 427: -0.253794
-
-define axis/t="1-jan-1988":"1-jan-1990":1/units=days/calendar=all_leap tdays
-
-list my_data[t="27-feb-1988":"1-mar-1988"]
- VARIABLE : SIN(L[G=TGRID])
- SUBSET : 4 points (TIME)
- CALENDAR : ALL_LEAP
- 27-FEB-1988 00 / 58: 0.992873
- 28-FEB-1988 00 / 59: 0.636738
- 29-FEB-1988 00 / 60: -0.304811
- 01-MAR-1988 00 / 61: -0.966118
-list my_data[t="27-feb-1989":"1-mar-1989"]
- VARIABLE : SIN(L[G=TGRID])
- SUBSET : 4 points (TIME)
- CALENDAR : ALL_LEAP
- 27-FEB-1989 00 / 424: 0.114755
- 28-FEB-1989 00 / 425: -0.773910
- 29-FEB-1989 00 / 426: -0.951045
- 01-MAR-1989 00 / 427: -0.253794
-
-! Check the error message
-set mode ignore_error
-def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
-
-can mode ignore
-
-GO bn_reset
-cancel mode verify
-GO bn_reset_attributes.jnl
-! bn_reset_attributes.jnl
-! acm 6/14/2004
-! tests of SET AXIS/CALENDAR /T0 /UNITS also CANCEL AXIS/DEPTH
-! also RETURN=calendar
-
-use gt4d011.cdf
-set region/x=130w/y=1/k=1
-
-sh axis `temp,return=taxis`
- !-> sh axis TIME11
- name axis # pts start end
- TIME11 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
-T0 = 14-JAN-1980 14:00:00
- Axis span (to cell edges) = 3650
-list/l=20:25 t[gt=temp]
- VARIABLE : T
- axis TIME11
- FILENAME : gt4d011.cdf
- SUBSET : 6 points (TIME)
- 11-DEC-1982 02 / 20: 25476.0
- 17-DEC-1982 04 / 21: 25622.0
- 23-DEC-1982 06 / 22: 25768.0
- 29-DEC-1982 08 / 23: 25914.0
- 04-JAN-1983 10 / 24: 26060.0
- 10-JAN-1983 12 / 25: 26206.0
-
-! New RETURN=calendar
-def sym calname = `temp,return=calendar`
- !-> def sym calname = GREGORIAN
-
-! SET AXIS/CALENDAR= julian, 360-day, 365_day=julian, 366_day=all_leap, standard=gregorian
-set axis/calendar=julian `temp,return=taxis`
- !-> set axis/calendar=julian TIME11
-list/l=20:25 temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 6 points (TIME)
- CALENDAR : JULIAN
- LONGITUDE: 130.5W
- LATITUDE : 0.833N
- DEPTH (m): 5
- 130.5W
- 100
- 11-DEC-1982 02 / 20: 32.6698
- 17-DEC-1982 04 / 21: 32.7830
- 23-DEC-1982 06 / 22: 32.7033
- 29-DEC-1982 08 / 23: 32.4479
- 04-JAN-1983 10 / 24: 32.2491
- 10-JAN-1983 12 / 25: 32.1819
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE JULIAN
-JULIAN
-
-set axis/calendar=360_day `temp,return=taxis`
- !-> set axis/calendar=360_day TIME11
-list/l=20:25 temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 6 points (TIME)
- CALENDAR : 360_DAY
- LONGITUDE: 130.5W
- LATITUDE : 0.833N
- DEPTH (m): 5
- 130.5W
- 100
- 26-DEC-1982 02 / 20: 32.6698
- 02-JAN-1983 04 / 21: 32.7830
- 08-JAN-1983 06 / 22: 32.7033
- 14-JAN-1983 08 / 23: 32.4479
- 20-JAN-1983 10 / 24: 32.2491
- 26-JAN-1983 12 / 25: 32.1819
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE 360_DAY
-360_DAY
-
-set axis/calendar=365_day `temp,return=taxis`
- !-> set axis/calendar=365_day TIME11
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE NOLEAP
-NOLEAP
-
-set axis/calendar=nol `temp,return=taxis`
- !-> set axis/calendar=nol TIME11
-list/l=20:25 temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 6 points (TIME)
- CALENDAR : NOLEAP
- LONGITUDE: 130.5W
- LATITUDE : 0.833N
- DEPTH (m): 5
- 130.5W
- 100
- 12-DEC-1982 02 / 20: 32.6698
- 18-DEC-1982 04 / 21: 32.7830
- 24-DEC-1982 06 / 22: 32.7033
- 30-DEC-1982 08 / 23: 32.4479
- 05-JAN-1983 10 / 24: 32.2491
- 11-JAN-1983 12 / 25: 32.1819
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE NOLEAP
-NOLEAP
-
-set axis/calendar=366 `temp,return=taxis`
- !-> set axis/calendar=366 TIME11
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE ALL_LEAP
-ALL_LEAP
-
-set axis/calendar=all_leap `temp,return=taxis`
- !-> set axis/calendar=all_leap TIME11
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE ALL_LEAP
-ALL_LEAP
-list/l=20:25 temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 6 points (TIME)
- CALENDAR : ALL_LEAP
- LONGITUDE: 130.5W
- LATITUDE : 0.833N
- DEPTH (m): 5
- 130.5W
- 100
- 09-DEC-1982 02 / 20: 32.6698
- 15-DEC-1982 04 / 21: 32.7830
- 21-DEC-1982 06 / 22: 32.7033
- 27-DEC-1982 08 / 23: 32.4479
- 02-JAN-1983 10 / 24: 32.2491
- 08-JAN-1983 12 / 25: 32.1819
-
-! Now resetting T0
-CAN DATA/ALL
-use gt4d011.cdf
-set region/x=130w/y=1/k=1
-
-set axis/calendar="standard" `temp,return=taxis`
- !-> set axis/calendar="standard" TIME11
-list/l=20:25 temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 6 points (TIME)
- LONGITUDE: 130.5W
- LATITUDE : 0.833N
- DEPTH (m): 5
- 130.5W
- 100
- 11-DEC-1982 02 / 20: 32.6698
- 17-DEC-1982 04 / 21: 32.7830
- 23-DEC-1982 06 / 22: 32.7033
- 29-DEC-1982 08 / 23: 32.4479
- 04-JAN-1983 10 / 24: 32.2491
- 10-JAN-1983 12 / 25: 32.1819
-
-! One day earlier
-set axis/t0="13-jan-1980:14:00" `temp,return=taxis`
- !-> set axis/t0="13-jan-1980:14:00" TIME11
-say `temp,return=calendar`
- !-> MESSAGE/CONTINUE GREGORIAN
-GREGORIAN
-list/l=20:25 t[gt=temp]
- VARIABLE : T
- axis TIME11
- FILENAME : gt4d011.cdf
- SUBSET : 6 points (TIME)
- 10-DEC-1982 02 / 20: 25476.0
- 16-DEC-1982 04 / 21: 25622.0
- 22-DEC-1982 06 / 22: 25768.0
- 28-DEC-1982 08 / 23: 25914.0
- 03-JAN-1983 10 / 24: 26060.0
- 09-JAN-1983 12 / 25: 26206.0
-
-
-! Now resetting UNITS
-CAN DATA/ALL
-CAN REGION
-use gt4d011.cdf
-
-set axis/units=feet `temp,return=zaxis`
- !-> set axis/units=feet PSZT
-show axis `temp,return=zaxis`
- !-> show axis PSZT
- name axis # pts start end
- PSZT Z (FEET) 27 i- 5 3824
- Axis span (to cell edges) = 4149
-
-! unrecognized units
-set axis/units="something" `temp,return=xaxis`
- !-> set axis/units="something" PSXT1
-show axis `temp,return=xaxis`
- !-> show axis PSXT1
- name axis # pts start end
- PSXT1 X (SOMETHING) 160mr 130.5 289.5
- Axis span (to cell edges) = 160 (modulo length = 360)
-
-! restore lon
-set axis/units=lon `temp,return=xaxis`
- !-> set axis/units=lon PSXT1
-show axis `temp,return=xaxis`
- !-> show axis PSXT1
- name axis # pts start end
- PSXT1 LONGITUDE 160mr 130.5E 70.5W
- Axis span (to cell edges) = 160 (modulo length = 360)
-
-set axis/units=something `temp,return=xaxis`
- !-> set axis/units=something PSXT1
-show axis `temp,return=xaxis`
- !-> show axis PSXT1
- name axis # pts start end
- PSXT1 X (SOMETHING) 160mr 130.5 289.5
- Axis span (to cell edges) = 160 (modulo length = 360)
-
-! restore lon using word DEG
-set axis/units=deg `temp,return=xaxis`
- !-> set axis/units=deg PSXT1
-show axis `temp,return=xaxis`
- !-> show axis PSXT1
- name axis # pts start end
- PSXT1 LONGITUDE 160mr 130.5E 70.5W
- Axis span (to cell edges) = 160 (modulo length = 360)
-
-set axis/units=zorro `temp,r=zaxis`
- !-> set axis/units=zorro PSZT
-list/x=130w/y=1/k=1/L=1:5 temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (TIME)
- LONGITUDE: 130.5W
- LATITUDE : 0.833N
- Z (ZORRO): 5
- 130.5W
- 100
- 17-AUG-1982 12 / 1: 25.9777
- 23-AUG-1982 14 / 2: 26.2025
- 29-AUG-1982 16 / 3: 26.4463
- 04-SEP-1982 18 / 4: 26.6606
- 10-SEP-1982 20 / 5: 26.7818
-
-! not a geographic axis
-set axis/units=meters `temp,return=yaxis`
- !-> set axis/units=meters PSYT
-list/x=222/k=1/l=1/y=-0.5:0.5 temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 4 points (Y (METERS))
- LONGITUDE: 138.5W
- Z (ZORRO): 5
- TIME : AUG-1982
- 138.5W
- 92
- -0.5 / 44: 26.3422
- -0.17 / 45: 26.2807
- 0.17 / 46: 26.2649
- 0.5 / 47: 26.2916
-
-set axis/units=deg `temp,return=yaxis`
- !-> set axis/units=deg PSYT
-show axis `temp,return=yaxis`
- !-> show axis PSYT
- name axis # pts start end
- PSYT LATITUDE 100 i 28.836S 48.568N
- Axis span (to cell edges) = 80.00004
-list/x=222/k=1/l=1/y=-0.5:0.5 temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 4 points (LATITUDE)
- LONGITUDE: 138.5W
- Z (ZORRO): 5
- TIME : AUG-1982
- 138.5W
- 92
- 0.5N / 47: 26.2916
- 0.17N / 46: 26.2649
- 0.17S / 45: 26.2807
- 0.5S / 44: 26.3422
-
-! inappropriate units for axis direction
-set axis/units=meters `temp,return=taxis`
- !-> set axis/units=meters TIME11
-list/x=130w/y=1/k=1/l=1:5 temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 5 points (T (METERS))
- LONGITUDE: 130.5W
- LATITUDE : 0.833N
- Z (ZORRO): 5
- 130.5W
- 100
- 22702 / 1: 25.9777
- 22848 / 2: 26.2025
- 22994 / 3: 26.4463
- 23140 / 4: 26.6606
- 23286 / 5: 26.7818
-
-set axis/units=seconds `temp,r=yaxis`
- !-> set axis/units=seconds PSYT
-show grid temp
- GRID PS3DT2
- name axis # pts start end
- PSXT1 LONGITUDE 160mr 130.5E 70.5W
- PSYT Y (SECONDS) 100 i -28.836 48.568
- PSZT Z (ZORRO) 27 i- 5 3824
- TIME11 T (METERS) 25 r 22702 26206
- normal E
- normal F
-
-! assign time units to an abstract axis
-def axis/t=1:5:1 tax
-
-set axis/units=days/t0=1-jan-1990 tax
-sh axis tax
- name axis # pts start end
- TAX TIME 5 r 02-JAN-1990 00:00 06-JAN-1990 00:00
-T0 = 1-JAN-1990
- Axis span (to cell edges) = 5
-list t[gt=tax]
- VARIABLE : T
- axis TAX
- SUBSET : 5 points (TIME)
- 02-JAN-1990 00 / 1: 1.00000
- 03-JAN-1990 00 / 2: 2.00000
- 04-JAN-1990 00 / 3: 3.00000
- 05-JAN-1990 00 / 4: 4.00000
- 06-JAN-1990 00 / 5: 5.00000
-
-! assign longitude units to an abstract axis
-! by default this becomes modulo
-def axis/x=0:120:20 xax
-
-set axis/units=lon xax
-sh axis xax
- name axis # pts start end
- XAX LONGITUDE 7mr 0E 120E
- Axis span (to cell edges) = 140 (modulo length = 360)
-list x[gx=xax]
- VARIABLE : X
- axis XAX
- SUBSET : 7 points (LONGITUDE)
- 0E / 1: 0.000
- 20E / 2: 20.000
- 40E / 3: 40.000
- 60E / 4: 60.000
- 80E / 5: 80.000
- 100E / 6: 100.000
- 120E / 7: 120.000
-
-
-GO bn_reset
-cancel mode verify
-GO bn570_bug_fixes.jnl
-! bn554_bug_fixes.jnl
-! test various fixes that went into version 5.70
-! 11/03 *acm*
-!
-
-! Test use of automatic levels in SHADE
-GO bn_reset
-cancel mode verify
-GO err560_shade_levels.jnl
-! err560_shade_levels.jnl *acm* 4/28/04
-! Missing levels on SHADE auto-level
-
-! Fix for bug 801 went too far: shade levels need adjusting
-! (and were wrong always for negative levels)
-
-! Here is a simpler example (acm)
-set view upper; shade/i=1:10/j=1:10 i*j*0.0034 !levels only go up to 0.003
-set view lower; shade/i=1:10/j=1:10 -1*i*j*0.0034
-
-! Test use of reading irregular-time mc datasets
-GO bn_reset
-cancel mode verify
-GO err560_mc_irreg_t.jnl
-! err560_mc_irreg_t.jnl
-! 4/2004 ACM
-
-! Under Solaris, crashes Ferret;
-! Under linux get a NC error.
-! Its a precision bug in mc_read.F, determining what
-! stepfile to read from, when the point requested is
-! just at or between the range of the stepfiles.
-
-set data coads_clim_irreg.des
-list/x=180/y=0/t=1-apr-1900 sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- DATA SET : COAD
- FILENAME : coads_clim_irreg.des
- LONGITUDE: 179E
- LATITUDE : 1S
- TIME : FEB-1900
- 28.3646
-
-can mem/all
-can data/all
-set data coads_clim_irreg.des
-list/x=180/y=0/t=2000 sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- DATA SET : COAD
- FILENAME : coads_clim_irreg.des
- LONGITUDE: 179E
- LATITUDE : 1S
- TIME : FEB-1900
- 28.3646
-
-
-! Crashed on SHADE of variable with NOLEAP axis, and subregion.
-GO bn_reset
-cancel mode verify
-GO err560_shade_noleap.jnl
-! err560_shade_noleap.jnl
-! 4/30/04 ACM
-
-! Crashes on SHADE of variable with NOLEAP axis, and subregion.
-
-def axis/t/t0=1-jan-2000/units=months/calendar=noleap tax = {1,3,4,5,6,8,9,12}
-def axis/depth/z=0:1000:15 zax
-let a = z[gz=zax] + t[gt=tax]
-
-shade/t=4-jan-2000:10-nov-2000 a
-
-! err560_regriding_gaps.jnl
-! If the index has a negative range including the value
-! -111, was treated as missing rather than a valid index.
-GO bn_reset
-cancel mode verify
-GO err560_regridding_gaps.jnl
-! err560_regrid
-!
-! If the index has a negative range including the value
-! -111, was treated as missing rather than a valid index.
-
-def axis/modulo/x=1:360:1/units=lon xax
-def axis/modulo/x=-180:179:1/units=lon xaxshift
-
-let a = x[gx=xax]
-let b = x[gx=xaxshift]
-save/clobber/file=xlong.nc a
-save/clobber/file=xlongshift.nc b
-
-can data/all
-can var/all
-use xlongshift
-use xlong
-
-list/x=115w:108w a[gx=b[d=1]]
- VARIABLE : X[GX=XAX]
- regrid: B[D=xlongshift]
- FILENAME : xlong.nc
- SUBSET : 8 points (LONGITUDE)
- 115W / 426: 245.000
- 114W / 427: 246.000
- 113W / 428: 247.000
- 112W / 429: 248.000
- 111W / 430: 249.000
- 110W / 431: 250.000
- 109W / 432: 251.000
- 108W / 433: 252.000
-
-list/x=115w:108w a[gx=b[d=1]@ave]
- VARIABLE : X[GX=XAX]
- regrid: B[D=xlongshift] on X at AVE
- FILENAME : xlong.nc
- SUBSET : 8 points (LONGITUDE)
- 115W / 426: 245.000
- 114W / 427: 246.000
- 113W / 428: 247.000
- 112W / 429: 248.000
- 111W / 430: 249.000
- 110W / 431: 250.000
- 109W / 432: 251.000
- 108W / 433: 252.000
-
-list/x=115w:108w a[gx=b[d=1]@ave]
- VARIABLE : X[GX=XAX]
- regrid: B[D=xlongshift] on X at AVE
- FILENAME : xlong.nc
- SUBSET : 8 points (LONGITUDE)
- 115W / 426: 245.000
- 114W / 427: 246.000
- 113W / 428: 247.000
- 112W / 429: 248.000
- 111W / 430: 249.000
- 110W / 431: 250.000
- 109W / 432: 251.000
- 108W / 433: 252.000
-
-list/x=115w:108w a[gx=b[d=1]@sum]
- VARIABLE : X[GX=XAX]
- regrid: B[D=xlongshift] on X at SUM
- FILENAME : xlong.nc
- SUBSET : 8 points (LONGITUDE)
- 115W / 426: 245.000
- 114W / 427: 246.000
- 113W / 428: 247.000
- 112W / 429: 248.000
- 111W / 430: 249.000
- 110W / 431: 250.000
- 109W / 432: 251.000
- 108W / 433: 252.000
-
-list/x=115w:108w a[gx=b[d=1]@ngd]
- VARIABLE : X[GX=XAX] (# of points)
- regrid: B[D=xlongshift] on X at NGD
- FILENAME : xlong.nc
- SUBSET : 8 points (LONGITUDE)
- 115W / 426: 1.00000
- 114W / 427: 1.00000
- 113W / 428: 1.00000
- 112W / 429: 1.00000
- 111W / 430: 1.00000
- 110W / 431: 1.00000
- 109W / 432: 1.00000
- 108W / 433: 1.00000
-
-list/x=115w:108w a[gx=b[d=1]@nrst]
- VARIABLE : X[GX=XAX]
- regrid: B[D=xlongshift] on X at NRST
- FILENAME : xlong.nc
- SUBSET : 8 points (LONGITUDE)
- 115W / 426: 245.000
- 114W / 427: 246.000
- 113W / 428: 247.000
- 112W / 429: 248.000
- 111W / 430: 249.000
- 110W / 431: 250.000
- 109W / 432: 251.000
- 108W / 433: 252.000
-
-list/x=115w:108w a[gx=b[d=1]@xact]
- VARIABLE : X[GX=XAX]
- regrid: B[D=xlongshift] on X at XACT
- FILENAME : xlong.nc
- SUBSET : 8 points (LONGITUDE)
- 115W / 426: 245.000
- 114W / 427: 246.000
- 113W / 428: 247.000
- 112W / 429: 248.000
- 111W / 430: 249.000
- 110W / 431: 250.000
- 109W / 432: 251.000
- 108W / 433: 252.000
-
-sp rm xlong.nc
-sp rm xlongshift.nc
-
-! err560_leap_years.jnl
-! inconsistency in computing whether year is a leap year;
-! bug in drawing the time axis.
-GO bn_reset
-cancel mode verify
-GO err560_leap_years.jnl
-! err560_leap_years.jnl
-! Fixes for bug 882, inconsistency in computing whether
-! year is a leap year.
-
-def axis/t="07-FEB-1899:12:00":"07-FEB-1900:12:00":365.2425/units=days/t0="1-jan-1800" tax
-let v = tsequence({55,65})
-plot v[gt=tax at asn]
-
-! err560_dyn_grids.jnl
-! plot missing in upper plot; error counting dynamic grids
-! GO bn_reset
-! GO err560_dyn_grids.jnl
-
-! err560_century.jnl
-! Century portion of years were not properly tested in numdm1.F
-GO bn_reset
-cancel mode verify
-GO err560_century
-! err560_century.jnl.jnl *acm* 4/28/04
-! Century portion of years were not properly tested in numdm1.F
-
-! Crashes Ferret with STOP: ,2
-
-def axis/t="07-FEB-1899:12:00":"07-FEB-1900:12:00":365.2425/units=days/t0="1-jan-1800" tax
-let v = tsequence({55,65})
-plot/step=connected v[gt=tax at asn]
-plot/over v[gt=tax at asn]
-
-plot v[gt=tax at asn]
-
-
-! Also need to test this, years 599 - 600
-
-def axis/t=07-feb-0599:07-feb-0600:1/units=years tt
-plot t[gt=tt]
-
-! ******** V5.8 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn_modstats.jnl
-! bn_modstats.jnl
-! acm 8/25/04
-! There was never a benchmark test of modulo statistics.
-! (and a bug had crept into @MODVAR when there was missing data)
-
-use gtsa056_2.cdf
-set region/x=140/y=1/k=1
-let var = if temp gt 29.5 then temp
-
-!use climatological_axes
-!can data climatological_axes
-
-list var[gt=month_reg at mod]
- VARIABLE : IF TEMP GT 29.5 THEN TEMP
- regrid: 730 hour on T at MOD
- FILENAME : gtsa056_2.cdf
- SUBSET : 12 points (TIME)
- LONGITUDE: 139.5E
- LATITUDE : 0.833N
- DEPTH (m): 5
- 139.5E
- 10
- 16-JAN / 1: 29.5559
- 15-FEB / 2: 29.5316
- 17-MAR / 3: 29.6615
- 16-APR / 4: 29.8829
- 16-MAY / 5: 29.8907
- 16-JUN / 6: 29.9644
- 16-JUL / 7: 29.6883
- 16-AUG / 8: ....
- 15-SEP / 9: 29.6661
- 16-OCT / 10: 29.7464
- 15-NOV / 11: 29.9058
- 16-DEC / 12: 29.7728
-
-! bug had values of Inf surrounding missing data
-list var[gt=month_reg at modvar]
- VARIABLE : Variance of IF TEMP GT 29.5 THEN TEMP
- regrid: 730 hour on T at MODVAR
- FILENAME : gtsa056_2.cdf
- SUBSET : 12 points (TIME)
- LONGITUDE: 139.5E
- LATITUDE : 0.833N
- DEPTH (m): 5
- 139.5E
- 10
- 16-JAN / 1: 0.0020743
- 15-FEB / 2: 0.0005012
- 17-MAR / 3: 0.0079502
- 16-APR / 4: 0.0015034
- 16-MAY / 5: 0.0035104
- 16-JUN / 6: 0.0096970
- 16-JUL / 7: 0.0188794
- 16-AUG / 8: ....
- 15-SEP / 9: 0.0055797
- 16-OCT / 10: 0.0068064
- 15-NOV / 11: 0.0019084
- 16-DEC / 12: 0.0048345
-list var[gt=month_reg at modmin]
- VARIABLE : IF TEMP GT 29.5 THEN TEMP
- regrid: 730 hour on T at MODMIN
- FILENAME : gtsa056_2.cdf
- SUBSET : 12 points (TIME)
- LONGITUDE: 139.5E
- LATITUDE : 0.833N
- DEPTH (m): 5
- 139.5E
- 10
- 16-JAN / 1: 29.5018
- 15-FEB / 2: 29.5157
- 17-MAR / 3: 29.5182
- 16-APR / 4: 29.7809
- 16-MAY / 5: 29.7883
- 16-JUN / 6: 29.8047
- 16-JUL / 7: 29.5034
- 16-AUG / 8: ....
- 15-SEP / 9: 29.5334
- 16-OCT / 10: 29.6438
- 15-NOV / 11: 29.8575
- 16-DEC / 12: 29.6620
-list var[gt=month_reg at modmax]
- VARIABLE : IF TEMP GT 29.5 THEN TEMP
- regrid: 730 hour on T at MODMAX
- FILENAME : gtsa056_2.cdf
- SUBSET : 12 points (TIME)
- LONGITUDE: 139.5E
- LATITUDE : 0.833N
- DEPTH (m): 5
- 139.5E
- 10
- 16-JAN / 1: 29.6371
- 15-FEB / 2: 29.5474
- 17-MAR / 3: 29.8171
- 16-APR / 4: 29.9306
- 16-MAY / 5: 29.9564
- 16-JUN / 6: 30.0834
- 16-JUL / 7: 29.8189
- 16-AUG / 8: ....
- 15-SEP / 9: 29.7498
- 16-OCT / 10: 29.9003
- 15-NOV / 11: 29.9684
- 16-DEC / 12: 29.8558
-list var[gt=month_reg at modsum]
- VARIABLE : IF TEMP GT 29.5 THEN TEMP
- regrid: 730 hour on T at MODSUM
- FILENAME : gtsa056_2.cdf
- SUBSET : 12 points (TIME)
- LONGITUDE: 139.5E
- LATITUDE : 0.833N
- DEPTH (m): 5
- 139.5E
- 10
- 16-JAN / 1: 295.559
- 15-FEB / 2: 59.063
- 17-MAR / 3: 533.908
- 16-APR / 4: 597.657
- 16-MAY / 5: 597.813
- 16-JUN / 6: 359.572
- 16-JUL / 7: 207.818
- 16-AUG / 8: ....
- 15-SEP / 9: 237.329
- 16-OCT / 10: 297.464
- 15-NOV / 11: 299.058
- 16-DEC / 12: 297.728
-list var[gt=month_reg at modngd]
- VARIABLE : IF TEMP GT 29.5 THEN TEMP (# of points)
- regrid: 730 hour on T at MODNGD
- FILENAME : gtsa056_2.cdf
- SUBSET : 12 points (TIME)
- LONGITUDE: 139.5E
- LATITUDE : 0.833N
- DEPTH (m): 5
- 139.5E
- 10
- 16-JAN / 1: 10.0000
- 15-FEB / 2: 2.0000
- 17-MAR / 3: 18.0000
- 16-APR / 4: 20.0000
- 16-MAY / 5: 20.0000
- 16-JUN / 6: 12.0000
- 16-JUL / 7: 7.0000
- 16-AUG / 8: 0.0000
- 15-SEP / 9: 8.0000
- 16-OCT / 10: 10.0000
- 15-NOV / 11: 10.0000
- 16-DEC / 12: 10.0000
-
-GO bn_reset
-cancel mode verify
-GO bn_mc_vary_scale.jnl
-! bn_mc_vary_scale.jnl
-! Allow stepfiles to have different internal scale and offset.
-! read and apply when opening each stepfile. Previously, the
-! scale and offset from the first stepfile were applied.
-! `var,return=nc_offset` and `var,return=nc_scale1` contain the
-! latest scaling applied
-
-
-set data vary_scale.des
-! With two different scalings applied for the two stepfiles, there
-! is a change in slope and offset in the middle of this data
-
-list tt
- VARIABLE : 1 + 0*T[GT=DAYT]
- DATA SET : Model Output, Daily Averages
- FILENAME : vary_scale.des
- SUBSET : 20 points (TIME)
- 01-JAN-1990 00 / 1: -0.5000
- 02-JAN-1990 00 / 2: -1.5000
- 03-JAN-1990 00 / 3: -2.5000
- 04-JAN-1990 00 / 4: -3.5000
- 05-JAN-1990 00 / 5: -4.5000
- 06-JAN-1990 00 / 6: -5.5000
- 07-JAN-1990 00 / 7: -6.5000
- 08-JAN-1990 00 / 8: -7.5000
- 09-JAN-1990 00 / 9: -8.5000
- 10-JAN-1990 00 / 10: -9.5000
- 11-JAN-1990 00 / 11: 1.9800
- 12-JAN-1990 00 / 12: 3.9800
- 13-JAN-1990 00 / 13: 5.9800
- 14-JAN-1990 00 / 14: 7.9800
- 15-JAN-1990 00 / 15: 9.9800
- 16-JAN-1990 00 / 16: 11.9800
- 17-JAN-1990 00 / 17: 13.9800
- 18-JAN-1990 00 / 18: 15.9800
- 19-JAN-1990 00 / 19: 17.9800
- 20-JAN-1990 00 / 20: 19.9800
-list/quiet/nohead `tt,return=nc_scale`, `tt,return=nc_offset`
- !-> list/quiet/nohead 2, -0.02
-I / *: 2.00000 -0.0200000
-
-
-can data/all
-can mem
-set data vary_scale.des
-
-! The scale and offset from the first stepfile
-list/L=2:4 tt
- VARIABLE : 1 + 0*T[GT=DAYT]
- DATA SET : Model Output, Daily Averages
- FILENAME : vary_scale.des
- SUBSET : 3 points (TIME)
- 02-JAN-1990 00 / 2: -1.50000
- 03-JAN-1990 00 / 3: -2.50000
- 04-JAN-1990 00 / 4: -3.50000
-list/quiet/nohead `tt,return=nc_scale`, `tt,return=nc_offset`
- !-> list/quiet/nohead -1, 0.5
-I / *: -1.00000 0.500000
-
-
-can data/all
-can mem
-set data vary_scale.des
-
-! The scale and offset from the second stepfile
-list/L=12:14 tt
- VARIABLE : 1 + 0*T[GT=DAYT]
- DATA SET : Model Output, Daily Averages
- FILENAME : vary_scale.des
- SUBSET : 3 points (TIME)
- 12-JAN-1990 00 / 12: 3.98000
- 13-JAN-1990 00 / 13: 5.98000
- 14-JAN-1990 00 / 14: 7.98000
-list/quiet/nohead `tt,return=nc_scale`, `tt,return=nc_offset`
- !-> list/quiet/nohead 2, -0.02
-I / *: 2.00000 -0.0200000
-
-
-GO bn_reset
-cancel mode verify
-GO bn_plot_nokey.jnl
-! bn_plot_nokey.jnl (bug 1089)
-! 22-nov-2004
-
-! Test new PLOT/NOKEY qualifier
-! Plot several lines together, then plot/over
-
-PLOT/NOKEY/I=1:100 cos(i/20), sin(i/30), cos(i/30)*sin(i/20)
-PLOT/OVER/NOKEY/I=1:100 cos(i/10), sin(i/50), cos(i/40)*sin(i/10)
-
-! plot/vs
-PLOT/VS/LINE/NOKEY/I=1:314 i*cos(i/20), i*sin(i/20)
-PLOT/OVER/VS/LINE/NOKEY/I=1:314 i*cos(i/30), i*sin(i/30)
-
-! time series
-USE gtsa056_2
-PLOT/X=180/Y=0/K=1 temp
-PLOT/OVER/NOKEY/X=180/Y=-1/K=1 temp
-PLOT/OVER/NOKEY/X=180/Y=1/K=1 temp
-
-GO bn_reset
-cancel mode verify
-GO bn580_bug_fixes.jnl
-! bn580_bug_fixes.jnl
-! test various fixes that went into version 5.80
-! 7/04 *acm*
-!
-
-! POLYGON (or SHADE) plots with a single level had no fill color
-GO bn_reset
-cancel mode verify
-GO err570_singlecolor.jnl
-! err570_singlecolor.jnl
-! 7/6/2004
-
-! See bug 901. When a single fill color is sent to
-! the POLYGON, SHADE, or FILL, the code sends the command
-! PPL LEV (val). But, the value was formatted so that the
-! value got rounded off, so the precise value wasnt specified
-! and the graphics call then didn't find the value.
-
-! This polygon was filled
-let a = 111
-poly/fill/line {0,1,2},{1,2,1},a
-
-! This polygon was not filled
-let a = 111.55
-poly/fill/over/line {0,1,2},{2,1,2},a
-
-! This shade plot did not fill in.
-define axis/x=1:10:1 xax
-define axis/y=1:12:1 yax
-let b = x[gx=xax] + y[gy=yax]
-shade/y=0:90 a + 0*b
-
-! FILL doesnt make the graphics call to do the fil plot
-! when there is just one level ...
-
-! ... and this is bug 957; similar symptoms but a different
-! cause. SHADE and POLY need level defined when there is just
-! one level.
-
-let v = 15
-shade/lev=1/x=1:10/y=1:10 v + 0*x + 0*y
-
-
-def axis/x=1:1:1 xaxj
-def grid/x=xaxj gaxj
-let a = 111241*x[gx=gaxj at asn]
-poly/lev=2 {0,1,2},{1,2,1},a ! OR lev=1
-
-! colorbar labels too close to the bar, when user sets bar location
-GO bn_reset
-cancel mode verify
-GO err570_shakeylab.jnl
-
-! err570_shakeylab.jnl
-! 7/6/2004
-
-! When user defines the location of the color key, the key
-! labels are too close to the edge of the key.
-
-! Test with both SHADE and FILL, as some of the scaling is
-! different internally.
-
-
-use coads_climatology
-ppl dfltfnt cr
-
-define viewport/axes/text=1/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
- !-> define viewport/axes/text=1/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
-set viewport vp_1
-
-fill/set/L=2 sst
-ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
-ppl fill
-
-fill/set/L=2 sst* 10000
-ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
-ppl fill
-
-fill/set/L=2 sst/ 10000
-ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
-ppl fill
-
-!
-
-define viewport/axes/text=1/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
- !-> define viewport/axes/text=1/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
-set viewport vp_1
-
-shade/set/L=2 sst
-ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
-ppl shade
-
-shade/set/L=2 sst* 10000
-ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
-ppl shade
-
-shade/set/L=2 sst/ 10000
-ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
-ppl shade
-
-
-ppl dfltfnt sr
-
-! Null input gives wierd error message
-GO bn_reset
-cancel mode verify
-GO err570_null_symbol.jnl
-! err570_null_symbol.jnl
-! null input -- > wierd error message see bug 919
-!
-! **ERROR: invalid command: DEFINE what name?
-! DEFINE VARIABLE
-
-set mode ignore
-
-def sym a " "
-($a)
-
-can mode ignore
-
-! Replace text expression with its value: string variable was too short
-GO bn_reset
-cancel mode verify
-GO err570_parse_labelcommand.jnl
-! err570_parse_labelcommand.jnl
-! fix for bug 956.
-!
-! When a command is issued with an argument being a variable containing
-! a long string, the string is cut off when the command is parsed to
-! substitude the value of the variable.
-! (bug fix is lengthening the length of variable repl in repl_exprns.F)
-
-can view
-pplus/reset
-PLOT/i=1:10 1/i
-
-let line1 = "1234567891123456789212345678931234567894123456789512345678961234567897123456789812345678991234567890"
-let line2 = "<nl>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
-let tsulab = strcat(line1, line2)
-list tsulab
- VARIABLE : STRCAT(LINE1, LINE2)
- "1234567891123456789212345678931234567894123456789512345678961234567897123456789812345678991234567890<nl>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
-
-! Previously when the value of tsulab is replaced in the command and
-! echoed back to the terminal, the string was truncated, with bad appended
-! to the end of the shortened second line.
-
-label/nouser 3.6,`($ppl$ylen)+0.2`,0,0,0.08, `tsulab`
- !-> PPL %LABEL/nouser 3.6,6.2,0,0,0.08, 1234567891123456789212345678931234567894123456789512345678961234567897123456789812345678991234567890<nl>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-
-! result of COMPRESSK_BY function does not vary in X
-GO bn_reset
-cancel mode verify
-GO err570_compressk_by.jnl
-! err570_compress_by.jnl
-! fix for bug 925
-
-!--------------------------------------------------------------
-! create a file with 3-d data and 2-d array of sampling levels
-! define xy and xyz grids
-
-def axis/x=1:5:1 xax ; def axis/y=1:4:1 yax ; def axis/z=1:3:1 zax
-def grid/x=xax/y=yax gxy ; def grid/x=xax/y=yax/z=zax gxyz
-
-let/title="Sampling Levels" ind=int(3*randu(x[g=gxy]+y[g=gxy])+1)
-let/title="3-D Data" temp=x[g=gxyz]+10*(y[g=gxyz]+10*z[g=gxyz])
-
-list ind
- VARIABLE : Sampling Levels
- SUBSET : 5 by 4 points (X-Y)
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: 3.00000 2.00000 1.00000 1.00000 3.00000
- 2 / 2: 1.00000 3.00000 2.00000 2.00000 3.00000
- 3 / 3: 2.00000 3.00000 3.00000 2.00000 3.00000
- 4 / 4: 3.00000 2.00000 1.00000 1.00000 2.00000
-! 1 2 3 4 5
-! 1 / 1: 3.000 2.000 1.000 1.000 3.000
-! 2 / 2: 1.000 3.000 2.000 2.000 3.000
-! 3 / 3: 2.000 3.000 3.000 2.000 3.000
-! 4 / 4: 3.000 2.000 1.000 1.000 2.000
-
-list temp
- VARIABLE : 3-D Data
- SUBSET : 5 by 4 by 3 points (X-Y-Z)
- 1 2 3 4 5
- 1 2 3 4 5
- ---- K:1 Z: 1
- 1 / 1: 111.000 112.000 113.000 114.000 115.000
- 2 / 2: 121.000 122.000 123.000 124.000 125.000
- 3 / 3: 131.000 132.000 133.000 134.000 135.000
- 4 / 4: 141.000 142.000 143.000 144.000 145.000
- ---- K:2 Z: 2
- 1 / 1: 211.000 212.000 213.000 214.000 215.000
- 2 / 2: 221.000 222.000 223.000 224.000 225.000
- 3 / 3: 231.000 232.000 233.000 234.000 235.000
- 4 / 4: 241.000 242.000 243.000 244.000 245.000
- ---- K:3 Z: 3
- 1 / 1: 311.000 312.000 313.000 314.000 315.000
- 2 / 2: 321.000 322.000 323.000 324.000 325.000
- 3 / 3: 331.000 332.000 333.000 334.000 335.000
- 4 / 4: 341.000 342.000 343.000 344.000 345.000
-! 1 2 3 4 5
-! ---- K:1 Z: 1
-! 1 / 1: 111.0 112.0 113.0 114.0 115.0
-! 2 / 2: 121.0 122.0 123.0 124.0 125.0
-! 3 / 3: 131.0 132.0 133.0 134.0 135.0
-! 4 / 4: 141.0 142.0 143.0 144.0 145.0
-! ---- K:2 Z: 2
-! 1 / 1: 211.0 212.0 213.0 214.0 215.0
-! 2 / 2: 221.0 222.0 223.0 224.0 225.0
-! 3 / 3: 231.0 232.0 233.0 234.0 235.0
-! 4 / 4: 241.0 242.0 243.0 244.0 245.0
-! ---- K:3 Z: 3
-! 1 / 1: 311.0 312.0 313.0 314.0 315.0
-! 2 / 2: 321.0 322.0 323.0 324.0 325.0
-! 3 / 3: 331.0 332.0 333.0 334.0 335.0
-! 4 / 4: 341.0 342.0 343.0 344.0 345.0
-
-let mask=if(ind+0*z[g=gxyz] eq k[g=gxyz])then 1
-let tlev=compressk_by(temp,mask)
-
-!**** here is the bug behavior ... column 1 is as expected but not the others
-! list tlev[k=1]
-! 1 2 3 4 5
-! 1 / 1: 311.0 311.0 311.0 311.0 311.0
-! 2 / 2: 121.0 121.0 121.0 121.0 121.0
-! 3 / 3: 231.0 231.0 231.0 231.0 231.0
-! 4 / 4: 341.0 341.0 341.0 341.0 341.0
-
-list tlev[k=1]
- VARIABLE : COMPRESSK_BY(TEMP,MASK)
- SUBSET : 5 by 4 points (X-Y)
- Z : 1
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: 311.000 212.000 113.000 114.000 315.000
- 2 / 2: 121.000 322.000 223.000 224.000 325.000
- 3 / 3: 231.000 332.000 333.000 234.000 335.000
- 4 / 4: 341.000 242.000 143.000 144.000 245.000
-
-
-
-! Command parsing on PPL side had string lengths too short
-GO bn_reset
-cancel mode verify
-GO err570_long_label.jnl
-! err570_long_label.jnl
-! Fix for bug 956
-
-! Very long multi-line label truncated on %LABEL command
-! (string lengths hardwired to 255 deep in PPLUS command parsing)
-
-PLOT/i=1:10 1/i
-
-set mod verify
-! from Jean Newman's facts_ttl_src_lst.jnl
-
-define symbol clrmod = 2
-let source_list = "Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23+14.76*a24+14.76*b24"
-let tit_x = 3.6035
-let sl_y = 6.5
-
- define symbol lenline = `strlen(source_list)+8`
- !-> define symbol lenline = 275
- let tsuchr = 0.09
- let ntsulns = if `($VP_WIDTH)/((($lenline)/2.)*.9) lt 0.09` then 3 else 2
- !-> DEFINE VARIABLE ntsulns = if 1 then 3 else 2
- let nctsulns = `int(($lenline)/ntsulns)`
- !-> DEFINE VARIABLE nctsulns = 91
- let lstr1 = `strrindex(substring(source_list,0,nctsulns),"+")`
- !-> DEFINE VARIABLE lstr1 = 88
- let lstr2 = `strrindex(substring(source_list,lstr1+1,nctsulns),"+")`
- !-> DEFINE VARIABLE lstr2 = 90
- let str3a = substring(source_list,0,lstr1)
- let str3 = strcat(str3a,"<nl>")
- let str4a = substring(source_list,lstr1+1,lstr2)
- let str4 = strcat(str4a,"<nl>")
- let str1 = strcat(str3,str4)
- let lstr3 = `lstr1+lstr2`
- !-> DEFINE VARIABLE lstr3 = 178
- let str2 = substring(source_list,lstr3+1,($lenline)-lstr3)
- !-> DEFINE VARIABLE str2 = substring(source_list,lstr3+1,275-lstr3)
- let tsustr = strcat(str1,str2)
- let tsulab = strcat("@P($clrmod)Source: ",tsustr)
- !-> DEFINE VARIABLE tsulab = strcat("@P2Source: ",tsustr)
- list/noheader tsulab
- "@P2Source: Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+<nl>14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+<nl>14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23+14.76*a24+14.76*b24"
- label/nouser `tit_x`,`sl_y`,0,0,`tsuchr` `tsulab`
- !-> PPL %LABEL/nouser 3.6035,6.5,0,0,0.09 @P2Source: Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+<nl>14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+<nl>14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23+14.76*a24+14.76*b24
-
-set mode/last verify
-
-! Allow PPL POLYGON after a POLY/SET (previously was PPL FILLPOL)
-GO bn_reset
-cancel mode verify
-GO err570_ppl_poly.jnl
-! err570_ppl_poly.jnl
-
-! bug 959
-! When we use polygon/set; ppl shakey; ppl polygon
-! to control the vector key, the numerical labels on
-! the key disappear. (allow PPL POLYGON as well as
-! PPL FILLPOL after a POLY/SET)
-
-let xsqr = YSEQUENCE({0,.1,.1,0})
-let ysqr = YSEQUENCE({0,0,.1,.1})
-
-let ypts = x/10
-let xpts = cos(x/10)
-
-polygon/trans/i=1:100/nolable/set xpts+xsqr, ypts+ysqr, x*x/10
-ppl shakey 1, 1, .1
-ppl polygon
-
-! Fix formatting of coordinates on LIST/FORMAT=tab or /FORMAT=comma
-GO bn_reset
-cancel mode verify
-GO err570_list_tab_coords.jnl
-! err570_list_tab_coords.jnl
-! acm 9/7/04
-! LIST/FORMAT=tab or /FORMAT=comma listed
-! coordinates in a fixed format not sufficient
-! to distinguish finely spaced coordinates
-
-def axis/x=100:100.25:0.05/units=deg xax
-def axis/y=0.11:0.25:0.018/units=deg yax
-let aa = (x[gx=xax] + y[gy=yax])/100
-list/form=tab aa
- VARIABLE : (X[GX=XAX] + Y[GY=YAX])/100
- BAD FLAG : -1.E+34
- SUBSET : 6 by 9 points (LONGITUDE-LATITUDE)
- 100E 100.E 100.1E 100.2E 100.2E 100.3E
-0.11N 1.0011 1.0016 1.0021 1.0026 1.0031 1.0036
-0.128N 1.00128 1.00178 1.00228 1.00278 1.00328 1.00378
-0.146N 1.00146 1.00196 1.00246 1.00296 1.00346 1.00396
-0.164N 1.00164 1.00214 1.00264 1.00314 1.00364 1.00414
-0.182N 1.00182 1.00232 1.00282 1.00332 1.00382 1.00432
-0.2N 1.002 1.0025 1.003 1.0035 1.004 1.0045
-0.218N 1.00218 1.00268 1.00318 1.00368 1.00418 1.00468
-0.236N 1.00236 1.00286 1.00336 1.00386 1.00436 1.00486
-0.254N 1.00254 1.00304 1.00354 1.00404 1.00454 1.00504
-def axis/x=100:100.11:0.033/units=deg xax
-list/form=comma aa
- VARIABLE : (X[GX=XAX] + Y[GY=YAX])/100
- BAD FLAG : -1.E+34
- SUBSET : 4 by 9 points (LONGITUDE-LATITUDE)
- 100E ,100E ,100.1E ,100.1E
-0.11N,1.0011,1.00143,1.00176,1.00209
-0.128N,1.00128,1.00161,1.00194,1.00227
-0.146N,1.00146,1.00179,1.00212,1.00245
-0.164N,1.00164,1.00197,1.0023,1.00263
-0.182N,1.00182,1.00215,1.00248,1.00281
-0.2N,1.002,1.00233,1.00266,1.00299
-0.218N,1.00218,1.00251,1.00284,1.00317
-0.236N,1.00236,1.00269,1.00302,1.00335
-0.254N,1.00254,1.00287,1.0032,1.00353
-
-! Fix bug in HASH_CX for large numbers of varibles
-GO bn_reset
-cancel mode verify
-GO err570_many_variables.jnl
-! err570_many_variables.jnl
-! 27-sep-2004 ACM
-! See bug 993
-
-! Script derived from Jean Newman script where she
-! opens up many files and defines a bunch of variables.
-
-! Jean Newman's script opens 25 data files, defines over 200 variables, and uses
-! very long strings. It uses string functions to break up a long string
-! describing the data into reasonable length lines for labels, inserting <NL>
-! linebreak character. Crashes with seg fault or with messages like this:
-!
-! yes? load str4a
-! Subscript out of range on file re_assign_variable.F, line 78, procedure
-! re_assign_variable.
-! Subscript number 1 has value -111 in array mv_flink.
-!
-! (different errors if we define a slightly different number of variables or list
-! some of them, causing them to be evaluated in a different order.) Generally
-! crashes on execution of a string function.
-!
-! See ~ansley/ans_ferret/users/jnewman/facts/x_r.jnl
-! ~ansley/ans_ferret/users/jnewman/facts/example_crash.jnl
-!
-!set mode diag
-
-DEFINE SYMBOL SOURCE_LIST = Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23
-
-
-! set data "facts/s_1936_533.nc"
-LET TOTAL_TIMESTEPS = 420
-LET HA12 = 14.76 * HA[D=s_1936_533.nc]
-LET AA12 = SLAT[D=s_1936_533.nc]
-LET OA12 = SLON[D=s_1936_533.nc]
-LET SA12 = 245
-LET DA12 = 15
-LET HB12 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_1939_529.NC]
-LET AB12 = SLAT[D=s_1936_533.nc] !! [D=S_1939_529.NC]
-LET OB12 = SLON[D=s_1936_533.nc] !! [D=S_1939_529.NC]
-LET SB12 = 245
-LET DB12 = 15
-LET HA13 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_1950_537.NC]
-LET AA13 = SLAT[D=s_1936_533.nc] !! [D=S_1950_537.NC]
-LET OA13 = SLON[D=s_1936_533.nc] !! [D=S_1950_537.NC]
-LET SA13 = 245
-LET DA13 = 15
-LET HB13 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_1953_533.NC]
-LET AB13 = SLAT[D=s_1936_533.nc] !! [D=S_1953_533.NC]
-LET OB13 = SLON[D=s_1936_533.nc] !! [D=S_1953_533.NC]
-LET SB13 = 245
-LET DB13 = 15
-LET HA14 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_1964_541.NC]
-LET AA14 = SLAT[D=s_1936_533.nc] !! [D=S_1964_541.NC]
-LET OA14 = SLON[D=s_1936_533.nc] !! [D=S_1964_541.NC]
-LET SA14 = 250
-LET DA14 = 15
-LET HB14 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_1967_537.NC]
-LET AB14 = SLAT[D=s_1936_533.nc] !! [D=S_1967_537.NC]
-LET OB14 = SLON[D=s_1936_533.nc] !! [D=S_1967_537.NC]
-LET SB14 = 250
-LET DB14 = 15
-LET HA15 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_1979_544.NC]
-LET AA15 = SLAT[D=s_1936_533.nc] !! [D=S_1979_544.NC]
-LET OA15 = SLON[D=s_1936_533.nc] !! [D=S_1979_544.NC]
-LET SA15 = 253
-LET DA15 = 15
-LET HB15 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_1981_539.NC]
-LET AB15 = SLAT[D=s_1936_533.nc] !! [D=S_1981_539.NC]
-LET OB15 = SLON[D=s_1936_533.nc] !! [D=S_1981_539.NC]
-LET SB15 = 253
-LET DB15 = 15
-LET HA16 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_1994_546.NC]
-LET AA16 = SLAT[D=s_1936_533.nc] !! [D=S_1994_546.NC]
-LET OA16 = SLON[D=s_1936_533.nc] !! [D=S_1994_546.NC]
-LET SA16 = 256
-LET DA16 = 15
-LET HB16 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_1996_542.NC]
-LET AB16 = SLAT[D=s_1936_533.nc] !! [D=S_1996_542.NC]
-LET OB16 = SLON[D=s_1936_533.nc] !! [D=S_1996_542.NC]
-LET SB16 = 256
-LET DB16 = 15
-LET HA17 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2009_548.NC]
-LET AA17 = SLAT[D=s_1936_533.nc] !! [D=S_2009_548.NC]
-LET OA17 = SLON[D=s_1936_533.nc] !! [D=S_2009_548.NC]
-LET SA17 = 253
-LET DA17 = 15
-LET HB17 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2011_544.NC]
-LET AB17 = SLAT[D=s_1936_533.nc] !! [D=S_2011_544.NC]
-LET OB17 = SLON[D=s_1936_533.nc] !! [D=S_2011_544.NC]
-LET SB17 = 253
-LET DB17 = 15
-LET HA18 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2023_551.NC]
-LET AA18 = SLAT[D=s_1936_533.nc] !! [D=S_2023_551.NC]
-LET OA18 = SLON[D=s_1936_533.nc] !! [D=S_2023_551.NC]
-LET SA18 = 247
-LET DA18 = 15
-LET HB18 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2026_547.NC]
-LET AB18 = SLAT[D=s_1936_533.nc] !! [D=S_2026_547.NC]
-LET OB18 = SLON[D=s_1936_533.nc] !! [D=S_2026_547.NC]
-LET SB18 = 247
-LET DB18 = 15
-LET HA19 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2036_555.NC]
-LET AA19 = SLAT[D=s_1936_533.nc] !! [D=S_2036_555.NC]
-LET OA19 = SLON[D=s_1936_533.nc] !! [D=S_2036_555.NC]
-LET SA19 = 240
-LET DA19 = 15
-LET HB19 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2040_551.NC]
-LET AB19 = SLAT[D=s_1936_533.nc] !! [D=S_2040_551.NC]
-LET OB19 = SLON[D=s_1936_533.nc] !! [D=S_2040_551.NC]
-LET SB19 = 240
-LET DB19 = 15
-LET HA20 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2049_560.NC]
-LET AA20 = SLAT[D=s_1936_533.nc] !! [D=S_2049_560.NC]
-LET OA20 = SLON[D=s_1936_533.nc] !! [D=S_2049_560.NC]
-LET SA20 = 236
-LET DA20 = 15
-LET HB20 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2053_556.NC]
-LET AB20 = SLAT[D=s_1936_533.nc] !! [D=S_2053_556.NC]
-LET OB20 = SLON[D=s_1936_533.nc] !! [D=S_2053_556.NC]
-LET SB20 = 236
-LET DB20 = 15
-LET HA21 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2062_565.NC]
-LET AA21 = SLAT[D=s_1936_533.nc] !! [D=S_2062_565.NC]
-LET OA21 = SLON[D=s_1936_533.nc] !! [D=S_2062_565.NC]
-LET SA21 = 236
-LET DA21 = 15
-LET HB21 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2067_561.NC]
-LET AB21 = SLAT[D=s_1936_533.nc] !! [D=S_2067_561.NC]
-LET OB21 = SLON[D=s_1936_533.nc] !! [D=S_2067_561.NC]
-LET SB21 = 236
-LET DB21 = 15
-LET HA22 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2075_570.NC]
-LET AA22 = SLAT[D=s_1936_533.nc] !! [D=S_2075_570.NC]
-LET OA22 = SLON[D=s_1936_533.nc] !! [D=S_2075_570.NC]
-LET SA22 = 236
-LET DA22 = 15
-LET HB22 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2080_566.NC]
-LET AB22 = SLAT[D=s_1936_533.nc] !! [D=S_2080_566.NC]
-LET OB22 = SLON[D=s_1936_533.nc] !! [D=S_2080_566.NC]
-LET SB22 = 236
-LET DB22 = 15
-LET HA23 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2089_575.NC]
-LET AA23 = SLAT[D=s_1936_533.nc] !! [D=S_2089_575.NC]
-LET OA23 = SLON[D=s_1936_533.nc] !! [D=S_2089_575.NC]
-LET SA23 = 236
-LET DA23 = 15
-LET HB23 = 14.76 * HA[D=s_1936_533.nc] !! [D=S_2094_571.NC]
-LET AB23 = SLAT[D=s_1936_533.nc] !! [D=S_2094_571.NC]
-LET OB23 = SLON[D=s_1936_533.nc] !! [D=S_2094_571.NC]
-LET SB23 = 236
-LET DB23 = 15
-LET HA_LC = HA12+HB12+HA13+HB13+HA14+HB14+HA15+HB15+HA16+HB16+HA17+HB17+HA18+HB18+HA19+HB19+HA20+HB20+HA21+HB21+HA22+HB22+HA23+HB23
-LET HA_LC_TPLV = 64
-LET HA_LC_T1DLV = 16
-LET HA_LC_BTLV = -64
-LET HA_LC_B1DLV = -16
-LET HA_LC_SCL = 10
-LET UA_LC = UA12+UB12+UA13+UB13+UA14+UB14+UA15+UB15+UA16+UB16+UA17+UB17+UA18+UB18+UA19+UB19+UA20+UB20+UA21+UB21+UA22+UB22+UA23+UB23
-LET UA_LC_TPLV = 8
-LET UA_LC_T1DLV = 0.64
-LET UA_LC_BTLV = -8
-LET UA_LC_B1DLV = -0.64
-LET UA_LC_SCL = 1000
-LET VA_LC = VA12+VB12+VA13+VB13+VA14+VB14+VA15+VB15+VA16+VB16+VA17+VB17+VA18+VB18+VA19+VB19+VA20+VB20+VA21+VB21+VA22+VB22+VA23+VB23
-LET VA_LC_TPLV = 8
-LET VA_LC_T1DLV = 0.64
-LET VA_LC_BTLV = -8
-LET VA_LC_B1DLV = -0.64
-LET VA_LC_SCL = 1000
-LET SPEED = (UA_LC^2 + VA_LC^2) ^ 0.5
-LET SPEED_TPLV = 40
-LET SPEED_1DLV = 16
-LET SPEED_SCL = 100
-LET MAX_SPEED = SPEED[L=1:420 at MAX]
-LET MAX_SPEED_TPLV = 40
-LET MAX_SPEED_1DLV = 16
-LET MAX_SPEED_SCL = 10
-LET MAX_ALL = HA_LC[L=1:420 at MAX]
-LET MIN_MASK = IF MAX_ALL GT .001 THEN 1
-LET MAX_WAVE = MAX_ALL*MIN_MASK
-LET MAX_WAVE_TPLV = 500
-LET MAX_WAVE_1DLV = 400
-LET MAX_WAVE_SCL = 10
-LET SIG_WAVE = HA_LC[L=1:420] - MAX_WAVE
-LET MAX_TTIME = SIG_WAVE[L=1:420 at LOC:0]
-LET THRESHOLD_PRCNT = .30
-LET NOISE_MASK = IF HA_LC[L=1:420] LE MAX_ALL*THRESHOLD_PRCNT THEN 0 ELSE 1
-LET ON_MASK = IF NOISE_MASK[L=1:420 at RSUM] GE 1 THEN 0.5
-LET OFF_EVENTS = IF NOISE_MASK - NOISE_MASK[L=1:420 at SHF:-1] LT 0 THEN 1 ELSE 0
-LET OFF_MASK = IF OFF_EVENTS[L=1:420 at RSUM] LT 1 THEN 0.5
-LET WAVE1 = (ON_MASK+OFF_MASK)*HA_LC[L=1:420]
-LET FIRST_WAVE = WAVE1[L=1:420 at MAX]*MIN_MASK
-LET FIRST_WAVE_TPLV = 500
-LET FIRST_WAVE_1DLV = 400
-LET FIRST_WAVE_SCL = 10
-LET SIG_WAVE1 = WAVE1[L=1:420] - FIRST_WAVE
-LET FIRST_TTIME = SIG_WAVE1[L=1:420 at LOC:0]
-LET DTOR = 0.017453
-LET FAULT_LENGTH = 50
-LET FAULT_WIDTH = 50
-LET BO1 = SRCO-FAULT_LENGTH*COS((270-STRK)*DTOR)/111.32/COS(SRCA*DTOR)
-LET BA1 = SRCA-FAULT_LENGTH*SIN((270-STRK)*DTOR)/111.32
-LET BO4 = SRCO+FAULT_LENGTH*COS((270-STRK)*DTOR)/111.32/COS(SRCA*DTOR)
-LET BA4 = SRCA+FAULT_LENGTH*SIN((270-STRK)*DTOR)/111.32
-LET BO2 = BO1+FAULT_WIDTH*COS(DIP*DTOR)*SIN((270-STRK)*DTOR)/111.32/COS(SRCA*DTOR)
-LET BA2 = BA1-FAULT_WIDTH*COS(DIP*DTOR)*COS((270-STRK)*DTOR)/111.32
-LET BO3 = BO4+FAULT_WIDTH*COS(DIP*DTOR)*SIN((270-STRK)*DTOR)/111.32/COS(SRCA*DTOR)
-LET BA3 = BA4-FAULT_WIDTH*COS(DIP*DTOR)*COS((270-STRK)*DTOR)/111.32
-LET SRC_LAT = {53.307,52.9,53.687,53.28,54.076,53.654,54.36,53.93,54.596,54.16,54.83,54.4,55.133,54.72,55.509,55.12,55.97,55.598,56.473,56.1,56.975,56.603,57.512,57.14}
-LET SRC_LON = {193.63,193.94,194.97,195.29,196.43,196.69,197.9,198.12,199.43,199.62,200.88,201.11,202.26,202.57,203.6,204,204.9,205.34,206.21,206.66,207.54,207.99,208.94,209.4}
-LET NSRCS = 24
-LET MX_MX = 474.27
-LET MXTOP = IF MX_MX GT HA_LC_T1DLV THEN MX_MX ELSE HA_LC_TPLV
-LET MN_MN = -284.33
-LET MXBOT = IF MN_MN LT HA_LC_B1DLV THEN MN_MN ELSE HA_LC_BTLV
-LET SL_X = 0.
-LET SL_X2 = 7.207
-LET SL_Y = 5.518+.26
-LET TIT_X = 7.207/2
-LET TIT_Y = 5.518+.85
-LET TSUCHR = 0.09
-LET NTSULNS = IF 1 THEN 3 ELSE 2
-LET NCTSULNS = 85
-
-let str1a = STRLEN("($source_list)")
- !-> DEFINE VARIABLE str1a = STRLEN("Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23")
-let lstr1 = STRLEN("+")
-
-let str2a = STRLEN("{193.63,193.94,194.97,195.29,196.43,196.69,197.9,198.12,199.43,199.62,200.88,201.11,202.26,202.57,203.6,204,204.9,205.34,206.21,206.66,207.54,207.99,208.94,209.4}")
-list str2a
- VARIABLE : STRLEN("{193.63,193.94,194.97,195.29,196.43,196.69,197.9,198.12,199.43,199.62,200.88,201.11,202.26,202.57,203.6,204,204.9,205.34,206.21,206.66,207.54,207.99,208.94,209.4}")
- 162.000
-
-def sym aLIST = Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.7
-
-let lstr2 = STRLEN("($alist)")
- !-> DEFINE VARIABLE lstr2 = STRLEN("Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.7")
-
-let str3a = STRLEN("($source_list)")
- !-> DEFINE VARIABLE str3a = STRLEN("Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23")
-list str3a
- VARIABLE : STRLEN("Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.7
- 247.000
-
-!let a = 12; list a
-
-LET STR3 = STRLEN("abcd")
-list str3
- VARIABLE : STRLEN("abcd")
- 4.00000
-
-let str4a = STRLEN("($source_list)")
- !-> DEFINE VARIABLE str4a = STRLEN("Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.76*a20+14.76*b20+14.76*a21+14.76*b21+14.76*a22+14.76*b22+14.76*a23+14.76*b23")
-
-list str4a
- VARIABLE : STRLEN("Mw 9.2, 14.76*a12+14.76*b12+14.76*a13+14.76*b13+14.76*a14+14.76*b14+14.76*a15+14.76*b15+14.76*a16+14.76*b16+14.76*a17+14.76*b17+14.76*a18+14.76*b18+14.76*a19+14.76*b19+14.7
- 247.000
-
-
-! Fix bug in @CNNN within multi-line labels
-GO bn_reset
-cancel mode verify
-GO err570_cnnn_multiline.jnl
-! Changing pen with @Cnnn did not work in
-! multi-line labels
-
-plot/hl=0:1/vl=0:1/vs 0,0
-label 0.2, 0.7, 0, 0, 0.2, "@p2This<NL>@P3works<NL>@p4fine."
-label 0.5, 0.7, 0, 0, 0.2, "@C002this<NL>@c003does<NL>@C004not."
-label 0.8, 0.7, 0, 0, 0.2, "@C002this<NL>does<NL>not @C004either."
-
-label 0.1, 0.3, 0, 0, 0.2, "greek<NL>@SGt at SR_y<NL>works"
-
-! For a very fine grid, coordinates not listed with enough precision.
-GO bn_reset
-cancel mode verify
-GO err570_fine_grid_list.jnl
-! err570_fine_grid_list.jnl
-! ACM 10/2004
-! ACM 6/2007 CANCEL LIST/PREC at the end to restore the default state.
-
-! For a very fine grid in longitude and latitude, the coordinates
-! are not listed with enough precision to resolve them.
-
-
-let hlon= {204.89923, 204.89975, 204.90025, 204.90076, 204.90126}
-let hlat = { 19.70020, 19.70071, 19.70122, 19.70173, 19.70223, 19.70274}
-
-def axis/x/units=lon xfine = hlon
-def axis/y/units=lat yfine = hlat
-
-let myvar = x[gx=xfine] + y[gy=yfine]
-
-set list/prec=8
-list/form=tab myvar
- VARIABLE : X[GX=XFINE] + Y[GY=YFINE]
- BAD FLAG : -1.E+34
- SUBSET : 5 by 6 points (LONGITUDE-LATITUDE)
- 155.1W 155.1W 155.1W 155.1W 155.1W
-19.7N 224.59943 224.59995 224.60045 224.60096 224.60146
-19.7N 224.59994 224.60046 224.60096 224.60147 224.60197
-19.7N 224.60045 224.60097 224.60147 224.60198 224.60248
-19.7N 224.60096 224.60148 224.60198 224.60249 224.60299
-19.7N 224.60146 224.60198 224.60248 224.60299 224.60349
-19.7N 224.60197 224.60249 224.60299 224.6035 224.604
-
-set list/prec=8
-list/form=comma myvar
- VARIABLE : X[GX=XFINE] + Y[GY=YFINE]
- BAD FLAG : -1.E+34
- SUBSET : 5 by 6 points (LONGITUDE-LATITUDE)
- 155.1W ,155.1W ,155.1W ,155.1W ,155.1W
-19.7N,224.59943,224.59995,224.60045,224.60096,224.60146
-19.7N,224.59994,224.60046,224.60096,224.60147,224.60197
-19.7N,224.60045,224.60097,224.60147,224.60198,224.60248
-19.7N,224.60096,224.60148,224.60198,224.60249,224.60299
-19.7N,224.60146,224.60198,224.60248,224.60299,224.60349
-19.7N,224.60197,224.60249,224.60299,224.6035,224.604
-
-list/clobber/head=enh/form=(f9.5)/file=fine.dat myvar
-sp cat fine.dat
- VARIABLE : X[GX=XFINE] + Y[GY=YFINE]
- LONGITUDE: 155.1W(204.9) to 155.1W(204.9)
- LATITUDE : 19.7N to 19.7N
- GEOMETRY: XY
- SIZE: 5 6
- FORTRAN FORMAT: (f9.5)
- MISSING VALUES FLAG: -1.0000000E+34
-X COORDINATES: degrees_east
-204.89923
-204.89975
-204.90025
-204.90076
-204.90126
-Y COORDINATES: degrees_north
- 19.70020
- 19.70071
- 19.70122
- 19.70173
- 19.70223
- 19.70274
-DATA:
-224.59943
-224.59995
-224.60045
-224.60096
-224.60146
-224.59994
-224.60046
-224.60096
-224.60147
-224.60197
-224.60045
-224.60097
-224.60147
-224.60198
-224.60248
-224.60096
-224.60148
-224.60198
-224.60249
-224.60299
-224.60146
-224.60198
-224.60248
-224.60299
-224.60349
-224.60197
-224.60249
-224.60299
-224.60350
-224.60400
-sp rm -f fine.dat
-
-cancel list/precision
-
-! Range includes just one coordinate point on the axis
-! Plot using /HLIM
-GO bn_reset
-cancel mode verify
-GO err570_hlimit_onepoint
-!err570_hlimit_onepoint.jnl
-! 15-Oct-2004 ACM
-
-! range includes just one coordinate point on the axis
-! Fix so we can plot this with /HLIMIT (previously gave
-! misleading error)
-! If no /HLIMIT, should issue an error
-
-set mode ignore_error
-
-use coads_vwnd
-set reg/x=180:200/y=35:45/t=1-jan-1985:1-feb-1985
-plot/sym/siz=0.3/hlim="1-jan-1985 18": "1-feb-1985 20" 0*t[gt=vwnd]
-
-plot/sym/siz=0.3 0*t[gt=vwnd]
-set mode/last ignore_error
-
-! Regridding between Gregorian and Julian time axes with @NRST
-! caused a segfault.
-GO bn_reset
-cancel mode verify
-GO err570_index111.jnl
-! err570_index111.jnl
-! 3-nov-04 ACM
-! Fixes for bug 1049.
-!
-! See ~ansley/ans_ferret/users/wittenberg/bug1049.jnl
-! This was due to a bug in the fix for bug 562. In
-! that fix we allowed subscripts of -111 when there
-! was a range of subscripts including that value.
-! The fix didnt correctly distinguish between that
-! case and -111 used as the missing-integer flag.
-
-
-DEF AXIS/T/UNITs=days/T0="01-JAN-1979 00:00:00"/CAL=gregorian \
- tgreg = {6590.5,6620.0,6649.5,6680.0,6710.5,6741.0,6771.5,\
- 6802.5,6833.0,6863.5,6894.0,6924.5,6955.5,6985.0,7014.5,\
- 7045.0,7075.5,7106.00}
-DEF AXIS/T/UNITS=hours/t0="01-JAN-1900 00:00:00"/CAL=julian \
- tjul = { 850692,851400,852108,852840,853572,854304,855036,\
- 855780,856512,857244,857976,858708}
-
-LET s1 = T[GT=tgreg]
-LET s2 = T[GT=tjul]
-
-LIST/T=1-jan-1997:1-jan-1998 s2[GT=s1 at NRST]
- VARIABLE : T[GT=TJUL]
- regrid: on T at NRST
- SUBSET : 12 points (TIME)
- 16-JAN-1997 12 / 1: 850692.
- 15-FEB-1997 00 / 2: 851400.
- 16-MAR-1997 12 / 3: 852108.
- 16-APR-1997 00 / 4: 852840.
- 16-MAY-1997 12 / 5: 853572.
- 16-JUN-1997 00 / 6: 854304.
- 16-JUL-1997 12 / 7: 855036.
- 16-AUG-1997 12 / 8: 855780.
- 16-SEP-1997 00 / 9: 856512.
- 16-OCT-1997 12 / 10: 857244.
- 16-NOV-1997 00 / 11: 857976.
- 16-DEC-1997 12 / 12: 858708.
-
-
-! Data has missing value flag of NaN. Under linux, SHOW DATA/FULL
-! crashed on trying to format value for the output buffer.
-GO bn_reset
-cancel mode verify
-GO err570_sh_dat_nan.jnl
-! err570_sh_dat_nan.jnl
-! 4-Nov-2004 acm
-
-! See bug 1070.
-! Data has missing value flag of NaN. Under linux, SHOW DATA/FULL
-! crashed on trying to format value for the output buffer.
-
-use nan_missing.nc
-show data/full
- currently SET data sets:
- 1> ./nan_missing.nc (default)
- NCEP Ocean Analysis
- name title I J K L M N
- TEMP temperature 1:1 1:1 1:19 1:1 ... ...
- degree_Celsius on grid GGH1 with 1.E-34 & NaN for missing data
- X=139.8E:140.8E Y=0.5S:0.5N Z=0:375
-
- time range: FEB-1980
-
-
-
-! Time reqest out of range on NOLEAP axes.
-GO bn_reset
-cancel mode verify
-GO err570_time_range.jnl
-! err570_time_range.jnl bug1080
-! time request out of range with calendar axis and RETURN=
-
-def axis/t="16-Jan-1861 12:00:00":"16-mar-1881 12:00:00":1/units=months/calendar=noleap tax
-let a = t[gt=tax]
-save/clob/file=aa.nc a
-save/clob/file=cc.nc a
-use aa
-use cc
-
-define grid/like=a[d=1] var1_grid_
-let var1_ = a[d=1,t="16-Jan-1861 12:00:00"]
-let var2_ = a[gx=var1_grid_,gy=var1_grid_,d=2,t="16-Jan-1861 12:00:00"]
-set var/units="`a[d=1,t="16-Jan-1861 12:00:00"],return=units`" var1_
- !-> set var/units=" " var1_
-set var/units="`a[gx=var1_grid_,gy=var1_grid_,d=2,t="16-Jan-1861 12:00:00"],return=units`" var2_
- !-> set var/units=" " var2_
-! error message on this last command; noleap calendar not treated correctly.
-
-! Fix for bug 1066; error doing 2-D polygon overlaying
-! a non-standard calendar axis
-GO bn_reset
-cancel mode verify
-GO err570_poly_over_julian.jnl
-! err570_poly_over_julian.jnl
-! ACM 11/12/04
-
-! Bug 1066
-! Overlaying data on a Julian time axis got an error:
-! Differing calendar axes:
-! first variable is on JULIAN axis
-! overlaid variable is on GREGORIAN axis
-
-use coads_climatology
-set axis/CAL=JULIAN time
-plot/x=140w/y=0 sst
-plot/ov/vs/line=3 {400,900,900,400}, {25.5,25.5,26.5,25.5}
-poly/ov/pal=green {400,900,900,400}, {25.5,25.5,26.5,25.5}
-
-
-! Fix for bug 1077; return ERROR rather than NOTE when
-! exiting from a script where query/ignore or other coached
-! string substitution returns the user-given error message
-GO bn_reset
-cancel mode verify
-GO err570_coaching hello
-! err570_coaching.jnl
-! ACM 11/12/04 Bug 1077
-
-! test this with GO err570_coaching hello
-
-! We are changing NOTE to ERROR in coached_str_sub
-! when the script gives the user-defined error text.
-! We still may have an ERROR and then NOTE to explain
-! the list of valid arguments.
-
-set mode ignore_errors
-
-! incorrect argument with query/ignore
-query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
-query/ignore $2%|a|b|c|d|%
-
-! These example message commands taken from bn_dollar
-
-! doesn't match on "hello"; the first line below now
-! uses ERROR instead of NOTE when writing my error message
-
-message/cont $1"|xxxxx|goodbye<my error message"
-message/cont $1"greetings|xxxxx|goodbye"
-
-! no argument supplied; the first line below now
-! uses ERROR instead of NOTE when writing my error message
-
-message/cont $3"|hello|goodbye<my error message"
-message/cont $3">greetings|hello|goodbye"
-
-! Here are some lines from bn_symbols; the first and third now use ERROR instead of NOTE
-
-message/continue ($test2"<my error message")
-message/continue ($test2"|hello|bye|")
-message/continue ($test2"|hello|bye|<my error message") ! silent error
-message/continue ($t2"|solong>really hello|bye|")
-
-set mode/last ignore_errors
-
-! Fix for bug 485: say ($0) in a script should return the
-! name of the script
-GO bn_reset
-cancel mode verify
-GO err570_dollar_zero.jnl
-! err570_dollar_zero.jnl
-! (bug 485) Got a command syntax error;
-! $0 in script should return the script name
-
-SET MODE ignore_error
-SAY ($0)
- !-> MESSAGE/CONTINUE err570_dollar_zero.jnl
-err570_dollar_zero.jnl
-
-SET MODE/LAST ignore_error
-
-! Fix for bug 596; list/i=0:300:0 var crashed Ferret
-GO bn_reset
-cancel mode verify
-GO err570_illegal_stride.jnl
-! err570_illegal_stride.jnl
-! (bug 596) list/i=0:300:0 var crashed Ferret
-
-SET MODE ignore_error
-use coads_climatology
-list/l=1/j=40/i=0:300:0 sst
-
-SET MODE/LAST ignore_error
-
-! Fix for bug 1085; /THICK without color specifier caused all lines to revert to black
-GO bn_reset
-cancel mode verify
-GO err570_thick_colors.jnl
-! err570_thick_colors.jnl bug1085
-! /THICK without color specifier causes all lines to revert to black
-
-PLOT/THICK/I=1:100 cos(i/20), sin(i/30)
-PLOT/OVER/THICK=3/I=1:100 cos(i/30)*sin(i/20)
-PLOT/OVER/THICK=1/I=1:100 cos(i/10), sin(i/50), cos(i/40)*sin(i/10)
-
-! time series
-USE gtsa056_2
-PLOT/THICK/X=180/Y=0/K=1 temp
-PLOT/OVER/THICK/X=180/Y=-1/K=1 temp
-PLOT/OVER/THICK/X=180/Y=1/K=1 temp
-
-! plot/vs
-PLOT/VS/LINE/THICK/I=1:314 i*cos(i/20), i*sin(i/20)
-PLOT/OVER/VS/LINE/THICK/I=1:314 i*cos(i/18), i*sin(i/18)
-PLOT/OVER/VS/LINE/THICK=3/I=1:314 i*cos(i/16), i*sin(i/16)
-PLOT/OVER/VS/LINE/THICK=1/I=1:314 i*cos(i/14), i*sin(i/14)
-
-
-! Fix for bug 1102: under linux, var[d=filename] fails if filename
-! starts with a digit.
-GO bn_reset
-cancel mode verify
-GO err570_digit_filename.jnl
-! err570_digit_filename.jnl
-! Bug 1102: under linux, var[d=filename] fails if filename
-! starts with a digit.
-
-let a = x[i=1:10]
-save/clobber/file=10a.nc a
-can var/all
-use 10a
-list a[x=1:4,d=10a]
- VARIABLE : X[I=1:10]
- FILENAME : 10a.nc
- SUBSET : 4 points (X)
- 1 / 1: 1.000
- 2 / 2: 2.000
- 3 / 3: 3.000
- 4 / 4: 4.000
-list a[x=1:4,d=1]
- VARIABLE : X[I=1:10]
- FILENAME : 10a.nc
- SUBSET : 4 points (X)
- 1 / 1: 1.000
- 2 / 2: 2.000
- 3 / 3: 3.000
- 4 / 4: 4.000
-
-
-use coads_climatology
-list a[x=1:4,d=1]
- VARIABLE : X[I=1:10]
- FILENAME : 10a.nc
- SUBSET : 4 points (X)
- 1 / 1: 1.000
- 2 / 2: 2.000
- 3 / 3: 3.000
- 4 / 4: 4.000
-list a[i=1:4,d=1]
- VARIABLE : X[I=1:10]
- FILENAME : 10a.nc
- SUBSET : 4 points (X)
- 1 / 1: 1.000
- 2 / 2: 2.000
- 3 / 3: 3.000
- 4 / 4: 4.000
-
-list a[i=1:4,d=10a]
- VARIABLE : X[I=1:10]
- FILENAME : 10a.nc
- SUBSET : 4 points (X)
- 1 / 1: 1.000
- 2 / 2: 2.000
- 3 / 3: 3.000
- 4 / 4: 4.000
-list a[i=1:4,d=10a.nc]
- VARIABLE : X[I=1:10]
- FILENAME : 10a.nc
- SUBSET : 4 points (X)
- 1 / 1: 1.000
- 2 / 2: 2.000
- 3 / 3: 3.000
- 4 / 4: 4.000
-
-! Fix for bug 1098: DODS URL label was cut off
-GO bn_reset
-cancel mode verify
-GO err570_dods_url_label.jnl
-! err570_dods_url_label.jnl
-!
-! Bug 1098. Look for the label with the URL: it should include
-! everything up to the last slash.
-! acm 11/04
-
-
-!! Change to another dataset, our server down...
-!!use "http://www.ferret.noaa.gov/cgi-bin/nph-nc/data/bn_strides.cdf"
-!!sh data
-!!plot/i=1/j=1 temp
-!!ppl list labels
-
-!!set data "http://ferret.pmel.noaa.gov:8080/thredds/dodsC/data/COADS_climatology.nc"
-!!sh data
-!!plot/x=180/y=0 airt
-!!ppl list labels
-
-!!set data "http://apdrc.soest.hawaii.edu/thredds/dodsC/woa/1994/annual"
-!!sh data
-!!plot/x=180/y=0 otemp
-!!ppl list labels
-
-! Change to the OPeNDAP test server.
-!!use "http://test.opendap.org/opendap/data/nc/coads_climatology.nc"
-!!sh data
-!!plot/x=180/y=0 sst
-!!ppl list labels
-
-!! Change to another server, this one not working 3/2012
-!! use "http://iridl.ldeo.columbia.edu/SOURCES/.LEVITUS/.MONTHLY/.temp/dods"
-!!sh data
-!!plot/x=180/y=0/k=1 temp
-!!ppl list labels
-
-
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/coads_climatology.nc"
-sh data
- currently SET data sets:
- 1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/coads_climatology.nc (default)
- name title I J K L M N
- SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:12 ... ...
- AIRT AIR TEMPERATURE 1:180 1:90 ... 1:12 ... ...
- SPEH SPECIFIC HUMIDITY 1:180 1:90 ... 1:12 ... ...
- WSPD WIND SPEED 1:180 1:90 ... 1:12 ... ...
- UWND ZONAL WIND 1:180 1:90 ... 1:12 ... ...
- VWND MERIDIONAL WIND 1:180 1:90 ... 1:12 ... ...
- SLP SEA LEVEL PRESSURE 1:180 1:90 ... 1:12 ... ...
-
-plot/x=180/y=0 sst
-ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)
-
- @ASDeg C
-
- XPOS YPOS HGT ROT UNITS
- LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET Ver. 6.85
- LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 2 8.000E+00 7.100E+00 0.060 0 SYSTEM @ASNOAA/PMEL TMAP
- LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS12-NOV-2013 15:13:02
- LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 4 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLONGITUDE : 179E
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 5 0.000E+00 6.600E+00 0.120 0 SYSTEM @ASLATITUDE : 1S
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 6 8.000E+00 6.540E+00 0.090 0 SYSTEM @ASDATA SET: coads_climatology
- LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
- LAB 7 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
- LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 8 8.000E+00 6.750E+00 0.073 0 SYSTEM @ASOPeNDAP URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
- LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
-
-
-! Fix for bug 906: auto-formatting of labels on color keys loses precision
-GO bn_reset
-cancel mode verify
-GO err570_keylabels.jnl
-! err570_keylabels.jnl
-! 11/2004
-
-! (bug 906)
-! auto-formatting of labels on color keys loses precision
-! key labels are 370, 371, 371, 372, 372, ...
-
-let a = 370 + x[x=1:10:1] + 0.2*y[y=1:10:1]
-shade/lev=(370,382,0.5) a
-
-! Fix for bug 1130: error and crash on some systems polygon command
-! where polygon arguments have latitude or longitude units
-GO bn_reset
-cancel mode verify
-GO err570_poly_lonlat_axis.jnl
-! err570_poly_lonlat_axis.jnl
-! 12/14/04
-!
-! The polygon command gave error messages and under version 5.7
-! Symbol not found
-! XFOR (I7,'LONE')
-! and similarly for the y axis.
-!
-! RedHat 7 binary, under Debian 3.0 Linux the poly command crashes Ferret.
-
-LET XTRIANGLE = YSEQUENCE({-1,0,1})
-LET YTRIANGLE = YSEQUENCE({-1,1,-1})
-LET XPTS = 120+30*RANDU(I[i=1:10])
-LET YPTS = 30*RANDU(1+I[i=1:10])
-LET/title="longitude"/units="degrees_east" XT = XTRIANGLE+XPTS
-LET/title="latitude"/units="degrees_north" YT = YTRIANGLE+YPTS
-POLYGON XT, YT, I[I=1:10]
-
-! Add the same fix to plot_set_up.F for PLOT/VS commands
-
-PLOT/VS XT, YT
-
-! ******** V5.81 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_inf_levels.jnl
-! Run FERRET/fer/ferretdods_gui
-! test open upper and lower levels (-INF) (INF)
-
-can mode logo
-set win/siz=0.4
-
-use coads_climatology
-
-shade/set/lev=(-inf),(4,28,2)(inf) sst[l=1]
-ppl shakey,1,0,-0.1,,,,,,`($ppl$ylen)+($ppl$yorg)+0.1`
- !-> ppl shakey,1,0,-0.1,,,,,,7.5
-ppl shade
-
-can view
-
-! many levels: triangles forced to be 5% of total key length
-! (add SHOW SYM LEV* to catch behavior of bug 1519 which
-! did not plot color in the entire area for FILL plots.)
-
-set view left
-fill/x=20e:150e/lev=(-inf),(4,28,0.5)(inf) sst[l=1]
-sh sym lev*
-LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
-LEV_MIN = "-2.8"
-LEV_MAX = "32"
-LEV_NUM = "50"
-LEV_DEL = "6.8"
-
-set view right
-shade/lev=(-inf),(4,28,0.5)(inf)/key=cont sst[l=1]
-sh sym lev*
-LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
-LEV_MIN = "-2.8"
-LEV_MAX = "32"
-LEV_NUM = "50"
-LEV_DEL = "6.8"
-
-
-can view
-
-! horizontal.
-
-set view upper
-fill/x=20e:150e/set/lev=(-inf),(4,28,0.5)(inf)/y=0:90 sst[l=1]
-ppl shakey,1,0,-0.1,10,,,,,`($ppl$ylen)+($ppl$yorg)+0.1`
- !-> ppl shakey,1,0,-0.1,10,,,,,3.1
-ppl fill
-
-set view lower
-shade/set/lev=(-inf),(4,28,0.5)(inf)/y=0:90/key=cont sst[l=1]
-ppl shakey,1,0,-0.1,10,,,,,`($ppl$ylen)+($ppl$yorg)+0.1`
- !-> ppl shakey,1,0,-0.1,10,,,,,3.1
-ppl shade
-
-! Some one-sided examples
-can view
-
-fill/lev=(-2,28,1)(inf) sst[l=1]
-
-shade/set/lev=(-inf),(4,30,0.5)/key=cont/pal=rainbow sst[l=1]
-ppl shakey,1,0,-0.1,10,,,,,`($ppl$ylen)+($ppl$yorg)+0.1`
- !-> ppl shakey,1,0,-0.1,10,,,,,7.5
-ppl shade
-
-let filler = missing(sst[l=1],-999)
-shade/over/pal=black/nolab/lev=(-999,-999,-999) filler
-
-can view
-
-! polygon command
-
-let xsqr = YSEQUENCE({0,.1,.1,0})
-let ysqr = YSEQUENCE({0,0,.1,.1})
-let ypts = x/10
-let xpts = cos(x/10)
-
-polygon/trans/i=1:100/nolable/lev=(-inf)(200,900,50)(inf) xpts+xsqr, ypts+ysqr, x*x/10
-
-
-use coads_climatology
-def axis/x=0:360:5 xq
-def axis/y=-90:90:4 yq
-let fsst = sst[l=1,gx=xq,gy=yq]
-
-let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
-let lat = xsequence(0*x[gx=xq] + y[gy=yq])
-shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst ! set up
-go polymark poly/key/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequence(fsst), square, 0.4
-
-
-
-GO bn_reset
-cancel mode verify
-GO bn_regulart.jnl
-! bn_regulart.jnl
-! 5/12/2005 ACM
-
-! Test of the USE/REGULART qualifier
-! The axis is irregular in the first instance, and regular in the second
-
-use coads_vwnd
-show axis tcoads
- name axis # pts start end
- TCOADS TIME 648 i 16-JAN-1946 12:00 16-DEC-1999 12:00
-T0 = 01-JAN-1700 00:00:00
- Axis span (to cell edges) = 19723
-list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
- TIME: JAN-1946 to JUL-1946
- Column 1: T is T (axis TCOADS)
- Column 2: TBOX is TBOX (axis TCOADS)
- T TBOX
-16-JAN-1946 12 / 1: 89865. 31.00
-15-FEB-1946 00 / 2: 89894. 28.00
-16-MAR-1946 12 / 3: 89924. 31.00
-16-APR-1946 00 / 4: 89954. 30.00
-16-MAY-1946 12 / 5: 89985. 31.00
-16-JUN-1946 00 / 6: 90015. 30.00
-can data/all
-
-use/regulart coads_vwnd
-show axis tcoads
- name axis # pts start end
- TCOADS TIME 648 r 16-JAN-1946 12:00 16-DEC-1999 12:00
-T0 = 01-JAN-1700 00:00:00
- Axis span (to cell edges) = 19722.44
-list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
- TIME: JAN-1946 to JUL-1946
- Column 1: T is T (axis TCOADS)
- Column 2: TBOX is TBOX (axis TCOADS)
- T TBOX
-16-JAN-1946 / 1: 89865. 30.44
-15-FEB-1946 / 2: 89895. 30.44
-18-MAR-1946 / 3: 89925. 30.44
-17-APR-1946 / 4: 89956. 30.44
-18-MAY-1946 / 5: 89986. 30.44
-17-JUN-1946 / 6: 90017. 30.44
-
-
-GO bn_reset
-cancel mode verify
-GO bn_labwid.jnl
-! LABWID returns the length in Denbo inches of the
-! string. For multi-line strings, returns length of
-! the longest line.
-
-LIST LABWID("aaaaabbbbb", .15)
- VARIABLE : LABWID("aaaaabbbbb", .15)
- X : 1
- 1.357
-LIST LABWID("aaaaabbbbb", .10)
- VARIABLE : LABWID("aaaaabbbbb", .10)
- X : 1
- 0.9048
-LIST LABWID("aaaaabbbbb<NL>ee", .15)
- VARIABLE : LABWID("aaaaabbbbb<NL>ee", .15)
- X : 1
- 1.357
-LIST LABWID("ee<NL>aaaaabbbbb", .15)
- VARIABLE : LABWID("ee<NL>aaaaabbbbb", .15)
- X : 1
- 1.357
-
-
-LIST LABWID("@IISTRING", .15)
- VARIABLE : LABWID("@IISTRING", .15)
- X : 1
- 0.9808
-LIST LABWID("@SSSTRING", .15)
- VARIABLE : LABWID("@SSSTRING", .15)
- X : 1
- 0.9143
-LIST LABWID("@SSSTRING<NL>@IISTRING", .15)
- VARIABLE : LABWID("@SSSTRING<NL>@IISTRING", .15)
- X : 1
- 0.9808
-LIST LABWID("@IISTRING<NL>@SSSTRING", .15)
- VARIABLE : LABWID("@IISTRING<NL>@SSSTRING", .15)
- X : 1
- 0.9808
-
-
-go ptest
-! Description: create a simple test line plot
-
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
-
-
-label/nouser 0,3,-1,0,.15,"@P2 at IILine1<NL>@IIA LONGER LINE"
-let wid = labwid("@P2 at IILine1<NL>@IIA LONGER LINE",.15)
-label/nouser `wid`, 3, -1, 0, .15, "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
- !-> PPL %LABEL/nouser 2.019230842590332, 3, -1, 0, .15, "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
-
-GO bn_reset
-cancel mode verify
-GO bn_redefine_taxis_mc.jnl
-! bn_redefine_taxis_mc.jnl
-! ACM 15-Apr-2005
-
-! Redefine the time axis of a multi-file data set.
-! Lets us fix a time axis, which may in fact be irregular, but
-! the multi-file reading always makes into a regularly-spaced axis.
-
-set data coads_clim.des
-list/x=180/y=0 sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- DATA SET : COAD
- FILENAME : coads_clim.des
- SUBSET : 6 points (TIME)
- LONGITUDE: 179E
- LATITUDE : 1S
- 179E
- 80
- 16-JAN-1900 / 1: 28.20
- 15-FEB-1900 / 2: 28.36
- 18-MAR-1900 / 3: 28.35
- 17-APR-1900 / 4: 28.22
- 17-MAY-1900 / 5: 28.49
- 17-JUN-1900 / 6: 28.32
-
-def sym taxisname `sst,return=taxis`
- !-> def sym taxisname TIME1
-
-def axis/t=1-mar-1990:6-mar-1990:1/units=days ($taxisname)
- !-> def axis/t=1-mar-1990:6-mar-1990:1/units=days TIME1
-list/x=180/y=0 sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- DATA SET : COAD
- FILENAME : coads_clim.des
- SUBSET : 6 points (TIME)
- LONGITUDE: 179E
- LATITUDE : 1S
- 179E
- 80
- 01-MAR-1990 00 / 1: 28.20
- 02-MAR-1990 00 / 2: 28.36
- 03-MAR-1990 00 / 3: 28.35
- 04-MAR-1990 00 / 4: 28.22
- 05-MAR-1990 00 / 5: 28.49
- 06-MAR-1990 00 / 6: 28.32
-
-def axis/t=1:6:1 ($taxisname)
- !-> def axis/t=1:6:1 TIME1
-list/x=180/y=0 sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- DATA SET : COAD
- FILENAME : coads_clim.des
- SUBSET : 6 points (T)
- LONGITUDE: 179E
- LATITUDE : 1S
- 179E
- 80
- 1 / 1: 28.20
- 2 / 2: 28.36
- 3 / 3: 28.35
- 4 / 4: 28.22
- 5 / 5: 28.49
- 6 / 6: 28.32
-
-GO bn_reset
-cancel mode verify
-GO bn_illegal_axisname.jnl
-! Some OPenDAP HDF files have illegal axis names, e.g. with a dot in the name.
-! This is a test of using such names, in a redefinition of the axes of the data.
-! The file has a variable with axis names COADSX.ILLEGAL, COADSY.ILLEGAL. The axes contain
-! just indices. The file also has variables NEW.LONGITUDES and NEW.LATITUDES which contain
-! geographic coordinates that we want to substitute for the axes.
-
-use illeg_axname.nc
-sh data
- currently SET data sets:
- 1> ./illeg_axname.nc (default)
- name title I J K L M N
- SST SEA SURFACE TEMPERATURE 1:21 1:16 ... ... ... ...
- NEW.LONGITUDES
- X[GX=SST] 1:21 ... ... ... ... ...
- NEW.LATITUDES
- Y[GY=SST] ... 1:16 ... ... ... ...
-
-list/i=1:5 x[gx=sst]
- VARIABLE : X
- axis COADSX.ILLEGAL
- FILENAME : illeg_axname.nc
- SUBSET : 5 points (X)
- 60 / 1: 60.00
- 61 / 2: 61.00
- 62 / 3: 62.00
- 63 / 4: 63.00
- 64 / 5: 64.00
-set view upper; shade sst
-
-define axis/x/modulo/units=degrees_east 'coadsx.illegal' = XSEQUENCE('NEW.LONGITUDES')
-define axis/y/units=degrees_north 'coadsy.illegal' = XSEQUENCE('NEW.LATITUDES')
-
-list/i=1:5 x[gx=sst]
- VARIABLE : X
- axis 'COADSX.ILLEGAL'
- FILENAME : illeg_axname.nc
- SUBSET : 5 points (LONGITUDE)
- 21E / 1: 21.00
- 23E / 2: 23.00
- 25E / 3: 25.00
- 27E / 4: 27.00
- 29E / 5: 29.00
-set view lower; shade sst
-sh grid sst
- GRID GEX1
- name axis # pts start end
- 'COADSX.ILLEGAL' LONGITUDE 21mr 21E 61E
- 'COADSY.ILLEGAL' LATITUDE 16 r 35N 65N
- normal Z
- normal T
- normal E
- normal F
-
-GO bn_reset
-cancel mode verify
-GO bn_exit_script.jnl
-! bn_exit_script.jnl
-! 5/2005 ACM
-! tests of EXIT/SCRIPT command, in combination with IF and REPEAT
-! 3/2007 add a check for exit/script within a loop (fixes for bug 1304)
-
-! Simple EXIT/SCRIPT command in a script
-go exit_script_1
-! test exit/script
-
-exit/script
-
-! EXIT/SCRIPT from an IF clause
-go exit_script_if
-! test exit/script from an IF clause
-
-let a = 1
-if `a lt 10` then exit/script
- !-> if 1 then exit/script
-
-! EXIT/SCRIPT inside REPEAT loop
-go exit_script_loop
-! test exit/script inside REPEAT loop
-
-repeat/i=3:5 (list/nohead i; exit/script)
-!-> REPEAT: I=3
- 3.000
-
-! EXIT/SCRIPT with IF clause and REPEAT loop
-go exit_script_if_loop
-! test exit/script with IF clause and REPEAT loop
-
-repeat/i=3:10:2 (list/nohead i; if `i ge 6` then exit/script)
-!-> REPEAT: I=3
- 3.000
- !-> if 0 then exit/script
-!-> REPEAT: I=5
- 5.000
- !-> if 0 then exit/script
-!-> REPEAT: I=7
- 7.000
- !-> if 1 then exit/script
-
-! EXIT/SCRIPT two levels down
-go exit_script_twolev
-! test exit/script called another level down
-
-go exit_script_if
-! test exit/script from an IF clause
-
-let a = 1
-if `a lt 10` then exit/script
- !-> if 1 then exit/script
-
-say "returned from exit_script_if"
-returned from exit_script_if
-say "here is the next line"
-here is the next line
-
-! EXIT/SCRIPT two levels down
-go exit_script_twolev
-! test exit/script called another level down
-
-go exit_script_if
-! test exit/script from an IF clause
-
-let a = 1
-if `a lt 10` then exit/script
- !-> if 1 then exit/script
-
-say "returned from exit_script_if"
-returned from exit_script_if
-say "here is the next line"
-here is the next line
-
-! EXIT/SCRIPT from a script within a loop.
-! Should see output from 3 repeats of the loop but not
-! the SAY SCRIPT at each iteration of the repeat loop
-
-cancel mode verify
-1
-loop
-2
-loop
-3
-loop
-
-GO bn_reset
-cancel mode verify
-GO bn_exit_cycle.jnl
-! bn_exit_cycle.jnl
-! 5/2005 ACM
-! EXIT/CYCLE skips remaining commands in this repetition of a loop
-
-can mode ver
-32
-64
-128
-256
-512
-1024
-
- test exit/loop combined with exit/cycle
-32
-64
-128
-256
-say 512 if bigger than 500
-512
-say 1024 if bigger than 500
-1024
-say 2048 if bigger than 500
-say 4096 if bigger than 500
-say 8192 if bigger than 500
-say 16384 if bigger than 500
-
-loop finished 16384 gt 10000
-
-GO bn_reset
-cancel mode verify
-GO bn_curv_mod.jnl
-! bn_curv_mod
-! Test of fill/mod and contour/mod
-! 5/24/2005 Ferret v5.81
-
-! The dataset is a portion of example tripolar grid.
-
-! use "/home/ja3/hankin/user/gfdl/tri_polar/mom4_grid_example.nc"
-! save/clobber/file=tripolar_subset.nc geolon_vert_t[j=150:174], geolat_vert_t[j=150:174], ht[j=150:173]
-
-! Note that this coord data is actually cell edges and so
-! isnt really what one would use for FILL and CONTOUR commands --
-
-use tripolar_subset.nc ! Longitude range is -280 to 80
-
-fill/mod/hlim=-180:180 ht, geolon_vert_t[i=1:180,j=1:24], geolat_vert_t[i=1:180,j=1:24]
-contour/over/mod/hlim=-180:180 ht, geolon_vert_t[i=1:180,j=1:24], geolat_vert_t[i=1:180,j=1:24]
-
-
-GO bn_reset
-cancel mode verify
-GO bn_shade_keycont.jnl
-! Continuous shade key
-! test setting it and whether default is restored on next command.
-! also whether behavior consistent when we call shakey
-
-use ocean_atlas_temp
-set region/x=130:290/y=-45:45
-
-set view ul
-shade/title="default shade key" temp[l=1]
-
-set view ur
-shade/key=cont/title="shade/key=cont" temp[l=1]
-
-set view ll
-shade/key=cont/title="cont key with shakey call"/set temp[l=1]
-
-let/quiet x1 = `($ppl$xorg)+0.1`
- !-> DEFINE VARIABLE/quiet x1 = 1.3
-let/quiet y1 = `($ppl$yorg)+($ppl$ylen)+0.1`
- !-> DEFINE VARIABLE/quiet y1 = 4.923
-let/quiet y2 = `($ppl$yorg)+($ppl$ylen)+0.5`
- !-> DEFINE VARIABLE/quiet y2 = 5.323
-
-ppl shakey ,0,-.12,2,,,`x1`,,`y1`,`y2`
- !-> ppl shakey ,0,-.12,2,,,1.3,,4.923,5.323
-go unlabel 4
-go unlabel 5
-ppl shade
-ppl list shakey
-
- DO KEY ORIENT LAB SIZE LAB INC LAB DIG LAB LEN
- 1 0 -0.12 2 3 9
-
-
- X LO X HI Y LO Y HI
- 1.30 6.31 4.92 5.32
-
-set view lr
-let/quiet x1 = `($ppl$xorg)+1`
- !-> DEFINE VARIABLE/quiet x1 = 2.2
-let/quiet x2 = `($ppl$xorg)+($ppl$xlen)-1`
- !-> DEFINE VARIABLE/quiet x2 = 5.212
-let/quiet y1 = `($ppl$yorg)`
- !-> DEFINE VARIABLE/quiet y1 = 1.4
-shade/title="with shakey, restore default key style"/set temp[l=1]
-ppl shakey ,0,-.12,3,,,`x1`,`x2`,`y1`
- !-> ppl shakey ,0,-.12,3,,,2.2,5.212,1.4
-ppl shade
-
-can view
-
-set view ul
-fill/title="default fill key" temp[l=1]
-
-set view ur
-fill/key=cont/title="fill/key=cont" temp[l=1]
-
-set view ll
-fill/key=cont/title="cont key with shakey call"/set temp[l=1]
-
-let/quiet x1 = `($ppl$xorg)+0.1`
- !-> DEFINE VARIABLE/quiet x1 = 1.3
-let/quiet y1 = `($ppl$yorg)+($ppl$ylen)+0.1`
- !-> DEFINE VARIABLE/quiet y1 = 4.923
-let/quiet y2 = `($ppl$yorg)+($ppl$ylen)+0.5`
- !-> DEFINE VARIABLE/quiet y2 = 5.323
-
-ppl shakey ,0,-.12,2,,,`x1`,,`y1`,`y2`
- !-> ppl shakey ,0,-.12,2,,,1.3,,4.923,5.323
-go unlabel 4
-go unlabel 5
-ppl fill
-ppl list shakey
-
- DO KEY ORIENT LAB SIZE LAB INC LAB DIG LAB LEN
- 1 0 -0.12 2 3 9
-
-
- X LO X HI Y LO Y HI
- 1.30 6.31 4.92 5.32
-
-set view lr
-let/quiet x1 = `($ppl$xorg)+1`
- !-> DEFINE VARIABLE/quiet x1 = 2.2
-let/quiet x2 = `($ppl$xorg)+($ppl$xlen)-1`
- !-> DEFINE VARIABLE/quiet x2 = 5.212
-let/quiet y1 = `($ppl$yorg)`
- !-> DEFINE VARIABLE/quiet y1 = 1.4
-fill/title="with shakey, restore default key style"/set temp[l=1]
-ppl shakey ,0,-.12,3,,,`x1`,`x2`,`y1`
- !-> ppl shakey ,0,-.12,3,,,2.2,5.212,1.4
-ppl fill
-
-GO bn_reset
-cancel mode verify
-GO bn581_bug_fixes.jnl
-! bn581_bug_fixes.jnl
-! test various fixes that went into version 5.81
-! 2/05 *acm*
-!
-
-! Bug 1160 short axis with irreg bounds seen as regular.
-GO bn_reset
-cancel mode verify
-GO err580_irreg_bounds.jnl
-! err580_irreg_bounds.jnl
-! Define a short irregular time axis with some time_bounds,
-! and then read it into Ferret. When the file is read in,
-! the bounds seem to be ignored; axis is seen as regular.
-! Bug 1160 reported by Andrew.
-
-yes? def ax/t/edge time = {0,1,3}
-yes? let a = t[gt=time]
-yes? show grid/t a
- GRID (G011)
- name axis # pts start end
- normal X
- normal Y
- normal Z
- TIME T 2 i 0.5 2
- normal E
- normal F
-
- L T TBOX TBOXLO
- 1> 0.5 1 0
- 2> 2 2 1
-
-yes? save/clob/file=a.nc a
-sp echo "err580_irreg_bounds.jnl --- " >> all_ncdump.out
-yes? sp ncdump a.nc >> all_ncdump.out
-
-can data/all
-can var/all
-can mem
-
-! T axis was marked as regular
-yes? use a.nc
-yes? show grid/t a
- GRID GSI1
- name axis # pts start end
- normal X
- normal Y
- normal Z
- TIME7 T 2 i 0.5 2
- normal E
- normal F
-
- L T TBOX TBOXLO
- 1> 0.5 1 0
- 2> 2 2 1
-
-! Bug 1179 Cartesian_axis and positive="down" resulted in depth axis not being recognized
-GO bn_reset
-cancel mode verify
-GO err580_cartesian_depth.jnl
- ! err580_cartesian_depth.jnl
-! cartesian_axis attribute
-! combined with positive="down"
-! caused the axis not to be recognized as a depth axis
-! should be i- on the axis ZT
-
-use a_cartesian_bug1179.nc
-sh grid temp
- GRID GHU1
- name axis # pts start end
- GRID_X_T LONGITUDE 1 r 79E 79E
- GRID_Y_T LATITUDE 1 r 0.25S 0.25S
- ZT DEPTH (m) 10 i- 22.5 158
- TIME7 TIME 1mr 15-FEB-1900 03:00 15-FEB-1900 03:00
- normal E
- normal F
-
-! Bug 1181 Titles were truncated at 80 characters
-GO bn_reset
-cancel mode verify
-GO err580_long_title.jnl
-
- ! err580_long_title.jnl
- ! Titles were truncated at 80 characters
-
-save/clobber/title="a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789"/file=longtitle.nc x[x=1:10]
-
-sp echo "err580_long_title.jnl --- " >> all_ncdump.out
-sp ncdump longtitle.nc >> all_ncdump.out
-
-! Bug 1180 Allow "use filename.des"
-GO bn_reset
-cancel mode verify
-GO err580_use_des.jnl
-! err580_use_des.jnl
-! Allow "use filename.des" (previously gave an "is this a CDF file?" error)
-
-use vary_scale.des
-sh data
- currently SET data sets:
- 1> ./vary_scale.des (default)
- name title I J K L M N
- TT 1 + 0*T[GT=DAYT] ... ... ... 1:20 ... ...
-
-
-
-! Bug 1180 Allow "use filename.des"
-GO bn_reset
-cancel mode verify
-GO err580_use_des.jnl
-! err580_use_des.jnl
-! Allow "use filename.des" (previously gave an "is this a CDF file?" error)
-
-use vary_scale.des
-sh data
- currently SET data sets:
- 1> ./vary_scale.des (default)
- name title I J K L M N
- TT 1 + 0*T[GT=DAYT] ... ... ... 1:20 ... ...
-
-
-! fix for bug 1181: dataset title was limited to 80 characters.
-GO bn_reset
-cancel mode verify
-GO err580_long_dsettitle.jnl
-! err580_long_dsettitle
-! fix for bug 1181
-! previously dataset title was limited to 80 characters.
-
-! File has a dataset title 1000 characters long.
-use longtitle1000.nc
-say `a,return=dsettitle`
- !-> MESSAGE/CONTINUE
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 [...]
-
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 [...]
-
-! Set a dataset title over 80 characters.
-save/title="a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short. "/clobber/file=longtitle.nc a
-
-sp echo "err580_long_dsettitle.jnl --- " >> all_ncdump.out
-sp ncdump longtitle.nc >> all_ncdump.out
-
-! fix for bug 1200:crash due to the long veckey format spec.
-GO bn_reset
-cancel mode verify
-GO err580_long_veckey.jnl
-! err580_long_veckey.jnl
-! Bug 1200 The following caused a crash due to the long veckey format spec.
-
-vector/i=1:50/j=1:50/set j-20+(i-i),i-20+(j-j)
-
-ppl veckey,1,-3,,"(f4.0," x10^-^2 N m^-^2")"
-ppl vector
-
-! restore the default setting
-ppl veckey,0,0,,"(1PG10.3)"
-
-! fix for bug 1201: mistranslation of time region.
-GO bn_reset
-cancel mode verify
-GO err580_cal360_region.jnl
-! err580_cal360_region.jnl
-! Wrong output region: the set region mistakenly tranlated
-
-def axis/t=15-apr-1990:15-apr-2000:15/units=days/t0=15-apr-1990/calendar=d360 tax
-let a = t[gt=tax]
-load a
-set reg/t=15-apr-1990:15-apr-1991
-sho reg
-default region:
- X/I is unspecified
- Y/J is unspecified
- Z/K is unspecified
- T=15-APR-1990 00:00:00:15-APR-1991 00:00:0
- E/M is unspecified
- F/N is unspecified
-
-
-! fix for bug 1203: crash if time range left off.
-GO bn_reset
-cancel mode verify
-GO err580_def_tax_norange.jnl
-! err580_def_t_norange.jnl
-! bug 1203. without the T range, these statements cause a STOP.
-
-SET MODE ignore
-DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
-
-DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
-
-! fix for bug 1207: closest distance and closest index transformations.
-GO bn_reset
-cancel mode verify
-GO err580_cdb.jnl
-! err580_cdb.jnl
-! bug 1207
-
-! Bug in closest distance and closest index transformations
-! Code needs range below for CDB, CIB and above for CDA, CIA.
-! Instead it asked for a range above AND below the specified index.
-! So result is missing when it should not be.
-
-def axis/x=1:20:1 aax
-let var = if mod(i,5) eq 1 then x[gx=aax]
-
-list var[i=15 at cdb:5]
- VARIABLE : IF MOD(I,5) EQ 1 THEN X[GX=AAX]
- X : 15 (closest dist below by 5 pts)
- 4.000
-list var[i=14 at cdb:5]
- VARIABLE : IF MOD(I,5) EQ 1 THEN X[GX=AAX]
- X : 14 (closest dist below by 5 pts)
- 3.000
-
-! These returned MISSING data with the bug, should not be missing.
-
-list var[i=15 at cdb:10]
- VARIABLE : IF MOD(I,5) EQ 1 THEN X[GX=AAX]
- X : 15 (closest dist below by 10 pts)
- 4.000
-list var[i=15 at cib:10]
- VARIABLE : IF MOD(I,5) EQ 1 THEN X[GX=AAX]
- X : 15 (closest index below by 10 pts)
- 4.000
-list var[i=5 at cda:10]
- VARIABLE : IF MOD(I,5) EQ 1 THEN X[GX=AAX]
- X : 5 (closest dist above by 10 pts)
- 1.000
-list var[i=5 at cia:10]
- VARIABLE : IF MOD(I,5) EQ 1 THEN X[GX=AAX]
- X : 5 (closest index above by 10 pts)
- 1.000
-
-! fix for bug 1214: crash on repeating a SET VIEW when viewport defined with /AXES
-GO bn_reset
-cancel mode verify
-GO err580_def_view_axes.jnl
-! err580_def_view_axes.jnl
-! BUG 1214
-! crashed with seg fault on the second SET VIEW v1
-
-! Does not crash if we define viewports without the /AXES
-! Does not crash if we CAN MODE META and SET MODE META
-! between the two SET VIEW v1
-! Does not crash if we skip the SET WINDOW/CLEAR
-
-! Does not crash with Ferret v5.50
-
-define view/x=0.2:0.4/y=.2:.4/text=0.75/axes v1
-
-set window/clear
-set mode metafile viewaxes.plt
-
-set view v1
-go ptest
-! Description: create a simple test line plot
-
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
-
-
-set window/clear
-
-! can mode meta
-set mode meta
-
-set view v1
-shade/i=1:12/j=1:12 i+j
-
-can mode metafile
-sp rm -f viewaxes.plt*
-
-
-! fix for bug 1205: symbol LEV_DEL wrong when single level specified
-GO bn_reset
-cancel mode verify
-GO err580_lev_del.jnl
-! err580_lev_del.jnl
-! demonstrates bug 1205; precision of LEV_DEL when single level specified.
-
-shade/lev=.4d/x=1:10/y=1:10 cos(i/10)*9*sin(j/5)
-sh sym lev_del
-LEV_DEL = "0.4"
-show sym lev*
-LEV_TEXT = ".4D"
-LEV_MIN = "0.8"
-LEV_MAX = "9.2"
-LEV_NUM = "21"
-LEV_DEL = "0.4"
-
-use coads_climatology
-shade/l=1/lev=1.2d sst; sho sym lev_del
-LEV_DEL = "1.2"
-
-show sym lev*
-LEV_TEXT = "1.2D"
-LEV_MIN = "-2.4"
-LEV_MAX = "31.2"
-LEV_NUM = "28"
-LEV_DEL = "1.2"
-
-! Fix for bug 1174: strfloat_c("nonsense") gave result of 0 rather than missing.
-GO bn_reset
-cancel mode verify
-GO err580_strfloat_errors.jnl
-! err580_strfloat_errors.jnl
-! Previously a nonsense input gave a result of 0.
-! See bug 1174.
-
-let b = {"3.34", "0", "nonsense", "0.0", "153q51", "9..32", "7.e03", "3.2e-2"}
-list/prec=6 strfloat(b)
- VARIABLE : STRFLOAT(B)
- SUBSET : 8 points (X)
- 1 / 1: 3.34
- 2 / 2: 0.00
- 3 / 3: ....
- 4 / 4: 0.00
- 5 / 5: 153.00
- 6 / 6: 9.00
- 7 / 7: 7000.00
- 8 / 8: 0.03
-
-! Fixes for bugs 1249, 1250: uppercase not recognized for qualifier argument
-GO bn_reset
-cancel mode verify
-GO err580_arg_case.jnl
-! err580_arg_case.jnl
-! 5/2005
-! bugs 1249, 1250
-!
-! key=CONTINUOUS and step=CONNECTED
-! were not recognized if the value was in uppercase
-
-shade/key=cont/i=1:10/j=1:4 i-j
-shade/key=CONT/i=1:10/j=1:4 i-j
-
-plot/step=conn/i=1:10 sin(i)
-plot/step=CONN/i=1:10 sin(i)
-
-
-
-! Fixes for bugs 1019: kludge for CDC time axes made time origin incorrect on outputs
-GO bn_reset
-cancel mode verify
-GO err580_cdc_timeaxis.jnl
-! err580_cdc_timeaxis.jnl
-! 6/3/05
-! See comments under bug 1019.
-!
-! CDC time axes have the convention that if the start date is 1-jan-0001:00:00 then
-! a shift of 2 days is made in year 1590. Ferret corrects for this by resetting the
-! time origin back by 2 days. This is ok for internal time coordinate computations,
-! but the time origin written to the user and in cdf files is incorrect: 30-dec-0000
-!
-! fix this in the RETURN=t0, SHOW AXIS, SHOW/XML AXIS and SAVE commands
-!
-! CDC file, save a portion of it. Check that time origin is 0001-01-01 00:00:00
-! (it will not be unless the bug-fix version of Ferret writes the file.)
-
-
-! set data "http://www.cdc.noaa.gov/cgi-bin/nph-nc/Datasets/ncep.pac.ocean/taux.mnmean.nc"
-! save/clobber/file=cdc_timeaxis.nc/i=15/j=45 taux
-! can data/all
-
-
-def axis/t=1-jan-1990:1-feb-1990:1/units=days/t0="01-JAN-0001 00:00:00" tcdc
-let a = sin(t[gt=tcdc]/10000)
-
-save/clobber/file=t0_cdc.nc a
-can var/all
-can axis tcdc
-use t0_cdc
-
-sh axis tcdc
- name axis # pts start end
- TCDC TIME 32 r 30-DEC-1989 00:00 30-JAN-1990 00:00
-T0 = 01-JAN-0001 00:00:00
- Axis span (to cell edges) = 32
-save/clobber/file=my_cdc_timeaxis.nc/L=1:15 a
-sp echo "err580_cdc_timeaxis.jnl --- " >> all_ncdump.out
-sp ncdump -h my_cdc_timeaxis.nc >> all_ncdump.out
-say `a,return=t0`
- !-> MESSAGE/CONTINUE 01-JAN-0001 00:00:00
-01-JAN-0001 00:00:00
-
-sp rm -f t0_cdc.nc
-sp rm -f my_cdc_timeaxis.nc
-
-
-
-! Fix for bug 1272: show axis/t= with NOLEAP calendar
-GO bn_reset
-cancel mode verify
-GO err580_show_axis_t.jnl
-! err580_show_axis_t
-! bug 1272: wrong range shown when nonstd calendar
-! 5/22/06 acm
-
- ! SHOW AXIS/T= gives wrong date when calendar not gregorian
-
-def axis/t=1-jan-2000:1-jan-2005:1/units=days/caleandar=noleap tnoleap
-sh axis/t=25-jan-2001:1-feb-2001 tnoleap
- name axis # pts start end
- TNOLEAP TIME 1826 r 01-JAN-2000 00:00 01-JAN-2005 00:00
-T0 = 15-JAN-1901
-CALENDAR = NOLEAP
- Axis span (to cell edges) = 1826
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 390> 25-JAN-2001 00:00:00 1 24-JAN-2001 12:00:00 36510
- 391> 26-JAN-2001 00:00:00 1 25-JAN-2001 12:00:00 36511
- 392> 27-JAN-2001 00:00:00 1 26-JAN-2001 12:00:00 36512
- 393> 28-JAN-2001 00:00:00 1 27-JAN-2001 12:00:00 36513
- 394> 29-JAN-2001 00:00:00 1 28-JAN-2001 12:00:00 36514
- 395> 30-JAN-2001 00:00:00 1 29-JAN-2001 12:00:00 36515
- 396> 31-JAN-2001 00:00:00 1 30-JAN-2001 12:00:00 36516
- 397> 01-FEB-2001 00:00:00 1 31-JAN-2001 12:00:00 36517
-
-
-def axis/t=1-jan-2000:1-jan-2005:1/units=days/caleandar=gregorian tgreg
-sh axis/t=25-jan-2001:1-feb-2001 tgreg
- name axis # pts start end
- TGREG TIME 1828 r 01-JAN-2000 00:00 01-JAN-2005 00:00
-T0 = 15-JAN-1901
- Axis span (to cell edges) = 1828
-
- L T TBOX TBOXLO TSTEP (DAYS)
- 391> 25-JAN-2001 00:00:00 1 24-JAN-2001 12:00:00 36535
- 392> 26-JAN-2001 00:00:00 1 25-JAN-2001 12:00:00 36536
- 393> 27-JAN-2001 00:00:00 1 26-JAN-2001 12:00:00 36537
- 394> 28-JAN-2001 00:00:00 1 27-JAN-2001 12:00:00 36538
- 395> 29-JAN-2001 00:00:00 1 28-JAN-2001 12:00:00 36539
- 396> 30-JAN-2001 00:00:00 1 29-JAN-2001 12:00:00 36540
- 397> 31-JAN-2001 00:00:00 1 30-JAN-2001 12:00:00 36541
- 398> 01-FEB-2001 00:00:00 1 31-JAN-2001 12:00:00 36542
-
-! Fix for bug 1279 which was only in the first iteration of v5.81 release
-GO bn_reset
-cancel mode verify
-GO err581_nlev.jnl
-! err580_nlev.jnl
-! bug 1279
-
-!FILL/lev=n var
-! gave us exactly n levels, not approximately n levels.
-
-use coads_climatology
-fill/lev=30 sst[l=2]
-
-! Fix for bug 1349: formatted axis labels on PLOT/VS and POLYGON plot
-! acm 8/29/2005
-GO bn_reset
-cancel mode verify
-GO err581_vs_poly_axis.jnl
-! err581_vs_poly_axis.jnl
-! Test fix of bug 1349: formatted axis labels on PLOT/VS and POLYGON plot
-! acm 8/29/2005
-
-LET xpts= {144.616,144.621,144.651,144.658,144.660,144.664,144.670,144.670,144.672,144.674,144.676,144.677,144.678,144.679,144.683,144.685,144.686,144.687,144.688,144.690,144.691,144.692,144.693,144.693,144.694,144.694,144.695,144.696,144.697,144.698}
-LET ypts= {32.3793,32.3279,32.308,32.3972,32.3938,32.3958,32.3112,32.3924,32.309,32.3095,32.3828,32.3135,32.3861,32.385,32.3265,32.3264,32.3821,32.3772,32.355,32.3657,32.3691,32.3371,32.3495,32.3672,32.3458,32.3625,32.3604,32.3518,32.3643,32.3531}
-
-SET VAR/UNITS=degrees_east/TITLE="LONGITUDES" xpts
-SET VAR/UNITS=degrees_north/TITLE="LATITUDES" ypts
-PLOT/VS xpts, ypts
-
-LET ysqr = YSEQUENCE({0,0,.1,.1}*0.01)
-LET xsqr = YSEQUENCE({0,.1,.1,0}*0.01)
-DEF VAR/UNITS=degrees_east/TITLE="LONGITUDES" xp = xpts+xsqr
-DEF VAR/UNITS=degrees_north/TITLE="LATITUDES" yp = ypts+ysqr
-
-SET VAR/TITLE="COLORED BY LATITUDE" ypts
-POLYGON/LINE/fill xp, yp, ypts
-
-! Fix for bug 1270: regridding leakage between cells: monthly-> seasonal regridding
-! needs file short_bug1270.nc
-! ( this fix not checked in for v5.81 release.)
-! GO bn_reset
-! GO err580_regrid_prec.jnl
-
-
-! ******** V6.00 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_tab_comma_multivar.jnl
-! bn_tab_comma_multivar.jnl
-!
-! Fixes for bug 1273
-! v5.90 8/9/2005
-! LIST/FORM=tab and /FORM=comma with more than one variable
-! no longer behave as if /SINGLY was specified. New qualifier
-! LIST/NOROWLAB removes coordinate labels from the rows listing data
-
-let country = {"JP", "JP", "US"}
-let id = {1,2,3}
-let aa = 4000* id
-let bb = 1000000* id + 500
-let newcountry = {"w", "c", "e"}
-let the_data_var = {4,5,4}
-
-
-list/format=comma country, id, aa, bb, newcountry, the_data_var
- X: 0.5 to 3.5
- Column 1: COUNTRY is {"JP", "JP", "US"} BAD FLAG : -1.E+34
- Column 2: ID is {1,2,3} BAD FLAG : -1.E+34
- Column 3: AA is 4000* ID BAD FLAG : -1.E+34
- Column 4: BB is 1000000* ID + 500 BAD FLAG : -1.E+34
- Column 5: NEWCOUNTRY is {"w", "c", "e"} BAD FLAG : -1.E+34
- Column 6: THE_DATA_VAR is {4,5,4} BAD FLAG : -1.E+34
- COUNTRY,ID,AA,BB,NEWCOUNTRY,THE_DATA_VAR
-1 / 1:"JP",1,4000,1000500,"w",4
-2 / 2:"JP",2,8000,2000500,"c",5
-3 / 3:"US",3,12000,3000500,"e",4
-
-list/format=tab/norow country, id, aa, bb, newcountry, the_data_var
- X: 0.5 to 3.5
- Column 1: COUNTRY is {"JP", "JP", "US"} BAD FLAG : -1.E+34
- Column 2: ID is {1,2,3} BAD FLAG : -1.E+34
- Column 3: AA is 4000* ID BAD FLAG : -1.E+34
- Column 4: BB is 1000000* ID + 500 BAD FLAG : -1.E+34
- Column 5: NEWCOUNTRY is {"w", "c", "e"} BAD FLAG : -1.E+34
- Column 6: THE_DATA_VAR is {4,5,4} BAD FLAG : -1.E+34
-COUNTRY ID AA BB NEWCOUNTRY THE_DATA_VAR
-"JP" 1 4000 1000500 "w" 4
-"JP" 2 8000 2000500 "c" 5
-"US" 3 12000 3000500 "e" 4
-
-GO bn_reset
-cancel mode verify
-GO bn_element_functions.jnl
- ! NOAA/PMEL TMAP
- ! FERRET v5.81
- ! Solaris 5.6 - 08/08/05
- ! 9-Aug-05 14:36
-
-use coads_climatology
-let a = x[gx=sst]*y[gy=sst]*l[gt=sst]
-list/i=1:2/j=1:2/l=3 a
- VARIABLE : X[GX=SST]*Y[GY=SST]*L[GT=SST]
- FILENAME : coads_climatology.cdf
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- TIME : MAR
- 21E 23E
- 1 2
- 87S / 2: -5481. -6003.
- 89S / 1: -5607. -6141.
-list is_element_of (a, -6003)
- VARIABLE : IS_ELEMENT_OF (A, -6003)
- FILENAME : coads_climatology.cdf
- X : 1
- 1.000
- list/i=1:2/j=1:2/l=3 element_index (a, {-6003})
- VARIABLE : ELEMENT_INDEX (A, {-6003})
- FILENAME : coads_climatology.cdf
- SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
- TIME : MAR
- 21E 23E
- 1 2
- 87S / 2: .... 1.000
- 89S / 1: .... ....
-use string4d.nc
-list/j=1:2/k=1:2 axy
- VARIABLE : RESHAPE (A,RVAR)
- FILENAME : string4d.nc
- SUBSET : 2 by 2 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1:"alpha""a2"
- 2 / 2:"a3" "a4"
- ---- K:2 Z: 2
- 1 / 1:"a7" "a8"
- 2 / 2:"a9" "a10"
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1:"c5" "c6"
- 2 / 2:"c7" "c8"
- ---- K:2 Z: 2
- 1 / 1:"d1" "d2"
- 2 / 2:"d3" "d4"
-list is_element_of_str (axy[k=1:2,j=1:2], "a10")
- VARIABLE : IS_ELEMENT_OF_STR (AXY[K=1:2,J=1:2], "a10")
- FILENAME : string4d.nc
- X : 1
- 1.000
-list is_element_of_str (axy[k=1:2,j=1:2], "A10")
- VARIABLE : IS_ELEMENT_OF_STR (AXY[K=1:2,J=1:2], "A10")
- FILENAME : string4d.nc
- X : 1
- 0.0000
-list is_element_of_str (axy[k=1:2,j=1:2], {"B0", "QQ", "d4", "m5"})
- VARIABLE : IS_ELEMENT_OF_STR (AXY[K=1:2,J=1:2], {"B0", "QQ", "d4", "m5"})
- FILENAME : string4d.nc
- X : 1
- 1.000
-list element_index_str (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
- VARIABLE : ELEMENT_INDEX_STR (AXY[K=1:2,J=1:2], {"a10", "a2", "d4", "c5"})
- FILENAME : string4d.nc
- SUBSET : 2 by 2 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: .... 2.000
- 2 / 2: .... ....
- ---- K:2 Z: 2
- 1 / 1: .... ....
- 2 / 2: .... 1.000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 4.000 ....
- 2 / 2: .... ....
- ---- K:2 Z: 2
- 1 / 1: .... ....
- 2 / 2: .... 3.000
-
-list is_element_of_str_n (axy[k=1:2,j=1:2], "a10")
- VARIABLE : IS_ELEMENT_OF_STR_N (AXY[K=1:2,J=1:2], "a10")
- FILENAME : string4d.nc
- X : 1
- 1.000
-list is_element_of_str_n (axy[k=1:2,j=1:2], "A10")
- VARIABLE : IS_ELEMENT_OF_STR_N (AXY[K=1:2,J=1:2], "A10")
- FILENAME : string4d.nc
- X : 1
- 2.000
-list is_element_of_str_n (axy[k=1:2,j=1:2], {"B0", "QQ", "d4", "m5"})
- VARIABLE : IS_ELEMENT_OF_STR_N (AXY[K=1:2,J=1:2], {"B0", "QQ", "d4", "m5"})
- FILENAME : string4d.nc
- X : 1
- 1.000
-list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
- VARIABLE : ELEMENT_INDEX_STR_N (AXY[K=1:2,J=1:2], {"a10", "a2", "d4", "c5"})
- FILENAME : string4d.nc
- SUBSET : 2 by 2 by 2 by 2 points (X-Y-Z-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- ---- K:1 Z: 1
- 1 / 1: .... 2.000
- 2 / 2: .... ....
- ---- K:2 Z: 2
- 1 / 1: .... ....
- 2 / 2: .... 1.000
- ---- L:2 T: 2
- ---- K:1 Z: 1
- 1 / 1: 4.000 ....
- 2 / 2: .... ....
- ---- K:2 Z: 2
- 1 / 1: .... ....
- 2 / 2: .... 3.000
-
-
-GO bn_reset
-cancel mode verify
-GO bn_long_revision_num.jnl
-! bn_long_revision_num.jnl
-! ACM 8/30/05
-! revision numbers were previously limited to 2 decimal places: v5.81
-! Now they can be longer, for minor revisions between releases: v5.8101
-
-! ferret version
-sh sym FERRET_VERSION
-FERRET_VERSION = "6.85"
-
-! history attribute
-let a = 12
-sp echo "bn_long_revision_num.jnl --- history attribute" >> all_ncdump.out
-save/clobber/file=revision.nc a; sp ncdump revision.nc | grep history >> all_ncdump.out
-
-! label in upper right
-go ptest; sh sym lab1
-! Description: create a simple test line plot
-
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
-
-LAB1 = "X : 0.5 to 314.5"
-
-! show commands without an argument, lists version number at the top
-sho command
- Commands in Program FERRET version6.85:
- SET
- SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE
- SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
- SET VIEWPORT
- SET EXPRSION
- SET LIST/PRECISIO/FILE/FORMAT/APPEND/HEADING/NCFORMAT/ENDIAN/DEFLATE/SHUFFLE
- /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/OUTTYPE
- SET DATA/EZ/VARIABLE/TITLE/FORMAT/GRID/SKIP/COLUMNS/SAVE/RESTORE/ORDER
- /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
- SET MODE/LAST
- SET MOVI/FILE/COMPRESS/LASER/START
- SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
- SET GRID/SAVE/RESTORE
- SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE
- SET MEMORY/SIZE
- SET ATTRIBUT/TYPE/DATASET/OUTPUT/LIKE
- SET NCCACHE/SIZE/NELEMS/PREEMPT
- SET REDIRECT/TEE/JOURNAL/FILE/APPEND/CLOBBER
- SET GIFFILE
- SHOW/ALL
- SHOW WINDOW/ALL
- SHOW REGION/ALL
- SHOW AXIS/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/XML/OUTFILE/APPEND/CLOBBER
- SHOW EXPRSION/ALL
- SHOW LIST/ALL
- SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
- /HIDDEN
- SHOW MODE/ALL
- SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE
- SHOW COMMANDS/ALL
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
- SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
- SHOW VIEWPORT/ALL
- SHOW TRANFORM/ALL
- SHOW ALIAS/ALL
- SHOW SYMBOL/ALL
- SHOW ATTRIBUT/ALL/DATASET/OUTPUT
- SHOW NCCACHE
- SHOW GIFFILE
- SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
- SHOW QUERIES/ALL
- CANCEL
- CANCEL WIND/ALL
- CANCEL REGION/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F
- CANCEL MEMORY/ALL/TEMPORY/PERMANT
- CANCEL EXPRSION/ALL
- CANCEL LIST/ALL/PRECISIO/FILE/FORMAT/HEADING/APPEND/OUTTYPE
- CANCEL DATA/ALL/NOERROR
- CANCEL MODE
- CANCEL MOVIE/ALL
- CANCEL VIEWPORT
- CANCEL VARIABLE/ALL/DATASET
- CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
- CANCEL GRID
- CANCEL ATTRIBUT/OUTPUT/DATA
- CANCEL REDIRECT
- CANCEL ALIAS/ALL
- CANCEL SYMBOL/ALL
- CANCEL NCCACHE
- CONTOUR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/FILL/LINE
- /NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/COLOR
- /NOAXES/PATTERN/SIZE/SPACING/SIGDIG/PEN/HLIMITS/VLIMITS/AXES/HGRATICU
- /VGRATICU/GRATICUL/MODULO
- LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/D/HEADING/NOHEAD/SINGLE/FILE/APPEND/ORDER
- /FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS/MLIMITS
- /NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS/CLOBBER
- /QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT/XCHUNK
- /YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN/OUTTYPE
- PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/VS/SYMBOL
- /NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE/NOAXES/STEP
- /DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG/GRATICUL/NOKEY
- /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING
- GO/HELP
- HELP
- LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
- DEFINE
- DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
- /DL/DM/DN
- DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
- DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
- DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
- /EDGES/CALENDAR/BOUNDS/QUIET
- DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
- DEFINE ALIAS
- DEFINE SYMBOL
- DEFINE ATTRIBUT/D/TYPE/OUTPUT
- DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
- EXIT/COMMAND/LOOP/SCRIPT/PROMPT/PROGRAM/CYCLE/TOPYTHON
- MESSAGE/CONTINUE/QUIET/JOURNAL/ERROR/OUTFILE/APPEND/CLOBBER
- VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/ASPECT/NOLABEL
- /LENGTH/XSKIP/YSKIP/THICK/XLIMITS/YLIMITS/TITLE/COLOR/NOAXES/NOKEY
- /FLOWLINE/DENSITY/AXES/PEN/HLIMITS/VLIMITS/HGRATICU/VGRATICU/GRATICUL
- /KEY/MODULO
- PPLUS/RESET
- FRAME/FORMAT/FILE/TRANSPAR
- REPEAT/I/J/K/L/M/N/X/Y/Z/T/E/F/ANIMATE/LOOP/RANGE/NAME
- STAT/BRIEF/I/J/K/L/M/N/X/Y/Z/T/E/F/D
- SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/TRIM/LINE
- /NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/AXES/NOAXES
- /PATTERN/HGRATICU/VGRATICU/GRATICUL/MODULO/HLIMITS/VLIMITS
- SPAWN
- USER/OPT1/OPT2/COMMAND/I/J/K/L/X/Y/Z/T/D/FILE/FORMAT
- WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/VIEWPOIN/ZLIMITS/TRANPOSE
- /NOLABEL/ZSCALE/TITLE
- QUERY/ALL/FILE/IGNORE
- IF
- ELSE
- ELIF
- ENDIF
- POLYGON/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/COORD_AX
- /NOLABEL/LEVELS/LINE/COLOR/PALETTE/XLIMITS/YLIMITS/TITLE/THICKNES
- /NOAXES/PATTERN/FILL/KEY/NOKEY/AXES/HLIMITS/VLIMITS/HLOG/VLOG
- /HGRATICU/VGRATICU/GRATICUL/MODULO
-
- Use SHOW ALIAS to see alternative command names
-
-GO bn_reset
-cancel mode verify
-GO bn_window_title.jnl
-! bn_window_title.jnl
-! Define a title for windows rather than just FERRET_1, FERRET_2, ...
-! If no title is set, use SESSION_DATE:SESSION_TIME
-
-go ptest
-! Description: create a simple test line plot
-
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
-
-sh sym win_title
-WIN_TITLE = "12-Nov-13:15:12"
-
-set win/title="set the title"
-sho sym win_title
-WIN_TITLE = "set_the_title"
-
-go ptest
-! Description: create a simple test line plot
-
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
-
-set win/new
-set win/title=""/new
-sho sym win_title
-WIN_TITLE = "_"
-
-set win/title="($session_date):($session_time)"
- !-> set win/title="12-Nov-13:15:12"
-
-! If the date or time starts with a blank then we get an extra
-! underscore in the window title. Evaluating the symbols into
-! new ones gets rid of this blank at the start.
-! the symbols session_date and session_time may have been canceled.
-! If so substitute another string.
-
-DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 12-Nov-13
-DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 15:12
-SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="12-Nov-13:15:12"
-
-can win/all
-set win/new
-sh sym win_title
-WIN_TITLE = "12-Nov-13:15:12"
-
-GO bn_reset
-cancel mode verify
-GO bn_last_error.jnl
-! bn_last_error.jnl
-! acm Nov 2005
-!
-! - test the symbol FER_LAST_ERROR (Commands from various bn scripts)
-
-
-
-SET MODE IGNORE_ERRORS
-
-LIST/ORDER=X IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333 ! err
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333 \Cannot use multiple IFs in an expression "
-
-
-LET A = IF I LT 5 THEN I ELSE -9
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**ERROR: command syntax: IF I LT 5 THEN I ELSE -9 \ELSE before - is illegal\negative constants need to be enclosed in parentheses "
-
-
-load a1,a2,a3
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**ERROR: variable unknown or not in data set: A1 "
-
-set data nofile.nc
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**TMAP ERR: non-existent or not on line nofile.nc "
-
-
-! Repeat/range errors
-repeat/name=a (say `a`)
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**ERROR: invalid command: REPEAT/NAME requires /RANGE "
-
-
-! Cannot use pseudo-variables.
-repeat/range=1:3/name=L (use coads_climatology; list/nohead [sst=I=1,j=1])
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**ERROR: command syntax: L is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/L= "
-
-
-! external function errors via ef_bail_out
-
-! This bails out w/Time axis error
-USE "coads_vwnd.cdf"
-SET REGION/I=90/J=65
-LET vw_fft = ffta(vwnd[l=37:60])
-LOAD vw_fft
-SHOW SYM FER_LAST_ERROR
-FER_LAST_ERROR = "**ERROR: error in external function. Bailing out of external function FFTA\ Time axis must be a regular axis"
-
-
-SET MODE/LAST IGNORE_ERROR
-
-GO bn_reset
-cancel mode verify
-GO bn_deg_min.jnl
-! bn_deg_min.jnl
-! label axes with degrees and minutes rather than degrees and decimal degrees.
-! 19-May-06 add seconds as well...
-
-use ss_small.nc
-
-shade/set/x=222.9:223.1/y=58.22:59.1 rose
-ppl xfor (dm)
-ppl yfor (dm)
-ppl shade
-
-! plot/vs plots
-
-let xpts= {144.616,144.621,144.651,144.658,144.660,144.664,144.670,144.670,144.672,144.674,144.676,144.677,144.678,144.679,144.683,144.685,144.686,144.687,144.688,144.690,144.691,144.692,144.693,144.693,144.694,144.694,144.695,144.696,144.697,144.698}
-let ypts= {32.3793,32.3279,32.308,32.3972,32.3938,32.3958,32.3112,32.3924,32.309,32.3095,32.3828,32.3135,32.3861,32.385,32.3265,32.3264,32.3821,32.3772,32.355,32.3657,32.3691,32.3371,32.3495,32.3672,32.3458,32.3625,32.3604,32.3518,32.3643,32.3531}
-
-set var/units=degrees_east/title="longitudes" xpts
-set var/units=degrees_north/title="latitudes" ypts
-
-plot/vs/set xpts, ypts
-ppl xfor (dm)
-ppl yfor (dm)
-ppl plot
-
-! DMS degrees-minutes-seconds
-plot/vs/set xpts, ypts
-ppl xfor (dms)
-ppl yfor (dms)
-ppl axlint,3,1
-ppl plot
-
-! Restore the default settings
-ppl axlint,2,2
-
-GO bn_reset
-cancel mode verify
-GO bn_dp_readscale.jnl
-! bn_dp_readscale.jnl
-! 9-Feb-2006 ACM
-
-! When there is a double precision variable,
-! and when the user specifies an offset, read the
-! variable in double precision, apply the offset and
-! then convert to single precision. When plotting
-! the user specifies the offset to add back to the
-! axis labels.
-
-set list/prec=8
-
-use adouble.nc
-
-list xax
- VARIABLE : test double prec. data
- FILENAME : adouble.nc
- SUBSET : 10 points (X)
- 1 / 1: 140.00000
- 2 / 2: 140.00000
- 3 / 3: 140.00000
- 4 / 4: 140.00000
- 5 / 5: 140.00000
- 6 / 6: 140.00001
- 7 / 7: 140.00010
- 8 / 8: 140.00100
- 9 / 9: 140.01000
- 10 / 10: 140.10000
-let xlon = 140
-
-! Now read xax with an offset
-set var/offset=`-1*xlon` xax
- !-> set var/offset=-140 xax
-can mem
-
-list xax
- VARIABLE : test double prec. data
- FILENAME : adouble.nc
- SUBSET : 10 points (X)
- 1 / 1: 0.000000000
- 2 / 2: 0.000000001
- 3 / 3: 0.000000010
- 4 / 4: 0.000000100
- 5 / 5: 0.000001000
- 6 / 6: 0.000010000
- 7 / 7: 0.000100000
- 8 / 8: 0.001000000
- 9 / 9: 0.010000000
- 10 / 10: 0.100000000
-
-! define an axis from xax
-define axis/x/units=lon xir = xax
-let pvar = yvar[gx=xir at asn]
-
-! Plot, adding back the offset on axis labels.
-plot/set/color=red/line/sym=22 pvar
-ppl xvaloff `xlon`
- !-> ppl xvaloff 140
-ppl plot
-
-! Test a 2-D double precision variable
-can data/all
-use adouble_2D.nc
-set var/offset=`-1*xlon` xax
- !-> set var/offset=-140 xax
-list xax
- VARIABLE : test double prec. data
- FILENAME : adouble_2D.nc
- SUBSET : 5 by 2 points (X-Y)
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: 0.000000000 0.000000001 0.000000010 0.000000100 0.000001000
- 2 / 2: 0.000010000 0.000100000 0.001000000 0.010000000 0.100000000
-
-cancel list/precision
-
-GO bn_reset
-cancel mode verify
-GO bn_bounds_defineax.jnl
-! bn_bounds_defineax.jnl
-! 3/22/2006
-! Previously only allowed 2*N definition of bounds in DEFINE AXIS/BOUNDS
-! Now allow N+1 definition of bounds, or three equal-lenght lists of
-! coords, lo_bounds, hi_bounds
-!
-! Define an axis using bounds. Note the coordinates need not be
-! centered in the axis cells.
-
-def axis/t/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5, 1.5,2.5, 2.5,3.5, 3.5,6.5, 6.5,7.5, 7.5,8.5, 8.5,9.5}
-list t[gt=tax], tboxlo[gt=tax], tboxhi[gt=tax], tbox[gt=tax]
- T: 0.5 to 9.5
- Column 1: T is T (axis TAX)
- Column 2: TBOXLO is TBOXLO (axis TAX)
- Column 3: TBOXHI is TBOXHI (axis TAX)
- Column 4: TBOX is TBOX (axis TAX)
- T TBOXLO TBOXHI TBOX
-1.2 / 1: 1.200 0.500 1.500 1.000
-2 / 2: 2.000 1.500 2.500 1.000
-3.2 / 3: 3.200 2.500 3.500 1.000
-5 / 4: 5.000 3.500 6.500 3.000
-7 / 5: 7.000 6.500 7.500 1.000
-8.4 / 6: 8.400 7.500 8.500 1.000
-9 / 7: 9.000 8.500 9.500 1.000
-
-def axis/t/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
-list t[gt=tax], tboxlo[gt=tax], tboxhi[gt=tax], tbox[gt=tax]
- T: 0.5 to 9.5
- Column 1: T is T (axis TAX)
- Column 2: TBOXLO is TBOXLO (axis TAX)
- Column 3: TBOXHI is TBOXHI (axis TAX)
- Column 4: TBOX is TBOX (axis TAX)
- T TBOXLO TBOXHI TBOX
-1.2 / 1: 1.200 0.500 1.500 1.000
-2 / 2: 2.000 1.500 2.500 1.000
-3.2 / 3: 3.200 2.500 3.500 1.000
-5 / 4: 5.000 3.500 6.500 3.000
-7 / 5: 7.000 6.500 7.500 1.000
-8.4 / 6: 8.400 7.500 8.500 1.000
-9 / 7: 9.000 8.500 9.500 1.000
-
-! test of DEPTH axis
-
-def axis/x xax = {1,2,5,6,7,8}
-def axis/z/depth/bounds zax = {0,20,50,75,120}, {0,10,30,60,90,150}
-def axis/t tax = {1,2,9,10,11}
-let v = x[gx=xax] +z[gz=zax] + t[gt=tax]
-save/clobber/file=irrxzt.nc v
-sp echo "bn_bounds_defineax.jnl --- N+1 def of bounds." >> all_ncdump.out
-sp ncdump irrxzt.nc >> all_ncdump.out
-
-! 3-argument bounds definitions
-def axis/z/bounds zax={1,2,4,8,16,32,64,128}, {0.5,1.5,2.5,4.5,8.5,16.5,32.5,64.5}, {1.5,2.5,4.5,8.5,16.5,32.5,64.5,200}
-list zboxlo[gz=zax], z[gz=zax], zboxhi[gz=zax]
- Z: 0.5 to 200
- Column 1: ZBOXLO is ZBOXLO (axis ZAX)
- Column 2: Z is Z (axis ZAX)
- Column 3: ZBOXHI is ZBOXHI (axis ZAX)
- ZBOXLO Z ZBOXHI
-1 / 1: 0.50 1.0 1.5
-2 / 2: 1.50 2.0 2.5
-4 / 3: 2.50 4.0 4.5
-8 / 4: 4.50 8.0 8.5
-16 / 5: 8.50 16.0 16.5
-32 / 6: 16.50 32.0 32.5
-64 / 7: 32.50 64.0 64.5
-128 / 8: 64.50 128.0 200.0
-
-
-! define some new bounds by subsampling:
-
-let n = `z[gz=zax],return=ksize`
- !-> DEFINE VARIABLE n = 8
-
-! Note this syntax --let zl2 = zboxlo[gz=zax,k=1:`1+n-2`:2]--
-! creates a new axis [gz=zax,k=1:`1+n-2`:2]
-! and computes its zboxlo. Instead make varibles containing
-! the bounds and sample those variables.
-
-let boxlo = zboxlo[gz=zax]
-let boxhi = zboxhi[gz=zax]
-let zl2 = boxlo[k=1:`1+n-2`:2]
- !-> DEFINE VARIABLE zl2 = boxlo[k=1:7:2]
-let zh2 = boxhi[k=2:`n`:2]
- !-> DEFINE VARIABLE zh2 = boxhi[k=2:8:2]
-
-list zl2,(zl2+zh2)/2,zh2
- WARNING: Listed variables have ambiguous coordinates on axes: Z
- Column 1: ZL2 is BOXLO[K=1:7:2]
- Column 2: EX#2 is (ZL2+ZH2)/2
- Column 3: ZH2 is BOXHI[K=2:8:2]
- ZL2 EX#2 ZH2
-K / 1: 0.50 1.5 2.5
-K / 2: 2.50 5.5 8.5
-K / 3: 8.50 20.5 32.5
-K / 4: 32.50 116.3 200.0
-def axis/z/bounds zax2 = (zl2+zh2)/2, zl2, zh2
-
-list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
- Z: 0.5 to 200
- Column 1: ZBOXLO is ZBOXLO (axis ZAX2)
- Column 2: Z is Z (axis ZAX2)
- Column 3: ZBOXHI is ZBOXHI (axis ZAX2)
- ZBOXLO Z ZBOXHI
-1.5 / 1: 0.50 1.5 2.5
-5.5 / 2: 2.50 5.5 8.5
-20.5 / 3: 8.50 20.5 32.5
-116.3 / 4: 32.50 116.3 200.0
-
-use gt4d011
-
-! define some new bounds by subsampling:
-
-let n = `z[gz=temp],return=ksize`
- !-> DEFINE VARIABLE n = 27
-
-let boxlo = zboxlo[gz=temp]
-let boxhi = zboxhi[gz=temp]
-let zl2 = boxlo[k=1:`1+n-2`:2]
- !-> DEFINE VARIABLE zl2 = boxlo[k=1:26:2]
-let zh2 = boxhi[k=2:`n`:2]
- !-> DEFINE VARIABLE zh2 = boxhi[k=2:27:2]
-
-list zl2,(zl2+zh2)/2,zh2
- WARNING: Listed variables have ambiguous coordinates on axes: Z
- DATA SET: ./gt4d011.cdf
- Column 1: ZL2[Z=0:3174] is BOXLO[K=1:26:2]
- Column 2: EX#2 is (ZL2+ZH2)/2
- Column 3: ZH2[Z=0:4149] is BOXHI[K=2:27:2]
- ZL2 EX#2 ZH2
-K / 1: 0. 10. 20.
-K / 2: 20. 30. 40.
-K / 3: 40. 50. 60.
-K / 4: 60. 70. 80.
-K / 5: 80. 90. 100.
-K / 6: 100. 114. 128.
-K / 7: 128. 146. 165.
-K / 8: 165. 193. 220.
-K / 9: 220. 269. 317.
-K / 10: 317. 438. 559.
-K / 11: 559. 859. 1158.
-K / 12: 1158. 1679. 2199.
-K / 13: 2199. 2849. 3499.
-def axis/z/bounds zax2 = (zl2+zh2)/2, zl2, zh2
-
-! original axis
-list zboxlo[gz=temp], z[gz=temp], zboxhi[gz=temp]
- DATA SET: ./gt4d011.cdf
- DEPTH (m): 0 to 4149
- Column 1: ZBOXLO is ZBOXLO (axis PSZT1)
- Column 2: Z is Z (axis PSZT1)
- Column 3: ZBOXHI is ZBOXHI (axis PSZT1)
- ZBOXLO Z ZBOXHI
-5 / 1: 0. 5. 10.
-15 / 2: 10. 15. 20.
-25 / 3: 20. 25. 30.
-35 / 4: 30. 35. 40.
-45 / 5: 40. 45. 50.
-55 / 6: 50. 55. 60.
-65 / 7: 60. 65. 70.
-75 / 8: 70. 75. 80.
-85 / 9: 80. 85. 90.
-95 / 10: 90. 95. 100.
-106.3 / 11: 100. 106. 113.
-120 / 12: 113. 120. 128.
-136.3 / 13: 128. 136. 145.
-155 / 14: 145. 155. 165.
-177.5 / 15: 165. 178. 190.
-205 / 16: 190. 205. 220.
-240 / 17: 220. 240. 260.
-288.5 / 18: 260. 289. 317.
-362.5 / 19: 317. 363. 408.
-483.5 / 20: 408. 484. 559.
-680 / 21: 559. 680. 801.
-979.5 / 22: 801. 980. 1158.
-1395.5 / 23: 1158. 1396. 1633.
-1916 / 24: 1633. 1916. 2199.
-2524 / 25: 2199. 2524. 2849.
-3174 / 26: 2849. 3174. 3499.
-3824 / 27: 3499. 3824. 4149.
-
-! sampled axis
-list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
- Z: 0 to 3499
- Column 1: ZBOXLO is ZBOXLO (axis ZAX2)
- Column 2: Z is Z (axis ZAX2)
- Column 3: ZBOXHI is ZBOXHI (axis ZAX2)
- ZBOXLO Z ZBOXHI
-10 / 1: 0. 10. 20.
-30 / 2: 20. 30. 40.
-50 / 3: 40. 50. 60.
-70 / 4: 60. 70. 80.
-90 / 5: 80. 90. 100.
-113.8 / 6: 100. 114. 128.
-146.3 / 7: 128. 146. 165.
-192.5 / 8: 165. 193. 220.
-268.5 / 9: 220. 269. 317.
-438 / 10: 317. 438. 559.
-858.5 / 11: 559. 859. 1158.
-1678.5 / 12: 1158. 1679. 2199.
-2849 / 13: 2199. 2849. 3499.
-
-go bn_reset
-cancel mode verify
-go bn_attributes.jnl
-! bn_attributes
-! test attribute handling on netcdf intput/output and
-! programatic access to attribute information
-! needs new cdf files modfalse.nc, test0.nc
-
-! 31Aug2006 ACM Remove OPeNDAP references; not essential to the
-! benchmark tests.
-
-
-!-----
-
-! SHOW ATTRIBUTE examples
-
-can data/all
-can var/all
-
-use ocean_atlas_temp
-sho att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature
- TEMP.history = From ocean_atlas_monthly
- TEMP.units = Deg C
-
-show attribute temp.units
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.units = Deg C
-show attribute temp.missing_value
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
-
-! specifying data set
-
-use gt4d011
-use levitus_climatology
-
-sh att/all temp[d=2]
- attributes for dataset: ./gt4d011.cdf
- TEMP.parent_grid = PS3DT2
- TEMP.slab_min_index = 91, 35, 1, 0
- TEMP.slab_max_index = 108, 56, 10, 0
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = TEMPERATURE
- TEMP.history = From gt4d011
- TEMP.units = deg. C
-sh att temp.units[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.units = Deg C
-
-! global attributes
-use err491_attval
-
-show att ..remark
- attributes for dataset: ./err491_attval.cdf
- .remark = Generated by oar3d
-show att/all .
- attributes for dataset: ./err491_attval.cdf
- ..simulation = K-Bay OAR3d model (200m)
- ..start_date = 980105000000
- ..history = a
-
- ..option = 1
- ..run_mode = 3
- ..srfc_bndry = 3
- ..rad_penet = 2
- ..dt_external = 1
- ..dt_internal = 15
- ..horiz_diff = 0.2
- ..inv_prandtl = 0.2
- ..min_slope = 0.2
- ..title = K-Bay OAR3d model (200m)
- ..command =
- ..remark = Generated by oar3d
- ..x_units = degrees
- ..y_units = degrees
- ..z_units =
- ..nx = 35
- ..ny = 127
- ..x_min = 0
- ..x_max = 0
- ..y_min = 0
- ..y_max = 0
- ..z_min = 0
- ..z_max = 0
- ..x_inc = 0
- ..y_inc = 0
- ..z_scale_factor = 0
- ..z_add_offset = 0
- ..node_offset = 0
-
-sho att/all .[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
- ..history = FERRET V4.90 (GUI) 04-Feb-98
-
-! Now SHOW DATA/ATT
-
-can data/all
-use ocean_atlas_temp
-sho data/att
- currently SET data sets:
- 1> ./ocean_atlas_temp.cdf (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 28 T FERRET V4.90 (GUI) 04-Feb-98
-
-(XAX_LEV9421_380) DOUBLE units CHAR 12 T degrees_east
- modulo CHAR 1 T
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 15 F XAX_LEV9421_380
-
-(YAX_LEV94) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 9 F YAX_LEV94
-
-(ZAXLEVIT191_1) DOUBLE units CHAR 6 T METERS
- positive CHAR 4 T down
- orig_file_axnameCHAR 13 F ZAXLEVIT191_1
-
-(TIME3) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo CHAR 1 T
- orig_file_axnameCHAR 4 F TIME
-
- TEMP FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 11 T Temperature
- history CHAR 24 T From ocean_atlas_monthly
- units CHAR 5 T Deg C
-
-
-use gt4d011
-use levitus_climatology
-
-sh data/att gt4d011
- currently SET data sets:
- 2> ./gt4d011.cdf
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 28 T FERRET V4.45 (GUI) 21-Apr-97
-
- PS3DT2 CHAR axes CHAR 20 F PSXT PSYT PSZT TIME1
-
-(PSXT1) DOUBLE units CHAR 12 T degrees_east
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 4 F PSXT
-
-(PSYT1) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 6 T uneven
- edges CHAR 9 F PSYTedges
- orig_file_axnameCHAR 4 F PSYT
-
-(PSYTedges) DOUBLE edges CHAR 1 F
- orig_file_axnameCHAR 9 F PSYTedges
-
-(PSZT1) DOUBLE units CHAR 6 T METERS
- positive CHAR 4 T down
- point_spacing CHAR 6 T uneven
- edges CHAR 9 F PSZTedges
- orig_file_axnameCHAR 4 F PSZT
-
-(PSZTedges) DOUBLE edges CHAR 1 F
- orig_file_axnameCHAR 9 F PSZTedges
-
-(TIME11) DOUBLE units CHAR 30 T hour since 1980-01-14 14:00:00
- time_origin CHAR 20 T 14-JAN-1980 14:00:00
- orig_file_axnameCHAR 5 F TIME1
-
-(PSXT91_108) DOUBLE child_axis CHAR 1 F
- units CHAR 12 T degrees_east
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 10 F PSXT91_108
-
-(PSYT35_56) DOUBLE child_axis CHAR 1 F
- units CHAR 13 T degrees_north
- orig_file_axnameCHAR 9 F PSYT35_56
-
-(PSZT1_10) DOUBLE child_axis CHAR 1 F
- units CHAR 6 T METERS
- positive CHAR 4 T down
- orig_file_axnameCHAR 8 F PSZT1_10
-
- TEMP FLOAT parent_grid CHAR 6 F PS3DT2
- slab_min_index INT 4 F 91 35 1 0
- slab_max_index INT 4 F 108 56 10 0
- missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 11 T TEMPERATURE
- history CHAR 12 T From gt4d011
- units CHAR 6 T deg. C
-
-(PSYT35_55) DOUBLE child_axis CHAR 1 F
- units CHAR 13 T degrees_north
- orig_file_axnameCHAR 9 F PSYT35_55
-
- SALT FLOAT parent_grid CHAR 6 F PS3DT2
- slab_min_index INT 4 F 91 35 1 0
- slab_max_index INT 4 F 108 55 10 0
- missing_value FLOAT 1 T 0.01
- _FillValue FLOAT 1 T 0.01
- long_name CHAR 26 T (SALINITY(ppt) - 35) /1000
- history CHAR 12 T From gt4d011
- units CHAR 22 T frac. by wt. less .035
-
- PS3DU2 CHAR axes CHAR 20 F PSXU PSYU PSZT TIME1
-
-(PSXU) DOUBLE units CHAR 12 T degrees_east
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 4 F PSXU
-
-(PSYU) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 6 T uneven
- edges CHAR 9 F PSYUedges
- orig_file_axnameCHAR 4 F PSYU
-
-(PSYUedges) DOUBLE edges CHAR 1 F
- orig_file_axnameCHAR 9 F PSYUedges
-
-(PSXU91_108) DOUBLE child_axis CHAR 1 F
- units CHAR 12 T degrees_east
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 10 F PSXU91_108
-
-(PSYU35_55) DOUBLE child_axis CHAR 1 F
- units CHAR 13 T degrees_north
- orig_file_axnameCHAR 9 F PSYU35_55
-
- U FLOAT parent_grid CHAR 6 F PS3DU2
- slab_min_index INT 4 F 91 35 1 0
- slab_max_index INT 4 F 108 55 10 0
- missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 14 T ZONAL VELOCITY
- history CHAR 12 T From gt4d011
- units CHAR 6 T cm/sec
-
- V FLOAT parent_grid CHAR 6 F PS3DU2
- slab_min_index INT 4 F 91 35 1 0
- slab_max_index INT 4 F 108 55 10 0
- missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 19 T MERIDIONAL VELOCITY
- history CHAR 12 T From gt4d011
- units CHAR 6 T cm/sec
-
- PS3DW2 CHAR axes CHAR 20 F PSXT PSYT PSZW TIME1
-
-(PSZW) DOUBLE units CHAR 6 T METERS
- positive CHAR 4 T down
- point_spacing CHAR 6 T uneven
- edges CHAR 9 F PSZWedges
- orig_file_axnameCHAR 4 F PSZW
-
-(PSZWedges) DOUBLE edges CHAR 1 F
- orig_file_axnameCHAR 9 F PSZWedges
-
-(PSYT36_55) DOUBLE child_axis CHAR 1 F
- units CHAR 13 T degrees_north
- orig_file_axnameCHAR 9 F PSYT36_55
-
-(PSZW1_10) DOUBLE child_axis CHAR 1 F
- units CHAR 6 T METERS
- positive CHAR 4 T down
- orig_file_axnameCHAR 8 F PSZW1_10
-
- W FLOAT parent_grid CHAR 6 F PS3DW2
- slab_min_index INT 4 F 91 36 1 0
- slab_max_index INT 4 F 108 55 10 0
- missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 17 T VERTICAL VELOCITY
- history CHAR 12 T From gt4d011
- units CHAR 6 T cm/sec
-
- PS2DU2 CHAR axes CHAR 22 F PSXU PSYU NORMAL TIME1
-
- TAUX FLOAT parent_grid CHAR 6 F PS2DU2
- slab_min_index INT 4 F 91 35 1 0
- slab_max_index INT 4 F 108 55 1 0
- missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 17 T ZONAL WIND STRESS
- history CHAR 12 T From gt4d011
- units CHAR 11 T dynes/cm**2
-
- TAUY FLOAT parent_grid CHAR 6 F PS2DU2
- slab_min_index INT 4 F 91 35 1 0
- slab_max_index INT 4 F 108 55 1 0
- missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 22 T MERIDIONAL WIND STRESS
- history CHAR 12 T From gt4d011
- units CHAR 11 T dynes/cm**2
-
-(PSYU35_56) DOUBLE child_axis CHAR 1 F
- units CHAR 13 T degrees_north
- orig_file_axnameCHAR 9 F PSYU35_56
-
- PSI FLOAT parent_grid CHAR 6 F PS2DU2
- slab_min_index INT 4 F 91 35 1 0
- slab_max_index INT 4 F 108 56 1 0
- missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 15 T STREAM FUNCTION
- history CHAR 12 T From gt4d011
- units CHAR 9 T cm**3/sec
-
-
-! error messages
-
-set mode ignore
-
-! no argument
-sho att/all
-
-! dataset not open
-can data 2
-show att/all temp[d=2]
-
-! variable not in default dataset
-use ocean_atlas_temp
-show att/all salt
-
-! nonexistent attribute
-use gt4d011
-sho att salt.nonsense
-
-can data/all
-
-! No datasets open
-sho att/all .
-
-can mode ignore
-
-go bn_reset
-cancel mode verify
-
-!-----
-! attributes of string variables
-let/title="my strings" var_b = {"Seattle", "Skykomish", "Snoqualmie"}
-sho att/all var_b
- attributes for user-defined variables
- var_b.long_name = my strings
- var_b.missing_value = -1.E+34
-
-save/clobber/file=a.nc var_b
-sp echo "bn_attributes.jnl --- 1 attributes of string variables" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-
-go bn_reset
-cancel mode verify
-
-!-----
-! Demonstrate `var,return=` output for attributes
-
-use gt4d011
-
-! RETURN=size gives length of attribute:
-! # values for numeric attributes
-! string length for string attributes
-
-show att/all temp
- attributes for dataset: ./gt4d011.cdf
- TEMP.parent_grid = PS3DT2
- TEMP.slab_min_index = 91, 35, 1, 0
- TEMP.slab_max_index = 108, 56, 10, 0
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = TEMPERATURE
- TEMP.history = From gt4d011
- TEMP.units = deg. C
-
-say `temp.2,return=size`
- !-> MESSAGE/CONTINUE 4
-4
-say `temp.6,return=size`
- !-> MESSAGE/CONTINUE 11
-11
-
-say `..history,return=size`
- !-> MESSAGE/CONTINUE 28
-28
-
-! test0 is from the netcdf distribution;
-! vars and attrs of all types
-use test0
-say `broiled.acd,return=size`
- !-> MESSAGE/CONTINUE 2
-2
-say `broiled.acf,return=size`
- !-> MESSAGE/CONTINUE 3
-3
-
-go bn_reset
-cancel mode verify
-
-!-----
-! define variables to contain attribute value(s)
-
-use ocean_atlas_temp
-let a = temp.missing_value
-list a
- VARIABLE : TEMP.MISSING_VALUE
- FILENAME : ocean_atlas_temp.cdf
- -1.000E+34
-
-use ocean_atlas_temp
-let s = temp.units
-list s
- VARIABLE : TEMP.UNITS
- FILENAME : ocean_atlas_temp.cdf
- "Deg C"
-
-can data/all
-
-! global attribute
-use err491_attval
-let s = ..remark
-list s
- VARIABLE : ..REMARK
- DATA SET : K-Bay OAR3d model (200m)
- FILENAME : err491_attval.cdf
- "Generated by oar3d "
-
-go bn_reset
-cancel mode verify
-
-!-----
-! Variables containing number of variables, attributes, dimensions,
-! lists of variable names, attribute names, coordinate variables,
-! global attribute names
-
-! Given a variable, return the attribute names
-use coads_climatology
-let nat = sst.nattrs
-
-let anames = sst.attnames
-list nat
- VARIABLE : SST.NATTRS
- FILENAME : coads_climatology.cdf
- 5.000
-list anames
- VARIABLE : SST.ATTNAMES
- FILENAME : coads_climatology.cdf
- SUBSET : 5 points (X)
- 1 / 1:"missing_value"
- 2 / 2:"_FillValue"
- 3 / 3:"long_name"
- 4 / 4:"history"
- 5 / 5:"units"
-
-! Given a variable, return the coordinate number and names
-let nd = sst.ndims
-let cnames = sst.dimnames
-list nd
- VARIABLE : SST.NDIMS
- FILENAME : coads_climatology.cdf
- 3.000
-list cnames
- VARIABLE : SST.DIMNAMES
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- 1 / 1:"COADSX"
- 2 / 2:"COADSY"
- 3 / 3:"TIME4"
-
-! ..varnames
-can data/all
-use gt4d011
-use coads_climatology
-
-let nv = ..nvars
-let nd = ..ndims
-let vnames = ..varnames
-list/d=1 nv, nd
- DATA SET: ./gt4d011.cdf
- Column 1: NV is ..NVARS
- Column 2: ND is ..NDIMS
- NV ND
-I / *: 12.00 21.00
-list/d=1 vnames
- VARIABLE : ..VARNAMES
- FILENAME : gt4d011.cdf
- SUBSET : 12 points (X)
- 1 / 1:"PS3DT2"
- 2 / 2:"TEMP"
- 3 / 3:"SALT"
- 4 / 4:"PS3DU2"
- 5 / 5:"U"
- 6 / 6:"V"
- 7 / 7:"PS3DW2"
- 8 / 8:"W"
- 9 / 9:"PS2DU2"
- 10 / 10:"TAUX"
- 11 / 11:"TAUY"
- 12 / 12:"PSI"
-
-let vnames = ..varnames
-list/d=coads_climatology vnames
- VARIABLE : ..VARNAMES
- FILENAME : coads_climatology.cdf
- "SST"
-list/d=gt4d011 vnames
- VARIABLE : ..VARNAMES
- FILENAME : gt4d011.cdf
- SUBSET : 12 points (X)
- 1 / 1:"PS3DT2"
- 2 / 2:"TEMP"
- 3 / 3:"SALT"
- 4 / 4:"PS3DU2"
- 5 / 5:"U"
- 6 / 6:"V"
- 7 / 7:"PS3DW2"
- 8 / 8:"W"
- 9 / 9:"PS2DU2"
- 10 / 10:"TAUX"
- 11 / 11:"TAUY"
- 12 / 12:"PSI"
-
-can data/all
-can var/all
-
-! global ..dimnames
-
-use coads_climatology
-use gt4d011
-
-let vnames = ..dimnames[d=1]
-let lnames = ..dimnames[d=2]
-list vnames
- VARIABLE : ..DIMNAMES[D=coads_climatology]
- SUBSET : 3 points (X)
- 1 / 1:"COADSX"
- 2 / 2:"COADSY"
- 3 / 3:"TIME4"
-list lnames
- VARIABLE : ..DIMNAMES[D=gt4d011]
- SUBSET : 20 points (X)
- 1 / 1:"PSXT1"
- 2 / 2:"PSYT1"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT1"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME11"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
-
-can var/all
-can data/all
-
-! Global attributes ..attnames
-use err491_attval
-
-let v = ..ndims
-list v
- VARIABLE : ..NDIMS
- DATA SET : K-Bay OAR3d model (200m)
- FILENAME : err491_attval.cdf
- 3.000
-
-let na = ..nattrs
-list na
- VARIABLE : ..NATTRS
- DATA SET : K-Bay OAR3d model (200m)
- FILENAME : err491_attval.cdf
- 31.00
-
-let gnames = ..attnames
-list gnames
- VARIABLE : ..ATTNAMES
- DATA SET : K-Bay OAR3d model (200m)
- FILENAME : err491_attval.cdf
- SUBSET : 31 points (X)
- 1 / 1:"simulation"
- 2 / 2:"start_date"
- 3 / 3:"history"
- 4 / 4:"option"
- 5 / 5:"run_mode"
- 6 / 6:"srfc_bndry"
- 7 / 7:"rad_penet"
- 8 / 8:"dt_external"
- 9 / 9:"dt_internal"
- 10 / 10:"horiz_diff"
- 11 / 11:"inv_prandtl"
- 12 / 12:"min_slope"
- 13 / 13:"title"
- 14 / 14:"command"
- 15 / 15:"remark"
- 16 / 16:"x_units"
- 17 / 17:"y_units"
- 18 / 18:"z_units"
- 19 / 19:"nx"
- 20 / 20:"ny"
- 21 / 21:"x_min"
- 22 / 22:"x_max"
- 23 / 23:"y_min"
- 24 / 24:"y_max"
- 25 / 25:"z_min"
- 26 / 26:"z_max"
- 27 / 27:"x_inc"
- 28 / 28:"y_inc"
- 29 / 29:"z_scale_factor"
- 30 / 30:"z_add_offset"
- 31 / 31:"node_offset"
-
-! attributes of variable number 2
-
-use ocean_atlas_temp
-use gt4d011
-let names = ..varnames
-let anames = `names[i=2]`.attnames
- !-> DEFINE VARIABLE anames = TEMP.attnames
-
-go bn_reset
-cancel mode verify
-
-
-!-----
-! more on number of attributes
-
-can data/all
-can var/all
-
-use ocean_atlas_temp
-let nat = temp.nattrs
-list nat
- VARIABLE : TEMP.NATTRS
- FILENAME : ocean_atlas_temp.cdf
- 5.000
-
-list (`temp,return=xaxis`).nattrs
- !-> list (XAX_LEV9421_380).nattrs
- VARIABLE : (XAX_LEV9421_380).NATTRS
- FILENAME : ocean_atlas_temp.cdf
- 4.000
-
-use gt4d011
-say `temp.nattrs[d=1]`
- !-> MESSAGE/CONTINUE 5
-5
-
-def sym xaxnam "(`temp[d=1],return=xaxis`)"
- !-> def sym xaxnam "(XAX_LEV9421_380)"
-list `($xaxnam).nattrs[d=1]`
- !-> list 4
- VARIABLE : constant
- 4.000
-
-say `(yax_lev94).nattrs[d=1]`
- !-> MESSAGE/CONTINUE 3
-3
-
-go bn_reset
-cancel mode verify
-
-!-----
-! more on access to attribute names and values as variables
-
-use coads_climatology
-use levitus_climatology
-use ocean_atlas_temp
-use gt4d011
-
-let a = temp.units
-list/d=3 a
- VARIABLE : TEMP.UNITS
- FILENAME : ocean_atlas_temp.cdf
- "Deg C"
-
-list temp.units[d=3]
- VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
- FILENAME : ocean_atlas_temp.cdf
- "Deg C"
-list/d=3 temp.history
- VARIABLE : TEMP.HISTORY
- FILENAME : ocean_atlas_temp.cdf
- "From ocean_atlas_monthly"
-
-can data/all
-can var/all
-
-use test0.nc
-sh data/att
- currently SET data sets:
- 1> ./test0.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . glob CHAR 16 F Global attribute
-
- broiled CHAR act CHAR 16 F text string
- 123
- acb BYTE 1 F 10
- acs SHORT 1 F -200
- acl INT 1 F 17000
- acf FLOAT 3 F -2 1 0
- acd DOUBLE 2 F -1 2.718282
-
- the_bullet BYTE
-
- order SHORT
-
- rigue INT
-
- a_loan FLOAT
-
- entendre DOUBLE
-
- cscalar CHAR
-
- dscalar DOUBLE
-
- cnodata CHAR
-
- bnodata BYTE
-
- snodata SHORT
-
- inodata INT
-
- fnodata FLOAT
-
- dnodata DOUBLE
-
-(i) INT orig_file_axnameCHAR 1 F i
-
-(j) FLOAT orig_file_axnameCHAR 1 F j
-
-(l) BYTE orig_file_axnameCHAR 1 F l
-
-
-let a= broiled.acl
-list a
- VARIABLE : BROILED.ACL
- FILENAME : test0.nc
- 17000.
-
-let a= broiled.acf
-list a
- VARIABLE : BROILED.ACF
- FILENAME : test0.nc
- SUBSET : 3 points (X)
- 1 / 1: -2.000
- 2 / 2: 1.000
- 3 / 3: 0.000
-
-list/i=2 a
- VARIABLE : BROILED.ACF
- FILENAME : test0.nc
- X : 2
- 1.000
-
-list a[i=2:3]
- VARIABLE : BROILED.ACF
- FILENAME : test0.nc
- SUBSET : 2 points (X)
- 2 / 2: 1.000
- 3 / 3: 0.000
-
-use coads_climatology
-list sst.dimnames[i=2]
- VARIABLE : SST.DIMNAMES[I=2]
- FILENAME : coads_climatology.cdf
- X : 2
- "COADSY"
-
-list/i=3 sst.dimnames
- VARIABLE : SST.DIMNAMES
- FILENAME : coads_climatology.cdf
- X : 3
- "TIME4"
-let a= sst.dimnames
-
-list a
- VARIABLE : SST.DIMNAMES
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- 1 / 1:"COADSX"
- 2 / 2:"COADSY"
- 3 / 3:"TIME4"
-list a[i=1]
- VARIABLE : SST.DIMNAMES
- FILENAME : coads_climatology.cdf
- X : 1
- "COADSX"
-
-go bn_reset
-cancel mode verify
-
-!-----
-! keyword . to refer to global properties and attributes
-
-use gt4d011
-list ..nvars
- VARIABLE : ..NVARS
- FILENAME : gt4d011.cdf
- 12.00
-
-use coads_climatology
-
-list/d=1 ..nvars
- VARIABLE : ..NVARS
- FILENAME : gt4d011.cdf
- 12.00
-list/d=2 ..nvars
- VARIABLE : ..NVARS
- FILENAME : coads_climatology.cdf
- 1.000
-
-sh data
- currently SET data sets:
- 1> ./gt4d011.cdf
- name title I J K L M N
- TEMP TEMPERATURE 91:108 35:56 1:10 1:25 ... ...
- SALT (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25 ... ...
- U ZONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
- V MERIDIONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
- W VERTICAL VELOCITY 91:108 36:55 1:10 1:25 ... ...
- TAUX ZONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
- TAUY MERIDIONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
- PSI STREAM FUNCTION 91:108 35:56 ... 1:25 ... ...
-
- 2> ./coads_climatology.cdf (default)
- name title I J K L M N
- SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
-
-list/d=2 ..varnames
- VARIABLE : ..VARNAMES
- FILENAME : coads_climatology.cdf
- "SST"
-
-list/d=2 ..dimnames
- VARIABLE : ..DIMNAMES
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- 1 / 1:"COADSX"
- 2 / 2:"COADSY"
- 3 / 3:"TIME4"
-list/d=1 ..dimnames
- VARIABLE : ..DIMNAMES
- FILENAME : gt4d011.cdf
- SUBSET : 20 points (X)
- 1 / 1:"PSXT1"
- 2 / 2:"PSYT1"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT1"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME11"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
-
-list/d=1 ..nattrs
- VARIABLE : ..NATTRS
- FILENAME : gt4d011.cdf
- 1.000
-list/d=1 ..attnames
- VARIABLE : ..ATTNAMES
- FILENAME : gt4d011.cdf
- "history"
-
-list/d=1 ..ndims
- VARIABLE : ..NDIMS
- FILENAME : gt4d011.cdf
- 21.00
-list/d=2 ..ndims
- VARIABLE : ..NDIMS
- FILENAME : coads_climatology.cdf
- 3.000
-
-list ..nvars[d=1]
- VARIABLE : ..NVARS[D=gt4d011]
- FILENAME : gt4d011.cdf
- 12.00
-sh var
- Created by DEFINE VARIABLE:
-
-let pp = ..varnames
-list pp[d=1]
- VARIABLE : ..VARNAMES
- FILENAME : gt4d011.cdf
- SUBSET : 12 points (X)
- 1 / 1:"PS3DT2"
- 2 / 2:"TEMP"
- 3 / 3:"SALT"
- 4 / 4:"PS3DU2"
- 5 / 5:"U"
- 6 / 6:"V"
- 7 / 7:"PS3DW2"
- 8 / 8:"W"
- 9 / 9:"PS2DU2"
- 10 / 10:"TAUX"
- 11 / 11:"TAUY"
- 12 / 12:"PSI"
-
-set data 1
-list/d=2 pp
- VARIABLE : ..VARNAMES
- FILENAME : coads_climatology.cdf
- "SST"
-
-go bn_reset
-cancel mode verify
-
-!-----
-! Editing attributes: add new attributes to a variable.
-
-use ocean_atlas_temp
-def att/type=string temp.strval = 2
-def att/type=float temp.floatval = 22
-def att temp.pp = {1.5, 1.9}
-def att temp.some_text = "some text about the TEMP variable"
-sh att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature
- TEMP.history = From ocean_atlas_monthly
- TEMP.units = Deg C
- TEMP.strval = 2
- TEMP.floatval = 22
- TEMP.pp = 1.5, 1.9
- TEMP.some_text = some text about the TEMP variable
-
-! Now change some existing attributes (this redefines
-! the attribute, behaving like DEFINE AXIS...)
-
-def att temp.pp = {1.5, 1.9, 3.45, 7}
-def att temp.some_text = "some different text"
-sh att temp.pp
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.pp = 1.5, 1.9, 3.45, 7
-let var = temp.some_text
-list/nohead var
- "some different text"
-
-! add an attribute to a variable not in the default dataset
-
-use gt4d011
-def att/D=1 temp.morenew = 2
-sh att/all temp[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature
- TEMP.history = From ocean_atlas_monthly
- TEMP.units = Deg C
- TEMP.strval = 2
- TEMP.floatval = 22
- TEMP.pp = 1.5, 1.9, 3.45, 7
- TEMP.some_text = some different text
- TEMP.morenew = 2
-
-go bn_reset
-cancel mode verify
-
-!-----
-! Edit existing attributes on variables
-
-use ocean_atlas_temp
-sh att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature
- TEMP.history = From ocean_atlas_monthly
- TEMP.units = Deg C
-set att temp.long_name = "set title via SET ATT temp.longname"
-set att temp.units = "Centigrade"
-plot/y=0/l=1 temp
-
-! two settings of the missing value change both the missing and bad flags
-set att temp.missing_value = 12
-set att temp.missing_value = 12
-shade/L=2 temp
-
-!-----
-! access and edit attributes of coordinate variables.
-! Specify names of coord variables inside parentheses
-
-use ocean_atlas_temp
-use coads_climatology
-
-! Get attributes of a coordinate variable
-
-list (coadsx).units
- VARIABLE : (COADSX).UNITS
- FILENAME : coads_climatology.cdf
- "degrees_east"
-list (coadsx).modulo
- VARIABLE : (COADSX).MODULO
- FILENAME : coads_climatology.cdf
- " "
-sho att/all (coadsx)
- attributes for dataset: ./coads_climatology.cdf
- (COADSX).units = degrees_east
- (COADSX).modulo =
- (COADSX).point_spacing = even
- (COADSX).orig_file_axname = COADSX
-
-! Set the attribute output flag
-
-set att/output (coadsx).modulo
-
-! Define a new attribute on a coordinate axis
-
-define att (`sst,return=xaxis`).newatt = 3
- !-> define att (COADSX).newatt = 3
-set att/output (`sst,return=xaxis`).newatt
- !-> set att/output (COADSX).newatt
-save/clobber/file=a.nc/x=130w/y=0 sst
-
-sp echo "bn_attributes.jnl --- 2 access and edit attributes of coordinate variables." >> all_ncdump.out
-sp ncdump -c a.nc >> all_ncdump.out
-
-! modfalse.nc is a file with modulo attribute on x axis
-! explicitly set to FALSE
-
-use modfalse.nc
-set att/output (`sst,return=xaxis`).modulo
- !-> set att/output (COADSX81_81).modulo
-save/clobber/file=a.nc sst
-sp echo "bn_attributes.jnl --- 3 modulo set to false" >> all_ncdump.out
-sp ncdump -c a.nc >> all_ncdump.out
-
-! Reset attributes as in SET AXIS
-
-use gt4d011
-set view left; shade/y=0/L=1 temp
-set att (`temp,return=zaxis`).positive="up"
- !-> set att (PSZT1).positive="up"
-set view right; shade/y=0/L=1 temp
-can data gt4d011
-
-set data coads_climatology
-sho att (coadsx).modulo
- attributes for dataset: ./coads_climatology.cdf
- (COADSX).modulo =
-set att (coadsx).modulo=360
-
-! Note here that Ferret is using the name TIME1 instead of TIME.
-! axis still found and edited.
-
-set att (`sst,return=taxis`).time_origin="1-jan-1980"
- !-> set att (TIME4).time_origin="1-jan-1980"
-list/x=130w/y=0 sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (TIME)
- LONGITUDE: 131W
- LATITUDE : 1S
- 131W
- 105
- 16-JAN-1980 / 1: 25.02
- 15-FEB-1980 / 2: 26.35
- 17-MAR-1980 / 3: 26.98
-
-!(coordvar).attname[d=1]
-! Can have the parentheses included in a symbol
-
-def sym xaxnam "(`temp[d=1],return=xaxis`)"
- !-> def sym xaxnam "(XAX_LEV9421_380)"
-list `($xaxnam).nattrs[d=1]`
- !-> list 4
- VARIABLE : constant
- 4.000
-
-! Or parentheses added when symbol is evaluated
-def sym yaxnam "`temp[d=1],return=yaxis`"
- !-> def sym yaxnam "YAX_LEV94"
-list `(($yaxnam)).nattrs[d=1]`
- !-> list 3
- VARIABLE : constant
- 3.000
-
-! just the name of the axis
-list (`sst,return=xaxis`).nattrs[d=2]
- !-> list (COADSX).nattrs[d=2]
- VARIABLE : (COADSX).NATTRS[D=coads_climatology]
- FILENAME : coads_climatology.cdf
- 5.000
-
-! using dimension names from the linked list structure
-
-let cnames = sst.dimnames
-list cnames
- VARIABLE : SST.DIMNAMES
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- 1 / 1:"COADSX"
- 2 / 2:"COADSY"
- 3 / 3:"TIME4"
-show axis (`cnames[i=1]`)
- !-> show axis (COADSX)
- name axis # pts start end
-list (`cnames[i=1]`).nattrs
- !-> list (COADSX).nattrs
- VARIABLE : (COADSX).NATTRS
- FILENAME : coads_climatology.cdf
- 5.000
-
-! Intentional errors.
-
-SET MODE IGNORE
-
-! Need parentheses around axis name.
-list coadsx.units
-sh att/all coadsy
-
-! Cannot change the direction of an axis
-use modfalse.nc
-set att (`sst,return=xaxis`).axis = "Z"
- !-> set att (COADSX81_81).axis = "Z"
-
-can view
-
-can mode ignore
-go bn_reset
-cancel mode verify
-
-!-----
-! Edit attributes: inherit all attrs from another variable
-
-use gt4d011
-sh att/all salt
- attributes for dataset: ./gt4d011.cdf
- SALT.parent_grid = PS3DT2
- SALT.slab_min_index = 91, 35, 1, 0
- SALT.slab_max_index = 108, 55, 10, 0
- SALT.missing_value = 0.01
- SALT._FillValue = 0.01
- SALT.long_name = (SALINITY(ppt) - 35) /1000
- SALT.history = From gt4d011
- SALT.units = frac. by wt. less .035
-
-set att/like=temp salt
-sh att/all salt
- attributes for dataset: ./gt4d011.cdf
- SALT.parent_grid = PS3DT2
- SALT.slab_min_index = 91, 35, 1, 0
- SALT.slab_max_index = 108, 56, 10, 0
- SALT.missing_value = -1.E+34
- SALT._FillValue = -1.E+34
- SALT.long_name = TEMPERATURE
- SALT.history = From gt4d011
- SALT.units = deg. C
-
-! If a user variable is defined based on another variable,
-! it gets only default attributes. All attributes must be
-! specified with qualifiers (/UNITS=) or with DEF ATT
-
-! Define a new attribute on a file variable, then a new var as fcn of that
-
-define attribute temp.description = "description of TEMP in gt4d011"
-let temp2 = temp*2
-sh att/all temp2
- attributes for user-defined variables
- temp2.long_name = TEMP*2
- temp2.missing_value = -1.E+34
-
-! Can inherit attributes explicitly, either all at once or individually.
-def att temp2.units = "`temp,return=units`"
- !-> def att temp2.units = "deg. C"
-sh att/all temp2
- attributes for user-defined variables
- temp2.long_name = TEMP*2
- temp2.missing_value = -1.E+34
- temp2.units = deg. C
-
-let temp3 = temp*3
-set att/like=temp temp3
-sh att/all temp3
- attributes for user-defined variables
- temp3.parent_grid = PS3DT2
- temp3.slab_min_index = 91, 35, 1, 0
- temp3.slab_max_index = 108, 56, 10, 0
- temp3.missing_value = -1.E+34
- temp3._FillValue = -1.E+34
- temp3.long_name = TEMPERATURE
- temp3.history = From gt4d011
- temp3.units = deg. C
- temp3.description = description of TEMP in gt4d011
-
-can var temp2
-let/units="degrees C"/title="my new TEMP"/bad=`temp,return=bad` temp2 = temp*2
- !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad=-9.9999998E+33 temp2 = temp*2
-sh att/all temp2
- attributes for user-defined variables
- temp2.long_name = my new TEMP
- temp2.units = degrees C
- temp2.missing_value = -1.E+34
-
-go bn_reset
-cancel mode verify
-
-!-----
-! Edit attributes, changing type
-! change values, type, and length of attributes.
-
-use ocean_atlas_temp
-def att/type=string temp.strval = 2
-def att/type=float temp.floatval = 22
-def att temp.pp = {1.5, 1.9}
-def att temp.some_text = "some text about the TEMP variable"
-sh att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature
- TEMP.history = From ocean_atlas_monthly
- TEMP.units = Deg C
- TEMP.strval = 2
- TEMP.floatval = 22
- TEMP.pp = 1.5, 1.9
- TEMP.some_text = some text about the TEMP variable
-
-! Change attribute values
-
-set att temp.pp = {1.5, 1.9, 3.45, 7}
-set att temp.some_text = "some different text"
-sh att temp.pp
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.pp = 1.5, 1.9, 3.45, 7
-let var = temp.some_text
-list/nohead var
- "some different text"
-
-! Now change attribute types
-
-set att temp.pp = "PP now has some text."
-set att temp.some_text = 745.
-
-! Does changing the type of an attribute cause any trouble for a variable
-! defined based on that variable?
-
-list/nohead var
- 745.0
-let pq = temp.pp
-list pq
- VARIABLE : TEMP.PP
- FILENAME : ocean_atlas_temp.cdf
- "PP now has some text."
-
-! set an attribute when the variable is not in the default dataset.
-
-use gt4d011
-def att/d=1 temp.morenew = 33
-sho att/all temp[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature
- TEMP.history = From ocean_atlas_monthly
- TEMP.units = Deg C
- TEMP.strval = 2
- TEMP.floatval = 22
- TEMP.pp = PP now has some text.
- TEMP.some_text = 745
- TEMP.morenew = 33
-
-! Edit the text in some of the attributes, make a plot where we see
-! the resulting change in title and units.
-
-set data ocean_atlas_temp
-set att temp.long_name = "Ocean Atlas Temperature"
-set att temp.units = "Centigrade"
-shade/L=2 temp
-
-! Define an attr that already exists: redefines
-
-def att temp.pp = {1.5, 1.9, 3}
-let pq = temp.pp
-list pq
- VARIABLE : TEMP.PP
- FILENAME : ocean_atlas_temp.cdf
- SUBSET : 3 points (X)
- 1 / 1: 1.500
- 2 / 2: 1.900
- 3 / 3: 3.000
-
-go bn_reset
-cancel mode verify
-
-! When we CANCEL MODE upcase_output, writing a netcdf file preserves
-! case of variable and axis names. This file has lower case and some
-! mixed-case names.
-
-use err491_attval.cdf
-sp echo "bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:" >> all_ncdump.out
-sp ncdump -h err491_attval.cdf >> all_ncdump.out
-save/clobber/file=a.nc elev[i=3,j=2:4]
-sp echo "bn_attributes.jnl --- 5 before CANCEL MODE upcase_output" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
-
-cancel mode upcase_output
-save/clobber/file=a.nc elev[i=3,j=2:4]
-sp echo "bn_attributes.jnl --- 6 after CANCEL MODE upcase_output" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
-
-set mode/last upcase_output
-
-go bn_reset
-cancel mode verify
-
-!-----
-
-! outtput flags to control attribute output to netcdf files
-
-! SET ATT/OUTPUT varname.attname sets individual attr to be written
-! SET ATT/OUTPUT=all varname output all attributes defined when var written
-! SET ATT/OUTPUT=default varname output default Ferret attributes
-! SET ATT/OUTPUT=none varname output no attrbutes
-
-let aa = 12
-let bb = {3,4.5,6,7,4}
-
-def att bb.my_title = "This is my new variable bb"
-def att bb.another_attr = 6
-
-! Output just one of these new attributes
-
-set att/output bb.my_title
-
-save/clobber/file=a.nc aa,bb
-sp echo "bn_attributes.jnl --- 7 outtput flags to control attribute output" >> all_ncdump.out
-sp ncdump -c a.nc >> all_ncdump.out
-
-! Output all attributes
-
-set att/output=all bb
-save/clobber/file=a.nc aa,bb
-sp echo "bn_attributes.jnl --- 8 outtput all flags" >> all_ncdump.out
-sp ncdump -c a.nc >> all_ncdump.out
-
-! Just output the default attributes
-
-set att/output=default bb
-save/clobber/file=a.nc bb
-sp echo "bn_attributes.jnl --- 9 Just output the default attributes" >> all_ncdump.out
-sp ncdump -c a.nc >> all_ncdump.out
-
-! Output none of the attributes for aa
-
-set att/output=none aa
-save/clobber/file=a.nc aa,bb
-sp echo "bn_attributes.jnl --- 10 Output none of the attributes for aa" >> all_ncdump.out
-sp ncdump -c a.nc >> all_ncdump.out
-
-go bn_reset
-cancel mode verify
-
-
-!-----
-! CANCEL ATTRIBUTE/OUTPUT= to surpress output of attributes
-
-use ocean_atlas_temp
-sh att/all (`temp,return=xaxis`)
- !-> sh att/all (XAX_LEV9421_380)
- attributes for dataset: ./ocean_atlas_temp.cdf
- (XAX_LEV9421_380).units = degrees_east
- (XAX_LEV9421_380).modulo =
- (XAX_LEV9421_380).point_spacing = even
- (XAX_LEV9421_380).orig_file_axname = XAX_LEV9421_380
-
-! Surpress output of existing attribute
-can att/out (`temp,return=xaxis`).point_spacing
- !-> can att/out (XAX_LEV9421_380).point_spacing
-
-! Surpress output of an attribute that Ferret would otherwise add.
-
-can att/out (`temp,return=xaxis`).axis
- !-> can att/out (XAX_LEV9421_380).axis
-save/file=a.nc/clobber temp
-sp echo "bn_attributes.jnl --- 11 Surpress output of an attribute that Ferret would otherwise add." >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
-
-! subregions create child axes with new names
-! Check that settings hold for such an output file.
-
-set reg/x=300:360/y=30:45
-sh att/all (`temp,return=xaxis`)
- !-> sh att/all (XAX_LEV9421_380)
- attributes for dataset: ./ocean_atlas_temp.cdf
- (XAX_LEV9421_380).units = degrees_east
- (XAX_LEV9421_380).modulo =
- (XAX_LEV9421_380).point_spacing = even
- (XAX_LEV9421_380).orig_file_axname = XAX_LEV9421_380
- (XAX_LEV9421_380).axis = 1
-can att/out (`temp,return=xaxis`).point_spacing
- !-> can att/out (XAX_LEV9421_380).point_spacing
-can att/out (`temp,return=xaxis`).axis
- !-> can att/out (XAX_LEV9421_380).axis
-save/file=a.nc/clobber temp
-sp echo "bn_attributes.jnl --- 12 Check that settings hold for child axis." >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
-
-! cancel output of attributes of the variable itself
-can region
-sh att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature
- TEMP.history = From ocean_atlas_monthly
- TEMP.units = Deg C
-can att/out temp.history
-can att/out temp.long_name
-save/file=a.nc/clobber temp
-sp echo "bn_attributes.jnl --- 13 cancel output of attributes of the variable." >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
-
-go bn_reset
-cancel mode verify
-
-!-----
-! Read EZ ascii, delimited, and stream data files,
-! add attributes to their variables.
-
-! read file as an ez file
-
-file/var="a1,a2,a3" EZ.DAT
-def att a1.three={1,2,3}
-sh att/all a1
- attributes for dataset: ./EZ.DAT
- A1.long_name = A1
- A1.missing_value = -1.E+34
- A1.three = 1, 2, 3
-sh dat/att
- currently SET data sets:
- 1> ./EZ.DAT (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 6 F EZ.DAT
-
- A1 FLOAT long_name CHAR 2 T A1
- missing_value FLOAT 1 T -1.E+34
- three FLOAT 3 T 1 2 3
-
- A2 FLOAT long_name CHAR 2 T A2
- missing_value FLOAT 1 T -1.E+34
-
- A3 FLOAT long_name CHAR 2 T A3
- missing_value FLOAT 1 T -1.E+34
-
-save/file=a.nc/clobber a1,a2,a3
-sp echo "bn_attributes.jnl --- 14 attributes of data from ez data." >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-
-! now read it as a delimited file
-
-can data/all
-
-columns/delim=" " EZ.DAT
-def att/type=string v1.strval = 2
-set att/output v1.strval
-sh att/all v1
- attributes for dataset: ./EZ.DAT
- V1.long_name = V1
- V1.missing_value = -1.E+34
- V1.strval = 2
-save/clobber/file=a.nc v1,v4
-sp echo "bn_attributes.jnl --- 15 attributes of data from delimited data." >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-
-! and a stream dataset
-
-def axis/x=1:1:1 xax
-def axis/y=1:2:1 yax
-def axis/z=1:3:1 zax
-def axis/t=1:4:1 tax
-def grid/x=xax/y=yax/z=zax/t=tax mygrid
-file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
-
-define att/type=string num.new = "a string attribute"
-sh att/all num
- attributes for dataset: ./permutedBinaryTest.dat
- NUM.long_name = NUM
- NUM.missing_value = -1.E+34
- NUM.new = a string attribute
-go bn_reset
-cancel mode verify
-
-!-----
-! manipulate attributes of user-defined variables
-
-let a = {12,14,15}
-def att a.three={1,2,3}
-set att/output a.three
-def att a.four = {"theory"}
-set att/output a.four
-sh att/all a
- attributes for user-defined variables
- a.long_name = {12,14,15}
- a.missing_value = -1.E+34
- a.three = 1, 2, 3
- a.four = theory
-sh dat/att
- currently SET data sets:
-save/file=a.nc/clobber a
-sp echo "bn_attributes.jnl --- 16 attributes of user vars" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-
-
-!-----
-! write global attributes (Note this implementation needs work;
-! what is the right syntax?? Perhaps an undocumented feature for
-! the first release)
-
-use err491_attval
-set att/out=all . ! from the default data set
-
-save/file=a.nc/clobber elev
-sp echo "bn_attributes.jnl --- 17 global attrs." >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
-
-! Choose a single global attribute to write, from dataset 1
-can data/all
-use err491_attval
-use gt4d011
-set att/output/d=1 ..dt_internal
-save/clobber/file=a.nc elev[d=1], temp[d=2,x=130w,k=1,y=-20:20]
-
-sp echo "bn_attributes.jnl --- 18 choose global attr to write" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
-
-! Note: this syntax does not work
-! use err491_attval
-! use ocean_atlas_temp
-! set att/out ..min_slope[d=1]
-! save/file=a.nc/clobber elev[d=1]
-
-go bn_reset
-cancel mode verify
-
-!-----
-
-! File with scale_factor and add_offset
-! If we request to write the variable with its scale factor
-! and offset attributes, then the data and its missing and fill
-! flags are rescaled. Lets us re-pack data on output, or specify
-! new packing.
-
-use err491_attval
-set att/output elev.scale_factor
-set att/output elev.add_offset
-set var/outtype=input elev
-
-save/clobber/file=a.nc/j=1 elev
-sp echo "bn_attributes.jnl --- 19 scale and offset attr." >> all_ncdump.out
-
-! Both of these should be scaled the same by Ferret
-use a.nc
-list/j=1 elev[d=1], elev[d=2]
- LONGITUDE: 135.5W(-135.5) to 135W(-135)
- LATITUDE: 58.6N
- T (day): 1.8
- Column 1: ELEV[D=err491_attval] is Surface elevation (meter)
- Column 2: ELEV[D=a] is Surface elevation (meter)
- ELEV ELEV
-135.51W / 1: .... ....
-135.496W / 2: .... ....
-135.483W / 3: .... ....
-135.469W / 4: .... ....
-135.456W / 5: .... ....
-135.442W / 6: .... ....
-135.429W / 7: .... ....
-135.415W / 8: .... ....
-135.402W / 9: .... ....
-135.389W / 10: .... ....
-135.375W / 11: .... ....
-135.362W / 12: 2.940 2.940
-135.348W / 13: 2.940 2.940
-135.335W / 14: 2.940 2.940
-135.321W / 15: 2.940 2.940
-135.308W / 16: 2.940 2.940
-135.294W / 17: 2.940 2.940
-135.281W / 18: 2.940 2.940
-135.267W / 19: 2.940 2.940
-135.254W / 20: 2.940 2.940
-135.241W / 21: 2.940 2.940
-135.227W / 22: 2.940 2.940
-135.214W / 23: 2.940 2.940
-135.2W / 24: 2.940 2.940
-135.187W / 25: 2.940 2.940
-135.173W / 26: .... ....
-135.16W / 27: .... ....
-135.146W / 28: .... ....
-135.133W / 29: .... ....
-135.12W / 30: .... ....
-135.106W / 31: .... ....
-135.093W / 32: .... ....
-135.079W / 33: .... ....
-135.066W / 34: .... ....
-135.052W / 35: .... ....
-sp ncdump a.nc >> all_ncdump.out
-
-go bn_reset
-cancel mode verify
-
-!-----
-! Set type of data on output, uses netcdf call to output
-! the requseted type.
-
-use gt4d011
-set var/bad=-1000 temp
-set var/outtype=int4 temp
-save/file=a.nc/clobber/y=1/k=1/L=1 temp
-sp echo "bn_attributes.jnl --- 20 set data type on output int4" >> all_ncdump.out
-sp ncdump a.nc | grep -A2 -i temp >> all_ncdump.out
-
-can data/all
-use gt4d011
-
-set var/outtype=double salt
-save/clobber/file=a.nc/y=1/k=1/L=1 salt
-sp echo "bn_attributes.jnl --- 21 set data type on output double" >> all_ncdump.out
-sp ncdump a.nc | grep -A2 -i salt >> all_ncdump.out
-
-can data gt4d011
-
-! Force output type to equal input type (should we have a MODE setting for this??)
-
-use test0
-let nam = ..varnames
-
-repeat/range=1:4/name=q (def sym va = nam[i=`q`]; sh sym va; \
- set var/outtype=input `($va)`;\
- if `q eq 1` THEN save/clobber/file=a.nc `($va)` \
- ELSE save/append/file=a.nc `($va)`)
- !-> repeat/range=1:4/name=q (def sym va = nam[i=`q`]; sh sym va; set var/outtype=input `($va)`; if `q eq 1` THEN save/clobber/file=a.nc `($va)` ELSE save/append/file=a.nc `($va)`)
-!-> REPEAT: Q:1
- !-> def sym va = nam[i=1]
-VA = "nam[i=1]"
- !-> set var/outtype=input broiled
- !-> if 1 THEN save/clobber/file=a.nc `nam[i=1]` ELSE save/append/file=a.nc `nam[i=1]`
- !-> LIST/FORMAT=CDF/clobber/file=a.nc broiled
-!-> REPEAT: Q:2
- !-> def sym va = nam[i=2]
-VA = "nam[i=2]"
- !-> set var/outtype=input the_bullet
- !-> if 0 THEN save/clobber/file=a.nc `nam[i=2]` ELSE save/append/file=a.nc `nam[i=2]`
- !-> LIST/FORMAT=CDF/append/file=a.nc the_bullet
-!-> REPEAT: Q:3
- !-> def sym va = nam[i=3]
-VA = "nam[i=3]"
- !-> set var/outtype=input order
- !-> if 0 THEN save/clobber/file=a.nc `nam[i=3]` ELSE save/append/file=a.nc `nam[i=3]`
- !-> LIST/FORMAT=CDF/append/file=a.nc order
-!-> REPEAT: Q:4
- !-> def sym va = nam[i=4]
-VA = "nam[i=4]"
- !-> set var/outtype=input rigue
- !-> if 0 THEN save/clobber/file=a.nc `nam[i=4]` ELSE save/append/file=a.nc `nam[i=4]`
- !-> LIST/FORMAT=CDF/append/file=a.nc rigue
-
-sp echo "bn_attributes.jnl --- 22 outtype=input" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-
-set var/outtype=double a_loan
-save/file=a.nc/clobber a_loan
-
-can data test0
-
-go bn_reset
-cancel mode verify
-
-!-----
-! More tests of user-defined variables. Bug 1427, now fixed, problem with varid of user vars
-
-let v = {1,2,3,4}
-let a = is_element_of(1,v)
-let/title="hello" b = 1
-save/clobber/file=a.nc b
-sp echo "bn_attributes.jnl --- 23 more user-defined vars" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-
-
-!-----
-! Bug 1492, now fixed, output user-defined or redefined attributes
-
-! A new setting for the point_spacing attribute using either SET or DEFINE
-
-use coads_vwnd
-set att (`vwnd,return=xaxis`).point_spacing = "uneven"
- !-> set att (COADSX).point_spacing = "uneven"
-define att (`vwnd,return=yaxis`).point_spacing = "uneven"
- !-> define att (COADSY).point_spacing = "uneven"
-save/file=a.nc/clobber/L=1 vwnd
-
-sp echo "bn_attributes.jnl --- 24 output redefined attr" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-
-! new attribute written to file
-
-let t2 = 2*vwnd
-DEFINE ATT/OUTPUT (`t2,return=yaxis`).new_att = "somthing"
- !-> DEFINE ATT/OUTPUT (COADSY).new_att = "somthing"
-
-! shows up on the output of
-
-SHOW ATT/ALL (`t2,return=yaxis`)
- !-> SHOW ATT/ALL (COADSY)
- attributes for dataset: ./coads_vwnd.cdf
- (COADSY).units = degrees_north
- (COADSY).point_spacing = uneven
- (COADSY).orig_file_axname = COADSY
- (COADSY).new_att = somthing
-
-! Check the new attribute is saved to a file. (if we
-! save uwnd to a file, it is output)
-
-save/file=a.nc/clobber/L=1 t2
-
-sp echo "bn_attributes.jnl --- 25 output new attr on user-defined var" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-
-
-! intentional errors
-
-set mode ignore_error
-
-! missing value and fill value too large for INT output.
-
-use gt4d011
-set var/outtype=int4 temp
-save/file=a.nc/clobber/x=132w/k=1 temp
-can data gt4d011
-
-sp rm a.nc
-
-! specify incorrect output types
-
-use test0
-set var/outtype=char broiled
-
-set var/outtype=garbage broiled
-
-can mode ignore
-go bn_reset
-cancel mode verify
-
-
-!---!!!---
-! Manipulate attributes of axes from datasets
-! A user-defined variable is used to refer to the axes.
-
-use gt4d011.cdf
-
-let t2 = t*temp
-set att (`t2,return=xaxis`).units = "degrees"
- !-> set att (PSXT1).units = "degrees"
-sh att/all (`t2,return=xaxis`)
- !-> sh att/all (PSXT1)
- attributes for dataset: ./gt4d011.cdf
- (PSXT1).units = degrees
- (PSXT1).point_spacing = even
- (PSXT1).orig_file_axname = PSXT
-set att/output (`t2,return=xaxis`).point_spacing
- !-> set att/output (PSXT1).point_spacing
-save/file=a.nc/clobber/L=1 t2
-
-sp echo "bn_attributes.jnl --- 26 attributes of axes" >> all_ncdump.out
-
-sp ncdump -h a.nc >> all_ncdump.out
-define att/out (`t2,return=xaxis`).new_att = "something"
- !-> define att/out (PSXT1).new_att = "something"
-save/file=a.nc/clobber/L=1 t2
-sp ncdump -h a.nc >> all_ncdump.out
-
-! A file variable is used to refer to the axes
-
-set att (`temp,return=xaxis`).units="meters"
- !-> set att (PSXT1).units="meters"
-set att (`temp,return=yaxis`).units="meters"
- !-> set att (PSYT1).units="meters"
-sho att/all (`temp,return=yaxis`)
- !-> sho att/all (PSYT1)
- attributes for dataset: ./gt4d011.cdf
- (PSYT1).units = meters
- (PSYT1).point_spacing = uneven
- (PSYT1).edges = PSYTedges
- (PSYT1).orig_file_axname = PSYT
-save/file=a.nc/clobber/L=1 t2
-
-sp ncdump -h a.nc >> all_ncdump.out
-go bn_reset
-cancel mode verify
-
-! User-defined axes and variables
-
-def axis/x=1:200:1 x2ax
-sh att/all (x2ax)
- attributes for coordinate axis
- (X2AX).point_spacing = even
- (X2AX).axis = X
-! SET AXIS command changes attributes
-set axis/modulo x2ax
-sh att/all (x2ax)
- attributes for coordinate axis
- (X2AX).point_spacing = even
- (X2AX).axis = X
- (X2AX).modulo =
-
-! DEFINE ATTRIBUTE command changes attributes
-define attribute (x2ax).units = "degrees_east"
-sh att/all (x2ax)
- attributes for coordinate axis
- (X2AX).point_spacing = even
- (X2AX).axis = X
- (X2AX).modulo =
- (X2AX).units = degrees_east
-
-! Define new attribute on an axis.
-! Save file var, and a user var defined from the file var
-
-go bn_reset
-cancel mode verify
-
-use levitus_climatology
-define att/out (`temp,return=xaxis`).new_att = "something"
- !-> define att/out (XAXLEVITR1_160).new_att = "something"
-sh dat/att
- currently SET data sets:
- 1> ./levitus_climatology.cdf (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V5.22 5-Apr-01
-
-(XAXLEVITR1_160) DOUBLE units CHAR 12 T degrees_east
- modulo CHAR 1 T
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 14 F XAXLEVITR1_160
- new_att CHAR 9 T something
-
-(YAXLEVITR1_90) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 13 F YAXLEVITR1_90
-
-(ZAXLEVITR1_1) DOUBLE units CHAR 6 T METERS
- positive CHAR 4 T down
- orig_file_axnameCHAR 12 F ZAXLEVITR1_1
-
- TEMP FLOAT missing_value FLOAT 1 T -1.E+10
- _FillValue FLOAT 1 T -1.E+10
- long_name CHAR 11 T TEMPERATURE
- history CHAR 24 T From levitus_climatology
- units CHAR 5 T DEG C
-
-save/file=a.nc/clobber/y=0:5 temp
-sp ncdump -h a.nc >> all_ncdump.out
-
-let two = 2*temp[y=0:15,x=180:200]
-save/file=a.nc/clobber/y=0:5 two
-sp ncdump -h a.nc >> all_ncdump.out
-go bn_reset
-cancel mode verify
-
-! defining more axes with attributes
-
-show axis x2ax
- name axis # pts start end
- X2AX X 200mr 1 200
- Axis span (to cell edges) = 200 (modulo length = axis span)
-def axis/x=1:2:1/modulo=360 x2ax
-def axis/y=1:3:1 y3ax
-def axis/z=1:4:1/depth z4ax
-def axis/t=1:2:1 t2ax
-let a = {"alpha","a2","a3","a4","a5","a6","a7","a8","a9","a10",\
-"bravo","b2","b3","b4","b5","b6","b7","b8","b9","b10",\
-"c1","c2","c3","c4","c5","c6","c7","c8","c9","c10",\
-"d1","d2","d3","d4","d5","d6","d7","d8","d9","d10",\
-"echo","e2","e3","e4","e5","e6","e7","e8"}
-let rvar = x[gx=x2ax] + y[gy=y3ax] + z[gz=z4ax] + t[gt=t2ax]
-
-let axy = reshape (a,rvar)
-
-show att/all (z4ax)
- attributes for coordinate axis
- (Z4AX).point_spacing = even
- (Z4AX).axis = Z
- (Z4AX).positive = down
-set att (z4ax).positive = "up"
-
-sp echo "bn_attributes.jnl --- 27 attributes of user-defined axes" >> all_ncdump.out
-save/clobber/file=string4d.nc axy
-sp ncdump -h string4d.nc >> all_ncdump.out
-
-go bn_reset
-cancel mode verify
-! For SET ATT timeaxis.units or SET ATT timeaxis.time_origin
-! include the correct time origin as part of the units attribute.
-
-! Note original attributes
-use coads_climatology
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = hour since 0000-01-01 00:00:00
- (TIME7).time_origin = 1-JAN-0000 00:00:00
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
-
-! change units to days since time origin
-set att (`sst,return=taxis`).units="days"
- !-> set att (TIME7).units="days"
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = days since 1-JAN-0000 00:00:00
- (TIME7).time_origin = 1-JAN-0000 00:00:00
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
-
-define attribute (`sst,return=taxis`).units = "months"
- !-> define attribute (TIME7).units = "months"
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 1-JAN-0000 00:00:00
- (TIME7).time_origin = 1-JAN-0000 00:00:00
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
-
-! change time origin and also units to include time origin
-set att (`sst,return=taxis`).time_origin = "1-mar-1955"
- !-> set att (TIME7).time_origin = "1-mar-1955"
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 1-mar-1955
- (TIME7).time_origin = 1-mar-1955
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
-
-define attribute (`sst,return=taxis`).time_origin = "15-jan-2002"
- !-> define attribute (TIME7).time_origin = "15-jan-2002"
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002
- (TIME7).time_origin = 15-jan-2002
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
-
-! Likewise on DEFINE AXIS or SET AXIS, change units to
-! include the correct since time_origin.
-
-use coads_climatology
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002
- (TIME7).time_origin = 15-jan-2002
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
-def axis/t=1:12:1/unit=months/t0="1-jan-0001" time
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002
- (TIME7).time_origin = 15-jan-2002
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
-
-set axis/t0="15-jan-0000" time
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002
- (TIME7).time_origin = 15-jan-2002
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
-
-set axis/units=days time
-show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002
- (TIME7).time_origin = 15-jan-2002
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
-
-! Fix bug 1518: previously var.attnames for a user-defined variable resulted in an error
-use coads_climatology
-let sst2 = 2*sst
-set att/like=sst sst2
-list sst2.attnames
- VARIABLE : SST2.ATTNAMES
- FILENAME : coads_climatology.cdf
- SUBSET : 5 points (X)
- 1 / 1:"missing_value"
- 2 / 2:"_FillValue"
- 3 / 3:"long_name"
- 4 / 4:"history"
- 5 / 5:"units"
-
-
-! Add a global attribute
-use test0
-
-DEFINE ATT/OUTPUT ..FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset"
-SET ATT/OUTPUT=all .
-
-SET ATT/OUTPUT=all broiled
-SAVE/CLOBBER/FILE=a.nc broiled
-
-sp echo "bn_attributes.jnl --- 28 Define a new global attribute" >> all_ncdump.out
-sp echo "bn_attributes.jnl --- 29 SET ATT/OUTPUT=all for global attrs and a var" >> all_ncdump.out
-sp ncdump a.nc >> all_ncdump.out
-
-
-!-----
-! Set type of data on output for a user var
-! the requseted type.
-
-sp echo "bn_attributes.jnl --- 29 SET VAR/OUTTYPE for user variable" >> all_ncdump.out
-
-use gt4d011
-let/units="Deg F" faren = temp*9/5 + 32
-set var/outtype=double faren
-save/file=a.nc/clobber faren
-
-sp ncdump -h a.nc >> all_ncdump.out
-
-let/units="Deg F"/bad=-999 faren = temp*9/5 + 32
-set var/outtype=int faren
-save/file=a.nc/clobber faren
-
-sp ncdump -h a.nc >> all_ncdump.out
-
-! Tests for simplified syntax for SHOW ATTRIBUTE:
-
-! SHOW ATT varname is like SHOW ATT/ALL varname
-! SHOW ATT dset same output as SHOW DATA/ATT dset
-
-can data/all
-use ocean_atlas_temp
-sho att temp
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature
- TEMP.history = From ocean_atlas_monthly
- TEMP.units = Deg C
-sho att ocean_atlas_temp
- currently SET data sets:
- 1> ./ocean_atlas_temp.cdf (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 28 T FERRET V4.90 (GUI) 04-Feb-98
-
-(XAX_LEV9421_380) DOUBLE units CHAR 12 T degrees_east
- modulo CHAR 1 T
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 15 F XAX_LEV9421_380
-
-(YAX_LEV94) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 9 F YAX_LEV94
-
-(ZAXLEVIT191_1) DOUBLE units CHAR 6 T METERS
- positive CHAR 4 T down
- orig_file_axnameCHAR 13 F ZAXLEVIT191_1
-
-(TIME3) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo CHAR 1 T
- orig_file_axnameCHAR 4 F TIME
-
- TEMP FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 11 T Temperature
- history CHAR 24 T From ocean_atlas_monthly
- units CHAR 5 T Deg C
-
-sho att (`temp,return=xaxis`)
- !-> sho att (XAX_LEV9421_380)
- attributes for dataset: ./ocean_atlas_temp.cdf
- (XAX_LEV9421_380).units = degrees_east
- (XAX_LEV9421_380).modulo =
- (XAX_LEV9421_380).point_spacing = even
- (XAX_LEV9421_380).orig_file_axname = XAX_LEV9421_380
-
-use levitus_climatology
-sho att 1
- currently SET data sets:
- 1> ./ocean_atlas_temp.cdf
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 28 T FERRET V4.90 (GUI) 04-Feb-98
-
-(XAX_LEV9421_380) DOUBLE units CHAR 12 T degrees_east
- modulo CHAR 1 T
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 15 F XAX_LEV9421_380
-
-(YAX_LEV94) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 9 F YAX_LEV94
-
-(ZAXLEVIT191_1) DOUBLE units CHAR 6 T METERS
- positive CHAR 4 T down
- orig_file_axnameCHAR 13 F ZAXLEVIT191_1
-
-(TIME3) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo CHAR 1 T
- orig_file_axnameCHAR 4 F TIME
-
- TEMP FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 11 T Temperature
- history CHAR 24 T From ocean_atlas_monthly
- units CHAR 5 T Deg C
-
-sho att 2
- currently SET data sets:
- 2> ./levitus_climatology.cdf (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V5.22 5-Apr-01
-
-(XAXLEVITR1_160) DOUBLE units CHAR 12 T degrees_east
- modulo CHAR 1 T
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 14 F XAXLEVITR1_160
-
-(YAXLEVITR1_90) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 13 F YAXLEVITR1_90
-
-(ZAXLEVITR1_1) DOUBLE units CHAR 6 T METERS
- positive CHAR 4 T down
- orig_file_axnameCHAR 12 F ZAXLEVITR1_1
-
- TEMP FLOAT missing_value FLOAT 1 T -1.E+10
- _FillValue FLOAT 1 T -1.E+10
- long_name CHAR 11 T TEMPERATURE
- history CHAR 24 T From levitus_climatology
- units CHAR 5 T DEG C
-
-
-sho att temp[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.long_name = Temperature
- TEMP.history = From ocean_atlas_monthly
- TEMP.units = Deg C
-sho att temp[d=2]
- attributes for dataset: ./levitus_climatology.cdf
- TEMP.missing_value = -1.E+10
- TEMP._FillValue = -1.E+10
- TEMP.long_name = TEMPERATURE
- TEMP.history = From levitus_climatology
- TEMP.units = DEG C
-
-sho att (`temp[d=1],return=taxis`[d=1])
- !-> sho att (TIME3[d=1])
- attributes for dataset: ./ocean_atlas_temp.cdf
- (TIME3).units = hour since 0000-01-01 00:00:00
- (TIME3).time_origin = 01-JAN-0000 00:00:00
- (TIME3).modulo =
- (TIME3).orig_file_axname = TIME
-
-sho att .
- attributes for dataset: ./levitus_climatology.cdf
- ..history = FERRET V5.22 5-Apr-01
-
-!=======
-! 10/06 *acm* Remove tests of nco funcions: we dont want to require them to be installed
-! on a system in order for it to pass the benchmarks.
-!go bn_reset
-!go bn_nco_functions.jnl
-
-go bn_reset
-cancel mode verify
-go bn_transforms.jnl
-! Test the transforms
-
-use coads_climatology
-
-list/L=1/prec=7 sst[x=100:120 at ave,y=10:30 at ave]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 100E to 120E (XY ave)
- LATITUDE : 10N to 30N (XY ave)
- TIME : JAN
- 24.02076
-
-list/L=1/prec=7 sst[x=100:120 at din,y=10:30 at din]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 100E to 120E (XY integ.)
- LATITUDE : 10N to 30N (XY integ.)
- TIME : JAN
- 6.008341E+13
-
-list/L=1/y=0/x=83w:49w sst,sst[x=@cda], sst[x=@cdb], sst[x=@cia], sst[x=@cib]
- DATA SET: ./coads_climatology.cdf
- LONGITUDE: 83W to 49W
- LATITUDE: 1S
- TIME: JAN
- Column 1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column 2: SST[X=@CDA:1] is SEA SURFACE TEMPERATURE (Deg C)(closest dist above on X)
- Column 3: SST[X=@CDB:1] is SEA SURFACE TEMPERATURE (Deg C)(closest dist below on X)
- Column 4: SST[X=@CIA:1] is SEA SURFACE TEMPERATURE (Deg C)(closest index above on X)
- Column 5: SST[X=@CIB:1] is SEA SURFACE TEMPERATURE (Deg C)(closest index below on X)
- SST SST SST SST SST
-83W / 129: 24.60 0.00 0.00 0.00 0.00
-81W / 130: 25.44 0.00 0.00 0.00 0.00
-79W / 131: .... 26.00 2.00 13.00 1.00
-77W / 132: .... 24.00 4.00 12.00 2.00
-75W / 133: .... 22.00 6.00 11.00 3.00
-73W / 134: .... 20.00 8.00 10.00 4.00
-71W / 135: .... 18.00 10.00 9.00 5.00
-69W / 136: .... 16.00 12.00 8.00 6.00
-67W / 137: .... 14.00 14.00 7.00 7.00
-65W / 138: .... 12.00 16.00 6.00 8.00
-63W / 139: .... 10.00 18.00 5.00 9.00
-61W / 140: .... 8.00 20.00 4.00 10.00
-59W / 141: .... 6.00 22.00 3.00 11.00
-57W / 142: .... 4.00 24.00 2.00 12.00
-55W / 143: .... 2.00 26.00 1.00 13.00
-53W / 144: 27.35 0.00 0.00 0.00 0.00
-51W / 145: 27.13 0.00 0.00 0.00 0.00
-49W / 146: 27.38 0.00 0.00 0.00 0.00
-
-list/L=1/y=10:33/x=93w sst, sst[y=@ddb], sst[y=@ddc], sst[y=@ddf]
- DATA SET: ./coads_climatology.cdf
- LATITUDE: 10N to 33N
- LONGITUDE: 93W
- TIME: JAN
- Column 1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column 2: SST[Y=@DDB] is SEA SURFACE TEMPERATURE (Deg C)(backwards derivative on Y)
- Column 3: SST[Y=@DDC] is SEA SURFACE TEMPERATURE (Deg C)(centered derivative on Y)
- Column 4: SST[Y=@DDF] is SEA SURFACE TEMPERATURE (Deg C)(forward derivative on Y)
- SST SST SST SST
-11N / 51: 26.99 2.217E-06 1.611E-06 1.005E-06
-13N / 52: 27.21 1.005E-06 1.468E-06 1.932E-06
-15N / 53: 27.64 1.932E-06 5.847E-07 -7.622E-07
-17N / 54: 27.47 -7.622E-07 -7.072E-06 -1.338E-05
-19N / 55: 24.50 -1.338E-05 -7.908E-06 -2.435E-06
-21N / 56: 23.95 -2.435E-06 -1.473E-06 -5.111E-07
-23N / 57: 23.84 -5.111E-07 -1.898E-06 -3.286E-06
-25N / 58: 23.11 -3.286E-06 -3.738E-06 -4.190E-06
-27N / 59: 22.18 -4.190E-06 -9.122E-06 -1.405E-05
-29N / 60: 19.05 -1.405E-05 .... ....
-31N / 61: .... .... .... ....
-33N / 62: .... .... .... ....
-
-list/L=1/y=10:33/x=93w sst, sst[y=@evnt:23.84]
- DATA SET: ./coads_climatology.cdf
- LATITUDE: 10N to 33N
- LONGITUDE: 93W
- TIME: JAN
- Column 1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column 2: SST[Y=@EVN: 23.84] is SEA SURFACE TEMPERATURE (Deg C)(event mask at 23.84 on Y)
- SST SST
-11N / 51: 26.99 0.000
-13N / 52: 27.21 0.000
-15N / 53: 27.64 0.000
-17N / 54: 27.47 0.000
-19N / 55: 24.50 0.000
-21N / 56: 23.95 0.000
-23N / 57: 23.84 0.000
-25N / 58: 23.11 1.000
-27N / 59: 22.18 1.000
-29N / 60: 19.05 1.000
-31N / 61: .... 1.000
-33N / 62: .... 1.000
-
-list/L=1/y=23:51/x=93w sst, sst[y=@fav], sst[y=@fln], sst[y=@fnr]
- DATA SET: ./coads_climatology.cdf
- LATITUDE: 23N to 51N
- LONGITUDE: 93W
- TIME: JAN
- Column 1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column 2: SST[Y=@FAV:3] is SEA SURFACE TEMPERATURE (Deg C)(ave-filled by 3 pts on Y)
- Column 3: SST[Y=@FLN:1] is SEA SURFACE TEMPERATURE (Deg C)(linear-filled by 1 pts on Y)
- Column 4: SST[Y=@FNR:1] is SEA SURFACE TEMPERATURE (Deg C)(nearest-filled by 1 pts on Y)
- SST SST SST SST
-23N / 57: 23.84 23.84 23.84 23.84
-25N / 58: 23.11 23.11 23.11 23.11
-27N / 59: 22.18 22.18 22.18 22.18
-29N / 60: 19.05 19.05 19.05 19.05
-31N / 61: .... 19.05 18.15 19.05
-33N / 62: .... .... 17.24 19.05
-35N / 63: .... .... 16.33 19.05
-37N / 64: .... .... 15.43 15.43
-39N / 65: .... .... 14.52 11.80
-41N / 66: .... .... 13.61 11.80
-43N / 67: .... 11.80 12.71 11.80
-45N / 68: 11.80 11.80 11.80 11.80
-47N / 69: 2.47 2.47 2.47 2.47
-49N / 70: .... 2.47 .... 2.47
-51N / 71: .... .... .... 2.47
-
-list/L=1/y=23:51/x=93w sst[y=23:51 at min], sst[y=23:51 at max]
- DATA SET: ./coads_climatology.cdf
- LONGITUDE: 93W
- LATITUDE: 23N to 51N
- TIME: JAN
- Column 1: SST[Y=@MIN] is SEA SURFACE TEMPERATURE (Deg C)
- Column 2: SST[Y=@MAX] is SEA SURFACE TEMPERATURE (Deg C)
- SST SST
-I / *: 2.466 23.84
-
-list/L=1/y=23:51/x=93w sst[y=23:51 at nbd], sst[y=23:51 at ngd]
- DATA SET: ./coads_climatology.cdf
- LONGITUDE: 93W
- LATITUDE: 23N to 51N
- TIME: JAN
- Column 1: SST[Y=@NBD] is SEA SURFACE TEMPERATURE (# of points)
- Column 2: SST[Y=@NGD] is SEA SURFACE TEMPERATURE (# of points)
- SST SST
-I / *: 9.000 6.000
-
-list/L=1/y=1:11/x=93w sst, sst[y=@iin]
- DATA SET: ./coads_climatology.cdf
- LATITUDE: 1N to 11N
- LONGITUDE: 93W
- TIME: JAN
- Column 1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column 2: SST[Y=@IIN] is SEA SURFACE TEMPERATURE (Deg C)(indef. integ. on Y)
- SST SST
-1N / 46: 25.77 2.865E+06
-3N / 47: 26.60 8.780E+06
-5N / 48: 26.86 1.475E+07
-7N / 49: 26.57 2.066E+07
-9N / 50: 26.49 2.656E+07
-11N / 51: 26.99 2.956E+07
-
-list/L=1/y=23:25/x=93w sst, sst[y=24 at itp]
- DATA SET: ./coads_climatology.cdf
- LONGITUDE: 93W
- TIME: JAN
- Column 1: SST[Y=23N:25N] is SEA SURFACE TEMPERATURE (Deg C)
- Column 2: SST[Y=24N at ITP] is SEA SURFACE TEMPERATURE (Deg C)
- SST SST
-23N / 57: 23.84 23.47
-25N / 58: 23.11 23.47
-
-list/L=1/y=11:23/x=93w sst, sst[y=@rsum], sst[y=@sbn], sst[y=@sbx], sst[y=@shf:-1]
- DATA SET: ./coads_climatology.cdf
- LATITUDE: 11N to 23N
- LONGITUDE: 93W
- TIME: JAN
- Column 1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column 2: SST[Y=@RSU] is SEA SURFACE TEMPERATURE (Deg C)(running sum on Y)
- Column 3: SST[Y=@SBN:3] is SEA SURFACE TEMPERATURE (Deg C)(binomial smoothed by 3 pts on Y)
- Column 4: SST[Y=@SBX:3] is SEA SURFACE TEMPERATURE (Deg C)(box smoothed by 3 pts on Y)
- Column 5: SST[Y=@SHF:-1] is SEA SURFACE TEMPERATURE (Deg C)(shifted by -1 pts on Y)
- SST SST SST SST SST
-11N / 51: 26.99 27.0 26.92 26.90 26.49
-13N / 52: 27.21 54.2 27.26 27.28 26.99
-15N / 53: 27.64 81.8 27.49 27.44 27.21
-17N / 54: 27.47 109.3 26.77 26.54 27.64
-19N / 55: 24.50 133.8 25.10 25.31 27.47
-21N / 56: 23.95 157.8 24.06 24.10 24.50
-23N / 57: 23.84 181.6 23.69 23.63 23.95
-
-list/L=1/y=11:23/x=93w sst, sst[y=@shn] , sst[y=@spz], sst[y=@sum], sst[y=@swl], sst[y=@weq:26]
- DATA SET: ./coads_climatology.cdf
- LATITUDE: 11N to 23N
- LONGITUDE: 93W
- TIME: JAN
- Column 1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column 2: SST[Y=@SHN:3] is SEA SURFACE TEMPERATURE (Deg C)(Hanning smoothed by 3 pts on Y)
- Column 3: SST[Y=@SPZ:3] is SEA SURFACE TEMPERATURE (Deg C)(Parzen smoothed by 3 pts on Y)
- Column 4: SST[Y=@SUM] is SEA SURFACE TEMPERATURE (Deg C)
- Column 5: SST[Y=@SWL:3] is SEA SURFACE TEMPERATURE (Deg C)(Welch smoothed by 3 pts on Y)
- Column 6: SST[Y=@WEQ:26] is SEA SURFACE TEMPERATURE (Deg C)(weighted equal of 26 on Y)
- SST SST SST SST SST SST
-11N / 51: 26.99 26.92 26.92 181.6 26.91 ....
-13N / 52: 27.21 27.26 27.26 181.6 27.27 ....
-15N / 53: 27.64 27.49 27.49 181.6 27.46 ....
-17N / 54: 27.47 26.77 26.77 181.6 26.63 0.5056
-19N / 55: 24.50 25.10 25.10 181.6 25.23 0.4944
-21N / 56: 23.95 24.06 24.06 181.6 24.08 ....
-23N / 57: 23.84 23.69 23.69 181.6 23.66 ....
-
-go bn_reset
-cancel mode verify
-go bn_variance.jnl
- ! bn_variance.jnl
- ! the @VAR transform is not tested in bn_transforms.jnl script.
-
-use coads_climatology
-list/x=100/y=10 sst[t=@var]
- VARIABLE : Variance of SEA SURFACE TEMPERATURE ((Deg C)^2)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 99E
- LATITUDE : 9N
- TIME : JAN to APR (variance)
- 0.4424
-list/x=100/L=1 sst[y=@var]
- VARIABLE : Variance of SEA SURFACE TEMPERATURE ((Deg C)^2)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 99E
- LATITUDE : 90S to 90N (variance)
- TIME : JAN
- 102.3
-list/y=10/L=1 sst[x=@var]
- VARIABLE : Variance of SEA SURFACE TEMPERATURE ((Deg C)^2)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 20E to 20E(380) (variance)
- LATITUDE : 9N
- TIME : JAN
- 0.5010
-
-use gt4d011.cdf
-list/y=3/l=1/x=233 u[z=@var]
- VARIABLE : Variance of ZONAL VELOCITY ((cm/sec)^2)
- FILENAME : gt4d011.cdf
- LONGITUDE: 127W
- LATITUDE : 3N
- DEPTH (m): 0 to 100 (variance)
- TIME : AUG-1982
- 11.33
-
-go bn_reset
-cancel mode verify
-go bn_linecolors.jnl
-! bn_linecolors.jnl
-! 5/2006 ACM
-! test setting more line colors
-
-set mode meta linecolors.plt
-
-set mode linec:12
-sho mode linecolors
- MODE STATE ARGUMENT
- LINECOLORS SET 12
-
-can win/all
-set win/new
-
-ppl color,7,100,65,51 ! orange
-ppl color,8,0,55,0 ! dark green
-ppl color,9,60,0,100 ! purple
-ppl color,10,100,70,100 ! magenta
-ppl color,11,80,70,60 ! tan
-ppl color,12,100,88,0 ! yellow
-
-plot/thick/line/i=1:100 \
- cos(i/20), cos(i/24), cos(i/28), cos(i/32), \
- cos(i/36), cos(i/40), cos(i/44), cos(i/48), \
- cos(i/52), cos(i/56), cos(i/60), cos(i/64)
-
-set mode/last meta
-
-! Test choosing individual colors and thickness combinations
-! All commands except for contour have /THICK
-
-plot/color=7/thick=3/i=1:100 cos(i/10)
-plot/over/color=8/thick=2/i=1:100 cos(i/12)
-plot/over/color=12/thick=1/i=1:100 cos(i/8)
-
-vector/color=11/thick=2/i=1:100/j=1:100 cos(i/10)+sin(j/14), cos(i/20)-sin(j/30)
-
-polygon/thick=3/color=12/palette=purple {1,2,1}, {2,1,0.5}
-
-contour/color=7/i=1:100/j=1:100 cos(i/10)+sin(j/14)
-contour/over/color=20/i=1:100/j=1:100 cos(i/15)+sin(j/20)
-
-can mode linecolors
-sho mode linecolors
- MODE STATE ARGUMENT
- LINECOLORS SET 6
-
-! resetting line colors with cancel mode does not
-! take effect until we do a SET WIN/NEW
-
-plot/line/i=1:100 \
- cos(i/20), cos(i/24), cos(i/28), cos(i/32), \
- cos(i/36), cos(i/40), cos(i/44), cos(i/48), \
- cos(i/52), cos(i/56), cos(i/60), cos(i/64)
-
-set win/new
-plot/line/i=1:100\
- cos(i/20), cos(i/24), cos(i/28), cos(i/32), \
- cos(i/36), cos(i/40), cos(i/44), cos(i/48), \
- cos(i/52), cos(i/56), cos(i/60), cos(i/64)
-
-can win/all
-set win/new
-
-
-go bn_reset
-cancel mode verify
-go bn_cdf_errmsg.jnl
-! bn_cdf_errmsg.jnl
-! ACM 7/13/2006
-! test reporting of cdf error messages from OPeNDAP library v3.6.2
-
-set mode ignore
-
-! bad file names; file missing or misspelled
-use this_is_not_a_file.nc
-
-
-!! Change to another server, our server down...
-!!use "http://www.ferret.noaa.gov/cgi-bin/nph-nc/data/nofile.cdf"
-!! Not working either as of 7/5/2007
-!! use "http://ferret.pmel.noaa.gov:8080/thredds/dodsC/data/nofile.cdf"
-
-!! Change to another server, this one not working 3/2012
-!! This is a valid address
-!!use "http://iridl.ldeo.columbia.edu/SOURCES/.FSU/.FULL/.tauy/dods"
-
-!! change the variable name to something nonexistent
-!!use "http://iridl.ldeo.columbia.edu/SOURCES/.FSU/.FULL/.tauyyyyy/dods"
-
-! This is a valid address
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_air.cdf"
-
-! change the variable name to something nonexistent
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
-
-! bad server
-use "http://noserver/a/nofile.cdf"
-
-! Not a netCDF file: Create an ascii file with extension .nc
-
-list/nohead/file=asc.dat {1,2,3}
-
-sp rm -f asc.nc
-sp mv asc.dat asc.nc
-use asc.nc
-
-set mode/last ignore
-
-
-GO bn_reset
-cancel mode verify
-GO bn600_bug_fixes.jnl
-! bn600_bug_fixes.jnl
-! test various fixes that went into version 6.00
-! 8/05 *acm*
-!
-
-! Bug 1129 axis formatting when /HLIM sets axis length < 0.15 deg
-GO bn_reset
-cancel mode verify
-GO err581_hlim_axislab.jnl
-! err581_hlim_axislab.jn
-! bug 1129
-! When longitude range is small (<0.15 deg) using /HLIMITS
-! axis labels do not have longitude labelling
-
-def axis/x=-180:360:180/units=degrees xfull
-def axis/y=90s:90n:90/units=degrees yfull
-fill/hlim=312.23:312.380/vlim=37.03:40.91 0*x[gx=xfull] * y[gy=yfull]
-
-! Previously, list xaxis showed LABEL FORMAT is auto, not LONE
-ppl list xaxis
-
-
- XAXIS QUALITIES
- LO= 3.12E+02 HI= 3.12E+02 TIC= 2.00E-02 LEN= 8.00E+00 CSIZE= 1.00E-01
- TOP AXIS= ON BOTTOM AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.20E+00 LABEL FORMAT= (F8.3,'LONE')
-
-! But /HLIM=312.23:312.3801/... works.
-fill/hlim=312.23:312.3801/vlim=37.03:40.91 0*x[gx=xfull] * y[gy=yfull]
-ppl list xaxis
-
-
- XAXIS QUALITIES
- LO= 3.12E+02 HI= 3.12E+02 TIC= 2.00E-02 LEN= 8.00E+00 CSIZE= 1.00E-01
- TOP AXIS= ON BOTTOM AXIS= ON
- MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.20E+00 LABEL FORMAT= (F8.2,'LONE')
-
-! Bug 1275 stray characters appear in data lines listing string data
-GO bn_reset
-cancel mode verify
-GO err581_list_stray_chars.jnl
-! err581_list_stray_chars.jnl
-! 8/2005 (acm) bug 1275 stray characters in data listing
-! (they are leftovers from the buffer containing the header line, was not reinitialized)
-! Also fix the header line so characters are chopped off less.
-
-let id = {1, 2, 3, 4}
-let country = {"US", "US", "XX", "CN"}
-let type = {"MOORED BUOY", "MOORED BUOY", "MOORED BUOY", "MOORED BUOY"}
-
-list/i=1:5 id, type, country
- X: 0.5 to 4.5
- Column 1: ID is {1, 2, 3, 4}
- Column 2: TYPE is {"MOORED BUOY", "MOORED BUOY", "MOORED BUOY", "MOORED BUOY"}
- Column 3: COUNTRY is {"US", "US", "XX", "CN"}
- ID TYPE COUNTRY
-1 / 1: 1.000 "MOORED BUOY" "US"
-2 / 2: 2.000 "MOORED BUOY" "US"
-3 / 3: 3.000 "MOORED BUOY" "XX"
-4 / 4: 4.000 "MOORED BUOY" "CN"
-
-list/i=1:5 id, country, type
- X: 0.5 to 4.5
- Column 1: ID is {1, 2, 3, 4}
- Column 2: COUNTRY is {"US", "US", "XX", "CN"}
- Column 3: TYPE is {"MOORED BUOY", "MOORED BUOY", "MOORED BUOY", "MOORED BUOY"}
- ID COUN TYPE
-1 / 1: 1.000 "US" "MOORED BUOY"
-2 / 2: 2.000 "US" "MOORED BUOY"
-3 / 3: 3.000 "XX" "MOORED BUOY"
-4 / 4: 4.000 "CN" "MOORED BUOY"
-
-
-
-! pattern matching for SHO FUNC failed to match all EF's
-GO bn_reset
-cancel mode verify
-GO err581_sho_func_pattern_match.jnl
-! err581_sho_func_pattern_match.jnl
-! bug 1186
-! 8/2006
-! Pattern matching for SHOW FUNCTION did not match *str or *str*
-! on external functions.
-
-! Should list SIN and ASIN
-sh func *sin
-SIN(theta)
- theta: angle (radians)
-ASIN(X)
- arcsin(X) in radians
- X: ABS(X) must be less than or equal to 1
-! SHOULD list ELEMENT_INDEX, ELEMENT_INDEX_STRING, IS_ELEMENT_OF, IS_ELEMENT_OF_STR
-sh func *element*
-ELEMENT_INDEX(VAR,VALUES)
- Return index value in ARG2 for each point in ARG1
- VAR: Variable
- VALUES: list of indices
-ELEMENT_INDEX_STR(VAR,STRINGS)
- Return index value in ARG2 for each string in ARG1 (case insensitive matching)
- VAR: string data to mask (STRING)
- STRINGS: list of strings to match (STRING)
-ELEMENT_INDEX_STR_N(VAR,STRINGS)
- Return index value in ARG2 for each string in ARG1 (case sensitive matching)
- VAR: string data to mask (STRING)
- STRINGS: list of strings to match (STRING)
-IS_ELEMENT_OF(VAR,VALUES)
- Returns 1 if first argument contains any of the values in argument 2, else 0
- VAR: data to test
- VALUES: values to search for
-IS_ELEMENT_OF_STR(VAR,VALUES)
- Returns 1 if first argument contains any of the values in 2nd argument (case sensitive), else 0
- VAR: string (STRING)
- VALUES: strings to search (STRING)
-IS_ELEMENT_OF_STR_N(VAR,VALUES)
- Returns 1 if 1st arg contains any of the values in 2nd arg, 2 if case-insensitve match, else 0
- VAR: string (STRING)
- VALUES: strings to search (STRING)
-
-! FILL on data with subspan modulo axis, got wrong data
-GO bn_reset
-cancel mode verify
-GO err581_subspanx_fill_bug.jnl
-! err581_subspanx_fill_bug.jnl
-! bug 900: subspan longitude axis and hlimits gets wrong data
-
-use coads_climatology
-save/clobber/y=0/x=130e:80w/file=err581_subspanx_fill_bug.nc sst
-can data/all; use err581_subspanx_fill_bug.nc
-
-set view left; shade/x=120e:80w sst ! works correctly
-
-set view right; fill/x=120e:80w sst
-
-sh sym ppl$xmin, ppl$xmax ! should be 131, 279
-PPL$XMIN = "131.0"
-PPL$XMAX = "281.0"
-sh sym ppl$xlow, ppl$xhigh ! should be 165, 259
-PPL$XHIGH = "165.0"
-PPL$XLOW = "259.0"
-
-sp rm -f err581_subspanx_fill_bug.nc
-
-! bug 1318 Spurious error message on USE file where file has axes with bounds.
-GO bn_reset
-cancel mode verify
-GO err581_use_bounds.jnl
-! err581_use_bounds.jnl
-! bug 1318 Spurious error message on USE file where file has axes with bounds.
-! 8/17/05 ACM
-
-def axis/x xir = {1,4,6}
-def axis/y yir = {12,42,50}
-let aa = x[gx=xir]+ y[gy=yir]
-
-save/clobber/file=xyir.nc aa
-use xyir
-
-! Bug 1332 variable not scaled unless it is first variable in stepfile.
-GO bn_reset
-cancel mode verify
-GO err581_des_scale.jnl
-! err581_des_scale.jnl bug 1332. When using a descriptor file and
-! a varriable has scale_factor and/or add_offset attributes, the
-! variable is not scaled unless it is first variable in stepfile.
-! acm 8/29/2005
-
-! tok_short.des behaves correctly; the stepfile in it, sstok_short.nc lists
-! variable sst first.
-
-! tnok_short.des, containing sstnok_short.nc results in sst NOT being scaled
-! because it is the second variable in the file.
-
-! Data in SST should be rescaled in both des files to values 0.1699, 0.1799, ...
-
-EXIT/SCRIPT ! error in namelist record...
-
-! Bug 1335 Zero-contour should be dark line.
-GO bn_reset
-cancel mode verify
-GO err581_contour_zero_lev.jnl
-! err581_contour_zero_lev.jnl
-! acm 9/7/2005
-! See bug report 1335
-! Zero-contour should be dark line.
-
-use coads_climatology
-contour/lev=(-20,20,2) sst[L=1] - 20
-
-! Bug 1339, code hangs with this combination of (-INF)(INF) levels and shakey
-GO bn_reset
-cancel mode verify
-GO err581_shakey_inf.jnl
-! err581_shakey_inf.jnl
-! acm 9/7/2005
-
-! see bug report 1339; code hangs with this combination of (-INF)(INF) levels
-! and SHAKEY with klab_dig=0 (argument 5)
-
-use coads_climatology
-fill/l=1/lev=(-inf)(0,30,2)(inf)/key/set sst
-ppl shakey 1,0,.12,0,0,4,2,8,7.1,7.4
-ppl fill
-
-ppl/reset ! undo the SHAKEY setting.
-
-
-! Bug 918, immediate mode parsing in IF blocks
-GO bn_reset
-cancel mode verify
-GO err581_if_conditional.jnl
-! err581_if_conditional.jnl bug 918.
-! acm 10/2005
-! Immediate mode parsing: when in an IF block, and when
-! the IF is false and therefore not being executed.
-! Previously ferret attempted to parse the IF `a` THEN
-! but could not because LET a=1 has not been executed/
-!
-! This should skip to the end, not trying to execute anything inside the IF 0 THEN
-
-if 0 then
- endif
- endif
-endif
-
-say "finished the if block"
-finished the if block
-
-! Further tests, after this fix, we get an error
-! **ERROR: variable unknown or not in data set: DXYMIN
-! The code that skips statements inside the IF false THEN
-! was bumping a stack on the internal IF statement...
-
-define symbol xend -180
-let key_flag = 0
-
-IF `($xend) GT 360` THEN
- !-> IF 0 THEN
-ENDIF
-let dxymin = 0.20
-if `dxymin lt 0.12` then
- !-> if 0 then
-elif `dxymin lt 0.25` then
- !-> elif 1 then
- SAY "point G"
-point G
-endif
-
-
-
-! try yet another test with a nested block if, not executed.
-
-define symbol xend -180
-let key_flag = 0
-
-IF `($xend) GT 360` THEN
- !-> IF 0 THEN
- ENDIF
-ENDIF
-let dxymin = 0.20
-if `dxymin lt 0.12` then
- !-> if 0 then
-elif `dxymin lt 0.25` then
- !-> elif 1 then
- SAY "point G"
-point G
-endif
-
-! an entire IF ELSE ENDIF inside an IF clause which is not to be executed
-
-IF `($xend) GT 360` THEN
- !-> IF 0 THEN
- ENDIF
-ELSE
- say "this is the ELSE that should execute"
-this is the ELSE that should execute
-ENDIF
-
-! ELIF examples
-
-go non_std_refmap 122.0 228.5 5 5 xline 0
-
-! std_refmap.jnl -- requires Ferret V4.3 or later
-! 5/96
-
-! Mods 6.98 *jd/sh* to improve the aspect ratio of the refmap for t and z
-! profiles. Separate consideration given for each case:
-
-! The case of "pt_orient == tseries" which has a horizontally oriented
-! reference map, and the case of the default value for pt_orient == 0
-! (zprofile), with a vertically oriented reference map, are optimized.
-
-! The symbol pt_orient is set in std_gif_t.jnl.
-
-! 7.2004 *jmclean* add symbol and min,max functions to keep longitude region with 360 degrees
-
-
-! For example:
-! yes? go refmap 180 230 0 20 box 1
-! and
-! yes? go refmap 80 80 0 20 yline 2
-! and
-! yes? go refmap 70 90 0 20 yline 2 1
-! and
-! yes? go refmap 30 180 30 30 xline 2
-! and
-! yes? go refmap 30 180 20 60 xline 2 0 1
-! and
-! yes? go refmap 180 180 -40 -40 point 2
-! and
-! yes? go refmap 20 180 -40 60 point 2 1 1
-
-! Description: draw a reference map with region indicated
-
-! arguments: 1 2 3 4 5 6 7 8
-! Usage: GO refmap xmin xmax ymin ymax type magnify xcompress ycompress
-
-! mins and maxs should be numerical values for lat/long
-! type - may be "box", "xline", "yline", or "point" (default: "box")
-! xcompress - may be 1 (indicating that X compression is applied or 0
-! (default: "0")
-
-! e.g. to indicate a Y line in which X compression has been applied send
-! type="yline" and xcompress="1"
-
-! this script assumes that the viewport has already been set
-
-! NOTE: MAGNIFY FACTOR
-! The argument magnify determines what resolution of land mask is used.
-
-! magnify = 1 - INT(LOG(fraction)/LOG(2))
-! then clip magnify to the interval [1 to 5]
-
-! check the region arguments
-let refmap_xmin = $1%<Usage: GO refmap xmin xmax ymin ymax type magnify xcompress ycompress%
- !-> DEFINE VARIABLE refmap_xmin = 122.0
-let refmap_xmax = $2%<Usage: GO refmap xmin xmax ymin ymax type magnify xcompress ycompress%
- !-> DEFINE VARIABLE refmap_xmax = 228.5
-let refmap_ymin = $3%<Usage: GO refmap xmin xmax ymin ymax type magnify xcompress ycompress%
- !-> DEFINE VARIABLE refmap_ymin = 5
-let refmap_ymax = $4%<Usage: GO refmap xmin xmax ymin ymax type magnify xcompress ycompress%
- !-> DEFINE VARIABLE refmap_ymax = 5
-
-! set default args
-DEFINE SYMBOL refmap_type $5%box|xline|yline|box|point|%
- !-> DEFINE SYMBOL refmap_type xline
-DEFINE SYMBOL refmap_xcompress $7%0%
- !-> DEFINE SYMBOL refmap_xcompress 0
-DEFINE SYMBOL refmap_ycompress $8%0%
- !-> DEFINE SYMBOL refmap_ycompress 0
-
-! set the layout in the viewport
-! (for performance the code from margins can be inserted in here and optimized)
-! GO margins blah blah
-
-! determine the lat/long limits to plot
-set region/x=$1:$2/Y=$3:$4
- !-> set region/x=122.0:228.5/Y=5:5
-
-! Keep longitude region within 360 degrees. Supposes that xhi-xlo <= 360
-def sym ref_dx = `(360-ABS($2-$1))/2`
- !-> def sym ref_dx = 126.75
-
-IF ($refmap_type%|box>1|*>0%) THEN ! IF "box"
- !-> IF 0 THEN
-ELIF ($refmap_type%|xline>1|*>0%) THEN ! ELSE IF "xline"
- !-> ELIF 1 THEN
- define region/default/dy=$6"-30:30|1>-30:30|*>-20:20"/dx=$6"0:0|1>0:0|2>0:0|*>`max(-($ref_dx),-50)`:`min(($ref_dx),50)`" band
- !-> define region/default/dy=-20:20/dx=-50:50 band
-
-ELIF ($refmap_type%|yline>1|*>0%) THEN ! ELSE IF "yline"
- !-> ELIF 0 THEN
- ENDIF
-ENDIF
-! init the land mask data set
-set data coads_climatology
-set region/L=1
-! draw gray shaded continents
-! known potential bug: if X region begins at, say, 0E then magnification 3
-! or greater results in negative modulo subscripts
-
-shade/lev=(0,10000,10000)/nokey/nolab/palette=grey/@band/set sst
-! ==> may want various IF tests to stylize plots: tics, numbering, etc.
-
-IF ($refmap_type%|box>1|*>0) THEN ! IF "box"
- !-> IF 0 THEN
-ELIF ($refmap_type%|xline>1|*>0) THEN ! ELSE IF "xline"
- !-> ELIF 1 THEN
- ppl axlint 3
- ppl shade
- ppl axlint 2
-ELIF ($refmap_type%|yline>1|*>0) THEN ! ELSE IF "yline"
- !-> ELIF 0 THEN
-ENDIF
-
-! some clean up now to assist with repeated testing
-cancel region band
-
-set data coads_climatology
-set region/L=1
-
-! draw a thick red region marker on the reference map
-let refmap_xrng = IF i EQ 1 THEN refmap_xmin ELSE refmap_xmax
-let refmap_yrng = IF i EQ 1 THEN refmap_ymin ELSE refmap_ymax
-let refmap_xmid = ((refmap_xmin)+(refmap_xmax))/2
-let refmap_ymid = ((refmap_ymin)+(refmap_ymax))/2
-
-IF ($refmap_type%|box>1|*>0) THEN ! IF "box"
- !-> IF 0 THEN
-ELIF ($refmap_type%|xline>1|*>0) THEN ! ELSE IF "xline"
- !-> ELIF 1 THEN
-
- IF ($refmap_ycompress) THEN
- !-> IF 0 THEN
- ENDIF
-
- plot/over/vs/nolab/line=8/i=1:2 refmap_xrng, refmap_ymid+(i-i)
-
-ELIF ($refmap_type%|yline>1|*>0) THEN ! ELSE IF "yline"
- !-> ELIF 0 THEN
- ENDIF
- ENDIF
-ENDIF
-
-
-palette rainbow
-
-! Bug 899
-! Ungraceful STOP if we asl for multi-var transformations on axis where there is no data
-GO bn_reset
-cancel mode verify
-GO err581_illegal_trans.jnl
-! err581_illegal_trans.jnl
-! Ungraceful STOP if we do @VAR on an axis where there is no data
-
-set mode ignore_error
-use coads_climatology
-shade sst[x=@var,k=@var]
-
-shade sst[t=@AVE,Z=@ave]
-can mode ignore_error
-
-
-! Bug 491
-! missing flag gets scaled by scale and offset factors!
-GO bn_reset
-cancel mode verify
-GO err581_missing_scale_off.jnl
-! err581_missing_scale_off.jnl
-! ACM 11/8/05
-! Bug 491 was not correctly fixed... missing flag was scaled with scale, offset
-! attribute values.
-
-! data contains missing value flag of -999 and scale of 0.1
-! Previously this resulted in data values of -99 where should be missing.
-
-use missing_scale_off.nc
-say `tt,return=bad`
- !-> MESSAGE/CONTINUE -999
--999
-list tt
- VARIABLE : 1 + 0*T[GT=DAYT]
- FILENAME : missing_scale_off.nc
- SUBSET : 10 points (TIME)
- 01-JAN-1990 00 / 1: 0.100
- 02-JAN-1990 00 / 2: 0.200
- 03-JAN-1990 00 / 3: 0.300
- 04-JAN-1990 00 / 4: ....
- 05-JAN-1990 00 / 5: 0.500
- 06-JAN-1990 00 / 6: 0.600
- 07-JAN-1990 00 / 7: 0.700
- 08-JAN-1990 00 / 8: ....
- 09-JAN-1990 00 / 9: 0.900
- 10-JAN-1990 00 / 10: 1.000
-
-
-! bug 1363
-! SHOW GRID and other output have wrong dates, non-std calendar axesv
-GO bn_reset
-cancel mode verify
-GO err581_cal_dates_output.jnl
-! err581_cal_dates_output.jnl
-! bug 1363:
-! SHOW GRID and other output have wrong dates, non-std calendar axesv
-
-! create a time axis with 360-day calendar
-def axis/t=1-jan-2000:1-jan-2005:1/units=months/cal=d360/t0=1-jan-1960 t360
-let t3 = t[gt=t360]
-save/clobber/file=t3file.nc t3
-can var/all
-can axis t360
-
-! Bug showed date range of 30-JUL-2000 to 26-AUG-2005
-set data t3file
-sho grid t3
- GRID GCG1
- name axis # pts start end
- normal X
- normal Y
- normal Z
- T360 TIME 61 r 01-JAN-2000 00:00 01-JAN-2005 00:00
- normal E
- normal F
-
-! bug 1365
-! STOP on shade command when modulo-regridding a time-limited nonstd calendar
-GO bn_reset
-cancel mode verify
-GO err581_noleap_mod.jnl
-! err581_noleap_mod.jnl
-! This is bug 1365: STOP on shade command
-! when modulo-regridding a time-limited NOLEAP calendar
-
-use gt4d011.cdf
-set axis/cal=noleap `u,return=taxis`
- !-> set axis/cal=noleap TIME11
-let a = u[t=1-sep-1982:1-jan-1983]
-def axis/t/edge/mod/cal=noleap/unit=days/t0=1-jan-0001 mon_irreg_nlp = {0,31,59,90,120,151,181,212,243,273,304,334,365}
-
-let a_clim = a[gt=mon_irreg_nlp at mod]
-shade/y=0/k=1 a_clim
-
-
-! bug 1392
-! CANCEL DATA errors
-GO bn_reset
-cancel mode verify
-GO err581_cancel_data.jnl
-! err581_cancel_data.jnl
-
-! test fixes for bug 1392:
-! cancel data 0000_a.nc
-! cancel data with a pathname, not just the dataset name
-
-let a = {1,5,6}
-save/clobber/file=0000_a.nc a
-set data 0000_a.nc
-can data 0000_a
-
-sp rm -f subdir/a.dat
-sp mkdir -p subdir
-
-save/clobber/file="subdir/a.nc" a
-use "subdir/a.nc"
-sh data
- currently SET data sets:
- 1> subdir/a.nc (default)
- name title I J K L M N
- A {1,5,6} 1:3 ... ... ... ... ...
-
-can data "subdir/a.nc"
-sh data
- currently SET data sets:
-save/clobber/file="subdir/0000_a.nc" a
-set data "subdir/0000_a.nc"
-sh data
- currently SET data sets:
- 1> subdir/0000_a.nc (default)
- name title I J K L M N
- A {1,5,6} 1:3 ... ... ... ... ...
-
-can dat 0000_a
-set data "subdir/0000_a.nc"
-can dat 0000_a.nc
-sh data
- currently SET data sets:
-set data "subdir/0000_a.nc"
-can dat "subdir/0000_a.nc"
-sh data
- currently SET data sets:
-
-sp rm -f subdir/a.nc
-sp rm -f subdir/0000_a.nc
-
-! bug 1394
-! parsing time units of "months_since_event"
-! CANCEL DATA errors
-GO bn_reset
-cancel mode verify
-GO err581_since_units.jnl
-! err581_since_units.jnl
-! bug 1394: units of months_since_event
-! the "since" causes Ferret to try to parse "event" as a
-! date for time origin. Change so that if its not a date,
-! we just keep the whole units string.
-! also increase length of strings in line_units array.
-
-def axis/t=1:3:1/unit="months_since_event" tax
-let a = t[gt=tax]
-save/clobber/file=a.nc a
-
-can var a
-can ax tax
-use a
-say `a,ret=tunits`
- !-> MESSAGE/CONTINUE months_since_event
-months_since_event
-list a
- VARIABLE : T[GT=TAX]
- FILENAME : a.nc
- SUBSET : 3 points (T (months_since_event))
- 1 / 1: 1.000
- 2 / 2: 2.000
- 3 / 3: 3.000
-
-
-! bug 1395
-! parsing exponent expressions: 1.0e-5+0*7 misinterpreted
-! CANCEL DATA errors
-GO bn_reset
-cancel mode verify
-GO err581_exp_spaces.jnl
-! err581_exp_spaces.jnl
-! bug 1395
-! Expressions with an exponent immediately followed by an operator
-! are parsed incorrectly, including the operator in the exponent:
-!
-! 1.0e-5+0*7 was parsed as (1.0e-5 + 0)* 7
-! 1.0e-5 + 0*7 was parsed correctly
-
-set mode ignore
-
-list 1.0e-5+ 0*7
- VARIABLE : 1.0E-5+ 0*7
- 1.000E-05
-list 1.0e-5 + 0*7
- VARIABLE : 1.0E-5 + 0*7
- 1.000E-05
-list 1.0e-5+0*7
- VARIABLE : 1.0E-5+0*7
- 1.000E-05
-list 1000.6+ 0*7
- VARIABLE : 1000.6+ 0*7
- 1001.
-
-let xx= x[x=1:5]
-
-list 1.0e-5 + 0*xx
- VARIABLE : 1.0E-5 + 0*XX
- SUBSET : 5 points (X)
- 1 / 1: 1.000E-05
- 2 / 2: 1.000E-05
- 3 / 3: 1.000E-05
- 4 / 4: 1.000E-05
- 5 / 5: 1.000E-05
-list 1.0e-5 + 0*xx
- VARIABLE : 1.0E-5 + 0*XX
- SUBSET : 5 points (X)
- 1 / 1: 1.000E-05
- 2 / 2: 1.000E-05
- 3 / 3: 1.000E-05
- 4 / 4: 1.000E-05
- 5 / 5: 1.000E-05
-list 1.0e-5+0*xx
- VARIABLE : 1.0E-5+0*XX
- SUBSET : 5 points (X)
- 1 / 1: 1.000E-05
- 2 / 2: 1.000E-05
- 3 / 3: 1.000E-05
- 4 / 4: 1.000E-05
- 5 / 5: 1.000E-05
-
-can mode ignore
-
-! bugs 439,1390: applying command context
-GO bn_reset.jnl
-cancel mode verify
-GO err581_command_cx.jnl
-! err590_command_cx.jnl
-! bugs 439 and 1390: the command context should apply to immed. mode evaluation
-! only for action commands, not for commands like define
-
-use gt4d011
-def ax/np=`temp,r=lsize`/t=0:100 tax
- !-> def ax/np=25/t=0:100 tax
-let n = `temp,r=lsize`
- !-> DEFINE VARIABLE n = 25
-def ax/np=`n`/t=0:100 tax
- !-> def ax/np=25/t=0:100 tax
-
-
-! but for an action command, the /I= should apply to the grave-accent
-! expression, correctly giving an error
-
-set mode ignore
-plot/i=100/k=1 temp[x=`temp,r=xend`]
- !-> plot/i=100/k=1 temp[x=122.5W]
-
-can mode ignore
-
-! bug 1401: define 1-point axis with bounds; gets bounds wrong
-GO bn_reset.jnl
-cancel mode verify
-GO err581_define_1pt_bounds.jnl
-! err581_define_1pt_bounds.jnl
-! see bug 1401:
-
-! Define a multipoint axis and it works fine. Then define a 1-point axis and
-! the result is wrong. Then we repeat the first multipoint axis definition
-! again, and even that result is now very wrong!! Same results in both v5.81
-! for Linux and v5.70 for Irix.
-
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
- X: -2 to 6
- Column 1: XBOXLO is XBOXLO (axis XAX)
- Column 2: XBOXHI is XBOXHI (axis XAX)
- Column 3: X is X (axis XAX)
- XBOXLO XBOXHI X
-0 / 1: -2.000 2.000 0.000
-3 / 2: 2.000 4.000 3.000
-5 / 3: 4.000 6.000 5.000
-
-yes? def ax/x/bounds xax = {0},{-2,2}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
- X: 0
- Column 1: XBOXLO is XBOXLO (axis XAX)
- Column 2: XBOXHI is XBOXHI (axis XAX)
- Column 3: X is X (axis XAX)
- XBOXLO XBOXHI X
-I / *: -2.000 2.000 0.0000
-
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
- X: -2 to 6
- Column 1: XBOXLO is XBOXLO (axis XAX)
- Column 2: XBOXHI is XBOXHI (axis XAX)
- Column 3: X is X (axis XAX)
- XBOXLO XBOXHI X
-0 / 1: -2.000 2.000 0.000
-3 / 2: 2.000 4.000 3.000
-5 / 3: 4.000 6.000 5.000
-
-! Bug in strrindex when 1st argument is a list of strings
-GO bn_reset.jnl
-cancel mode verify
-GO err581_strrindex.jnl
-! err581_strrindex.jnl
-! 5/2/2006
-! Bug in strrindex when 1st argument is a list of strings
-! This resulted in a crash
-
-let var = {"strings", "a.b", "cs.ds", "mmm", "amss.ffst"}
-list strrindex(var,"s")
- VARIABLE : STRRINDEX(VAR,"s")
- SUBSET : 5 points (X)
- 1 / 1: 7.000
- 2 / 2: 0.000
- 3 / 3: 5.000
- 4 / 4: 0.000
- 5 / 5: 8.000
-
-! POLYGON/LINE over a depth axis.
-GO bn_reset.jnl
-cancel mode verify
-GO err581_poly_rev.jnl
-! err581_poly_rev.jnl
-! POLYGON/LINE mis-locates the line when there is a depth or
-! other reversed axis. Bugs 842, 843, 844
-! ACM 8/10/2006
-
-! From Patrick, polygon/line on a depth axis
-
-set mem /size=200
-
-use gt4d011
-
-shade temp[i=@ave,l=1]
-
-let v1={-3,2,0.5,2}
-let v2={20,80,50,30}
-let v3={10,-3,16,3}
-
-! Overlay sample data over a variable with a depth axis
-! /line=1 did not work
-
-go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle 2
-
-
-! XZ plot
-shade temp[j=@ave,l=1]
-let v1={221,225,232,235}
-let v2={20,80,50,30}
-let v3={10,-3,16,3}
-
-go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle 2
-
-
-! ZT plot
-shade temp[i=@ave,j=@ave]
-let v1={22800,23500,24800,26000}
-let v2={20,80,50,30}
-let v3={10,-3,16,3}
-
-go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle 2
-
-
-! And, from Andrew with other reversed axes.
-
-yes? ppl cross 1
-yes? plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-yes? poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
-
-ppl cross 0
-
-set mem /size=25.6
-
-
-
-! ******** V6.01 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn601_bug_fixes.jnl
-! bn601_bug_fixes.jnl
-! test various fixes that went into version 6.01
-! 20-Sep-2006 ACM
-!
-! Long name for bounds attribute was not read by Ferret
-! Bug 1443
-GO bn_reset
-cancel mode verify
-GO err600_long_bounds_name
-! err600_long_bounds_name.jnl
-! Long name for bounds attribute was not read by Ferret
-! Bug 1443
-! 20-Sep-2006 ACM
-
-
-def axis/x/bounds layer_between_two_pressure_difference_from_ground = {0,3,5},{-6,2,2,4.5,4.5,9}
-let var = x[gx=layer_between_two_pressure_difference_from_ground] + 1
-
-save/clobber/file=a.nc var
-can var/all
-
-! previously the following generated an error
-use a
-list x[gx=var], xbox[gx=var], xboxlo[gx=var], xboxhi[gx=var]
- DATA SET: ./a.nc
- X: -6 to 9
- Column 1: X is X (axis LAYER_BETWEEN_TWO_PRESSURE_DIFFERENCE_FROM_GROUND)
- Column 2: XBOX is XBOX (axis LAYER_BETWEEN_TWO_PRESSURE_DIFFERENCE_FROM_GROUND)
- Column 3: XBOXLO is XBOXLO (axis LAYER_BETWEEN_TWO_PRESSURE_DIFFERENCE_FROM_GROUND)
- Column 4: XBOXHI is XBOXHI (axis LAYER_BETWEEN_TWO_PRESSURE_DIFFERENCE_FROM_GROUND)
- X XBOX XBOXLO XBOXHI
-0 / 1: 0.000 8.000 -6.000 2.000
-3 / 2: 3.000 2.500 2.000 4.500
-5 / 3: 5.000 4.500 4.500 9.000
-
-
-! Previously TM_CHECK_BNDS had not been used to check bounds on regular axes.
-! bug1434
-GO bn_reset
-cancel mode verify
-GO err600_check_bounds_regular.jnl
-! err600_check_bounds_regular.jnl
-! Previously TM_CHECK_BNDS had not been used to check bounds on regular axes.
-! bug1434
-
-! 19-Sep-2006 ACM
-
-use coads_climatology
-save/clobber/l=1/j=45/file=b.nc/bounds sst
-can data/all
-use b
-
-! previously had errors:
-! bounds COADSX_bnds do not enclose point on axis COADSX
-! Substituting coordinate midpoints
-
-! Long values for symbols: previously symbol strings were cut off at 255 characters.
-! Bug 1439
-GO bn_reset
-cancel mode verify
-GO err600_long_symbol_string.jnl
-! err600_longsym_symbol_string.jnl
-! Long values for symbols: previously strings were cut off at 255 characters.
-! Bug 1439
-! 20-Sep-2006 ACM
-
-! Define a long symbol and use it in a function call
-
-DEFINE SYMBOL longsym_a = "........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310"
-DEFINE SYMBOL longsym_b = "300.......310"
-SHOW SYMBOL longsym_a, longsym_b
-LONGSYM_A = ""........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310""
-LONGSYM_B = ""300.......310""
-
-LIST STRINDEX(($longsym_a),($longsym_b))
- !-> LIST STRINDEX("........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310","300.......310")
- VARIABLE : STRINDEX("........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170
- 298.0
-
-! Now define a symbol from a file variable
-use "longtitle1000.nc"
-DEFINE SYMBOL longsym_1000 = "`a,return=dsettitle`"
- !-> DEFINE SYMBOL longsym_1000 = "
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 [...]
-
-SHOW SYMBOL longsym_1000
-LONGSYM_1000 = ""
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 [...]
-
-DEFINE SYMBOL longsym_very_long = strcat (($longsym_a), ($longsym_1000))
- !-> DEFINE SYMBOL longsym_very_long = strcat ("........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310", "
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 [...]
-SHOW SYMBOL longsym_very_long
-LONGSYM_VERY_LONG = "strcat ("........10........20........30........40........50........60........70........80........90.......100.......110.......120.......130.......140.......150.......160.......170.......180.......190.......200.......210.......220.......230.......240.......250.......260.......270.......280.......290.......300.......310", "
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 [...]
-
-CANCEL SYMBOL longsym*
-
-! Global missing-value flag for dataset was not initialized and so was
-! set to 0 when there was no global attribute in the file
-! bug 1445
-GO bn_reset
-cancel mode verify
-GO err600_missing_flag.jnl
-! noglobalhistory.nc has no global history attribute, and
-! also the variable B has no missing or fill value flag
-! Bug 1445: the missing-value flag got set to 0: (data values are 0,1,2,3)
-
-use noglobalhistory.nc
-list b
- VARIABLE : {0,1,2,3}
- FILENAME : noglobalhistory.nc
- SUBSET : 4 points (X)
- 1 / 1: 0.000
- 2 / 2: 1.000
- 3 / 3: 2.000
- 4 / 4: 3.000
-
-! should be 0,1,2,3; bug had first value missing.
-
-
-! err600_returnsize.jnl
-! bug 1447, where say `var[d=fname.cdf],return=size` failed
-! ( a parsing error, confusing the dot in the filename with dot in `var.att,return=size` )
-GO bn_reset
-cancel mode verify
-GO err600_returnsize.jnl
-! err600_returnsize.jnl
-! ACM 10-4-2006
-! bug 1447, where say `var[d=fname.cdf],return=size` failed
-! ( a parsing error, confusing the dot in the filename with dot in `var.att,return=size` )
-
-
-use coads_climatology.cdf
-
-say `sst[d=coads_climatology.cdf],return=size`
- !-> MESSAGE/CONTINUE 48600
-48600
-say `sst.units,return=size`
- !-> MESSAGE/CONTINUE 5
-5
-
-define symbol the_x_axis = `sst,return=xaxis`
- !-> define symbol the_x_axis = COADSX
-say `(($the_x_axis)).units,return=size`
- !-> MESSAGE/CONTINUE 12
-12
-
-! err600_if_comments_tab.jnl
-! bug 1446 When there is a tab before a comment, the parsing gets
-! thrown off and we got an error about an invalid ENDIF
-GO bn_reset
-cancel mode verify
-GO err600_if_comments_tab.jnl
-! err600_if_comments_tab.jnl
-! ACM 10-4-2006
-! bug 1446 When there is a tab before a comment, the parsing gets
-! thrown off and we got an error about an invalid ENDIF
-
-IF 0 THEN
- ENDIF
-ENDIF
-
-! Here there is a tab before the ! which throws off the parsing...
-IF 0 THEN
- ENDIF
-ENDIF
-
-! err600_set_var_title.jnl
-! Bug 1454 Settings made by SET VAR/TITLE=/UNITS= were not saved in output file
-GO bn_reset
-cancel mode verify
-GO err600_set_var_title.jnl
-! err600_set_var_title.jnl
-! Bug 1454
-! The settings made by SET VAR/TITLE=/UNITS= were not saved in output file
-! ACM 10/11/06
-
-! check the variable name and title in the list command output
-use gtbc011
-list/y=1/k=1/l=1 temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gtbc011.cdf
- SUBSET : 3 points (LONGITUDE)
- LATITUDE : 0.833N
- DEPTH (m): 5
- TIME : MAR-1983
- 0.83N
- 48
- 160.5W / 70: 31.20
- 159.5W / 71: 31.34
- 158.5W / 72: 31.45
-
-set var/title="Temp"/units="DegC" temp
-list/y=1/k=1/l=1 temp ! new title and units
- VARIABLE : Temp (DegC)
- FILENAME : gtbc011.cdf
- SUBSET : 3 points (LONGITUDE)
- LATITUDE : 0.833N
- DEPTH (m): 5
- TIME : MAR-1983
- 0.83N
- 48
- 160.5W / 70: 31.20
- 159.5W / 71: 31.34
- 158.5W / 72: 31.45
-
-save/file=a.nc/clobber temp
-can data/all
-use a.nc
-! This listing should have the NEW var title and units
- list/y=1/k=1/l=1 temp
- VARIABLE : Temp (DegC)
- FILENAME : a.nc
- SUBSET : 3 points (LONGITUDE)
- LATITUDE : 0.833N
- DEPTH (m): 5
- TIME : MAR-1983
- 0.83N
- 48
- 160.5W / 1: 31.20
- 159.5W / 2: 31.34
- 158.5W / 3: 31.45
-
-! err600_var_label.jnl
-! bug1442 If there is no long_name attribute, the plot should
-! be labelled with the var name but it only has units label
-GO bn_reset
-cancel mode verify
-GO err600_var_label.jnl
-! err600_var_label.jnl
-! bug1442
-! If there is no long_name attribute, the plot or listing
-! should be labeled with the var name but it has only the units
-
-use gtbc011
-
-! line VARIABLE has longname (units) which is TEMPERATURE (deg. C)
-list/i=70/l=1/j=30/k=1 temp
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gtbc011.cdf
- LONGITUDE: 160.5W
- LATITUDE : 5.167S
- DEPTH (m): 5
- TIME : MAR-1983
- 29.54
-
-! Write, without the long_name attribute.
-can att/output temp.long_name
-save/file=a.nc/clobber temp
-
-can data/all
-use a.nc
-sh att/all temp
- attributes for dataset: ./a.nc
- TEMP.missing_value = -1.E+34
- TEMP._FillValue = -1.E+34
- TEMP.history = From gt160w011
- TEMP.units = deg. C
-
-! Label should be variablename (units) which is TEMP (deg. C)
-list/i=70/l=1/j=30/k=1 temp
- VARIABLE : TEMP (deg. C)
- FILENAME : a.nc
- LONGITUDE: 159.5W(6321)
- LATITUDE : 5.167S
- DEPTH (m): 5
- TIME : MAR-1983
- 29.72
-
-! err600_upcase.jnl
-! Bug 1461 upcasing of axis name on creating bounds variable for output
-GO bn_reset
-cancel mode verify
-GO err600_upcase.jnl
- ! err600_upcase.jnl
- ! 10/23/2006
- ! acm
- ! bug 1461: bounds variable is created for netcdf output with upcased axis name,
- ! but cd_write_var looked for it with original lowercase axis name.
-
-SET MODE ignore_error
-
-USE err600_upcase.nc
-SAVE/CLOBBER/FILE=b.nc v
-
-! this was the workaround for v6.0. After the fix this works the same as the above
-CANCEL MODE upcase
-SAVE/CLOBBER/FILE=b.nc v
-
-SET MODE/LAST upcase_output
-SET MODE/LAST ignore_error
-
-! err600_let_d.jnl
-! Making a LET/D= assignment caused the return of dimension names from the attribute
-! structure fail, and the list of variable names was incorrect.
-GO bn_reset
-cancel mode verify
-GO err600_let_d.jnl
-! err600_let_d.jnl
-! Making a LET/D= assignment caused the return of dimension
-! names from the attribute structure fail, and the list of
-! variable names was incorrect.
-! 28-Nov-2006
-
-use levitus_climatology
-let/d=levitus_climatology temp_20 = temp[d=levitus_climatology,z=0:20 at sum]
-list ..dimnames
- VARIABLE : ..DIMNAMES
- FILENAME : levitus_climatology.cdf
- SUBSET : 3 points (X)
- 1 / 1:"XAXLEVITR1_160"
- 2 / 2:"YAXLEVITR1_90"
- 3 / 3:"ZAXLEVITR1_1"
-list ..varnames
- VARIABLE : ..VARNAMES
- FILENAME : levitus_climatology.cdf
- "TEMP"
-
-! err600_nc_des_order.jnl
-! Bug 1459 order of multiple descriptor file opening causes netCDF error
-GO bn_reset
-cancel mode verify
-GO err600_nc_des_order.jnl
-! err600_nc_des_order.jnl
-! 11/07/2006 ACM
-!
-! Bug 1459 order of multiple descriptor file opening causes netCDF error
-! The bug results in:
-! ** netCDF error: NCSYSERR
-! Due to incorrect resetting of sf_lunit in cd_init_dset.F
-
-set data tok_short.des
-set data ss_small.nc
-set data mc_test.des
-set data sstok_short.nc
-
-stat rose[d=2]
-
- Surface relief
- LONGITUDE: 137.3W(222.7) to 135.7W(224.3)
- LATITUDE: 58.19N to 59.16N
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: ./ss_small.nc
-
- Total # of data points: 2576 (46*56*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: -592
- Maximum value: 3005
- Mean value: 436.64 (unweighted average)
- Standard deviation: 563.43
-
-can data/all
-
-set data/form=cdf "ss_small.nc"
-set data/form=cdf "sstok_short.nc"
-SET DAT/FORM=CDF "mc_test.des"
-
-stat rose[j=12,d=1]
-
- Surface relief
- LONGITUDE: 137.3W(222.7) to 135.7W(224.3)
- LATITUDE: 58.39N
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: ./ss_small.nc
-
- Total # of data points: 46 (46*1*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: -168
- Maximum value: 509
- Mean value: 62.717 (unweighted average)
- Standard deviation: 156.25
-
-! Bug 1470; redefine or reset attributes of an axis
-! should change the axis definition and its attributes
-! in the attribute structure.
-GO bn_reset
-cancel mode verify
-GO err600_reset_redefine_axis.jnl
-! err600_reset_redefine_axis.jnl
-! Bug 1470; redefine or reset attributes of an axis
-! should change the axis definition and its attributes
-! in the attribute structure.
-
-use coads_climatology
-def sym timeax = `sst,return=taxis`
- !-> def sym timeax = TIME9
-
-show att/all ($timeax)
- !-> show att/all TIME9
-show axis ($timeax)
- !-> show axis TIME9
- name axis # pts start end
- TIME9 TIME 3mr 16-JAN 06:00 17-MAR 02:58
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
-define axis/t0=1-jan-0001/t=1:3:1/unit=months ($timeax)
- !-> define axis/t0=1-jan-0001/t=1:3:1/unit=months TIME9
-show att/all ($timeax)
- !-> show att/all TIME9
-show axis ($timeax)
- !-> show axis TIME9
- name axis # pts start end
- TIME9 TIME 3 r 31-JAN-0001 10:29 02-APR-0001 07:27
-T0 = 1-JAN-0001
- Axis span (to cell edges) = 3
-
-! Changing axis with the SET AXIS command
-
-can data/all
-use gt4d011
-def sym timeax = `temp,return=taxis`
- !-> def sym timeax = TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
-show axis ($timeax)
- !-> show axis TIME11
- name axis # pts start end
- TIME11 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
-T0 = 14-JAN-1980 14:00:00
- Axis span (to cell edges) = 3650
-
-set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days ($timeax)
- !-> set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
-show axis ($timeax)
- !-> show axis TIME11
- name axis # pts start end
- TIME11 TIME 25mr 14-MAR-1962 00:00 19-OCT-1971 00:00
-T0 = 1-JAN-1900
-CALENDAR = NOLEAP
- Axis span (to cell edges) = 3650 (modulo length = axis span)
-
-
-! Changing axis with the CANCEL AXIS/ command
-
-can data/all
-use gt4d011
-def sym timeax = `temp,return=taxis`
- !-> def sym timeax = TIME11
-def sym zax = `temp,return=zaxis`
- !-> def sym zax = PSZT1
-show att/all ($timeax)
- !-> show att/all TIME11
-show axis ($zax)
- !-> show axis PSZT1
- name axis # pts start end
- PSZT1 DEPTH (m) 27 i- 5 3824
- Axis span (to cell edges) = 4149
-
-cancel axis/modulo ($timeax)
- !-> cancel axis/modulo TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
-show axis ($timeax)
- !-> show axis TIME11
- name axis # pts start end
- TIME11 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
-T0 = 14-JAN-1980 14:00:00
- Axis span (to cell edges) = 3650
-cancel axis/depth ($zax)
- !-> cancel axis/depth PSZT1
-show att/all ($zax)
- !-> show att/all PSZT1
-show axis ($zax)
- !-> show axis PSZT1
- name axis # pts start end
- PSZT1 Z (METERS) 27 i 5 3824
- Axis span (to cell edges) = 4149
-
-
-! err600_ferret_axis_names.jnl
-! If Ferret needed to rename an axis on file initialization for uniqueness,
-! we now keep that new name in the attr structure, and an attribute
-! orig_file_axname keeps the input name.
-GO bn_reset
-cancel mode verify
-GO err600_ferret_axis_names.jnl
-! err600_ferret_axis_names.jnl
-! If Ferret needed to rename an axis on file initialization for uniqueness,
-! we now keep that new name in the attr structure, and add an attribute
-! orig_file_axname with the input name. That orig name is used only on output.
-
-def axis/t=1:5:1 time
-use coads_climatology
-
-! Note TIME1 with attribute orig_file_axname
-sh dat/att
- currently SET data sets:
- 1> ./coads_climatology.cdf (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 28 T FERRET V4.91 (GUI) 1-Mar-99
-
-(COADSX) DOUBLE units CHAR 12 T degrees_east
- modulo CHAR 1 T
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 6 F COADSX
-
-(COADSY) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- orig_file_axnameCHAR 6 F COADSY
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 19 T 1-JAN-0000 00:00:00
- modulo CHAR 1 T
- orig_file_axnameCHAR 4 F TIME
-
- SST FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 23 T SEA SURFACE TEMPERATURE
- history CHAR 22 T From coads_climatology
- units CHAR 5 T Deg C
-
-save/clobber/bounds/file=a.nc/x=181/y=1 sst
-
-can data/all
-use gt4d011
-save/clobber/file=t2.nc temp[L=2:6]
-save/clobber/file=t12.nc temp[L=12:16]
-can data/all
-
-use t2.nc; use t12.nc
-
-sho dat/att
- currently SET data sets:
- 1> ./t2.nc
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
- modulo DOUBLE 1 T 360
- point_spacing CHAR 4 T even
- axis CHAR 1 T X
- standard_name CHAR 9 F longitude
- orig_file_axnameCHAR 10 F PSXT91_108
-
-(PSYT35_56) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 6 T uneven
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- bounds CHAR 14 T PSYT35_56_bnds
- orig_file_axnameCHAR 9 F PSYT35_56
-
- PSYT35_56_bnds DOUBLE
-
-(PSZT1_10) DOUBLE units CHAR 6 T METERS
- positive CHAR 4 T down
- point_spacing CHAR 6 T uneven
- axis CHAR 1 T Z
- standard_name CHAR 5 F depth
- bounds CHAR 13 T PSZT1_10_bnds
- orig_file_axnameCHAR 8 F PSZT1_10
-
- PSZT1_10_bnds DOUBLE
-
-(TIME11) DOUBLE units CHAR 30 T hour since 1980-01-14 14:00:00
- time_origin CHAR 20 T 14-JAN-1980 14:00:00
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 5 F TIME1
-
- TEMP FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 11 T TEMPERATURE
- history CHAR 12 T From gt4d011
- units CHAR 6 T deg. C
-
- 2> ./t12.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
- modulo DOUBLE 1 T 360
- point_spacing CHAR 4 T even
- axis CHAR 1 T X
- standard_name CHAR 9 F longitude
- orig_file_axnameCHAR 10 F PSXT91_108
-
-(PSYT35_56) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 6 T uneven
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- bounds CHAR 14 T PSYT35_56_bnds
- orig_file_axnameCHAR 9 F PSYT35_56
-
- PSYT35_56_bnds DOUBLE
-
-(PSZT1_10) DOUBLE units CHAR 6 T METERS
- positive CHAR 4 T down
- point_spacing CHAR 6 T uneven
- axis CHAR 1 T Z
- standard_name CHAR 5 F depth
- bounds CHAR 13 T PSZT1_10_bnds
- orig_file_axnameCHAR 8 F PSZT1_10
-
- PSZT1_10_bnds DOUBLE
-
-(TIME12) DOUBLE units CHAR 30 T hour since 1980-01-14 14:00:00
- time_origin CHAR 20 T 14-JAN-1980 14:00:00
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 5 F TIME1
-
- TEMP FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 11 T TEMPERATURE
- history CHAR 12 T From gt4d011
- units CHAR 6 T deg. C
-
-
-! err600_tab_comma_missingdat.jnl
-! when data contains missing values list/format=comma or list/format=tab
-! should output a comma or tab as placeholder for the missing value
-GO bn_reset
-cancel mode verify
-GO err600_tab_comma_missingdat.jnl
-! err600_tab_comma_missingdat.jnl
-! 11/21/2006 acm
-
-! when data contains missing values: extra comma as placeholder
-let a = {1,1,2,1,1,2,1,1}
-let b = {4,4,4,4,4,4,4,4}
-set var/bad=2 a
-list/form=comma a,b
- X: 0.5 to 8.5
- Column 1: A is {1,1,2,1,1,2,1,1} BAD FLAG : 2
- Column 2: B is {4,4,4,4,4,4,4,4} BAD FLAG : -1.E+34
- A,B
-1 / 1:1,4
-2 / 2:1,4
-3 / 3:2,4
-4 / 4:1,4
-5 / 5:1,4
-6 / 6:2,4
-7 / 7:1,4
-8 / 8:1,4
-list/form=comma a,b,a
- X: 0.5 to 8.5
- Column 1: A is {1,1,2,1,1,2,1,1} BAD FLAG : 2
- Column 2: B is {4,4,4,4,4,4,4,4} BAD FLAG : -1.E+34
- Column 3: A is {1,1,2,1,1,2,1,1} BAD FLAG : 2
- A,B,A
-1 / 1:1,4,1
-2 / 2:1,4,1
-3 / 3:2,4,2
-4 / 4:1,4,1
-5 / 5:1,4,1
-6 / 6:2,4,2
-7 / 7:1,4,1
-8 / 8:1,4,1
-
-! when data contains missing values: extra tab as placeholder
-let a = {1,1,2,1,1,2,1,1}
-let b = {4,4,4,4,4,4,4,4}
-set var/bad=2 a
-list/form=tab a,b
- X: 0.5 to 8.5
- Column 1: A is {1,1,2,1,1,2,1,1} BAD FLAG : 2
- Column 2: B is {4,4,4,4,4,4,4,4} BAD FLAG : -1.E+34
- A B
-1 / 1:1 4
-2 / 2:1 4
-3 / 3:2 4
-4 / 4:1 4
-5 / 5:1 4
-6 / 6:2 4
-7 / 7:1 4
-8 / 8:1 4
-list/form=tab a,b,a
- X: 0.5 to 8.5
- Column 1: A is {1,1,2,1,1,2,1,1} BAD FLAG : 2
- Column 2: B is {4,4,4,4,4,4,4,4} BAD FLAG : -1.E+34
- Column 3: A is {1,1,2,1,1,2,1,1} BAD FLAG : 2
- A B A
-1 / 1:1 4 1
-2 / 2:1 4 1
-3 / 3:2 4 2
-4 / 4:1 4 1
-5 / 5:1 4 1
-6 / 6:2 4 2
-7 / 7:1 4 1
-8 / 8:1 4 1
-
-! err600_vec_aspect.jnl
-! VECTOR/ASPECT plots are wrong (incorrect fix for bug 1348)
-GO bn_reset
-cancel mode verify
-GO err600_vec_aspect.jnl
-! err600_vec_aspect.jnl
-! VECTOR/ASPECT plots are wrong (incorrect fix for bug 1348)
-! 12/04/2006
-
-use gt4d011.cdf
-vec/k=1/l=1 u,v
-vec/over/asp/k=1/l=1 u,v
-
-! Irregular axes
-
-def axis/from_data/x/name=xirr/units=deg/modulo {0,1,2,4,6,7,8,10,14,16,20,23,24}
-def axis/from_data/y/name=yirr/units=deg {0,2,4,5,6,7,8,9,12,13,14,15,18}
-let a = 0.1*x[gx=xirr] + 4*y[gy=yirr]
-let b = 3*x[gx=xirr] + y[gy=yirr]
-vec a,b
-vec/asp/over a,b
-
-! err600_save_two.jnl
-! Bug 1478: save two variables with the same time axis to a file, error
-! when checking whether 2nd variable has same grid.
-GO bn_reset
-cancel mode verify
-GO err600_save_two.jnl
-! err600_save_two.jnl
-! 12/11/2006
-! Bug 1478: save two variables with the same time axis to a file.
-! got error attempt to redefine line; axis TIME doesnt match CDF file
-! This was due to upcasing of output axis TIME, which needed to be upcased
-! before checking whether record axis of the second variable matched the
-! one just written to the output file.
-
-use "a1478.nc"
-use "b1478.nc"
-save/clobber/file="out.nc" olr[d=1], swdn_toa[d=2]
-
-! err600_nc_des_order.jnl
-! Bug 1459 order of multiple descriptor file opening causes netCDF error
-GO bn_reset
-cancel mode verify
-GO err600_nc_des_order.jnl
-! err600_nc_des_order.jnl
-! 11/07/2006 ACM
-!
-! Bug 1459 order of multiple descriptor file opening causes netCDF error
-! The bug results in:
-! ** netCDF error: NCSYSERR
-! Due to incorrect resetting of sf_lunit in cd_init_dset.F
-
-set data tok_short.des
-set data ss_small.nc
-set data mc_test.des
-set data sstok_short.nc
-
-stat rose[d=2]
-
- Surface relief
- LONGITUDE: 137.3W(222.7) to 135.7W(224.3)
- LATITUDE: 58.19N to 59.16N
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: ./ss_small.nc
-
- Total # of data points: 2576 (46*56*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: -592
- Maximum value: 3005
- Mean value: 436.64 (unweighted average)
- Standard deviation: 563.43
-
-can data/all
-
-set data/form=cdf "ss_small.nc"
-set data/form=cdf "sstok_short.nc"
-SET DAT/FORM=CDF "mc_test.des"
-
-stat rose[j=12,d=1]
-
- Surface relief
- LONGITUDE: 137.3W(222.7) to 135.7W(224.3)
- LATITUDE: 58.39N
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: ./ss_small.nc
-
- Total # of data points: 46 (46*1*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: -168
- Maximum value: 509
- Mean value: 62.717 (unweighted average)
- Standard deviation: 156.25
-
-! ******** V6.02 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_set_strides.jnl
-! bn_set_strides.jnl
-! Jing Li, 11/2006
-! tests for SET AXIS/STRIDES
-
-! 1/2007 ACM change show axis/all to show commands for individual axes;
-! When run among other benchmark tests, there are a bunch of
-! unrelated axes already defined, which get in the way of
-! seeing the desired output.
-
-set mode ignore_error
-
-!..............1. ignore STRIDE = 1
-use coads_climatology
-show axis `sst,return=xaxis`
- !-> show axis COADSX
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- Axis span (to cell edges) = 360 (modulo length = axis span)
-show axis `sst,return=yaxis`
- !-> show axis COADSY
- name axis # pts start end
- COADSY LATITUDE 90 r 89S 89N
- Axis span (to cell edges) = 180
-show axis `sst,return=taxis`
- !-> show axis TIME10
- name axis # pts start end
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
-set axis/stride=1/offset=1 `sst, return=xaxis`
- !-> set axis/stride=1/offset=1 COADSX
-show axis `sst,return=xaxis`
- !-> show axis COADSX
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- Axis span (to cell edges) = 360 (modulo length = axis span)
-cancel data/all
-
-!..............2. illegal to stride an already strided axis
-use coads_climatology
-set axis/stride=2/offset=1 `sst, return=xaxis`
- !-> set axis/stride=2/offset=1 COADSX
-show axis `sst,return=xaxis`
- !-> show axis (AX047)
- name axis # pts start end
- (AX047) LONGITUDE 90mr 23E 19E(379)
- Axis span (to cell edges) = 360 (modulo length = axis span)
-!can't stride it again
-set axis/stride=2/offset=1 `sst, return=xaxis`
- !-> set axis/stride=2/offset=1 (AX047)
-show axis `sst,return=xaxis`
- !-> show axis (AX047)
- name axis # pts start end
- (AX047) LONGITUDE 90mr 23E 19E(379)
- Axis span (to cell edges) = 360 (modulo length = axis span)
-cancel data/all
-
-!..............3. only set STRIDE
-use coads_climatology
-
-! --- before striding
-
-list sst[i=21:30,j=50,k=1,l=50]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 10 points (LONGITUDE)
- LATITUDE : 9N
- TIME : FEB-0012
- 9N
- 50
- 61E / 21: 26.86
- 63E / 22: 27.00
- 65E / 23: 27.29
- 67E / 24: 27.69
- 69E / 25: 27.93
- 71E / 26: 28.08
- 73E / 27: 28.23
- 75E / 28: 28.32
- 77E / 29: 28.23
- 79E / 30: 27.82
-
-! --- after set striding
-
-set axis/stride=2 `sst, return=xaxis`
- !-> set axis/stride=2 COADSX
-list sst[i=11:15,j=50,k=1,l=50]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 5 points (LONGITUDE)
- LATITUDE : 9N
- TIME : FEB-0012
- 9N
- 50
- 61E / 11: 26.86
- 65E / 12: 27.29
- 69E / 13: 27.93
- 73E / 14: 28.23
- 77E / 15: 28.23
-
-
-! --- after cancel striding
-cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX042)
-list sst[i=21:30,j=50,k=1,l=50]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 10 points (LONGITUDE)
- LATITUDE : 9N
- TIME : FEB-0012
- 9N
- 50
- 61E / 21: 26.86
- 63E / 22: 27.00
- 65E / 23: 27.29
- 67E / 24: 27.69
- 69E / 25: 27.93
- 71E / 26: 28.08
- 73E / 27: 28.23
- 75E / 28: 28.32
- 77E / 29: 28.23
- 79E / 30: 27.82
-cancel data/all
-
-!.............4. only set OFFSET
-! ingored if you only set OFFSET
-
-use coads_climatology
-set axis/offset=1 `sst, return=xaxis`
- !-> set axis/offset=1 COADSX
-show axis `sst,return=xaxis`
- !-> show axis COADSX
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- Axis span (to cell edges) = 360 (modulo length = axis span)
-cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride COADSX
-cancel data/all
-
-
-!.............5. OFFSET .LE. STRIDE
-use coads_climatology
-set axis/stride=2/offset=4 `sst, return=xaxis`
- !-> set axis/stride=2/offset=4 COADSX
-cancel data/all
-
-!.............6. SHOW GRID/DYNAMIC
-use coads_climatology
-set axis/stride=4/offset=2 `sst, return=xaxis`
- !-> set axis/stride=4/offset=2 COADSX
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- AXIS (AX049) use count: 1
- AXIS (AX047) use count: 13
- AXIS (AX020) use count: 1
-cancel data/all
-
-!.............7. cancel stride on a non-strided axis
-use coads_climatology
-cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride COADSX
-cancel data/all
-
-!.............8. striding on a modulo axis
-
-! --- 8.1 stride value is an integer factor of the axis length
-! the strided axis will inherit the modulo property of its parent
-
-use coads_climatology
-set axis/stride=6/offset=5 `sst,return=xaxis`
- !-> set axis/stride=6/offset=5 COADSX
-show axis `sst,return=xaxis`
- !-> show axis (AX005)
- name axis # pts start end
- (AX005) LONGITUDE 30mr 31E 19E(379)
- Axis span (to cell edges) = 360 (modulo length = axis span)
-cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX005)
-
-!--- 8.2 stride value is not an integer factor of the axis length
-! warning: it may lose modulo property
-set axis/stride=7/offset=5 `sst,return=xaxis`
- !-> set axis/stride=7/offset=5 COADSX
-show axis `sst,return=xaxis`
- !-> show axis (AX042)
- name axis # pts start end
- (AX042) LONGITUDE 25 r 31E 7E(367)
- Axis span (to cell edges) = 350
-cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX042)
-cancel data/all
-
-! --- 8.3 testing strided modulo axis
-use coads_climatology
-set axis/stride=2/offset=1 `sst,return=xaxis`
- !-> set axis/stride=2/offset=1 COADSX
-shade/x=-180:180/y=-30:70/L=2 sst
-cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX042)
-cancel data/all
-
-!.............9. two datasets share the same grid
-
-! --- 9.1 test: use A - use B - stride
-! use A; use B; set axis/stride=2 `var[d=A], return=axis`
-! -- will affect variables in B
-use coads_climatology
-save/clobber/file=d2.nc sst[L=1]
-use d2
-list/x=180:195/j=30/L=1 sst[d=d2]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : d2.nc
- SUBSET : 8 points (LONGITUDE)
- LATITUDE : 31S
- TIME : JAN
- 31S
- 30
- 179W / 81: 22.53
- 177W / 82: 22.71
- 175W / 83: 22.44
- 173W / 84: 22.21
- 171W / 85: 21.86
- 169W / 86: 22.07
- 167W / 87: 22.30
- 165W / 88: 22.28
-set axis/stride=2 `sst[d=coads_climatology], return=xaxis`
- !-> set axis/stride=2 COADSX
-list/x=180:195/j=30/L=1 sst[d=d2]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : d2.nc
- SUBSET : 4 points (LONGITUDE)
- LATITUDE : 31S
- TIME : JAN
- 31S
- 30
- 179W / 41: 22.53
- 175W / 42: 22.44
- 171W / 43: 21.86
- 167W / 44: 22.30
-
-cancel data/all
-
-! --- 9.2 test: use A -stride -useB
-! use A; set axis/stride=2 `var[d=A], return=xaxis`; use B
-! -- will not affect variables in B
-use coads_climatology
-set axis/stride=2 `sst[d=coads_climatology], return=xaxis`
- !-> set axis/stride=2 COADSX
-list/x=180:195/j=30/L=1 sst[d=coads_climatology]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 4 points (LONGITUDE)
- LATITUDE : 31S
- TIME : JAN
- 31S
- 30
- 179W / 41: 22.53
- 175W / 42: 22.44
- 171W / 43: 21.86
- 167W / 44: 22.30
-use d2
-list/x=180:195/j=30/L=1 sst[d=d2]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : d2.nc
- SUBSET : 8 points (LONGITUDE)
- LATITUDE : 31S
- TIME : JAN
- 31S
- 30
- 179W / 81: 22.53
- 177W / 82: 22.71
- 175W / 83: 22.44
- 173W / 84: 22.21
- 171W / 85: 21.86
- 169W / 86: 22.07
- 167W / 87: 22.30
- 165W / 88: 22.28
-
-can data/all
-
-!.............10. strides on permuted and reversed axes
-
-! --- 10.1 stride on a permuted axis
-use/order=yzt coads_climatology
-show data/all
- currently SET data sets:
- 1> ./coads_climatology.cdf (default)
- name title I J K L M N
- SST SEA SURFACE TEMPERATURE ... 1:180 1:90 1:3 ... ...
-
-set axis/stride=5 `sst,return=yaxis`
- !-> set axis/stride=5 COADSX
-show axis `sst,return=yaxis`
- !-> show axis (AX049)
- name axis # pts start end
- (AX049) LONGITUDE 36mr 21E 11E(371)
- Axis span (to cell edges) = 360 (modulo length = axis span)
-
-can data/all
-
-! --- 10.2 stride on a reversed axis -- YAXIS
-use/order=x-yt coads_climatology
-list/x=180/l=5 sst[j=1:30]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 30 points (LATITUDE)
- LONGITUDE: 179E
- TIME : JAN
- 179E
- 80
- 31S / 30: 18.47
- 33S / 29: 17.05
- 35S / 28: 15.94
- 37S / 27: 14.53
- 39S / 26: 12.83
- 41S / 25: 11.11
- 43S / 24: 8.80
- 45S / 23: 6.42
- 47S / 22: 4.83
- 49S / 21: 4.08
- 51S / 20: 3.89
- 53S / 19: 3.48
- 55S / 18: 3.20
- 57S / 17: 2.52
- 59S / 16: 1.90
- 61S / 15: 1.04
- 63S / 14: 0.14
- 65S / 13: ....
- 67S / 12: ....
- 69S / 11: ....
- 71S / 10: ....
- 73S / 9: ....
- 75S / 8: ....
- 77S / 7: ....
- 79S / 6: ....
- 81S / 5: ....
- 83S / 4: ....
- 85S / 3: ....
- 87S / 2: ....
- 89S / 1: ....
-set axis/stride=5/offset=3 `sst,return=yaxis`
- !-> set axis/stride=5/offset=3 COADSY
-list/x=180/l=5 sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 18 points (LATITUDE)
- LONGITUDE: 179E
- TIME : JAN
- 179E
- 80
- 87N / 18: ....
- 77N / 17: -0.20
- 67N / 16: 0.06
- 57N / 15: 7.30
- 47N / 14: 13.13
- 37N / 13: 19.97
- 27N / 12: 24.01
- 17N / 11: 28.03
- 7N / 10: 29.14
- 3S / 9: 28.01
- 13S / 8: 27.10
- 23S / 7: 24.41
- 33S / 6: 17.05
- 43S / 5: 8.80
- 53S / 4: 3.48
- 63S / 3: 0.14
- 73S / 2: ....
- 83S / 1: ....
-list/x=180/l=5 sst[j=3:14:2]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- regrid: 20 deg on Y
- FILENAME : coads_climatology.cdf
- SUBSET : 6 points (LATITUDE)
- LONGITUDE: 179E
- TIME : JAN
- 179E
- 80
- 37N / 6: 19.97
- 17N / 5: 28.03
- 3S / 4: 28.01
- 23S / 3: 24.41
- 43S / 2: 8.80
- 63S / 1: 0.14
-
-cancel data/all
-
-!.............11. stride on all axes
-use coads_climatology
-set axis/stride=2 `sst, return=xaxis`
- !-> set axis/stride=2 COADSX
-set axis/stride=2 `sst, return=yaxis`
- !-> set axis/stride=2 COADSY
-set axis/stride=2 `sst, return=taxis`
- !-> set axis/stride=2 TIME10
-
-show axis `sst,return=xaxis`
- !-> show axis (AX051)
- name axis # pts start end
- (AX051) LONGITUDE 90mr 21E 17E(377)
- Axis span (to cell edges) = 360 (modulo length = axis span)
-show axis `sst,return=yaxis`
- !-> show axis (AX005)
- name axis # pts start end
- (AX005) LATITUDE 45 r 89S 87N
- Axis span (to cell edges) = 180
-show axis `sst,return=taxis`
- !-> show axis (AX048)
- name axis # pts start end
- (AX048) TIME 2 r 16-JAN-0000 06:00 17-MAR-0000 02:58
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 2921.94
-
-can data/all
-
-!.............12. stride on a NORMAL axis
-set mode ignore_error
-use coads_climatology
-set axis/stride=2 `sst,return=zaxis`
- !-> set axis/stride=2 NORMAL
-set mode/last ignore_error
-
-show axis `sst,return=xaxis`
- !-> show axis COADSX
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- Axis span (to cell edges) = 360 (modulo length = axis span)
-show axis `sst,return=yaxis`
- !-> show axis COADSY
- name axis # pts start end
- COADSY LATITUDE 90 r 89S 89N
- Axis span (to cell edges) = 180
-show axis `sst,return=taxis`
- !-> show axis TIME10
- name axis # pts start end
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
-
-GO bn_reset
-cancel mode verify
-GO bn_lsl_lowpass.jnl
-! bn_lsl_lowpass.jnl
-! Test lsl_lowpass, now included as a statically-linked external function
-
-use gtsa056_2
-let my_temp = temp[x=180,y=0,k=1]
-let f_filtered = lsl_lowpass(my_temp, 40,10)
-! plot my_temp
-! plot/over f_filtered
-
-! List the output so its not just a graphical test;
-! Compute based on the whole T region, but just list a portion.
-LIST/L=10:20 MY_TEMP[L=1:110], F_FILTERED[L=1:110]
- DATA SET: ./gtsa056_2.cdf
- TIME: FEB-1982 to MAR-1982
- LONGITUDE: 179.5E
- LATITUDE: 0.167S
- DEPTH (m): 5
- Column 1: MY_TEMP is TEMP[X=180,Y=0,K=1]
- Column 2: F_FILTERED is LSL_LOWPASS(MY_TEMP, 40,10)
- MY_TEMP F_FILTERED
-11-FEB-1982 23 / 10: 27.50 27.51
-15-FEB-1982 00 / 11: 27.47 27.48
-18-FEB-1982 01 / 12: 27.45 27.44
-21-FEB-1982 02 / 13: 27.41 27.42
-24-FEB-1982 03 / 14: 27.37 27.40
-27-FEB-1982 04 / 15: 27.35 27.39
-02-MAR-1982 05 / 16: 27.39 27.39
-05-MAR-1982 06 / 17: 27.43 27.40
-08-MAR-1982 07 / 18: 27.41 27.41
-11-MAR-1982 08 / 19: 27.41 27.42
-14-MAR-1982 09 / 20: 27.42 27.43
-
-
-GO bn_reset
-cancel mode verify
-GO bn_return_xmod_tmod.jnl
-! New `var,return=xmod` `var,return=tmod`
-! Return modulo lengths, or blank if not modulo
-
-use ocean_atlas_temp
-sh grid temp
- GRID GBS1
- name axis # pts start end
- XAX_LEV9421_380 LONGITUDE 360mr 20.5E 19.5E(379.5)
- YAX_LEV94 LATITUDE 180 r 89.5S 89.5N
- ZAXLEVIT191_1 DEPTH (m) 1 r- 0 0
- TIME3 TIME 2mr 16-JAN 06:00 15-FEB 16:29
- normal E
- normal F
-sh axis XAX_LEV9421_380
- name axis # pts start end
- XAX_LEV9421_380 LONGITUDE 360mr 20.5E 19.5E(379.5)
- Axis span (to cell edges) = 360 (modulo length = axis span)
-sh axis time
- name axis # pts start end
- TIME T 5 r 1 5
- Axis span (to cell edges) = 5
-say `temp,return=xmod`
- !-> MESSAGE/CONTINUE 360
-360
-say `temp,return=tmod`
- !-> MESSAGE/CONTINUE 8765.81982421875
-8765.81982421875
-
-! X is modulo but not T
-use levitus_climatology.cdf
-say `temp,return=xmod`
- !-> MESSAGE/CONTINUE 360
-360
-say `temp,return=tmod`
- !-> MESSAGE/CONTINUE
-
-
-! Define some subspan modulo axes and check the results
-! Modulo because start year in 0000
-def ax/t=1-aug-0000:1-aug-0001/np=3/edge/units=days tsub
-let a = t[gt=tsub]
-say `a,return=tmod`
- !-> MESSAGE/CONTINUE 365.2424926757813
-365.2424926757813
-
-! Modulo because defined on longitude coordinates
-define axis/x=130e:80w:10 xsub
-let a = x[gx=xsub]
-say `a,return=xmod`
- !-> MESSAGE/CONTINUE 360
-360
-
-! This file has an x axis with modulo = " " so its modulo, but it
-! does not have units of degrees. Thus axis length = modulo length
-use string4d
-sh grid axy
- GRID GMS2
- name axis # pts start end
- X2AX1 X 2mr 1 2
- Y3AX Y 3 r 1 3
- Z4AX Z 4 r 1 4
- T2AX1 T 2 r 1 2
- normal E
- normal F
-show axis x2ax
- name axis # pts start end
- X2AX X 2mr 1 2
- Axis span (to cell edges) = 2 (modulo length = 360)
-say `axy,return=xmod`
- !-> MESSAGE/CONTINUE 2
-2
-
-GO bn_reset
-cancel mode verify
-GO bn602_bug_fixes
-! bn602_bug_fixes.jnl
-! test various fixes that went into version 6.02
-! 09-Nov-2006 ACM
-
-! err601_sho_ax_xml_calendar.jnl
-! bug 1468: SHOW AXIS/ALL/XML listed the wrong info for the calendar
-GO bn_reset
-cancel mode verify
-GO err601_sho_ax_xml_calendar.jnl
-! err601_sho_ax_xml_calendar.jnl
-! 11/8/2006 ACM
-! bug 1468: SHOW AXIS/XML listed the wrong info for the calendar
-! when a time axis has a non-standard calendar.
-
-def axis/cal=noleap/t=1-jan-2000:1-jan-2002:1/units=days timenoleap
-let v = sin(t[gt=timenoleap]/100)
-save/clobber/file=noleap.nc v
-use noleap.nc
-sh axis/xml timenoleap
-<axes>
-<axis name="TIMENOLEAP">
-<attribute name="direction" type="char">
- <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[DAYS since 1901-01-15 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>731</value>
-</attribute>
-<attribute name="start" type="double">
- <value>2000-01-01 00:00:00</value>
-</attribute>
-<attribute name="end" type="double">
- <value>2002-01-01 00:00:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="time_origin" type="char">
- <value><![CDATA[1901-01-15 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
- <value><![CDATA[NOLEAP]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="axis" type="char">
- <value><![CDATA[T]]></value>
-</attribute>
-</axis>
-</axes>
-
-! err601_index_111.jnl
-! bug 1463 region that points to index -111 on modulo axis confused
-! with unspecified_int4.
-GO bn_reset
-cancel mode verify
-GO err601_index_111.jnl
-
-! err601_index_111.jnl
-! 11/09/2006 ACM
-! bug 1463 region that points to index -111 on modulo axis confused
-! with unspecified_int4. Fixed by changing to -999.
-
-! x=-203 corresponds to I=-111.
-use coads_climatology
-list x[gx=sst,x=-193:-203]
- VARIABLE : X
- axis COADSX
- FILENAME : coads_climatology.cdf
- SUBSET : 6 points (LONGITUDE)
- 157E / -111: -203.0
- 159E / -110: -201.0
- 161E / -109: -199.0
- 163E / -108: -197.0
- 165E / -107: -195.0
- 167E / -106: -193.0
-
-
-! err601_irregular_axis.jnl
-! Check for irregular axis actually being irregular failed; bug 1483
-GO bn_reset
-cancel mode verify
-GO err601_irregular_axis.jnl
-! err601_irregular_axis.jnl
-! V6.0 had a new scheme to check for irregular axes; for an axis
-! whose delta-coordinates vary widely this failed. See bug 1483
-! The axis should be 6.792e-10, 1.368e-09, ..., 800, 1100, 1400
-
-USE z_wide_variation.nc
-SHOW GRID/Z atmos
- GRID GOR1
- name axis # pts start end
- normal X
- normal Y
- ALTITUDE Z (Pa) 50 i 6.791595619E-10 1400
- TIME11 TIME 1mr 01-JAN 04:00 01-JAN 04:00
- normal E
- normal F
-
- K Z ZBOX ZBOXLO
- 1> 6.7915956192266E-10 6.885E-10 3.3490923923019E-10
- 2> 0.00000000136766 1.037E-09 0.00000000102341
- 3> 0.000000002754131 2.089E-09 0.000000002060896
- 4> 0.000000005546143 4.207E-09 0.000000004150137
- 5> 0.00000001116856 8.472E-09 0.000000008357353
- 6> 0.00000002249072 1.706E-08 0.00000001682964
- 7> 0.00000004529075 3.436E-08 0.00000003389074
- 8> 0.00000009120437 6.919E-08 0.00000006824756
- 9> 0.000000183663 1.393E-07 0.0000001374337
- 10> 0.000000369852 2.806E-07 0.0000002767575
- 11> 0.0000007447904 5.65E-07 0.0000005573212
- 12> 0.000001499824 1.138E-06 0.000001122307
- 13> 0.000003020274 2.291E-06 0.000002260049
- 14> 0.000006082086 4.614E-06 0.00000455118
- 15> 0.00001224782 9.291E-06 0.000009164951
- 16> 0.00002466407 1.871E-05 0.00001845594
- 17> 0.00004966735 3.768E-05 0.00003716571
- 18> 0.0001000177 7.587E-05 0.00007484254
- 19> 0.000201411 0.0001528 0.0001507144
- 20> 0.0004055919 0.0003077 0.0003035015
- 21> 0.0008167619 0.0006196 0.0006111769
- 22> 0.001644756 0.0012477 0.001230759
- 23> 0.003312133 0.0025125 0.002478445
- 24> 0.006669816 0.0050596 0.004990974
- 25> 0.01343142 0.0101889 0.01005062
- 26> 0.02704768 0.020518 0.02023955
- 27> 0.05446739 0.0413181 0.04075754
- 28> 0.1096839 0.0832044 0.08207565
- 29> 0.2208762 0.1675531 0.1652801
- 30> 0.44479 0.3374103 0.3328331
- 31> 0.8956969 0.679461 0.6702434
- 32> 1.803712 1.368287 1.349704
- 33> 3.63227 2.098144 2.717991
- 34> 6 2.683865 4.816135
- 35> 9 3.5 7.5
- 36> 13 4.5 11
- 37> 18 6 15.5
- 38> 25 8.5 21.5
- 39> 35 12.5 30
- 40> 50 17.5 42.5
- 41> 70 25 60
- 42> 100 35 85
- 43> 140 50 120
- 44> 200 70 170
- 45> 280 100 240
- 46> 400 142.5 340
- 47> 565 200 482.5
- 48> 800 267.5 682.5
- 49> 1100 300 950
- 50> 1400 300 1250
-
-
-! err601_check_missing_3arg.jnl
-! see bug 1485, check on missing coordinates for 3-argument graphics
-GO bn_reset
-cancel mode verify
-GO err601_check_missing_3arg.jnl
-! err601_check_missing_3arg.jnl
-! see bug 1485: if missing coordinates in a curvilinear dataset, we should be
-! able to still plot other portions of the data. Check was too broad.
-
-! Create a dataset in curvilinear coordinates with a few missing coordinates.
-use tripolar_subset
-let lon = IF geolon_vert_t gt -276 then geolon_vert_t
-let lat = geolat_vert_t
-save/clobber/file=tripolar_missing_lon.nc lon, lat, ht
-can data/all
-can var/all
-
-! Use this data. If we just look at /I=50:100 the plot works ok
-use tripolar_missing_lon
-stat/i=50:100 lon
-
- IF GEOLON_VERT_T GT -276 THEN GEOLON_VERT_T
- LONGITUDE: 177E(-183) to 81W(-81)
- LATITUDE: 71.51N to 90.37N
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: ./tripolar_missing_lon.nc
-
- Total # of data points: 1275 (51*25*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: -181.5
- Maximum value: -83.015
- Mean value: -121.95 (unweighted average)
- Standard deviation: 24.836
-shade/i=50:100 HT,lon,lat
-
-! The STAT command loads all the coordinates, then when
-! we plot, the check of coordinates looked at all of them
-! rather than just those needed. (error was
-! X coordinates missing value where val is needed
-
-can mem/all
-stat LON, LAT
-
- IF GEOLON_VERT_T GT -276 THEN GEOLON_VERT_T
- LONGITUDE: 79E(-281) to 81E
- LATITUDE: 71.51N to 90.37N
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: ./tripolar_missing_lon.nc
-
- Total # of data points: 4525 (181*25*1*1*1*1)
- # flagged as bad data: 186
- Minimum value: -275.98
- Maximum value: 80
- Mean value: -92.341 (unweighted average)
- Standard deviation: 106.62
-
- GEOLAT_VERT_T
- LONGITUDE: 79E(-281) to 81E
- LATITUDE: 71.51N to 90.37N
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: ./tripolar_missing_lon.nc
-
- Total # of data points: 4525 (181*25*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 64.383
- Maximum value: 90
- Mean value: 74.619 (unweighted average)
- Standard deviation: 5.9864
-shade/i=50:100 HT,lon,lat
-
-sp rm -f tripolar_missing_lon.nc
-
-
-! err601_missing_string_element.jnl
-! Bug 1488; Seg fault when try to list a string variable
-! when the last element is missing.
-GO bn_reset
-cancel mode verify
-GO err601_missing_string_element.jnl
-! err601_missing_string_element.jnl
-! Bug 1488. Seg fault when try to list a string variable
-! when the last element is missing.
-
-let a = {"a", "b", }
-list a
- VARIABLE : {"a", "b", }
- SUBSET : 3 points (X)
- 1 / 1:"a"
- 2 / 2:"b"
- 3 / 3:""
-
-
-
-! ******** V6.03 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_modnbd.jnl
-! Test MODNBD regridding statistic.
-
-use gtsa056_2.cdf
-!use climatological_axes
-!cancel data climatological_axes
-
-set region/x=140/y=1/k=1
-
-! What is the total number of possible data going into each month avg?
-let nomiss = missing(temp,30)
-list nomiss[gt=month_reg at MODNGD]
- VARIABLE : MISSING(TEMP,30) (# of points)
- regrid: 730 hour on T at MODNGD
- FILENAME : gtsa056_2.cdf
- SUBSET : 12 points (TIME)
- LONGITUDE: 139.5E
- LATITUDE : 0.833N
- DEPTH (m): 5
- 139.5E
- 10
- 16-JAN / 1: 16.00
- 15-FEB / 2: 20.00
- 17-MAR / 3: 20.00
- 16-APR / 4: 20.00
- 16-MAY / 5: 20.00
- 16-JUN / 6: 12.00
- 16-JUL / 7: 10.00
- 16-AUG / 8: 10.00
- 15-SEP / 9: 10.00
- 16-OCT / 10: 10.00
- 15-NOV / 11: 10.00
- 16-DEC / 12: 10.00
-
-! Define a new var with some missing data. See what MODNGD and MODNBD
-! are, and check that the sum is the same as the number of pts in each
-! month in the no-missing-data variable
-
-let var = if temp gt 29.5 then temp
-list var[gt=month_reg at MODNGD], var[gt=month_reg at MODNBD], var[gt=month_reg at MODNGD]+var[gt=month_reg at MODNBD], nomiss[gt=month_reg at MODNGD]
- DATA SET: ./gtsa056_2.cdf
- TIME: JAN to DEC
- LONGITUDE: 139.5E
- LATITUDE: 0.833N
- DEPTH (m): 5
- Column 1: VAR[G=730 hour on T at MODNGD] is IF TEMP GT 29.5 THEN TEMP (# of points)(regrid: 730 hour on T at MODNGD)
- Column 2: VAR[G=730 hour on T at MODNBD] is IF TEMP GT 29.5 THEN TEMP (# of points)(regrid: 730 hour on T at MODNBD)
- Column 3: EX#3 is VAR[GT=MONTH_REG at MODNGD]+VAR[GT=MONTH_REG at MODNBD]
- Column 4: NOMISS[G=730 hour on T at MODNGD] is MISSING(TEMP,30) (# of points)(regrid: 730 hour on T at MODNGD)
- VAR VAR EX#3 NOMISS
-16-JAN / 1: 10.00 6.00 16.00 16.00
-15-FEB / 2: 2.00 18.00 20.00 20.00
-17-MAR / 3: 18.00 2.00 20.00 20.00
-16-APR / 4: 20.00 0.00 20.00 20.00
-16-MAY / 5: 20.00 0.00 20.00 20.00
-16-JUN / 6: 12.00 0.00 12.00 12.00
-16-JUL / 7: 7.00 3.00 10.00 10.00
-16-AUG / 8: 0.00 10.00 10.00 10.00
-15-SEP / 9: 8.00 2.00 10.00 10.00
-16-OCT / 10: 10.00 0.00 10.00 10.00
-15-NOV / 11: 10.00 0.00 10.00 10.00
-16-DEC / 12: 10.00 0.00 10.00 10.00
-
-GO bn_reset
-cancel mode verify
-GO bn_fifty_files.jnl
-! bn_fifty_files.jnl
-! We build OPeNDAP so that 100 files can be opened at a time.
-! Test with fifty.
-
-set mode ignore_error
-
-use 123456789000101_100101_test_numeric.nc
-use a1478.nc
-use a_cartesian_bug1179.nc
-use adouble_2D.nc
-use adouble.nc
-use b1478.nc
-use bad_taxis.nc
-use bounds_noenclose.nc
-use dstitle.nc
-use err542_poly_over_calendar.nc
-use err600_upcase.nc
-use err_calendar.nc
-use gappy_bounds.nc
-use illeg_axname.nc
-use longtitle1000.nc
-use missing_scale_off.nc
-use modfalse.nc
-use modulo_lon_time.nc
-use mylon.nc
-use nan_missing.nc
-use noglobalhistory.nc
-use ss_small.nc
-use sstnok_short.nc
-use sstok_short.nc
-use test0.nc
-use test_nan.nc
-use time_axis_seconds.nc
-use tripolar_subset.nc
-use varyscale_1.nc
-use varyscale_2.nc
-use xz_nozattrib.nc
-use z_wide_variation.nc
-use bn_strides.cdf
-use clim_airt_lev.cdf
-use climatological_axes.cdf
-use coads_climatology.cdf
-use coads_vwnd.cdf
-use err491_attval.cdf
-use geo_borders.cdf
-use gt4d011.cdf
-use gtbc011.cdf
-use gtsa056_1.cdf
-use gtsa056_2.cdf
-use levitus_climatology.cdf
-use non_COARDS.cdf
-use ocean_atlas_temp.cdf
-use reverse_axes.cdf
-use TAO_SST_clim.cdf
-use epic_formatted_file.nc
-use weird_name1.cdf
-
-cancel mode ignore_error
-
-
-GO bn_reset
-cancel mode verify
-GO bn603_bug_fixes
-! bn603_bug_fixes.jnl
-! test various fixes that went into version 6.03
-! 11-May-2006 ACM
-
-! Fix for bug 904
-! SHADE/LEV did not keep same levels after a SHADE/LINE
-GO bn_reset
-cancel mode verify
-GO err602_shade_line_lev.jnl
-! err602_shade_line_lev.jnl
-! Bug 904.
-! SHADE/LEV does not keep same levels after a SHADE/LINE
-! Was due to fact that SHADE/LINE makes PPL SHADE call
-! followed by PPL CONTOUR/OVER call, but without indicating
-! that the same contour levels should be used.
-
-! Note that SHOW SYM LEV* indicates that the SHADE/LINE/KEY changes the levels.
-
-let a = {1,1}* ysequence({-.29,1.09})
-set view ul; shade/key a; sh sym lev*
-LEV_TEXT = "(-5,30,1)"
-LEV_MIN = "-0.3"
-LEV_MAX = "1.1"
-LEV_NUM = "28"
-LEV_DEL = "0.05"
-set view ur; shade/lev a; sh sym lev*
-LEV_TEXT = ""
-LEV_MIN = "-0.3"
-LEV_MAX = "1.1"
-LEV_NUM = "28"
-LEV_DEL = "0.05"
-set view ll; shade/line/key a; sh sym lev*
-LEV_TEXT = ""
-LEV_MIN = "-0.3"
-LEV_MAX = "1.1"
-LEV_NUM = "28"
-LEV_DEL = "0.05"
-set view lr; shade/lev a; sh sym lev*
-LEV_TEXT = ""
-LEV_MIN = "-0.3"
-LEV_MAX = "1.1"
-LEV_NUM = "28"
-LEV_DEL = "0.05"
-
-! Fix for bug 1302
-! Draw correct SHADE and FILL plots across the modulo branch cut.
-GO bn_reset
-cancel mode verify
-GO err602_curvi_modulo_cut
-! err602_curvi_modulo_cut.jnl
-! 5/07 bug 1302
-!
-! For the curvilinear modulo forms of SHADE and FILL, there appears to
-! be some inconsistency in plotting across the modulo cut. SHADE omits
-! the half-cells that ought to touch the modulo cut. FILL looks like
-! it's tryingto interpolate across the cut, but something's wrong.
-
-! Note this needs an update to tripolar_subset.nc to add some
-! coordinate center locations.
-
-use tripolar_subset.nc
-set view upper
-shade/hlim=75:85/vlim=-10:0/mod/pal=rnb2 0*u+mod(i+j,2),geolon_c,geolat_c
-set view lower
-fill/hlim=75:85/vlim=-10:0/mod u,geolon_c,geolat_c
-
-! Fix for bug 1388
-! SET LIST/PREC worked for multi-var listings, LIST/PREC= var1,var2 did not
-GO bn_reset
-cancel mode verify
-GO err602_list_prec
-! err602_list_prec.jnl
-! fixes for bug 1388: SET LIST/PREC worked for multi-variable listings,
-! but LIST/PRECISION= did not.
-
-use gt4d011.cdf
-
-! Here is a listing with default precision
-LIST/NOHEAD/I=91:94/J=37/K=1/L=1 temp,salt
-139.5W / 91: 27.29 2.370E-04
-138.5W / 92: 27.25 2.380E-04
-137.5W / 93: 27.24 2.383E-04
-136.5W / 94: 27.18 2.380E-04
-
-! Previously this did not have the effect of changing the precision.
-LIST/NOHEAD/I=91:94/J=37/K=1/L=1/PREC=3 temp,salt
-139.5W / 91: 27.3 2.37E-04
-138.5W / 92: 27.3 2.38E-04
-137.5W / 93: 27.2 2.38E-04
-136.5W / 94: 27.2 2.38E-04
-
-! This has always worked
-SET LIST/PREC=7
-LIST/NOHEAD/I=91:94/J=37/K=1/L=1 temp,salt
-139.5W / 91: 27.29276 2.369705E-04
-138.5W / 92: 27.25388 2.379802E-04
-137.5W / 93: 27.23906 2.382890E-04
-136.5W / 94: 27.17807 2.380348E-04
-
-! This should override the SET LIST/PREC setting
-LIST/NOHEAD/I=91:94/J=37/K=1/L=1/PREC=2 TEMP,SALT
-139.5W / 91: 27. 2.4E-04
-138.5W / 92: 27. 2.4E-04
-137.5W / 93: 27. 2.4E-04
-136.5W / 94: 27. 2.4E-04
-
-! And then things should go back to the SET LIST/PREC setting
-LIST/NOHEAD/I=91:94/J=37/K=1/L=1 TEMP,SALT
-139.5W / 91: 27.29276 2.369705E-04
-138.5W / 92: 27.25388 2.379802E-04
-137.5W / 93: 27.23906 2.382890E-04
-136.5W / 94: 27.17807 2.380348E-04
-
-
-! ******** V6.05 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn_set_var_name.jnl
-! bn_set_var_name.jnl
-! This has been in Ferret since v5.3 but never a benchmark test of it!
-! ACM 8/2007
-
-USE coads_climatology
-
-! Use SET VAR/NAME= to give a variable from the file a new name.
-SET VAR/NAME=my_sst sst
-SHOW DATA
- currently SET data sets:
- 1> ./coads_climatology.cdf (default)
- name title I J K L M N
- MY_SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
-
-
-Internal overflow expressing 500000.0 Mwords as words (1783793664)
-Unable to allocate the requested 500000.0 Mwords of memory.
-Memory remaining at 0.2 Mwords.
-LIST/X=179:183/Y=40/L=3 my_sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (LONGITUDE)
- LATITUDE : 39N
- TIME : MAR
- 39N
- 65
- 179E / 80: 11.89756
- 179W / 81: 12.11905
- 177W / 82: 12.07976
-
-! Now use a LET command to "fix" the data in any way we wish
-! Give it the original name, and now it has the new characteristics
-! but the old name.
-
-LET sst = 3*my_sst
-LIST/X=179:183/Y=40/L=3 sst
- VARIABLE : 3*MY_SST
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (LONGITUDE)
- LATITUDE : 39N
- TIME : MAR
- 39N
- 65
- 179E / 80: 35.69268
- 179W / 81: 36.35714
- 177W / 82: 36.23927
-
-
-GO bn_reset
-cancel mode verify
-! This routine executes a ppl error which exits us from Ferret
-! when run in the benchmark suite. Should test this, but dont do it
-! here, for now.
-!GO bn_ppl_errors.jnl
-
-GO bn_reset
-cancel mode verify
-GO bn_memory_symbol
-! bn_memory_symbol.jnl
-! Ferret v6.06 15-Aug-07
-! Symbol FERRET_MEMORY shows current size of Ferret memory in MWords
-
-sh sym ferret_memory
-FERRET_MEMORY = "25.6"
-
-set mem/siz=90
-sh sym ferret_memory
-FERRET_MEMORY = "90"
-show memory
- Current size of FERRET memory cache: 90 MegaWords (1 word = 4 bytes)
-
-set mem/size=0.05
-sh sym ferret_memory
-FERRET_MEMORY = "0.2"
-
-set mem/siz=500000 ! too large to allow
-sho sym ferret_memory
-FERRET_MEMORY = "0.2"
-
-set mem/siz=25.6 ! return to the default setting
-show memory
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
-
-GO bn_reset
-cancel mode verify
-GO bn605_bug_fixes
-! bn604_bug_fixes.jnl
-! test various fixes that went into version 6.05
-! 27-July-2007 ACM
-
-! Fix for Bug 1524: irregular axis detected as REGULAR
-GO bn_reset
-cancel mode verify
-GO err604_irreg_axis.jnl
-! Bug 1524: irregular axis detected as REGULAR!
-
-!use climatological_axes
-sh ax MONTH_IRREG
- name axis # pts start end
- MONTH_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 365.2425 (modulo length = axis span)
-list t[gt=month_irreg], tbox[gt=month_irreg]
- TIME: JAN to DEC
- Column 1: T is T (axis MONTH_IRREG)
- Column 2: TBOX is TBOX (axis MONTH_IRREG)
- T TBOX
-16-JAN 12 / 1: 15.5000 31.00000
-15-FEB 02 / 2: 45.1213 28.24250
-15-MAR 17 / 3: 74.7425 31.00000
-15-APR 05 / 4: 105.2425 30.00000
-15-MAY 17 / 5: 135.7425 31.00000
-15-JUN 05 / 6: 166.2425 30.00000
-15-JUL 17 / 7: 196.7425 31.00000
-15-AUG 17 / 8: 227.7425 31.00000
-15-SEP 05 / 9: 258.2425 30.00000
-15-OCT 17 / 10: 288.7425 31.00000
-15-NOV 05 / 11: 319.2425 30.00000
-15-DEC 17 / 12: 349.7425 31.00000
-
-
-! SHOW FUNCTIONS caused a crash or a message
-GO bn_reset
-cancel mode verify
-GO err605_show_func.jnl
-! err605_show_func.jnl
-! Reported by Andrew W.
-! SHOW FUNCTIONS caused a crash on his system; I see it only as a message
-! in SHOW FUNC/BRIEF
-
-SHOW FUNCTION/BRIEF
-Functions internal to Ferret:
-EXP(X)
-LOG(X)
-MAX(A,B)
-MIN(A,B)
-INT(X)
-ABS(X)
-SIN(theta)
-COS(theta)
-TAN(theta)
-LN(X)
-MOD(A,B)
-MISSING(A,B)
-IGNORE0(X)
-ATAN(X)
-ATAN2(A,B)
-ASIN(X)
-ACOS(X)
-RANDU(A)
-RANDN(A)
-RHO_UN(salt,temp,p)
-THETA_FO(salt,temp,p,ref)
-DAYS1900(year,month,day)
-RANDU2(A,ISEED)
-RANDN2(A,ISEED)
-XSEQUENCE(VAR)
-ECHO(STR,NUM)
-RESHAPE(A,B)
-ZAXREPLACE(V,ZVALS,ZAX)
-YSEQUENCE(VAR)
-ZSEQUENCE(VAR)
-TSEQUENCE(VAR)
-ESEQUENCE(VAR)
-FSEQUENCE(VAR)
-SAMPLEI(TO_BE_SAMPLED,X_INDICES)
-SAMPLEJ(TO_BE_SAMPLED,Y_INDICES)
-SAMPLEK(TO_BE_SAMPLED,Z_INDICES)
-SAMPLEL(TO_BE_SAMPLED,T_INDICES)
-SAMPLEM(TO_BE_SAMPLED,E_INDICES)
-SAMPLEN(TO_BE_SAMPLED,F_INDICES)
-SPAWN(STR)
-STRCMP(STR1,STR2)
-STRLEN(STR)
-UPCASE(STR)
-STRINDEX(STR1,SUBSTR)
-STRRINDEX(STR1,SUBSTR)
-DNCASE(STR)
-STRCAT(STR1,STR2)
-SUBSTRING(STR,OFFSET,LENGTH)
-STRFLOAT(STR)
-
-Externally defined functions available to Ferret:
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
-BIN_INDEX_WT(INDEX,WT,INDXMAX)
-COMPRESSI(DAT)
-COMPRESSI_BY(dat,mask)
-COMPRESSJ(DAT)
-COMPRESSJ_BY(dat,mask)
-COMPRESSK(DAT)
-COMPRESSK_BY(dat,mask)
-COMPRESSL(DAT)
-COMPRESSL_BY(dat,mask)
-COMPRESSM(DAT)
-COMPRESSM_BY(dat,mask)
-COMPRESSN(DAT)
-COMPRESSN_BY(dat,mask)
-CONVOLVEI(COM,WEIGHT)
-CONVOLVEJ(COM,WEIGHT)
-CONVOLVEK(COM,WEIGHT)
-CONVOLVEL(COM,WEIGHT)
-CONVOLVEM(COM,WEIGHT)
-CONVOLVEN(COM,WEIGHT)
-CURV_RANGE(LONGITUDES,LATITUDES,xrange_lo,xrange_hi,yrange_lo,yrange_hi,modulo flag for X coordinates)
-CURV_TO_RECT(V,mapping)
-CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
-DATE1900(formatted date)
-DAYS1900TOYMDHMS(day1900)
-ECAT(A,B)
-ECAT_STR(A,B)
-ELEMENT_INDEX(VAR,VALUES)
-ELEMENT_INDEX_STR(VAR,STRINGS)
-ELEMENT_INDEX_STR_N(VAR,STRINGS)
-EOF_SPACE(A,frac_timeser)
-EOF_STAT(A,frac_timeser)
-EOF_TFUNC(A,frac_timeser)
-EREVERSE(A)
-EXPNDI_BY(dat,mask,outsize)
-EXPNDI_BY_T(dat,mask,n_profiles,max_profile_len)
-EXPNDI_BY_Z(dat,mask,n_profiles,max_profile_len)
-FCAT(A,B)
-FCAT_STR(A,B)
-FFTA(A)
-FFT_IM(A)
-FFT_INVERSE(A,B)
-FFTP(A)
-FFT_RE(A)
-FILL_XY(DATA,MASK,N)
-FINDHI(A,XRANGE,YRANGE)
-FINDLO(A,XRANGE,YRANGE)
-FLOATSTR(A,FMT)
-FREVERSE(A)
-IS_ELEMENT_OF(VAR,VALUES)
-IS_ELEMENT_OF_STR(VAR,VALUES)
-IS_ELEMENT_OF_STR_N(VAR,VALUES)
-LABWID(STR,HT)
-LANCZOS(A,F1,F2,N)
-LIST_VALUE_XML(tag,value,cdata_flag,outputfile)
-LSL_LOWPASS(A,cutoff_period,filter_span)
-MINMAX(A)
-MINUTES24(formatted time)
-NCO(operator,arguments)
-NCO_ATTR(FileName,VariableName,AttributeName,AttType,Mode,AttributeValue)
-PT_IN_POLY(A,XVERT,YVERT)
-RECT_TO_CURV(V,lon_bounds_out,lat_bounds_out,missing_allowed)
-SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
-SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
-SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
-SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
-SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
-SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
-SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
-SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
-SAMPLEXY_CURV(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
-SAMPLEXY_CURV_AVG(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
-SAMPLEXY_CURV_NRST(DAT_TO_SAMPLE,DAT_LON,DAT_LAT,XPTS,YPTS)
-SAMPLEXYT(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
-SAMPLEXZ(DAT_TO_SAMPLE,XPTS,ZPTS)
-SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
-SCAT2DDUPS(coord 1,coord 2,epsilon 1,epsilon 2)
-SCAT2GRID_BIN_XY(XPTS,YPTS,F,XAXPTS,YAXPTS)
-SCAT2GRID_BIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
-SCAT2GRIDGAUSS_XT(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_XT_V0(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_XY(XPTS,YPTS,F,XAXPTS,YAXPTS,XSCALE,YSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_XY_V0(XPTS,YPTS,F,XAXPTS,YAXPTS,XSCALE,YSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_XZ(XPTS,ZPTS,F,XAXPTS,ZAXPTS,XSCALE,ZSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_XZ_V0(XPTS,ZPTS,F,XAXPTS,ZAXPTS,XSCALE,ZSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_YT(YPTS,TPTS,F,YAXPTS,TAXPTS,YSCALE,TSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_YT_V0(YPTS,TPTS,F,YAXPTS,TAXPTS,YSCALE,TSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_YZ(YPTS,ZPTS,F,YAXPTS,ZAXPTS,YSCALE,ZSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_YZ_V0(YPTS,ZPTS,F,YAXPTS,ZAXPTS,YSCALE,ZSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_ZT(ZPTS,TPTS,F,ZAXPTS,TAXPTS,ZSCALE,TSCALE,CUTOFF,0)
-SCAT2GRIDGAUSS_ZT_V0(ZPTS,TPTS,F,ZAXPTS,TAXPTS,ZSCALE,TSCALE,CUTOFF,0)
-SCAT2GRIDLAPLACE_XT(XPTS,TPTS,F,XAXPTS,TAXPTS,KAY,NRNG)
-SCAT2GRIDLAPLACE_XY(XPTS,YPTS,F,XAXPTS,YAXPTS,KAY,NRNG)
-SCAT2GRIDLAPLACE_XZ(XPTS,ZPTS,F,XAXPTS,ZAXPTS,KAY,NRNG)
-SCAT2GRIDLAPLACE_YT(YPTS,TPTS,F,YAXPTS,TAXPTS,KAY,NRNG)
-SCAT2GRIDLAPLACE_YZ(YPTS,ZPTS,F,YAXPTS,ZAXPTS,KAY,NRNG)
-SCAT2GRIDLAPLACE_ZT(ZPTS,TPTS,F,ZAXPTS,TAXPTS,KAY,NRNG)
-SCAT2GRID_NBIN_XY(XPTS,YPTS,F,XAXPTS,YAXPTS)
-SCAT2GRID_NBIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
-SCAT2GRID_NOBS_XY(XPTS,YPTS,XAXPTS,YAXPTS)
-SCAT2GRID_NOBS_XYT(XPTS,YPTS,TPTS,XAXPTS,YAXPTS,TAXPTS)
-SCAT2GRID_T(TPTS,TAXIS)
-SORTI(DAT)
-SORTI_STR(STR)
-SORTJ(DAT)
-SORTJ_STR(STR)
-SORTK(DAT)
-SORTK_STR(STR)
-SORTL(DAT)
-SORTL_STR(STR)
-SORTM(DAT)
-SORTM_STR(STR)
-SORTN(DAT)
-SORTN_STR(STR)
-TAUTO_COR(A)
-TAX_DATESTRING(A,B,C)
-TAX_DAY(A,B)
-TAX_DAYFRAC(A,B)
-TAX_JDAY(A,B)
-TAX_JDAY1900(A,B)
-TAX_MONTH(A,B)
-TAX_TIMES(A)
-TAX_TSTEP(A,B)
-TAX_UNITS(A)
-TAX_YEAR(A,B)
-TAX_YEARFRAC(A,B)
-TCAT(A,B)
-TCAT_STR(A,B)
-TEST_OPENDAP(url)
-TRANSPOSE_XT(VAR)
-TRANSPOSE_XY(VAR)
-TRANSPOSE_XZ(VAR)
-TRANSPOSE_YT(VAR)
-TRANSPOSE_YZ(VAR)
-TRANSPOSE_ZT(VAR)
-TREVERSE(A)
-UNIQUE_STR2INT(A)
-WRITE_WEBROW(id,name,Cruise_Mask,filename)
-XAUTO_COR(A)
-XCAT(A,B)
-XCAT_STR(A,B)
-XREVERSE(A)
-YCAT(A,B)
-YCAT_STR(A,B)
-YREVERSE(A)
-ZAXREPLACE_AVG(V,ZVALS,ZAX)
-ZAXREPLACE_BIN(V,ZVALS,ZAX)
-ZAXREPLACE_REV(ZVALS,V,ZAX)
-ZAXREPLACE_ZLEV(V,THICKNESS,ZAX)
-ZCAT(A,B)
-ZCAT_STR(A,B)
-ZREVERSE(A)
-EOFSVD_SPACE(A)
-EOFSVD_STAT(A)
-EOFSVD_TFUNC(A)
-EXPND_BY_LEN(var,len,nx)
-EXPND_BY_LEN_STR(var,len,nx)
-FC_ISUBSET(index_list,lengths,nx,FullData)
-EXPNDI_BY_Z_COUNTS(dat,counts,max_profile_len)
-EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
-STR_MASK(STRING,MASK,--)
-
-
-GO bn_reset
-cancel mode verify
-GO bn608_bug_fixes
-! bn608_bug_fixes
-! test various fixes that went into version 6.08
-! 24-Sep ACM
-
-! Fix for Bug 1539: SHOW VAR/XML
-GO bn_reset
-cancel mode verify
-GO err607_show_var_xml
-! Bug 1539 SHOW VAR/XML didnt show all vars.
-
-
-use gt4d011.cdf
-use coads_climatology
-
-let temp_1_regrid=temp[d=1,z=5.00:75.00 at ave]
-let sst_2_regrid=sst[d=2,t="15-Feb":"15-Mar"@ave]
-let sst_final=sst_2_regrid[d=2,gxy=temp_1_regrid[d=1]]
-
-! This shows all 3 vars
-show var
- Created by DEFINE VARIABLE:
- >>> Definitions that replace any file variable of same name:
- SST_FINAL = SST_2_REGRID[D=2,GXY=TEMP_1_REGRID[D=1]]
- SST_2_REGRID = SST[D=2,T="15-Feb":"15-Mar"@AVE]
- TEMP_1_REGRID = TEMP[D=1,Z=5.00:75.00 at AVE]
-
-! But this showed only sst_final and sst_2_regrid (twice)
-show var/xml
-<global>
-<var name="SST_FINAL">
-<attribute name="definition" type="char">
- <value><![CDATA[SST_2_REGRID[D=2,GXY=TEMP_1_REGRID[D=1]]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="(G103)">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT1</yaxis>
-</axes>
-</grid>
-</var>
-<var name="SST_2_REGRID">
-<attribute name="definition" type="char">
- <value><![CDATA[SST[D=2,T="15-Feb":"15-Mar"@AVE]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-</axes>
-</grid>
-</var>
-<var name="TEMP_1_REGRID">
-<attribute name="definition" type="char">
- <value><![CDATA[TEMP[D=1,Z=5.00:75.00 at AVE]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT2">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT1</yaxis>
-<taxis>TIME11</taxis>
-</axes>
-</grid>
-</var>
-</global>
-
-! err607_set_new_history_att
-GO bn_reset
-cancel mode verify
-GO err607_set_new_history_att
-! err607_set_new_history_att.jnl
-! Previously if we set a history attribute on a user-defined variable that
-! was based on a dataset variable, the default history attribute, From dataset
-! was always written. Now if we define our own, that is what is written.
-
-use coads_climatology.cdf
-let var = sst
-def att/output var.history = "from Sea Surface Temperature, coads_climatology.cdf"
-save/file=a.nc/clobber/x=180:200/y=1 var
-
-can data/all
-use a.nc
-show data
- currently SET data sets:
- 1> ./a.nc (default)
- name title I J K L M N
- VAR SST 1:10 1:1 ... 1:3 ... ...
-
-show att/all var
- attributes for user-defined variables
- var.long_name = SST
- var.missing_value = -1.E+34
- var.history = from Sea Surface Temperature, coads_climatology.cdf
-
-! Symbols YAXIS_MIN, YAXIS_MAX were 0 when values small
-GO bn_reset
-cancel mode verify
-GO err607_axis_minmax_syms
-! Bug 1542
-! Symbols YAXIS_MIN, YAXIS_MAX were 0 when values small
-! Should use scientific notation
-
-use coads_climatology
-let plotvar = sst[L=1]
-plot/y=35 plotvar/10000; sh sym yax*
-YAXIS_REVERSED = "0"
-YAXL = "4.737"
-YAXIS_MIN = "7.9999998E-04"
-YAXIS_MAX = "2.0999999E-03"
-YAXNAM = "YAX_LEV94"
-plot/y=35 plotvar/10000000; sh sym yax*
-YAXIS_REVERSED = "0"
-YAXL = "4.737"
-YAXIS_MIN = "8.0000001E-07"
-YAXIS_MAX = "2.1000001E-06"
-YAXNAM = "YAX_LEV94"
-plot/y=35 plotvar*10000000; sh sym yax*
-YAXIS_REVERSED = "0"
-YAXL = "4.737"
-YAXIS_MIN = "8.0000000E+07"
-YAXIS_MAX = "2.1000000E+08"
-YAXNAM = "YAX_LEV94"
-
-def axis/x=0.000004:0.000005/npoints=100 xax
-def axis/y=0.000001:0.000002/npoints=100 yax
-let a = x[gx=xax] + y[gy=yax]
-shade a; sh sym xax*; ; sh sym yax*
-XAXIS_REVERSED = "0"
-XAXIS_MIN = "3.99494949E-06"
-XAXL = "4.737"
-XAXNAME = "XIRREG_SUBSPAN"
-XAXIS_MAX = "5.0050505E-06"
-XAXNAM = "(XAX_LEV9421_380)"
-YAXIS_REVERSED = "0"
-YAXL = "4.737"
-YAXIS_MIN = "9.94949495E-07"
-YAXIS_MAX = "2.0050505E-06"
-YAXNAM = "YAX_LEV94"
-
-
-
-! Error message for too many contour levels requested
-GO bn_reset
-cancel mode verify
-GO err607_lev_errmsg
-! err607_lev_errmsg.F
-! Make the error message more detailed, saying it is the choice of
-! number of contours that caused the error.
-
-SET MODE ignore
-SHADE/LEV=300/I=1:100/J=1:100 i+j
-
-SET MODE/LAST ignore
-
-
-! ******** V6.1 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn_shade_trim
-! bn_shade_trim.jnl
-! Test new qualifier SHADE/TRIM which trims the region of
-! shade plot as is done by FILL. For LAS scripts which do
-! shade underlay for FILL plots.
-
-USE ocean_atlas_temp
-
-! See the region used by FILL
-SET VIEW upper
-FILL temp[L=2,X=180:200,Y=30:44]
-SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
-
-! See the larger region used by default for SHADE
-SHADE temp[L=2,X=180:200,y=30:44]
-SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.00000"
-XAXIS_MAX = "200.0000"
-YAXIS_MIN = "30.000000"
-YAXIS_MAX = "44.00000"
-
-! SHADE/TRIM trims the region as for a FILL plot
-SET VIEW lower
-SHADE/TRIM temp[L=2,X=180:200,y=30:44]
-SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
-
-
-GO bn_reset
-cancel mode verify
-GO bn_mode_nlevels
-! bn_mode_nlevels.jnl
-! 3-mar-2008
-! v6.1 MODE NLEVELS (default is 40)
-
-show mode nlevels
- MODE STATE ARGUMENT
- NLEVELS SET 30
-use levitus_climatology
-
-shade temp
-show sym lev*
-LEV_TEXT = "300"
-LEV_MIN = "-2"
-LEV_MAX = "30"
-LEV_NUM = "32"
-LEV_DEL = "1"
-
-! Old default value was 10
-set mode nlevels 10
-shade temp
-show sym lev*
-LEV_TEXT = "300"
-LEV_MIN = "-2"
-LEV_MAX = "30"
-LEV_NUM = "16"
-LEV_DEL = "2"
-
-! set even higher
-set mode nlevels 80
-shade temp
-show sym lev*
-LEV_TEXT = "300"
-LEV_MIN = "-2"
-LEV_MAX = "30"
-LEV_NUM = "64"
-LEV_DEL = "0.5"
-
-! restore (new) default
-set mode nlevels 40
-
-
-GO bn_reset
-cancel mode verify
-GO bn61_bug_fixes
-! bn608_bug_fixes
-! test various fixes that went into version 6.1
-! 2-Jan-2008 ACM
-
-! Fix for Bug 1556:
-! Error processing parentheses on abstract axis names.
-GO bn_reset
-cancel mode verify
-GO err608_bug1556
-! err608_bug1556.jnl
-! Error processing parentheses on abstract axis names.
-!
-! The file was created with these commands, which MUST BE
-! in a separate Ferret session to see the bug.
-!
-! use coads_climatology
-! set axis/stride=20 `sst,return=xaxis`
-! set axis/stride=10 `sst,return=yaxis`
-! save/file=err608_bug1556.nc/clobber sst[L=1:2]
-
-USE err608_bug1556.nc
-SAVE/FILE=a.nc/CLOBBER sst[i=1:5:1,j=1:5:1,l=1:1:1]
-
-! The error was,
-! LISTing to file out.nc
-! **TMAP ERR: error in line definition
-! file coords dont match variable coords on axis AX0
-!
-! The bug was fixed in cd_axis_outname.F
-
-
-! Fix for Bug 1538:
-! Precision of immediate-mode output of negative values
-GO bn_reset
-cancel mode verify
-GO err608_precision_neg_numbers
-! err608_precision_neg_numbers.jnl
-! ACM 1/2/2008
-! Bug 1538, precision of immediate-mode output of negative values
-! Fixed in tm_fmt.F
-
-! The output from a LIST command is correct:
-LIST/PREC=10 1.23456789e-15
- VARIABLE : constant
- 1.234567890E-15
-
-! In immediate mode, output is incorrect, not enough precision:
-SAY `1.23456789e-15`
- !-> MESSAGE/CONTINUE 1.23456789E-15
-1.23456789E-15
-SAY `1.23456789e-15,prec=10`
- !-> MESSAGE/CONTINUE 1.23456789E-15
-1.23456789E-15
-
-
-! ******** V6.11 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_test_opendap
-! Test the test_opendap function: returns 0 if successful, or error code if not.
-SET MODE IGNORE
-
-!! Change to another server, this one not working 3/2012
-!!list test_opendap ("http://iridl.ldeo.columbia.edu/SOURCES/.LEVITUS/.MONTHLY/.temp/dods")
-!!list test_opendap ("http://iridl.ldeo.NOT.columbia.edu/SOURCES/.LEVITUS/.MONTHLY/.temp/dods")
-
-!! Change to another server, this one not working 8/2012
-list test_opendap ("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
- VARIABLE : TEST_OPENDAP ("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
- X : 1
- 0.0000000
-list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
- VARIABLE : TEST_OPENDAP ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
- X : 1
- -68.00000
-
-
-CANCEL MODE IGNORE
-
-GO bn_reset
-cancel mode verify
-GO bn611_bug_fixes
-! bn611_bug_fixes.jnl
-! Fixes that go into v6.11 release
-
-GO bn_reset
-cancel mode verify
-GO err61_write_bounds
-! err61_write_bounds.jnl
-! test fixes for bugzilla 1534: write correct bounds
-! when bounds were read in from a netCDF file.
-
-def ax/x/edges xax={1,2,4,8,9}
-let a = x[gx=xax]
-save/clobber/file=a.nc a
-sp ncdump a.nc >> all_ncdump.out
-
-! This is the original bug report
-! The bounds attribute was written but the values were bad,
-! shown as _, _ in the netcdf output.
-can var a
-use a.nc
-save/clobber/file=b.nc a
-sp ncdump a.nc >> all_ncdump.out
-
-! It would also be useful to be able to tell Ferret
-! not to save the bounds at all.
-
-can data/all
-use a.nc
-can att/output (xax).bounds
-save/clobber/file=b.nc a
-sp ncdump a.nc >> all_ncdump.out
-
-GO bn_reset
-cancel mode verify
-GO err61_poly_shade_over_noaxes
-! err61_poly_shade_over_noaxes.jnl
-! See bug 1571
-
-! plot/ax=0,0,0,0 ; poly/over ! redraws the box
-
-set v ul; plot/ax=0,0,0,0 {0,1}; poly/ov {0,1},{0,1}
-set v ur; plot/set/ax=0,0,0,0 {0,1}; ppl plot; poly/ov {0,1},{0,1}
-set v ll; plot/ax=0,0,0,0 {0,1}; plot/ov {0,1}
-set v lr; plot/set/ax=0,0,0,0 {0,1}; ppl plot; plot/ov {0,1}
-can view
-
-! shade over polygon
-set view upper; polygon/thick/color=red/palette=blue/axes=0,0,0,0 {1,2,1}, {2,1,0.5}
-shade/over/i=1:2/j=0:2/patt i+j
-
-set view lower; polygon/thick/color=red/palette=blue/axes=1,1,1,0 {1,2,1}, {2,1,0.5}
-fill/over/i=1:2/j=0:2/patt i+j
-can view
-
-! Polygon over shade
-set view ul
-use err542_poly_over_calendar.nc
-shade/ax=0,1,1,0 pc
-poly/over/fill/pal=red/line/color=black/title="polygon" {220,240,280,250},{-20,70,40,-30}
-
-! Polygon over fill
-set view ur
-use gt4d011
-let v1={221,225,232,235}
-let v2={20,80,50,30}
-let v3={10,-3,16,3}
-fill/ax=1,0,0,1 temp[j=@ave,l=1]
-go polymark poly/lev=(-5,30,1)/pal=brown/fill/line=1/nolab/over v1 v2 v3 circle 2
-
-
-set view ll
-plot/ax=0,0,1,1/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
-
-set view lr
-vector/ax=0,1,1,0/k=1/l=1 u,v
-let v1={221,225,232,235}
-let v2={-3,2,0.5,2}
-let v3={10,-3,16,3}
-go polymark poly/lev=(-5,30,1)/fill/line=1/nolab/over v1 v2 v3 circle 2
-
-
-GO bn_reset
-cancel mode verify
-GO err61_context_scalar_strings
-! err61_context_scalar_strings.jnl
-! Bug 1558, first present in Ferret v6.02
-! After SET GRID EZ error was about var not being a scalar.
-
-say `"a" EQ "a"`
- !-> MESSAGE/CONTINUE 1
-1
-set grid ez
-say `"a" EQ "a"`
- !-> MESSAGE/CONTINUE 1
-1
-
-
-GO bn_reset
-cancel mode verify
-GO err61_exit_script
-! Bug 1566 Andrew Wittenberb
-!
-! I discovered this when testing for an error condition, for which I wanted to
-! exit the current script with EXIT/SCRIPT. It seems that EXIT doesn't always pop
-! the IF..ENDIF stack, resulting in a nesting error upon repeated invocations of
-! the script.
-!
-! Note also how the REPEAT at first works, then fails, then works, then fails, in
-! an alternating pattern.
-
-! NOAA/PMEL TMAP
-! FERRET v6.08
-! Linux(g77) 2.4.21-32 - 11/13/07
-! 7-Mar-08 18:32
-
-sp rm -f b1566.jnl
-sp echo if 1 then > b1566.jnl
-sp echo if 1 then >> b1566.jnl
-sp echo exit/script >> b1566.jnl
-sp echo endif >> b1566.jnl
-sp echo endif >> b1566.jnl
-rep/l=1:7 go b1566.jnl
-!-> REPEAT: L=1
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=2
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=3
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=4
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=5
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=6
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=7
-if 1 then
-if 1 then
-exit/script
-rep/l=1:7 go b1566.jnl
-!-> REPEAT: L=1
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=2
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=3
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=4
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=5
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=6
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=7
-if 1 then
-if 1 then
-exit/script
-
-!! IFs nested too deep
-
-rep/l=1:7 go b1566.jnl
-!-> REPEAT: L=1
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=2
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=3
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=4
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=5
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=6
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=7
-if 1 then
-if 1 then
-exit/script
-rep/l=1:7 go b1566.jnl
-!-> REPEAT: L=1
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=2
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=3
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=4
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=5
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=6
-if 1 then
-if 1 then
-exit/script
-!-> REPEAT: L=7
-if 1 then
-if 1 then
-exit/script
-
-
-
-GO bn_reset
-cancel mode verify
-GO err61_new_attr_on_axis
-! err61_new_attr_on_axis.jnl
-! For any var or axis, allow adding an attribute
-! Fix for bug 1574
-
-use ocean_atlas_temp
-sh dat
- currently SET data sets:
- 1> ./ocean_atlas_temp.cdf (default)
- name title I J K L M N
- TEMP Temperature 1:360 1:180 1:1 1:2 ... ...
-
-define att/output (`temp,return=xaxis`).long_name = "Here is a long name for the x axis of TEMP"
- !-> define att/output (XAX_LEV9421_380).long_name = "Here is a long name for the x axis of TEMP"
-save/file=a.nc/clobber/j=50/l=2 temp
-sp ncdump -h a.nc >> all_ncdump.out
-
-! It is saved even on a subset of the axis
-save/file=a.nc/clobber/i=1:12/j=50/l=2 temp
-sp ncdump -h a.nc >> all_ncdump.out
-
-DEFINE AXIS/y=-60:60:2/units=deg yaxis
-LET v = y[gy=yaxis]
-
-DEFINE att/output (yaxis).standard_name = "latitude"
-
-save/file=a.nc/clobber v
-sp ncdump -h a.nc >> all_ncdump.out
-
-
-GO bn_reset
-cancel mode verify
-GO bn_varcontext_attributes
-! Examples from bn_attributes, where instead of var.att[specifiers]
-! we use var[specifiers].att where appropriate.
-
-!-----
-
-! SHOW ATTRIBUTE examples
-
-can data/all
-can var/all
-
-use ocean_atlas_temp
-use gt4d011
-use levitus_climatology
-
-sh att temp[d=1].units
- attributes for dataset: ./ocean_atlas_temp.cdf
- TEMP.units = Deg C
-
-
-! note .[d=1].dimnames does not work
-use coads_climatology
-use gt4d011
-
-let vnames = ..dimnames[d=1]
-let lnames = ..dimnames[d=2]
-list vnames
- VARIABLE : ..DIMNAMES[D=ocean_atlas_temp]
- SUBSET : 4 points (X)
- 1 / 1:"XAX_LEV9421_380"
- 2 / 2:"YAX_LEV94"
- 3 / 3:"ZAXLEVIT191_1"
- 4 / 4:"TIME3"
-list lnames
- VARIABLE : ..DIMNAMES[D=gt4d011]
- SUBSET : 20 points (X)
- 1 / 1:"PSXT1"
- 2 / 2:"PSYT1"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT1"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME11"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
-
-go bn_reset
-cancel mode verify
-
-
-!-----
-! more on number of attributes
-
-use levitus_climatology
-use ocean_atlas_temp
-let nat = temp.nattrs
-list nat
- VARIABLE : TEMP.NATTRS
- FILENAME : ocean_atlas_temp.cdf
- 5.000000
-
-list (`temp,return=xaxis`)[d=2].nattrs
- !-> list (XAX_LEV9421_380)[d=2].nattrs
- VARIABLE : (XAX_LEV9421_380)[d=ocean_atlas_temp].NATTRS
- FILENAME : ocean_atlas_temp.cdf
- 4.000000
-
-use gt4d011
-say `temp[d=1].nattrs`
- !-> MESSAGE/CONTINUE 5
-5
-
-def sym xaxnam "(`temp[d=1],return=xaxis`)"
- !-> def sym xaxnam "(XAXLEVITR1_160)"
-def sym yaxnam "(`temp[d=1],return=yaxis`)"
- !-> def sym yaxnam "(YAXLEVITR1_90)"
-list `($xaxnam)[d=1].nattrs`
- !-> list 4
- VARIABLE : constant
- 4.000000
-say `($yaxnam)[d=1].nattrs`
- !-> MESSAGE/CONTINUE 3
-3
-
-go bn_reset
-cancel mode verify
-
-!-----
-! more on access to attribute names and values as variables
-
-use coads_climatology
-use levitus_climatology
-use ocean_atlas_temp
-use gt4d011
-
-let a = temp.units
-list/d=3 a
- VARIABLE : TEMP.UNITS
- FILENAME : ocean_atlas_temp.cdf
- "Deg C"
-list temp[d=3].units
- VARIABLE : TEMP[d=ocean_atlas_temp].UNITS
- FILENAME : gt4d011.cdf
- "Deg C"
-list/d=3 temp.history
- VARIABLE : TEMP.HISTORY
- FILENAME : ocean_atlas_temp.cdf
- "From ocean_atlas_monthly"
-
-can data/all
-can var/all
-
-use coads_climatology
-! This syntax does not work:
-! list sst[d=1].dimnames[i=2]
-
-! But this does
-let a = sst[d=1].dimnames
-list a[i=2]
- VARIABLE : SST[d=coads_climatology].DIMNAMES
- FILENAME : coads_climatology.cdf
- X : 2
- "COADSY"
-
-go bn_reset
-cancel mode verify
-
-! When the variable context is given in an attribute
-! spec, we want to ignore the information except for the
-! dataset, and just return the attribute of the variable.
-
-use coads_climatology
-define symbol ferret_plot_var sst[x=30:39,y=-90:90]
-list ($ferret_plot_var).long_name
- !-> list sst[x=30:39,y=-90:90].long_name
- VARIABLE : SST.LONG_NAME
- FILENAME : coads_climatology.cdf
- "SEA SURFACE TEMPERATURE"
-
-use coads_climatology
-define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
-list ($ferret_plot_var).units
- !-> list sst[d=1,x=30:35,y=-90:90].units
- VARIABLE : SST[d=coads_climatology].UNITS
- FILENAME : coads_climatology.cdf
- "Deg C"
-
-use coads_climatology
-use levitus_climatology
-define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
-list ($ferret_plot_var).history
- !-> list sst[d=1,x=30:35,y=-90:90].history
- VARIABLE : SST[d=coads_climatology].HISTORY
- FILENAME : levitus_climatology.cdf
- "From coads_climatology"
-
-go bn_reset
-cancel mode verify
-
-use levitus_climatology
-use coads_climatology
-
-def sym xaxnam "(`temp[d=1],return=xaxis`)"
- !-> def sym xaxnam "(XAXLEVITR1_160)"
-def sym yaxnam "(`temp[d=1],return=yaxis`)"
- !-> def sym yaxnam "(YAXLEVITR1_90)"
-
-list ($xaxnam)[d=1].modulo
- !-> list (XAXLEVITR1_160)[d=1].modulo
- VARIABLE : (XAXLEVITR1_160)[d=levitus_climatology].MODULO
- FILENAME : coads_climatology.cdf
- " "
-list ($yaxnam).point_spacing[d=1]
- !-> list (YAXLEVITR1_90).point_spacing[d=1]
- VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
- FILENAME : levitus_climatology.cdf
- "even"
-
-
-GO bn_reset
-cancel mode verify
-GO err61_show_dat_var_xml
-! err61_show_dat_var_xml.jnl
-! See bug 1580. Intermediate variablels associated with a
-! variable that uses a grid-changing function should be
-! skipped when writing variables by SHOW DATA/VAR/XML
-
-! Define some varibles as in some of the tests of
-! zaxreplace. Write to files.
-
-! Define some variables as in some of the benchmark
-! tests of zaxreplace. Write to files.
-
-LET ddat = ZSEQUENCE({1126,1136,1146,1156,1166})
-LET cycle = ZSEQUENCE({346, 347, 349, 350, 351})
-DEFINE AXIS/Z=10:50:10 zaxis_orig
-LET cycle_orig = cycle[GZ=zaxis_orig at ASN]
-LET ddat_orig = ddat[GZ=zaxis_orig at ASN]
-
-SAVE/CLOBBER/FILE=z1.nc ddat_orig
-SAVE/CLOBBER/FILE=z2.nc cycle_orig
-
-! Now use this data and define a user variable
-! associated with datset 2 using ZAXREPLACE
-
-CAN DAT/ALL; CAN VAR/ALL
-USE z1
-USE z2
-DEFINE AXIS/Z=345:353:1 zaxis_des
-LET dummy = Z[GZ=zaxis_des]
-LET/D=2 ddat_a = ZAXREPLACE(ddat_orig[d=1], cycle_orig[d=2], dummy)
-
-! Note how there are intermediate variables associated with the
-! regridding operation
-
-SHOW DATA 2
- currently SET data sets:
- 2> ./z2.nc (default)
- name title I J K L M N
- CYCLE_ORIG
- CYCLE[GZ=ZAXIS_ORIG at ASN] ... ... 1:5 ... ... ...
- ------------------------------
- DDAT_A[D=z2] = ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)
-
-
-! Those intermediate variables should be skipped
-! for SHOW DATA/VAR/XML
-
-SHOW DATA/VAR/XML 2
-<datasets>
-<dataset name="./z2.nc" default="true">
-<title> </title>
-<var name="CYCLE_ORIG">
-<attribute name="long_name" type="char">
- <value><![CDATA[CYCLE[GZ=ZAXIS_ORIG at ASN]]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<grid name="GIX1">
-<axes>
-<zaxis>ZAXIS_ORIG</zaxis>
-</axes>
-</grid>
-</var>
-<var name="ddat_a">
-<attribute name="definition" type="char">
- <value><![CDATA[ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)]]></value>
-</attribute>
-<grid name="(G103)">
-<axes>
-<zaxis>ZAXIS_DES</zaxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="ZAXIS_ORIG">
-<attribute name="direction" type="char">
- <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>5</value>
-</attribute>
-<attribute name="start" type="double">
- <value>10</value>
-</attribute>
-<attribute name="end" type="double">
- <value>50</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="axis" type="char">
- <value><![CDATA[Z]]></value>
-</attribute>
-<attribute name="standard_name" type="char">
- <value><![CDATA[altitude]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[ZAXIS_ORIG]]></value>
-</attribute>
-</axis>
-<axis name="ZAXIS_DES">
-<attribute name="direction" type="char">
- <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>9</value>
-</attribute>
-<attribute name="start" type="double">
- <value>345</value>
-</attribute>
-<attribute name="end" type="double">
- <value>353</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="axis" type="char">
- <value><![CDATA[Z]]></value>
-</attribute>
-</axis>
-</axes>
-
-GO bn_reset
-cancel mode verify
-GO err61_360_calendar
-! err61_360_calendar.jnl
-!
-
-! This first has always been ok
-define axis/t=28-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 time
-list t[gt=time]
- VARIABLE : T
- axis TIME
- SUBSET : 6 points (TIME)
- CALENDAR : 360_DAY
- 28-FEB-1909 00 / 1: 57.00000
- 30-FEB-1909 00 / 2: 59.00000
- 02-MAR-1909 00 / 3: 61.00000
- 04-MAR-1909 00 / 4: 63.00000
- 06-MAR-1909 00 / 5: 65.00000
- 08-MAR-1909 00 / 6: 67.00000
-
-! Should be able to specify 30-feb-1909 for a 360-day calendar but it
-! resulted in an error
-define axis/t=30-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 time
-
-
-GO bn_reset
-cancel mode verify
-GO err611_exit_if.jnl
-! err611_exit_if.jnl
-!
-! Bug 1587
-! This only in v6.11 GFDL release bug
-! Fixed in xeq_exit.F
-
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b !the following fails to say "hello"
-go a
-if 1 then
-exit/script
-say hello
-hello
-go a
-if 1 then
-exit/script
-if 1 then
-exit/script
-
-GO bn_reset
-cancel mode verify
-GO err611_save_irreg.jnl
-! err611_save_irreg.jnl
-!
-! bug1587
-
-def axis/t time = {0,1,3}
-let a = t[gt=time]
-save/clob/file=a.nc a
-can var a
-can dat/all
-use a.nc
-save/clob/file=b.nc a
-let b = a
-list b
- VARIABLE : A
- FILENAME : a.nc
- SUBSET : 3 points (T)
- 0 / 1: 0.000000
- 1 / 2: 1.000000
- 3 / 3: 3.000000
-save/clob/file=b.nc b
-
-
-! ******** V6.13 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_no_valid_on_plot
-! bn_no_valid_on_plot.jnl
-! Bug 1038 points out that the No Valid Data label that is
-! put onto 2D plot if there is no good data, is not put onto
-! 1D plots. Add it to the variable title so it shows up in the key
-!
-! Plot a region where there is no data
-use coads_climatology
-plot/x=56e:100e/y=40 sst[L=1]
-ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C) No Valid Data
- @ASLONGITUDE
- @ASDeg C
-
- XPOS YPOS HGT ROT UNITS
- LAB 1 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLATITUDE : 39N
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 2 0.000E+00 6.600E+00 0.120 0 SYSTEM @ASTIME : JAN
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 3 8.000E+00 6.630E+00 0.120 0 SYSTEM @ASDATA SET: coads_climatology
- LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
- LAB 4 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
- LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
-
-! and now valid data overlaid with all-missing data
-
-plot/x=56e:100e/y=10 sst[L=1]
-plot/over/x=56e:100e/y=40 sst[L=1]
-ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)
- @ASLONGITUDE
- @ASDeg C
-
- XPOS YPOS HGT ROT UNITS
- LAB 1 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLATITUDE : 9N
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 2 0.000E+00 6.600E+00 0.120 0 SYSTEM @ASTIME : JAN
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 3 8.000E+00 6.630E+00 0.120 0 SYSTEM @ASDATA SET: coads_climatology
- LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
- LAB 4 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
- LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 5 -3.700E-01 -5.500E-01 0.080 0 SYSTEM @ASSST[Y=39N] No Valid Data
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
-
-! For plots with multi lines in one plot command, mark each if no data
-plot/x=56e:100e sst[L=1,y=10], sst[L=1,y=50], sst[L=1,y=20]
-ppl list labels
-
- @ASLONGITUDE
- @ASDeg C
-
- XPOS YPOS HGT ROT UNITS
- LAB 1 0.000E+00 6.600E+00 0.120 0 SYSTEM @ASTIME : JAN
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 2 8.000E+00 6.630E+00 0.120 0 SYSTEM @ASDATA SET: coads_climatology
- LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
- LAB 3 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
- LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 4 2.530E+00 -7.900E-01 0.120 0 SYSTEM @ASSST[Y=9N]
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 5 5.780E+00 -7.900E-01 0.119 0 SYSTEM @ASSST[Y=49N] No Valid Data
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 6 2.530E+00 -1.050E+00 0.120 0 SYSTEM @ASSST[Y=19N]
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
-
-! For 2D plots create a new MODE NODATA_LAB which if on, puts
-! the NO VALID DATA across the middle of the plot when there is
-! no data, but allows us to turn this off.
-
-CANCEL MODE nodata_lab
-SHADE/Y=80:90 sst[L=1]
-FILL/Y=80:90 sst[L=1]
-CONTOUR/Y=80:90 sst[L=1]
-
-VECTOR/Y=80:90 sst[L=1], sst[L=1]
-
-SET MODE/last nodata_lab
-
-GO bn_reset
-cancel mode verify
-GO bn_median
-! Test median smoothing tranform
-! Default length is 3
-
-use gtsa056_2.cdf
-let var = u[x=180,y=0,k=1,t=1-jan-1982:1-jan-1983]
-plot var, var[t=@med], var[t=@med:3], var[t=@med:7]
-list/t=1-dec-1982:1-jan-1983 var, var[t=@med], var[t=@med:3], var[t=@med:7]
- DATA SET: ./gtsa056_2.cdf
- TIME: NOV-1982 to JAN-1983
- LONGITUDE: 180E
- LATITUDE: 0
- DEPTH (m): 5
- Column 1: VAR is U[X=180,Y=0,K=1,T=1-JAN-1982:1-JAN-1983]
- Column 2: VAR[T=@MED:3] is U[X=180,Y=0,K=1,T=1-JAN-1982:1-JAN-1983] (median smoothed by 3 pts on T)
- Column 3: VAR[T=@MED:3] is U[X=180,Y=0,K=1,T=1-JAN-1982:1-JAN-1983] (median smoothed by 3 pts on T)
- Column 4: VAR[T=@MED:7] is U[X=180,Y=0,K=1,T=1-JAN-1982:1-JAN-1983] (median smoothed by 7 pts on T)
- VAR VAR VAR VAR
-30-NOV-1982 23 / 106: -10.06812 -10.06812 -10.06812 -11.97891
-04-DEC-1982 00 / 107: -13.41848 -13.41848 -13.41848 -10.06812
-07-DEC-1982 01 / 108: -15.06836 -13.41848 -13.41848 -10.06812
-10-DEC-1982 02 / 109: -11.97891 -11.97891 -11.97891 -10.06812
-13-DEC-1982 03 / 110: -4.63116 -4.63116 -4.63116 -4.63116
-16-DEC-1982 04 / 111: 0.77075 0.77075 0.77075 0.77075
-19-DEC-1982 05 / 112: 1.06240 1.06240 1.06240 1.06240
-22-DEC-1982 06 / 113: 2.75400 2.75400 2.75400 2.75400
-25-DEC-1982 07 / 114: 9.06758 9.06758 9.06758 4.21162
-28-DEC-1982 08 / 115: 10.80434 9.06758 9.06758 4.21162
-31-DEC-1982 09 / 116: 4.21162 10.80434 10.80434 9.06758
-
-use coads_climatology
-let var= sst[y=0,L=10]
-plot var,var[x=@med:3], var[x=@med:7]
-list/x=80w:50w var,var[x=@med:3], var[x=@med:7]
- DATA SET: ./coads_climatology.cdf
- LONGITUDE: 80W to 50W
- LATITUDE: 1S
- TIME: FEB-0002
- Column 1: VAR is SST[Y=0,L=10]
- Column 2: VAR[X=@MED:3] is SST[Y=0,L=10] (median smoothed by 3 pts on X)
- Column 3: VAR[X=@MED:7] is SST[Y=0,L=10] (median smoothed by 7 pts on X)
- VAR VAR VAR
-79W / 131: .... 25.98750 25.92824
-77W / 132: .... .... 25.98750
-75W / 133: .... .... 25.98750
-73W / 134: .... .... ....
-71W / 135: .... .... ....
-69W / 136: .... .... ....
-67W / 137: .... .... ....
-65W / 138: .... .... ....
-63W / 139: .... .... 27.80000
-61W / 140: .... .... 27.80000
-59W / 141: .... 27.80000 27.64737
-57W / 142: 27.80000 27.80000 27.70333
-55W / 143: 27.64737 27.64737 27.64737
-53W / 144: 27.43500 27.64737 27.64737
-51W / 145: 27.70333 27.43500 27.64737
-
-let var= sst[x=180,L=10]
-plot var,var[y=@med:3], var[y=@med:7]
-list/y=-20:0 var,var[y=@med:3], var[y=@med:7]
- DATA SET: ./coads_climatology.cdf
- LATITUDE: 20S to 0
- LONGITUDE: 179E
- TIME: FEB-0002
- Column 1: VAR is SST[X=180,L=10]
- Column 2: VAR[Y=@MED:3] is SST[X=180,L=10] (median smoothed by 3 pts on Y)
- Column 3: VAR[Y=@MED:7] is SST[X=180,L=10] (median smoothed by 7 pts on Y)
- VAR VAR VAR
-19S / 36: 28.32244 28.32244 28.32244
-17S / 37: 28.56983 28.56983 28.56983
-15S / 38: 29.05953 29.05953 29.05953
-13S / 39: 29.43250 29.23719 29.23170
-11S / 40: 29.23719 29.32561 29.23170
-9S / 41: 29.32561 29.23719 29.23170
-7S / 42: 29.23170 29.23170 29.23170
-5S / 43: 28.96976 28.96976 28.96976
-3S / 44: 28.39779 28.39779 28.44243
-1S / 45: 28.36456 28.39779 28.39779
-
-define axis/z=0:1000:20/depth zax
-let var = cos(z[gz=zax]/30) + randu(1+k[gz=zax])
-plot/trans var, var[z=@med:3], var[z=@med:9]
-list/z=1:140 var, var[z=@med:3], var[z=@med:9]
- Z: 1 to 140
- Column 1: VAR is COS(Z[GZ=ZAX]/30) + RANDU(1+K[GZ=ZAX])
- Column 2: VAR[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU(1+K[GZ=ZAX]) (median smoothed by 3 pts on Z)
- Column 3: VAR[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU(1+K[GZ=ZAX]) (median smoothed by 9 pts on Z)
- VAR VAR VAR
-0 / 1: 1.900075 1.900075 0.3281405
-20 / 2: 1.322209 1.322209 0.3281405
-40 / 3: 0.328140 0.328140 0.2405229
-60 / 4: -0.253715 -0.157475 0.3281405
-80 / 5: -0.157475 -0.253715 0.3281405
-100 / 6: -0.785400 -0.157475 0.3281405
-120 / 7: 0.240523 0.240523 0.3281405
-140 / 8: 0.390383 0.390383 0.3903829
-
-set mode ignore
-! Argument to the median smoother must be odd.
-
-plot/trans var, var[z=@med:4]
-
-set mode/last ignore
-
-
-GO bn_reset
-cancel mode verify
-GO bn614_bug_fixes
-! bn614_bug_fixes.jnl
-! Fixes that go into v6.14 release
-
-GO bn_reset
-cancel mode verify
-GO err611_axislab
-! err611_axislab.jnl
-! Fix bug 1582: Horizontal axis label disappeared
-! if PPL AXLABP moves it to the upper axis
-
-plot/set/i=1:100 sin(i/6)
-ppl axlabp,1,-1
-ppl xlab TEMP(C)
-ppl ylab DEPTH
-ppl plot
-
-
-GO bn_reset
-cancel mode verify
-GO err61_360_calendar
-! err61_360_calendar.jnl
-!
-
-! This first has always been ok
-define axis/t=28-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 time
-list t[gt=time]
- VARIABLE : T
- axis TIME
- SUBSET : 6 points (TIME)
- CALENDAR : 360_DAY
- 28-FEB-1909 00 / 1: 57.00000
- 30-FEB-1909 00 / 2: 59.00000
- 02-MAR-1909 00 / 3: 61.00000
- 04-MAR-1909 00 / 4: 63.00000
- 06-MAR-1909 00 / 5: 65.00000
- 08-MAR-1909 00 / 6: 67.00000
-
-! Should be able to specify 30-feb-1909 for a 360-day calendar but it
-! resulted in an error
-define axis/t=30-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 time
-
-
-GO bn_reset
-cancel mode verify
-GO err611_exit_if.jnl
-! err611_exit_if.jnl
-!
-! Bug 1587
-! This only in v6.11 GFDL release bug
-! Fixed in xeq_exit.F
-
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b !the following fails to say "hello"
-go a
-if 1 then
-exit/script
-say hello
-hello
-go a
-if 1 then
-exit/script
-if 1 then
-exit/script
-
-GO bn_reset
-cancel mode verify
-GO err611_save_irreg.jnl
-! err611_save_irreg.jnl
-!
-! bug1587
-
-def axis/t time = {0,1,3}
-let a = t[gt=time]
-save/clob/file=a.nc a
-can var a
-can dat/all
-use a.nc
-save/clob/file=b.nc a
-let b = a
-list b
- VARIABLE : A
- FILENAME : a.nc
- SUBSET : 3 points (T)
- 0 / 1: 0.000000
- 1 / 2: 1.000000
- 3 / 3: 3.000000
-save/clob/file=b.nc b
-
-GO bn_reset
-cancel mode verify
-GO err611_wrong_fineaxis_range
-! err611_wrong_fineaxis_range.jnl
-! Bug 1594
-
-! (bug was on 64-bit machine only)
-! 7200-point axis in longitude. The coordinates run from -179.725 to 179.725,
-! delta 0.05. If we give a range in x of -180:180 this is returned as index
-! 1:1 not 1:7200. If we give a range of x=0:360 the correct range is used.
-
-! File saved from
-!use/order=xytz "http://apdrc.soest.hawaii.edu/dods/public_data/satellite_product/GHRSST/ghrsst_global"
-! save/clobber/file=fine_x_axis.nc sst[i=1:7200,y=0,L=1]
-
-use fine_x_axis
-sh grid sst
- GRID GPY1
- name axis # pts start end
- LON LONGITUDE 7200mr 179.97W(-179.97) 179.97E(179.97)
- LAT1800_1800 LATITUDE 1 r 0.025S 0.025S
- ENS Z (count) 1 r 1 1
- TIME11 TIME 1 r 01-APR-2006 00:00 01-APR-2006 00:00
- normal E
- normal F
-
-! This first was wrong, returned data at x=-180
-list/x=180 sst
- VARIABLE : sea surface temperature [degc]
- FILENAME : fine_x_axis.nc
- LONGITUDE: 180E(180)
- LATITUDE : 0.025S
- Z (count): 1
- TIME : APR-2006
- 27.53000
-
-list/i=7200 sst
- VARIABLE : sea surface temperature [degc]
- FILENAME : fine_x_axis.nc
- LONGITUDE: 180E(180)
- LATITUDE : 0.025S
- Z (count): 1
- TIME : APR-2006
- 27.53000
-list/x=-180 sst
- VARIABLE : sea surface temperature [degc]
- FILENAME : fine_x_axis.nc
- LONGITUDE: 180W(-180)
- LATITUDE : 0.025S
- Z (count): 1
- TIME : APR-2006
- 27.50000
-list/i=1 sst
- VARIABLE : sea surface temperature [degc]
- FILENAME : fine_x_axis.nc
- LONGITUDE: 180W(-180)
- LATITUDE : 0.025S
- Z (count): 1
- TIME : APR-2006
- 27.50000
-
-! This gave a range in x of no points, so size was 1 should be 7200
-let the_plot_var = sst[x=-180:180]
-say `the_plot_var,return=size`
- !-> MESSAGE/CONTINUE 7200
-7200
-
-let the_plot_var = sst[x=0:360]
-say `the_plot_var,return=size`
- !-> MESSAGE/CONTINUE 7200
-7200
-
-GO bn_reset
-cancel mode verify
-GO err611_digit_filename
-! err611_digit_filename.jnl
-! Under linux, FILE command fails if filename
-! starts with digit(s)
-
-! bug 287 (never had a benchmark test)
-
-REPEAT/RANGE=1:12:2/name=m \
- (LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=`m`a.dat i; \
- FILE/VAR="a`m`" `m`a.dat; LIST a`m`)
-!-> REPEAT: M:1
- !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=1a.dat i
- !-> SET DATA/EZ/VAR="a1" 1a.dat
- !-> LIST a1
- VARIABLE : A1
- FILENAME : 1a.dat
- SUBSET : 3 points (X)
- 1 / 1: 1.000000
- 2 / 2: 2.000000
- 3 / 3: 3.000000
-!-> REPEAT: M:3
- !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=3a.dat i
- !-> SET DATA/EZ/VAR="a3" 3a.dat
- !-> LIST a3
- VARIABLE : A3
- FILENAME : 3a.dat
- SUBSET : 3 points (X)
- 1 / 1: 1.000000
- 2 / 2: 2.000000
- 3 / 3: 3.000000
-!-> REPEAT: M:5
- !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=5a.dat i
- !-> SET DATA/EZ/VAR="a5" 5a.dat
- !-> LIST a5
- VARIABLE : A5
- FILENAME : 5a.dat
- SUBSET : 3 points (X)
- 1 / 1: 1.000000
- 2 / 2: 2.000000
- 3 / 3: 3.000000
-!-> REPEAT: M:7
- !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=7a.dat i
- !-> SET DATA/EZ/VAR="a7" 7a.dat
- !-> LIST a7
- VARIABLE : A7
- FILENAME : 7a.dat
- SUBSET : 3 points (X)
- 1 / 1: 1.000000
- 2 / 2: 2.000000
- 3 / 3: 3.000000
-!-> REPEAT: M:9
- !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=9a.dat i
- !-> SET DATA/EZ/VAR="a9" 9a.dat
- !-> LIST a9
- VARIABLE : A9
- FILENAME : 9a.dat
- SUBSET : 3 points (X)
- 1 / 1: 1.000000
- 2 / 2: 2.000000
- 3 / 3: 3.000000
-!-> REPEAT: M:11
- !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=11a.dat i
- !-> SET DATA/EZ/VAR="a11" 11a.dat
- !-> LIST a11
- VARIABLE : A11
- FILENAME : 11a.dat
- SUBSET : 3 points (X)
- 1 / 1: 1.000000
- 2 / 2: 2.000000
- 3 / 3: 3.000000
-SHOW DATA
- currently SET data sets:
- 1> ./1a.dat
- name title I J K L M N
- A1 A1 1:3 ... ... ... ... ...
-
- 2> ./3a.dat
- name title I J K L M N
- A3 A3 1:3 ... ... ... ... ...
-
- 3> ./5a.dat
- name title I J K L M N
- A5 A5 1:3 ... ... ... ... ...
-
- 4> ./7a.dat
- name title I J K L M N
- A7 A7 1:3 ... ... ... ... ...
-
- 5> ./9a.dat
- name title I J K L M N
- A9 A9 1:3 ... ... ... ... ...
-
- 6> ./11a.dat (default)
- name title I J K L M N
- A11 A11 1:3 ... ... ... ... ...
-
-
-GO bn_reset
-cancel mode verify
-GO err611_parse_semicolon
-! err611_parse_semicolon.jnl
-! Bug 1608. The first time it was issued, the first command
-! below was split into two at the ;
-! Test this and some other combinations
-
-say "c ; d"
-c ; d
-say "c //d"
-c //d
-say "c (d"
-c (d
-say "c (d"; say "a ; b"
-"c (d"; say "a ; b"
-say "c (d; say a ; b"
-c (d; say a ; b
-
-
-GO bn_reset
-cancel mode verify
-GO err611_ov_ax
-! err611_ov_ax.jnl
-!
-! bug 1609
-!
-! in the two lower panels, the plot/over/ax=0,0,0,0
-! messes up the ppl axlabp setting in the last command
-!
-
-can v
-set v ul; ppl axlabp -1 -1; plot/nolab {-1,1,6}
-plot/ov/vs/nolab/line=2 {1,2,2,1},{0,0,3,0}
-set v ur; ppl axlabp 0 0; plot/nolab {-1,1,6}
-
-set v ll; ppl axlabp -1 -1; plot/nolab {-1,1,6}
-plot/ov/vs/nolab/line=2/ax=0,0,0,0 {1,2,2,1},{0,0,3,0}
-set v lr; ppl axlabp 0 0; plot/nolab {-1,1,6}
-
-GO bn_reset
-cancel mode verify
-GO err611_context_after_error
-! err611_context_after_error.jnl
-! ACM 11/12/08
-!
-! Bug 1421 - goes back even to older versions of Ferret e.g. 5.41 on stout
-! Context errors after
-!
-! list a_regrid[d=1,gt=b[d=2]@mod]
-! ...
-! cancel data/all
-!
-! if the list command is issued before the variable a_regrid is defined.
-
-
-SET MODE ignore_error
-USE bug1421_a
-USE bug1421_b
-
-SHOW DATA
- currently SET data sets:
- 1> ./bug1421_a.nc
- name title I J K L M N
- A zonal wind stress 1:1 1:1 ... 1:20 ... ...
-
- 2> ./bug1421_b.nc (default)
- name title I J K L M N
- B T[GT=MON_IRREG_NLP] ... ... ... 1:12 ... ...
-
-SHOW AXIS LON88_88
- name axis # pts start end
- LON88_88 LONGITUDE 1mr 141.25W 141.25W
- Axis span (to cell edges) = 1 (modulo length = 360)
-SHOW AXIS LAT45_45
- name axis # pts start end
- LAT45_45 LATITUDE 1 r 1.011S 1.011S
- Axis span (to cell edges) = 1
-SHOW AXIS MON_IRREG_NLP
- name axis # pts start end
- MON_IRREG_NLP TIME 12mi 16-JAN 12:00 16-DEC 12:00
-T0 = 1-JAN-0001
-CALENDAR = NOLEAP
- Axis span (to cell edges) = 365 (modulo length = axis span)
-
-DEF AXIS/T/UNITS="days"/T0="1-jan-0001"/cal=noleap tnew = tboxlo[GT=a[D=1]]
-LIST a_regrid[D=1,GT=b[D=2]@MOD]
-LET a_regrid = a[D=1,GT=tnew at ASN]
-LIST a_regrid[D=1,GT=b[D=2]@MOD]
- VARIABLE : A[D=bug1421_a,GT=TNEW at ASN]
- regrid: on T at MOD
- SUBSET : 12 points (TIME)
- CALENDAR : NOLEAP
- LONGITUDE: 141.3W
- LATITUDE : 1.011S
- 141.3W
- 1
- 16-JAN 12 / 1: 0.05848070
- 15-FEB 00 / 2: 0.05188299
- 16-MAR 12 / 3: 0.04782573
- 16-APR 00 / 4: 0.03808421
- 16-MAY 12 / 5: 0.05937929
- 16-JUN 00 / 6: 0.06571895
- 16-JUL 12 / 7: 0.06152720
- 16-AUG 12 / 8: 0.07460730
- 16-SEP 00 / 9: 0.05815475
- 16-OCT 12 / 10: 0.06169292
- 16-NOV 00 / 11: 0.05654943
- 16-DEC 12 / 12: 0.05768678
-
-CANCEL DATA/ALL
-SHOW AXIS LON88_88
- name axis # pts start end
-SHOW AXIS LAT45_45
- name axis # pts start end
-SHOW AXIS MON_IRREG_NLP
- name axis # pts start end
- MON_IRREG_NLP TIME 12mi 16-JAN 12:00 16-DEC 12:00
-T0 = 1-JAN-0001
-CALENDAR = NOLEAP
- Axis span (to cell edges) = 365 (modulo length = axis span)
-
-SET MODE/LAST ignore_error
-
-GO bn_reset
-cancel mode verify
-GO err611_isize_gc_fcns
-! err611_isize_gc_fcns.jnl
-! ACM 11/13/2008
-!
-! Testing the fix for bug 1523. Previously after the SET REGION,
-! the RETURN= always returned a size of 10, the default region size.
-
-LET a = {1,2,3,4,5,6}
-
-! Should be 6
-SAY `a,RETURN=isize`
- !-> MESSAGE/CONTINUE 6
-6
-SAY `XSEQUENCE(a),RETURN=isize`
- !-> MESSAGE/CONTINUE 6
-6
-
-SET REGION/X=1:10
-! Should still be 6
-SAY `XSEQUENCE(a),RETURN=isize`
- !-> MESSAGE/CONTINUE 6
-6
-
-! Should be 4
-SAY `XSEQUENCE(a[i=1:4]),RETURN=isize`
- !-> MESSAGE/CONTINUE 4
-4
-
-SAY `XSEQUENCE(a[i=1:4]),RETURN=size`
- !-> MESSAGE/CONTINUE 4
-4
-
-CANCEL REGION
-! Should be 5 then 6
-SAY `XSEQUENCE(a[i=1:5]),RETURN=size`
- !-> MESSAGE/CONTINUE 5
-5
-SAY `XSEQUENCE(a),RETURN=size`
- !-> MESSAGE/CONTINUE 6
-6
-
-GO bn_reset
-cancel mode verify
-GO err611_return_precision
-! err611_return_precision.jnl
-! 17-Nov-08 ACM
-
-! See bug 1611, where say "a`95,p=1`" yielded "a 95" but
-! "a`94,p=1`" yielded "a94"
-
-say "a`95,p=1`"
- !-> MESSAGE/CONTINUE "a95"
-a95
-say "a`94,p=1`"
- !-> MESSAGE/CONTINUE "a94"
-a94
-say "a`95,p=1`"
- !-> MESSAGE/CONTINUE "a95"
-a95
-say "a`949,p=1`"
- !-> MESSAGE/CONTINUE "a949"
-a949
-say "a`950,p=1`"
- !-> MESSAGE/CONTINUE "a950"
-a950
-
-! Note that an immediate expr with prec=0 returns an integer.
-say "a`95,p=0`"
- !-> MESSAGE/CONTINUE "a95"
-a95
-say "a`94,p=0`"
- !-> MESSAGE/CONTINUE "a94"
-a94
-say "a`95,p=0`"
- !-> MESSAGE/CONTINUE "a95"
-a95
-say "a`949,p=0`"
- !-> MESSAGE/CONTINUE "a949"
-a949
-say "a`950,p=0`"
- !-> MESSAGE/CONTINUE "a950"
-a950
-
-! Tests for non-integers
-! We always return at least one sig digit
-say "a`0.1,p=0`"
- !-> MESSAGE/CONTINUE "a0.1"
-a0.1
-
-say "a`-95,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-say "a`-95.99,p=1`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
-say "a`-95.001,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-
-say "a`-94,p=1`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
-say "a`-94.99,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-say "a`-94.001,p=1`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
-
-say "a`-95,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-say "a`-95.99,p=1`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
-say "a`-95.001,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-
-say "a`-949,p=1`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
-say "a`-949.99,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
-say "a`-949.001,p=1`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
-
-say "a`-950,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
-say "a`-950.99,p=1`"
- !-> MESSAGE/CONTINUE "a-951"
-a-951
-say "a`-950.001,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
-
-
-say "a`-95,p=0`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-say "a`-95.99,p=0`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
-say "a`-95.001,p=0`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-
-say "a`-94,p=0`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
-say "a`-94.99,p=0`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-say "a`-94.001,p=0`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
-
-say "a`-95,p=0`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-say "a`-95.99,p=0`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
-say "a`-95.001,p=0`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
-
-say "a`-949,p=0`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
-say "a`-949.99,p=0`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
-say "a`-949.001,p=0`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
-
-say "a`-950,p=0`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
-say "a`-950.99,p=0`"
- !-> MESSAGE/CONTINUE "a-951"
-a-951
-say "a`-950.001,p=0`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
-
-GO bn_reset
-cancel mode verify
-GO err611_set_var_ez
-! err611_set_var_ez.jnl
-! 6-Jan-2009
-! Ticket 1615
-!
-! SET VAR/UNITS= etc for a variable in an EZ dataset
-! The settings were applied within the Ferret session (plots etc)
-! but not added to the attribute structure and not written to
-! output files.
-
-SP echo "err611_set_var_ez.jnl --- " >> all_ncdump.out
-
-! Create an ASCII dataset
-LET a = {1,3,5}
-LIST/NOHEAD/FORM=(F8.1)/FILE=dat.dat/CLOBBER a
-FILE/VAR=my_asc dat.dat
-
-! use SET VAR to add units, title, reset bad value
-SET VAR/UNITS="micrograms/L"/TITLE="chlorophyll"/BAD=3 my_asc
-SHOW DAT/ATT
- currently SET data sets:
- 1> ./dat.dat (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 7 F dat.dat
-
- MY_ASC FLOAT long_name CHAR 11 T chlorophyll
- missing_value FLOAT 1 T 3
- units CHAR 12 T micrograms/L
-
-SAVE/FILE=a.nc/CLOBBER my_asc
-SP ncdump -h a.nc >> all_ncdump.out
-
-! Create an Unformatted dataset
-LIST/FORM=UNF/file=unf.dat/CLOBBER a
-FILE/FORM=UNF/VAR=my_unf unf.dat
-
-! use SET VAR to add units, title, reset bad value
-SET VAR/UNITS="metres"/TITLE="Some Unformatted input"/BAD=5 my_unf
-SAVE/FILE=a.nc/CLOBBER my_unf
-SP ncdump -h a.nc >> all_ncdump.out
-
-
-GO bn_reset
-cancel mode verify
-GO err611_convert_missing_type
-! err611_convert_missing_type.jnl
-! Fix for bug 1620 message about converting data type of
-! missing value flag from double to float when the data
-! is from an EZ data set and being written to netCDF file.
-
-! Save some data and read it in as a delimited file
-
-LET xx = {-3,4,5}
-LET yy = {1,2,3}
-LIST/CLOBBER/NOHEAD/NOROWHEAD/FORM=(3f8.2)/FILE=lonlat.dat xx,yy
-DEFINE AXIS/X=1:3:1 xobs
-DEFINE GRID/X=xobs gobs
-COL/GRID=gobs/VAR="lon,lat"/TYPE="longitude,latitude" lonlat.dat
-
-! On this SAVE, previously got a NOTE about converting the type of the
-! missing-value attribute to match the type of the variable.
-
-SAVE/CLOBBER/FILE=lonlat.nc lat, lon
-
-GO bn_reset
-cancel mode verify
-GO err611_shade_fill_levs
-! err611_shade_fill_levs.jnl
-! 2/27/2009
-! Bug 1641: On 32-bit linux, these give different
-! sets of levels. They should be the same.
-
-shade x[gx=0:1:.1]*y[gy=0:1:.1]; sh sym lev*
-LEV_TEXT = "(-5,30,1)"
-LEV_MIN = "0"
-LEV_MAX = "1.02"
-LEV_NUM = "51"
-LEV_DEL = "0.02"
-fill x[gx=0:1:.1]*y[gy=0:1:.1]; sh sym lev*
-LEV_TEXT = "(-5,30,1)"
-LEV_MIN = "0"
-LEV_MAX = "1.02"
-LEV_NUM = "51"
-LEV_DEL = "0.02"
-
-
-
-GO bn_reset
-cancel mode verify
-GO err611_set_uvar_outtyp
-! err611_set_uvar_outtyp.jnl
-! fix for bug 1646: set outtype for user variables.
-
-sp echo "bn_attributes.jnl --- SET VAR/OUTTYPE for user variable" >> all_ncdump.out
-
-LET a = {1.1,2.2,3.3}
-SET VAR/OUTTYPE = double a
-SAVE/CLOBBER/FILE=a.nc a
-SP ncdump a.nc >> all_ncdump.out
-
-
-! When changing to INT, need to also change the
-! missing-value flag.
-LET a = { 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}
-SET VAR/BAD=999/OUTTYPE=int a
-SAVE/CLOBBER/FILE=a.nc a
-SP ncdump a.nc >> all_ncdump.out
-
-
-GO bn_reset
-cancel mode verify
-GO err611_save_from_desc
-! err611_save_from_desc.jnl
-!
-! In Ferret v6.19+ this failed with
-! ** netCDF error: Failed creating coord variable %%
-
-use coads_clim.des
-save/clobber/file=a.nc/i=100 sst
-
-GO bn_reset
-cancel mode verify
-GO err611_irregular_axis
- ! err611_irregular_axis.jnl
-
- ! See bug 1483, all about detecting irregular and regular axes. Finally
- ! did the right thing and test double-precision coordinates in DP and
- ! if single precision axes comes in, test that in SP.
-
-! The dataset was created as follows to have large time coordinates but
-! irregularly spaced.
-
-! define axis/t=1-jan-2008:"1-jan-2008:00:02:22":1/units=seconds/t0="1-jan-0001" tax
-! let cc = L[gt=tax]
-! save/file=cc.nc/clobber cc
-! Use ncdump to write a cdl file and edit that file to remove one time
-! coordinate and one value of cc. Run ncgen and write cc_irreg.nc
-
-! Previous versions of this detected the axis as regular.
-
-use cc_irreg.nc
-sh grid cc
- GRID GCZ1
- name axis # pts start end
- normal X
- normal Y
- normal Z
- TAX3 TIME 142 i 30-DEC-2007 00:00 30-DEC-2007 00:02
- normal E
- normal F
-
-
-GO bn_reset
-cancel mode verify
-GO err611_ef_string_result
-! err611_ef_string_result.jnl
-! testing the fix for bug 1621
-! call to EFCN_GET_RTN_TYPE wasn't hooked up in gcf_rtn_type.F
-!
-
-define axis/t=1-jan-1980:1-jan-1990:4/unit=days tax
-define grid/t=tax gg
-let date_list = t[t=29000:29900:100]
-list tax_datestring(date_list,t[g=gg],"day")
- VARIABLE : TAX_DATESTRING(DATE_LIST,T[G=GG],"day")
- SUBSET : 10 points (T)
- 29000 / 1:"09-JUN-1980"
- 29100 / 2:"17-SEP-1980"
- 29200 / 3:"26-DEC-1980"
- 29300 / 4:"05-APR-1981"
- 29400 / 5:"14-JUL-1981"
- 29500 / 6:"22-OCT-1981"
- 29600 / 7:"30-JAN-1982"
- 29700 / 8:"10-MAY-1982"
- 29800 / 9:"18-AUG-1982"
- 29900 / 10:"26-NOV-1982"
-let v = tax_datestring(date_list,t[g=gg],"day")
-list v
- VARIABLE : TAX_DATESTRING(DATE_LIST,T[G=GG],"day")
- SUBSET : 10 points (T)
- 29000 / 1:"09-JUN-1980"
- 29100 / 2:"17-SEP-1980"
- 29200 / 3:"26-DEC-1980"
- 29300 / 4:"05-APR-1981"
- 29400 / 5:"14-JUL-1981"
- 29500 / 6:"22-OCT-1981"
- 29600 / 7:"30-JAN-1982"
- 29700 / 8:"10-MAY-1982"
- 29800 / 9:"18-AUG-1982"
- 29900 / 10:"26-NOV-1982"
-
-! Combine tax_datestring call with *cat_str function
-
-let yr = tax_datestring(date_list,t[g=gg],"second")
-let both = tcat_str(v, yr)
-list both
- VARIABLE : TCAT_STR(V, YR)
- SUBSET : 20 points (T)
- 1 / 1:"09-JUN-1980"
- 2 / 2:"17-SEP-1980"
- 3 / 3:"26-DEC-1980"
- 4 / 4:"05-APR-1981"
- 5 / 5:"14-JUL-1981"
- 6 / 6:"22-OCT-1981"
- 7 / 7:"30-JAN-1982"
- 8 / 8:"10-MAY-1982"
- 9 / 9:"18-AUG-1982"
- 10 / 10:"26-NOV-1982"
- 11 / 11:"09-JUN-1980 00:00:00"
- 12 / 12:"17-SEP-1980 00:00:00"
- 13 / 13:"26-DEC-1980 00:00:00"
- 14 / 14:"05-APR-1981 00:00:00"
- 15 / 15:"14-JUL-1981 00:00:00"
- 16 / 16:"22-OCT-1981 00:00:00"
- 17 / 17:"30-JAN-1982 00:00:00"
- 18 / 18:"10-MAY-1982 00:00:00"
- 19 / 19:"18-AUG-1982 00:00:00"
- 20 / 20:"26-NOV-1982 00:00:00"
-
-let xt = xcat_str(v, yr)
-list xt
- VARIABLE : XCAT_STR(V, YR)
- SUBSET : 2 by 10 points (X-T)
- 1 2
- 1 2
- 29000 / 1:"09-JUN-1980" "09-JUN-1980 00:00:00"
- 29100 / 2:"17-SEP-1980" "17-SEP-1980 00:00:00"
- 29200 / 3:"26-DEC-1980" "26-DEC-1980 00:00:00"
- 29300 / 4:"05-APR-1981" "05-APR-1981 00:00:00"
- 29400 / 5:"14-JUL-1981" "14-JUL-1981 00:00:00"
- 29500 / 6:"22-OCT-1981" "22-OCT-1981 00:00:00"
- 29600 / 7:"30-JAN-1982" "30-JAN-1982 00:00:00"
- 29700 / 8:"10-MAY-1982" "10-MAY-1982 00:00:00"
- 29800 / 9:"18-AUG-1982" "18-AUG-1982 00:00:00"
- 29900 / 10:"26-NOV-1982" "26-NOV-1982 00:00:00"
-
-
-GO bn_reset
-cancel mode verify
-GO err61_contour_subspan_reps
-! err61_contour_subspan_reps.jnl
-! Bug 1659.
-!
-!
-! CONTOUR (or FILL) doesn't work properly with a subspan modulo axis,
-! unlike SHADE. And we get different CONTOUR results if the subspan modulo
-! axis coordinates are supplied on the positive vs. the negative modulo branch.
-
-use coads_climatology
-let a = sst[x=120:284,y=-2:2 at ave]
-save/clob/file=a.nc a
-
-can var a
-use a
-set reg/x=125e:70w
-shade/x=-360:360 a
-fill/ov/pal=greyscale/x=-360:360 a
-cont/ov/x=-360:360 a
-
-! Now region in negative x
-
-can dat/all; can var/all
-
-use coads_climatology
-let b = sst[x=-240:-76,y=-2:2 at ave]
-save/clob/file=b.nc b
-
-can var b
-use b
-set reg/x=125e:70w
-shade/x=-360:360 b
-fill/ov/pal=greyscale/x=-360:360 b
-cont/ov/x=-360:360 b
-
-
-! ******** V6.14 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn_mode_nodata_lab
-! bn_mode_nodata_lab
-! turns off the No Valid Data label on plots
-! (for line plots this is added to the plot label,
-! if the mode is SET).
-
-SHOW MODE nodata_lab
- MODE STATE ARGUMENT
- NODATA_LAB SET
-
-use coads_climatology
-let uwnd = sst
-let vwnd = -1*sst
-
-plot/y=50/x=70e:110e/L=1 sst
-shade/y=40:50/x=70e:110e/L=1 sst
-vec/y=40:50/x=70e:110e/L=1 uwnd,vwnd
-contour/y=40:50/x=70e:110e/L=1 vwnd
-contour/fill/y=40:50/x=70e:110e/L=1 vwnd
-
-can mode nodata_lab
-plot/y=50/x=70e:110e/L=1 sst
-shade/y=40:50/x=70e:110e/L=1 sst
-vec/y=40:50/x=70e:110e/L=1 uwnd,vwnd
-contour/y=40:50/x=70e:110e/L=1 vwnd
-contour/fill/y=40:50/x=70e:110e/L=1 vwnd
-
-set mode/last nodata_lab
-
-
-GO bn_reset
-cancel mode verify
-GO bn_proleptic_gregorian_calendar
-! proleptic_gregorian_calendar.jnl
-! Allow PROLEPTIC_GREGORIAN as a calendar attribute
-! for the default Ferret calendar.
-
-set data proleptic_gregorian.nc
-show data
- currently SET data sets:
- 1> ./proleptic_gregorian.nc (default)
- name title I J K L M N
- MY_DATA SIN(L[GT=TDAYS]) ... ... ... 1:32 ... ...
-
-show axis tdays
- name axis # pts start end
- TDAYS TIME 733 r 01-JAN-1988 00:00 01-JAN-1990 00:00
-T0 = 15-JAN-1901
-CALENDAR = ALL_LEAP
- Axis span (to cell edges) = 733
-
-GO bn_reset
-cancel mode verify
-GO bn_string_ngd_nbd
-! @NGD and @NBD for strings
-! Bad data is taken to be the null string
-! Compare with results for numeric data
-! *ACM 11/2008
-
-let a = {"a","b",,"cd"}
-list a[i=@ngd]
- VARIABLE : {"a","b",,"cd"} (# of points)
- X : 0.5 to 4.5 (number of valid)
- 3.000000
-
-let a = {"a","b",,"c",,"d",,,"e","f","g","h"}
-let b = { 3, 3 ,, 3 ,, 3 ,,, 3, 3, 3, 3}
-list a[i=@nbd]
- VARIABLE : {"a","b",,"c",,"d",,,"e","f","g","h"} (# of points)
- X : 0.5 to 12.5 (number flagged bad)
- 4.000000
-list b[i=@nbd]
- VARIABLE : { 3, 3 ,, 3 ,, 3 ,,, 3, 3, 3, 3} (# of points)
- X : 0.5 to 12.5 (number flagged bad)
- 4.000000
-
-define axis/x=1:3:1 xax
-define axis/y=1:4:1 yax
-let v = x[gx=xax] + y[gy=yax]
-
-let av = reshape (a,v)
-let bv = reshape (b,v)
-list av[i=@ngd]
- VARIABLE : RESHAPE (A,V) (# of points)
- SUBSET : 4 points (Y)
- X : 0.5 to 3.5 (number of valid)
- 1 / 1: 2.000000
- 2 / 2: 2.000000
- 3 / 3: 1.000000
- 4 / 4: 3.000000
-list bv[i=@ngd]
- VARIABLE : RESHAPE (B,V) (# of points)
- SUBSET : 4 points (Y)
- X : 0.5 to 3.5 (number of valid)
- 1 / 1: 2.000000
- 2 / 2: 2.000000
- 3 / 3: 1.000000
- 4 / 4: 3.000000
-list av[j=@ngd]
- VARIABLE : RESHAPE (A,V) (# of points)
- SUBSET : 3 points (X)
- Y : 0.5 to 4.5 (number of valid)
- 1 / 1: 3.000000
- 2 / 2: 2.000000
- 3 / 3: 3.000000
-list bv[j=@ngd]
- VARIABLE : RESHAPE (B,V) (# of points)
- SUBSET : 3 points (X)
- Y : 0.5 to 4.5 (number of valid)
- 1 / 1: 3.000000
- 2 / 2: 2.000000
- 3 / 3: 3.000000
-list av[i=@ngd,j=@ngd]
- VARIABLE : RESHAPE (A,V)
- X : 0.5 to 3.5 (XY # valid)
- Y : 0.5 to 4.5 (XY # valid)
- 8.000000
-list bv[i=@ngd,j=@ngd]
- VARIABLE : RESHAPE (B,V)
- X : 0.5 to 3.5 (XY # valid)
- Y : 0.5 to 4.5 (XY # valid)
- 8.000000
-
-
-define axis/x=1:3:1 xax
-define axis/z=1:4:1 zax
-let v = x[gx=xax] + z[gz=zax]
-
-let av = reshape (a,v)
-list av[i=@nbd]
- VARIABLE : RESHAPE (A,V) (# of points)
- SUBSET : 4 points (Z)
- X : 0.5 to 3.5 (number flagged bad)
- 1 / 1: 1.000000
- 2 / 2: 1.000000
- 3 / 3: 2.000000
- 4 / 4: 0.000000
-list bv[i=@nbd]
- VARIABLE : RESHAPE (B,V) (# of points)
- SUBSET : 4 points (Z)
- X : 0.5 to 3.5 (number flagged bad)
- 1 / 1: 1.000000
- 2 / 2: 1.000000
- 3 / 3: 2.000000
- 4 / 4: 0.000000
-list av[k=@nbd]
- VARIABLE : RESHAPE (A,V) (# of points)
- SUBSET : 3 points (X)
- Z : 0.5 to 4.5 (number flagged bad)
- 1 / 1: 1.000000
- 2 / 2: 2.000000
- 3 / 3: 1.000000
-list bv[k=@nbd]
- VARIABLE : RESHAPE (B,V) (# of points)
- SUBSET : 3 points (X)
- Z : 0.5 to 4.5 (number flagged bad)
- 1 / 1: 1.000000
- 2 / 2: 2.000000
- 3 / 3: 1.000000
-list av[i=@nbd,k=@nbd]
- VARIABLE : RESHAPE (A,V)
- X : 0.5 to 3.5 (XZ # bad)
- Z : 0.5 to 4.5 (XZ # bad)
- 4.000000
-list bv[i=@nbd,k=@nbd]
- VARIABLE : RESHAPE (B,V)
- X : 0.5 to 3.5 (XZ # bad)
- Z : 0.5 to 4.5 (XZ # bad)
- 4.000000
-
-define axis/x=1:3:1 xax
-define axis/t=1:4:1 tax
-let v = x[gx=xax] + t[gt=tax]
-
-let av = reshape (a,v)
-list av[i=@ngd]
- VARIABLE : RESHAPE (A,V) (# of points)
- SUBSET : 4 points (T)
- X : 0.5 to 3.5 (number of valid)
- 1 / 1: 2.000000
- 2 / 2: 2.000000
- 3 / 3: 1.000000
- 4 / 4: 3.000000
-list bv[i=@ngd]
- VARIABLE : RESHAPE (B,V) (# of points)
- SUBSET : 4 points (T)
- X : 0.5 to 3.5 (number of valid)
- 1 / 1: 2.000000
- 2 / 2: 2.000000
- 3 / 3: 1.000000
- 4 / 4: 3.000000
-list av[L=@ngd]
- VARIABLE : RESHAPE (A,V) (# of points)
- SUBSET : 3 points (X)
- T : 0.5 to 4.5 (number of valid)
- 1 / 1: 3.000000
- 2 / 2: 2.000000
- 3 / 3: 3.000000
-list bv[L=@ngd]
- VARIABLE : RESHAPE (B,V) (# of points)
- SUBSET : 3 points (X)
- T : 0.5 to 4.5 (number of valid)
- 1 / 1: 3.000000
- 2 / 2: 2.000000
- 3 / 3: 3.000000
-list av[i=@ngd,L=@ngd]
- VARIABLE : RESHAPE (A,V)
- X : 0.5 to 3.5 (XT # valid)
- T : 0.5 to 4.5 (XT # valid)
- 8.000000
-list bv[i=@ngd,L=@ngd]
- VARIABLE : RESHAPE (B,V)
- X : 0.5 to 3.5 (XT # valid)
- T : 0.5 to 4.5 (XT # valid)
- 8.000000
-
-!4D variable
-let a = {"a","b",,"c",,"d",,,"e","f","g","h","ab","bb",,"cb",,"db",,,"eb","fb","gb","hb"}
-let b = {3,3,,3,,3,,,3,3,3,3,3,3,,3,,3,,,3,3,3,3}
-
-define axis/x=1:2:1 xax
-define axis/y=1:2:1 yax
-define axis/z=1:3:1 zax
-define axis/t=1:2:1 tax
-let v = x[gx=xax] + y[gy=yax] + z[gz=zax] + t[gt=tax]
-
-let av = reshape (a,v)
-list av[i=@nbd]
- VARIABLE : RESHAPE (A,V) (# of points)
- SUBSET : 2 by 3 by 2 points (Y-Z-T)
- X : 0.5 to 2.5 (number flagged bad)
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 0.000000 1.000000
- 2 / 2: 1.000000 2.000000
- 3 / 3: 0.000000 0.000000
- ---- L:2 T: 2
- 1 / 1: 0.000000 1.000000
- 2 / 2: 1.000000 2.000000
- 3 / 3: 0.000000 0.000000
-list bv[i=@nbd]
- VARIABLE : RESHAPE (B,V) (# of points)
- SUBSET : 2 by 3 by 2 points (Y-Z-T)
- X : 0.5 to 2.5 (number flagged bad)
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 0.000000 1.000000
- 2 / 2: 1.000000 2.000000
- 3 / 3: 0.000000 0.000000
- ---- L:2 T: 2
- 1 / 1: 0.000000 1.000000
- 2 / 2: 1.000000 2.000000
- 3 / 3: 0.000000 0.000000
-list av[j=@nbd]
- VARIABLE : RESHAPE (A,V) (# of points)
- SUBSET : 2 by 3 by 2 points (X-Z-T)
- Y : 0.5 to 2.5 (number flagged bad)
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 1.000000 0.000000
- 2 / 2: 2.000000 1.000000
- 3 / 3: 0.000000 0.000000
- ---- L:2 T: 2
- 1 / 1: 1.000000 0.000000
- 2 / 2: 2.000000 1.000000
- 3 / 3: 0.000000 0.000000
-list bv[j=@nbd]
- VARIABLE : RESHAPE (B,V) (# of points)
- SUBSET : 2 by 3 by 2 points (X-Z-T)
- Y : 0.5 to 2.5 (number flagged bad)
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 1.000000 0.000000
- 2 / 2: 2.000000 1.000000
- 3 / 3: 0.000000 0.000000
- ---- L:2 T: 2
- 1 / 1: 1.000000 0.000000
- 2 / 2: 2.000000 1.000000
- 3 / 3: 0.000000 0.000000
-list av[k=@ngd]
- VARIABLE : RESHAPE (A,V) (# of points)
- SUBSET : 2 by 2 by 2 points (X-Y-T)
- Z : 0.5 to 3.5 (number of valid)
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 2.000000 3.000000
- 2 / 2: 1.000000 2.000000
- ---- L:2 T: 2
- 1 / 1: 2.000000 3.000000
- 2 / 2: 1.000000 2.000000
-list bv[k=@ngd]
- VARIABLE : RESHAPE (B,V) (# of points)
- SUBSET : 2 by 2 by 2 points (X-Y-T)
- Z : 0.5 to 3.5 (number of valid)
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 2.000000 3.000000
- 2 / 2: 1.000000 2.000000
- ---- L:2 T: 2
- 1 / 1: 2.000000 3.000000
- 2 / 2: 1.000000 2.000000
-list av[L=@ngd]
- VARIABLE : RESHAPE (A,V) (# of points)
- SUBSET : 2 by 2 by 3 points (X-Y-Z)
- T : 0.5 to 2.5 (number of valid)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 2.000000 2.000000
- 2 / 2: 0.000000 2.000000
- ---- K:2 Z: 2
- 1 / 1: 0.000000 2.000000
- 2 / 2: 0.000000 0.000000
- ---- K:3 Z: 3
- 1 / 1: 2.000000 2.000000
- 2 / 2: 2.000000 2.000000
-list bv[L=@ngd]
- VARIABLE : RESHAPE (B,V) (# of points)
- SUBSET : 2 by 2 by 3 points (X-Y-Z)
- T : 0.5 to 2.5 (number of valid)
- 1 2
- 1 2
- ---- K:1 Z: 1
- 1 / 1: 2.000000 2.000000
- 2 / 2: 0.000000 2.000000
- ---- K:2 Z: 2
- 1 / 1: 0.000000 2.000000
- 2 / 2: 0.000000 0.000000
- ---- K:3 Z: 3
- 1 / 1: 2.000000 2.000000
- 2 / 2: 2.000000 2.000000
-
-list av[i=@nbd,j=@nbd,k=@nbd]
- VARIABLE : RESHAPE (A,V)
- SUBSET : 2 points (T)
- X : 0.5 to 2.5 (XYZ # bad)
- Y : 0.5 to 2.5 (XYZ # bad)
- Z : 0.5 to 3.5 (XYZ # bad)
- 1 / 1: 4.000000
- 2 / 2: 4.000000
-list bv[i=@nbd,j=@nbd,k=@nbd]
- VARIABLE : RESHAPE (B,V)
- SUBSET : 2 points (T)
- X : 0.5 to 2.5 (XYZ # bad)
- Y : 0.5 to 2.5 (XYZ # bad)
- Z : 0.5 to 3.5 (XYZ # bad)
- 1 / 1: 4.000000
- 2 / 2: 4.000000
-
-list bv[i=@ngd,j=@ngd,k=@ngd,L=@ngd]
- VARIABLE : RESHAPE (B,V)
- X : 0.5 to 2.5 (XYZT # valid)
- Y : 0.5 to 2.5 (XYZT # valid)
- Z : 0.5 to 3.5 (XYZT # valid)
- T : 0.5 to 2.5 (XYZT # valid)
- 16.00000
-list av[i=@ngd,j=@ngd,k=@ngd,L=@ngd]
- VARIABLE : RESHAPE (A,V)
- X : 0.5 to 2.5 (XYZT # valid)
- Y : 0.5 to 2.5 (XYZT # valid)
- Z : 0.5 to 3.5 (XYZT # valid)
- T : 0.5 to 2.5 (XYZT # valid)
- 16.00000
-
-GO bn_reset
-cancel mode verify
-GO bn_cat_string
-! bn_cat_string.jnl
-! Test concatenation functions for string variables
-! ACM nov 08 See bug 1577
-
-let a = xsequence({"Q", "R", "S"})
-let b = xsequence({"U", "V", "W"})
-list xcat(a,b)
- VARIABLE : XCAT(A,B)
- SUBSET : 6 points (X)
- 1 / 1:"Q"
- 2 / 2:"R"
- 3 / 3:"S"
- 4 / 4:"U"
- 5 / 5:"V"
- 6 / 6:"W"
-
-! (when xcat is called, and its args are strings,
-! Ferret actually runs xcat_string)
-let a = xsequence({"Q", "R", "S"})
-let b = xsequence({"U", "V", "W"})
-list xcat_str(a,b)
- VARIABLE : XCAT_STR(A,B)
- SUBSET : 6 points (X)
- 1 / 1:"Q"
- 2 / 2:"R"
- 3 / 3:"S"
- 4 / 4:"U"
- 5 / 5:"V"
- 6 / 6:"W"
-
-let a = ysequence({"Q", "R", "S"})
-let b = ysequence({"U", "V", "W"})
-list ycat(a,b)
- VARIABLE : YCAT(A,B)
- SUBSET : 6 points (Y)
- 1 / 1:"Q"
- 2 / 2:"R"
- 3 / 3:"S"
- 4 / 4:"U"
- 5 / 5:"V"
- 6 / 6:"W"
-
-let a = zsequence({"Q", "R", "S"})
-let b = zsequence({"U", "V", "W"})
-list zcat(a,b)
- VARIABLE : ZCAT(A,B)
- SUBSET : 6 points (Z)
- 1 / 1:"Q"
- 2 / 2:"R"
- 3 / 3:"S"
- 4 / 4:"U"
- 5 / 5:"V"
- 6 / 6:"W"
-
-let a = tsequence({"Q", "R", "S"})
-let b = tsequence({"U", "V", "W"})
-list tcat(a,b)
- VARIABLE : TCAT(A,B)
- SUBSET : 6 points (T)
- 1 / 1:"Q"
- 2 / 2:"R"
- 3 / 3:"S"
- 4 / 4:"U"
- 5 / 5:"V"
- 6 / 6:"W"
-
-GO bn_reset
-cancel mode verify
-GO bn_sort_strings
-! bn_sort_strings.jnl
-! 11/08 acm
-
-! show func/detail now shows the alternative function for
-! other arg types, if it exists.
-
-SHOW FUNC/DETAIL sorti
-SORTI(DAT)
- Returns indices of data, sorted on the I axis in increasing order
- Axes of result:
- X: ABSTRACT (result will occupy indices 1...N)
- Y: inherited from argument(s)
- Z: inherited from argument(s)
- T: inherited from argument(s)
- E: inherited from argument(s)
- F: inherited from argument(s)
- DAT: variable to sort in I
- Influence on output axes:
- X: no influence (indicate argument limits with "[]")
- Y: passed to result grid
- Z: passed to result grid
- T: passed to result grid
- E: passed to result grid
- F: passed to result grid
- Alternative function called for other argument types: SORTI_STR
-
-
-let ai = {"a rat in the house will eat the zucchini", \
- "a rat in the house will eat the ice cream", \
- "ze rats in the house will eat the ice cream",\
- "A rat in the house will eat the ICE CREAM" }
-
-let bi = {"AB", "C", "", "aa", "abc", ,"0"}
-
-let indx_ai = SORTI_STR(ai)
-list indx_ai, samplei(ai,indx_ai)
- X: 0.5 to 4.5
- Column 1: INDX_AI is SORTI_STR(AI)
- Column 2: EX#2 is SAMPLEI(AI,INDX_AI)
- INDX_AI EX#2
-1 / 1: 4.000000 "A rat in the house will eat the ICE CREAM"
-2 / 2: 2.000000 "a rat in the house will eat the ice cream"
-3 / 3: 1.000000 "a rat in the house will eat the zucchini"
-4 / 4: 3.000000 "ze rats in the house will eat the ice cream"
-
-let indx_bi = SORTI_STR(bi)
-list indx_bi, samplei(bi,indx_bi)
- X: 0.5 to 7.5
- Column 1: INDX_BI is SORTI_STR(BI)
- Column 2: EX#2 is SAMPLEI(BI,INDX_BI)
- INDX_BI EX#2
-1 / 1: 7.000000 "0"
-2 / 2: 1.000000 "AB"
-3 / 3: 2.000000 "C"
-4 / 4: 4.000000 "aa"
-5 / 5: 5.000000 "abc"
-6 / 6: .... ""
-7 / 7: .... ""
-
-! Calling via SORTI
-let indx_ai = SORTI(ai)
-list indx_ai, samplei(ai,indx_ai)
- X: 0.5 to 4.5
- Column 1: INDX_AI is SORTI(AI)
- Column 2: EX#2 is SAMPLEI(AI,INDX_AI)
- INDX_AI EX#2
-1 / 1: 4.000000 "A rat in the house will eat the ICE CREAM"
-2 / 2: 2.000000 "a rat in the house will eat the ice cream"
-3 / 3: 1.000000 "a rat in the house will eat the zucchini"
-4 / 4: 3.000000 "ze rats in the house will eat the ice cream"
-
-let indx_bi = SORTI(bi)
-list indx_bi, samplei(bi,indx_bi)
- X: 0.5 to 7.5
- Column 1: INDX_BI is SORTI(BI)
- Column 2: EX#2 is SAMPLEI(BI,INDX_BI)
- INDX_BI EX#2
-1 / 1: 7.000000 "0"
-2 / 2: 1.000000 "AB"
-3 / 3: 2.000000 "C"
-4 / 4: 4.000000 "aa"
-5 / 5: 5.000000 "abc"
-6 / 6: .... ""
-7 / 7: .... ""
-
-
-! SORTJ
-let aj = ysequence(ai)
-let bj = ysequence(bi)
-
-let indx_aj = SORTJ(aj)
-list indx_aj, samplej(aj,indx_aj)
- Y: 0.5 to 4.5
- Column 1: INDX_AJ is SORTJ(AJ)
- Column 2: EX#2 is SAMPLEJ(AJ,INDX_AJ)
- INDX_AJ EX#2
-1 / 1: 4.000000 "A rat in the house will eat the ICE CREAM"
-2 / 2: 2.000000 "a rat in the house will eat the ice cream"
-3 / 3: 1.000000 "a rat in the house will eat the zucchini"
-4 / 4: 3.000000 "ze rats in the house will eat the ice cream"
-
-let indx_bj = SORTJ(bj)
-list indx_bj, samplej(bj,indx_bj)
- Y: 0.5 to 7.5
- Column 1: INDX_BJ is SORTJ(BJ)
- Column 2: EX#2 is SAMPLEJ(BJ,INDX_BJ)
- INDX_BJ EX#2
-1 / 1: 7.000000 "0"
-2 / 2: 1.000000 "AB"
-3 / 3: 2.000000 "C"
-4 / 4: 4.000000 "aa"
-5 / 5: 5.000000 "abc"
-6 / 6: .... ""
-7 / 7: .... ""
-
-
-! SORTK
-let ak = zsequence(ai)
-let bk = zsequence(bi)
-
-let indx_ak = SORTK(ak)
-list indx_ak, samplek(ak,indx_ak)
- Z: 0.5 to 4.5
- Column 1: INDX_AK is SORTK(AK)
- Column 2: EX#2 is SAMPLEK(AK,INDX_AK)
- INDX_AK EX#2
-1 / 1: 4.000000 "A rat in the house will eat the ICE CREAM"
-2 / 2: 2.000000 "a rat in the house will eat the ice cream"
-3 / 3: 1.000000 "a rat in the house will eat the zucchini"
-4 / 4: 3.000000 "ze rats in the house will eat the ice cream"
-
-let indx_bk = SORTK(bk)
-list indx_bk, samplek(bk,indx_bk)
- Z: 0.5 to 7.5
- Column 1: INDX_BK is SORTK(BK)
- Column 2: EX#2 is SAMPLEK(BK,INDX_BK)
- INDX_BK EX#2
-1 / 1: 7.000000 "0"
-2 / 2: 1.000000 "AB"
-3 / 3: 2.000000 "C"
-4 / 4: 4.000000 "aa"
-5 / 5: 5.000000 "abc"
-6 / 6: .... ""
-7 / 7: .... ""
-
-
-! SORTL
-let al = tsequence(ai)
-let bl = tsequence(bi)
-
-let indx_al = SORTL(al)
-list indx_al, samplel(al,indx_al)
- T: 0.5 to 4.5
- Column 1: INDX_AL is SORTL(AL)
- Column 2: EX#2 is SAMPLEL(AL,INDX_AL)
- INDX_AL EX#2
-1 / 1: 4.000000 "A rat in the house will eat the ICE CREAM"
-2 / 2: 2.000000 "a rat in the house will eat the ice cream"
-3 / 3: 1.000000 "a rat in the house will eat the zucchini"
-4 / 4: 3.000000 "ze rats in the house will eat the ice cream"
-
-let indx_bl = SORTL(bl)
-list indx_bl, samplel(bl,indx_bl)
- T: 0.5 to 7.5
- Column 1: INDX_BL is SORTL(BL)
- Column 2: EX#2 is SAMPLEL(BL,INDX_BL)
- INDX_BL EX#2
-1 / 1: 7.000000 "0"
-2 / 2: 1.000000 "AB"
-3 / 3: 2.000000 "C"
-4 / 4: 4.000000 "aa"
-5 / 5: 5.000000 "abc"
-6 / 6: .... ""
-7 / 7: .... ""
-
-
-GO bn_reset
-cancel mode verify
-GO bn_samplexyt
-! bn_samplexyt.jnl
-! 1/2009
-
-! Check the SAMPLEXYT function, should give missing results for T sample points
-! that lie beyond the ends of the T axis of the grid being sampled
-
-define axis/x=0:360:180/units=longitude/edges/modulo x1
-define axis/y=-90:90:45/units=latitude/edges y1
-define axis/t0=1-jan-1990/t=1-jan-1991:31-dec-1991:1/units=days/edges t1
-define grid/x=x1/y=y1/t=t1 g1
-
-let my_data = 0*x[g=g1]+y[g=g1]+t[g=g1]
-
-DEFINE AXIS/T0=1-JAN-1990/T=1-JAN-1990:31-DEC-1992:40/UNITS=DAYS/EDGES TSAMPLES
-LET TPTS = XSEQUENCE(T[GT=TSAMPLES])
-LET YPTS = XSEQUENCE((RANDU(TPTS)-0.5)*90)
-LET XPTS = 180 + 0*YPTS
-LET sampl_pts = SAMPLEXYT(my_data,xpts,ypts,tpts)
-
-! NOTE THAT THE SAMPLEXYT SHOULD FLAG POINTS BEFORE THE START OF THE TIME INTERVAL
-! AND ALOS THOSE THAT LIE ABOVE THE END OF THE TIME INTERVAL
-
-! CHECK THE RESULTS WITH A LISTING
-list ypts, tpts, sampl_pts
- X: 0.5 to 28.5
- Column 1: YPTS is XSEQUENCE((RANDU(TPTS)-0.5)*90)
- Column 2: TPTS is XSEQUENCE(T[GT=TSAMPLES])
- Column 3: SAMPL_PTS is SAMPLEXYT(MY_DATA,XPTS,YPTS,TPTS)
- YPTS TPTS SAMPL_PTS
-1 / 1: 20.53799 20.000 ....
-2 / 2: -29.07481 60.000 ....
-3 / 3: 26.64251 100.000 ....
-4 / 4: -28.97490 140.000 ....
-5 / 5: -17.10210 180.000 ....
-6 / 6: -8.79040 220.000 ....
-7 / 7: -26.48790 260.000 ....
-8 / 8: -9.00391 300.000 ....
-9 / 9: -19.19385 340.000 ....
-10 / 10: -19.84003 380.000 360.6600
-11 / 11: -44.10992 420.000 376.3901
-12 / 12: 34.07387 460.000 494.5739
-13 / 13: 34.62830 500.000 535.1283
-14 / 14: -6.59559 540.000 533.9044
-15 / 15: -39.01164 580.000 541.4884
-16 / 16: -25.63370 620.000 594.8663
-17 / 17: -22.96677 660.000 637.5332
-18 / 18: -30.90969 700.000 669.5903
-19 / 19: -22.52078 740.000 ....
-20 / 20: -20.65415 780.000 ....
-21 / 21: -41.65880 820.000 ....
-22 / 22: 39.13533 860.000 ....
-23 / 23: 22.88071 900.000 ....
-24 / 24: -41.03287 940.000 ....
-25 / 25: 33.34976 980.000 ....
-26 / 26: 22.53505 1020.000 ....
-27 / 27: 13.97536 1060.000 ....
-28 / 28: 21.99063 1100.000 ....
-
-! AND HERE WE SHOW IT GRAPHICALLY
-cancel mode calendar
-set view upper
-shade/hlim=20:1100 my_data[x=180]
-
-set view lower
-plot/vs/xlim=20:1100/ylim=0:1000 tpts, 0*MISSING(sampl_pts,0) + 500
-plot/vs/color=red/over tpts, sampl_pts
-
-
-set mode calendar
-
-GO bn_reset
-cancel mode verify
-GO bn_last_go_file.jnl
-! bn_last_go_file.jnl
-! test the automatically-defined symbol LAST_GO_FILE
-
-show sym last_go_file
-LAST_GO_FILE = "./bn_last_go_file.jnl"
-
-
-GO bn_reset
-cancel mode verify
-GO bn_cancel_upcase_uservar.jnl
-! bn_cancel_upcase_uservar.jnl
-!
-! Ferret v6.2
-! MODE upcase_only cancelled, now writes lowercase
-! spelling for user-defined variables and for coordinate
-! variables even coming from two different datasets.
-
-CANCEL MODE upcase
-
-! User variable with lowercase letters in the name
-
-DEFINE AXIS/t=1-jan-1999:31-jan-1999:1/units=days/t0=31-dec-1998 tday
-LET MyUpperLowerCaseVar = x[x=1:10] + t[gt=tday]
-save/file=a.nc/clobber MyUpperLowerCaseVar
-
-! Open two datafiles. These have variable and axis
-! names in lowercase.
-
-USE a1478.nc
-USE a_cartesian_bug1179.nc
-
-! Define an output variable with some axes from each dataset.
-LET/D=2 zvar = z[gz=temp[d=2]]
-LET newvar = 0*zvar[d=2] + olr[d=1]
-SET ATT/LIKE=olr[d=1] newvar
-SET ATT/OUTPUT=all newvar
-
-SAVE/APPEND/FILE=a.nc newvar
-SP ncdump -h a.nc >> all_ncdump.out
-
-SET MODE/LAST upcase_output
-
-GO bn_reset
-cancel mode verify
-GO bn_cdf_keepax.jnl
-! bn320_cdf
-! benchmark to test netCDF input and output
-! This is the same as bn_cdf with /KEEP_AXNAMES added to SAVE commands.
-
-! test many simultaneous netCDF files
-GO bn_cdf_keepax.sub1
-! bn230_cdf.sub1
-! benchmark to test multiple netCDF simultaneous accesses
-! requires version 2.30 or later
-! 6/92
-
-! V5 *sh* 7/99 -- clean up files before writing
-
-cancel region
-canc var/all
-cancel data/all
-
-! delete old ones
-sp rm -f test0[a-p].cdf
-
-! write a bunch of em
-list/format=cdf/keep_axnames/append/l=1:500/file=test0a.cdf l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0b.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0c.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0d.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0e.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0f.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0g.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0h.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0i.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0j.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0k.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0l.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0m.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0n.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0o.cdf/rigid l
-list/format=cdf/keep_axnames/append/l=1:500/file=test0p.cdf/rigid l
-
-! initialize all at once
-set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test0h, test0i, test0j, test0k, test0l, test0n, test0m, test0o, test0p
-show data 1
- currently SET data sets:
- 1> ./test0a.cdf
- name title I J K L M N
- L_ L ... ... ... 1:500 ... ...
- (axis ABSTRACT)
-
-show data/br
- currently SET data sets:
- 1> ./test0a.cdf
- 2> ./test0b.cdf
- 3> ./test0c.cdf
- 4> ./test0d.cdf
- 5> ./test0e.cdf
- 6> ./test0f.cdf
- 7> ./test0g.cdf
- 8> ./test0h.cdf
- 9> ./test0i.cdf
- 10> ./test0j.cdf
- 11> ./test0k.cdf
- 12> ./test0l.cdf
- 13> ./test0n.cdf
- 14> ./test0m.cdf
- 15> ./test0o.cdf
- 16> ./test0p.cdf (default)
-
-! test access to one
-stat l_[d=1]
-
- L
- axis ABSTRACT
- X: N/A
- Y: N/A
- Z: N/A
- T: 0.5 to 501
- E: N/A
- F: N/A
- DATA SET: ./test0a.cdf
-
- Total # of data points: 500 (1*1*1*500*1*1)
- # flagged as bad data: 0
- Minimum value: 1
- Maximum value: 500
- Mean value: 250.5 (unweighted average)
- Standard deviation: 144.48
-
-! test access to all
-stat l_[d=1]-l_[d=2]+l_[d=3]-l_[d=4]+l_[d=5]-l_[d=6]+l_[d=7]-l_[d=8]+l_[d=9]-l_[d=10]+l_[d=11]-l_[d=12]+l_[d=13]-l_[d=14]+l_[d=15]-l_[d=16]
-
- L_[D=test0a]-L_[D=test0b]+L_[D=test0c]-L_[D=test0d]+L_[D=test0e]-L_[D=test0f]+L_[D=test0g]-L_[D=test0h]+L_[D=test0i]-L_[D=test0j]+L_[D=test0k]-L_[D=test0l]+L_[D=test0n]-L_[D=test0m
- X: N/A
- Y: N/A
- Z: N/A
- T: 0.5 to 501
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 500 (1*1*1*500*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-cancel data/all
-
-! test abstract variable io
-GO bn_cdf_keepax.sub2
-! bn230_cdf.sub2
-! benchmark to test abstract variable netCDF input and output
-! requires version 2.30 or later
-! 6/92
-
-! V5 *sh* 7/99 added /CLOBBER
-
-cancel region
-canc var/all
-cancel data/all
-
-! define a realistic time series grid
-define axis/t="1-jan-1902":"1-jan-2010":1/unit=day tcentury
-define grid/like=abstract/t=tcentury gcentury
-let tlong = t[g=gcentury]
-
-let i1 = i
-let j1 = j
-let k1 = k
-let l1 = l[g=gcentury]
-let l2 = l
-let ij = i+j
-let ik = i+k
-let il = i+l1
-let jk = j+k
-let jl = j+l1
-let kl = k+l1
-let ijk = i+j+k
-let ikl = i+k+l1
-let ijl = i+j+l1
-let jkl = j+k+l1
-let ijkl = i+j+k+l1
-let ijk2 = i+j+k
-let ikl2 = i+k+l1
-let ijl2 = i+j+l1
-let jkl2 = j+k+l1
-let iavejkl = ijkl[i=@ave]
-let ijavekl = ijkl[j=@ave]
-let ijkavel = ijkl[k=@ave]
-let ijklave = ijkl[l=@ave]
-
-! a bunch of basic geometries
-! 1d
-list/format=cdf/keep_axnames/i=1:10/clobber/file=test_abs.cdf i1 ! not /APPEND - must be new
-list/format=cdf/keep_axnames/j=1:20/append/file=test_abs.cdf j1
-list/format=cdf/keep_axnames/k=1:100/append/file=test_abs.cdf k1
-list/format=cdf/keep_axnames/l=1:10/append/file=test_abs.cdf l1 ! record axis
-list/format=cdf/keep_axnames/l=1:10/append/file=test_abs.cdf l2 ! rigid axis
-
-! 2D
-list/format=cdf/keep_axnames/i=1:10/j=1:20/append/file=test_abs.cdf ij
-list/format=cdf/keep_axnames/i=1:10/k=1:100/append/file=test_abs.cdf ik
-list/format=cdf/keep_axnames/i=1:10/l=5:10/append/file=test_abs.cdf il
-list/format=cdf/keep_axnames/k=1:100/j=1:20/append/file=test_abs.cdf jk
-
-!3D
-set region/i=1:10/j=1:20/k=1:100/l=4:8
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijk
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ikl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf jkl
-
-!4D
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl
-
-! extend along time axis and write sub-regions
-! (note: this may leave undefined regions in other variables)
-list/format=cdf/keep_axnames/append/file=test_abs.cdf/i=1:5 /j=1:5 /l=11:12 ijl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf/i=6:10/j=1:5 /l=11:12 ijl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf/i=1:5 /j=6:10/l=11:12 ijl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf/i=6:10/j=6:10/l=11:12 ijl
-
-! rewrite a sub-region in the middle of the data
-list/format=cdf/keep_axnames/append/file=test_abs.cdf/i=6:8/j=6:8/l=8:10/k=3:5 ijkl
-
-! check documentation of transforms
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijk2[i=@ave]
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ikl2[i=@ave,k=@sbx:3]
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijl2[i=@ave,j=@ave]
-list/format=cdf/keep_axnames/append/file=test_abs.cdf jkl2[k=@ave,l=@ave]
-list/format=cdf/keep_axnames/append/file=test_abs.cdf iavejkl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijavekl
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkavel
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijklave
-
-! look at what we've created - time axis should be regular
-set data/format=cdf test_abs
-show data/full
- currently SET data sets:
- 1> ./test_abs.cdf (default)
-
- name title I J K L M N
- I1 I 1:10 ... ... ... ... ...
- on grid GEU1 with -1.E+34 for missing data
- X=0.5:10.5
- J1 J ... 1:20 ... ... ... ...
- on grid GEU2 with -1.E+34 for missing data
- Y=0.5:20.5
- K1 K ... ... 1:100 ... ... ...
- on grid GEU3 with -1.E+34 for missing data
- Z=0.5:100.5
- L1 L[G=GCENTURY] ... ... ... 1:12 ... ...
- on grid GEU4 with -1.E+34 for missing data
-
- L2 L ... ... ... 1:10 ... ...
- on grid GEU5 with -1.E+34 for missing data
-
- IJ I+J 1:10 1:20 ... ... ... ...
- on grid GEU6 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5
- IK I+K 1:10 ... 1:100 ... ... ...
- on grid GEU7 with -1.E+34 for missing data
- X=0.5:10.5 Z=0.5:100.5
- IL I+L1 1:10 ... ... 1:12 ... ...
- on grid GEU8 with -1.E+34 for missing data
- X=0.5:10.5
- JK J+K ... 1:20 1:100 ... ... ...
- on grid GEU9 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IJK I+J+K 1:10 1:20 1:100 ... ... ...
- on grid GEU10 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5 Z=0.5:100.5
- IKL I+K+L1 1:10 ... 1:100 1:12 ... ...
- on grid GEU11 with -1.E+34 for missing data
- X=0.5:10.5 Z=0.5:100.5
- IJL I+J+L1 1:10 1:20 ... 1:12 ... ...
- on grid GEU12 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5
- JKL J+K+L1 ... 1:20 1:100 1:12 ... ...
- on grid GEU13 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IJKL I+J+K+L1 1:10 1:20 1:100 1:12 ... ...
- on grid GEU14 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5 Z=0.5:100.5
- IJK2 I+J+K ... 1:20 1:100 ... ... ...
- (X=0.5:10.5 at AVE)
- on grid GEU9 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IKL2 I+K+L1 ... ... 1:100 1:12 ... ...
- (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
- on grid GEU15 with -1.E+34 for missing data
- Z=0.5:100.5
- IJL2 I+J+L1 ... ... ... 1:12 ... ...
- (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
- on grid GEU4 with -1.E+34 for missing data
-
- JKL2 J+K+L1 ... 1:20 ... ... ... ...
- (Z=0.5:100.5 at AV4, T=JAN-1902:JAN-1902 at AV4)
- on grid GEU2 with -1.E+34 for missing data
- Y=0.5:20.5
- IAVEJKL IJKL[I=@AVE] ... 1:20 1:100 1:12 ... ...
- (X=0.5:10.5)
- on grid GEU13 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IJAVEKL IJKL[J=@AVE] 1:10 ... 1:100 1:12 ... ...
- (Y=0.5:20.5)
- on grid GEU11 with -1.E+34 for missing data
- X=0.5:10.5 Z=0.5:100.5
- IJKAVEL IJKL[K=@AVE] 1:10 1:20 ... 1:12 ... ...
- (Z=0.5:100.5)
- on grid GEU12 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5
- IJKLAVE IJKL[L=@AVE] 1:10 1:20 1:100 ... ... ...
- (T=JAN-1902:JAN-1902)
- on grid GEU10 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5 Z=0.5:100.5
-
- time range: JAN-1902 to JAN-1902
-
-cancel variable ijkl
-show grid ijkl
- GRID GEU14
- name axis # pts start end
- XAX1 X 10 r 1 10
- YAX1 Y 20 r 1 20
- ZAX1 Z 100 r 1 100
- TCENTURY1 TIME 12 r 01-JAN-1902 00:00 12-JAN-1902 00:00
- normal E
- normal F
-cancel data test_abs
-
-! make the time axis irregular by leaving out l=13
-list/format=cdf/keep_axnames/l=14:16/append/file=test_abs.cdf l1
-set data/format=cdf test_abs
-show data/full
- currently SET data sets:
- 1> ./test_abs.cdf (default)
-
- name title I J K L M N
- I1 I 1:10 ... ... ... ... ...
- on grid GEU1 with -1.E+34 for missing data
- X=0.5:10.5
- J1 J ... 1:20 ... ... ... ...
- on grid GEU2 with -1.E+34 for missing data
- Y=0.5:20.5
- K1 K ... ... 1:100 ... ... ...
- on grid GEU3 with -1.E+34 for missing data
- Z=0.5:100.5
- L1 L[G=GCENTURY] ... ... ... 1:15 ... ...
- on grid GEU4 with -1.E+34 for missing data
-
- L2 L ... ... ... 1:10 ... ...
- on grid GEU5 with -1.E+34 for missing data
-
- IJ I+J 1:10 1:20 ... ... ... ...
- on grid GEU6 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5
- IK I+K 1:10 ... 1:100 ... ... ...
- on grid GEU7 with -1.E+34 for missing data
- X=0.5:10.5 Z=0.5:100.5
- IL I+L1 1:10 ... ... 1:15 ... ...
- on grid GEU8 with -1.E+34 for missing data
- X=0.5:10.5
- JK J+K ... 1:20 1:100 ... ... ...
- on grid GEU9 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IJK I+J+K 1:10 1:20 1:100 ... ... ...
- on grid GEU10 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5 Z=0.5:100.5
- IKL I+K+L1 1:10 ... 1:100 1:15 ... ...
- on grid GEU11 with -1.E+34 for missing data
- X=0.5:10.5 Z=0.5:100.5
- IJL I+J+L1 1:10 1:20 ... 1:15 ... ...
- on grid GEU12 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5
- JKL J+K+L1 ... 1:20 1:100 1:15 ... ...
- on grid GEU13 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IJKL I+J+K+L1 1:10 1:20 1:100 1:15 ... ...
- on grid GEU14 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5 Z=0.5:100.5
- IJK2 I+J+K ... 1:20 1:100 ... ... ...
- (X=0.5:10.5 at AVE)
- on grid GEU9 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IKL2 I+K+L1 ... ... 1:100 1:15 ... ...
- (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
- on grid GEU15 with -1.E+34 for missing data
- Z=0.5:100.5
- IJL2 I+J+L1 ... ... ... 1:15 ... ...
- (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
- on grid GEU4 with -1.E+34 for missing data
-
- JKL2 J+K+L1 ... 1:20 ... ... ... ...
- (Z=0.5:100.5 at AV4, T=JAN-1902:JAN-1902 at AV4)
- on grid GEU2 with -1.E+34 for missing data
- Y=0.5:20.5
- IAVEJKL IJKL[I=@AVE] ... 1:20 1:100 1:15 ... ...
- (X=0.5:10.5)
- on grid GEU13 with -1.E+34 for missing data
- Y=0.5:20.5 Z=0.5:100.5
- IJAVEKL IJKL[J=@AVE] 1:10 ... 1:100 1:15 ... ...
- (Y=0.5:20.5)
- on grid GEU11 with -1.E+34 for missing data
- X=0.5:10.5 Z=0.5:100.5
- IJKAVEL IJKL[K=@AVE] 1:10 1:20 ... 1:15 ... ...
- (Z=0.5:100.5)
- on grid GEU12 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5
- IJKLAVE IJKL[L=@AVE] 1:10 1:20 1:100 ... ... ...
- (T=JAN-1902:JAN-1902)
- on grid GEU10 with -1.E+34 for missing data
- X=0.5:10.5 Y=0.5:20.5 Z=0.5:100.5
-
- time range: JAN-1902 to JAN-1902
-
-show grid ijkl
- GRID GEU14
- name axis # pts start end
- XAX1 X 10 r 1 10
- YAX1 Y 20 r 1 20
- ZAX1 Z 100 r 1 100
- TCENTURY1 TIME 15 i 01-JAN-1902 00:00 16-JAN-1902 00:00
- normal E
- normal F
-
-
-! list long time series using a rigid (non-record axis) time axis --> FAST
-list/clobber/format=cdf/keep_axnames/l=1:300000/rigid/file=test2.cdf l ! without record dimension
-! list time series using the record dimension --> SLOW (1/50th as long axis)
-list/clobber/format=cdf/keep_axnames/l=1:5000 l ! auto-filename
-list/clobber/format=cdf/keep_axnames/t="1-jan-1902":"1-jan-2010"/rigid tlong ! auto-filename
-
-! deliberate errors
-can dat/all
-set mode ignore
-list/format=cdf/keep_axnames/l=1:10/file=test_abs.cdf l ! file exists error
-list/format=cdf/keep_axnames/i=5:15/l=5:10/append/file=test_abs.cdf il ! inconsistent i limits
-list/format=cdf/keep_axnames/i=1:10/j=20:25/append/file=test_abs.cdf ij ! inconsistent j limits
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijl2 ! i and j not avg'd
-list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave] ! k axis averaged
-list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1 ! inconsistent time pt
-set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test0h, test0i, test0j, test0k, test0l, test0n, test0m, test0o, test0p
-list/clobber/format=cdf/keep_axnames/i=1:10 i ! too many netcdf files
-canc data/all
-cancel mode ignore
-
-! show the grids created
-cancel variables/all
-set data/format=cdf test_abs
-show grid j1 jkl jkl2 iavejkl ijkl
- GRID GEU2
- name axis # pts start end
- normal X
- YAX1 Y 20 r 1 20
- normal Z
- normal T
- normal E
- normal F
- GRID GEU13
- name axis # pts start end
- normal X
- YAX1 Y 20 r 1 20
- ZAX1 Z 100 r 1 100
- TCENTURY1 TIME 15 i 01-JAN-1902 00:00 16-JAN-1902 00:00
- normal E
- normal F
- GRID GEU2
- name axis # pts start end
- normal X
- YAX1 Y 20 r 1 20
- normal Z
- normal T
- normal E
- normal F
- GRID GEU13
- name axis # pts start end
- normal X
- YAX1 Y 20 r 1 20
- ZAX1 Z 100 r 1 100
- TCENTURY1 TIME 15 i 01-JAN-1902 00:00 16-JAN-1902 00:00
- normal E
- normal F
- GRID GEU14
- name axis # pts start end
- XAX1 X 10 r 1 10
- YAX1 Y 20 r 1 20
- ZAX1 Z 100 r 1 100
- TCENTURY1 TIME 15 i 01-JAN-1902 00:00 16-JAN-1902 00:00
- normal E
- normal F
-cancel data test_abs
-
-! test TMAP data io
-GO bn_cdf_keepax.sub3 ! matches old outputs by using /HEADING=enhanced
-! bn320_cdf.sub3
-! benchmark to test netCDF input and output of TMAP data set variables
-! this routine added 1/26/95 to test the SAVE/HEADING=enhanced option
-
-! V5 *sh* 7/99 added /CLOBBER
-
-cancel data/all
-cancel variables/all
-cancel region
-
-use gtbc011
-
-let i1 = x[g=temp,i=1:10]
-let j1 = y[g=temp,j=5:10]
-let k1 = z[g=u,k=5:15]
-let l1 = l[g=u,l=1:3]
-let l2 = l
-let ij = taux[l=@ave]
-let ik = i1+k1
-let il = i1+l1
-let jk = j1+k1
-let jl = j1+l1
-let kl = k1+l1
-let ijk = temp[l=@ave]
-let ikl = temp[j=@ave]
-let ijl = temp[k=@ave]
-let jkl = temp[i=@ave]
-let ijkl = u
-let ijk2 = temp
-let iavejkl = ijkl[i=@ave]
-let ijavekl = ijkl[j=@ave]
-let ijkavel = ijkl[k=@ave]
-let ijklave = ijkl[l=@ave]
-
-set region/l=1:2 ! i,j, and k unspecified
-
-! a bunch of basic geometries
-! 1d
-list/format=cdf/keep_axnames/clobber/file=test_fil0.cdf/heading="enh" i1 ! not /APPEND - must be new
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" j1
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" k1
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" l1 ! record axis
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" l2 ! rigid axis
-
-! 2D
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ij
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ik
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" il
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" jk
-
-!3D
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijk
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ikl
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijl
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" jkl
-
-!4D
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijkl
-
-! extend along time axis and write sub-regions
-! (note: this may leave undefined regions in other variables)
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh"/j=1:50/l=2:3 ijl
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh"/j=51:100/l=2:3 ijl
-
-! rewrite a sub-region in the middle of the data
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh"/j=30:40/k=5/l=1:3 ijkl
-
-! check documentation of transforms
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" iavejkl
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijavekl
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijkavel
-list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijklave
-
-! look at what we've created - time axis should be regular
-set data/format=cdf test_fil0
-show data/full
- currently SET data sets:
- 1> ./gtbc011.cdf
-
- name title I J K L M N
- TEMP TEMPERATURE 70:72 1:100 1:27 1:3 ... ...
- deg. C on grid PS3DT1 with -1.E+34 for missing data
- X=161W:158W Y=30S:50N Z=0:4149
- SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3 ... ...
- frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
- X=161W:159W Y=30S:50N Z=0:4149
- U ZONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
- V MERIDIONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
- W VERTICAL VELOCITY 70:71 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DW1 with -1.E+34 for missing data
- X=161W:159W Y=30S:50N Z=5:4149
- TAUX ZONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.84S:51.43N
- TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.84S:51.43N
- PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
- cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:156.5W Y=28.84S:51.43N
-
- time range: MAR-1983 to MAR-1983
-
- 2> ./test_fil0.cdf (default)
-
- name title I J K L M N
- I1 X[G=TEMP,I=1:10] 1:10 ... ... ... ... ...
- on grid PS3DT1_NYZT with -1.E+34 for missing data
- X=130E:140E
- J1 Y[G=TEMP,J=5:10] ... 5:10 ... ... ... ...
- on grid PS3DT1_NXZT with -1.E+34 for missing data
- Y=21.11S:12.52S
- K1 Z[G=U,K=5:15] ... ... 5:15 ... ... ...
- on grid PS3DU1_NXYT with -1.E+34 for missing data
- Z=40:190
- L1 L[G=U,L=1:3] ... ... ... 1:3 ... ...
- on grid GRH1 with -1.E+34 for missing data
-
- L2 L ... ... ... 1:2 ... ...
- on grid GRH2 with -1.E+34 for missing data
-
- IJ TAUX[L=@AVE] 69:71 1:100 ... ... ... ...
- (T=MAR-1983:MAR-1983)
- on grid PS2DU1_NT with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.84S:51.43N
- IK I1+K1 1:10 ... 5:15 ... ... ...
- on grid G092_NYT with -1.E+34 for missing data
- X=130E:140E Z=40:190
- IL I1+L1 1:10 ... ... 1:3 ... ...
- on grid G092_NYZ with -1.E+34 for missing data
- X=130E:140E
- JK J1+K1 ... 5:10 5:15 ... ... ...
- on grid G103_NXT with -1.E+34 for missing data
- Y=21.11S:12.52S Z=40:190
- IJK TEMP[L=@AVE] 70:72 1:100 1:27 ... ... ...
- (T=MAR-1983:MAR-1983)
- on grid PS3DT1_NT with -1.E+34 for missing data
- X=161W:158W Y=30S:50N Z=0:4149
- IKL TEMP[J=@AVE] 70:72 ... 1:27 1:3 ... ...
- (Y=30S:50N)
- on grid PS3DT1_NY with -1.E+34 for missing data
- X=161W:158W Z=0:4149
- IJL TEMP[K=@AVE] 70:72 1:100 ... 1:3 ... ...
- (Z=0:4149)
- on grid PS3DT1_NZ with -1.E+34 for missing data
- X=161W:158W Y=30S:50N
- JKL TEMP[I=@AVE] ... 1:100 1:27 1:3 ... ...
- (X=130E:70W)
- on grid GRH3 with -1.E+34 for missing data
- Y=30S:50N Z=0:4149
- IJKL U 69:72 1:100 1:27 1:3 ... ...
- on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
- IAVEJKL IJKL[I=@AVE] ... 1:100 1:27 1:3 ... ...
- (X=130.5E:69.5W)
- on grid GRH4 with -1.E+34 for missing data
- Y=28.84S:51.43N Z=0:4149
- IJAVEKL IJKL[J=@AVE] 69:72 ... 1:27 1:3 ... ...
- (Y=28.84S:51.43N)
- on grid PS3DU1_NY with -1.E+34 for missing data
- X=161.5W:157.5W Z=0:4149
- IJKAVEL IJKL[K=@AVE] 69:72 1:100 ... 1:3 ... ...
- (Z=0:4149)
- on grid PS3DU1_NZ with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N
- IJKLAVE IJKL[L=@AVE] 69:72 1:100 1:27 ... ... ...
- (T=MAR-1983:MAR-1983)
- on grid PS3DU1_NT with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
-
- time range: MAR-1983 to MAR-1983
-
-cancel variable ijkl
-show grid ijkl
- GRID PS3DU1
- name axis # pts start end
- PSXU LONGITUDE 160mr 131E 70W
- PSYU LATITUDE 100 i 27.672S 50N
- PSZT1 DEPTH (m) 27 i- 5 3824
- TIME12 TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00
- normal E
- normal F
-cancel data test_fil0
-! 5/99 moved old bn230_cdf.sub3 to bn_cdf_keepax.sub4 to stay inline w/ old benchmarks *kob*
-GO bn_cdf_keepax.sub4
-! bn230_cdf
-! benchmark to test netCDF input and output of TMAP data set variables
-! requires version 2.30 or later
-! 6/92
-
-! V5 *sh* 7/99 -- added /CLOBBER
-
-cancel data/all
-cancel variables/all
-cancel region
-
-use gtbc011
-
-let i1 = x[g=temp,i=1:10]
-let j1 = y[g=temp,j=5:10]
-let k1 = z[g=u,k=5:15]
-let l1 = l[g=u,l=1:3]
-let l2 = l
-let ij = taux[l=@ave]
-let ik = i1+k1
-let il = i1+l1
-let jk = j1+k1
-let jl = j1+l1
-let kl = k1+l1
-let ijk = temp[l=@ave]
-let ikl = temp[j=@ave]
-let ijl = temp[k=@ave]
-let jkl = temp[i=@ave]
-let ijkl = u
-let ijk2 = temp
-let iavejkl = ijkl[i=@ave]
-let ijavekl = ijkl[j=@ave]
-let ijkavel = ijkl[k=@ave]
-let ijklave = ijkl[l=@ave]
-
-set region/l=1:2 ! i,j, and k unspecified
-
-! a bunch of basic geometries
-! 1d
-list/format=cdf/keep_axnames/clobber/file=test_fil.cdf i1 ! not /APPEND - must be new
-list/format=cdf/keep_axnames/append/file=test_fil.cdf j1
-list/format=cdf/keep_axnames/append/file=test_fil.cdf k1
-list/format=cdf/keep_axnames/append/file=test_fil.cdf l1 ! record axis
-list/format=cdf/keep_axnames/append/file=test_fil.cdf l2 ! rigid axis
-
-! 2D
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ij
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ik
-list/format=cdf/keep_axnames/append/file=test_fil.cdf il
-list/format=cdf/keep_axnames/append/file=test_fil.cdf jk
-
-!3D
-! The following is an error - axis already in the file
-!
-set mode ignore
-
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
-list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
-
-!4D
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
-
-! extend along time axis and write sub-regions
-! (note: this may leave undefined regions in other variables)
-list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
-list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
-
-! rewrite a sub-region in the middle of the data
-list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
-
-! check documentation of transforms
-list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
-list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
-
-! look at what we've created - time axis should be regular
-set data/format=cdf test_fil
-show data/full
- currently SET data sets:
- 1> ./gtbc011.cdf
-
- name title I J K L M N
- TEMP TEMPERATURE 70:72 1:100 1:27 1:3 ... ...
- deg. C on grid PS3DT1 with -1.E+34 for missing data
- X=161W:158W Y=30S:50N Z=0:4149
- SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3 ... ...
- frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
- X=161W:159W Y=30S:50N Z=0:4149
- U ZONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
- V MERIDIONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DU1 with -1.E+34 for missing data
- X=161.5W:157.5W Y=28.84S:51.43N Z=0:4149
- W VERTICAL VELOCITY 70:71 1:100 1:27 1:3 ... ...
- cm/sec on grid PS3DW1 with -1.E+34 for missing data
- X=161W:159W Y=30S:50N Z=5:4149
- TAUX ZONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.84S:51.43N
- TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.84S:51.43N
- PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
- cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
- X=161.5W:156.5W Y=28.84S:51.43N
-
- time range: MAR-1983 to MAR-1983
-
- 2> ./test_fil.cdf (default)
-
- name title I J K L M N
- I1 X[G=TEMP,I=1:10] 1:10 ... ... ... ... ...
- on grid GLZ1 with -1.E+34 for missing data
- X=130E:140E
- J1 Y[G=TEMP,J=5:10] ... 1:6 ... ... ... ...
- on grid GLZ2 with -1.E+34 for missing data
- Y=21.11S:12.52S
- K1 Z[G=U,K=5:15] ... ... 1:11 ... ... ...
- on grid GLZ3 with -1.E+34 for missing data
- Z=40:190
- L1 L[G=U,L=1:3] ... ... ... 1:3 ... ...
- on grid GLZ4 with -1.E+34 for missing data
-
- L2 L ... ... ... 1:2 ... ...
- on grid GLZ5 with -1.E+34 for missing data
-
- IJ TAUX[L=@AVE] 1:3 1:100 ... ... ... ...
- (T=MAR-1983:MAR-1983)
- on grid GLZ6 with -1.E+34 for missing data
- X=161.5W:158.5W Y=28.84S:51.43N
- IK I1+K1 1:10 ... 1:11 ... ... ...
- on grid GLZ7 with -1.E+34 for missing data
- X=130E:140E Z=40:190
- IL I1+L1 1:10 ... ... 1:3 ... ...
- on grid GLZ8 with -1.E+34 for missing data
- X=130E:140E
- JK J1+K1 ... 1:6 1:11 ... ... ...
- on grid GLZ9 with -1.E+34 for missing data
- Y=21.11S:12.52S Z=40:190
-
- time range: MAR-1983 to MAR-1983
-
-cancel variable ijkl
-show grid ijkl
-cancel data test_fil
-
-set mode/last ignore
-
-GO bn_cdf_reversed_keepax.sub
-! bn320_cdf_reversed.sub
-! benchmark to test netCDF input of reverse-coordinate axes
-! this routine added 3/2/95
-
-cancel data/all
-cancel variables/all
-cancel region
-
-set data reverse_axes
-
-show data/var
- currently SET data sets:
- 1> ./reverse_axes.cdf (default)
-
- name title I J K L M N
- FCN_NORM COS(X/10)*SIN(Y/2) 1:51 1:21 ... ... ... ...
- on grid GAF1 with -1.E+34 for missing data
- X=129.5E:179.5W Y=10.5S:10.5N
- FCN_REV COS(X/10)*SIN(Y/2) 1:51 1:21 ... ... ... ...
- on grid GAF2 with -1.E+34 for missing data
- X=129.5E:179.5W Y=10.5S:10.5N
- FCN_REV_SUB
- COS(X/10)*SIN(Y/2) 1:51 10:19 ... ... ... ...
- on grid GREV with -1.E+34 for missing data
- X=129.5E:179.5W Y=1.5S:8.5N
-
-
-list/x=180 fcn_norm,fcn_rev
- WARNING: Listed variables have ambiguous coordinates on axes: Y
- DATA SET: ./reverse_axes.cdf
- LONGITUDE: 180E
- Column 1: FCN_NORM is COS(X/10)*SIN(Y/2)
- Column 2: FCN_REV is COS(X/10)*SIN(Y/2)
- FCN_NOR FCN_REV
-J / 1: 0.6331937 -0.6331937
-J / 2: 0.6454794 -0.6454794
-J / 3: 0.4997293 -0.4997293
-J / 4: 0.2316280 -0.2316280
-J / 5: -0.0931839 0.0931839
-J / 6: -0.3951811 0.3951811
-J / 7: -0.6004243 0.6004243
-J / 8: -0.6586626 0.6586626
-J / 9: -0.5556374 0.5556374
-J / 10: -0.3165727 0.3165727
-J / 11: 0.0000000 0.0000000
-J / 12: 0.3165727 -0.3165727
-J / 13: 0.5556374 -0.5556374
-J / 14: 0.6586626 -0.6586626
-J / 15: 0.6004243 -0.6004243
-J / 16: 0.3951811 -0.3951811
-J / 17: 0.0931839 -0.0931839
-J / 18: -0.2316280 0.2316280
-J / 19: -0.4997293 0.4997293
-J / 20: -0.6454794 0.6454794
-J / 21: -0.6331937 0.6331937
-list/x=180 fcn_rev_sub
- VARIABLE : COS(X/10)*SIN(Y/2)
- FILENAME : reverse_axes.cdf
- SUBSET : 10 points (LATITUDE)
- LONGITUDE: 180E
- 180E
- 51
- 8N / 19: 0.4997293
- 7N / 18: 0.2316280
- 6N / 17: -0.0931839
- 5N / 16: -0.3951811
- 4N / 15: -0.6004243
- 3N / 14: -0.6586626
- 2N / 13: -0.5556374
- 1N / 12: -0.3165727
- 0 / 11: 0.0000000
- 1S / 10: 0.3165727
-
-GO bn_reset
-cancel mode verify
-GO bn_keep_axisnames.jnl
-! bn_keep_axisnames.jnl
-! 2/2009 ACM
-
-! save/KEEP_AXISNAMES prevents changes to
-! axis name when a subset is written.
-
-sh command list
- LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/D/HEADING/NOHEAD/SINGLE/FILE/APPEND/ORDER
- /FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS/MLIMITS
- /NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS/CLOBBER
- /QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT/XCHUNK
- /YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN/OUTTYPE
-define axis/x=1:100:1/units=deg x100
-define axis/t=1-jan-2000:31-jan-2000:1/units=days/t0=31-dec-1999 t31
-let a = x[gx=x100] + t[gt=t31]
-save/file=a.nc/clobber/i=30:40/L=15:28/KEEP_AXISNAMES a
-
-sp echo "bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
-
-save/file=a.nc/clobber/i=30:40/L=15:28 a
-
-sp echo "bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
-
-
-GO bn_reset
-cancel mode verify
-GO bn_key_label_minmax.jnl
-! bn_key_label_minmax.jnl
-
-! Label data min and max on vertical and horizontal keys
-
-can mode logo
-
-! One setting turns on annotate_key, which persists until turned off.
-PPL SHAKEY 1,,,,,,,,,,1
-
-use levitus_climatology
-shade/lev=(-inf)(4,28,1)(inf) temp[z=0]
-
-shade/set/lev=(-inf)(4,28,1)(inf) temp[z=0]
-ppl shakey,1,0
-ppl shade
-
-! FILL with min and max on vertical and horizontal keys
-
-fill/lev=(-inf)(4,28,1)(inf) temp[z=0]
-
-fill/set/lev=(-inf)(4,28,1)(inf) temp[z=0]
-PPL SHAKEY 1,0
-ppl fill
-
-! POLYGON with min and max on vertical key
-
-use coads_climatology
-def axis/x=0:360:5 xq
-def axis/y=-90:90:4 yq
-let fsst = sst[l=1,gx=xq,gy=yq]
-
-let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
-let lat = xsequence(0*x[gx=xq] + y[gy=yq])
-shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst ! set up
-go polymark poly/key/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequence(fsst), square, 0.4
-
-
-! Now with closed-ended colorbars
-use levitus_climatology
-shade/lev=(4,28,1) temp[z=0]
-
-shade/set/lev=(4,28,1) temp[z=0]
-ppl shakey,1,0
-ppl shade
-
-
-! restore setting: keys not annotated
-PPL SHAKEY 1,,,,,,,,,,0
-
-! The setting can alternatively be made with the alias KEYMARK
-KEYMARK 1
-
-! FILL with min and max on vertical and horizontal keys
-
-fill/lev=(4,28,1) temp[z=0]
-
-fill/set/lev=(4,28,1) temp[z=0]
-PPL SHAKEY 1,0
-ppl fill
-
-! POLYGON with min and max on vertical key
-
-use coads_climatology
-def axis/x=0:360:5 xq
-def axis/y=-90:90:4 yq
-let fsst = sst[l=1,gx=xq,gy=yq]
-
-let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
-let lat = xsequence(0*x[gx=xq] + y[gy=yq])
-shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst ! set up
-go polymark poly/key/title="polygons"/lev=(4,26,1), lon, lat, xsequence(fsst), square, 0.4
-
-
-! restore setting: keys not annotated
-KEYMARK 0
-
-set mode/last logo
-shade/lev=35 sst[L=1]
-
-
-! ******** V6.2 Additions below ***********
-GO bn_reset
-cancel mode verify
-GO bn62_bug_fixes.jnl
-! bn62_bug_fixes.jnl
-! Fixes that go into v6.2 release
-
-GO bn_reset
-cancel mode verify
-GO err618_julday.jnl
-! err618_julday.jnl
-! Bug 1639
-! ACM 2/12/09
-
-! reported by Martin Shcmidt, 12-Feb-2009
-!
-define axis/t=1-dec-1998:31-mar-2002:12/unit=hours/t0=1-jan-1955/cal=gregorian tax
-define grid/t=tax tgrid
-let tdummy=0*t[gt=tgrid]
-
-let rjulianday = TAX_JDAY(t[gt=tdummy],tdummy)
-! This is correct
-list/t=27-feb-1999:02-mar-1999 rjulianday
- VARIABLE : TAX_JDAY(T[GT=TDUMMY],TDUMMY)
- SUBSET : 7 points (TIME)
- 27-FEB-1999 00:00 / 177: 58.00000
- 27-FEB-1999 12:00 / 178: 58.00000
- 28-FEB-1999 00:00 / 179: 59.00000
- 28-FEB-1999 12:00 / 180: 59.00000
- 01-MAR-1999 00:00 / 181: 60.00000
- 01-MAR-1999 12:00 / 182: 60.00000
- 02-MAR-1999 00:00 / 183: 61.00000
-
-! Now look to somewhere else
-list/t=31-dec-1999:02-jan-2000 rjulianday
- VARIABLE : TAX_JDAY(T[GT=TDUMMY],TDUMMY)
- SUBSET : 5 points (TIME)
- 31-DEC-1999 00:00 / 791: 365.0000
- 31-DEC-1999 12:00 / 792: 365.0000
- 01-JAN-2000 00:00 / 793: 1.0000
- 01-JAN-2000 12:00 / 794: 1.0000
- 02-JAN-2000 00:00 / 795: 2.0000
-
-! Now list the first region again. March 1 was
-! being listed as day 61 not day 60
-list/t=27-feb-1999:02-mar-1999 rjulianday
- VARIABLE : TAX_JDAY(T[GT=TDUMMY],TDUMMY)
- SUBSET : 7 points (TIME)
- 27-FEB-1999 00:00 / 177: 58.00000
- 27-FEB-1999 12:00 / 178: 58.00000
- 28-FEB-1999 00:00 / 179: 59.00000
- 28-FEB-1999 12:00 / 180: 59.00000
- 01-MAR-1999 00:00 / 181: 60.00000
- 01-MAR-1999 12:00 / 182: 60.00000
- 02-MAR-1999 00:00 / 183: 61.00000
-
-GO bn_reset
-cancel mode verify
-GO err611_polygons.jnl
-! err611_polygons.jnl
-! bug 1661
-
-! Polygons over a depth axis, where the
-! plot is transposed, didnt appear.
-
-! (from error_bars_demo script) Z axis
-define axis/z=1:15:1/depth/units=meters z5
-let/quiet xp4 = Z[gz=z5]
-let/quiet yp4 = SIN(xp4/5)
-let/quiet errors = 0.5/(xp4+5)
-plot/title="vertical profile" yp4
-
-GO error_bars polygon/color=red/thickness=2/title="variability" yp4 errors
-
-
-GO bn_reset
-cancel mode verify
-GO bn_convolve.jnl
-! bn_convolve.jnl
-! test convolutions, including with missing-data.
-! compare behavior with smoothing transform spz.
-
-let a = {0,1,1,0,1,0,0,0,,0,0,0}
-list a, a[i=@spz], convolvei(a,{.25,.5,.25})
- X: 0.5 to 12.5
- Column 1: A is {0,1,1,0,1,0,0,0,,0,0,0}
- Column 2: A[X=@SPZ:3] is {0,1,1,0,1,0,0,0,,0,0,0} (Parzen smoothed by 3 pts on X)
- Column 3: EX#3 is CONVOLVEI(A,{.25,.5,.25})
- A A EX#3
-1 / 1: 0.000000 .... ....
-2 / 2: 1.000000 0.7500000 0.7500000
-3 / 3: 1.000000 0.7500000 0.7500000
-4 / 4: 0.000000 0.5000000 0.5000000
-5 / 5: 1.000000 0.5000000 0.5000000
-6 / 6: 0.000000 0.2500000 0.2500000
-7 / 7: 0.000000 0.0000000 0.0000000
-8 / 8: 0.000000 .... ....
-9 / 9: .... .... ....
-10 / 10: 0.000000 .... ....
-11 / 11: 0.000000 0.0000000 0.0000000
-12 / 12: 0.000000 .... ....
-
-! The second argument does not have to be on the
-! same axis as the first.
-let b = ysequence({0,1,1,0,1,0,0,0,,0,0,0})
-let bpat = ysequence({.25,.5,.25})
-list b, b[j=@spz], convolvej(b,bpat), convolvej(b,{.1,.4,.4,.1})
- Y: 0.5 to 12.5
- Column 1: B is YSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0})
- Column 2: B[Y=@SPZ:3] is YSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0}) (Parzen smoothed by 3 pts on Y)
- Column 3: EX#3 is CONVOLVEJ(B,BPAT)
- Column 4: EX#4 is CONVOLVEJ(B,{.1,.4,.4,.1})
- B B EX#3 EX#4
-1 / 1: 0.000000 .... .... ....
-2 / 2: 1.000000 0.7500000 0.7500000 0.8000000
-3 / 3: 1.000000 0.7500000 0.7500000 0.6000000
-4 / 4: 0.000000 0.5000000 0.5000000 0.5000000
-5 / 5: 1.000000 0.5000000 0.5000000 0.4000000
-6 / 6: 0.000000 0.2500000 0.2500000 0.1000000
-7 / 7: 0.000000 0.0000000 0.0000000 ....
-8 / 8: 0.000000 .... .... ....
-9 / 9: .... .... .... ....
-10 / 10: 0.000000 .... .... ....
-11 / 11: 0.000000 0.0000000 0.0000000 ....
-12 / 12: 0.000000 .... .... ....
-
-
-let c = zsequence({0,1,1,0,1,0,0,0,,0,0,0})
-list c, c[k=@spz], convolvek(c,{.25,.5,.25})
- Z: 0.5 to 12.5
- Column 1: C is ZSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0})
- Column 2: C[Z=@SPZ:3] is ZSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0}) (Parzen smoothed by 3 pts on Z)
- Column 3: EX#3 is CONVOLVEK(C,{.25,.5,.25})
- C C EX#3
-1 / 1: 0.000000 .... ....
-2 / 2: 1.000000 0.7500000 0.7500000
-3 / 3: 1.000000 0.7500000 0.7500000
-4 / 4: 0.000000 0.5000000 0.5000000
-5 / 5: 1.000000 0.5000000 0.5000000
-6 / 6: 0.000000 0.2500000 0.2500000
-7 / 7: 0.000000 0.0000000 0.0000000
-8 / 8: 0.000000 .... ....
-9 / 9: .... .... ....
-10 / 10: 0.000000 .... ....
-11 / 11: 0.000000 0.0000000 0.0000000
-12 / 12: 0.000000 .... ....
-
-let d = tsequence({0,1,1,0,1,0,0,0,,0,0,0})
-let dpat = tsequence({.25,.5,.25})
-list d, d[l=@spz], convolvel(d,{.25,.5,.25})
- T: 0.5 to 13
- Column 1: D is TSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0})
- Column 2: D[T=@SPZ:3] is TSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0}) (Parzen smoothed by 3 pts on T)
- Column 3: EX#3 is CONVOLVEL(D,{.25,.5,.25})
- D D EX#3
-1 / 1: 0.000000 .... ....
-2 / 2: 1.000000 0.7500000 0.7500000
-3 / 3: 1.000000 0.7500000 0.7500000
-4 / 4: 0.000000 0.5000000 0.5000000
-5 / 5: 1.000000 0.5000000 0.5000000
-6 / 6: 0.000000 0.2500000 0.2500000
-7 / 7: 0.000000 0.0000000 0.0000000
-8 / 8: 0.000000 .... ....
-9 / 9: .... .... ....
-10 / 10: 0.000000 .... ....
-11 / 11: 0.000000 0.0000000 0.0000000
-12 / 12: 0.000000 .... ....
-
-! 2D - convolvei convolves in x ...
-let a = {0,1,1,0,1,0,0,0,,0,0,0} + y[y=1:2]
-list a, a[i=@spz], convolvei(a,{.25,.5,.25})
- X: 0.5 to 12.5
- Y: 0.5 to 2.5
- Column 1: A is {0,1,1,0,1,0,0,0,,0,0,0} + Y[Y=1:2]
- Column 2: A[X=@SPZ:3] is {0,1,1,0,1,0,0,0,,0,0,0} + Y[Y=1:2] (Parzen smoothed by 3 pts on X)
- Column 3: EX#3 is CONVOLVEI(A,{.25,.5,.25})
- A A EX#3
- ---- J:1 Y: 1
-1 / 1: 1.000000 .... ....
-2 / 2: 2.000000 1.750000 1.750000
-3 / 3: 2.000000 1.750000 1.750000
-4 / 4: 1.000000 1.500000 1.500000
-5 / 5: 2.000000 1.500000 1.500000
-6 / 6: 1.000000 1.250000 1.250000
-7 / 7: 1.000000 1.000000 1.000000
-8 / 8: 1.000000 .... ....
-9 / 9: .... .... ....
-10 / 10: 1.000000 .... ....
-11 / 11: 1.000000 1.000000 1.000000
-12 / 12: 1.000000 .... ....
- ---- J:2 Y: 2
-1 / 1: 2.000000 .... ....
-2 / 2: 3.000000 2.750000 2.750000
-3 / 3: 3.000000 2.750000 2.750000
-4 / 4: 2.000000 2.500000 2.500000
-5 / 5: 3.000000 2.500000 2.500000
-6 / 6: 2.000000 2.250000 2.250000
-7 / 7: 2.000000 2.000000 2.000000
-8 / 8: 2.000000 .... ....
-9 / 9: .... .... ....
-10 / 10: 2.000000 .... ....
-11 / 11: 2.000000 2.000000 2.000000
-12 / 12: 2.000000 .... ....
-
-
-
-GO bn_reset
-cancel mode verify
-GO bn_tax_tstep.jnl
-! bn_tax_tstep.jnl
-!
-! Working with the coordinates of this axis loses accuracy because its
-! time origin is so far back from the time it represents
-
-DEFINE AXIS/T="1-JAN-2000:00:00:01":"1-JAN-2000:00:15:00":2/UNITS=seconds tsec
-LIST/L=440:451 T[GT=tsec] ! See the accuracy problem here
- VARIABLE : T
- axis TSEC
- SUBSET : 12 points (TIME)
- 01-JAN-2000 00:14:39 / 440: 3122928879.
- 01-JAN-2000 00:14:41 / 441: 3122928881.
- 01-JAN-2000 00:14:43 / 442: 3122928883.
- 01-JAN-2000 00:14:45 / 443: 3122928885.
- 01-JAN-2000 00:14:47 / 444: 3122928887.
- 01-JAN-2000 00:14:49 / 445: 3122928889.
- 01-JAN-2000 00:14:51 / 446: 3122928891.
- 01-JAN-2000 00:14:53 / 447: 3122928893.
- 01-JAN-2000 00:14:55 / 448: 3122928895.
- 01-JAN-2000 00:14:57 / 449: 3122928897.
- 01-JAN-2000 00:14:59 / 450: 3122928899.
- 01-JAN-2000 00:15:01 / 451: 3122928901.
-
-LET bsin = SIN(t[GT=tsec]/40000)
-SAVE/FILE=a.nc/clobber bsin
-CAN VAR/all
-USE a.nc
-
-SET LIST/PREC=7
-! Reset the date to dec 1999
-! Function lets us leave off the leading 0.
-LIST/L=1:15 TAX_TSTEP(bsin, "1-dec-1999:00:00:00" )
- VARIABLE : TAX_TSTEP(BSIN, "1-dec-1999:00:00:00" )
- FILENAME : a.nc
- SUBSET : 15 points (TIME)
- 01-JAN-2000 00:00:01 / 1: 2678401.
- 01-JAN-2000 00:00:03 / 2: 2678403.
- 01-JAN-2000 00:00:05 / 3: 2678405.
- 01-JAN-2000 00:00:07 / 4: 2678407.
- 01-JAN-2000 00:00:09 / 5: 2678409.
- 01-JAN-2000 00:00:11 / 6: 2678411.
- 01-JAN-2000 00:00:13 / 7: 2678413.
- 01-JAN-2000 00:00:15 / 8: 2678415.
- 01-JAN-2000 00:00:17 / 9: 2678417.
- 01-JAN-2000 00:00:19 / 10: 2678419.
- 01-JAN-2000 00:00:21 / 11: 2678421.
- 01-JAN-2000 00:00:23 / 12: 2678423.
- 01-JAN-2000 00:00:25 / 13: 2678425.
- 01-JAN-2000 00:00:27 / 14: 2678427.
- 01-JAN-2000 00:00:29 / 15: 2678429.
-
-! argument can be upper or lowercase
-! Should list values 1, 3, 5...
-LIST/L=1:15 TAX_TSTEP(bsin, "1-JAN-2000:00:00:00" )
- VARIABLE : TAX_TSTEP(BSIN, "1-JAN-2000:00:00:00" )
- FILENAME : a.nc
- SUBSET : 15 points (TIME)
- 01-JAN-2000 00:00:01 / 1: 1.00000
- 01-JAN-2000 00:00:03 / 2: 3.00000
- 01-JAN-2000 00:00:05 / 3: 5.00000
- 01-JAN-2000 00:00:07 / 4: 7.00000
- 01-JAN-2000 00:00:09 / 5: 9.00000
- 01-JAN-2000 00:00:11 / 6: 11.00000
- 01-JAN-2000 00:00:13 / 7: 13.00000
- 01-JAN-2000 00:00:15 / 8: 15.00000
- 01-JAN-2000 00:00:17 / 9: 17.00000
- 01-JAN-2000 00:00:19 / 10: 19.00000
- 01-JAN-2000 00:00:21 / 11: 21.00000
- 01-JAN-2000 00:00:23 / 12: 23.00000
- 01-JAN-2000 00:00:25 / 13: 25.00000
- 01-JAN-2000 00:00:27 / 14: 27.00000
- 01-JAN-2000 00:00:29 / 15: 29.00000
-
-! Test with TAX_DATESTRING to set the date (but argument to
-! TAX_DATESTRING is also limited by precision so use a different
-! axis def.)
-
-DEFINE AXIS/T="1-JAN-1902:00:00:00":"1-JAN-1902:00:30:00":5/UNITS=seconds tsec
-LIST/L=200:205 T[GT=tsec] ! accuracy loss in single-precision t
- VARIABLE : T
- axis TSEC
- SUBSET : 6 points (TIME)
- 01-JAN-1902 00:16:35 / 200: 30327395.
- 01-JAN-1902 00:16:40 / 201: 30327400.
- 01-JAN-1902 00:16:45 / 202: 30327405.
- 01-JAN-1902 00:16:50 / 203: 30327410.
- 01-JAN-1902 00:16:55 / 204: 30327415.
- 01-JAN-1902 00:17:00 / 205: 30327420.
-
-LET tt = t[gt=tsec]
-LET reset_date = TAX_DATESTRING(`t[gt=tsec,l=1]`, tt, "sec")
- !-> DEFINE VARIABLE reset_date = TAX_DATESTRING(30326400, tt, "sec")
-LIST/L=1:15 TAX_TSTEP(tt, "`reset_date`")
- !-> LIST/L=1:15 TAX_TSTEP(tt, "01-JAN-1902 00:00:00")
- VARIABLE : TAX_TSTEP(TT, "01-JAN-1902 00:00:00")
- SUBSET : 15 points (TIME)
- 01-JAN-1902 00:00:00 / 1: 0.00000
- 01-JAN-1902 00:00:05 / 2: 5.00000
- 01-JAN-1902 00:00:10 / 3: 10.00000
- 01-JAN-1902 00:00:15 / 4: 15.00000
- 01-JAN-1902 00:00:20 / 5: 20.00000
- 01-JAN-1902 00:00:25 / 6: 25.00000
- 01-JAN-1902 00:00:30 / 7: 30.00000
- 01-JAN-1902 00:00:35 / 8: 35.00000
- 01-JAN-1902 00:00:40 / 9: 40.00000
- 01-JAN-1902 00:00:45 / 10: 45.00000
- 01-JAN-1902 00:00:50 / 11: 50.00000
- 01-JAN-1902 00:00:55 / 12: 55.00000
- 01-JAN-1902 00:01:00 / 13: 60.00000
- 01-JAN-1902 00:01:05 / 14: 65.00000
- 01-JAN-1902 00:01:10 / 15: 70.00000
-
-GO bn_reset
-cancel mode verify
-GO bn_grads_z.jnl
-! bn_grads_z.jnl
-! acm 3/31/09
-! Fixing bug 1651.
-! The file has no axis attributes other than units and long_name,
-! does not contain any other clues that Ferret uses to get a Z
-! axis direction but for variable AR, has attribute
-! DAXIS:long_name = "depth" ; This bug came from a question about the file
-! http://www.usgodae.org/dods/GDS_NC/gdem/sspgdemv3s"
-! See the bug report for more.
-
-USE grads_bug_file.nc
-
-! Previously A1 thru A4 showed as if on an x axis
-! A1 has z axis with long_name elev
-! A2 has z axis with long name height
-! A3 has z axis with long name level
-! A4 has z axis with long name layer
-SHOW DATA
- currently SET data sets:
- 1> ./grads_bug_file.nc (default)
- name title I J K L M N
- AM Z[GZ=CAXIS] + Y[GY=BAXIS] + X[G 1:10 1:5 1:5 ... ... ...
- AR Z[GZ=DAXIS]+ Y[GY=BAXIS] + X[GX 1:10 1:5 1:6 ... ... ...
- A1 ... ... 1:5 ... ... ...
- A2 ... ... 1:5 ... ... ...
- A3 ... ... 1:5 ... ... ...
- A4 ... ... 1:5 ... ... ...
-
-
-! The z axis of AM has no useful clues about its direction.
-! Ferret uses it as Z only because of the order in which it comes in
-SH GRID am
- GRID GMY1
- name axis # pts start end
- AAXIS X (METERS) 10 r 1 10
- BAXIS Y (METERS) 5 r 1 9
- CAXIS Z (METERS) 5 r 2 10
- normal T
- normal E
- normal F
-
-! This axis has long_name = "depth" so it is (now) reversed.
-! Previously it was not.
-SH GRID ar
- GRID GMY2
- name axis # pts start end
- AAXIS X (METERS) 10 r 1 10
- BAXIS Y (METERS) 5 r 1 9
- DAXIS DEPTH (m) 6 i- 0 8
- normal T
- normal E
- normal F
-
-! Can redefine the axis for variable AM to make it a z depth axis
-
-DEFINE SYMBOL zname = `am,RETURN=zaxis`
- !-> DEFINE SYMBOL zname = CAXIS
-DEFINE AXIS/Z/UNITS="`am,RETURN=zunits`"/DEPTH ($zname) = Z[GZ=am]
- !-> DEFINE AXIS/Z/UNITS="METERS"/DEPTH CAXIS = Z[GZ=am]
-SH GRID am
- GRID GMY1
- name axis # pts start end
- AAXIS X (METERS) 10 r 1 10
- BAXIS Y (METERS) 5 r 1 9
- CAXIS DEPTH (m) 5 r- 2 10
- normal T
- normal E
- normal F
-
-GO bn_clock_syms
-SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "37.8522"
-CLOCK_SECS = "78.607"
-CURRENT_DATE = "12-Nov-13"
-CURRENT_TIME = "15:13:28"
-! test special symbols DELTA_CPU, CLOCK_SECS
-!
-! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
-! RUN OF THIS TO ANOTHER...
-
-use gt4d011
-shade/k=1 temp[L=@ave]
-sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.033995"
-CLOCK_SECS = "78.676"
-
-repeat/k=1:10 shade temp[L=@ave]
-!-> REPEAT: K=1
-!-> REPEAT: K=2
-!-> REPEAT: K=3
-!-> REPEAT: K=4
-!-> REPEAT: K=5
-!-> REPEAT: K=6
-!-> REPEAT: K=7
-!-> REPEAT: K=8
-!-> REPEAT: K=9
-!-> REPEAT: K=10
-let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.314951
-sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.001"
-CLOCK_SECS = "79.62"
-
-let sumclock = 0
-let sumcpu = 0
-sh sym CLOCK_SECS
-CLOCK_SECS = "79.621"
-repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);\
-let sumcpu =`sumcpu + dt`)
- !-> repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);let sumcpu =`sumcpu + dt`)
-!-> REPEAT: K=1
- !-> DEFINE VARIABLE dt = 0.033996
- !-> DEFINE VARIABLE sumcpu =0.033996
-!-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.037994
- !-> DEFINE VARIABLE sumcpu =0.07199
-!-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.035994
- !-> DEFINE VARIABLE sumcpu =0.107984
-!-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.033995
- !-> DEFINE VARIABLE sumcpu =0.141979
-!-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.036994
- !-> DEFINE VARIABLE sumcpu =0.178973
-!-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.034995
- !-> DEFINE VARIABLE sumcpu =0.213968
-!-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.034995
- !-> DEFINE VARIABLE sumcpu =0.248963
-!-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.036995
- !-> DEFINE VARIABLE sumcpu =0.285958
-!-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.036993
- !-> DEFINE VARIABLE sumcpu =0.322951
-!-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.034996
- !-> DEFINE VARIABLE sumcpu =0.357947
-
-say `sumcpu`
- !-> MESSAGE/CONTINUE 0.357947
-0.357947
-sh sym CLOCK_SECS
-CLOCK_SECS = "80.865"
-
-SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:12"
-CURRENT_DATE = "12-Nov-13"
-CURRENT_TIME = "15:13:30"
-
-
-! ******** V6.3 Additions below ***********
-! Note that allowing mouse-click operations in the current
-! window, not only in window 1, is implemented in v6.3. Not
-! tested in the benchmarks.
-
-GO bn_reset
-cancel mode verify
-GO bn63_bug_fixes.jnl
-! bn63_bug_fixes.jnl
-! Fixes that go into v6.3 release
-
-GO bn_reset
-cancel mode verify
-GO err62_string_write_nc
-! err62_string_write_nc.jnl
-! Bug 1664: string variable written as a float.
-!
-
-!!!! Make a smaller file from the original file:
-
-!!!! use "/home/nstout/hankin/SOCAT_triples.nc"
-!!!! save/file=err62_string_write.nc/clobber cruise_id[i=1:104000:1000], cruise_no[i=1:104000:1000]
-
-! use "/home/nstout/hankin/SOCAT_triples.nc"
-! set mem/siz=200
-!DEFINE SYMBOL clen 3000
-
-use err62_string_write.nc
-DEFINE SYMBOL clen 30
-
-let I1d = i[g=cruise_no]
-
-let cm0 = IF CRUISE_NO NE CRUISE_NO[I=@SHF:-1] THEN 1 ! marks each real cruise
-let cm1 = if i eq 1 then 1 else cm0 ! start of first cruise, too
-let cm2 = if MOD(cm1[i=@cib], ($clen) ) eq 0 then 1 ! break into chunks
- !-> DEFINE VARIABLE cm2 = if MOD(cm1[i=@cib], 30 ) eq 0 then 1
-let mask = MISSING(cm1, cm2)
-
-DEFINE SYMBOL nk = `mask[i=@ngd]`
- !-> DEFINE SYMBOL nk = 11
-
-! **** IF EITHER OF THESE LINES IS COMMENTED OUT
-! THE STRING VAR cruise_id_xz IS SAVED OK
-let/title="cruise no" cruise_no_xz = EXPNDI_BY_Z(cruise_no,mask,`($nk)+1`,($clen) )
- !-> DEFINE VARIABLE/title="cruise no" cruise_no_xz = EXPNDI_BY_Z(cruise_no,mask,12,30 )
-SAVE/CLOBBER/FILE="a.nc"/i=1:10 cruise_no
-
-let kstarts = mask * i
-let kst = COMPRESSI(kstarts)
-let/title="cruise ID" cruise_id_xz = SAMPLEI(cruise_id, kst[i=1:($nk)])
- !-> DEFINE VARIABLE/title="cruise ID" cruise_id_xz = SAMPLEI(cruise_id, kst[i=1:11])
-list/i=1:10 cruise_id_xz
- VARIABLE : cruise ID
- FILENAME : err62_string_write.nc
- SUBSET : 10 points (X)
- 1 / 1:"0001SFC_PRT"
- 2 / 2:"0002SFC_PRT"
- 3 / 3:"0003SFC_PRT"
- 4 / 4:"0004SFC_PRT"
- 5 / 5:"0005SFC_PRT"
- 6 / 6:"0006SFC_PRT"
- 7 / 7:"0008SFC_PRT"
- 8 / 8:"007ASFC_PRT"
- 9 / 9:"0101SFC_PRT"
- 10 / 10:"0102SFC_PRT"
-
-! *** THE VARIABLE cruise_id_xz GETS SAVED AS FLOAT INSTEAD OF STRING
-save/clobber/file=a.nc/i=1:10 cruise_id_xz
-
-! Check the file
-canc var/all
-use a.nc
-
-! Should be the same strings as above.
-list cruise_id_xz
- VARIABLE : cruise ID
- FILENAME : a.nc
- SUBSET : 10 points (X)
- 1 / 1:"0001SFC_PRT"
- 2 / 2:"0002SFC_PRT"
- 3 / 3:"0003SFC_PRT"
- 4 / 4:"0004SFC_PRT"
- 5 / 5:"0005SFC_PRT"
- 6 / 6:"0006SFC_PRT"
- 7 / 7:"0008SFC_PRT"
- 8 / 8:"007ASFC_PRT"
- 9 / 9:"0101SFC_PRT"
- 10 / 10:"0102SFC_PRT"
-
-GO bn_reset
-cancel mode verify
-GO err62_levset
-! err62_levset.jnl
-! fix for bug 1672, top color level chopped off in some circumstances
-! The color bar should extend to 385.4
-
-let var = 0*y + x
-shade/x=350:390/y=1:10/lev=(376.6,379.0,0.8)(379.0,385.4,0.2) var
-
-
-GO bn_reset
-cancel mode verify
-GO err62_thick_tic_time_axis
-! err62_thick_tic_time_axis.jnl
-! Fixing bug 1668
-!
-! On multi-year or multi-decade time-axis plots, the
-! dark line every year or 5- or 10-years, sometimes
-! disappeared due to pixel aliasing. Fixed by setting
-! the thick-line for these tics.
-
-
-define axis/t=1-jan-1990:1-jan-2010:1/units=months tax
-
-set mode meta timetics.plt
-let tt = l[gt=tax]
-set view upper; plot/thick/line cos(tt/20)
-set view lower; plot/thick/line/t=1-jan-1991:1-jan-1997 cos(tt/20)
-can view
-
-! Check that we get the thick dark black line for the tics on
-! plots with more line colors
-set mode linec:12
-sho mode linecolors
- MODE STATE ARGUMENT
- LINECOLORS SET 12
-
-can win/all
-set win/new
-
-set mode meta timetics2.plt
-
-ppl color,7,100,50,0 ! orange
-ppl color,8,0,55,0 ! dark green
-ppl color,9,60,0,100 ! purple
-ppl color,10,100,60,70 ! pink
-ppl color,11,80,70,60 ! tan
-ppl color,12,100,75,0 ! yellow
-
-
-let tt = l[gt=tax]
-plot/thick/line \
- cos(tt/20), cos(tt/24), cos(tt/28), cos(tt/32), \
- cos(tt/36), cos(tt/40), cos(tt/44), cos(tt/48), \
- cos(tt/52), cos(tt/56), cos(tt/60), cos(tt/64)
-
-can mode linecolors
-can win/all
-set win/new
-
-
-GO bn_reset
-cancel mode verify
-GO err62_reset_after_inf
-! err62_reset_after_inf.jnl
-! Bug 1292
-! The levels did not reset to default closed levels
-
-Set mode meta closed_lev.plt
-
-use levitus_climatology
-set view left
-shade/lev=(-inf)(2,24,2)(inf) temp[k=1]
-
-! The bug was that this did not reset to default closed levels
-set view right
-shade/lev=20 temp[k=1]
-cancel mode meta
-
-
-GO bn_reset
-cancel mode verify
-GO err62_reversed_up
-! err62_reversed_up.jnl
-!
-! bug 1676:
-! reversed axis, positive up, with edges could
-! not check points-inside-edges and so would
-! just use midpts between coordinates as edges
-
-use lev_rev_up.nc
-
-use lev_rev_up.nc
-list z[gz=temp], zboxlo[gz=temp], zboxhi[gz=temp]
- DATA SET: ./lev_rev_up.nc
- Z (METERS): -5000 to 0
- Column 1: Z is Z (axis ZAXLEVITR)
- Column 2: ZBOXLO is ZBOXLO (axis ZAXLEVITR)
- Column 3: ZBOXHI is ZBOXHI (axis ZAXLEVITR)
- Z ZBOXLO ZBOXHI
--5000 / 1: -5000.000 -5000.000 -4500.000
--4000 / 2: -4000.000 -4500.000 -3500.000
--3000 / 3: -3000.000 -3500.000 -2500.000
--2000 / 4: -2000.000 -2500.000 -1800.000
--1500 / 5: -1500.000 -1800.000 -1300.000
--1200 / 6: -1200.000 -1300.000 -1100.000
--1000 / 7: -1000.000 -1100.000 -900.000
--800 / 8: -800.000 -900.000 -700.000
--600 / 9: -600.000 -700.000 -500.000
--400 / 10: -400.000 -500.000 -350.000
--300 / 11: -300.000 -350.000 -250.000
--200 / 12: -200.000 -250.000 -180.000
--150 / 13: -150.000 -180.000 -120.000
--100 / 14: -100.000 -120.000 -90.000
--75 / 15: -75.000 -90.000 -60.000
--50 / 16: -50.000 -60.000 -32.000
--30 / 17: -30.000 -32.000 -24.000
--20 / 18: -20.000 -24.000 -12.000
--10 / 19: -10.000 -12.000 -5.000
-0 / 20: 0.000 -5.000 0.000
-
-! shade/j=1 temp[z=-55:0]
-! let xpts = xsequence(x[gx=temp] + 0*z[gz=temp])
-! let zpts = xsequence(0*x[gx=temp] + z[gz=temp])
-! plot/over/vs/color=lightblue/sym=27 xpts,zpts
-
-GO bn_reset
-cancel mode verify
-GO err62_samplexy
-! err62_samplexy
-! bug 1677
-
-use coads_climatology
-
-! put the data on 1:360 for convenience in seeing whats going on
-save/clobber/file=xz.nc sst[x=1:360,L=1]
-can dat/all; can mem
-
-use xz
-
-let xpts = {357.6,358.8,359.9,360.,0.1,1.2,2.4}
-let ypts = 0*xpts
-
-let sr = SAMPLEXY(sst[L=1], xpts, ypts)
-
-! previously the middle 3 points of this were missing.
-list sr
- VARIABLE : SAMPLEXY(SST[L=1], XPTS, YPTS)
- FILENAME : xz.nc
- SUBSET : 7 points (X)
- TIME : JAN
- 1 / 1: 27.46402
- 2 / 2: 27.44937
- 3 / 3: 27.53579
- 4 / 4: 27.54567
- 5 / 5: 27.55554
- 6 / 6: 27.65924
- 7 / 7: 27.74823
-
-
-GO bn_reset
-cancel mode verify
-GO err62_one_point_bounds
-! err62_one_point_bounds.jnl
-! Bug 1680
-! If a single-point axis has bounds specified,
-! then on a SAVE/BOUNDS, Ferret did not save the
-! correct bounds (but instead saved coord+/- 0.5)
-
-DEFINE AXIS/BOUNDS/Z/UNITS=meters myzaxis = {5}, {4.89,5.11}
-LET zz = Z[GZ=myzaxis]
-SAVE/BOUNDS/CLOBBER/FILE=a.nc zz
-LIST Z[GZ=zz], ZBOXLO[GZ=zz], ZBOXHI[GZ=zz]
- Z (METERS): 5
- Column 1: Z is Z (axis MYZAXIS)
- Column 2: ZBOXLO is ZBOXLO (axis MYZAXIS)
- Column 3: ZBOXHI is ZBOXHI (axis MYZAXIS)
- Z ZBOXLO ZBOXHI
-I / *: 5.000000 4.890000 5.110000
-
-CAN DAT/ALL; CAN VAR/ALL
-USE a.nc
-! This should match the output of the LIST above
-LIST Z[GZ=zz], ZBOXLO[GZ=zz], ZBOXHI[GZ=zz]
- DATA SET: ./a.nc
- Z (meters): 5
- Column 1: Z is Z (axis MYZAXIS1)
- Column 2: ZBOXLO is ZBOXLO (axis MYZAXIS1)
- Column 3: ZBOXHI is ZBOXHI (axis MYZAXIS1)
- Z ZBOXLO ZBOXHI
-I / *: 5.000000 4.890000 5.110000
-
-GO bn_reset
-cancel mode verify
-GO err62_cos_lat_uncentered
-!err62_cos_lat_uncentered.jnl
-! See this thread, here is the esample, with his test.nc renamed to uncentered.nc
-! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2009/msg00510.html
-! Also see the last comments from Andrew on bug 1348.
-
-use uncentered.nc
-define grid/like=test grd
-
-! list edges
-list yboxlo[g=grd],yboxhi[g=grd]
- LATITUDE: 90S to 90N
- Column 1: YBOXLO is YBOXLO (axis LAT_T)
- Column 2: YBOXHI is YBOXHI (axis LAT_T)
- YBOXLO YBOXHI
-76.5S / 1: -90.00000 -70.81186
-66.4S / 2: -70.81186 -62.73396
-59.4S / 3: -62.73396 -56.44269
-53.7S / 4: -56.44269 -51.05756
-48.6S / 5: -51.05756 -46.23826
-44S / 6: -46.23826 -41.81031
-39.7S / 7: -41.81031 -37.66989
-35.7S / 8: -37.66989 -33.74899
-31.9S / 9: -33.74899 -30.00000
-28.2S / 10: -30.00000 -26.38780
-24.6S / 11: -26.38780 -22.88538
-21.2S / 12: -22.88538 -19.47122
-17.8S / 13: -19.47122 -16.12762
-14.5S / 14: -16.12762 -12.83959
-11.2S / 15: -12.83959 -9.59407
-8S / 16: -9.59407 -6.37937
-4.8S / 17: -6.37937 -3.18474
-1.6S / 18: -3.18474 -0.00000
-1.6N / 19: -0.00000 3.18474
-4.8N / 20: 3.18474 6.37937
-8N / 21: 6.37937 9.59407
-11.2N / 22: 9.59407 12.83959
-14.5N / 23: 12.83959 16.12762
-17.8N / 24: 16.12762 19.47122
-21.2N / 25: 19.47122 22.88538
-24.6N / 26: 22.88538 26.38780
-28.2N / 27: 26.38780 30.00000
-31.9N / 28: 30.00000 33.74899
-35.7N / 29: 33.74899 37.66989
-39.7N / 30: 37.66989 41.81031
-44N / 31: 41.81031 46.23826
-48.6N / 32: 46.23826 51.05756
-53.7N / 33: 51.05756 56.44269
-59.4N / 34: 56.44269 62.73396
-66.4N / 35: 62.73396 70.81186
-76.5N / 36: 70.81186 90.00000
-
-! calculate weights w1 and w2
-let rad = 3.14159265/180
-let w1 = (yboxhi[i=1,g=grd]-yboxlo[i=1,g=grd])*cos(y[i=1,g=grd]*rad)
-let w2 = sin(yboxhi[i=1,g=grd]*rad) - sin(yboxlo[i=1,g=grd]*rad)
-
-! list normalized weights
-list w1/w1[j=@sum],w2/w2[j=@sum]
- LATITUDE: 90S to 90N
- Column 1: EX#1 is W1/W1[J=@SUM]
- Column 2: EX#2 is W2/W2[J=@SUM]
- EX#1 EX#2
-76.5S / 1: 0.03826170 0.02777778
-66.4S / 2: 0.02750340 0.02777778
-59.4S / 3: 0.02724976 0.02777778
-53.7S / 4: 0.02718343 0.02777778
-48.6S / 5: 0.02715676 0.02777778
-44S / 6: 0.02714348 0.02777778
-39.7S / 7: 0.02713596 0.02777778
-35.7S / 8: 0.02713132 0.02777778
-31.9S / 9: 0.02712828 0.02777778
-28.2S / 10: 0.02712619 0.02777778
-24.6S / 11: 0.02712471 0.02777778
-21.2S / 12: 0.02712365 0.02777778
-17.8S / 13: 0.02712287 0.02777778
-14.5S / 14: 0.02712229 0.02777778
-11.2S / 15: 0.02712188 0.02777778
-8S / 16: 0.02712159 0.02777778
-4.8S / 17: 0.02712141 0.02777778
-1.6S / 18: 0.02712133 0.02777778
-1.6N / 19: 0.02712133 0.02777778
-4.8N / 20: 0.02712141 0.02777778
-8N / 21: 0.02712159 0.02777778
-11.2N / 22: 0.02712188 0.02777778
-14.5N / 23: 0.02712229 0.02777778
-17.8N / 24: 0.02712287 0.02777778
-21.2N / 25: 0.02712365 0.02777778
-24.6N / 26: 0.02712471 0.02777778
-28.2N / 27: 0.02712619 0.02777778
-31.9N / 28: 0.02712828 0.02777778
-35.7N / 29: 0.02713132 0.02777778
-39.7N / 30: 0.02713596 0.02777778
-44N / 31: 0.02714348 0.02777778
-48.6N / 32: 0.02715676 0.02777778
-53.7N / 33: 0.02718343 0.02777778
-59.4N / 34: 0.02724976 0.02777778
-66.4N / 35: 0.02750340 0.02777778
-76.5N / 36: 0.03826170 0.02777778
-
-! list weights calculated by Ferret at j=1,2,3,4,5,18
-let all = if test gt 0 then 1
-let total_area = all[x=@din,y=@din]
-let cell1 = if test eq 1 then 1
-let cell2 = if test eq 2 then 1
-let cell3 = if test eq 3 then 1
-let cell4 = if test eq 4 then 1
-let cell5 = if test eq 5 then 1
-let cell18 = if test eq 18 then 1
-list cell1[x=@din,y=@din]/total_area
- VARIABLE : CELL1[X=@DIN,Y=@DIN]/TOTAL_AREA
- FILENAME : uncentered.nc
- LONGITUDE: 100E to 100E(460)
- LATITUDE : 90S to 90N
- 0.02777782
-list cell2[x=@din,y=@din]/total_area
- VARIABLE : CELL2[X=@DIN,Y=@DIN]/TOTAL_AREA
- FILENAME : uncentered.nc
- LONGITUDE: 100E to 100E(460)
- LATITUDE : 90S to 90N
- 0.02777779
-list cell3[x=@din,y=@din]/total_area
- VARIABLE : CELL3[X=@DIN,Y=@DIN]/TOTAL_AREA
- FILENAME : uncentered.nc
- LONGITUDE: 100E to 100E(460)
- LATITUDE : 90S to 90N
- 0.02777778
-list cell4[x=@din,y=@din]/total_area
- VARIABLE : CELL4[X=@DIN,Y=@DIN]/TOTAL_AREA
- FILENAME : uncentered.nc
- LONGITUDE: 100E to 100E(460)
- LATITUDE : 90S to 90N
- 0.02777778
-list cell5[x=@din,y=@din]/total_area
- VARIABLE : CELL5[X=@DIN,Y=@DIN]/TOTAL_AREA
- FILENAME : uncentered.nc
- LONGITUDE: 100E to 100E(460)
- LATITUDE : 90S to 90N
- 0.02777778
-list cell18[x=@din,y=@din]/total_area
- VARIABLE : CELL18[X=@DIN,Y=@DIN]/TOTAL_AREA
- FILENAME : uncentered.nc
- LONGITUDE: 100E to 100E(460)
- LATITUDE : 90S to 90N
- 0.02777777
-
-GO bn_reset
-cancel mode verify
-GO err62_if_inside_repeat
-! err62_if_inside_repeat.jnl
-! Bug 1681. Parsing error when, inside the REPEAT, we have
-! endif) on a line of its own.
-
-! the fix for this bug causes a worse bug for GFDL (see #1706).
-! Thought I had a better fix but it turns out not. For now
-! reverting all the code surrounding these fixes. Do not
-! execute these tests.
-
-cancel mode verify
-test1
-test2
-test3
-Now try the same tests with IF 1 inside the REPEATs
-test4
-test5
-test6
-Now try the same tests with IF 1 to execute everything.
-test7
- hello7
- hello7
-test8
- hello8
- hello8
-test9
- hello9
- hello9
-Now try the same tests with IF 1 and ELSE.
-test10
- hello10
- hello10
-test11
- hello11
- hello11
-test12
- hello12
- hello12
-Now try the same tests with IF 0 and ELSE.
-test13
- else13
- else13
-test14
- else14
- else14
-test15
- else15
- else15
-Now try the same tests with IF 0 and ELIF.
-test16
- elif16
- elif16
-test17
- elif17
- elif17
-test18
- elif18
- elif18
-Next should a line that says --->here
-And then a line that says 201.
---->here
- 201.0000
-done
-
-GO bn_reset
-cancel mode verify
-GO err62_title_curvi_plot
-! err62_title_curvi_plot.jnl
-! bug 1669; when the variable and its coordinate variables
-! come from different datasets, we get the variable def, not
-! its title as the main title.
-! The titles should all be SEA SURFACE TEMPERATURE (Deg C)
-
-use coads_climatology
-let xval = x[gx=sst[d=1]]+0*y[gy=sst[d=1]]
-let yval = y[gy=sst[d=1]]+0*x[gx=sst[d=1]]
-save/clob/file=a.nc sst[l=1:2], xval, yval
-
-can var/all
-use a.nc
-set v ul; shade sst[d=1,l=1], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
-set v ur; shade sst[d=2,l=1], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
-
-set v ll; fill sst[d=1,l=1], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
-set v lr; fill sst[d=2,l=1], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
-
-can view
-set v ul; vector/xskip=10/yskip=10 sst[d=1,l=1],sst[d=1,l=2], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C) , SEA SURFACE TEMPERATURE (Deg C)"
-set v ur; vector/xskip=10/yskip=10 sst[d=2,l=1],sst[d=2,l=2], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C) , SEA SURFACE TEMPERATURE (Deg C)"
-
-set v ll; contour sst[d=1,l=1], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
-set v lr; contour sst[d=2,l=1], xval[d=2], yval[d=2]; sh sym labtit
-LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
-
-GO bn_reset
-cancel mode verify
-go err62_save_missingcoordvar
-! err62_save_missingcoordvar.jnl
-! see bug 1686
-! The dataset doesn't have a coordinate variable, in this case TIME
-! Ferret gives it an abstract axis, but then cant SAVE the variable.
-
-! This dataset behaves this way
-! use "http://test.opendap.org/opendap/data/nc/data.nc"
-
-! create a local dataset
-use timemissing.nc
-save/clobber/file=a.nc sst
-
-
-GO bn_reset
-cancel mode verify
-GO err62_contourbug
-! err62_contourbug.jnl
-! Bug 1688
-! contours of curvi data when x units not longitude
-! some contour lines draw across the plot
-
-let xb=x[x=0:290:10]
-let yb=y[y=0:290:10]
-let xb2 = xb + 0*yb
-let zb=I[x=0:290:10]*J[y=0:290:10]
-contour/hlimits=-100:400:50 xb2+zb,xb2,zb
-
-! A FILL version of the same general thing
-let xb = x[x=0:290:10]
-let yb = y[y=0:290:10]
-let xb2 = xb + 0*yb
-let zb = I[x=0:290:10] * J[y=0:290:10]
-fill/hlimits=-100:400:50 0.0000001*(xb2+zb)^3,xb2,zb
-
-
-GO bn_reset
-cancel mode verify
-GO err62_append_irreg_to_reg
-! err62_append_irreg_to_reg.jnl
-! bug 1692
-
-! See Patrick's report:
-! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2009/msg00620.html
-! where he points to another example.
-!
-! Turns out he was appending irreg time coords to a regular time axis
-! and Ferret needs a better error message
-
-SET MODE IGNORE
-
-! By default a regular axis gets no bounds on a SAVE
-DEFINE AXIS/T t_axis = {1,2,3,4,5}
-LET var = T[GT=t_axis]
-SAVE/CLOBBER/FILE=t_bug.nc var
-
-! Now try to append this irregularly-spaced data to the above
-DEFINE AXIS/T t_axis = {6,8,9,10,12,13}
-SAVE/FILE=t_bug.nc/APPEND var
-
-! previously the message just said
-! ** netCDF error: Variable not found
-
-! Msg should explain that it was the bounds variable, needed
-! for the append, but not found in the existing file.
-
-SET MODE/LAST IGNORE
-
-GO bn_reset
-cancel mode verify
-GO err62_axis_stride_off
-! err62_axis_stride_off.jnl
-! fixing bug 1689: offset shifted by 1 so /OFFSET=0 >> start index = 1
-
-USE truemonth.nc
-
-SET AXIS/STRIDE=12/OFFSET=0 truemonth ! every January
-LIST var
- VARIABLE : COS(T[GT=TRUEMONTH]/100)
- FILENAME : truemonth.nc
- SUBSET : 20 points (TIME)
- 16-JAN-1950 / 1: 0.8458605
- 16-JAN-1951 / 2: -0.4792148
- 16-JAN-1952 / 3: -0.0086413
- 16-JAN-1953 / 4: 0.5029880
- 16-JAN-1954 / 5: -0.8600939
- 16-JAN-1955 / 6: 0.9996375
- 16-JAN-1956 / 7: -0.8863128
- 16-JAN-1957 / 8: 0.5403982
- 16-JAN-1958 / 9: -0.0624683
- 16-JAN-1959 / 10: -0.4312768
- 16-JAN-1960 / 11: 0.8159143
- 16-JAN-1961 / 12: -0.9951944
- 16-JAN-1962 / 13: 0.9169914
- 16-JAN-1963 / 14: -0.6068212
- 16-JAN-1964 / 15: 0.1431603
- 16-JAN-1965 / 16: 0.3660465
- 16-JAN-1966 / 17: -0.7727474
- 16-JAN-1967 / 18: 0.9839827
- 16-JAN-1968 / 19: -0.9463078
- 16-JAN-1969 / 20: 0.6617913
-
-CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX133)
-SET AXIS/STRIDE=12/OFFSET=11 truemonth ! every December
-LIST var
- VARIABLE : COS(T[GT=TRUEMONTH]/100)
- FILENAME : truemonth.nc
- SUBSET : 19 points (TIME)
- DEC-1950 / 1: -0.7241199
- DEC-1951 / 2: 0.2968155
- DEC-1952 / 3: 0.2153545
- DEC-1953 / 4: -0.6634768
- DEC-1954 / 5: 0.9437761
- DEC-1955 / 6: -0.9853337
- DEC-1956 / 7: 0.7713169
- DEC-1957 / 8: -0.3639512
- DEC-1958 / 9: -0.1354919
- DEC-1959 / 10: 0.6006479
- DEC-1960 / 11: -0.9178868
- DEC-1961 / 12: 0.9949715
- DEC-1962 / 13: -0.8203671
- DEC-1963 / 14: 0.4382506
- DEC-1964 / 15: 0.0647143
- DEC-1965 / 16: -0.5422904
- DEC-1966 / 17: 0.8826929
- DEC-1967 / 18: -0.9998160
- DEC-1968 / 19: 0.8589436
-
-SET MODE IGNORE_ERRROR
-! Previously didnt check for negative offset value
-CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX139)
-SET AXIS/STRIDE=12/OFFSET=-1 truemonth
-
-! Previously didnt give err msg; just ignored non-positive stride value
-SET AXIS/STRIDE=-1/OFFSET=1 truemonth
-
-SET MODE/LAST IGNORE
-
-
-
-
-
-GO bn_reset
-cancel mode verify
-GO err62_compound_string_conditional
-! err62_compound_string_conditional
-! Bug 1380
-
-LIST 1 EQ 2 or 3 EQ 3 ! all numeric
- VARIABLE : 1 EQ 2 OR 3 EQ 3
- 1.000000
-
-LIST "a" EQ "b"
- VARIABLE : "a" EQ "b"
- 0.0000000
-LIST "b" EQ "b"
- VARIABLE : "b" EQ "b"
- 1.000000
-LIST "a" EQ "b" OR "b" EQ "b" ! should be 1
- VARIABLE : "a" EQ "b" OR "b" EQ "b"
- 1.000000
-LIST "a" EQ "b" AND "b" EQ "b" ! should be 0
- VARIABLE : "a" EQ "b" AND "b" EQ "b"
- 0.0000000
-
-LIST "a" LE "b" AND 3 EQ 3 ! should be 1
- VARIABLE : "a" LE "b" AND 3 EQ 3
- 1.000000
-
-LIST 1 EQ 2 OR "A" EQ "B" ! should be 0
- VARIABLE : 1 EQ 2 OR "A" EQ "B"
- 0.0000000
-
-
-GO bn_reset
-cancel mode verify
-GO bn_axis_reversed_syms
-! bn_axis_reversed_syms.jnl
-! XAXIS_REVERSED and YAXIS_REVERSED are
-! set to 0 or if the reversed-axis is
-! plotted upside-down, set to 1
-
-use gt4d011.cdf
-shade/i=91/L=1 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-contour/i=91/j=35 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-vector/k=1/l=4 u,v
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-vector/j=41/l=4 u,v
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-fill/j=41/l=4 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-shade/j=41/k=4 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-
-! with /TRANS. None of these will have YAXIS_REVERSED=1
-shade/trans/i=91/L=1 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-contour/trans/i=91/j=35 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-vector/trans/k=1/l=4 u,v
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-vector/trans/j=41/l=4 u,v
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-fill/trans/j=41/l=4 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-shade/trans/j=41/k=4 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-
-! in viewports
-set view ul; shade/i=91/L=1 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-set view ur; contour/i=91/j=35 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-set view ll; vector/k=1/l=4 u,v
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "0"
-set view lr; fill/j=41/l=4 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-
-! also set with SHADE/SET
-cancel viewports
-
-shade/set/i=91/L=1 temp
-sh sym *axis_reversed
-XAXIS_REVERSED = "0"
-YAXIS_REVERSED = "1"
-
-
-GO bn_reset
-cancel mode verify
-GO bn_isdepth
-! Tests of `var,RETURN=ISDEPTH`
-
-define axis/units=meters/z=0:100:2 zup
-let zz = z[gz=zup]
-say `zz,return=isdep`
- !-> MESSAGE/CONTINUE 0
-0
-
-define axis/units=meters/z=0:200:2/depth zdn
-let zz = z[gz=zdn]
-say `zz,return=isdep`
- !-> MESSAGE/CONTINUE 1
-1
-
-use gtbc011
-say `temp,return=isdepth`
- !-> MESSAGE/CONTINUE 1
-1
-
-use coads_climatology
-say `sst,return=isdepth`
- !-> MESSAGE/CONTINUE NORMAL
-NORMAL
-
-can data 2
-
-cancel axis/depth `temp,return=zaxis`
- !-> cancel axis/depth PSZT1
-say `temp,return=isdepth`
- !-> MESSAGE/CONTINUE 0
-0
-
-
-GO bn_reset
-cancel mode verify
-GO bn_var_hist_levels.jnl
-! bn_var_hist_levels.jnl
-! Syntax for variance-based or histogram-based levels
-!
-
-use levitus_climatology
-
-! Variance levels
-shade/line/lev=50v/title="/LEV=50v" temp[K=1]
-
-! New symbol LEV_OPNLEVS captures the levels set with /V or VC
-sh sym lev*
-LEV_TEXT = "50V"
-LEV_MIN = "-2"
-LEV_MAX = "30.74"
-LEV_NUM = "56"
-LEV_DEL = "0.5"
-LEV_OPNLEVS = "(-2,3.05,0.505)(3.5,25.5,0.5)(25.5,25.5,0.505)(inf)"
-
-shade/line/lev=50v,5min/title="/LEV=50v,5min" temp[K=1]
-shade/line/lev=50v,5mean/title="/LEV=50v,5mean" temp[K=1]
-shade/line/lev=50v,25max/title="/LEV=50v,25max" temp[K=1]
-shade/line/lev=50v,1d/title="/LEV=50v,1d" temp[K=1]
-
-! If the data has lots of negative data, the computation of
-! the std deviation was incorrect. See ticket 1778.
-
-let negvar = -1* temp
-
-shade/line/lev=50v,-20min/title="/LEV=50v,-20min" negvar[K=1]
-shade/line/lev=50v,-15mean/title="/LEV=50v,-15mean" negvar[K=1]
-shade/line/lev=50v,-15max/title="/LEV=50v,-15max" negvar[K=1]
-shade/line/lev=50v,1d/title="/LEV=50v,1d" negvar[K=1]
-
-! Histogram-based
-shade/line/lev=50h/title="/LEV=50h" temp[K=1]
-
-
-! Need some tests with centered levels and with /LINE
-
-let cvar = temp - 15
-
-shade/line/key/lev=50v/title="/LEV=50v,-20min" cvar[K=1]
-shade/line/key/lev=50v/title="/LEV=50v,-15mean" cvar[K=1]
-shade/line/key/lev=50v/title="/LEV=50v,-15max" cvar[K=1]
-shade/line/key/lev=50v,1d/title="/LEV=50v,1d" cvar[K=1]
-
-
-shade/line/key/lev=cv/title="/LEV=cv" cvar[K=1]
-shade/line/key/lev=50/title="/LEV=50" cvar[K=1]
-shade/line/key/lev=50c/title="/LEV=50c" cvar[K=1]
-shade/line/key/lev=c,1d/title="/LEV=c,1d" cvar[K=1]
-shade/line/key/lev=20c,1d/title="/LEV=20c,1d" cvar[K=1]
-
-! Histogram-based
-shade/line/key/lev=50h/title="/LEV=50h" cvar[K=1]
-
-
-
-! ******** V6.4 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn64_bug_fixes
-! bn64_bug_fixes.jnl
-! Fixes that go into v6.4 release
-
-! (changes were made to err62_if_inside_repeat.jnl
-! which is run previously.)
-
-GO bn_reset
-cancel mode verify
-GO err63_days1900toydmhms
-! err63_days1900toydmhms.jnl
-!
-! Bug reported by Jaison Kurian
-! 32-bit linux, this returned the wrong month
-! and day for start of March.
-
-define axis/t=21241:21245:1 tax
-let julshift = DAYS1900(1950,1,1)
-let julday = t[gt=tax] + julshift
-let tpts = DAYS1900TOYMDHMS(julday)
-list/k=2:3 tpts
- VARIABLE : DAYS1900TOYMDHMS(JULDAY)
- SUBSET : 2 by 5 points (Z-T)
- 2 3
- 2 3
- 21241 / 1: 2.00000 27.00000
- 21242 / 2: 2.00000 28.00000
- 21243 / 3: 2.00000 29.00000
- 21244 / 4: 3.00000 1.00000
- 21245 / 5: 3.00000 2.00000
-
-GO bn_reset
-cancel mode verify
-GO err63_log_vaxis
-! err63_log_vaxis.jnl
-! fix for bug 1708
-! This example from Patrick Brockmann.
-
-! ok
-set view left
-def axis/z=10:10000:10 vert_axis_up
-plot/vlog z[gz=vert_axis_up]
-
-
-! not ok : left vertical log axis is down. right vertical axis is up
-set view right
-def axis/z=10:10000:10/depth vert_axis_dn
-plot/vlog z[gz=vert_axis_dn]
-
-GO bn_reset
-cancel mode verify
-GO err63_delim_E.jnl
-! err63_delim_E.jnl
-! bug 1700
-! On delimited reads, looking for strings ending with E for longitudes.
-! But need to check if its just a string ending in E such as ZAIRE
-
-sp rm -f names
-sp echo ZAIRE > names
-sp echo E >> names
-columns names
-list v1
- VARIABLE : V1
- FILENAME : names
- SUBSET : 2 points (X)
- 1 / 1:"ZAIRE"
- 2 / 2:"E"
-
-can dat/all
-sp rm -f names
-sp echo zaire > names
-columns names
-list v1
- VARIABLE : V1
- FILENAME : names
- X : 1
- "zaire"
-
-can dat/all
-sp rm -f names
-sp echo ZAIRA > names
-columns names
-list v1
- VARIABLE : V1
- FILENAME : names
- X : 1
- "ZAIRA"
-
-GO bn_reset
-cancel mode verify
-GO bn_long_grid_names
-! bn_long_grid_names.jnl
-! test longer grid names (16 --> 64 chars)
-! tests taken from other bn scripts but with longer grid names
-
-! read onto a 2D grid
-DEFINE AXIS/X=1:3:1 xez1
-DEFINE GRID/X=XEZ1/Y=EZ ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
-
-FILE/VAR="X1,X2"/COLUMNS=6/GRID=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 EZ.DAT
-SHOW DATA/FULL
- currently SET data sets:
- 1> ./EZ.DAT (default)
-
- name title I J K L M N
- X1 X1 1:3 1:20480 ... ... ... ...
- on grid ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 with -1.E+34 for missing data
- X=0.5:3.5 Y=0.5:20481
- X2 X2 1:3 1:20480 ... ... ... ...
- on grid ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 with -1.E+34 for missing data
- X=0.5:3.5 Y=0.5:20481
-
- /FORMAT = FREE
- /SKIP = 0
- /COLUMNS = 6
-LIST X1
- VARIABLE : X1
- FILENAME : EZ.DAT
- SUBSET : 3 by 5 points (X-Y)
- 1 2 3
- 1 2 3
- 1 / 1: 0.0060000 0.1760000 0.2820000
- 2 / 2: 0.3550000 0.3790000 0.3930000
- 3 / 3: 0.4100000 0.4170000 0.4670000
- 4 / 4: 0.4350000 0.4440000 0.4700000
- 5 / 5: 0.4780000 0.5150000 0.4690000
-SHOW DATA
- currently SET data sets:
- 1> ./EZ.DAT (default)
- name title I J K L M N
- X1 X1 1:3 1:5 ... ... ... ...
- X2 X2 1:3 1:5 ... ... ... ...
-
-CAN DATA/ALL
-
-define axis/x=2:20:2 xeven
-define axis/x=1:19:2 xodd
-define axis/y=2:20:2 yeven
-define axis/y=1:19:2 yodd
-define axis/z=2:20:2 zeven
-define axis/z=1:19:2 zodd
-define axis/t=2:20:2/t0="1-jan-1980"/unit=days teven
-define axis/t=1:19:2/t0="1-jan-1980"/unit=days todd
-
-define grid/x=xeven/y=yeven/z=zeven/t=teven even
-
-define grid/x=xodd/y=yodd/z=zodd/t=todd g00abcdefghijklmnopqrstuvwxyz1234567890
-
-LET veven = 1000*i[g=even] + 100*j[g=even] + 10*k[g=even] + l[g=even]
-
-LET v1234 = veven[g=g00abcdefghijklmnopqrstuvwxyz1234567890]
-
-SET REGION/X=4.01:8.99/Y=4.01:8.99/Z=4.01:8.99/T=4.01:8.99
-
-list veven
- VARIABLE : 1000*I[G=EVEN] + 100*J[G=EVEN] + 10*K[G=EVEN] + L[G=EVEN]
- SUBSET : 3 by 3 by 3 by 3 points (X-Y-Z-TIME)
- 4 6 8
- 2 3 4
- ---- L:2 T: JAN-1980
- ---- K:2 Z: 4
- 4 / 2: 2222.000 3222.000 4222.000
- 6 / 3: 2322.000 3322.000 4322.000
- 8 / 4: 2422.000 3422.000 4422.000
- ---- K:3 Z: 6
- 4 / 2: 2232.000 3232.000 4232.000
- 6 / 3: 2332.000 3332.000 4332.000
- 8 / 4: 2432.000 3432.000 4432.000
- ---- K:4 Z: 8
- 4 / 2: 2242.000 3242.000 4242.000
- 6 / 3: 2342.000 3342.000 4342.000
- 8 / 4: 2442.000 3442.000 4442.000
- ---- L:3 T: JAN-1980
- ---- K:2 Z: 4
- 4 / 2: 2223.000 3223.000 4223.000
- 6 / 3: 2323.000 3323.000 4323.000
- 8 / 4: 2423.000 3423.000 4423.000
- ---- K:3 Z: 6
- 4 / 2: 2233.000 3233.000 4233.000
- 6 / 3: 2333.000 3333.000 4333.000
- 8 / 4: 2433.000 3433.000 4433.000
- ---- K:4 Z: 8
- 4 / 2: 2243.000 3243.000 4243.000
- 6 / 3: 2343.000 3343.000 4343.000
- 8 / 4: 2443.000 3443.000 4443.000
- ---- L:4 T: JAN-1980
- ---- K:2 Z: 4
- 4 / 2: 2224.000 3224.000 4224.000
- 6 / 3: 2324.000 3324.000 4324.000
- 8 / 4: 2424.000 3424.000 4424.000
- ---- K:3 Z: 6
- 4 / 2: 2234.000 3234.000 4234.000
- 6 / 3: 2334.000 3334.000 4334.000
- 8 / 4: 2434.000 3434.000 4434.000
- ---- K:4 Z: 8
- 4 / 2: 2244.000 3244.000 4244.000
- 6 / 3: 2344.000 3344.000 4344.000
- 8 / 4: 2444.000 3444.000 4444.000
-list v1234
- VARIABLE : VEVEN[G=G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890]
- SUBSET : 3 by 3 by 3 by 3 points (X-Y-Z-TIME)
- 5 7 9
- 3 4 5
- ---- L:3 T: JAN-1980
- ---- K:3 Z: 5
- 5 / 3: 2777.500 3777.500 4777.500
- 7 / 4: 2877.500 3877.500 4877.500
- 9 / 5: 2977.500 3977.500 4977.500
- ---- K:4 Z: 7
- 5 / 3: 2787.500 3787.500 4787.500
- 7 / 4: 2887.500 3887.500 4887.500
- 9 / 5: 2987.500 3987.500 4987.500
- ---- K:5 Z: 9
- 5 / 3: 2797.500 3797.500 4797.500
- 7 / 4: 2897.500 3897.500 4897.500
- 9 / 5: 2997.500 3997.500 4997.500
- ---- L:4 T: JAN-1980
- ---- K:3 Z: 5
- 5 / 3: 2778.500 3778.500 4778.500
- 7 / 4: 2878.500 3878.500 4878.500
- 9 / 5: 2978.500 3978.500 4978.500
- ---- K:4 Z: 7
- 5 / 3: 2788.500 3788.500 4788.500
- 7 / 4: 2888.500 3888.500 4888.500
- 9 / 5: 2988.500 3988.500 4988.500
- ---- K:5 Z: 9
- 5 / 3: 2798.500 3798.500 4798.500
- 7 / 4: 2898.500 3898.500 4898.500
- 9 / 5: 2998.500 3998.500 4998.500
- ---- L:5 T: JAN-1980
- ---- K:3 Z: 5
- 5 / 3: 2779.500 3779.500 4779.500
- 7 / 4: 2879.500 3879.500 4879.500
- 9 / 5: 2979.500 3979.500 4979.500
- ---- K:4 Z: 7
- 5 / 3: 2789.500 3789.500 4789.500
- 7 / 4: 2889.500 3889.500 4889.500
- 9 / 5: 2989.500 3989.500 4989.500
- ---- K:5 Z: 9
- 5 / 3: 2799.500 3799.500 4799.500
- 7 / 4: 2899.500 3899.500 4899.500
- 9 / 5: 2999.500 3999.500 4999.500
-stat veven
-
- 1000*I[G=EVEN] + 100*J[G=EVEN] + 10*K[G=EVEN] + L[G=EVEN]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: JAN-1980 to JAN-1980
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2222
- Maximum value: 4444
- Mean value: 3333 (unweighted average)
- Standard deviation: 825.72
-
-! first all from one memory variable
-load/x=1:11/y=1:11/z=1:11/t=1:11 veven
-stat v1234[g=even]-veven, v1234
-
- V1234[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: JAN-1980 to JAN-1980
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: 4.01 to 8.99
- TIME: JAN-1980 to JAN-1980
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*3*3*1*1)
- # flagged as bad data: 0
- Minimum value: 2777.5
- Maximum value: 4999.5
- Mean value: 3888.5 (unweighted average)
- Standard deviation: 825.72
-
-go bn_reset
-cancel mode verify
-! regrid_transforms
-use gtsa056_1
-use gtsa056_2
-set mode diag
-
-define axis/t=15-jan-1982:15-mar-1984:120/unit=hour tax5day
-define axis/x=120e:60w:10/unit=degrees xax10
-define grid/like=u/t=tax5day g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day
- getgrid EX#1 C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
-define grid/like=u/x=xax10/z=w/t=tax5day g5_10g00abcdefghijklmnopqrstuvwxyz1234567890
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- getgrid EX#1 C: 8 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- getgrid EX#1 C: 9 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DW11 PSXT1 PSYT1 PSZW TIME13 NORMAL NORMAL
-
-set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
-!set reg/i=101:105/j=41:42/k=1:2/l=3:4
-
-use gtsa056_1 !kob 4/99
-
-LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc dynamic grid PS3DW11 PSXT1 PSYT1 PSZW TIME13 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
- strip regrid on Z: TEMP --> XNTERMED @AVE
- strip regrid on T: TEMP --> ZNTERMED @AVE
- reading TEMP M: 43 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 42 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 42 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 42 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at AAV, on Y at AAV*
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 2 points (LATITUDE-TIME)
- LONGITUDE: 130W
- DEPTH (m): 10
- 0 0.33N 0.67N 1N 1.33N
- 45 46 47 48 49
- 20-JAN-1982 00 / 2: 23.88290 23.97420 24.14894 24.37499 24.62556
- 25-JAN-1982 00 / 3: 23.88501 23.98344 24.16565 24.39832 24.65027
-LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @AVE
- strip regrid on Y: TEMP --> XNTERMED @LIN
- strip regrid on Z: TEMP --> YNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @LIN
- found TEMP M: 43 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 32 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 32 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 32 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 2 points (LATITUDE-TIME)
- LONGITUDE: 130W
- DEPTH (m): 10
- 0 0.33N 0.67N 1N 1.33N
- 45 46 47 48 49
- 20-JAN-1982 00 / 2: 23.88380 23.97520 24.15006 24.37614 24.62650
- 25-JAN-1982 00 / 3: 23.87741 23.97277 24.15346 24.38574 24.63814
-
-LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @LIN
- strip regrid on Z: TEMP --> XNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @ASN
- found TEMP M: 43 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 29 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 34 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 29 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 by 2 points (LATITUDE-TIME)
- LONGITUDE: 130W
- DEPTH (m): 10
- 0 0.33N 0.67N 1N 1.33N
- 45 46 47 48 49
- 20-JAN-1982 00 / 2: 23.75267 23.76377 23.87293 24.04456 24.25203
- 25-JAN-1982 00 / 3: 23.74388 23.73211 23.81637 23.96577 24.15370
-
-! T axis
-use gtsa056_2 !kob 4/99
-set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
-load temp[i=50:51,j=45:56,k=1:2,l=1:172] ! preload to save time
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DT1 PSXT1 PSYT1 PSZT1 TIME13 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip moduloing TEMP on T axis: 1 172 dset: 2
- reading TEMP M: 29 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 168 dset: 2
-plot temp
- dealloc dynamic grid PS3DT1 PSXT1 PSYT1 PSZT1 TIME13 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DT1 PSXT1 PSYT1 PSZT1 TIME13 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
-setting up plot
-PPL plot 753 complete
-plot/over temp[g=u]
- dealloc dynamic grid PS3DT1 PSXT1 PSYT1 PSZT1 TIME13 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- strip moduloing TEMP on T axis: 3 170 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 28 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 3 168 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 27 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 2 dset: 2
-setting up plot
-PPL plot 754 complete
-plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
- strip regrid on T: TEMP --> XNTERMED @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
- regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 23 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-setting up plot
-PPL plot 755 complete
-plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
- dealloc dynamic grid G5DAYG5DAYG5DAYGPSXU PSYU PSZT1 TAX5DAY NORMAL NORMAL
- -DELETE TEMP M: 23 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
- strip regrid on Z: TEMP --> XNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
- regrid TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 23 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-setting up plot
-PPL plot 756 complete
-plot/over temp[g=u at ave]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- strip moduloing TEMP on T axis: 3 170 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @AAV
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 26 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 3 168 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @AAV
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 19 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 2 dset: 2
-setting up plot
-PPL plot 757 complete
-plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @AAV
- strip regrid on T: TEMP --> XNTERMED @AVE
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
- regrid TEMP M: 18 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 17 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 18 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-setting up plot
-PPL plot 758 complete
-plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc dynamic grid G5DAYG5DAYG5DAYGPSXU PSYU PSZT1 TAX5DAY NORMAL NORMAL
- -DELETE TEMP M: 17 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
- strip regrid on Z: TEMP --> XNTERMED @AVE
- strip regrid on T: TEMP --> ZNTERMED @AVE
- strip moduloing TEMP on T axis: 2 171 dset: 2
- reading TEMP M: 17 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 168 dset: 2
- regrid TEMP M: 16 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 13 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 16 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 16 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 13 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-setting up plot
-PPL plot 759 complete
-plot/over temp[g=u at asn]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- strip moduloing TEMP on T axis: 3 170 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
- regrid TEMP M: 13 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- regrid TEMP M: 14 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 13 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 3 168 dset: 2
- strip regrid on X: TEMP --> PS3DU1 @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- found TEMP M: 17 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- regrid TEMP M: 15 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- regrid TEMP M: 12 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 15 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- doing moduloing TEMP on T axis: 1 2 dset: 2
-setting up plot
-PPL plot 760 complete
-plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10G00ABCDEFGH @ASN
- strip regrid on Y: TEMP --> XNTERMED @ASN
- strip regrid on Z: TEMP --> YNTERMED @ASN
- strip regrid on T: TEMP --> ZNTERMED @ASN
- reading TEMP M: 15 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-setting up plot
-PPL plot 761 complete
-plot/over temp[g=u,gt=u at ave]
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- found TEMP M: 24 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
-setting up plot
-PPL plot 762 complete
-plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT1 TIME13 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
- strip regrid on T: TEMP --> XNTERMED @AVE
- found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 25 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-setting up plot
-PPL plot 763 complete
-plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc dynamic grid G5DAYG5DAYG5DAYGPSXU PSYU PSZT1 TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5_10 @LIN
- strip regrid on Z: TEMP --> XNTERMED @LIN
- strip regrid on T: TEMP --> ZNTERMED @AVE
- found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-setting up plot
-PPL plot 764 complete
-plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at asn] ! invalid interpretation of data
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
- strip regrid on T: TEMP --> XNTERMED @ASN
- found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
- regrid TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid XY
- regrid TEMP M: 9 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-setting up plot
-PPL plot 765 complete
-
-
-set mode/last diag
-
-go bn_reset
-cancel mode verify
-! regrid_to_user
-
-use coads_climatology
-use levitus_climatology
-
-! define test objects
-let a = sst[d=coads_climatology] + 1
-let b = sst + 1 ! data set unspecified
-DEFINE AXIS/Y=20s:20n:.5/units=degrees yax
-DEFINE GRID/like=sst[d=coads_climatology]/y=yax gg12345678901234567890
-
-! reference data
-list/x=158e:161e/y=6s:4s temp[d=2,k=1]
- VARIABLE : TEMPERATURE (DEG C)
- FILENAME : levitus_climatology.cdf
- SUBSET : 3 by 2 points (LONGITUDE-LATITUDE)
- DEPTH (m): 0
- 158.5E 159.5E 160.5E
- 139 140 141
- 4.5S / 86: 29.51100 29.44300 29.38000
- 5.5S / 85: 29.58900 29.52500 29.45700
-
-! basic regrid (implicit grid -- sst and temp geometries are mismatched)
-list/x=160e/y=5s temp[d=2,k=1,g=a[d=1]]
- VARIABLE : TEMPERATURE (DEG C)
- regrid: 2 deg on X, 2 deg on Y
- FILENAME : levitus_climatology.cdf
- LONGITUDE: 159E
- LATITUDE : 5S
- DEPTH (m): 0
- 29.51700
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G105)
- GRID (G105)
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- COADSY LATITUDE 90 r 89S 89N
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-
-! per axis regrid
-! 5/01 note: changed from y=0 yo y=5s to accomodate Y-truncated
-! levitus_climatology.cdf
-list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],gy=yax]
- VARIABLE : TEMPERATURE (DEG C)
- regrid: 2 deg on X, 0.5 deg on Y
- FILENAME : levitus_climatology.cdf
- LONGITUDE: 159E
- LATITUDE : 5S
- DEPTH (m): 0
- 29.51700
-list/x=160e/y=5s temp[d=2,k=1,gy=yax,gx=a[d=1]]
- VARIABLE : TEMPERATURE (DEG C)
- regrid: 2 deg on X, 0.5 deg on Y
- FILENAME : levitus_climatology.cdf
- LONGITUDE: 159E
- LATITUDE : 5S
- DEPTH (m): 0
- 29.51700
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G105)
- GRID (G105)
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- YAX LATITUDE 81 r 20S 20N
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-
-! combined full grid and per-axis
-list/x=160e/y=5s temp[d=2,k=1,g=gg12345678901234567890,gx=a[d=1]]
- VARIABLE : TEMPERATURE (DEG C)
- regrid: 2 deg on X, 0.5 deg on Y
- FILENAME : levitus_climatology.cdf
- LONGITUDE: 159E
- LATITUDE : 5S
- DEPTH (m): 0
- 29.51700
-list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],g=gg12345678901234567890]
- VARIABLE : TEMPERATURE (DEG C)
- regrid: 2 deg on X, 0.5 deg on Y
- FILENAME : levitus_climatology.cdf
- LONGITUDE: 159E
- LATITUDE : 5S
- DEPTH (m): 0
- 29.51700
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G105)
- GRID (G105)
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- YAX LATITUDE 81 r 20S 20N
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-
-! pseudo-variable access
-list/i=1:4 i[g=a] ! a is previously loaded
- VARIABLE : I
- axis COADSX
- SUBSET : 4 points (LONGITUDE)
- 21E / 1: 1.000000
- 23E / 2: 2.000000
- 25E / 3: 3.000000
- 27E / 4: 4.000000
-let c = a
-list/i=1:4 i[g=c] ! c is not previously loaded
- VARIABLE : I
- axis COADSX
- SUBSET : 4 points (LONGITUDE)
- 21E / 1: 1.000000
- 23E / 2: 2.000000
- 25E / 3: 3.000000
- 27E / 4: 4.000000
-let d = c
-list/i=1:4 x[gx=d]
- VARIABLE : X
- axis COADSX
- SUBSET : 4 points (LONGITUDE)
- 21E / 1: 21.00000
- 23E / 2: 23.00000
- 25E / 3: 25.00000
- 27E / 4: 27.00000
-
-! DEFINE GRID based on a user-defined variable
-let e = d
-DEFINE GRID/LIKE=e/x=temp[d=levitus_climatology] gg123456789012345678901
-show grid gg123456789012345678901
- GRID GG123456789012345678901
- name axis # pts start end
- XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- COADSY LATITUDE 90 r 89S 89N
- normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
-let f = sst[y=20s:20n:.1,d=coads_climatology]
-DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg123456789012345678902
-cancel variable f
-show grid gg123456789012345678902
- GRID GG123456789012345678902
- name axis # pts start end
- XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX020) LATITUDE 401 r 20S 20N
- normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- AXIS (AX049) use count: 13
- AXIS (AX047) use count: 13
- AXIS (AX020) use count: 2
-
-! demonstrate proper management of dynamic axes
-DEFINE GRID/LIKE=gg123456789012345678902 gg123456789012345678903
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- AXIS (AX049) use count: 13
- AXIS (AX047) use count: 13
- AXIS (AX020) use count: 3
-DEFINE GRID/like=temp[d=levitus_climatology] gg123456789012345678902
-show grid gg123456789012345678902
- GRID GG123456789012345678902
- name axis # pts start end
- XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- YAXLEVITR1_90 LATITUDE 90 r 89.5S 0.5S
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-show grid/dynamic
-Dynamic grids:
- no implicit grids
-Dynamic axes:
- AXIS (AX049) use count: 13
- AXIS (AX047) use count: 13
- AXIS (AX020) use count: 2
-
-! SET GRID using a user-defined variable
-let g = sst[x=0:30:.1,d=coads_climatology]
-set grid g
-show grid
- Default grid for DEFINE VARIABLE is G
- Last successful data access was on grid GG2
- GRID GG2
- name axis # pts start end
- XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- YAXLEVITR1_90 LATITUDE 90 r 89.5S 0.5S
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-
-! The SET GRID (default) definition should be protected -- not altered
-load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
-show grid
- Default grid for DEFINE VARIABLE is G
- Last successful data access was on grid (G105)
- GRID (G105)
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- (AX139) LATITUDE 201 r 10S 10N
- normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
-show grid/dynamic
-Dynamic grids:
- GRID (G105) use count: 1
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- (AX139) LATITUDE 201 r 10S 10N
- normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
- normal E
- normal F
-Dynamic axes:
- AXIS (AX139) use count: 1
- AXIS (AX049) use count: 13
- AXIS (AX047) use count: 13
- AXIS (AX020) use count: 2
-
-! deliberate errors
-set mode ignore
-load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890] ! non-existent target variable
-
-set mode/last ignore
-
-go bn_reset
-cancel mode verify
-
-! dynamic grid commands
-
-use coads_climatology
-use levitus_climatology
-
-DEFINE GRID/LIKE="temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5" mygrid_123456789012345678901234567890
-SHOW GRID mygrid_123456789012345678901234567890
- GRID MYGRID_123456789012345678901234567890
- name axis # pts start end
- COADSX LONGITUDE 180mr 21E 19E(379)
- (AX128) LATITUDE 41 r 10S 2S
- ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
- normal T
- normal E
- normal F
-
-GO bn_reset
-cancel mode verify
-GO bn_xml_repl
-! bn_xml_repl.jnl
-! replace > and < and & with their html equivalents.
-
-use coads_climatology
-set var/title="a title with & and > and < characters" sst
-set var/units="<<" sst
-set att sst.history = "Adding some ampersands.& & to the history"
-sh dat/xml/var
-<datasets>
-<dataset name="./coads_climatology.cdf" default="true">
-<title> </title>
-<var name="SST">
-<attribute name="units" type="char">
- <value><![CDATA[<<]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[a title with & and > and < characters]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME10</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="COADSX">
-<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_east]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>180</value>
-</attribute>
-<attribute name="start" type="double">
- <value>21</value>
-</attribute>
-<attribute name="end" type="double">
- <value>379</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[COADSX]]></value>
-</attribute>
-</axis>
-<axis name="COADSY">
-<attribute name="direction" type="char">
- <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_north]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>90</value>
-</attribute>
-<attribute name="start" type="double">
- <value>-89</value>
-</attribute>
-<attribute name="end" type="double">
- <value>89</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[COADSY]]></value>
-</attribute>
-</axis>
-<axis name="TIME10">
-<attribute name="direction" type="char">
- <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>3</value>
-</attribute>
-<attribute name="start" type="double">
- <value>0000-01-16 06:00:00</value>
-</attribute>
-<attribute name="end" type="double">
- <value>0000-03-17 02:58:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
- <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
- <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
- <value>8765.82</value>
-</attribute>
-</axis>
-</axes>
-shade/l=1 sst
-
-! ******** V6.5 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn65_bug_fixes
-! bn65_bug_fixes.jnl
-! Fixes that go into v6.5 release
-
-GO bn_reset
-cancel mode verify
-GO err64_very_small_latlon
-! err64_very_small_latlon.jnl
-! Based on a report and data file from Jean Newman.
-
-use err64_small_latlon
-
-! crashed because of formats for lon/lat axis labels.
-shade bathy
-
-! This one uses so many digits it will not be formatted
-shade/i=1:10/j=1:10 bathy
-
-GO bn_reset
-cancel mode verify
-GO err64_packed_data
-! err64_packed_data.jnl
-! Test writing packed data. Prior to v6.4 this example shows the
-! crash described in bug 1715.
-
-! ncpdq from NCO operators
-! sp ncpdq fine_x_axis.nc err64_packed_data.nc
-use err64_packed_data.nc
-sh att/all sst
- attributes for dataset: ./err64_packed_data.nc
- SST.missing_value = 1.E+20
- SST._FillValue = 1.E+20
- SST.long_name = sea surface temperature [degc]
- SST.history = From ghrsst_global
- SST.scale_factor = -0.0001263447
- SST.add_offset = 27.32
-
-! check that the coordinates packed by ncpdq are unpacked ok.
-list/i=1:15 sst
- VARIABLE : sea surface temperature [degc]
- FILENAME : err64_packed_data.nc
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 0.025S
- Z (count): 1
- TIME : APR-2006
- 0.03S
- 1
- 179.972W / 1: 27.49991
- 179.922W / 2: 27.47995
- 179.872W / 3: 27.46997
- 179.822W / 4: 27.46997
- 179.772W / 5: 27.44988
- 179.722W / 6: 27.42992
- 179.672W / 7: 27.42992
- 179.622W / 8: 27.42992
- 179.572W / 9: 27.44988
- 179.522W / 10: 27.45999
- 179.472W / 11: 27.46997
- 179.422W / 12: 27.45999
- 179.372W / 13: 27.46997
- 179.322W / 14: 27.47995
- 179.272W / 15: 27.48993
-
-! we can write the data out - saving the scaling to re-pack.
-set att/output sst.scale_factor
-set att/output sst.add_offset
-
-! With double-precision Ferret, need to write as float,
-! or the FillValue cant be represnted.
-
-set var/outtype=float sst
-
-save/clobber/file=mypack.nc/i=1:15 sst
-can data/all; use mypack.nc
-sh att/all sst
- attributes for dataset: ./mypack.nc
- SST.missing_value = 1.E+20
- SST._FillValue = 1.E+20
- SST.long_name = sea surface temperature [degc]
- SST.history = From ghrsst_global
- SST.scale_factor = -0.0001263447
- SST.add_offset = 27.32
- SST.Ferret_Precision_Note = This variable written using Ferret was converted from SHORT to FLOAT
-
-list/i=1:15 sst
- VARIABLE : sea surface temperature [degc]
- FILENAME : mypack.nc
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 0.025S
- Z (count): 1
- TIME : APR-2006
- 0.03S
- 1
- 179.972W / 1: 27.49991
- 179.922W / 2: 27.47995
- 179.872W / 3: 27.46997
- 179.822W / 4: 27.46997
- 179.772W / 5: 27.44988
- 179.722W / 6: 27.42992
- 179.672W / 7: 27.42992
- 179.622W / 8: 27.42992
- 179.572W / 9: 27.44988
- 179.522W / 10: 27.45999
- 179.472W / 11: 27.46997
- 179.422W / 12: 27.45999
- 179.372W / 13: 27.46997
- 179.322W / 14: 27.47995
- 179.272W / 15: 27.48993
-
-
-GO bn_reset
-cancel mode verify
-GO bn_repl_9999999
-! bn_repl_9999999.jnl
-! Bug 1717
-! Bug on 64-bit ferret, replacing variable var= .9999999
-! which should just evaluate to 1. TM_FMT wound up with a
-! fortran FORMAT(I0) to write the value to the new command line.
-
-let var=0.9999999
-def view/xlim=0,`var`/ylim=0,1 view9999999
- !-> def view/xlim=0,0.9999999/ylim=0,1 view9999999
-can view view9999999
-
-GO bn_reset
-cancel mode verify
-GO err64_shakey_missingdata
-! err64_shakey_missingdata.jnl
-! starting with v6.2 a polygon plot with all missing data.
-! The shakey is just blank, not the requested colors.
-!
-! was ok ferret_v6193
-! Linux(g77) 2.4.21-32 - 02/18/09
-!
-! Not FERRET v6.194
-! Linux(g77) 2.4.21-32 - 03/03/09
-!
-! This is in fillpol - the fix to bug 1641
-
-! Define some data; zpts all missing
-let xpts = {3,5,6,7,8,9,10,13,15,16,17,18,19,21,22}
-let ypts = {1,2,3,4,5,6, 7, 8, 9, 4, 5, 6, 7, 8, 9}
-let zpts = { , , , , , , , , , , , , , , }
-
-plot/vs/line xpts,ypts
-go polytube polygon/over/key/lev=(0,6,1) xpts,ypts,zpts
-
-
-GO bn_reset
-cancel mode verify
-GO err64_return_precision
-!err64_return_precision.jnl
-! most of these resulted in *** - format too small.
-! see bug1611
-
-say `.099,p=-1`
- !-> MESSAGE/CONTINUE 0.1
-0.1
-
-say `.99,p=-1`
- !-> MESSAGE/CONTINUE 1
-1
-
-say `9.99,p=-1`
- !-> MESSAGE/CONTINUE 10
-10
-
-say `99.99,p=-1`
- !-> MESSAGE/CONTINUE 100
-100
-
-say `999.99,p=-1`
- !-> MESSAGE/CONTINUE 1000
-1000
-
-say `999.999,p=-2`
- !-> MESSAGE/CONTINUE 1000
-1000
-
-
-GO bn_reset
-cancel mode verify
-GO err64_parse_equals
-! err64_parse_equals
-! Bug1469 (and duplicate 1690)
-! Parsing equals sign when it is in a string within
-! grave accents.
-
-say `"+" EQ " "`
- !-> MESSAGE/CONTINUE 0
-0
-
-say `"=" EQ "="`
- !-> MESSAGE/CONTINUE 1
-1
-
-DEFINE SYMBOL my_sym = `UPCASE("/lev=(0,30,2)")`
- !-> DEFINE SYMBOL my_sym = /LEV=(0,30,2)
-
-
-GO bn_reset
-cancel mode verify
-GO err64_regrid_noleap
-! err64_regrid_noleap.jnl
-!
-! Bug 1723
-! Seen only under 32-bit, exec. built with netcdf4.1 library
-
-def ax/t/unit=days/t0=1-jan-0001/cal=noleap/edge tax = \
- {419263, 419293, 419324, 419354, 419385, 419416, \
- 419444, 419475, 419505, 419536, 419566, 419597}
-def ax/t/unit=days/t0=1-jan-0001/cal=noleap/edge/modulo=365 tax_c = \
- {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}
-
-let a = t[gt=tax]
-let a_c = t[gt=tax_c]
-let b = a_c[gt=a]
-list b[t=15-feb-1150] ! missing??
- VARIABLE : A_C[GT=A]
- TIME : FEB-1150 NOLEAP
- 419430.0
-
-list b ! includes Feb 15 1150, not missing...
- VARIABLE : A_C[GT=A]
- SUBSET : 11 points (TIME)
- CALENDAR : NOLEAP
- 16-SEP-1149 00 / 1: 419278.0
- 16-OCT-1149 12 / 2: 419308.5
- 16-NOV-1149 00 / 3: 419339.0
- 16-DEC-1149 12 / 4: 419369.5
- 16-JAN-1150 12 / 5: 419400.5
- 15-FEB-1150 00 / 6: 419430.0
- 16-MAR-1150 12 / 7: 419459.5
- 16-APR-1150 00 / 8: 419490.0
- 16-MAY-1150 12 / 9: 419520.5
- 16-JUN-1150 00 / 10: 419551.0
- 16-JUL-1150 12 / 11: 419581.5
-
-list b[t=15-feb-1150] ! Now ok??
- VARIABLE : A_C[GT=A]
- TIME : FEB-1150 NOLEAP
- 419430.0
-
-GO bn_reset
-cancel mode verify
-GO err64_polymark_over_calendar
-! err64_polymark_over_calendar.jnl
-! bug1722. Polymark script failed with calendar mismatch
-! it should not if the overlay time axis is abstract.
-!
-def ax/t=1-jan-0002:1-jan-0010:1/cal=noleap/unit=year/edges tax
-let tval = t[gt=tax]
-plot tval
-let pos = {`tval[l=4]`,`tval[l=5]`}
- !-> DEFINE VARIABLE pos = {5.5,6.5}
-poly/ov/nolab/line=15 pos,pos ! this works
-
-! Here we got an error about mismatched calendars on time axes:
-go polymark "poly/ov/nolab/pal=red/line=1" pos pos " " circle .5
-
-
-
-GO bn_reset
-cancel mode verify
-GO bn_txtype_dmy
-! bn_txtype_dmy.jnl
-! 2/2010 ACM
-!
-! Testing Time Axis plot style "DMY" labels the year
-! as well as month or day,month on MON and DAY axes.
-! Symbol TXTYPE_SETTING contains YR, MON, DAY after the
-! axis type has been set for the axis; lets us plot/set
-! and then choose the time axis label style
-! Useful when going across years or plotting with /NOLAB
-
-set win/asp=1
-use gtsa056_2.cdf
-
-! Plot the whole series; txtype is YR
-plot/x=140w/y=-1/k=1/set temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "YR"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 0 THEN PPL TXTYPE,MON,DMY
-ppl plot
-
-! This will be MON
-shade/x=140w/k=1/t=1-feb-1982:15-apr-1982/set temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "MON"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 1 THEN PPL TXTYPE,MON,DMY
-ppl shade
-
-! Also MON so setting not changed.
-contour/x=140w/k=1/t=1-feb-1982:15-feb-1982/set temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "MON"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 1 THEN PPL TXTYPE,MON,DMY
-ppl contour
-
-
-! Is DAY so setting not changed.
-
-plot/set/x=140w/y=-1/k=1/t=27-feb-1982:2-mar-1982 temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "DAY"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 0 THEN PPL TXTYPE,MON,DMY
-ppl plot
-
-! Set PPL TXTYPE with DAY,DMY
-plot/set/x=140w/y=-1/k=1/t=27-feb-1982:2-mar-1982 temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "DAY"
-if ($TXTYPE_SETTING"0|DAY>1|*>0") THEN PPL TXTYPE,DAY,DMY
- !-> if 1 THEN PPL TXTYPE,DAY,DMY
-ppl plot
-
-! If the type is going to be EITHER DAY or MON then set
-! the style to DMY. Leave the 1st argument blank to keep the
-! default
-plot/set/x=140w/y=-1/k=1/t=27-feb-1982:28-mar-1982 temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "MON"
-if ($TXTYPE_SETTING"0|DAY>1|MON>1|*>0") THEN PPL TXTYPE,,DMY
- !-> if 1 THEN PPL TXTYPE,,DMY
-ppl plot
-
-
-! Same commands with the TIME axis on the vertical
-! Plot the whole series; txtype is YR
-plot/x=140w/y=-1/k=1/set temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "YR"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 0 THEN PPL TXTYPE,MON,DMY
-ppl plot
-
-! This will be MON
-shade/y=-1/k=1/t=1-feb-1982:15-apr-1982/set temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "MON"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 1 THEN PPL TXTYPE,MON,DMY
-ppl shade
-
-! Also MON so setting not changed.
-contour/y=-1/k=1/t=1-feb-1982:15-feb-1982/set temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "MON"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 1 THEN PPL TXTYPE,MON,DMY
-ppl contour
-
-
-! Is DAY so setting not changed.
-
-plot/set/trans/x=140w/y=-1/k=1/t=27-feb-1982:2-mar-1982 temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "DAY"
-if ($TXTYPE_SETTING"0|MON>1|*>0") THEN PPL TXTYPE,MON,DMY
- !-> if 0 THEN PPL TXTYPE,MON,DMY
-ppl plot
-
-! Set PPL TXTYPE with DAY,DMY
-plot/set/trans/x=140w/y=-1/k=1/t=27-feb-1982:2-mar-1982 temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "DAY"
-if ($TXTYPE_SETTING"0|DAY>1|*>0") THEN PPL TXTYPE,DAY,DMY
- !-> if 1 THEN PPL TXTYPE,DAY,DMY
-ppl plot
-
-! If the type is going to be EITHER DAY or MON then set
-! the style to DMY. Leave the 1st argument blank to keep the
-! default
-plot/set/trans/x=140w/y=-1/k=1/t=27-feb-1982:28-mar-1982 temp
-sh sym TXTYPE_SETTING
-TXTYPE_SETTING = "MON"
-if ($TXTYPE_SETTING"0|DAY>1|MON>1|*>0") THEN PPL TXTYPE,,DMY
- !-> if 1 THEN PPL TXTYPE,,DMY
-ppl plot
-
-! make sure this setting doesnt persist
-plot/y=-1/k=1/t=5-mar-1982:28-mar-1982/x=144w temp
-plot/y=-1/k=1/t=5-mar-1982:28-apr-1982/x=144w temp
-
-GO bn_reset
-cancel mode verify
-GO bn_n_open_dsets_sym
- ! bn_n_open_dsets_sym.jnl
-! Ferret v6.5
-! New special symbol N_OPEN_DSETS, evaulated when requested.
-! Gives a count of the number of open datasets.
-
-! Initially should be zero
-sh sym N_OPEN_DSETS
-N_OPEN_DSETS = "0"
-
-! Open some datasets
-use dstitle
-use TAO_SST_clim
-use clim_airt_lev
-
-! Check
-sh sym N_OPEN_DSETS
-N_OPEN_DSETS = "3"
-
-! Open a few more. Any type of data
-set data tok_short.des
-
-list/clobber/file=list_of_numbers.dat/nohead/norowhead {1,3,4,5,6,8,9}
-file/var=v1 list_of_numbers.dat
-
-! now there are five
-sh sym N_OPEN_DSETS
-N_OPEN_DSETS = "5"
-
-! cancel a couple
-can data 3
-can data TAO_SST_clim
-
-! Now three
-sh sym N_OPEN_DSETS
-N_OPEN_DSETS = "3"
-
-can dat/all
-sh sym N_OPEN_DSETS
-N_OPEN_DSETS = "0"
-
-
-GO bn_reset
-cancel mode verify
-GO bn_multi_decade
-! bn_multi_decade.jnl
-! New default no-small tics for multi-decade plots
-! See bug 670
-
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
-let tvar = t[gt=simutaxis1]*-1E+34
-
-define view/x=0:1/y=0.000:0.125 v1
-define view/x=0:1/y=0.125:0.250 v2
-define view/x=0:1/y=0.250:0.375 v3
-define view/x=0:1/y=0.375:0.500 v4
-define view/x=0:1/y=0.500:0.625 v5
-define view/x=0:1/y=0.625:0.750 v6
-define view/x=0:1/y=0.750:0.875 v7
-define view/x=0:1/y=0.875:1.000 v8
-
-! Plot a variety of time axis lengths.
-set view v1; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar[t=1-jan-1860:1-jan-1870]
-set view v2; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar[t=1-jan-1860:1-jan-1880]
-
-! New default: no small tics for multi-decade plots
-set view v3; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar[t=1-jan-1860:1-jan-1890]
-set view v4; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar[t=1-jan-1860:1-jan-2000]
-set view v5; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar[t=1-jan-1860:1-jan-2060]
-set view v6; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar[t=1-jan-1860:1-jan-2160]
-set view v7; plot/nolab/ax=0,1,0,0/vlim=0:1 tvar
-
-! can plot the tics even on a multi-decade axis by specifying PPL TICS.
-set view v8; plot/nolab/ax=0,1,0,0/vlim=0:1/set tvar
- ppl tics,0.1,0.25
- ppl plot
-
-cancel view
-
-! Test vertical time axes.
-
-define view/x=0.000:0.125/y=0:1 v1
-define view/x=0.125:0.250/y=0:1 v2
-define view/x=0.250:0.375/y=0:1 v3
-define view/x=0.375:0.500/y=0:1 v4
-define view/x=0.500:0.625/y=0:1 v5
-define view/x=0.625:0.750/y=0:1 v6
-define view/x=0.750:0.875/y=0:1 v7
-define view/x=0.875:1.000/y=0:1 v8
-
-! Plot a variety of time axis lengths.
-set view v1; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar[t=1-jan-1860:1-jan-1870]
-set view v2; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar[t=1-jan-1860:1-jan-1880]
-
-! New default: no small tics for multi-decade plots
-set view v3; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar[t=1-jan-1860:1-jan-1890]
-set view v4; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar[t=1-jan-1860:1-jan-2000]
-set view v5; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar[t=1-jan-1860:1-jan-2060]
-set view v6; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar[t=1-jan-1860:1-jan-2160]
-set view v7; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar
-
-! can plot the tics even on a multi-decade axis by specifying PPL TICS.
-set view v8; plot/trans/nolab/ax=0,0,1,0/hlim=0:1/set tvar
- ppl tics,0.1,0.25
- ppl plot
-
-GO bn_reset
-cancel mode verify
-GO bn_show_xml_file
-! bn_show_xml_file.jnl
-! Testing SHOW DATA/OUTFILE
-! SHOW AXIS/OUTFILE
-! SHOW VAR/OUTFILE
-! SAY/OUTFILE
-!
-! Similar to LAS iosp script header.jnl
-! capability to be expanded to all SHOW commands in the future.
-! 5/2012:
-! Do this on a dataset with just one variable.
-! Dont do show axis/all. Just the axes for one variable is a lot of output.
-! Ferret v685, show/data/var/xml includes the output of show axis, so remove that.
-
-USE ocean_atlas_temp.cdf
-
-DEFINE SYMBOL output_xml_file = the_xml_file.xml
-
-say/quiet/outfile=($output_xml_file)/clobber <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
- !-> MESSAGE/CONTINUE/quiet/outfile=the_xml_file.xml/clobber <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
-say/quiet/outfile=($output_xml_file)/append <data>
- !-> MESSAGE/CONTINUE/quiet/outfile=the_xml_file.xml/append <data>
-
-show var/xml/append/outfile=($output_xml_file)
- !-> show var/xml/append/outfile=the_xml_file.xml
-show data/var/xml/append/outfile=($output_xml_file)
- !-> show data/var/xml/append/outfile=the_xml_file.xml
-say/quiet/outfile=($output_xml_file)/append </data>
- !-> MESSAGE/CONTINUE/quiet/outfile=the_xml_file.xml/append </data>
-
-! on 32-bit machine the cat command below doesnt show file contents if
-! the file is still open. Close it by listing to another file.
-list/clobber/file=dummy.dat 1
-
-sp cat the_xml_file.xml
-<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
-<data>
-<datasets>
-<dataset name="./ocean_atlas_temp.cdf" default="true">
-<title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
- <value><![CDATA[Deg C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[Temperature]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="GBS1">
-<axes>
-<xaxis>XAX_LEV9421_380</xaxis>
-<yaxis>YAX_LEV94</yaxis>
-<zaxis>ZAXLEVIT191_1</zaxis>
-<taxis>TIME3</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="TIME3">
-<attribute name="direction" type="char">
- <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>2</value>
-</attribute>
-<attribute name="start" type="double">
- <value>0000-01-16 06:00:00</value>
-</attribute>
-<attribute name="end" type="double">
- <value>0000-02-15 16:29:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
- <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
- <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
- <value>8765.82</value>
-</attribute>
-</axis>
-<axis name="XAX_LEV9421_380">
-<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_east]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>360</value>
-</attribute>
-<attribute name="start" type="double">
- <value>20.5</value>
-</attribute>
-<attribute name="end" type="double">
- <value>379.5</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[XAX_LEV9421_380]]></value>
-</attribute>
-</axis>
-<axis name="YAX_LEV94">
-<attribute name="direction" type="char">
- <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_north]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>180</value>
-</attribute>
-<attribute name="start" type="double">
- <value>-89.5</value>
-</attribute>
-<attribute name="end" type="double">
- <value>89.5</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[YAX_LEV94]]></value>
-</attribute>
-</axis>
-<axis name="ZAXLEVIT191_1">
-<attribute name="direction" type="char">
- <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[METERS]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>1</value>
-</attribute>
-<attribute name="start" type="double">
- <value>0</value>
-</attribute>
-<attribute name="end" type="double">
- <value>0</value>
-</attribute>
-<attribute name="positive" type="char">
- <value><![CDATA[down]]></value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[ZAXLEVIT191_1]]></value>
-</attribute>
-</axis>
-</axes>
-</data>
-
-
-
-! GO bn_reset
-! GO bn_encode_url
-
-! ******** V6.6 Additions below ***********
-
-GO bn_reset
-cancel mode verify
-GO bn66_bug_fixes
-! bn66_bug_fixes.jnl
-! Fixes that go into v6.6 release
-
-
-GO bn_reset
-cancel mode verify
-GO err65_averages.jnl
-
-use gt4d011
-set region/z=0:90/y=-3.5:3.5
-stat temp[x=@ave,t=@ave]
-
- TEMPERATURE
- LONGITUDE: 140W to 122W (XT ave)
- LATITUDE: 3.5S to 3.5N
- DEPTH (m): 0 to 90
- TIME: AUG-1982 to JAN-1983 (XT ave)
- E: N/A
- F: N/A
- DATA SET: ./gt4d011.cdf
-
- Total # of data points: 198 (1*22*9*1*1*1)
- # flagged as bad data: 0
- Minimum value: 24.279
- Maximum value: 31.248
- Mean value: 28.047 (unweighted average)
- Standard deviation: 1.7502
-
-stat temp[x=@ave,z=@ave]
-
- TEMPERATURE
- LONGITUDE: 140W to 122W (XZ ave)
- LATITUDE: 3.5S to 3.5N
- DEPTH (m): 0 to 90 (XZ ave)
- TIME: AUG-1982 to JAN-1983
- E: N/A
- F: N/A
- DATA SET: ./gt4d011.cdf
-
- Total # of data points: 550 (1*22*1*25*1*1)
- # flagged as bad data: 0
- Minimum value: 25.194
- Maximum value: 30.027
- Mean value: 28.047 (unweighted average)
- Standard deviation: 1.1926
-
-list temp[x=@ave,z=@ave,t=@ave]
- VARIABLE : TEMPERATURE (deg. C)
- FILENAME : gt4d011.cdf
- SUBSET : 22 points (LATITUDE)
- LONGITUDE: 140W to 122W (XZT ave)
- DEPTH (m): 0 to 90 (XZT ave)
- TIME : AUG-1982 to JAN-1983 (XZT ave)
- 3.5N / 56: 27.59128
- 3.17N / 55: 27.76072
- 2.83N / 54: 27.89503
- 2.5N / 53: 28.00175
- 2.17N / 52: 28.08330
- 1.83N / 51: 28.13652
- 1.5N / 50: 28.15913
- 1.17N / 49: 28.15796
- 0.83N / 48: 28.14635
- 0.5N / 47: 28.13609
- 0.17N / 46: 28.13627
- 0.17S / 45: 28.15042
- 0.5S / 44: 28.17639
- 0.83S / 43: 28.20504
- 1.17S / 42: 28.22684
- 1.5S / 41: 28.23347
- 1.83S / 40: 28.21657
- 2.17S / 39: 28.16886
- 2.5S / 38: 28.08460
- 2.83S / 37: 27.96112
- 3.17S / 36: 27.80014
- 3.5S / 35: 27.60770
-
-stat temp[z=@ave,t=@ave,y=-2:2]
-
- TEMPERATURE
- LONGITUDE: 140W to 122W
- LATITUDE: 2S to 2N
- DEPTH (m): 0 to 90 (ZT ave)
- TIME: AUG-1982 to JAN-1983 (ZT ave)
- E: N/A
- F: N/A
- DATA SET: ./gt4d011.cdf
-
- Total # of data points: 234 (18*13*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 27.445
- Maximum value: 28.925
- Mean value: 28.173 (unweighted average)
- Standard deviation: 0.40997
-
-cancel region
-
-GO bn_reset
-cancel mode verify
-GO bn_netcdf4
-! bn_netcdf4.jnl
-! test syntax for controling NetCDF-4 intput and output.
-
-
-
-show nccache
-Current NCDF Chunk Cache size 4.1943 MB, n_elems = 1009, preemption = 75
-
-set nccache/siz=4
-
-show nccache
-Current NCDF Chunk Cache size 4 MB, n_elems = 1009, preemption = 75
-cancel nccache
-
-show nccache
-Current NCDF Chunk Cache size 4.1943 MB, n_elems = 1009, preemption = 75
-
-set nccache/siz=8
-show nccache
-Current NCDF Chunk Cache size 8 MB, n_elems = 1009, preemption = 75
-cancel nccache
-
-! --------------------------
-! Set choice of chunking.
-can dat/all; can var/all; can mem/all
-
-use coads_climatology
-set var/title=deflate_x30_y30 sst
-
-save/file=nc4_deflate4.nc/clobber/ncformat=4/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
-
-! With /NCFORMAT=3 the other stuff is meaningless. Will see NOTEs
-yes? save/file=nc4_nodeflate3.nc/clobber/ncformat=3/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
-
-! --------------------------
-! Compare choices of chunking.
-can var/all; can mem/all
-
-set var/title=deflate_x180_y90 sst
-save/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=180/ychunk=90/tchunk=1 sst
-
-
-set var/title=undeflated sst
-
-save/file=nc4_nodeflate3.nc/clobber/ncformat=3 sst
-
-save/file=nc4_deflate4_xyt.nc/clobber/ncformat=4/deflate/shuffle/tchunk=2/xchunk=30/ychunk=20 sst
-save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
-
-
-! Write variable as INT
-CAN DAT/all; can var/all; can mem/all
-use levitus_climatology
-SET VAR/OUTTYPE=int/BAD=-99999 temp
-save/clobber/ncformat=classic/file=nc4_inttemp_classic.nc temp
-
-set list/ncformat=4/deflate=1/xchunk=10/ychunk=10/zchunk=1
-save/clobber/file=nc4_inttemp_set_list_deflate_chunk.nc temp
-
-save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
-
-cancel list/all
-set list/ncformat=classic
-save/clobber/file=nc4_inttemp_set_classic.nc temp
-
-cancel list/all
-
-! Check SHOW LIST, and CANCEL LIST
-
-set list/xchunk=30/ychunk=20/tchunk=5/zchunk=1/deflate=1/shuffle=0/ncformat=4
-sh list/all
- SET LIST/PRECISION = 4
- SET LIST/FORMAT = [Default]
- SET LIST/HEADING is ENABLED
- SET LIST/APPEND is DISABLED
- SET LIST/FILE=AUTO [created by program] ( when LIST/FILE is used )
- SET LIST/OUTTYPE = [Default]
- ----
- NetCDF-4 settings:
- NetCDF file type = NetCDF-4
- Compression (deflate) level set to 1
- XCHUNK size set to 30
- YCHUNK size set to 20
- ZCHUNK size set to 1
- TCHUNK size set to 5
- SHUFFLE set to on
- ENDIAN set to native
-
-can list/all
-sh list/all
- SET LIST/PRECISION = 4
- SET LIST/FORMAT = [Default]
- SET LIST/HEADING is ENABLED
- SET LIST/APPEND is DISABLED
- SET LIST/FILE=AUTO [created by program] ( when LIST/FILE is used )
- SET LIST/OUTTYPE = [Default]
- ----
- NetCDF-4 settings:
- NetCDF file type = classic
- NetCDF chunk sizes = default
- SHUFFLE set to on
- ENDIAN set to native
-
-! Intentional errors:
-can dat/all
-use coads_climatology
-set mode ignore
-! If set any chunksizes, must set them all
-save/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchunk=1 sst
-
-! Chunk sizes bigger than dim sizes
-save/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
-can mode ignore
-
-
-GO bn_reset
-cancel mode verify
-GO bn_scat2grid_bin.jnl
-! bn_scat2grid_bin.jnl
-! Tests of scat2grid_bin and scat2grid_nbin functions.
-
-! define some variables (as in bench_gridding)
-
-define axis/t=1-jan-2010:30-mar-2010:1/units=days tin
-define axis/t=1-jan-2010:30-mar-2010:10/units=days tout
-let tt = t[gt=tout,L=1:10]
-sh grid tt
- GRID (G088)
- name axis # pts start end
- normal X
- normal Y
- normal Z
- TOUT TIME 10 r 01-JAN-2010 00:00 01-APR-2010 00:00
- normal E
- normal F
-
-
-define axis/x=0:10:0.05 x10
-define axis/y=0:10:0.05 y10
-define grid/x=x10/y=y10 g10x10
-set grid g10x10
-
-let WAVE = SIN(KX*XPTS + KY*YPTS - PHASE) / 3
-let PHASE = 0
-let KAPPA = 0.4
-let KX = 0.4
-let KY = 0.7
-let FCN1 = SIN(R)/(R+1)
-let R = ((XPTS-X0)^2+ 5*(YPTS-Y0)^2)^0.5
-let X0 = 3
-let Y0 = 8
-LET sample_function = fcn1 + wave
-set view ul
-let xpts = x; let ypts = y
-SHADE/title="A field with 200 sample points marked" sample_function
-let xpts = 10*randu(i); let ypts = 10*randu(i+2)
-set region/i=1:200
-plot/vs/over/symbols xpts,ypts
-define axis/x=1:10:.5 xax5
-define axis/y=1:10:.5 yax5
-define axis/x=1:10:.2 xax2
-define axis/y=1:10:.2 yax2
-set view ll
-let sgrid = scat2grid_bin_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5])
-SHADE/TITLE="Bin Gridding (5,5) to 20x20 grid" sgrid
-list/x=2:3 sgrid
- VARIABLE : SCAT2GRID_BIN_XY (XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5])
- SUBSET : 3 by 19 points (X-Y)
- 2 2.5 3
- 3 4 5
- 1 / 1: .... .... ....
- 1.5 / 2: .... 0.3250 ....
- 2 / 3: 0.3365 .... ....
- 2.5 / 4: .... 0.0915 ....
- 3 / 5: .... -0.0921 -0.1235
- 3.5 / 6: .... .... ....
- 4 / 7: .... .... ....
- 4.5 / 8: -0.1083 .... -0.1934
- 5 / 9: -0.2851 -0.2127 -0.2336
- 5.5 / 10: -0.4247 .... -0.4259
- 6 / 11: -0.4858 -0.4472 -0.3515
- 6.5 / 12: -0.2793 .... -0.3158
- 7 / 13: -0.1265 .... ....
- 7.5 / 14: .... .... 0.4598
- 8 / 15: .... .... 0.4264
- 8.5 / 16: .... .... 0.6377
- 9 / 17: 0.4793 .... 0.5147
- 9.5 / 18: .... 0.2919 ....
- 10 / 19: .... .... ....
-
-set view lr
-let sgrid = scat2grid_bin_xy(xpts, ypts, sample_function, x[gx=xax2], y[gy=yax2])
-SHADE/TITLE="Bin Gridding (1,1) to 100x100" sgrid
-list/x=2:3 sgrid
- VARIABLE : SCAT2GRID_BIN_XY(XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX2], Y[GY=YAX2])
- SUBSET : 6 by 46 points (X-Y)
- 2 2.2 2.4 2.6 2.8 3
- 6 7 8 9 10 11
- 1 / 1: .... .... .... .... .... ....
- 1.2 / 2: .... .... .... .... .... ....
- 1.4 / 3: .... .... .... .... .... ....
- 1.6 / 4: .... .... .... .... 0.3250 ....
- 1.8 / 5: .... .... .... .... .... ....
- 2 / 6: .... .... .... .... .... ....
- 2.2 / 7: .... .... .... .... .... ....
- 2.4 / 8: .... .... .... .... .... ....
- 2.6 / 9: .... .... 0.0915 .... .... ....
- 2.8 / 10: .... .... .... .... .... ....
- 3 / 11: .... .... .... -0.0921 -0.1235 ....
- 3.2 / 12: .... .... .... .... .... ....
- 3.4 / 13: .... .... .... .... .... ....
- 3.6 / 14: .... .... .... .... .... ....
- 3.8 / 15: .... .... .... .... .... ....
- 4 / 16: .... .... .... .... .... ....
- 4.2 / 17: -0.1083 .... .... .... .... ....
- 4.4 / 18: .... .... .... .... .... ....
- 4.6 / 19: .... .... .... .... -0.1934 ....
- 4.8 / 20: .... .... -0.2127 .... -0.2336 ....
- 5 / 21: .... -0.2851 .... .... .... ....
- 5.2 / 22: .... .... .... .... .... ....
- 5.4 / 23: .... .... .... .... .... ....
- 5.6 / 24: -0.4552 .... .... .... -0.4259 ....
- 5.8 / 25: .... -0.4810 .... .... .... ....
- 6 / 26: .... .... .... .... .... ....
- 6.2 / 27: .... .... -0.4134 .... .... ....
- 6.4 / 28: .... .... .... .... -0.3158 ....
- 6.6 / 29: -0.2793 .... .... .... .... ....
- 6.8 / 30: .... .... .... .... .... ....
- 7 / 31: .... .... .... .... .... ....
- 7.2 / 32: .... .... .... .... .... ....
- 7.4 / 33: .... .... .... .... .... ....
- 7.6 / 34: .... .... .... .... .... ....
- 7.8 / 35: .... .... .... .... .... 0.4264
- 8 / 36: .... .... .... .... .... ....
- 8.2 / 37: .... .... .... .... .... ....
- 8.4 / 38: .... .... .... .... 0.6377 ....
- 8.6 / 39: .... .... .... .... .... ....
- 8.8 / 40: 0.4703 .... .... .... .... ....
- 9 / 41: .... 0.4883 .... .... .... ....
- 9.2 / 42: .... .... .... .... .... ....
- 9.4 / 43: .... .... .... .... 0.3475 ....
- 9.6 / 44: .... .... .... .... 0.2364 ....
- 9.8 / 45: .... .... .... .... .... ....
- 10 / 46: .... .... .... .... .... ....
-
-! Now the NBIN functios
-
-let sgrid = scat2grid_nbin_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5])
-SHADE/TITLE="NBIN Gridding (5,5) to 20x20 grid" sgrid
-list/x=2:3 sgrid
- VARIABLE : SCAT2GRID_NBIN_XY (XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5])
- SUBSET : 3 by 19 points (X-Y)
- 2 2.5 3
- 3 4 5
- 1 / 1: 0.000 0.000 0.000
- 1.5 / 2: 0.000 1.000 0.000
- 2 / 3: 2.000 0.000 0.000
- 2.5 / 4: 0.000 1.000 0.000
- 3 / 5: 0.000 1.000 1.000
- 3.5 / 6: 0.000 0.000 0.000
- 4 / 7: 0.000 0.000 0.000
- 4.5 / 8: 1.000 0.000 1.000
- 5 / 9: 1.000 1.000 1.000
- 5.5 / 10: 2.000 0.000 1.000
- 6 / 11: 1.000 2.000 1.000
- 6.5 / 12: 1.000 0.000 1.000
- 7 / 13: 1.000 0.000 0.000
- 7.5 / 14: 0.000 0.000 2.000
- 8 / 15: 0.000 0.000 1.000
- 8.5 / 16: 0.000 0.000 1.000
- 9 / 17: 2.000 0.000 1.000
- 9.5 / 18: 0.000 2.000 0.000
- 10 / 19: 0.000 0.000 0.000
-
-set view lr
-let sgrid = scat2grid_nbin_xy(xpts, ypts, sample_function, x[gx=xax2], y[gy=yax2])
-SHADE/TITLE="NBIN Gridding (1,1) to 100x100" sgrid
-list/x=2:3 sgrid
- VARIABLE : SCAT2GRID_NBIN_XY(XPTS, YPTS, SAMPLE_FUNCTION, X[GX=XAX2], Y[GY=YAX2])
- SUBSET : 6 by 46 points (X-Y)
- 2 2.2 2.4 2.6 2.8 3
- 6 7 8 9 10 11
- 1 / 1: 0.000 0.000 0.000 0.000 0.000 0.000
- 1.2 / 2: 0.000 0.000 0.000 0.000 0.000 0.000
- 1.4 / 3: 0.000 0.000 0.000 0.000 0.000 0.000
- 1.6 / 4: 0.000 0.000 0.000 0.000 1.000 0.000
- 1.8 / 5: 0.000 0.000 0.000 0.000 0.000 0.000
- 2 / 6: 0.000 0.000 0.000 0.000 0.000 0.000
- 2.2 / 7: 0.000 0.000 0.000 0.000 0.000 0.000
- 2.4 / 8: 0.000 0.000 0.000 0.000 0.000 0.000
- 2.6 / 9: 0.000 0.000 1.000 0.000 0.000 0.000
- 2.8 / 10: 0.000 0.000 0.000 0.000 0.000 0.000
- 3 / 11: 0.000 0.000 0.000 1.000 1.000 0.000
- 3.2 / 12: 0.000 0.000 0.000 0.000 0.000 0.000
- 3.4 / 13: 0.000 0.000 0.000 0.000 0.000 0.000
- 3.6 / 14: 0.000 0.000 0.000 0.000 0.000 0.000
- 3.8 / 15: 0.000 0.000 0.000 0.000 0.000 0.000
- 4 / 16: 0.000 0.000 0.000 0.000 0.000 0.000
- 4.2 / 17: 1.000 0.000 0.000 0.000 0.000 0.000
- 4.4 / 18: 0.000 0.000 0.000 0.000 0.000 0.000
- 4.6 / 19: 0.000 0.000 0.000 0.000 1.000 0.000
- 4.8 / 20: 0.000 0.000 1.000 0.000 1.000 0.000
- 5 / 21: 0.000 1.000 0.000 0.000 0.000 0.000
- 5.2 / 22: 0.000 0.000 0.000 0.000 0.000 0.000
- 5.4 / 23: 0.000 0.000 0.000 0.000 0.000 0.000
- 5.6 / 24: 1.000 0.000 0.000 0.000 1.000 0.000
- 5.8 / 25: 0.000 1.000 0.000 0.000 0.000 0.000
- 6 / 26: 0.000 0.000 0.000 0.000 0.000 0.000
- 6.2 / 27: 0.000 0.000 1.000 0.000 0.000 0.000
- 6.4 / 28: 0.000 0.000 0.000 0.000 1.000 0.000
- 6.6 / 29: 1.000 0.000 0.000 0.000 0.000 0.000
- 6.8 / 30: 0.000 0.000 0.000 0.000 0.000 0.000
- 7 / 31: 0.000 0.000 0.000 0.000 0.000 0.000
- 7.2 / 32: 0.000 0.000 0.000 0.000 0.000 0.000
- 7.4 / 33: 0.000 0.000 0.000 0.000 0.000 0.000
- 7.6 / 34: 0.000 0.000 0.000 0.000 0.000 0.000
- 7.8 / 35: 0.000 0.000 0.000 0.000 0.000 1.000
- 8 / 36: 0.000 0.000 0.000 0.000 0.000 0.000
- 8.2 / 37: 0.000 0.000 0.000 0.000 0.000 0.000
- 8.4 / 38: 0.000 0.000 0.000 0.000 1.000 0.000
- 8.6 / 39: 0.000 0.000 0.000 0.000 0.000 0.000
- 8.8 / 40: 1.000 0.000 0.000 0.000 0.000 0.000
- 9 / 41: 0.000 1.000 0.000 0.000 0.000 0.000
- 9.2 / 42: 0.000 0.000 0.000 0.000 0.000 0.000
- 9.4 / 43: 0.000 0.000 0.000 0.000 1.000 0.000
- 9.6 / 44: 0.000 0.000 0.000 0.000 1.000 0.000
- 9.8 / 45: 0.000 0.000 0.000 0.000 0.000 0.000
- 10 / 46: 0.000 0.000 0.000 0.000 0.000 0.000
-
-
-! Now the XYT functions
-
-let tpts = 39798 + 87*RANDU(I)
-show grid tt
- GRID (G095)
- name axis # pts start end
- X10 X 201 r 0 10
- Y10 Y 201 r 0 10
- normal Z
- TOUT TIME 10 r 01-JAN-2010 00:00 01-APR-2010 00:00
- normal E
- normal F
-
-let sgrid = scat2grid_bin_xyt (xpts, ypts, tpts, sample_function, x[gx=xax5], y[gy=yax5], tt)
-SAVE/FILE=a.nc/clobber sgrid
-
-
-let ngrid = scat2grid_nbin_xyt (xpts, ypts, tpts, sample_function, x[gx=xax5], y[gy=yax5], tt)
-SAVE/FILE=a.nc/append ngrid
-
-can var/all
-use a.nc
-stat sgrid
-
- SCAT2GRID_BIN_XYT (XPTS, YPTS, TPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], TT)
- X: 0.75 to 10.25
- Y: 0.75 to 10.25
- Z: N/A
- TIME: DEC-2009 to APR-2010
- E: N/A
- F: N/A
- DATA SET: ./a.nc
-
- Total # of data points: 3610 (19*19*1*10*1*1)
- # flagged as bad data: 3464
- Minimum value: -0.48583
- Maximum value: 0.63765
- Mean value: 0.014003 (unweighted average)
- Standard deviation: 0.28222
-stat ngrid
-
- SCAT2GRID_NBIN_XYT (XPTS, YPTS, TPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], TT)
- X: 0.75 to 10.25
- Y: 0.75 to 10.25
- Z: N/A
- TIME: DEC-2009 to APR-2010
- E: N/A
- F: N/A
- DATA SET: ./a.nc
-
- Total # of data points: 3610 (19*19*1*10*1*1)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 3
- Mean value: 0.047645 (unweighted average)
- Standard deviation: 0.24679
-list/x=2:3/L=3 sgrid
- VARIABLE : SCAT2GRID_BIN_XYT (XPTS, YPTS, TPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], TT)
- FILENAME : a.nc
- SUBSET : 3 by 19 points (X-Y)
- TIME : JAN-2010
- 2 2.5 3
- 3 4 5
- 1 / 1: .... .... ....
- 1.5 / 2: .... 0.3250 ....
- 2 / 3: 0.3365 .... ....
- 2.5 / 4: .... 0.0915 ....
- 3 / 5: .... -0.0921 -0.1235
- 3.5 / 6: .... .... ....
- 4 / 7: .... .... ....
- 4.5 / 8: -0.1083 .... -0.1934
- 5 / 9: -0.2851 -0.2127 -0.2336
- 5.5 / 10: -0.4247 .... -0.4259
- 6 / 11: -0.4858 -0.4472 ....
- 6.5 / 12: -0.2793 .... -0.3158
- 7 / 13: -0.1265 .... ....
- 7.5 / 14: .... .... ....
- 8 / 15: .... .... ....
- 8.5 / 16: .... .... 0.6377
- 9 / 17: 0.4793 .... ....
- 9.5 / 18: .... 0.2919 ....
- 10 / 19: .... .... ....
-list/x=2:3/L=3 ngrid
- VARIABLE : SCAT2GRID_NBIN_XYT (XPTS, YPTS, TPTS, SAMPLE_FUNCTION, X[GX=XAX5], Y[GY=YAX5], TT)
- FILENAME : a.nc
- SUBSET : 3 by 19 points (X-Y)
- TIME : JAN-2010
- 2 2.5 3
- 3 4 5
- 1 / 1: 0.000 0.000 0.000
- 1.5 / 2: 0.000 1.000 0.000
- 2 / 3: 2.000 0.000 0.000
- 2.5 / 4: 0.000 1.000 0.000
- 3 / 5: 0.000 1.000 1.000
- 3.5 / 6: 0.000 0.000 0.000
- 4 / 7: 0.000 0.000 0.000
- 4.5 / 8: 1.000 0.000 1.000
- 5 / 9: 1.000 1.000 1.000
- 5.5 / 10: 2.000 0.000 1.000
- 6 / 11: 1.000 2.000 0.000
- 6.5 / 12: 1.000 0.000 1.000
- 7 / 13: 1.000 0.000 0.000
- 7.5 / 14: 0.000 0.000 0.000
- 8 / 15: 0.000 0.000 0.000
- 8.5 / 16: 0.000 0.000 1.000
- 9 / 17: 2.000 0.000 0.000
- 9.5 / 18: 0.000 2.000 0.000
- 10 / 19: 0.000 0.000 0.000
-
-can mem /all
-can var /all
-can data /all
-set grid abstract
-can grid g10x10
-
-can axis yax2
-can axis xax2
-can axis yax5
-can axis xax5
-can axis y10
-can axis x10
-can axis tout
-can axis tin
-
-
-! *********** v6.62 Additions ***********
-
-GO bn_reset
-cancel mode verify
-GO bn_axis_dir_symbols
-! bn_axis_dir_symbols.jnl
-! 5/2010
-!
-! For LAS:
-! SYMBOL AX_HORIZ and AX_VERT identify the direction of
-! the plot axes (x, y, z, or t). Add this for 1D plots
-! as well as 2D ones.
-
-plot/i=1:10 i; show sym ax*; can sym ax*
-AX_HORIZ = "X"
-AX_VERT = "Y"
-plot/j=1:10 j; show sym ax*; can sym ax*
-AX_HORIZ = "Y"
-
-use gt4d011
-plot/i=100/j=40/L=1 temp; show sym ax*; can sym ax*
-AX_VERT = "Z"
-
-use coads_climatology
-plot/x=180/y=0 sst; show sym ax*; can sym ax*
-AX_HORIZ = "T"
-plot/x=180/y=0/trans sst; show sym ax*; can sym ax*
-AX_VERT = "T"
-shade/x=180 sst; show sym ax*; can sym ax*
-AX_HORIZ = "T"
-AX_VERT = "Y"
-
-! *********** v6.63 Additions ***********
-
-GO bn_reset
-cancel mode verify
-GO bn663_bug_fixes
-! bn663_bug_fixes.jnl
-! Fixes that go into v6.63 release
-
-
-GO bn_reset
-cancel mode verify
-GO err65_dots_in_dashes.jnl
-! err65_dots_in_dashes.jnl
-! Test fix to bug 1396: dots where there should
-! be gaps in dashed lines.
-! Same test has been added for -gif mode and
-! metafile batch mode
-
-can view
-set mode metafile dashbug.plt
-set v ul; plot/dash x[gx=0:20:.5]
-set v ur; plot/dash x[gx=0:20:.1]
-set v ll; plot/dash x[gx=0:20:.05]
-set v lr; plot/dash x[gx=0:20:.01]
-frame/file=dashbug.gif
-
-cancel mode meta
-
-
-GO bn_reset
-cancel mode verify
-GO err66_all_missing_lev_v.jnl
-! err66_all_missing_lev_v.jnl
-! Ferret hangs with /LEV=V and all missing data
-
-USE coads_climatology
-SHADE/L=1/X=60:70/Y=40:50/LEV=v sst
-
-FILL/L=2/X=60:70/Y=40:50/LEV=v sst
-
-GO bn_reset
-cancel mode verify
-GO bn_set_axis_regular
-! bn_set_axis_regular.jnl
-! Karl Smith, 5/2010
-! tests for SET AXIS /REGULAR
-
-! --- create irregular but monotonic data with integer endpoints
-set region /i=1:10 /j=1:10
-let deltax = if (i gt 1 and i lt 10) then 0.5 * sin((x - 1.0) * 3.14159265 / 2.33333333) else 0.0
-let xdata = x + deltax
-let deltay = if (j gt 1 and j lt 10) then 0.5 * sin((y - 1.0) * 3.14159265 / 2.33333333) else 0.0
-let ydata = y - deltay
-
-! --- define axes and grid from this data
-define axis /x /from_data /name=myx xdata
-define axis /y /from_data /name=myy ydata
-define grid /x=myx /y=myy mygrid
-set grid mygrid
-
-! --- define a variable using this grid; show everything is irregular
-let myvar = 2 * x + y
-list /format=(F8.5) x
- VARIABLE : X
- axis MYX
- BAD FLAG : -1.E+34
- SUBSET : 10 points (X)
- X : 0.2563 to 10.74
- 1.00000
- 2.48746
- 3.21694
- 3.60908
- 4.60908
- 6.21694
- 7.48746
- 8.00000
- 8.51254
-10.00000
-list /format=(F8.5) y
- VARIABLE : Y
- axis MYY
- BAD FLAG : -1.E+34
- SUBSET : 10 points (Y)
- Y : 0.7437 to 10.26
- 1.00000
- 1.51254
- 2.78306
- 4.39092
- 5.39092
- 5.78306
- 6.51254
- 8.00000
- 9.48746
-10.00000
-list myvar
- VARIABLE : 2 * X + Y
- SUBSET : 10 by 10 points (X-Y)
- 1 2.49 3.22 3.61 4.61 6.22 7.49 8 8.51 10
- 1 2 3 4 5 6 7 8 9 10
- 1 / 1: 3.00 5.97 7.43 8.22 10.22 13.43 15.97 17.00 18.03 21.00
- 1.51 / 2: 3.51 6.49 7.95 8.73 10.73 13.95 16.49 17.51 18.54 21.51
- 2.78 / 3: 4.78 7.76 9.22 10.00 12.00 15.22 17.76 18.78 19.81 22.78
- 4.39 / 4: 6.39 9.37 10.82 11.61 13.61 16.82 19.37 20.39 21.42 24.39
- 5.39 / 5: 7.39 10.37 11.82 12.61 14.61 17.82 20.37 21.39 22.42 25.39
- 5.78 / 6: 7.78 10.76 12.22 13.00 15.00 18.22 20.76 21.78 22.81 25.78
- 6.51 / 7: 8.51 11.49 12.95 13.73 15.73 18.95 21.49 22.51 23.54 26.51
- 8 / 8: 10.00 12.97 14.43 15.22 17.22 20.43 22.97 24.00 25.03 28.00
- 9.49 / 9: 11.49 14.46 15.92 16.71 18.71 21.92 24.46 25.49 26.51 29.49
- 10 / 10: 12.00 14.97 16.43 17.22 19.22 22.43 24.97 26.00 27.03 30.00
-show grid
- Default grid for DEFINE VARIABLE is MYGRID
- Last successful data access was on grid MYGRID
- GRID MYGRID
- name axis # pts start end
- MYX X 10 i 1 10
- MYY Y 10 i 1 10
- normal Z
- normal T
- normal E
- normal F
-
-! --- force the x axis to be regular
-set axis /regular myx
-list /format=(F8.5) x
- VARIABLE : X
- axis MYX
- BAD FLAG : -1.E+34
- SUBSET : 10 points (X)
- X : 0.5 to 10.5
- 1.00000
- 2.00000
- 3.00000
- 4.00000
- 5.00000
- 6.00000
- 7.00000
- 8.00000
- 9.00000
-10.00000
-list /format=(F8.5) y
- VARIABLE : Y
- axis MYY
- BAD FLAG : -1.E+34
- SUBSET : 10 points (Y)
- Y : 0.7437 to 10.26
- 1.00000
- 1.51254
- 2.78306
- 4.39092
- 5.39092
- 5.78306
- 6.51254
- 8.00000
- 9.48746
-10.00000
-list myvar
- VARIABLE : 2 * X + Y
- SUBSET : 10 by 10 points (X-Y)
- 1 2 3 4 5 6 7 8 9 10
- 1 2 3 4 5 6 7 8 9 10
- 1 / 1: 3.00 5.97 7.43 8.22 10.22 13.43 15.97 17.00 18.03 21.00
- 1.51 / 2: 3.51 6.49 7.95 8.73 10.73 13.95 16.49 17.51 18.54 21.51
- 2.78 / 3: 4.78 7.76 9.22 10.00 12.00 15.22 17.76 18.78 19.81 22.78
- 4.39 / 4: 6.39 9.37 10.82 11.61 13.61 16.82 19.37 20.39 21.42 24.39
- 5.39 / 5: 7.39 10.37 11.82 12.61 14.61 17.82 20.37 21.39 22.42 25.39
- 5.78 / 6: 7.78 10.76 12.22 13.00 15.00 18.22 20.76 21.78 22.81 25.78
- 6.51 / 7: 8.51 11.49 12.95 13.73 15.73 18.95 21.49 22.51 23.54 26.51
- 8 / 8: 10.00 12.97 14.43 15.22 17.22 20.43 22.97 24.00 25.03 28.00
- 9.49 / 9: 11.49 14.46 15.92 16.71 18.71 21.92 24.46 25.49 26.51 29.49
- 10 / 10: 12.00 14.97 16.43 17.22 19.22 22.43 24.97 26.00 27.03 30.00
-show grid
- Default grid for DEFINE VARIABLE is MYGRID
- Last successful data access was on grid MYGRID
- GRID MYGRID
- name axis # pts start end
- MYX X 10 r 1 10
- MYY Y 10 i 1 10
- normal Z
- normal T
- normal E
- normal F
-
-! --- setting a regular axis as regular does nothing
-set axis /regular myx
-list /format=(F8.5) x
- VARIABLE : X
- axis MYX
- BAD FLAG : -1.E+34
- SUBSET : 10 points (X)
- X : 0.5 to 10.5
- 1.00000
- 2.00000
- 3.00000
- 4.00000
- 5.00000
- 6.00000
- 7.00000
- 8.00000
- 9.00000
-10.00000
-list /format=(F8.5) y
- VARIABLE : Y
- axis MYY
- BAD FLAG : -1.E+34
- SUBSET : 10 points (Y)
- Y : 0.7437 to 10.26
- 1.00000
- 1.51254
- 2.78306
- 4.39092
- 5.39092
- 5.78306
- 6.51254
- 8.00000
- 9.48746
-10.00000
-list myvar
- VARIABLE : 2 * X + Y
- SUBSET : 10 by 10 points (X-Y)
- 1 2 3 4 5 6 7 8 9 10
- 1 2 3 4 5 6 7 8 9 10
- 1 / 1: 3.00 5.97 7.43 8.22 10.22 13.43 15.97 17.00 18.03 21.00
- 1.51 / 2: 3.51 6.49 7.95 8.73 10.73 13.95 16.49 17.51 18.54 21.51
- 2.78 / 3: 4.78 7.76 9.22 10.00 12.00 15.22 17.76 18.78 19.81 22.78
- 4.39 / 4: 6.39 9.37 10.82 11.61 13.61 16.82 19.37 20.39 21.42 24.39
- 5.39 / 5: 7.39 10.37 11.82 12.61 14.61 17.82 20.37 21.39 22.42 25.39
- 5.78 / 6: 7.78 10.76 12.22 13.00 15.00 18.22 20.76 21.78 22.81 25.78
- 6.51 / 7: 8.51 11.49 12.95 13.73 15.73 18.95 21.49 22.51 23.54 26.51
- 8 / 8: 10.00 12.97 14.43 15.22 17.22 20.43 22.97 24.00 25.03 28.00
- 9.49 / 9: 11.49 14.46 15.92 16.71 18.71 21.92 24.46 25.49 26.51 29.49
- 10 / 10: 12.00 14.97 16.43 17.22 19.22 22.43 24.97 26.00 27.03 30.00
-show grid
- Default grid for DEFINE VARIABLE is MYGRID
- Last successful data access was on grid MYGRID
- GRID MYGRID
- name axis # pts start end
- MYX X 10 r 1 10
- MYY Y 10 i 1 10
- normal Z
- normal T
- normal E
- normal F
-
-! --- clean up
-go bn_reset
-cancel mode verify
-cancel grid mygrid
-
-! --- read a NetCDF file with the irregular axes and data
-use bn_set_axis_regular
-show data
- currently SET data sets:
- 1> ./bn_set_axis_regular.nc (default)
- name title I J K L M N
- MYDATA 2 * X + Y 1:10 1:10 ... ... ... ...
-
-list mydata
- VARIABLE : 2 * X + Y
- FILENAME : bn_set_axis_regular.nc
- SUBSET : 10 by 10 points (X-Y)
- 1 2.49 3.22 3.61 4.61 6.22 7.49 8 8.51 10
- 1 2 3 4 5 6 7 8 9 10
- 1 / 1: 3.00 5.97 7.43 8.22 10.22 13.43 15.97 17.00 18.03 21.00
- 1.51 / 2: 3.51 6.49 7.95 8.73 10.73 13.95 16.49 17.51 18.54 21.51
- 2.78 / 3: 4.78 7.76 9.22 10.00 12.00 15.22 17.76 18.78 19.81 22.78
- 4.39 / 4: 6.39 9.37 10.82 11.61 13.61 16.82 19.37 20.39 21.42 24.39
- 5.39 / 5: 7.39 10.37 11.82 12.61 14.61 17.82 20.37 21.39 22.42 25.39
- 5.78 / 6: 7.78 10.76 12.22 13.00 15.00 18.22 20.76 21.78 22.81 25.78
- 6.51 / 7: 8.51 11.49 12.95 13.73 15.73 18.95 21.49 22.51 23.54 26.51
- 8 / 8: 10.00 12.97 14.43 15.22 17.22 20.43 22.97 24.00 25.03 28.00
- 9.49 / 9: 11.49 14.46 15.92 16.71 18.71 21.92 24.46 25.49 26.51 29.49
- 10 / 10: 12.00 14.97 16.43 17.22 19.22 22.43 24.97 26.00 27.03 30.00
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid GOZ1
- GRID GOZ1
- name axis # pts start end
- MYX1 X 10 i 1 10
- MYY Y 10 i 1 10
- normal Z
- normal T
- normal E
- normal F
-
-! --- force the x axis to be regular
-set axis /regular `..dimnames[i=1]`
- !-> set axis /regular MYX1
-list mydata
- VARIABLE : 2 * X + Y
- FILENAME : bn_set_axis_regular.nc
- SUBSET : 10 by 10 points (X-Y)
- 1 2 3 4 5 6 7 8 9 10
- 1 2 3 4 5 6 7 8 9 10
- 1 / 1: 3.00 5.97 7.43 8.22 10.22 13.43 15.97 17.00 18.03 21.00
- 1.51 / 2: 3.51 6.49 7.95 8.73 10.73 13.95 16.49 17.51 18.54 21.51
- 2.78 / 3: 4.78 7.76 9.22 10.00 12.00 15.22 17.76 18.78 19.81 22.78
- 4.39 / 4: 6.39 9.37 10.82 11.61 13.61 16.82 19.37 20.39 21.42 24.39
- 5.39 / 5: 7.39 10.37 11.82 12.61 14.61 17.82 20.37 21.39 22.42 25.39
- 5.78 / 6: 7.78 10.76 12.22 13.00 15.00 18.22 20.76 21.78 22.81 25.78
- 6.51 / 7: 8.51 11.49 12.95 13.73 15.73 18.95 21.49 22.51 23.54 26.51
- 8 / 8: 10.00 12.97 14.43 15.22 17.22 20.43 22.97 24.00 25.03 28.00
- 9.49 / 9: 11.49 14.46 15.92 16.71 18.71 21.92 24.46 25.49 26.51 29.49
- 10 / 10: 12.00 14.97 16.43 17.22 19.22 22.43 24.97 26.00 27.03 30.00
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid GOZ1
- GRID GOZ1
- name axis # pts start end
- MYX1 X 10 r 1 10
- MYY Y 10 i 1 10
- normal Z
- normal T
- normal E
- normal F
-
-
-GO bn_reset
-cancel mode verify
-GO bn_set_cancel_redirect
-! bn_set_cancel_redirect.jnl
-! Karl Smith, 5/2010
-! test for SET REDIRECT and CANCEL REDIRECT
-
-! --- 1. redirect/tee both stdout and stderr to a file
-set redirect /tee /file="redirect.txt" /clobber stdout stderr
-
-! --- 2. produce some output to both stdout and stderr
-define axis /x=0:6:0.5 myaxis
-set axis myaxis
-define grid /x=myaxis mygrid
-set grid mygrid
-let wave=sin(x)
-list wave
- VARIABLE : SIN(X)
- SUBSET : 13 points (X)
- 0 / 1: 0.0000
- 0.5 / 2: 0.4794
- 1 / 3: 0.8415
- 1.5 / 4: 0.9975
- 2 / 5: 0.9093
- 2.5 / 6: 0.5985
- 3 / 7: 0.1411
- 3.5 / 8: -0.3508
- 4 / 9: -0.7568
- 4.5 / 10: -0.9775
- 5 / 11: -0.9589
- 5.5 / 12: -0.7055
- 6 / 13: -0.2794
-go /help
-
-! --- 3. cancel the stderr redirect and produce output
-cancel redirect stderr
-show axis myaxis
- name axis # pts start end
- MYAXIS X 13 r 0 6
- Axis span (to cell edges) = 6.5
-go /help
-
-! --- 4. cancel all redirection and produce some output
-cancel redirect
-show grid mygrid
- GRID MYGRID
- name axis # pts start end
- MYAXIS X 13 r 0 6
- normal Y
- normal Z
- normal T
- normal E
- normal F
-go /help
-
-! --- 5. show the contents of the redirect file
-! --- should be all contents of 2., stdout of 3. and nothing but the cancel from 4.
-let contents = { spawn:"cat redirect.txt" }
-list contents
- VARIABLE : { SPAWN:"cat redirect.txt" }
- SUBSET : 39 points (X)
- 1 / 1:" "
- 2 / 2:"! --- 2. produce some output to both stdout and stderr"
- 3 / 3:"define axis /x=0:6:0.5 myaxis"
- 4 / 4:"set axis myaxis"
- 5 / 5:"define grid /x=myaxis mygrid"
- 6 / 6:"set grid mygrid"
- 7 / 7:"let wave=sin(x)"
- 8 / 8:"list wave"
- 9 / 9:" VARIABLE : SIN(X)"
- 10 / 10:" SUBSET : 13 points (X)"
- 11 / 11:" 0 / 1: 0.0000"
- 12 / 12:" 0.5 / 2: 0.4794"
- 13 / 13:" 1 / 3: 0.8415"
- 14 / 14:" 1.5 / 4: 0.9975"
- 15 / 15:" 2 / 5: 0.9093"
- 16 / 16:" 2.5 / 6: 0.5985"
- 17 / 17:" 3 / 7: 0.1411"
- 18 / 18:" 3.5 / 8: -0.3508"
- 19 / 19:" 4 / 9: -0.7568"
- 20 / 20:" 4.5 / 10: -0.9775"
- 21 / 21:" 5 / 11: -0.9589"
- 22 / 22:" 5.5 / 12: -0.7055"
- 23 / 23:" 6 / 13: -0.2794"
- 24 / 24:"go /help"
- 25 / 25:" Use the GO command to name a file of FERRET commands to be executed."
- 26 / 26:" e.g. yes? GO filename"
- 27 / 27:" "
- 28 / 28:" Use "GO/HELP filename" to read documentation in the file to be executed."
- 29 / 29:" "
- 30 / 30:"! --- 3. cancel the stderr redirect and produce output"
- 31 / 31:"cancel redirect stderr"
- 32 / 32:"show axis myaxis"
- 33 / 33:" name axis # pts start end"
- 34 / 34:" MYAXIS X 13 r 0 6"
- 35 / 35:" Axis span (to cell edges) = 6.5"
- 36 / 36:"go /help"
- 37 / 37:" "
- 38 / 38:"! --- 4. cancel all redirection and produce some output"
- 39 / 39:"cancel redirect"
-cancel var contents
-
-! --- 6. redirect/tee both stdout and stderr, appending to the redirect file
-set redirect /tee /file="redirect.txt" /append stdout stderr
-
-! --- 7. produce output to both stdout and stderr
-list wave
- VARIABLE : SIN(X)
- SUBSET : 13 points (X)
- 0 / 1: 0.0000
- 0.5 / 2: 0.4794
- 1 / 3: 0.8415
- 1.5 / 4: 0.9975
- 2 / 5: 0.9093
- 2.5 / 6: 0.5985
- 3 / 7: 0.1411
- 3.5 / 8: -0.3508
- 4 / 9: -0.7568
- 4.5 / 10: -0.9775
- 5 / 11: -0.9589
- 5.5 / 12: -0.7055
- 6 / 13: -0.2794
-go /help
-
-! --- 8. cancel the stdout redirect and produce output
-cancel redirect stdout
-show axis myaxis
- name axis # pts start end
- MYAXIS X 13 r 0 6
- Axis span (to cell edges) = 6.5
-go /help
-
-! --- 9. cancel all redirection and produce some output
-cancel redirect stderr
-show grid mygrid
- GRID MYGRID
- name axis # pts start end
- MYAXIS X 13 r 0 6
- normal Y
- normal Z
- normal T
- normal E
- normal F
-go /help
-
-! --- 10. results of CANCEL REDIRECT when nothing is redirected
-cancel redirect
-
-! --- 11. show the updated contents of the redirect file
-! --- should be all contents of 2., stdout of 3. and nothing but the cancel from 4.
-! --- plus all contents of 7. and stderr of 8.
-let contents = { spawn:"cat redirect.txt" }
-list contents
- VARIABLE : { SPAWN:"cat redirect.txt" }
- SUBSET : 69 points (X)
- 1 / 1:" "
- 2 / 2:"! --- 2. produce some output to both stdout and stderr"
- 3 / 3:"define axis /x=0:6:0.5 myaxis"
- 4 / 4:"set axis myaxis"
- 5 / 5:"define grid /x=myaxis mygrid"
- 6 / 6:"set grid mygrid"
- 7 / 7:"let wave=sin(x)"
- 8 / 8:"list wave"
- 9 / 9:" VARIABLE : SIN(X)"
- 10 / 10:" SUBSET : 13 points (X)"
- 11 / 11:" 0 / 1: 0.0000"
- 12 / 12:" 0.5 / 2: 0.4794"
- 13 / 13:" 1 / 3: 0.8415"
- 14 / 14:" 1.5 / 4: 0.9975"
- 15 / 15:" 2 / 5: 0.9093"
- 16 / 16:" 2.5 / 6: 0.5985"
- 17 / 17:" 3 / 7: 0.1411"
- 18 / 18:" 3.5 / 8: -0.3508"
- 19 / 19:" 4 / 9: -0.7568"
- 20 / 20:" 4.5 / 10: -0.9775"
- 21 / 21:" 5 / 11: -0.9589"
- 22 / 22:" 5.5 / 12: -0.7055"
- 23 / 23:" 6 / 13: -0.2794"
- 24 / 24:"go /help"
- 25 / 25:" Use the GO command to name a file of FERRET commands to be executed."
- 26 / 26:" e.g. yes? GO filename"
- 27 / 27:" "
- 28 / 28:" Use "GO/HELP filename" to read documentation in the file to be executed."
- 29 / 29:" "
- 30 / 30:"! --- 3. cancel the stderr redirect and produce output"
- 31 / 31:"cancel redirect stderr"
- 32 / 32:"show axis myaxis"
- 33 / 33:" name axis # pts start end"
- 34 / 34:" MYAXIS X 13 r 0 6"
- 35 / 35:" Axis span (to cell edges) = 6.5"
- 36 / 36:"go /help"
- 37 / 37:" "
- 38 / 38:"! --- 4. cancel all redirection and produce some output"
- 39 / 39:"cancel redirect"
- 40 / 40:" "
- 41 / 41:"! --- 7. produce output to both stdout and stderr"
- 42 / 42:"list wave"
- 43 / 43:" VARIABLE : SIN(X)"
- 44 / 44:" SUBSET : 13 points (X)"
- 45 / 45:" 0 / 1: 0.0000"
- 46 / 46:" 0.5 / 2: 0.4794"
- 47 / 47:" 1 / 3: 0.8415"
- 48 / 48:" 1.5 / 4: 0.9975"
- 49 / 49:" 2 / 5: 0.9093"
- 50 / 50:" 2.5 / 6: 0.5985"
- 51 / 51:" 3 / 7: 0.1411"
- 52 / 52:" 3.5 / 8: -0.3508"
- 53 / 53:" 4 / 9: -0.7568"
- 54 / 54:" 4.5 / 10: -0.9775"
- 55 / 55:" 5 / 11: -0.9589"
- 56 / 56:" 5.5 / 12: -0.7055"
- 57 / 57:" 6 / 13: -0.2794"
- 58 / 58:"go /help"
- 59 / 59:" Use the GO command to name a file of FERRET commands to be executed."
- 60 / 60:" e.g. yes? GO filename"
- 61 / 61:" "
- 62 / 62:" Use "GO/HELP filename" to read documentation in the file to be executed."
- 63 / 63:" "
- 64 / 64:"! --- 8. cancel the stdout redirect and produce output"
- 65 / 65:"cancel redirect stdout"
- 66 / 66:" Use the GO command to name a file of FERRET commands to be executed."
- 67 / 67:" e.g. yes? GO filename"
- 68 / 68:" "
- 69 / 69:" Use "GO/HELP filename" to read documentation in the file to be executed."
-cancel var contents
-
-! --- 12. redirect only stdout to a file and produce some output to show stdout redirected, stderr normal
-! --- warning: can get confusing - look ahead for file contents
-! --- immediately following redirect line should be stderr of 12 and contents of 13,
-! --- which shows file contents of stdout of 12 and cancel redirect of 13
-set redirect /file="redirect.txt" /clobber stdout
-let contents = { spawn:"cat redirect.txt" }
-list contents
- VARIABLE : { SPAWN:"cat redirect.txt" }
- SUBSET : 21 points (X)
- 1 / 1:"list wave"
- 2 / 2:" VARIABLE : SIN(X)"
- 3 / 3:" SUBSET : 13 points (X)"
- 4 / 4:" 0 / 1: 0.0000"
- 5 / 5:" 0.5 / 2: 0.4794"
- 6 / 6:" 1 / 3: 0.8415"
- 7 / 7:" 1.5 / 4: 0.9975"
- 8 / 8:" 2 / 5: 0.9093"
- 9 / 9:" 2.5 / 6: 0.5985"
- 10 / 10:" 3 / 7: 0.1411"
- 11 / 11:" 3.5 / 8: -0.3508"
- 12 / 12:" 4 / 9: -0.7568"
- 13 / 13:" 4.5 / 10: -0.9775"
- 14 / 14:" 5 / 11: -0.9589"
- 15 / 15:" 5.5 / 12: -0.7055"
- 16 / 16:" 6 / 13: -0.2794"
- 17 / 17:"go /help"
- 18 / 18:" "
- 19 / 19:"! --- 13. cancel the redirection and show the redirect file contents"
- 20 / 20:"! --- should be the "missing" stdout of 12."
- 21 / 21:"cancel redirect stdout"
-cancel var contents
-
-! --- 14. redirect only stderr, appending to a file and produce some output to show stdout normal, stderr redirected
-set redirect /file="redirect.txt" /append stderr
-show axis myaxis
- name axis # pts start end
- MYAXIS X 13 r 0 6
- Axis span (to cell edges) = 6.5
-go /help
-
-! --- 15. cancel the redirection and show the redirect file contents
-! --- should be the stdout of 12, cancel redirect of 13, and stderr of 14
-cancel redirect stderr
-let contents = { spawn:"cat redirect.txt" }
-list contents
- VARIABLE : { SPAWN:"cat redirect.txt" }
- SUBSET : 25 points (X)
- 1 / 1:"list wave"
- 2 / 2:" VARIABLE : SIN(X)"
- 3 / 3:" SUBSET : 13 points (X)"
- 4 / 4:" 0 / 1: 0.0000"
- 5 / 5:" 0.5 / 2: 0.4794"
- 6 / 6:" 1 / 3: 0.8415"
- 7 / 7:" 1.5 / 4: 0.9975"
- 8 / 8:" 2 / 5: 0.9093"
- 9 / 9:" 2.5 / 6: 0.5985"
- 10 / 10:" 3 / 7: 0.1411"
- 11 / 11:" 3.5 / 8: -0.3508"
- 12 / 12:" 4 / 9: -0.7568"
- 13 / 13:" 4.5 / 10: -0.9775"
- 14 / 14:" 5 / 11: -0.9589"
- 15 / 15:" 5.5 / 12: -0.7055"
- 16 / 16:" 6 / 13: -0.2794"
- 17 / 17:"go /help"
- 18 / 18:" "
- 19 / 19:"! --- 13. cancel the redirection and show the redirect file contents"
- 20 / 20:"! --- should be the "missing" stdout of 12."
- 21 / 21:"cancel redirect stdout"
- 22 / 22:" Use the GO command to name a file of FERRET commands to be executed."
- 23 / 23:" e.g. yes? GO filename"
- 24 / 24:" "
- 25 / 25:" Use "GO/HELP filename" to read documentation in the file to be executed."
-cancel var contents
-
-! --- 16. redirect/tee stdout to one file and stderr to another file
-set redirect /tee /file="redirect_stdout.txt" /clobber stdout
-set redirect /tee /file="redirect_stderr.txt" /clobber stderr
-
-! --- 17. produce some output
-show grid mygrid
- GRID MYGRID
- name axis # pts start end
- MYAXIS X 13 r 0 6
- normal Y
- normal Z
- normal T
- normal E
- normal F
-go /help
-
-! --- 18. see what happens to messages (say, warn, error)
-say " This is a say message"
- This is a say message
-set axis /regular myaxis
-set mode ignore_error
-show grid garbage
-cancel mode ignore_error
-
-! --- 19. cancel redirections and show the contents of the files
-cancel redirect
-let contents = { spawn:"cat redirect_stdout.txt" }
-! --- should be the stdout of 17, whatever stdout of 18, and cancel redirect from 19
-list contents
- VARIABLE : { SPAWN:"cat redirect_stdout.txt" }
- SUBSET : 24 points (X)
- 1 / 1:"set redirect /tee /file="redirect_stderr.txt" /clobber stderr"
- 2 / 2:" "
- 3 / 3:"! --- 17. produce some output"
- 4 / 4:"show grid mygrid"
- 5 / 5:" GRID MYGRID"
- 6 / 6:" name axis # pts start end"
- 7 / 7:" MYAXIS X 13 r 0 6"
- 8 / 8:" normal Y"
- 9 / 9:" normal Z"
- 10 / 10:" normal T"
- 11 / 11:" normal E"
- 12 / 12:" normal F"
- 13 / 13:"go /help"
- 14 / 14:" "
- 15 / 15:"! --- 18. see what happens to messages (say, warn, error)"
- 16 / 16:"say " This is a say message""
- 17 / 17:" This is a say message"
- 18 / 18:"set axis /regular myaxis"
- 19 / 19:"set mode ignore_error"
- 20 / 20:"show grid garbage"
- 21 / 21:"cancel mode ignore_error"
- 22 / 22:" "
- 23 / 23:"! --- 19. cancel redirections and show the contents of the files"
- 24 / 24:"cancel redirect"
-cancel var contents
-let contents = { spawn:"cat redirect_stderr.txt" }
-! --- should be the stderr of 17.
-list contents
- VARIABLE : { SPAWN:"cat redirect_stderr.txt" }
- SUBSET : 7 points (X)
- 1 / 1:" Use the GO command to name a file of FERRET commands to be executed."
- 2 / 2:" e.g. yes? GO filename"
- 3 / 3:" "
- 4 / 4:" Use "GO/HELP filename" to read documentation in the file to be executed."
- 5 / 5:" *** NOTE: Axis is already regular: MYAXIS"
- 6 / 6:" **ERROR: variable unknown or not in data set: GARBAGE"
- 7 / 7:"show grid garbage"
-cancel var contents
-
-! --- 20. turn on journal mode to a special filename
-set mode journal:redirect_journal.txt
-
-! --- 21. turn on redirection to the journal with default source (stdout)
-set redirect /tee /journal
-
-! --- 22. produce some output to stdout and stderr
-list wave
- VARIABLE : SIN(X)
- SUBSET : 13 points (X)
- 0 / 1: 0.0000
- 0.5 / 2: 0.4794
- 1 / 3: 0.8415
- 1.5 / 4: 0.9975
- 2 / 5: 0.9093
- 2.5 / 6: 0.5985
- 3 / 7: 0.1411
- 3.5 / 8: -0.3508
- 4 / 9: -0.7568
- 4.5 / 10: -0.9775
- 5 / 11: -0.9589
- 5.5 / 12: -0.7055
- 6 / 13: -0.2794
-go /help
-
-! --- 23. cancel journal redirect and produce some output
-! --- should warn that stderr not redirected
-cancel redirect stdout stderr
-show axis myaxis
- name axis # pts start end
- MYAXIS X 13 r 0 6
- Axis span (to cell edges) = 6.5
-go /help
-
-! --- 24. redirect/tee both stdout and stderr to the journal
-set redirect /tee /journal stderr stdout
-
-! --- 25. produce some output to stdout and stderr
-show grid mygrid
- GRID MYGRID
- name axis # pts start end
- MYAXIS X 13 r 0 6
- normal Y
- normal Z
- normal T
- normal E
- normal F
-go /help
-
-! --- 26. turn off journal mode
-set mode journal:ferret.jnl
-cancel mode journal
-
-! --- 27. produce some output to show journal redirect with no journal is not a problem
-list wave
- VARIABLE : SIN(X)
- SUBSET : 13 points (X)
- 0 / 1: 0.0000
- 0.5 / 2: 0.4794
- 1 / 3: 0.8415
- 1.5 / 4: 0.9975
- 2 / 5: 0.9093
- 2.5 / 6: 0.5985
- 3 / 7: 0.1411
- 3.5 / 8: -0.3508
- 4 / 9: -0.7568
- 4.5 / 10: -0.9775
- 5 / 11: -0.9589
- 5.5 / 12: -0.7055
- 6 / 13: -0.2794
-go /help
-
-! --- 28. cancel journal redirect and show contents of the journal file
-! --- all redirected output should be commented, and should be the stdout of 22.,
-! --- cancel redirect of 23., all contents of 25, and set mode journal of 26
-cancel redirect
-let contents = { spawn:"cat redirect_journal.txt" }
-list contents
- VARIABLE : { SPAWN:"cat redirect_journal.txt" }
- SUBSET : 47 points (X)
- 1 / 1:" ! NOAA/PMEL TMAP"
- 2 / 2:" ! FERRET v6.85 "
- 3 / 3:" ! Linux 2.6.32-358.23.2.el6.x86_64 32-bit - 11/12/13"
- 4 / 4:" ! 12-Nov-13 15:12 "
- 5 / 5:""
- 6 / 6:"! "
- 7 / 7:"!! --- 22. produce some output to stdout and stderr"
- 8 / 8:"!list wave"
- 9 / 9:"! VARIABLE : SIN(X)"
- 10 / 10:"! SUBSET : 13 points (X)"
- 11 / 11:"! 0 / 1: 0.0000"
- 12 / 12:"! 0.5 / 2: 0.4794"
- 13 / 13:"! 1 / 3: 0.8415"
- 14 / 14:"! 1.5 / 4: 0.9975"
- 15 / 15:"! 2 / 5: 0.9093"
- 16 / 16:"! 2.5 / 6: 0.5985"
- 17 / 17:"! 3 / 7: 0.1411"
- 18 / 18:"! 3.5 / 8: -0.3508"
- 19 / 19:"! 4 / 9: -0.7568"
- 20 / 20:"! 4.5 / 10: -0.9775"
- 21 / 21:"! 5 / 11: -0.9589"
- 22 / 22:"! 5.5 / 12: -0.7055"
- 23 / 23:"! 6 / 13: -0.2794"
- 24 / 24:"!go /help"
- 25 / 25:"! "
- 26 / 26:"!! --- 23. cancel journal redirect and produce some output"
- 27 / 27:"!! --- should warn that stderr not redirected"
- 28 / 28:"!cancel redirect stdout stderr"
- 29 / 29:"! "
- 30 / 30:"!! --- 25. produce some output to stdout and stderr"
- 31 / 31:"!show grid mygrid"
- 32 / 32:"! GRID MYGRID"
- 33 / 33:"! name axis # pts start end"
- 34 / 34:"! MYAXIS X 13 r 0 6"
- 35 / 35:"! normal Y"
- 36 / 36:"! normal Z"
- 37 / 37:"! normal T"
- 38 / 38:"! normal E"
- 39 / 39:"! normal F"
- 40 / 40:"!go /help"
- 41 / 41:"! Use the GO command to name a file of FERRET commands to be executed."
- 42 / 42:"! e.g. yes? GO filename"
- 43 / 43:"! "
- 44 / 44:"! Use "GO/HELP filename" to read documentation in the file to be executed."
- 45 / 45:"! "
- 46 / 46:"!! --- 26. turn off journal mode"
- 47 / 47:"!set mode journal:ferret.jnl"
-cancel var contents
-
-! --- clean-up: get rid of mygrid
-set grid abstract
-cancel grid mygrid
-
-!!! NOTE: journal mode is now turned off !!!
-
-GO bn_reset
-cancel mode verify
-GO bn_min_max_smoothers
-! bn_min_max_smoothers.jnl
-! New transforms @SMN and @SMX, smoothers based on the
-! min and max of the data in the window.
-sh trans
-variable transforms e.g.SST[T=1-jan:15-mar at DDC]
- code description code description
- ---- ----------- ---- -----------
- @ITP interpolated @SPZ Parzen smoothed
- @AVE averaged @FAV ave-filled
- @VAR variance @FLN linear-filled
- @SUM summed @FNR nearest-filled
- @RSU running sum @NGD number of valid
- @SHF shifted @NBD number flagged bad
- @MIN minimum @LOC location
- @MAX maximum @WEQ weighted equal
- @DDC centered derivative @CDA closest dist above
- @DDF forward derivative @CDB closest dist below
- @DDB backwards derivative @CIA closest index above
- @DIN integrated @CIB closest index below
- @IIN indef. integ. @EVN event mask
- @SBX box smoothed @MED median smoothed
- @SBN binomial smoothed @SMX maximum smoothed
- @SWL Welch smoothed @SMN minimum smoothed
- @SHN Hanning smoothed
-
-regridding transforms e.g.SST[GX=x5deg at AVE]
- code description code description
- ---- ----------- ---- -----------
- @LIN lin. interp. @MOD modulo ave
- @AVE box avgd @MODVAR modulo var
- @XACT exact match @MODNGD # gd mod pts
- @ASN index assn @MODNBD #bad mod pts
- @VAR variance @MODSUM modulo sum
- @MIN minimum @MODMIN modulo min
- @MAX maximum @MODMAX modulo max
- @SUM sum @NRST nearst coord
- @NGD # gd pts
-use gt4d011
-plot/x=123.5w/y=2.5/k=1 temp, temp[L=@med], temp[L=@smx], temp[L=@smn]
-
-plot/x=123.5w/y=2.5/k=1 temp, temp[L=@med:3], temp[L=@smx:3], temp[L=@smn:3]
-plot/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:5], temp[L=@smn:5]
-plot/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:6], temp[L=@smn:6]
-
-plot/y=2.5/k=1/l=1/x=139.5W:122.5W temp, temp[i=@med], temp[i=@smx], temp[i=@smn]
-plot/k=1/l=1/x=123.5w temp, temp[j=@med], temp[j=@smx], temp[j=@smn]
-plot/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
-
-! Numeric results
-list/x=123.5w/y=2.5/k=1 temp, temp[L=@med], temp[L=@smx], temp[L=@smn]
- DATA SET: ./gt4d011.cdf
- TIME: AUG-1982 to JAN-1983
- LONGITUDE: 123.5W
- LATITUDE: 2.5N
- DEPTH (m): 5
- Column 1: TEMP is TEMPERATURE (deg. C)
- Column 2: TEMP[T=@MED:3] is TEMPERATURE (deg. C)(median smoothed by 3 pts on T)
- Column 3: TEMP[T=@SMX:3] is TEMPERATURE (deg. C)(maximum smoothed by 3 pts on T)
- Column 4: TEMP[T=@SMN:3] is TEMPERATURE (deg. C)(minimum smoothed by 3 pts on T)
- TEMP TEMP TEMP TEMP
-17-AUG-1982 12 / 1: 27.15 27.23 27.23 27.15
-23-AUG-1982 14 / 2: 27.23 27.23 27.36 27.15
-29-AUG-1982 16 / 3: 27.36 27.36 27.54 27.23
-04-SEP-1982 18 / 4: 27.54 27.54 27.79 27.36
-10-SEP-1982 20 / 5: 27.79 27.79 28.09 27.54
-16-SEP-1982 22 / 6: 28.09 28.09 28.33 27.79
-23-SEP-1982 00 / 7: 28.33 28.33 28.47 28.09
-29-SEP-1982 02 / 8: 28.47 28.47 28.61 28.33
-05-OCT-1982 04 / 9: 28.61 28.61 28.91 28.47
-11-OCT-1982 06 / 10: 28.91 28.91 29.34 28.61
-17-OCT-1982 08 / 11: 29.34 29.34 29.76 28.91
-23-OCT-1982 10 / 12: 29.76 29.76 30.20 29.34
-29-OCT-1982 12 / 13: 30.20 30.20 30.75 29.76
-04-NOV-1982 14 / 14: 30.75 30.75 31.42 30.20
-10-NOV-1982 16 / 15: 31.42 31.42 31.84 30.75
-16-NOV-1982 18 / 16: 31.84 31.84 31.98 31.42
-22-NOV-1982 20 / 17: 31.98 31.98 32.13 31.84
-28-NOV-1982 22 / 18: 32.13 32.13 32.41 31.98
-05-DEC-1982 00 / 19: 32.41 32.41 32.73 32.13
-11-DEC-1982 02 / 20: 32.73 32.73 32.94 32.41
-17-DEC-1982 04 / 21: 32.94 32.94 32.97 32.73
-23-DEC-1982 06 / 22: 32.97 32.94 32.97 32.94
-29-DEC-1982 08 / 23: 32.94 32.94 32.97 32.81
-04-JAN-1983 10 / 24: 32.81 32.81 32.94 32.59
-10-JAN-1983 12 / 25: 32.59 32.81 32.81 32.59
-
-list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:3], temp[L=@smx:3], temp[L=@smn:3]
- DATA SET: ./gt4d011.cdf
- TIME: AUG-1982 to JAN-1983
- LONGITUDE: 123.5W
- LATITUDE: 2.5N
- DEPTH (m): 5
- Column 1: TEMP is TEMPERATURE (deg. C)
- Column 2: TEMP[T=@MED:3] is TEMPERATURE (deg. C)(median smoothed by 3 pts on T)
- Column 3: TEMP[T=@SMX:3] is TEMPERATURE (deg. C)(maximum smoothed by 3 pts on T)
- Column 4: TEMP[T=@SMN:3] is TEMPERATURE (deg. C)(minimum smoothed by 3 pts on T)
- TEMP TEMP TEMP TEMP
-17-AUG-1982 12 / 1: 27.15 27.23 27.23 27.15
-23-AUG-1982 14 / 2: 27.23 27.23 27.36 27.15
-29-AUG-1982 16 / 3: 27.36 27.36 27.54 27.23
-04-SEP-1982 18 / 4: 27.54 27.54 27.79 27.36
-10-SEP-1982 20 / 5: 27.79 27.79 28.09 27.54
-16-SEP-1982 22 / 6: 28.09 28.09 28.33 27.79
-23-SEP-1982 00 / 7: 28.33 28.33 28.47 28.09
-29-SEP-1982 02 / 8: 28.47 28.47 28.61 28.33
-05-OCT-1982 04 / 9: 28.61 28.61 28.91 28.47
-11-OCT-1982 06 / 10: 28.91 28.91 29.34 28.61
-17-OCT-1982 08 / 11: 29.34 29.34 29.76 28.91
-23-OCT-1982 10 / 12: 29.76 29.76 30.20 29.34
-29-OCT-1982 12 / 13: 30.20 30.20 30.75 29.76
-04-NOV-1982 14 / 14: 30.75 30.75 31.42 30.20
-10-NOV-1982 16 / 15: 31.42 31.42 31.84 30.75
-16-NOV-1982 18 / 16: 31.84 31.84 31.98 31.42
-22-NOV-1982 20 / 17: 31.98 31.98 32.13 31.84
-28-NOV-1982 22 / 18: 32.13 32.13 32.41 31.98
-05-DEC-1982 00 / 19: 32.41 32.41 32.73 32.13
-11-DEC-1982 02 / 20: 32.73 32.73 32.94 32.41
-17-DEC-1982 04 / 21: 32.94 32.94 32.97 32.73
-23-DEC-1982 06 / 22: 32.97 32.94 32.97 32.94
-29-DEC-1982 08 / 23: 32.94 32.94 32.97 32.81
-04-JAN-1983 10 / 24: 32.81 32.81 32.94 32.59
-10-JAN-1983 12 / 25: 32.59 32.81 32.81 32.59
-list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:5], temp[L=@smn:5]
- DATA SET: ./gt4d011.cdf
- TIME: AUG-1982 to JAN-1983
- LONGITUDE: 123.5W
- LATITUDE: 2.5N
- DEPTH (m): 5
- Column 1: TEMP is TEMPERATURE (deg. C)
- Column 2: TEMP[T=@MED:5] is TEMPERATURE (deg. C)(median smoothed by 5 pts on T)
- Column 3: TEMP[T=@SMX:5] is TEMPERATURE (deg. C)(maximum smoothed by 5 pts on T)
- Column 4: TEMP[T=@SMN:5] is TEMPERATURE (deg. C)(minimum smoothed by 5 pts on T)
- TEMP TEMP TEMP TEMP
-17-AUG-1982 12 / 1: 27.15 27.23 27.36 27.15
-23-AUG-1982 14 / 2: 27.23 27.36 27.54 27.15
-29-AUG-1982 16 / 3: 27.36 27.36 27.79 27.15
-04-SEP-1982 18 / 4: 27.54 27.54 28.09 27.23
-10-SEP-1982 20 / 5: 27.79 27.79 28.33 27.36
-16-SEP-1982 22 / 6: 28.09 28.09 28.47 27.54
-23-SEP-1982 00 / 7: 28.33 28.33 28.61 27.79
-29-SEP-1982 02 / 8: 28.47 28.47 28.91 28.09
-05-OCT-1982 04 / 9: 28.61 28.61 29.34 28.33
-11-OCT-1982 06 / 10: 28.91 28.91 29.76 28.47
-17-OCT-1982 08 / 11: 29.34 29.34 30.20 28.61
-23-OCT-1982 10 / 12: 29.76 29.76 30.75 28.91
-29-OCT-1982 12 / 13: 30.20 30.20 31.42 29.34
-04-NOV-1982 14 / 14: 30.75 30.75 31.84 29.76
-10-NOV-1982 16 / 15: 31.42 31.42 31.98 30.20
-16-NOV-1982 18 / 16: 31.84 31.84 32.13 30.75
-22-NOV-1982 20 / 17: 31.98 31.98 32.41 31.42
-28-NOV-1982 22 / 18: 32.13 32.13 32.73 31.84
-05-DEC-1982 00 / 19: 32.41 32.41 32.94 31.98
-11-DEC-1982 02 / 20: 32.73 32.73 32.97 32.13
-17-DEC-1982 04 / 21: 32.94 32.94 32.97 32.41
-23-DEC-1982 06 / 22: 32.97 32.94 32.97 32.73
-29-DEC-1982 08 / 23: 32.94 32.94 32.97 32.59
-04-JAN-1983 10 / 24: 32.81 32.94 32.97 32.59
-10-JAN-1983 12 / 25: 32.59 32.81 32.94 32.59
-list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:6], temp[L=@smn:6]
- DATA SET: ./gt4d011.cdf
- TIME: AUG-1982 to JAN-1983
- LONGITUDE: 123.5W
- LATITUDE: 2.5N
- DEPTH (m): 5
- Column 1: TEMP is TEMPERATURE (deg. C)
- Column 2: TEMP[T=@MED:5] is TEMPERATURE (deg. C)(median smoothed by 5 pts on T)
- Column 3: TEMP[T=@SMX:6] is TEMPERATURE (deg. C)(maximum smoothed by 6 pts on T)
- Column 4: TEMP[T=@SMN:6] is TEMPERATURE (deg. C)(minimum smoothed by 6 pts on T)
- TEMP TEMP TEMP TEMP
-17-AUG-1982 12 / 1: 27.15 27.23 27.54 27.15
-23-AUG-1982 14 / 2: 27.23 27.36 27.79 27.15
-29-AUG-1982 16 / 3: 27.36 27.36 28.09 27.15
-04-SEP-1982 18 / 4: 27.54 27.54 28.33 27.15
-10-SEP-1982 20 / 5: 27.79 27.79 28.47 27.23
-16-SEP-1982 22 / 6: 28.09 28.09 28.61 27.36
-23-SEP-1982 00 / 7: 28.33 28.33 28.91 27.54
-29-SEP-1982 02 / 8: 28.47 28.47 29.34 27.79
-05-OCT-1982 04 / 9: 28.61 28.61 29.76 28.09
-11-OCT-1982 06 / 10: 28.91 28.91 30.20 28.33
-17-OCT-1982 08 / 11: 29.34 29.34 30.75 28.47
-23-OCT-1982 10 / 12: 29.76 29.76 31.42 28.61
-29-OCT-1982 12 / 13: 30.20 30.20 31.84 28.91
-04-NOV-1982 14 / 14: 30.75 30.75 31.98 29.34
-10-NOV-1982 16 / 15: 31.42 31.42 32.13 29.76
-16-NOV-1982 18 / 16: 31.84 31.84 32.41 30.20
-22-NOV-1982 20 / 17: 31.98 31.98 32.73 30.75
-28-NOV-1982 22 / 18: 32.13 32.13 32.94 31.42
-05-DEC-1982 00 / 19: 32.41 32.41 32.97 31.84
-11-DEC-1982 02 / 20: 32.73 32.73 32.97 31.98
-17-DEC-1982 04 / 21: 32.94 32.94 32.97 32.13
-23-DEC-1982 06 / 22: 32.97 32.94 32.97 32.41
-29-DEC-1982 08 / 23: 32.94 32.94 32.97 32.59
-04-JAN-1983 10 / 24: 32.81 32.94 32.97 32.59
-10-JAN-1983 12 / 25: 32.59 32.81 32.97 32.59
-
-list/y=2.5/k=1/l=1/x=139.5W:122.5W temp, temp[i=@med], temp[i=@smx], temp[i=@smn]
- DATA SET: ./gt4d011.cdf
- LONGITUDE: 139.5W to 122.5W
- LATITUDE: 2.5N
- DEPTH (m): 5
- TIME: AUG-1982
- Column 1: TEMP is TEMPERATURE (deg. C)
- Column 2: TEMP[X=@MED:3] is TEMPERATURE (deg. C)(median smoothed by 3 pts on X)
- Column 3: TEMP[X=@SMX:3] is TEMPERATURE (deg. C)(maximum smoothed by 3 pts on X)
- Column 4: TEMP[X=@SMN:3] is TEMPERATURE (deg. C)(minimum smoothed by 3 pts on X)
- TEMP TEMP TEMP TEMP
-139.5W / 91: 26.58 26.65 26.65 26.58
-138.5W / 92: 26.65 26.65 26.90 26.58
-137.5W / 93: 26.90 26.90 27.14 26.65
-136.5W / 94: 27.14 27.14 27.24 26.90
-135.5W / 95: 27.24 27.18 27.24 27.14
-134.5W / 96: 27.18 27.18 27.24 26.91
-133.5W / 97: 26.91 26.91 27.18 26.70
-132.5W / 98: 26.70 26.81 26.91 26.70
-131.5W / 99: 26.81 26.81 27.01 26.70
-130.5W / 100: 27.01 27.01 27.16 26.81
-129.5W / 101: 27.16 27.16 27.21 27.01
-128.5W / 102: 27.21 27.20 27.21 27.16
-127.5W / 103: 27.20 27.20 27.21 27.18
-126.5W / 104: 27.18 27.18 27.20 27.14
-125.5W / 105: 27.14 27.14 27.18 27.13
-124.5W / 106: 27.13 27.14 27.15 27.13
-123.5W / 107: 27.15 27.15 27.17 27.13
-122.5W / 108: 27.17 27.17 27.17 27.15
-list/k=1/l=1/x=123.5w temp, temp[j=35:56 at med], temp[j=35:56 at smx], temp[j=35:56 at smn]
- DATA SET: ./gt4d011.cdf
- LATITUDE: 3.667S to 3.667N
- LONGITUDE: 123.5W
- DEPTH (m): 5
- TIME: AUG-1982
- Column 1: TEMP is TEMPERATURE (deg. C)
- Column 2: TEMP[Y=@MED:3] is TEMPERATURE (deg. C)(median smoothed by 3 pts on Y)
- Column 3: TEMP[Y=@SMX:3] is TEMPERATURE (deg. C)(maximum smoothed by 3 pts on Y)
- Column 4: TEMP[Y=@SMN:3] is TEMPERATURE (deg. C)(minimum smoothed by 3 pts on Y)
- TEMP TEMP TEMP TEMP
-3.5S / 35: 26.00 26.00 26.00 25.95
-3.17S / 36: 25.95 25.95 26.00 25.89
-2.83S / 37: 25.89 25.89 25.95 25.82
-2.5S / 38: 25.82 25.82 25.89 25.74
-2.17S / 39: 25.74 25.74 25.82 25.66
-1.83S / 40: 25.66 25.66 25.74 25.60
-1.5S / 41: 25.60 25.60 25.66 25.54
-1.17S / 42: 25.54 25.54 25.60 25.50
-0.83S / 43: 25.50 25.50 25.54 25.50
-0.5S / 44: 25.50 25.50 25.54 25.50
-0.17S / 45: 25.54 25.54 25.63 25.50
-0.17N / 46: 25.63 25.63 25.76 25.54
-0.5N / 47: 25.76 25.76 25.93 25.63
-0.83N / 48: 25.93 25.93 26.15 25.76
-1.17N / 49: 26.15 26.15 26.42 25.93
-1.5N / 50: 26.42 26.42 26.69 26.15
-1.83N / 51: 26.69 26.69 26.92 26.42
-2.17N / 52: 26.92 26.92 27.15 26.69
-2.5N / 53: 27.15 27.15 27.40 26.92
-2.83N / 54: 27.40 27.40 27.70 27.15
-3.17N / 55: 27.70 27.70 28.06 27.40
-3.5N / 56: 28.06 28.06 28.06 27.70
-
-list/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
- DATA SET: ./gt4d011.cdf
- DEPTH (m): 0 to 100
- LONGITUDE: 123.5W
- LATITUDE: 2.5N
- TIME: AUG-1982
- Column 1: TEMP is TEMPERATURE (deg. C)
- Column 2: TEMP[Z=@MED:3] is TEMPERATURE (deg. C)(median smoothed by 3 pts on Z)
- Column 3: TEMP[Z=@SMX:3] is TEMPERATURE (deg. C)(maximum smoothed by 3 pts on Z)
- Column 4: TEMP[Z=@SMN:3] is TEMPERATURE (deg. C)(minimum smoothed by 3 pts on Z)
- TEMP TEMP TEMP TEMP
-5 / 1: 27.15 27.15 27.15 27.10
-15 / 2: 27.10 27.10 27.15 27.10
-25 / 3: 27.10 27.10 27.10 27.10
-35 / 4: 27.10 27.10 27.10 27.09
-45 / 5: 27.09 27.09 27.10 26.84
-55 / 6: 26.84 26.84 27.09 26.21
-65 / 7: 26.21 26.21 26.84 25.40
-75 / 8: 25.40 25.40 26.21 24.51
-85 / 9: 24.51 24.51 25.40 23.54
-95 / 10: 23.54 24.51 24.51 23.54
-
-
-GO bn_reset
-cancel mode verify
-GO bn_vector_symbols
-! bn_vector_symbols.jnl
-! ACM 7/16/21010 Ferret V6.6.3
-!
-! On any vector plot command, define symbols
-! PPL_VECLEN containing the vector length scale
-! PPL_VEC_XSKIP, PPL_VEC_YSKIP containing the skip
-!
-! They are defined whether they are automatically set or
-! set via qualifiers.
-
-VECTOR/I=1:10/J=1:20 i/j,j/i
-SHOW SYMBOL ppl_vec*
-PPL_VECLEN = " 7.39"
-PPL_VEC_XSKIP = "1"
-PPL_VEC_YSKIP = "1"
-
-VECTOR/I=1:10/J=1:20/LEN=8 i/j,j/i
-SHOW SYMBOL ppl_vec*
-PPL_VECLEN = " 8.00"
-PPL_VEC_XSKIP = "1"
-PPL_VEC_YSKIP = "1"
-
-VECTOR/I=1:300/J=1:200/LEN=8.2 i/j,j/i
-SHOW SYMBOL ppl_vec*
-PPL_VECLEN = " 8.20"
-PPL_VEC_XSKIP = "8"
-PPL_VEC_YSKIP = "7"
-
-VECTOR/I=1:300/J=1:200/XSKIP=10/YSKIP=8 i/j,j/i
-SHOW SYMBOL ppl_vec*
-PPL_VECLEN = " 25.1"
-PPL_VEC_XSKIP = "10"
-PPL_VEC_YSKIP = "8"
-
-VECTOR/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=8 i/j,j/i
-SHOW SYMBOL ppl_vec*
-PPL_VECLEN = " 12.2"
-PPL_VEC_XSKIP = "10"
-PPL_VEC_YSKIP = "8"
-
-! Also, vector/KEY turns on the key even if /NOLAB was set.
-VECTOR/NOLAB/KEY/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=6 i/j,j/i
-
-VECTOR/OVER/KEY/NOLAB/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=4 i/j,j/i
-
-GO bn_reset
-cancel mode verify
-GO bn_variance_large
-! bn_variance_large.jnl
-! Previous to v6.6.4, these returned messages **too big**
-
-USE coads_climatology
-LET huge = sst*1.e18
-STAT/L=1 huge
-
- SST*1.E18
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 6694
- Minimum value: -1.8E+18
- Maximum value: 3.1E+19
- Mean value: 1.652E+19 (unweighted average)
- Standard deviation: 1.0139E+19
-SHADE/L=1/LEV=v huge
-
-LET huge = sst*1.e25
-STAT/L=1 huge
-
- SST*1.E25
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: JAN
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 6694
- Minimum value: -1.8E+25
- Maximum value: 3.1E+26
- Mean value: 1.652E+26 (unweighted average)
- Standard deviation: 1.0139E+26
-SHADE/L=1/LEV=v huge
-
-CANCEL SYMBOL lev*
-
-GO bn_reset
-cancel mode verify
-GO bn_labnum_calendar
-! bn_labnum_calendar.jn.
-! Define new symbol, when a Calendar label is on
-! the plot, pointing to its ppl label number.
-
-! Use a non-standard calendar
-! label LABNUM_CALEN is defined.
-
-use gt4d011
-set axis/calendar=noleap `temp,return=taxis`
- !-> set axis/calendar=noleap TIME12
-plot/x=132w/y=2n/k=1 temp
-sh sym LABNUM_CALEND
-LABNUM_CALEND = "4"
-sh sym lab($labnum_calend)
- !-> sh sym lab4
-LAB4 = "CALENDAR: NOLEAP"
-
-
-
-! *********** v6.65 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn665_bug_fixes
-! bn65_bug_fixes.jnl
-! test various fixes that went into version 6.6.5
-! 11/2010 ACM
-!
-
-GO bn_reset
-cancel mode verify
-GO err664_xml_keep_case
-! err664_xml_keep_case.jnl
-!
-! See bug 1177, xml output should keep the original case of
-! variables and axis names. Previously xml output upcased
-! variable and coordinate axis names.
-!
-! This dataset has variables and axes in various cases:
-! upper case axis TIME
-! lower case axis zt, variable temp
-! mixed case axes grid_x_T, grid_y_T
-
-!******* Note this is NOT implemented in the V6.65 release ******!
-!******* Needs further changes to integrate it with LAS ******!
-
-use a_cartesian_bug1179.nc
-sh var/xml
-
-! List the xml for just the axes in this file. sho axis/all/xml
-! lists all axes here at the end of the benchmarks.
-
-LET axis_names = ..dimnames
-LET nd = ..ndims
-REPEAT/RANGE=1:`nd`/name=m (DEFINE SYMBOL m = `m`; SH AXIS/XML `axis_names[i=($m)]`)
- !-> REPEAT/RANGE=1:4/name=m (DEFINE SYMBOL m = `m`; SH AXIS/XML `axis_names[i=($m)]`)
-!-> REPEAT: M:1
- !-> DEFINE SYMBOL m = 1
- !-> SH AXIS/XML TIME12
-<axes>
-<axis name="TIME12">
-<attribute name="direction" type="char">
- <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[days since 1900-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>1</value>
-</attribute>
-<attribute name="start" type="double">
- <value>1900-02-15 03:00:00</value>
-</attribute>
-<attribute name="end" type="double">
- <value>1900-02-15 03:00:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
- <value><![CDATA[1900-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
- <value><![CDATA[JULIAN]]></value>
-</attribute>
-</axis>
-</axes>
-!-> REPEAT: M:2
- !-> DEFINE SYMBOL m = 2
- !-> SH AXIS/XML grid_x_T
-<axes>
-<axis name="GRID_X_T">
-<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_east]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>1</value>
-</attribute>
-<attribute name="start" type="double">
- <value>79</value>
-</attribute>
-<attribute name="end" type="double">
- <value>79</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[Nominal Longitude of T-cell center]]></value>
-</attribute>
-<attribute name="cartesian_axis" type="char">
- <value><![CDATA[X]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[grid_x_T]]></value>
-</attribute>
-</axis>
-</axes>
-!-> REPEAT: M:3
- !-> DEFINE SYMBOL m = 3
- !-> SH AXIS/XML grid_y_T
-<axes>
-<axis name="GRID_Y_T">
-<attribute name="direction" type="char">
- <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_north]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>1</value>
-</attribute>
-<attribute name="start" type="double">
- <value>-0.25</value>
-</attribute>
-<attribute name="end" type="double">
- <value>-0.25</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[Nominal Latitude of T-cell center]]></value>
-</attribute>
-<attribute name="cartesian_axis" type="char">
- <value><![CDATA[Y]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[grid_y_T]]></value>
-</attribute>
-</axis>
-</axes>
-!-> REPEAT: M:4
- !-> DEFINE SYMBOL m = 4
- !-> SH AXIS/XML zt
-<axes>
-<axis name="ZT">
-<attribute name="direction" type="char">
- <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[meters]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>10</value>
-</attribute>
-<attribute name="start" type="double">
- <value>22.5</value>
-</attribute>
-<attribute name="end" type="double">
- <value>157.9952</value>
-</attribute>
-<attribute name="positive" type="char">
- <value><![CDATA[down]]></value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value>uneven</value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[zt]]></value>
-</attribute>
-<attribute name="cartesian_axis" type="char">
- <value><![CDATA[z]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[zt]]></value>
-</attribute>
-<attribute name="bounds" type="char">
- <value>zt_bnds</value>
-</attribute>
-</axis>
-</axes>
-
-
-GO bn_reset
-cancel mode verify
-GO err664_xml_one_point_axis
-! err664_xml_one_point_axis.jnl
-! See LAS ticket 969.
-! Previously the xml listing incorrectly skipped valid one-point axes.
-! (When an axis is averaged away xml listings correctly
-! skip the now-degenerate axis.
-
-USE a_cartesian_bug1179.nc
-SH DAT
- currently SET data sets:
- 1> ./a_cartesian_bug1179.nc (default)
- name title I J K L M N
- TEMP THETA_FO(SALT_EXTRAP,TEMP_EXTRA 1:1 1:1 1:10 1:1 ... ...
-
-
-LET/D=1 a = temp
-! These listings should show the X,Y, and T axes, valid one-point axes
-! and also the Z axis which has 10 points.
-SH VAR/XML
-<global>
-<var name="A[D=./a_cartesian_bug1179.nc]">
-<attribute name="definition" type="char">
- <value><![CDATA[TEMP]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="GHU1">
-<axes>
-<xaxis>GRID_X_T</xaxis>
-<yaxis>GRID_Y_T</yaxis>
-<zaxis>ZT</zaxis>
-<taxis>TIME12</taxis>
-</axes>
-</grid>
-</var>
-</global>
-
-CANCEL VAR a
-
-LET/D=1 temp_ave_t = temp[Z=37.5:112.5 at AVE]
-! These listings should show the X,Y, and T axes, valid one-point axes
-! but not the Z axis, which has been averaged away.
-SH VAR/XML
-<global>
-<var name="TEMP_AVE_T[D=./a_cartesian_bug1179.nc]">
-<attribute name="definition" type="char">
- <value><![CDATA[TEMP[Z=37.5:112.5 at AVE]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<grid name="GHU1">
-<axes>
-<xaxis>GRID_X_T</xaxis>
-<yaxis>GRID_Y_T</yaxis>
-<taxis>TIME12</taxis>
-</axes>
-</grid>
-</var>
-</global>
-
-
-GO bn_reset
-cancel mode verify
-GO err65_read_epic_cdf
-! Ned Cokelet reports that the time coordinate is read incorrectly
-! from this file. Should translate to 04-MAY-2007 05:02
-! Bug was in v6.4 - 6.6 Ferret
-
-set mode calendar:minutes ! this was set to months, back in bn_pattern.jnl
-use epic_formatted_file.nc
-list/prec=7 t[gt=t_28]
- VARIABLE : T
- axis TIME12
- FILENAME : epic_formatted_file.nc
- TIME : 04-MAY-2007 05:02
- 38825.21
-
-
-GO bn_reset
-cancel mode verify
-GO err664_tax_fcns
-! err664_tax_fcns.jnl
-! Fixes for tickets 1766 and 1765
-
-! 1765 Functions did not test for missing data.
-
-
-! tax_ functions
-use gt4d011
-let tval = t[gt=temp]
-
-list tax_dayfrac({`tval[l=1]`,`tval[l=13]`,},tval)
- !-> list tax_dayfrac({22702,24454,},tval)
- VARIABLE : TAX_DAYFRAC({22702,24454,},TVAL)
- FILENAME : gt4d011.cdf
- SUBSET : 3 points (X)
- 1 / 1: 0.5000
- 2 / 2: 0.5000
- 3 / 3: ....
-list tax_day({`tval[l=1]`,`tval[l=13]`,},tval)
- !-> list tax_day({22702,24454,},tval)
- VARIABLE : TAX_DAY({22702,24454,},TVAL)
- FILENAME : gt4d011.cdf
- SUBSET : 3 points (X)
- 1 / 1: 17.00
- 2 / 2: 29.00
- 3 / 3: ....
-list tax_month({`tval[l=1]`,`tval[l=13]`,},tval)
- !-> list tax_month({22702,24454,},tval)
- VARIABLE : TAX_MONTH({22702,24454,},TVAL)
- FILENAME : gt4d011.cdf
- SUBSET : 3 points (X)
- 1 / 1: 8.00
- 2 / 2: 10.00
- 3 / 3: ....
-list tax_year({`tval[l=1]`,`tval[l=13]`,},tval)
- !-> list tax_year({22702,24454,},tval)
- VARIABLE : TAX_YEAR({22702,24454,},TVAL)
- FILENAME : gt4d011.cdf
- SUBSET : 3 points (X)
- 1 / 1: 1982.
- 2 / 2: 1982.
- 3 / 3: ....
-
-! 1766 tax_year retured 0 for year 0001
-
-def ax/edge/t=1-jan-0000:1-jan-0005:1/unit=year tax
-let a = t[gt=tax]
-list tax_year(a,a)
- VARIABLE : TAX_YEAR(A,A)
- SUBSET : 6 points (TIME)
- JUL-0000 / 1: 0.000
- JUL-0001 / 2: 1.000
- JUL-0002 / 3: 2.000
- JUL-0003 / 4: 3.000
- JUL-0004 / 5: 4.000
- JUL-0005 / 6: 5.000
-
-! Likewise no year for year 0000 and 0001 in tax_datestring
- list tax_datestring(a, a, "day")
- VARIABLE : TAX_DATESTRING(A, A, "day")
- SUBSET : 6 points (TIME)
- JUL-0000 / 1:"01-JUL-0000"
- JUL-0001 / 2:"01-JUL-0001"
- JUL-0002 / 3:"02-JUL-0002"
- JUL-0003 / 4:"02-JUL-0003"
- JUL-0004 / 5:"01-JUL-0004"
- JUL-0005 / 6:"01-JUL-0005"
-
-
-GO bn_reset
-cancel mode verify
-GO bn_floatstr
-! bn_floatstr.jnl
-! testing new function to convert floating-point
-! variables to strings.
-
-LET string = FLOATSTR({3.14159,2.71828},"(f3.1)")
-LIST string
- VARIABLE : FLOATSTR({3.14159,2.71828},"(f3.1)")
- SUBSET : 2 points (X)
- 1 / 1:"3.1"
- 2 / 2:"2.7"
-
-! Missing data returned as the null string
-LET string = FLOATSTR({3.14159,2.71828,},"(g8.2)")
-LIST string
- VARIABLE : FLOATSTR({3.14159,2.71828,},"(g8.2)")
- SUBSET : 3 points (X)
- 1 / 1:" 3.1"
- 2 / 2:" 2.7"
- 3 / 3:""
-
-! Test some large and small values
-LET var = {3.14159,2.71828,}
-LIST FLOATSTR(36*var,"(e9.4)")
- VARIABLE : FLOATSTR(36*VAR,"(e9.4)")
- SUBSET : 3 points (X)
- 1 / 1:".1131E+03"
- 2 / 2:".9786E+02"
- 3 / 3:""
-LIST FLOATSTR(1.e14*var,"(e9.4)")
- VARIABLE : FLOATSTR(1.E14*VAR,"(e9.4)")
- SUBSET : 3 points (X)
- 1 / 1:".3142E+15"
- 2 / 2:".2718E+15"
- 3 / 3:""
-LIST FLOATSTR(1.e-14*var,"(e9.4)")
- VARIABLE : FLOATSTR(1.E-14*VAR,"(e9.4)")
- SUBSET : 3 points (X)
- 1 / 1:".3142E-13"
- 2 / 2:".2718E-13"
- 3 / 3:""
-LIST FLOATSTR(1.e-14*var,"(f4.1)")
- VARIABLE : FLOATSTR(1.E-14*VAR,"(f4.1)")
- SUBSET : 3 points (X)
- 1 / 1:" 0.0"
- 2 / 2:" 0.0"
- 3 / 3:""
-LIST FLOATSTR(1.e-14*var,"(1pg9.2)")
- VARIABLE : FLOATSTR(1.E-14*VAR,"(1pg9.2)")
- SUBSET : 3 points (X)
- 1 / 1:" 3.14E-14"
- 2 / 2:" 2.72E-14"
- 3 / 3:""
-
-! Result shape is inherited from the input variable
-USE gt4d011.cdf
-LIST/I=100/J=36:38/T=1-dec-1982:1-jan-1983 FLOATSTR(tauy, "(f8.4)")
- VARIABLE : FLOATSTR(TAUY, "(f8.4)")
- FILENAME : gt4d011.cdf
- SUBSET : 3 by 6 points (LATITUDE-TIME)
- LONGITUDE: 130W
- 3S 2.67S 2.33S
- 36 37 38
- 28-NOV-1982 22 / 18:" -0.0272"" -0.0240"" -0.0208"
- 05-DEC-1982 00 / 19:" -0.0283"" -0.0252"" -0.0220"
- 11-DEC-1982 02 / 20:" -0.0294"" -0.0263"" -0.0232"
- 17-DEC-1982 04 / 21:" -0.0357"" -0.0324"" -0.0291"
- 23-DEC-1982 06 / 22:" -0.0470"" -0.0434"" -0.0397"
- 29-DEC-1982 08 / 23:" -0.0583"" -0.0543"" -0.0503"
-
-USE coads_climatology
-LET var = FLOATSTR(sst,"(1pg8.3)")
-
-LIST/X=165W:135W/Y=-50/L=1 var
- VARIABLE : FLOATSTR(SST,"(1pg8.3)")
- FILENAME : coads_climatology.cdf
- SUBSET : 16 points (LONGITUDE)
- LATITUDE : 51S
- TIME : 16-JAN 06:00
- 51S
- 20
- 165W / 88:"10.5"
- 163W / 89:"11.2"
- 161W / 90:"11.8"
- 159W / 91:"11.0"
- 157W / 92:"10.7"
- 155W / 93:"10.9"
- 153W / 94:"10.7"
- 151W / 95:"10.5"
- 149W / 96:"10.6"
- 147W / 97:"11.0"
- 145W / 98:"10.1"
- 143W / 99:"11.0"
- 141W / 100:""
- 139W / 101:""
- 137W / 102:""
- 135W / 103:""
-LIST/X=165W:135W/Y=-50/L=1 STRLEN(var)
- VARIABLE : STRLEN(VAR)
- FILENAME : coads_climatology.cdf
- SUBSET : 16 points (LONGITUDE)
- LATITUDE : 51S
- TIME : 16-JAN 06:00
- 51S
- 20
- 165W / 88: 4.000
- 163W / 89: 4.000
- 161W / 90: 4.000
- 159W / 91: 4.000
- 157W / 92: 4.000
- 155W / 93: 4.000
- 153W / 94: 4.000
- 151W / 95: 4.000
- 149W / 96: 4.000
- 147W / 97: 4.000
- 145W / 98: 4.000
- 143W / 99: 4.000
- 141W / 100: 0.000
- 139W / 101: 0.000
- 137W / 102: 0.000
- 135W / 103: 0.000
-
-! *********** v6.7 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn67_bug_fixes
-! bn67_bug_fixes.jnl
-! test various fixes that went into version 6.7
-! 2/2011 ACM
-
-GO bn_reset
-cancel mode verify
-GO err665_sum_4d_labels
-! A multi-dimensioned sum is now done as a 4D transformation.
-! the labels on a LISTing of the result contained ???
-! ticket 1788
-
-use coads_climatology
-list sst[X=125E,Y=75S:75N at sum,l=1:12 at sum]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- LONGITUDE: 125E
- LATITUDE : 75S to 75N (YT summed)
- TIME : 01-JAN 00:45 to 31-DEC-0002 18:13 (YT summed)
- 7563.
-
-GO bn_reset
-cancel mode verify
-GO err665_din
-! err665_din
-! Fixing incorrect latitude corrections for single-point y axis,
-! and the @DIN transformation. See ticket 1348, comment 12.
-
-! Compute the correct area of a 10m-deep, 1-deglon cell at 26.5N.
-let pi = 3.1415926
-let/unit="m"/title="authalic radius of earth" r_authalic = 6371005
-let/unit="degrees_north" lat = 26.5
-let/unit="degrees_east" dx = 1
-let/unit="m" dz = 10
-let dx_meters = r_authalic * cos(lat * pi/180) * (dx * pi/180)
-list dx_meters*dz
- VARIABLE : DX_METERS*DZ
- 995122.
-
-! Next try to reproduce this with Ferret.
-! First make a one-cell XYZ variable, with a value of 1.
-def ax/x=279:280:1/modulo=360/unit=degrees_east/edge xax
-def ax/y=`lat-0.5`:`lat+0.5`:1/unit=degrees_north/edge yax
- !-> def ax/y=26:27:1/unit=degrees_north/edge yax
-def ax/z=0:10:10/unit=m/edge/depth zax
-let p = 1+0*(x[gx=xax]+y[gy=yax]+z[gz=zax])
-
-! Compute its integral (area) over XZ.
-list p[x=279:380 at din,z=0:10 at din]
- VARIABLE : 1+0*(X[GX=XAX]+Y[GY=YAX]+Z[GZ=ZAX])
- LONGITUDE: 81W to 20E(380) (XZ integ.)
- LATITUDE : 26.5N
- DEPTH (m): 0 to 10 (XZ integ.)
- 995121.
-
-
-! Now do it farther north.
-LET/unit="degrees_north" lat = 72.5
-list dx_meters*dz
- VARIABLE : DX_METERS*DZ
- 334370.
-
-! Next try to reproduce this with Ferret.
-! Compute its integral (area) over XZ.
-def ax/y=`lat-0.5`:`lat+0.5`:1/unit=degrees_north/edge yax
- !-> def ax/y=72:73:1/unit=degrees_north/edge yax
-list p[x=279:380 at din,z=0:10 at din]
- VARIABLE : 1+0*(X[GX=XAX]+Y[GY=YAX]+Z[GZ=ZAX])
- LONGITUDE: 81W to 20E(380) (XZ integ.)
- LATITUDE : 72.5N
- DEPTH (m): 0 to 10 (XZ integ.)
- 334370.
-
-! Now in the south.
-LET/unit="degrees_north" lat = -72.5
-list dx_meters*dz
- VARIABLE : DX_METERS*DZ
- 334370.
-
-! Next try to reproduce this with Ferret.
-! Compute its integral (area) over XZ.
-def ax/y=`lat-0.5`:`lat+0.5`:1/unit=degrees_north/edge yax
- !-> def ax/y=-73:-72:1/unit=degrees_north/edge yax
-list p[x=279:380 at din,z=0:10 at din]
- VARIABLE : 1+0*(X[GX=XAX]+Y[GY=YAX]+Z[GZ=ZAX])
- LONGITUDE: 81W to 20E(380) (XZ integ.)
- LATITUDE : 72.5S
- DEPTH (m): 0 to 10 (XZ integ.)
- 334370.
-
-GO bn_reset
-cancel mode verify
-GO err665_centered_lev
-! err665_centered_lev
-! Bug 1803; computation of new levels isnt requested for
-! centered levels after a SHADE/LINE/LEV=c or FILL/LINE/LEV=c
-
-USE coads_climatology
-SHADE/L=1/LINE/KEY/LEV=c sst
-SHO SYM lev*
-LEV_TEXT = "C"
-LEV_MIN = "-32"
-LEV_MAX = "32"
-LEV_NUM = "32"
-LEV_DEL = "2"
-
-SHADE/L=1/LINE/KEY/LEV=10c sst
-SHO SYM lev*
-LEV_TEXT = "10C"
-LEV_MIN = "-35"
-LEV_MAX = "35"
-LEV_NUM = "14"
-LEV_DEL = "5"
-
-FILL/L=3/LINE/KEY/LEV=c sst
-SHO SYM lev*
-LEV_TEXT = "C"
-LEV_MIN = "-34"
-LEV_MAX = "34"
-LEV_NUM = "34"
-LEV_DEL = "2"
-
-FILL/L=3/LINE/KEY/LEV=10c sst
-SHO SYM lev*
-LEV_TEXT = "10C"
-LEV_MIN = "-35"
-LEV_MAX = "35"
-LEV_NUM = "14"
-LEV_DEL = "5"
-
-GO bn_reset
-cancel mode verify
-GO err665_hours_since_T
-! err665_hours_since_T.jnl
-! Ticket 1806: allow time-axis units string to
-! be written with a T between the date and time parts,
-! e.g. units: "hours since 2011-03-08T12:00:00Z"
-
-! Check that T0 includes hour 12:00
-! Previously the hours, minutes, seconds were set to 00
-
-use hourst.nc
-sh axis/all hourax
- name axis # pts start end
- HOURAX TIME 29 r 01-JAN-2001 12:00 15-JAN-2001 12:00
-T0 = 15-JAN-1901 12:00:00
- Axis span (to cell edges) = 348
-
-GO bn_reset
-cancel mode verify
-GO err667_att_too_long
-! err667_att_too_long.jnl
-! 3/25/2011 ACM
-! bug 1820; too-long string attribute causes crash or hang
-
-use toolong.nc
-sh dat/att
- currently SET data sets:
- 1> ./toolong.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 28 T FERRET V6.7 (beta) 25-Mar-11
- Conventions CHAR 6 F CF-1.0
- nco_input_file_nINT 1 F 1000
- nco_input_file_lCHAR 2048 F
- b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2. [...]
-
-(LON273_289) DOUBLE long_name CHAR 9 T longitude
- units CHAR 12 T degrees_east
- modulo DOUBLE 1 T 360
- point_spacing CHAR 4 T even
- axis CHAR 1 T X
- orig_file_axnameCHAR 10 F LON273_289
-
-(LAT54_54) DOUBLE long_name CHAR 8 T latitude
- units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- orig_file_axnameCHAR 8 F LAT54_54
-
-(TIME12) DOUBLE long_name CHAR 23 T time interval endpoints
- units CHAR 30 T days since 0001-01-01 00:00:00
- calendar CHAR 6 T noleap
- axis CHAR 1 T T
- orig_file_axnameCHAR 4 F TIME
-
- SFCO2 FLOAT units CHAR 7 T kg/m2/s
- long_name CHAR 16 T CO2 surface flux
- history CHAR 10 T From SFCO2
-
-save/file=aa.nc/clobber sfco2
-
-
-GO bn_reset
-cancel mode verify
-GO err667_mode_desperate
-! err667_mode_desperate
-! 3/25/2011 ACM
-! Fixing bug 1819: too-large requests for value of
-! MODE DESPERATE, and formatting of the value of the
-! setting in SHOW MODE.
-
-set mode ignore
-
-! setting too large
-set mode desperate `9999999999`
- !-> set mode desperate 1.E+10
-show mode desperate
- MODE STATE ARGUMENT
- DESPERATE CANCELLED 2560000
-
-! another setting too large (previously value
-! was set to the first 10 digits of this)
-set mode desperate 1234567890123456789
-show mode desperate
- MODE STATE ARGUMENT
- DESPERATE CANCELLED 2560000
-
-! Previously couldnt handle a floating point
-! input. Now we can.
-set mode desperate `96 * 1024 * 1024`
- !-> set mode desperate 1.006633E+08
-show mode desperate
- MODE STATE ARGUMENT
- DESPERATE SET 100663300
-can mode ignore
-
-GO bn_reset
-cancel mode verify
-GO err667_dup_axnames
-! err667_dup_axnames.jnl
-! See bug 1750
-!
-! create two files with same-named y-axis
-def ax/y=-90:90:5 yax_dup_axnames
-let g = y[gy=yax_dup_axnames]
-save/clob/file=g.nc g
-def ax/y=-30:30:5 yax_dup_axnames
-let h = y[gy=yax_dup_axnames]
-save/clob/file=h.nc h
-
-can var g h
-can ax yax_dup_axnames
-! collect variables into a single file
-use g.nc
-use h.nc
-
-save/clob/file="gh.nc" g[d=1], h[d=2]
-
-! When the two datasets are opened, they both have Y axes with the same name
-! but different contents, so internally the axis of H is named yax_dup_axnames1.
-! If there is not a duplicate name in the output file, we want to write H with
-! the original axis name. Check for that.
-
-save/clob/file="justh.nc" h[d=2]
-save/clob/file="justg.nc" g[d=1]
-
-GO bn_reset
-cancel mode verify
-GO err667_string_if
-! err667_string_if.jnl
-! Previously both of these LIST commands caused a crash.
-! tickets 1764, 1795
-!
-
-let a = {"x","y"}
-let b = IF a EQ "x" THEN "z" ELSE a
-list b
- VARIABLE : IF A EQ "x" THEN "z" ELSE A
- SUBSET : 2 points (X)
- 1 / 1:"z"
- 2 / 2:"y"
-
-let strings = {"a","b"}
-list IF strings EQ "a" THEN "" ELSE strings
- VARIABLE : IF STRINGS EQ "a" THEN "" ELSE STRINGS
- SUBSET : 2 points (X)
- 1 / 1:""
- 2 / 2:"b"
-
-
-
-GO bn_reset
-cancel mode verify
-GO err667_show_var_twice
- ! err667_show_var_twice.jnl
- ! ticket 1825
-
-use coads_climatology
-sh var sst[d=1]
- SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./coads_climatology.cdf
-sh var sst[d=1]
- SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./coads_climatology.cdf
-
-!should return nothing
-sh var airt
-
-let/d=1 airt2 = airt*2
-sh var airt2[d=1]
- AIRT2[D=coads_climatology] = AIRT*2
-sh var airt2[d=1]
- AIRT2[D=coads_climatology] = AIRT*2
-
-GO bn_reset
-cancel mode verify
-GO err667_5d_netcdf
-exit/script ! this test is not valid for 6D Ferret.
-
-GO bn_reset
-cancel mode verify
-GO err67_save_append_open
-! err67_save_append_open.jnl
-! ticket 1832
-! SAVE to a file that's open for reading
-
-! Create a file
-use gt4d011.cdf
-save/clobber/file=a.nc temp
-can data/all
-
-! Open for reading
-use a.nc
-let tempave = temp[t=@ave]
-let temp_mm = temp - tempave
-
-! read from the file and then append to it
-save/append/file=a.nc temp_mm
-
-! The dataset still shows just the original contents
-sh dat
- currently SET data sets:
- 1> ./a.nc (default)
- name title I J K L M N
- TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
-
-can dat/all
-
-! Close it and open again.
-! Now it shows the variable we appended
-use a.nc
-sh dat
- currently SET data sets:
- 1> ./a.nc (default)
- name title I J K L M N
- TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
- TEMP_MM TEMP - TEMPAVE 1:18 1:22 1:10 1:25 ... ...
- (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
-
-
-
-GO bn_reset
-cancel mode verify
-GO bn_NaN_note
-! bn_NaN_note.jnl
-! Ferret v6.7 2/2011
-! The message about no missing flags, and assuming NaN,
-! is issued only when MODE DIAGNOSTIC is turned on.
-
-! This dataset has no missing-valueu flags on its variables
-! No notes on opening it
-USE test0
-!
-! Close it and then open it with MODE DIAG
-! Now we get the NOTE
-GO bn_reset
-cancel mode verify
-SET MODE diag
-USE test0
-CANCEL MODE diag
-
-! *********** v6.71 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn671_bug_fixes
-! bn671_bug_fixes.jnl
-! test various fixes that went into version 6.71
-! 4/2011 ACM
-
-GO bn_reset
-cancel mode verify
-GO err67_tax_modtime
-! err67_tax_modtime.jnl
-! 5/17/2011
-! tickets 1853, 1854: TAX_* functions returned
-! incorrect results when the time axis is modulo
-set mode ignore_error
-
-!use climatological_axes
-!can dat climatological_axes
-let tvar = t[gt=month_reg]
-
-list/L=15:20 tax_datestring(t[gt=tvar],tvar,"hour")
- VARIABLE : TAX_DATESTRING(T[GT=TVAR],TVAR,"hour")
- SUBSET : 6 points (TIME)
- 17-MAR / 15:"17-MAR 08"
- 16-APR / 16:"16-APR 19"
- 17-MAY / 17:"17-MAY 05"
- 16-JUN / 18:"16-JUN 16"
- 17-JUL / 19:"17-JUL 02"
- 16-AUG / 20:"16-AUG 13"
-list/L=15:20 tax_datestring(t[gt=tvar],tvar,"day")
- VARIABLE : TAX_DATESTRING(T[GT=TVAR],TVAR,"day")
- SUBSET : 6 points (TIME)
- 17-MAR / 15:"17-MAR"
- 16-APR / 16:"16-APR"
- 17-MAY / 17:"17-MAY"
- 16-JUN / 18:"16-JUN"
- 17-JUL / 19:"17-JUL"
- 16-AUG / 20:"16-AUG"
-list/L=15:20 tax_dayfrac(t[gt=tvar],tvar), tax_dayfrac(t[gt=tvar],tvar)*24.
- TIME: 02-MAR 03:32 to 31-AUG 18:27
- Column 1: TAX_DAYFRAC(T[GT=TVAR],TVAR)
- Column 2: EX#2 is TAX_DAYFRAC(T[GT=TVAR],TVAR)*24.
- (C001,V002) EX#2
-17-MAR / 15: 0.3663 8.79
-16-APR / 16: 0.8031 19.27
-17-MAY / 17: 0.2400 5.76
-16-JUN / 18: 0.6769 16.25
-17-JUL / 19: 0.1138 2.73
-16-AUG / 20: 0.5506 13.21
-list/L=15:20 tax_day(t[gt=tvar],tvar), tax_jday(t[gt=tvar],tvar)
- TIME: 02-MAR 03:32 to 31-AUG 18:27
- Column 1: TAX_DAY(T[GT=TVAR],TVAR)
- Column 2: TAX_JDAY(T[GT=TVAR],TVAR)
- (C001,V002) (C001,V005)
-17-MAR / 15: 17.00 76.0
-16-APR / 16: 16.00 106.0
-17-MAY / 17: 17.00 137.0
-16-JUN / 18: 16.00 167.0
-17-JUL / 19: 17.00 198.0
-16-AUG / 20: 16.00 228.0
-list/L=15:20 tax_month(t[gt=tvar],tvar), tax_yearfrac(t[gt=tvar],tvar)
- TIME: 02-MAR 03:32 to 31-AUG 18:27
- Column 1: TAX_MONTH(T[GT=TVAR],TVAR)
- Column 2: TAX_YEARFRAC(T[GT=TVAR],TVAR)
- (C001,V002) (C001,V005)
-17-MAR / 15: 3.000 0.2082
-16-APR / 16: 4.000 0.2904
-17-MAY / 17: 5.000 0.3753
-16-JUN / 18: 6.000 0.4575
-17-JUL / 19: 7.000 0.5425
-16-AUG / 20: 8.000 0.6247
-! the following is an error for a modulo time axis
-list/L=15:20 tax_year(t[gt=tvar],tvar)
-list tax_units(tvar)
- VARIABLE : TAX_UNITS(TVAR)
- 3600.
-
-GO bn_reset
-cancel mode verify
-GO err67_save_append_open
-! err67_save_append_open.jnl
-! ticket 1832
-! SAVE to a file that's open for reading
-
-! Create a file
-use gt4d011.cdf
-save/clobber/file=a.nc temp
-can data/all
-
-! Open for reading
-use a.nc
-let tempave = temp[t=@ave]
-let temp_mm = temp - tempave
-
-! read from the file and then append to it
-save/append/file=a.nc temp_mm
-
-! The dataset still shows just the original contents
-sh dat
- currently SET data sets:
- 1> ./a.nc (default)
- name title I J K L M N
- TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
-
-can dat/all
-
-! Close it and open again.
-! Now it shows the variable we appended
-use a.nc
-sh dat
- currently SET data sets:
- 1> ./a.nc (default)
- name title I J K L M N
- TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
- TEMP_MM TEMP - TEMPAVE 1:18 1:22 1:10 1:25 ... ...
- (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
-
-
-GO bn_reset
-cancel mode verify
-GO err67_regridding_dyn
-! err67_regridding_dyn.jnl
-! 6/2011
-! See ticket 1862
-! Create three variables. Regrid one to the grid
-! of the other two which share an X axis and
-! have different Y axes; one coarser than the other.
-! The regridding and modulo operatinons incorrectly
-! re-use intermediate results.
-
-! Create test datasets to use
-use coads_climatology
-let filled = MISSING(sst[L=1], 0)
-save/file=cc.nc/clobber filled[x=-179:179]
-
-! Define an x axis over a different x range from above,
-! and two y axes, same y range but different resoloutions.
-
-define axis/x=0:356.25:3.75/units=deg lon
-define axis/y=-90:90/npoints=72/units=deg lat1
-define axis/y=-90:90/npoints=92/units=deg lat2
-
-save/clobber/file=c1.nc filled[gx=lon,gy=lat1]
-can mem
-save/clobber/file=c2.nc filled[gx=lon,gy=lat2]
-
-can dat/all; can mem; can var/all;
-
-! Now regrid the data coming in on x=-179:179 to the other grids
-use c1
-use c2
-use cc
-
-set view upper
-shade filled[d=3,gxy=filled[d=1]]
-list/x=330/y=40:90 filled[d=3,gxy=filled[d=1]]
- VARIABLE : MISSING(SST[L=1], 0)
- regrid: FILLED[D=c1]
- FILENAME : cc.nc
- SUBSET : 21 points (LATITUDE)
- LONGITUDE: 30W
- TIME : 16-JAN 06:00
- 30W
- 89
- 90N / 72: ....
- 87.5N / 71: 0.00
- 84.9N / 70: 0.00
- 82.4N / 69: 0.00
- 79.9N / 68: 0.00
- 77.3N / 67: 0.00
- 74.8N / 66: 0.00
- 72.3N / 65: 0.00
- 69.7N / 64: 0.96
- 67.2N / 63: 3.25
- 64.6N / 62: 5.60
- 62.1N / 61: 6.40
- 59.6N / 60: 7.31
- 57N / 59: 7.79
- 54.5N / 58: 7.79
- 52N / 57: 9.27
- 49.4N / 56: 11.43
- 46.9N / 55: 12.80
- 44.4N / 54: 14.01
- 41.8N / 53: 15.02
- 39.3N / 52: 15.98
-
-! The bug has data wrapped around incorrectly
-set view lower
-shade filled[d=3,gxy=filled[d=2]]
-list/x=330/y=40:90 filled[d=3,gxy=filled[d=2]]
- VARIABLE : MISSING(SST[L=1], 0)
- regrid: FILLED[D=c2]
- FILENAME : cc.nc
- SUBSET : 26 points (LATITUDE)
- LONGITUDE: 30W
- TIME : 16-JAN 06:00
- 30W
- 89
- 90N / 92: ....
- 88N / 91: 0.00
- 86N / 90: 0.00
- 84.1N / 89: 0.00
- 82.1N / 88: 0.00
- 80.1N / 87: 0.00
- 78.1N / 86: 0.00
- 76.2N / 85: 0.00
- 74.2N / 84: 0.00
- 72.2N / 83: 0.00
- 70.2N / 82: 0.59
- 68.2N / 81: 2.23
- 66.3N / 80: 4.17
- 64.3N / 79: 5.74
- 62.3N / 78: 6.37
- 60.3N / 77: 6.93
- 58.4N / 76: 7.66
- 56.4N / 75: 7.76
- 54.4N / 74: 7.81
- 52.4N / 73: 8.75
- 50.4N / 72: 10.77
- 48.5N / 71: 11.99
- 46.5N / 70: 13.01
- 44.5N / 69: 13.95
- 42.5N / 68: 14.76
- 40.5N / 67: 15.50
-
-GO bn_reset
-cancel mode verify
-GO err67_reverse_bounds
-! err67_reverse_bounds.jnl
-!
-! Bug in reversing the bounds when an axis is reversed
-! previously this gave a warning:
-! NOTE: Error in bounds "lev_bnds" or bounds do not enclose point
-
-use reverse_z_bnds.nc
-list lev_var, zboxlo[gz=lev_var], zboxhi[gz=lev_var]
- DATA SET: ./reverse_z_bnds.nc
- Z: 0 to 1
- Column 1: LEV_VAR is a variable on the depth axis (none)
- Column 2: ZBOXLO is ZBOXLO (axis LEV)
- Column 3: ZBOXHI is ZBOXHI (axis LEV)
- LEV_VAR ZBOXLO ZBOXHI
-0 / 1: 24.00 0.0000 0.009
-0.0216 / 2: 23.00 0.0089 0.034
-0.0542 / 3: 22.00 0.0343 0.074
-0.1001 / 4: 21.00 0.0741 0.126
-0.1574 / 5: 20.00 0.1262 0.189
-0.2239 / 6: 19.00 0.1886 0.259
-0.2977 / 7: 18.00 0.2593 0.336
-0.3765 / 8: 17.00 0.3361 0.417
-0.4565 / 9: 16.00 0.4170 0.496
-0.5318 / 10: 15.00 0.4961 0.568
-0.5998 / 11: 14.00 0.5676 0.632
-0.6608 / 12: 13.00 0.6320 0.690
-0.7152 / 13: 12.00 0.6896 0.741
-0.7635 / 14: 11.00 0.7408 0.786
-0.806 / 15: 10.00 0.7861 0.826
-0.8432 / 16: 9.00 0.8259 0.860
-0.8754 / 17: 8.00 0.8605 0.890
-0.9031 / 18: 7.00 0.8903 0.916
-0.9266 / 19: 6.00 0.9158 0.937
-0.9464 / 20: 5.00 0.9374 0.955
-0.9628 / 21: 4.00 0.9554 0.970
-0.9763 / 22: 3.00 0.9703 0.982
-0.9873 / 23: 2.00 0.9824 0.992
-0.9961 / 24: 1.00 0.9922 1.000
-
-GO bn_reset
-cancel mode verify
-GO err67_nrst_trans
-! err67_nrst_trans.jnl
-!
-! See ticket 1875: for short axes the @NRST transform
-! missed points - no valid data was returned from this LIST.
-
-define axis/x=333:335:1 xax
-define axis/x=300:400:10 xlong
-let x3 = x[gx=xax]
-let var = x3[gx=xlong at nrst]
-list var
- VARIABLE : X3[GX=XLONG at NRST]
- SUBSET : 11 points (X)
- 300 / 1: ....
- 310 / 2: ....
- 320 / 3: ....
- 330 / 4: 333.0
- 340 / 5: 335.0
- 350 / 6: ....
- 360 / 7: ....
- 370 / 8: ....
- 380 / 9: ....
- 390 / 10: ....
- 400 / 11: ....
-
-! *********** v6.8 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn68_bug_fixes
-! bn68_bug_fixes.jnl
-! test various fixes that went into version 6.8
-!
-GO bn_reset
-cancel mode verify
-GO err672_stray_line
-! err672_stray_line.jnl
-! bug 1545, present in older versions of Ferret too.
-! Lines ( as in go land ), that go near but outside the outer
-! corners of the plot, either from the bottom to the left side
-! of the plot, or from the top to the left, but not crossing
-! any axis, may cause a stray line to be drawn outward from the
-! corner.
-
-use coads_climatology
-shade/noax/nolab/nokey sst[x=148.68:262.0,y=-29.83:45.35,L=1]
-
-! Line near but not crossing from top to left
-plot/vs/over/nolab/line/sym {148.83, 148.33}, {45.5, 45.25}
-
-! Line near but not crossing from bottom to the left
-plot/over/vs/nolab/line/sym {148.83, 148.17}, {-29.96, -29.68}
-
-GO bn_reset
-cancel mode verify
-GO err672_tax_functions_prec
-! See ticket 1642: arg 1 of TAX_* functions
-! is a single-precision variale representing double-precision coords.
-
-
-set mode ignore
-
-define axis/t=30-jan-2010:31-dec-2010:86400/unit=seconds taxis
-let var = t[gt=taxis]
-
-! Previously this was incorrect- varied in the seconds place
-list/l=1:7 TAX_DATESTRING(t[gt=var],var,"seconds")
- VARIABLE : TAX_DATESTRING(T[GT=VAR],VAR,"seconds")
- SUBSET : 7 points (TIME)
- 30-JAN-2010 00 / 1:"30-JAN-2010 00:00:00"
- 31-JAN-2010 00 / 2:"31-JAN-2010 00:00:00"
- 01-FEB-2010 00 / 3:"01-FEB-2010 00:00:00"
- 02-FEB-2010 00 / 4:"02-FEB-2010 00:00:00"
- 03-FEB-2010 00 / 5:"03-FEB-2010 00:00:00"
- 04-FEB-2010 00 / 6:"04-FEB-2010 00:00:00"
- 05-FEB-2010 00 / 7:"05-FEB-2010 00:00:00"
-
-! Note there is no complete fix. This axis needs more than single-
-! precision representation at the far end.
-list/t=1-dec-2010:5-dec-2010 TAX_DATESTRING(t[gt=var],var,"seconds")
- VARIABLE : TAX_DATESTRING(T[GT=VAR],VAR,"seconds")
- SUBSET : 5 points (TIME)
- 01-DEC-2010 00 / 306:"01-DEC-2010 00:00:00"
- 02-DEC-2010 00 / 307:"02-DEC-2010 00:00:00"
- 03-DEC-2010 00 / 308:"03-DEC-2010 00:00:00"
- 04-DEC-2010 00 / 309:"04-DEC-2010 00:00:00"
- 05-DEC-2010 00 / 310:"05-DEC-2010 00:00:00"
-
-! Likewise all these were off by a bit (except month and year)
-list/l=1:7 TAX_DAY(t[gt=var], var)
- VARIABLE : TAX_DAY(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 30-JAN-2010 00 / 1: 30.00
- 31-JAN-2010 00 / 2: 31.00
- 01-FEB-2010 00 / 3: 1.00
- 02-FEB-2010 00 / 4: 2.00
- 03-FEB-2010 00 / 5: 3.00
- 04-FEB-2010 00 / 6: 4.00
- 05-FEB-2010 00 / 7: 5.00
-list/l=1:7 TAX_DAYFRAC(t[gt=var], var)
- VARIABLE : TAX_DAYFRAC(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 30-JAN-2010 00 / 1: 0.0000
- 31-JAN-2010 00 / 2: 0.0000
- 01-FEB-2010 00 / 3: 0.0000
- 02-FEB-2010 00 / 4: 0.0000
- 03-FEB-2010 00 / 5: 0.0000
- 04-FEB-2010 00 / 6: 0.0000
- 05-FEB-2010 00 / 7: 0.0000
-list/l=1:7 TAX_jday1900(t[gt=var], var)
- VARIABLE : TAX_JDAY1900(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 30-JAN-2010 00 / 1: 40206.
- 31-JAN-2010 00 / 2: 40207.
- 01-FEB-2010 00 / 3: 40208.
- 02-FEB-2010 00 / 4: 40209.
- 03-FEB-2010 00 / 5: 40210.
- 04-FEB-2010 00 / 6: 40211.
- 05-FEB-2010 00 / 7: 40212.
-list/l=1:7 TAX_jday(t[gt=var], var)
- VARIABLE : TAX_JDAY(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 30-JAN-2010 00 / 1: 30.00
- 31-JAN-2010 00 / 2: 31.00
- 01-FEB-2010 00 / 3: 32.00
- 02-FEB-2010 00 / 4: 33.00
- 03-FEB-2010 00 / 5: 34.00
- 04-FEB-2010 00 / 6: 35.00
- 05-FEB-2010 00 / 7: 36.00
-list/l=1:7 TAX_month(t[gt=var], var)
- VARIABLE : TAX_MONTH(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 30-JAN-2010 00 / 1: 1.000
- 31-JAN-2010 00 / 2: 1.000
- 01-FEB-2010 00 / 3: 2.000
- 02-FEB-2010 00 / 4: 2.000
- 03-FEB-2010 00 / 5: 2.000
- 04-FEB-2010 00 / 6: 2.000
- 05-FEB-2010 00 / 7: 2.000
-list/l=1:7 TAX_year(t[gt=var], var)
- VARIABLE : TAX_YEAR(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 30-JAN-2010 00 / 1: 2010.
- 31-JAN-2010 00 / 2: 2010.
- 01-FEB-2010 00 / 3: 2010.
- 02-FEB-2010 00 / 4: 2010.
- 03-FEB-2010 00 / 5: 2010.
- 04-FEB-2010 00 / 6: 2010.
- 05-FEB-2010 00 / 7: 2010.
-list/l=1:7 TAX_yearfrac(t[gt=var], var)
- VARIABLE : TAX_YEARFRAC(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 30-JAN-2010 00 / 1: 0.08219
- 31-JAN-2010 00 / 2: 0.08493
- 01-FEB-2010 00 / 3: 0.08767
- 02-FEB-2010 00 / 4: 0.09041
- 03-FEB-2010 00 / 5: 0.09315
- 04-FEB-2010 00 / 6: 0.09589
- 05-FEB-2010 00 / 7: 0.09863
-
-! This axis even worse, all results the same
-! All of these will bail out with repeated ARG1 values
-define axis/t=1-jan-2010:2-jan-2010:5/unit=seconds taxis
-let var = t[gt=taxis]
-list/l=1:7 TAX_DATESTRING(t[gt=var,L=1:50],var[L=1:50],"seconds")
- VARIABLE : TAX_DATESTRING(T[GT=VAR,L=1:50],VAR[L=1:50],"seconds")
- SUBSET : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1:"01-JAN-2010 00:00:00"
- 01-JAN-2010 00:00:05 / 2:"01-JAN-2010 00:00:05"
- 01-JAN-2010 00:00:10 / 3:"01-JAN-2010 00:00:10"
- 01-JAN-2010 00:00:15 / 4:"01-JAN-2010 00:00:15"
- 01-JAN-2010 00:00:20 / 5:"01-JAN-2010 00:00:20"
- 01-JAN-2010 00:00:25 / 6:"01-JAN-2010 00:00:25"
- 01-JAN-2010 00:00:30 / 7:"01-JAN-2010 00:00:30"
-
-list/l=1:7 TAX_DAY(t[gt=var], var)
- VARIABLE : TAX_DAY(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1: 1.000
- 01-JAN-2010 00:00:05 / 2: 1.000
- 01-JAN-2010 00:00:10 / 3: 1.000
- 01-JAN-2010 00:00:15 / 4: 1.000
- 01-JAN-2010 00:00:20 / 5: 1.000
- 01-JAN-2010 00:00:25 / 6: 1.000
- 01-JAN-2010 00:00:30 / 7: 1.000
-list/l=1:7 TAX_DAYFRAC(t[gt=var], var)
- VARIABLE : TAX_DAYFRAC(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1: 0.000E+00
- 01-JAN-2010 00:00:05 / 2: 5.787E-05
- 01-JAN-2010 00:00:10 / 3: 1.157E-04
- 01-JAN-2010 00:00:15 / 4: 1.736E-04
- 01-JAN-2010 00:00:20 / 5: 2.315E-04
- 01-JAN-2010 00:00:25 / 6: 2.894E-04
- 01-JAN-2010 00:00:30 / 7: 3.472E-04
-list/l=1:7 TAX_jday1900(t[gt=var], var)
- VARIABLE : TAX_JDAY1900(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1: 40177.
- 01-JAN-2010 00:00:05 / 2: 40177.
- 01-JAN-2010 00:00:10 / 3: 40177.
- 01-JAN-2010 00:00:15 / 4: 40177.
- 01-JAN-2010 00:00:20 / 5: 40177.
- 01-JAN-2010 00:00:25 / 6: 40177.
- 01-JAN-2010 00:00:30 / 7: 40177.
-list/l=1:7 TAX_jday(t[gt=var], var)
- VARIABLE : TAX_JDAY(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1: 1.000
- 01-JAN-2010 00:00:05 / 2: 1.000
- 01-JAN-2010 00:00:10 / 3: 1.000
- 01-JAN-2010 00:00:15 / 4: 1.000
- 01-JAN-2010 00:00:20 / 5: 1.000
- 01-JAN-2010 00:00:25 / 6: 1.000
- 01-JAN-2010 00:00:30 / 7: 1.000
-list/l=1:7 TAX_month(t[gt=var], var)
- VARIABLE : TAX_MONTH(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1: 1.000
- 01-JAN-2010 00:00:05 / 2: 1.000
- 01-JAN-2010 00:00:10 / 3: 1.000
- 01-JAN-2010 00:00:15 / 4: 1.000
- 01-JAN-2010 00:00:20 / 5: 1.000
- 01-JAN-2010 00:00:25 / 6: 1.000
- 01-JAN-2010 00:00:30 / 7: 1.000
-list/l=1:7 TAX_year(t[gt=var], var)
- VARIABLE : TAX_YEAR(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1: 2010.
- 01-JAN-2010 00:00:05 / 2: 2010.
- 01-JAN-2010 00:00:10 / 3: 2010.
- 01-JAN-2010 00:00:15 / 4: 2010.
- 01-JAN-2010 00:00:20 / 5: 2010.
- 01-JAN-2010 00:00:25 / 6: 2010.
- 01-JAN-2010 00:00:30 / 7: 2010.
-list/l=1:7 TAX_yearfrac(t[gt=var], var)
- VARIABLE : TAX_YEARFRAC(T[GT=VAR], VAR)
- SUBSET : 7 points (TIME)
- 01-JAN-2010 00:00:00 / 1: 0.002740
- 01-JAN-2010 00:00:05 / 2: 0.002740
- 01-JAN-2010 00:00:10 / 3: 0.002740
- 01-JAN-2010 00:00:15 / 4: 0.002740
- 01-JAN-2010 00:00:20 / 5: 0.002740
- 01-JAN-2010 00:00:25 / 6: 0.002740
- 01-JAN-2010 00:00:30 / 7: 0.002740
-
-! This example from Patrick B. Output of TAX_dayfrac repeats.
-! We need to just return an error mesage. Cant represent 2.5 years
-! of seconds as a single-precision variable. (Can't represent even a month...)
-
-def axis/t="1-jan-2008":"31-dec-2010":1/units=seconds/t0="1-jan-2008" mytaxis
-let tt = t[gt=mytaxis]
-
-let a = TAX_year(tt[t="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50"], tt[L=76340000:76350000])
-let b = TAX_jday(tt[t="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50"], tt[L=76340000:76350000])
-let c = TAX_dayfrac(tt[t="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50"], tt[L=76340000:76350000])
-
-list/prec=7 a
- VARIABLE : TAX_YEAR(TT[T="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50"], TT[L=76340000:76350000])
- SUBSET : 11 points (TIME)
- 02-JUN-2010 13:34:40 / 76340081: 2010.000
- 02-JUN-2010 13:34:41 / 76340082: 2010.000
- 02-JUN-2010 13:34:42 / 76340083: 2010.000
- 02-JUN-2010 13:34:43 / 76340084: 2010.000
- 02-JUN-2010 13:34:44 / 76340085: 2010.000
- 02-JUN-2010 13:34:45 / 76340086: 2010.000
- 02-JUN-2010 13:34:46 / 76340087: 2010.000
- 02-JUN-2010 13:34:47 / 76340088: 2010.000
- 02-JUN-2010 13:34:48 / 76340089: 2010.000
- 02-JUN-2010 13:34:49 / 76340090: 2010.000
- 02-JUN-2010 13:34:50 / 76340091: 2010.000
-list/prec=7 b
- VARIABLE : TAX_JDAY(TT[T="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50"], TT[L=76340000:76350000])
- SUBSET : 11 points (TIME)
- 02-JUN-2010 13:34:40 / 76340081: 153.0000
- 02-JUN-2010 13:34:41 / 76340082: 153.0000
- 02-JUN-2010 13:34:42 / 76340083: 153.0000
- 02-JUN-2010 13:34:43 / 76340084: 153.0000
- 02-JUN-2010 13:34:44 / 76340085: 153.0000
- 02-JUN-2010 13:34:45 / 76340086: 153.0000
- 02-JUN-2010 13:34:46 / 76340087: 153.0000
- 02-JUN-2010 13:34:47 / 76340088: 153.0000
- 02-JUN-2010 13:34:48 / 76340089: 153.0000
- 02-JUN-2010 13:34:49 / 76340090: 153.0000
- 02-JUN-2010 13:34:50 / 76340091: 153.0000
-list/prec=7 c
- VARIABLE : TAX_DAYFRAC(TT[T="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50"], TT[L=76340000:76350000])
- SUBSET : 11 points (TIME)
- 02-JUN-2010 13:34:40 / 76340081: 0.5657407
- 02-JUN-2010 13:34:41 / 76340082: 0.5657523
- 02-JUN-2010 13:34:42 / 76340083: 0.5657639
- 02-JUN-2010 13:34:43 / 76340084: 0.5657755
- 02-JUN-2010 13:34:44 / 76340085: 0.5657870
- 02-JUN-2010 13:34:45 / 76340086: 0.5657986
- 02-JUN-2010 13:34:46 / 76340087: 0.5658102
- 02-JUN-2010 13:34:47 / 76340088: 0.5658218
- 02-JUN-2010 13:34:48 / 76340089: 0.5658333
- 02-JUN-2010 13:34:49 / 76340090: 0.5658449
- 02-JUN-2010 13:34:50 / 76340091: 0.5658565
-
-! Can do this example
-let a = TAX_year(tt[t="13-JAN-2008:13:34:40":"13-JAN-2008:13:34:50"], tt[L=1080000:1090000])
-let b = TAX_jday(tt[t="13-JAN-2008:13:34:40":"13-JAN-2008:13:34:50"], tt[L=1080000:1090000])
-let c = TAX_dayfrac(tt[t="13-JAN-2008:13:34:40":"13-JAN-2008:13:34:50"], tt[L=1080000:1090000])
-
-list/prec=7 a
- VARIABLE : TAX_YEAR(TT[T="13-JAN-2008:13:34:40":"13-JAN-2008:13:34:50"], TT[L=1080000:1090000])
- SUBSET : 11 points (TIME)
- 13-JAN-2008 13:34:40 / 1085681: 2008.000
- 13-JAN-2008 13:34:41 / 1085682: 2008.000
- 13-JAN-2008 13:34:42 / 1085683: 2008.000
- 13-JAN-2008 13:34:43 / 1085684: 2008.000
- 13-JAN-2008 13:34:44 / 1085685: 2008.000
- 13-JAN-2008 13:34:45 / 1085686: 2008.000
- 13-JAN-2008 13:34:46 / 1085687: 2008.000
- 13-JAN-2008 13:34:47 / 1085688: 2008.000
- 13-JAN-2008 13:34:48 / 1085689: 2008.000
- 13-JAN-2008 13:34:49 / 1085690: 2008.000
- 13-JAN-2008 13:34:50 / 1085691: 2008.000
-list/prec=7 b
- VARIABLE : TAX_JDAY(TT[T="13-JAN-2008:13:34:40":"13-JAN-2008:13:34:50"], TT[L=1080000:1090000])
- SUBSET : 11 points (TIME)
- 13-JAN-2008 13:34:40 / 1085681: 13.00000
- 13-JAN-2008 13:34:41 / 1085682: 13.00000
- 13-JAN-2008 13:34:42 / 1085683: 13.00000
- 13-JAN-2008 13:34:43 / 1085684: 13.00000
- 13-JAN-2008 13:34:44 / 1085685: 13.00000
- 13-JAN-2008 13:34:45 / 1085686: 13.00000
- 13-JAN-2008 13:34:46 / 1085687: 13.00000
- 13-JAN-2008 13:34:47 / 1085688: 13.00000
- 13-JAN-2008 13:34:48 / 1085689: 13.00000
- 13-JAN-2008 13:34:49 / 1085690: 13.00000
- 13-JAN-2008 13:34:50 / 1085691: 13.00000
-list/prec=7 c
- VARIABLE : TAX_DAYFRAC(TT[T="13-JAN-2008:13:34:40":"13-JAN-2008:13:34:50"], TT[L=1080000:1090000])
- SUBSET : 11 points (TIME)
- 13-JAN-2008 13:34:40 / 1085681: 0.5657407
- 13-JAN-2008 13:34:41 / 1085682: 0.5657523
- 13-JAN-2008 13:34:42 / 1085683: 0.5657639
- 13-JAN-2008 13:34:43 / 1085684: 0.5657755
- 13-JAN-2008 13:34:44 / 1085685: 0.5657870
- 13-JAN-2008 13:34:45 / 1085686: 0.5657986
- 13-JAN-2008 13:34:46 / 1085687: 0.5658102
- 13-JAN-2008 13:34:47 / 1085688: 0.5658218
- 13-JAN-2008 13:34:48 / 1085689: 0.5658333
- 13-JAN-2008 13:34:49 / 1085690: 0.5658449
- 13-JAN-2008 13:34:50 / 1085691: 0.5658565
-
-can mode ignore
-
-GO bn_reset
-cancel mode verify
-GO err672_subscr_precision
-! err672_subscr_precision.jnl
-! See ticket 1888.
-
-
-def axis/t="1-jan-2008":"31-dec-2010":1/units=sec/t0="1-jan-2008" mytaxis
-let tt = t[gt=mytaxis]
-
-! This command should list 11 timesteps, previously listed only 8 (64-bit)
-! or 9 (32-bit).
-list/t="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50" tt
- VARIABLE : T[GT=MYTAXIS]
- SUBSET : 11 points (TIME)
- 02-JUN-2010 13:34:40 / 76340081: 7.634E+07
- 02-JUN-2010 13:34:41 / 76340082: 7.634E+07
- 02-JUN-2010 13:34:42 / 76340083: 7.634E+07
- 02-JUN-2010 13:34:43 / 76340084: 7.634E+07
- 02-JUN-2010 13:34:44 / 76340085: 7.634E+07
- 02-JUN-2010 13:34:45 / 76340086: 7.634E+07
- 02-JUN-2010 13:34:46 / 76340087: 7.634E+07
- 02-JUN-2010 13:34:47 / 76340088: 7.634E+07
- 02-JUN-2010 13:34:48 / 76340089: 7.634E+07
- 02-JUN-2010 13:34:49 / 76340090: 7.634E+07
- 02-JUN-2010 13:34:50 / 76340091: 7.634E+07
-
-GO bn_reset
-cancel mode verify
-GO err672_vert_axislabel
-! err672_vert_axislabel.jnl
-! bug 1896
-!
-! When the vertical axis needs a lot of characters
-! in the numeric axis, the axis label runs off the edge
-! of the plot
-
-! starting w/ v683, shrink yaxis lab size only if
-! MODE shrink_ylab is set. (ticket 1958)
-
-SET MODE shrink_ylab
-
-define axis/x=1:100:1 xax
-let/units="Observation value" var = 1.e37 * sin(randu(x[gx=xax])-1)
-plot var
-
-use gt4d011
-plot/x=130w psi[t=@din]
-
-! If the margins are too small the method just makes a nominal setting.
-go margins 0.2 0.6 0.2, 0.2
-plot/i=1:200 (sin(x/30))
-
-go margins "reset"
-
-SET MODE/LAST shrink_ylab
-
-GO bn_reset
-cancel mode verify
-GO err672_axis_label_prec
-! See ticket 1907
-! Axis label format didnt give enough precision for accurate labels
-! for some cases where the range is between -1 and 1.
-
-! The upper tic was labeled 0.04 (or 0.05 depending on the OS and compiler)
-! Should be 0.045
-let v = {0.02, 0.047,0.007, 0.02}
-set view left
-plot v
-
-! This was a workaround
-set view right
-plot/set v
-ppl yfor (f5.3)
-ppl plot
-
-can view
-
-! Here are more variables that caused similar
-! inadequate precision in the format.
-
-let v = -1*{0.02, 0.042, 0.007, 0.02}
-set view left
-plot v
-
-! This one had labels -0.02, -0.02, -0.02, -0.01, -0.01, 0.00, 0.00, 0.1
-let v = {-0.023, -0.01, 0.007, 0.004}
-set view right
-plot v
-
-GO bn_reset
-cancel mode verify
-GO err672_long_show_axis
-! See ticket 1905 - axes with very large number of points overflowed
-! the format in SHOW AXIS commands
-
-define axis/t=1-jan-1900:1-jan-2000:1/units=minutes huge
-sh axis huge
- name axis # pts start end
- HUGE TIME 52594561 r 01-JAN-1900 00:00 01-JAN-2000 00:00
-T0 = 01-JAN-1900
- Axis span (to cell edges) = 52594561
-can axis huge
-
-
-GO bn_reset
-cancel mode verify
-GO err672_axis_order
-! err672_axis_order
-! See comment 5 under ticket 1774.
-
-
-use err67_axis_order.nc
-sp cp err67_axis_order.nc err67_axis_order_copy.nc
-use err67_axis_order_copy.nc
-sh dat
- currently SET data sets:
- 1> ./err67_axis_order.nc
- name title I J K L M N
- UCOV UCOV 1:6 1:9 1:3 1:1 ... ...
- CONTROLE CONTROLE 1:6 ... ... ... ... ...
- NIVSIGS NIVSIGS ... ... 1:3 ... ... ...
- NIVSIG NIVSIG 1:6 ... ... ... ... ...
- AP AP 1:6 ... ... ... ... ...
-
- 2> ./err67_axis_order_copy.nc (default)
- name title I J K L M N
- UCOV UCOV 1:6 1:9 1:3 1:1 ... ...
- CONTROLE CONTROLE 1:6 ... ... ... ... ...
- NIVSIGS NIVSIGS ... ... 1:3 ... ... ...
- NIVSIG NIVSIG 1:6 ... ... ... ... ...
- AP AP 1:6 ... ... ... ... ...
-
-
-! Listings should be identical with the bug they are reversed.
-list/k=3/i=1 ucov[d=1]
- VARIABLE : UCOV
- FILENAME : err67_axis_order.nc
- SUBSET : 9 points (Y)
- X : 1.014
- Z : 3
- TIME : 08-JAN-1980 00:00
- 1.014
- 1
- -1.554 / 1: -642176.
- -1.521 / 2: -621550.
- -1.488 / 3: -700065.
- -1.455 / 4: -640073.
- 0.033 / 5: -375011.
- 1.455 / 6: -153460.
- 1.488 / 7: 10663.
- 1.521 / 8: 60693.
- 1.554 / 9: 0.
-list/k=3/i=1 ucov[d=2]
- VARIABLE : UCOV
- FILENAME : err67_axis_order_copy.nc
- SUBSET : 9 points (Y)
- X : 1.014
- Z : 3
- TIME : 08-JAN-1980 00:00
- 1.014
- 1
- -1.554 / 1: -642176.
- -1.521 / 2: -621550.
- -1.488 / 3: -700065.
- -1.455 / 4: -640073.
- 0.033 / 5: -375011.
- 1.455 / 6: -153460.
- 1.488 / 7: 10663.
- 1.521 / 8: 60693.
- 1.554 / 9: 0.
-
-
-GO bn_reset
-cancel mode verify
-GO err672_runoff_page
-! err672_runoff_page
-! acm 5/3/2012
-! Test for the fix to ticket 1896 . Y-Axis labels may run off the
-! edge of the page if the numbers have lots of digits.
-! We change the ax-label size just for this axis issue a note.
-!
-! starting w/ v683, shrink yaxis lab size only if
-! MODE shrink_ylab is set. (ticket 1958)
-
-SET MODE shrink_ylab
-
-define axis/x=1:100:1 xax
-let/units="Observation value" var = 1.e37 * sin(randu(x[gx=xax])-1)
-plot var
-
-SET MODE/LAST shrink_ylab
-
-GO bn_reset
-cancel mode verify
-GO err672_samplexy_modulo
-! err672_samplexy_modulo.jnl
-! See ticket 1950: samplexy doesnt correctly do modulo operations.
-
-use coads_climatology
-! There is data at x=-20,y=0:
-list sst[x=-20,y=0]
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (TIME)
- LONGITUDE: 21W(-21)
- LATITUDE : 1S
- 21W
- -20
- 16-JAN / 1: 26.91
- 15-FEB / 2: 27.39
- 17-MAR / 3: 27.85
-
-! But samplexy doesn't find it.
-! Previously the last column was all-missing.
-list samplexy(sst,{160,180,-20},{0,0,0})
- VARIABLE : SAMPLEXY(SST,{160,180,-20},{0,0,0})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 by 3 points (X-TIME)
- 1 2 3
- 1 2 3
- 16-JAN / 1: 29.09 28.36 26.90
- 15-FEB / 2: 29.09 28.38 27.42
- 17-MAR / 3: 29.01 28.00 27.87
-
-! Check that we get data back at the edges of the longitude axis
-list samplexy(sst,{21,379},{-41,-41})
- VARIABLE : SAMPLEXY(SST,{21,379},{-41,-41})
- FILENAME : coads_climatology.cdf
- SUBSET : 2 by 3 points (X-TIME)
- 1 2
- 1 2
- 16-JAN / 1: 16.45 18.15
- 15-FEB / 2: 17.85 17.90
- 17-MAR / 3: 17.19 17.11
-
-! Check samplexyt
-let t1 = `t[gt=sst,L=1]`
- !-> DEFINE VARIABLE t1 = 366
-list samplexyt(sst,{160,180,-20},{0,0,0},{`t1`,`t1`,`t1`})
- !-> list samplexyt(sst,{160,180,-20},{0,0,0},{366,366,366})
- VARIABLE : SAMPLEXYT(SST,{160,180,-20},{0,0,0},{366,366,366})
- FILENAME : coads_climatology.cdf
- SUBSET : 3 points (X)
- 1 / 1: 29.09
- 2 / 2: 28.36
- 3 / 3: 26.90
-
-
-
-
-GO bn_reset
-cancel mode verify
-GO err672_varnames
-! err672_varnames.jnl
-! ticket 1938
-!
-! We can define variable names that match operators,
-! but not use them.
-! yes? let ne = 5
-! yes? list ne
-! previously the LET command was allowed but an error on the
-! LIST, (unless we do list 'NE'). Just disallow those names
-! to begin with, in xeq_define. Using these names now returns error
-! AND OR GT GE LT LE EQ NE, also IF and ELSE.
-
-SET MODE IGNORE
-
-LET AND = 5
-LET OR = 5
-LET GT = 5
-LET GE = 5
-LET LT = 5
-LET LE = 5
-LET EQ = 5
-LET NE = 5
-LET IF = 5
-LET ELSE = 5
-
-CAN MODE IGNORE
-
-GO bn_reset
-cancel mode verify
-GO err672_dset_cx
-! err672_dset_cx.jnl
-! Ticket 1951: The dataset specified in list x[gx=a[d=1,i=1:3]] is not applied.
-!
-
-let a = x[gx=0:2:1]; save/clob/file=a1.nc a
-sho grid/x a
- GRID (G091)
- name axis # pts start end
- (AX129) X 3 r 0 2
- normal Y
- normal Z
- normal T
- normal E
- normal F
-
- I X XBOX XBOXLO
- 1> 0 1 -0.5
- 2> 1 1 0.5
- 3> 2 1 1.5
-
-let a = x[gx=1:3:1]; save/clob/file=a2.nc a
-sho grid/x a
- GRID (G091)
- name axis # pts start end
- (AX127) X 3 r 1 3
- normal Y
- normal Z
- normal T
- normal E
- normal F
-
- I X XBOX XBOXLO
- 1> 1 1 0.5
- 2> 2 1 1.5
- 3> 3 1 2.5
-
-can var/all; can dat/all
-
-! It's already strange that the first axis is named AX002 and the second AX001,
-! but oh well. Let's use the first dataset, and list the axis values in two ways
-! that give identical answers. No problem here.
-
-use a1
-list x[gx=a[d=1]]
- VARIABLE : X
- axis AX129
- SUBSET : 3 points (X)
- 0 / 1: 0.000
- 1 / 2: 1.000
- 2 / 3: 2.000
-list x[gx=a[d=1,i=1:3]]
- VARIABLE : X
- axis AX129
- SUBSET : 3 points (X)
- 0 / 1: 0.000
- 1 / 2: 1.000
- 2 / 3: 2.000
-
-! Next we use the second dataset, and repeat the exact same commands as above --
-! note that we are again listing the variables from the first dataset, not the
-! second one. Our results shouldn't have changed, since they explicitly refer to
-! dataset 1 -- but one of them does change!
-
-use a2
-
-list x[gx=a[d=1]]
- VARIABLE : X
- axis AX129
- SUBSET : 3 points (X)
- 0 / 1: 0.000
- 1 / 2: 1.000
- 2 / 3: 2.000
-
-! The bug was that this listed 1,2,3 rather than 0,1,2
-list x[gx=a[d=1,i=1:3]]
- VARIABLE : X
- axis AX129
- SUBSET : 3 points (X)
- 0 / 1: 0.000
- 1 / 2: 1.000
- 2 / 3: 2.000
-
-! The second LIST has somehow associated variable A from the first file
-! with AX001 from the second file!
-!
-! The only thing that the second USE should have changed about Ferret's state,
-! was that it brought a new dataset into memory and made it the default. Why should
-! that have affected the second evaluation of the variable from dataset 1?
-
-! Why is the following different?
-list x[gx=a[d=1],i=1:3]
- VARIABLE : X
- axis AX129
- SUBSET : 3 points (X)
- 0 / 1: 0.000
- 1 / 2: 1.000
- 2 / 3: 2.000
-
-GO bn_reset
-cancel mode verify
-GO bn_ifv
-! bn_ifv.jnl
-! test IFV IfValid masking for a variety of combos
-
-
-
-! operators
-CANCEL REGION
-SET REGION/I=1:5/J=1:5
-
-! IF, THEN, ELSE
-LIST/ORDER=X IFV I GT 3 THEN I
- VARIABLE : IFV I GT 3 THEN I
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- .... .... .... 4.000 5.000
-LIST/ORDER=X IFV I GT 3 THEN I ELSE 0
- VARIABLE : IFV I GT 3 THEN I ELSE 0
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.000 0.000 0.000 4.000 5.000
-! error: nested IFV tests
-SET MODE IGNORE_ERRORS
-LIST/ORDER=X IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333 ! err
-LET A = ifv I LT 5 THEN I ELSE -9 ! err
-SET MODE/LAST IGNORE_ERRORS
-LET A = ifv I LT 5 THEN I ELSE (-9)
-LIST/ORDER=X IFV I GT 3 THEN ( A ) ELSE .333
- VARIABLE : IFV I GT 3 THEN ( A ) ELSE .333
- SUBSET : 5 points (X)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.333 0.333 0.333 4.000 -9.000
-CANCEL REGION
-
-LET r = {1,2,0,1,,3,4,5,0,,1}
-LIST r, IF r THEN 1, IFV r THEN 1, IF r THEN 1 ELSE 2, IFV r THEN 1 ELSE 2
- X: 0.5 to 11.5
- Column 1: R is {1,2,0,1,,3,4,5,0,,1}
- Column 2: EX#2 is IF R THEN 1
- Column 3: EX#3 is IFV R THEN 1
- Column 4: EX#4 is IF R THEN 1 ELSE 2
- Column 5: EX#5 is IFV R THEN 1 ELSE 2
- R EX#2 EX#3 EX#4 EX#5
-1 / 1: 1.000 1.000 1.000 1.000 1.000
-2 / 2: 2.000 1.000 1.000 1.000 1.000
-3 / 3: 0.000 .... 1.000 2.000 1.000
-4 / 4: 1.000 1.000 1.000 1.000 1.000
-5 / 5: .... .... .... 2.000 2.000
-6 / 6: 3.000 1.000 1.000 1.000 1.000
-7 / 7: 4.000 1.000 1.000 1.000 1.000
-8 / 8: 5.000 1.000 1.000 1.000 1.000
-9 / 9: 0.000 .... 1.000 2.000 1.000
-10 / 10: .... .... .... 2.000 2.000
-11 / 11: 1.000 1.000 1.000 1.000 1.000
-
-! Mask with data that has integer values including zero,
-USE coads_climatology
-SET REG/L=1
-LET intvar = INT(sst/5)
-
-SET VIEW ul
-SHADE IF intvar THEN 1
-STAT IF intvar THEN 1
-
- IF INTVAR THEN 1
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: 16-JAN 06:00
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 8780
- Minimum value: 1
- Maximum value: 1
- Mean value: 1 (unweighted average)
- Standard deviation: 0
-
-SET VIEW ur
-SHADE IFV intvar THEN 1
-STAT IFV intvar THEN 1
-
- IFV INTVAR THEN 1
- LONGITUDE: 20E to 20E(380)
- LATITUDE: 90S to 90N
- Z: N/A
- TIME: 16-JAN 06:00
- E: N/A
- F: N/A
- DATA SET: ./coads_climatology.cdf
-
- Total # of data points: 16200 (180*90*1*1*1*1)
- # flagged as bad data: 6694
- Minimum value: 1
- Maximum value: 1
- Mean value: 1 (unweighted average)
- Standard deviation: 0
-
-! IFV on string arguments behaves just like IF.
-
-LET a = {"x","y"}
-LET b = IF a EQ "x" THEN "z" ELSE a
-LIST b
- VARIABLE : IF A EQ "x" THEN "z" ELSE A
- SUBSET : 2 points (X)
- 1 / 1:"z"
- 2 / 2:"y"
-LET b = IFV a EQ "x" THEN "z" ELSE a
-LIST b
- VARIABLE : IFV A EQ "x" THEN "z" ELSE A
- SUBSET : 2 points (X)
- 1 / 1:"z"
- 2 / 2:"y"
-
-
-let strings = {"a","b",}
-list IF strings EQ "a" THEN "" ELSE strings
- VARIABLE : IF STRINGS EQ "a" THEN "" ELSE STRINGS
- SUBSET : 3 points (X)
- 1 / 1:""
- 2 / 2:"b"
- 3 / 3:""
-
-let strings = {"a","b",}
-list IFV strings EQ "a" THEN "" ELSE strings
- VARIABLE : IFV STRINGS EQ "a" THEN "" ELSE STRINGS
- SUBSET : 3 points (X)
- 1 / 1:""
- 2 / 2:"b"
- 3 / 3:""
-
-GO bn_reset
-cancel mode verify
-GO bn_randu2_randn2
-! Test randu2 and randn2 with newer random-number algorithm.
-! 9/2011 acm
-! Note that most of these results will differe from one
-! run of the benchmarks to the next.
-
-let xbig = x[i=1:20000:1]
-let xx = x[i=1:6:1]
-
-! RANDU2 with seed init via system clock. These should be different
-! load the variable to make sure some time has passed on the clock.
-
-! ******** This result may differ with each run of the benchmark scripts
-load randu2(xbig,-1)
-list/i=1:5 randu2(xbig,-1)
- VARIABLE : RANDU2(XBIG,-1)
- SUBSET : 5 points (X)
- 1 / 1: 0.4663
- 2 / 2: 0.1828
- 3 / 3: 0.6104
- 4 / 4: 0.4529
- 5 / 5: 0.7002
-can mem
-list/i=1:5 randu2(xbig,-1)
- VARIABLE : RANDU2(XBIG,-1)
- SUBSET : 5 points (X)
- 1 / 1: 0.0709
- 2 / 2: 0.1771
- 3 / 3: 0.1118
- 4 / 4: 0.6788
- 5 / 5: 0.5445
-
-! ******** This result may differ with each run of the benchmark scripts
-! RANDU2 with 0 seed to continue from previous seed. These should be different
-list randu2(xx,0)
- VARIABLE : RANDU2(XX,0)
- SUBSET : 6 points (X)
- 1 / 1: 0.6885
- 2 / 2: 0.4732
- 3 / 3: 0.0327
- 4 / 4: 0.6587
- 5 / 5: 0.4896
- 6 / 6: 0.8972
-can mem
-list randu2(xx,0)
- VARIABLE : RANDU2(XX,0)
- SUBSET : 6 points (X)
- 1 / 1: 0.0823
- 2 / 2: 0.7589
- 3 / 3: 0.4554
- 4 / 4: 0.3671
- 5 / 5: 0.8057
- 6 / 6: 0.8830
-
-! ******** This result should be consistent with each run of the benchmark scripts
-! RANDU2 with user-set seed. These should be duplicates
-list randu2(xx,12436)
- VARIABLE : RANDU2(XX,12436)
- SUBSET : 6 points (X)
- 1 / 1: 0.3018
- 2 / 2: 0.3804
- 3 / 3: 0.9263
- 4 / 4: 0.6721
- 5 / 5: 0.2378
- 6 / 6: 0.6382
-can mem
-list randu2(xx,12436)
- VARIABLE : RANDU2(XX,12436)
- SUBSET : 6 points (X)
- 1 / 1: 0.3018
- 2 / 2: 0.3804
- 3 / 3: 0.9263
- 4 / 4: 0.6721
- 5 / 5: 0.2378
- 6 / 6: 0.6382
-
-!same tests with RANDN2
-
-! ******** This result may differ with each run of the benchmark scripts
-! RANDN2 with clock-set seed. These should be different
-load randn2(xbig,-1)
-list/i=1:5 randn2(xbig,-1)
- VARIABLE : RANDN2(XBIG,-1)
- SUBSET : 5 points (X)
- 1 / 1: -0.741
- 2 / 2: 0.428
- 3 / 3: 1.838
- 4 / 4: 0.479
- 5 / 5: -0.373
-can mem
-list/i=1:5 randn2(xbig,-1)
- VARIABLE : RANDN2(XBIG,-1)
- SUBSET : 5 points (X)
- 1 / 1: -0.943
- 2 / 2: -0.215
- 3 / 3: -0.480
- 4 / 4: -2.073
- 5 / 5: -0.060
-
-! ******** This result may differ with each run of the benchmark scripts
-! RANDN2 with 0 seed to continue from previous seed. These should be different
-list randn2(xx,0)
- VARIABLE : RANDN2(XX,0)
- SUBSET : 6 points (X)
- 1 / 1: -0.661
- 2 / 2: -0.984
- 3 / 3: 0.570
- 4 / 4: -1.507
- 5 / 5: -0.067
- 6 / 6: -0.070
-can mem
-list randn2(xx,0)
- VARIABLE : RANDN2(XX,0)
- SUBSET : 6 points (X)
- 1 / 1: -0.813
- 2 / 2: -1.045
- 3 / 3: 0.416
- 4 / 4: -0.976
- 5 / 5: 0.653
- 6 / 6: -1.640
-
-! ******** This result should be consistent with each run of the benchmark scripts
-! RANDN2 with user-set seed. These should be duplicates
-list randn2(xx,12436)
- VARIABLE : RANDN2(XX,12436)
- SUBSET : 6 points (X)
- 1 / 1: -0.906
- 2 / 2: -1.503
- 3 / 3: 0.217
- 4 / 4: 0.537
- 5 / 5: 0.674
- 6 / 6: -1.279
-can mem
-list randn2(xx,12436)
- VARIABLE : RANDN2(XX,12436)
- SUBSET : 6 points (X)
- 1 / 1: -0.906
- 2 / 2: -1.503
- 3 / 3: 0.217
- 4 / 4: 0.537
- 5 / 5: 0.674
- 6 / 6: -1.279
-
-! A test from the median-smoothing benchmark
-
-! ******** This result may differ with each run of the benchmark scripts
-define axis/z=0:1000:20/depth zax
-let var2 = cos(z[gz=zax]/30) + randu2(1+k[gz=zax],-1)
-plot/trans var2, var2[z=@med:3], var2[z=@med:9]
-list/z=1:140 var2, var2[z=@med:3], var2[z=@med:9]
- Z: 1 to 140
- Column 1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
- Column 2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
- Column 3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
- VAR2 VAR2 VAR2
-0 / 1: 1.138 1.138 0.4152
-20 / 2: 0.794 0.794 0.4152
-40 / 3: 0.415 0.415 0.2777
-60 / 4: 0.278 0.278 0.2777
-80 / 5: -0.274 -0.135 0.2777
-100 / 6: -0.135 -0.274 0.2777
-120 / 7: -0.517 -0.135 0.2777
-140 / 8: 0.223 0.223 0.2777
-
-! ******** This result may differ with each run of the benchmark scripts
-! one for randn2
-LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
-LET ypts = 15 + 20*SIN(2*3.14*I[I=1:50]/60)
-LET sst = 25 - ypts + RANDN2(ypts,-1)
-plot/vs xpts,ypts
-GO polymark POLYGON/KEY/LEV=v xpts,ypts,sst,star
-
-
-GO bn_reset
-cancel mode verify
-GO bn_axis_cf
-! Ticket 1792: Write axes with CF-compliant units
-! and with standard name attributes for geophysical attrs.
-
-
-define axis/x=-10:10:2/units="deg" xax
-let xx = x[gx=xax]
-save/clobber/file=a.nc xx
-
-define axis/y=1:15:3/units="degrees" yax
-let yy = y[gy=yax]
-save/append/file=a.nc yy
-
-define axis/t="1-jan-2001":"5-jan-2001":1/units="DAYS"/t0="1-jan-2000" taxis
-let tt = t[gt=taxis]
-save/append/file=a.nc tt
-
-define axis/z/depth/units="meters" zaxdn = {0,10,40,100}
-let zdn = z[gz=zaxdn]
-save/append/file=a.nc zdn
-
-define axis/z/units="meters" zaxup = {0,10,40,100,200}
-let zup = z[gz=zaxup]
-save/append/file=a.nc zup
-
-sp echo "bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
-
-! If the axis is defined in a file or the command line as
-! having units of "degrees" in any of its forms, write units
-! as the cf-compliant "degrees_east" or "degrees_north"
-! Previously these would have been saved as "DEGREES" and "DEG"
-
-use degrees
-sh att/all (`var,return=xaxis`)
- !-> sh att/all (XAXIS)
- attributes for dataset: ./degrees.nc
- (XAXIS).units = degrees_east
- (XAXIS).point_spacing = even
- (XAXIS).axis = X
- (XAXIS).modulo = 360
- (XAXIS).orig_file_axname = XAXIS
-save/clobber/file=a.nc var
-
-define axis/units="DEG"/y=-90:90:15 yfifteen
-save/append/file=a.nc y[gy=yfifteen]
-
-sp echo "bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
-
-! This dataset has time units of "DAYS since ..."
-! On output, downcase the units string.
-
-use bn_strides
-sh att/all (TTIME)
- attributes for dataset: ./bn_strides.cdf
- (TTIME).units = DAYS since 1901-01-15 00:00:00
- (TTIME).time_origin = 15-JAN-1901
- (TTIME).point_spacing = even
- (TTIME).orig_file_axname = TTIME
-save/clobber/file=a.nc xytvar
-
-sp echo "bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since" >> all_ncdump.out
-sp ncdump -h a.nc >> all_ncdump.out
-
-
-
-GO bn_reset
-cancel mode verify
-GO bn_repeated_coords
-! Test the use of micro-adjusting on NetCDF read
-! when coordinates are repeated.
-! See ticket 1910
-
-! Axis has repeated coordinate values.
-
-use repeat_t_coord.nc
-show grid a
- GRID GKT1
- name axis # pts start end
- normal X
- normal Y
- normal Z
- TMIN TIME 71 i 01-JAN-2001 00:00 01-JAN-2001 01:10
- normal E
- normal F
-show axis tmin
- name axis # pts start end
- TMIN TIME 71 i 01-JAN-2001 00:00 01-JAN-2001 01:10
-T0 = 15-JAN-1901 00:00:00
- Axis span (to cell edges) = 71
-list a[L=1:71:10]
- VARIABLE : SIN(L[GT=TMIN]/30)
- regrid: on T
- FILENAME : repeat_t_coord.nc
- SUBSET : 8 points (TIME)
- 01-JAN-2001 00:00:00 / 1: 0.0333
- 01-JAN-2001 00:10:00 / 2: 0.3585
- 01-JAN-2001 00:20:00 / 3: 0.6442
- 01-JAN-2001 00:30:00 / 4: 0.8590
- 01-JAN-2001 00:40:00 / 5: 0.9792
- 01-JAN-2001 00:50:00 / 6: 0.9917
- 01-JAN-2001 01:00:00 / 7: 0.8949
- 01-JAN-2001 01:10:00 / 8: 0.6997
-
-! Previous behavior is retained with qualifier /STRICT
-! The listing of variable aa here is identical to what is just above.
-can dat/all
-
-use/strict repeat_t_coord.nc
-show grid a
- GRID GKT1
- name axis # pts start end
- normal X
- normal Y
- normal Z
- TMIN T 71 r 1 71
- normal E
- normal F
-show axis tmin
- name axis # pts start end
- TMIN T 71 r 1 71
-T0 = %%
- Axis span (to cell edges) = 71
-
-define axis/t/t0=15-jan-1901/units=minute tnew = tmin
-let aa = RESHAPE(a, t[gt=tnew])
-list aa[L=1:71:10]
- VARIABLE : RESHAPE(A, T[GT=TNEW])
- regrid: on T
- FILENAME : repeat_t_coord.nc
- SUBSET : 8 points (TIME)
- 01-JAN-2001 00:00:00 / 1: 0.0333
- 01-JAN-2001 00:10:00 / 2: 0.3585
- 01-JAN-2001 00:20:00 / 3: 0.6442
- 01-JAN-2001 00:30:00 / 4: 0.8590
- 01-JAN-2001 00:40:00 / 5: 0.9792
- 01-JAN-2001 00:50:00 / 6: 0.9917
- 01-JAN-2001 01:00:00 / 7: 0.8949
- 01-JAN-2001 01:10:00 / 8: 0.6997
-
-
-GO bn_reset
-cancel mode verify
-GO bn_xml_header
-! bn_xml_header.jnl
-! run the exact script that LAS uses to make XML header files
-
-go xml_header_script.jnl xml_use_coads.jnl xml_out.xml
-!header.jnl
-! argument 1 is a script that opens the dataset
-! argument 2 is the name of the xml file to write
-! Requires Ferret v6.5 or higher
-
-! This is the header.jnl script from LAS; comment out can mode verify
-! Ferret v685, show/data/var/xml includes the output of show axis, so remove that.
-
-! cancel mode verify
-IF `($ferret_version) LT 6.5` THEN
- !-> IF 0 THEN
-ENDIF
-
-go "$1"
- !-> go "xml_use_coads.jnl"
-use coads_climatology
-
-DEFINE SYMBOL output_xml_file = $2
- !-> DEFINE SYMBOL output_xml_file = xml_out.xml
-
-say/quiet/outfile="($output_xml_file)"/clobber <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
- !-> MESSAGE/CONTINUE/quiet/outfile="xml_out.xml"/clobber <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
-say/quiet/outfile="($output_xml_file)"/append <data>
- !-> MESSAGE/CONTINUE/quiet/outfile="xml_out.xml"/append <data>
-
-show data/var/xml/append/outfile="($output_xml_file)" 1
- !-> show data/var/xml/append/outfile="xml_out.xml" 1
-say/quiet/append/outfile="($output_xml_file)" </data>
- !-> MESSAGE/CONTINUE/quiet/append/outfile="xml_out.xml" </data>
-sp cat xml_out.xml
-<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
-<data>
-<datasets>
-<dataset name="./coads_climatology.cdf" default="true">
-<title> </title>
-<var name="SST">
-<attribute name="units" type="char">
- <value><![CDATA[Deg C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[SEA SURFACE TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME10</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="COADSX">
-<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_east]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>180</value>
-</attribute>
-<attribute name="start" type="double">
- <value>21</value>
-</attribute>
-<attribute name="end" type="double">
- <value>379</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[COADSX]]></value>
-</attribute>
-</axis>
-<axis name="COADSY">
-<attribute name="direction" type="char">
- <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_north]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>90</value>
-</attribute>
-<attribute name="start" type="double">
- <value>-89</value>
-</attribute>
-<attribute name="end" type="double">
- <value>89</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[COADSY]]></value>
-</attribute>
-</axis>
-<axis name="TIME10">
-<attribute name="direction" type="char">
- <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>3</value>
-</attribute>
-<attribute name="start" type="double">
- <value>0000-01-16 06:00:00</value>
-</attribute>
-<attribute name="end" type="double">
- <value>0000-03-17 02:58:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
- <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
- <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
- <value>8765.82</value>
-</attribute>
-</axis>
-</axes>
-</data>
-
-
-GO bn_reset
-cancel mode verify
-GO bn_eof_simple
-! bn_eof_simple
-! Define a simple function with two known functions.
-! decompose with EOFs.
-! 7/2012
-! In version 6.8 (double precision), the old eof functions are not available
-! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
-
-! Define two locations.
-def axis /X=1:2:1 xaxis
-def axis /Y=1:1:1 yaxis
-
-! Thinking of the time axis as number of months.
-def axis /T=0.0:59.75:0.25 taxis
-def grid /X=xaxis /Y=yaxis /T=taxis xytgrid
-set grid xytgrid
-
-! Make standing waves with a period of 12 months.
-let cosT = cos(T * 3.141592653589793 / 6.0)
-let sinT = sin(T * 3.141592653589793 / 6.0)
-
-! Put a standing wave at each location.
-! The two waves are orthonormal and zero-mean over time.
-let spacetime = if (i eq 1) then cosT else sinT + 1
-show grid spacetime
- GRID XYTGRID
- name axis # pts start end
- XAXIS X 2 r 1 2
- YAXIS Y 1 r 1 1
- normal Z
- TAXIS T 240 r 0 59.75
- normal E
- normal F
-
-show func eofsvd_stat
-EOFSVD_STAT(A)
- SVD EOF statistics from XYT field. j=1:#EOFs, j=2:%variation, j=3:eigenvalues
- A: Variable in x,y,t; may be fcn of z,e,f
-! Run each of the eof functions and show the results.
-! Both are equally significant. Eigenvalues should be 0.5.
-! Other EOF descriptions do not divide the covariance
-! matrix by the number of time values, in which case the
-! the eigenvalues will be much larger, but still equal
-! to each other.
-list eofsvd_stat(spacetime)
- VARIABLE : EOFSVD_STAT(SPACETIME)
- SUBSET : 2 by 3 points (X-Y)
- 1 2
- 1 2
- 1 / 1: 2.00 2.00
- 2 / 2: 50.00 50.00
- 3 / 3: 0.50 0.50
-
-show func eofsvd_space
-EOFSVD_SPACE(A)
- Return SVD EOF spacial fields from XYT field
- A: Variable in x,y,t; may be fcn of z,e,f
-! Ideally the vectors (0.0, sqrt(0.5)) and (sqrt(0.5), 0.0),
-! but might be mixed by rotation.
-! This is if the EOF functions are in units of the original data,
-! thus the eigenvectors times the square-root of the eigenvalue.
-! EOF vectors are always orthogonal to each other.
-list eofsvd_space(spacetime)
- VARIABLE : EOFSVD_SPACE(SPACETIME)
- SUBSET : 2 by 2 points (X-T)
- 1 2
- 1 2
- 1 / 1: -0.0294 0.7065
- 2 / 2: 0.7065 0.0294
-
-show func eofsvd_tfunc
-EOFSVD_TFUNC(A)
- Return SVD EOF time functions from XYT field.
- A: Variable in x,y,t; may be fcn of z,e,f
-! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.
-! TAF vectors are always orthogonal to each other.
-list eofsvd_tfunc(spacetime)
- VARIABLE : EOFSVD_TFUNC(SPACETIME)
- SUBSET : 2 by 240 points (X-T)
- 1 2
- 1 2
- 0 / 1: -0.059 1.413
- 0.25 / 2: 0.126 1.409
- 0.5 / 3: 0.309 1.380
- 0.75 / 4: 0.486 1.328
- 1 / 5: 0.655 1.253
- 1.25 / 6: 0.813 1.157
- 1.5 / 7: 0.957 1.041
- 1.75 / 8: 1.085 0.907
- 2 / 9: 1.194 0.757
- 2.25 / 10: 1.283 0.595
- 2.5 / 11: 1.350 0.423
- 2.75 / 12: 1.393 0.243
- 3 / 13: 1.413 0.059
- 3.25 / 14: 1.409 -0.126
- 3.5 / 15: 1.380 -0.309
- 3.75 / 16: 1.328 -0.486
- 4 / 17: 1.253 -0.655
- 4.25 / 18: 1.157 -0.813
- 4.5 / 19: 1.041 -0.957
- 4.75 / 20: 0.907 -1.085
- 5 / 21: 0.757 -1.194
- 5.25 / 22: 0.595 -1.283
- 5.5 / 23: 0.423 -1.350
- 5.75 / 24: 0.243 -1.393
- 6 / 25: 0.059 -1.413
- 6.25 / 26: -0.126 -1.409
- 6.5 / 27: -0.309 -1.380
- 6.75 / 28: -0.486 -1.328
- 7 / 29: -0.655 -1.253
- 7.25 / 30: -0.813 -1.157
- 7.5 / 31: -0.957 -1.041
- 7.75 / 32: -1.085 -0.907
- 8 / 33: -1.194 -0.757
- 8.25 / 34: -1.283 -0.595
- 8.5 / 35: -1.350 -0.423
- 8.75 / 36: -1.393 -0.243
- 9 / 37: -1.413 -0.059
- 9.25 / 38: -1.409 0.126
- 9.5 / 39: -1.380 0.309
- 9.75 / 40: -1.328 0.486
- 10 / 41: -1.253 0.655
- 10.25 / 42: -1.157 0.813
- 10.5 / 43: -1.041 0.957
- 10.75 / 44: -0.907 1.085
- 11 / 45: -0.757 1.194
- 11.25 / 46: -0.595 1.283
- 11.5 / 47: -0.423 1.350
- 11.75 / 48: -0.243 1.393
- 12 / 49: -0.059 1.413
- 12.25 / 50: 0.126 1.409
- 12.5 / 51: 0.309 1.380
- 12.75 / 52: 0.486 1.328
- 13 / 53: 0.655 1.253
- 13.25 / 54: 0.813 1.157
- 13.5 / 55: 0.957 1.041
- 13.75 / 56: 1.085 0.907
- 14 / 57: 1.194 0.757
- 14.25 / 58: 1.283 0.595
- 14.5 / 59: 1.350 0.423
- 14.75 / 60: 1.393 0.243
- 15 / 61: 1.413 0.059
- 15.25 / 62: 1.409 -0.126
- 15.5 / 63: 1.380 -0.309
- 15.75 / 64: 1.328 -0.486
- 16 / 65: 1.253 -0.655
- 16.25 / 66: 1.157 -0.813
- 16.5 / 67: 1.041 -0.957
- 16.75 / 68: 0.907 -1.085
- 17 / 69: 0.757 -1.194
- 17.25 / 70: 0.595 -1.283
- 17.5 / 71: 0.423 -1.350
- 17.75 / 72: 0.243 -1.393
- 18 / 73: 0.059 -1.413
- 18.25 / 74: -0.126 -1.409
- 18.5 / 75: -0.309 -1.380
- 18.75 / 76: -0.486 -1.328
- 19 / 77: -0.655 -1.253
- 19.25 / 78: -0.813 -1.157
- 19.5 / 79: -0.957 -1.041
- 19.75 / 80: -1.085 -0.907
- 20 / 81: -1.194 -0.757
- 20.25 / 82: -1.283 -0.595
- 20.5 / 83: -1.350 -0.423
- 20.75 / 84: -1.393 -0.243
- 21 / 85: -1.413 -0.059
- 21.25 / 86: -1.409 0.126
- 21.5 / 87: -1.380 0.309
- 21.75 / 88: -1.328 0.486
- 22 / 89: -1.253 0.655
- 22.25 / 90: -1.157 0.813
- 22.5 / 91: -1.041 0.957
- 22.75 / 92: -0.907 1.085
- 23 / 93: -0.757 1.194
- 23.25 / 94: -0.595 1.283
- 23.5 / 95: -0.423 1.350
- 23.75 / 96: -0.243 1.393
- 24 / 97: -0.059 1.413
- 24.25 / 98: 0.126 1.409
- 24.5 / 99: 0.309 1.380
- 24.75 / 100: 0.486 1.328
- 25 / 101: 0.655 1.253
- 25.25 / 102: 0.813 1.157
- 25.5 / 103: 0.957 1.041
- 25.75 / 104: 1.085 0.907
- 26 / 105: 1.194 0.757
- 26.25 / 106: 1.283 0.595
- 26.5 / 107: 1.350 0.423
- 26.75 / 108: 1.393 0.243
- 27 / 109: 1.413 0.059
- 27.25 / 110: 1.409 -0.126
- 27.5 / 111: 1.380 -0.309
- 27.75 / 112: 1.328 -0.486
- 28 / 113: 1.253 -0.655
- 28.25 / 114: 1.157 -0.813
- 28.5 / 115: 1.041 -0.957
- 28.75 / 116: 0.907 -1.085
- 29 / 117: 0.757 -1.194
- 29.25 / 118: 0.595 -1.283
- 29.5 / 119: 0.423 -1.350
- 29.75 / 120: 0.243 -1.393
- 30 / 121: 0.059 -1.413
- 30.25 / 122: -0.126 -1.409
- 30.5 / 123: -0.309 -1.380
- 30.75 / 124: -0.486 -1.328
- 31 / 125: -0.655 -1.253
- 31.25 / 126: -0.813 -1.157
- 31.5 / 127: -0.957 -1.041
- 31.75 / 128: -1.085 -0.907
- 32 / 129: -1.194 -0.757
- 32.25 / 130: -1.283 -0.595
- 32.5 / 131: -1.350 -0.423
- 32.75 / 132: -1.393 -0.243
- 33 / 133: -1.413 -0.059
- 33.25 / 134: -1.409 0.126
- 33.5 / 135: -1.380 0.309
- 33.75 / 136: -1.328 0.486
- 34 / 137: -1.253 0.655
- 34.25 / 138: -1.157 0.813
- 34.5 / 139: -1.041 0.957
- 34.75 / 140: -0.907 1.085
- 35 / 141: -0.757 1.194
- 35.25 / 142: -0.595 1.283
- 35.5 / 143: -0.423 1.350
- 35.75 / 144: -0.243 1.393
- 36 / 145: -0.059 1.413
- 36.25 / 146: 0.126 1.409
- 36.5 / 147: 0.309 1.380
- 36.75 / 148: 0.486 1.328
- 37 / 149: 0.655 1.253
- 37.25 / 150: 0.813 1.157
- 37.5 / 151: 0.957 1.041
- 37.75 / 152: 1.085 0.907
- 38 / 153: 1.194 0.757
- 38.25 / 154: 1.283 0.595
- 38.5 / 155: 1.350 0.423
- 38.75 / 156: 1.393 0.243
- 39 / 157: 1.413 0.059
- 39.25 / 158: 1.409 -0.126
- 39.5 / 159: 1.380 -0.309
- 39.75 / 160: 1.328 -0.486
- 40 / 161: 1.253 -0.655
- 40.25 / 162: 1.157 -0.813
- 40.5 / 163: 1.041 -0.957
- 40.75 / 164: 0.907 -1.085
- 41 / 165: 0.757 -1.194
- 41.25 / 166: 0.595 -1.283
- 41.5 / 167: 0.423 -1.350
- 41.75 / 168: 0.243 -1.393
- 42 / 169: 0.059 -1.413
- 42.25 / 170: -0.126 -1.409
- 42.5 / 171: -0.309 -1.380
- 42.75 / 172: -0.486 -1.328
- 43 / 173: -0.655 -1.253
- 43.25 / 174: -0.813 -1.157
- 43.5 / 175: -0.957 -1.041
- 43.75 / 176: -1.085 -0.907
- 44 / 177: -1.194 -0.757
- 44.25 / 178: -1.283 -0.595
- 44.5 / 179: -1.350 -0.423
- 44.75 / 180: -1.393 -0.243
- 45 / 181: -1.413 -0.059
- 45.25 / 182: -1.409 0.126
- 45.5 / 183: -1.380 0.309
- 45.75 / 184: -1.328 0.486
- 46 / 185: -1.253 0.655
- 46.25 / 186: -1.157 0.813
- 46.5 / 187: -1.041 0.957
- 46.75 / 188: -0.907 1.085
- 47 / 189: -0.757 1.194
- 47.25 / 190: -0.595 1.283
- 47.5 / 191: -0.423 1.350
- 47.75 / 192: -0.243 1.393
- 48 / 193: -0.059 1.413
- 48.25 / 194: 0.126 1.409
- 48.5 / 195: 0.309 1.380
- 48.75 / 196: 0.486 1.328
- 49 / 197: 0.655 1.253
- 49.25 / 198: 0.813 1.157
- 49.5 / 199: 0.957 1.041
- 49.75 / 200: 1.085 0.907
- 50 / 201: 1.194 0.757
- 50.25 / 202: 1.283 0.595
- 50.5 / 203: 1.350 0.423
- 50.75 / 204: 1.393 0.243
- 51 / 205: 1.413 0.059
- 51.25 / 206: 1.409 -0.126
- 51.5 / 207: 1.380 -0.309
- 51.75 / 208: 1.328 -0.486
- 52 / 209: 1.253 -0.655
- 52.25 / 210: 1.157 -0.813
- 52.5 / 211: 1.041 -0.957
- 52.75 / 212: 0.907 -1.085
- 53 / 213: 0.757 -1.194
- 53.25 / 214: 0.595 -1.283
- 53.5 / 215: 0.423 -1.350
- 53.75 / 216: 0.243 -1.393
- 54 / 217: 0.059 -1.413
- 54.25 / 218: -0.126 -1.409
- 54.5 / 219: -0.309 -1.380
- 54.75 / 220: -0.486 -1.328
- 55 / 221: -0.655 -1.253
- 55.25 / 222: -0.813 -1.157
- 55.5 / 223: -0.957 -1.041
- 55.75 / 224: -1.085 -0.907
- 56 / 225: -1.194 -0.757
- 56.25 / 226: -1.283 -0.595
- 56.5 / 227: -1.350 -0.423
- 56.75 / 228: -1.393 -0.243
- 57 / 229: -1.413 -0.059
- 57.25 / 230: -1.409 0.126
- 57.5 / 231: -1.380 0.309
- 57.75 / 232: -1.328 0.486
- 58 / 233: -1.253 0.655
- 58.25 / 234: -1.157 0.813
- 58.5 / 235: -1.041 0.957
- 58.75 / 236: -0.907 1.085
- 59 / 237: -0.757 1.194
- 59.25 / 238: -0.595 1.283
- 59.5 / 239: -0.423 1.350
- 59.75 / 240: -0.243 1.393
-
-! The sum over all significant EOFs of the outer product of
-! EOF(i) and TAF(i) should return the zero-time-meaned data
-! (original data with the time-series mean subtracted to give
-! a zero mean for each time series).
-! In this case, EOF(1) o TAF(1) + EOF(2) o TAF(2) = (cosT, sinT)
-
-! Missing-data cases
-!
-! If there are locations where the timeseries is all missing or incomplete
-! (as in a dataset where missing data represents land), return a result
-! based only locations with complete timeseries.
-
-def axis /X=1:3:1 xaxis
-let spacetime = if (i eq 1) then cosT else sinT + 1
-let space12 = if i ne 3 then spacetime
-
-list eofsvd_stat(space12)
- VARIABLE : EOFSVD_STAT(SPACE12)
- SUBSET : 3 by 3 points (X-Y)
- 1 2 3
- 1 2 3
- 1 / 1: 2.00 2.00 2.00
- 2 / 2: 50.00 50.00 0.00
- 3 / 3: 0.50 0.50 0.00
-list eofsvd_space(space12)
- VARIABLE : EOFSVD_SPACE(SPACE12)
- SUBSET : 3 by 3 points (X-T)
- 1 2 3
- 1 2 3
- 1 / 1: -0.0294 0.7065 ....
- 2 / 2: 0.7065 0.0294 ....
- 3 / 3: .... .... ....
-list eofsvd_tfunc(space12)
- VARIABLE : EOFSVD_TFUNC(SPACE12)
- SUBSET : 3 by 240 points (X-T)
- 1 2 3
- 1 2 3
- 0 / 1: -0.059 1.413 ....
- 0.25 / 2: 0.126 1.409 ....
- 0.5 / 3: 0.309 1.380 ....
- 0.75 / 4: 0.486 1.328 ....
- 1 / 5: 0.655 1.253 ....
- 1.25 / 6: 0.813 1.157 ....
- 1.5 / 7: 0.957 1.041 ....
- 1.75 / 8: 1.085 0.907 ....
- 2 / 9: 1.194 0.757 ....
- 2.25 / 10: 1.283 0.595 ....
- 2.5 / 11: 1.350 0.423 ....
- 2.75 / 12: 1.393 0.243 ....
- 3 / 13: 1.413 0.059 ....
- 3.25 / 14: 1.409 -0.126 ....
- 3.5 / 15: 1.380 -0.309 ....
- 3.75 / 16: 1.328 -0.486 ....
- 4 / 17: 1.253 -0.655 ....
- 4.25 / 18: 1.157 -0.813 ....
- 4.5 / 19: 1.041 -0.957 ....
- 4.75 / 20: 0.907 -1.085 ....
- 5 / 21: 0.757 -1.194 ....
- 5.25 / 22: 0.595 -1.283 ....
- 5.5 / 23: 0.423 -1.350 ....
- 5.75 / 24: 0.243 -1.393 ....
- 6 / 25: 0.059 -1.413 ....
- 6.25 / 26: -0.126 -1.409 ....
- 6.5 / 27: -0.309 -1.380 ....
- 6.75 / 28: -0.486 -1.328 ....
- 7 / 29: -0.655 -1.253 ....
- 7.25 / 30: -0.813 -1.157 ....
- 7.5 / 31: -0.957 -1.041 ....
- 7.75 / 32: -1.085 -0.907 ....
- 8 / 33: -1.194 -0.757 ....
- 8.25 / 34: -1.283 -0.595 ....
- 8.5 / 35: -1.350 -0.423 ....
- 8.75 / 36: -1.393 -0.243 ....
- 9 / 37: -1.413 -0.059 ....
- 9.25 / 38: -1.409 0.126 ....
- 9.5 / 39: -1.380 0.309 ....
- 9.75 / 40: -1.328 0.486 ....
- 10 / 41: -1.253 0.655 ....
- 10.25 / 42: -1.157 0.813 ....
- 10.5 / 43: -1.041 0.957 ....
- 10.75 / 44: -0.907 1.085 ....
- 11 / 45: -0.757 1.194 ....
- 11.25 / 46: -0.595 1.283 ....
- 11.5 / 47: -0.423 1.350 ....
- 11.75 / 48: -0.243 1.393 ....
- 12 / 49: -0.059 1.413 ....
- 12.25 / 50: 0.126 1.409 ....
- 12.5 / 51: 0.309 1.380 ....
- 12.75 / 52: 0.486 1.328 ....
- 13 / 53: 0.655 1.253 ....
- 13.25 / 54: 0.813 1.157 ....
- 13.5 / 55: 0.957 1.041 ....
- 13.75 / 56: 1.085 0.907 ....
- 14 / 57: 1.194 0.757 ....
- 14.25 / 58: 1.283 0.595 ....
- 14.5 / 59: 1.350 0.423 ....
- 14.75 / 60: 1.393 0.243 ....
- 15 / 61: 1.413 0.059 ....
- 15.25 / 62: 1.409 -0.126 ....
- 15.5 / 63: 1.380 -0.309 ....
- 15.75 / 64: 1.328 -0.486 ....
- 16 / 65: 1.253 -0.655 ....
- 16.25 / 66: 1.157 -0.813 ....
- 16.5 / 67: 1.041 -0.957 ....
- 16.75 / 68: 0.907 -1.085 ....
- 17 / 69: 0.757 -1.194 ....
- 17.25 / 70: 0.595 -1.283 ....
- 17.5 / 71: 0.423 -1.350 ....
- 17.75 / 72: 0.243 -1.393 ....
- 18 / 73: 0.059 -1.413 ....
- 18.25 / 74: -0.126 -1.409 ....
- 18.5 / 75: -0.309 -1.380 ....
- 18.75 / 76: -0.486 -1.328 ....
- 19 / 77: -0.655 -1.253 ....
- 19.25 / 78: -0.813 -1.157 ....
- 19.5 / 79: -0.957 -1.041 ....
- 19.75 / 80: -1.085 -0.907 ....
- 20 / 81: -1.194 -0.757 ....
- 20.25 / 82: -1.283 -0.595 ....
- 20.5 / 83: -1.350 -0.423 ....
- 20.75 / 84: -1.393 -0.243 ....
- 21 / 85: -1.413 -0.059 ....
- 21.25 / 86: -1.409 0.126 ....
- 21.5 / 87: -1.380 0.309 ....
- 21.75 / 88: -1.328 0.486 ....
- 22 / 89: -1.253 0.655 ....
- 22.25 / 90: -1.157 0.813 ....
- 22.5 / 91: -1.041 0.957 ....
- 22.75 / 92: -0.907 1.085 ....
- 23 / 93: -0.757 1.194 ....
- 23.25 / 94: -0.595 1.283 ....
- 23.5 / 95: -0.423 1.350 ....
- 23.75 / 96: -0.243 1.393 ....
- 24 / 97: -0.059 1.413 ....
- 24.25 / 98: 0.126 1.409 ....
- 24.5 / 99: 0.309 1.380 ....
- 24.75 / 100: 0.486 1.328 ....
- 25 / 101: 0.655 1.253 ....
- 25.25 / 102: 0.813 1.157 ....
- 25.5 / 103: 0.957 1.041 ....
- 25.75 / 104: 1.085 0.907 ....
- 26 / 105: 1.194 0.757 ....
- 26.25 / 106: 1.283 0.595 ....
- 26.5 / 107: 1.350 0.423 ....
- 26.75 / 108: 1.393 0.243 ....
- 27 / 109: 1.413 0.059 ....
- 27.25 / 110: 1.409 -0.126 ....
- 27.5 / 111: 1.380 -0.309 ....
- 27.75 / 112: 1.328 -0.486 ....
- 28 / 113: 1.253 -0.655 ....
- 28.25 / 114: 1.157 -0.813 ....
- 28.5 / 115: 1.041 -0.957 ....
- 28.75 / 116: 0.907 -1.085 ....
- 29 / 117: 0.757 -1.194 ....
- 29.25 / 118: 0.595 -1.283 ....
- 29.5 / 119: 0.423 -1.350 ....
- 29.75 / 120: 0.243 -1.393 ....
- 30 / 121: 0.059 -1.413 ....
- 30.25 / 122: -0.126 -1.409 ....
- 30.5 / 123: -0.309 -1.380 ....
- 30.75 / 124: -0.486 -1.328 ....
- 31 / 125: -0.655 -1.253 ....
- 31.25 / 126: -0.813 -1.157 ....
- 31.5 / 127: -0.957 -1.041 ....
- 31.75 / 128: -1.085 -0.907 ....
- 32 / 129: -1.194 -0.757 ....
- 32.25 / 130: -1.283 -0.595 ....
- 32.5 / 131: -1.350 -0.423 ....
- 32.75 / 132: -1.393 -0.243 ....
- 33 / 133: -1.413 -0.059 ....
- 33.25 / 134: -1.409 0.126 ....
- 33.5 / 135: -1.380 0.309 ....
- 33.75 / 136: -1.328 0.486 ....
- 34 / 137: -1.253 0.655 ....
- 34.25 / 138: -1.157 0.813 ....
- 34.5 / 139: -1.041 0.957 ....
- 34.75 / 140: -0.907 1.085 ....
- 35 / 141: -0.757 1.194 ....
- 35.25 / 142: -0.595 1.283 ....
- 35.5 / 143: -0.423 1.350 ....
- 35.75 / 144: -0.243 1.393 ....
- 36 / 145: -0.059 1.413 ....
- 36.25 / 146: 0.126 1.409 ....
- 36.5 / 147: 0.309 1.380 ....
- 36.75 / 148: 0.486 1.328 ....
- 37 / 149: 0.655 1.253 ....
- 37.25 / 150: 0.813 1.157 ....
- 37.5 / 151: 0.957 1.041 ....
- 37.75 / 152: 1.085 0.907 ....
- 38 / 153: 1.194 0.757 ....
- 38.25 / 154: 1.283 0.595 ....
- 38.5 / 155: 1.350 0.423 ....
- 38.75 / 156: 1.393 0.243 ....
- 39 / 157: 1.413 0.059 ....
- 39.25 / 158: 1.409 -0.126 ....
- 39.5 / 159: 1.380 -0.309 ....
- 39.75 / 160: 1.328 -0.486 ....
- 40 / 161: 1.253 -0.655 ....
- 40.25 / 162: 1.157 -0.813 ....
- 40.5 / 163: 1.041 -0.957 ....
- 40.75 / 164: 0.907 -1.085 ....
- 41 / 165: 0.757 -1.194 ....
- 41.25 / 166: 0.595 -1.283 ....
- 41.5 / 167: 0.423 -1.350 ....
- 41.75 / 168: 0.243 -1.393 ....
- 42 / 169: 0.059 -1.413 ....
- 42.25 / 170: -0.126 -1.409 ....
- 42.5 / 171: -0.309 -1.380 ....
- 42.75 / 172: -0.486 -1.328 ....
- 43 / 173: -0.655 -1.253 ....
- 43.25 / 174: -0.813 -1.157 ....
- 43.5 / 175: -0.957 -1.041 ....
- 43.75 / 176: -1.085 -0.907 ....
- 44 / 177: -1.194 -0.757 ....
- 44.25 / 178: -1.283 -0.595 ....
- 44.5 / 179: -1.350 -0.423 ....
- 44.75 / 180: -1.393 -0.243 ....
- 45 / 181: -1.413 -0.059 ....
- 45.25 / 182: -1.409 0.126 ....
- 45.5 / 183: -1.380 0.309 ....
- 45.75 / 184: -1.328 0.486 ....
- 46 / 185: -1.253 0.655 ....
- 46.25 / 186: -1.157 0.813 ....
- 46.5 / 187: -1.041 0.957 ....
- 46.75 / 188: -0.907 1.085 ....
- 47 / 189: -0.757 1.194 ....
- 47.25 / 190: -0.595 1.283 ....
- 47.5 / 191: -0.423 1.350 ....
- 47.75 / 192: -0.243 1.393 ....
- 48 / 193: -0.059 1.413 ....
- 48.25 / 194: 0.126 1.409 ....
- 48.5 / 195: 0.309 1.380 ....
- 48.75 / 196: 0.486 1.328 ....
- 49 / 197: 0.655 1.253 ....
- 49.25 / 198: 0.813 1.157 ....
- 49.5 / 199: 0.957 1.041 ....
- 49.75 / 200: 1.085 0.907 ....
- 50 / 201: 1.194 0.757 ....
- 50.25 / 202: 1.283 0.595 ....
- 50.5 / 203: 1.350 0.423 ....
- 50.75 / 204: 1.393 0.243 ....
- 51 / 205: 1.413 0.059 ....
- 51.25 / 206: 1.409 -0.126 ....
- 51.5 / 207: 1.380 -0.309 ....
- 51.75 / 208: 1.328 -0.486 ....
- 52 / 209: 1.253 -0.655 ....
- 52.25 / 210: 1.157 -0.813 ....
- 52.5 / 211: 1.041 -0.957 ....
- 52.75 / 212: 0.907 -1.085 ....
- 53 / 213: 0.757 -1.194 ....
- 53.25 / 214: 0.595 -1.283 ....
- 53.5 / 215: 0.423 -1.350 ....
- 53.75 / 216: 0.243 -1.393 ....
- 54 / 217: 0.059 -1.413 ....
- 54.25 / 218: -0.126 -1.409 ....
- 54.5 / 219: -0.309 -1.380 ....
- 54.75 / 220: -0.486 -1.328 ....
- 55 / 221: -0.655 -1.253 ....
- 55.25 / 222: -0.813 -1.157 ....
- 55.5 / 223: -0.957 -1.041 ....
- 55.75 / 224: -1.085 -0.907 ....
- 56 / 225: -1.194 -0.757 ....
- 56.25 / 226: -1.283 -0.595 ....
- 56.5 / 227: -1.350 -0.423 ....
- 56.75 / 228: -1.393 -0.243 ....
- 57 / 229: -1.413 -0.059 ....
- 57.25 / 230: -1.409 0.126 ....
- 57.5 / 231: -1.380 0.309 ....
- 57.75 / 232: -1.328 0.486 ....
- 58 / 233: -1.253 0.655 ....
- 58.25 / 234: -1.157 0.813 ....
- 58.5 / 235: -1.041 0.957 ....
- 58.75 / 236: -0.907 1.085 ....
- 59 / 237: -0.757 1.194 ....
- 59.25 / 238: -0.595 1.283 ....
- 59.5 / 239: -0.423 1.350 ....
- 59.75 / 240: -0.243 1.393 ....
-
-
-! If there are no complete time series, the functions should bail with an error
-
-let spacegap = if L ne 2 then spacetime
-
-set mode ignore
-list eofsvd_stat(spacegap)
-list eofsvd_space(spacegap)
-list eofsvd_tfunc(spacegap)
-
-! clean-up
-set mode/last ignore
-can var spacetime
-set grid abstract
-can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
-
-
-exit/script
-
-GO bn_reset
-cancel mode verify
-GO bn_eof_simple2
-! bn_eof_simple2
-! Define a simple function with four known functions, two of which are degenerate.
-! decompose with EOFs.
-! 7/2012
-! In version 6.8 (double precision), the old eof functions are not available
-! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
-! Define four locations.
-def axis /X=1:2:1 xaxis
-def axis /Y=1:2:1 yaxis
-
-! Thinking of the time axis as number of months.
-def axis /T=0.0:23.9:0.1 taxis
-def grid /X=xaxis /Y=yaxis /T=taxis xytgrid
-set grid xytgrid
-
-! Make standing waves with a period of 12 months.
-let cosT = cos(T * 3.141592653589793 / 6.0)
-let sinT = sin(T * 3.141592653589793 / 6.0)
-
-! Put a products of the standing waves at each location.
-let spacetime12 = if (i eq 1) and (j eq 1) then cost * cost else cost * sint + 1
-let spacetime123 = if (i eq 2) and (j eq 1) then cost * sint + 2 else spacetime12
-let spacetime = if (i eq 2) and (j eq 2) then sint * sint + 3 else spacetime123
-show grid spacetime
- GRID XYTGRID
- name axis # pts start end
- XAXIS X 2 r 1 2
- YAXIS Y 2 r 1 2
- normal Z
- TAXIS T 240 r 0 23.9
- normal E
- normal F
-
-show func eofsvd_stat
-EOFSVD_STAT(A)
- SVD EOF statistics from XYT field. j=1:#EOFs, j=2:%variation, j=3:eigenvalues
- A: Variable in x,y,t; may be fcn of z,e,f
-! Two are of equal significance with eigenvalues of 0.25.
-! Two are negligable (eigenvalues of zero or close to it).
-list eofsvd_stat(spacetime)
- VARIABLE : EOFSVD_STAT(SPACETIME)
- SUBSET : 4 by 3 points (X-Y)
- 1 2 3 4
- 1 2 3 4
- 1 / 1: 4.00 4.00 4.00 4.00
- 2 / 2: 50.00 50.00 0.00 0.00
- 3 / 3: 0.25 0.25 0.00 0.00
-
-show func eofsvd_space
-EOFSVD_SPACE(A)
- Return SVD EOF spacial fields from XYT field
- A: Variable in x,y,t; may be fcn of z,e,f
-! Ideally:
-! +- [ 0.35355, 0.0,
-! 0.0, -0.35355 ] (norm^2 = 0.25)
-! corresponding to 0.25 * sqrt(2.0) * (cosT^2 - sinT^2)
-! = 0.25 * sqrt(2.0) * cos2T
-! and
-! +- [ 0.0, 0.35355,
-! 0.35355, 0.0 ] (norm^2 = 0.25)
-! corresponding to 0.25 * sqrt(2.0) * 2 * cosT * sinT
-! = 0.25 * sqrt(2.0) * sin2T
-! The norm^2 of an EOF should be the eigenvalue.
-! The two EOFs should be orthogonal to each other.
-! Rotation (mixing) of these two may occur.
-let eofs = eofsvd_space(spacetime)
-! T axis of eofsvd_space is abstract, so following uses full spacetime
-list eofs[L=1:2]
- VARIABLE : EOFSVD_SPACE(SPACETIME)
- SUBSET : 2 by 2 by 2 points (X-Y-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: -0.3516 0.0367
- 2 / 2: 0.0367 0.3516
- ---- L:2 T: 2
- 1 / 1: 0.0367 0.3516
- 2 / 2: 0.3516 -0.0367
-
-show func eofsvd_tfunc
-EOFSVD_TFUNC(A)
- Return SVD EOF time functions from XYT field.
- A: Variable in x,y,t; may be fcn of z,e,f
-! Ideally:
-! +- sqrt(2.0) * cos2T (norm^2 = 240)
-! +- sqrt(2.0) * sin2T (norm^2 = 240)
-! The norm^2 of a TAF should be the number of time values.
-! The two TAFs should be orthogonal to each other.
-! Rotation (mixing) of these two may occur.
-let tafs = eofsvd_tfunc(spacetime)
-! X axis of eofsvd_tfunc is abstract, so following uses full spacetime
-list tafs[I=1:2]
- VARIABLE : EOFSVD_TFUNC(SPACETIME)
- SUBSET : 2 by 240 points (X-T)
- 1 2
- 1 2
- 0 / 1: -1.407 0.147
- 0.1 / 2: -1.384 0.293
- 0.2 / 3: -1.345 0.436
- 0.3 / 4: -1.292 0.574
- 0.4 / 5: -1.225 0.706
- 0.5 / 6: -1.145 0.831
- 0.6 / 7: -1.052 0.946
- 0.7 / 8: -0.947 1.050
- 0.8 / 9: -0.832 1.144
- 0.9 / 10: -0.708 1.224
- 1 / 11: -0.576 1.292
- 1.1 / 12: -0.438 1.345
- 1.2 / 13: -0.295 1.383
- 1.3 / 14: -0.149 1.406
- 1.4 / 15: -0.001 1.414
- 1.5 / 16: 0.147 1.407
- 1.6 / 17: 0.293 1.384
- 1.7 / 18: 0.436 1.345
- 1.8 / 19: 0.574 1.292
- 1.9 / 20: 0.706 1.225
- 2 / 21: 0.831 1.145
- 2.1 / 22: 0.946 1.052
- 2.2 / 23: 1.050 0.947
- 2.3 / 24: 1.144 0.832
- 2.4 / 25: 1.224 0.708
- 2.5 / 26: 1.292 0.576
- 2.6 / 27: 1.345 0.438
- 2.7 / 28: 1.383 0.295
- 2.8 / 29: 1.406 0.149
- 2.9 / 30: 1.414 0.001
- 3 / 31: 1.407 -0.147
- 3.1 / 32: 1.384 -0.293
- 3.2 / 33: 1.345 -0.436
- 3.3 / 34: 1.292 -0.574
- 3.4 / 35: 1.225 -0.706
- 3.5 / 36: 1.145 -0.831
- 3.6 / 37: 1.052 -0.946
- 3.7 / 38: 0.947 -1.050
- 3.8 / 39: 0.832 -1.144
- 3.9 / 40: 0.708 -1.224
- 4 / 41: 0.576 -1.292
- 4.1 / 42: 0.438 -1.345
- 4.2 / 43: 0.295 -1.383
- 4.3 / 44: 0.149 -1.406
- 4.4 / 45: 0.001 -1.414
- 4.5 / 46: -0.147 -1.407
- 4.6 / 47: -0.293 -1.384
- 4.7 / 48: -0.436 -1.345
- 4.8 / 49: -0.574 -1.292
- 4.9 / 50: -0.706 -1.225
- 5 / 51: -0.831 -1.145
- 5.1 / 52: -0.946 -1.052
- 5.2 / 53: -1.050 -0.947
- 5.3 / 54: -1.144 -0.832
- 5.4 / 55: -1.224 -0.708
- 5.5 / 56: -1.292 -0.576
- 5.6 / 57: -1.345 -0.438
- 5.7 / 58: -1.383 -0.295
- 5.8 / 59: -1.406 -0.149
- 5.9 / 60: -1.414 -0.001
- 6 / 61: -1.407 0.147
- 6.1 / 62: -1.384 0.293
- 6.2 / 63: -1.345 0.436
- 6.3 / 64: -1.292 0.574
- 6.4 / 65: -1.225 0.706
- 6.5 / 66: -1.145 0.831
- 6.6 / 67: -1.052 0.946
- 6.7 / 68: -0.947 1.050
- 6.8 / 69: -0.832 1.144
- 6.9 / 70: -0.708 1.224
- 7 / 71: -0.576 1.292
- 7.1 / 72: -0.438 1.345
- 7.2 / 73: -0.295 1.383
- 7.3 / 74: -0.149 1.406
- 7.4 / 75: -0.001 1.414
- 7.5 / 76: 0.147 1.407
- 7.6 / 77: 0.293 1.384
- 7.7 / 78: 0.436 1.345
- 7.8 / 79: 0.574 1.292
- 7.9 / 80: 0.706 1.225
- 8 / 81: 0.831 1.145
- 8.1 / 82: 0.946 1.052
- 8.2 / 83: 1.050 0.947
- 8.3 / 84: 1.144 0.832
- 8.4 / 85: 1.224 0.708
- 8.5 / 86: 1.292 0.576
- 8.6 / 87: 1.345 0.438
- 8.7 / 88: 1.383 0.295
- 8.8 / 89: 1.406 0.149
- 8.9 / 90: 1.414 0.001
- 9 / 91: 1.407 -0.147
- 9.1 / 92: 1.384 -0.293
- 9.2 / 93: 1.345 -0.436
- 9.3 / 94: 1.292 -0.574
- 9.4 / 95: 1.225 -0.706
- 9.5 / 96: 1.145 -0.831
- 9.6 / 97: 1.052 -0.946
- 9.7 / 98: 0.947 -1.050
- 9.8 / 99: 0.832 -1.144
- 9.9 / 100: 0.708 -1.224
- 10 / 101: 0.576 -1.292
- 10.1 / 102: 0.438 -1.345
- 10.2 / 103: 0.295 -1.383
- 10.3 / 104: 0.149 -1.406
- 10.4 / 105: 0.001 -1.414
- 10.5 / 106: -0.147 -1.407
- 10.6 / 107: -0.293 -1.384
- 10.7 / 108: -0.436 -1.345
- 10.8 / 109: -0.574 -1.292
- 10.9 / 110: -0.706 -1.225
- 11 / 111: -0.831 -1.145
- 11.1 / 112: -0.946 -1.052
- 11.2 / 113: -1.050 -0.947
- 11.3 / 114: -1.144 -0.832
- 11.4 / 115: -1.224 -0.708
- 11.5 / 116: -1.292 -0.576
- 11.6 / 117: -1.345 -0.438
- 11.7 / 118: -1.383 -0.295
- 11.8 / 119: -1.406 -0.149
- 11.9 / 120: -1.414 -0.001
- 12 / 121: -1.407 0.147
- 12.1 / 122: -1.384 0.293
- 12.2 / 123: -1.345 0.436
- 12.3 / 124: -1.292 0.574
- 12.4 / 125: -1.225 0.706
- 12.5 / 126: -1.145 0.831
- 12.6 / 127: -1.052 0.946
- 12.7 / 128: -0.947 1.050
- 12.8 / 129: -0.832 1.144
- 12.9 / 130: -0.708 1.224
- 13 / 131: -0.576 1.292
- 13.1 / 132: -0.438 1.345
- 13.2 / 133: -0.295 1.383
- 13.3 / 134: -0.149 1.406
- 13.4 / 135: -0.001 1.414
- 13.5 / 136: 0.147 1.407
- 13.6 / 137: 0.293 1.384
- 13.7 / 138: 0.436 1.345
- 13.8 / 139: 0.574 1.292
- 13.9 / 140: 0.706 1.225
- 14 / 141: 0.831 1.145
- 14.1 / 142: 0.946 1.052
- 14.2 / 143: 1.050 0.947
- 14.3 / 144: 1.144 0.832
- 14.4 / 145: 1.224 0.708
- 14.5 / 146: 1.292 0.576
- 14.6 / 147: 1.345 0.438
- 14.7 / 148: 1.383 0.295
- 14.8 / 149: 1.406 0.149
- 14.9 / 150: 1.414 0.001
- 15 / 151: 1.407 -0.147
- 15.1 / 152: 1.384 -0.293
- 15.2 / 153: 1.345 -0.436
- 15.3 / 154: 1.292 -0.574
- 15.4 / 155: 1.225 -0.706
- 15.5 / 156: 1.145 -0.831
- 15.6 / 157: 1.052 -0.946
- 15.7 / 158: 0.947 -1.050
- 15.8 / 159: 0.832 -1.144
- 15.9 / 160: 0.708 -1.224
- 16 / 161: 0.576 -1.292
- 16.1 / 162: 0.438 -1.345
- 16.2 / 163: 0.295 -1.383
- 16.3 / 164: 0.149 -1.406
- 16.4 / 165: 0.001 -1.414
- 16.5 / 166: -0.147 -1.407
- 16.6 / 167: -0.293 -1.384
- 16.7 / 168: -0.436 -1.345
- 16.8 / 169: -0.574 -1.292
- 16.9 / 170: -0.706 -1.225
- 17 / 171: -0.831 -1.145
- 17.1 / 172: -0.946 -1.052
- 17.2 / 173: -1.050 -0.947
- 17.3 / 174: -1.144 -0.832
- 17.4 / 175: -1.224 -0.708
- 17.5 / 176: -1.292 -0.576
- 17.6 / 177: -1.345 -0.438
- 17.7 / 178: -1.383 -0.295
- 17.8 / 179: -1.406 -0.149
- 17.9 / 180: -1.414 -0.001
- 18 / 181: -1.407 0.147
- 18.1 / 182: -1.384 0.293
- 18.2 / 183: -1.345 0.436
- 18.3 / 184: -1.292 0.574
- 18.4 / 185: -1.225 0.706
- 18.5 / 186: -1.145 0.831
- 18.6 / 187: -1.052 0.946
- 18.7 / 188: -0.947 1.050
- 18.8 / 189: -0.832 1.144
- 18.9 / 190: -0.708 1.224
- 19 / 191: -0.576 1.292
- 19.1 / 192: -0.438 1.345
- 19.2 / 193: -0.295 1.383
- 19.3 / 194: -0.149 1.406
- 19.4 / 195: -0.001 1.414
- 19.5 / 196: 0.147 1.407
- 19.6 / 197: 0.293 1.384
- 19.7 / 198: 0.436 1.345
- 19.8 / 199: 0.574 1.292
- 19.9 / 200: 0.706 1.225
- 20 / 201: 0.831 1.145
- 20.1 / 202: 0.946 1.052
- 20.2 / 203: 1.050 0.947
- 20.3 / 204: 1.144 0.832
- 20.4 / 205: 1.224 0.708
- 20.5 / 206: 1.292 0.576
- 20.6 / 207: 1.345 0.438
- 20.7 / 208: 1.383 0.295
- 20.8 / 209: 1.406 0.149
- 20.9 / 210: 1.414 0.001
- 21 / 211: 1.407 -0.147
- 21.1 / 212: 1.384 -0.293
- 21.2 / 213: 1.345 -0.436
- 21.3 / 214: 1.292 -0.574
- 21.4 / 215: 1.225 -0.706
- 21.5 / 216: 1.145 -0.831
- 21.6 / 217: 1.052 -0.946
- 21.7 / 218: 0.947 -1.050
- 21.8 / 219: 0.832 -1.144
- 21.9 / 220: 0.708 -1.224
- 22 / 221: 0.576 -1.292
- 22.1 / 222: 0.438 -1.345
- 22.2 / 223: 0.295 -1.383
- 22.3 / 224: 0.149 -1.406
- 22.4 / 225: 0.001 -1.414
- 22.5 / 226: -0.147 -1.407
- 22.6 / 227: -0.293 -1.384
- 22.7 / 228: -0.436 -1.345
- 22.8 / 229: -0.574 -1.292
- 22.9 / 230: -0.706 -1.225
- 23 / 231: -0.831 -1.145
- 23.1 / 232: -0.946 -1.052
- 23.2 / 233: -1.050 -0.947
- 23.3 / 234: -1.144 -0.832
- 23.4 / 235: -1.224 -0.708
- 23.5 / 236: -1.292 -0.576
- 23.6 / 237: -1.345 -0.438
- 23.7 / 238: -1.383 -0.295
- 23.8 / 239: -1.406 -0.149
- 23.9 / 240: -1.414 -0.001
-
-! Explanation:
-! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
-! EOF1 * TAF1 = (0.5 * cos2T, 0.0, 0.0, -0.5 * cos2T)
-! = (cosT^2 - 0.5, 0.0, 0.0, sinT^2 - 0.5)
-! EOF2 * TAF2 = (0.0, 0.5 * sin2T, 0.5 * sin2T, 0.0)
-! = (0.0, cosT * sinT, cosT * sinT, 0.0)
-! Adding these three gives the original data
-
-! clean-up
-can var tafs
-can var eofs
-can var spacetime
-can var spacetime123
-can var spacetime12
-set grid abstract
-can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
-
-exit/script
-
-! 6D tests for Ferret v6.8
-
-GO bn_reset
-cancel mode verify
-GO bn_interpolate_6d
-! bn_interpolate_6d.JNL
-! benchmark interpolation along various axes
-! including the E and F axis
-
-SET LIST/PRECISION=6
-SET MODE LATITUDE:4
-
-LET v = x + 10*y + 100*_e + 1000*_f
-SET REGION/X=1:3/Y=1:3/E=1:3/F=1:3
-DEF REG/X=1.5 xpt
-DEF REG/Y=1.05 ypt
-DEF REG/E=1.005 ept
-DEF REG/F=1.0005 fpt
-
-! first without interpolation
-CANCEL MODE INTERPOLATE
-GO bn_interpolate_6d.sub
-! bn_interpolate_6d.SUB
-! interpolate in various geometries
-
-! this routine assumes that a 4-D region and an expression are already set
-
-! cubes of data
-LIST v[@xpt]
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 by 3 points (Y-E-F)
- X : 1
- 1 2 3
- 1 2 3
- ---- N:1 F: 1
- 1 / 1: 1111.00 1121.00 1131.00
- 2 / 2: 1211.00 1221.00 1231.00
- 3 / 3: 1311.00 1321.00 1331.00
- ---- N:2 F: 2
- 1 / 1: 2111.00 2121.00 2131.00
- 2 / 2: 2211.00 2221.00 2231.00
- 3 / 3: 2311.00 2321.00 2331.00
- ---- N:3 F: 3
- 1 / 1: 3111.00 3121.00 3131.00
- 2 / 2: 3211.00 3221.00 3231.00
- 3 / 3: 3311.00 3321.00 3331.00
-LIST v[@ypt]
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 by 3 points (X-E-F)
- Y : 1
- 1 2 3
- 1 2 3
- ---- N:1 F: 1
- 1 / 1: 1111.00 1112.00 1113.00
- 2 / 2: 1211.00 1212.00 1213.00
- 3 / 3: 1311.00 1312.00 1313.00
- ---- N:2 F: 2
- 1 / 1: 2111.00 2112.00 2113.00
- 2 / 2: 2211.00 2212.00 2213.00
- 3 / 3: 2311.00 2312.00 2313.00
- ---- N:3 F: 3
- 1 / 1: 3111.00 3112.00 3113.00
- 2 / 2: 3211.00 3212.00 3213.00
- 3 / 3: 3311.00 3312.00 3313.00
-LIST v[@ept]
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 by 3 points (X-Y-F)
- E : 1
- 1 2 3
- 1 2 3
- ---- N:1 F: 1
- 1 / 1: 1111.00 1112.00 1113.00
- 2 / 2: 1121.00 1122.00 1123.00
- 3 / 3: 1131.00 1132.00 1133.00
- ---- N:2 F: 2
- 1 / 1: 2111.00 2112.00 2113.00
- 2 / 2: 2121.00 2122.00 2123.00
- 3 / 3: 2131.00 2132.00 2133.00
- ---- N:3 F: 3
- 1 / 1: 3111.00 3112.00 3113.00
- 2 / 2: 3121.00 3122.00 3123.00
- 3 / 3: 3131.00 3132.00 3133.00
-LIST v[@fpt]
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 by 3 points (X-Y-E)
- F : 1
- 1 2 3
- 1 2 3
- ---- M:1 E: 1
- 1 / 1: 1111.00 1112.00 1113.00
- 2 / 2: 1121.00 1122.00 1123.00
- 3 / 3: 1131.00 1132.00 1133.00
- ---- M:2 E: 2
- 1 / 1: 1211.00 1212.00 1213.00
- 2 / 2: 1221.00 1222.00 1223.00
- 3 / 3: 1231.00 1232.00 1233.00
- ---- M:3 E: 3
- 1 / 1: 1311.00 1312.00 1313.00
- 2 / 2: 1321.00 1322.00 1323.00
- 3 / 3: 1331.00 1332.00 1333.00
-
-! planes of data
-LIST v[@ept, at fpt] !XY
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 points (X-Y)
- E : 1
- F : 1
- 1 2 3
- 1 2 3
- 1 / 1: 1111.00 1112.00 1113.00
- 2 / 2: 1121.00 1122.00 1123.00
- 3 / 3: 1131.00 1132.00 1133.00
-LIST v[@ypt, at fpt] !XE
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 points (X-E)
- Y : 1
- F : 1
- 1 2 3
- 1 2 3
- 1 / 1: 1111.00 1112.00 1113.00
- 2 / 2: 1211.00 1212.00 1213.00
- 3 / 3: 1311.00 1312.00 1313.00
-LIST v[@ypt, at ept] !XF
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 points (X-F)
- Y : 1
- E : 1
- 1 2 3
- 1 2 3
- 1 / 1: 1111.00 1112.00 1113.00
- 2 / 2: 2111.00 2112.00 2113.00
- 3 / 3: 3111.00 3112.00 3113.00
-LIST v[@xpt, at fpt] !YE
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 points (Y-E)
- X : 1
- F : 1
- 1 2 3
- 1 2 3
- 1 / 1: 1111.00 1121.00 1131.00
- 2 / 2: 1211.00 1221.00 1231.00
- 3 / 3: 1311.00 1321.00 1331.00
-LIST v[@xpt, at ept] !YF
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 points (Y-F)
- X : 1
- E : 1
- 1 2 3
- 1 2 3
- 1 / 1: 1111.00 1121.00 1131.00
- 2 / 2: 2111.00 2121.00 2131.00
- 3 / 3: 3111.00 3121.00 3131.00
-LIST v[@xpt, at ypt] !EF
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 points (E-F)
- X : 1
- Y : 1
- 1 2 3
- 1 2 3
- 1 / 1: 1111.00 1211.00 1311.00
- 2 / 2: 2111.00 2211.00 2311.00
- 3 / 3: 3111.00 3211.00 3311.00
-
-! lines of data
-LIST/ORDER=F v[@xpt, at ypt, at ept] ! F
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 points (F)
- X : 1
- Y : 1
- E : 1
- 1 2 3
- 1 2 3
- 1111.00 2111.00 3111.00
-LIST/ORDER=E v[@xpt, at ypt, at fpt] ! E
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 points (E)
- X : 1
- Y : 1
- F : 1
- 1 2 3
- 1 2 3
- 1111.00 1211.00 1311.00
-LIST/ORDER=Y v[@xpt, at ept, at fpt] ! Y
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 points (Y)
- X : 1
- E : 1
- F : 1
- 1 2 3
- 1 2 3
- 1111.00 1121.00 1131.00
-LIST/ORDER=X v[@ypt, at ept, at fpt] ! X
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 points (X)
- Y : 1
- E : 1
- F : 1
- 1 2 3
- 1 2 3
- 1111.00 1112.00 1113.00
-
-! point of data
-LIST v[@xpt, at ypt, at ept, at fpt]
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- X : 1
- Y : 1
- E : 1
- F : 1
- 1111.00
-
-! then with interpolation
-SET MODE INTERPOLATE
-GO bn_interpolate_6d.sub
-! bn_interpolate_6d.SUB
-! interpolate in various geometries
-
-! this routine assumes that a 4-D region and an expression are already set
-
-! cubes of data
-LIST v[@xpt]
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 by 3 points (Y-E-F)
- X : 1.5 (interpolated)
- 1 2 3
- 1 2 3
- ---- N:1 F: 1
- 1 / 1: 1111.50 1121.50 1131.50
- 2 / 2: 1211.50 1221.50 1231.50
- 3 / 3: 1311.50 1321.50 1331.50
- ---- N:2 F: 2
- 1 / 1: 2111.50 2121.50 2131.50
- 2 / 2: 2211.50 2221.50 2231.50
- 3 / 3: 2311.50 2321.50 2331.50
- ---- N:3 F: 3
- 1 / 1: 3111.50 3121.50 3131.50
- 2 / 2: 3211.50 3221.50 3231.50
- 3 / 3: 3311.50 3321.50 3331.50
-LIST v[@ypt]
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 by 3 points (X-E-F)
- Y : 1.05 (interpolated)
- 1 2 3
- 1 2 3
- ---- N:1 F: 1
- 1 / 1: 1111.50 1112.50 1113.50
- 2 / 2: 1211.50 1212.50 1213.50
- 3 / 3: 1311.50 1312.50 1313.50
- ---- N:2 F: 2
- 1 / 1: 2111.50 2112.50 2113.50
- 2 / 2: 2211.50 2212.50 2213.50
- 3 / 3: 2311.50 2312.50 2313.50
- ---- N:3 F: 3
- 1 / 1: 3111.50 3112.50 3113.50
- 2 / 2: 3211.50 3212.50 3213.50
- 3 / 3: 3311.50 3312.50 3313.50
-LIST v[@ept]
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 by 3 points (X-Y-F)
- E : 1.00499999999999989 (interpolated)
- 1 2 3
- 1 2 3
- ---- N:1 F: 1
- 1 / 1: 1111.50 1112.50 1113.50
- 2 / 2: 1121.50 1122.50 1123.50
- 3 / 3: 1131.50 1132.50 1133.50
- ---- N:2 F: 2
- 1 / 1: 2111.50 2112.50 2113.50
- 2 / 2: 2121.50 2122.50 2123.50
- 3 / 3: 2131.50 2132.50 2133.50
- ---- N:3 F: 3
- 1 / 1: 3111.50 3112.50 3113.50
- 2 / 2: 3121.50 3122.50 3123.50
- 3 / 3: 3131.50 3132.50 3133.50
-LIST v[@fpt]
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 by 3 points (X-Y-E)
- F : 1.000499999999999945 (interpolated)
- 1 2 3
- 1 2 3
- ---- M:1 E: 1
- 1 / 1: 1111.50 1112.50 1113.50
- 2 / 2: 1121.50 1122.50 1123.50
- 3 / 3: 1131.50 1132.50 1133.50
- ---- M:2 E: 2
- 1 / 1: 1211.50 1212.50 1213.50
- 2 / 2: 1221.50 1222.50 1223.50
- 3 / 3: 1231.50 1232.50 1233.50
- ---- M:3 E: 3
- 1 / 1: 1311.50 1312.50 1313.50
- 2 / 2: 1321.50 1322.50 1323.50
- 3 / 3: 1331.50 1332.50 1333.50
-
-! planes of data
-LIST v[@ept, at fpt] !XY
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 points (X-Y)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
- 1 2 3
- 1 2 3
- 1 / 1: 1112.00 1113.00 1114.00
- 2 / 2: 1122.00 1123.00 1124.00
- 3 / 3: 1132.00 1133.00 1134.00
-LIST v[@ypt, at fpt] !XE
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 points (X-E)
- Y : 1.05 (interpolated)
- F : 1.000499999999999945 (interpolated)
- 1 2 3
- 1 2 3
- 1 / 1: 1112.00 1113.00 1114.00
- 2 / 2: 1212.00 1213.00 1214.00
- 3 / 3: 1312.00 1313.00 1314.00
-LIST v[@ypt, at ept] !XF
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 points (X-F)
- Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- 1 2 3
- 1 2 3
- 1 / 1: 1112.00 1113.00 1114.00
- 2 / 2: 2112.00 2113.00 2114.00
- 3 / 3: 3112.00 3113.00 3114.00
-LIST v[@xpt, at fpt] !YE
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 points (Y-E)
- X : 1.5 (interpolated)
- F : 1.000499999999999945 (interpolated)
- 1 2 3
- 1 2 3
- 1 / 1: 1112.00 1122.00 1132.00
- 2 / 2: 1212.00 1222.00 1232.00
- 3 / 3: 1312.00 1322.00 1332.00
-LIST v[@xpt, at ept] !YF
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 points (Y-F)
- X : 1.5 (interpolated)
- E : 1.00499999999999989 (interpolated)
- 1 2 3
- 1 2 3
- 1 / 1: 1112.00 1122.00 1132.00
- 2 / 2: 2112.00 2122.00 2132.00
- 3 / 3: 3112.00 3122.00 3132.00
-LIST v[@xpt, at ypt] !EF
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 by 3 points (E-F)
- X : 1.5 (interpolated)
- Y : 1.05 (interpolated)
- 1 2 3
- 1 2 3
- 1 / 1: 1112.00 1212.00 1312.00
- 2 / 2: 2112.00 2212.00 2312.00
- 3 / 3: 3112.00 3212.00 3312.00
-
-! lines of data
-LIST/ORDER=F v[@xpt, at ypt, at ept] ! F
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 points (F)
- X : 1.5 (interpolated)
- Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- 1 2 3
- 1 2 3
- 1112.50 2112.50 3112.50
-LIST/ORDER=E v[@xpt, at ypt, at fpt] ! E
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 points (E)
- X : 1.5 (interpolated)
- Y : 1.05 (interpolated)
- F : 1.000499999999999945 (interpolated)
- 1 2 3
- 1 2 3
- 1112.50 1212.50 1312.50
-LIST/ORDER=Y v[@xpt, at ept, at fpt] ! Y
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 points (Y)
- X : 1.5 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
- 1 2 3
- 1 2 3
- 1112.50 1122.50 1132.50
-LIST/ORDER=X v[@ypt, at ept, at fpt] ! X
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- SUBSET : 3 points (X)
- Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
- 1 2 3
- 1 2 3
- 1112.50 1113.50 1114.50
-
-! point of data
-LIST v[@xpt, at ypt, at ept, at fpt]
- VARIABLE : X + 10*Y + 100*_E + 1000*_F
- X : 1.5 (interpolated)
- Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
- 1113.00
-
-GO bn_reset
-cancel mode verify
-GO bn_regrid_6d
-! bn_regrid_6d.jnl
-! version of bn_regrid, using E and F directions.
-
-set mode latit_label -4
-set mode long_label -4
-
-define axis/x=2:20:2 xeven
-define axis/x=1:19:2 xodd
-define axis/y=2:20:2 yeven
-define axis/y=1:19:2 yodd
-define axis/e=2:20:2 eeven
-define axis/e=1:19:2 eodd
-define axis/f=2:20:2/t0="1-jan-1980"/unit=days feven
-define axis/f=1:19:2/t0="1-jan-1980"/unit=days fodd
-
-! default grid
-define grid/x=xeven/y=yeven/e=eeven/f=feven even
-
-! 1 axis different
-define grid/x=xodd/y=yeven/e=eeven/f=feven g1
-define grid/x=xeven/y=yodd/e=eeven/f=feven g2
-define grid/x=xeven/y=yeven/e=eodd/f=feven g3
-define grid/x=xeven/y=yeven/e=eeven/f=fodd g4
-
-! 2 axes different
-define grid/x=xodd/y=yodd/e=eeven/f=feven g12
-define grid/x=xodd/y=yeven/e=eodd/f=feven g13
-define grid/x=xodd/y=yeven/e=eeven/f=fodd g14
-define grid/x=xeven/y=yodd/e=eodd/f=feven g23
-define grid/x=xeven/y=yodd/e=eeven/f=fodd g24
-define grid/x=xeven/y=yeven/e=eodd/f=fodd g33
-
-! 3 axes different
-define grid/x=xeven/y=yodd/e=eodd/f=fodd g234
-define grid/x=xodd/y=yeven/e=eodd/f=fodd g134
-define grid/x=xodd/y=yodd/e=eeven/f=fodd g124
-define grid/x=xodd/y=yodd/e=eodd/f=feven g123
-
-! all axes different
-define grid/x=xodd/y=yodd/e=eodd/f=fodd g1234
-
-LET veven = 1000*i[g=even] + 100*j[g=even] + 10*_m[g=even] + _n[g=even]
-
-LET v1 = veven[g=g1]
-LET v2 = veven[g=g2]
-LET v3 = veven[g=g3]
-LET v4 = veven[g=g4]
-LET v12 = veven[g=g12]
-LET v13 = veven[g=g13]
-LET v14 = veven[g=g14]
-LET v23 = veven[g=g23]
-LET v24 = veven[g=g24]
-LET v33 = veven[g=g33]
-LET v234 = veven[g=g234]
-LET v134 = veven[g=g134]
-LET v124 = veven[g=g124]
-LET v123 = veven[g=g123]
-LET v1234 = veven[g=g1234]
-
-SET REGION/X=4.01:8.99/Y=4.01:8.99/e=4.01:8.99/f=4.01:8.99
-
-! background
-list veven
- VARIABLE : 1000*I[G=EVEN] + 100*J[G=EVEN] + 10*_M[G=EVEN] + _N[G=EVEN]
- SUBSET : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
- 4 6 8
- 2 3 4
- ---- N:2 F: 05-JAN-1980 00:00:00
- ---- M:2 E: 4
- 4 / 2: 2222.00 3222.00 4222.00
- 6 / 3: 2322.00 3322.00 4322.00
- 8 / 4: 2422.00 3422.00 4422.00
- ---- M:3 E: 6
- 4 / 2: 2232.00 3232.00 4232.00
- 6 / 3: 2332.00 3332.00 4332.00
- 8 / 4: 2432.00 3432.00 4432.00
- ---- M:4 E: 8
- 4 / 2: 2242.00 3242.00 4242.00
- 6 / 3: 2342.00 3342.00 4342.00
- 8 / 4: 2442.00 3442.00 4442.00
- ---- N:3 F: 07-JAN-1980 00:00:00
- ---- M:2 E: 4
- 4 / 2: 2223.00 3223.00 4223.00
- 6 / 3: 2323.00 3323.00 4323.00
- 8 / 4: 2423.00 3423.00 4423.00
- ---- M:3 E: 6
- 4 / 2: 2233.00 3233.00 4233.00
- 6 / 3: 2333.00 3333.00 4333.00
- 8 / 4: 2433.00 3433.00 4433.00
- ---- M:4 E: 8
- 4 / 2: 2243.00 3243.00 4243.00
- 6 / 3: 2343.00 3343.00 4343.00
- 8 / 4: 2443.00 3443.00 4443.00
- ---- N:4 F: 09-JAN-1980 00:00:00
- ---- M:2 E: 4
- 4 / 2: 2224.00 3224.00 4224.00
- 6 / 3: 2324.00 3324.00 4324.00
- 8 / 4: 2424.00 3424.00 4424.00
- ---- M:3 E: 6
- 4 / 2: 2234.00 3234.00 4234.00
- 6 / 3: 2334.00 3334.00 4334.00
- 8 / 4: 2434.00 3434.00 4434.00
- ---- M:4 E: 8
- 4 / 2: 2244.00 3244.00 4244.00
- 6 / 3: 2344.00 3344.00 4344.00
- 8 / 4: 2444.00 3444.00 4444.00
-list v1234
- VARIABLE : VEVEN[G=G1234]
- SUBSET : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
- 5 7 9
- 3 4 5
- ---- N:3 F: 06-JAN-1980 00:00:00
- ---- M:3 E: 5
- 5 / 3: 2777.50 3777.50 4777.50
- 7 / 4: 2877.50 3877.50 4877.50
- 9 / 5: 2977.50 3977.50 4977.50
- ---- M:4 E: 7
- 5 / 3: 2787.50 3787.50 4787.50
- 7 / 4: 2887.50 3887.50 4887.50
- 9 / 5: 2987.50 3987.50 4987.50
- ---- M:5 E: 9
- 5 / 3: 2797.50 3797.50 4797.50
- 7 / 4: 2897.50 3897.50 4897.50
- 9 / 5: 2997.50 3997.50 4997.50
- ---- N:4 F: 08-JAN-1980 00:00:00
- ---- M:3 E: 5
- 5 / 3: 2778.50 3778.50 4778.50
- 7 / 4: 2878.50 3878.50 4878.50
- 9 / 5: 2978.50 3978.50 4978.50
- ---- M:4 E: 7
- 5 / 3: 2788.50 3788.50 4788.50
- 7 / 4: 2888.50 3888.50 4888.50
- 9 / 5: 2988.50 3988.50 4988.50
- ---- M:5 E: 9
- 5 / 3: 2798.50 3798.50 4798.50
- 7 / 4: 2898.50 3898.50 4898.50
- 9 / 5: 2998.50 3998.50 4998.50
- ---- N:5 F: 10-JAN-1980 00:00:00
- ---- M:3 E: 5
- 5 / 3: 2779.50 3779.50 4779.50
- 7 / 4: 2879.50 3879.50 4879.50
- 9 / 5: 2979.50 3979.50 4979.50
- ---- M:4 E: 7
- 5 / 3: 2789.50 3789.50 4789.50
- 7 / 4: 2889.50 3889.50 4889.50
- 9 / 5: 2989.50 3989.50 4989.50
- ---- M:5 E: 9
- 5 / 3: 2799.50 3799.50 4799.50
- 7 / 4: 2899.50 3899.50 4899.50
- 9 / 5: 2999.50 3999.50 4999.50
-stat veven
-
- 1000*I[G=EVEN] + 100*J[G=EVEN] + 10*_M[G=EVEN] + _N[G=EVEN]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2222
- Maximum value: 4444
- Mean value: 3333 (unweighted average)
- Standard deviation: 825.72
-
-! first all from one memory variable
-load/x=1:11/y=1:11/e=1:11/f=1:11 veven
-GO bn_regrid.sub
-! BN200_REGRID.SUB
-! compare various regriddings to the original data
-
-stat v1[g=even]-veven, v1
-
- V1[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G1]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2722
- Maximum value: 4944
- Mean value: 3833 (unweighted average)
- Standard deviation: 825.72
-stat v2[g=even]-veven, v2
-
- V2[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G2]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2272
- Maximum value: 4494
- Mean value: 3383 (unweighted average)
- Standard deviation: 825.72
-stat v3[g=even]-veven, v3
-
- V3[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G3]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2227
- Maximum value: 4449
- Mean value: 3338 (unweighted average)
- Standard deviation: 825.72
-stat v4[g=even]-veven, v4
-
- V4[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G4]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2222.5
- Maximum value: 4444.5
- Mean value: 3333.5 (unweighted average)
- Standard deviation: 825.72
-stat v12[g=even]-veven, v12
-
- V12[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G12]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2772
- Maximum value: 4994
- Mean value: 3883 (unweighted average)
- Standard deviation: 825.72
-stat v13[g=even]-veven, v13
-
- V13[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G13]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2727
- Maximum value: 4949
- Mean value: 3838 (unweighted average)
- Standard deviation: 825.72
-stat v14[g=even]-veven, v14
-
- V14[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G14]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2722.5
- Maximum value: 4944.5
- Mean value: 3833.5 (unweighted average)
- Standard deviation: 825.72
-stat v23[g=even]-veven, v23
-
- V23[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G23]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2277
- Maximum value: 4499
- Mean value: 3388 (unweighted average)
- Standard deviation: 825.72
-stat v24[g=even]-veven, v24
-
- V24[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G24]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2272.5
- Maximum value: 4494.5
- Mean value: 3383.5 (unweighted average)
- Standard deviation: 825.72
-stat v33[g=even]-veven, v33
-
- V33[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G33]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2227.5
- Maximum value: 4449.5
- Mean value: 3338.5 (unweighted average)
- Standard deviation: 825.72
-stat v234[g=even]-veven, v234
-
- V234[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G234]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2277.5
- Maximum value: 4499.5
- Mean value: 3388.5 (unweighted average)
- Standard deviation: 825.72
-stat v134[g=even]-veven, v134
-
- V134[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G134]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2727.5
- Maximum value: 4949.5
- Mean value: 3838.5 (unweighted average)
- Standard deviation: 825.72
-stat v124[g=even]-veven, v124
-
- V124[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G124]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2772.5
- Maximum value: 4994.5
- Mean value: 3883.5 (unweighted average)
- Standard deviation: 825.72
-stat v123[g=even]-veven, v123
-
- V123[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G123]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2777
- Maximum value: 4999
- Mean value: 3888 (unweighted average)
- Standard deviation: 825.72
-stat v1234[g=even]-veven, v1234
-
- V1234[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G1234]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2777.5
- Maximum value: 4999.5
- Mean value: 3888.5 (unweighted average)
- Standard deviation: 825.72
-
-! and now with recalculations at every step
-CANCEL MEMORY/ALL
-SET MODE STUPID
-GO bn_regrid.sub
-! BN200_REGRID.SUB
-! compare various regriddings to the original data
-
-stat v1[g=even]-veven, v1
-
- V1[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G1]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2722
- Maximum value: 4944
- Mean value: 3833 (unweighted average)
- Standard deviation: 825.72
-stat v2[g=even]-veven, v2
-
- V2[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G2]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2272
- Maximum value: 4494
- Mean value: 3383 (unweighted average)
- Standard deviation: 825.72
-stat v3[g=even]-veven, v3
-
- V3[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G3]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2227
- Maximum value: 4449
- Mean value: 3338 (unweighted average)
- Standard deviation: 825.72
-stat v4[g=even]-veven, v4
-
- V4[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G4]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2222.5
- Maximum value: 4444.5
- Mean value: 3333.5 (unweighted average)
- Standard deviation: 825.72
-stat v12[g=even]-veven, v12
-
- V12[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G12]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2772
- Maximum value: 4994
- Mean value: 3883 (unweighted average)
- Standard deviation: 825.72
-stat v13[g=even]-veven, v13
-
- V13[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G13]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2727
- Maximum value: 4949
- Mean value: 3838 (unweighted average)
- Standard deviation: 825.72
-stat v14[g=even]-veven, v14
-
- V14[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G14]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2722.5
- Maximum value: 4944.5
- Mean value: 3833.5 (unweighted average)
- Standard deviation: 825.72
-stat v23[g=even]-veven, v23
-
- V23[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G23]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2277
- Maximum value: 4499
- Mean value: 3388 (unweighted average)
- Standard deviation: 825.72
-stat v24[g=even]-veven, v24
-
- V24[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G24]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2272.5
- Maximum value: 4494.5
- Mean value: 3383.5 (unweighted average)
- Standard deviation: 825.72
-stat v33[g=even]-veven, v33
-
- V33[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G33]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2227.5
- Maximum value: 4449.5
- Mean value: 3338.5 (unweighted average)
- Standard deviation: 825.72
-stat v234[g=even]-veven, v234
-
- V234[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G234]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2277.5
- Maximum value: 4499.5
- Mean value: 3388.5 (unweighted average)
- Standard deviation: 825.72
-stat v134[g=even]-veven, v134
-
- V134[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G134]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2727.5
- Maximum value: 4949.5
- Mean value: 3838.5 (unweighted average)
- Standard deviation: 825.72
-stat v124[g=even]-veven, v124
-
- V124[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G124]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2772.5
- Maximum value: 4994.5
- Mean value: 3883.5 (unweighted average)
- Standard deviation: 825.72
-stat v123[g=even]-veven, v123
-
- V123[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G123]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2777
- Maximum value: 4999
- Mean value: 3888 (unweighted average)
- Standard deviation: 825.72
-stat v1234[g=even]-veven, v1234
-
- V1234[G=EVEN]-VEVEN
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 0
- Maximum value: 0
- Mean value: 0 (unweighted average)
- Standard deviation: 0
-
- VEVEN[G=G1234]
- X: 4.01 to 8.99
- Y: 4.01 to 8.99
- Z: N/A
- T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
- DATA SET: N/A
-
- Total # of data points: 81 (3*3*1*1*3*3)
- # flagged as bad data: 0
- Minimum value: 2777.5
- Maximum value: 4999.5
- Mean value: 3888.5 (unweighted average)
- Standard deviation: 825.72
-
-!****************** area-averaging regrids *******************
-! check easily computable area-averaged regrid
-LET vfine = X+Y
-LET vcoarse = vfine[g=gcoarse]
-
-! first test without COS(latitude) corrections
-define axis/x=1:100:1/unit=cm xfine
-define axis/x=5.5:95.5:10/unit=cm xcoarse
-define axis/y=1:100:1/unit=cm yfine
-define axis/y=5.5:95.5:10/unit=cm ycoarse
-define grid/x=xfine/y=yfine gfine
-define grid/x=xcoarse/y=ycoarse gcoarse
-
-set grid gfine
-set reg/x=20.5:80.5/y=20.5:80.5
-list vcoarse
- VARIABLE : VFINE[G=GCOARSE]
- SUBSET : 6 by 6 points (X (CM)-Y (CM))
- 25.5 35.5 45.5 55.5 65.5 75.5
- 3 4 5 6 7 8
- 25.5 / 3: 51.000 61.000 71.000 81.000 91.000 101.000
- 35.5 / 4: 61.000 71.000 81.000 91.000 101.000 111.000
- 45.5 / 5: 71.000 81.000 91.000 101.000 111.000 121.000
- 55.5 / 6: 81.000 91.000 101.000 111.000 121.000 131.000
- 65.5 / 7: 91.000 101.000 111.000 121.000 131.000 141.000
- 75.5 / 8: 101.000 111.000 121.000 131.000 141.000 151.000
-stat vcoarse,vfine
-
- VFINE[G=GCOARSE]
- X (CM): 20.5 to 80.5
- Y (CM): 20.5 to 80.5
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 36 (6*6*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 51
- Maximum value: 151
- Mean value: 101 (unweighted average)
- Standard deviation: 24.495
-
- X+Y
- X (CM): 20.5 to 80.5
- Y (CM): 20.5 to 80.5
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 3600 (60*60*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 42
- Maximum value: 160
- Mean value: 101 (unweighted average)
- Standard deviation: 24.495
-list vcoarse[x=@ave,y=@ave],vfine[x=@ave,y=@ave]
- X (CM): 20.5 to 80.5 (XY ave)
- Y (CM): 20.5 to 80.5 (XY ave)
- Column 1: VCOARSE is VFINE[G=GCOARSE]
- Column 2: VFINE is X+Y
- VCOARSE VFINE
-I / *: 101.000 101.000
-
-! then test with COS(latitude) corrections
-define axis/x=1:100:1/unit=degrees xfine
-define axis/x=5.5:95.5:10/unit=degrees xcoarse
-define axis/y=1:100:1/unit=degrees yfine
-define axis/y=5.5:95.5:10/unit=degrees ycoarse
-define grid/x=xfine/y=yfine gfine
-define grid/x=xcoarse/y=ycoarse gcoarse
-
-set grid gfine
-set reg/x=20.5:80.5/y=20.5:80.5
-list vcoarse
- VARIABLE : VFINE[G=GCOARSE]
- SUBSET : 6 by 6 points (LONGITUDE-LATITUDE)
- 25.5E 35.5E 45.5E 55.5E 65.5E 75.5E
- 3 4 5 6 7 8
- 75.5N / 8: 101.000 111.000 121.000 131.000 141.000 151.000
- 65.5N / 7: 91.000 101.000 111.000 121.000 131.000 141.000
- 55.5N / 6: 81.000 91.000 101.000 111.000 121.000 131.000
- 45.5N / 5: 71.000 81.000 91.000 101.000 111.000 121.000
- 35.5N / 4: 61.000 71.000 81.000 91.000 101.000 111.000
- 25.5N / 3: 51.000 61.000 71.000 81.000 91.000 101.000
-stat vcoarse,vfine
-
- VFINE[G=GCOARSE]
- LONGITUDE: 20.5E to 80.5E
- LATITUDE: 20.5N to 80.5N
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 36 (6*6*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 51
- Maximum value: 151
- Mean value: 101 (unweighted average)
- Standard deviation: 24.495
-
- X+Y
- LONGITUDE: 20.5E to 80.5E
- LATITUDE: 20.5N to 80.5N
- Z: N/A
- T: N/A
- E: N/A
- F: N/A
- DATA SET: N/A
-
- Total # of data points: 3600 (60*60*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 42
- Maximum value: 160
- Mean value: 101 (unweighted average)
- Standard deviation: 24.495
-list vcoarse[x=@ave,y=@ave],vfine[x=@ave,y=@ave]
- LONGITUDE: 20.5E to 80.5E (XY ave)
- LATITUDE: 20.5N to 80.5N (XY ave)
- Column 1: VCOARSE is VFINE[G=GCOARSE]
- Column 2: VFINE is X+Y
- VCOARSE VFINE
-I / *: 94.7056 94.5308
-
-!****************** F axis regridding *******************
-define axis/f="1-jan-1980":"1-jan-1982":24/t0="1-jan-1970" fax24
-define axis/f="1-jan-1980":"1-jan-1982":48/t0="1-jan-1920" fax48
-define grid/f=fax24 g24
-define grid/f=fax48 g48
-show grid/N=1:4 g24 g48
- GRID G24
- name axis # pts start end
- normal X
- normal Y
- normal Z
- normal T
- normal E
- FAX24 FORECAST 732 r 01-JAN-1980 00:00 01-JAN-1982 00:00
-
- N F FBOX FBOXLO TSTEP (HOURS)
- 1> 01-JAN-1980 00:00:00 24 31-DEC-1979 12:00:00 87648
- 2> 02-JAN-1980 00:00:00 24 01-JAN-1980 12:00:00 87672
- 3> 03-JAN-1980 00:00:00 24 02-JAN-1980 12:00:00 87696
- 4> 04-JAN-1980 00:00:00 24 03-JAN-1980 12:00:00 87720
- GRID G48
- name axis # pts start end
- normal X
- normal Y
- normal Z
- normal T
- normal E
- FAX48 FORECAST 367 r 01-JAN-1980 00:00 02-JAN-1982 00:00
-
- N F FBOX FBOXLO TSTEP (HOURS)
- 1> 01-JAN-1980 00:00:00 48 31-DEC-1979 00:00:00 525960
- 2> 03-JAN-1980 00:00:00 48 02-JAN-1980 00:00:00 526008
- 3> 05-JAN-1980 00:00:00 48 04-JAN-1980 00:00:00 526056
- 4> 07-JAN-1980 00:00:00 48 06-JAN-1980 00:00:00 526104
-set region/F="1-jan-1980":"8-jan-1980"
-let a24 = _F[g=g24]
-let a48 = _F[g=g48]
-list a24
- VARIABLE : _F[G=G24]
- SUBSET : 8 points (FORECAST)
- 01-JAN-1980 00 / 1: 87648.0
- 02-JAN-1980 00 / 2: 87672.0
- 03-JAN-1980 00 / 3: 87696.0
- 04-JAN-1980 00 / 4: 87720.0
- 05-JAN-1980 00 / 5: 87744.0
- 06-JAN-1980 00 / 6: 87768.0
- 07-JAN-1980 00 / 7: 87792.0
- 08-JAN-1980 00 / 8: 87816.0
-list a48
- VARIABLE : _F[G=G48]
- SUBSET : 4 points (FORECAST)
- 01-JAN-1980 00 / 1: 525960.
- 03-JAN-1980 00 / 2: 526008.
- 05-JAN-1980 00 / 3: 526056.
- 07-JAN-1980 00 / 4: 526104.
-
-list a24[g=g48]
- VARIABLE : _F[G=G24]
- regrid: G48
- SUBSET : 4 points (FORECAST)
- 01-JAN-1980 00 / 1: 87648.0
- 03-JAN-1980 00 / 2: 87696.0
- 05-JAN-1980 00 / 3: 87744.0
- 07-JAN-1980 00 / 4: 87792.0
-list a24[g=g48]-a48
- VARIABLE : A24[G=G48]-A48
- SUBSET : 4 points (FORECAST)
- 01-JAN-1980 00 / 1: -438312.
- 03-JAN-1980 00 / 2: -438312.
- 05-JAN-1980 00 / 3: -438312.
- 07-JAN-1980 00 / 4: -438312.
-
-
-GO bn_reset
-cancel mode verify
-GO bn_syntax_6d
-! bn_syntax_6d.JNL
-! - test syntax interpretation of Program FERRET 6D
-
-! SET - SHOW - CANCEL DATA
-
-! 6D file based on gtbc011
-USE 6dfile
-
-SHOW GRID
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid G48
- GRID G48
- name axis # pts start end
- normal X
- normal Y
- normal Z
- normal T
- normal E
- FAX48 FORECAST 367 r 01-JAN-1980 00:00 02-JAN-1982 00:00
-LIST/I=1:2/J=50/K=1/L=2/M=3/N=4 SALT
- VARIABLE : (SALINITY(ppt) - 35) /1000 (frac. by wt. less .035)
- FILENAME : 6dfile.nc
- SUBSET : 2 points (LONGITUDE)
- LATITUDE : 6.167N
- DEPTH (m): 5
- TIME : 15-MAR-1983 11:00
- E : 3
- F : 7
- 6.17N
- 50
- 160.5W / 1: 3.70015
- 159.5W / 2: 3.70015
-SHOW GRID
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid GNJ2
- GRID GNJ2
- name axis # pts start end
- PSXT70_71 LONGITUDE 2mr 160.5W 159.5W
- PSYT15_75 LATITUDE 61 i 10.169S 9.833N
- PSZT1 DEPTH (m) 27 i- 5 3824
- TIME12 TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00
- EAXIS E 5 r 1 5
- FAXIS F 4 r 1 7
-SET GRID/SAVE
-SET GRID ABSTRACT
-SHOW GRID
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid GNJ2
- GRID GNJ2
- name axis # pts start end
- PSXT70_71 LONGITUDE 2mr 160.5W 159.5W
- PSYT15_75 LATITUDE 61 i 10.169S 9.833N
- PSZT1 DEPTH (m) 27 i- 5 3824
- TIME12 TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00
- EAXIS E 5 r 1 5
- FAXIS F 4 r 1 7
-SHOW GRID/X=180:165W SALT
- GRID GNJ2
- name axis # pts start end
- PSXT70_71 LONGITUDE 2mr 160.5W 159.5W
- PSYT15_75 LATITUDE 61 i 10.169S 9.833N
- PSZT1 DEPTH (m) 27 i- 5 3824
- TIME12 TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00
- EAXIS E 5 r 1 5
- FAXIS F 4 r 1 7
-
- I X XBOX XBOXLO
- 0> 20E 358 159W(-159)
-SET GRID/RESTORE
-SHOW GRID
- Default grid for DEFINE VARIABLE is ABSTRACT
-
-can dat/all
-
-! nested brackets (7/95 - version 4.01)
-use 6dfile,gt4d011
-stat/k=1/l=1/j=40/i=3/M=3/N=4/d=2 temp[d=1]
-
- TEMPERATURE
- LONGITUDE: 158.5W
- LATITUDE: 2.833N
- DEPTH (m): 5
- TIME: 15-MAR-1983 10:00
- E: 3
- F: 7
- DATA SET: ./6dfile.nc
-
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 34.97
- Maximum value: 34.97
- Mean value: 34.97 (unweighted average)
-stat/k=1/l=1/j=40/i=3/M=3/N=4/d=2 temp[d=1,g=u]
-
- TEMPERATURE
- regrid: U
- LONGITUDE: 159W
- LATITUDE: 3N
- DEPTH (m): 5
- TIME: 15-MAR-1983 10:00
- E: 3
- F: 7
- DATA SET: ./6dfile.nc
-
- Total # of data points: 1 (1*1*1*1*1*1)
- # flagged as bad data: 0
- Minimum value: 34.962
- Maximum value: 34.962
- Mean value: 34.962 (unweighted average)
-
-! a common example: continuation for REPEAT loops
-repeat/M=1:3 (cancel data/all;\
-show data;\
-let a = _m;\
-list/nohead a;\
-cancel variables/all;\
-)
-!-> REPEAT: M=1
- currently SET data sets:
- 1.00000
-!-> REPEAT: M=2
- currently SET data sets:
- 2.00000
-!-> REPEAT: M=3
- currently SET data sets:
- 3.00000
-
-GO bn_reset
-cancel mode verify
-GO bn_expressions_6d
-! bn_expressions_6d.jnl
-! testing expressions syntax in E and F directions.
-! Note pseudo-variables are _E,
-
-! test grid creation for a variety of combos
-let c1 = 2
-let m1 = _m
-let n1 = _n
-
-! ... constant plus variable or pseudovariable
-set reg/m=1:3
-list/order=e _m + 2
- VARIABLE : _M + 2
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e 2 + _m
- VARIABLE : 2 + _M
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e m1 + 2
- VARIABLE : M1 + 2
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e 2 + m1
- VARIABLE : 2 + M1
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e _m + c1
- VARIABLE : _M + C1
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e c1 + _m
- VARIABLE : C1 + _M
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e m1 + c1
- VARIABLE : M1 + C1
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e c1 + m1
- VARIABLE : C1 + M1
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-
-! ... constant plus variable or pseudovariable with modified region
-set reg/m=11:13
-list/order=e _m[m=1:3] + 2
- VARIABLE : _M[M=1:3] + 2
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e 2 + _m[m=1:3]
- VARIABLE : 2 + _M[M=1:3]
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e m1[m=1:3] + 2
- VARIABLE : M1[M=1:3] + 2
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e 2 + m1[m=1:3]
- VARIABLE : 2 + M1[M=1:3]
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e _m[m=1:3] + c1
- VARIABLE : _M[M=1:3] + C1
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e c1 + _m[m=1:3]
- VARIABLE : C1 + _M[M=1:3]
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e m1[m=1:3] + c1
- VARIABLE : M1[M=1:3] + C1
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e c1 + m1[m=1:3]
- VARIABLE : C1 + M1[M=1:3]
- SUBSET : 3 points (E)
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-
-! ... two variables or pseudovariables
-set reg/m=1:3/n=2
-list/order=e _m + _n
- VARIABLE : _M + _N
- SUBSET : 3 points (E)
- F : 2
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e _m + n1
- VARIABLE : _M + N1
- SUBSET : 3 points (E)
- F : 2
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e n1 + _m
- VARIABLE : N1 + _M
- SUBSET : 3 points (E)
- F : 2
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-
-! ... two variables or pseudovariables with modified region
-set reg/m=1:3/n=1
-list/order=e _m + _n[n=2]
- VARIABLE : _M + _N[N=2]
- SUBSET : 3 points (E)
- F : 2
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e _m + n1[n=2]
- VARIABLE : _M + N1[N=2]
- SUBSET : 3 points (E)
- F : 2
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-list/order=e n1[n=2] + _m
- VARIABLE : N1[N=2] + _M
- SUBSET : 3 points (E)
- F : 2
- 1 2 3
- 1 2 3
- 3.00000 4.00000 5.00000
-
-! operators
-CANCEL REGION
-SET REGION/m=1:5/n=1:5
-LIST 10+2
- VARIABLE : 10+2
- 12.0000
-LIST/order=e _m
- VARIABLE : _M
- axis ABSTRACT
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.00000 2.00000 3.00000 4.00000 5.00000
-LIST/order=e _m*3
- VARIABLE : _M*3
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 3.0000 6.0000 9.0000 12.0000 15.0000
-LIST/order=e _m/3
- VARIABLE : _M/3
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.33333 0.66667 1.00000 1.33333 1.66667
-LIST/order=e _m+3
- VARIABLE : _M+3
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 4.00000 5.00000 6.00000 7.00000 8.00000
-LIST/order=e _m-3
- VARIABLE : _M-3
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- -2.00000 -1.00000 0.00000 1.00000 2.00000
-LIST/order=e _m^3
- VARIABLE : _M^3
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.000 8.000 27.000 64.000 125.000
-LIST/order=e _m EQ 3
- VARIABLE : _M EQ 3
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.00000 0.00000 1.00000 0.00000 0.00000
-LIST/order=e _m NE 3
- VARIABLE : _M NE 3
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.00000 1.00000 0.00000 1.00000 1.00000
-LIST/order=e _m GT 3
- VARIABLE : _M GT 3
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.00000 0.00000 0.00000 1.00000 1.00000
-LIST/order=e _m GE 3
- VARIABLE : _M GE 3
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.00000 0.00000 1.00000 1.00000 1.00000
-LIST/order=e _m LT 3
- VARIABLE : _M LT 3
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.00000 1.00000 0.00000 0.00000 0.00000
-LIST/order=e _m LE 3
- VARIABLE : _M LE 3
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.00000 1.00000 1.00000 0.00000 0.00000
-LIST/order=e (_m LT 3) OR (_m GT 3)
- VARIABLE : (_M LT 3) OR (_M GT 3)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.00000 1.00000 0.00000 1.00000 1.00000
-LIST/order=e (_m LE 3) AND (_m GE 3)
- VARIABLE : (_M LE 3) AND (_M GE 3)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.00000 0.00000 1.00000 0.00000 0.00000
-LIST/order=e (_m+3)*3 - 9 - (_m+_m+_m)
- VARIABLE : (_M+3)*3 - 9 - (_M+_M+_M)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.000000 0.000000 0.000000 0.000000 0.000000
-LIST/order=e _n * ( (_m+3)*3 - 9 - (_m+_m+_m) )
- VARIABLE : _N * ( (_M+3)*3 - 9 - (_M+_M+_M) )
- SUBSET : 5 by 5 points (E-F)
- 1 2 3 4 5
- 1 2 3 4 5
- ---- N:1 F: 1
- N:1 F: 0.000000 0.000000 0.000000 0.000000 0.000000
- ---- N:2 F: 2
- N:2 F: 0.000000 0.000000 0.000000 0.000000 0.000000
- ---- N:3 F: 3
- N:3 F: 0.000000 0.000000 0.000000 0.000000 0.000000
- ---- N:4 F: 4
- N:4 F: 0.000000 0.000000 0.000000 0.000000 0.000000
- ---- N:5 F: 5
- N:5 F: 0.000000 0.000000 0.000000 0.000000 0.000000
-
-! IF, THEN, ELSE
-LIST/order=e IF _m GT 3 THEN _m
- VARIABLE : IF _M GT 3 THEN _M
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- .... .... .... 4.00000 5.00000
-LIST/order=e IF _m GT 3 THEN _m ELSE 0
- VARIABLE : IF _M GT 3 THEN _M ELSE 0
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.00000 0.00000 0.00000 4.00000 5.00000
-! error: nested IF tests
-SET MODE IGNORE_ERRORS
-LIST/order=e IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333 ! err
-LET A = IF _m LT 5 THEN _m ELSE -9 ! err
-SET MODE/LAST IGNORE_ERRORS
-LET A = IF _m LT 5 THEN _m ELSE (-9)
-LIST/order=e IF _m GT 3 THEN ( A ) ELSE .333
- VARIABLE : IF _M GT 3 THEN ( A ) ELSE .333
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.33300 0.33300 0.33300 4.00000 -9.00000
-
-! functions
-LIST/order=e MAX(_m,3)
- VARIABLE : MAX(_M,3)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 3.00000 3.00000 3.00000 4.00000 5.00000
-LIST/order=e MIN(_m,3)
- VARIABLE : MIN(_M,3)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.00000 2.00000 3.00000 3.00000 3.00000
-LIST/order=e INT(_m/3)
- VARIABLE : INT(_M/3)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.00000 0.00000 1.00000 1.00000 1.00000
-LIST/order=e ABS(_m-3)
- VARIABLE : ABS(_M-3)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 2.00000 1.00000 0.00000 1.00000 2.00000
-LIST/order=e EXP(_m)
- VARIABLE : EXP(_M)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 2.718 7.389 20.086 54.598 148.413
-LIST/order=e LN(_m)
- VARIABLE : LN(_M)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.00000 0.69315 1.09861 1.38629 1.60944
-LIST/order=e LN(EXP(_m))
- VARIABLE : LN(EXP(_M))
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.00000 2.00000 3.00000 4.00000 5.00000
-LIST/order=e EXP(LN(_m))
- VARIABLE : EXP(LN(_M))
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.00000 2.00000 3.00000 4.00000 5.00000
-LIST/order=e LOG(_m)
- VARIABLE : LOG(_M)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.000000 0.301030 0.477121 0.602060 0.698970
-LIST/order=e LOG(10^_m)
- VARIABLE : LOG(10^_M)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.00000 2.00000 3.00000 4.00000 5.00000
-LIST/order=e 10^LOG(_m)
- VARIABLE : 10^LOG(_M)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.00000 2.00000 3.00000 4.00000 5.00000
-LIST/order=e SIN(_m)
- VARIABLE : SIN(_M)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.841471 0.909297 0.141120 -0.756802 -0.958924
-LIST/order=e ASIN(SIN(_m/3))
- VARIABLE : ASIN(SIN(_M/3))
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.33333 0.66667 1.00000 1.33333 1.47493
-LIST/order=e COS(_m)
- VARIABLE : COS(_M)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.540302 -0.416147 -0.989992 -0.653644 0.283662
-LIST/order=e ACOS(COS(_m/3))
- VARIABLE : ACOS(COS(_M/3))
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.33333 0.66667 1.00000 1.33333 1.66667
-LIST/order=e TAN(_m)
- VARIABLE : TAN(_M)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.55741 -2.18504 -0.14255 1.15782 -3.38052
-LIST/order=e ATAN(TAN(_m/3))
- VARIABLE : ATAN(TAN(_M/3))
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.33333 0.66667 1.00000 1.33333 -1.47493
-LIST/n=1:3 ATAN2(_n-1,_m-1)
- VARIABLE : ATAN2(_N-1,_M-1)
- SUBSET : 5 by 3 points (E-F)
- 1 2 3 4 5
- 1 2 3 4 5
- 1 / 1: .... 0.00000 0.00000 0.00000 0.00000
- 2 / 2: 1.57080 0.78540 0.46365 0.32175 0.24498
- 3 / 3: 1.57080 1.10715 0.78540 0.58800 0.46365
-LIST/order=e MOD(_m,3)
- VARIABLE : MOD(_M,3)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 1.00000 2.00000 0.00000 1.00000 2.00000
-LIST/order=e IGNORE0(_m-3)
- VARIABLE : IGNORE0(_M-3)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- -2.00000 -1.00000 .... 1.00000 2.00000
-LIST/order=e MISSING( IGNORE0(_m-3),-9 )
- VARIABLE : MISSING( IGNORE0(_M-3),-9 )
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- -2.00000 -1.00000 -9.00000 1.00000 2.00000
-LIST/order=e RANDU(_m)
- VARIABLE : RANDU(_M)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- 0.337575 0.723822 0.030403 0.849932 0.169352
-LIST/order=e RANDN(_m)
- VARIABLE : RANDN(_M)
- SUBSET : 5 points (E)
- 1 2 3 4 5
- 1 2 3 4 5
- -0.26718 0.28276 -0.32292 1.21676 -0.30437
-
-! syntax errors
-SET MODE IGNORE_ERRORS
-load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
-SET MODE/LAST IGNORE_ERRORS
-
-! test formatted output where the output field is too small
-LIST/m=1:3/FORMAT=(F6.2) 1/(_m-2) ! single column test
- VARIABLE : 1/(_M-2)
- BAD FLAG : -1.E+34
- SUBSET : 3 points (E)
- E : 0.5 to 3.5
- -1.00
-******
- 1.00
-LIST/m=1:3/FORMAT=(2F6.2) 1/(_m-2),2/(_m-2) ! multi-column test
- E: 0.5 to 3.5
- Column 1: EX#1 is 1/(_M-2)
- Column 2: EX#2 is 2/(_M-2)
- -1.00 -2.00
-************
- 1.00 2.00
-
-! test grid box limit pseudo-variables
-LIST/m=5:7 EBOXLO, EBOXHI
- E: 4.5 to 7.5
- Column 1: EBOXLO is EBOXLO (axis ABSTRACT)
- Column 2: EBOXHI is EBOXHI (axis ABSTRACT)
- EBOXLO EBOXHI
-5 / 5: 4.50000 5.50000
-6 / 6: 5.50000 6.50000
-7 / 7: 6.50000 7.50000
-LIST/n=5:7 FBOXLO, FBOXHI
- F: 4.5 to 7.5
- Column 1: FBOXLO is FBOXLO (axis ABSTRACT)
- Column 2: FBOXHI is FBOXHI (axis ABSTRACT)
- FBOXLO FBOXHI
-5 / 5: 4.50000 5.50000
-6 / 6: 5.50000 6.50000
-7 / 7: 6.50000 7.50000
-
-GO bn_reset
-cancel mode verify
-GO bn_direction_fcns_6d
-! bn_direction_functions_6d
-! Tests of sort, sample, reverse, convolve, compress, and compess_by
-! functions in the E and F directions.
-
-! Sort and sort-string in E direction
-
-let b = {5,4,3}
-let c = esequence(b)
-let m_index = sortm(c)
-list c, m_index, samplem(c, m_index)
- E: 0.5 to 3.5
- Column 1: C is ESEQUENCE(B)
- Column 2: M_INDEX is SORTM(C)
- Column 3: EX#3 is SAMPLEM(C, M_INDEX)
- C M_INDEX EX#3
-1 / 1: 5.00000 3.00000 3.00000
-2 / 2: 4.00000 2.00000 4.00000
-3 / 3: 3.00000 1.00000 5.00000
-
-let e1 = esequence({"q", "0", "c"})
-let m_index = sortm(e1) ! or sortm_str
-list e1, m_index, samplem(e1, m_index)
- E: 0.5 to 3.5
- Column 1: E1 is ESEQUENCE({"q", "0", "c"})
- Column 2: M_INDEX is SORTM(E1)
- Column 3: EX#3 is SAMPLEM(E1, M_INDEX)
- E1 M_INDEX EX#3
-1 / 1: "q" 2.00000 "0"
-2 / 2: "0" 3.00000 "c"
-3 / 3: "c" 1.00000 "q"
-
-
-! Sort and sort-string in F direction
-
-let b = {5,4,3}
-let c = fsequence(b)
-let n_index = sortn(c)
-list c, n_index, samplen(c, n_index)
- F: 0.5 to 3.5
- Column 1: C is FSEQUENCE(B)
- Column 2: N_INDEX is SORTN(C)
- Column 3: EX#3 is SAMPLEN(C, N_INDEX)
- C N_INDEX EX#3
-1 / 1: 5.00000 3.00000 3.00000
-2 / 2: 4.00000 2.00000 4.00000
-3 / 3: 3.00000 1.00000 5.00000
-
-let f1 = fsequence({"q", "0", "c"})
-let n_index = sortn(f1) ! or sortn_str
-list f1, n_index, samplen(f1, n_index)
- F: 0.5 to 3.5
- Column 1: F1 is FSEQUENCE({"q", "0", "c"})
- Column 2: N_INDEX is SORTN(F1)
- Column 3: EX#3 is SAMPLEN(F1, N_INDEX)
- F1 N_INDEX EX#3
-1 / 1: "q" 2.00000 "0"
-2 / 2: "0" 3.00000 "c"
-3 / 3: "c" 1.00000 "q"
-
-! Ereverse and Freverse
-use 6dfile
-
-list/i=1/j=15/k=1/l=1/n=1 temp, ereverse(temp)
- WARNING: Listed variables have ambiguous coordinates on axes: E
- DATA SET: ./6dfile.nc
- LONGITUDE: 160.5W
- LATITUDE: 5.5S
- DEPTH (m): 5
- TIME: 15-MAR-1983 10:00
- F: 1
- Column 1: TEMP is TEMPERATURE (deg. C)
- Column 2: EX#2 is EREVERSE(TEMP)
- TEMP EX#2
-M / 1: 30.7500 34.7500
-M / 2: 31.7500 33.7500
-M / 3: 32.7500 32.7500
-M / 4: 33.7500 31.7500
-M / 5: 34.7500 30.7500
-list/i=1/j=15/k=1/l=1/m=1 temp, freverse(temp)
- WARNING: Listed variables have ambiguous coordinates on axes: F
- DATA SET: ./6dfile.nc
- LONGITUDE: 160.5W
- LATITUDE: 5.5S
- DEPTH (m): 5
- TIME: 15-MAR-1983 10:00
- E: 1
- Column 1: TEMP[D=6dfile,F=0:8] is TEMPERATURE (deg. C)
- Column 2: EX#2 is FREVERSE(TEMP)
- TEMP EX#2
-N / 1: 30.7500 31.3500
-N / 2: 30.9500 31.1500
-N / 3: 31.1500 30.9500
-N / 4: 31.3500 30.7500
-can dat/all
-
-! ConvolveM, ConvolveN
-let a = esequence({0,1,1,0,1,0,0,0,,0,0,0})
-let apat = esequence({.25,.5,.25})
-list a, a[m=@spz], convolvem(a,apat), convolvem(a,{.1,.4,.4,.1})
- E: 0.5 to 12.5
- Column 1: A is ESEQUENCE({0,1,1,0,1,0,0,0,,0,0,0})
- Column 2: A[E=@SPZ:3] is ESEQUENCE({0,1,1,0,1,0,0,0,,0,0,0}) (Parzen smoothed by 3 pts on E)
- Column 3: EX#3 is CONVOLVEM(A,APAT)
- Column 4: EX#4 is CONVOLVEM(A,{.1,.4,.4,.1})
- A A EX#3 EX#4
-1 / 1: 0.00000 .... .... ....
-2 / 2: 1.00000 0.750000 0.750000 0.800000
-3 / 3: 1.00000 0.750000 0.750000 0.600000
-4 / 4: 0.00000 0.500000 0.500000 0.500000
-5 / 5: 1.00000 0.500000 0.500000 0.400000
-6 / 6: 0.00000 0.250000 0.250000 0.100000
-7 / 7: 0.00000 0.000000 0.000000 ....
-8 / 8: 0.00000 .... .... ....
-9 / 9: .... .... .... ....
-10 / 10: 0.00000 .... .... ....
-11 / 11: 0.00000 0.000000 0.000000 ....
-12 / 12: 0.00000 .... .... ....
-
-let b = fsequence({0,1,1,0,1,0,0,0,,0,0,0})
-let bpat = fsequence({.25,.5,.25})
-list b, b[n=@spz], convolven(b,bpat), convolven(b,{.1,.4,.4,.1})
- F: 0.5 to 12.5
- Column 1: B is FSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0})
- Column 2: B[F=@SPZ:3] is FSEQUENCE({0,1,1,0,1,0,0,0,,0,0,0}) (Parzen smoothed by 3 pts on F)
- Column 3: EX#3 is CONVOLVEN(B,BPAT)
- Column 4: EX#4 is CONVOLVEN(B,{.1,.4,.4,.1})
- B B EX#3 EX#4
-1 / 1: 0.00000 .... .... ....
-2 / 2: 1.00000 0.750000 0.750000 0.800000
-3 / 3: 1.00000 0.750000 0.750000 0.600000
-4 / 4: 0.00000 0.500000 0.500000 0.500000
-5 / 5: 1.00000 0.500000 0.500000 0.400000
-6 / 6: 0.00000 0.250000 0.250000 0.100000
-7 / 7: 0.00000 0.000000 0.000000 ....
-8 / 8: 0.00000 .... .... ....
-9 / 9: .... .... .... ....
-10 / 10: 0.00000 .... .... ....
-11 / 11: 0.00000 0.000000 0.000000 ....
-12 / 12: 0.00000 .... .... ....
-
-! CompressM, CompressN
-let a = esequence({0,1,1,,1,0,,0}) + fsequence({0,,1,,1})
-list a
- VARIABLE : ESEQUENCE({0,1,1,,1,0,,0}) + FSEQUENCE({0,,1,,1})
- SUBSET : 8 by 5 points (E-F)
- 1 2 3 4 5 6 7 8
- 1 2 3 4 5 6 7 8
- 1 / 1: 0.00000 1.00000 1.00000 .... 1.00000 0.00000 .... 0.00000
- 2 / 2: .... .... .... .... .... .... .... ....
- 3 / 3: 1.00000 2.00000 2.00000 .... 2.00000 1.00000 .... 1.00000
- 4 / 4: .... .... .... .... .... .... .... ....
- 5 / 5: 1.00000 2.00000 2.00000 .... 2.00000 1.00000 .... 1.00000
-list compressm(a)
- VARIABLE : COMPRESSM(A)
- SUBSET : 8 by 5 points (E-F)
- 1 2 3 4 5 6 7 8
- 1 2 3 4 5 6 7 8
- 1 / 1: 0.00000 1.00000 1.00000 1.00000 0.00000 0.00000 .... ....
- 2 / 2: .... .... .... .... .... .... .... ....
- 3 / 3: 1.00000 2.00000 2.00000 2.00000 1.00000 1.00000 .... ....
- 4 / 4: .... .... .... .... .... .... .... ....
- 5 / 5: 1.00000 2.00000 2.00000 2.00000 1.00000 1.00000 .... ....
-list compressn(a)
- VARIABLE : COMPRESSN(A)
- SUBSET : 8 by 5 points (E-F)
- 1 2 3 4 5 6 7 8
- 1 2 3 4 5 6 7 8
- 1 / 1: 0.00000 1.00000 1.00000 .... 1.00000 0.00000 .... 0.00000
- 2 / 2: 1.00000 2.00000 2.00000 .... 2.00000 1.00000 .... 1.00000
- 3 / 3: 1.00000 2.00000 2.00000 .... 2.00000 1.00000 .... 1.00000
- 4 / 4: .... .... .... .... .... .... .... ....
- 5 / 5: .... .... .... .... .... .... .... ....
-
-let mask = esequence({1,,1,,1}) + 0*L[l=101:102]
-list mask
- VARIABLE : ESEQUENCE({1,,1,,1}) + 0*L[L=101:102]
- SUBSET : 2 by 5 points (T-E)
- 101 102
- 101 102
- 1 / 1: 1.00000 1.00000
- 2 / 2: .... ....
- 3 / 3: 1.00000 1.00000
- 4 / 4: .... ....
- 5 / 5: 1.00000 1.00000
-list compressm_by(esequence({10,20,30,40,50}),mask)
- VARIABLE : COMPRESSM_BY(ESEQUENCE({10,20,30,40,50}),MASK)
- SUBSET : 2 by 5 points (T-E)
- 101 102
- 101 102
- 1 / 1: 10.0000 10.0000
- 2 / 2: 30.0000 30.0000
- 3 / 3: 50.0000 50.0000
- 4 / 4: .... ....
- 5 / 5: .... ....
-
-let mask = fsequence({1,,1,,1}) + 0*L[l=101:102]
-list mask
- VARIABLE : FSEQUENCE({1,,1,,1}) + 0*L[L=101:102]
- SUBSET : 2 by 5 points (T-F)
- 101 102
- 101 102
- 1 / 1: 1.00000 1.00000
- 2 / 2: .... ....
- 3 / 3: 1.00000 1.00000
- 4 / 4: .... ....
- 5 / 5: 1.00000 1.00000
-list compressn_by(fsequence({10,20,30,40,50}),mask)
- VARIABLE : COMPRESSN_BY(FSEQUENCE({10,20,30,40,50}),MASK)
- SUBSET : 2 by 5 points (T-F)
- 101 102
- 101 102
- 1 / 1: 10.0000 10.0000
- 2 / 2: 30.0000 30.0000
- 3 / 3: 50.0000 50.0000
- 4 / 4: .... ....
- 5 / 5: .... ....
-
-GO bn_reset
-cancel mode verify
-GO bn_regrid_transforms_6d
-! bn_regrid_transforms_6d.jnl
-! benchmark to test regridding transformations and syntax
-! version of bn_regrid_transforms, using E and F directions.
-
-use gtsa056_1_ef
-set mode diag
-
-define axis/f=23-jan-1982:30-jan-1982:20/unit=hour fax20
-define axis/x=120e:60w:10/unit=degrees xax10
-define grid/like=temp/f=fax20 g5day
- getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
- dealloc dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
-
-set reg/x=130w:125w/y=0:1.5/e=1:2/f=23-JAN-1982:24-jan-1982/t=21-JAN-1982/z=5
-
-use gtsa056_1_ef !kob 4/99
-
-stat temp[g=g5day] - temp[g=g5day at ave]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- strip regrid on F: TEMP --> G5DAY @LIN
- reading TEMP M:120 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- regrid TEMP M:118 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- strip regrid on F: TEMP --> G5DAY @AVE
- reading TEMP M:114 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- regrid TEMP M:104 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- doing --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
-
- TEMP[G=G5DAY] - TEMP[G=G5DAY at AVE]
- LONGITUDE: 130W to 125W
- LATITUDE: 0 to 1.5N
- DEPTH (m): 5
- TIME: 21-JAN-1982 00:00 (interpolated)
- E: 1 to 2
- FORECAST: 23-JAN-1982 00:00:00 to 24-JAN-1982 00:0
- DATA SET: ./gtsa056_1_ef.nc
-
- Total # of data points: 120 (5*6*1*1*2*2)
- # flagged as bad data: 0
- Minimum value: -1.7333
- Maximum value: 2
- Mean value: 0.13333 (unweighted average)
- Standard deviation: 1.8745
-
-! basic regrid tests
-LIST temp[g=g5day at ave]
- -DELETE EX#1 M:102 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: -999 -999 M: 1 2 N: 1 2
- -DELETE EX#1 M:112 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M:104 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- -DELETE TEMP M:118 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- strip regrid on F: TEMP --> G5DAY @AVE
- reading TEMP M:118 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- regrid TEMP M:104 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5DAY on F at AVE
- FILENAME : gtsa056_1_ef.nc
- SUBSET : 5 by 6 by 2 by 2 points (LONGITUDE-LATITUDE-E-FORECAST)
- DEPTH (m): 5
- TIME : 21-JAN-1982 00:00 (interpolated)
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- ---- N:1 F: 23-JAN-1982 00:00:00
- ---- M:1 E: 1
- 1.5N / 46: 32.3553 32.3552 32.5032 32.8652 33.3285
- 1.17N / 45: 32.1766 32.1710 32.2834 32.5970 33.0244
- 0.83N / 44: 32.0256 32.0016 32.0631 32.3109 32.6873
- 0.5N / 43: 31.9306 31.8902 31.8887 32.0374 32.3408
- 0.17N / 42: 31.8944 31.8343 31.7825 31.8263 32.0336
- 0.17S / 41: 31.9538 31.8657 31.7716 31.7285 31.8282
- ---- M:2 E: 2
- 1.5N / 46: 38.3553 38.3552 38.5032 38.8652 39.3285
- 1.17N / 45: 38.1766 38.1710 38.2834 38.5970 39.0244
- 0.83N / 44: 38.0256 38.0016 38.0631 38.3109 38.6873
- 0.5N / 43: 37.9306 37.8902 37.8887 38.0374 38.3408
- 0.17N / 42: 37.8944 37.8343 37.7825 37.8263 38.0336
- 0.17S / 41: 37.9538 37.8657 37.7716 37.7285 37.8282
- ---- N:2 F: 23-JAN-1982 20:00:00
- ---- M:1 E: 1
- 1.5N / 46: 37.7553 37.7552 37.9032 38.2652 38.7285
- 1.17N / 45: 37.5766 37.5710 37.6834 37.9970 38.4244
- 0.83N / 44: 37.4256 37.4016 37.4631 37.7109 38.0873
- 0.5N / 43: 37.3306 37.2902 37.2887 37.4374 37.7408
- 0.17N / 42: 37.2944 37.2343 37.1825 37.2263 37.4336
- 0.17S / 41: 37.3538 37.2657 37.1716 37.1285 37.2282
- ---- M:2 E: 2
- 1.5N / 46: 43.7553 43.7552 43.9032 44.2652 44.7285
- 1.17N / 45: 43.5766 43.5710 43.6834 43.9970 44.4244
- 0.83N / 44: 43.4256 43.4016 43.4631 43.7109 44.0873
- 0.5N / 43: 43.3306 43.2902 43.2887 43.4374 43.7408
- 0.17N / 42: 43.2944 43.2343 43.1825 43.2263 43.4336
- 0.17S / 41: 43.3538 43.2657 43.1716 43.1285 43.2282
-LIST temp[g=g5day]
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M:104 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- -DELETE TEMP M:112 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: -999 -999 M: 1 2 N: 1 2
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval EX#1 C: 5 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- strip regrid on F: TEMP --> G5DAY @LIN
- reading TEMP M:112 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- regrid TEMP M:104 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- VARIABLE : TEMPERATURE (deg. C)
- regrid: G5DAY
- FILENAME : gtsa056_1_ef.nc
- SUBSET : 5 by 6 by 2 by 2 points (LONGITUDE-LATITUDE-E-FORECAST)
- DEPTH (m): 5
- TIME : 21-JAN-1982 00:00 (interpolated)
- 129.5W 128.5W 127.5W 126.5W 125.5W
- 101 102 103 104 105
- ---- N:1 F: 23-JAN-1982 00:00:00
- ---- M:1 E: 1
- 1.5N / 46: 34.3553 34.3552 34.5032 34.8652 35.3285
- 1.17N / 45: 34.1766 34.1710 34.2834 34.5970 35.0244
- 0.83N / 44: 34.0256 34.0016 34.0631 34.3109 34.6873
- 0.5N / 43: 33.9306 33.8902 33.8887 34.0374 34.3408
- 0.17N / 42: 33.8944 33.8343 33.7825 33.8263 34.0336
- 0.17S / 41: 33.9538 33.8657 33.7716 33.7285 33.8282
- ---- M:2 E: 2
- 1.5N / 46: 40.3553 40.3552 40.5032 40.8652 41.3285
- 1.17N / 45: 40.1766 40.1710 40.2834 40.5970 41.0244
- 0.83N / 44: 40.0256 40.0016 40.0631 40.3109 40.6873
- 0.5N / 43: 39.9306 39.8902 39.8887 40.0374 40.3408
- 0.17N / 42: 39.8944 39.8343 39.7825 39.8263 40.0336
- 0.17S / 41: 39.9538 39.8657 39.7716 39.7285 39.8282
- ---- N:2 F: 23-JAN-1982 20:00:00
- ---- M:1 E: 1
- 1.5N / 46: 36.0220 36.0219 36.1698 36.5318 36.9952
- 1.17N / 45: 35.8433 35.8377 35.9501 36.2637 36.6910
- 0.83N / 44: 35.6923 35.6682 35.7298 35.9776 36.3539
- 0.5N / 43: 35.5973 35.5568 35.5554 35.7040 36.0075
- 0.17N / 42: 35.5610 35.5010 35.4491 35.4929 35.7003
- 0.17S / 41: 35.6205 35.5323 35.4383 35.3952 35.4948
- ---- M:2 E: 2
- 1.5N / 46: 42.0220 42.0219 42.1698 42.5318 42.9952
- 1.17N / 45: 41.8433 41.8377 41.9501 42.2637 42.6910
- 0.83N / 44: 41.6923 41.6682 41.7298 41.9776 42.3539
- 0.5N / 43: 41.5973 41.5568 41.5554 41.7040 42.0075
- 0.17N / 42: 41.5610 41.5010 41.4491 41.4929 41.7003
- 0.17S / 41: 41.6205 41.5323 41.4383 41.3952 41.4948
-
-! unspecified regions
-SET MODE IGNORE ! V.5 change
-canc reg
-set reg/n=1:3/t=21-JAN-1982/z=5 ! x,y,e unspecified
-
-canc reg
-set reg/i=101:105/j=41:42/t=21-JAN-1982/z=5 ! e,f unspecified
-
-SET MODE/LAST IGNORE ! V.5 change
-
-! plot verifications
-set mode interp ! regridding is also an interpolation
-cancel viewports
-set window/size=.5/aspect=.4 1
-
-! E axis
-use gtsa056_1_ef !kob 4/99
-set region/x=180E/y=0/f=23-JAN-1982/t=21-JAN-1982/z=5
-plot temp
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M:102 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: -999 -999 M: 1 2 N: 1 2
- -DELETE TEMP M:104 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- strip --> EX#1[X=180E at ITP,D=1]
- eval EX#1 C: 8 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: -999 -999 N: 1 2
- reading TEMP M:104 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- doing --> TEMP[F=23-JAN-198200:00:00 at ITP,D=1]
-setting up plot
-PPL plot 865 complete
-plot/over temp[g=g5day]
- dealloc dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- strip --> EX#1[X=180E at ITP,D=1]
- eval EX#1 C: 7 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: -999 -999 N: 1 1
- strip regrid on F: TEMP --> G5DAY @LIN
- reading TEMP M: 90 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- regrid TEMP M: 58 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 866 complete
-plot/over temp[g=g5day at ave]
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M: 58 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M: 72 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
- -DELETE TEMP M: 80 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M: 88 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- strip --> EX#1[X=180E at ITP,D=1]
- eval EX#1 C: 7 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: -999 -999 N: 1 1
- strip regrid on F: TEMP --> G5DAY @AVE
- reading TEMP M: 88 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- regrid TEMP M: 80 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 867 complete
-plot/over temp[g=g5day at asn]
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M: 58 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M: 72 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M: 80 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M: 94 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[Y=0 at ITP,D=1]
- strip --> EX#1[X=180E at ITP,D=1]
- eval EX#1 C: 7 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: -999 -999 N: 1 1
- strip regrid on F: TEMP --> G5DAY @ASN
- reading TEMP M: 94 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- regrid TEMP M: 80 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 868 complete
-
-! F axis
-set region/x=180/y=20s:20n/e=2/t=21-JAN-1982/z=5
-plot temp
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M: 58 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M: 72 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M: 78 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
- -DELETE TEMP M: 80 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[X=180E at ITP,D=1]
- eval EX#1 C: 7 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
- reading TEMP M: 80 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
- doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- doing --> TEMP[F=23-JAN-198200:00:00 at ITP,D=1]
-setting up plot
-PPL plot 869 complete
-plot/over temp[g=g5day]
- dealloc dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[X=180E at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- strip regrid on F: TEMP --> G5DAY @LIN
- reading TEMP M:106 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
- regrid TEMP M: 98 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 870 complete
-plot/over temp[g=g5day at ave]
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M: 74 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
- -DELETE TEMP M: 82 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- -DELETE TEMP M: 98 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[X=180E at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- strip regrid on F: TEMP --> G5DAY @AVE
- reading TEMP M: 98 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- regrid TEMP M: 82 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 871 complete
-plot/over temp[g=g5day at asn]
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M: 70 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
- -DELETE TEMP M: 74 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- -DELETE TEMP M: 82 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- strip --> EX#1[X=180E at ITP,D=1]
- eval EX#1 C: 6 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- strip regrid on F: TEMP --> G5DAY @ASN
- reading TEMP M: 82 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- regrid TEMP M: 74 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
-setting up plot
-PPL plot 872 complete
-
-set mode/last interp
-cancel region
-
-! test 2D regrid
-define axis/e=1.1:2.1:1 eoffset
-define axis/e=2.5/npoints=1 e1pt
-define axis/e=1.5:2.5:1 e2pt
-define axis/e=1.5:2.5:.5 e4pt
-
-define axis/f=15-jan-1982:15-mar-1982:4/unit=day fax4day
-define axis/f=21-jan-1982/npoints=1/unit=day f1pt
-define axis/f=21-jan-1982:25-jan-1982/npoints=48/unit=hour f2pt
-define axis/f=15-jan-1982:15-mar-1982:96/unit=hour fax4day
-
-
-let a1 = _e[ge=e1pt]+_f[gf=f1pt]
-let a2 = _e[ge=e2pt]+_f[gf=f2pt]
-
-list a1[ge=eoffset at ave, gf=fax4day at ave]
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M: 66 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
- -DELETE TEMP M: 70 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- -DELETE TEMP M: 74 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G086) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- dealloc dynamic grid (G086) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- allocate dynamic grid (G086) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- dealloc dynamic grid (G086) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- allocate dynamic grid (G086) NORMAL NORMAL NORMAL NORMAL E1PT F1PT
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- strip regrid on E: A1 --> (G098) @AVE
- strip regrid on F: A1 --> ENTERMED @AVE
- eval A1 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- pseudo _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
- -DELETE _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- -DELETE _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- regrid A1 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
- regrid A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A1 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
- regrid: 1 delta on E at AVE, 96 hour on F at AVE
- SUBSET : 2 by 16 points (E-FORECAST)
- 1.1 2.1
- 1 2
- 15-JAN-1982 00 / 1: .... ....
- 19-JAN-1982 00 / 2: .... 29593.5
- 23-JAN-1982 00 / 3: .... 29593.5
- 27-JAN-1982 00 / 4: .... ....
- 31-JAN-1982 00 / 5: .... ....
- 04-FEB-1982 00 / 6: .... ....
- 08-FEB-1982 00 / 7: .... ....
- 12-FEB-1982 00 / 8: .... ....
- 16-FEB-1982 00 / 9: .... ....
- 20-FEB-1982 00 / 10: .... ....
- 24-FEB-1982 00 / 11: .... ....
- 28-FEB-1982 00 / 12: .... ....
- 04-MAR-1982 00 / 13: .... ....
- 08-MAR-1982 00 / 14: .... ....
- 12-MAR-1982 00 / 15: .... ....
- 16-MAR-1982 00 / 16: .... ....
-list a1[ge=eoffset at sum, gf=fax4day at sum]
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- strip regrid on E: A1 --> (G098) @SUM
- strip regrid on F: A1 --> ENTERMED @SUM
- eval A1 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
- -DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- -DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- regrid A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
- regrid A1 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
- regrid: 1 delta on E at SUM, 96 hour on F at SUM
- SUBSET : 2 by 16 points (E-FORECAST)
- 1.1 2.1
- 1 2
- 15-JAN-1982 00 / 1: .... ....
- 19-JAN-1982 00 / 2: .... 8878.05
- 23-JAN-1982 00 / 3: .... 8878.05
- 27-JAN-1982 00 / 4: .... ....
- 31-JAN-1982 00 / 5: .... ....
- 04-FEB-1982 00 / 6: .... ....
- 08-FEB-1982 00 / 7: .... ....
- 12-FEB-1982 00 / 8: .... ....
- 16-FEB-1982 00 / 9: .... ....
- 20-FEB-1982 00 / 10: .... ....
- 24-FEB-1982 00 / 11: .... ....
- 28-FEB-1982 00 / 12: .... ....
- 04-MAR-1982 00 / 13: .... ....
- 08-MAR-1982 00 / 14: .... ....
- 12-MAR-1982 00 / 15: .... ....
- 16-MAR-1982 00 / 16: .... ....
-list a1[ge=eoffset at var, gf=fax4day at var]
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A1 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- strip regrid on E: A1 --> (G098) @VAR
- strip regrid on F: A1 --> ENTERMED @VAR
- eval A1 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- pseudo _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
- -DELETE _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- -DELETE _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- regrid A1 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
- regrid A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A1 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- VARIABLE : Variance of _E[GE=E1PT]+_F[GF=F1PT]
- regrid: 1 delta on E at VAR, 96 hour on F at VAR
- SUBSET : 2 by 16 points (E-FORECAST)
- 1.1 2.1
- 1 2
- 15-JAN-1982 00 / 1:........
- 19-JAN-1982 00 / 2:........
- 23-JAN-1982 00 / 3:........
- 27-JAN-1982 00 / 4:........
- 31-JAN-1982 00 / 5:........
- 04-FEB-1982 00 / 6:........
- 08-FEB-1982 00 / 7:........
- 12-FEB-1982 00 / 8:........
- 16-FEB-1982 00 / 9:........
- 20-FEB-1982 00 / 10:........
- 24-FEB-1982 00 / 11:........
- 28-FEB-1982 00 / 12:........
- 04-MAR-1982 00 / 13:........
- 08-MAR-1982 00 / 14:........
- 12-MAR-1982 00 / 15:........
- 16-MAR-1982 00 / 16:........
-
-list a2[ge=eoffset at ave, gf=fax4day at ave]
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A2 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL E2PT F2PT
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- strip regrid on E: A2 --> (G091) @AVE
- strip regrid on F: A2 --> ENTERMED @AVE
- eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- allocate dynamic grid (G105) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- -DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- dealloc dynamic grid (G105) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- -DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- regrid A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- regrid A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
- regrid: 1 delta on E at AVE, 96 hour on F at AVE
- SUBSET : 2 by 16 points (E-FORECAST)
- 1.1 2.1
- 1 2
- 15-JAN-1982 00 / 1: .... ....
- 19-JAN-1982 00 / 2: 710186. 710186.
- 23-JAN-1982 00 / 3: 710234. 710234.
- 27-JAN-1982 00 / 4: 710282. 710282.
- 31-JAN-1982 00 / 5: .... ....
- 04-FEB-1982 00 / 6: .... ....
- 08-FEB-1982 00 / 7: .... ....
- 12-FEB-1982 00 / 8: .... ....
- 16-FEB-1982 00 / 9: .... ....
- 20-FEB-1982 00 / 10: .... ....
- 24-FEB-1982 00 / 11: .... ....
- 28-FEB-1982 00 / 12: .... ....
- 04-MAR-1982 00 / 13: .... ....
- 08-MAR-1982 00 / 14: .... ....
- 12-MAR-1982 00 / 15: .... ....
- 16-MAR-1982 00 / 16: .... ....
-list a2[ge=eoffset at sum, gf=fax4day at sum]
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- strip regrid on E: A2 --> (G091) @SUM
- strip regrid on F: A2 --> ENTERMED @SUM
- eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- pseudo _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- allocate dynamic grid (G105) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- -DELETE _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- dealloc dynamic grid (G105) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- -DELETE _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- regrid A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- regrid A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
- regrid: 1 delta on E at SUM, 96 hour on F at SUM
- SUBSET : 2 by 16 points (E-FORECAST)
- 1.1 2.1
- 1 2
- 15-JAN-1982 00 / 1: .... ....
- 19-JAN-1982 00 / 2: 213056. 355093.
- 23-JAN-1982 00 / 3: 20028585. 33381003.
- 27-JAN-1982 00 / 4: 213084. 355141.
- 31-JAN-1982 00 / 5: .... ....
- 04-FEB-1982 00 / 6: .... ....
- 08-FEB-1982 00 / 7: .... ....
- 12-FEB-1982 00 / 8: .... ....
- 16-FEB-1982 00 / 9: .... ....
- 20-FEB-1982 00 / 10: .... ....
- 24-FEB-1982 00 / 11: .... ....
- 28-FEB-1982 00 / 12: .... ....
- 04-MAR-1982 00 / 13: .... ....
- 08-MAR-1982 00 / 14: .... ....
- 12-MAR-1982 00 / 15: .... ....
- 16-MAR-1982 00 / 16: .... ....
-list a2[ge=eoffset at var, gf=fax4day at var]
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- strip regrid on E: A2 --> (G091) @VAR
- strip regrid on F: A2 --> ENTERMED @VAR
- eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- allocate dynamic grid (G105) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- -DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- dealloc dynamic grid (G105) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- -DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- regrid A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- regrid A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- VARIABLE : Variance of _E[GE=E2PT]+_F[GF=F2PT]
- regrid: 1 delta on E at VAR, 96 hour on F at VAR
- SUBSET : 2 by 16 points (E-FORECAST)
- 1.1 2.1
- 1 2
- 15-JAN-1982 00 / 1: .... ....
- 19-JAN-1982 00 / 2: .... ....
- 23-JAN-1982 00 / 3: .... 5.16988E-27
- 27-JAN-1982 00 / 4: .... ....
- 31-JAN-1982 00 / 5: .... ....
- 04-FEB-1982 00 / 6: .... ....
- 08-FEB-1982 00 / 7: .... ....
- 12-FEB-1982 00 / 8: .... ....
- 16-FEB-1982 00 / 9: .... ....
- 20-FEB-1982 00 / 10: .... ....
- 24-FEB-1982 00 / 11: .... ....
- 28-FEB-1982 00 / 12: .... ....
- 04-MAR-1982 00 / 13: .... ....
- 08-MAR-1982 00 / 14: .... ....
- 12-MAR-1982 00 / 15: .... ....
- 16-MAR-1982 00 / 16: .... ....
-
-! 1/00 additions to check details of @MIN, at MAX bevavior
-
-let a1 = _e[ge=e1pt]
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A2 M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
- -DELETE A2 M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
- -DELETE A2 M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL E2PT F2PT
- -DELETE A1 M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
- -DELETE A1 M: 64 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
- -DELETE A1 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
- dealloc dynamic grid (G086) NORMAL NORMAL NORMAL NORMAL E1PT F1PT
-let a2 = _e[ge=e2pt]
-let a4 = _e[ge=e4pt]
-
-list a1[ge=eoffset at max]
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G086) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- dealloc dynamic grid (G086) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- allocate dynamic grid (G086) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- strip regrid on E: A1 --> (G098) @MAX
- eval A1 C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
- allocate dynamic grid (G086) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- pseudo _E M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
- dealloc dynamic grid (G086) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- regrid A1 M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- VARIABLE : _E[GE=E1PT]
- regrid: 1 delta on E at MAX
- SUBSET : 2 points (E)
- 1.1 / 1: ....
- 2.1 / 2: 2.50000
-list a2[ge=eoffset at max]
- -DELETE _E M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A1 M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A2 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- strip regrid on E: A2 --> (G091) @MAX
- eval A2 C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- allocate dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- pseudo _E M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- dealloc dynamic grid (G098) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- regrid A2 M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- VARIABLE : _E[GE=E2PT]
- regrid: 1 delta on E at MAX
- SUBSET : 2 points (E)
- 1.1 / 1: 1.50000
- 2.1 / 2: 2.50000
-list a4[ge=eoffset at max]
- -DELETE _E M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A2 M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid A4 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- strip regrid on E: A4 --> (G101) @MAX
- eval A4 C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- pseudo _E M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- regrid A4 M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- VARIABLE : _E[GE=E4PT]
- regrid: 1 delta on E at MAX
- SUBSET : 2 points (E)
- 1.1 / 1: 1.50000
- 2.1 / 2: 2.50000
-list a4[ge=eoffset at min]
- -DELETE _E M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A4 M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- strip regrid on E: A4 --> (G101) @MIN
- eval A4 C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- pseudo _E M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- regrid A4 M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- VARIABLE : _E[GE=E4PT]
- regrid: 1 delta on E at MIN
- SUBSET : 2 points (E)
- 1.1 / 1: 1.50000
- 2.1 / 2: 2.00000
-list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
- -DELETE _E M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A4 M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- strip regrid on E: A4 --> (G101) @SUM
- eval A4 C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
- allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- pseudo _E M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
- dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- regrid A4 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- VARIABLE : _E[GE=E4PT]
- regrid: 1 delta on E at SUM
- SUBSET : 2 points (E)
- 1.1 / 1: 1.05000
- 2.1 / 2: 4.20000
-
-! time axes with different encodings
-define axis/f=1-jan-1990:5-jan-1990:1/units=days eday
-define axis/f=1-jan-1990:5-jan-1990:24/units=hours ehour
-let afcst = _f[gf=eday]
-list afcst
- -DELETE _E M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A4 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid AFCST C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- eval AFCST C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
- pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
- VARIABLE : _F[GF=EDAY]
- SUBSET : 5 points (FORECAST)
- 01-JAN-1990 00 / 1: 32493.0
- 02-JAN-1990 00 / 2: 32494.0
- 03-JAN-1990 00 / 3: 32495.0
- 04-JAN-1990 00 / 4: 32496.0
- 05-JAN-1990 00 / 5: 32497.0
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G101)
- GRID (G101)
- name axis # pts start end
- normal X
- normal Y
- normal Z
- normal T
- normal E
- EDAY FORECAST 5 r 01-JAN-1990 00:00 05-JAN-1990 00:00
-list afcst[gf=ehour at max]
- -DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G105) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- dealloc dynamic grid (G105) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- allocate dynamic grid (G105) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G105) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- strip regrid on F: AFCST --> (G105) @MAX
- eval AFCST C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
- allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
- pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
- dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
- regrid AFCST M: 46 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
- dealloc dynamic grid (G105) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- VARIABLE : _F[GF=EDAY]
- regrid: 24 hour on F at MAX
- SUBSET : 5 points (FORECAST)
- 01-JAN-1990 00 / 1: 32493.0
- 02-JAN-1990 00 / 2: 32494.0
- 03-JAN-1990 00 / 3: 32495.0
- 04-JAN-1990 00 / 4: 32496.0
- 05-JAN-1990 00 / 5: 32497.0
-show grid
- Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G105)
- GRID (G105)
- name axis # pts start end
- normal X
- normal Y
- normal Z
- normal T
- normal E
- EHOUR FORECAST 5 r 01-JAN-1990 00:00 05-JAN-1990 00:00
-
-set mode/last diag
-
-GO bn_reset
-cancel mode verify
-GO bn_aggregate_e
-! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
-! Datasets share sst, but only ens1 has airt.
-
-set mode diag
-
-use ens1, ens2, ens3, ens4
-define data/agg/title fourfiles = ens1, ens3, ens2, ens4
- allocate dynamic grid (G101) COADSX116_COADSY52_6NORMAL TIME12 ENSEMBLE NORMAL
-
-! The grid of SST is known.
-show data fourfiles
- currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
-
-
-list/i=3 sst[T=@ave]
- getgrid EX#1 C: 5 dset: 5 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G101) COADSX116_COADSY52_6NORMAL TIME12 ENSEMBLE NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 5 I: 3 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
- strip aggregate gathering SST on E axis: 1 4 dset: 5
- reading SST M: 64 dset: 1 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- doing aggregate gathering SST on E axis: 1 1 dset: 1
- reading SST M: 62 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- doing aggregate gathering SST on E axis: 2 2 dset: 3
- reading SST M: 56 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- doing aggregate gathering SST on E axis: 3 3 dset: 2
- reading SST M: 54 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- doing aggregate gathering SST on E axis: 4 4 dset: 4
- doing --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
- VARIABLE : SST_IN (Deg C)
- FILENAME : FOURFILES
- SUBSET : 9 by 4 points (LATITUDE-E)
- LONGITUDE: 105W
- TIME : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
- 13N 15N 17N 19N 21N 23N 25N 27N 29N
- 1 2 3 4 5 6 7 8 9
- 1 / 1: 28.513 28.441 27.892 27.457 26.726 25.561 .... .... ....
- 2 / 2: 85.539 85.323 83.676 82.370 80.177 76.683 .... .... ....
- 3 / 3: 57.026 56.882 55.784 54.913 53.452 51.122 .... .... ....
- 4 / 4: 114.051 113.765 111.568 109.826 106.903 102.245 .... .... ....
-cancel data fourfiles
- -DELETE SST M: 66 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
- -DELETE SST M: 74 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: -999 -999 M: 1 4 N: -999 -999
- dealloc dynamic grid (G101) COADSX116_COADSY52_6NORMAL TIME12 ENSEMBLE NORMAL
-
-! Create airt in the other datasets by LET/D definitions.
-let/d=ens2 airt = sst + 1
-let/d=ens3 airt = sst + 1
-let/d=ens4 airt = sst + 1
-
-define data/agg fourfiles = ens1, ens3, ens2, ens4
- allocate dynamic grid (G101) COADSX116_COADSY52_6NORMAL TIME12 ENSEMBLE NORMAL
- getgrid AIRT C: 6 dset: 3 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME12 NORMAL NORMAL
- getgrid AIRT C: 6 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME12 NORMAL NORMAL
- getgrid AIRT C: 6 dset: 4 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME12 NORMAL NORMAL
-show data fourfiles
- currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
- getgrid EX#1 C: 7 dset: 5 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- getgrid AIRT C: 9 dset: 5 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G101) COADSX116_COADSY52_6NORMAL TIME12 ENSEMBLE NORMAL
- allocate dynamic grid (G101) COADSX116_COADSY52_6NORMAL TIME12 ENSEMBLE NORMAL
- AIRT AIR TEMPERATURE 1:10 1:9 ... 1:12 1:4 ...
-
-
-list/i=3 airt[T=@ave]
- dealloc dynamic grid (G101) COADSX116_COADSY52_6NORMAL TIME12 ENSEMBLE NORMAL
- getgrid EX#1 C: 5 dset: 5 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G101) COADSX116_COADSY52_6NORMAL TIME12 ENSEMBLE NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 5 I: 3 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
- strip aggregate gathering AIRT on E axis: 1 4 dset: 5
- reading AIRT M: 74 dset: 1 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- doing aggregate gathering AIRT on E axis: 1 1 dset: 1
- eval AIRT C: 9 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- reading SST M: 70 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- constan cnst M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing aggregate gathering AIRT on E axis: 2 2 dset: 3
- eval AIRT C: 9 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- reading SST M: 50 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- constan cnst M:120 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M:120 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing aggregate gathering AIRT on E axis: 3 3 dset: 2
- eval AIRT C: 9 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- reading SST M:120 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- constan cnst M:114 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M:114 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- doing aggregate gathering AIRT on E axis: 4 4 dset: 4
- doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
- VARIABLE : AIR TEMPERATURE (DEG C)
- DATA SET : Ensemble
- FILENAME : FOURFILES
- SUBSET : 9 by 4 points (LATITUDE-E)
- LONGITUDE: 105W
- TIME : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
- 13N 15N 17N 19N 21N 23N 25N 27N 29N
- 1 2 3 4 5 6 7 8 9
- 1 / 1: 27.675 27.570 27.061 26.673 25.793 25.207 .... .... ....
- 2 / 2: 86.539 86.323 84.676 83.370 81.177 77.683 .... .... ....
- 3 / 3: 58.026 57.882 56.784 55.913 54.452 52.122 .... .... ....
- 4 / 4: 115.051 114.765 112.568 110.826 107.903 103.245 .... .... ....
-
-cancel mode diag
-cancel data/all
-cancel var/all
-
-! Subsets of coads_climatology and monthly_navy_winds.
-! Define an ensemble after making LET/D definitions so that
-! variables have the same name and grid.
-use coads_uw
-use navy_uw
-
-! Define the ensemble dataset
-
-! intentional errors:
-set mode ignore
-
-! Use dataset thats not open.
-define data/agg windy = 1,2,3
-
-! No variables on comparable grids.
-define data/agg windy = 1,2
-
-set mode/last ignore
-
-! Rename the varibles in dataset 2, then define UWND and VWND as
-! variables on the grid of dset 1.
-set dat 2
-set var/name=uin uwnd
-set var/name=vin vwnd
-
-! Define uwnd and vwnd in dataset 2 to have the grid of
-! those variables in dataset 1
-
-let/d=2/units="`uin,return=units`"/title="`uin,return=title`" \
- uwnd = uin[d=2,gxy=uwnd[d=1],gt=uwnd[d=1]@mod]
- !-> DEFINE VARIABLE/d=2/units="M/S"/title="ZONAL WIND" uwnd = uin[d=2,gxy=uwnd[d=1],gt=uwnd[d=1]@mod]
-let/d=2/units="`vin,return=units`"/title="`vin,return=title`" \
- vwnd = vin[d=2,gxy=vwnd[d=1],gt=vwnd[d=1]@mod]
- !-> DEFINE VARIABLE/d=2/units="M/S"/title="MERIDIONAL WIND" vwnd = vin[d=2,gxy=vwnd[d=1],gt=vwnd[d=1]@mod]
-
-show data
- currently SET data sets:
- 1> ./coads_uw.nc
- name title I J K L M N
- UWND ZONAL WIND 1:30 1:30 ... 1:12 ... ...
- VWND MERIDIONAL WIND 1:30 1:30 ... 1:12 ... ...
- SPEH SPECIFIC HUMIDITY 1:30 1:30 ... 1:12 ... ...
-
- 2> ./navy_uw.nc (default)
- name title I J K L M N
- UIN ZONAL WIND 1:30 1:30 ... 1:30 ... ...
- VIN MERIDIONAL WIND 1:30 1:30 ... 1:30 ... ...
- ------------------------------
- VWND[D=navy_uw] = VIN[D=2,GXY=VWND[D=1],GT=VWND[D=1]@MOD]
- UWND[D=navy_uw] = UIN[D=2,GXY=UWND[D=1],GT=UWND[D=1]@MOD]
-
-
-! Define the ensemble dataset
-define data/agg windy = 1,2
-
-! The grid of the aggregate variables with LET/D is known.
-show data windy
- currently SET data sets:
- 3> WINDY (default) Ferret-defined Ensemble dataset
- name title I J K L M N
- UWND ZONAL WIND 1:30 1:30 ... 1:12 1:2 ...
- VWND MERIDIONAL WIND 1:30 1:30 ... 1:12 1:2 ...
-
-
-! Use variable from the new dataset
-list/l=3/y=30/x=-59:-51 uwnd[d=1], uwnd[d=2], uwnd[d=3,e=1], uwnd[d=3,e=2], uwnd[d=3,e=@ave]
- LONGITUDE: 59W(-59) to 51W(-51)
- LATITUDE: 30N (interpolated)
- TIME: 17-MAR 02:58
- Column 1: UWND[D=coads_uw] is ZONAL WIND (M/S)
- Column 2: UWND[D=navy_uw] is ZONAL WIND (M/S)
- Column 3: UWND[D=WINDY,E=1] is ZONAL WIND (M/S)
- Column 4: VWND[D=WINDY,E=2] is MERIDIONAL WIND (M/S)
- Column 5: UWND[D=WINDY,E=0.5:2.5 at AVE] is ZONAL WIND (M/S)
- UWND UWND UWND VWND UWND
-59W / -30: 2.20244 0.934329 2.20244 0.934329 1.56839
-57W / -29: 2.26128 0.812758 2.26128 0.812758 1.53702
-55W / -28: 1.99826 0.681776 1.99826 0.681776 1.34002
-53W / -27: 1.93361 0.507158 1.93361 0.507158 1.22038
-51W / -26: 1.64932 0.330430 1.64932 0.330430 0.98987
-
-! Use the other order. As long as we have a file variable, we're ok
-
-cancel data 3
-
-! Define the ensemble dataset
-define data/agg windy = 2,1
-
-! The grid of the aggregate variables with LET/D is known.
-show data windy
- currently SET data sets:
- 3> WINDY (default) Ferret-defined Ensemble dataset
- name title I J K L M N
- UWND ZONAL WIND 1:30 1:30 ... 1:12 1:2 ...
- VWND MERIDIONAL WIND 1:30 1:30 ... 1:12 1:2 ...
-
-
-! Use variable from the new dataset
-list/l=3/y=30/x=-59:-51 uwnd[d=1], uwnd[d=2], uwnd[d=3,e=1], uwnd[d=3,e=2], uwnd[d=3,e=@ave]
- LONGITUDE: 59W(-59) to 51W(-51)
- LATITUDE: 30N (interpolated)
- TIME: 17-MAR 02:58
- Column 1: UWND[D=coads_uw] is ZONAL WIND (M/S)
- Column 2: UWND[D=navy_uw] is ZONAL WIND (M/S)
- Column 3: VWND[D=WINDY,E=1] is MERIDIONAL WIND (M/S)
- Column 4: UWND[D=WINDY,E=2] is ZONAL WIND (M/S)
- Column 5: VWND[D=WINDY,E=0.5:2.5 at AVE] is MERIDIONAL WIND (M/S)
- UWND UWND VWND UWND VWND
-59W / -30: 2.20244 0.934329 0.934329 2.20244 1.56839
-57W / -29: 2.26128 0.812758 0.812758 2.26128 1.53702
-55W / -28: 1.99826 0.681776 0.681776 1.99826 1.34002
-53W / -27: 1.93361 0.507158 0.507158 1.93361 1.22038
-51W / -26: 1.64932 0.330430 0.330430 1.64932 0.98987
-
-can data/all
-can var/all
-
-! DEFINE DATA/HIDE
-! SHOW DATA/HIDDEN
-! Alias ENSEMBLE for DEFINE DATA/AGG/E
-
-! If define the ensemble with /HIDE then SHOW DAT will skip the
-! member datasets and show only the ensemble.
-! show dat/hidden forces showing all
-
-sh command define
- DEFINE
- DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
- /DL/DM/DN
- DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
- DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
- DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
- /EDGES/CALENDAR/BOUNDS/QUIET
- DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
- DEFINE ALIAS
- DEFINE SYMBOL
- DEFINE ATTRIBUT/D/TYPE/OUTPUT
- DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
-sh command show
- SHOW/ALL
- SHOW WINDOW/ALL
- SHOW REGION/ALL
- SHOW AXIS/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/XML/OUTFILE/APPEND/CLOBBER
- SHOW EXPRSION/ALL
- SHOW LIST/ALL
- SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
- /HIDDEN
- SHOW MODE/ALL
- SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE
- SHOW COMMANDS/ALL
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
- SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
- SHOW VIEWPORT/ALL
- SHOW TRANFORM/ALL
- SHOW ALIAS/ALL
- SHOW SYMBOL/ALL
- SHOW ATTRIBUT/ALL/DATASET/OUTPUT
- SHOW NCCACHE
- SHOW GIFFILE
- SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
- SHOW QUERIES/ALL
-
-use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
-
-! should just show the ensemble set
-sh dat
- currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
-
-
-! If ask for a member set by name or number, do show it
-sh dat 2
- currently SET data sets:
- 2> ./ens2.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
-sh dat ens3
- currently SET data sets:
- 3> ./ens3.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
-
-! should show all members plus ensemble
-sh dat/hidden
- currently SET data sets:
- 1> ./ens1.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
- AIRT AIR TEMPERATURE 1:10 1:9 ... 1:12 ... ...
-
- 2> ./ens2.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
- 3> ./ens3.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
- 4> ./ens4.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
-
-
-! Should show original member datasets
-can dat fourfiles
-sh dat
- currently SET data sets:
- 1> ./ens1.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
- AIRT AIR TEMPERATURE 1:10 1:9 ... 1:12 ... ...
-
- 2> ./ens2.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
- 3> ./ens3.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
- 4> ./ens4.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
-can dat/all
-
-! Cancel a member, then the ensemble gets canceled.
-! The hidden members should show up.
-
-use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2" my_ens = 1,2
-sh dat
- currently SET data sets:
- 3> ./ens3.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
- 4> ./ens4.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
- 5> MY_ENS (default) Ferret-defined Ensemble dataset
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 1:2 ...
-
-can dat 2
-sh dat
- currently SET data sets:
- 1> ./ens1.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
- AIRT AIR TEMPERATURE 1:10 1:9 ... 1:12 ... ...
-
- 3> ./ens3.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
- 4> ./ens4.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
-
-! Cancel the ensemble, then hidden members get un-hidden.
-
-use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2" my_ens = 1,2,3,4
-
-! members hidden, showing only ensemble.
-sh dat
- currently SET data sets:
- 5> MY_ENS (default) Ferret-defined Ensemble dataset
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
-
-can dat my_ens
-
-! Cancel ensemble dataset: members un-hidden
-sh dat
- currently SET data sets:
- 1> ./ens1.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
- AIRT AIR TEMPERATURE 1:10 1:9 ... 1:12 ... ...
-
- 2> ./ens2.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
- 3> ./ens3.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
- 4> ./ens4.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
-
-! Define several ensembles with /HIDE
-ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
-ensemble/HIDE/title="ensemble with hidden members" some = ens1, ens2
-ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
-
-! Shows all the ensembles
-sh dat
- currently SET data sets:
- 5> FOURFILES Ferret-defined Ensemble dataset
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
-
- 6> SOME Ferret-defined Ensemble dataset
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 1:2 ...
-
- 7> MORE (default) Ferret-defined Ensemble dataset
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 1:3 ...
-
-
-! Cancel a member of all the ensembles.
-! Cancels dataset 2 and also the ensemble sets.
-can dat 2
-sh dat
- currently SET data sets:
- 1> ./ens1.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
- AIRT AIR TEMPERATURE 1:10 1:9 ... 1:12 ... ...
-
- 3> ./ens3.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
- 4> ./ens4.nc
- name title I J K L M N
- SST SST_IN 1:10 1:9 ... 1:12 ... ...
-
-
-
-GO bn_reset
-cancel mode verify
-GO bn_6d_lab_mode
-! bn_6d_lab_mode.jnl
-!
-! Tests of CANCEL MODE 6d_lab, writes SHOW and STAT output in classic 4D form.
-!
-use gt4d011
-
-! Mode affects output of SHOW
-
-set mode 6d_lab ! this is the default setting
-show data
- currently SET data sets:
- 1> ./gt4d011.cdf (default)
- name title I J K L M N
- TEMP TEMPERATURE 91:108 35:56 1:10 1:25 ... ...
- SALT (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25 ... ...
- U ZONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
- V MERIDIONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
- W VERTICAL VELOCITY 91:108 36:55 1:10 1:25 ... ...
- TAUX ZONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
- TAUY MERIDIONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
- PSI STREAM FUNCTION 91:108 35:56 ... 1:25 ... ...
-
-cancel mode 6d_lab
-show data
- currently SET data sets:
- 1> ./gt4d011.cdf (default)
- name title I J K L
- TEMP TEMPERATURE 91:108 35:56 1:10 1:25
- SALT (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25
- U ZONAL VELOCITY 91:108 35:55 1:10 1:25
- V MERIDIONAL VELOCITY 91:108 35:55 1:10 1:25
- W VERTICAL VELOCITY 91:108 36:55 1:10 1:25
- TAUX ZONAL WIND STRESS 91:108 35:55 ... 1:25
- TAUY MERIDIONAL WIND STRESS 91:108 35:55 ... 1:25
- PSI STREAM FUNCTION 91:108 35:56 ... 1:25
-
-
-! Mode affects output of SHOW GRID
-
-set mode 6d_lab
-show grid temp
- GRID PS3DT2
- name axis # pts start end
- PSXT LONGITUDE 160mr 130.5E 70.5W
- PSYT1 LATITUDE 100 i 28.836S 48.568N
- PSZT1 DEPTH (m) 27 i- 5 3824
- TIME12 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
- normal E
- normal F
-cancel mode 6d_lab
-show grid temp
- GRID PS3DT2
- name axis # pts start end
- PSXT LONGITUDE 160mr 130.5E 70.5W
- PSYT1 LATITUDE 100 i 28.836S 48.568N
- PSZT1 DEPTH (m) 27 i- 5 3824
- TIME12 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
-
-! Mode affects output of STAT
-
-set mode 6d_lab
-stat temp
-
- TEMPERATURE
- LONGITUDE: 140W to 122W
- LATITUDE: 3.667S to 3.667N
- DEPTH (m): 0 to 100
- TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
- E: N/A
- F: N/A
- DATA SET: ./gt4d011.cdf
-
- Total # of data points: 99000 (18*22*10*25*1*1)
- # flagged as bad data: 0
- Minimum value: 21.597
- Maximum value: 33.497
- Mean value: 27.704 (unweighted average)
- Standard deviation: 2.4542
-cancel mode 6d_lab
-stat temp
-
- TEMPERATURE
- LONGITUDE: 140W to 122W
- LATITUDE: 3.667S to 3.667N
- DEPTH (m): 0 to 100
- TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
- DATA SET: ./gt4d011.cdf
-
- Total # of data points: 99000 (18*22*10*25)
- # flagged as bad data: 0
- Minimum value: 21.597
- Maximum value: 33.497
- Mean value: 27.704 (unweighted average)
- Standard deviation: 2.4542
-
-! Mode affects diagnostic output
-
-set mode diag
-set mode 6d_lab
-list/L=1:8 taux[x=@ave,y=@ave]
- dealloc dynamic grid PS3DT2 PSXT PSYT1 PSZT1 TIME12 NORMAL NORMAL
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS2DU2 PSXU PSYU NORMAL TIME12 NORMAL NORMAL
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- strip --> TAUX[Y=3.5S:3.5N at AV4,D=1]
- reading TAUX M:110 dset: 1 I: 91 108 J: 35 55 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- doing --> TAUX[Y=3.5S:3.5N at AV4,D=1]
- VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
- FILENAME : gt4d011.cdf
- SUBSET : 8 points (TIME)
- LONGITUDE: 139.5W to 121.5W (XY ave)
- LATITUDE : 3.5S to 3.5N (XY ave)
- 17-AUG-1982 12 / 1: -0.274203
- 23-AUG-1982 14 / 2: -0.236318
- 29-AUG-1982 16 / 3: -0.198434
- 04-SEP-1982 18 / 4: -0.160549
- 10-SEP-1982 20 / 5: -0.122665
- 16-SEP-1982 22 / 6: -0.104062
- 23-SEP-1982 00 / 7: -0.104740
- 29-SEP-1982 02 / 8: -0.105418
-cancel mode 6d_lab
-list/L=1:8 taux[x=@sum,y=@sum]
- dealloc dynamic grid PS2DU2 PSXU PSYU NORMAL TIME12
- getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1
- allocate dynamic grid PS2DU2 PSXU PSYU NORMAL TIME12
- strip limits reconciliation : EX#1
- eval EX#1 C: 5 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 8
- strip --> TAUX[Y=3.5S:3.5N at SM4,D=1]
- reading TAUX M: 96 dset: 1 I: 91 108 J: 35 55 K: -999 -999 L: 1 8
- doing --> TAUX[Y=3.5S:3.5N at SM4,D=1]
- VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
- FILENAME : gt4d011.cdf
- SUBSET : 8 points (TIME)
- LONGITUDE: 139.5W to 121.5W (XY summed)
- LATITUDE : 3.5S to 3.5N (XY summed)
- 17-AUG-1982 12 / 1: -103.649
- 23-AUG-1982 14 / 2: -89.328
- 29-AUG-1982 16 / 3: -75.007
- 04-SEP-1982 18 / 4: -60.686
- 10-SEP-1982 20 / 5: -46.365
- 16-SEP-1982 22 / 6: -39.333
- 23-SEP-1982 00 / 7: -39.590
- 29-SEP-1982 02 / 8: -39.847
-can mode diag
-
-! restore default setting
-set mode 6d_lab
-
-
-! *********** v6.82 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn682_bug_fixes
-! bn682_bug_fixes.jnl
-! test various fixes that went into version 6.82
-! 8/2012 ACM
-
-GO bn_reset
-cancel mode verify
-GO err681_dims_direction
-! err681_dims_direction.jnl
-! ticket 1955: Code still existed that determined axis direction
-! according to axis name. Here, coordinate variables are defined,
-! but their dimensions are not coordinate variables, so there isn't
-! direct info in the file about the directions of the dimensions.
-! netcdf dims {
-! dimensions:
-! ETA = 4 ;
-! TAU1 = 7 ;
-! ZT_OCEAN = 1 ;
-! variables:
-! ...
-! float LON_C(TAU, ETA) ;
-! LON_C:long_name = "uv longitude" ;
-! LON_C:units = "degrees_E" ;
-! LON_C:history = "From data_1302" ;
-!
-! Where tau is intended to be a Y axis and ETA is an X axis.
-! 4D Ferret puts these in an X and a T direction, and inital versions
-! of 6D Ferret had them in the E and T directions. They should just
-! get assigned by position, here with TAU in the Y direction an ETA in x.
-
-use dims_not_coord
-sh dat
- currently SET data sets:
- 1> ./dims_not_coord.nc (default)
- name title I J K L M N
- U zonal current 1:4 1:7 1:1 ... ... ...
- LON_C uv longitude 1:4 1:7 ... ... ... ...
- LAT_C uv latitude 1:4 1:7 ... ... ... ...
-
-sho grid lon_c
- GRID GOS2
- name axis # pts start end
- ETA X 4 r 1 4
- TAU1 Y 7 r 1 7
- normal Z
- normal T
- normal E
- normal F
-
-
-! *********** v6.83 Additions ***********
-! (was released as v6.84)
-
-GO bn_reset
-cancel mode verify
-GO bn683_bug_fixes
-! bn683_bug_fixes.jnl
-! test various fixes that went into version 6.83
-! 8/2012 ACM
-
-GO bn_reset
-cancel mode verify
-GO err682_shrink_axlab
-! err682_shrink_axlab.jnl
-! See ticket 1958. Scripts may want the axis labels to
-! run out of the viewport or off the page. So shrink labels
-! only if MODE SHRINK_YLAB has been set.
-! See also err672_runoff_page.jnl and err672_vert_axislabel.jnl
-!
-! Default setting, mode shrink_ylab is cancelled.
-
-! The lower plot has its vertical axis labels intact and visible.
-! The upper one will have them shrink away to nothing.
-
-set view lr
-go magnify
-plot/vs {-1,1},{-1,1}
-
-set mode shrink_ylab
-
-set view ur
-go magnify
-plot/vs {-1,1},{-1,1}
-
-set mode/last shrink_ylab
-
-
-GO bn_reset
-cancel mode verify
-GO err682_xact_high_prec
-! err682_xact_high_prec.jnl
-! based on an example from the Users List,
-! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2012/msg00477.html
-
-! shows that the @XACT regridding in double-precision Ferret is broken.
-
-
-Let time = {\
- 22585.3295833333,\
- 22585.3302777778,\
- 22585.3309722222,\
- 22585.3316666667,\
- 22585.3323611111,\
- 22585.3330555556,\
- 22585.33375,\
- 22585.3344444444,\
- 22585.3351388889,\
- 22585.3358333333}
-
-Define Axis /T /From /T0=1-JAN-1950 /Units=days my_axis = time
-
-Let fake_var = T[GT=my_axis]
-Let var = RANDU( fake_var )
-Let var_regrid = RESHAPE( var, fake_var )
-
-List /T="2-nov-2011 07:54":"2-nov-2011 08:04" var_regrid
- VARIABLE : RESHAPE( VAR, FAKE_VAR )
- SUBSET : 10 points (TIME)
- 02-NOV-2011 07:54:36 / 1: 0.625140
- 02-NOV-2011 07:55:36 / 2: 0.220931
- 02-NOV-2011 07:56:36 / 3: 0.607368
- 02-NOV-2011 07:57:36 / 4: 0.322594
- 02-NOV-2011 07:58:36 / 5: 0.107545
- 02-NOV-2011 07:59:36 / 6: 0.225720
- 02-NOV-2011 08:00:36 / 7: 0.081070
- 02-NOV-2011 08:01:36 / 8: 0.898013
- 02-NOV-2011 08:02:36 / 9: 0.716275
- 02-NOV-2011 08:03:36 / 10: 0.664871
-
-! Note that if we define the axis as below, the regridding is
-! successful. But the @XACT regridding in v6.82 was requiring too
-! much matching precision.
-
-! DEFINE AXIS/t="02-nov-2011:07:54:36":"02-nov-2011:08:03:36":60/units=seconds/T0=1-JAN-1950 my_axis
-! let time = t[gt=my_axis]
-! Let var = TSEQUENCE( RANDU( time ) )
-! Let fake_var = T[GT=my_axis]
-! Let var_regrid = RESHAPE( var, fake_var )
-
-! New time axis
-Define Axis /T="01-NOV-2011 00:00":"30-NOV-2011 23:00":1 /Units=seconds /T0=1-JAN-1950 t_axis_seconds
-
-Let var_sec = var_regrid[ GT=t_axis_seconds at XACT ]
-
-! Here we got no good data, should be one at 7:54:36.
-
-List /T="2-nov-2011 07:54:30":"2-nov-2011 07:54:50" var_sec
- VARIABLE : VAR_REGRID[ GT=T_AXIS_SECONDS at XACT ]
- SUBSET : 21 points (TIME)
- 02-NOV-2011 07:54:30 / 114871: ....
- 02-NOV-2011 07:54:31 / 114872: ....
- 02-NOV-2011 07:54:32 / 114873: ....
- 02-NOV-2011 07:54:33 / 114874: ....
- 02-NOV-2011 07:54:34 / 114875: ....
- 02-NOV-2011 07:54:35 / 114876: ....
- 02-NOV-2011 07:54:36 / 114877: 0.625140
- 02-NOV-2011 07:54:37 / 114878: ....
- 02-NOV-2011 07:54:38 / 114879: ....
- 02-NOV-2011 07:54:39 / 114880: ....
- 02-NOV-2011 07:54:40 / 114881: ....
- 02-NOV-2011 07:54:41 / 114882: ....
- 02-NOV-2011 07:54:42 / 114883: ....
- 02-NOV-2011 07:54:43 / 114884: ....
- 02-NOV-2011 07:54:44 / 114885: ....
- 02-NOV-2011 07:54:45 / 114886: ....
- 02-NOV-2011 07:54:46 / 114887: ....
- 02-NOV-2011 07:54:47 / 114888: ....
- 02-NOV-2011 07:54:48 / 114889: ....
- 02-NOV-2011 07:54:49 / 114890: ....
- 02-NOV-2011 07:54:50 / 114891: ....
-
-
-GO bn_reset
-cancel mode verify
-GO err682_if_yes_exit
-! err682_if_yes_exit.jnl
-! Ticket 1965
-!
-! As reported by Hein Zelle
-! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2012/msg00487.html
-! This should exit the script on failure of the first test.
-! Instead it continues on and only exits with the /script qualifier or as part
-! of a block
-
-let test = 1
-if `test` then exit
- !-> if 1 then exit
-
-GO bn_reset
-cancel mode verify
-GO err682_use_no_quotes
-! err682_use_no_quotes.jnl
-! See ticket 1974 - on 64-bit machines, this statement causes a crash.
-! It should just generate an error message, as the file spec. should have
-! quotes around it.
-
-SET MODE ignore
-use ./z1.nc
-
-CANCEL MODE ignore
-
-GO bn_reset
-cancel mode verify
-GO err682_axis_no_clue
-! err682_axis_no_clue.jnl
-! See ticket 1975. The axis sax is intended to be
-! used as a Y axis. The axes of the variable are
-! TEMP(zax, sax, xax). The grid should be XYZ but
-! Ferret v6.82 created a grid thats XZT instead.
-
-use xsz.nc
-sh dat
- currently SET data sets:
- 1> ./xsz.nc (default)
- name title I J K L M N
- TEMP TEMPERATURE 1:5 1:7 1:3 ... ... ...
-
-
-GO bn_reset
-cancel mode verify
-GO err682_grid_merge
-! err682_grid_merge.jnl
-! Bug 1972. When merging contexts, the calendar time-axis
-! info gets lost, causing an error with the time axis.
-
-use truemonth.nc
-let a = 2
-let b = a * var
-list a*var[t=1-jan-1960:1-jan-1961]
- VARIABLE : A*VAR[T=1-JAN-1960:1-JAN-1961]
- FILENAME : truemonth.nc
- SUBSET : 12 points (TIME)
- 16-JAN-1960 12 / 121: 1.63183
- 15-FEB-1960 12 / 122: 1.90067
- 16-MAR-1960 12 / 123: 1.99973
- 16-APR-1960 00 / 124: 1.91734
- 16-MAY-1960 12 / 125: 1.65796
- 16-JUN-1960 00 / 126: 1.24555
- 16-JUL-1960 12 / 127: 0.71815
- 16-AUG-1960 12 / 128: 0.11450
- 16-SEP-1960 00 / 129: -0.49038
- 16-OCT-1960 12 / 130: -1.05001
- 16-NOV-1960 00 / 131: -1.51270
- 16-DEC-1960 12 / 132: -1.83577
-
-! The bug had this statement failing with a time-region error
-list b[T=1-JAN-1960:1-JAN-1961]
- VARIABLE : A * VAR
- FILENAME : truemonth.nc
- SUBSET : 12 points (TIME)
- 16-JAN-1960 12 / 121: 1.63183
- 15-FEB-1960 12 / 122: 1.90067
- 16-MAR-1960 12 / 123: 1.99973
- 16-APR-1960 00 / 124: 1.91734
- 16-MAY-1960 12 / 125: 1.65796
- 16-JUN-1960 00 / 126: 1.24555
- 16-JUL-1960 12 / 127: 0.71815
- 16-AUG-1960 12 / 128: 0.11450
- 16-SEP-1960 00 / 129: -0.49038
- 16-OCT-1960 12 / 130: -1.05001
- 16-NOV-1960 00 / 131: -1.51270
- 16-DEC-1960 12 / 132: -1.83577
-
-
-GO bn_reset
-cancel mode verify
-GO err682_scale_no_offset
-! err682_scale_no_offset.jnl
-! See ticket 1980 and the report on the Ferret list at
-! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2012/msg00585.html
-! Dataset with a scale_factor attributue on variables but no add_offset att.
-
-
-use err682_scale_no_offset.nc
-say `sst_rms[x=@ngd,y=@ngd]` SHOULD BE 91
- !-> MESSAGE/CONTINUE 91 SHOULD BE 91
-91 SHOULD BE 91
-
-can dat 1
-use err682_scale_no_offset.nc
-say `sst_cor[x=@ngd,y=@ngd]` SHOULD BE 91
- !-> MESSAGE/CONTINUE 91 SHOULD BE 91
-91 SHOULD BE 91
-use tripolar_subset
-can dat 2
-
-say `sst_rms[x=@ngd,y=@ngd]` SHOULD BE 91
- !-> MESSAGE/CONTINUE 91 SHOULD BE 91
-91 SHOULD BE 91
-load sst_rms
-
-say `sst_rms[x=@ngd,y=@ngd]` SHOULD BE 91
- !-> MESSAGE/CONTINUE 91 SHOULD BE 91
-91 SHOULD BE 91
-load sst_rms
-say `sst_rms[x=@nbd,y=@nbd]` SHOULD BE 30
- !-> MESSAGE/CONTINUE 30 SHOULD BE 30
-30 SHOULD BE 30
-
-GO bn_reset
-cancel mode verify
-GO err682_append_packed
-! err682_append_packed.jnl
-! See ticket 2004. Write packed variable with scale attributes
-! Append more values, data was not correctly scaled.
-
-use append_pack.nc
-list temp ! values should be 28.69, 28.63
- VARIABLE : Potential temperature (degrees C)
- FILENAME : append_pack.nc
- SUBSET : 2 points (TIME)
- LONGITUDE: 180E(179.9)
- LATITUDE : 0.05S
- DEPTH (m): 2.5
- 179.95E
- 1
- 01-JAN-1994 12 / 1: 28.6949
- 02-JAN-1994 12 / 2: 28.6344
-
-cancel mode upcase_output
-set att/output=all temp
-save/clobber/file=a.nc/outtype=short/L=1 temp
-save/append/file=a.nc/outtype=short/L=2 temp
-
-can data/all
-use a.nc
-
-list temp ! values should match those above.
- VARIABLE : Potential temperature (degrees C)
- FILENAME : a.nc
- SUBSET : 2 points (TIME)
- LONGITUDE: 180E(179.9)
- LATITUDE : 0.05S
- DEPTH (m): 2.5
- 179.95E
- 1
- 01-JAN-1994 12 / 1: 28.6966
- 02-JAN-1994 12 / 2: 28.6361
-
-set mode/last upcase_output
-
-GO bn_reset
-cancel mode verify
-GO bn_outtype
-! bn_outtype
-! Tests of output-type control:
-! SET VAR/OUTTYPE
-! SET LIST/OUTTYPE
-! save/x=300/y=0:5/OUTTYPE
-
-! SET LIST/OUTTYPE takes precedence over the variable type from
-! an input dataset or the SET VAR/OUTTYPE
-! save/x=300/y=0:5/OUTTYPE takes precedence over both
-
-! SET VAR/OUTTYPE
-can dat/all
-use coads_climatology
-
-let sst2 = 2*sst
-set var/outtype=double sst2
-
-! For saving as INT and smaller, the default missing value
-! can't be the default Ferret value
-let/bad=-999 sst3 = missing(sst, -999)
-set var/outtype=int sst3
-
-! sst is saved in its native type, float
-! sst2 and sst3 have SET VAR/OUTTYPE types
-
-save/x=300/y=0:5/clobber/file=mytype.nc sst, sst2, sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 23 T SEA SURFACE TEMPERATURE
- history CHAR 22 T From coads_climatology
- units CHAR 5 T Deg C
- long_name_mod CHAR 9 F X=60W at ITP
-
- SST2 DOUBLE missing_value DOUBLE 1 T -1.E+34
- _FillValue DOUBLE 1 T -1.E+34
- long_name CHAR 5 T 2*SST
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
- SST3 INT missing_value INT 1 T -999
- _FillValue INT 1 T -999
- long_name CHAR 18 T MISSING(SST, -999)
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
-
-! SET LIST/OUTTYPE overrides native type and SET VAR/OUTTYPE
-can var/all
-
-let sst2 = 2*sst
-let/bad=-999 sst3 = missing(sst, -999)
-set var/outtype=int sst3
-
-set list/outtype=double
-save/x=300/y=0:5/clobber/file=mytype.nc sst, sst2
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST DOUBLE missing_value DOUBLE 1 T -1.E+34
- _FillValue DOUBLE 1 T -1.E+34
- long_name CHAR 23 T SEA SURFACE TEMPERATURE
- history CHAR 22 T From coads_climatology
- units CHAR 5 T Deg C
- Ferret_PrecisionCHAR 69 F This variable written using Ferret was converted from FLOAT to DOUBLE
- long_name_mod CHAR 9 F X=60W at ITP
-
- SST2 DOUBLE missing_value DOUBLE 1 T -1.E+34
- _FillValue DOUBLE 1 T -1.E+34
- long_name CHAR 5 T 2*SST
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
-
-set list/outtype=float
-save/x=300/y=0:5/clobber/file=mytype.nc sst, sst2
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 23 T SEA SURFACE TEMPERATURE
- history CHAR 22 T From coads_climatology
- units CHAR 5 T Deg C
- Ferret_PrecisionCHAR 69 F This variable written using Ferret was converted from FLOAT to DOUBLE
- long_name_mod CHAR 9 F X=60W at ITP
-
- SST2 FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 5 T 2*SST
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
-
-set list/outtype=int
-save/x=300/y=0:5/clobber/file=mytype.nc sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST3 INT missing_value INT 1 T -999
- _FillValue INT 1 T -999
- long_name CHAR 18 T MISSING(SST, -999)
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
-
-set list/outtype=short
-save/x=300/y=0:5/clobber/file=mytype.nc sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST3 SHORT missing_value SHORT 1 T -999
- _FillValue SHORT 1 T -999
- long_name CHAR 18 T MISSING(SST, -999)
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
-
-set list/outtype=byte
-let/bad=-99 sst4 = missing(sst, -99)
-save/x=300/y=0:5/clobber/file=mytype.nc sst4
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST4 BYTE missing_value BYTE 1 T -99
- _FillValue BYTE 1 T -99
- long_name CHAR 17 T MISSING(SST, -99)
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
-
-! shows the outtype
-show list
- SET LIST/PRECISION = 6
- SET LIST/FORMAT = [Default]
- SET LIST/HEADING is ENABLED
- SET LIST/APPEND is DISABLED
- SET LIST/FILE=AUTO [created by program] ( when LIST/FILE is used )
- SET LIST/OUTTYPE = Byte
- ----
- NetCDF-4 settings:
- NetCDF file type = classic
- NetCDF chunk sizes = default
- SHUFFLE set to on
- ENDIAN set to native
-
-! CANCEL LIST/OUTTYPE
-cancel list/outtype
-show list
- SET LIST/PRECISION = 6
- SET LIST/FORMAT = [Default]
- SET LIST/HEADING is ENABLED
- SET LIST/APPEND is DISABLED
- SET LIST/FILE=AUTO [created by program] ( when LIST/FILE is used )
- SET LIST/OUTTYPE = [Default]
- ----
- NetCDF-4 settings:
- NetCDF file type = classic
- NetCDF chunk sizes = default
- SHUFFLE set to on
- ENDIAN set to native
-
-save/x=300/y=0:5/clobber/file=mytype.nc sst, sst2, sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 23 T SEA SURFACE TEMPERATURE
- history CHAR 22 T From coads_climatology
- units CHAR 5 T Deg C
- Ferret_PrecisionCHAR 69 F This variable written using Ferret was converted from FLOAT to DOUBLE
- long_name_mod CHAR 9 F X=60W at ITP
-
- SST2 DOUBLE missing_value DOUBLE 1 T -1.E+34
- _FillValue DOUBLE 1 T -1.E+34
- long_name CHAR 5 T 2*SST
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
- SST3 INT missing_value INT 1 T -999
- _FillValue INT 1 T -999
- long_name CHAR 18 T MISSING(SST, -999)
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
-
-set list/outtype=int
-save/x=300/y=0:5/clobber/file=mytype.nc sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST3 INT missing_value INT 1 T -999
- _FillValue INT 1 T -999
- long_name CHAR 18 T MISSING(SST, -999)
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
-cancel list/all
-show list
- SET LIST/PRECISION = 4
- SET LIST/FORMAT = [Default]
- SET LIST/HEADING is ENABLED
- SET LIST/APPEND is DISABLED
- SET LIST/FILE=AUTO [created by program] ( when LIST/FILE is used )
- SET LIST/OUTTYPE = [Default]
- ----
- NetCDF-4 settings:
- NetCDF file type = classic
- NetCDF chunk sizes = default
- SHUFFLE set to on
- ENDIAN set to native
-
-! SAVE/OUTTYPE overrides all other settings
-can var/all
-let sst2 = 2*sst3
-
-let/bad=-999 sst3 = missing(sst, -999)
-set var/outtype=int sst3
-
-let/bad=-99 sst4 = missing(sst, -99)
-set var/outtype=short sst4
-
-
-save/x=300/y=0:5/clobber/file=mytype.nc/outtype=double sst2, sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST2 DOUBLE missing_value DOUBLE 1 T -1.E+34
- _FillValue DOUBLE 1 T -1.E+34
- long_name CHAR 6 T 2*SST3
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
- SST3 DOUBLE missing_value DOUBLE 1 T -999
- _FillValue DOUBLE 1 T -999
- long_name CHAR 18 T MISSING(SST, -999)
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
-
-save/x=300/y=0:5/clobber/file=mytype.nc/outtype=float sst2, sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST2 FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 6 T 2*SST3
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
- SST3 FLOAT missing_value FLOAT 1 T -999
- _FillValue FLOAT 1 T -999
- long_name CHAR 18 T MISSING(SST, -999)
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
-
-save/x=300/y=0:5/clobber/file=mytype.nc/outtype=int sst4, sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST4 INT missing_value INT 1 T -99
- _FillValue INT 1 T -99
- long_name CHAR 17 T MISSING(SST, -99)
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
- SST3 INT missing_value INT 1 T -999
- _FillValue INT 1 T -999
- long_name CHAR 18 T MISSING(SST, -999)
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
-
-save/x=300/y=0:5/clobber/file=mytype.nc/outtype=byte sst4
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST4 BYTE missing_value BYTE 1 T -99
- _FillValue BYTE 1 T -99
- long_name CHAR 17 T MISSING(SST, -99)
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
-
-! Type will be int
-set list/outtype=float
-save/x=300/y=0:5/clobber/file=mytype.nc/outtype=int sst4, sst3
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST4 INT missing_value INT 1 T -99
- _FillValue INT 1 T -99
- long_name CHAR 17 T MISSING(SST, -99)
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
- SST3 INT missing_value INT 1 T -999
- _FillValue INT 1 T -999
- long_name CHAR 18 T MISSING(SST, -999)
- long_name_mod CHAR 9 F X=60W at ITP
- history CHAR 22 T From coads_climatology
-
-
-! Go back to default setting.
-can list/outtype
-
-GO bn_reset
-cancel mode verify
-GO bn_ribbon_plot
-! bn_ribbon_plot.jnl
-! Test color-line-by variable style of plots
-
-show alias ribbon
- Alias Command
- ----- -------
- RIBBON PLOT/RIBBON
-
-! ribbon plot is 3-variable RIBBON/VS plot
-! RIBBON/VS/LEV= xpts, ypts, var
-! or 2-variable line plot in any direction.
-! RIBBON/LEV= var1, var2
-
-! File variables
-use TAO_SST_clim
-set view ul; RIBBON/thick/i=3/lev=10 sst_clim[j=6], sst_clim[j=5]
-set view ur; RIBBON/j=3/lev=10/thick sst_clim[l=6], sst_clim[L=9]
-set view ll; RIBBON/thick/L=3/lev=10 sst_clim[j=4], sst_clim[j=6]
-use gt4d011.cdf
-set view lr; RIBBON/l=15/j=40/lev=v/thick/pal=rnb2 temp[i=96], temp[i=103]
-can data/all
-
-! xpts, ypts all present, compare when var has missing.
-
-can view
-let/title="Xpts"/units=degrees_east xpts = {\
-151.0,153.0,155.0,157.0,159.0,161.0,163.0,165.0,167.0,169.0,171.0,173.0,175.0,\
-177.0,179.0,181.0,183.0,185.0,187.0,189.0}
-
-let/title="SST"/units="Deg C" ypts {\
-29.42,29.43,29.33,29.19,29.22,29.12,29.36,29.22,29.04,28.92,29.00,28.59,28.31,\
-28.69,28.20,28.86,27.98,27.80,28.29,27.94}
-
-let/title="VAR"/Units="V" var = {\
-14.16,14.31,13.34,11.90,12.19,11.20,13.57,12.25,10.37, 9.22,10.05, 5.91, \
-3.13, 6.88, 2.02, 8.63,-0.23,-1.97, 2.94,-0.65}
-
-set view ul
-RIBBON/vs/line/thick/vlim=26:30 xpts,ypts,var
-
-! Gaps in one of the vs variables
-set view ur
-RIBBON/vs/line/thick/vlim=26:30 xpts,ypts,var
-
-let/title="SST"/units="Deg C" ypts2 {\
-29.42,29.43,29.33,29.19,29.22,29.12,29.36,29.22,29.04,28.92,29.00,28.59,28.31,\
-28.69,28.20,28.86,27.98,27.80,28.29,27.94} - 0.3
-
-let/title="VAR"/Units="V" var2 = {\
-14.16,14.31,13.34,,,,13.57,12.25,10.37, 9.22,10.05, 5.91, \
-3.13, 6.88, 2.02, 8.63,,-1.97, 2.94,-0.65}
-
-! /FAST does not interpolate colors from one point to the next
-list xpts, ypts2, var2
- X: 0.5 to 20.5
- Column 1: XPTS is Xpts (degrees_east)
- Column 2: YPTS2 is SST (Deg C)
- Column 3: VAR2 is VAR (V)
- XPTS YPTS2 VAR2
-1 / 1: 151.0 29.12 14.16
-2 / 2: 153.0 29.13 14.31
-3 / 3: 155.0 29.03 13.34
-4 / 4: 157.0 28.89 ....
-5 / 5: 159.0 28.92 ....
-6 / 6: 161.0 28.82 ....
-7 / 7: 163.0 29.06 13.57
-8 / 8: 165.0 28.92 12.25
-9 / 9: 167.0 28.74 10.37
-10 / 10: 169.0 28.62 9.22
-11 / 11: 171.0 28.70 10.05
-12 / 12: 173.0 28.29 5.91
-13 / 13: 175.0 28.01 3.13
-14 / 14: 177.0 28.39 6.88
-15 / 15: 179.0 27.90 2.02
-16 / 16: 181.0 28.56 8.63
-17 / 17: 183.0 27.68 ....
-18 / 18: 185.0 27.50 -1.97
-19 / 19: 187.0 27.99 2.94
-20 / 20: 189.0 27.64 -0.65
-RIBBON/vs/line/nokey/over/thick=3/fast xpts,ypts2,var2
-
-let yp3 = if var2 then ypts2 - 0.3
-PLOT/over/nolab/vs/line/color=black/sym=20 xpts, yp3
-
-
-! Testing other palettes
-
-let/title="Xpts"/units=degrees_east xpts = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,\
-15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
-
-let/title="Ypts"/units=degrees_north ypts = { 9.04, 8.67, 8.96, 9.29, 9.18, 9.42,\
- 9.43, 9.33, 9.19, 9.22, 9.12, 9.36, 9.22, 9.04, 8.92, 9.00, 8.59,\
- 8.31, 8.69, 8.20, 8.86, 7.98, 7.80, 8.29, 7.94, 8.05, 7.85, 7.55,\
- 7.56, 6.82, 7.04, 6.66, 6.56, 7.36, 6.52}
-
-let/title="SST"/Units="Deg C" var = {\
- 1.5, 1.5, 1.5, 1.5, 1.5,\
- 2.5, 2.5, 2.5, 2.5, 2.5,\
- 3.5, 3.5, 3.5, 3.5, 3.5,\
- 4.5, 4.5, 4.5, 4.5, 4.5,\
- 5.5, 5.5, 5.5, 5.5, 5.5,\
- 6.5, 6.5, 6.5, 6.5, 6.5,\
- 7.5, 7.5, 7.5, 7.5, 7.5}
-set view ll
-RIBBON/vs/line/lev=(1,9,1)/pal=ten_by_levels xpts,ypts,var
-
-
-let/title="Xpts"/units=degrees_east xpts = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,\
-15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
-
-let/title="Ypts"/units=degrees_north ypts = { 9.04, 8.67, 8.96, 9.29, 9.18, 9.42,\
- 9.43, 9.33, 9.19, 9.22, 9.12, 9.36, 9.22, 9.04, 8.92, 9.00, 8.59,\
- 8.31, 8.69, 8.20, 8.86, 7.98, 7.80, 8.29, 7.94, 8.05, 7.85, 7.55,\
- 7.56, 6.82, 7.04, 6.66, 6.56, 7.36, 6.52}
-
-let/title="SST"/Units="Deg C" var = {\
- 1.5, 1.5, 1.5, 1.5, 1.5,\
- 2.5, 2.5, 2.5, 2.5, 2.5,\
- 3.5, 3.5, 3.5, 3.5, 3.5,\
- 4.5, 4.5, 4.5, 4.5, 4.5,\
- 5.5, 5.5, 5.5, 5.5, 5.5,\
- 6.5, 6.5, 6.5, 6.5, 6.5,\
- 7.5, 7.5, 7.5, 7.5, 7.5}
-
-set view lr
-RIBBON/vs/line/thick/lev=(1,8,1)/pal=ten_by_levels xpts,ypts,var
-
-PLOT/vs/over/sym=20 xpts,ypts
-
-
-can view
-
-! Do an overlay on a map.
-! To use RIBBON/SET, finish with PPL RIBBON/OVER
-
-use coads_climatology
-let mask = if sst then 0 else 1
-shade/NOLAB/L=1/x=-50:100/y=-60:50/pal=grayscale mask
-
-RIBBON/vs/over/nolab/thick=3/sym=20/key/set xpts, ypts, var
-ppl shakey,1,0
-ppl ribbon/over
-
-GO bn_reset
-cancel mode verify
-GO bn_descr_4digit
- ! bn_descr_4digit.jnl
- ! See ticket 1969: step files have 3- or 4-digit extensions
- ! coads_clim.999, coads_clim.1000, coads_clim.1001
-
-use coads_clim_4digit.des
-sh dat
- currently SET data sets:
- 1> ./coads_clim_4digit.des (default)
- name title I J K L M N
- SST SEA SURFACE TEMPERATURE 1:4 1:4 ... 1:6 ... ...
-
-list/x=180/y=0 sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- DATA SET : COAD
- FILENAME : coads_clim_4digit.des
- SUBSET : 6 points (TIME)
- LONGITUDE: 180E (interpolated)
- LATITUDE : 0 (interpolated)
- 16-JAN-1900 / 1: 28.36
- 15-FEB-1900 / 2: 28.38
- 18-MAR-1900 / 3: 28.00
- 17-APR-1900 / 4: 27.99
- 17-MAY-1900 / 5: 28.41
- 17-JUN-1900 / 6: 28.23
-
-GO bn_reset
-cancel mode verify
-GO bn_axis_outtype
-! bn_axis_outtype.jnl
-! SET AXIS/OUTTYPE
-! 23-Oct-2012
-
-can dat/all
-use coads_climatology
-
-set axis/outtype=float `sst,return=xaxis`
- !-> set axis/outtype=float COADSX
-set axis/outtype=float `sst,return=yaxis`
- !-> set axis/outtype=float COADSY
-set axis/outtype=float `sst,return=taxis`
- !-> set axis/outtype=float TIME10
-
-save/x=300/y=0:5/clobber/file=mytype.nc sst
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) FLOAT units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME12) FLOAT units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo FLOAT 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 23 T SEA SURFACE TEMPERATURE
- history CHAR 22 T From coads_climatology
- units CHAR 5 T Deg C
- long_name_mod CHAR 9 F X=60W at ITP
-
-
-! SAVE/OUTTYPE sets the type of the variable not the axes
-save/x=300/y=0:5/clobber/file=mytype.nc/outtype=double sst
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) FLOAT units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME12) FLOAT units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo FLOAT 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST DOUBLE missing_value DOUBLE 1 T -1.E+34
- _FillValue DOUBLE 1 T -1.E+34
- long_name CHAR 23 T SEA SURFACE TEMPERATURE
- history CHAR 22 T From coads_climatology
- units CHAR 5 T Deg C
- Ferret_PrecisionCHAR 69 F This variable written using Ferret was converted from FLOAT to DOUBLE
- long_name_mod CHAR 9 F X=60W at ITP
-
-
-! Restore the axis type from the file
-
-set axis/outtype=input `sst,return=xaxis`
- !-> set axis/outtype=input COADSX
-set axis/outtype=input `sst,return=yaxis`
- !-> set axis/outtype=input COADSY
-set axis/outtype=input `sst,return=taxis`
- !-> set axis/outtype=input TIME10
-
-save/x=300/y=0:5/clobber/file=mytype.nc sst
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
- point_spacing CHAR 4 T even
- axis CHAR 1 T Y
- standard_name CHAR 8 F latitude
- orig_file_axnameCHAR 11 F COADSY46_48
-
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
- axis CHAR 1 T T
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
-
- SST FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 23 T SEA SURFACE TEMPERATURE
- history CHAR 22 T From coads_climatology
- units CHAR 5 T Deg C
- Ferret_PrecisionCHAR 69 F This variable written using Ferret was converted from FLOAT to DOUBLE
- long_name_mod CHAR 9 F X=60W at ITP
-
-
-! User-defined axes are output as double by default.
-
-define axis/t=1-jan-1990:1-feb-1990:2/units=hours myhours
-let tt = t[gt=myhours] - `t[gt=myhours,L=1]`
- !-> DEFINE VARIABLE tt = t[gt=myhours] - 779832
-
-save/clobber/file=mytype.nc tt
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
- axis CHAR 1 T T
- calendar CHAR 9 T GREGORIAN
- time_origin CHAR 11 T 15-JAN-1901
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 7 F MYHOURS
-
- TT DOUBLE missing_value DOUBLE 1 T -1.E+34
- _FillValue DOUBLE 1 T -1.E+34
- long_name CHAR 22 T T[GT=MYHOURS] - 779832
-
-
-set axis/outtype=int myhours
-set var/bad=-9999 tt
-
-save/clobber/file=mytype.nc/outtype=int tt
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(MYHOURS1) INT units CHAR 31 T hours since 1901-01-15 00:00:00
- axis CHAR 1 T T
- calendar CHAR 9 T GREGORIAN
- time_origin CHAR 11 T 15-JAN-1901
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 7 F MYHOURS
-
- TT INT missing_value INT 1 T -9999
- _FillValue INT 1 T -9999
- long_name CHAR 22 T T[GT=MYHOURS] - 779832
-
-
-! Restore the type of non-file axis, to double
-
-set axis/outtype=input myhours
-save/clobber/file=mytype.nc tt
-use mytype.nc; sh dat/att mytype.nc; can data mytype
- currently SET data sets:
- 2> ./mytype.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V6.85 12-Nov-13
- Conventions CHAR 6 F CF-1.0
-
-(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
- axis CHAR 1 T T
- calendar CHAR 9 T GREGORIAN
- time_origin CHAR 11 T 15-JAN-1901
- standard_name CHAR 4 F time
- orig_file_axnameCHAR 7 F MYHOURS
-
- TT DOUBLE missing_value DOUBLE 1 T -9999
- _FillValue DOUBLE 1 T -9999
- long_name CHAR 22 T T[GT=MYHOURS] - 779832
-
-
-
-! not all axes can be correctly represented in all data types
-! Intentional errors:
-set mode ignore
-
-define axis/t=1-jan-1990:1-feb-1992:2/units=seconds myseconds
-let tt = t[gt=myseconds] - `t[gt=myseconds,L=1]`
- !-> DEFINE VARIABLE tt = t[gt=myseconds] - 2.8073952E+09
-
-set axis/outtype=int myseconds
-save/L=32875000:32875201/clobber/file=mytype.nc tt
-
-
-use proleptic_gregorian.nc
-set axis/outtype=byte `my_data,return=taxis`
- !-> set axis/outtype=byte TDAYS1
-save/clobber/file=mytype.nc my_data
-
-set axis/outtype=int `my_data,return=taxis`
- !-> set axis/outtype=int TDAYS1
-save/clobber/file=mytype.nc my_data
-
-cancel mode ignore
-
-
-GO bn_reset
-cancel mode verify
-GO bn_axis_nonmonotonic
-! bn_axis_nonmonotonic.jnl
-! bn_define_axis doesnt test the case where the varible is not monotonic
-! ACM 11/2012 With Ferret v6.83+ the message tells us the index value
-
-! Intentional error
-
-set mode ignore
-let tvar = {85, 86, 86, 87, 88, 89, 90, 91, 92, 92, 92, 91, 92, 94, 95, 98}
-define axis/t/units=days tax = tvar
-
-cancel mode ignore
-
-GO bn_reset
-cancel mode verify
-GO bn_vec_mod
-! bn_vec_mod.jnl
-! /MODULO qualifier for the vector command.
-! 12/12/2012 ACM
-!
-! (Note for a test of POLY/MODULO see
-! /home/users/ansley/ans_ferret/users/brockmann/polymod.jnl)
-
-use tripolar_subset.nc
-
-! Define a V component for vectors
-
-let fakev = 0.8*u - 0.1*geolat_c
-set view ul
-vec u,fakev,geolon_c,geolat_c
-set view ll
-vec/MOD/HLIM=0:360 u,fakev,geolon_c,geolat_c
-set view lr
-vec/MOD/HLIM=-180:180 u,fakev,geolon_c,geolat_c
-
-can view
-
-! *********** v6.85 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn685_bug_fixes
-! bn685_bug_fixes.jnl
-! test various fixes that went into version 6.85
-! 1/2013 ACM
-
-GO bn_reset
-cancel mode verify
-GO err684_label_quotes
-! err684_label_quotes.jnl
-! See ticket 1298.
-
-! A long-standing bug, error message if a label
-! enclosed in single quotes is sent to pplus
-! The single quotes triggers an attempt to translate
-! a pplus symbol.
-
-plot/set/i=1:12 1./i
- ppl xlab "'My X label'"
- ppl ylab "'My Y Label'"
- ppl title "'A title w/ single quotes'. Need not be in pairs: Ka'imimoana"
-ppl plot
-
-
-! Here is the example from the ticket
-
-! This is ok
-say "'hello'"
-'hello'
-
-! this returned an error
-label 4.5 .5 0 0 .3 "'hello'"
-
-GO bn_reset
-cancel mode verify
-GO err684_context_shape
-! when limits are omitted with a compressing transformation the grave
-! accent R=SHAPE erroneously includes the corresponding axis in the shape
-
-! The problem was when INTERP_CONTEXT calls COMPLETE_MISSING_LIMITS.
-! That routine fills in both the SS and the WW limits as the full axis span.
-! in a full-fledged evaluation occurred the ss limits would be set to
-! -999:-999 at the time that the transform was stripped from the stack
-
-! The fix is to simulate this action inside of INTERP_CONTEXT
-
-use coads_climatology
-say `sst[l=1:12 at ave],ret=shape`
- !-> MESSAGE/CONTINUE XY
-XY
-say `sst[l=@ave],ret=shape`
- !-> MESSAGE/CONTINUE XY
-XY
-
-let a = sst[l=1:12 at ave]
-let b = sst[l=@ave]
-say `a,ret=shape`
- !-> MESSAGE/CONTINUE XY
-XY
-say `b,ret=shape`
- !-> MESSAGE/CONTINUE XY
-XY
-
-GO bn_reset
-cancel mode verify
-GO err684_tax_fcns
-!err684_tax_fcns.jnl
-! See ticket 2043, bug in workaround for single-precision arguments
-! no longer needed in double-precision Ferret
-! The output at 13-oct and 18-oct was incorrect
-
- define axis/t/units=days/t0=1-jan-1950 tday = { \
- 20724.935546875, 20729.921875, 20734.951171875,\
-20739.96484375, 20744.939453125, 20749.8984375, 20754.92578125}
-
- let var = t[gt=tday]
-
-
- list/L=3:7 tax_datestring(var, var, "second")
- VARIABLE : TAX_DATESTRING(VAR, VAR, "second")
- SUBSET : 5 points (TIME)
- 08-OCT-2006 22 / 3:"08-OCT-2006 22:49:41"
- 13-OCT-2006 23 / 4:"13-OCT-2006 23:09:22"
- 18-OCT-2006 22 / 5:"18-OCT-2006 22:32:48"
- 23-OCT-2006 21 / 6:"23-OCT-2006 21:33:45"
- 28-OCT-2006 22 / 7:"28-OCT-2006 22:13:07"
-
- list/L=3:7 tax_day(var, var)
- VARIABLE : TAX_DAY(VAR, VAR)
- SUBSET : 5 points (TIME)
- 08-OCT-2006 22 / 3: 8.00
- 13-OCT-2006 23 / 4: 13.00
- 18-OCT-2006 22 / 5: 18.00
- 23-OCT-2006 21 / 6: 23.00
- 28-OCT-2006 22 / 7: 28.00
-
- list/L=3:7 tax_dayfrac(var, var)
- VARIABLE : TAX_DAYFRAC(VAR, VAR)
- SUBSET : 5 points (TIME)
- 08-OCT-2006 22 / 3: 0.9512
- 13-OCT-2006 23 / 4: 0.9648
- 18-OCT-2006 22 / 5: 0.9394
- 23-OCT-2006 21 / 6: 0.8984
- 28-OCT-2006 22 / 7: 0.9258
-
- list/L=3:7 tax_jday(var, var)
- VARIABLE : TAX_JDAY(VAR, VAR)
- SUBSET : 5 points (TIME)
- 08-OCT-2006 22 / 3: 281.0
- 13-OCT-2006 23 / 4: 286.0
- 18-OCT-2006 22 / 5: 291.0
- 23-OCT-2006 21 / 6: 296.0
- 28-OCT-2006 22 / 7: 301.0
-
- list/L=3:7 tax_jday1900(var, var)
- VARIABLE : TAX_JDAY1900(VAR, VAR)
- SUBSET : 5 points (TIME)
- 08-OCT-2006 22 / 3: 38996.
- 13-OCT-2006 23 / 4: 39001.
- 18-OCT-2006 22 / 5: 39006.
- 23-OCT-2006 21 / 6: 39011.
- 28-OCT-2006 22 / 7: 39016.
-
- list/L=3:7 tax_month(var, var)
- VARIABLE : TAX_MONTH(VAR, VAR)
- SUBSET : 5 points (TIME)
- 08-OCT-2006 22 / 3: 10.00
- 13-OCT-2006 23 / 4: 10.00
- 18-OCT-2006 22 / 5: 10.00
- 23-OCT-2006 21 / 6: 10.00
- 28-OCT-2006 22 / 7: 10.00
-
- list/L=3:7 tax_yearfrac(var, var)
- VARIABLE : TAX_YEARFRAC(VAR, VAR)
- SUBSET : 5 points (TIME)
- 08-OCT-2006 22 / 3: 0.7699
- 13-OCT-2006 23 / 4: 0.7836
- 18-OCT-2006 22 / 5: 0.7973
- 23-OCT-2006 21 / 6: 0.8110
- 28-OCT-2006 22 / 7: 0.8247
-
- list/L=3:7 tax_year(var, var)
- VARIABLE : TAX_YEAR(VAR, VAR)
- SUBSET : 5 points (TIME)
- 08-OCT-2006 22 / 3: 2006.
- 13-OCT-2006 23 / 4: 2006.
- 18-OCT-2006 22 / 5: 2006.
- 23-OCT-2006 21 / 6: 2006.
- 28-OCT-2006 22 / 7: 2006.
-
-
-GO bn_reset
-cancel mode verify
-GO err684_save_subset
-! err684_bug_save_subset
-! see ticke 2064, precision in internal comparison of coordinate data
-
-! previously gave a message about inconsistent coords
-
-use bug_save_subset.nc
-save/clobber/file=aa.nc/i=5:15 sh
-
-
-GO bn_reset
-cancel mode verify
-GO err684_save_subset
-! err684_bug_save_subset
-! see ticke 2064, precision in internal comparison of coordinate data
-
-! previously gave a message about inconsistent coords
-
-use bug_save_subset.nc
-save/clobber/file=aa.nc/i=5:15 sh
-
-
-GO bn_reset
-cancel mode verify
-GO err684_line_plot_zero
-! err684_line_plot_zero.jnl
-! plot all-zero variable gave blank plot.
-! For a correct plot, yaxis_min and yaxis_max should be -1.0 and 1.0 not 0.0, 0.0
-
-plot {0,0,0}
-sh sym yaxis*
-YAXIS_REVERSED = "0"
-YAXIS_MIN = "-1.0000000"
-YAXIS_MAX = "1.000000"
-
-
-GO bn_reset
-cancel mode verify
-GO err684_delimited_precision
-! err684_delimited_precision.jnl
-! 5/2013 Fixing bug 2066
-! Reading numeric data with /FORM=DELIM converted to single precision
-
-! Data has numeric, longitude, and latitude values needing double precision.
-! The seconds portion of time is also now read with double precision
-sp cat delim_prec.dat
- 734654.0000 330.1234500E 42.00001000N 00:00:1.00000001
- 734654.0104 330.1234600E 42.00004000N 00:00:1.00000003
- 734654.0208 330.1234700E 42.00006000N 00:00:1.00000007
- 734654.0313 330.1234800E 42.00007000N 00:00:1.000000095
-
-! Delimited read, automatically detect data types
-set data/ez/format=delim/del=" " delim_prec.dat
-list/i=1:5/prec=10 v1,v2,v3,v4
- DATA SET: ./delim_prec.dat
- X: 0.5 to 4.5
- Column 1: V1
- Column 2: V2 is V2 (degrees_east)(Longitude)
- Column 3: V3 is V3 (degrees_north)(Latitude)
- Column 4: V4 is V4 (hours)(Time of day)
- V1 V2 V3 V4
-1 / 1: 734654.0000 330.1234500 42.00001000 2.777777806E-04
-2 / 2: 734654.0104 330.1234600 42.00004000 2.777777861E-04
-3 / 3: 734654.0208 330.1234700 42.00006000 2.777777972E-04
-4 / 4: 734654.0313 330.1234800 42.00007000 2.777778042E-04
-
-! Delimited read, specify data types
-can dat/all
-set data/ez/format=delim/del=" "/var="day,lon,lat,tim"/type="numeric,longitude,latitude,time" delim_prec.dat
-list/prec=10 day, lon, lat, tim
- DATA SET: ./delim_prec.dat
- X: 0.5 to 4.5
- Column 1: DAY
- Column 2: LON is LON (degrees_east)(Longitude)
- Column 3: LAT is LAT (degrees_north)(Latitude)
- Column 4: TIM is TIM (hours)(Time of day)
- DAY LON LAT TIM
-1 / 1: 734654.0000 330.1234500 42.00001000 2.777777806E-04
-2 / 2: 734654.0104 330.1234600 42.00004000 2.777777861E-04
-3 / 3: 734654.0208 330.1234700 42.00006000 2.777777972E-04
-4 / 4: 734654.0313 330.1234800 42.00007000 2.777778042E-04
-
-
-GO bn_reset
-cancel mode verify
-GO err6842_context_shape
-! err6842_context_shape.jnl
-! 5/2013 acm
-! Continuing the fixes for #1801 (see ticket 2051, and
-! see err68_context_shape.jnl
-
-! Compound expressions did not always return the correct
-! result,depending on the order of the sub-expressions.
-
-use coads_climatology
-
-! All the returns in this script should say XYT
-
-! Here the second used to just say XY
-
-let a = sst - sst[t=1:12 at ave]
-let b = sst - sst[t=@ave]
-say `a,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `b,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-
-let a = sst[t=1:12 at ave] + sst
-let b = sst[t=@ave] + sst
-say `a,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `b,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-
-! The second used to just say XY
-! and the third said XY
-
-let a = sst - sst[t=1:12 at ave] + sst[x=1:100 at ave]
-let b = sst - sst[t=@ave] + sst[x=@ave]
-let c = sst - sst[x=@ave] + sst[t=@ave]
-say `a,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `b,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `c,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-
-
-GO bn_reset
-cancel mode verify
-GO err684_evnt_z
-! err684_evnt_z.jnl
-! see ticket 2054
-
-! Result of @EVNT is correct in x direction
-
-let my_var1 = { 0, 0, 1, 2, 3, 4 }
-let my_event1 = my_var1[x=@evnt:0.1]
-list my_var1, my_event1! Right answer
- X: 0.5 to 6.5
- Column 1: MY_VAR1 is { 0, 0, 1, 2, 3, 4 }
- Column 2: MY_EVENT1 is MY_VAR1[X=@EVNT:0.1]
- MY_VAR1 MY_EVENT1
-1 / 1: 0.000 0.000
-2 / 2: 0.000 0.000
-3 / 3: 1.000 1.000
-4 / 4: 2.000 1.000
-5 / 5: 3.000 1.000
-6 / 6: 4.000 1.000
-
-! Should be same in the Z direction:
-
-let my_var = zsequence( my_var1)
-let my_event = my_var[z=@evnt:0.1]
-list my_var, my_event
- Z: 0.5 to 6.5
- Column 1: MY_VAR is ZSEQUENCE( MY_VAR1)
- Column 2: MY_EVENT is MY_VAR[Z=@EVNT:0.1]
- MY_VAR MY_EVENT
-1 / 1: 0.000 0.000
-2 / 2: 0.000 0.000
-3 / 3: 1.000 1.000
-4 / 4: 2.000 1.000
-5 / 5: 3.000 1.000
-6 / 6: 4.000 1.000
-
-
-
-GO bn_reset
-cancel mode verify
-GO err684_save_expression
-! err684_save_expression.jnl
-! Bug 2076. If we write out an expression that has not been defined
-! as a user-variable, the variable didn't have missing_value and _FillValue
-! attributes and was written as single-precision float.
-
-! Define a variable - result is correct
-use coads_climatology
-let a = sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
-save/clob/file=a.nc a
-sp ncdump a.nc
-netcdf a {
-dimensions:
- TIME = UNLIMITED ; // (3 currently)
-variables:
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- double A(TIME) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- A:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
- A:history = "From coads_climatology" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- TIME = 366, 1096.485, 1826.97 ;
-
- A = -0.0994369294620938, -0.0415768591395995, 0.141480238198149 ;
-}
-
-save/clob/file=aa.nc sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
-sp ncdump aa.nc
-netcdf aa {
-dimensions:
- TIME = UNLIMITED ; // (3 currently)
-variables:
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- double E410(TIME) ;
- E410:missing_value = -1.e+34 ;
- E410:_FillValue = -1.e+34 ;
- E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
- E410:history = "From coads_climatology" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- TIME = 366, 1096.485, 1826.97 ;
-
- E410 = -0.0994369294620938, -0.0415768591395995, 0.141480238198149 ;
-}
-
-! Double check the missing-value matches what is written.
-
-save/clob/file=aa.nc/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
-use aa.nc
-list e410
- VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
- X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
- FILENAME : aa.nc
- SUBSET : 4 by 3 points (LATITUDE-TIME)
- 81S 79S 77S 75S
- 1 2 3 4
- 16-JAN / 1: .... .... 0.278 0.379
- 15-FEB / 2: .... .... -0.005 -0.122
- 17-MAR / 3: .... .... -1.028 -0.484
-
-can dat 2
-
-! Can we ask to save as another data type?
-! Note can't set the bad-flag of an expresion so
-! asking for type of INT cannot match missing to
-! data type so will fail.
-
-save/clob/file=aa.nc/outtype=float sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
-sp ncdump aa.nc
-netcdf aa {
-dimensions:
- TIME = UNLIMITED ; // (3 currently)
-variables:
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float E410(TIME) ;
- E410:missing_value = -1.e+34f ;
- E410:_FillValue = -1.e+34f ;
- E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
- E410:history = "From coads_climatology" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- TIME = 366, 1096.485, 1826.97 ;
-
- E410 = -0.09943693, -0.04157686, 0.1414802 ;
-}
-
-save/clob/file=aa.nc/outtype=float/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
-use aa.nc
-list e410
- VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
- X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
- FILENAME : aa.nc
- SUBSET : 4 by 3 points (LATITUDE-TIME)
- 81S 79S 77S 75S
- 1 2 3 4
- 16-JAN / 1: .... .... 0.278 0.379
- 15-FEB / 2: .... .... -0.005 -0.122
- 17-MAR / 3: .... .... -1.028 -0.484
-
-can dat 2
-
-! Note can't set the bad-flag of an expresion so
-! asking for type of INT cannot match missing to
-! data type so will return an error.
-
-set mode ignore
-save/clob/file=aa.nc/outtype=int sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
-
-set mode/last ignore
-
-GO bn_reset
-cancel mode verify
-GO err684_degC_axlab
-! err684_degC_axlab.jnl
-! ACM 6/2013
-! See ticket 2080. Units of degree_C interpreted as if degree_north.
-
-ppl clsplt
-set win/asp=1
-can mode logo
-set mode meta degC_axlab.plt
-
-let/units="degree_C"/title=temperature temp = {1,2,3,2,0}
-let/units="m"/title=depth depth = {1,5,1,5,0}
-plot/vs temp, depth
-
-set mode/last meta
-set mode/last logo
-
-GO bn_reset
-cancel mode verify
-GO err684_null_stringwrite
-! err684_null_stringwrite.jnl
-! 18-Jun-2013 ACM
-!
-! Bug 2081
-! write a null string variable (0-length string) to NetCDF
-
-! This is ok
-let avar = {"a", "", "c"}
-save/file=a.nc/clobber avar
-
-! Write just a null value resulted in a NetCDF library error
-
-set mode ignore
-let anull = avar[i=2]
-
-save/clobber/file=a.nc anull
-set mode/last ignore
-
-
-GO bn_reset
-cancel mode verify
-GO err684_FillValue_xml
-! err684_FillValue_xml.jnl
-! ACM 6/2013
-!
-! See the dataset at http://ferret.pmel.noaa.gov/thredds/dodsC/woa09_1deg_monthly
-! where the "number of" variables have _FillValues attributes = -2147483647
-! This value was being written to the xml headers as a float, without enough precision.
-! See las ticket #761, fixes in show_data_set_vars_xml.F
-
-! should be <value>-2147483647</value>
-! instead of: <value>-2.147484E+09</value>
-
-use fill_value_int.nc
-sh dat/var/xml
-<datasets>
-<dataset name="./fill_value_int.nc" default="true">
-<title>INT variable with _FillValue -2147483647</title>
-<var name="A_dd">
-<attribute name="units" type="char">
- <value><![CDATA[1]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[Number of O2 Utilization Observations]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
- <value> -2147483647</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[LONG]]></value>
-</attribute>
-<grid name="GEW1">
-<axes>
-<xaxis>LON1</xaxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="LON1">
-<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_east]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>2</value>
-</attribute>
-<attribute name="start" type="double">
- <value>300.5</value>
-</attribute>
-<attribute name="end" type="double">
- <value>301.5</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
- <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="axis" type="char">
- <value><![CDATA[X]]></value>
-</attribute>
-</axis>
-</axes>
-
-GO bn_reset
-cancel mode verify
-GO err684_axticlab
-! err684_axticlab
-! 7/10/2013 *acm
-!
-! ticket 1990: axis tic labels for higher precison data
-! had just 2 digits, and didnt capture the data range.
-
-set mode meta axticlabel.plt
-
-let/title="tic labels on dependent axis" var = {\
-1.715,1.7136,1.711,1.7083,1.7056,1.703,1.7003,1.6976,1.695,1.6923,\
-1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
-
-plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
-
-
-GO bn_reset
-cancel mode verify
-GO err684_dotstart
-! err684_dotstart.jnl
-! 12-Jul-2013 ACM
-!
-! Bug 2084. Avoid a STOP if the expression starts with a .
-! Issue a normal error message if its an invalid string.
-
-set mode ignore
-
-! This previously kicked out with STOP ALG_BREAK_UP
-! Now will issue an error
-list .hello
-
-! Related syntax: var.att. Generate errors since no dataset is open
-list a.units
-list ..history
-
-! Just a dot is interpretd as a number.
-list .
- VARIABLE : constant
- 0.0000
-
-set mode/last ignore
-
-GO bn_reset
-cancel mode verify
-GO err684_vfine_to_coarse
- ! err684_vfine_to_coarse
- ! see ticket 2070.
-
-def ax/x/edge axi = {0,31,61,92}
-def ax/x/edge axi_coarse = {0, 92}
-let vdat = {3.034547, 3.078104, 3.059311}
-let v = vdat[gx=axi at asn]
-let v_coarse = v[gx=axi_coarse at max]
-
-list v_coarse
- VARIABLE : V[GX=AXI_COARSE at MAX]
- X : 46
- 3.078
-list v eq v_coarse[gx=v at ave]
- VARIABLE : V EQ V_COARSE[GX=V at AVE]
- SUBSET : 3 points (X)
- 15.5 / 1: 0.000
- 46 / 2: 1.000
- 76.5 / 3: 0.000
-
-
-! Y direction
-can var/all
-
-def ax/y/edge axi = {0,31,61,92}
-def ax/y/edge axi_coarse = {0, 92}
-let vdat = ySEQUENCE({3.034547, 3.078104, 3.059311})
-let v = vdat[gy=axi at asn]
-let v_coarse = v[gy=axi_coarse at max]
-
-list v_coarse
- VARIABLE : V[GY=AXI_COARSE at MAX]
- Y : 46
- 3.078
-list v eq v_coarse[gy=v at ave]
- VARIABLE : V EQ V_COARSE[GY=V at AVE]
- SUBSET : 3 points (Y)
- 15.5 / 1: 0.000
- 46 / 2: 1.000
- 76.5 / 3: 0.000
-
-
-! Z direction
-can var/all
-
-def ax/z/edge axi = {0,31,61,92}
-def ax/z/edge axi_coarse = {0, 92}
-let vdat = zSEQUENCE({3.034547, 3.078104, 3.059311})
-let v = vdat[gz=axi at asn]
-let v_coarse = v[gz=axi_coarse at max]
-
-list v_coarse
- VARIABLE : V[GZ=AXI_COARSE at MAX]
- Z : 46
- 3.078
-list v eq v_coarse[gz=v at ave]
- VARIABLE : V EQ V_COARSE[GZ=V at AVE]
- SUBSET : 3 points (Z)
- 15.5 / 1: 0.000
- 46 / 2: 1.000
- 76.5 / 3: 0.000
-
-
-! T direction
-can var/all
-
-def ax/t/edge axi = {0,31,61,92}
-def ax/t/edge axi_coarse = {0, 92}
-let vdat = TSEQUENCE({3.034547, 3.078104, 3.059311})
-let v = vdat[gt=axi at asn]
-let v_coarse = v[gt=axi_coarse at max]
-
-list v_coarse
- VARIABLE : V[GT=AXI_COARSE at MAX]
- T : 46
- 3.078
-list v eq v_coarse[gt=v at ave]
- VARIABLE : V EQ V_COARSE[GT=V at AVE]
- SUBSET : 3 points (T)
- 15.5 / 1: 0.000
- 46 / 2: 1.000
- 76.5 / 3: 0.000
-
-
-! E direction
-can var/all
-
-def ax/e/edge axi = {0,31,61,92}
-def ax/e/edge axi_coarse = {0, 92}
-let vdat = ESEQUENCE({3.034547, 3.078104, 3.059311})
-let v = vdat[ge=axi at asn]
-let v_coarse = v[ge=axi_coarse at max]
-
-list v_coarse
- VARIABLE : V[GE=AXI_COARSE at MAX]
- E : 46
- 3.078
-list v eq v_coarse[ge=v at ave]
- VARIABLE : V EQ V_COARSE[GE=V at AVE]
- SUBSET : 3 points (E)
- 15.5 / 1: 0.000
- 46 / 2: 1.000
- 76.5 / 3: 0.000
-
-
-
-! F direction
-can var/all
-
-def ax/f/edge axi = {0,31,61,92}
-def ax/f/edge axi_coarse = {0, 92}
-let vdat = FSEQUENCE({3.034547, 3.078104, 3.059311})
-let v = vdat[gf=axi at asn]
-let v_coarse = v[gf=axi_coarse at max]
-
-list v_coarse
- VARIABLE : V[GF=AXI_COARSE at MAX]
- F : 46
- 3.078
-list v eq v_coarse[gf=v at ave]
- VARIABLE : V EQ V_COARSE[GF=V at AVE]
- SUBSET : 3 points (F)
- 15.5 / 1: 0.000
- 46 / 2: 1.000
- 76.5 / 3: 0.000
-
-GO bn_reset
-cancel mode verify
-GO err684_repeated_coordindates
-! err685_repeated_coordindates.jnl
-! The NOTE about repeated axis coordaintes reported the wrong index location.
-
-use latestOb.nc
-
-
-GO bn_reset
-cancel mode verify
-GO err684_packed_output
-! err684_packed_output.jnl
-! See ticket 2089
-! By default keep the output type, means we need to
-! re-pack packed data.
-
-use err684_packed_output.nc
-list/i=1:3 sst
- VARIABLE : Daily Sea Surface Temperature (degC)
- FILENAME : err684_packed_output.nc
- SUBSET : 3 by 4 points (LONGITUDE-LATITUDE)
- TIME : 01-OCT-2012 00:00
- 80.13E 80.38E 80.63E
- 1 2 3
- 15.88N / 4: .... .... 29.03
- 15.63N / 3: .... 29.18 29.09
- 15.38N / 2: 29.36 29.21 29.10
- 15.13N / 1: 29.40 29.27 29.13
-
-! data is SHORT, is not scaled
-
-save/clobber/file=sst_new.nc sst
-
-can data/all
-use sst_new.nc
-list/i=1:3 sst
- VARIABLE : Daily Sea Surface Temperature (degC)
- FILENAME : sst_new.nc
- SUBSET : 3 by 4 points (LONGITUDE-LATITUDE)
- TIME : 01-OCT-2012 00:00
- 80.13E 80.38E 80.63E
- 1 2 3
- 15.88N / 4: .... .... 29.03
- 15.63N / 3: .... 29.18 29.09
- 15.38N / 2: 29.36 29.21 29.10
- 15.13N / 1: 29.40 29.27 29.13
-
-
-GO bn_reset
-cancel mode verify
-GO err684_string_dim_name
-! err685_string_dim_name.jnl
-! Ticket 2091. If the string variable shares its dimension name,
-! want to just mark it as a file variable not a coord variable.
-
-! Previously issued warnings about string coordinate variable.
-use trajectory_trajectory_name.nc
-
-! Previously trajectory was not listed among the file variables.
-list ..varnames
- VARIABLE : ..VARNAMES
- FILENAME : trajectory_trajectory_name.nc
- SUBSET : 6 points (X)
- 1 / 1:"trajectory"
- 2 / 2:"rowSize"
- 3 / 3:"longitude"
- 4 / 4:"latitude"
- 5 / 5:"time"
- 6 / 6:"temp"
-
-
-GO bn_reset
-cancel mode verify
-GO err684_define_grid
-! err684_define_grid.jnl
-! 25-Oct-2013 ACM
-!
-! Bug 2096, defining grid with some user-defined axes. Previously
-! this resulted in err msg with inappropriate orientation for Z axis
-
-define axis/z=0:100:2/depth/unit=meters zax
-define axis/x=-178:-157:1/units=degrees_east lon_ax
-define axis/y=54:66:0.5/units=degrees_north lat_ax
-
-define grid/x=lon_ax/y=lat_ax/z=zax three_d_grd
-
-
-GO bn_reset
-cancel mode verify
-GO bn_dsg_e_x
-! bn_dsg_e.jnl
-!
-! Discrete Sampling Geometries files
-! Create grids such that the instance dimension
-! is on the E axis, so that the variable which
-! has the cf_role attribute has an E grid.
-! The obs axis is in the X direction.
-
-use dsg.nc
-sh dat
- currently SET data sets:
- 1> ./dsg.nc (default)
- name title I J K L M N
- ROWSIZE number of obs for this profile ... ... ... ... 1:3 ...
- PROFILE profile ID: Cruise and Station ... ... ... ... 1:3 ...
- TIME time ... ... ... ... 1:3 ...
- LATITUDE station latitude ... ... ... ... 1:3 ...
- LONGITUDE
- station longitude ... ... ... ... 1:3 ...
- POT_TEMP_DEGC
- pot_temp_degc 1:34 ... ... ... ... ...
- SAL sal 1:34 ... ... ... ... ...
-
-sh att profile
- attributes for dataset: ./dsg.nc
- profile.missing_value = -1.E+34
- profile._FillValue = -1.E+34
- profile.long_name = profile ID: Cruise and Station
- profile.cf_role = profile_id
- profile.history = From FINAL_verification_data_all_PacOOS_NHL_OCNMS_CCCC_03072013.txt
-sh grid rowsize
- GRID GEN1
- name axis # pts start end
- normal X
- normal Y
- normal Z
- normal T
- PROF E 3 r 1 3
- normal F
-sh grid sal
- GRID GEN2
- name axis # pts start end
- OBS X 34 r 1 34
- normal Y
- normal Z
- normal T
- normal E
- normal F
-
-GO bn_reset
-cancel mode verify
-GO bn_nco_append
-! bn_nco_append.jnl
-! 5/2013 add a test appending files with ncks
-
- ! These functions use Unix NCO utilities, found at http://nco.sourceforge.net/
- ! If NCO is not installed, it is fine to comment out this script when running
- ! the Ferret benchmark suite.
-
-! Prior to v6.85 Ferret's NCO function always included -O for Override.
-! Appending failed. In v6.85+, if -A is included then dont send -O to ncks.
-use z1
-use z2
-sh dat
- currently SET data sets:
- 1> ./z1.nc
- name title I J K L M N
- DDAT_ORIG
- DDAT[GZ=ZAXIS_ORIG at ASN] ... ... 1:5 ... ... ...
-
- 2> ./z2.nc (default)
- name title I J K L M N
- CYCLE_ORIG
- CYCLE[GZ=ZAXIS_ORIG at ASN] ... ... 1:5 ... ... ...
-
-
-! Write a file to be appended to and append variable in z1.nc to the file.
-
-save/clobber/file=append_to_this.nc cycle_orig
-load nco("ncks", "-A -h z1.nc append_to_this.nc")
-sp ncdump -h append_to_this.nc
-netcdf append_to_this {
-dimensions:
- ZAXIS_ORIG = 5 ;
-variables:
- double ZAXIS_ORIG(ZAXIS_ORIG) ;
- ZAXIS_ORIG:point_spacing = "even" ;
- ZAXIS_ORIG:axis = "Z" ;
- ZAXIS_ORIG:standard_name = "altitude" ;
- double CYCLE_ORIG(ZAXIS_ORIG) ;
- CYCLE_ORIG:missing_value = -1.e+34 ;
- CYCLE_ORIG:_FillValue = -1.e+34 ;
- CYCLE_ORIG:long_name = "CYCLE[GZ=ZAXIS_ORIG at ASN]" ;
- CYCLE_ORIG:history = "From z2" ;
- double DDAT_ORIG(ZAXIS_ORIG) ;
- DDAT_ORIG:missing_value = -1.e+34 ;
- DDAT_ORIG:_FillValue = -1.e+34 ;
- DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
-
-// global attributes:
- :history = "Tue Nov 12 15:13:58 2013: ncks -h -A -h z1.nc append_to_this.nc\n",
- "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-
-GO bn_reset
-cancel mode verify
-GO bn_nobounds
-! bn_nobounds.jnl
-! The SAVE/NOBOUNDS qualifier causes bounds never to be written
-! even if the data is irregular, and even if the axis came into
-! Ferret with bounds.
-
-define axis/x/units=meters xirreg = {0,1,2,4,8}
-let avar = x[gx=xirreg]
-save/clobber/file=a.nc avar
-sp ncdump a.nc
-netcdf a {
-dimensions:
- XIRREG = 5 ;
- bnds = 2 ;
-variables:
- double XIRREG(XIRREG) ;
- XIRREG:point_spacing = "uneven" ;
- XIRREG:axis = "X" ;
- XIRREG:bounds = "XIRREG_bnds" ;
- XIRREG:units = "meters" ;
- double XIRREG_bnds(XIRREG, bnds) ;
- double AVAR(XIRREG) ;
- AVAR:missing_value = -1.e+34 ;
- AVAR:_FillValue = -1.e+34 ;
- AVAR:long_name = "X[GX=XIRREG]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XIRREG = 0, 1, 2, 4, 8 ;
-
- XIRREG_bnds =
- -0.5, 0.5,
- 0.5, 1.5,
- 1.5, 3,
- 3, 6,
- 6, 10 ;
-
- AVAR = 0, 1, 2, 4, 8 ;
-}
-save/nobounds/clobber/file=a.nc avar
-sp ncdump a.nc
-netcdf a {
-dimensions:
- XIRREG = 5 ;
-variables:
- double XIRREG(XIRREG) ;
- XIRREG:point_spacing = "uneven" ;
- XIRREG:axis = "X" ;
- XIRREG:units = "meters" ;
- double AVAR(XIRREG) ;
- AVAR:missing_value = -1.e+34 ;
- AVAR:_FillValue = -1.e+34 ;
- AVAR:long_name = "X[GX=XIRREG]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XIRREG = 0, 1, 2, 4, 8 ;
-
- AVAR = 0, 1, 2, 4, 8 ;
-}
-
-! The dataset has a bounds attribute on the time axis
-! (the bounds themselves get corrected by Ferret on opening the file)
-use gappy_bounds.nc
-sh dat
- currently SET data sets:
- 1> ./gappy_bounds.nc (default)
- name title I J K L M N
- A SST[X=150:180 at AVE,Y=-10:0 at AVE] ... ... ... 1:6 ... ...
-
-
-! See the bounds attribute on the t axis
-sh dat/att
- currently SET data sets:
- 1> ./gappy_bounds.nc (default)
- Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-
- . history CHAR 24 T FERRET V5.60 24-May-04
-
-(TGAP) DOUBLE units CHAR 30 T DAYS since 1990-01-01 00:00:00
- time_origin CHAR 20 T 01-JAN-1990 00:00:00
- axis CHAR 1 T T
- bounds CHAR 9 T TGAP_bnds
- orig_file_axnameCHAR 4 F TGAP
-
- TGAP_bnds DOUBLE
-
- A FLOAT missing_value FLOAT 1 T -1.E+34
- _FillValue FLOAT 1 T -1.E+34
- long_name CHAR 30 T SST[X=150:180 at AVE,Y=-10:0 at AVE]
- history CHAR 10 T From coads
-
-
-! On a SAVE/NOBOUNDS, do not write the bounds
-! and do not write a bounds attribute on the axis.
-save/clobber/file=a.nc/nobounds a
-sp ncdump -h a.nc
-netcdf a {
-dimensions:
- TGAP = UNLIMITED ; // (6 currently)
-variables:
- double TGAP(TGAP) ;
- TGAP:units = "days since 1990-01-01 00:00:00" ;
- TGAP:time_origin = "01-JAN-1990 00:00:00" ;
- TGAP:axis = "T" ;
- TGAP:standard_name = "time" ;
- float A(TGAP) ;
- A:missing_value = -1.e+34f ;
- A:_FillValue = -1.e+34f ;
- A:long_name = "SST[X=150:180 at AVE,Y=-10:0 at AVE]" ;
- A:history = "From coads" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-
-! On a SAVE either with /BOUNDS or no bounds qualifier,
-! bounds are written for this irregular time axis.
-save/clobber/file=a.nc/bounds a
-
-sp ncdump -h a.nc
-netcdf a {
-dimensions:
- TGAP = UNLIMITED ; // (6 currently)
- bnds = 2 ;
-variables:
- double TGAP(TGAP) ;
- TGAP:units = "days since 1990-01-01 00:00:00" ;
- TGAP:time_origin = "01-JAN-1990 00:00:00" ;
- TGAP:axis = "T" ;
- TGAP:bounds = "TGAP_bnds" ;
- TGAP:standard_name = "time" ;
- double TGAP_bnds(TGAP, bnds) ;
- float A(TGAP) ;
- A:missing_value = -1.e+34f ;
- A:_FillValue = -1.e+34f ;
- A:long_name = "SST[X=150:180 at AVE,Y=-10:0 at AVE]" ;
- A:history = "From coads" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-
-
-GO bn_reset
-cancel mode verify
-GO bn_write_integer_att
-! bn_write_integer_att.jnl
-! ACM 6/2013
-!
-! This file has an integer attribute
-! MHCHLA:numberOfObservations = 15736939 ;
-! With double-precision Ferret, we need to call CD_WRITE_ATTVAL_DP
-! in cdf_list.F, so that the value, read in as a double, is written
-! out correctly (else get a netcdf data type matching error).
-
-use write_int_att.nc
-sh att mhchla
- attributes for dataset: ./write_int_att.nc
- MHCHLA.missing_value = -9999999
- MHCHLA._FillValue = -9999999
- MHCHLA.actual_range = 0.00049, 91.76669
- MHCHLA.coordsys = geographic
- MHCHLA.fraction_digits = 2
- MHCHLA.long_name = Chlorophyll-a, Aqua MODIS, NPP, 0.05 degrees, Global, Science Quality
- MHCHLA.numberOfObservations = 15736939
- MHCHLA.percentCoverage = 0.4216215
- MHCHLA.standard_name = concentration_of_chlorophyll_in_sea_water
- MHCHLA.units = mg m-3
- MHCHLA.history = From http://oceanwatch.pfeg.noaa.gov/thredds/dodsC/satellite/MH/chla/mday
-set att/output=all mhchla
-save/file=a.nc/clobber mhchla
-
-sp ncdump a.nc | grep numberOfObservations
- MHCHLA:numberOfObservations = 15736939 ;
-
-
-
-GO bn_reset
-cancel mode verify
-GO bn_descriptor_mc
-! bn_descriptor_mc.jnl
-! 7/2013 ACM
-! See ticket 2087
-!
-! Allow extension ".mc" to indicate a descriptor file, as discussed in
-! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2013/msg00355.html
-!
-use des.mc
-list/x=180/y=0 sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : des.mc
- SUBSET : 6 points (TIME)
- LONGITUDE: 180E (interpolated)
- LATITUDE : 0 (interpolated)
- 16-JAN-0000 / 1: 28.36
- 15-FEB-0000 / 2: 28.38
- 17-MAR-0000 / 3: 28.00
- 16-APR-0000 / 4: 27.99
- 16-MAY-0000 / 5: 28.41
- 16-JUN-0000 / 6: 28.23
-
-! Also implement /FORMAT=desriptor for both USE and SET DATA
-
-use/format=desc des.my_descriptor
-list /x=300/y=10 sst
- VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
- FILENAME : des.my_descriptor
- SUBSET : 4 points (TIME)
- LONGITUDE: 60W (interpolated)
- LATITUDE : 10N (interpolated)
- 17-MAR-0000 / 1: 26.70
- 16-APR-0000 / 2: 27.17
- 16-MAY-0000 / 3: 27.39
- 16-JUN-0000 / 4: 27.65
-
-GO bn_reset
-cancel mode verify
-GO bn_plot_color_only
-! bn_plot_color_only.jnl
-! 9/20/2013 ACM
-! ticket 2094
-! PLOT/COLOR with no argument skips the black pen and starts with the next one.
-
-let pi=atan(1.)*4.
-let a = (-1)*pi*4 + i[i=1:500]*(8*pi/500)
-let b = sin(a)/a
-
-
-set view upper
-plot/color b, b[i=@shf:20]
-
-! With user-defined colors
-ppl color 2, 0, 50, 100
-ppl color 3, 100, 50, 0
-set view lower
-plot/color/thick=3/dash=(0.05,0.1,0.2,0.1) b, b[i=@shf:20]
-
-! With extra user-defined colors
-can view
-set mode linec:12
-can win/all; set win/new
-ppl color,7,100,65,51 ! orange
-ppl color,8,0,55,0 ! dark green
-ppl color,9,60,0,100 ! purple
-ppl color,10,100,70,100 ! magenta
-ppl color,11,80,70,60 ! tan
-ppl color,12,100,88,0 ! yellow
-
-plot/thick/color/line/i=1:100 \
- cos(i/20), cos(i/24), cos(i/28), cos(i/32), \
- cos(i/36), cos(i/40), cos(i/44), cos(i/48), \
- cos(i/52), cos(i/56), cos(i/60), cos(i/64)
-
-cancel mode linecolors
-can win/all; set win/new
-
-! If lines are plotted using /OVER, Ferret keeps track of the number of lines
-! and continues with the next set of colors. When /startcolor is given, the
-! count is incremented so that subsequent plots continue with the color
-! sequence.
-
-! colors 1, 2, 3, 4
-set view upper
-plot/thick/i=1:50/vlim=-1.1:1.1 sin(i/6)
-plot/thick/i=1:50/over sin(i/7)
-plot/thick/i=1:50/over 0.6*sin(i/8)
-plot/thick/i=1:50/over 0.6*sin(i/9)
-
-! colors 2, 3, 4, 5
-set view lower
-plot/thick/i=1:50/vlim=-1.1:1.1/COLOR sin(i/6)
-plot/thick/i=1:50/over sin(i/7)
-plot/thick/i=1:50/over 0.6*sin(i/8)
-plot/thick/i=1:50/over 0.6*sin(i/9)
-
-! intentional errors
-! /COLOR (w/o argument) not allowed on PLOT/OVER.
-
-can view
-set mode ignore
-
-plot/i=1:100 sin(i/6)
-plot/i=1:100/over/COLOR 0.6*sin(i/7)
-
-! PLOT/COLOR not allowed on PLOT/RIBBON.
-
-can view
-plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
-
-set mode/last ignore
-
-
-
-GO bn_reset
-cancel mode verify
-GO bn_vtree
-! bn_tree.jnl
-
-! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
-
-CANCEL DATA/ALL
-! pure abstract variable -- no dataset
-let a = 1
-show var/tree a
- A = 1
-
-let b = 1
-let c = SIN(b)
-show var/tree c
- C = SIN(B)
- B = 1
-
-! create dummy datasets so we'll have named file variables to play with
-let fv1 = 1
-let fvx = x[i=1:3]
-let fvz = Z[k=1:3]
-SAVE/CLOBBER/QUIET/FILE=my_file_vars.nc fv1, fvx, fvz
-SAVE/CLOBBER/QUIET/FILE=other_file_vars.nc fv1
-SAVE/CLOBBER/QUIET/FILE=another_file_vars.nc fv1
-CAN VAR/ALL
-use my_file_vars, other_file_vars, another_file_vars
-set data 1
-
-! ================
-
-! more pure abstract variables
-let a = 1
-let b = 1
-let c = SIN(b)
-go bn_vtree.sub c
-/TREE=ALL
- in default dataset my_file_vars
- C = SIN(B)
- B = 1
-/TREE=USER
- in default dataset my_file_vars
- C = SIN(B)
- B = 1
-/TREE=FILE
-c is ready and AVAILABLE
-************************
-
-! file variables
-go bn_vtree.sub fv1
-/TREE=ALL
- in default dataset my_file_vars
- FV1
-/TREE=USER
-/TREE=FILE
- FV1[d=my_file_vars]
-fv1 is ready and AVAILABLE
-************************
-show var/tree/d=other_file_vars fv1
-
-! expressions
-let a = fv1 + fvx
-go bn_vtree.sub a
-/TREE=ALL
- in default dataset my_file_vars
- A = FV1 + FVX
- FV1
- FVX
-/TREE=USER
- in default dataset my_file_vars
- A = FV1 + FVX
-/TREE=FILE
- FV1[d=my_file_vars]
- FVX[d=my_file_vars]
-a is ready and AVAILABLE
-************************
-
-let a = fv1[d=1] - fv1[d=2]
-vtree=file a
- FV1[d=my_file_vars]
- FV1[d=other_file_vars]
-vtree=all a
- in default dataset my_file_vars
- A = FV1[D=1] - FV1[D=2]
- FV1
- FV1[d=other_file_var]
-vtree=all /d=1 a
- in default dataset my_file_vars
- A = FV1[D=1] - FV1[D=2]
- FV1
- FV1[d=other_file_var]
-vtree=all /d=2 a
- in default dataset other_file_vars
- A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1
-********************************
-
-! unrecognized variable names
-go bn_vtree.sub noexist
-/TREE=ALL
- in default dataset my_file_vars
- NOEXIST (unknown variable)
-/TREE=USER
- in default dataset my_file_vars
- NOEXIST (unknown variable)
-/TREE=FILE
- NOEXIST (unknown variable)
-the problem is UNKNOWN VARIABLE: NOEXIST
-************************
-
-! unrecognized dataset
-go bn_vtree.sub v[d=noexist]
-/TREE=ALL
- in default dataset my_file_vars
- V[D=NOEXIST] (unknown dataset)
-/TREE=USER
- in default dataset my_file_vars
- V[D=NOEXIST] (unknown dataset)
-/TREE=FILE
- V[D=NOEXIST] (unknown dataset)
-the problem is UNKNOWN DATASET: V[D=NOEXIST]
-************************
-
-! unrecognized dataset and variable
-go bn_vtree.sub novar[d=nodset]
-/TREE=ALL
- in default dataset my_file_vars
- NOVAR[D=NODSET] (unknown dataset)
-/TREE=USER
- in default dataset my_file_vars
- NOVAR[D=NODSET] (unknown dataset)
-/TREE=FILE
- NOVAR[D=NODSET] (unknown dataset)
-the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
-************************
-
-let b = noexist
-go bn_vtree.sub b
-/TREE=ALL
- in default dataset my_file_vars
- B = NOEXIST
- NOEXIST (unknown variable)
-/TREE=USER
- in default dataset my_file_vars
- B = NOEXIST
- NOEXIST (unknown variable)
-/TREE=FILE
- NOEXIST (unknown variable)
-the problem is UNKNOWN VARIABLE: NOEXIST
-************************
-
-! grid-changing functions
-go bn_vtree.sub RESHAPE(fvx,fvz)
-/TREE=ALL
- in default dataset my_file_vars
- FVX
- FVZ
-/TREE=USER
-/TREE=FILE
- FVX[d=my_file_vars]
- FVZ[d=my_file_vars]
-RESHAPE(fvx,fvz) is ready and AVAILABLE
-************************
-
-! file variable aux var
-LET Zpts = Z[Z=0:500:100]
-define axis/z/units=meters zax = zpts
-LET fv1z = fv1[gz(fvz)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
- in default dataset my_file_vars
- FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
- FV1
- FVZ
- FVX
-/TREE=USER
- in default dataset my_file_vars
- FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
-/TREE=FILE
- FV1[d=my_file_vars]
- FVZ[d=my_file_vars]
- FVX[d=my_file_vars]
-fv1z is ready and AVAILABLE
-************************
-
-! user-defined aux vars
-let depth = z[g=fvz]
-LET fv1z = fv1[gz(depth)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
- in default dataset my_file_vars
- FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
- FV1
- DEPTH = Z[G=FVZ]
- FVX
-/TREE=USER
- in default dataset my_file_vars
- FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
- DEPTH = Z[G=FVZ]
-/TREE=FILE
- FV1[d=my_file_vars]
- FVX[d=my_file_vars]
-fv1z is ready and AVAILABLE
-************************
-
-let depth = z[g=fvz]+ 0*fvz[k=1]
-LET fv1z = fv1[gz(depth)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
- in default dataset my_file_vars
- FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
- FV1
- DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
- FVZ
- FVX
-/TREE=USER
- in default dataset my_file_vars
- FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
- DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-/TREE=FILE
- FV1[d=my_file_vars]
- FVZ[d=my_file_vars]
- FVX[d=my_file_vars]
-fv1z is ready and AVAILABLE
-************************
-
-! unknown aux var
-LET fv1z = fv1[gz(noexist)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
- in default dataset my_file_vars
- FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
- NOEXIST (unknown auxiliary variable)
- FVX
-/TREE=USER
- in default dataset my_file_vars
- FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
- NOEXIST (unknown auxiliary variable)
-/TREE=FILE
- NOEXIST (unknown auxiliary variable)
- FVX[d=my_file_vars]
-the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
-************************
-
-! unknown variable with known aux var
-LET fv1z = noexist[gz(depth)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
- in default dataset my_file_vars
- FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
- DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
- FVZ
- FVX
-/TREE=USER
- in default dataset my_file_vars
- FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
- DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-/TREE=FILE
- NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
- FVZ[d=my_file_vars]
- FVX[d=my_file_vars]
-the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
-************************
-
-! unknown variable with unknown aux var
-LET fv1z = noexist[gz(unknown_aux)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
- in default dataset my_file_vars
- FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
- UNKNOWN_AUX (unknown auxiliary variable)
- FVX
-/TREE=USER
- in default dataset my_file_vars
- FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
- UNKNOWN_AUX (unknown auxiliary variable)
-/TREE=FILE
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
- UNKNOWN_AUX (unknown auxiliary variable)
- FVX[d=my_file_vars]
-the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
-************************
-
-! aggregate (ensemble) dataset of file variables
-define data/agg my_agg = my_file_vars, other_file_vars, another_file_vars
-go bn_vtree.sub fv1
-/TREE=ALL
- in default dataset MY_AGG
- FV1 (aggregate variable)
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- FV1[d=another_file_var]
-/TREE=USER
- in default dataset MY_AGG
- FV1 (aggregate variable)
-/TREE=FILE
-
- FV1[d=my_file_vars]
- FV1[d=other_file_vars]
- FV1[d=another_file_vars]
-fv1 is ready and AVAILABLE
-************************
-
-! aggregation in which some members are uvars
-let/d=other_file_vars fvx = fv1 + x[gx=fvx[d=1],i=1:3]
-let/d=another_file_vars fvx = 2*fv1 + x[gx=fvx[d=1],i=1:3]
-define data/agg my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
-go bn_vtree.sub fvx
-/TREE=ALL
- in default dataset MY_UVAR_AGG
- FVX (aggregate variable)
- FVX[d=my_file_var]
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=other_file_var]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=another_file_var]
-/TREE=USER
- in default dataset MY_UVAR_AGG
- FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-/TREE=FILE
-
- FVX[d=my_file_vars]
- FV1[d=other_file_vars]
- FV1[d=another_file_vars]
-fvx is ready and AVAILABLE
-************************
-
-! recursions
-! ... a circular parent dependency is a recursion; sibling dependency is not
-let p0 = s1 + p1
-let p1 = s2 + p2
-let p2 = s3 + p3
-let p3 = p1 + S3
-go bn_vtree.sub p0 ! recursion
-/TREE=ALL
- in default dataset MY_UVAR_AGG
- P0 = S1 + P1
- S1 (unknown variable)
- P1 = S2 + P2
- S2 (unknown variable)
- P2 = S3 + P3
- S3 (unknown variable)
- P3 = P1 + S3
- P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 (unknown variable)
-/TREE=USER
- in default dataset MY_UVAR_AGG
- P0 = S1 + P1
- S1 (unknown variable)
- P1 = S2 + P2
- S2 (unknown variable)
- P2 = S3 + P3
- S3 (unknown variable)
- P3 = P1 + S3
- P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 (unknown variable)
-/TREE=FILE
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S3 (unknown variable)
-the problem is ILLEGAL RECURSIVE VARIABLES: P1
-************************
-let p3 = s1 + S3
-go bn_vtree.sub p0 ! ok
-/TREE=ALL
- in default dataset MY_UVAR_AGG
- P0 = S1 + P1
- S1 (unknown variable)
- P1 = S2 + P2
- S2 (unknown variable)
- P2 = S3 + P3
- S3 (unknown variable)
- P3 = S1 + S3
- S1 (unknown variable)
- S3 (unknown variable)
-/TREE=USER
- in default dataset MY_UVAR_AGG
- P0 = S1 + P1
- S1 (unknown variable)
- P1 = S2 + P2
- S2 (unknown variable)
- P2 = S3 + P3
- S3 (unknown variable)
- P3 = S1 + S3
- S1 (unknown variable)
- S3 (unknown variable)
-/TREE=FILE
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S1 (unknown variable)
- S3 (unknown variable)
-the problem is UNKNOWN VARIABLE: S1
-************************
-
-! suppressing duplicated siblings (twins)
-let fv = fv1 + fv1 + fv1
-let uv = fvx + fvx + fvx
-show var/tree/d=my_file_vars fv
- in default dataset my_file_vars
- FV = FV1 + FV1 + FV1
-show var/tree/d=my_uvar_agg fv
- in default dataset MY_UVAR_AGG
- FV = FV1 + FV1 + FV1
- FV1 (aggregate variable)
-show var/tree/d=other_file_vars uv
- in default dataset other_file_vars
- UV = FVX + FVX + FVX
- FVX = FV1 + X[GX=FVX[D=1],I=1:3]
-show var/tree/d=my_uvar_agg uv
- in default dataset MY_UVAR_AGG
- UV = FVX + FVX + FVX
- FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-***************************
-
-! suppressing duplicates elsewhere in the family tree ("defined above")
-let b = c
-let c = 1
-let v1 = a + b + b^2
-let v2 = v1 + b + a + a ! a appears after v1
-let v3 = a + v1 + b + a + a ! a appears before v1
-go bn_vtree.sub v2
-/TREE=ALL
- in default dataset MY_UVAR_AGG
- V2 = V1 + B + A + A
- V1 = A + B + B^2
- A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- B = C
- C = 1
- B = (defined above)
- A = (defined above)
-/TREE=USER
- in default dataset MY_UVAR_AGG
- V2 = V1 + B + A + A
- V1 = A + B + B^2
- A = FV1[D=1] - FV1[D=2]
- B = C
- C = 1
- B = (defined above)
- A = (defined above)
-/TREE=FILE
- FV1[d=my_file_vars]
- FV1[d=other_file_vars]
-v2 is ready and AVAILABLE
-************************
-go bn_vtree.sub v3
-/TREE=ALL
- in default dataset MY_UVAR_AGG
- V3 = A + V1 + B + A + A
- A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- V1 = A + B + B^2
- A = (defined above)
- B = C
- C = 1
- B = (defined above)
-/TREE=USER
- in default dataset MY_UVAR_AGG
- V3 = A + V1 + B + A + A
- A = FV1[D=1] - FV1[D=2]
- V1 = A + B + B^2
- A = (defined above)
- B = C
- C = 1
- B = (defined above)
-/TREE=FILE
- FV1[d=my_file_vars]
- FV1[d=other_file_vars]
-v3 is ready and AVAILABLE
-************************
-
-! collections of trees handled as a group
-! display from large tree size to small, suppressing definitions already displayed
-cancel var/all
-let a = f
-let b = fv1[d=my_file_vars]
-let c = 1
-let d = b + c
-let e = 1
-go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
-/TREE=ALL
- in default dataset MY_UVAR_AGG
- D = B + C
- B = FV1[D=MY_FILE_VARS]
- FV1[d=my_file_var]
- C = 1
- A = F
- F (unknown variable)
- NOEXIST (unknown variable)
- E = 1
- FVX[d=my_file_var]
-/TREE=USER
- in default dataset MY_UVAR_AGG
- D = B + C
- B = FV1[D=MY_FILE_VARS]
- C = 1
- A = F
- F (unknown variable)
- NOEXIST (unknown variable)
- E = 1
-/TREE=FILE
- F (unknown variable)
- FV1[d=my_file_vars]
- NOEXIST (unknown variable)
- FVX[d=my_file_vars]
-the problem is UNKNOWN VARIABLE: F
-************************
-
-! reporting other errors in definitions
- set mode ignore
-
- ! unidentified grid
- let a = i[i=1:5]
- let b = a[g=noexist]
- go bn_vtree.sub b
-/TREE=ALL
- in default dataset MY_UVAR_AGG
- B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
-/TREE=USER
- in default dataset MY_UVAR_AGG
- B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
-/TREE=FILE
- A[G=NOEXIST] (unknown grid)
-the problem is UNKNOWN GRID: A[G=NOEXIST]
-************************
- list b
-
- ! syntax error - format of longitude
- let c = a[x=45s]
- go bn_vtree.sub c
-/TREE=ALL
- in default dataset MY_UVAR_AGG
- C = A[X=45S]
- A[X=45S] *** WARNING: ERROR IN DEFINITION
-/TREE=USER
- in default dataset MY_UVAR_AGG
- C = A[X=45S]
- A[X=45S] *** WARNING: ERROR IN DEFINITION
-/TREE=FILE
- A[X=45S] *** WARNING: SYNTAX ERROR
-the problem is ERROR IN EXPRESSION: A[X=45S]
-************************
- list c
-
- ! syntax error - extra comma
- let d = a[i=1,,j=2]
- go bn_vtree.sub d
-/TREE=ALL
- in default dataset MY_UVAR_AGG
- D = A[I=1,,J=2]
- A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
-/TREE=USER
- in default dataset MY_UVAR_AGG
- D = A[I=1,,J=2]
- A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
-/TREE=FILE
- A[I=1,,J=2] *** WARNING: SYNTAX ERROR
-the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
-************************
- list d
-
- ! syntax error - unknown pseudovariable
- let e = a[p=1]
- go bn_vtree.sub e
-/TREE=ALL
- in default dataset MY_UVAR_AGG
- E = A[P=1]
- A[P=1] *** WARNING: ERROR IN DEFINITION
-/TREE=USER
- in default dataset MY_UVAR_AGG
- E = A[P=1]
- A[P=1] *** WARNING: ERROR IN DEFINITION
-/TREE=FILE
- A[P=1] *** WARNING: SYNTAX ERROR
-the problem is ERROR IN EXPRESSION: A[P=1]
-************************
- list e
-
- ! out of limit region -- not detectable as error, because grids are never determined
- let f = a[i=10]
- go bn_vtree.sub f
-/TREE=ALL
- in default dataset MY_UVAR_AGG
- F = A[I=10]
- A = I[I=1:5]
-/TREE=USER
- in default dataset MY_UVAR_AGG
- F = A[I=10]
- A = I[I=1:5]
-/TREE=FILE
-f is ready and AVAILABLE
-************************
- list f
-
- set mode/last ignore
-
-! dependency through attribute sharing (not yet implemented)
-let a = fvz.long_name[d=1]
-show var/tree a
- in default dataset MY_UVAR_AGG
- A = FVZ.LONG_NAME[D=1]
-let a = ..history[d=1]
-show var/tree a
- in default dataset MY_UVAR_AGG
- A = ..HISTORY[D=1]
-
-
-!!!!!!!!!!!!! Note we should include tests for all the scat2grid functions.
-!!!!!!!!! completed and improved the docs for scat2grid_bin and scat2grid_nbin functions
-
-! version 2.3 requires exit/command *sh* 3/92
-exit/command
-yes? ! bn_all_ef_shell.jnl
-yes? ! 5/05 *acm*
-yes? ! run bn_all_ef tests
-yes?
-yes? GO bn_all_ef
- NOAA/PMEL TMAP
- FERRET v6.85
- Linux 2.6.32-358.23.2.el6.x86_64 32-bit - 11/12/13
- 12-Nov-13 15:13
-
-SET MODE VERIFY
-! bn_all_ef.jnl
-! - run all the benchmark tests for externally-linked external functions.
-
-
-GO bn_reset
-cancel mode verify
-GO bn_ef_external_functions.jnl
-! Tests of external functions that are distributed as shared object files.
-
-! Jon's benchmarks
-go bench_examples
-set mode ignore_error
-show func/ext add_9
-show func/ext ave*
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
- Compute average of a variable in each cell of output time axis
- TPTS: T coordinates of scattered input time coordinates
- VPTS: Variable at times in TPTS
- TAXIS: Output time axis
-show func pass_thru
-show func sto*
-
-go bench_add_9
-! Bench_add_9.jnl
-! ACM 8/99
-! benchmark script for testing external function add_9.
-! Note: bench_add_9_visual contains plots of similar computations
-
-set mode ignore_errors
-
-
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
-
-let a1 = sst[d=1,l=1]
-let a2 = sst[d=1,l=2]
-let a3 = sst[d=1,l=3]
-
-let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
-
------
-Appending ncdump output
-
-err491_dp_time_write.jnl --- 1 original file
-netcdf out {
-dimensions:
- T5 = UNLIMITED ; // (1 currently)
-variables:
- double T5(T5) ;
- T5:units = "min since 1901-01-15 00:00:00" ;
- T5:axis = "T" ;
- T5:calendar = "GREGORIAN" ;
- T5:time_origin = "15-JAN-1901" ;
- T5:standard_name = "time" ;
- double MY_VAR(T5) ;
- MY_VAR:missing_value = -1.e+34 ;
- MY_VAR:_FillValue = -1.e+34 ;
- MY_VAR:long_name = "T[GT=T5]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- T5 = 50757969 ;
-
- MY_VAR = 50757969 ;
-}
-err491_dp_time_write.jnl --- 2 after append
-netcdf out {
-dimensions:
- T5 = UNLIMITED ; // (2 currently)
-variables:
- double T5(T5) ;
- T5:units = "min since 1901-01-15 00:00:00" ;
- T5:axis = "T" ;
- T5:calendar = "GREGORIAN" ;
- T5:time_origin = "15-JAN-1901" ;
- T5:standard_name = "time" ;
- double MY_VAR(T5) ;
- MY_VAR:missing_value = -1.e+34 ;
- MY_VAR:_FillValue = -1.e+34 ;
- MY_VAR:long_name = "T[GT=T5]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- T5 = 50757969, 50757974 ;
-
- MY_VAR = 50757969, 50757974 ;
-}
-bn_strings.jnl --- 1 original file
-netcdf test_string {
-dimensions:
- XAX1_3 = 3 ;
- STRING1_10 = 10 ;
- STRING1_16 = 16 ;
-variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- char A(XAX1_3, STRING1_10) ;
- A:long_name = "{\"hello\",\"goodbye\", \"wave to me\"}" ;
- char B(STRING1_16) ;
- B:long_name = "\"one line of text\"" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- A =
- "hello",
- "goodbye",
- "wave to me" ;
-
- B = "one line of text" ;
-}
-bn_strings.jnl --- 2 append to file
-bn_strings.jnl --- 3 enhanced heading
-netcdf test_string {
-dimensions:
- grid_definition = 1 ;
- XAX1_19 = 19 ;
- XAX1_192_5 = 4 ;
- STRING1_15 = 15 ;
-variables:
- char GFP3(grid_definition) ;
- GFP3:axes = "XAX1_19 NORMAL NORMAL NORMAL NORMAL NORMAL" ;
- double XAX1_19(XAX1_19) ;
- XAX1_19:point_spacing = "even" ;
- XAX1_19:axis = "X" ;
- double XAX1_192_5(XAX1_192_5) ;
- XAX1_192_5:child_axis = " " ;
- XAX1_192_5:point_spacing = "even" ;
- XAX1_192_5:axis = "X" ;
- char D(XAX1_192_5, STRING1_15) ;
- D:parent_grid = "GFP3" ;
- D:slab_min_index = 2, 1, 1, 1 ;
- D:slab_max_index = 5, 1, 1, 1 ;
- D:long_name = "partial filename list" ;
- D:history = "From test_string" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- GFP3 = "" ;
-
- XAX1_19 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ;
-
- XAX1_192_5 = 2, 3, 4, 5 ;
-
- D =
- "dummy1.str_test",
- "dummy2.str_test",
- "dummy3.str_test",
- "dummy4.str_test" ;
-}
-bn_strings.jnl --- 4 sample and ysequence functions on string var
-netcdf foo {
-dimensions:
- XAX1_4 = 4 ;
- STRING1_1 = 1 ;
- YAX1_3 = 3 ;
-variables:
- double XAX1_4(XAX1_4) ;
- XAX1_4:point_spacing = "even" ;
- XAX1_4:axis = "X" ;
- char A(XAX1_4, STRING1_1) ;
- A:long_name = "{\"a\",,\" \",\"\"}" ;
- double YAX1_3(YAX1_3) ;
- YAX1_3:point_spacing = "even" ;
- YAX1_3:axis = "Y" ;
- char B(YAX1_3, STRING1_1) ;
- B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX1_4 = 1, 2, 3, 4 ;
-
- A =
- "a",
- "",
- " ",
- "" ;
-
- YAX1_3 = 1, 2, 3 ;
-
- B =
- "b",
- "",
- "a" ;
-}
-err550_nc_seconds.jnl --- seconds of time axis
- TIME:time_origin = "10-JUN-1996 04:03:36" ;
-bn_bounds.jnl --- 1 output of bounds on irreg axes.
-netcdf a {
-dimensions:
- MONTH_IRREG = UNLIMITED ; // (12 currently)
- bnds = 2 ;
-variables:
- double MONTH_IRREG(MONTH_IRREG) ;
- MONTH_IRREG:units = "days since 0000-01-01 00:00:00" ;
- MONTH_IRREG:time_origin = "01-JAN-0000 00:00:00" ;
- MONTH_IRREG:modulo = " " ;
- MONTH_IRREG:axis = "T" ;
- MONTH_IRREG:standard_name = "time" ;
- MONTH_IRREG:bounds = "MONTH_IRREG_bnds" ;
- double MONTH_IRREG_bnds(MONTH_IRREG, bnds) ;
- double V(MONTH_IRREG) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "T[GT=MONTH_IRREG]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- MONTH_IRREG = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425,
- 196.7425, 227.7425, 258.2425, 288.7425, 319.2425, 349.7425 ;
-
- MONTH_IRREG_bnds =
- 0, 31,
- 31, 59.2425,
- 59.2425, 90.2425,
- 90.2425, 120.2425,
- 120.2425, 151.2425,
- 151.2425, 181.2425,
- 181.2425, 212.2425,
- 212.2425, 243.2425,
- 243.2425, 273.2425,
- 273.2425, 304.2425,
- 304.2425, 334.2425,
- 334.2425, 365.2425 ;
-
- V = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425, 196.7425,
- 227.7425, 258.2425, 288.7425, 319.2425, 349.7425 ;
-}
-bn_bounds.jnl --- 2 long irreg axes.
-netcdf a {
-dimensions:
- COADSX90_90 = 1 ;
- COADSY66_66 = 1 ;
- TCOADS = UNLIMITED ; // (5 currently)
- bnds = 2 ;
-variables:
- double COADSX90_90(COADSX90_90) ;
- COADSX90_90:units = "degrees_east" ;
- COADSX90_90:modulo = " " ;
- COADSX90_90:point_spacing = "even" ;
- COADSX90_90:axis = "X" ;
- COADSX90_90:standard_name = "longitude" ;
- double COADSY66_66(COADSY66_66) ;
- COADSY66_66:units = "degrees_north" ;
- COADSY66_66:point_spacing = "even" ;
- COADSY66_66:axis = "Y" ;
- COADSY66_66:standard_name = "latitude" ;
- double TCOADS(TCOADS) ;
- TCOADS:units = "days since 1700-01-01 00:00:00" ;
- TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
- TCOADS:axis = "T" ;
- TCOADS:standard_name = "time" ;
- TCOADS:bounds = "TCOADS_bnds" ;
- double TCOADS_bnds(TCOADS, bnds) ;
- double V(TCOADS, COADSY66_66, COADSX90_90) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "MISSING(VWND,28.5)" ;
- V:history = "From coads_vwnd" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- COADSX90_90 = 199 ;
-
- COADSY66_66 = 41 ;
-
- TCOADS = 91050, 91080.5, 91111, 91141.5, 91172.5 ;
-
- TCOADS_bnds =
- 91035, 91065,
- 91065, 91096,
- 91096, 91126,
- 91126, 91157,
- 91157, 91188 ;
-
- V =
- 4,
- 1.94999992847443,
- 4.25,
- 1.6599999666214,
- -0.129999995231628 ;
-}
-bn_bounds.jnl --- 3 Append later time steps, adding a void point
-netcdf a {
-dimensions:
- COADSX90_90 = 1 ;
- COADSY66_66 = 1 ;
- TCOADS = UNLIMITED ; // (10 currently)
- bnds = 2 ;
-variables:
- double COADSX90_90(COADSX90_90) ;
- COADSX90_90:units = "degrees_east" ;
- COADSX90_90:modulo = " " ;
- COADSX90_90:point_spacing = "even" ;
- COADSX90_90:axis = "X" ;
- COADSX90_90:standard_name = "longitude" ;
- double COADSY66_66(COADSY66_66) ;
- COADSY66_66:units = "degrees_north" ;
- COADSY66_66:point_spacing = "even" ;
- COADSY66_66:axis = "Y" ;
- COADSY66_66:standard_name = "latitude" ;
- double TCOADS(TCOADS) ;
- TCOADS:units = "days since 1700-01-01 00:00:00" ;
- TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
- TCOADS:axis = "T" ;
- TCOADS:standard_name = "time" ;
- TCOADS:bounds = "TCOADS_bnds" ;
- double TCOADS_bnds(TCOADS, bnds) ;
- double V(TCOADS, COADSY66_66, COADSX90_90) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "MISSING(VWND,28.5)" ;
- V:history = "From coads_vwnd" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- COADSX90_90 = 199 ;
-
- COADSY66_66 = 41 ;
-
- TCOADS = 91050, 91080.5, 91111, 91141.5, 91172.5, 91264.5, 91355, 91384.5,
- 91415, 91445.5 ;
-
- TCOADS_bnds =
- 91035, 91065,
- 91065, 91096,
- 91096, 91126,
- 91126, 91157,
- 91157, 91188,
- 91188, 91341,
- 91341, 91369,
- 91369, 91400,
- 91400, 91430,
- 91430, 91461 ;
-
- V =
- 4,
- 1.94999992847443,
- 4.25,
- 1.6599999666214,
- -0.129999995231628,
- _,
- -1.0699999332428,
- 3.35999989509583,
- -3.86999988555908,
- 3.93999981880188 ;
-}
-bn_bounds.jnl --- 4 depth axis, bounds positive up
-netcdf a {
-dimensions:
- ZIRR = 4 ;
- bnds = 2 ;
-variables:
- double ZIRR(ZIRR) ;
- ZIRR:units = "meters" ;
- ZIRR:point_spacing = "uneven" ;
- ZIRR:axis = "Z" ;
- ZIRR:bounds = "ZIRR_bnds" ;
- ZIRR:positive = "down" ;
- ZIRR:standard_name = "depth" ;
- double ZIRR_bnds(ZIRR, bnds) ;
- double T2(ZIRR) ;
- T2:missing_value = -1.e+34 ;
- T2:_FillValue = -1.e+34 ;
- T2:long_name = "Z[GZ=ZIRR]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- ZIRR = 0, 10, 40, 70 ;
-
- ZIRR_bnds =
- -5, 5,
- 5, 25,
- 25, 55,
- 55, 85 ;
-
- T2 = 0, 10, 40, 70 ;
-}
-bn_bounds.jnl --- 5 SAVE on irregular time axis, multi-dimensional save.
-netcdf a {
-dimensions:
- COADSX81_83 = 3 ;
- COADSY46_49 = 4 ;
- MONTH_IRREG = UNLIMITED ; // (8 currently)
- bnds = 2 ;
-variables:
- double COADSX81_83(COADSX81_83) ;
- COADSX81_83:units = "degrees_east" ;
- COADSX81_83:modulo = " " ;
- COADSX81_83:point_spacing = "even" ;
- COADSX81_83:axis = "X" ;
- COADSX81_83:standard_name = "longitude" ;
- double COADSY46_49(COADSY46_49) ;
- COADSY46_49:units = "degrees_north" ;
- COADSY46_49:point_spacing = "even" ;
- COADSY46_49:axis = "Y" ;
- COADSY46_49:standard_name = "latitude" ;
- double MONTH_IRREG(MONTH_IRREG) ;
- MONTH_IRREG:units = "days since 0000-01-01 00:00:00" ;
- MONTH_IRREG:time_origin = "01-JAN-0000 00:00:00" ;
- MONTH_IRREG:modulo = " " ;
- MONTH_IRREG:axis = "T" ;
- MONTH_IRREG:standard_name = "time" ;
- MONTH_IRREG:bounds = "MONTH_IRREG_bnds" ;
- double MONTH_IRREG_bnds(MONTH_IRREG, bnds) ;
- double V(MONTH_IRREG, COADSY46_49, COADSX81_83) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "MISSING(SST[GT=MONTH_IRREG], 28)" ;
- V:history = "From coads_climatology" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- COADSX81_83 = 181, 183, 185 ;
-
- COADSY46_49 = 1, 3, 5, 7 ;
-
- MONTH_IRREG = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 181.7425,
- 227.7425, 258.2425 ;
-
- MONTH_IRREG_bnds =
- 0, 31,
- 31, 59.2425,
- 59.2425, 90.2425,
- 90.2425, 120.2425,
- 120.2425, 151.2425,
- 151.2425, 212.2425,
- 212.2425, 243.2425,
- 243.2425, 273.2425 ;
-
- V =
- 28.2849935840911, 28.414627680037, 27.9161884993111,
- 27.9765395405733, 28.2538326818959, 28.2807402581306,
- 28.2439206183922, 28.0639671835704, 28.4098884258851,
- 27.8988069263938, 28.1024085497053, 27.7289905177585,
- 28.4160049287061, 28.4018177891461, 28.0223225569069,
- 28.3564239921735, 28.4116722185187, 27.9981931574269,
- 27.9975107377818, 28.1639069786096, 28.1146483772156,
- 27.9665335861598, 27.7497643747061, 27.8315865878107,
- 28.0636671118728, 27.5906545051978, 27.7380534023442,
- 27.9418187705116, 28.0035441744124, 27.7237886368008,
- 27.8988417091574, 27.8729683348803, 27.9324667419544,
- 27.8429933705147, 27.8182966108574, 27.9089173534895,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- _, _, _,
- _, _, _,
- _, _, _,
- _, _, _,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28 ;
-}
-bn_bounds.jnl --- 6 SAVE on regular time axis with bounds attribute
-netcdf a {
-dimensions:
- COADSX81_81 = 1 ;
- bnds = 2 ;
- COADSY46_46 = 1 ;
- TIME = UNLIMITED ; // (3 currently)
-variables:
- double COADSX81_81(COADSX81_81) ;
- COADSX81_81:units = "degrees_east" ;
- COADSX81_81:modulo = " " ;
- COADSX81_81:point_spacing = "even" ;
- COADSX81_81:axis = "X" ;
- COADSX81_81:standard_name = "longitude" ;
- COADSX81_81:bounds = "COADSX81_81_bnds" ;
- double COADSX81_81_bnds(COADSX81_81, bnds) ;
- double COADSY46_46(COADSY46_46) ;
- COADSY46_46:units = "degrees_north" ;
- COADSY46_46:point_spacing = "even" ;
- COADSY46_46:axis = "Y" ;
- COADSY46_46:standard_name = "latitude" ;
- COADSY46_46:bounds = "COADSY46_46_bnds" ;
- double COADSY46_46_bnds(COADSY46_46, bnds) ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- TIME:bounds = "TIME_bnds" ;
- double TIME_bnds(TIME, bnds) ;
- float SST(TIME, COADSY46_46, COADSX81_81) ;
- SST:missing_value = -1.e+34f ;
- SST:_FillValue = -1.e+34f ;
- SST:long_name = "SEA SURFACE TEMPERATURE" ;
- SST:history = "From coads_climatology" ;
- SST:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- COADSX81_81 = 181 ;
-
- COADSX81_81_bnds =
- 180, 182 ;
-
- COADSY46_46 = 1 ;
-
- COADSY46_46_bnds =
- 0, 2 ;
-
- TIME = 366, 1096.485, 1826.97 ;
-
- TIME_bnds =
- 0.757499999999993, 731.2425,
- 731.2425, 1461.7275,
- 1461.7275, 2192.2125 ;
-
- SST =
- 28.28389,
- 28.41851,
- 28.0468 ;
-}
-bn_bounds.jnl --- 7 SAVE on regular time axis with edges attributes
-netcdf a {
-dimensions:
- COADSX81_81 = 1 ;
- COADSX81_81edges = 2 ;
- COADSY46_46 = 1 ;
- COADSY46_46edges = 2 ;
- TIME = UNLIMITED ; // (3 currently)
- TIMEedges = 4 ;
-variables:
- double COADSX81_81(COADSX81_81) ;
- COADSX81_81:units = "degrees_east" ;
- COADSX81_81:modulo = " " ;
- COADSX81_81:point_spacing = "even" ;
- COADSX81_81:axis = "X" ;
- COADSX81_81:standard_name = "longitude" ;
- COADSX81_81:edges = "COADSX81_81edges" ;
- double COADSX81_81edges(COADSX81_81edges) ;
- COADSX81_81edges:edges = " " ;
- double COADSY46_46(COADSY46_46) ;
- COADSY46_46:units = "degrees_north" ;
- COADSY46_46:point_spacing = "even" ;
- COADSY46_46:axis = "Y" ;
- COADSY46_46:standard_name = "latitude" ;
- COADSY46_46:edges = "COADSY46_46edges" ;
- double COADSY46_46edges(COADSY46_46edges) ;
- COADSY46_46edges:edges = " " ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- TIME:edges = "TIMEedges" ;
- double TIMEedges(TIMEedges) ;
- TIMEedges:edges = " " ;
- float SST(TIME, COADSY46_46, COADSX81_81) ;
- SST:missing_value = -1.e+34f ;
- SST:_FillValue = -1.e+34f ;
- SST:long_name = "SEA SURFACE TEMPERATURE" ;
- SST:history = "From coads_climatology" ;
- SST:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- COADSX81_81 = 181 ;
-
- COADSX81_81edges = 180, 182 ;
-
- COADSY46_46 = 1 ;
-
- COADSY46_46edges = 0, 2 ;
-
- TIME = 366, 1096.485, 1826.97 ;
-
- TIMEedges = 0.757499999999993, 731.2425, 1461.7275, 2192.2125 ;
-
- SST =
- 28.28389,
- 28.41851,
- 28.0468 ;
-}
-bn_bounds.jnl --- 8 outputting bounds on all irregular axes, depth axis
-netcdf irrxzt {
-dimensions:
- XAX = 6 ;
- bnds = 2 ;
- ZAX = 5 ;
- TAX = UNLIMITED ; // (5 currently)
-variables:
- double XAX(XAX) ;
- XAX:point_spacing = "uneven" ;
- XAX:axis = "X" ;
- XAX:bounds = "XAX_bnds" ;
- double XAX_bnds(XAX, bnds) ;
- double ZAX(ZAX) ;
- ZAX:point_spacing = "uneven" ;
- ZAX:axis = "Z" ;
- ZAX:positive = "down" ;
- ZAX:standard_name = "depth" ;
- ZAX:bounds = "ZAX_bnds" ;
- double ZAX_bnds(ZAX, bnds) ;
- double TAX(TAX) ;
- TAX:axis = "T" ;
- TAX:bounds = "TAX_bnds" ;
- double TAX_bnds(TAX, bnds) ;
- double V(TAX, ZAX, XAX) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX = 1, 2, 5, 6, 7, 8 ;
-
- XAX_bnds =
- 0.5, 1.5,
- 1.5, 3.5,
- 3.5, 5.5,
- 5.5, 6.5,
- 6.5, 7.5,
- 7.5, 8.5 ;
-
- ZAX = 0, 20, 50, 75, 120 ;
-
- ZAX_bnds =
- 0, 10,
- 10, 30,
- 30, 60,
- 60, 90,
- 90, 150 ;
-
- TAX = 1, 2, 9, 10, 11 ;
-
- TAX_bnds =
- 0.5, 1.5,
- 1.5, 5.5,
- 5.5, 9.5,
- 9.5, 10.5,
- 10.5, 11.5 ;
-
- V =
- 2, 3, 6, 7, 8, 9,
- 22, 23, 26, 27, 28, 29,
- 52, 53, 56, 57, 58, 59,
- 77, 78, 81, 82, 83, 84,
- 122, 123, 126, 127, 128, 129,
- 3, 4, 7, 8, 9, 10,
- 23, 24, 27, 28, 29, 30,
- 53, 54, 57, 58, 59, 60,
- 78, 79, 82, 83, 84, 85,
- 123, 124, 127, 128, 129, 130,
- 10, 11, 14, 15, 16, 17,
- 30, 31, 34, 35, 36, 37,
- 60, 61, 64, 65, 66, 67,
- 85, 86, 89, 90, 91, 92,
- 130, 131, 134, 135, 136, 137,
- 11, 12, 15, 16, 17, 18,
- 31, 32, 35, 36, 37, 38,
- 61, 62, 65, 66, 67, 68,
- 86, 87, 90, 91, 92, 93,
- 131, 132, 135, 136, 137, 138,
- 12, 13, 16, 17, 18, 19,
- 32, 33, 36, 37, 38, 39,
- 62, 63, 66, 67, 68, 69,
- 87, 88, 91, 92, 93, 94,
- 132, 133, 136, 137, 138, 139 ;
-}
-err580_irreg_bounds.jnl ---
-netcdf a {
-dimensions:
- TIME = UNLIMITED ; // (2 currently)
- bnds = 2 ;
-variables:
- double TIME(TIME) ;
- TIME:axis = "T" ;
- TIME:bounds = "TIME_bnds" ;
- double TIME_bnds(TIME, bnds) ;
- double A(TIME) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "T[GT=TIME]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- TIME = 0.5, 2 ;
-
- TIME_bnds =
- 0, 1,
- 1, 3 ;
-
- A = 0.5, 2 ;
-}
-err580_long_title.jnl ---
-netcdf longtitle {
-dimensions:
- XAX1_10 = 10 ;
-variables:
- double XAX1_10(XAX1_10) ;
- XAX1_10:point_spacing = "even" ;
- XAX1_10:axis = "X" ;
- double X_(XAX1_10) ;
- X_:missing_value = -1.e+34 ;
- X_:_FillValue = -1.e+34 ;
- X_:long_name = "X" ;
- X_:long_name_mod = "axis ABSTRACT" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
- :title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
-data:
-
- XAX1_10 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ;
-
- X_ = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ;
-}
-err580_long_dsettitle.jnl ---
-netcdf longtitle {
-dimensions:
- XAX1_5 = 5 ;
-variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float A(XAX1_5) ;
- A:missing_value = -1.e+34f ;
- A:_FillValue = -1.e+34f ;
- A:long_name = "A" ;
- A:history = "From x" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
- :title = "a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short." ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-
- A = 1, 2, 3, 4, 5 ;
-}
-err580_cdc_timeaxis.jnl ---
-netcdf my_cdc_timeaxis {
-dimensions:
- TCDC = UNLIMITED ; // (15 currently)
-variables:
- double TCDC(TCDC) ;
- TCDC:units = "days since 0001-01-01 00:00:00" ;
- TCDC:axis = "T" ;
- TCDC:calendar = "GREGORIAN" ;
- TCDC:time_origin = "01-JAN-0001 00:00:00" ;
- TCDC:standard_name = "time" ;
- double A(TCDC) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "SIN(T[GT=TCDC]/10000)" ;
- A:history = "From t0_cdc" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_long_revision_num.jnl --- history attribute
- :history = "FERRET V6.85 12-Nov-13" ;
-bn_bounds_defineax.jnl --- N+1 def of bounds.
-netcdf irrxzt {
-dimensions:
- XAX = 6 ;
- bnds = 2 ;
- ZAX = 5 ;
- TAX = UNLIMITED ; // (5 currently)
-variables:
- double XAX(XAX) ;
- XAX:point_spacing = "uneven" ;
- XAX:axis = "X" ;
- XAX:bounds = "XAX_bnds" ;
- double XAX_bnds(XAX, bnds) ;
- double ZAX(ZAX) ;
- ZAX:point_spacing = "uneven" ;
- ZAX:axis = "Z" ;
- ZAX:positive = "down" ;
- ZAX:standard_name = "depth" ;
- ZAX:bounds = "ZAX_bnds" ;
- double ZAX_bnds(ZAX, bnds) ;
- double TAX(TAX) ;
- TAX:axis = "T" ;
- TAX:bounds = "TAX_bnds" ;
- double TAX_bnds(TAX, bnds) ;
- double V(TAX, ZAX, XAX) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX = 1, 2, 5, 6, 7, 8 ;
-
- XAX_bnds =
- 0.5, 1.5,
- 1.5, 3.5,
- 3.5, 5.5,
- 5.5, 6.5,
- 6.5, 7.5,
- 7.5, 8.5 ;
-
- ZAX = 0, 20, 50, 75, 120 ;
-
- ZAX_bnds =
- 0, 10,
- 10, 30,
- 30, 60,
- 60, 90,
- 90, 150 ;
-
- TAX = 1, 2, 9, 10, 11 ;
-
- TAX_bnds =
- 0.5, 1.5,
- 1.5, 5.5,
- 5.5, 9.5,
- 9.5, 10.5,
- 10.5, 11.5 ;
-
- V =
- 2, 3, 6, 7, 8, 9,
- 22, 23, 26, 27, 28, 29,
- 52, 53, 56, 57, 58, 59,
- 77, 78, 81, 82, 83, 84,
- 122, 123, 126, 127, 128, 129,
- 3, 4, 7, 8, 9, 10,
- 23, 24, 27, 28, 29, 30,
- 53, 54, 57, 58, 59, 60,
- 78, 79, 82, 83, 84, 85,
- 123, 124, 127, 128, 129, 130,
- 10, 11, 14, 15, 16, 17,
- 30, 31, 34, 35, 36, 37,
- 60, 61, 64, 65, 66, 67,
- 85, 86, 89, 90, 91, 92,
- 130, 131, 134, 135, 136, 137,
- 11, 12, 15, 16, 17, 18,
- 31, 32, 35, 36, 37, 38,
- 61, 62, 65, 66, 67, 68,
- 86, 87, 90, 91, 92, 93,
- 131, 132, 135, 136, 137, 138,
- 12, 13, 16, 17, 18, 19,
- 32, 33, 36, 37, 38, 39,
- 62, 63, 66, 67, 68, 69,
- 87, 88, 91, 92, 93, 94,
- 132, 133, 136, 137, 138, 139 ;
-}
-bn_attributes.jnl --- 1 attributes of string variables
-netcdf a {
-dimensions:
- XAX1_3 = 3 ;
- STRING1_10 = 10 ;
-variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- char VAR_B(XAX1_3, STRING1_10) ;
- VAR_B:long_name = "my strings" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- VAR_B =
- "Seattle",
- "Skykomish",
- "Snoqualmie" ;
-}
-bn_attributes.jnl --- 2 access and edit attributes of coordinate variables.
-netcdf a {
-dimensions:
- COADSX105_105 = 1 ;
- COADSY45_45 = 1 ;
- TIME = UNLIMITED ; // (3 currently)
-variables:
- double COADSX105_105(COADSX105_105) ;
- COADSX105_105:units = "degrees_east" ;
- COADSX105_105:modulo = " " ;
- COADSX105_105:point_spacing = "even" ;
- COADSX105_105:newatt = 0.f ;
- COADSX105_105:axis = "X" ;
- COADSX105_105:standard_name = "longitude" ;
- double COADSY45_45(COADSY45_45) ;
- COADSY45_45:units = "degrees_north" ;
- COADSY45_45:point_spacing = "even" ;
- COADSY45_45:axis = "Y" ;
- COADSY45_45:standard_name = "latitude" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float SST(TIME, COADSY45_45, COADSX105_105) ;
- SST:missing_value = -1.e+34f ;
- SST:_FillValue = -1.e+34f ;
- SST:long_name = "SEA SURFACE TEMPERATURE" ;
- SST:history = "From coads_climatology" ;
- SST:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- COADSX105_105 = 229 ;
-
- COADSY45_45 = -1 ;
-
- TIME = 366, 1096.485, 1826.97 ;
-}
-bn_attributes.jnl --- 3 modulo set to false
-netcdf a {
-dimensions:
- COADSX81_81 = 1 ;
- COADSY45_45 = 1 ;
- TIME = UNLIMITED ; // (12 currently)
-variables:
- double COADSX81_81(COADSX81_81) ;
- COADSX81_81:units = "degrees_east" ;
- COADSX81_81:modulo = "false" ;
- COADSX81_81:point_spacing = "even" ;
- COADSX81_81:axis = "X" ;
- COADSX81_81:standard_name = "longitude" ;
- double COADSY45_45(COADSY45_45) ;
- COADSY45_45:units = "degrees_north" ;
- COADSY45_45:point_spacing = "even" ;
- COADSY45_45:axis = "Y" ;
- COADSY45_45:standard_name = "latitude" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = " " ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float SST(TIME, COADSY45_45, COADSX81_81) ;
- SST:missing_value = -1.e+34f ;
- SST:_FillValue = -1.e+34f ;
- SST:long_name = "SEA SURFACE TEMPERATURE" ;
- SST:history = "From coads_climatology" ;
- SST:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- COADSX81_81 = 181 ;
-
- COADSY45_45 = -1 ;
-
- TIME = 366, 1096.485, 1826.97, 2557.455, 3287.94, 4018.425, 4748.91,
- 5479.395, 6209.88, 6940.365, 7670.85, 8401.335 ;
-}
-bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:
-netcdf err491_attval {
-dimensions:
- Ti = UNLIMITED ; // (1 currently)
- Yc = 127 ;
- Xc = 35 ;
-variables:
- double Ti(Ti) ;
- Ti:long_name = "Time" ;
- Ti:units = "day" ;
- double Yc(Yc) ;
- Yc:long_name = "Latitude" ;
- Yc:units = "degrees_north" ;
- double Xc(Xc) ;
- Xc:long_name = "Longitude" ;
- Xc:units = "degrees_east" ;
- short Elev(Ti, Yc, Xc) ;
- Elev:long_name = "Surface elevation" ;
- Elev:units = "meter" ;
- Elev:valid_range = -9., 9. ;
- Elev:_FillValue = -32768s ;
- Elev:missing_value = -32767s ;
- Elev:scale_factor = 0.000274674967954587 ;
- Elev:add_offset = 0. ;
-
-// global attributes:
- :simulation = "K-Bay OAR3d model (200m)" ;
- :start_date = "980105000000" ;
- :history = "a\n",
- "" ;
- :option = 1 ;
- :run_mode = 3 ;
- :srfc_bndry = 3 ;
- :rad_penet = 2 ;
- :dt_external = 1. ;
- :dt_internal = 15. ;
- :horiz_diff = 0.2 ;
- :inv_prandtl = 0.2 ;
- :min_slope = 0.2 ;
- :title = "K-Bay OAR3d model (200m) " ;
- :command = " " ;
- :remark = "Generated by oar3d " ;
- :x_units = "degrees " ;
- :y_units = "degrees " ;
- :z_units = " " ;
- :nx = 35 ;
- :ny = 127 ;
- :x_min = 0. ;
- :x_max = 0. ;
- :y_min = 0. ;
- :y_max = 0. ;
- :z_min = 0. ;
- :z_max = 0. ;
- :x_inc = 0. ;
- :y_inc = 0. ;
- :z_scale_factor = 0. ;
- :z_add_offset = 0. ;
- :node_offset = 0. ;
-}
-bn_attributes.jnl --- 5 before CANCEL MODE upcase_output
-netcdf a {
-dimensions:
- XC3_3 = 1 ;
- YC2_4 = 3 ;
- bnds = 2 ;
- TI = UNLIMITED ; // (1 currently)
-variables:
- double XC3_3(XC3_3) ;
- XC3_3:long_name = "Longitude" ;
- XC3_3:units = "degrees_east" ;
- XC3_3:modulo = 360. ;
- XC3_3:point_spacing = "even" ;
- XC3_3:axis = "X" ;
- XC3_3:standard_name = "longitude" ;
- double YC2_4(YC2_4) ;
- YC2_4:long_name = "Latitude" ;
- YC2_4:units = "degrees_north" ;
- YC2_4:point_spacing = "uneven" ;
- YC2_4:axis = "Y" ;
- YC2_4:standard_name = "latitude" ;
- YC2_4:bounds = "YC2_4_bnds" ;
- double YC2_4_bnds(YC2_4, bnds) ;
- double TI(TI) ;
- TI:long_name = "Time" ;
- TI:units = "day" ;
- TI:axis = "T" ;
- TI:standard_name = "time" ;
- short ELEV(TI, YC2_4, XC3_3) ;
- ELEV:missing_value = -32767s ;
- ELEV:_FillValue = -32768s ;
- ELEV:long_name = "Surface elevation" ;
- ELEV:units = "meter" ;
- ELEV:scale_factor = 0.000274674967954587 ;
- ELEV:add_offset = 0. ;
- ELEV:history = "From err491_attval" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
-netcdf a {
-dimensions:
- Xc3_3 = 1 ;
- Yc2_4 = 3 ;
- bnds = 2 ;
- Ti = UNLIMITED ; // (1 currently)
-variables:
- double Xc3_3(Xc3_3) ;
- Xc3_3:long_name = "Longitude" ;
- Xc3_3:units = "degrees_east" ;
- Xc3_3:modulo = 360. ;
- Xc3_3:point_spacing = "even" ;
- Xc3_3:axis = "X" ;
- Xc3_3:standard_name = "longitude" ;
- double Yc2_4(Yc2_4) ;
- Yc2_4:long_name = "Latitude" ;
- Yc2_4:units = "degrees_north" ;
- Yc2_4:point_spacing = "uneven" ;
- Yc2_4:axis = "Y" ;
- Yc2_4:standard_name = "latitude" ;
- Yc2_4:bounds = "Yc2_4_bnds" ;
- double Yc2_4_bnds(Yc2_4, bnds) ;
- double Ti(Ti) ;
- Ti:long_name = "Time" ;
- Ti:units = "day" ;
- Ti:axis = "T" ;
- Ti:standard_name = "time" ;
- short Elev(Ti, Yc2_4, Xc3_3) ;
- Elev:missing_value = -32767s ;
- Elev:_FillValue = -32768s ;
- Elev:long_name = "Surface elevation" ;
- Elev:units = "meter" ;
- Elev:scale_factor = 0.000274674967954587 ;
- Elev:add_offset = 0. ;
- Elev:history = "From err491_attval" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 7 outtput flags to control attribute output
-netcdf a {
-dimensions:
- XAX1_5 = 5 ;
-variables:
- double AA ;
- AA:missing_value = -1.e+34 ;
- AA:_FillValue = -1.e+34 ;
- AA:long_name = "12" ;
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- double BB(XAX1_5) ;
- BB:missing_value = -1.e+34 ;
- BB:_FillValue = -1.e+34 ;
- BB:long_name = "{3,4.5,6,7,4}" ;
- BB:my_title = "This is my new variable bb" ;
- BB:another_attr = 6.f ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 8 outtput all flags
-netcdf a {
-dimensions:
- XAX1_5 = 5 ;
-variables:
- double AA ;
- AA:missing_value = -1.e+34 ;
- AA:_FillValue = -1.e+34 ;
- AA:long_name = "12" ;
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- double BB(XAX1_5) ;
- BB:missing_value = -1.e+34 ;
- BB:_FillValue = -1.e+34 ;
- BB:long_name = "{3,4.5,6,7,4}" ;
- BB:my_title = "This is my new variable bb" ;
- BB:another_attr = 6.f ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 9 Just output the default attributes
-netcdf a {
-dimensions:
- XAX1_5 = 5 ;
-variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- double BB(XAX1_5) ;
- BB:missing_value = -1.e+34 ;
- BB:_FillValue = -1.e+34 ;
- BB:long_name = "{3,4.5,6,7,4}" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 10 Output none of the attributes for aa
-netcdf a {
-dimensions:
- XAX1_5 = 5 ;
-variables:
- double AA ;
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- double BB(XAX1_5) ;
- BB:missing_value = -1.e+34 ;
- BB:_FillValue = -1.e+34 ;
- BB:long_name = "{3,4.5,6,7,4}" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 11 Surpress output of an attribute that Ferret would otherwise add.
-netcdf a {
-dimensions:
- XAX_LEV9421_380 = 360 ;
- YAX_LEV94 = 180 ;
- ZAXLEVIT191_1 = 1 ;
- TIME = UNLIMITED ; // (2 currently)
-variables:
- double XAX_LEV9421_380(XAX_LEV9421_380) ;
- XAX_LEV9421_380:units = "degrees_east" ;
- XAX_LEV9421_380:modulo = " " ;
- XAX_LEV9421_380:standard_name = "longitude" ;
- double YAX_LEV94(YAX_LEV94) ;
- YAX_LEV94:units = "degrees_north" ;
- YAX_LEV94:point_spacing = "even" ;
- YAX_LEV94:axis = "Y" ;
- YAX_LEV94:standard_name = "latitude" ;
- double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
- ZAXLEVIT191_1:units = "meters" ;
- ZAXLEVIT191_1:positive = "down" ;
- ZAXLEVIT191_1:point_spacing = "even" ;
- ZAXLEVIT191_1:axis = "Z" ;
- ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
- TEMP:missing_value = -1.e+34f ;
- TEMP:_FillValue = -1.e+34f ;
- TEMP:long_name = "Temperature" ;
- TEMP:history = "From ocean_atlas_monthly" ;
- TEMP:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 12 Check that settings hold for child axis.
-netcdf a {
-dimensions:
- XAX_LEV9421_380281_340 = 60 ;
- YAX_LEV94121_135 = 15 ;
- ZAXLEVIT191_1 = 1 ;
- TIME = UNLIMITED ; // (2 currently)
-variables:
- double XAX_LEV9421_380281_340(XAX_LEV9421_380281_340) ;
- XAX_LEV9421_380281_340:units = "degrees_east" ;
- XAX_LEV9421_380281_340:modulo = " " ;
- XAX_LEV9421_380281_340:standard_name = "longitude" ;
- double YAX_LEV94121_135(YAX_LEV94121_135) ;
- YAX_LEV94121_135:units = "degrees_north" ;
- YAX_LEV94121_135:point_spacing = "even" ;
- YAX_LEV94121_135:axis = "Y" ;
- YAX_LEV94121_135:standard_name = "latitude" ;
- double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
- ZAXLEVIT191_1:units = "meters" ;
- ZAXLEVIT191_1:positive = "down" ;
- ZAXLEVIT191_1:point_spacing = "even" ;
- ZAXLEVIT191_1:axis = "Z" ;
- ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV94121_135, XAX_LEV9421_380281_340) ;
- TEMP:missing_value = -1.e+34f ;
- TEMP:_FillValue = -1.e+34f ;
- TEMP:long_name = "Temperature" ;
- TEMP:history = "From ocean_atlas_monthly" ;
- TEMP:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 13 cancel output of attributes of the variable.
-netcdf a {
-dimensions:
- XAX_LEV9421_380 = 360 ;
- YAX_LEV94 = 180 ;
- ZAXLEVIT191_1 = 1 ;
- TIME = UNLIMITED ; // (2 currently)
-variables:
- double XAX_LEV9421_380(XAX_LEV9421_380) ;
- XAX_LEV9421_380:units = "degrees_east" ;
- XAX_LEV9421_380:modulo = " " ;
- XAX_LEV9421_380:standard_name = "longitude" ;
- double YAX_LEV94(YAX_LEV94) ;
- YAX_LEV94:units = "degrees_north" ;
- YAX_LEV94:point_spacing = "even" ;
- YAX_LEV94:axis = "Y" ;
- YAX_LEV94:standard_name = "latitude" ;
- double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
- ZAXLEVIT191_1:units = "meters" ;
- ZAXLEVIT191_1:positive = "down" ;
- ZAXLEVIT191_1:point_spacing = "even" ;
- ZAXLEVIT191_1:axis = "Z" ;
- ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
- TEMP:missing_value = -1.e+34f ;
- TEMP:_FillValue = -1.e+34f ;
- TEMP:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 14 attributes of data from ez data.
-netcdf a {
-dimensions:
- XAX1_5 = 5 ;
-variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float A1(XAX1_5) ;
- A1:missing_value = -1.e+34f ;
- A1:_FillValue = -1.e+34f ;
- A1:long_name = "A1" ;
- A1:three = 1.f, 2.f, 3.f ;
- A1:history = "From EZ.DAT" ;
- float A2(XAX1_5) ;
- A2:missing_value = -1.e+34f ;
- A2:_FillValue = -1.e+34f ;
- A2:long_name = "A2" ;
- A2:history = "From EZ.DAT" ;
- float A3(XAX1_5) ;
- A3:missing_value = -1.e+34f ;
- A3:_FillValue = -1.e+34f ;
- A3:long_name = "A3" ;
- A3:history = "From EZ.DAT" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-
- A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
-
- A2 = 0.8865, 0.6643, 0.6071, 0.5535, 0.5337 ;
-
- A3 = 0.176, 0.379, 0.417, 0.444, 0.515 ;
-}
-bn_attributes.jnl --- 15 attributes of data from delimited data.
-netcdf a {
-dimensions:
- XAX1_5 = 5 ;
-variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float V1(XAX1_5) ;
- V1:missing_value = -1.e+34f ;
- V1:_FillValue = -1.e+34f ;
- V1:long_name = "V1" ;
- V1:strval = "2" ;
- V1:history = "From EZ.DAT" ;
- float V4(XAX1_5) ;
- V4:missing_value = -1.e+34f ;
- V4:_FillValue = -1.e+34f ;
- V4:long_name = "V4" ;
- V4:history = "From EZ.DAT" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-
- V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
-
- V4 = 0.7597, 0.6455, 0.5935, 0.5458, 0.5147 ;
-}
-bn_attributes.jnl --- 16 attributes of user vars
-netcdf a {
-dimensions:
- XAX1_3 = 3 ;
-variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- double A(XAX1_3) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "{12,14,15}" ;
- A:three = 1.f, 2.f, 3.f ;
- A:four = "theory" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- A = 12, 14, 15 ;
-}
-bn_attributes.jnl --- 17 global attrs.
-netcdf a {
-dimensions:
- XC = 35 ;
- YC = 127 ;
- bnds = 2 ;
- TI = UNLIMITED ; // (1 currently)
-variables:
- double XC(XC) ;
- XC:long_name = "Longitude" ;
- XC:units = "degrees_east" ;
- XC:modulo = 360. ;
- XC:point_spacing = "even" ;
- XC:axis = "X" ;
- XC:standard_name = "longitude" ;
- double YC(YC) ;
- YC:long_name = "Latitude" ;
- YC:units = "degrees_north" ;
- YC:point_spacing = "uneven" ;
- YC:axis = "Y" ;
- YC:standard_name = "latitude" ;
- YC:bounds = "YC_bnds" ;
- double YC_bnds(YC, bnds) ;
- double TI(TI) ;
- TI:long_name = "Time" ;
- TI:units = "day" ;
- TI:axis = "T" ;
- TI:standard_name = "time" ;
- short ELEV(TI, YC, XC) ;
- ELEV:missing_value = -32767s ;
- ELEV:_FillValue = -32768s ;
- ELEV:long_name = "Surface elevation" ;
- ELEV:units = "meter" ;
- ELEV:scale_factor = 0.000274674967954587 ;
- ELEV:add_offset = 0. ;
- ELEV:history = "From err491_attval" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
- :simulation = "K-Bay OAR3d model (200m)" ;
- :start_date = "980105000000" ;
- :option = 0 ;
- :run_mode = 0 ;
- :srfc_bndry = 0 ;
- :rad_penet = 0 ;
- :dt_external = 1. ;
- :dt_internal = 15. ;
- :horiz_diff = 0.2 ;
- :inv_prandtl = 0.2 ;
- :min_slope = 0.2 ;
- :command = " " ;
- :remark = "Generated by oar3d" ;
- :x_units = "degrees" ;
- :y_units = "degrees" ;
- :z_units = " " ;
- :nx = 0 ;
- :ny = 0 ;
- :x_min = 0. ;
- :x_max = 0. ;
- :y_min = 0. ;
- :y_max = 0. ;
- :z_min = 0. ;
- :z_max = 0. ;
- :x_inc = 0. ;
- :y_inc = 0. ;
- :z_scale_factor = 0. ;
- :z_add_offset = 0. ;
- :node_offset = 0. ;
-}
-bn_attributes.jnl --- 18 choose global attr to write
-netcdf a {
-dimensions:
- XC = 35 ;
- YC = 127 ;
- bnds = 2 ;
- TI = UNLIMITED ; // (1 currently)
- PSXT100_100 = 1 ;
- PSYT35_56 = 22 ;
- PSZT1_1 = 1 ;
- TIME1 = 25 ;
-variables:
- double XC(XC) ;
- XC:long_name = "Longitude" ;
- XC:units = "degrees_east" ;
- XC:modulo = 360. ;
- XC:point_spacing = "even" ;
- XC:axis = "X" ;
- XC:standard_name = "longitude" ;
- double YC(YC) ;
- YC:long_name = "Latitude" ;
- YC:units = "degrees_north" ;
- YC:point_spacing = "uneven" ;
- YC:axis = "Y" ;
- YC:standard_name = "latitude" ;
- YC:bounds = "YC_bnds" ;
- double YC_bnds(YC, bnds) ;
- double TI(TI) ;
- TI:long_name = "Time" ;
- TI:units = "day" ;
- TI:axis = "T" ;
- TI:standard_name = "time" ;
- short ELEV(TI, YC, XC) ;
- ELEV:missing_value = -32767s ;
- ELEV:_FillValue = -32768s ;
- ELEV:long_name = "Surface elevation" ;
- ELEV:units = "meter" ;
- ELEV:scale_factor = 0.000274674967954587 ;
- ELEV:add_offset = 0. ;
- ELEV:history = "From err491_attval" ;
- double PSXT100_100(PSXT100_100) ;
- PSXT100_100:units = "degrees_east" ;
- PSXT100_100:modulo = 360. ;
- PSXT100_100:point_spacing = "even" ;
- PSXT100_100:axis = "X" ;
- PSXT100_100:standard_name = "longitude" ;
- double PSYT35_56(PSYT35_56) ;
- PSYT35_56:units = "degrees_north" ;
- PSYT35_56:point_spacing = "uneven" ;
- PSYT35_56:axis = "Y" ;
- PSYT35_56:standard_name = "latitude" ;
- PSYT35_56:bounds = "PSYT35_56_bnds" ;
- double PSYT35_56_bnds(PSYT35_56, bnds) ;
- double PSZT1_1(PSZT1_1) ;
- PSZT1_1:units = "METERS" ;
- PSZT1_1:positive = "down" ;
- PSZT1_1:point_spacing = "uneven" ;
- PSZT1_1:axis = "Z" ;
- PSZT1_1:standard_name = "depth" ;
- PSZT1_1:bounds = "PSZT1_1_bnds" ;
- double PSZT1_1_bnds(PSZT1_1, bnds) ;
- double TIME1(TIME1) ;
- TIME1:units = "hour since 1980-01-14 14:00:00" ;
- TIME1:time_origin = "14-JAN-1980 14:00:00" ;
- TIME1:point_spacing = "even" ;
- TIME1:axis = "T" ;
- TIME1:standard_name = "time" ;
- float TEMP(TIME1, PSZT1_1, PSYT35_56, PSXT100_100) ;
- TEMP:missing_value = -1.e+34f ;
- TEMP:_FillValue = -1.e+34f ;
- TEMP:long_name = "TEMPERATURE" ;
- TEMP:history = "From gt4d011" ;
- TEMP:units = "deg. C" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
- :dt_internal = 15. ;
-}
-bn_attributes.jnl --- 19 scale and offset attr.
-netcdf a {
-dimensions:
- XC = 35 ;
- YC1_1 = 1 ;
- bnds = 2 ;
- TI = UNLIMITED ; // (1 currently)
-variables:
- double XC(XC) ;
- XC:long_name = "Longitude" ;
- XC:units = "degrees_east" ;
- XC:modulo = 360. ;
- XC:point_spacing = "even" ;
- XC:axis = "X" ;
- XC:standard_name = "longitude" ;
- double YC1_1(YC1_1) ;
- YC1_1:long_name = "Latitude" ;
- YC1_1:units = "degrees_north" ;
- YC1_1:point_spacing = "uneven" ;
- YC1_1:axis = "Y" ;
- YC1_1:standard_name = "latitude" ;
- YC1_1:bounds = "YC1_1_bnds" ;
- double YC1_1_bnds(YC1_1, bnds) ;
- double TI(TI) ;
- TI:long_name = "Time" ;
- TI:units = "day" ;
- TI:axis = "T" ;
- TI:standard_name = "time" ;
- short ELEV(TI, YC1_1, XC) ;
- ELEV:missing_value = -32767s ;
- ELEV:_FillValue = -32768s ;
- ELEV:long_name = "Surface elevation" ;
- ELEV:units = "meter" ;
- ELEV:scale_factor = 0.000274674967954587 ;
- ELEV:add_offset = 0. ;
- ELEV:history = "From err491_attval" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XC = -135.50957036625, -135.496120344706, -135.482670323162,
- -135.469220301618, -135.455770280074, -135.44232025853,
- -135.428870236985, -135.415420215441, -135.401970193897,
- -135.388520172353, -135.375070150809, -135.361620129265,
- -135.348170107721, -135.334720086177, -135.321270064633,
- -135.307820043089, -135.294370021545, -135.28092, -135.267469978456,
- -135.254019956912, -135.240569935368, -135.227119913824,
- -135.21366989228, -135.200219870736, -135.186769849192,
- -135.173319827648, -135.159869806104, -135.14641978456,
- -135.132969763016, -135.119519741471, -135.106069719927,
- -135.092619698383, -135.079169676839, -135.065719655295, -135.052269633751 ;
-
- YC1_1 = 58.5947143787844 ;
-
- YC1_1_bnds =
- 58.5912104049205, 58.5982183526484 ;
-
- TI = 1.78368055555556 ;
-
- ELEV =
- -32767, -32767, -32767, -32767, -32767, -32767, -32767, -32767, -32767,
- -32767, -32767, 10702, 10702, 10702, 10702, 10702, 10702, 10702, 10702,
- 10702, 10702, 10702, 10702, 10702, 10702, -32767, -32767, -32767, -32767,
- -32767, -32767, -32767, -32767, -32767, -32767 ;
-}
-bn_attributes.jnl --- 20 set data type on output int4
- int TEMP(TIME1, PSZT1_1, PSYT48_48, PSXT91_108) ;
- TEMP:missing_value = -1000 ;
- TEMP:_FillValue = -1000 ;
- TEMP:long_name = "TEMPERATURE" ;
- TEMP:history = "From gt4d011" ;
- TEMP:units = "deg. C" ;
-
-// global attributes:
---
- TEMP =
- 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 26, 26, 26, 26, 26, 25, 25, 25 ;
-}
-bn_attributes.jnl --- 21 set data type on output double
- double SALT(TIME1, PSZT1_1, PSYT48_48, PSXT91_108) ;
- SALT:missing_value = 0.00999999977648258 ;
- SALT:_FillValue = 0.00999999977648258 ;
- SALT:long_name = "(SALINITY(ppt) - 35) /1000" ;
- SALT:history = "From gt4d011" ;
- SALT:units = "frac. by wt. less .035" ;
- SALT:Ferret_Precision_Note = "This variable written using Ferret was converted from FLOAT to DOUBLE" ;
-
-// global attributes:
---
- SALT =
- 0.00016033259453252, 0.000142609584145248, 0.000126281287521124,
- 0.000120904369396158, 0.000120412340038456, 0.000123045203508809,
-bn_attributes.jnl --- 22 outtype=input
-netcdf a {
-dimensions:
- J = 3 ;
- I = 2 ;
- STRING1_3 = 3 ;
-variables:
- float J(J) ;
- J:point_spacing = "even" ;
- J:axis = "X" ;
- int I(I) ;
- I:point_spacing = "even" ;
- I:axis = "Y" ;
- char BROILED(I, J, STRING1_3) ;
- BROILED:long_name = "BROILED" ;
- BROILED:history = "From test0" ;
- byte THE_BULLET(I, J) ;
- THE_BULLET:long_name = "THE_BULLET" ;
- THE_BULLET:history = "From test0" ;
- short ORDER(I, J) ;
- ORDER:long_name = "ORDER" ;
- ORDER:history = "From test0" ;
- int RIGUE(I, J) ;
- RIGUE:long_name = "RIGUE" ;
- RIGUE:history = "From test0" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- J = 2, 4, 6 ;
-
- I = 10, 20 ;
-
- BROILED =
- "ind",
- "ist",
- "ing",
- "uis",
- "hab",
- "le" ;
-
- THE_BULLET =
- -127, 0, 127,
- -128, -1, -127 ;
-
- ORDER =
- 1, 2, 3,
- 4, 5, 6 ;
-
- RIGUE =
- 2, 3, 4,
- 5, 6, 7 ;
-}
-bn_attributes.jnl --- 23 more user-defined vars
-netcdf a {
-variables:
- double B ;
- B:missing_value = -1.e+34 ;
- B:_FillValue = -1.e+34 ;
- B:long_name = "hello" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- B = 1 ;
-}
-bn_attributes.jnl --- 24 output redefined attr
-netcdf a {
-dimensions:
- COADSX90_91 = 2 ;
- COADSY65_66 = 2 ;
- TCOADS = UNLIMITED ; // (1 currently)
- bnds = 2 ;
-variables:
- double COADSX90_91(COADSX90_91) ;
- COADSX90_91:units = "degrees_east" ;
- COADSX90_91:modulo = " " ;
- COADSX90_91:point_spacing = "uneven" ;
- COADSX90_91:axis = "X" ;
- COADSX90_91:standard_name = "longitude" ;
- double COADSY65_66(COADSY65_66) ;
- COADSY65_66:units = "degrees_north" ;
- COADSY65_66:point_spacing = "uneven" ;
- COADSY65_66:axis = "Y" ;
- COADSY65_66:standard_name = "latitude" ;
- double TCOADS(TCOADS) ;
- TCOADS:units = "days since 1700-01-01 00:00:00" ;
- TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
- TCOADS:axis = "T" ;
- TCOADS:standard_name = "time" ;
- TCOADS:bounds = "TCOADS_bnds" ;
- double TCOADS_bnds(TCOADS, bnds) ;
- float VWND(TCOADS, COADSY65_66, COADSX90_91) ;
- VWND:missing_value = -1.e+34f ;
- VWND:_FillValue = -1.e+34f ;
- VWND:long_name = "MERIDIONAL WIND" ;
- VWND:history = "From coads_vwnd" ;
- VWND:units = "M/S" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- COADSX90_91 = 199, 201 ;
-
- COADSY65_66 = 39, 41 ;
-
- TCOADS = 89864.5 ;
-
- TCOADS_bnds =
- 89849, 89880 ;
-
- VWND =
- _, _,
- _, _ ;
-}
-bn_attributes.jnl --- 25 output new attr on user-defined var
-netcdf a {
-dimensions:
- COADSX90_91 = 2 ;
- COADSY65_66 = 2 ;
- TCOADS = UNLIMITED ; // (1 currently)
- bnds = 2 ;
-variables:
- double COADSX90_91(COADSX90_91) ;
- COADSX90_91:units = "degrees_east" ;
- COADSX90_91:modulo = " " ;
- COADSX90_91:point_spacing = "uneven" ;
- COADSX90_91:axis = "X" ;
- COADSX90_91:standard_name = "longitude" ;
- double COADSY65_66(COADSY65_66) ;
- COADSY65_66:units = "degrees_north" ;
- COADSY65_66:point_spacing = "uneven" ;
- COADSY65_66:new_att = "somthing" ;
- COADSY65_66:axis = "Y" ;
- COADSY65_66:standard_name = "latitude" ;
- double TCOADS(TCOADS) ;
- TCOADS:units = "days since 1700-01-01 00:00:00" ;
- TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
- TCOADS:axis = "T" ;
- TCOADS:standard_name = "time" ;
- TCOADS:bounds = "TCOADS_bnds" ;
- double TCOADS_bnds(TCOADS, bnds) ;
- double T2(TCOADS, COADSY65_66, COADSX90_91) ;
- T2:missing_value = -1.e+34 ;
- T2:_FillValue = -1.e+34 ;
- T2:long_name = "2*VWND" ;
- T2:history = "From coads_vwnd" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- COADSX90_91 = 199, 201 ;
-
- COADSY65_66 = 39, 41 ;
-
- TCOADS = 89864.5 ;
-
- TCOADS_bnds =
- 89849, 89880 ;
-
- T2 =
- _, _,
- _, _ ;
-}
-bn_attributes.jnl --- 26 attributes of axes
-netcdf a {
-dimensions:
- PSXT91_108 = 18 ;
- PSYT35_56 = 22 ;
- bnds = 2 ;
- PSZT1_10 = 10 ;
- TIME1 = UNLIMITED ; // (1 currently)
-variables:
- double PSXT91_108(PSXT91_108) ;
- PSXT91_108:units = "degrees_east" ;
- PSXT91_108:modulo = 360. ;
- PSXT91_108:point_spacing = "even" ;
- PSXT91_108:axis = "X" ;
- PSXT91_108:standard_name = "longitude" ;
- double PSYT35_56(PSYT35_56) ;
- PSYT35_56:units = "degrees_north" ;
- PSYT35_56:point_spacing = "uneven" ;
- PSYT35_56:axis = "Y" ;
- PSYT35_56:standard_name = "latitude" ;
- PSYT35_56:bounds = "PSYT35_56_bnds" ;
- double PSYT35_56_bnds(PSYT35_56, bnds) ;
- double PSZT1_10(PSZT1_10) ;
- PSZT1_10:units = "METERS" ;
- PSZT1_10:positive = "down" ;
- PSZT1_10:point_spacing = "uneven" ;
- PSZT1_10:axis = "Z" ;
- PSZT1_10:standard_name = "depth" ;
- PSZT1_10:bounds = "PSZT1_10_bnds" ;
- double PSZT1_10_bnds(PSZT1_10, bnds) ;
- double TIME1(TIME1) ;
- TIME1:units = "hour since 1980-01-14 14:00:00" ;
- TIME1:time_origin = "14-JAN-1980 14:00:00" ;
- TIME1:axis = "T" ;
- TIME1:standard_name = "time" ;
- double T2(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
- T2:missing_value = -1.e+34 ;
- T2:_FillValue = -1.e+34 ;
- T2:long_name = "T*TEMP" ;
- T2:history = "From gt4d011" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
- PSXT91_108 = 18 ;
- PSYT35_56 = 22 ;
- bnds = 2 ;
- PSZT1_10 = 10 ;
- TIME1 = UNLIMITED ; // (1 currently)
-variables:
- double PSXT91_108(PSXT91_108) ;
- PSXT91_108:units = "degrees_east" ;
- PSXT91_108:modulo = 360. ;
- PSXT91_108:point_spacing = "even" ;
- PSXT91_108:axis = "X" ;
- PSXT91_108:standard_name = "longitude" ;
- double PSYT35_56(PSYT35_56) ;
- PSYT35_56:units = "degrees_north" ;
- PSYT35_56:point_spacing = "uneven" ;
- PSYT35_56:axis = "Y" ;
- PSYT35_56:standard_name = "latitude" ;
- PSYT35_56:bounds = "PSYT35_56_bnds" ;
- double PSYT35_56_bnds(PSYT35_56, bnds) ;
- double PSZT1_10(PSZT1_10) ;
- PSZT1_10:units = "METERS" ;
- PSZT1_10:positive = "down" ;
- PSZT1_10:point_spacing = "uneven" ;
- PSZT1_10:axis = "Z" ;
- PSZT1_10:standard_name = "depth" ;
- PSZT1_10:bounds = "PSZT1_10_bnds" ;
- double PSZT1_10_bnds(PSZT1_10, bnds) ;
- double TIME1(TIME1) ;
- TIME1:units = "hour since 1980-01-14 14:00:00" ;
- TIME1:time_origin = "14-JAN-1980 14:00:00" ;
- TIME1:axis = "T" ;
- TIME1:standard_name = "time" ;
- double T2(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
- T2:missing_value = -1.e+34 ;
- T2:_FillValue = -1.e+34 ;
- T2:long_name = "T*TEMP" ;
- T2:history = "From gt4d011" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
- PSXT91_108 = 18 ;
- PSYT35_56 = 22 ;
- bnds = 2 ;
- PSZT1_10 = 10 ;
- TIME1 = UNLIMITED ; // (1 currently)
-variables:
- double PSXT91_108(PSXT91_108) ;
- PSXT91_108:units = "meters" ;
- PSXT91_108:modulo = 360. ;
- PSXT91_108:point_spacing = "even" ;
- PSXT91_108:axis = "X" ;
- double PSYT35_56(PSYT35_56) ;
- PSYT35_56:units = "meters" ;
- PSYT35_56:point_spacing = "uneven" ;
- PSYT35_56:axis = "Y" ;
- PSYT35_56:bounds = "PSYT35_56_bnds" ;
- double PSYT35_56_bnds(PSYT35_56, bnds) ;
- double PSZT1_10(PSZT1_10) ;
- PSZT1_10:units = "METERS" ;
- PSZT1_10:positive = "down" ;
- PSZT1_10:point_spacing = "uneven" ;
- PSZT1_10:axis = "Z" ;
- PSZT1_10:standard_name = "depth" ;
- PSZT1_10:bounds = "PSZT1_10_bnds" ;
- double PSZT1_10_bnds(PSZT1_10, bnds) ;
- double TIME1(TIME1) ;
- TIME1:units = "hour since 1980-01-14 14:00:00" ;
- TIME1:time_origin = "14-JAN-1980 14:00:00" ;
- TIME1:axis = "T" ;
- TIME1:standard_name = "time" ;
- double T2(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
- T2:missing_value = -1.e+34 ;
- T2:_FillValue = -1.e+34 ;
- T2:long_name = "T*TEMP" ;
- T2:history = "From gt4d011" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
- XAXLEVITR1_160 = 160 ;
- YAXLEVITR1_9090_90 = 1 ;
- ZAXLEVITR1_1 = 1 ;
-variables:
- double XAXLEVITR1_160(XAXLEVITR1_160) ;
- XAXLEVITR1_160:units = "degrees_east" ;
- XAXLEVITR1_160:modulo = " " ;
- XAXLEVITR1_160:point_spacing = "even" ;
- XAXLEVITR1_160:new_att = "something" ;
- XAXLEVITR1_160:axis = "X" ;
- XAXLEVITR1_160:standard_name = "longitude" ;
- double YAXLEVITR1_9090_90(YAXLEVITR1_9090_90) ;
- YAXLEVITR1_9090_90:units = "degrees_north" ;
- YAXLEVITR1_9090_90:point_spacing = "even" ;
- YAXLEVITR1_9090_90:axis = "Y" ;
- YAXLEVITR1_9090_90:standard_name = "latitude" ;
- double ZAXLEVITR1_1(ZAXLEVITR1_1) ;
- ZAXLEVITR1_1:units = "meters" ;
- ZAXLEVITR1_1:positive = "down" ;
- ZAXLEVITR1_1:point_spacing = "even" ;
- ZAXLEVITR1_1:axis = "Z" ;
- ZAXLEVITR1_1:standard_name = "depth" ;
- float TEMP(ZAXLEVITR1_1, YAXLEVITR1_9090_90, XAXLEVITR1_160) ;
- TEMP:missing_value = -1.e+10f ;
- TEMP:_FillValue = -1.e+10f ;
- TEMP:long_name = "TEMPERATURE" ;
- TEMP:history = "From levitus_climatology" ;
- TEMP:units = "DEG C" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
- XAXLEVITR1_160161_161 = 1 ;
- YAXLEVITR1_9090_90 = 1 ;
- ZAXLEVITR1_1 = 1 ;
-variables:
- double XAXLEVITR1_160161_161(XAXLEVITR1_160161_161) ;
- XAXLEVITR1_160161_161:units = "degrees_east" ;
- XAXLEVITR1_160161_161:modulo = " " ;
- XAXLEVITR1_160161_161:point_spacing = "even" ;
- XAXLEVITR1_160161_161:new_att = "something" ;
- XAXLEVITR1_160161_161:axis = "X" ;
- XAXLEVITR1_160161_161:standard_name = "longitude" ;
- double YAXLEVITR1_9090_90(YAXLEVITR1_9090_90) ;
- YAXLEVITR1_9090_90:units = "degrees_north" ;
- YAXLEVITR1_9090_90:point_spacing = "even" ;
- YAXLEVITR1_9090_90:axis = "Y" ;
- YAXLEVITR1_9090_90:standard_name = "latitude" ;
- double ZAXLEVITR1_1(ZAXLEVITR1_1) ;
- ZAXLEVITR1_1:units = "meters" ;
- ZAXLEVITR1_1:positive = "down" ;
- ZAXLEVITR1_1:point_spacing = "even" ;
- ZAXLEVITR1_1:axis = "Z" ;
- ZAXLEVITR1_1:standard_name = "depth" ;
- double TWO(ZAXLEVITR1_1, YAXLEVITR1_9090_90, XAXLEVITR1_160161_161) ;
- TWO:missing_value = -1.e+34 ;
- TWO:_FillValue = -1.e+34 ;
- TWO:long_name = "2*TEMP[Y=0:15,X=180:200]" ;
- TWO:history = "From levitus_climatology" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 27 attributes of user-defined axes
-netcdf string4d {
-dimensions:
- X2AX = 2 ;
- Y3AX = 3 ;
- Z4AX = 4 ;
- T2AX = UNLIMITED ; // (2 currently)
- STRING1_5 = 5 ;
-variables:
- double X2AX(X2AX) ;
- X2AX:point_spacing = "even" ;
- X2AX:axis = "X" ;
- X2AX:modulo = " " ;
- double Y3AX(Y3AX) ;
- Y3AX:point_spacing = "even" ;
- Y3AX:axis = "Y" ;
- double Z4AX(Z4AX) ;
- Z4AX:point_spacing = "even" ;
- Z4AX:axis = "Z" ;
- Z4AX:positive = "up" ;
- Z4AX:standard_name = "altitude" ;
- double T2AX(T2AX) ;
- T2AX:axis = "T" ;
- char AXY(T2AX, Z4AX, Y3AX, X2AX, STRING1_5) ;
- AXY:long_name = "RESHAPE (A,RVAR)" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- 28 Define a new global attribute
-bn_attributes.jnl --- 29 SET ATT/OUTPUT=all for global attrs and a var
-netcdf a {
-dimensions:
- J = 3 ;
- I = 2 ;
- STRING1_3 = 3 ;
-variables:
- float J(J) ;
- J:point_spacing = "even" ;
- J:axis = "X" ;
- int I(I) ;
- I:point_spacing = "even" ;
- I:axis = "Y" ;
- char BROILED(I, J, STRING1_3) ;
- BROILED:act = "text string\n",
- "\t123" ;
- BROILED:acb = 10b ;
- BROILED:acs = -200s ;
- BROILED:acl = 17000 ;
- BROILED:acf = -2.f, 1.f, 0.f ;
- BROILED:acd = -1., 2.71828182845905 ;
- BROILED:long_name = "BROILED" ;
- BROILED:history = "From test0" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
- :glob = "Global attribute" ;
- :FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
-data:
-
- J = 2, 4, 6 ;
-
- I = 10, 20 ;
-
- BROILED =
- "ind",
- "ist",
- "ing",
- "uis",
- "hab",
- "le" ;
-}
-bn_attributes.jnl --- 29 SET VAR/OUTTYPE for user variable
-netcdf a {
-dimensions:
- PSXT91_108 = 18 ;
- PSYT35_56 = 22 ;
- bnds = 2 ;
- PSZT1_10 = 10 ;
- TIME1 = UNLIMITED ; // (25 currently)
-variables:
- double PSXT91_108(PSXT91_108) ;
- PSXT91_108:units = "degrees_east" ;
- PSXT91_108:modulo = 360. ;
- PSXT91_108:point_spacing = "even" ;
- PSXT91_108:axis = "X" ;
- PSXT91_108:standard_name = "longitude" ;
- double PSYT35_56(PSYT35_56) ;
- PSYT35_56:units = "degrees_north" ;
- PSYT35_56:point_spacing = "uneven" ;
- PSYT35_56:axis = "Y" ;
- PSYT35_56:standard_name = "latitude" ;
- PSYT35_56:bounds = "PSYT35_56_bnds" ;
- double PSYT35_56_bnds(PSYT35_56, bnds) ;
- double PSZT1_10(PSZT1_10) ;
- PSZT1_10:units = "METERS" ;
- PSZT1_10:positive = "down" ;
- PSZT1_10:point_spacing = "uneven" ;
- PSZT1_10:axis = "Z" ;
- PSZT1_10:standard_name = "depth" ;
- PSZT1_10:bounds = "PSZT1_10_bnds" ;
- double PSZT1_10_bnds(PSZT1_10, bnds) ;
- double TIME1(TIME1) ;
- TIME1:units = "hour since 1980-01-14 14:00:00" ;
- TIME1:time_origin = "14-JAN-1980 14:00:00" ;
- TIME1:axis = "T" ;
- TIME1:standard_name = "time" ;
- double FAREN(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
- FAREN:missing_value = -1.e+34 ;
- FAREN:_FillValue = -1.e+34 ;
- FAREN:long_name = "TEMP*9/5 + 32" ;
- FAREN:units = "Deg F" ;
- FAREN:history = "From gt4d011" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
- PSXT91_108 = 18 ;
- PSYT35_56 = 22 ;
- bnds = 2 ;
- PSZT1_10 = 10 ;
- TIME1 = UNLIMITED ; // (25 currently)
-variables:
- double PSXT91_108(PSXT91_108) ;
- PSXT91_108:units = "degrees_east" ;
- PSXT91_108:modulo = 360. ;
- PSXT91_108:point_spacing = "even" ;
- PSXT91_108:axis = "X" ;
- PSXT91_108:standard_name = "longitude" ;
- double PSYT35_56(PSYT35_56) ;
- PSYT35_56:units = "degrees_north" ;
- PSYT35_56:point_spacing = "uneven" ;
- PSYT35_56:axis = "Y" ;
- PSYT35_56:standard_name = "latitude" ;
- PSYT35_56:bounds = "PSYT35_56_bnds" ;
- double PSYT35_56_bnds(PSYT35_56, bnds) ;
- double PSZT1_10(PSZT1_10) ;
- PSZT1_10:units = "METERS" ;
- PSZT1_10:positive = "down" ;
- PSZT1_10:point_spacing = "uneven" ;
- PSZT1_10:axis = "Z" ;
- PSZT1_10:standard_name = "depth" ;
- PSZT1_10:bounds = "PSZT1_10_bnds" ;
- double PSZT1_10_bnds(PSZT1_10, bnds) ;
- double TIME1(TIME1) ;
- TIME1:units = "hour since 1980-01-14 14:00:00" ;
- TIME1:time_origin = "14-JAN-1980 14:00:00" ;
- TIME1:axis = "T" ;
- TIME1:standard_name = "time" ;
- int FAREN(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
- FAREN:missing_value = -999 ;
- FAREN:_FillValue = -999 ;
- FAREN:long_name = "TEMP*9/5 + 32" ;
- FAREN:units = "Deg F" ;
- FAREN:history = "From gt4d011" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
- XAX = 4 ;
- bnds = 2 ;
-variables:
- double XAX(XAX) ;
- XAX:point_spacing = "uneven" ;
- XAX:axis = "X" ;
- XAX:bounds = "XAX_bnds" ;
- double XAX_bnds(XAX, bnds) ;
- double A(XAX) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "X[GX=XAX]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX = 1.5, 3, 6, 8.5 ;
-
- XAX_bnds =
- 1, 2,
- 2, 4,
- 4, 8,
- 8, 9 ;
-
- A = 1.5, 3, 6, 8.5 ;
-}
-netcdf a {
-dimensions:
- XAX = 4 ;
- bnds = 2 ;
-variables:
- double XAX(XAX) ;
- XAX:point_spacing = "uneven" ;
- XAX:axis = "X" ;
- XAX:bounds = "XAX_bnds" ;
- double XAX_bnds(XAX, bnds) ;
- double A(XAX) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "X[GX=XAX]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX = 1.5, 3, 6, 8.5 ;
-
- XAX_bnds =
- 1, 2,
- 2, 4,
- 4, 8,
- 8, 9 ;
-
- A = 1.5, 3, 6, 8.5 ;
-}
-netcdf a {
-dimensions:
- XAX = 4 ;
- bnds = 2 ;
-variables:
- double XAX(XAX) ;
- XAX:point_spacing = "uneven" ;
- XAX:axis = "X" ;
- XAX:bounds = "XAX_bnds" ;
- double XAX_bnds(XAX, bnds) ;
- double A(XAX) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "X[GX=XAX]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX = 1.5, 3, 6, 8.5 ;
-
- XAX_bnds =
- 1, 2,
- 2, 4,
- 4, 8,
- 8, 9 ;
-
- A = 1.5, 3, 6, 8.5 ;
-}
-netcdf a {
-dimensions:
- XAX_LEV9421_380 = 360 ;
- YAX_LEV9450_50 = 1 ;
- ZAXLEVIT191_1 = 1 ;
- TIME = UNLIMITED ; // (1 currently)
-variables:
- double XAX_LEV9421_380(XAX_LEV9421_380) ;
- XAX_LEV9421_380:units = "degrees_east" ;
- XAX_LEV9421_380:modulo = " " ;
- XAX_LEV9421_380:point_spacing = "even" ;
- XAX_LEV9421_380:long_name = "Here is a long name for the x axis of TEMP" ;
- XAX_LEV9421_380:axis = "X" ;
- XAX_LEV9421_380:standard_name = "longitude" ;
- double YAX_LEV9450_50(YAX_LEV9450_50) ;
- YAX_LEV9450_50:units = "degrees_north" ;
- YAX_LEV9450_50:point_spacing = "even" ;
- YAX_LEV9450_50:axis = "Y" ;
- YAX_LEV9450_50:standard_name = "latitude" ;
- double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
- ZAXLEVIT191_1:units = "meters" ;
- ZAXLEVIT191_1:positive = "down" ;
- ZAXLEVIT191_1:point_spacing = "even" ;
- ZAXLEVIT191_1:axis = "Z" ;
- ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_380) ;
- TEMP:missing_value = -1.e+34f ;
- TEMP:_FillValue = -1.e+34f ;
- TEMP:long_name = "Temperature" ;
- TEMP:history = "From ocean_atlas_monthly" ;
- TEMP:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
- XAX_LEV9421_3801_12 = 12 ;
- YAX_LEV9450_50 = 1 ;
- ZAXLEVIT191_1 = 1 ;
- TIME = UNLIMITED ; // (1 currently)
-variables:
- double XAX_LEV9421_3801_12(XAX_LEV9421_3801_12) ;
- XAX_LEV9421_3801_12:units = "degrees_east" ;
- XAX_LEV9421_3801_12:modulo = " " ;
- XAX_LEV9421_3801_12:point_spacing = "even" ;
- XAX_LEV9421_3801_12:long_name = "Here is a long name for the x axis of TEMP" ;
- XAX_LEV9421_3801_12:axis = "X" ;
- XAX_LEV9421_3801_12:standard_name = "longitude" ;
- double YAX_LEV9450_50(YAX_LEV9450_50) ;
- YAX_LEV9450_50:units = "degrees_north" ;
- YAX_LEV9450_50:point_spacing = "even" ;
- YAX_LEV9450_50:axis = "Y" ;
- YAX_LEV9450_50:standard_name = "latitude" ;
- double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
- ZAXLEVIT191_1:units = "meters" ;
- ZAXLEVIT191_1:positive = "down" ;
- ZAXLEVIT191_1:point_spacing = "even" ;
- ZAXLEVIT191_1:axis = "Z" ;
- ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_3801_12) ;
- TEMP:missing_value = -1.e+34f ;
- TEMP:_FillValue = -1.e+34f ;
- TEMP:long_name = "Temperature" ;
- TEMP:history = "From ocean_atlas_monthly" ;
- TEMP:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
- YAXIS = 61 ;
-variables:
- double YAXIS(YAXIS) ;
- YAXIS:units = "degrees_north" ;
- YAXIS:point_spacing = "even" ;
- YAXIS:axis = "Y" ;
- YAXIS:standard_name = "latitude" ;
- double V(YAXIS) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "Y[GY=YAXIS]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-err611_set_var_ez.jnl ---
-netcdf a {
-dimensions:
- XAX1_3 = 3 ;
-variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- float MY_ASC(XAX1_3) ;
- MY_ASC:missing_value = 3.f ;
- MY_ASC:_FillValue = 3.f ;
- MY_ASC:long_name = "chlorophyll" ;
- MY_ASC:units = "micrograms/L" ;
- MY_ASC:history = "From dat.dat" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-netcdf a {
-dimensions:
- XAX1_3 = 3 ;
-variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- float MY_UNF(XAX1_3) ;
- MY_UNF:missing_value = 5.f ;
- MY_UNF:_FillValue = 5.f ;
- MY_UNF:long_name = "Some Unformatted input" ;
- MY_UNF:units = "metres" ;
- MY_UNF:history = "From unf.dat" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
-netcdf a {
-dimensions:
- XAX1_3 = 3 ;
-variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- double A(XAX1_3) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "{1.1,2.2,3.3}" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- A = 1.1, 2.2, 3.3 ;
-}
-netcdf a {
-dimensions:
- XAX1_12 = 12 ;
-variables:
- double XAX1_12(XAX1_12) ;
- XAX1_12:point_spacing = "even" ;
- XAX1_12:axis = "X" ;
- int A(XAX1_12) ;
- A:missing_value = 999 ;
- A:_FillValue = 999 ;
- A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-data:
-
- XAX1_12 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ;
-
- A = 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5 ;
-}
-netcdf a {
-dimensions:
- XAX1_10 = 10 ;
- tday = UNLIMITED ; // (31 currently)
- lon1_5 = 5 ;
- lat1_5 = 5 ;
- bnds = 2 ;
- zt = 10 ;
- time1478 = 3 ;
-variables:
- double XAX1_10(XAX1_10) ;
- XAX1_10:point_spacing = "even" ;
- XAX1_10:axis = "X" ;
- double tday(tday) ;
- tday:units = "days since 1998-12-31 00:00:00" ;
- tday:axis = "T" ;
- tday:calendar = "GREGORIAN" ;
- tday:time_origin = "31-DEC-1998" ;
- tday:standard_name = "time" ;
- double MyUpperLowerCaseVar(tday, XAX1_10) ;
- MyUpperLowerCaseVar:missing_value = -1.e+34 ;
- MyUpperLowerCaseVar:_FillValue = -1.e+34 ;
- MyUpperLowerCaseVar:long_name = "X[X=1:10] + T[GT=TDAY]" ;
- double lon1_5(lon1_5) ;
- lon1_5:point_spacing = "even" ;
- lon1_5:axis = "X" ;
- lon1_5:standard_name = "longitude" ;
- double lat1_5(lat1_5) ;
- lat1_5:point_spacing = "uneven" ;
- lat1_5:axis = "Y" ;
- lat1_5:standard_name = "latitude" ;
- lat1_5:bounds = "lat1_5_bnds" ;
- double lat1_5_bnds(lat1_5, bnds) ;
- float zt(zt) ;
- zt:units = "meters" ;
- zt:positive = "down" ;
- zt:point_spacing = "uneven" ;
- zt:axis = "Z" ;
- zt:standard_name = "depth" ;
- zt:bounds = "zt_bnds" ;
- float zt_bnds(zt, bnds) ;
- double time1478(time1478) ;
- time1478:calendar = "NOLEAP" ;
- time1478:point_spacing = "even" ;
- time1478:axis = "T" ;
- time1478:standard_name = "time" ;
- double newvar(time1478, zt, lat1_5, lon1_5) ;
- newvar:missing_value = -999. ;
- newvar:_FillValue = -999. ;
- newvar:long_name = "outgoing longwave radiation" ;
- newvar:units = "watts/m2" ;
- newvar:history = "From a" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
-netcdf a {
-dimensions:
- X100 = 11 ;
- T31 = UNLIMITED ; // (14 currently)
-variables:
- double X100(X100) ;
- X100:units = "degrees_east" ;
- X100:point_spacing = "even" ;
- X100:axis = "X" ;
- X100:modulo = 360. ;
- X100:standard_name = "longitude" ;
- double T31(T31) ;
- T31:units = "days since 1999-12-31 00:00:00" ;
- T31:axis = "T" ;
- T31:calendar = "GREGORIAN" ;
- T31:time_origin = "31-DEC-1999" ;
- T31:standard_name = "time" ;
- double A(T31, X100) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "X[GX=X100] + T[GT=T31]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
-netcdf a {
-dimensions:
- X10030_40 = 11 ;
- T31 = UNLIMITED ; // (14 currently)
-variables:
- double X10030_40(X10030_40) ;
- X10030_40:units = "degrees_east" ;
- X10030_40:point_spacing = "even" ;
- X10030_40:axis = "X" ;
- X10030_40:modulo = 360. ;
- X10030_40:standard_name = "longitude" ;
- double T31(T31) ;
- T31:units = "days since 1999-12-31 00:00:00" ;
- T31:axis = "T" ;
- T31:calendar = "GREGORIAN" ;
- T31:time_origin = "31-DEC-1999" ;
- T31:standard_name = "time" ;
- double A(T31, X10030_40) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "X[GX=X100] + T[GT=T31]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
-netcdf a {
-dimensions:
- XAX = 11 ;
- YAX = 6 ;
- TAXIS = UNLIMITED ; // (5 currently)
- ZAXDN = 4 ;
- bnds = 2 ;
- ZAXUP = 5 ;
-variables:
- double XAX(XAX) ;
- XAX:point_spacing = "even" ;
- XAX:axis = "X" ;
- XAX:units = "deg" ;
- XAX:modulo = 360. ;
- XAX:standard_name = "longitude" ;
- double XX(XAX) ;
- XX:missing_value = -1.e+34 ;
- XX:_FillValue = -1.e+34 ;
- XX:long_name = "X[GX=XAX]" ;
- double YAX(YAX) ;
- YAX:point_spacing = "even" ;
- YAX:axis = "Y" ;
- YAX:units = "degrees" ;
- YAX:standard_name = "latitude" ;
- double YY(YAX) ;
- YY:missing_value = -1.e+34 ;
- YY:_FillValue = -1.e+34 ;
- YY:long_name = "Y[GY=YAX]" ;
- double TAXIS(TAXIS) ;
- TAXIS:units = "days since 2000-01-01 00:00:00" ;
- TAXIS:axis = "T" ;
- TAXIS:time_origin = "1-JAN-2000" ;
- TAXIS:standard_name = "time" ;
- double TT(TAXIS) ;
- TT:missing_value = -1.e+34 ;
- TT:_FillValue = -1.e+34 ;
- TT:long_name = "T[GT=TAXIS]" ;
- double ZAXDN(ZAXDN) ;
- ZAXDN:units = "meters" ;
- ZAXDN:point_spacing = "uneven" ;
- ZAXDN:axis = "Z" ;
- ZAXDN:bounds = "ZAXDN_bnds" ;
- ZAXDN:positive = "down" ;
- ZAXDN:standard_name = "depth" ;
- double ZAXDN_bnds(ZAXDN, bnds) ;
- double ZDN(ZAXDN) ;
- ZDN:missing_value = -1.e+34 ;
- ZDN:_FillValue = -1.e+34 ;
- ZDN:long_name = "Z[GZ=ZAXDN]" ;
- double ZAXUP(ZAXUP) ;
- ZAXUP:units = "meters" ;
- ZAXUP:point_spacing = "uneven" ;
- ZAXUP:axis = "Z" ;
- ZAXUP:bounds = "ZAXUP_bnds" ;
- ZAXUP:standard_name = "altitude" ;
- double ZAXUP_bnds(ZAXUP, bnds) ;
- double ZUP(ZAXUP) ;
- ZUP:missing_value = -1.e+34 ;
- ZUP:_FillValue = -1.e+34 ;
- ZUP:long_name = "Z[GZ=ZAXUP]" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
-netcdf a {
-dimensions:
- XAXIS = 31 ;
- YFIFTEEN = 13 ;
-variables:
- double XAXIS(XAXIS) ;
- XAXIS:units = "degrees_east" ;
- XAXIS:point_spacing = "even" ;
- XAXIS:axis = "X" ;
- XAXIS:modulo = 360. ;
- XAXIS:standard_name = "longitude" ;
- float VAR(XAXIS) ;
- VAR:missing_value = -1.e+34f ;
- VAR:_FillValue = -1.e+34f ;
- VAR:long_name = "X[GX=XAXIS]" ;
- VAR:history = "From degrees" ;
- double YFIFTEEN(YFIFTEEN) ;
- YFIFTEEN:units = "degrees_north" ;
- YFIFTEEN:point_spacing = "even" ;
- YFIFTEEN:axis = "Y" ;
- YFIFTEEN:standard_name = "latitude" ;
- double Y_(YFIFTEEN) ;
- Y_:missing_value = -1.e+34 ;
- Y_:_FillValue = -1.e+34 ;
- Y_:long_name = "Y" ;
- Y_:long_name_mod = "axis YFIFTEEN" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
-bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
-netcdf a {
-dimensions:
- XLON = 40 ;
- YLAT = 30 ;
- TTIME = UNLIMITED ; // (20 currently)
-variables:
- double XLON(XLON) ;
- XLON:units = "degrees_east" ;
- XLON:point_spacing = "even" ;
- XLON:modulo = 360. ;
- XLON:axis = "X" ;
- XLON:standard_name = "longitude" ;
- double YLAT(YLAT) ;
- YLAT:units = "degrees_north" ;
- YLAT:point_spacing = "even" ;
- YLAT:axis = "Y" ;
- YLAT:standard_name = "latitude" ;
- double TTIME(TTIME) ;
- TTIME:units = "days since 1901-01-15 00:00:00" ;
- TTIME:time_origin = "15-JAN-1901 00:00:00" ;
- TTIME:axis = "T" ;
- TTIME:standard_name = "time" ;
- float XYTVAR(TTIME, YLAT, XLON) ;
- XYTVAR:missing_value = -1.e+34f ;
- XYTVAR:_FillValue = -1.e+34f ;
- XYTVAR:long_name = "L*1000 + J*10 + I" ;
- XYTVAR:history = "From bn_strides" ;
-
-// global attributes:
- :history = "FERRET V6.85 12-Nov-13" ;
- :Conventions = "CF-1.0" ;
-}
------
-end of ncdump output
-
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes?
-yes?
-yes? GO bn_startupfile
- NOAA/PMEL TMAP
- FERRET v6.85
- Linux 2.6.32-358.23.2.el6.x86_64 32-bit - 11/12/13
- 12-Nov-13 15:14
-
-CAN MODE VERIFY
- Current size of FERRET memory cache: 31 MegaWords (1 word = 4 bytes)
-PPL$XPIXEL = "656"
-PPL$YPIXEL = "492"
-BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.85"
-FERRET_PLATFORM = "Linux 2.6.32-358.23.2.el6.x86_64 32-bit"
-FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.0 of May 13 2013 13:48:05 $"
-FERRET_MEMORY = "31"
-SESSION_DATE = "12-Nov-13"
-SESSION_TIME = "15:14"
-SESSION_PID = "28140"
-DELTA_CPU = "0.036993"
-CLOCK_SECS = "0.313"
-CURRENT_DATE = "12-Nov-13"
-CURRENT_TIME = "15:14:00"
-N_OPEN_DSETS = "0"
-PROGRAM_NAME = "Ferret"
-LAST_GO_FILE = "./bn_startupfile.jnl"
-PPL$FORMAT = "(3F10.2)"
-PPL$PLTNME = "startup_tests.plt"
-PPL$TEKNME = "/dev/tty"
-PPL$XLEN = "8.000"
-PPL$YLEN = "6.000"
-PPL$XORG = "1.200"
-PPL$YORG = "1.400"
-PPL$WIDTH = "10.20"
-PPL$HEIGHT = "8.800"
-PPL$LINE_COUNT = "0"
-PPL$XFACT1 = "1.000"
-PPL$XOFF1 = "0.000"
-PPL$YFACT1 = "1.000"
-PPL$YOFF1 = "0.000"
-PPL$VIEW_X = "0.000"
-PPL$VIEW_Y = "0.000"
-PPL$VIEW_Z = "0.000"
-PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "12-Nov-13:15:14"
-VP_WIDTH = "10.2"
-VP_HEIGHT = "8.8"
-VP_SCALE = "1"
-VP_RT_MARGIN = "1"
-VP_TOP_MARGIN = "1.4"
-VP_XLO = "0"
-VP_XHI = "1"
-VP_YLO = "0"
-VP_YHI = "1"
-GO_FILE = "./bn_startupfile.jnl"
- MODE STATE ARGUMENT
- DIAGNOSTIC CANCELLED 99
- VERIFY CANCELLED DEFAULT
- INTERPOLATE CANCELLED
- IGNORE_ERROR CANCELLED
- STUPID CANCELLED
- JOURNAL SET startup_tests.jnl
- LONG_LABEL SET 1
- LATIT_LABEL CANCELLED 1
- DEPTH_LABEL SET -4
- CALENDAR SET minutes
- 6D_LAB SET
- ASCII_FONT SET
- SEGMENT SET
- WAIT CANCELLED
- DESPERATE CANCELLED 3100000
- GKS SET
- REFRESH SET
- METAFILE SET startup_tests.plt
- PPLLIST CANCELLED ppllist.out
- GUI CANCELLED
- LOGO SET
- LABELS SET
- GRATICULE SET
- LINECOLORS SET 7
- UPCASE_OUTPU SET
- NLEVELS SET 100
- NODATA_LAB SET
- shrink_ylab CANCELLED
- currently SET data sets:
- 1> ./gtbc011.cdf (default)
- name title I J K L M N
- TEMP TEMPERATURE 70:72 1:100 1:27 1:3 ... ...
- SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3 ... ...
- U ZONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- V MERIDIONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- W VERTICAL VELOCITY 70:71 1:100 1:27 1:3 ... ...
- TAUX ZONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
-
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes?
-yes?
-yes? GO bn_gif
- NOAA/PMEL TMAP
- FERRET v6.85
- Linux 2.6.32-358.23.2.el6.x86_64 32-bit - 11/12/13
- 12-Nov-13 15:14
-
-! bn450_gif.JNL - copied from bn450_plot.jnl
-! this journal file only tests the writing of gif file in batch mode using
-! frame/file=bnplot.gif....will create three gif files
-! *kob*
-
-! define a 6 viewport window (modified definitions 11/92)
-def view/text=.4/xlim=0,.333/ylim=0,.5 ll6
-def view/text=.2/xlim=0,.333/ylim=.5,1 ul6
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6
-def view/text=1.5/xlim=.666,1/ylim=0,.5 lr6
-def view/xlim=.666,1/ylim=.5,1 ur6 ! auto /TEXT
-show view
-
- name text xlimits ylimits mode
-
- UPPER 1.00 0.00,1.00 0.50,1.00 edges
- LOWER 1.00 0.00,1.00 0.00,0.50 edges
- RIGHT 1.00 0.50,1.00 0.00,1.00 edges
- LEFT 1.00 0.00,0.50 0.00,1.00 edges
- LL 0.50 0.00,0.50 0.00,0.50 edges
- LR 0.50 0.50,1.00 0.00,0.50 edges
- UL 0.50 0.00,0.50 0.50,1.00 edges
- UR 0.50 0.50,1.00 0.50,1.00 edges
- FULL 1.00 0.00,1.00 0.00,1.00 edges
- LL6 0.40 0.00,0.33 0.00,0.50 edges
- UL6 0.20 0.00,0.33 0.50,1.00 edges
- LM6 0.10 0.33,0.67 0.00,0.50 edges
- UM6 0.60 0.33,0.67 0.50,1.00 edges
- LR6 1.50 0.67,1.00 0.00,0.50 edges
- UR6 0.41 0.67,1.00 0.50,1.00 edges
- current viewport is NONE
-
-! some variables for plotting
-let a = 0.8*sin(l/10)
-let b = 0.6*cos(l/10)
-let c = sin(100/(l+k))
-let d = l/50
-let e = k-(l/25)
-let f = -.5+(l/125)
-let g = (l-25)/(k*35)
-let h = 0.1
-let m = 0.2
-
-! illegal plot commands
-set mode ignore
-plot/i=1:10/j=1:20/nolabel i+j ! not a line
-plot/i=1:10/j=1:20/nolabel i,i+j ! not a line
-plot/i=1:10/j=1:20/nolabel i+j,i ! not a line
-plot/i=1:10/j=1:20/nolabel j,i ! differing axes
-plot/i=1:10/j=1:20/vs/line/nolabel j,i ! unequal lengths
-contour/i=1:10/j=1:20/nolabel i ! only 1 D
-contour/i=1:10/j=1:20/nolabel i/j,j/i ! multiple fields
-vector/i=1:10/j=1:20/nolabel i/j ! only 1 field
-vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j ! 3 fields
-set mode/last ignore
-
-! notice the default window size is 10.2,width x 8.8,height
-ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
- WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
- PLOT MODE= A
- PLOT FILE= .gif [...]
-
-! enlarge it to accomodate an additional 50% width
-ppl size 15.3,8.8
-
-! turn on metafile (enabled 10/29/91)
-! commented out 9/97 - instead set in bn450_all.jnl
-! set mode metafile
-
-! draw a plot into a viewport - to be deleted (check hard copy)
-set view ll6
-contour/i=1:50/j=1:50/nolabel i/(j+20)
-
-! 4 frames testing PLOT output
-set view ul6
-plot/l=1:50/k=1/trans/nolabel a,b,c
-plot/l=1:50/k=1/trans/over/line=6/nolabel d
-plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
-plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
-def view/text=.1/xlim=.333,1/ylim=0,.5 lm6 ! redefine longer in x (11/92)
-set view lm6
-!ppl axlen 16
-set region/k=1
-plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-def view/text=.6/xlim=.333,1/ylim=.5,1 um6 ! redefine it longer in x (11/92)
-set view um6
-!ppl axlen 17,5
-plot/l=1:50/nolabel sin(100/(l+5))
-plot/l=1:50/over/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-set view ll6
-!ppl axlen 8,6
-plot/l=1:99000/nolabel sin(200000/(l+10000))
-
-! reset to normal axis lengths and prepare for a new piccie
-!ppl axlen 8
-frame/file=bnplot.gif
-set wind/clear
-
-! draw six frames
-set view ll6
-contour/i=1:50/j=1:50/levels=(0,2.5,.25)/nolabel i/(j+20)
-plot/over/nolab/vs/line/i=1:50/j=1:50/nolabel 6*i/j,5*j/i
-set view ul6
-vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6 ! redefine it (11/92)
-set view lm6
-shade/i=1:50/j=1:50/nolabel i/(j+20)
-set view lr6
-ppl lev () (0,2.5,.1)
-shade/i=1:50/j=1:50/line/level/nolabel i/(j+20)
-set view ur6
-let icomp = (sin(i/20)*10+j-20)
-let jcomp = (-1*cos(j/10)*10+i-20)
-contour/i=1:50/j=1:50/nolabel icomp^2+jcomp^2
-contour/i=1:50/j=1:50/over/level/nolabel icomp^2+(-1*cos(i/10)*80)^2
-! note: "i-i" and "j-j" are needed to create 2D structures
-vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
-vector/i=1:50/j=1:50/overlay/length/nolabel i-20+(j-j),40-j+(i-i)
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6 ! redefine it (11/92)
-set view um6
-shade/i=1:50/j=1:50/nolabel i/(j+20)
-contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
-vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
-frame/file=bnplot.gif
-! additions for version 3.01 "/TITLE=" controls
-cancel viewports
-set view ul6
-plot/title="My Custom Title"/i=1:100/nolabel sin(i/6)
-plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/5)
-set view um6
-plot/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
-plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view ur6
-plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
-plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view ll6
-plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
-plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view lm6
-contour/i=1:20/j=1:20/title="My Contour Title"/nolabel sin(i/3)*cos(j/4)
-contour/over/i=5:30/j=5:30/title="My Contour Overlay"/nolabel sin(i/2)*cos(j/3)
-set view lr6
-wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
-
-! addition for 3.20 showing changed default behavior of plot/vs
-! return to window and redraw with symbols
-set view ll6
-plot/vs/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
-plot/vs/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-frame/file=bnplot.gif
-
-! Prior to v5.8 could not get the window size in pixels when in gif mode
-show symbol ppl$xpixel
-PPL$XPIXEL = "1152"
-show symbol ppl$ypixel
-PPL$YPIXEL = "662"
-
-! V6.13
-! transparency with FRAME/TRANS
-!!
-! These gif images have the background color white or black
-! replaced by transparent color. This can be tested by putting
-! them into an HTML document with a colored background.
-! e.g. a file called test_transparent.html containing only this line:
-! <html> <body bgcolor="orange"> <img src="testfile.gif"/> </body> </html>
-
-can view
-use coads_climatology
-shade/nokey/lev=50 sst[L=1]
-frame/trans/file=testbackground.gif
-
-! moved here from bn500_bug_fixes.jnl. The frame/ command it contains
-! has trouble when running the benchmarks from remote desktop
-go bn_reset
-cancel mode verify
-go err491_long_gif_name
-! err491_long_gif_name.jnl
-! *sh* 4/99 - test 175 character gif name
-
-! name length extended with changes to save_frame.F and xeq_frame.F
-
-set wind/siz=0.03
-go ptest
-! Description: create a simple test line plot
-
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
-
-
-sp rm -f abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
-
-frame/file="abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif"
-
-spawn ls abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
-abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif
-
-
-! The fix for bug 1396
-set v ul; plot/dash x[gx=0:20:.5]
-set v ur; plot/dash x[gx=0:20:.1]
-set v ll; plot/dash x[gx=0:20:.05]
-set v lr; plot/dash x[gx=0:20:.01]
-frame/file=gif_dashbug.gif
-
-exit/command
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes?
-yes?
-yes? GO bn_ps
- NOAA/PMEL TMAP
- FERRET v6.85
- Linux 2.6.32-358.23.2.el6.x86_64 32-bit - 11/12/13
- 12-Nov-13 15:14
-
-! bn450_ps.JNL - copied from bn450_plot.jnl
-! this journal file only tests the writing of ps files in batch mode using
-! "-batch bnplot.ps" command line option...will create on final ps file
-! *kob*
-
-! define a 6 viewport window (modified definitions 11/92)
-def view/text=.4/xlim=0,.333/ylim=0,.5 ll6
-def view/text=.2/xlim=0,.333/ylim=.5,1 ul6
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6
-def view/text=1.5/xlim=.666,1/ylim=0,.5 lr6
-def view/xlim=.666,1/ylim=.5,1 ur6 ! auto /TEXT
-show view
-
- name text xlimits ylimits mode
-
- UPPER 1.00 0.00,1.00 0.50,1.00 edges
- LOWER 1.00 0.00,1.00 0.00,0.50 edges
- RIGHT 1.00 0.50,1.00 0.00,1.00 edges
- LEFT 1.00 0.00,0.50 0.00,1.00 edges
- LL 0.50 0.00,0.50 0.00,0.50 edges
- LR 0.50 0.50,1.00 0.00,0.50 edges
- UL 0.50 0.00,0.50 0.50,1.00 edges
- UR 0.50 0.50,1.00 0.50,1.00 edges
- FULL 1.00 0.00,1.00 0.00,1.00 edges
- LL6 0.40 0.00,0.33 0.00,0.50 edges
- UL6 0.20 0.00,0.33 0.50,1.00 edges
- LM6 0.10 0.33,0.67 0.00,0.50 edges
- UM6 0.60 0.33,0.67 0.50,1.00 edges
- LR6 1.50 0.67,1.00 0.00,0.50 edges
- UR6 0.41 0.67,1.00 0.50,1.00 edges
- current viewport is NONE
-
-! some variables for plotting
-let a = 0.8*sin(l/10)
-let b = 0.6*cos(l/10)
-let c = sin(100/(l+k))
-let d = l/50
-let e = k-(l/25)
-let f = -.5+(l/125)
-let g = (l-25)/(k*35)
-let h = 0.1
-let m = 0.2
-
-! illegal plot commands
-set mode ignore
-plot/i=1:10/j=1:20/nolabel i+j ! not a line
-plot/i=1:10/j=1:20/nolabel i,i+j ! not a line
-plot/i=1:10/j=1:20/nolabel i+j,i ! not a line
-plot/i=1:10/j=1:20/nolabel j,i ! differing axes
-plot/i=1:10/j=1:20/vs/line/nolabel j,i ! unequal lengths
-contour/i=1:10/j=1:20/nolabel i ! only 1 D
-contour/i=1:10/j=1:20/nolabel i/j,j/i ! multiple fields
-vector/i=1:10/j=1:20/nolabel i/j ! only 1 field
-vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j ! 3 fields
-set mode/last ignore
-
-! notice the default window size is 10.2,width x 8.8,height
-ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
- WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
- PLOT MODE= A
- PLOT FILE= bnplot.ps [...]
-
-! enlarge it to accomodate an additional 50% width
-ppl size 15.3,8.8
-
-! turn on metafile (enabled 10/29/91)
-! commented out 9/97 - instead set in bn450_all.jnl
-! set mode metafile
-
-! draw a plot into a viewport - to be deleted (check hard copy)
-set view ll6
-contour/i=1:50/j=1:50/nolabel i/(j+20)
-
-! 4 frames testing PLOT output
-set view ul6
-plot/l=1:50/k=1/trans/nolabel a,b,c
-plot/l=1:50/k=1/trans/over/line=6/nolabel d
-plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
-plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
-def view/text=.1/xlim=.333,1/ylim=0,.5 lm6 ! redefine longer in x (11/92)
-set view lm6
-!ppl axlen 16
-set region/k=1
-plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-def view/text=.6/xlim=.333,1/ylim=.5,1 um6 ! redefine it longer in x (11/92)
-set view um6
-!ppl axlen 17,5
-plot/l=1:50/nolabel sin(100/(l+5))
-plot/l=1:50/over/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-set view ll6
-!ppl axlen 8,6
-plot/l=1:99000/nolabel sin(200000/(l+10000))
-
-! reset to normal axis lengths and prepare for a new piccie
-!ppl axlen 8
-
-set mode ignore
-frame/file=bnplot.ps ! DELIBERATE ERROR MESSAGE
-can mode ignore
-exit/command
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes?
-yes?
-yes? GO bn_batch_metafile
- NOAA/PMEL TMAP
- FERRET v6.85
- Linux 2.6.32-358.23.2.el6.x86_64 32-bit - 11/12/13
- 12-Nov-13 15:14
-
-! bn_batch_metafile.jnl
-! Run at the end of the benchmark scripts, starting ferret with the flags
-! -batch bat.plt
-! Produces nine metafiles.
-
-cancel mode logo
-
-! test viewports and set window/clear; cancel viewport
-set view upper
-plot/i=1:150 sin(i/12)
-set view lower
-plot/color=red/i=1:150 cos(i/10)
-
-set window/clear
-
-set view left
-shade/i=1:15/j=1:15/lev=30 i*j
-set view right
-shade/i=1:15/j=1:15 cos(i)* sin(j)
-
-cancel viewports
-
-set view ur
-plot/i=1:12 1./i
-set view ll
-shade/i=1:150/j=1:150 cos(i/10) - sin(j/12)
-
-! polygon command and palette
-
-cancel viewports
-polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
-
-! more viewports, with pplus/reset
-
-set view upper; shade/i=1:10/j=1:10 i*j
-cancel viewports
-pplus/reset
-
-! cancel viewports when viewport wasnt set
-! and set window/clear after cancel viewports
-
-plot/vs/line/i=1:314 i*cos(i/20),i*sin(i/20)
-plot/vs/line/over/i=1:314 i*cos(i/30),i*sin(i/20)
-
-cancel viewports
-set window/clear
-
-! aspect ratio can be set
-
-set window/asp=3
-shade/i=1:15/j=1:15/lev=20 i*j
-
-set win/asp=1
-fill/i=1:15/j=1:15/lev=20 i*j
-
-pplus/reset
-
-
-! Bug 1396 fixed
-
-set v ul; plot/dash x[gx=0:20:.5]
-set v ur; plot/dash x[gx=0:20:.1]
-set v ll; plot/dash x[gx=0:20:.05]
-set v lr; plot/dash x[gx=0:20:.01]
-cancel viewports
-
-! intentional errors and ignored commands
-! set and cancel mode metafile are ignored
-
-set mode metafile new.plt
-
-cancel mode metafile
-
-plot/i=1:12/title="after cancel mode metafile in batch mode" 1./i
-
-! set window commands are ignored, except for set window/aspect
-set window/new
-
-set window/location=0.1,0.1/title="another title"
-
-set mode/last logo
-exit/command
-Ended at Tue Nov 12 15:14:02 PST 2013
diff --git a/bench/ansley_official.rhel6-64_err b/bench/ansley_official.rhel6-64_err
index e6331a5..4cde0c8 100644
--- a/bench/ansley_official.rhel6-64_err
+++ b/bench/ansley_official.rhel6-64_err
@@ -1,10 +1,10 @@
Procedure run_all to run all FERRET benchmarks
Running FERRET version /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
--rwxr-xr-x. 1 manke oerdnewp 79254903 Oct 29 16:02 /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
+-rwxr-xr-x. 1 ansley oerdnewp 80974676 Nov 9 15:00 /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
Using external functions from /home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
Running the tests of external functions y
Benchmark run by ansley
-Note: bug 2215
+Note: ticket 2322: err msgs with SHOW DATA nofile to show the file name
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
FER_DAT=.
@@ -14,15 +14,12 @@ FER_DESCR=.
FER_DIR=.
FER_DSETS=.
FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
-FER_FONTS=/home/users/tmap/ferret/rhel6-x86_64-linux/ppl/fonts
-FER_GO=. /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
+FER_GO=. /home/users/tmap/ferret/x86_64-linux/go /home/users/tmap/ferret/x86_64-linux/examples /home/users/tmap/ferret/x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
FER_GRIDS=.
-FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
-FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
-FER_WEB_BROWSER=firefox
+FER_LIBS=/home/users/tmap/ferret/x86_64-linux/lib
+FER_PALETTE=. /home/users/tmap/ferret/x86_64-linux/ppl
PWD=/home/users/ansley/build/current_trunk/FERRET/bench
-Beginning at Wed Oct 29 16:02:58 PDT 2014
+Beginning at Mon Nov 9 15:02:29 PST 2015
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
SET EXPRESSION has not been given or implied
@@ -43,12 +40,12 @@ message/cont $3"<my error message"
message/cont $1"|xxxxx|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $1
message/cont $1"greetings|xxxxx|goodbye"
- *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
+ *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
**ERROR: my error message
message/cont $3"|hello|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3">greetings|hello|goodbye"
- *** NOTE: Valid argument $3 choices are: hello|goodbye
+ *** NOTE: Valid argument $3 choices are: hello|goodbye
**ERROR: my error message
message/cont $3">greetings|hello|goodbye<my error message"
**ERROR: my error message
@@ -59,17 +56,17 @@ message/cont $3""
message/cont $3"<"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"||"
- *** NOTE: Valid argument $3 choices are: |
+ *** NOTE: Valid argument $3 choices are: |
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"|>|"
- *** NOTE: Valid argument $3 choices are: >|
+ *** NOTE: Valid argument $3 choices are: >|
**ERROR: command syntax: empty text string provided with ">": >|
message/cont $3">|"
**ERROR: command syntax: empty text string provided with ">": |<
message/cont $3"|<"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"|>"
- *** NOTE: Valid argument $3 choices are: >
+ *** NOTE: Valid argument $3 choices are: >
**ERROR: command syntax: arg number not in 1-99 range: $100
say $100
**ERROR: command syntax: arg number not in 1-99 range: $100)
@@ -107,16 +104,16 @@ MESSAGE/CONTINUE `1*/3`
**ERROR: command syntax: sst*/3
* before / is illegal
MESSAGE/CONTINUE `sst*/3,return=lunits`
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
sst,return=Xsize
MESSAGE/CONTINUE `sst,return=Xsize`
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
sst,return=trash
MESSAGE/CONTINUE `sst,return=trash`
PERMANENT data cleared from memory
@@ -131,12 +128,22 @@ can var
LISTing to file v1file.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ **ERROR: invalid command: ENDIF can only be used in an IF clause
+ENDIF
+ **ERROR: command syntax: ELIF cannot be used in single line IF
+ IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+ **ERROR: command syntax: Trash after ENDIF
+ IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+ *** NOTE: Unclosed IF statement ... assuming ENDIF
**ERROR: invalid command: ELSE can only be used between IF and ENDIF
else
**ERROR: invalid command: ENDIF can only be used in an IF clause
endif
**ERROR: invalid command: ELIF can only be used between IF and ENDIF
elif
+ *** NOTE: Unclosed IF statement ... assuming ENDIF
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -154,7 +161,7 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
+ *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
**ERROR: inconsistent sizes of data regions: X axis
X[I=6:9] has 4 points (I=6:9)
expression has 5 points (I=1:5)
@@ -229,8 +236,8 @@ Re-defining viewport LM6
Re-defining viewport UM6
Using every 2th vector in the X direction
Using every 2th vector in the Y direction
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+ *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+ *** NOTE: Use /HLIMITS and /VLIMITS instead.
**ERROR: invalid command: color=noexist
Colors are Black,Red,Green,Blue,LightBlue,Purple, and White
plot/over/i=1:10/color=noexist i
@@ -277,12 +284,12 @@ define symbol t$5 = hi
message/continue ($test2"<error message")
**ERROR: invalid command: Valid value needed for symbol test2
message/continue ($test2"|hello|bye|")
- *** NOTE: Valid symbol test2 choices are: hello|bye|
+ *** NOTE: Valid symbol test2 choices are: hello|bye|
**ERROR: error message
message/continue ($test2"|hello|bye|<error message")
**ERROR: invalid command: Valid value needed for symbol t2
message/continue ($t2"|solong>really hello|bye|")
- *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
+ *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -332,12 +339,12 @@ list tu
Cached data cleared from memory
**ERROR: request exceeds memory setting: 25 Mwords were requested.
list temp[gz=z999999,z=5:15]
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Cached data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
+ *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
+ *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
**ERROR: invalid command: non-positive delta value: X[I=1:5:-1]
list x[i=1:5:-1]
**ERROR: invalid command: non-positive delta value: X[I=1:5:0]
@@ -401,9 +408,9 @@ list a
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file test2.cdf
LISTing to file FL.cdf
LISTing to file FTLON.cdf
@@ -467,7 +474,7 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: regridding: G=W - more than 1 target grid
@@ -561,14 +568,12 @@ Replacing definition of axis TAX
list v2-and-minus
**ERROR: dimensions improperly specified: 99999999 words were requested.
list x
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
+ *** NOTE: Check for unspecified limits on an ABSTRACT axis
+ *** NOTE: Use the SHOW GRID command to see the axes
**ERROR: dimensions improperly specified: 99999999 words were requested.
list i
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: variable unknown or not in data set: 'i'
-list 'i'
+ *** NOTE: Check for unspecified limits on an ABSTRACT axis
+ *** NOTE: Use the SHOW GRID command to see the axes
**ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
- before and is illegal
list v2-and-minus[i=5:15 at ddc]
@@ -583,15 +588,15 @@ Replacing definition of axis ZAX
Replacing definition of axis TAX
**ERROR: request exceeds memory setting: 24000 Mwords were requested.
load num
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
**ERROR: request exceeds memory setting: 1000 Mwords were requested.
load num
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis XAX
Replacing definition of axis YAX
Replacing definition of axis ZAX
@@ -601,7 +606,7 @@ Replacing definition of axis TAX
SET DATA/EZ/format=stream/var=num/grid=mygrid NoSuchFile.dat
**ERROR: Size of file ./junk.dat doesn't match size specified by variables/grid
load num
- *** NOTE: Binary file reading: Insufficient memory reading variable 2
+ *** NOTE: Binary file reading: Insufficient memory reading variable 2
**ERROR: invalid command: variable permutations only allowed for STREAM format
SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
**ERROR: invalid command: invalid argument for /TYPE
@@ -634,37 +639,37 @@ Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax/edges {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax/edges {6,6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
Replacing definition of axis XAX2
- *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
+ *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
Replacing definition of axis XAX2
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -697,7 +702,7 @@ Replacing definition of axis TCAL
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -753,8 +758,8 @@ stat i, noname(i)
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
**ERROR: invalid command: delta values may only modify variable names
LIST/i=2:4:2 VAR
PERMANENT data cleared from memory
@@ -763,15 +768,15 @@ LIST/i=2:4:2 VAR
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
+ *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of grid GX
@@ -808,11 +813,11 @@ Bailing out of external function "eof_stat":
Bailing out of external function "eof_tfunc":
Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
Replacing definition of grid TGRID
Replacing definition of axis TDAYS
Replacing definition of grid TGRID
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: command syntax: dash=(1., 2.)
@@ -853,8 +858,8 @@ Replacing definition of axis X10
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: X10
+ *** NOTE: Axis is in use by grid G10X5
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -924,10 +929,10 @@ list strcat ("All work and no play")
LISTing to file test_modulo.cdf
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Re-defining viewport MID
@@ -967,6 +972,18 @@ list a[gx=xnrst at sum]
**ERROR: invalid command: cant use this regrid transform on strings: @MOD
list a[gx=xnrst at mod]
LISTing to file foo.cdf
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" - {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" * {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" / {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" ^ {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead SIN({"a","b","c"})
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead MAX("a",{"a","b","c"})
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -982,12 +999,12 @@ Replacing definition of grid G1
**TMAP ERR: syntax error in string
Unrecognized field type: D
Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+ *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
SET DATA/FORM=delimited/type="d, da2,date2" bn_delimited_read_date_time.dat
**TMAP ERR: syntax error in string
Unrecognized field type: DATE2
Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+ *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
SET DATA/FORM=delimited/type="da,da, date2" bn_delimited_read_date_time.dat
**ERROR: command syntax: ,,:
SET DATA/EZ/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
@@ -1051,279 +1068,279 @@ Replacing definition of grid MYGRID
LISTing to file longax.dat
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
+ *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: Climatological axes test_irreg, test_seas defined
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
Replacing definition of axis TAX2
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file string4d.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G023)
- *** NOTE: Not deleted: XEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: XODD
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** NOTE: Axis is in use by grid JGRID
- *** NOTE: Not deleted: MONTHT
- *** NOTE: Axis is in use by grid TGRID
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: YAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAXLEVITR1_160
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME5
- *** NOTE: Axis is in use by grid GLB1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: COADSX
- *** NOTE: Axis is in use by grid GG
- *** NOTE: Not deleted: COADSY
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G023)
- *** NOTE: Not deleted: YAXLEVITR1_90
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: ZAXLEVITR1_1
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: (AX020)
- *** NOTE: Axis is in use by grid GG3
- *** NOTE: Not deleted: XEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: XODD
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** NOTE: Axis is in use by grid JGRID
- *** NOTE: Not deleted: MONTHT
- *** NOTE: Axis is in use by grid TGRID
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: YAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAXLEVITR1_160
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME5
- *** NOTE: Axis is in use by grid GLB1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: COADSX
- *** NOTE: Axis is in use by grid GG
- *** NOTE: Not deleted: COADSY
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: YAXLEVITR1_90
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: ZAXLEVITR1_1
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: (AX020)
- *** NOTE: Axis is in use by grid GG3
+ *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: Climatological axes test_irreg, test_seas defined
+ *** NOTE: Not deleted: TEST_IRREG
+ *** NOTE: Axis is in use by grid (G023)
+ *** NOTE: Not deleted: XEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: XODD
+ *** NOTE: Axis is in use by grid G13
+ *** NOTE: Not deleted: YEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: YODD
+ *** NOTE: Axis is in use by grid G2
+ *** NOTE: Not deleted: ZEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: ZODD
+ *** NOTE: Axis is in use by grid G3
+ *** NOTE: Not deleted: TEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: TODD
+ *** NOTE: Axis is in use by grid G4
+ *** NOTE: Not deleted: XCOARSE
+ *** NOTE: Axis is in use by grid GCOARSE
+ *** NOTE: Not deleted: YFINE
+ *** NOTE: Axis is in use by grid GFINE
+ *** NOTE: Not deleted: YCOARSE
+ *** NOTE: Axis is in use by grid GCOARSE
+ *** NOTE: Not deleted: XFINE
+ *** NOTE: Axis is in use by grid GFINE
+ *** NOTE: Not deleted: TAX48
+ *** NOTE: Axis is in use by grid G48
+ *** NOTE: Not deleted: XEZ1
+ *** NOTE: Axis is in use by grid GEZ1
+ *** NOTE: Not deleted: XEZ2
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: YEZ
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: ZEZ
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: XEZ3
+ *** NOTE: Axis is in use by grid GEZ3
+ *** NOTE: Not deleted: LON_FIELD_J_AXIS
+ *** NOTE: Axis is in use by grid LON_FIELD_GRID
+ *** NOTE: Not deleted: LAT_FIELD_I_AXIS
+ *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+ *** NOTE: Not deleted: LAT_FIELD_J_AXIS
+ *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+ *** NOTE: Not deleted: LON_FIELD_I_AXIS
+ *** NOTE: Axis is in use by grid LON_FIELD_GRID
+ *** NOTE: Not deleted: XIRREG
+ *** NOTE: Axis is in use by grid GIRREG
+ *** NOTE: Not deleted: TCENTURY
+ *** NOTE: Axis is in use by grid GCENTURY
+ *** NOTE: Not deleted: TAX5DAY
+ *** NOTE: Axis is in use by grid G5DAY
+ *** NOTE: Not deleted: XAX10
+ *** NOTE: Axis is in use by grid G5_10
+ *** NOTE: Not deleted: X5
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: Y5
+ *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: TIME1
+ *** NOTE: Axis is in use by grid GHB1
+ *** NOTE: Not deleted: TIME2
+ *** NOTE: Axis is in use by grid GCQ1
+ *** NOTE: Not deleted: TAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: X4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: Y4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: Z4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: T4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: XCHANNEL
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: YRISE
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: ZLAYER
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: TIME
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: Z1
+ *** NOTE: Axis is in use by grid G1
+ *** NOTE: Not deleted: TCAL
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: XTROP
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: YTROP
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: ZAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: Y1
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: Y2
+ *** NOTE: Axis is in use by grid G10X2
+ *** NOTE: Not deleted: JMONTHS
+ *** NOTE: Axis is in use by grid JGRID
+ *** NOTE: Not deleted: MONTHT
+ *** NOTE: Axis is in use by grid TGRID
+ *** NOTE: Not deleted: X10
+ *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: YAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: XAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: XAXLEVITR1_160
+ *** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: TIME4
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: TIME5
+ *** NOTE: Axis is in use by grid GLB1
+ *** NOTE: Not deleted: COADSX
+ *** NOTE: Axis is in use by grid GG
+ *** NOTE: Not deleted: COADSY
+ *** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: TEST_IRREG
+ *** NOTE: Axis is in use by grid (G023)
+ *** NOTE: Not deleted: YAXLEVITR1_90
+ *** NOTE: Axis is in use by grid GG2
+ *** NOTE: Not deleted: ZAXLEVITR1_1
+ *** NOTE: Axis is in use by grid GG2
+ *** NOTE: Not deleted: (AX020)
+ *** NOTE: Axis is in use by grid GG3
+ *** NOTE: Not deleted: XEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: XODD
+ *** NOTE: Axis is in use by grid G13
+ *** NOTE: Not deleted: YEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: YODD
+ *** NOTE: Axis is in use by grid G2
+ *** NOTE: Not deleted: ZEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: ZODD
+ *** NOTE: Axis is in use by grid G3
+ *** NOTE: Not deleted: TEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: TODD
+ *** NOTE: Axis is in use by grid G4
+ *** NOTE: Not deleted: XCOARSE
+ *** NOTE: Axis is in use by grid GCOARSE
+ *** NOTE: Not deleted: YFINE
+ *** NOTE: Axis is in use by grid GFINE
+ *** NOTE: Not deleted: YCOARSE
+ *** NOTE: Axis is in use by grid GCOARSE
+ *** NOTE: Not deleted: XFINE
+ *** NOTE: Axis is in use by grid GFINE
+ *** NOTE: Not deleted: TAX48
+ *** NOTE: Axis is in use by grid G48
+ *** NOTE: Not deleted: XEZ1
+ *** NOTE: Axis is in use by grid GEZ1
+ *** NOTE: Not deleted: XEZ2
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: YEZ
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: ZEZ
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: XEZ3
+ *** NOTE: Axis is in use by grid GEZ3
+ *** NOTE: Not deleted: LON_FIELD_J_AXIS
+ *** NOTE: Axis is in use by grid LON_FIELD_GRID
+ *** NOTE: Not deleted: LAT_FIELD_I_AXIS
+ *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+ *** NOTE: Not deleted: LAT_FIELD_J_AXIS
+ *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+ *** NOTE: Not deleted: LON_FIELD_I_AXIS
+ *** NOTE: Axis is in use by grid LON_FIELD_GRID
+ *** NOTE: Not deleted: XIRREG
+ *** NOTE: Axis is in use by grid GIRREG
+ *** NOTE: Not deleted: TCENTURY
+ *** NOTE: Axis is in use by grid GCENTURY
+ *** NOTE: Not deleted: TAX5DAY
+ *** NOTE: Axis is in use by grid G5DAY
+ *** NOTE: Not deleted: XAX10
+ *** NOTE: Axis is in use by grid G5_10
+ *** NOTE: Not deleted: X5
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: Y5
+ *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: TIME1
+ *** NOTE: Axis is in use by grid GHB1
+ *** NOTE: Not deleted: TIME2
+ *** NOTE: Axis is in use by grid GCQ1
+ *** NOTE: Not deleted: TAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: X4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: Y4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: Z4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: T4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: XCHANNEL
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: YRISE
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: ZLAYER
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: TIME
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: Z1
+ *** NOTE: Axis is in use by grid G1
+ *** NOTE: Not deleted: TCAL
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: XTROP
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: YTROP
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: ZAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: Y1
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: Y2
+ *** NOTE: Axis is in use by grid G10X2
+ *** NOTE: Not deleted: JMONTHS
+ *** NOTE: Axis is in use by grid JGRID
+ *** NOTE: Not deleted: MONTHT
+ *** NOTE: Axis is in use by grid TGRID
+ *** NOTE: Not deleted: X10
+ *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: YAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: XAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: XAXLEVITR1_160
+ *** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: TIME4
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: TIME5
+ *** NOTE: Axis is in use by grid GLB1
+ *** NOTE: Not deleted: COADSX
+ *** NOTE: Axis is in use by grid GG
+ *** NOTE: Not deleted: COADSY
+ *** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: YAXLEVITR1_90
+ *** NOTE: Axis is in use by grid GG2
+ *** NOTE: Not deleted: ZAXLEVITR1_1
+ *** NOTE: Axis is in use by grid GG2
+ *** NOTE: Not deleted: (AX020)
+ *** NOTE: Axis is in use by grid GG3
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1347,14 +1364,14 @@ define axis/x=130e:500:10/modulo=360 xsub
LISTing to file test_subspan_modulo.nc
LISTing to file test_subspan_modulo.nc
LISTing to file test_subspan_modulo.nc
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /THICKNESS ignored on /SYMBOL=DOT
- *** NOTE: /SIZE= ignored on /SYMBOL=DOT
+ *** NOTE: /THICKNESS ignored on /SYMBOL=DOT
+ *** NOTE: /SIZE= ignored on /SYMBOL=DOT
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1363,10 +1380,10 @@ define axis/x=130e:500:10/modulo=360 xsub
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
- *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
+ *** NOTE: modulo = "j"
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1409,9 +1426,9 @@ SHADE/L=1/LEV=0.01d sst
POLYGON/KEY/LEV=0.01d/coord_ax=Z PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
+ *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+ *** NOTE: A dummy axis of subscripts will be used
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ls: cannot access input.txt: No such file or directory
@@ -1421,10 +1438,10 @@ Replacing definition of axis XAX
Replacing definition of axis YAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
axy, return=xx
MESSAGE/CONTINUE `axy, return=xx`
PERMANENT data cleared from memory
@@ -1435,7 +1452,7 @@ Replacing definition of axis XAX
TEMPORARY data cleared from memory
Replacing definition of axis YAX
Replacing definition of axis Z1
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1445,8 +1462,8 @@ Replacing definition of axis Z1
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
+ *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ *** NOTE: Axis has repeated values -- micro-adjusting TIME
**ERROR: illegal limits: "DUMMY" does not exist at T=JAN-1990
Axis extremes are T=DEC-1997:JAN-1998
list/t=1-jan-1990 dummy
@@ -1517,7 +1534,7 @@ SHOW VAR/XML
Using every 5th vector in the X direction
Using every 3th vector in the Y direction
Using every 2th vector in the X direction
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
@@ -1592,8 +1609,8 @@ Replacing definition of grid AGRID
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1629,9 +1646,9 @@ Replacing definition of axis YAX
LISTing to file a.nc
Replacing definition of axis TAX
Replacing definition of axis TAX
- *** NOTE: Axis definition error on axis: TAX
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Axis definition error on axis: TAX
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
Replacing definition of axis TAX
**ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
@@ -1643,16 +1660,16 @@ def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,
def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
**ERROR: improper grid or axis definition: dimension of bounds (15) must be 2*N or N+1, N=number of axis coordinates (7)
def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+ *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
**ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: TAX
+ *** NOTE: Axis is in use by grid GFORMAT
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
+ *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
+ *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
LISTing to file a.nc
Replacing definition of axis XAX
Replacing definition of axis ZAX
@@ -1661,19 +1678,19 @@ Replacing definition of axis TAX
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of grid TGRID
@@ -1681,16 +1698,16 @@ Replacing definition of grid TGRID
def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units not recognized: something
- *** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: something
- *** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: zorro
- *** NOTE: They will not be convertible:
- *** NOTE: Units not recognized for T axis: meters
- *** NOTE: They will not be convertible
- *** NOTE: Units not recognized for Y axis: seconds
- *** NOTE: They will not be convertible
+ *** NOTE: Units not recognized: something
+ *** NOTE: They will not be convertible:
+ *** NOTE: Units not recognized: something
+ *** NOTE: They will not be convertible:
+ *** NOTE: Units not recognized: zorro
+ *** NOTE: They will not be convertible:
+ *** NOTE: Units not recognized for T axis: meters
+ *** NOTE: They will not be convertible
+ *** NOTE: Units not recognized for Y axis: seconds
+ *** NOTE: They will not be convertible
Replacing definition of axis TAX
Replacing definition of axis XAX
PERMANENT data cleared from memory
@@ -1703,7 +1720,7 @@ Replacing definition of axis XAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
Replacing definition of axis TAX
Replacing definition of axis ZAX
PERMANENT data cleared from memory
@@ -1770,7 +1787,7 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
Replacing definition of axis TAX
LISTing to file aa.nc
LISTing to file cc.nc
@@ -1782,27 +1799,27 @@ Replacing definition of axis TAX
query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
**ERROR: invalid command: Valid value needed for argument $2
query/ignore $2%|a|b|c|d|%
- *** NOTE: Valid argument $2 choices are: a|b|c|d|
+ *** NOTE: Valid argument $2 choices are: a|b|c|d|
**ERROR: my error message
message/cont $1"|xxxxx|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $1
message/cont $1"greetings|xxxxx|goodbye"
- *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
+ *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
**ERROR: my error message
message/cont $3"|hello|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3">greetings|hello|goodbye"
- *** NOTE: Valid argument $3 choices are: hello|goodbye
+ *** NOTE: Valid argument $3 choices are: hello|goodbye
**ERROR: my error message
message/continue ($test2"<my error message")
**ERROR: invalid command: Valid value needed for symbol test2
message/continue ($test2"|hello|bye|")
- *** NOTE: Valid symbol test2 choices are: hello|bye|
+ *** NOTE: Valid symbol test2 choices are: hello|bye|
**ERROR: my error message
message/continue ($test2"|hello|bye|<my error message")
**ERROR: invalid command: Valid value needed for symbol t2
message/continue ($t2"|solong>really hello|bye|")
- *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
+ *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1826,29 +1843,28 @@ Replacing definition of axis XQ
Replacing definition of axis YQ
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Evenly spaced axis has edges definition: TCOADS - ignored
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TIME1
- *** NOTE: grid used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GHB2 used by data set coads_clim
+ *** NOTE: Redefinition may alter apparent contents of data set
Replacing definition of axis TIME1
- *** NOTE: grid used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GHB2 used by data set coads_clim
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis COADSX.ILLEGAL
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX1 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX2 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
Replacing definition of axis COADSY.ILLEGAL
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX1 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX3 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1883,10 +1899,10 @@ Replacing definition of axis TIME
Replacing definition of axis TAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
**ERROR: improper grid or axis definition: error in start,end,delta
DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
**ERROR: improper grid or axis definition: error in start,end,delta
DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
PERMANENT data cleared from memory
@@ -1972,7 +1988,7 @@ sho att/all .
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1981,26 +1997,26 @@ sho att/all .
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the length of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.some_text
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the value of attribute temp.missing_value
- *** NOTE: Changing the value of attribute temp.missing_value
+ *** NOTE: Changing the value of attribute temp.long_name
+ *** NOTE: Changing the value of attribute temp.units
+ *** NOTE: Changing the value of attribute temp.missing_value
+ *** NOTE: Changing the value of attribute temp.missing_value
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSZT1).positive
- *** NOTE: Changing the type of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (TIME4).time_origin
+ *** NOTE: Changing the value of attribute (PSZT1).positive
+ *** NOTE: Changing the type of attribute (coadsx).modulo
+ *** NOTE: Changing the value of attribute (coadsx).modulo
+ *** NOTE: Changing the value of attribute (TIME4).time_origin
**ERROR: command syntax: enclose coordinate variable name in parentheses
list coadsx.units
**ERROR: variable unknown or not in data set: COADSX.UNITS
@@ -2011,17 +2027,17 @@ set att (COADSX81_81).axis = "Z"
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the type of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the length of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the type of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the type of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.long_name
+ *** NOTE: Changing the value of attribute temp.units
+ *** NOTE: Changing the type of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
@@ -2057,10 +2073,10 @@ Replacing definition of grid MYGRID
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
@@ -2069,27 +2085,27 @@ Replacing definition of grid MYGRID
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (COADSX).point_spacing
- *** NOTE: Changing the value of attribute (COADSY).point_spacing
+ *** NOTE: Changing the value of attribute (COADSX).point_spacing
+ *** NOTE: Changing the value of attribute (COADSY).point_spacing
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
data in attribute missing_value not representable in output type NC_INT
LIST/FORMAT=CDF/file=a.nc/clobber/x=132w/k=1 temp
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
**ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
set var/outtype=char broiled
**ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
set var/outtype=garbage broiled
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (PSXT1).units
+ *** NOTE: Changing the value of attribute (PSXT1).units
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSXT1).units
- *** NOTE: Changing the value of attribute (PSYT1).units
+ *** NOTE: Changing the value of attribute (PSXT1).units
+ *** NOTE: Changing the value of attribute (PSYT1).units
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2100,22 +2116,23 @@ set var/outtype=garbage broiled
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis X2AX
- *** NOTE: Changing the value of attribute (z4ax).positive
+ *** NOTE: Changing the value of attribute (z4ax).positive
LISTing to file string4d.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: Changing the value of attribute (TIME7).units
+ *** NOTE: Changing the value of attribute (TIME7).units
+ *** NOTE: Changing the value of attribute (TIME7).time_origin
+ *** NOTE: Changing the value of attribute (TIME7).time_origin
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TIME
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
syntax error, unexpected WORD_STRING, expecting WORD_WORD
context: Error { code = 404; message = "data/PMEL/COADS/coads_nothing.cdf"^;};
+CURL Error: Couldn't resolve host name
curl error details:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2123,17 +2140,17 @@ curl error details:
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+ *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
Using every 3th vector in the X direction
Using every 4th vector in the Y direction
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**TMAP ERR: non-existent or not on line
this_is_not_a_file.nc
SET DAT/FORM=CDF this_is_not_a_file.nc
**Internet Data error
- NetCDF: Malformed or inaccessible DAP DDS (OPeNDAP/netCDF Error code -72)
+ NetCDF: file not found (OPeNDAP/netCDF Error code -90)
Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
**Internet Data error
@@ -2178,7 +2195,7 @@ shade sst[t=@AVE,Z=@ave]
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
LISTing to file t3file.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2189,18 +2206,18 @@ shade sst[t=@AVE,Z=@ave]
LISTing to file subdir/0000_a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TAX
LISTing to file a.nc
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: cannot parse "units since date", date= "event"; leaving units string
+ *** NOTE: Not deleted: TAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: cannot parse "units since date", date= "event"; leaving units string
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TAX
- *** NOTE: Invalid I axis limits ignored: TEMP
+ *** NOTE: Invalid I axis limits ignored: TEMP
**ERROR: dimensions improperly specified: specified data is not a line
- its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
plot/i=100/k=1 temp[x=122.5W]
@@ -2247,10 +2264,10 @@ Replacing definition of axis XAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TIME9
- *** NOTE: grid used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GSQ1 used by data set coads_climatology
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TIME
@@ -2276,9 +2293,9 @@ cancel axis/stride COADSX
set axis/stride=2/offset=4 COADSX
**ERROR: invalid command: not a strided axis: COADSX
cancel axis/stride COADSX
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+ *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
LISTing to file d2.nc
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+ *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
**ERROR: invalid command: unknown axis: NORMAL
set axis/stride=2 NORMAL
PERMANENT data cleared from memory
@@ -2294,13 +2311,14 @@ set axis/stride=2 NORMAL
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file tripolar_missing_lon.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+CURL Error: Couldn't resolve host name
curl error details:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2308,31 +2326,31 @@ curl error details:
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ *** NOTE: Axis has repeated values -- micro-adjusting TIME
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
+ *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+ *** NOTE: They will not be convertible:
+ *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+ *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2456,8 +2474,8 @@ Replacing definition of axis TIME
LISTing to file b.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file 1a.dat
@@ -2513,31 +2531,31 @@ Replacing definition of grid GG
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
Replacing definition of axis XAX
Replacing definition of axis YAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
Replacing definition of axis ZAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
Replacing definition of axis TAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
Replacing definition of axis XAX
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2599,9 +2617,9 @@ Replacing definition of grid G1
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file test2.cdf
LISTing to file FL.cdf
LISTing to file FTLON.cdf
@@ -2623,47 +2641,47 @@ list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave]
disordered output coordinate value: 363 Axis: TCENTURY
list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
LISTing to file FI.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
@@ -2675,80 +2693,80 @@ list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSYT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSZT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
**ERROR: variable unknown or not in data set: IJKL
show grid ijkl
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
@@ -2772,8 +2790,8 @@ Replacing definition of axis TSEC
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis CAXIS
- *** NOTE: grid used by data set grads_bug_file
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GMY1 used by data set grads_bug_file
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2784,15 +2802,15 @@ Replacing definition of axis CAXIS
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TAX
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file xz.nc
@@ -2857,22 +2875,22 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute sst.history
+ *** NOTE: Changing the value of attribute sst.history
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
LISTing to file mypack.nc
- *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2917,8 +2935,8 @@ Re-defining viewport V8
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file nc4_deflate4.nc
- *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
- *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
+ *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
+ *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
LISTing to file nc4_nodeflate3.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2929,13 +2947,13 @@ Re-defining viewport V8
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file nc4_inttemp_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_shuffle_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_set_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_deflate4_t1.nc
**TMAP ERR: syntax error in string
If ChunkSize is set for any dimension of var, must set for all its dimensions
@@ -2950,8 +2968,8 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: X10
+ *** NOTE: Axis is in use by grid G10X5
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2963,11 +2981,11 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of grid MYGRID
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX
- *** NOTE: Axis is already regular: MYX
+ *** NOTE: Axis reset to be regular (evenly-spaced): MYX
+ *** NOTE: Axis is already regular: MYX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
+ *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Use the GO command to name a file of FERRET commands to be executed.
@@ -2994,7 +3012,7 @@ Replacing definition of grid MYGRID
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: No active redirects to cancel
+ *** NOTE: No active redirects to cancel
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
@@ -3003,14 +3021,14 @@ Replacing definition of grid MYGRID
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: Axis is already regular: MYAXIS
+ *** NOTE: Axis is already regular: MYAXIS
**ERROR: variable unknown or not in data set: GARBAGE
show grid garbage
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: stderr is not redirected
+ *** NOTE: stderr is not redirected
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
@@ -3063,11 +3081,6 @@ Replacing definition of axis YAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
-
-Bailing out of external function "tax_year":
- Function not valid for modulo time axis
- *** NOTE: b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb [...]
- *** NOTE: exceeds expected length. Maximum characters: 2048
LISTing to file aa.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3095,12 +3108,15 @@ Replacing definition of axis YAX_DUP_AXNAMES
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
+
+Bailing out of external function "tax_year":
+ Function not valid for modulo time axis
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3119,7 +3135,7 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis XAX
@@ -3135,20 +3151,20 @@ Replacing definition of axis TAXIS
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis XAX
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3210,10 +3226,10 @@ Replacing definition of axis TAXIS
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting TMIN
- *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting TMIN
+ *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis TNEW
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3290,34 +3306,32 @@ Replacing definition of grid G5DAY
Replacing definition of axis FAX4DAY
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
**ERROR: unknown data set: dset 3 unknown or is already an aggregate dataset
define data/agg windy = 1,2,3
- **ERROR: error defining aggregate dataset: Aggregate dataset not defined
-define data/agg windy = 1,2,3
- *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
- *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+ *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
+ *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
**ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
define data/agg windy = 1,2
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3328,8 +3342,8 @@ define data/agg windy = 1,2
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3354,7 +3368,7 @@ SET DAT/FORM=CDF ./z1.nc
TEMPORARY data cleared from memory
LISTing to file mytype.nc
LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
LISTing to file mytype.nc
LISTing to file mytype.nc
LISTing to file mytype.nc
@@ -3374,7 +3388,7 @@ SET DAT/FORM=CDF ./z1.nc
TEMPORARY data cleared from memory
LISTing to file mytype.nc
LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
LISTing to file mytype.nc
LISTing to file mytype.nc
LISTing to file mytype.nc
@@ -3390,7 +3404,7 @@ LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
LISTing to file mytype.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index 12
+ **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
define axis/t/units=days tax = tvar
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3470,8 +3484,8 @@ Replacing definition of axis AXI
Replacing definition of axis AXI_COARSE
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
- *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
+ *** NOTE: A dummy axis of subscripts will be used
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file sst_new.nc
@@ -3490,9 +3504,9 @@ Replacing definition of axis ZAX
Replacing definition of axis XIRREG
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
LISTing to file a.nc
LISTing to file a.nc
PERMANENT data cleared from memory
@@ -3502,8 +3516,8 @@ Replacing definition of axis XIRREG
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
**ERROR: command syntax: COLOR
/COLOR must have an argument for PLOT/OVERLAY
plot/i=1:100/over/COLOR 0.6*sin(i/7)
@@ -3513,9 +3527,9 @@ plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis ZAX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
**ERROR: unknown defining grid: G=NOEXIST
list b
**ERROR: command syntax: 45S
@@ -3527,6 +3541,9 @@ list e
**ERROR: illegal limits: X axis limits don't match variable def'n: A
Are you giving explicit limits when SET REGION would suffice ?
list f
+Replacing definition of axis X1
+Replacing definition of axis Y1
+Replacing definition of axis ZAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3539,7 +3556,7 @@ list f
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute a.ival
+ *** NOTE: Changing the value of attribute a.ival
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**TMAP ERR: non-existent or not on line
@@ -3559,8 +3576,8 @@ SET DAT/FORM=CDF snoopy.dat
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+ *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3599,8 +3616,8 @@ LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
shade b
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute v1.long_name
- *** NOTE: Changing the value of attribute v1.units
+ *** NOTE: Changing the value of attribute v1.long_name
+ *** NOTE: Changing the value of attribute v1.units
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
@@ -3620,9 +3637,9 @@ set var/name=psi myvar
set var/name=diff w
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
- *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
+ *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
+ *** NOTE: Substituting coordinate midpoints
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TAX
@@ -3652,12 +3669,12 @@ list tax_datestring (tt[L=3], tt, 5)
list tax_datestring (tt[L=3], "my_tax", "minutes")
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+ *** NOTE: Substituting coordinate midpoints
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: command syntax: must be a constant COS(1)
@@ -3698,17 +3715,17 @@ Replacing definition of axis TAX
Replacing definition of axis XAXIS
**ERROR: request exceeds memory setting: 2369 Mwords were requested.
load bigvar
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis LONGTIME
**ERROR: request exceeds memory setting: 4735 Mwords were requested.
load bigvar
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
- *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
LISTing to file aa.nc
LISTing to file bb.nc
LISTing to file a.nc
@@ -3749,6 +3766,12 @@ shade a
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-2)
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-3)
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file anew_global.nc
@@ -3763,9 +3786,10 @@ Replacing definition of axis X2
Replacing definition of axis Y2
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+Replacing definition of axis ZAX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
**ERROR: unknown defining grid: G=NOEXIST
list b
**ERROR: command syntax: 45S
@@ -3791,6 +3815,238 @@ poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ LISTing to file aa.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TIME
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: unknown data set: BAD_D
+stat/l=1/x=180/y=0 a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis YAX
+ LISTing to file a.nc
+ *** NOTE: Not deleted: XAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: YAX
+ *** NOTE: Axis is in use by grid GFORMAT
+Replacing definition of axis TREDEF
+ *** NOTE: grid GSI1 used by data set a
+ *** NOTE: Redefinition may alter apparent contents of data set
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: illegal format type - must be "GIF"
+ frame/format=hdf/file=a.hdf
+frame/format=hdf/file=a.hdf
+ **ERROR: invalid command: illegal format type - must be "GIF"
+ frame/file=a.png
+frame/file=a.png
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis FAXIS
+Replacing definition of axis EAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Could not compute Std Dev. Data too large or or not within 3 std of computed mean.
+ *** NOTE: Using linear levels instead.
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ TEMPORARY data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of grid GRID3D
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ *** NOTE: Saving E or F axis with time axis uses /RIGID in time
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+Replacing definition of axis TAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Changing the value of attribute foobar.some_text
+ *** NOTE: Changing the value of attribute foobar.some_text
+Replacing definition of grid GG
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+rm: cannot remove `WestCoastCarbon_9d9c_f562_77b5_5.nc': No such file or directory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+Replacing definition of axis FSEC
+ *** NOTE: grid GSI1 used by data set a
+ *** NOTE: Redefinition may alter apparent contents of data set
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: variable unknown or not in data set: B
+cancel var b,a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: xpos=a2
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: ypos=b
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: halign=c
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: valign=d
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+ **ERROR: command syntax: siz=f
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+annotate/nouser/ypos=0 "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: xpos=a2
+def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: ypos=b
+def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: hal=c
+def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: val=d
+def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"
+ **ERROR: command syntax: siz=f
+def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+def anno/nou/ypos=0 "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+def anno/nou/xpos=0/hal=1/val=0 "My Lab"
+ **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
+def anno/nou/user/xpos=0/ypos=0 "My Lab"
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis ZAX
+ LISTing to file layerz_test_data.txt
+ **ERROR: variable unknown or not in data set: (data set ok ?): noexist
+SET VAR/layerz=depth noexist
+ *** NOTE: Ambiguous coordinates on Z axis: TEMP6D-TEMPZ6D
+ **ERROR: invalid command: auxiliary variable DEPTH6D has a T axis not found on variable TEMP
+LIST/PREC=7 tempz6d_unmatch
+Replacing definition of axis XAX
+Replacing definition of axis ZAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments
+plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
+ **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
+plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
+ **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
+plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Units on axis "pfull1_1" are not recognized: hpa
+ *** NOTE: They will not be convertible:
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: unknown data set: noexist
+SHOW DATA noexist
+ **ERROR: unknown data set: 2
+SHOW DATA 2
+ **ERROR: unknown data set: noexist
+SHOW DATA/ATT noexist
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
**ERROR: command syntax: unknown region name: @w
set region/@w
PERMANENT data cleared from memory
@@ -3877,5 +4133,5 @@ vector/i=1:10/j=1:20/nolabel i/j
vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
Re-defining viewport LM6
Re-defining viewport UM6
- *** NOTE: Cannot create new windows when batch mode set
-Ended at Wed Oct 29 16:04:41 PDT 2014
+ *** NOTE: Cannot create new windows when batch mode set
+Ended at Mon Nov 9 15:04:17 PST 2015
diff --git a/bench/ansley_official.rhel6-64_log b/bench/ansley_official.rhel6-64_log
index f8289ca..b62e1b4 100644
--- a/bench/ansley_official.rhel6-64_log
+++ b/bench/ansley_official.rhel6-64_log
@@ -1,10 +1,10 @@
Procedure run_all to run all FERRET benchmarks
Running FERRET version /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
--rwxr-xr-x. 1 manke oerdnewp 79254903 Oct 29 16:02 /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
+-rwxr-xr-x. 1 ansley oerdnewp 80974676 Nov 9 15:00 /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
Using external functions from /home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
Running the tests of external functions y
Benchmark run by ansley
-Note: bug 2215
+Note: ticket 2322: err msgs with SHOW DATA nofile to show the file name
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
FER_DAT=.
@@ -14,15 +14,12 @@ FER_DESCR=.
FER_DIR=.
FER_DSETS=.
FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
-FER_FONTS=/home/users/tmap/ferret/rhel6-x86_64-linux/ppl/fonts
-FER_GO=. /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
+FER_GO=. /home/users/tmap/ferret/x86_64-linux/go /home/users/tmap/ferret/x86_64-linux/examples /home/users/tmap/ferret/x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
FER_GRIDS=.
-FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
-FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
-FER_WEB_BROWSER=firefox
+FER_LIBS=/home/users/tmap/ferret/x86_64-linux/lib
+FER_PALETTE=. /home/users/tmap/ferret/x86_64-linux/ppl
PWD=/home/users/ansley/build/current_trunk/FERRET/bench
-Beginning at Wed Oct 29 16:02:58 PDT 2014
+Beginning at Mon Nov 9 15:02:29 PST 2015
! BN500_ALL.JNL
! - run all the benchmark tests
! - ordered (more or less) from least to most complex
@@ -127,6 +124,7 @@ Beginning at Wed Oct 29 16:02:58 PDT 2014
! 11/06 *acm* New bn602_bug_fixes for version 6.02
* V610 *acm* 3/08 - add new MODE NLEVELS
* V685 *sh* 11/13 - added bn_vtree to test SHOW VAR/TREE
+* V698+ *sh* 06/15 - added bn_auxiliary
! Include this statement to compare the outupt of 6D Ferret with
! previous 4D benchmark logs.
@@ -303,10 +301,10 @@ SHOW DATA/FULL
name title I J K L M N
P my P variable 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999
on grid ABSTRACT with -1.E+34 for missing data
- X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1
+ X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1.E+08
Q Q 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999
on grid ABSTRACT with -1.E+34 for missing data
- X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1
+ X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1.E+08
/FORMAT = UNF
/SKIP = 2
@@ -424,7 +422,8 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -443,7 +442,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
SET MODE IGNORE_ERROR
SHOW MODES
MODE STATE ARGUMENT
@@ -457,7 +457,8 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -476,7 +477,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
CANCEL MODE IGNORE_ERROR
SHOW MODES
MODE STATE ARGUMENT
@@ -490,7 +492,8 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -509,7 +512,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
SHOW MODE STUPID
MODE STATE ARGUMENT
STUPID CANCELLED
@@ -1077,8 +1081,8 @@ say "demonstrate that these leading blanks:\
demonstrate that these leading blanks: really are preserved
! continuation prompts are ignored, too
-yes? say "demonstrate that these leading blanks:\
-...? really are preserved"
+say "demonstrate that these leading blanks:\
+ really are preserved"
demonstrate that these leading blanks: really are preserved
! weird little blank line inputs
@@ -1145,7 +1149,7 @@ message/continue here is: $1"some text" and some more stuff
here is: hello and some more stuff
message/cont here is a big $1 and $3&some text& ! default provided
- !-> message/cont here is a big hello and some text ! default provided
+ !-> message/cont here is a big hello and some text
here is a big hello and some text
message/cont $3 ! error - no default
@@ -1253,7 +1257,7 @@ go bn_dollar.sub ((x+y),(x-5)) ! ignore comma, get single arg
! V510 3/00
set mode ignore
message/continue "$1" ! final quote used to get mis-applied
- !-> message/continue "hello" ! final quote used to get mis-applied
+ !-> message/continue "hello"
hello
set mode/last ignore
go bn_dollar.sub \"hello\" ! quotations as part of argument
@@ -1322,7 +1326,7 @@ message/continue "2 squared + 2 squared =`2^2` + `2+2`"
2 squared + 2 squared =4 + 4
message/continue "50/0 =`50/0`" ! invalid result
- !-> message/continue "50/0 =bad" ! invalid result
+ !-> message/continue "50/0 =bad"
50/0 =bad
repeat/i=1:3 message/continue "I=`I`"
@@ -1350,7 +1354,7 @@ I=7
!cancel region/X ! removed - temporary experiment 3/00 *sh*
message/continue "2+2=``2+2``" ! double grave accents get condensed
- !-> message/continue "2+2=`2+2`" ! double grave accents get condensed
+ !-> message/continue "2+2=`2+2`"
2+2=`2+2`
message/continue A default substitution: $9"default string|2+2=`2+2`"
@@ -1370,7 +1374,7 @@ message/continue "1/300=`1/300,p=5`"
!-> message/continue "1/300=0.0033333"
1/300=0.0033333
message/continue "1/300=`1/300,p=-5`" ! decimal places
- !-> message/continue "1/300=0.00333" ! decimal places
+ !-> message/continue "1/300=0.00333"
1/300=0.00333
message/continue "1/300=`1/300 , precision=10`"
!-> message/continue "1/300=0.003333333333"
@@ -1581,26 +1585,37 @@ say `a,return=isize` ! full evaluation occurs
getgrid (C11,V08 C: 11 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 (C11,V08 C: 11 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- -DELETE X M: 3 dset: 0 I: 160 160 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE X M: 2 dset: 0 I: 160 160 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
eval (C01,V08 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
eval (C11,V08 C: 10 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo J M: 3 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo J M: 2 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
!-> MESSAGE/CONTINUE 5
5
say `a[i=2:3],return=isize` ! full evaluation is bypassed
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ -DELETE J M: 2 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found A M: 10 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
!-> MESSAGE/CONTINUE 2
2
-say `a[i=100:200],return=isize` ! WRONG! because full evaluation is bypassed
+say `a[i=100:200],return=isize` ! correct starting with Ferret v694 (tkt 2213)
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- !-> MESSAGE/CONTINUE 101
-101
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval A C: 6 dset: 0 I: 100 200 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval (C01,V08 C: 8 dset: 0 I: 100 200 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found (C11,V08 M: 5 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 5
+5
set mode/last diagnostic
! deliberate errors
@@ -1965,6 +1980,19 @@ CORRECT:sym sub
---->CORRECT
---->CORRECT again
---->nested: all is well after multi-line IF
+CORRECT
+CORRECT
+LOOP=1
+more
+LOOP=2
+more
+LOOP=1
+LOOP=2
+semicolon group
+more
+semicolon group
+CORRECT
+WE SEE THIS CUZ OF IMPLIED CLOSE TO THE PREVIOUS
>>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<
---->... now inside of nested IF clause
---->CORRECT
@@ -1976,10 +2004,6 @@ IF yes THEN
say ---->... now inside of IF clause
---->... now inside of IF clause
-
-
-
-
GO bn_reset
cancel mode verify
GO bn_expressions
@@ -10450,18 +10474,18 @@ show symbols/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul 1 2015 15:02:01 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-SESSION_PID = "1700"
-DELTA_CPU = "4.44432"
-CLOCK_SECS = "7.074"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "16:03:05"
+SESSION_DATE = " 9-Nov-15"
+SESSION_TIME = "15:02"
+SESSION_PID = "8191"
+DELTA_CPU = "5.03223"
+CLOCK_SECS = "7.506"
+CURRENT_DATE = " 9-Nov-15"
+CURRENT_TIME = "15:02:37"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -10479,18 +10503,18 @@ show symbol/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul 1 2015 15:02:01 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-SESSION_PID = "1700"
+SESSION_DATE = " 9-Nov-15"
+SESSION_TIME = "15:02"
+SESSION_PID = "8191"
DELTA_CPU = "0"
-CLOCK_SECS = "7.074"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "16:03:05"
+CLOCK_SECS = "7.506"
+CURRENT_DATE = " 9-Nov-15"
+CURRENT_TIME = "15:02:37"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
S1 = "hello"
@@ -10500,9 +10524,9 @@ NUM = "3"
T$DOLLAR = "hi"
T_HELLO = "hi"
show symbol s*
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-SESSION_PID = "1700"
+SESSION_DATE = " 9-Nov-15"
+SESSION_TIME = "15:02"
+SESSION_PID = "8191"
S1 = "hello"
S2 = ""hello""
S3 = "hello and goodbye"
@@ -10512,15 +10536,15 @@ S2 = ""hello""
! exercise CANCEL SYMBOL
cancel symbol s2
show symbol s*
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-SESSION_PID = "1700"
+SESSION_DATE = " 9-Nov-15"
+SESSION_TIME = "15:02"
+SESSION_PID = "8191"
S1 = "hello"
S3 = "hello and goodbye"
show symbol S*
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-SESSION_PID = "1700"
+SESSION_DATE = " 9-Nov-15"
+SESSION_TIME = "15:02"
+SESSION_PID = "8191"
S1 = "hello"
S3 = "hello and goodbye"
cancel symbol s2 ! already deleted
@@ -10554,9 +10578,9 @@ Q23456789012345678901234567XXXAAAAA = "6"
! show the upper left coordinate limits labels as symbols
plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
show symbol lab*
-LAB1 = "FERRET (beta) Ver.6.93"
+LAB1 = "FERRET (beta) Ver.6.951"
LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "29-OCT-2014 16:03:05"
+LAB3 = "09-NOV-2015 15:02:37"
LABX = "X"
LAB4 = "Y : 10"
LABNUM_Y = "4"
@@ -10651,18 +10675,18 @@ show symbols/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul 1 2015 15:02:01 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-SESSION_PID = "1700"
-DELTA_CPU = "0.007999"
-CLOCK_SECS = "7.082"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "16:03:05"
+SESSION_DATE = " 9-Nov-15"
+SESSION_TIME = "15:02"
+SESSION_PID = "8191"
+DELTA_CPU = "0.008999"
+CLOCK_SECS = "7.515"
+CURRENT_DATE = " 9-Nov-15"
+CURRENT_TIME = "15:02:37"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -13111,7 +13135,7 @@ show grid/x
Last successful data access was on grid (G004)
GRID (G004)
name axis # pts start end
- (AX004) X 5 i 1 6561
+ (AX003) X 5 i 1 6561
normal Y
normal Z
normal T
@@ -13157,7 +13181,7 @@ list x[g=temp,x=150w:130w:2.5] ! dynamic based on named variable
130W / 9: 230.000
list x[gx=temp,x=150w:130w:2.5] ! dynamic based on named variable
VARIABLE : X
- axis (AX005)
+ axis (AX004)
FILENAME : gtsa056_1.cdf
SUBSET : 9 points (LONGITUDE)
150W / 1: 210.000
@@ -13187,14 +13211,14 @@ show grid/dyn
Dynamic grids:
GRID (G004) use count: 1
name axis # pts start end
- (AX004) X 5 i 1 6561
+ (AX003) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX004) use count: 1
+ AXIS (AX003) use count: 1
! this expression does NOT inherit the X axis -- the result is
! i) ambiguous X axis coordinates
@@ -13216,7 +13240,7 @@ show grid/dynamic
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX003) LONGITUDE 5 r 129.5W 113.5W
+ (AX005) LONGITUDE 5 r 129.5W 113.5W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
@@ -13224,15 +13248,15 @@ Dynamic grids:
normal F
GRID (G004) use count: 1
name axis # pts start end
- (AX004) X 5 i 1 6561
+ (AX003) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
+ AXIS (AX005) use count: 1
AXIS (AX003) use count: 1
- AXIS (AX004) use count: 1
list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[g=temp,i=101:120:4]
VARIABLE : TEMP[I=101:120:4]+X[G=TEMP,I=101:120:4]
@@ -13255,7 +13279,7 @@ SET REGION/I=101:105/J=46:50/l=1/k=1
! deliberate errors: ****
list x[i=5:1:1] ! not an error: inverted order
VARIABLE : X
- axis (AX003)
+ axis (AX005)
SUBSET : 5 points (X)
1 / 1: 1.00000
2 / 2: 2.00000
@@ -13300,7 +13324,7 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX003) LONGITUDE 6 i 108.5W(-468.5) 98.5W(-458.5)
+ (AX005) LONGITUDE 6 i 108.5W(-468.5) 98.5W(-458.5)
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
@@ -13308,15 +13332,15 @@ Dynamic grids:
normal F
GRID (G004) use count: 1
name axis # pts start end
- (AX004) X 5 i 1 6561
+ (AX003) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
+ AXIS (AX005) use count: 1
AXIS (AX003) use count: 1
- AXIS (AX004) use count: 1
! regular dynamic axis
! ... by subscript
@@ -13384,22 +13408,22 @@ Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
PSXT LONGITUDE 160mr 130.5E 70.5W
- (AX003) LATITUDE 4 r 0.5S 4N
+ (AX005) LATITUDE 4 r 0.5S 4N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
GRID (G004) use count: 1
name axis # pts start end
- (AX004) X 5 i 1 6561
+ (AX003) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
+ AXIS (AX005) use count: 1
AXIS (AX003) use count: 1
- AXIS (AX004) use count: 1
! ========
! 2/96: repeat the very same commands using GX=lo:hi:delta notation
@@ -13562,23 +13586,23 @@ Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
(AX001) LONGITUDE 4 r 130W 121W
- (AX005) LATITUDE 4 r 0.5S 4N
+ (AX004) LATITUDE 4 r 0.5S 4N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
GRID (G004) use count: 1
name axis # pts start end
- (AX004) X 5 i 1 6561
+ (AX003) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX005) use count: 1
- AXIS (AX001) use count: 1
AXIS (AX004) use count: 1
+ AXIS (AX001) use count: 1
+ AXIS (AX003) use count: 1
! the same tests but now on a nested definition
! regular dynamic axis
@@ -13746,7 +13770,7 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX005) LONGITUDE 6 r 138W 113W
+ (AX004) LONGITUDE 6 r 138W 113W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
@@ -13761,7 +13785,7 @@ Dynamic grids:
normal E
normal F
Dynamic axes:
- AXIS (AX005) use count: 1
+ AXIS (AX004) use count: 1
AXIS (AX001) use count: 1
! irregular dynamic axis
@@ -13909,14 +13933,14 @@ Dynamic grids:
GRID (G004) use count: 1
name axis # pts start end
PSXT LONGITUDE 160mr 130.5E 70.5W
- (AX004) LATITUDE 6 r 3.5S 4N
+ (AX003) LATITUDE 6 r 3.5S 4N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
Dynamic axes:
AXIS (AX001) use count: 1
- AXIS (AX004) use count: 1
+ AXIS (AX003) use count: 1
! nested modulo (the dynamic axis is **NOT** modulo)
! ... by subscript
@@ -14098,7 +14122,7 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX004) LONGITUDE 9 r 101W 53W
+ (AX003) LONGITUDE 9 r 101W 53W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
@@ -14106,19 +14130,19 @@ Dynamic grids:
normal F
GRID (G004) use count: 1
name axis # pts start end
- (AX005) LONGITUDE 8 r 90W 62W
+ (AX004) LONGITUDE 8 r 90W 62W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
Dynamic axes:
+ AXIS (AX003) use count: 1
AXIS (AX004) use count: 1
- AXIS (AX005) use count: 1
! calendar axes
list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave] ! 6-day ave
- !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave] ! 6-day ave
+ !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]
VARIABLE : TEMPERATURE (deg. C)
regrid: 144 hour on T at AVE
FILENAME : gtsa056_1.cdf
@@ -14144,9 +14168,9 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
TIME : 15-JAN-1982 00:00
27.7767
list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`] ! pseudo-var
- !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48] ! pseudo-var
+ !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
VARIABLE : T
- axis (AX003)
+ axis (AX005)
SUBSET : 3 points (TIME)
15-JAN-1982 00 / 1: 723925.
17-JAN-1982 00 / 2: 723927.
@@ -15513,7 +15537,7 @@ LIST temp[g=u]
allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
strip regrid on X: TEMP --> PS3DU2 @LIN
- reading TEMP M: 19 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
+ reading TEMP M: 20 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 13 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
VARIABLE : TEMPERATURE (deg. C)
@@ -15649,9 +15673,9 @@ LIST temp[g=u,gy=u at asn]
strip regrid on X: TEMP --> PS3DU2 @LIN
strip regrid on Y: TEMP --> XNTERMED @ASN
reading TEMP M: 52 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- regrid TEMP M: 20 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
+ regrid TEMP M: 19 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
regrid TEMP M: 56 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 20 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 19 dset: 1 I: 100 106 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
VARIABLE : TEMPERATURE (deg. C)
regrid: U on X at LIN, on Y at ASN
@@ -15694,7 +15718,7 @@ LIST temp[g=u,gz=u at asn]
eval EX#1 C: 4 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
allocate dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
strip regrid on X: TEMP --> PS3DU2 @LIN
- reading TEMP M: 20 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
+ reading TEMP M: 19 dset: 1 I: 100 106 J: 45 50 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 51 dset: 1 I: 100 105 J: 45 49 K: 1 2 L: 3 4 M: -999 -999 N: -999 -999
dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
@@ -16520,9 +16544,9 @@ LIST temp[g=g5_10,gt=g5_10 at asn]
! unspecified regions
SET MODE IGNORE ! V.5 change
canc reg
+ dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
set reg/l=1:3 ! x,y,z unspecified
load temp
- dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid PS3DT2 PSXT1 PSYT PSZT TIME2 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 160 J: 1 100 K: 1 27 L: 1 3 M: -999 -999 N: -999 -999
@@ -16641,10 +16665,10 @@ load temp[g=u,gy=u at asn]
dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
canc reg
+ dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
use gtsa056_2 !kob 4/99
set reg/i=101:105/j=41:42 ! z,t unspecified
load temp[g=u]
- dealloc dynamic grid PS3DU2 PSXU PSYU PSZT TIME2 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid PS3DU1 PSXU PSYU PSZT TIME1 NORMAL NORMAL
eval EX#1 C: 4 dset: 2 I: 101 105 J: 41 42 K: 1 27 L: 1 168 M: -999 -999 N: -999 -999
@@ -17498,6 +17522,7 @@ PPL plot 114 complete
set mode/last interp
cancel region
+ dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
! 1/00 additions to check details of @AVE bevavior
define axis/x=1.1:7.1:1 xoffset
@@ -17509,7 +17534,6 @@ let a1 = x[gx=x1pt] ! single point
let a2 = x[gx=x2pt]
list a1[gx=xoffset at ave]
- dealloc dynamic grid G5DAY PSXU PSYU PSZT TAX5DAY NORMAL NORMAL
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A1 C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G009) X1PT NORMAL NORMAL NORMAL NORMAL NORMAL
@@ -20068,27 +20092,27 @@ GO bn_negative_t.sub tvar ave ! like var and din
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ave] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ave]
VARIABLE : T[GT=TAX]
T : -5 to 5 (averaged)
0.000000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ave] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ave]
VARIABLE : T[GT=TAX]
T : -8 to -5 (averaged)
-6.66667
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ave] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ave]
VARIABLE : T[GT=TAX]
T : -9 to 3 (averaged)
-3.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ave] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ave]
VARIABLE : T[GT=TAX]
T : -9 to -3 (averaged)
-6.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ave] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ave]
VARIABLE : T[GT=TAX]
T : -11 to 11 (averaged)
0.000000
@@ -20104,7 +20128,7 @@ GO bn_negative_t.sub tvar iin
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at iin] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 5 points (T)
@@ -20114,14 +20138,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -8.0000
4 / 8: 0.0000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at iin] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 2 points (T)
-8 / 2: -8.0000
-6 / 3: -20.0000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at iin] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 6 points (T)
@@ -20132,7 +20156,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -40.0000
2 / 7: -36.0000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at iin] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 3 points (T)
@@ -20140,7 +20164,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -28.0000
-4 / 4: -36.0000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@iin] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 11 points (T)
@@ -20167,27 +20191,27 @@ GO bn_negative_t.sub tvar sum
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sum] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sum]
VARIABLE : T[GT=TAX]
T : -5 to 5 (summed)
0.000000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sum] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sum]
VARIABLE : T[GT=TAX]
T : -8 to -5 (summed)
-14.0000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sum] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sum]
VARIABLE : T[GT=TAX]
T : -9 to 3 (summed)
-18.0000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sum] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sum]
VARIABLE : T[GT=TAX]
T : -9 to -3 (summed)
-18.0000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sum] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sum]
VARIABLE : T[GT=TAX]
T : -11 to 11 (summed)
0.000000
@@ -20203,7 +20227,7 @@ GO bn_negative_t.sub tvar rsu
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at rsu] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 5 points (T)
@@ -20213,14 +20237,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -4.00000
4 / 8: 0.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at rsu] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 2 points (T)
-8 / 2: -8.0000
-6 / 3: -14.0000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at rsu] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 6 points (T)
@@ -20231,7 +20255,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -20.0000
2 / 7: -18.0000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at rsu] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 3 points (T)
@@ -20239,7 +20263,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -14.0000
-4 / 4: -18.0000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@rsu] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 11 points (T)
@@ -20266,7 +20290,7 @@ GO bn_negative_t.sub tvar shf
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at shf] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 5 points (T)
@@ -20276,14 +20300,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 4.00000
4 / 8: 6.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at shf] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 2 points (T)
-8 / 2: -6.00000
-6 / 3: -4.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at shf] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 6 points (T)
@@ -20294,7 +20318,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 2.00000
2 / 7: 4.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at shf] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 3 points (T)
@@ -20302,7 +20326,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -4.00000
-4 / 4: -2.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@shf] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 11 points (T)
@@ -20329,27 +20353,27 @@ GO bn_negative_t.sub tvar min ! like @max
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at min] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at min]
VARIABLE : T[GT=TAX]
T : -5 to 5 (minimum)
-4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at min] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at min]
VARIABLE : T[GT=TAX]
T : -8 to -5 (minimum)
-8.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at min] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at min]
VARIABLE : T[GT=TAX]
T : -9 to 3 (minimum)
-8.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at min] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at min]
VARIABLE : T[GT=TAX]
T : -9 to -3 (minimum)
-8.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@min] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@min]
VARIABLE : T[GT=TAX]
T : -11 to 11 (minimum)
-10.0000
@@ -20365,7 +20389,7 @@ GO bn_negative_t.sub tvar ddf
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddf] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 5 points (T)
@@ -20375,14 +20399,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 1.00000
4 / 8: 1.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddf] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 2 points (T)
-8 / 2: 1.00000
-6 / 3: 1.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddf] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 6 points (T)
@@ -20393,7 +20417,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 1.00000
2 / 7: 1.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddf] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 3 points (T)
@@ -20401,7 +20425,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: 1.00000
-4 / 4: 1.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddf] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 11 points (T)
@@ -20428,7 +20452,7 @@ GO bn_negative_t.sub tvar ddb ! @ddc like ddf and ddb
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddb] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 5 points (T)
@@ -20438,14 +20462,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 1.00000
4 / 8: 1.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddb] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 2 points (T)
-8 / 2: 1.00000
-6 / 3: 1.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddb] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 6 points (T)
@@ -20456,7 +20480,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 1.00000
2 / 7: 1.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddb] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 3 points (T)
@@ -20464,7 +20488,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: 1.00000
-4 / 4: 1.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddb] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 11 points (T)
@@ -20491,7 +20515,7 @@ GO bn_negative_t.sub tvar sbx ! like sbn, swl, shn, spz
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sbx] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 5 points (T)
@@ -20501,14 +20525,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.00000
4 / 8: 4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sbx] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sbx] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 6 points (T)
@@ -20519,7 +20543,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.00000
2 / 7: 2.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sbx] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 3 points (T)
@@ -20527,7 +20551,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -6.00000
-4 / 4: -4.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sbx] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 11 points (T)
@@ -20554,27 +20578,27 @@ GO bn_negative_t.sub tvar loc:-2.2
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at loc:-2.2] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -5 to 5 (location of -2.2)
-2.20000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at loc:-2.2] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -8 to -5 (location of -2.2)
....
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at loc:-2.2] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -9 to 3 (location of -2.2)
-2.20000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at loc:-2.2] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -9 to -3 (location of -2.2)
....
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@loc:-2.2] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -11 to 11 (location of -2.2)
-2.20000
@@ -20590,7 +20614,7 @@ GO bn_negative_t.sub tvar weq:-2.2
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at weq:-2.2] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 5 points (T)
@@ -20600,14 +20624,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: ....
4 / 8: ....
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at weq:-2.2] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 2 points (T)
-8 / 2:....
-6 / 3:....
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at weq:-2.2] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 6 points (T)
@@ -20618,7 +20642,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: ....
2 / 7: ....
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at weq:-2.2] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 3 points (T)
@@ -20626,7 +20650,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3:....
-4 / 4:....
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@weq:-2.2] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 11 points (T)
@@ -20669,27 +20693,27 @@ GO bn_negative_t.sub tgap ngd ! like @nbd
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at ngd] ! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -5 to 5 (number of valid)
3.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at ngd] ! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -8 to -5 (number of valid)
1.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at ngd] ! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -9 to 3 (number of valid)
3.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at ngd] ! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -9 to -3 (number of valid)
2.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tgap[l=@ngd] ! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -11 to 11 (number of valid)
5.00000
@@ -20705,7 +20729,7 @@ GO bn_negative_t.sub tgap fav ! like fln (fnr not implemented)
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at fav] ! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 5 points (T)
@@ -20715,14 +20739,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.00000
4 / 8: 4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at fav] ! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at fav] ! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 6 points (T)
@@ -20733,7 +20757,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.00000
2 / 7: 2.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at fav] ! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 3 points (T)
@@ -20741,7 +20765,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -6.00000
-4 / 4: -4.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tgap[l=@fav] ! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 11 points (T)
@@ -20790,7 +20814,7 @@ GO bn_negative_t.sub blin nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST blin[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST blin[t=-5:5 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 5 points (T)
-4 / 4: -4.00000
@@ -20799,13 +20823,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.00000
4 / 8: 4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST blin[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST blin[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST blin[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST blin[l=2:7 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 6 points (T)
-8 / 2: -8.00000
@@ -20815,14 +20839,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.00000
2 / 7: 2.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST blin[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST blin[l=2:4 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 3 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
-4 / 4: -4.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST blin[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST blin[l=@nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 11 points (T)
-10 / 1: ....
@@ -20848,7 +20872,7 @@ GO bn_negative_t.sub bave nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST bave[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST bave[t=-5:5 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 5 points (T)
-4 / 4: -4.00000
@@ -20857,13 +20881,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.00000
4 / 8: 4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST bave[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST bave[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST bave[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST bave[l=2:7 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 6 points (T)
-8 / 2: -8.00000
@@ -20873,14 +20897,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.00000
2 / 7: 2.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST bave[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST bave[l=2:4 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 3 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
-4 / 4: -4.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST bave[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST bave[l=@nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 11 points (T)
-10 / 1: -9.00000
@@ -20906,7 +20930,7 @@ GO bn_negative_t.sub basn nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST basn[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST basn[t=-5:5 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 5 points (T)
-4 / 4: -6.00000
@@ -20915,13 +20939,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -3.00000
4 / 8: -2.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST basn[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST basn[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -7.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST basn[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST basn[l=2:7 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 6 points (T)
-8 / 2: -8.00000
@@ -20931,14 +20955,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -4.00000
2 / 7: -3.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST basn[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST basn[l=2:4 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 3 points (T)
-8 / 2: -8.00000
-6 / 3: -7.00000
-4 / 4: -6.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST basn[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST basn[l=@nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 11 points (T)
-10 / 1: -9.00000
@@ -21079,7 +21103,7 @@ CANCEL REGION
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21089,7 +21113,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21103,7 +21127,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21113,7 +21137,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21127,7 +21151,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21141,7 +21165,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21154,7 +21178,7 @@ SET REGION/X=2:4
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21162,7 +21186,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -21172,7 +21196,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21180,7 +21204,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -21190,7 +21214,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -21200,7 +21224,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21211,7 +21235,7 @@ SET REGION/X=1:5
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21221,7 +21245,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21235,7 +21259,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21245,7 +21269,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21259,7 +21283,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21273,7 +21297,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21286,7 +21310,7 @@ SET REGION/X=1.5:4.5
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21294,7 +21318,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21306,7 +21330,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.00000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21314,7 +21338,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21326,7 +21350,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21338,7 +21362,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21349,7 +21373,7 @@ SET REGION/X=0:6
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21359,7 +21383,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21373,7 +21397,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21383,7 +21407,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21397,7 +21421,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21411,7 +21435,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21426,7 +21450,7 @@ CANCEL REGION
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21436,7 +21460,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21450,7 +21474,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21460,7 +21484,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21474,7 +21498,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21488,7 +21512,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21501,7 +21525,7 @@ SET REGION/Y=2:4
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21509,7 +21533,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21519,7 +21543,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21527,7 +21551,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21537,7 +21561,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21547,7 +21571,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21558,7 +21582,7 @@ SET REGION/Y=1:5
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21568,7 +21592,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21582,7 +21606,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21592,7 +21616,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21606,7 +21630,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21620,7 +21644,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21633,7 +21657,7 @@ SET REGION/Y=1.5:4.5
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21641,7 +21665,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21653,7 +21677,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.00000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21661,7 +21685,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21673,7 +21697,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21685,7 +21709,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21696,7 +21720,7 @@ SET REGION/Y=0:6
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21706,7 +21730,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21720,7 +21744,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21730,7 +21754,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21744,7 +21768,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21758,7 +21782,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21773,7 +21797,7 @@ CANCEL REGION
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21783,7 +21807,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21797,7 +21821,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21807,7 +21831,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21821,7 +21845,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21835,7 +21859,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21848,7 +21872,7 @@ SET REGION/Z=2:4
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21856,7 +21880,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21866,7 +21890,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21874,7 +21898,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21884,7 +21908,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21894,7 +21918,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21905,7 +21929,7 @@ SET REGION/Z=1:5
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21915,7 +21939,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21929,7 +21953,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21939,7 +21963,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21953,7 +21977,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21967,7 +21991,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21980,7 +22004,7 @@ SET REGION/Z=1.5:4.5
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21988,7 +22012,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -22000,7 +22024,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.00000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -22008,7 +22032,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -22020,7 +22044,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -22032,7 +22056,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -22043,7 +22067,7 @@ SET REGION/Z=0:6
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -22053,7 +22077,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -22067,7 +22091,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -22077,7 +22101,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -22091,7 +22115,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -22105,7 +22129,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -22120,7 +22144,7 @@ CANCEL REGION
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22130,7 +22154,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22144,7 +22168,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22154,7 +22178,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22168,7 +22192,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22182,7 +22206,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22195,7 +22219,7 @@ SET REGION/T=2:4
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22203,7 +22227,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -22213,7 +22237,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22221,7 +22245,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -22231,7 +22255,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -22241,7 +22265,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22252,7 +22276,7 @@ SET REGION/T=1:5
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22262,7 +22286,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22276,7 +22300,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22286,7 +22310,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22300,7 +22324,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22314,7 +22338,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22327,7 +22351,7 @@ SET REGION/T=1.5:4.5
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22335,7 +22359,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22347,7 +22371,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.00000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22355,7 +22379,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22367,7 +22391,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22379,7 +22403,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22390,7 +22414,7 @@ SET REGION/T=0:6
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22400,7 +22424,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22414,7 +22438,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22424,7 +22448,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22438,7 +22462,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22452,7 +22476,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -23982,7 +24006,33 @@ list 'X' ! Now the proper syntax
19 / 19: 0.578440
20 / 20: 0.656987
list i ! Deliberate error
-list 'i' ! Deliberate error
+
+! v694 No longer an error: See ticket 2050
+list 'i' !
+ VARIABLE : SIN(4+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 20 points (X)
+ 1 / 1: -0.818277
+ 2 / 2: -0.871576
+ 3 / 3: -0.916166
+ 4 / 4: -0.951602
+ 5 / 5: -0.977530
+ 6 / 6: -0.993691
+ 7 / 7: -0.999923
+ 8 / 8: -0.996165
+ 9 / 9: -0.982453
+ 10 / 10: -0.958924
+ 11 / 11: -0.925815
+ 12 / 12: -0.883455
+ 13 / 13: -0.832267
+ 14 / 14: -0.772764
+ 15 / 15: -0.705540
+ 16 / 16: -0.631267
+ 17 / 17: -0.550686
+ 18 / 18: -0.464602
+ 19 / 19: -0.373877
+ 20 / 20: -0.279415
+
list 'I' ! Now the proper syntax
VARIABLE : SIN(4+I/10)
FILENAME : weird_name1.cdf
@@ -25632,7 +25682,7 @@ GO err491_spawn_quotes.jnl
! this should be a valid command
SPAWN "date"
-Wed Oct 29 16:03:12 PDT 2014
+Mon Nov 9 15:02:45 PST 2015
GO bn_reset
cancel mode verify
@@ -25789,14 +25839,14 @@ list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50}) ! only I=2 from result
const_v {30-,50} M: 34 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing sampling tpry on I axis: 1 3 dset: 1
eval (C09,V02 C: 11 dset: 1 I: 30 30 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- reading SST M: 31 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 30 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval (C09,V02 C: 11 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 26 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval (C09,V02 C: 11 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 23 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 24 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 32 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
-DELETE (C01,V02 M: 33 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 27 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE tpry M: 28 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE {30-,50} M: 34 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{30,40,50})
FILENAME : coads_climatology.cdf
@@ -25810,11 +25860,11 @@ list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50}) ! only I=2 from result
-DELETE (C01,V02 M: 34 dset: 1 I: 2 2 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
cancel memory/all
-DELETE (C09,V02 M: 22 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 23 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 24 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE (C09,V02 M: 25 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 26 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE (C09,V02 M: 28 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 31 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE (C09,V02 M: 29 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 30 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE (C01,V02 M: 33 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
list/l=1/y=-2:2 SAMPLEI(sst,{30,40,50})
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
@@ -25827,10 +25877,10 @@ list/l=1/y=-2:2 SAMPLEI(sst,{30,40,50})
const_v {30-,50} M: 33 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing sampling tpry on I axis: 1 3 dset: 1
reading SST M: 26 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 23 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 24 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 22 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE M: 28 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE SST M: 31 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE M: 29 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
+ -DELETE SST M: 30 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE tpry M: 25 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE {30-,50} M: 33 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(SST,{30,40,50})
@@ -25843,9 +25893,9 @@ list/l=1/y=-2:2 SAMPLEI(sst,{30,40,50})
1S / 45: 28.1514 28.5607 28.8326
cancel memory/all
-DELETE SST M: 22 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 23 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 24 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 26 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 31 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE EX#1 M: 30 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
list/l=1/y=-2:2 SAMPLEI(a ,{30,40,50})
dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -25854,18 +25904,18 @@ list/l=1/y=-2:2 SAMPLEI(a ,{30,40,50})
allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 31 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ const_v {30-,50} M: 30 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing sampling tpry on I axis: 1 3 dset: 1
eval A C: 9 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 22 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval A C: 9 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 28 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 29 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval A C: 9 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 27 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 23 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
+ reading SST M: 28 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 24 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
-DELETE SST M: 26 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE tpry M: 25 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 31 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE {30-,50} M: 30 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(A ,{30,40,50})
FILENAME : coads_climatology.cdf
SUBSET : 3 by 2 points (X-LATITUDE)
@@ -25879,8 +25929,8 @@ list/l=1/y=-2:2 SAMPLEI(a ,{30,40,50})
cancel memory/all
-DELETE SST M: 22 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE EX#1 M: 26 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 27 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 28 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 28 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 29 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE A M: 32 dset: 1 I: 50 50 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE A M: 33 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE A M: 34 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -25898,7 +25948,7 @@ list/l=1/y=-2:2 SAMPLEI(sst[i=30:40],{30,40,50})
const_v {30-,50} M: 34 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing sampling tpry on I axis: 1 3 dset: 1
eval (C09,V02 C: 11 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 28 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 29 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE A M: 32 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
-DELETE A M: 33 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE tpry M: 26 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -25912,14 +25962,14 @@ list/l=1/y=-2:2 SAMPLEI(sst[i=30:40],{30,40,50})
1N / 46: 28.2222 28.1992 ....
1S / 45: 28.1514 28.5607 ....
let/quiet a = sst[i=30:40]
- -DELETE (C09,V02 M: 27 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE (C09,V02 M: 28 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE (C01,V02 M: 33 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
cancel memory/all
- -DELETE SST M: 28 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 29 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
list/l=1/y=-2:2 SAMPLEI(a,{30,40,50})
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 8 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -25927,14 +25977,14 @@ list/l=1/y=-2:2 SAMPLEI(a,{30,40,50})
allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 28 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ const_v {30-,50} M: 29 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing sampling tpry on I axis: 1 3 dset: 1
eval A C: 9 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 34 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE M: 27 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
+ -DELETE M: 28 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
-DELETE M: 33 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE tpry M: 32 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 28 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE {30-,50} M: 29 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(A,{30,40,50})
FILENAME : coads_climatology.cdf
SUBSET : 3 by 2 points (X-LATITUDE)
@@ -25956,10 +26006,10 @@ list/l=1/y=-2:2 SAMPLEI(a,{30}) ! sample at just 1 point
const_v {30} M: 34 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing sampling tpry on I axis: 1 1 dset: 1
eval A C: 9 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 28 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 29 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE A M: 26 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE EX#1 M: 33 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 27 dset: 1 I: 1 1 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE tpry M: 28 dset: 1 I: 1 1 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE {30} M: 34 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(A,{30})
FILENAME : coads_climatology.cdf
@@ -25971,7 +26021,7 @@ list/l=1/y=-2:2 SAMPLEI(a,{30}) ! sample at just 1 point
1N / 46: 28.2222
1S / 45: 28.1514
cancel memory/all
- -DELETE SST M: 28 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 29 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE A M: 32 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE EX#1 M: 33 dset: 1 I: 1 1 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
list/l=1/y=-2:2 SAMPLEI(a,30) ! sample at just 1 point
@@ -25990,7 +26040,7 @@ list/l=1/y=-2:2 SAMPLEI(a,30) ! sample at just 1 point
doing sampling tpry on I axis: 1 1 dset: 1
eval A C: 11 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 34 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 28 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 29 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE cnst M: 33 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE tpry M: 26 dset: 1 I: 1 1 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(A,30)
@@ -26003,7 +26053,7 @@ list/l=1/y=-2:2 SAMPLEI(a,30) ! sample at just 1 point
1N / 46: 28.2222
1S / 45: 28.1514
cancel memory/all
- -DELETE A M: 27 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M: 28 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE (C11,V02 M: 32 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE (C01,V02 M: 33 dset: 1 I: 1 1 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 34 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -26029,13 +26079,13 @@ list/l=1/y=-2:2 SAMPLEI(a,{30,40,50})
eval FSST C: 12 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip --> SST[I=1:180 at FLN:1,D=1]
strip moduloing SST on X axis: 0 181 dset: 1
- reading SST M: 27 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 28 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
doing moduloing SST on X axis: 1 180 dset: 1
doing --> SST[I=1:180 at FLN:1,D=1]
doing --> FSST[X=20E:20E(380)@IIN,D=1]
-DELETE M: 32 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
-DELETE M: 33 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 23 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE tpry M: 24 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE {30-,50} M: 34 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(A,{30,40,50})
FILENAME : coads_climatology.cdf
@@ -26049,9 +26099,9 @@ cancel memory/all
-DELETE FSST M: 22 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE A M: 25 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 26 dset: 1 I: 0 181 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 27 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 28 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE FSST M: 31 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 29 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE FSST M: 30 dset: 1 I: 1 180 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE EX#1 M: 33 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
! now test optimization that uses large memory chunks if available
@@ -26069,15 +26119,15 @@ list/l=1/y=0 SAMPLEI(sst,{30,40,50})
allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 31 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ const_v {30-,50} M: 30 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing sampling tpry on I axis: 1 3 dset: 1
reading SST M: 26 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 22 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 34 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 27 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE SST M: 28 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE SST M: 28 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
+ -DELETE SST M: 29 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE tpry M: 25 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 31 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE {30-,50} M: 30 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(SST,{30,40,50})
FILENAME : coads_climatology.cdf
SUBSET : 3 points (X)
@@ -26091,7 +26141,7 @@ list/l=1/y=0 SAMPLEI(sst,{30,40,50})
cancel memory/all
-DELETE SST M: 22 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 26 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 28 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE EX#1 M: 29 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 33 dset: 1 I: 30 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 34 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
load/l=1/y=0 sst[I=30:39]
@@ -26111,10 +26161,10 @@ list/l=1/y=0 SAMPLEI(sst,{30,40,50})
doing sampling tpry on I axis: 1 3 dset: 1
reading SST M: 22 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 25 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 27 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 28 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 26 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 28 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 31 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE EX#1 M: 29 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE tpry M: 30 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE {30-,50} M: 33 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(SST,{30,40,50})
FILENAME : coads_climatology.cdf
@@ -26129,8 +26179,8 @@ list/l=1/y=0 SAMPLEI(sst,{30,40,50})
cancel memory/all
-DELETE SST M: 22 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 25 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 27 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 28 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 28 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE EX#1 M: 29 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 34 dset: 1 I: 30 39 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
load/l=1/y=0 sst[I=30:40]
dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
@@ -26145,15 +26195,15 @@ list/l=1/y=0 SAMPLEI(sst,{30,40,50})
allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 28 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ const_v {30-,50} M: 29 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing sampling tpry on I axis: 1 3 dset: 1
reading SST M: 22 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 31 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 30 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 26 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 25 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE SST M: 27 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE SST M: 28 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE tpry M: 33 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 28 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE {30-,50} M: 29 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(SST,{30,40,50})
FILENAME : coads_climatology.cdf
SUBSET : 3 points (X)
@@ -26167,8 +26217,8 @@ list/l=1/y=0 SAMPLEI(sst,{30,40,50})
cancel memory/all
-DELETE SST M: 22 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 26 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 27 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 31 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE EX#1 M: 28 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 30 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 34 dset: 1 I: 30 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
load/l=1/y=0 sst[I=30:41]
dealloc dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
@@ -26183,15 +26233,15 @@ list/l=1/y=0 SAMPLEI(sst,{30,40,50})
allocate dynamic grid (G006) ABSTRACT COADSY NORMAL TIME4 NORMAL NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- const_v {30-,50} M: 31 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ const_v {30-,50} M: 30 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing sampling tpry on I axis: 1 3 dset: 1
reading SST M: 22 dset: 1 I: 30 30 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 33 dset: 1 I: 40 40 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 25 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 26 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 3 3 M: -999 -999 N: -999 -999
- -DELETE EX#1 M: 27 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 28 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE {30-,50} M: 31 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE EX#1 M: 28 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE tpry M: 29 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE {30-,50} M: 30 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(SST,{30,40,50})
FILENAME : coads_climatology.cdf
SUBSET : 3 points (X)
@@ -26477,12 +26527,12 @@ list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
eval (C09,V02 C: 10 dset: 1 I: 31 35 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
reading SST M: 29 dset: 1 I: 31 35 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval (C09,V02 C: 10 dset: 1 I: 37 37 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 25 dset: 1 I: 37 37 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 24 dset: 1 I: 37 37 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval (C09,V02 C: 10 dset: 1 I: 44 48 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 20 dset: 1 I: 44 48 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE Y M: 31 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: 7 7 M: -999 -999 N: -999 -999
+ -DELETE Y M: 30 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: 7 7 M: -999 -999 N: -999 -999
-DELETE SST M: 32 dset: 1 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE tpry M: 26 dset: 1 I: 1 7 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE tpry M: 25 dset: 1 I: 1 7 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE {31-,48} M: 34 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
FILENAME : coads_climatology.cdf
@@ -26511,8 +26561,8 @@ list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48}) ! <-- CACHE HIT FAILS!!!
reading SST M: 33 dset: 1 I: 37 37 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval (C09,V02 C: 10 dset: 1 I: 44 48 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 16 dset: 1 I: 44 48 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE Y M: 31 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: 7 7 M: -999 -999 N: -999 -999
- -DELETE tpry M: 26 dset: 1 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE Y M: 30 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: 7 7 M: -999 -999 N: -999 -999
+ -DELETE tpry M: 25 dset: 1 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE tpry M: 28 dset: 1 I: 1 7 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE {31-,48} M: 34 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
@@ -26545,8 +26595,8 @@ list a ! <-- CACHE HIT FAILS!!!
reading SST M: 11 dset: 1 I: 37 37 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval (C09,V01 C: 12 dset: 1 I: 44 48 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 9 dset: 1 I: 44 48 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE Y M: 31 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: 7 7 M: -999 -999 N: -999 -999
- -DELETE M: 27 dset: 1 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE Y M: 30 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: 7 7 M: -999 -999 N: -999 -999
+ -DELETE M: 26 dset: 1 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE tpry M: 12 dset: 1 I: 1 7 J: 48 48 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE {31-,48} M: 19 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
@@ -27099,8 +27149,8 @@ LIST VAR[i=2:4:2]
allocate dynamic grid (G018) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G018) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd VAR M: 44 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 52 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X
@@ -27124,8 +27174,8 @@ LIST VAR[i=2:4:2]
allocate dynamic grid (G018) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G018) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 27 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd VAR M: 43 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 52 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X
@@ -27147,8 +27197,8 @@ LIST VAR[i=2:4:2]
let a = VAR[i=2:4:2]
list a
dealloc dynamic grid (G018) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M: 27 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 43 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 44 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
@@ -27160,8 +27210,8 @@ list a
allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G018) @XACT
rdstride VAR C: 9 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 27 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 47 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd VAR M: 43 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 44 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : VAR[I=2:4:2]
FILENAME : bn_strides.cdf
@@ -27183,8 +27233,8 @@ list a ! from cache ...
allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G018) @XACT
rdstride VAR C: 9 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 54 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd VAR M: 40 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 52 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : VAR[I=2:4:2]
FILENAME : bn_strides.cdf
@@ -27203,16 +27253,16 @@ list a ! from cache ...
! cache hit from full region cache -- bypass use of strides
cancel memory/all
- -DELETE VAR M: 27 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 54 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 55 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 40 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 43 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M: 44 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M: 52 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
load var
dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GPC1 XAX1_4 YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- reading VAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ reading VAR M: 52 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
LIST VAR[i=2:4:2]
dealloc dynamic grid GPC1 XAX1_4 YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -27223,8 +27273,8 @@ LIST VAR[i=2:4:2]
allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G018) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 54 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd VAR M: 43 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 44 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X
@@ -27251,8 +27301,8 @@ LIST VAR[i=2:4:2,j=1:3:2]
allocate dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G010) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 27 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 54 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd VAR M: 40 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 44 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X, 2 delta on Y
@@ -27268,9 +27318,9 @@ LIST VAR[i=2:4:2,j=1:3:2]
1 / 1: 1212.00 1214.00
3 / 2: 1232.00 1234.00
CANC MEM/ALL
- -DELETE VAR M: 27 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 40 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 43 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 52 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
! modulo requests cannot use strides (as this example shows)
set axis/modulo XAX1_4
@@ -27284,9 +27334,9 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1] ! 1, 4, 7(3), 10(2)
allocate dynamic grid (G010) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G010) @XACT
strip moduloing VAR on X axis: 1 10 dset: 1
- reading VAR M: 55 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ reading VAR M: 52 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
doing moduloing VAR on X axis: 1 4 dset: 1
- regrid VAR M: 27 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ regrid VAR M: 40 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX024) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 3 delta on X
@@ -27302,9 +27352,9 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1] ! 1, 4, 7(3), 10(2)
7 / 3: 1113.00
10 / 4: 1112.00
cancel axis/modulo XAX1_4
- -DELETE VAR M: 27 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 47 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 40 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 43 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 52 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
! strides applied to more than one axis need special attention in IS_REGRID
LIST VAR[i=2:4:2,j=1:3:2]
@@ -27317,8 +27367,8 @@ LIST VAR[i=2:4:2,j=1:3:2]
allocate dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G010) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 47 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd VAR M: 43 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 52 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X, 2 delta on Y
@@ -27335,7 +27385,7 @@ LIST VAR[i=2:4:2,j=1:3:2]
3 / 2: 1232.00 1234.00
LIST VAR[i=2:6:2,j=1:5:2]
dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M: 47 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 43 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G010) (AX023) (AX024) ZAX1_2 TAX1_1 NORMAL NORMAL
dealloc dynamic grid (G010) (AX023) (AX024) ZAX1_2 TAX1_1 NORMAL NORMAL
@@ -27344,8 +27394,8 @@ LIST VAR[i=2:6:2,j=1:5:2]
allocate dynamic grid (G010) (AX023) (AX024) ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G010) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 47 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd VAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 43 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX023) (AX024) ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X, 2 delta on Y
@@ -27364,7 +27414,7 @@ LIST VAR[i=2:6:2,j=1:5:2]
! deliberate error
set mode ignore; LIST/i=2:4:2 VAR; cancel mode ignore
dealloc dynamic grid (G010) (AX023) (AX024) ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GPC1 XAX1_4 YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
@@ -27378,8 +27428,8 @@ LIST VAR[i=2:4:2 at ave]
eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
allocate dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G018) @AVE
- reading VAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- regrid VAR M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ reading VAR M: 52 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ regrid VAR M: 43 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X at AVE
@@ -27401,7 +27451,7 @@ LIST VAR[i=2:4:2 at ave]
let a = bigvar[i=1:40:5]
dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
dealloc dynamic grid (G018) (AX023) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M: 47 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 43 dset: 1 I: 1 2 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
list/j=1/k=1/l=1 a[i=3:5]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -27415,8 +27465,8 @@ list/j=1/k=1/l=1 a[i=3:5]
allocate dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
strip regrid on X: BIGVAR --> (G018) @XACT
rdstride BIGVAR C: 10 dset: 1 I: 1 36 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 27 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 47 dset: 1 I: 1 36 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd BIGVAR M: 40 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 43 dset: 1 I: 1 36 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
VARIABLE : BIGVAR[I=1:40:5]
FILENAME : bn_strides.cdf
@@ -27429,7 +27479,7 @@ list/j=1/k=1/l=1 a[i=3:5]
11 / 3: 1121.00
16 / 4: 1126.00
21 / 5: 1131.00
- -DELETE A M: 54 dset: 1 I: 1 1 J: 3 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M: 44 dset: 1 I: 1 1 J: 3 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
list/k=1/l=1 a[i=3:5,j=1:8:2]
dealloc dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -27444,10 +27494,10 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
allocate dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
strip regrid on X: BIGVAR --> (G018) @XACT
rdstride BIGVAR C: 11 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 52 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 54 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd BIGVAR M: 39 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 44 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- regrid A M: 49 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ regrid A M: 38 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX024) (AX025) ZAX1_20 TAX1_10 NORMAL NORMAL
VARIABLE : BIGVAR[I=1:40:5]
regrid: 2 delta on Y
@@ -27466,12 +27516,12 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
! reference data
LIST/order=x/j=1/k=1/l=1 UNEVENVAR
dealloc dynamic grid (G010) (AX024) (AX025) ZAX1_20 TAX1_10 NORMAL NORMAL
- -DELETE A M: 49 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M: 38 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GPC4 XUNEVEN YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- reading UNE-NVAR M: 49 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ reading UNE-NVAR M: 38 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
FILENAME : bn_strides.cdf
SUBSET : 4 points (X)
@@ -27482,12 +27532,12 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR
1 2 3 4
1111.00 1112.00 1113.00 1114.00
cancel mem/all
- -DELETE BIGVAR M: 27 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 47 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 49 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 52 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 54 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 38 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 39 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 40 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M: 43 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M: 44 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M: 52 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
! basic strides
LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
@@ -27501,8 +27551,8 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
allocate dynamic grid (G010) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G010) @XACT
rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 54 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd UNE-NVAR M: 44 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X
@@ -27522,8 +27572,8 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
allocate dynamic grid (G010) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G010) @XACT
rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd UNE-NVAR M: 43 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X
@@ -27539,8 +27589,8 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
! cache hit through non-file variable
let a = UNEVENVAR[i=2:4:2]
dealloc dynamic grid (G010) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 54 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 44 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX024) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
list/order=x/j=1/k=1/l=1 a
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -27555,8 +27605,8 @@ list/order=x/j=1/k=1/l=1 a
allocate dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G018) @XACT
rdstride UNE-NVAR C: 10 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 54 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd UNE-NVAR M: 43 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 44 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : UNEVENVAR[I=2:4:2]
FILENAME : bn_strides.cdf
@@ -27574,8 +27624,8 @@ list/order=x/j=1/k=1/l=1 a ! from cache ...
allocate dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G018) @XACT
rdstride UNE-NVAR C: 10 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 49 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd UNE-NVAR M: 40 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : UNEVENVAR[I=2:4:2]
FILENAME : bn_strides.cdf
@@ -27589,17 +27639,17 @@ list/order=x/j=1/k=1/l=1 a ! from cache ...
! cache hit from full region cache -- bypass use of strides
cancel memory/all
- -DELETE UNE-NVAR M: 49 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 54 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 55 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 40 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M: 44 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M: 52 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
load/k=1/l=1 UNEVENVAR
dealloc dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GPC4 XUNEVEN YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- reading UNE-NVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ reading UNE-NVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
dealloc dynamic grid GPC4 XUNEVEN YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -27611,8 +27661,8 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
allocate dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G018) @XACT
rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 54 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd UNE-NVAR M: 43 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 44 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X
@@ -27636,8 +27686,8 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
allocate dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G010) @XACT
rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 49 dset: 1 I: 1 2 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 54 dset: 1 I: 2 4 J: 1 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd UNE-NVAR M: 40 dset: 1 I: 1 2 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 44 dset: 1 I: 2 4 J: 1 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
doing limits reconciliation on Y axis: UNEVENVAR
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
@@ -27651,11 +27701,11 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
1
0.3 / 1: 1112.00
0.6 / 2: 1114.00
- -DELETE UNE-NVAR M: 54 dset: 1 I: 1 1 J: 1 2 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 44 dset: 1 I: 1 1 J: 1 2 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
CANC MEM/ALL
- -DELETE UNE-NVAR M: 49 dset: 1 I: 1 2 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 40 dset: 1 I: 1 2 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
! modulo requests cannot use strides (as this example shows)
set axis/modulo XUNEVEN
@@ -27669,9 +27719,9 @@ LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1] ! 1, 8, 15(5), 22(2)
allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G010) @XACT
strip moduloing UNEVENVAR on X axis: 1 29 dset: 1
- reading UNE-NVAR M: 55 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ reading UNE-NVAR M: 52 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
doing moduloing UNEVENVAR on X axis: 1 10 dset: 1
- regrid UNE-NVAR M: 49 dset: 1 I: 1 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ regrid UNE-NVAR M: 40 dset: 1 I: 1 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X
@@ -27684,9 +27734,9 @@ LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1] ! 1, 8, 15(5), 22(2)
1 2 3 4 5
1111.00 1118.00 1115.00 1112.00 1119.00
cancel axis/modulo XUNEVEN
- -DELETE UNE-NVAR M: 49 dset: 1 I: 1 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 29 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 40 dset: 1 I: 1 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset: 1 I: 1 29 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
! strides applied to more than one axis need special attention in IS_REGRID
LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
@@ -27700,8 +27750,8 @@ LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
allocate dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G010) @XACT
rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 2 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd UNE-NVAR M: 43 dset: 1 I: 1 2 J: 1 2 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset: 1 I: 2 4 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X, on Y
@@ -27715,7 +27765,7 @@ LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
0.95 / 2: 1132.00 1134.00
LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
dealloc dynamic grid (G010) (AX023) (AX025) ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset: 1 I: 1 2 J: 1 2 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G010) (AX024) (AX026) ZAX1_6 TAX1_4 NORMAL NORMAL
dealloc dynamic grid (G010) (AX024) (AX026) ZAX1_6 TAX1_4 NORMAL NORMAL
@@ -27725,8 +27775,8 @@ LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
allocate dynamic grid (G010) (AX024) (AX026) ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G010) @XACT
rdstride UNE-NVAR C: 8 dset: 1 I: 2 6 J: 1 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 55 dset: 1 I: 1 3 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 52 dset: 1 I: 2 6 J: 1 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd UNE-NVAR M: 52 dset: 1 I: 1 3 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset: 1 I: 2 6 J: 1 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX024) (AX026) ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X, on Y
@@ -27743,7 +27793,7 @@ LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
! averaging causes bypass of strides
LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
dealloc dynamic grid (G010) (AX024) (AX026) ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M: 55 dset: 1 I: 1 3 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset: 1 I: 1 3 J: 1 3 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
@@ -27752,8 +27802,8 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G010) @AVE
- reading UNE-NVAR M: 55 dset: 1 I: 1 9 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- regrid UNE-NVAR M: 52 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ reading UNE-NVAR M: 52 dset: 1 I: 1 9 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ regrid UNE-NVAR M: 43 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X at AVE
@@ -27770,7 +27820,7 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
0.9 / 4: 1117.90449
LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2] ! for comparison
dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G010) (AX026) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
dealloc dynamic grid (G010) (AX026) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
@@ -27780,8 +27830,8 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2] ! for comparison
allocate dynamic grid (G010) (AX026) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G010) @XACT
rdstride UNE-NVAR C: 8 dset: 1 I: 2 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M: 49 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 52 dset: 1 I: 2 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd UNE-NVAR M: 40 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset: 1 I: 2 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX026) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X
@@ -27800,7 +27850,7 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2] ! for comparison
! test special logic in tm_world_recur for endpoints of strides on irreg axis
LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=1:10:2 at ave]
dealloc dynamic grid (G010) (AX026) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M: 49 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 40 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
@@ -27809,8 +27859,8 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=1:10:2 at ave]
eval EX#1 C: 5 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G010) @AVE
- reading UNE-NVAR M: 49 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- regrid UNE-NVAR M: 52 dset: 1 I: 1 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ reading UNE-NVAR M: 40 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ regrid UNE-NVAR M: 43 dset: 1 I: 1 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X at AVE
@@ -27835,7 +27885,7 @@ set region/i=3:6/j=2:4/k=1:2/l=1
use/order=yx bn_strides
list bigvar[i=3:9:2]
dealloc dynamic grid (G010) (AX024) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M: 52 dset: 1 I: 1 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset: 1 I: 1 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G010) (AX026) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
dealloc dynamic grid (G010) (AX026) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
@@ -27844,8 +27894,8 @@ list bigvar[i=3:9:2]
allocate dynamic grid (G010) (AX026) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
strip regrid on X: BIGVAR --> (G010) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 54 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 52 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd BIGVAR M: 44 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 43 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX026) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
VARIABLE : VAR
regrid: 2 delta on X
@@ -27864,7 +27914,7 @@ list bigvar[i=3:9:2]
4 / 4: 1243.00 1245.00 1247.00 1249.00
list bigvar[j=2:6:2]
dealloc dynamic grid (G010) (AX026) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- -DELETE BIGVAR M: 54 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 44 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G010) XAX1_40 (AX024) ZAX1_20 TAX1_10 NORMAL NORMAL
dealloc dynamic grid (G010) XAX1_40 (AX024) ZAX1_20 TAX1_10 NORMAL NORMAL
@@ -27873,8 +27923,8 @@ list bigvar[j=2:6:2]
allocate dynamic grid (G010) XAX1_40 (AX024) ZAX1_20 TAX1_10 NORMAL NORMAL
strip regrid on Y: BIGVAR --> (G010) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 52 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 54 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd BIGVAR M: 43 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 44 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) XAX1_40 (AX024) ZAX1_20 TAX1_10 NORMAL NORMAL
VARIABLE : VAR
regrid: 2 delta on Y
@@ -27893,7 +27943,7 @@ list bigvar[j=2:6:2]
6 / 3: 1263.00 1264.00 1265.00 1266.00
list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
dealloc dynamic grid (G010) XAX1_40 (AX024) ZAX1_20 TAX1_10 NORMAL NORMAL
- -DELETE BIGVAR M: 52 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 43 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G010) (AX026) (AX025) (AX027) TAX1_10 NORMAL NORMAL
dealloc dynamic grid (G010) (AX026) (AX025) (AX027) TAX1_10 NORMAL NORMAL
@@ -27902,8 +27952,8 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
allocate dynamic grid (G010) (AX026) (AX025) (AX027) TAX1_10 NORMAL NORMAL
strip regrid on X: BIGVAR --> (G010) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 52 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd BIGVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 43 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX026) (AX025) (AX027) TAX1_10 NORMAL NORMAL
VARIABLE : VAR
regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
@@ -27921,9 +27971,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
4 / 2: 1343.00 1345.00 1347.00 1349.00
6 / 3: 1363.00 1365.00 1367.00 1369.00
canc data/all
- -DELETE UNE-NVAR M: 49 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 55 dset: 1 I: 1 9 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 40 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset: 1 I: 1 9 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) (AX026) (AX025) (AX027) TAX1_10 NORMAL NORMAL
dealloc dynamic grid (G018) (AX023) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
@@ -27937,8 +27987,8 @@ list bigvar[i=3:9:2]
allocate dynamic grid (G018) (AX027) YAX1_30 XAX1_40 TAX1_10 NORMAL NORMAL
strip regrid on X: BIGVAR --> (G018) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 54 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 55 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd BIGVAR M: 44 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 52 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) YAX1_30 XAX1_40 TAX1_10 NORMAL NORMAL
VARIABLE : VAR
regrid: 2 delta on X
@@ -27957,7 +28007,7 @@ list bigvar[i=3:9:2]
4 / 4: 1342.00 1542.00 1742.00 1942.00
list bigvar[j=2:6:2]
dealloc dynamic grid (G018) (AX027) YAX1_30 XAX1_40 TAX1_10 NORMAL NORMAL
- -DELETE BIGVAR M: 54 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 44 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) ZAX1_20 (AX023) XAX1_40 TAX1_10 NORMAL NORMAL
dealloc dynamic grid (G018) ZAX1_20 (AX023) XAX1_40 TAX1_10 NORMAL NORMAL
@@ -27966,8 +28016,8 @@ list bigvar[j=2:6:2]
allocate dynamic grid (G018) ZAX1_20 (AX023) XAX1_40 TAX1_10 NORMAL NORMAL
strip regrid on Y: BIGVAR --> (G018) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 55 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 54 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd BIGVAR M: 52 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 44 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) ZAX1_20 (AX023) XAX1_40 TAX1_10 NORMAL NORMAL
VARIABLE : VAR
regrid: 2 delta on Y
@@ -27986,7 +28036,7 @@ list bigvar[j=2:6:2]
6 / 3: 1362.00 1462.00 1562.00 1662.00
list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
dealloc dynamic grid (G018) ZAX1_20 (AX023) XAX1_40 TAX1_10 NORMAL NORMAL
- -DELETE BIGVAR M: 55 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 52 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_10 NORMAL NORMAL
dealloc dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_10 NORMAL NORMAL
@@ -27995,8 +28045,8 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
allocate dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_10 NORMAL NORMAL
strip regrid on X: BIGVAR --> (G018) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 55 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd BIGVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 52 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_10 NORMAL NORMAL
VARIABLE : VAR
regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
@@ -28014,7 +28064,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
4 / 2: 1343.00 1543.00 1743.00 1943.00
6 / 3: 1363.00 1563.00 1763.00 1963.00
canc data/all
- -DELETE BIGVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_10 NORMAL NORMAL
use/order=zxy bn_strides
@@ -28027,8 +28077,8 @@ list bigvar[i=3:9:2]
allocate dynamic grid (G018) (AX025) XAX1_40 YAX1_30 TAX1_10 NORMAL NORMAL
strip regrid on X: BIGVAR --> (G018) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 55 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 54 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd BIGVAR M: 52 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 44 dset: 1 I: 3 9 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) XAX1_40 YAX1_30 TAX1_10 NORMAL NORMAL
VARIABLE : VAR
regrid: 2 delta on X
@@ -28047,7 +28097,7 @@ list bigvar[i=3:9:2]
4 / 4: 1324.00 1524.00 1724.00 1924.00
list bigvar[j=2:6:2]
dealloc dynamic grid (G018) (AX025) XAX1_40 YAX1_30 TAX1_10 NORMAL NORMAL
- -DELETE BIGVAR M: 55 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 52 dset: 1 I: 1 4 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) ZAX1_20 (AX026) YAX1_30 TAX1_10 NORMAL NORMAL
dealloc dynamic grid (G018) ZAX1_20 (AX026) YAX1_30 TAX1_10 NORMAL NORMAL
@@ -28056,8 +28106,8 @@ list bigvar[j=2:6:2]
allocate dynamic grid (G018) ZAX1_20 (AX026) YAX1_30 TAX1_10 NORMAL NORMAL
strip regrid on Y: BIGVAR --> (G018) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 54 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 55 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd BIGVAR M: 44 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 52 dset: 1 I: 3 6 J: 2 6 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) ZAX1_20 (AX026) YAX1_30 TAX1_10 NORMAL NORMAL
VARIABLE : VAR
regrid: 2 delta on Y
@@ -28076,7 +28126,7 @@ list bigvar[j=2:6:2]
6 / 3: 1326.00 1426.00 1526.00 1626.00
list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
dealloc dynamic grid (G018) ZAX1_20 (AX026) YAX1_30 TAX1_10 NORMAL NORMAL
- -DELETE BIGVAR M: 54 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 44 dset: 1 I: 3 6 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_10 NORMAL NORMAL
dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_10 NORMAL NORMAL
@@ -28085,8 +28135,8 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
allocate dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_10 NORMAL NORMAL
strip regrid on X: BIGVAR --> (G018) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 54 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd BIGVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 44 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_10 NORMAL NORMAL
VARIABLE : VAR
regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
@@ -28104,7 +28154,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
4 / 2: 1334.00 1534.00 1734.00 1934.00
6 / 3: 1336.00 1536.00 1736.00 1936.00
canc data/all
- -DELETE BIGVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_10 NORMAL NORMAL
! now with xytvar
@@ -28132,8 +28182,8 @@ list xytvar[i=1:7:2]
allocate dynamic grid (G018) (AX027) YLAT NORMAL TTIME NORMAL NORMAL
strip regrid on X: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) YLAT NORMAL TTIME NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 deg on X
@@ -28151,7 +28201,7 @@ list xytvar[i=1:7:2]
1N / 1: 2011.00 2013.00 2015.00 2017.00
list xytvar[j=2:6:2]
dealloc dynamic grid (G018) (AX027) YLAT NORMAL TTIME NORMAL NORMAL
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) XLON (AX023) NORMAL TTIME NORMAL NORMAL
dealloc dynamic grid (G018) XLON (AX023) NORMAL TTIME NORMAL NORMAL
@@ -28160,8 +28210,8 @@ list xytvar[j=2:6:2]
allocate dynamic grid (G018) XLON (AX023) NORMAL TTIME NORMAL NORMAL
strip regrid on Y: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) XLON (AX023) NORMAL TTIME NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 deg on Y
@@ -28179,7 +28229,7 @@ list xytvar[j=2:6:2]
2N / 1: 2021.00 2022.00 2023.00 2024.00
list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
dealloc dynamic grid (G018) XLON (AX023) NORMAL TTIME NORMAL NORMAL
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
dealloc dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
@@ -28188,8 +28238,8 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
allocate dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
strip regrid on X: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 deg on X, 2 deg on Y, 2 day on T
@@ -28206,7 +28256,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
4N / 2: 5041.00 5043.00 5045.00 5047.00
2N / 1: 5021.00 5023.00 5025.00 5027.00
canc data/all
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
use/order=yx bn_strides
@@ -28231,8 +28281,8 @@ list xytvar[i=1:7:2]
allocate dynamic grid (G018) (AX025) XLON NORMAL TTIME NORMAL NORMAL
strip regrid on X: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) XLON NORMAL TTIME NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 deg on X
@@ -28250,7 +28300,7 @@ list xytvar[i=1:7:2]
143 / 3: 2013.00 2033.00 2053.00 2073.00
list xytvar[j=2:6:2]
dealloc dynamic grid (G018) (AX025) XLON NORMAL TTIME NORMAL NORMAL
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) YLAT (AX026) NORMAL TTIME NORMAL NORMAL
dealloc dynamic grid (G018) YLAT (AX026) NORMAL TTIME NORMAL NORMAL
@@ -28259,8 +28309,8 @@ list xytvar[j=2:6:2]
allocate dynamic grid (G018) YLAT (AX026) NORMAL TTIME NORMAL NORMAL
strip regrid on Y: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) YLAT (AX026) NORMAL TTIME NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 deg on Y
@@ -28278,7 +28328,7 @@ list xytvar[j=2:6:2]
146 / 3: 2016.00 2026.00 2036.00 2046.00
list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
dealloc dynamic grid (G018) YLAT (AX026) NORMAL TTIME NORMAL NORMAL
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
dealloc dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
@@ -28287,8 +28337,8 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
allocate dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
strip regrid on X: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 deg on X, 2 deg on Y, 2 day on T
@@ -28305,7 +28355,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
144 / 2: 5014.00 5034.00 5054.00 5074.00
146 / 3: 5016.00 5036.00 5056.00 5076.00
canc data/all
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
use/order=tyx bn_strides
@@ -28330,8 +28380,8 @@ list xytvar[i=1:7:2]
allocate dynamic grid (G018) (AX027) YLAT NORMAL XLON NORMAL NORMAL
strip regrid on X: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) YLAT NORMAL XLON NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 day on X
@@ -28349,7 +28399,7 @@ list xytvar[i=1:7:2]
1N / 1: 1012.00 3012.00 5012.00 7012.00
list xytvar[j=2:6:2]
dealloc dynamic grid (G018) (AX027) YLAT NORMAL XLON NORMAL NORMAL
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) TTIME (AX023) NORMAL XLON NORMAL NORMAL
dealloc dynamic grid (G018) TTIME (AX023) NORMAL XLON NORMAL NORMAL
@@ -28358,8 +28408,8 @@ list xytvar[j=2:6:2]
allocate dynamic grid (G018) TTIME (AX023) NORMAL XLON NORMAL NORMAL
strip regrid on Y: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) TTIME (AX023) NORMAL XLON NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 deg on Y
@@ -28377,7 +28427,7 @@ list xytvar[j=2:6:2]
2N / 1: 1022.00 2022.00 3022.00 4022.00
list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
dealloc dynamic grid (G018) TTIME (AX023) NORMAL XLON NORMAL NORMAL
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
dealloc dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
@@ -28386,8 +28436,8 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
allocate dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
strip regrid on X: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 day on X, 2 deg on Y, 2 deg on T
@@ -28404,7 +28454,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
4N / 2: 1045.00 3045.00 5045.00 7045.00
2N / 1: 1025.00 3025.00 5025.00 7025.00
canc data/all
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) NORMAL (AX026) NORMAL NORMAL
use/order=txy bn_strides
@@ -28429,8 +28479,8 @@ list xytvar[i=1:7:2]
allocate dynamic grid (G018) (AX025) XLON NORMAL YLAT NORMAL NORMAL
strip regrid on X: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 7 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) XLON NORMAL YLAT NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 day on X
@@ -28448,7 +28498,7 @@ list xytvar[i=1:7:2]
143 / 3: 1023.00 3023.00 5023.00 7023.00
list xytvar[j=2:6:2]
dealloc dynamic grid (G018) (AX025) XLON NORMAL YLAT NORMAL NORMAL
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) TTIME (AX026) NORMAL YLAT NORMAL NORMAL
dealloc dynamic grid (G018) TTIME (AX026) NORMAL YLAT NORMAL NORMAL
@@ -28457,8 +28507,8 @@ list xytvar[j=2:6:2]
allocate dynamic grid (G018) TTIME (AX026) NORMAL YLAT NORMAL NORMAL
strip regrid on Y: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 4 J: 2 6 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) TTIME (AX026) NORMAL YLAT NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 deg on Y
@@ -28476,7 +28526,7 @@ list xytvar[j=2:6:2]
146 / 3: 1026.00 2026.00 3026.00 4026.00
list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
dealloc dynamic grid (G018) TTIME (AX026) NORMAL YLAT NORMAL NORMAL
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
dealloc dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
@@ -28485,8 +28535,8 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
allocate dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
strip regrid on X: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 day on X, 2 deg on Y, 2 deg on T
@@ -28503,7 +28553,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
144 / 2: 1054.00 3054.00 5054.00 7054.00
146 / 3: 1056.00 3056.00 5056.00 7056.00
canc data/all
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) NORMAL (AX023) NORMAL NORMAL
! map into Z instead of T
@@ -28530,8 +28580,8 @@ list/k=1:2 xytvar[i=1:7:2]
allocate dynamic grid (G018) (AX027) XLON YLAT NORMAL NORMAL NORMAL
strip regrid on X: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 8 dset: 1 I: 1 7 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 7 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 7 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) XLON YLAT NORMAL NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 day on X
@@ -28549,7 +28599,7 @@ list/k=1:2 xytvar[i=1:7:2]
143 / 3: 1023.00 3023.00 5023.00 7023.00
list/k=1:2 xytvar[j=2:6:2]
dealloc dynamic grid (G018) (AX027) XLON YLAT NORMAL NORMAL NORMAL
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) TTIME (AX023) YLAT NORMAL NORMAL NORMAL
dealloc dynamic grid (G018) TTIME (AX023) YLAT NORMAL NORMAL NORMAL
@@ -28559,8 +28609,8 @@ list/k=1:2 xytvar[j=2:6:2]
allocate dynamic grid (G018) TTIME (AX023) YLAT NORMAL NORMAL NORMAL
strip regrid on Y: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 8 dset: 1 I: 1 4 J: 2 6 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 2 6 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 4 J: 2 6 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) TTIME (AX023) YLAT NORMAL NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 deg on Y
@@ -28578,7 +28628,7 @@ list/k=1:2 xytvar[j=2:6:2]
146 / 3: 1026.00 2026.00 3026.00 4026.00
list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
dealloc dynamic grid (G018) TTIME (AX023) YLAT NORMAL NORMAL NORMAL
- -DELETE XYTVAR M: 55 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G018) (AX027) (AX025) (AX026) NORMAL NORMAL NORMAL
dealloc dynamic grid (G018) (AX027) (AX025) (AX026) NORMAL NORMAL NORMAL
@@ -28587,8 +28637,8 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
allocate dynamic grid (G018) (AX027) (AX025) (AX026) NORMAL NORMAL NORMAL
strip regrid on X: XYTVAR --> (G018) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 55 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 52 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) (AX026) NORMAL NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 day on X, 2 deg on Y, 2 deg on Z
@@ -28605,7 +28655,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
144 / 2: 1054.00 3054.00 5054.00 7054.00
146 / 3: 1056.00 3056.00 5056.00 7056.00
canc data/all
- -DELETE XYTVAR M: 54 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 44 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) (AX026) NORMAL NORMAL NORMAL
@@ -28636,8 +28686,8 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
allocate dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
strip regrid on X: MIDVAR --> (G018) @XACT
rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 54 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 44 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28653,7 +28703,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 1512.00 1552.00
5 / 2: 1515.00 1555.00
canc data/all
- -DELETE MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
use/order=-yx bn_strides
@@ -28668,9 +28718,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
strip reversing MIDVAR on Y axis: 2 5 dset: 1
rdstride MIDVAR C: 8 dset: 1 I: 1 5 J: 5 8 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
doing reversing MIDVAR on Y axis: 2 5 dset: 1
- -DELETE MIDVAR M: 55 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 54 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 52 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 44 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_6 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28686,7 +28736,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 1518.00 1558.00
5 / 2: 1515.00 1555.00
canc data/all
- -DELETE MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) (AX026) TAX1_6 NORMAL NORMAL
use/order=y-x bn_strides
@@ -28701,9 +28751,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
strip reversing MIDVAR on X axis: 1 5 dset: 1
rdstride MIDVAR C: 8 dset: 1 I: 4 8 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
doing reversing MIDVAR on X axis: 1 5 dset: 1
- -DELETE MIDVAR M: 55 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 54 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 52 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 44 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28719,7 +28769,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 1582.00 1542.00
5 / 2: 1585.00 1545.00
canc data/all
- -DELETE MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) (AX023) TAX1_6 NORMAL NORMAL
! reference output
@@ -28733,8 +28783,8 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
allocate dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
strip regrid on X: MIDVAR --> (G018) @XACT
rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 54 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 55 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M: 44 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 52 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28750,7 +28800,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 1125.00 5125.00
5 / 2: 1155.00 5155.00
canc data/all
- -DELETE MIDVAR M: 54 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 44 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
@@ -28766,9 +28816,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
strip reversing MIDVAR on X axis: 1 5 dset: 1
rdstride MIDVAR C: 8 dset: 1 I: 2 6 J: 4 7 K: 3 5 L: 7 7 M: -999 -999 N: -999 -999
doing reversing MIDVAR on X axis: 1 5 dset: 1
- -DELETE MIDVAR M: 54 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 54 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 55 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 44 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M: 44 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 52 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28784,7 +28834,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 6775.00 2775.00
5 / 2: 6745.00 2745.00
canc data/all
- -DELETE MIDVAR M: 54 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 44 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
! reference output
@@ -28798,8 +28848,8 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
allocate dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
strip regrid on X: MIDVAR --> (G018) @XACT
rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 54 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 44 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28815,7 +28865,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 1152.00 5152.00
5 / 2: 1155.00 5155.00
canc data/all
- -DELETE MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX027) (AX025) (AX026) ZAX1_7 NORMAL NORMAL
use/order=-t-x-y bn_strides
@@ -28830,9 +28880,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
strip reversing MIDVAR on Y axis: 2 5 dset: 1
rdstride MIDVAR C: 8 dset: 1 I: 2 6 J: 5 8 K: 3 5 L: 7 7 M: -999 -999 N: -999 -999
doing reversing MIDVAR on Y axis: 2 5 dset: 1
- -DELETE MIDVAR M: 55 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 54 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 52 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 44 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28848,7 +28898,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 6758.00 2758.00
5 / 2: 6755.00 2755.00
canc data/all
- -DELETE MIDVAR M: 55 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 52 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G018) (AX025) (AX027) (AX023) ZAX1_7 NORMAL NORMAL
GO bn_reset
@@ -29106,7 +29156,7 @@ stat $1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 55 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 52 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
SEA SURFACE TEMPERATURE
LONGITUDE: 20E to 20E(380)
@@ -29130,15 +29180,15 @@ CONFUSE
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 54 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 44 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
stat $1
!-> stat sst
- -DELETE I M: 54 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE I M: 44 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 54 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 44 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
SEA SURFACE TEMPERATURE
LONGITUDE: 20E to 20E(380)
@@ -29167,8 +29217,8 @@ stat $1[gx=xtrop]
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
strip regrid on X: SST --> (G002) @LIN
- reading SST M: 52 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid SST M: 49 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 43 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 40 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
@@ -29189,16 +29239,16 @@ stat $1[gx=xtrop]
Standard deviation: 9.8848
CONFUSE
dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 49 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 40 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 49 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 40 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
stat $1[gx=xtrop]
!-> stat sst[gx=xtrop]
- -DELETE I M: 49 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE I M: 40 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
@@ -29207,8 +29257,8 @@ stat $1[gx=xtrop]
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
strip regrid on X: SST --> (G002) @LIN
- reading SST M: 49 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid SST M: 27 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 40 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 38 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
@@ -29233,7 +29283,7 @@ let $1x = $1[gx=xtrop]
stat $1x
!-> stat sstx
dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 27 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 38 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SSTX C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
@@ -29244,8 +29294,8 @@ stat $1x
eval SSTX C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
strip regrid on X: SST --> (G002) @LIN
- reading SST M: 27 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid SST M: 47 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 38 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 39 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST[GX=XTROP]
@@ -29270,10 +29320,10 @@ CONFUSE
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 44 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 35 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
stat $1x
!-> stat sstx
- -DELETE I M: 44 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE I M: 35 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
@@ -29281,8 +29331,8 @@ stat $1x
eval SSTX C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
strip regrid on X: SST --> (G002) @LIN
- reading SST M: 44 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 35 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 34 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST[GX=XTROP]
@@ -29303,11 +29353,11 @@ stat $1x
define grid/x=xtrop gx
dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SSTX M: 40 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SSTX M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SSTX M: 33 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SSTX M: 36 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 47 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 34 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 39 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
stat $1[g=gx]
!-> stat sst[g=gx]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29317,8 +29367,8 @@ stat $1[g=gx]
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
strip regrid on X: SST --> (G002) @LIN
- reading SST M: 47 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 39 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 34 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
@@ -29339,16 +29389,16 @@ stat $1[g=gx]
Standard deviation: 9.8848
CONFUSE
dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 34 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 43 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 34 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
stat $1[g=gx]
!-> stat sst[g=gx]
- -DELETE I M: 43 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE I M: 34 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
@@ -29357,8 +29407,8 @@ stat $1[g=gx]
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
strip regrid on X: SST --> (G002) @LIN
- reading SST M: 43 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- regrid SST M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 34 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 36 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
@@ -29382,7 +29432,7 @@ define axis/y=20s:20n:1 ytrop
stat $1[gx=xtrop,gy=ytrop]
!-> stat sst[gx=xtrop,gy=ytrop]
dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 36 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
@@ -29390,9 +29440,9 @@ stat $1[gx=xtrop,gy=ytrop]
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
strip regrid on X: SST --> (G002) @LIN
- reading SST M: 46 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 36 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
- regrid SST M: 40 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 33 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
@@ -29413,16 +29463,16 @@ stat $1[gx=xtrop,gy=ytrop]
Standard deviation: 1.778
CONFUSE
dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 40 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 33 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 40 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 33 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
stat $1[gx=xtrop,gy=ytrop]
!-> stat sst[gx=xtrop,gy=ytrop]
- -DELETE I M: 40 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE I M: 33 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
@@ -29431,9 +29481,9 @@ stat $1[gx=xtrop,gy=ytrop]
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
strip regrid on X: SST --> (G002) @LIN
- reading SST M: 40 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 33 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
- regrid SST M: 39 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 31 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
@@ -29456,7 +29506,7 @@ stat $1[gx=xtrop,gy=ytrop]
define grid/like=$1/x=xtrop/y=ytrop gxyt
!-> define grid/like=sst/x=xtrop/y=ytrop gxyt
dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- -DELETE SST M: 39 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 31 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
stat $1[g=gxyt]
@@ -29465,9 +29515,9 @@ stat $1[g=gxyt]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip regrid on X: SST --> GXYT @LIN
- reading SST M: 39 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 31 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
- regrid SST M: 38 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 29 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
SEA SURFACE TEMPERATURE
regrid: GXYT
@@ -29492,17 +29542,17 @@ CONFUSE
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 37 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 27 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
stat $1[g=gxyt]
!-> stat sst[g=gxyt]
- -DELETE I M: 37 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE I M: 27 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip regrid on X: SST --> GXYT @LIN
- reading SST M: 37 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 27 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
- regrid SST M: 36 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 25 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
SEA SURFACE TEMPERATURE
regrid: GXYT
@@ -29531,9 +29581,9 @@ stat $1xyt
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SSTXYT C: 6 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip regrid on X: SST --> GXYT @LIN
- reading SST M: 35 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 24 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
- regrid SST M: 34 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 23 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
SST[G=GXYT]
LONGITUDE: 129.5E to 79.5W
@@ -29557,18 +29607,18 @@ CONFUSE
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 32 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 21 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
stat $1xyt
!-> stat sstxyt
- -DELETE I M: 32 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE I M: 21 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SSTXYT C: 6 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip regrid on X: SST --> GXYT @LIN
- reading SST M: 32 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 21 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
- regrid SST M: 30 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 20 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
SST[G=GXYT]
LONGITUDE: 129.5E to 79.5W
@@ -29589,8 +29639,8 @@ stat $1xyt
let $1xyt = $1[g=gxyt]
!-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- -DELETE SSTXYT M: 29 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SSTXYT M: 33 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SSTXYT M: 19 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SSTXYT M: 22 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
stat $1xyt
!-> stat sstxyt
@@ -29599,9 +29649,9 @@ stat $1xyt
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SSTXYT C: 6 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip regrid on X: SST --> GXYT @LIN
- reading SST M: 33 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 22 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
- regrid SST M: 29 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 19 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
SST[G=GXYT]
LONGITUDE: 129.5E to 79.5W
@@ -29625,18 +29675,18 @@ CONFUSE
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 26 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 17 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
stat $1xyt
!-> stat sstxyt
- -DELETE I M: 26 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE I M: 17 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SSTXYT C: 6 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip regrid on X: SST --> GXYT @LIN
- reading SST M: 26 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 17 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
- regrid SST M: 25 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST M: 16 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
SST[G=GXYT]
LONGITUDE: 129.5E to 79.5W
@@ -29661,7 +29711,7 @@ stat $1[x=@ave]
allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST M: 23 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 14 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
doing --> SST[X=20E:20E(380)@AVE,D=1]
SEA SURFACE TEMPERATURE
@@ -29686,16 +29736,16 @@ CONFUSE
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 21 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 12 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
stat $1[x=@ave]
!-> stat sst[x=@ave]
- -DELETE I M: 21 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE I M: 12 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST M: 21 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 12 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
doing --> SST[X=20E:20E(380)@AVE,D=1]
SEA SURFACE TEMPERATURE
@@ -29726,7 +29776,7 @@ stat $1xave
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SSTXAVE C: 6 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST M: 19 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 10 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
doing --> SST[X=20E:20E(380)@AVE,D=1]
SST[X=@AVE]
@@ -29751,17 +29801,17 @@ CONFUSE
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 16 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 5 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
stat $1xave
!-> stat sstxave
- -DELETE I M: 16 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE I M: 5 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SSTXAVE C: 6 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST M: 16 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 5 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
doing --> SST[X=20E:20E(380)@AVE,D=1]
SST[X=@AVE]
@@ -29788,7 +29838,7 @@ stat $1[x=@sbx]
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip --> SST[X=20E:20E(380)@SBX:3,D=1]
strip moduloing SST on X axis: 0 181 dset: 1
- reading SST M: 13 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 2 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
doing moduloing SST on X axis: 1 180 dset: 1
doing --> SST[X=20E:20E(380)@SBX:3,D=1]
@@ -29815,17 +29865,17 @@ CONFUSE
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 10 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 46 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
stat $1[x=@sbx]
!-> stat sst[x=@sbx]
- -DELETE I M: 10 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE I M: 46 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip --> SST[X=20E:20E(380)@SBX:3,D=1]
strip moduloing SST on X axis: 0 181 dset: 1
- reading SST M: 10 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 46 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
doing moduloing SST on X axis: 1 180 dset: 1
doing --> SST[X=20E:20E(380)@SBX:3,D=1]
@@ -29859,7 +29909,7 @@ stat $1sbx
eval SSTSBX C: 6 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip --> SST[X=20E:20E(380)@SBX:3,D=1]
strip moduloing SST on X axis: 0 181 dset: 1
- reading SST M: 7 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 26 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
doing moduloing SST on X axis: 1 180 dset: 1
doing --> SST[X=20E:20E(380)@SBX:3,D=1]
@@ -29885,10 +29935,10 @@ CONFUSE
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 5 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- pseudo I M: 3 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 55 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
stat $1sbx
!-> stat sstsbx
- -DELETE I M: 3 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE I M: 55 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
@@ -29896,7 +29946,7 @@ stat $1sbx
eval SSTSBX C: 6 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip --> SST[X=20E:20E(380)@SBX:3,D=1]
strip moduloing SST on X axis: 0 181 dset: 1
- reading SST M: 3 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M: 55 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
doing moduloing SST on X axis: 1 180 dset: 1
doing --> SST[X=20E:20E(380)@SBX:3,D=1]
@@ -30448,7 +30498,7 @@ let $1xyt = $1[g=gxyt]
-DELETE SST5 M: 62 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 66 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 69 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 31 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST5 M: 30 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 41 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 51 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 57 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -30469,14 +30519,14 @@ let $1xyt = $1[g=gxyt]
-DELETE SST5 M: 88 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 89 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SSTSBX M: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SSTSBX M: 1 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SSTSBX M: 56 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SSTXAVE M: 14 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SSTXAVE M: 17 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SSTXAVE M: 3 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SSTXAVE M: 7 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SSTXYT M: 24 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SSTXYT M: 28 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SSTXYT M: 15 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SSTXYT M: 18 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
stat $1xyt
!-> stat sst5xyt
@@ -30488,11 +30538,11 @@ stat $1xyt
eval SST5XYT C: 6 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip regrid on X: SST5 --> GXYT @LIN
eval SST5 C: 9 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- reading SST M: 28 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 24 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 24 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ reading SST M: 18 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ constan cnst M: 15 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE cnst M: 15 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid XY
- regrid SST5 M: 24 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST5 M: 15 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
SST5[G=GXYT]
LONGITUDE: 129.5E to 79.5W
@@ -30527,10 +30577,10 @@ stat $1xyt
strip regrid on X: SST5 --> GXYT @LIN
eval SST5 C: 9 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 56 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M: 4 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 4 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ constan cnst M: 1 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE cnst M: 1 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid XY
- regrid SST5 M: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ regrid SST5 M: 1 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
SST5[G=GXYT]
LONGITUDE: 129.5E to 79.5W
@@ -30852,9 +30902,15 @@ say `a,return=isize` ! no evaluation of a required -- just context
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 97 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
!-> MESSAGE/CONTINUE 10
10
list/nohead a ! evaluate it now
+ -DELETE I M: 97 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -30874,6 +30930,7 @@ list/nohead a ! evaluate it now
let a = XSEQUENCE(j[j=1:5])
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE A M: 98 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE A M: 99 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE I M: 97 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE SST5SBX M: 91 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -30882,13 +30939,13 @@ let a = XSEQUENCE(j[j=1:5])
-DELETE SST5XAVE M: 59 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5XAVE M: 72 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
- -DELETE SST5XYT M: 14 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST5XYT M: 3 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5XYT M: 88 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- -DELETE SST5 M: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 17 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 24 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST5 M: 31 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST5 M: 1 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST5 M: 7 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST5 M: 15 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST5 M: 30 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 41 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 51 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 58 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -31096,53 +31153,67 @@ EXIT/SCRIPT
GO bn_reset
cancel mode verify
- -DELETE SST M: 1 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 2 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 3 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ -DELETE (C31,V11 M: 78 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE (C31,V11 M: 95 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ -DELETE (C09,V11 M: 79 dset: 0 I: 1 3 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE (C09,V11 M: 90 dset: 0 I: 1 3 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G002) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
+ -DELETE (C01,V11 M: 84 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE (C01,V11 M: 93 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ -DELETE A M: 75 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE A M: 82 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ -DELETE I M: 94 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE SST M: 2 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 4 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 5 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 6 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 7 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 8 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 9 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 6 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 8 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 9 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 10 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 11 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 12 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 13 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 15 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 16 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 18 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 19 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 20 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 21 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 22 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 23 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 11 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 12 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 13 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 14 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 16 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 17 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 18 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 19 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 20 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 21 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 22 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 23 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 24 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 25 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 26 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 27 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 28 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 26 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 27 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 28 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 29 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 30 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 32 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 31 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 32 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 33 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 34 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 35 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 36 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 37 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 38 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 39 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 40 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 34 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 35 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 36 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 37 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 38 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 39 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 40 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 42 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 43 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 44 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 44 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 45 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 46 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 47 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 46 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 47 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 48 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 49 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 49 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 50 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 52 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 52 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 53 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE SST M: 54 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE SST M: 54 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 55 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 56 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 57 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -31162,20 +31233,6 @@ cancel mode verify
-DELETE SST M: 85 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 87 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 92 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE (C31,V11 M: 78 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C31,V11 M: 95 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE (C09,V11 M: 79 dset: 0 I: 1 3 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C09,V11 M: 90 dset: 0 I: 1 3 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G002) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
- -DELETE (C01,V11 M: 84 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE (C01,V11 M: 93 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A M: 75 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A M: 82 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE I M: 94 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE str M: 86 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE str M: 89 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
GO bn_regrid_to_user ! G=user_var and related
@@ -31536,7 +31593,7 @@ SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2] ! implicit Y axis
GRID (G018)
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX004) LATITUDE 41 r 10S 2S
+ (AX003) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31554,7 +31611,7 @@ SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
GRID (G011)
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX004) LATITUDE 41 r 10S 2S
+ (AX003) LATITUDE 41 r 10S 2S
normal Z
(AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
@@ -31563,7 +31620,7 @@ SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2]) ! abstract X axis
GRID (G018)
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX004) LATITUDE 41 r 10S 2S
+ (AX003) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31580,7 +31637,7 @@ SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10
GRID (G011)
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX004) LATITUDE 41 r 10S 2S
+ (AX003) LATITUDE 41 r 10S 2S
normal Z
(AX001) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
@@ -31588,7 +31645,7 @@ SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10
GRID (G018)
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX004) LATITUDE 41 r 10S 2S
+ (AX003) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31613,14 +31670,14 @@ SHOW GRID
GRID (G011)
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX004) LATITUDE 41 r 10S 2S
+ (AX003) LATITUDE 41 r 10S 2S
normal Z
(AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
normal F
list/j=1:5 j
VARIABLE : J
- axis (AX004)
+ axis (AX003)
SUBSET : 5 points (LATITUDE)
9.2S / 5: 5.00000
9.4S / 4: 4.00000
@@ -31632,7 +31689,7 @@ SHOW GRID MYGRID
GRID MYGRID
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX004) LATITUDE 41 r 10S 2S
+ (AX003) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31642,14 +31699,14 @@ Dynamic grids:
GRID (G011) use count: 1
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX004) LATITUDE 41 r 10S 2S
+ (AX003) LATITUDE 41 r 10S 2S
normal Z
(AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
normal F
Dynamic axes:
AXIS (AX011) use count: 1
- AXIS (AX004) use count: 2
+ AXIS (AX003) use count: 2
AXIS (AX020) use count: 1
@@ -34118,8 +34175,17 @@ SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
Returns data sampled according to L indices which may vary in IJK
L_INDICES: ordered indices
DAT_TO_SAMPLE: data to sample using L indices
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+ Returns data sampled by interpolating to a set of times in F direction
+ DAT_TO_SAMPLE: data to sample at set of times in F
+ YR: Year(s) yyyy
+ MO: Month(s), integer mm
+ DAY: Day(s) of month dd
+ HR: Hour(s) hh
+ MIN: Minute(s) mm
+ SEC: Second(s) ss
SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
- Returns data sampled by interpolating to a set of times
+ Returns data sampled by interpolating to a set of times in T direction
DAT_TO_SAMPLE: data to sample at set of times
YR: Year(s) yyyy
MO: Month(s), integer mm
@@ -34184,6 +34250,14 @@ SAMPLE_FAST_I(V,Indices)
Fast 1D sample variable using set of indices
V: Variable to sample
Indices: List of indices at which to sample
+SAMPLE_FAST_I_STR(S,Indices)
+ Fast 1D sample string variable using set of indices
+ S: String Variable to sample (STRING)
+ Indices: List of indices at which to sample
+SAMPLE_FAST_I(V,Indices)
+ Fast 1D sample variable using set of indices
+ V: Variable to sample
+ Indices: List of indices at which to sample
go bench_sorti.jnl
@@ -35299,6 +35373,10 @@ CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
lat_in: Source grid latitudes (2-D) (degrees)
grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
radius: Source points falling within radius are included in mapping to destination point (degrees)
+CURV_TO_RECT_FSU(V,mapping)
+ Alt func to Apply mapping to regrid from curvilinear to rectangular grid
+ V: Variable to regrid, on curvilinear grid V(x,y,z,t)
+ mapping: mapping computed by curv_to_rect_MAP
use tripolar_subset.nc
shade ht, geolon_vert_t, geolat_vert_t
@@ -35387,12 +35465,12 @@ list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
Column 1: TAX_MONTH(T[GT=TEMP],TEMP)
Column 2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
(C001,V001) (C001,V009)
-10-NOV-1982 16 / 15: 11.0000 0.860274
-16-NOV-1982 18 / 16: 11.0000 0.876712
-22-NOV-1982 20 / 17: 11.0000 0.893151
-28-NOV-1982 22 / 18: 11.0000 0.909589
+10-NOV-1982 16 / 15: 11.0000 0.862100
+16-NOV-1982 18 / 16: 11.0000 0.878767
+22-NOV-1982 20 / 17: 11.0000 0.895434
+28-NOV-1982 22 / 18: 11.0000 0.912100
05-DEC-1982 00 / 19: 12.0000 0.928767
-11-DEC-1982 02 / 20: 12.0000 0.945205
+11-DEC-1982 02 / 20: 12.0000 0.945434
list/L=15:20 tax_year(t[gt=temp],temp)
VARIABLE : TAX_YEAR(T[GT=TEMP],TEMP)
FILENAME : gt4d011.cdf
@@ -35450,12 +35528,12 @@ list/nohead b ! using rdstride
strip moduloing A on X axis: 18 22 dset: 1
rdstride A C: 11 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing moduloing A on X axis: 18 20 dset: 1
- -DELETE A M:322 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE A M:331 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
rdstride A C: 11 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing moduloing A on X axis: 2 2 dset: 1
- -DELETE A M:322 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd A M:322 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A M:319 dset: 1 I: 18 22 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE A M:331 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ nulrgd A M:331 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE A M:330 dset: 1 I: 18 22 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
18 / 1: 18.0000
20 / 2: 20.0000
@@ -35470,9 +35548,9 @@ list/nohead a[i=1:25:3] ! no strides --> reads full region without strides
allocate dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
strip regrid on X: A --> (G023) @XACT
strip moduloing A on X axis: 1 25 dset: 1
- reading A M:325 dset: 1 I: 1 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ reading A M:340 dset: 1 I: 1 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing moduloing A on X axis: 1 20 dset: 1
- regrid A M:341 dset: 1 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ regrid A M:328 dset: 1 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
1 / 1: 1.0000
4 / 2: 4.0000
@@ -35485,7 +35563,7 @@ list/nohead a[i=1:25:3] ! no strides --> reads full region without strides
25 / 9: 5.0000
list/nohead b ! reuse of cached result
dealloc dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A M:341 dset: 1 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE A M:328 dset: 1 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -35495,12 +35573,12 @@ list/nohead b ! reuse of cached result
strip moduloing A on X axis: 18 22 dset: 1
rdstride A C: 11 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing moduloing A on X axis: 18 20 dset: 1
- -DELETE A M:341 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE A M:328 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
rdstride A C: 11 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing moduloing A on X axis: 2 2 dset: 1
- -DELETE A M:341 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd A M:341 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE A M:339 dset: 1 I: 18 22 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE A M:328 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ nulrgd A M:328 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE A M:332 dset: 1 I: 18 22 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
18 / 1: 18.0000
20 / 2: 20.0000
@@ -35703,7 +35781,7 @@ list/nohead a[i=106:145:5]
set mode diag
list/nohead str[i=18:23:2] ! using rdstride
dealloc dynamic grid (G023) (AX010) NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE A M:335 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE A M:337 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
dealloc dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
@@ -35714,12 +35792,12 @@ list/nohead str[i=18:23:2] ! using rdstride
strip moduloing STR on X axis: 18 22 dset: 1
rdstride STR C: 9 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing moduloing STR on X axis: 18 20 dset: 1
- -DELETE STR M:335 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE STR M:337 dset: 1 I: 18 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
rdstride STR C: 9 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing moduloing STR on X axis: 2 2 dset: 1
- -DELETE STR M:335 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd STR M:335 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE STR M:334 dset: 1 I: 18 22 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE STR M:337 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ nulrgd STR M:337 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE STR M:327 dset: 1 I: 18 22 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G022) (AX017) NORMAL NORMAL NORMAL NORMAL NORMAL
18 / 1:"r"
20 / 2:"t"
@@ -35734,9 +35812,9 @@ list/nohead str[i=1:25:3] ! no strides --> reads full region without strides
allocate dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
strip regrid on X: STR --> (G023) @XACT
strip moduloing STR on X axis: 1 25 dset: 1
- reading STR M:334 dset: 1 I: 1 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ reading STR M:327 dset: 1 I: 1 20 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing moduloing STR on X axis: 1 20 dset: 1
- regrid STR M:318 dset: 1 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ regrid STR M:315 dset: 1 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G023) (AX014) NORMAL NORMAL NORMAL NORMAL NORMAL
1 / 1:"a"
4 / 2:"d"
@@ -36642,6 +36720,8 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "fri
list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
1 / 1:"now, goodbye, my friend" "now, hello, friend"
2 / 2:"then, goodbye, my friend""then, hello, friend"
+
+SET MODE IGNORE
list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
1 / 1:........
2 / 2:........
@@ -36656,18 +36736,11 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "g
2 / 2:........
! numerical operators applied to strings
+
list/nohead "b" - {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" * {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" / {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" ^ {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead {"a","b"} + 1
1 / 1:....
2 / 2:....
@@ -36678,18 +36751,14 @@ list/nohead 1 - {"a","b"}
1 / 1:....
2 / 2:....
list/nohead SIN({"a","b","c"})
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
list/nohead MAX("a",{"a","b","c"})
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
list/nohead MAX(1,{"a","b","c"})
1 / 1:....
2 / 2:....
3 / 3:....
+CANCEL MODE IGNORE
+
! transformations applied to strings
let a = {"a","b","c","d"}
list a[i=@shf]
@@ -36984,13 +37053,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1: "one" ... 1.10000 -24.0000 130.000 " " 10.000 "word 1" " " ....
-2 / 2: "two" ... 2.20000 24.0000 -130.000 "2S" .... "word 2" " " ....
-3 / 3: "three" ... 3.30000 24.0000 130.000 "3N" 0.030 " wd 3 " " " ....
-4 / 4: " " ... .... .... .... " " .... " " " " ....
-5 / 5: "five" ... 4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa" 77.0000
-6 / 6: "extra line"... .... .... .... " " .... " " " " ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: "one" .... 1.10000 -24.0000 130.000 " " 10.000 "word 1" " " ....
+2 / 2: "two" .... 2.20000 24.0000 -130.000 "2S" .... "word 2" " " ....
+3 / 3: "three" .... 3.30000 24.0000 130.000 "3N" 0.030 " wd 3 " " " ....
+4 / 4: " " .... .... .... .... " " .... " " " " ....
+5 / 5: "five" .... 4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa" 77.0000
+6 / 6: "extra line" .... .... .... .... " " .... " " " " ....
! insist that all columns be treated as string
file/format=delim/skip=1/type=text bn_delimited_read_1.dat
@@ -37058,13 +37127,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1:...... 1.10000 .... .... .... 10.000...... ....
-2 / 2:...... 2.20000 .... .... .... .......... ....
-3 / 3:...... 3.30000 24.0000 130.000 .... 0.030...... ....
-4 / 4:...... .... .... .... .... .......... ....
-5 / 5:...... 4.40000 -24.0000 -130.000 91.0000 -400.000...... 77.0000
-6 / 6:...... .... .... .... .... .......... ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: .... .... 1.10000 .... .... .... 10.000 .... .... ....
+2 / 2: .... .... 2.20000 .... .... .... .... .... .... ....
+3 / 3: .... .... 3.30000 24.0000 130.000 .... 0.030 .... .... ....
+4 / 4: .... .... .... .... .... .... .... .... .... ....
+5 / 5: .... .... 4.40000 -24.0000 -130.000 91.0000 -400.000 .... .... 77.0000
+6 / 6: .... .... .... .... .... .... .... .... .... ....
! insist that all columns be treated as latitude
file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
@@ -37081,13 +37150,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8 is V8 (degrees_north)(Latitude)
Column 9: V9 is V9 (degrees_north)(Latitude)
Column 10: V10 is V10 (degrees_north)(Latitude)
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1:...... 1.10000 -24.0000 .... .... 10.000...... ....
-2 / 2:...... 2.20000 24.0000 .... -2.0000 .......... ....
-3 / 3:...... 3.30000 24.0000 130.000 3.0000 0.030...... ....
-4 / 4:...... .... .... .... .... .......... ....
-5 / 5:...... 4.40000 -24.0000 -130.000 91.0000 -400.000...... 77.0000
-6 / 6:...... .... .... .... .... .......... ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: .... .... 1.10000 -24.0000 .... .... 10.000 .... .... ....
+2 / 2: .... .... 2.20000 24.0000 .... -2.0000 .... .... .... ....
+3 / 3: .... .... 3.30000 24.0000 130.000 3.0000 0.030 .... .... ....
+4 / 4: .... .... .... .... .... .... .... .... .... ....
+5 / 5: .... .... 4.40000 -24.0000 -130.000 91.0000 -400.000 .... .... 77.0000
+6 / 6: .... .... .... .... .... .... .... .... .... ....
! read only the first line of the file
spawn head -1 bn_delimited_read_1.dat
@@ -37109,8 +37178,8 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-I / *: "col1" "col2" "col3" "col4" "col5" " "... " " " "....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+I / *: "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
list c1,c2,c3,c4,c5
DATA SET: ./bn_delimited_read_1.dat
@@ -37228,11 +37297,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
Column 6: V6 is V6 (days)(Julian days since 1-Jan-1900)
Column 7: V7 is V7 (days)(Julian days since 1-Jan-1900)
Column 8: V8 is V8 (days)(Julian days since 1-Jan-1900)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1: 36493.0 36218.0...... 36493.0 36218.0......
-2 / 2: 36494.0 36219.0...... 36494.0 36219.0......
-3 / 3: .... .......... 36495.0 36220.0......
-4 / 4: 36496.0 36221.0...... 36496.0 36221.0......
+ V1 V2 V3 V4 V5 V6 V7 V8
+1 / 1: 36493.0 36218.0 .... .... 36493.0 36218.0 .... ....
+2 / 2: 36494.0 36219.0 .... .... 36494.0 36219.0 .... ....
+3 / 3: .... .... .... .... 36495.0 36220.0 .... ....
+4 / 4: 36496.0 36221.0 .... .... 36496.0 36221.0 .... ....
show data 2
currently SET data sets:
2> ./bn_delimited_read_date_time.dat (default)
@@ -37267,11 +37336,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
Column 6: V6 is V6 (hours)(Time of day)
Column 7: V7 is V7 (hours)(Time of day)
Column 8: V8 is V8 (hours)(Time of day)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1:...... 12.0000 13.7601...... 12.0000 13.7601
-2 / 2:...... 1.0037 14.7601...... 1.0037 14.7601
-3 / 3:...... .... .......... 2.0000 15.7500
-4 / 4:...... 3.0000 16.7601...... 3.0000 16.7601
+ V1 V2 V3 V4 V5 V6 V7 V8
+1 / 1: .... .... 12.0000 13.7601 .... .... 12.0000 13.7601
+2 / 2: .... .... 1.0037 14.7601 .... .... 1.0037 14.7601
+3 / 3: .... .... .... .... .... .... 2.0000 15.7500
+4 / 4: .... .... 3.0000 16.7601 .... .... 3.0000 16.7601
show data 2
currently SET data sets:
2> ./bn_delimited_read_date_time.dat (default)
@@ -39655,7 +39724,7 @@ lsx $1 ! default avoids void points
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GFJ1 XAX_SUBSPANORMAL NORMAL NORMAL NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- reading VREG M: 8 dset: 1 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ reading VREG M: 2 dset: 1 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
VARIABLE : X[GX=XAX_SUBSPAN] -40 + 10
FILENAME : test_subspan_modulo.nc
SUBSET : 6 points (X)
@@ -39667,7 +39736,7 @@ lsxn/x=100 $1 ! void point above, alone (via "modulo-void-filling")
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 7 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
strip modulo-void-filling VREG on X axis: 7 7 dset: 1
- reading VREG M: 11 dset: 1 I: 6 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ reading VREG M: 5 dset: 1 I: 6 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing modulo-void-filling VREG on X axis: 6 6 dset: 1
....
lsxn/x=0 $1 ! void point below, alone (via modulo)
@@ -39675,7 +39744,7 @@ lsxn/x=0 $1 ! void point below, alone (via modulo)
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 0 0 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
strip moduloing VREG on X axis: 0 0 dset: 1
- reading VREG M: 6 dset: 1 I: 6 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ reading VREG M: 8 dset: 1 I: 6 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing moduloing VREG on X axis: 6 6 dset: 1
....
lsxn/x=45:100 $1 ! void above (via subspan-fill)
@@ -39683,7 +39752,7 @@ lsxn/x=45:100 $1 ! void above (via subspan-fill)
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 5 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
strip modulo-void-filling VREG on X axis: 5 7 dset: 1
- reading VREG M: 5 dset: 1 I: 5 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ reading VREG M: 3 dset: 1 I: 5 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing modulo-void-filling VREG on X axis: 5 6 dset: 1
15.0000 16.0000 ....
lsxn/x=0:100 $1 ! voids above & below (via modulo)
@@ -39691,7 +39760,7 @@ lsxn/x=0:100 $1 ! voids above & below (via modulo)
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 0 7 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
strip moduloing VREG on X axis: 0 7 dset: 1
- reading VREG M: 17 dset: 1 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ reading VREG M: 9 dset: 1 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing moduloing VREG on X axis: 1 6 dset: 1
.... 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 ....
set mode/last diag
@@ -39947,37 +40016,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
!-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:2]
dealloc dynamic grid GFJ3 XAX_SUBSPANORMAL NORMAL TAX_SUBSPANORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- dealloc dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- allocate dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ allocate dynamic grid (G004) (AX003) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ dealloc dynamic grid (G004) (AX003) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ allocate dynamic grid (G004) (AX003) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- strip regrid on X: V2D_REG --> (G002) @XACT
+ allocate dynamic grid (G004) (AX003) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ strip regrid on X: V2D_REG --> (G004) @XACT
found V2D_REG M: 69 dset: 1 I: 0 14 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid V2D_REG M: 70 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ dealloc dynamic grid (G004) (AX003) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
.... 12.0000 14.0000 16.0000 11.0000 13.0000 15.0000 ....
l200n/order=x $2[l=1,i=0:14:7]
!-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:7]
............
set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
!-> list/width=200/nohead v2d_reg[i=1,l=1:15:2]
- dealloc dynamic grid (G002) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ dealloc dynamic grid (G004) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
-DELETE V2D_REG M: 71 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
- dealloc dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
- allocate dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
+ allocate dynamic grid (G004) XAX_SUBSPANORMAL NORMAL (AX003) NORMAL NORMAL
+ dealloc dynamic grid (G004) XAX_SUBSPANORMAL NORMAL (AX003) NORMAL NORMAL
+ allocate dynamic grid (G004) XAX_SUBSPANORMAL NORMAL (AX003) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- allocate dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
- strip regrid on T: V2D_REG --> (G002) @XACT
+ allocate dynamic grid (G004) XAX_SUBSPANORMAL NORMAL (AX003) NORMAL NORMAL
+ strip regrid on T: V2D_REG --> (G004) @XACT
strip moduloing V2D_REG on T axis: 1 15 dset: 1
rdstride V2D_REG C: 9 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
doing moduloing V2D_REG on T axis: 1 5 dset: 1
-DELETE V2D_REG M: 71 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
nulrgd V2D_REG M: 71 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
-DELETE V2D_REG M: 72 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 15 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
+ dealloc dynamic grid (G004) XAX_SUBSPANORMAL NORMAL (AX003) NORMAL NORMAL
16-JAN-0000 / 1: 11.000
16-MAR-0000 / 2: 71.000
15-MAY-0000 / 3: 131.000
@@ -40044,7 +40113,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
! test modulo string arrays
list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
- !-> list vreg_strings[i=5:7] ! via IS_SUBSPAN_FILL
+ !-> list vreg_strings[i=5:7]
VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 3 points (X)
@@ -40052,7 +40121,7 @@ list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
46 / 6:"a6"
93.5 / 7:""
list $1_strings[i=1013:1024] ! via IS_MODULO
- !-> list vreg_strings[i=1013:1024] ! via IS_MODULO
+ !-> list vreg_strings[i=1013:1024]
VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 12 points (X)
@@ -40476,37 +40545,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
!-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:2]
dealloc dynamic grid GFJ4 XIRREG_SUBNORMAL NORMAL TIRREG_SUBNORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- dealloc dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- allocate dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ allocate dynamic grid (G014) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ dealloc dynamic grid (G014) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ allocate dynamic grid (G014) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- strip regrid on X: V2D_IRR --> (G018) @XACT
+ allocate dynamic grid (G014) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ strip regrid on X: V2D_IRR --> (G014) @XACT
found V2D_IRR M:146 dset: 1 I: 0 14 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid V2D_IRR M:147 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ dealloc dynamic grid (G014) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
.... 12.0000 14.0000 16.0000 11.0000 12.1000 15.0000 ....
l200n/order=x $2[l=1,i=0:14:7]
!-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:7]
............
set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
!-> list/width=200/nohead v2d_irr[i=1,l=1:15:2]
- dealloc dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ dealloc dynamic grid (G014) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
-DELETE V2D_IRR M:148 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
- dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
+ allocate dynamic grid (G014) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
+ dealloc dynamic grid (G014) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
+ allocate dynamic grid (G014) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
- strip regrid on T: V2D_IRR --> (G018) @XACT
+ allocate dynamic grid (G014) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
+ strip regrid on T: V2D_IRR --> (G014) @XACT
strip moduloing V2D_IRR on T axis: 1 15 dset: 1
rdstride V2D_IRR C: 9 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
doing moduloing V2D_IRR on T axis: 1 5 dset: 1
-DELETE V2D_IRR M:148 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
nulrgd V2D_IRR M:148 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
-DELETE V2D_IRR M:149 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 15 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
+ dealloc dynamic grid (G014) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
16-JAN-0000 / 1: 11.000
15-MAR-0000 / 2: 70.249
15-MAY-0000 / 3: 131.249
@@ -40573,7 +40642,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
! test modulo string arrays
list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
- !-> list virr_strings[i=5:7] ! via IS_SUBSPAN_FILL
+ !-> list virr_strings[i=5:7]
VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 3 points (X)
@@ -40581,7 +40650,7 @@ list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
46 / 6:"a6"
93.5 / 7:""
list $1_strings[i=1013:1024] ! via IS_MODULO
- !-> list virr_strings[i=1013:1024] ! via IS_MODULO
+ !-> list virr_strings[i=1013:1024]
VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 12 points (X)
@@ -40739,7 +40808,8 @@ show modes
LATIT_LABEL SET -4
DEPTH_LABEL SET -4
CALENDAR SET months
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -40758,7 +40828,8 @@ show modes
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
contour/i=1:10/j=1:10 i/j
! restore the labels, logo still gone
@@ -44363,16 +44434,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M:143 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M:141 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ constan cnst M:140 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE cnst M:134 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
!-> list sst[x=280:330 at ave,y=@ave]
- -DELETE cnst M:143 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE cnst M:140 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: -999 -999 J: 46 70 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip --> SST[Y=0:50N at AV4,D=1]
- reading SST M:143 dset: 1 I: 131 155 J: 46 70 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M:140 dset: 1 I: 131 155 J: 46 70 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
doing --> SST[Y=0:50N at AV4,D=1]
VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
FILENAME : coads_climatology.cdf
@@ -44384,16 +44455,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- constan cnst M:130 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ constan cnst M:131 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE cnst M:129 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
!-> list sst[x=280:360 at ave,y=@ave]
- -DELETE cnst M:130 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE cnst M:131 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: -999 -999 J: 46 70 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip --> SST[Y=0:50N at AV4,D=1]
- reading SST M:130 dset: 1 I: 131 170 J: 46 70 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ reading SST M:131 dset: 1 I: 131 170 J: 46 70 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
doing --> SST[Y=0:50N at AV4,D=1]
VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
FILENAME : coads_climatology.cdf
@@ -44853,12 +44924,12 @@ load a
allocate dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
strip regrid on X: TAUX --> (G022) @XACT
rdstride TAUX C: 9 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
- nulrgd TAUX M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- -DELETE TAUX M:146 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
+ nulrgd TAUX M:149 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
+ -DELETE TAUX M:137 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
can mem/all
- -DELETE A M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- -DELETE TAUX M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
+ -DELETE A M:137 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
+ -DELETE TAUX M:149 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
def grid/like=taux agrid
dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
@@ -44880,13 +44951,13 @@ load a
allocate dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
strip regrid on X: TAUX --> (G022) @XACT
rdstride TAUX C: 9 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
- nulrgd TAUX M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- -DELETE TAUX M:151 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
+ nulrgd TAUX M:137 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
+ -DELETE TAUX M:149 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
can mem/all
- -DELETE TAUX M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- -DELETE A M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
+ -DELETE TAUX M:137 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
+ -DELETE A M:149 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
can data/all
dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
@@ -44926,20 +44997,20 @@ use bn_strides
load var
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 3 4 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- reading VAR M:151 dset: 1 I: 3 4 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ reading VAR M:149 dset: 1 I: 3 4 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
LIST VAR[i=2:4:2]
dealloc dynamic grid AGRID XAX1_4 YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ strip regrid on X: VAR --> (G017) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M:147 dset: 1 I: 1 2 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:146 dset: 1 I: 2 4 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ nulrgd VAR M:144 dset: 1 I: 1 2 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M:137 dset: 1 I: 2 4 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X
FILENAME : bn_strides.cdf
@@ -44954,19 +45025,19 @@ LIST VAR[i=2:4:2]
2 / 2: 1222.00 1224.00
3 / 3: 1232.00 1234.00
LIST VAR[i=2:4:2,j=1:3:2]
- dealloc dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M:147 dset: 1 I: 1 2 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ -DELETE VAR M:144 dset: 1 I: 1 2 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ strip regrid on X: VAR --> (G017) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M:146 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:147 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ nulrgd VAR M:137 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M:144 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X, 2 delta on Y
FILENAME : bn_strides.cdf
@@ -44981,25 +45052,25 @@ LIST VAR[i=2:4:2,j=1:3:2]
1 / 1: 1212.00 1214.00
3 / 2: 1232.00 1234.00
CANC MEM/ALL
- -DELETE VAR M:146 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:151 dset: 1 I: 3 4 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M:137 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M:149 dset: 1 I: 3 4 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
! modulo requests cannot use strides (as this example shows)
set axis/modulo XAX1_4
LIST VAR[I=1:10:3,j=1,k=1,l=1] ! 1, 4, 7(3), 10(2)
- dealloc dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ strip regrid on X: VAR --> (G017) @XACT
strip moduloing VAR on X axis: 1 10 dset: 1
- reading VAR M:151 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ reading VAR M:149 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
doing moduloing VAR on X axis: 1 4 dset: 1
- regrid VAR M:147 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ regrid VAR M:144 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 3 delta on X
FILENAME : bn_strides.cdf
@@ -45014,24 +45085,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1] ! 1, 4, 7(3), 10(2)
7 / 3: 1113.00
10 / 4: 1112.00
cancel axis/modulo XAX1_4
- -DELETE VAR M:146 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:147 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:151 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M:137 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M:144 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M:149 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
! strides applied to more than one axis need special attention in IS_REGRID
LIST VAR[i=2:4:2,j=1:3:2]
- dealloc dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
+ strip regrid on X: VAR --> (G017) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:151 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
+ nulrgd VAR M:144 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M:149 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X, 2 delta on Y
FILENAME : bn_strides.cdf
@@ -45046,19 +45117,19 @@ LIST VAR[i=2:4:2,j=1:3:2]
1 / 1: 1212.00 1214.00
3 / 2: 1232.00 1234.00
LIST VAR[i=2:6:2,j=1:5:2]
- dealloc dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
+ -DELETE VAR M:144 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
- strip regrid on X: VAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
+ strip regrid on X: VAR --> (G017) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd VAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE VAR M:147 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
+ nulrgd VAR M:149 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE VAR M:144 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X, 2 delta on Y
FILENAME : bn_strides.cdf
@@ -45075,24 +45146,24 @@ LIST VAR[i=2:6:2,j=1:5:2]
! test sub-region selection on strides axis
let a = bigvar[i=1:40:5]
- dealloc dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
- -DELETE VAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
+ -DELETE VAR M:149 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
list/j=1/k=1/l=1 a[i=3:5]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 3 6 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
eval A C: 7 dset: 1 I: 3 5 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
+ strip regrid on X: BIGVAR --> (G017) @XACT
rdstride BIGVAR C: 10 dset: 1 I: 1 36 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M:147 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M:151 dset: 1 I: 1 36 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
+ nulrgd BIGVAR M:144 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M:149 dset: 1 I: 1 36 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
VARIABLE : BIGVAR[I=1:40:5]
FILENAME : bn_strides.cdf
SUBSET : 3 points (X)
@@ -45104,26 +45175,26 @@ list/j=1/k=1/l=1 a[i=3:5]
11 / 3: 1121.00
16 / 4: 1126.00
21 / 5: 1131.00
- -DELETE A M:146 dset: 1 I: 1 1 J: 3 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M:137 dset: 1 I: 1 1 J: 3 5 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
+ allocate dynamic grid (G002) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
+ dealloc dynamic grid (G002) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
+ allocate dynamic grid (G002) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 3 6 J: 2 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
- strip regrid on Y: A --> (G001) @XACT
+ allocate dynamic grid (G002) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
+ strip regrid on Y: A --> (G002) @XACT
eval A C: 8 dset: 1 I: 3 5 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
+ strip regrid on X: BIGVAR --> (G017) @XACT
rdstride BIGVAR C: 11 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 74 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M:146 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- regrid A M:136 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
+ nulrgd BIGVAR M:136 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M:137 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
+ regrid A M:152 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G002) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
VARIABLE : BIGVAR[I=1:40:5]
regrid: 2 delta on Y
FILENAME : bn_strides.cdf
@@ -45140,27 +45211,27 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
! ****** unequally spaced points on parent axis
cancel mem/all
- -DELETE BIGVAR M: 74 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M:136 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M:146 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M:147 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M:151 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M:136 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M:137 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M:144 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M:149 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M:152 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
! basic strides
LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
+ dealloc dynamic grid (G002) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ allocate dynamic grid (G002) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ dealloc dynamic grid (G002) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ allocate dynamic grid (G002) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 3 6 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- strip regrid on X: UNEVENVAR --> (G001) @XACT
+ allocate dynamic grid (G002) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ strip regrid on X: UNEVENVAR --> (G002) @XACT
rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd UNE-NVAR M:147 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M:151 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ nulrgd UNE-NVAR M:149 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M:152 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G002) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X
FILENAME : bn_strides.cdf
@@ -45178,19 +45249,19 @@ set region/i=3:6/j=2:4/k=1:2/l=1
use/order=yx bn_strides
list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- -DELETE UNE-NVAR M:147 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G002) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ -DELETE UNE-NVAR M:149 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
+ allocate dynamic grid (G002) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
+ dealloc dynamic grid (G002) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
+ allocate dynamic grid (G002) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G001) @XACT
+ allocate dynamic grid (G002) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
+ strip regrid on X: BIGVAR --> (G002) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M:151 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M:147 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
+ nulrgd BIGVAR M:152 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M:149 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G002) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
VARIABLE : VAR
regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
FILENAME : bn_strides.cdf
@@ -45207,23 +45278,23 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
4 / 2: 1343.00 1345.00 1347.00 1349.00
6 / 3: 1363.00 1365.00 1367.00 1369.00
canc data/all
- -DELETE BIGVAR M:151 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
+ -DELETE BIGVAR M:152 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G002) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
use/order=zyx bn_strides
list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
- strip regrid on X: BIGVAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
+ strip regrid on X: BIGVAR --> (G017) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M:147 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M:151 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
+ nulrgd BIGVAR M:149 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M:152 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
VARIABLE : VAR
regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
FILENAME : bn_strides.cdf
@@ -45240,8 +45311,8 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
4 / 2: 1343.00 1543.00 1743.00 1943.00
6 / 3: 1363.00 1563.00 1763.00 1963.00
canc data/all
- -DELETE BIGVAR M:147 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
+ -DELETE BIGVAR M:149 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX043) (AX042) (AX040) TAX1_10 NORMAL NORMAL
! now with xytvar
cancel region
@@ -45250,16 +45321,16 @@ use bn_strides
list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
- dealloc dynamic grid (G014) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
- allocate dynamic grid (G014) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
+ allocate dynamic grid (G017) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
+ allocate dynamic grid (G017) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
+ strip regrid on X: XYTVAR --> (G017) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M:151 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M:147 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
+ nulrgd XYTVAR M:152 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M:149 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 deg on X, 2 deg on Y, 2 day on T
FILENAME : bn_strides.cdf
@@ -45277,8 +45348,8 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
use/order=tyx bn_strides
show grid xytvar
- dealloc dynamic grid (G014) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
- -DELETE XYTVAR M:151 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX042) (AX043) NORMAL (AX041) NORMAL NORMAL
+ -DELETE XYTVAR M:152 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
GRID EGRID
name axis # pts start end
@@ -45292,16 +45363,16 @@ show grid xytvar
list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
dealloc dynamic grid EGRID XLON YLAT NORMAL TTIME NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
- dealloc dynamic grid (G014) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
- allocate dynamic grid (G014) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
+ allocate dynamic grid (G017) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
+ allocate dynamic grid (G017) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
+ strip regrid on X: XYTVAR --> (G017) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M:147 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M:151 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
+ nulrgd XYTVAR M:149 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M:152 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 deg on X, 2 deg on Y, 2 day on T
FILENAME : bn_strides.cdf
@@ -45317,8 +45388,8 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
4N / 2: 5041.00 5043.00 5045.00 5047.00
2N / 1: 5021.00 5023.00 5025.00 5027.00
canc data/all
- -DELETE XYTVAR M:147 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
+ -DELETE XYTVAR M:149 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX043) (AX042) NORMAL (AX040) NORMAL NORMAL
! map into Z instead of T
use/order=zxy bn_strides
@@ -45337,16 +45408,16 @@ show grid xytvar
list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
dealloc dynamic grid GPC5 TTIME XLON YLAT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G017) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G017) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 2 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
- strip regrid on X: XYTVAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
+ strip regrid on X: XYTVAR --> (G017) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M:151 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M:147 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
+ nulrgd XYTVAR M:152 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M:149 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 day on X, 2 deg on Y, 2 deg on Z
FILENAME : bn_strides.cdf
@@ -45362,8 +45433,8 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
144 / 2: 1054.00 3054.00 5054.00 7054.00
146 / 3: 1056.00 3056.00 5056.00 7056.00
canc data/all
- -DELETE XYTVAR M:151 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
+ -DELETE XYTVAR M:152 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX042) (AX043) (AX041) NORMAL NORMAL NORMAL
cancel region; set region/l=1
@@ -45372,16 +45443,16 @@ cancel region; set region/l=1
use/order=yx bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
+ strip regrid on X: MIDVAR --> (G017) @XACT
rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M:151 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
+ nulrgd MIDVAR M:149 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M:152 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
FILENAME : bn_strides.cdf
@@ -45396,25 +45467,25 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 1512.00 1552.00
5 / 2: 1515.00 1555.00
canc data/all
- -DELETE MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
+ -DELETE MIDVAR M:149 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX043) (AX042) (AX040) TAX1_6 NORMAL NORMAL
use/order=-yx bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
+ strip regrid on X: MIDVAR --> (G017) @XACT
strip reversing MIDVAR on Y axis: 2 5 dset: 1
rdstride MIDVAR C: 8 dset: 1 I: 1 5 J: 5 8 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
doing reversing MIDVAR on Y axis: 2 5 dset: 1
- -DELETE MIDVAR M:147 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M:151 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
+ -DELETE MIDVAR M:149 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M:149 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M:152 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
FILENAME : bn_strides.cdf
@@ -45429,23 +45500,23 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 1518.00 1558.00
5 / 2: 1515.00 1555.00
canc data/all
- -DELETE MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
+ -DELETE MIDVAR M:149 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX042) (AX043) (AX041) TAX1_6 NORMAL NORMAL
! reference output
use/order=tyx bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
+ strip regrid on X: MIDVAR --> (G017) @XACT
rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M:147 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
+ nulrgd MIDVAR M:152 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M:149 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
FILENAME : bn_strides.cdf
@@ -45460,26 +45531,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 1125.00 5125.00
5 / 2: 1155.00 5155.00
canc data/all
- -DELETE MIDVAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
+ -DELETE MIDVAR M:152 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
use/order=-t-y-x bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
+ strip regrid on X: MIDVAR --> (G017) @XACT
strip reversing MIDVAR on X axis: 1 5 dset: 1
rdstride MIDVAR C: 8 dset: 1 I: 2 6 J: 4 7 K: 3 5 L: 7 7 M: -999 -999 N: -999 -999
doing reversing MIDVAR on X axis: 1 5 dset: 1
- -DELETE MIDVAR M:151 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M:147 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
+ -DELETE MIDVAR M:152 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M:152 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M:149 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
FILENAME : bn_strides.cdf
@@ -45494,23 +45565,23 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 6775.00 2775.00
5 / 2: 6745.00 2745.00
canc data/all
- -DELETE MIDVAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
+ -DELETE MIDVAR M:152 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
! reference output
use/order=txy bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
+ strip regrid on X: MIDVAR --> (G017) @XACT
rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M:151 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
+ nulrgd MIDVAR M:149 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M:152 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
FILENAME : bn_strides.cdf
@@ -45525,25 +45596,25 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 1152.00 5152.00
5 / 2: 1155.00 5155.00
canc data/all
- -DELETE MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
+ -DELETE MIDVAR M:149 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX043) (AX042) (AX040) ZAX1_7 NORMAL NORMAL
use/order=-t-x-y bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
+ dealloc dynamic grid (G017) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
+ allocate dynamic grid (G017) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
- strip regrid on X: MIDVAR --> (G014) @XACT
+ allocate dynamic grid (G017) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
+ strip regrid on X: MIDVAR --> (G017) @XACT
strip reversing MIDVAR on Y axis: 2 5 dset: 1
rdstride MIDVAR C: 8 dset: 1 I: 2 6 J: 5 8 K: 3 5 L: 7 7 M: -999 -999 N: -999 -999
doing reversing MIDVAR on Y axis: 2 5 dset: 1
- -DELETE MIDVAR M:147 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M:151 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
+ -DELETE MIDVAR M:149 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M:149 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M:152 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
FILENAME : bn_strides.cdf
@@ -45558,8 +45629,8 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 6758.00 2758.00
5 / 2: 6755.00 2755.00
canc data/all
- -DELETE MIDVAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
+ -DELETE MIDVAR M:149 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G017) (AX042) (AX043) (AX041) ZAX1_7 NORMAL NORMAL
! DEFINE AXIS can get the axis too long (bug 673)
GO bn_reset
@@ -48035,7 +48106,7 @@ show data/full
NCEP Ocean Analysis
name title I J K L M N
TEMP temperature 1:1 1:1 1:19 1:1 ... ...
- degree_Celsius on grid GGH1 with 1.E-34 & NaN for missing data
+ degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
X=139.8E:140.8E Y=0.5S:0.5N Z=0:375
time range: FEB-1980
@@ -48310,11 +48381,11 @@ ppl list labels
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET (beta) Ver.6.93
+ LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET (beta) Ver.6.951
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
LAB 2 8.000E+00 7.100E+00 0.060 0 SYSTEM @ASNOAA/PMEL TMAP
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS29-OCT-2014 16:03:42
+ LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS09-NOV-2015 15:03:13
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
LAB 4 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLONGITUDE : 179E
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
@@ -48943,9 +49014,9 @@ GO err580_irreg_bounds.jnl
! the bounds seem to be ignored; axis is seen as regular.
! Bug 1160 reported by Andrew.
-yes? def ax/t/edge time = {0,1,3}
-yes? let a = t[gt=time]
-yes? show grid/t a
+def ax/t/edge time = {0,1,3}
+let a = t[gt=time]
+show grid/t a
GRID (G011)
name axis # pts start end
normal X
@@ -48959,17 +49030,17 @@ yes? show grid/t a
1> 0.5 1 0
2> 2 2 1
-yes? save/clob/file=a.nc a
+save/clob/file=a.nc a
sp echo "err580_irreg_bounds.jnl --- " >> all_ncdump.out
-yes? sp ncdump a.nc >> all_ncdump.out
+sp ncdump a.nc >> all_ncdump.out
can data/all
can var/all
can mem
! T axis was marked as regular
-yes? use a.nc
-yes? show grid/t a
+use a.nc
+show grid/t a
GRID GSI1
name axis # pts start end
normal X
@@ -49591,7 +49662,7 @@ GO bn_long_revision_num.jnl
! ferret version
sh sym FERRET_VERSION
-FERRET_VERSION = "6.93"
+FERRET_VERSION = "6.951"
! history attribute
let a = 12
@@ -49609,7 +49680,7 @@ LAB1 = "X : 0.5 to 314.5"
! show commands without an argument, lists version number at the top
sho command
- Commands in Program FERRET (beta) version6.93:
+ Commands in Program FERRET (beta) version6.951:
SET
SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE
SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
@@ -49621,7 +49692,7 @@ sho command
/TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
SET MODE/LAST
SET MOVI/FILE/COMPRESS/LASER/START
- SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/SIGMA
+ SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/LAYERZ
/CURVILIN
SET GRID/SAVE/RESTORE
SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
@@ -49640,7 +49711,7 @@ sho command
/HIDDEN
SHOW MODE/ALL
SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
/CURVILIN
SHOW COMMANDS/ALL
SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -49664,7 +49735,7 @@ sho command
CANCEL MODE
CANCEL MOVIE/ALL
CANCEL VIEWPORT
- CANCEL VARIABLE/ALL/DATASET/SIGMA/CURVILIN
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
CANCEL GRID
CANCEL ATTRIBUT/OUTPUT/DATA
@@ -49681,11 +49752,11 @@ sho command
/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS/CLOBBER
/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT/XCHUNK
/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN/OUTTYPE
- /CURVILIN/SIGMA
+ /CURVILIN/LAYERZ
PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/VS/SYMBOL
/NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE/NOAXES/STEP
/DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG/GRATICUL/NOKEY
- /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING
+ /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
GO/HELP
HELP
LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
@@ -49701,7 +49772,8 @@ sho command
DEFINE SYMBOL
DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
EXIT/COMMAND/LOOP/SCRIPT/PROMPT/PROGRAM/CYCLE/TOPYTHON
MESSAGE/CONTINUE/QUIET/JOURNAL/ERROR/OUTFILE/APPEND/CLOBBER
VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/ASPECT/NOLABEL
@@ -49728,6 +49800,7 @@ sho command
/NOLABEL/LEVELS/LINE/COLOR/PALETTE/XLIMITS/YLIMITS/TITLE/THICKNES
/NOAXES/PATTERN/FILL/KEY/NOKEY/AXES/HLIMITS/VLIMITS/HLOG/VLOG
/HGRATICU/VGRATICU/GRATICUL/MODULO
+ ANNOTATE/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
Use SHOW ALIAS to see alternative command names
@@ -49745,7 +49818,7 @@ go ptest
PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
sh sym win_title
-WIN_TITLE = "29-Oct-14:16:02"
+WIN_TITLE = "9-Nov-15:15:02"
set win/title="set the title"
sho sym win_title
@@ -49763,7 +49836,7 @@ sho sym win_title
WIN_TITLE = "_"
set win/title="($session_date):($session_time)"
- !-> set win/title="29-Oct-14:16:02"
+ !-> set win/title=" 9-Nov-15:15:02"
! If the date or time starts with a blank then we get an extra
! underscore in the window title. Evaluating the symbols into
@@ -49772,16 +49845,16 @@ set win/title="($session_date):($session_time)"
! If so substitute another string.
DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 29-Oct-14
+ !-> DEFINE SYMBOL the_date = 9-Nov-15
DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 16:02
+ !-> DEFINE SYMBOL the_time = 15:02
SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="29-Oct-14:16:02"
+ !-> SET WIN/TITLE="9-Nov-15:15:02"
can win/all
set win/new
sh sym win_title
-WIN_TITLE = "29-Oct-14:16:02"
+WIN_TITLE = "9-Nov-15:15:02"
GO bn_reset
cancel mode verify
@@ -50570,6 +50643,7 @@ let a = temp.missing_value
list a
VARIABLE : TEMP.MISSING_VALUE
FILENAME : ocean_atlas_temp.cdf
+ X : 1
-1.000E+34
use ocean_atlas_temp
@@ -50577,6 +50651,7 @@ let s = temp.units
list s
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
can data/all
@@ -50588,6 +50663,7 @@ list s
VARIABLE : ..REMARK
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
"Generated by oar3d "
go bn_reset
@@ -50606,6 +50682,7 @@ let anames = sst.attnames
list nat
VARIABLE : SST.NATTRS
FILENAME : coads_climatology.cdf
+ X : 1
5.000
list anames
VARIABLE : SST.ATTNAMES
@@ -50623,6 +50700,7 @@ let cnames = sst.dimnames
list nd
VARIABLE : SST.NDIMS
FILENAME : coads_climatology.cdf
+ X : 1
3.000
list cnames
VARIABLE : SST.DIMNAMES
@@ -50642,6 +50720,7 @@ let nd = ..ndims
let vnames = ..varnames
list/d=1 nv, nd
DATA SET: ./gt4d011.cdf
+ X: 1
Column 1: NV is ..NVARS
Column 2: ND is ..NDIMS
NV ND
@@ -50667,6 +50746,7 @@ let vnames = ..varnames
list/d=coads_climatology vnames
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
list/d=gt4d011 vnames
VARIABLE : ..VARNAMES
@@ -50703,27 +50783,28 @@ list vnames
3 / 3:"TIME4"
list lnames
VARIABLE : ..DIMNAMES[D=gt4d011]
- SUBSET : 20 points (X)
- 1 / 1:"PSXT1"
- 2 / 2:"PSYT1"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT1"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME11"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT1"
+ 3 / 3:"PSYT1"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT1"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME11"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
can var/all
can data/all
@@ -50736,6 +50817,7 @@ list v
VARIABLE : ..NDIMS
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
3.000
let na = ..nattrs
@@ -50743,6 +50825,7 @@ list na
VARIABLE : ..NATTRS
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
31.00
let gnames = ..attnames
@@ -50806,12 +50889,14 @@ let nat = temp.nattrs
list nat
VARIABLE : TEMP.NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
5.000
list (`temp,return=xaxis`).nattrs
!-> list (XAX_LEV9421_380).nattrs
VARIABLE : (XAX_LEV9421_380).NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
4.000
use gt4d011
@@ -50845,15 +50930,18 @@ let a = temp.units
list/d=3 a
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list temp.units[d=3]
VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list/d=3 temp.history
VARIABLE : TEMP.HISTORY
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"From ocean_atlas_monthly"
can data/all
@@ -50913,6 +51001,7 @@ let a= broiled.acl
list a
VARIABLE : BROILED.ACL
FILENAME : test0.nc
+ X : 1
17000.
let a= broiled.acf
@@ -50974,6 +51063,7 @@ use gt4d011
list ..nvars
VARIABLE : ..NVARS
FILENAME : gt4d011.cdf
+ X : 1
12.00
use coads_climatology
@@ -50981,10 +51071,12 @@ use coads_climatology
list/d=1 ..nvars
VARIABLE : ..NVARS
FILENAME : gt4d011.cdf
+ X : 1
12.00
list/d=2 ..nvars
VARIABLE : ..NVARS
FILENAME : coads_climatology.cdf
+ X : 1
1.000
sh data
@@ -51007,6 +51099,7 @@ sh data
list/d=2 ..varnames
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
list/d=2 ..dimnames
@@ -51019,49 +51112,55 @@ list/d=2 ..dimnames
list/d=1 ..dimnames
VARIABLE : ..DIMNAMES
FILENAME : gt4d011.cdf
- SUBSET : 20 points (X)
- 1 / 1:"PSXT1"
- 2 / 2:"PSYT1"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT1"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME11"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT1"
+ 3 / 3:"PSYT1"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT1"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME11"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
list/d=1 ..nattrs
VARIABLE : ..NATTRS
FILENAME : gt4d011.cdf
+ X : 1
1.000
list/d=1 ..attnames
VARIABLE : ..ATTNAMES
FILENAME : gt4d011.cdf
+ X : 1
"history"
list/d=1 ..ndims
VARIABLE : ..NDIMS
FILENAME : gt4d011.cdf
+ X : 1
21.00
list/d=2 ..ndims
VARIABLE : ..NDIMS
FILENAME : coads_climatology.cdf
+ X : 1
3.000
list ..nvars[d=1]
VARIABLE : ..NVARS[D=gt4d011]
FILENAME : gt4d011.cdf
+ X : 1
12.00
sh var
Created by DEFINE VARIABLE:
@@ -51088,6 +51187,7 @@ set data 1
list/d=2 pp
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
go bn_reset
@@ -51177,10 +51277,12 @@ use coads_climatology
list (coadsx).units
VARIABLE : (COADSX).UNITS
FILENAME : coads_climatology.cdf
+ X : 1
"degrees_east"
list (coadsx).modulo
VARIABLE : (COADSX).MODULO
FILENAME : coads_climatology.cdf
+ X : 1
" "
sho att/all (coadsx)
attributes for dataset: ./coads_climatology.cdf
@@ -51269,6 +51371,7 @@ list (`sst,return=xaxis`).nattrs[d=2]
!-> list (COADSX).nattrs[d=2]
VARIABLE : (COADSX).NATTRS[D=coads_climatology]
FILENAME : coads_climatology.cdf
+ X : 1
5.000
! using dimension names from the linked list structure
@@ -51288,6 +51391,7 @@ list (`cnames[i=1]`).nattrs
!-> list (COADSX).nattrs
VARIABLE : (COADSX).NATTRS
FILENAME : coads_climatology.cdf
+ X : 1
5.000
! Intentional errors.
@@ -51430,6 +51534,7 @@ let pq = temp.pp
list pq
VARIABLE : TEMP.PP
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"PP now has some text."
! set an attribute when the variable is not in the default dataset.
@@ -52867,11 +52972,11 @@ set view left; shade/x=120e:80w sst ! works correctly
set view right; fill/x=120e:80w sst
sh sym ppl$xmin, ppl$xmax ! should be 131, 279
-PPL$XMIN = "131.0"
-PPL$XMAX = "281.0"
+PPL$XMIN = "131.0000"
+PPL$XMAX = "281.0000"
sh sym ppl$xlow, ppl$xhigh ! should be 165, 259
-PPL$XHIGH = "165.0"
-PPL$XLOW = "259.0"
+PPL$XHIGH = "165.0000"
+PPL$XLOW = "259.0000"
sp rm -f err581_subspanx_fill_bug.nc
@@ -52953,8 +53058,6 @@ GO err581_if_conditional.jnl
! This should skip to the end, not trying to execute anything inside the IF 0 THEN
if 0 then
- endif
- endif
endif
say "finished the if block"
@@ -52989,7 +53092,6 @@ let key_flag = 0
IF `($xend) GT 360` THEN
!-> IF 0 THEN
- ENDIF
ENDIF
let dxymin = 0.20
if `dxymin lt 0.12` then
@@ -53004,7 +53106,6 @@ endif
IF `($xend) GT 360` THEN
!-> IF 0 THEN
- ENDIF
ELSE
say "this is the ELSE that should execute"
this is the ELSE that should execute
@@ -53101,10 +53202,8 @@ ELIF ($refmap_type%|xline>1|*>0%) THEN ! ELSE IF "xline"
!-> ELIF 1 THEN
define region/default/dy=$6"-30:30|1>-30:30|*>-20:20"/dx=$6"0:0|1>0:0|2>0:0|*>`max(-($ref_dx),-50)`:`min(($ref_dx),50)`" band
!-> define region/default/dy=-20:20/dx=-50:50 band
-
ELIF ($refmap_type%|yline>1|*>0%) THEN ! ELSE IF "yline"
!-> ELIF 0 THEN
- ENDIF
ENDIF
! init the land mask data set
set data coads_climatology
@@ -53143,17 +53242,12 @@ IF ($refmap_type%|box>1|*>0) THEN ! IF "box"
!-> IF 0 THEN
ELIF ($refmap_type%|xline>1|*>0) THEN ! ELSE IF "xline"
!-> ELIF 1 THEN
-
IF ($refmap_ycompress) THEN
!-> IF 0 THEN
ENDIF
-
plot/over/vs/nolab/line=8/i=1:2 refmap_xrng, refmap_ymid+(i-i)
-
ELIF ($refmap_type%|yline>1|*>0) THEN ! ELSE IF "yline"
!-> ELIF 0 THEN
- ENDIF
- ENDIF
ENDIF
@@ -53434,8 +53528,8 @@ GO err581_define_1pt_bounds.jnl
! again, and even that result is now very wrong!! Same results in both v5.81
! for Linux and v5.70 for Irix.
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: -2 to 6
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -53445,8 +53539,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
3 / 2: 2.000 4.000 3.000
5 / 3: 4.000 6.000 5.000
-yes? def ax/x/bounds xax = {0},{-2,2}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0},{-2,2}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: 0
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -53454,8 +53548,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
XBOXLO XBOXHI X
I / *: -2.000 2.000 0.0000
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: -2 to 6
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -53531,9 +53625,9 @@ go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle
! And, from Andrew with other reversed axes.
-yes? ppl cross 1
-yes? plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-yes? poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
+ppl cross 1
+plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
+poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
ppl cross 0
@@ -53705,12 +53799,10 @@ GO err600_if_comments_tab.jnl
! thrown off and we got an error about an invalid ENDIF
IF 0 THEN
- ENDIF
ENDIF
! Here there is a tab before the ! which throws off the parsing...
IF 0 THEN
- ENDIF
ENDIF
! err600_set_var_title.jnl
@@ -53862,6 +53954,7 @@ list ..dimnames
list ..varnames
VARIABLE : ..VARNAMES
FILENAME : levitus_climatology.cdf
+ X : 1
"TEMP"
! err600_nc_des_order.jnl
@@ -53939,8 +54032,13 @@ use coads_climatology
def sym timeax = `sst,return=taxis`
!-> def sym timeax = TIME9
-show att/all ($timeax)
- !-> show att/all TIME9
+show att/all (($timeax))
+ !-> show att/all (TIME9)
+ attributes for dataset: ./coads_climatology.cdf
+ (TIME9).units = hour since 0000-01-01 00:00:00
+ (TIME9).time_origin = 1-JAN-0000 00:00:00
+ (TIME9).modulo =
+ (TIME9).orig_file_axname = TIME
show axis ($timeax)
!-> show axis TIME9
name axis # pts start end
@@ -53949,8 +54047,12 @@ T0 = 01-JAN-0000 00:00:00
Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
define axis/t0=1-jan-0001/t=1:3:1/unit=months ($timeax)
!-> define axis/t0=1-jan-0001/t=1:3:1/unit=months TIME9
-show att/all ($timeax)
- !-> show att/all TIME9
+show att/all (($timeax))
+ !-> show att/all (TIME9)
+ attributes for dataset: ./coads_climatology.cdf
+ (TIME9).units = MONTHS since 1-JAN-0001
+ (TIME9).time_origin = 1-JAN-0001
+ (TIME9).orig_file_axname = TIME
show axis ($timeax)
!-> show axis TIME9
name axis # pts start end
@@ -53964,8 +54066,12 @@ can data/all
use gt4d011
def sym timeax = `temp,return=taxis`
!-> def sym timeax = TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
+show att/all (($timeax))
+ !-> show att/all (TIME11)
+ attributes for dataset: ./gt4d011.cdf
+ (TIME11).units = hour since 1980-01-14 14:00:00
+ (TIME11).time_origin = 14-JAN-1980 14:00:00
+ (TIME11).orig_file_axname = TIME1
show axis ($timeax)
!-> show axis TIME11
name axis # pts start end
@@ -53975,8 +54081,14 @@ T0 = 14-JAN-1980 14:00:00
set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days ($timeax)
!-> set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
+show att/all (($timeax))
+ !-> show att/all (TIME11)
+ attributes for dataset: ./gt4d011.cdf
+ (TIME11).units = days since 1-JAN-1900
+ (TIME11).time_origin = 1-JAN-1900
+ (TIME11).orig_file_axname = TIME1
+ (TIME11).calendar = NOLEAP
+ (TIME11).modulo =
show axis ($timeax)
!-> show axis TIME11
name axis # pts start end
@@ -53994,8 +54106,12 @@ def sym timeax = `temp,return=taxis`
!-> def sym timeax = TIME11
def sym zax = `temp,return=zaxis`
!-> def sym zax = PSZT1
-show att/all ($timeax)
- !-> show att/all TIME11
+show att/all (($timeax))
+ !-> show att/all (TIME11)
+ attributes for dataset: ./gt4d011.cdf
+ (TIME11).units = hour since 1980-01-14 14:00:00
+ (TIME11).time_origin = 14-JAN-1980 14:00:00
+ (TIME11).orig_file_axname = TIME1
show axis ($zax)
!-> show axis PSZT1
name axis # pts start end
@@ -54004,8 +54120,12 @@ show axis ($zax)
cancel axis/modulo ($timeax)
!-> cancel axis/modulo TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
+show att/all (($timeax))
+ !-> show att/all (TIME11)
+ attributes for dataset: ./gt4d011.cdf
+ (TIME11).units = hour since 1980-01-14 14:00:00
+ (TIME11).time_origin = 14-JAN-1980 14:00:00
+ (TIME11).orig_file_axname = TIME1
show axis ($timeax)
!-> show axis TIME11
name axis # pts start end
@@ -54014,8 +54134,14 @@ T0 = 14-JAN-1980 14:00:00
Axis span (to cell edges) = 3650
cancel axis/depth ($zax)
!-> cancel axis/depth PSZT1
-show att/all ($zax)
- !-> show att/all PSZT1
+show att/all (($zax))
+ !-> show att/all (PSZT1)
+ attributes for dataset: ./gt4d011.cdf
+ (PSZT1).units = METERS
+ (PSZT1).positive = up
+ (PSZT1).point_spacing = uneven
+ (PSZT1).edges = PSZTedges
+ (PSZT1).orig_file_axname = PSZT
show axis ($zax)
!-> show axis PSZT1
name axis # pts start end
@@ -54083,7 +54209,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(PSXT191_108) DOUBLE units CHAR 12 T degrees_east
@@ -54128,7 +54254,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(PSXT191_108) DOUBLE units CHAR 12 T degrees_east
@@ -55648,6 +55774,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
LABWID(STR,HT)
LANCZOS(A,F1,F2,N)
LIST_VALUE_XML(tag,value,cdata_flag,outputfile)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
LSL_LOWPASS(A,cutoff_period,filter_span)
MINMAX(A)
MINUTES24(formatted time)
@@ -55660,6 +55787,7 @@ SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
@@ -55757,16 +55885,27 @@ EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
STR_MASK(STRING,MASK,--)
SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
SEPARATE(A,Rowsize,FixLongitudes)
+TIME_REFORMAT(A)
+FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
+CURV_TO_RECT_FSU(V,mapping)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SAMPLE_FAST_I_STR(S,Indices)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
ADD_9(A,B,C,D,E,F,G,H,I)
APPENDE(ENS,VAR)
AVET(A)
DATES(Offsets)
EFSTRINGS(--)
+EXPND_BY_LEN(var,len,nx)
FACTORIAL(A)
+FC_ISUBSET(index_list,lengths,nx,FullData)
FFT_AMP(A)
FFTA_SAMPLE(A)
FFT_PHAS(A)
LENGTH_OF_STRINGS(--)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
MAXSTRLEN(A)
PASS_THRU(A)
PASS_THRU_STRING(A)
@@ -55774,6 +55913,12 @@ PERCENT_GOOD_T(A)
PICK_A_STRING(A,N)
PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
SAMPLE_FAST_I(V,Indices)
+SCAT2GRID_MASK_BIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS,MASK)
+SCAT2GRID_MASK_MINMAX_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS,MASK)
+SCAT2GRID_MASK_NBIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS,MASK)
+SCAT2GRID_MASK_STD_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS,MASK)
+SCAT2GRID_MINMAX_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
+SCAT2GRID_STD_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
SEPARATE(A,Rowsize,FixLongitudes)
SEPARATE_STR(A,Rowsize,FixLongitudes)
STORAGE(A)
@@ -55784,6 +55929,8 @@ STRINGS_AS_ARGS(S1,S2,NCHAR)
STR_MISSING(MASK,STR,REPL)
STUDENT_T_CUTOFF(P,nf)
SUBTRACT(A,B)
+TRACKS2GRID_MASK_AVE_XYT(VAR,XPTS,YPTS,TPTS,ICRUISE,XAXPTS,YAXPTS,TAXPTS,MASK)
+TRACKS2GRID_STD_XYT(VARIABLE,XPTS,YPTS,TPTS,ICRUISE,XAXPTS,YAXPTS,TAXPTS)
WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
@@ -55926,15 +56073,15 @@ def axis/y=0.000001:0.000002/npoints=100 yax
let a = x[gx=xax] + y[gy=yax]
shade a; sh sym xax*; ; sh sym yax*
XAXIS_REVERSED = "0"
-XAXIS_MIN = "3.99494949E-06"
+XAXIS_MIN = "3.994949495E-06"
XAXL = "4.737"
XAXNAME = "XIRREG_SUBSPAN"
-XAXIS_MAX = "5.0050505E-06"
+XAXIS_MAX = "5.005050505E-06"
XAXNAM = "(XAX_LEV9421_380)"
YAXIS_REVERSED = "0"
YAXL = "4.737"
-YAXIS_MIN = "9.94949495E-07"
-YAXIS_MAX = "2.0050505E-06"
+YAXIS_MIN = "9.949494949E-07"
+YAXIS_MAX = "2.005050505E-06"
YAXNAM = "YAX_LEV94"
@@ -55969,27 +56116,27 @@ USE ocean_atlas_temp
SET VIEW upper
FILL temp[L=2,X=180:200,Y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
! See the larger region used by default for SHADE
SHADE temp[L=2,X=180:200,y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.00000"
-XAXIS_MAX = "200.0000"
-YAXIS_MIN = "30.000000"
-YAXIS_MAX = "44.00000"
+XAXIS_MIN = "180.000000"
+XAXIS_MAX = "200.000000"
+YAXIS_MIN = "30.0000000"
+YAXIS_MAX = "44.0000000"
! SHADE/TRIM trims the region as for a FILL plot
SET VIEW lower
SHADE/TRIM temp[L=2,X=180:200,y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
GO bn_reset
@@ -56434,27 +56581,28 @@ list vnames
4 / 4:"TIME3"
list lnames
VARIABLE : ..DIMNAMES[D=gt4d011]
- SUBSET : 20 points (X)
- 1 / 1:"PSXT1"
- 2 / 2:"PSYT1"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT1"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME11"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT1"
+ 3 / 3:"PSYT1"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT1"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME11"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
go bn_reset
cancel mode verify
@@ -56469,12 +56617,14 @@ let nat = temp.nattrs
list nat
VARIABLE : TEMP.NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
5.000000
list (`temp,return=xaxis`)[d=2].nattrs
!-> list (XAX_LEV9421_380)[d=2].nattrs
- VARIABLE : (XAX_LEV9421_380)[d=ocean_atlas_temp].NATTRS
+ VARIABLE : (XAX_LEV9421_380)[D=ocean_atlas_temp].NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
4.000000
use gt4d011
@@ -56509,14 +56659,17 @@ let a = temp.units
list/d=3 a
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list temp[d=3].units
- VARIABLE : TEMP[d=ocean_atlas_temp].UNITS
+ VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
FILENAME : gt4d011.cdf
+ X : 1
"Deg C"
list/d=3 temp.history
VARIABLE : TEMP.HISTORY
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"From ocean_atlas_monthly"
can data/all
@@ -56529,7 +56682,7 @@ use coads_climatology
! But this does
let a = sst[d=1].dimnames
list a[i=2]
- VARIABLE : SST[d=coads_climatology].DIMNAMES
+ VARIABLE : SST[D=coads_climatology].DIMNAMES
FILENAME : coads_climatology.cdf
X : 2
"COADSY"
@@ -56545,16 +56698,18 @@ use coads_climatology
define symbol ferret_plot_var sst[x=30:39,y=-90:90]
list ($ferret_plot_var).long_name
!-> list sst[x=30:39,y=-90:90].long_name
- VARIABLE : SST.LONG_NAME
+ VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
FILENAME : coads_climatology.cdf
+ X : 1
"SEA SURFACE TEMPERATURE"
use coads_climatology
define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
list ($ferret_plot_var).units
!-> list sst[d=1,x=30:35,y=-90:90].units
- VARIABLE : SST[d=coads_climatology].UNITS
+ VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
FILENAME : coads_climatology.cdf
+ X : 1
"Deg C"
use coads_climatology
@@ -56562,8 +56717,9 @@ use levitus_climatology
define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
list ($ferret_plot_var).history
!-> list sst[d=1,x=30:35,y=-90:90].history
- VARIABLE : SST[d=coads_climatology].HISTORY
+ VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
FILENAME : levitus_climatology.cdf
+ X : 1
"From coads_climatology"
go bn_reset
@@ -56579,13 +56735,15 @@ def sym yaxnam "(`temp[d=1],return=yaxis`)"
list ($xaxnam)[d=1].modulo
!-> list (XAXLEVITR1_160)[d=1].modulo
- VARIABLE : (XAXLEVITR1_160)[d=levitus_climatology].MODULO
+ VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
FILENAME : coads_climatology.cdf
+ X : 1
" "
list ($yaxnam).point_spacing[d=1]
!-> list (YAXLEVITR1_90).point_spacing[d=1]
VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
FILENAME : levitus_climatology.cdf
+ X : 1
"even"
@@ -56783,12 +56941,12 @@ GO err611_exit_if.jnl
! This only in v6.11 GFDL release bug
! Fixed in xeq_exit.F
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b !the following fails to say "hello"
go a
if 1 then
exit/script
@@ -56857,7 +57015,7 @@ ppl list labels
plot/x=56e:100e/y=10 sst[L=1]
plot/over/x=56e:100e/y=40 sst[L=1]
ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)
+
@ASLONGITUDE
@ASDeg C
@@ -57069,12 +57227,12 @@ GO err611_exit_if.jnl
! This only in v6.11 GFDL release bug
! Fixed in xeq_exit.F
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b !the following fails to say "hello"
go a
if 1 then
exit/script
@@ -59501,7 +59659,7 @@ sh command list
/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS/CLOBBER
/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT/XCHUNK
/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN/OUTTYPE
- /CURVILIN/SIGMA
+ /CURVILIN/LAYERZ
define axis/x=1:100:1/units=deg x100
define axis/t=1-jan-2000:31-jan-2000:1/units=days/t0=31-dec-1999 t31
let a = x[gx=x100] + t[gt=t31]
@@ -59994,10 +60152,10 @@ SH GRID am
GO bn_clock_syms
SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "33.7209"
-CLOCK_SECS = "66.472"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "16:04:05"
+DELTA_CPU = "34.0998"
+CLOCK_SECS = "67.807"
+CURRENT_DATE = " 9-Nov-15"
+CURRENT_TIME = "15:03:37"
! test special symbols DELTA_CPU, CLOCK_SECS
!
! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60006,8 +60164,8 @@ CURRENT_TIME = "16:04:05"
use gt4d011
shade/k=1 temp[L=@ave]
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.036995"
-CLOCK_SECS = "66.57"
+DELTA_CPU = "0.034994"
+CLOCK_SECS = "67.964"
repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=1
@@ -60021,60 +60179,60 @@ repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=9
!-> REPEAT: K=10
let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.259961
+ !-> DEFINE VARIABLE ten_plots = 0.246963
sh sym DELTA_CPU, CLOCK_SECS
DELTA_CPU = "0"
-CLOCK_SECS = "67.499"
+CLOCK_SECS = "69.306"
let sumclock = 0
let sumcpu = 0
sh sym CLOCK_SECS
-CLOCK_SECS = "67.499"
+CLOCK_SECS = "69.307"
repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);\
let sumcpu =`sumcpu + dt`)
!-> repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);let sumcpu =`sumcpu + dt`)
!-> REPEAT: K=1
- !-> DEFINE VARIABLE dt = 0.029995
- !-> DEFINE VARIABLE sumcpu =0.029995
+ !-> DEFINE VARIABLE dt = 0.024996
+ !-> DEFINE VARIABLE sumcpu =0.024996
!-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.036994
- !-> DEFINE VARIABLE sumcpu =0.066989
+ !-> DEFINE VARIABLE dt = 0.032995
+ !-> DEFINE VARIABLE sumcpu =0.057991
!-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.040994
- !-> DEFINE VARIABLE sumcpu =0.107983
+ !-> DEFINE VARIABLE dt = 0.030995
+ !-> DEFINE VARIABLE sumcpu =0.088986
!-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.041994
- !-> DEFINE VARIABLE sumcpu =0.149977
+ !-> DEFINE VARIABLE dt = 0.033995
+ !-> DEFINE VARIABLE sumcpu =0.122981
!-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.041993
- !-> DEFINE VARIABLE sumcpu =0.19197
+ !-> DEFINE VARIABLE dt = 0.034995
+ !-> DEFINE VARIABLE sumcpu =0.157976
!-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.043994
- !-> DEFINE VARIABLE sumcpu =0.235964
+ !-> DEFINE VARIABLE dt = 0.032995
+ !-> DEFINE VARIABLE sumcpu =0.190971
!-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.034994
- !-> DEFINE VARIABLE sumcpu =0.270958
+ !-> DEFINE VARIABLE dt = 0.036994
+ !-> DEFINE VARIABLE sumcpu =0.227965
!-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.036995
- !-> DEFINE VARIABLE sumcpu =0.307953
+ !-> DEFINE VARIABLE dt = 0.039994
+ !-> DEFINE VARIABLE sumcpu =0.267959
!-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.035995
- !-> DEFINE VARIABLE sumcpu =0.343948
+ !-> DEFINE VARIABLE dt = 0.028996
+ !-> DEFINE VARIABLE sumcpu =0.296955
!-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.041993
- !-> DEFINE VARIABLE sumcpu =0.385941
+ !-> DEFINE VARIABLE dt = 0.037993
+ !-> DEFINE VARIABLE sumcpu =0.334948
say `sumcpu`
- !-> MESSAGE/CONTINUE 0.385941
-0.385941
+ !-> MESSAGE/CONTINUE 0.334948
+0.334948
sh sym CLOCK_SECS
-CLOCK_SECS = "69.286"
+CLOCK_SECS = "71.672"
SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:02"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "16:04:08"
+SESSION_DATE = " 9-Nov-15"
+SESSION_TIME = "15:02"
+CURRENT_DATE = " 9-Nov-15"
+CURRENT_TIME = "15:03:41"
! ******** V6.3 Additions below ***********
@@ -60899,8 +61057,8 @@ say `temp,return=isdepth`
use coads_climatology
say `sst,return=isdepth`
- !-> MESSAGE/CONTINUE NORMAL
-NORMAL
+ !-> MESSAGE/CONTINUE 0
+0
can data 2
@@ -61406,7 +61564,7 @@ plot/over temp[g=u]
strip regrid on X: TEMP --> PS3DU1 @LIN
found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 27 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
+ regrid TEMP M: 20 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 2 dset: 2
setting up plot
PPL plot 754 complete
@@ -61417,27 +61575,27 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
strip regrid on T: TEMP --> XNTERMED @LIN
found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
- regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 18 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 23 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 15 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 18 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 755 complete
plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
dealloc dynamic grid G5DAYG5DAYG5DAYGPSXU PSYU PSZT2 TAX5DAY NORMAL NORMAL
- -DELETE TEMP M: 23 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 15 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
strip regrid on Z: TEMP --> XNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @LIN
found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
- regrid TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 15 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 18 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 15 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 23 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 15 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 18 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 756 complete
plot/over temp[g=u at ave]
@@ -61449,12 +61607,12 @@ plot/over temp[g=u at ave]
strip regrid on X: TEMP --> PS3DU1 @AAV
found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 26 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
+ regrid TEMP M: 18 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 3 168 dset: 2
strip regrid on X: TEMP --> PS3DU1 @AAV
found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 19 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
+ regrid TEMP M: 13 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 2 dset: 2
setting up plot
PPL plot 757 complete
@@ -61465,29 +61623,29 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @AAV
strip regrid on T: TEMP --> XNTERMED @AVE
found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
- regrid TEMP M: 18 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 12 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 17 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 18 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 11 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 12 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 758 complete
plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
dealloc dynamic grid G5DAYG5DAYG5DAYGPSXU PSYU PSZT2 TAX5DAY NORMAL NORMAL
- -DELETE TEMP M: 17 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 11 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
strip regrid on Z: TEMP --> XNTERMED @AVE
strip regrid on T: TEMP --> ZNTERMED @AVE
strip moduloing TEMP on T axis: 2 171 dset: 2
- reading TEMP M: 17 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
+ reading TEMP M: 11 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 168 dset: 2
- regrid TEMP M: 16 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 13 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 16 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 9 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 24 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 9 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 16 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 13 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 9 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 24 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 759 complete
plot/over temp[g=u at asn]
@@ -61498,17 +61656,17 @@ plot/over temp[g=u at asn]
strip moduloing TEMP on T axis: 3 170 dset: 2
strip regrid on X: TEMP --> PS3DU1 @ASN
strip regrid on Y: TEMP --> XNTERMED @ASN
- found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
- regrid TEMP M: 13 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- regrid TEMP M: 14 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 13 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
+ found TEMP M: 12 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
+ regrid TEMP M: 24 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
+ regrid TEMP M: 26 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 24 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 3 168 dset: 2
strip regrid on X: TEMP --> PS3DU1 @ASN
strip regrid on Y: TEMP --> XNTERMED @ASN
- found TEMP M: 17 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- regrid TEMP M: 15 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- regrid TEMP M: 12 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 15 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
+ found TEMP M: 11 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
+ regrid TEMP M: 27 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
+ regrid TEMP M: 22 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 27 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 2 dset: 2
setting up plot
PPL plot 760 complete
@@ -61520,14 +61678,14 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
strip regrid on Y: TEMP --> XNTERMED @ASN
strip regrid on Z: TEMP --> YNTERMED @ASN
strip regrid on T: TEMP --> ZNTERMED @ASN
- reading TEMP M: 15 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ reading TEMP M: 27 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 19 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 19 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 19 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 19 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 761 complete
plot/over temp[g=u,gt=u at ave]
@@ -61538,7 +61696,7 @@ plot/over temp[g=u,gt=u at ave]
allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14 NORMAL NORMAL
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14 NORMAL NORMAL
- found TEMP M: 24 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
+ found TEMP M: 17 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14 NORMAL NORMAL
setting up plot
PPL plot 762 complete
@@ -61548,11 +61706,11 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
strip regrid on T: TEMP --> XNTERMED @AVE
- found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ found TEMP M: 12 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
+ regrid TEMP M: 19 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 25 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 19 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 763 complete
plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
@@ -61562,12 +61720,12 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefg
strip regrid on X: TEMP --> G5_10 @LIN
strip regrid on Z: TEMP --> XNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @AVE
- found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ found TEMP M: 12 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
+ regrid TEMP M: 19 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 19 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 19 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 764 complete
@@ -61577,10 +61735,10 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
strip regrid on T: TEMP --> XNTERMED @ASN
- found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
+ found TEMP M: 12 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
regrid TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 9 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 8 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 765 complete
@@ -62429,7 +62587,7 @@ GO bn_multi_decade
! New default no-small tics for multi-decade plots
! See bug 670
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
+def axis/t="01-JAN-1860":"30-DEC-2300":1/edges/units="years"/cal="360d" simutaxis1
let tvar = t[gt=simutaxis1]*-1E+34
define view/x=0:1/y=0.000:0.125 v1
@@ -62828,7 +62986,7 @@ set var/title=deflate_x30_y30 sst
save/file=nc4_deflate4.nc/clobber/ncformat=4/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
! With /NCFORMAT=3 the other stuff is meaningless. Will see NOTEs
-yes? save/file=nc4_nodeflate3.nc/clobber/ncformat=3/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
+save/file=nc4_nodeflate3.nc/clobber/ncformat=3/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
! --------------------------
! Compare choices of chunking.
@@ -63964,7 +64122,7 @@ list contents
2 / 2:" e.g. yes? GO filename"
3 / 3:" "
4 / 4:" Use "GO/HELP filename" to read documentation in the file to be executed."
- 5 / 5:" *** NOTE: Axis is already regular: MYAXIS"
+ 5 / 5:" *** NOTE: Axis is already regular: MYAXIS"
6 / 6:" **ERROR: variable unknown or not in data set: GARBAGE"
7 / 7:"show grid garbage"
cancel var contents
@@ -64050,9 +64208,9 @@ list contents
VARIABLE : { SPAWN:"cat redirect_journal.txt" }
SUBSET : 47 points (X)
1 / 1:" ! NOAA/PMEL TMAP"
- 2 / 2:" ! FERRET v6.93 (beta)"
- 3 / 3:" ! Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14"
- 4 / 4:" ! 29-Oct-14 16:02 "
+ 2 / 2:" ! FERRET v6.951 (beta)"
+ 3 / 3:" ! Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15"
+ 4 / 4:" ! 9-Nov-15 15:02 "
5 / 5:""
6 / 6:"! "
7 / 7:"!! --- 22. produce some output to stdout and stderr"
@@ -64131,20 +64289,21 @@ variable transforms e.g.SST[T=1-jan:15-mar at DDC]
@SBN binomial smoothed @SMN minimum smoothed
@SWL Welch smoothed @STD standard deviation
@SHN Hanning smoothed @WGT weights for avg,int
- @SPZ Parzen smoothed
+ @SPZ Parzen smoothed @SPX box smooth w/missing
regridding transforms e.g.SST[GX=x5deg at AVE]
code description code description
---- ----------- ---- -----------
- @LIN lin. interp. @MOD modulo ave
- @AVE box avgd @MODVAR modulo var
- @XACT exact match @MODNGD # gd mod pts
- @ASN index assn @MODNBD #bad mod pts
- @VAR variance @MODSUM modulo sum
- @MIN minimum @MODMIN modulo min
- @MAX maximum @MODMAX modulo max
- @SUM sum @NRST nearst coord
- @NGD # gd pts
+ @LIN lin. interp. @MODVAR modulo var
+ @AVE box avgd @MODNGD # gd mod pts
+ @XACT exact match @MODNBD #bad mod pts
+ @ASN index assn @MODSUM modulo sum
+ @VAR variance @MODMIN modulo min
+ @MIN minimum @MODMAX modulo max
+ @MAX maximum @NRST nearst coord
+ @SUM sum @BIN binning
+ @NGD # gd pts @NBIN #good in bin
+ @MOD modulo ave
auxiliary varible regridding transforms e.g.TEMP[GZ(depth)=zax at AVE]
code description code description
@@ -65157,8 +65316,7 @@ sh dat/att
. history CHAR 28 T FERRET V6.7 (beta) 25-Mar-11
Conventions CHAR 6 F CF-1.0
nco_input_file_nINT 1 F 1000
- nco_input_file_lCHAR 2048 F
- b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2. [...]
+ nco_input_file_lCHAR 2760 F b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.00 [...]
(LON273_289) DOUBLE long_name CHAR 9 T longitude
units CHAR 12 T degrees_east
@@ -65339,7 +65497,6 @@ sh dat
name title I J K L M N
TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
TEMP_MM TEMP - TEMPAVE 1:18 1:22 1:10 1:25 ... ...
- (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
@@ -65429,12 +65586,12 @@ list/L=15:20 tax_month(t[gt=tvar],tvar), tax_yearfrac(t[gt=tvar],tvar)
Column 1: TAX_MONTH(T[GT=TVAR],TVAR)
Column 2: TAX_YEARFRAC(T[GT=TVAR],TVAR)
(C001,V002) (C001,V005)
-17-MAR / 15: 3.000 0.2082
-16-APR / 16: 4.000 0.2904
-17-MAY / 17: 5.000 0.3753
-16-JUN / 18: 6.000 0.4575
-17-JUL / 19: 7.000 0.5425
-16-AUG / 20: 8.000 0.6247
+17-MAR / 15: 3.000 0.2092
+16-APR / 16: 4.000 0.2926
+17-MAY / 17: 5.000 0.3760
+16-JUN / 18: 6.000 0.4594
+17-JUL / 19: 7.000 0.5428
+16-AUG / 20: 8.000 0.6262
! the following is an error for a modulo time axis
list/L=15:20 tax_year(t[gt=tvar],tvar)
list tax_units(tvar)
@@ -65479,7 +65636,6 @@ sh dat
name title I J K L M N
TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
TEMP_MM TEMP - TEMPAVE 1:18 1:22 1:10 1:25 ... ...
- (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
GO bn_reset
@@ -65875,8 +66031,8 @@ list/l=1:7 TAX_yearfrac(t[gt=var], var)
01-JAN-2010 00:00:10 / 3: 0.002740
01-JAN-2010 00:00:15 / 4: 0.002740
01-JAN-2010 00:00:20 / 5: 0.002740
- 01-JAN-2010 00:00:25 / 6: 0.002740
- 01-JAN-2010 00:00:30 / 7: 0.002740
+ 01-JAN-2010 00:00:25 / 6: 0.002741
+ 01-JAN-2010 00:00:30 / 7: 0.002741
! This example from Patrick B. Output of TAX_dayfrac repeats.
! We need to just return an error mesage. Cant represent 2.5 years
@@ -66521,40 +66677,40 @@ can mode ver
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.925
-randu2_randn2 0.939
-randu2_randn2 0.712
-randu2_randn2 0.070
-randu2_randn2 0.981
+randu2_randn2 0.698
+randu2_randn2 0.004
+randu2_randn2 0.263
+randu2_randn2 0.050
+randu2_randn2 0.647
VARIABLE : RANDU2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.285
-randu2_randn2 0.165
-randu2_randn2 0.236
-randu2_randn2 0.633
-randu2_randn2 0.135
+randu2_randn2 0.231
+randu2_randn2 0.022
+randu2_randn2 0.486
+randu2_randn2 0.959
+randu2_randn2 0.529
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.690
-randu2_randn2 0.225
-randu2_randn2 0.822
-randu2_randn2 0.494
-randu2_randn2 0.818
-randu2_randn2 0.578
+randu2_randn2 0.054
+randu2_randn2 0.096
+randu2_randn2 0.334
+randu2_randn2 0.803
+randu2_randn2 0.120
+randu2_randn2 0.387
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.195
-randu2_randn2 0.170
-randu2_randn2 0.390
-randu2_randn2 0.112
-randu2_randn2 0.716
-randu2_randn2 0.341
+randu2_randn2 0.017
+randu2_randn2 0.417
+randu2_randn2 0.625
+randu2_randn2 0.468
+randu2_randn2 0.622
+randu2_randn2 0.578
VARIABLE : RANDU2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66579,40 +66735,40 @@ randu2_randn2 0.638
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 2.118
-randu2_randn2 3.132
-randu2_randn2 -1.682
-randu2_randn2 1.951
-randu2_randn2 -1.088
+randu2_randn2 0.058
+randu2_randn2 -1.268
+randu2_randn2 -0.014
+randu2_randn2 -1.909
+randu2_randn2 -0.431
VARIABLE : RANDN2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 -1.474
-randu2_randn2 -1.168
-randu2_randn2 1.070
-randu2_randn2 -1.126
-randu2_randn2 -0.350
+randu2_randn2 0.015
+randu2_randn2 -0.666
+randu2_randn2 -0.638
+randu2_randn2 0.732
+randu2_randn2 -0.106
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.451
-randu2_randn2 2.386
-randu2_randn2 1.507
-randu2_randn2 -1.407
-randu2_randn2 -1.841
-randu2_randn2 1.406
+randu2_randn2 -2.999
+randu2_randn2 -1.598
+randu2_randn2 1.522
+randu2_randn2 0.850
+randu2_randn2 0.534
+randu2_randn2 -1.625
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.293
-randu2_randn2 -0.300
-randu2_randn2 -0.661
-randu2_randn2 0.210
-randu2_randn2 1.113
-randu2_randn2 -0.920
+randu2_randn2 -0.917
+randu2_randn2 0.174
+randu2_randn2 -0.347
+randu2_randn2 1.455
+randu2_randn2 0.283
+randu2_randn2 -0.360
VARIABLE : RANDN2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66637,14 +66793,14 @@ randu2_randn2 -1.279
Column 1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
Column 2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
Column 3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2 1.173 1.545 0.424
-randu2_randn2 1.545 1.173 0.424
-randu2_randn2 0.424 0.424 0.224
-randu2_randn2 -0.186 -0.186 0.322
-randu2_randn2 -0.762 -0.186 0.322
-randu2_randn2 -0.144 -0.144 0.322
-randu2_randn2 0.224 0.224 0.322
-randu2_randn2 0.322 0.322 0.322
+randu2_randn2 1.869 1.869 0.990
+randu2_randn2 0.990 1.210 0.990
+randu2_randn2 1.210 0.990 -0.142
+randu2_randn2 -0.142 -0.142 0.369
+randu2_randn2 -0.174 -0.161 0.369
+randu2_randn2 -0.161 -0.174 0.369
+randu2_randn2 -0.249 -0.161 0.369
+randu2_randn2 0.369 0.369 0.369
GO bn_reset
cancel mode verify
@@ -68254,7 +68410,7 @@ LIST v[@ypt]
LIST v[@ept]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 by 3 points (X-Y-F)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
---- N:1 F: 1
@@ -68272,7 +68428,7 @@ LIST v[@ept]
LIST v[@fpt]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 by 3 points (X-Y-E)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
---- M:1 E: 1
@@ -68292,8 +68448,8 @@ LIST v[@fpt]
LIST v[@ept, at fpt] !XY
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-Y)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -68303,7 +68459,7 @@ LIST v[@ypt, at fpt] !XE
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-E)
Y : 1.05 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -68313,7 +68469,7 @@ LIST v[@ypt, at ept] !XF
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-F)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -68323,7 +68479,7 @@ LIST v[@xpt, at fpt] !YE
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (Y-E)
X : 1.5 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1122.00 1132.00
@@ -68333,7 +68489,7 @@ LIST v[@xpt, at ept] !YF
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (Y-F)
X : 1.5 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1122.00 1132.00
@@ -68356,7 +68512,7 @@ LIST/ORDER=F v[@xpt, at ypt, at ept] ! F
SUBSET : 3 points (F)
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1112.50 2112.50 3112.50
@@ -68365,7 +68521,7 @@ LIST/ORDER=E v[@xpt, at ypt, at fpt] ! E
SUBSET : 3 points (E)
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1212.50 1312.50
@@ -68373,8 +68529,8 @@ LIST/ORDER=Y v[@xpt, at ept, at fpt] ! Y
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 points (Y)
X : 1.5 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1122.50 1132.50
@@ -68382,8 +68538,8 @@ LIST/ORDER=X v[@ypt, at ept, at fpt] ! X
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 points (X)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1113.50 1114.50
@@ -68393,8 +68549,8 @@ LIST v[@xpt, at ypt, at ept, at fpt]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1113.00
GO bn_reset
@@ -68467,7 +68623,7 @@ list veven
SUBSET : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
4 6 8
2 3 4
- ---- N:2 F: 05-JAN-1980 00:00:00
+ ---- N:2 F: 1980
---- M:2 E: 4
4 / 2: 2222.00 3222.00 4222.00
6 / 3: 2322.00 3322.00 4322.00
@@ -68480,7 +68636,7 @@ list veven
4 / 2: 2242.00 3242.00 4242.00
6 / 3: 2342.00 3342.00 4342.00
8 / 4: 2442.00 3442.00 4442.00
- ---- N:3 F: 07-JAN-1980 00:00:00
+ ---- N:3 F: 1980
---- M:2 E: 4
4 / 2: 2223.00 3223.00 4223.00
6 / 3: 2323.00 3323.00 4323.00
@@ -68493,7 +68649,7 @@ list veven
4 / 2: 2243.00 3243.00 4243.00
6 / 3: 2343.00 3343.00 4343.00
8 / 4: 2443.00 3443.00 4443.00
- ---- N:4 F: 09-JAN-1980 00:00:00
+ ---- N:4 F: 1980
---- M:2 E: 4
4 / 2: 2224.00 3224.00 4224.00
6 / 3: 2324.00 3324.00 4324.00
@@ -68511,7 +68667,7 @@ list v1234
SUBSET : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
5 7 9
3 4 5
- ---- N:3 F: 06-JAN-1980 00:00:00
+ ---- N:3 F: 1980
---- M:3 E: 5
5 / 3: 2777.50 3777.50 4777.50
7 / 4: 2877.50 3877.50 4877.50
@@ -68524,7 +68680,7 @@ list v1234
5 / 3: 2797.50 3797.50 4797.50
7 / 4: 2897.50 3897.50 4897.50
9 / 5: 2997.50 3997.50 4997.50
- ---- N:4 F: 08-JAN-1980 00:00:00
+ ---- N:4 F: 1980
---- M:3 E: 5
5 / 3: 2778.50 3778.50 4778.50
7 / 4: 2878.50 3878.50 4878.50
@@ -68537,7 +68693,7 @@ list v1234
5 / 3: 2798.50 3798.50 4798.50
7 / 4: 2898.50 3898.50 4898.50
9 / 5: 2998.50 3998.50 4998.50
- ---- N:5 F: 10-JAN-1980 00:00:00
+ ---- N:5 F: 1980
---- M:3 E: 5
5 / 3: 2779.50 3779.50 4779.50
7 / 4: 2879.50 3879.50 4879.50
@@ -68557,8 +68713,8 @@ stat veven
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68581,8 +68737,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68597,8 +68753,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68614,8 +68770,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68630,8 +68786,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68647,8 +68803,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68663,8 +68819,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68680,8 +68836,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68696,8 +68852,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68713,8 +68869,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68729,8 +68885,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68746,8 +68902,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68762,8 +68918,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68779,8 +68935,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68795,8 +68951,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68812,8 +68968,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68828,8 +68984,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68845,8 +69001,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68861,8 +69017,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68878,8 +69034,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68894,8 +69050,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68911,8 +69067,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68927,8 +69083,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68944,8 +69100,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68960,8 +69116,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68977,8 +69133,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68993,8 +69149,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69010,8 +69166,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69026,8 +69182,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69043,8 +69199,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69059,8 +69215,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69084,8 +69240,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69100,8 +69256,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69117,8 +69273,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69133,8 +69289,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69150,8 +69306,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69166,8 +69322,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69183,8 +69339,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69199,8 +69355,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69216,8 +69372,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69232,8 +69388,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69249,8 +69405,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69265,8 +69421,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69282,8 +69438,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69298,8 +69454,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69315,8 +69471,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69331,8 +69487,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69348,8 +69504,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69364,8 +69520,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69381,8 +69537,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69397,8 +69553,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69414,8 +69570,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69430,8 +69586,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69447,8 +69603,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69463,8 +69619,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69480,8 +69636,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69496,8 +69652,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69513,8 +69669,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69529,8 +69685,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69546,8 +69702,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69562,8 +69718,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -70647,7 +70803,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
DEPTH (m): 5
TIME: 21-JAN-1982 00:00 (interpolated)
E: 1 to 2
- FORECAST: 23-JAN-1982 00:00:00 to 24-JAN-1982 00:0
+ FORECAST: 1982 to 1982
DATA SET: ./gtsa056_1_ef.nc
Total # of data points: 120 (5*6*1*1*2*2)
@@ -70679,7 +70835,7 @@ LIST temp[g=g5day at ave]
TIME : 21-JAN-1982 00:00 (interpolated)
129.5W 128.5W 127.5W 126.5W 125.5W
101 102 103 104 105
- ---- N:1 F: 23-JAN-1982 00:00:00
+ ---- N:1 F: 1982
---- M:1 E: 1
1.5N / 46: 32.3553 32.3552 32.5032 32.8652 33.3285
1.17N / 45: 32.1766 32.1710 32.2834 32.5970 33.0244
@@ -70694,7 +70850,7 @@ LIST temp[g=g5day at ave]
0.5N / 43: 37.9306 37.8902 37.8887 38.0374 38.3408
0.17N / 42: 37.8944 37.8343 37.7825 37.8263 38.0336
0.17S / 41: 37.9538 37.8657 37.7716 37.7285 37.8282
- ---- N:2 F: 23-JAN-1982 20:00:00
+ ---- N:2 F: 1982
---- M:1 E: 1
1.5N / 46: 37.7553 37.7552 37.9032 38.2652 38.7285
1.17N / 45: 37.5766 37.5710 37.6834 37.9970 38.4244
@@ -70728,7 +70884,7 @@ LIST temp[g=g5day]
TIME : 21-JAN-1982 00:00 (interpolated)
129.5W 128.5W 127.5W 126.5W 125.5W
101 102 103 104 105
- ---- N:1 F: 23-JAN-1982 00:00:00
+ ---- N:1 F: 1982
---- M:1 E: 1
1.5N / 46: 34.3553 34.3552 34.5032 34.8652 35.3285
1.17N / 45: 34.1766 34.1710 34.2834 34.5970 35.0244
@@ -70743,7 +70899,7 @@ LIST temp[g=g5day]
0.5N / 43: 39.9306 39.8902 39.8887 40.0374 40.3408
0.17N / 42: 39.8944 39.8343 39.7825 39.8263 40.0336
0.17S / 41: 39.9538 39.8657 39.7716 39.7285 39.8282
- ---- N:2 F: 23-JAN-1982 20:00:00
+ ---- N:2 F: 1982
---- M:1 E: 1
1.5N / 46: 36.0220 36.0219 36.1698 36.5318 36.9952
1.17N / 45: 35.8433 35.8377 35.9501 36.2637 36.6910
@@ -70762,6 +70918,9 @@ LIST temp[g=g5day]
! unspecified regions
SET MODE IGNORE ! V.5 change
canc reg
+ dealloc dynamic grid G5DAY PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
+ -DELETE TEMP M:102 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: -999 -999 M: 1 2 N: 1 2
+ -DELETE TEMP M:104 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
set reg/n=1:3/t=21-JAN-1982/z=5 ! x,y,e unspecified
canc reg
@@ -70778,12 +70937,9 @@ set window/size=.5/aspect=.4 1
use gtsa056_1_ef !kob 4/99
set region/x=180E/y=0/f=23-JAN-1982/t=21-JAN-1982/z=5
plot temp
- dealloc dynamic grid G5DAY PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M:102 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: -999 -999 M: 1 2 N: 1 2
- -DELETE TEMP M:104 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GGR1 PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
strip --> EX#1[Y=0 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
@@ -70792,7 +70948,7 @@ plot temp
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[Y=0 at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- doing --> TEMP[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
setting up plot
PPL plot 863 complete
plot/over temp[g=g5day]
@@ -70804,7 +70960,7 @@ plot/over temp[g=g5day]
eval EX#1 C: 7 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
strip regrid on F: TEMP --> G5DAY @LIN
reading TEMP M: 90 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- regrid TEMP M: 58 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ regrid TEMP M: 80 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[Y=0 at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
@@ -70812,18 +70968,18 @@ setting up plot
PPL plot 864 complete
plot/over temp[g=g5day at ave]
dealloc dynamic grid G5DAY PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M: 58 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M: 72 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
- -DELETE TEMP M: 80 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M: 88 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M: 64 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
+ -DELETE TEMP M: 80 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M: 82 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M: 96 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
strip --> EX#1[Y=0 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 7 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
strip regrid on F: TEMP --> G5DAY @AVE
- reading TEMP M: 88 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- regrid TEMP M: 80 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ reading TEMP M: 96 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ regrid TEMP M: 82 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[Y=0 at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
@@ -70831,18 +70987,18 @@ setting up plot
PPL plot 865 complete
plot/over temp[g=g5day at asn]
dealloc dynamic grid G5DAY PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M: 58 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M: 72 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M: 80 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M: 94 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
+ -DELETE TEMP M: 64 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M: 80 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M: 82 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M: 88 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
strip --> EX#1[Y=0 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 7 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
strip regrid on F: TEMP --> G5DAY @ASN
- reading TEMP M: 94 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- regrid TEMP M: 80 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ reading TEMP M: 88 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ regrid TEMP M: 82 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[Y=0 at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
@@ -70853,20 +71009,20 @@ PPL plot 866 complete
set region/x=180/y=20s:20n/e=2/t=21-JAN-1982/z=5
plot temp
dealloc dynamic grid G5DAY PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M: 58 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M: 72 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M: 64 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
-DELETE TEMP M: 78 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
- -DELETE TEMP M: 80 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M: 80 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M: 82 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GGR1 PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 7 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
- reading TEMP M: 80 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
+ reading TEMP M: 82 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- doing --> TEMP[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
setting up plot
PPL plot 867 complete
plot/over temp[g=g5day]
@@ -70884,8 +71040,8 @@ setting up plot
PPL plot 868 complete
plot/over temp[g=g5day at ave]
dealloc dynamic grid G5DAY PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M: 74 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
- -DELETE TEMP M: 82 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ -DELETE TEMP M: 70 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
+ -DELETE TEMP M: 74 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
-DELETE TEMP M: 98 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
@@ -70893,23 +71049,23 @@ plot/over temp[g=g5day at ave]
eval EX#1 C: 6 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
strip regrid on F: TEMP --> G5DAY @AVE
reading TEMP M: 98 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- regrid TEMP M: 82 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ regrid TEMP M: 74 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
setting up plot
PPL plot 869 complete
plot/over temp[g=g5day at asn]
dealloc dynamic grid G5DAY PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M: 70 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
- -DELETE TEMP M: 74 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- -DELETE TEMP M: 82 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ -DELETE TEMP M: 66 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
+ -DELETE TEMP M: 70 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ -DELETE TEMP M: 74 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 6 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
strip regrid on F: TEMP --> G5DAY @ASN
- reading TEMP M: 82 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- regrid TEMP M: 74 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ reading TEMP M: 74 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ regrid TEMP M: 70 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
setting up plot
@@ -70917,6 +71073,10 @@ PPL plot 870 complete
set mode/last interp
cancel region
+ dealloc dynamic grid G5DAY PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
+ -DELETE TEMP M: 62 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
+ -DELETE TEMP M: 66 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ -DELETE TEMP M: 70 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
! test 2D regrid
define axis/e=1.1:2.1:1 eoffset
@@ -70934,10 +71094,6 @@ let a1 = _e[ge=e1pt]+_f[gf=f1pt]
let a2 = _e[ge=e2pt]+_f[gf=f2pt]
list a1[ge=eoffset at ave, gf=fax4day at ave]
- dealloc dynamic grid G5DAY PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M: 66 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
- -DELETE TEMP M: 70 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- -DELETE TEMP M: 74 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G087) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
@@ -70954,16 +71110,16 @@ list a1[ge=eoffset at ave, gf=fax4day at ave]
strip regrid on F: A1 --> ENTERMED @AVE
eval A1 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- pseudo _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
+ pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
- -DELETE _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
+ pseudo _F M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
+ -DELETE _F M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- -DELETE _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
+ -DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- regrid A1 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
- regrid A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A1 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
+ regrid A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
+ regrid A1 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
dealloc dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
regrid: 1 delta on E at AVE, 96 hour on F at AVE
@@ -70988,7 +71144,7 @@ list a1[ge=eoffset at ave, gf=fax4day at ave]
16-MAR-1982 00 / 16: .... ....
list a1[ge=eoffset at sum, gf=fax4day at sum]
dealloc dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A1 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
dealloc dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
@@ -70999,16 +71155,16 @@ list a1[ge=eoffset at sum, gf=fax4day at sum]
strip regrid on F: A1 --> ENTERMED @SUM
eval A1 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
+ pseudo _E M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
- -DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
+ pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
+ -DELETE _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- -DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
+ -DELETE _E M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- regrid A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
- regrid A1 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
+ regrid A1 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
+ regrid A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A1 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
dealloc dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
regrid: 1 delta on E at SUM, 96 hour on F at SUM
@@ -71033,7 +71189,7 @@ list a1[ge=eoffset at sum, gf=fax4day at sum]
16-MAR-1982 00 / 16: .... ....
list a1[ge=eoffset at var, gf=fax4day at var]
dealloc dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A1 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
dealloc dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
@@ -71044,16 +71200,16 @@ list a1[ge=eoffset at var, gf=fax4day at var]
strip regrid on F: A1 --> ENTERMED @VAR
eval A1 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- pseudo _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
+ pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
- -DELETE _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
+ pseudo _F M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
+ -DELETE _F M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- -DELETE _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
+ -DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- regrid A1 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
- regrid A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A1 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
+ regrid A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
+ regrid A1 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
dealloc dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
VARIABLE : Variance of _E[GE=E1PT]+_F[GF=F1PT]
regrid: 1 delta on E at VAR, 96 hour on F at VAR
@@ -71079,7 +71235,7 @@ list a1[ge=eoffset at var, gf=fax4day at var]
list a2[ge=eoffset at ave, gf=fax4day at ave]
dealloc dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A1 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A1 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A2 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
@@ -71096,16 +71252,16 @@ list a2[ge=eoffset at ave, gf=fax4day at ave]
strip regrid on F: A2 --> ENTERMED @AVE
eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ pseudo _E M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- -DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
+ pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
+ -DELETE _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- -DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE _E M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
+ regrid A2 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
regrid A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- regrid A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A2 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
regrid: 1 delta on E at AVE, 96 hour on F at AVE
@@ -71130,7 +71286,7 @@ list a2[ge=eoffset at ave, gf=fax4day at ave]
16-MAR-1982 00 / 16: .... ....
list a2[ge=eoffset at sum, gf=fax4day at sum]
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
@@ -71141,16 +71297,16 @@ list a2[ge=eoffset at sum, gf=fax4day at sum]
strip regrid on F: A2 --> ENTERMED @SUM
eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- pseudo _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- -DELETE _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
+ pseudo _F M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
+ -DELETE _F M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- -DELETE _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- regrid A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
regrid A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ regrid A2 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
regrid: 1 delta on E at SUM, 96 hour on F at SUM
@@ -71175,7 +71331,7 @@ list a2[ge=eoffset at sum, gf=fax4day at sum]
16-MAR-1982 00 / 16: .... ....
list a2[ge=eoffset at var, gf=fax4day at var]
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A2 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
@@ -71186,16 +71342,16 @@ list a2[ge=eoffset at var, gf=fax4day at var]
strip regrid on F: A2 --> ENTERMED @VAR
eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ pseudo _E M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- -DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
+ pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
+ -DELETE _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- -DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE _E M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
+ regrid A2 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
regrid A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- regrid A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A2 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
VARIABLE : Variance of _E[GE=E2PT]+_F[GF=F2PT]
regrid: 1 delta on E at VAR, 96 hour on F at VAR
@@ -71223,14 +71379,14 @@ list a2[ge=eoffset at var, gf=fax4day at var]
let a1 = _e[ge=e1pt]
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
-DELETE A2 M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
+ -DELETE A2 M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
-DELETE A2 M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
- -DELETE A2 M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
dealloc dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL E2PT F2PT
- -DELETE A1 M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
- -DELETE A1 M: 64 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
- -DELETE A1 M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
+ -DELETE A1 M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
+ -DELETE A1 M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
+ -DELETE A1 M: 72 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
dealloc dynamic grid (G087) NORMAL NORMAL NORMAL NORMAL E1PT F1PT
let a2 = _e[ge=e2pt]
let a4 = _e[ge=e4pt]
@@ -71249,9 +71405,9 @@ list a1[ge=eoffset at max]
strip regrid on E: A1 --> (G092) @MAX
eval A1 C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
allocate dynamic grid (G087) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- pseudo _E M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
+ pseudo _E M: 72 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
dealloc dynamic grid (G087) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- regrid A1 M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ regrid A1 M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
VARIABLE : _E[GE=E1PT]
regrid: 1 delta on E at MAX
@@ -71259,9 +71415,9 @@ list a1[ge=eoffset at max]
1.1 / 1: ....
2.1 / 2: 2.50000
list a2[ge=eoffset at max]
- -DELETE _E M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
+ -DELETE _E M: 72 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
dealloc dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A1 M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE A1 M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A2 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
@@ -71275,9 +71431,9 @@ list a2[ge=eoffset at max]
strip regrid on E: A2 --> (G101) @MAX
eval A2 C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
allocate dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- pseudo _E M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ pseudo _E M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G092) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- regrid A2 M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ regrid A2 M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
VARIABLE : _E[GE=E2PT]
regrid: 1 delta on E at MAX
@@ -71285,9 +71441,9 @@ list a2[ge=eoffset at max]
1.1 / 1: 1.50000
2.1 / 2: 2.50000
list a4[ge=eoffset at max]
- -DELETE _E M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE _E M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A2 M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE A2 M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A4 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
@@ -71301,9 +71457,9 @@ list a4[ge=eoffset at max]
strip regrid on E: A4 --> (G096) @MAX
eval A4 C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- pseudo _E M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
+ pseudo _E M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- regrid A4 M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ regrid A4 M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
VARIABLE : _E[GE=E4PT]
regrid: 1 delta on E at MAX
@@ -71311,9 +71467,9 @@ list a4[ge=eoffset at max]
1.1 / 1: 1.50000
2.1 / 2: 2.50000
list a4[ge=eoffset at min]
- -DELETE _E M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
+ -DELETE _E M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A4 M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE A4 M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
@@ -71323,7 +71479,7 @@ list a4[ge=eoffset at min]
strip regrid on E: A4 --> (G096) @MIN
eval A4 C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- pseudo _E M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
+ pseudo _E M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
regrid A4 M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
@@ -71333,7 +71489,7 @@ list a4[ge=eoffset at min]
1.1 / 1: 1.50000
2.1 / 2: 2.00000
list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
- -DELETE _E M: 56 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
+ -DELETE _E M: 54 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
-DELETE A4 M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -71347,7 +71503,7 @@ list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
allocate dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
pseudo _E M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
dealloc dynamic grid (G101) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- regrid A4 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ regrid A4 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
VARIABLE : _E[GE=E4PT]
regrid: 1 delta on E at SUM
@@ -71362,7 +71518,7 @@ let afcst = _f[gf=eday]
list afcst
-DELETE _E M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A4 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE A4 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid AFCST C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
@@ -71372,7 +71528,7 @@ list afcst
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
eval AFCST C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
- pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
+ pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
VARIABLE : _F[GF=EDAY]
SUBSET : 5 points (FORECAST)
@@ -71393,7 +71549,7 @@ show grid
normal E
EDAY FORECAST 5 r 01-JAN-1990 00:00 05-JAN-1990 00:00
list afcst[gf=ehour at max]
- -DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
+ -DELETE _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
@@ -71404,7 +71560,7 @@ list afcst[gf=ehour at max]
strip regrid on F: AFCST --> (G103) @MAX
eval AFCST C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
- pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
+ pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
regrid AFCST M: 46 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
@@ -71434,7 +71590,7 @@ GO bn_reset
cancel mode verify
GO bn_aggregate_e
! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
+! using the DEFINE DATA/AGGREGATE/E command
! Datasets share sst, but only ens1 has airt.
set mode diag
@@ -71445,7 +71601,7 @@ define data/agg/title fourfiles = ens1, ens3, ens2, ens4
! The grid of SST is known.
show data fourfiles
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -71457,13 +71613,13 @@ list/i=3 sst[T=@ave]
eval EX#1 C: 5 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
strip --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
strip aggregate gathering SST on E axis: 1 4 dset: 5
- reading SST M: 64 dset: 1 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
+ reading SST M:120 dset: 1 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
doing aggregate gathering SST on E axis: 1 1 dset: 1
- reading SST M: 62 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
+ reading SST M:114 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
doing aggregate gathering SST on E axis: 2 2 dset: 3
- reading SST M: 56 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
+ reading SST M:112 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
doing aggregate gathering SST on E axis: 3 3 dset: 2
- reading SST M: 54 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
+ reading SST M:110 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
doing aggregate gathering SST on E axis: 4 4 dset: 4
doing --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
VARIABLE : SST_IN (Deg C)
@@ -71478,8 +71634,8 @@ list/i=3 sst[T=@ave]
3 / 3: 57.026 56.882 55.784 54.913 53.452 51.122 .... .... ....
4 / 4: 114.051 113.765 111.568 109.826 106.903 102.245 .... .... ....
cancel data fourfiles
- -DELETE SST M: 66 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
- -DELETE SST M: 74 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: -999 -999 M: 1 4 N: -999 -999
+ -DELETE SST M:106 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: -999 -999 M: 1 4 N: -999 -999
+ -DELETE SST M:118 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
dealloc dynamic grid (G103) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
! Create airt in the other datasets by LET/D definitions.
@@ -71496,7 +71652,7 @@ define data/agg fourfiles = ens1, ens3, ens2, ens4
allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME13 NORMAL NORMAL
show data fourfiles
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
AIRT AIR TEMPERATURE 1:10 1:9 ... 1:12 1:4 ...
@@ -71509,22 +71665,22 @@ list/i=3 airt[T=@ave]
eval EX#1 C: 5 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
strip aggregate gathering AIRT on E axis: 1 4 dset: 5
- reading AIRT M: 74 dset: 1 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
+ reading AIRT M:118 dset: 1 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
doing aggregate gathering AIRT on E axis: 1 1 dset: 1
eval AIRT C: 9 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- reading SST M: 70 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- constan cnst M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M: 50 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ reading SST M:104 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
+ constan cnst M:102 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE cnst M:102 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing aggregate gathering AIRT on E axis: 2 2 dset: 3
eval AIRT C: 9 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- reading SST M: 50 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- constan cnst M:120 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M:120 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ reading SST M:102 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
+ constan cnst M: 96 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE cnst M: 96 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing aggregate gathering AIRT on E axis: 3 3 dset: 2
eval AIRT C: 9 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- reading SST M:120 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
- constan cnst M:114 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE cnst M:114 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ reading SST M: 96 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: -999 -999 N: -999 -999
+ constan cnst M: 90 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE cnst M: 90 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
doing aggregate gathering AIRT on E axis: 4 4 dset: 4
doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
VARIABLE : AIR TEMPERATURE (DEG C)
@@ -71602,7 +71758,7 @@ define data/agg windy = 1,2
! The grid of the aggregate variables with LET/D is known.
show data windy
currently SET data sets:
- 3> WINDY (default) Ferret-defined Ensemble dataset
+ 3> WINDY (default) Ferret-defined Ensemble aggregation
name title I J K L M N
UWND ZONAL WIND 1:30 1:30 ... 1:12 1:2 ...
VWND MERIDIONAL WIND 1:30 1:30 ... 1:12 1:2 ...
@@ -71635,7 +71791,7 @@ define data/agg windy = 2,1
! The grid of the aggregate variables with LET/D is known.
show data windy
currently SET data sets:
- 3> WINDY (default) Ferret-defined Ensemble dataset
+ 3> WINDY (default) Ferret-defined Ensemble aggregation
name title I J K L M N
UWND ZONAL WIND 1:30 1:30 ... 1:12 1:2 ...
VWND MERIDIONAL WIND 1:30 1:30 ... 1:12 1:2 ...
@@ -71682,7 +71838,8 @@ sh command define
DEFINE SYMBOL
DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
sh command show
SHOW/ALL
SHOW WINDOW/ALL
@@ -71694,7 +71851,7 @@ sh command show
/HIDDEN
SHOW MODE/ALL
SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
/CURVILIN
SHOW COMMANDS/ALL
SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -71715,7 +71872,7 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
! should just show the ensemble set
sh dat
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -71754,7 +71911,7 @@ sh dat/hidden
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 ... ...
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -71797,7 +71954,7 @@ sh dat
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 ... ...
- 5> MY_ENS (default) Ferret-defined Ensemble dataset
+ 5> MY_ENS (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:2 ...
@@ -71826,7 +71983,7 @@ ensemble/HIDE/title="uvars in dset 2" my_ens = 1,2,3,4
! members hidden, showing only ensemble.
sh dat
currently SET data sets:
- 5> MY_ENS (default) Ferret-defined Ensemble dataset
+ 5> MY_ENS (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -71861,15 +72018,15 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
! Shows all the ensembles
sh dat
currently SET data sets:
- 5> FOURFILES Ferret-defined Ensemble dataset
+ 5> FOURFILES Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
- 6> SOME Ferret-defined Ensemble dataset
+ 6> SOME Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:2 ...
- 7> MORE (default) Ferret-defined Ensemble dataset
+ 7> MORE (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:3 ...
@@ -72003,7 +72160,7 @@ list/L=1:8 taux[x=@ave,y=@ave]
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 160 J: 1 100 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
strip --> TAUX[Y=28.84S:51.43N at AV4,D=1]
- reading TAUX M:106 dset: 1 I: 91 108 J: 35 55 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
+ reading TAUX M: 98 dset: 1 I: 91 108 J: 35 55 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
doing --> TAUX[Y=3.5S:3.5N at AV4,D=1]
VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
FILENAME : gt4d011.cdf
@@ -72026,7 +72183,7 @@ list/L=1:8 taux[x=@sum,y=@sum]
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 160 J: 1 100 K: -999 -999 L: 1 8
strip --> TAUX[Y=28.84S:51.43N at SM4,D=1]
- reading TAUX M: 94 dset: 1 I: 91 108 J: 35 55 K: -999 -999 L: 1 8
+ reading TAUX M: 86 dset: 1 I: 91 108 J: 35 55 K: -999 -999 L: 1 8
doing --> TAUX[Y=3.5S:3.5N at SM4,D=1]
VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
FILENAME : gt4d011.cdf
@@ -72426,7 +72583,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72477,7 +72634,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72516,7 +72673,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72555,7 +72712,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72586,7 +72743,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72618,7 +72775,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72679,7 +72836,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72724,7 +72881,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72779,7 +72936,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72815,7 +72972,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72851,7 +73008,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72887,7 +73044,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72919,7 +73076,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -73149,7 +73306,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
@@ -73181,7 +73338,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
@@ -73222,7 +73379,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -73260,7 +73417,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -73285,7 +73442,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) INT units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -73310,7 +73467,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -73526,11 +73683,11 @@ GO err684_tax_fcns
list/L=3:7 tax_yearfrac(var, var)
VARIABLE : TAX_YEARFRAC(VAR, VAR)
SUBSET : 5 points (TIME)
- 08-OCT-2006 22 / 3: 0.7699
- 13-OCT-2006 23 / 4: 0.7836
- 18-OCT-2006 22 / 5: 0.7973
- 23-OCT-2006 21 / 6: 0.8110
- 28-OCT-2006 22 / 7: 0.8247
+ 08-OCT-2006 22 / 3: 0.7725
+ 13-OCT-2006 23 / 4: 0.7862
+ 18-OCT-2006 22 / 5: 0.7998
+ 23-OCT-2006 21 / 6: 0.8134
+ 28-OCT-2006 22 / 7: 0.8272
list/L=3:7 tax_year(var, var)
VARIABLE : TAX_YEAR(VAR, VAR)
@@ -73576,8 +73733,8 @@ GO err684_line_plot_zero
plot {0,0,0}
sh sym yaxis*
YAXIS_REVERSED = "0"
-YAXIS_MIN = "-1.0000000"
-YAXIS_MAX = "1.000000"
+YAXIS_MIN = "-1.00000000"
+YAXIS_MAX = "1.00000000"
GO bn_reset
@@ -73746,11 +73903,11 @@ variables:
A:missing_value = -1.e+34 ;
A:_FillValue = -1.e+34 ;
A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- A:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ A:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
A:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -73775,11 +73932,11 @@ variables:
E410:missing_value = -1.e+34 ;
E410:_FillValue = -1.e+34 ;
E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -73794,7 +73951,7 @@ save/clob/file=aa.nc/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
use aa.nc
list e410
VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
- X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+ X=20E:20E(380)
FILENAME : aa.nc
SUBSET : 4 by 3 points (LATITUDE-TIME)
81S 79S 77S 75S
@@ -73826,11 +73983,11 @@ variables:
E410:missing_value = -1.e+34f ;
E410:_FillValue = -1.e+34f ;
E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -73843,7 +74000,7 @@ save/clob/file=aa.nc/outtype=float/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
use aa.nc
list e410
VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
- X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+ X=20E:20E(380)
FILENAME : aa.nc
SUBSET : 4 by 3 points (LATITUDE-TIME)
81S 79S 77S 75S
@@ -73998,8 +74155,12 @@ let/title="tic labels on dependent axis" var = {\
1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
+cancel mode meta
+! rename the metafile. Else we get weird contents in axticlabel.plt
+! once the whole benchmark suite has finished. (why?)
+set mode meta metafile.plt
+cancel mode meta
GO bn_reset
cancel mode verify
@@ -74395,8 +74556,8 @@ variables:
DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
// global attributes:
- :history = "Wed Oct 29 16:04:27 2014: ncks -h -A -h z1.nc append_to_this.nc\n",
- "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "Mon Nov 9 15:04:00 2015: ncks -h -A -h z1.nc append_to_this.nc\n",
+ "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
:NCO = "4.4.6" ;
}
@@ -74430,7 +74591,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -74461,7 +74622,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -74523,7 +74684,7 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74551,7 +74712,7 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74712,6 +74873,7 @@ GO bn_vtree
! bn_tree.jnl
! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
+! 12/14 update to test regridding output using bn_vtree_regrid.jnl
CANCEL DATA/ALL
! pure abstract variable -- no dataset
@@ -74792,16 +74954,16 @@ vtree=all a
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
vtree=all /d=1 a
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
vtree=all /d=2 a
in default dataset other_file_vars
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
FV1
********************************
@@ -74809,12 +74971,12 @@ vtree=all /d=2 a
go bn_vtree.sub noexist
/TREE=ALL
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
the problem is UNKNOWN VARIABLE: NOEXIST
************************
@@ -74822,12 +74984,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST
go bn_vtree.sub v[d=noexist]
/TREE=ALL
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
/TREE=USER
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
/TREE=FILE
- V[D=NOEXIST] (unknown dataset)
+ *unknown dataset: V[D=NOEXIST]
the problem is UNKNOWN DATASET: V[D=NOEXIST]
************************
@@ -74835,12 +74997,12 @@ the problem is UNKNOWN DATASET: V[D=NOEXIST]
go bn_vtree.sub novar[d=nodset]
/TREE=ALL
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
/TREE=USER
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
/TREE=FILE
- NOVAR[D=NODSET] (unknown dataset)
+ *unknown dataset: NOVAR[D=NODSET]
the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
************************
@@ -74849,13 +75011,13 @@ go bn_vtree.sub b
/TREE=ALL
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
the problem is UNKNOWN VARIABLE: NOEXIST
************************
@@ -74881,11 +75043,13 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
/TREE=FILE
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
@@ -74901,11 +75065,13 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
/TREE=FILE
FV1[d=my_file_vars]
@@ -74920,12 +75086,14 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
/TREE=FILE
FV1[d=my_file_vars]
@@ -74947,7 +75115,7 @@ go bn_vtree.sub fv1z
FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
NOEXIST (unknown auxiliary variable)
/TREE=FILE
- NOEXIST (unknown auxiliary variable)
+ *unknown auxiliary variable: NOEXIST
FVX[d=my_file_vars]
the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
************************
@@ -74958,17 +75126,19 @@ go bn_vtree.sub fv1z
/TREE=ALL
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
/TREE=FILE
- NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
@@ -74980,17 +75150,19 @@ go bn_vtree.sub fv1z
/TREE=ALL
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
/TREE=FILE
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
- UNKNOWN_AUX (unknown auxiliary variable)
+ *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+ *unknown auxiliary variable: UNKNOWN_AUX
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
************************
@@ -75001,9 +75173,9 @@ go bn_vtree.sub fv1
/TREE=ALL
in default dataset MY_AGG
FV1 (aggregate variable)
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- FV1[d=another_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
/TREE=USER
in default dataset MY_AGG
FV1 (aggregate variable)
@@ -75023,16 +75195,16 @@ go bn_vtree.sub fvx
/TREE=ALL
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=my_file_var]
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=other_file_var]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=another_file_var]
+ FVX[d=my_file_vars]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_vars]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_vars]
/TREE=USER
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
/TREE=FILE
FVX[d=my_file_vars]
@@ -75051,30 +75223,30 @@ go bn_vtree.sub p0 ! recursion
/TREE=ALL
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S3 (unknown variable)
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S3
the problem is ILLEGAL RECURSIVE VARIABLES: P1
************************
let p3 = s1 + S3
@@ -75082,31 +75254,31 @@ go bn_vtree.sub p0 ! ok
/TREE=ALL
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S1 (unknown variable)
- S3 (unknown variable)
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S1
+ *unknown variable: S3
the problem is UNKNOWN VARIABLE: S1
************************
@@ -75128,8 +75300,8 @@ show var/tree/d=my_uvar_agg uv
in default dataset MY_UVAR_AGG
UV = FVX + FVX + FVX
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
***************************
! suppressing duplicates elsewhere in the family tree ("defined above")
@@ -75144,8 +75316,8 @@ go bn_vtree.sub v2
V2 = V1 + B + A + A
V1 = A + B + B^2
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
B = C
C = 1
B = (defined above)
@@ -75169,8 +75341,8 @@ go bn_vtree.sub v3
in default dataset MY_UVAR_AGG
V3 = A + V1 + B + A + A
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
V1 = A + B + B^2
A = (defined above)
B = C
@@ -75204,26 +75376,26 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
- FVX[d=my_file_var]
+ FVX[d=my_file_vars]
/TREE=USER
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
/TREE=FILE
- F (unknown variable)
+ *unknown variable: F
FV1[d=my_file_vars]
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: F
************************
@@ -75238,14 +75410,16 @@ the problem is UNKNOWN VARIABLE: F
/TREE=ALL
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
/TREE=USER
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
/TREE=FILE
- A[G=NOEXIST] (unknown grid)
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+ *unknown grid: NOEXIST
+the problem is UNKNOWN GRID: NOEXIST
************************
list b
@@ -75261,7 +75435,7 @@ the problem is UNKNOWN GRID: A[G=NOEXIST]
C = A[X=45S]
A[X=45S] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[X=45S] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[X=45S]
the problem is ERROR IN EXPRESSION: A[X=45S]
************************
list c
@@ -75278,7 +75452,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
D = A[I=1,,J=2]
A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[I=1,,J=2]
the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
************************
list d
@@ -75295,7 +75469,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
E = A[P=1]
A[P=1] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[P=1] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[P=1]
the problem is ERROR IN EXPRESSION: A[P=1]
************************
list e
@@ -75328,6 +75502,528 @@ show var/tree a
in default dataset MY_UVAR_AGG
A = ..HISTORY[D=1]
+! *****
+! 12/14 addition to test regridding dependencies
+go bn_vtree_regrid
+! bn_vtree_regrid.jnl
+! exercise 12/14 enhancements to display regrid target on a separate line
+! updated 1/26/15 to exercise multiple regrid target outputs
+! updated 2/23/15 to report target of regrid even when aux regridding occurs
+
+! case 1: target grid known, regridded variable known
+let myvar = 1 ! var to be regridded is known
+let gvar = x[x=1:5] ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR = X[X=1:5]
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 2: target grid known, regridded variable unknown
+canc var/all
+! myvar unknown
+let gvar = x[x=1:5] ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR[G=GVAR] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR = X[X=1:5]
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR[G=GVAR] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! **************************************
+! same tests but now with a dataset named with the target grid
+use coads_climatology
+use levitus_climatology ! default to d=2
+
+! case 1: target grid known, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 2: target grid known, regridded variable unknown
+canc var/all
+! myvar unknown
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+ MYVAR[G=SST[D=1]] ?? <== UNKNOWN VARIABLE ******
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3a: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3b: target grid unknown cuz of dataset, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=sst[d=bad_dset]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=BAD_DSET]] + UNVAR + KVAR
+ MYVAR[G=SST[D=BAD_DSET]] ?? <== UNKNOWN DATASET ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+ MYVAR[G=GVAR[D=1]] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! *******************
+! file variable listing, only
+canc var/all
+let myvar = 1
+let fvar = airt[d=1]
+let kvar = 1 ! known var
+* /TREE=FILE with know regrid target
+let a = myvar[g=sst[d=1]] + fvar + kvar
+sho var/tree=file a
+ *unknown grid: SST[D=1]
+ *unknown variable: AIRT[D=1]
+
+* /TREE=FILE with unknow regrid target
+let a = myvar[g=unknown] + fvar + kvar
+sho var/tree=file a
+ *unknown grid: UNKNOWN
+ *unknown variable: AIRT[D=1]
+
+! ********************
+! regridding to multiple targets
+
+define axis/x=140e:160e:1 x1
+define axis/y=20s:20n:1 y1
+LET myvar = X[gx=x1] + Y[gy=y1]
+
+define axis/y=5s:5n:.5 yp5
+
+go bn_vtree.sub myvar[g=temp]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp] is ready and AVAILABLE
+************************
+
+! second target *is* a named variable
+go bn_vtree.sub myvar[g=temp,gy=sst[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=sst[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gy=sst[d=1],gx=temp] ! reverse order, only
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: SST[D=1]
+ regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+
+! second target is not a named variable
+go bn_vtree.sub myvar[g=temp,gy=yp5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[gx=temp,gy=yp5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[gx=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=temp,y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,y=5s:5n:.5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=sst[d=1],y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+
+! multiple targets, including unknown variables
+go bn_vtree.sub myvar[g=temp,gy=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,gy=temp]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+ regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=temp,g=mybad[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=1],gy=mybad2]! distinct unknown targets
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD2 ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD2 ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+ *unknown grid: MYBAD2
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]] ! dup known targets
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad] ! dup unknown suppressed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=2] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=2] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=2]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD[D=2]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy='MYBAD'] ! dup unknown missed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to 'MYBAD' ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to 'MYBAD' ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+ *unknown grid: 'MYBAD'
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=myvar,gy=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=yp5,g=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+
+! 2/15 additions -- auxiliary variable regridding
+USE levitus_climatology
+LET myzvar = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = myzvar
+SET REGION/i=101:102/j=41:42
+
+LET/D=levitus_climatology depth = z[g=temp]+ 0*temp[k=1]
+
+! valid aux var and target variable
+LET tempz = temp[gz(depth)=myzvar]
+vtree=all tempz
+ in default dataset levitus_climatology
+ TEMPZ = TEMP[GZ(DEPTH)=MYZVAR]
+ TEMP
+ regrid to MYZVAR = Z[Z=100:500:100]
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! valid aux var. Target is axis name
+LET tempz1 = temp[gz(depth)=zax]
+vtree=all tempz1
+ in default dataset levitus_climatology
+ TEMPZ1 = TEMP[GZ(DEPTH)=ZAX]
+ TEMP
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! valid aux var. Target is unknown
+LET tempz2 = temp[gz(depth)=unknown_target]
+vtree=all tempz2
+ in default dataset levitus_climatology
+ TEMPZ2 = TEMP[GZ(DEPTH)=UNKNOWN_TARGET]
+ TEMP
+ regrid to UNKNOWN_TARGET ?? <== UNKNOWN GRID ******
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! --- unknown aux var, valid target ---
+! When an unknown auxiliary variable error occurs it suppresses
+! the reporting of both the variable being regridded and the regrid target
+! The underlying issue is that GET_VAR_CONTEXT (called from is_dependencies.F)
+! can return only a single error status
+! If it contains ferr_unknown_auxvar, then the success or failure of other
+! parts of the context processing are unknown.
+! One could kludge the code to find a way around this, but the violence
+! required is not justified in order to fix this small loss in error reporting.
+LET tempz3 = temp[gz(unknown_aux)=myzvar]
+vtree=all tempz3
+ in default dataset levitus_climatology
+ TEMPZ3 = TEMP[GZ(UNKNOWN_AUX)=MYZVAR]
+ UNKNOWN_AUX (unknown auxiliary variable)
+
+! a syntax error leads to a similar behavior
+LET tempz3a = temp[gz(unknown_aux)=myzvar,SYNTAX_ERROR]
+vtree=all tempz3a
+ in default dataset levitus_climatology
+ TEMPZ3A = TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]
+ TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR] *** WARNING: ERROR IN DEFINITION
+
+! similar behavior here: the unknown_target does not get reported
+LET tempz4 = temp[gz(unknown_aux)=unknown_target]
+vtree=all tempz4
+ in default dataset levitus_climatology
+ TEMPZ4 = TEMP[GZ(UNKNOWN_AUX)=UNKNOWN_TARGET]
+ UNKNOWN_AUX (unknown auxiliary variable)
+
+
+
! *********** v6.86 Additions ***********
GO bn_reset
@@ -75731,7 +76427,7 @@ variables:
LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -75754,7 +76450,7 @@ variables:
STRVAR:long_name = "mystrings" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -75906,7 +76602,7 @@ shade/n=3/L=6 bath_tf
! If so its label will show Julian too.
sh sym lab($labnum_f)
!-> sh sym lab5
-LAB5 = "FORECAST : 03-JAN-2000 00:00:00 JULIAN"
+LAB5 = "FORECAST : 2000 JULIAN"
GO bn_reset
cancel mode verify
@@ -75982,7 +76678,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76012,7 +76708,7 @@ variables:
A:history = "From a" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76033,7 +76729,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76054,7 +76750,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76076,7 +76772,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76247,7 +76943,7 @@ show dat
! another error, new name is a user-var
-yes? set var/name=diff w
+set var/name=diff w
SET MODE/LAST ignore
@@ -76305,7 +77001,7 @@ GO bn_short.sub tvar ave
! short script extracted from bn_negative_t.sub for bn_enter_exit_GO
LIST/nohead/norow $1[t=-5:9@$2] ! neg/pos t endpoints
- !-> LIST/nohead/norow tvar[t=-5:9 at ave] ! neg/pos t endpoints
+ !-> LIST/nohead/norow tvar[t=-5:9 at ave]
2.000
! Exit_GO
@@ -76397,11 +77093,11 @@ list/y=3/l=1 temp[x=@std]
list/y=3/l=1 temp[z=@std,x=@std]
VARIABLE : TEMPERATURE (deg. C)
FILENAME : gt4d011.cdf
- LONGITUDE: 140W to 122W (standard deviation)
+ LONGITUDE: 140W to 122W (XZ stddev)
LATITUDE : 3N (interpolated)
- DEPTH (m): 0 to 100 (standard deviation)
+ DEPTH (m): 0 to 100 (XZ stddev)
TIME : 17-AUG-1982 12:00
- 0.1946
+ 1.037
GO bn_reset
cancel mode verify
@@ -76497,7 +77193,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -76513,7 +77209,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -76529,7 +77225,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ . history CHAR 30 T FERRET V6.951 (beta) 9-Nov-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -76555,7 +77251,7 @@ set axis/name=.fr x_in_meters
set mode/last ignore
-! *********** v6.9+ Additions ***********
+! *********** v6.93 Additions ***********
GO bn_reset
cancel mode verify
GO bn691_bug_fixes
@@ -77058,7 +77754,7 @@ def axis/z=1:20:1 zaxis
define axis/t=1-jan-2000:1-jan-2005:1/units=days longtime
let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
sh grid bigvar
- GRID (G085)
+ GRID (G103)
name axis # pts start end
XAXIS X 360 r 1 360
YAXIS Y 180 r 1 180
@@ -77071,7 +77767,7 @@ load bigvar
! also was an incorrect size.
define axis/t=1-jan-2000:1-jan-2010:1/units=days longtime
sh grid bigvar
- GRID (G085)
+ GRID (G103)
name axis # pts start end
XAXIS X 360 r 1 360
YAXIS Y 180 r 1 180
@@ -77363,10 +78059,12 @@ GO bn_vtree.sub c
/TREE=ALL
C = B2[GT=A]
B2 = A
+ regrid to A = T[GT=1:2:1]
A = T[GT=1:2:1]
/TREE=USER
C = B2[GT=A]
B2 = A
+ regrid to A = T[GT=1:2:1]
A = T[GT=1:2:1]
/TREE=FILE
c is ready and AVAILABLE
@@ -77404,6 +78102,8 @@ cancel mode verify
GO err69_isready_bugs
! err69_isready_bugs.jnl
! Tickets 2201 and 2215
+! updated error script 12/14 *sh* - to ensure that bench log file
+! has verification of this problem and its fix, as well as the bench error file
! ticket 2201: isready operation meant we couldn't cancel the second axis
@@ -77425,6 +78125,18 @@ can axis xax_isready_1
can var b
can axis xax_isready_2
+! 12/14 additions:
+show grid/dynamic ! look for "err: grid over-allocated" messages
+Dynamic grids:
+ no implicit grids
+Dynamic axes:
+ AXIS (AX127) use count: 1
+ AXIS (AX049) use count: 13
+ AXIS (AX047) use count: 13
+ AXIS (AX020) use count: 2
+show axis xax_isready_1, xax_isready_2 ! did they both get canceled?
+ name axis # pts start end
+
! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
let a = x[gx=1:3:1]
@@ -77441,6 +78153,19 @@ m
GO bn_reset
cancel mode verify
+GO err691_substring_arg
+! err693_substring_arg
+! ACM 12/10/2014
+! ticket 2210. Argument checking was not done for the SUBSTRING function
+
+set mode ignore
+list substring("hello",1,-2)
+list substring("hello",1,-3)
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
GO bn_append_dsg
! bn_append_dsg.jnl
!From SOCAT 3: appending to a dsg file where the new variable is on the obs
@@ -77516,7 +78241,7 @@ variables:
:geospatial_lat_max = 29.07 ;
:time_coverage_start = "2006-06-10T23:48:00Z" ;
:time_converage_end = "2006-06-11T00:12:00Z" ;
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
}
GO bn_reset
@@ -77609,7 +78334,7 @@ variables:
LON360:history = "added to test_save_dsg.nc" ;
// global attributes:
- :history = "CruiseDsgNcFile 1.0FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "CruiseDsgNcFile 1.0FERRET V6.951 (beta) 9-Nov-15" ;
:featureType = "Trajectory" ;
:Conventions = "Some other conventionsCF-1.6" ;
:geospatial_lon_min = -92.77 ;
@@ -77636,7 +78361,7 @@ can dat/all; use anew_global.nc
sh att .
attributes for dataset: ./anew_global.nc
..history = Subset of etopo20,
- FERRET V6.93 (beta) 29-Oct-14
+ FERRET V6.951 (beta) 9-Nov-15
..Conventions = Existing conventions note, , CF-1.6
@@ -77668,7 +78393,7 @@ can dat/all; use conventions_history
! The new attibutes
sh att .
attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V6.93 (beta) 29-Oct-14
+ ..history = The history of the fileFERRET V6.951 (beta) 9-Nov-15
..Conventions = Conventions for variables named V2CF-1.6
GO bn_reset
@@ -78080,14 +78805,14 @@ a is ready and AVAILABLE
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
in default dataset other_file_vars
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
FV1
********************************
/TREE=ALL
@@ -78096,30 +78821,30 @@ a is ready and AVAILABLE
the problem is UNKNOWN VARIABLE: NOEXIST
************************
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
- NOEXIST (unknown variable)
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
the problem is UNKNOWN DATASET: V[D=NOEXIST]
************************
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
- V[D=NOEXIST] (unknown dataset)
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ *unknown dataset: V[D=NOEXIST]
/TREE=ALL
/TREE=USER
/TREE=FILE
the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
************************
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
- NOVAR[D=NODSET] (unknown dataset)
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ *unknown dataset: NOVAR[D=NODSET]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78127,11 +78852,11 @@ the problem is UNKNOWN VARIABLE: NOEXIST
************************
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
- NOEXIST (unknown variable)
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78150,10 +78875,12 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
FVZ
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
@@ -78165,10 +78892,12 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FV1[d=my_file_vars]
FVX[d=my_file_vars]
@@ -78180,11 +78909,13 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
@@ -78201,7 +78932,7 @@ the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
in default dataset my_file_vars
FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
NOEXIST (unknown auxiliary variable)
- NOEXIST (unknown auxiliary variable)
+ *unknown auxiliary variable: NOEXIST
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
@@ -78210,15 +78941,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
************************
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
- NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
/TREE=ALL
@@ -78228,15 +78961,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
************************
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
FVX
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
- UNKNOWN_AUX (unknown auxiliary variable)
+ *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+ *unknown auxiliary variable: UNKNOWN_AUX
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
@@ -78245,9 +78980,9 @@ fv1 is ready and AVAILABLE
************************
in default dataset MY_AGG
FV1 (aggregate variable)
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- FV1[d=another_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
in default dataset MY_AGG
FV1 (aggregate variable)
@@ -78261,15 +78996,15 @@ fvx is ready and AVAILABLE
************************
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=my_file_var]
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=other_file_var]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=another_file_var]
+ FVX[d=my_file_vars]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_vars]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_vars]
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
FVX[d=my_file_vars]
FV1[d=other_file_vars]
@@ -78281,28 +79016,28 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
************************
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S3 (unknown variable)
+ S3 ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S3
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78310,29 +79045,29 @@ the problem is UNKNOWN VARIABLE: S1
************************
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S1 (unknown variable)
- S3 (unknown variable)
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S1
+ *unknown variable: S3
in default dataset my_file_vars
FV = FV1 + FV1 + FV1
in default dataset MY_UVAR_AGG
@@ -78344,8 +79079,8 @@ the problem is UNKNOWN VARIABLE: S1
in default dataset MY_UVAR_AGG
UV = FVX + FVX + FVX
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
***************************
/TREE=ALL
/TREE=USER
@@ -78356,8 +79091,8 @@ v2 is ready and AVAILABLE
V2 = V1 + B + A + A
V1 = A + B + B^2
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
B = C
C = 1
B = (defined above)
@@ -78380,8 +79115,8 @@ v3 is ready and AVAILABLE
in default dataset MY_UVAR_AGG
V3 = A + V1 + B + A + A
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
V1 = A + B + B^2
A = (defined above)
B = C
@@ -78405,37 +79140,39 @@ the problem is UNKNOWN VARIABLE: F
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
- FVX[d=my_file_var]
+ FVX[d=my_file_vars]
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
- F (unknown variable)
+ *unknown variable: F
FV1[d=my_file_vars]
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
/TREE=FILE
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+the problem is UNKNOWN GRID: NOEXIST
************************
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
+ *unknown grid: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78447,7 +79184,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
in default dataset MY_UVAR_AGG
C = A[X=45S]
A[X=45S] *** WARNING: ERROR IN DEFINITION
- A[X=45S] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[X=45S]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78459,7 +79196,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
in default dataset MY_UVAR_AGG
D = A[I=1,,J=2]
A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
- A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[I=1,,J=2]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78471,7 +79208,7 @@ the problem is ERROR IN EXPRESSION: A[P=1]
in default dataset MY_UVAR_AGG
E = A[P=1]
A[P=1] *** WARNING: ERROR IN DEFINITION
- A[P=1] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[P=1]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78570,8 +79307,8 @@ say `files,return=isize`
! Evaluate size without loading the variable first
let datfiles = {spawn:"ls *.dat"}
say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 36
-36
+ !-> MESSAGE/CONTINUE 37
+37
! expression syntax
say `{spawn:"ls xml*.jnl"},return=isize`
@@ -78589,8 +79326,8 @@ list {spawn:"ls xml*.jnl"}
LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 835
-835
+ !-> MESSAGE/CONTINUE 919
+919
let files = {spawn:"ls *cdf*.jnl"}
let name_len = strindex(files, ".sub")
@@ -78635,268 +79372,7722 @@ poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
set mode/last ignore
-! *********** Always do a bn_reset ***********
-! *********** make sure things clean up well **
+! *********** v6.94Additions ***********
+
GO bn_reset
cancel mode verify
+GO bn694_bug_fixes
+! bn694_bug_fixes
+! test various fixes that went into version 6.94
+! 11/2014 ACM
+! 12/2014 *sh* added IF-THEN flow fixes, including review of past tickets
+! 1/2015 *sh* added test for undetected bad dataset name in regrid target
-! version 2.3 requires exit/command *sh* 3/92
-exit/command
-yes? ! bn_all_ef_shell.jnl
-yes? ! 5/05 *acm*
-yes? ! run bn_all_ef tests
-yes?
-yes? GO bn_all_ef
- NOAA/PMEL TMAP
- FERRET v6.93 (beta)
- Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
- 29-Oct-14 16:04
-
-SET MODE VERIFY
-! bn_all_ef.jnl
-! - run all the benchmark tests for externally-linked external functions.
+GO bn_reset
+cancel mode verify
+GO err693_upcase_quoted_name
+! err693_upcase_quoted_name.jnl
+! ticket 2050. Names are saved in uppercase
+! form unless there are duplicates other than case.
+! Then searching for the name in quotes looked
+! only with a case-sensitive search.
+
+let abc = 12
+cancel mode upcase
+
+save/file=aa.nc/clobber abc
+can dat/all; can var/all
+
+use aa.nc
+! previously this failed to find the name.
+list 'abc'
+ VARIABLE : 12
+ FILENAME : aa.nc
+ 12.00
GO bn_reset
cancel mode verify
-GO bn_ef_external_functions.jnl
-! Tests of external functions that are distributed as shared object files.
+GO err693_isready_hang
+! err693_isready_hang.jnl
+! ACM 12/10/2014
+! ticket 2219. The last of these commands caused Ferret to hang.
-! Jon's benchmarks
-go bench_examples
-set mode ignore_error
-show func/ext add_9
-ADD_9(A,B,C,D,E,F,G,H,I)
- (demonstration function) adds 9 arguments
-show func/ext ave*
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
- Compute average of a variable in each cell of output time axis
- TPTS: T coordinates of scattered input time coordinates
- VPTS: Variable at times in TPTS
- TAXIS: Output time axis
-AVET(A)
- (demonstration function) returns the time average
- A: data to be averaged over the time axis
-show func pass_thru
-PASS_THRU(A)
- (demonstration function) sets result equal to input
- A: this arg is passed through
-show func sto*
-STORAGE(A)
- sets result equal to input/10
- A: input
+use gt4d011
+def ax/t/t0="`u,r=t0`"/unit="`u,r=tunit`" time = t[gt=u]
+ !-> def ax/t/t0="14-JAN-1980 14:00:00"/unit="hour" time = t[gt=u]
+let a = u
+IF `a,r=isready` THEN; let/title="`a,r=title`" a1 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a1 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a2 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a2 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a3 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a3 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a4 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a4 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a5 = a
-go bench_add_9
-! Bench_add_9.jnl
-! ACM 8/99
-! benchmark script for testing external function add_9.
-! Note: bench_add_9_visual contains plots of similar computations
+GO bn_reset
+cancel mode verify
+GO err693_isready_dyn_grid_crash ! 12/23/2014
+let/unit="m" b = x[gx=1:5:1]
+say "`b,r=unit`" ! this causes dynamic grid of b to be created
+ !-> MESSAGE/CONTINUE "m"
+m
+let c = x[gx=1:5:2]
+let b2 = b+0*c[gx=b] ! dynamic grid of b exists, but not grid of c
+VTREE b2
+ B2 = B+0*C[GX=B]
+ B = X[GX=1:5:1]
+ C = X[GX=1:5:2]
+ regrid to B = X[GX=1:5:1]
-set mode ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_attr_in_gcfcn
+! err693_attr_in_gcfcn.jnl
+! ACM 12/10/2014
+! bug 2220 varname.attname as an argument to grid-changing functions.
+! All except the last of these caused various ungraceful stops.
+let/units="m" a = 1
+list is_element_of_str(a.units,{"m","a"})
+ VARIABLE : IS_ELEMENT_OF_STR(A.UNITS,{"m","a"})
+ X : 1
+ 1.000
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
+let/units="m" a = 1
+let b = a.units
+list is_element_of_str(b,{"m","a"})
+ VARIABLE : IS_ELEMENT_OF_STR(B,{"m","a"})
+ X : 1
+ 1.000
-let a1 = sst[d=1,l=1]
-let a2 = sst[d=1,l=2]
-let a3 = sst[d=1,l=3]
-let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+use levitus_climatology
-list a
- VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 263.6
- 153E / 67: 264.5
- 155E / 68: 264.2
- 157E / 69: 261.3
- 159E / 70: 260.9
- 161E / 71: 262.4
- 163E / 72: 264.0
- 165E / 73: 261.1
- 167E / 74: 260.9
- 169E / 75: 261.0
- 171E / 76: 259.3
- 173E / 77: 257.9
- 175E / 78: 257.0
- 177E / 79: 259.1
- 179E / 80: 254.8
-list a - 3 * sst[d=1,l=1:3 at sum]
- VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 0.0000
- 153E / 67: 0.0000
- 155E / 68: 0.0000
- 157E / 69: 0.0000
- 159E / 70: 0.0000
- 161E / 71: 0.0000
- 163E / 72: 0.0000
- 165E / 73: 0.0000
- 167E / 74: 0.0000
- 169E / 75: 0.0000
- 171E / 76: 0.0000
- 173E / 77: 0.0000
- 175E / 78: 0.0000
- 177E / 79: 0.0000
- 179E / 80: 0.0000
-set mode/last ignore_errors
-go bench_avet
-! Bench_avet.jnl
-! ACM 8/99
-! benchmark script for testing external function avet.
-! Note: bench_avet_visual.jnl contains plots of similar computations
+list is_element_of_str_n (temp.long_name, {"Temperature", "temp"})
+ VARIABLE : IS_ELEMENT_OF_STR_N (TEMP.LONG_NAME, {"Temperature", "temp"})
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ 2.000
-set mode ignore_errors
+let a = temp.units
+list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
+ VARIABLE : IS_ELEMENT_OF_STR (A, {"Kelvin", "Celsius", "DEG C"})
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ 1.000
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
-let a = avet(sst)
-list a
- VARIABLE : AVET(SST)
- FILENAME : coads_climatology.cdf
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- 1S
- 45
- 151E / 66: 29.28
- 153E / 67: 29.39
- 155E / 68: 29.35
- 157E / 69: 29.03
- 159E / 70: 28.99
- 161E / 71: 29.15
- 163E / 72: 29.33
- 165E / 73: 29.01
- 167E / 74: 28.99
- 169E / 75: 29.00
- 171E / 76: 28.81
- 173E / 77: 28.66
- 175E / 78: 28.56
- 177E / 79: 28.79
- 179E / 80: 28.31
-list a - sst[l=@ave]
- VARIABLE : A - SST[L=@AVE]
- FILENAME : coads_climatology.cdf
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 01-JAN 00:45 to 01-APR 08:12
- 1S
- 45
- 151E / 66: 0.000E+00
- 153E / 67: -3.553E-15
- 155E / 68: 0.000E+00
- 157E / 69: 0.000E+00
- 159E / 70: 3.553E-15
- 161E / 71: 7.105E-15
- 163E / 72: 3.553E-15
- 165E / 73: 0.000E+00
- 167E / 74: 0.000E+00
- 169E / 75: 3.553E-15
- 171E / 76: 0.000E+00
- 173E / 77: 3.553E-15
- 175E / 78: 0.000E+00
- 177E / 79: 3.553E-15
- 179E / 80: 3.553E-15
-can region
-let a = x[i=1:9,k=1:5] + t[l=1:5]
-let b = x[i=1:9,k=1:5]
-let c = avet(a)
-list b, c
- X: 0.5 to 9.5
- Column 1: B is X[I=1:9,K=1:5]
- Column 2: C is AVET(A)
- B C
-1 / 1: 1.000 4.00
-2 / 2: 2.000 5.00
-3 / 3: 3.000 6.00
-4 / 4: 4.000 7.00
-5 / 5: 5.000 8.00
-6 / 6: 6.000 9.00
-7 / 7: 7.000 10.00
-8 / 8: 8.000 11.00
-9 / 9: 9.000 12.00
+GO bn_reset
+cancel mode verify
+GO err693_inconsistent_quote
+! inconsistent interpretation of surrounding double quotes
+! the original source of the problem is in PARSE_COMMAND
+! arg_start and arg_end are set to skip surrounding quotation marks.
+! But since this behavior permeates so many routines it is best to repair
+! the problem in ALL_1_ARG
-set mode/last ignore_errors
-go bench_pass_thru
-! Bench_pass_thru.jnl
-! ACM 8/99
-! benchmark script for testing external function pass_thru.
-! Note: bench_pass_thru_visual.jnl contains plots of similar computations
-set mode ignore_errors
+let foobar = 1
+LIST "foobar", "foobar" ! this is correct - list as strings
+ Column 1: str is "foobar"
+ Column 2: str is "foobar"
+ str str
+I / *: "foobar" "foobar"
+LIST "foobar" ! error: lists the value instead
+ VARIABLE : "foobar"
+ "foobar"
-can region
-let a = pass_thru(x)
-list a[i=1:20]
- VARIABLE : PASS_THRU(X)
- SUBSET : 20 points (X)
- 1 / 1: 1.00
- 2 / 2: 2.00
- 3 / 3: 3.00
- 4 / 4: 4.00
- 5 / 5: 5.00
- 6 / 6: 6.00
- 7 / 7: 7.00
- 8 / 8: 8.00
- 9 / 9: 9.00
- 10 / 10: 10.00
- 11 / 11: 11.00
- 12 / 12: 12.00
- 13 / 13: 13.00
- 14 / 14: 14.00
- 15 / 15: 15.00
- 16 / 16: 16.00
- 17 / 17: 17.00
- 18 / 18: 18.00
- 19 / 19: 19.00
- 20 / 20: 20.00
-set region/i=1:20
-list sin(a)
- VARIABLE : SIN(A)
- SUBSET : 20 points (X)
- 1 / 1: 0.8415
- 2 / 2: 0.9093
- 3 / 3: 0.1411
- 4 / 4: -0.7568
- 5 / 5: -0.9589
- 6 / 6: -0.2794
- 7 / 7: 0.6570
- 8 / 8: 0.9894
- 9 / 9: 0.4121
- 10 / 10: -0.5440
- 11 / 11: -1.0000
- 12 / 12: -0.5366
- 13 / 13: 0.4202
- 14 / 14: 0.9906
- 15 / 15: 0.6503
- 16 / 16: -0.2879
- 17 / 17: -0.9614
- 18 / 18: -0.7510
- 19 / 19: 0.1499
- 20 / 20: 0.9129
-can var/all
-can region
+! IF-THEN flow tests
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2214
+! bug 2214
+! If we put the "say hi" in parentheses, this seems to work.
+! But parentheses haven't previously been required, so there are a lot of
+! scripts that don't have them.
-use coads_climatology
-let a = pass_thru(sst[l=@ave,y=@sbx:11])
-list/x=50 a
- VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
- FILENAME : coads_climatology.cdf
- SUBSET : 90 points (LATITUDE)
- LONGITUDE: 49E
- TIME : 01-JAN 00:45 to 01-APR 08:12
+* 12/14 note (sh) - Ferret handles this situation correctly because
+* PARSE_COMMAND acts on the semi-colons in the full command line *before*
+* it acts on the "IF". Thus the thress semicolon-connected commands
+* follow the same logical path through Ferret as if they were separated
+* onto three lines
+
+IF 0 THEN; rep/i=1:1 say ERROR; ENDIF
+
+IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF
+!-> REPEAT: I=1
+CORRECT
+
+(IF 0 THEN; rep/i=1:1 say ERROR; ENDIF)
+
+(IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF)
+!-> REPEAT: I=1
+CORRECT
+
+!yes? quit
+!yes? quit
+!yes? ^Z
+!Suspended
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2211
+! bug #2211
+
+
+IF 0 THEN
+ELSE
+ exit/script
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1860
+! from bug 1860
+! continue line found within grave accents
+
+CANCEL MODE VERIFY
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1446
+! testing ticket 1446
+
+! the presence of a tab preceding the "!" comment caused a parsing error
+
+! the behavior of this even in v69+ today is problematic in that
+! it echos an ENDIF statement that should be a plain old skip
+
+IF 0 THEN
+ENDIF
+
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1681
+! testing ticker 1681
+
+!The third block of the following script issues an error:
+!ERROR: invalid command: ENDIF can only be used in an IF clause
+!
+!Looks like a parsing bug -- it seems the ENDIF inside the REPEAT is being
+!applied to the outermost IF. Note that the error goes away if we change
+!the outer 0 to a 1.
+
+
+say "test1"
+test1
+if 0 then
+endif
+
+say "test2"
+test2
+if 0 then
+endif
+
+say "test3"
+test3
+if 0 then
+endif
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1706
+! testing ticket 1706
+!
+def sym a say hi\\; say hi
+
+IF 0 THEN
+ENDIF
+
+! some versions (not v550 but yes v63 but not v6301) fail to say "here"
+IF 1 THEN
+ say here
+here
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1368 ! Jan 28, 2010, Ferret version 5.812
+! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
+
+! this is still a bug in V69+
+! the initial IF command is not being closed by the first ENDIF
+! it is skipping down to the elif command
+
+define symbol xend 180
+let key_flag = 0
+
+! test 1 - line 1 false condition should suppress both outputs
+IF `($xend) GT 360` THEN
+ !-> IF 0 THEN
+ENDIF
+
+
+! test 2 - line 1 false condition should cause else clause - "point G"
+let dxymin = 0.20
+if `dxymin lt 0.12` then
+ !-> if 0 then
+elif `dxymin lt 0.25` then
+ !-> elif 1 then
+ SAY "CORRECT. this message should display"
+CORRECT. this message should display
+endif
+
+! test 3 - this is from bug #918 -- looks like the same bug as #1368
+IF 0 THEN
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_start_missing
+! err693_ribbon_start_missing
+! 1/6/2015 ACM
+!
+! Bug 2226: If data starts with a missing-value and we're using (-inf) then
+! the ribbon plot started with the lowest color instead of plotting as for missing
+! Only the cases starting with missing data were incorrect previous to fixing this bug.
+
+DEFINE SYMBOL ribbon_command = PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3
+
+let/units=degrees_east xvar = {-177,-174,-186}
+let/units=degrees_north yvar = {-43, -45, -42}
+let vvar = {,271, 319}
+! This previously started with purple, not a gray missing-value point
+($ribbon_command)/title="(-inf) in levels" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="(-inf) in levels" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,,271,319}
+($ribbon_command)/title="start with several missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with several missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,271,319,1000}
+($ribbon_command)/title="end large positive value" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end large positive value" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,271,319,1000,}
+($ribbon_command)/title="end with large positive and missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end with large positive and missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {1.e7,,,271,319}
+($ribbon_command)/title="start with large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with large positive" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,1.e7,,271,319}
+($ribbon_command)/title="start with missing then large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with missing then large positive" xvar,yvar,vvar
+
+
+GO bn_reset
+cancel mode verify
+GO err691_pt_in_poly
+! err691_pt_in_poly
+! ticket 1961: modulo longitude for pt_in_poly
+! and sending subset of the xy field
+
+use coads_climatology
+
+let xpts = {64,81,81,82,88,88,79,79,76,73,68,64}
+let ypts = {31,30,29,29,27,24,20,19,20,25,27,31}
+
+let pts = pt_in_poly(sst[L=5,x=60:90,y=15:35], xpts, ypts)
+shade/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
+
+! Put the xpts on different modulo branches
+! Previously the list commands would have listed -1,-1
+
+let xpts0 = {64,81,81,82,88,88,79,79,76,73,68,64}
+let/title=lon/units=degrees_east xpts = xpts0 + 360
+
+shade/title="Plus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
+
+let/title=lon/units=degrees_east xpts = xpts0 - 360
+
+shade/title="Minus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
+
+GO bn_reset
+cancel mode verify
+GO err693_undetected_regrid_dset
+! err693_undetected_regrid_dset.jnl - Jan 2015
+
+! in GET_CONTEXT_MODS no check is made whether dataset name/number is
+! valid following "gdset = FIND_DSET_NUMBER( name(dstart:dend) )"
+
+use coads_climatology
+use levitus_climatology ! default to d=2
+
+canc var/all
+let myvar = temp
+let a = myvar[g=temp[d=bad_d]] ! THIS SHOULD BE DETECTED AS AN ERROR
+
+set mode ignore
+stat/l=1/x=180/y=0 a ! this *SHOULD* trigger an error. Yes. Detect it.
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err693_line_over_axis
+! Ticket 2232: line plots overlaid the plot axes
+show mode meta
+ MODE STATE ARGUMENT
+ METAFILE CANCELLED metafile.plt
+! line plot with /VS draw on top of the axes
+let xval = {0.0, 0.2, 1.0, 0.8, 0}
+let yval = {0.0, 1.1, 1.1, 0.0, 0}
+plot/vs/line/thick=3/color=lightblue xval, yval
+
+! any line overlay may draw on the axes
+let xval = {0.0, 0.0, 0.8, 0.2, 0}
+let yval = {0.1, 1.2, 1.2, 0.1, 0.1}
+plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
+
+
+GO bn_reset
+cancel mode verify
+GO err693_save_packed
+! err693_save_packed.jnl
+! ticket 2240: bug writing multiple vars with one SAVE when scaled
+!
+! Previously saw a netcdf error because first variable was mis-scaled on writing.
+
+use err693_save_packed.nc
+save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
+
+GO bn_reset
+cancel mode verify
+GO err693_subspan_trans
+! err693_subspan_trans
+! bug 2241 3/9/2015
+
+use coads_climatology
+let a = sst[x=120:284,y=-2:2 at ave,t=@ave]
+save/clob/file=a.nc a
+can var a
+use a
+set reg/x=25:385
+let b = a[x=@min]
+
+set mode diag
+say `a[x=@min]`
+ getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ strip --> A[X=25E:25E(385)@MIN,D=2]
+ strip moduloing A on X axis: 0 83 dset: 2
+ reading A M: 72 dset: 2 I: 1 82 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ doing moduloing A on X axis: 1 82 dset: 2
+ doing --> A[X=25E:25E(385)@MIN,D=2]
+ -DELETE A M: 70 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+! This previously resulted in an error.
+say `b`
+ dealloc dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ getgrid B C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval B C: 6 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ strip --> A[X=25E:25E(385)@MIN,D=2]
+ strip moduloing A on X axis: 0 83 dset: 2
+ reading A M: 70 dset: 2 I: 1 82 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ doing moduloing A on X axis: 1 82 dset: 2
+ doing --> A[X=25E:25E(385)@MIN,D=2]
+ -DELETE B M: 47 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+can mode diag
+
+! What if the region for @MIN is in the saved portion?
+say `a[x=150:200 at min]`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+let b = a[x=150:200 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+
+! What if the region for @MIN extends beyond the saved portion?
+say `a[x=200:300 at min]`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+let b = a[x=200:300 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+! What if the region for @MIN is outside the saved portion?
+say `a[x=300:385 at min]`
+ !-> MESSAGE/CONTINUE bad
+bad
+let b = a[x=300:385 at min]
+say `b`
+ !-> MESSAGE/CONTINUE bad
+bad
+
+
+GO bn_reset
+cancel mode verify
+GO err693_repeat_err
+! err693_repeat_err.jnl
+! test fix for ticket 2244: Error handling in REPEAT
+
+! The second of these should result in an error - in debug mode
+! it instead was hitting an out-of-range subscript error.
+
+repeat/range=1:2/name=column repeat/range=1:2/name=row say `column`,`row`
+!-> REPEAT: COLUMN:1
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 1,1
+1,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 1,2
+1,2
+!-> REPEAT: COLUMN:2
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 2,1
+2,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 2,2
+2,2
+
+set mode ignore
+repeat/range=1:2/name=column repeat/range=1:2/name=row
+!-> REPEAT: COLUMN:1
+!-> REPEAT: COLUMN:2
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err693_edit_useratt
+! err693_edit_useratt.jnl
+! ticket 2249: set attribute properties for user-defined variable
+
+use err491_attval.cdf
+list/x=135.402W:135.321W/y=58.609 elev
+ VARIABLE : Surface elevation (meter)
+ DATA SET : K-Bay OAR3d model (200m)
+ FILENAME : err491_attval.cdf
+ SUBSET : 7 points (LONGITUDE)
+ LATITUDE : 58.61N (interpolated)
+ T (day) : 1.7837
+ 135.402W / 45: ....
+ 135.389W / 46: ....
+ 135.375W / 47: ....
+ 135.362W / 48: 2.953
+ 135.348W / 49: 2.953
+ 135.335W / 50: 2.950
+ 135.321W / 51: 2.953
+
+
+! Rename the file variable, define a variable using its name
+set var/name=elev_in elev
+let elev = missing(elev_in, -1.e34)
+
+! Inherit attributes from the file variable.
+! cancel writing the scale attributes
+set att/like=elev_in elev
+can att/output elev.scale_factor
+can att/output elev.add_offset
+
+! set the bad-flag (can't do this before the SET ATT/LIKE
+set var/bad=-1.e34 elev
+
+! save
+save/clobber/file=a.nc elev
+can var/all
+use a.nc
+list/x=135.402W:135.321W/y=58.609 elev
+ VARIABLE : Surface elevation (meter)
+ FILENAME : a.nc
+ SUBSET : 7 points (LONGITUDE)
+ LATITUDE : 58.61N (interpolated)
+ T (day) : 1.7837
+ 135.402W / 45: ....
+ 135.389W / 46: ....
+ 135.375W / 47: ....
+ 135.362W / 48: 2.953
+ 135.348W / 49: 2.953
+ 135.335W / 50: 2.950
+ 135.321W / 51: 2.953
+
+
+GO bn_reset
+cancel mode verify
+GO err693_redef_rec_axis
+! err693_redef_rec_axis.jnl
+! ticket 2271. Redefining the record axis meant
+! that SHOW AXIS/FULL couldnt get the time axis info
+
+define axis/x=1:5:1 xax
+define axis/y=2:10:2 yax
+define axis/t=1:7:1 tredef
+let var = x[gx=xax] + y[gy=yax] + t[gt=tredef]
+save/clobber/file=a.nc var
+
+can var/all
+can axis xax
+can axis yax
+can axis tredef
+
+use a.nc
+define axis/t=1:7:1/units=days/t0=1-jan-2000 tredef
+
+! Previously the output had time range: ???
+show data/full
+ currently SET data sets:
+ 1> ./a.nc (default)
+
+ name title I J K L M N
+ VAR X[GX=XAX] + Y[GY=YAX] + T[GT=TR 1:5 1:5 ... 1:7 ... ...
+ on grid GSI1 with -1.E+34 for missing data
+ X=0.5:5.5 Y=1:11
+
+ time range: 02-JAN-2000 00:00 to 08-JAN-2000 00:00
+
+
+GO bn_reset
+cancel mode verify
+GO err693_frame_types
+! bn_frame_types.jnl
+! Ticket 2275
+! The default file type for FRAME was still HDF
+
+set mode ignore
+
+use coads_climatology
+shade/l=1 sst
+
+! This issued an error and quit
+frame/format=hdf/file=a.hdf
+
+! so did this
+frame/file=a.png
+
+! this is (always) ok
+frame/file=a.gif
+frame/format=gif file=a.plot
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err693_shape
+! err693_shape.jnl
+! bug 2273 shape of variable with various subexpressions
+
+use coads_climatology
+let a = sst[x=@ave]
+let a_clim = a[gt=MONTH_IRREG at mod]
+let a_anom = a - a_clim[gt=a at nrst]
+
+! Should all be YT
+say `a,r=shape` `a_clim[gt=a at nrst],r=shape` `a_anom,r=shape`
+ !-> MESSAGE/CONTINUE YT YT YT
+YT YT YT
+
+! Also works for size returns
+
+! Should be 180, 1, 1
+say `sst,r=isize` `a,r=isize` `a_anom,r=isize`
+ !-> MESSAGE/CONTINUE 180 1 1
+180 1 1
+
+
+GO bn_reset
+cancel mode verify
+GO err693_ef_axis_precision
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.94
+ ! Linux 2.6.32-504.12.2.el6.x86_64 64-bit - 03/20/15
+ ! 11-May-15 16:51
+
+define axis/f faxis = {0.001, 0.123, 0.234, 0.498}
+define axis/e eaxis = {1001.1009, 1234.005, 2112.321, 2520.45}
+let efvar = _M[ge=eaxis] + _n[gf=faxis]
+set view upper; plot/n=3 efvar
+set view lower; plot/m=2 efvar
+list/n=3 efvar
+ VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
+ SUBSET : 4 points (E)
+ F : 0.2
+ 1001.1 / 1: 4.000
+ 1234 / 2: 5.000
+ 2112.3 / 3: 6.000
+ 2520.4 / 4: 7.000
+list/m=2 efvar
+ VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
+ SUBSET : 4 points (F)
+ E : 1234
+ 0 / 1: 3.000
+ 0.12 / 2: 4.000
+ 0.23 / 3: 5.000
+ 0.5 / 4: 6.000
+q
+
+GO bn_reset
+cancel mode verify
+GO err693_string_results
+! err693_string_results.jnl
+! Ticket 2234, the LIST B returned the numeric pointer to the string.
+! *acm* 5/14/2015
+
+let b = IF a then "yes" else "no"
+let a = 1/0
+list b
+ VARIABLE : IF A THEN "yes" ELSE "no"
+ "no"
+
+! The LOAD C makes the data type of D correct
+let d = if c then "ok" else "not ok"
+let c = 1/0
+load C
+list d
+ VARIABLE : IF C THEN "ok" ELSE "not ok"
+ "not ok"
+
+GO bn_reset
+cancel mode verify
+GO err693_lev_nv_over
+! err693_lev_nv_over.jnl
+! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
+
+! draw any underlay to set up for polymark script
+use coads_climatology
+shade/x=120:250/Y=25s:65n/L=1/pal=white/nokey sst
+
+LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
+LET ypts = 15 + 20*SIN(2*3.14*I[I=1:50]/60)
+
+! Variable is a constant w/ negative value
+LET sst = -5 + 0*ypts
+
+! The poly/over command caused a Fortran runtime error in tm_fmt_sngl
+GO polymark polygon/over/lev=20v/key/title="SST" xpts,ypts,sst,square, 0.5
+
+
+GO bn_reset
+cancel mode verify
+GO err693_fcn_of_attvar
+! err693_fcn_of_attvar.jnl
+! Ticket 2291 Function of attribute-expression
+! returned just the first result
+
+use coads_climatology
+list sst.dimnames
+ VARIABLE : SST.DIMNAMES
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"COADSX"
+ 2 / 2:"COADSY"
+ 3 / 3:"TIME10"
+list dncase(sst.dimnames)
+ VARIABLE : DNCASE(SST.DIMNAMES)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"coadsx"
+ 2 / 2:"coadsy"
+ 3 / 3:"time10"
+list strlen( sst.dimnames)
+ VARIABLE : STRLEN( SST.DIMNAMES)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1: 6.000
+ 2 / 2: 6.000
+ 3 / 3: 6.000
+list substring(sst.dimnames,2,3)
+ VARIABLE : SUBSTRING(SST.DIMNAMES,2,3)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"OAD"
+ 2 / 2:"OAD"
+ 3 / 3:"IME"
+list dncase(substring(sst.dimnames,2,3))
+ VARIABLE : DNCASE(SUBSTRING(SST.DIMNAMES,2,3))
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"oad"
+ 2 / 2:"oad"
+ 3 / 3:"ime"
+list ysequence(dncase(sst.dimnames))
+ VARIABLE : YSEQUENCE(DNCASE(SST.DIMNAMES))
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (Y)
+ 1 / 1:"coadsx"
+ 2 / 2:"coadsy"
+ 3 / 3:"time10"
+
+GO bn_reset
+cancel mode verify
+GO err693_isize_and_gcfcn
+! err693_isize_and_gcfcn.jnl
+! ticket 2213
+! SET REGION interacting with ABSTRACT AXES
+! When the variable using XSEQUENCE was defined, suddenly the
+! region was being applied (inconsistently).
+
+can mode verify
+8
+ GRID XABSTRACT
+ name axis # pts start end
+ ABSTRACT X 99999999 r 1 1.E+08
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+8
+ GRID XABSTRACT
+ name axis # pts start end
+ ABSTRACT X 99999999 r 1 1.E+08
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_scale
+! err693_ribbon_scale.jnl
+! ticket 2295: the vertical scale is mis-computed
+! 5/29/2015
+
+let var = {-81,-81,-81}
+let color = {2,2,2}
+plot/ribbon/key var,color
+
+! should be -82 to -80
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "-82.0000000"
+YAXIS_MAX = "-80.0000000"
+
+GO bn_reset
+cancel mode verify
+GO err693_parse_curly
+! err693_parse_curly.jnl
+! the sub-routine defines a string variable containing commands for overlays in
+! different directions. the bug was that the parser doesn't handle quoted strings
+! inside { } if those strings include curly braces.
+! The argument chooses one of the strings with commands and plots the overlay
+
+use gt4d011
+
+shade/i=100/l=1/pal=grayscale temp
+go err693_parse_curly.sub yz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+
+! list of valid shapes
+
+let prd_shapes = {"xy", "xz", "yz"}
+
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+
+let prd_overlays = {\
+ "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "yz"
+
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1 THEN
+ )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`]; IF `p1s_this_shape EQ p1s_shape` THEN; let p1s_ov = prd_overlays[i=`s`]; exit/loop; ENDIF; )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 0 THEN
+!-> REPEAT: S:3
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=3]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=3]
+ can var p1s_this_shape
+ENDIF
+
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+
+ shade/j=40/l=1/pal=grayscale temp
+go err693_parse_curly.sub xz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+
+! list of valid shapes
+
+let prd_shapes = {"xy", "xz", "yz"}
+
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+
+let prd_overlays = {\
+ "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "xz"
+
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1 THEN
+ )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`]; IF `p1s_this_shape EQ p1s_shape` THEN; let p1s_ov = prd_overlays[i=`s`]; exit/loop; ENDIF; )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=2]
+ can var p1s_this_shape
+ENDIF
+
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+
+
+GO bn_reset
+cancel mode verify
+GO err693_list_missing
+! err693_list_missing.jnl
+
+let a= {1,2,3}
+let b = 1./0
+
+! Ths listing of b is .... was squashed onto the ends of values of a.
+! 1 / 1: 1.000..
+! 2 / 2: 2.000..
+
+list a,b
+ X: 0.5 to 3.5
+ Column 1: A is {1,2,3}
+ Column 2: B is 1./0
+ A B
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+
+GO bn_reset
+cancel mode verify
+GO err693_shf_subscr
+! err693_shf_subscr.jnl
+! ticket 2231 Subscripts used to compute @SHF-1 at the low end of the axis
+
+
+def ax/edge/z=0:40:10 zax_t
+def ax/edge/z=5:45:10 zax_w
+let zw = z[gz=zax_w]
+let zdiff = zw - missing(zw[z=@shf:-1],0)
+let zdiff_t = zdiff[gz=zax_t at asn]
+
+! a range of K shows the values correctly
+list zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ SUBSET : 4 points (Z)
+ 5 / 1: 10.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+
+! but just K=1 returned a K=0 error
+can mem
+list/k=1 zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ Z : 5
+ 10.00
+
+! Shift of +1
+can mem
+let zdiff = zw - missing(zw[z=@shf:1],0)
+list/k=4 zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ Z : 35
+ 40.00
+list/k=3:4 zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ SUBSET : 2 points (Z)
+ 25 / 3: -10.00
+ 35 / 4: 40.00
+
+GO bn_reset
+cancel mode verify
+GO err693_shift_w_region
+! err693_shift_w_region
+! Ticket 2300. In fact with bounds checking on, the list a[i=@shf] would have
+! caused a Fortran runtime error with out-of-bounds subscripts. The fix for
+! ticket 2301 fixes this as well.
+
+set region/x=10:20
+let a = {1,2,3}
+list a
+ VARIABLE : {1,2,3}
+ SUBSET : 3 points (X)
+ 1 / 1: 1.000
+ 2 / 2: 2.000
+ 3 / 3: 3.000
+list a[i=@shf]
+ VARIABLE : {1,2,3}
+ shifted by 1 pts on X
+ SUBSET : 3 points (X)
+ 1 / 1: 2.000
+ 2 / 2: 3.000
+ 3 / 3: ....
+cancel region
+list a[i=@shf]
+ VARIABLE : {1,2,3}
+ shifted by 1 pts on X
+ SUBSET : 3 points (X)
+ 1 / 1: 2.000
+ 2 / 2: 3.000
+ 3 / 3: ....
+
+
+GO bn_reset
+cancel mode verify
+GO err693_scalar_grids
+! err693_scalar_grids.jnl
+! See ticket 1602
+
+! multiplication by scalar variable "let one = 1" added
+! abstract axes to the expression in all directions not
+! already reperesented in the grid.
+
+
+! The T averaging is ignored; no T direction in the grid.
+use levitus_climatology
+let a = temp[x=140,y=0,z=0]
+list a[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : TEMP[X=140,Y=0,Z=0]
+ FILENAME : levitus_climatology.cdf
+ LONGITUDE: 140E
+ LATITUDE : 0
+ DEPTH (m): 0
+ 29.30
+
+! Multiply by a variable which is a constant (prev. this
+! resulted in an illegal use of transform error.)
+let one = 1
+let b = one*a
+list b[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : ONE*A
+ FILENAME : levitus_climatology.cdf
+ DEPTH (m): 0
+ 29.30
+
+! Test with a constant-array variable.
+let two = {2}
+let c = two*a
+list c[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : TWO*A
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ DEPTH (m): 0
+ 58.59
+
+
+! check interactions with GC functions (prev. this
+! resulted in an illegal use of transform error.)
+LET v = X[x=1:4:1] + Y[Y=.1:.4:.1]
+LET a = XSEQUENCE( v[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+LIST a[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+ SUBSET : 4 by 2 points (X-Z)
+ 1 2 3 4
+ 1 2 3 4
+ 0.01 / 1: 2.210 3.210 2.310 3.310
+ 0.02 / 2: 2.220 3.220 2.320 3.320
+list b
+ VARIABLE : ONE*A
+ SUBSET : 4 by 2 points (X-Z)
+ 1 2 3 4
+ 1 2 3 4
+ 0.01 / 1: 2.210 3.210 2.310 3.310
+ 0.02 / 2: 2.220 3.220 2.320 3.320
+
+list b[x=@ave,k=@ave]
+ VARIABLE : ONE*A
+ X : 0.5 to 4.5 (XZ ave)
+ Z : 0.005 to 0.025 (XZ ave)
+ 2.765
+
+
+
+GO bn_reset
+cancel mode verify
+GO bn_permute_ascii
+! bn_permute_ascii.jnl
+! test permutations when reading ascii data, in E and F directions
+! 11/18/2014
+! see ticket 2217: was not working for grids in E and F
+
+
+! First with T axis
+
+! unpermuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM 1:4 ... ... 1:12 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 4 by 12 points (X-T)
+ 1 2 3 4
+ 1 2 3 4
+ 1 / 1: -6.85 -6.75 -6.65 -6.55
+ 2 / 2: -11.71 -11.72 -11.73 -11.74
+ 3 / 3: -19.12 -19.22 -19.32 -19.42
+ 4 / 4: -24.81 -24.82 -24.83 -24.84
+ 5 / 5: -27.19 -27.29 -27.39 -27.49
+ 6 / 6: -28.51 -28.52 -28.53 -28.54
+ 7 / 7: -30.27 -30.37 -30.47 -30.57
+ 8 / 8: -31.34 -31.54 -31.64 -31.74
+ 9 / 9: -29.34 -29.44 -29.54 -29.64
+ 10 / 10: -23.29 -23.39 -23.49 -23.59
+ 11 / 11: -14.91 -14.92 -14.93 -14.94
+ 12 / 12: -8.09 -8.19 -8.29 -8.39
+
+! permuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM 1:4 ... ... 1:12 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 4 by 12 points (X-T)
+ 1 2 3 4
+ 1 2 3 4
+ 1 / 1: -6.85 -6.75 -6.65 -6.55
+ 2 / 2: -11.71 -11.72 -11.73 -11.74
+ 3 / 3: -19.12 -19.22 -19.32 -19.42
+ 4 / 4: -24.81 -24.82 -24.83 -24.84
+ 5 / 5: -27.19 -27.29 -27.39 -27.49
+ 6 / 6: -28.51 -28.52 -28.53 -28.54
+ 7 / 7: -30.27 -30.37 -30.47 -30.57
+ 8 / 8: -31.34 -31.54 -31.64 -31.74
+ 9 / 9: -29.34 -29.44 -29.54 -29.64
+ 10 / 10: -23.29 -23.39 -23.49 -23.59
+ 11 / 11: -14.91 -14.92 -14.93 -14.94
+ 12 / 12: -8.09 -8.19 -8.29 -8.39
+
+! Then same with F axis
+can data/all
+
+def axis/f=1:12:1 f12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/f=f12 fxgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM 1:4 ... ... ... ... 1:12
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 4 by 12 points (X-F)
+ 1 2 3 4
+ 1 2 3 4
+ 1 / 1: -6.85 -6.75 -6.65 -6.55
+ 2 / 2: -11.71 -11.72 -11.73 -11.74
+ 3 / 3: -19.12 -19.22 -19.32 -19.42
+ 4 / 4: -24.81 -24.82 -24.83 -24.84
+ 5 / 5: -27.19 -27.29 -27.39 -27.49
+ 6 / 6: -28.51 -28.52 -28.53 -28.54
+ 7 / 7: -30.27 -30.37 -30.47 -30.57
+ 8 / 8: -31.34 -31.54 -31.64 -31.74
+ 9 / 9: -29.34 -29.44 -29.54 -29.64
+ 10 / 10: -23.29 -23.39 -23.49 -23.59
+ 11 / 11: -14.91 -14.92 -14.93 -14.94
+ 12 / 12: -8.09 -8.19 -8.29 -8.39
+
+! Read same data in y-z-t
+can data/all
+
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 1:6 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-T)
+ 1 2
+ 1 2
+ ---- L:1 T: 1
+ 1 / 1: -6.85 -11.71
+ 2 / 2: -19.12 -24.81
+ 3 / 3: -27.19 -28.51
+ 4 / 4: -30.27 -31.34
+ ---- L:2 T: 2
+ 1 / 1: -29.34 -23.29
+ 2 / 2: -14.91 -8.09
+ 3 / 3: -6.75 -11.72
+ 4 / 4: -19.22 -24.82
+ ---- L:3 T: 3
+ 1 / 1: -27.29 -28.52
+ 2 / 2: -30.37 -31.54
+ 3 / 3: -29.44 -23.39
+ 4 / 4: -14.92 -8.19
+ ---- L:4 T: 4
+ 1 / 1: -6.65 -11.73
+ 2 / 2: -19.32 -24.83
+ 3 / 3: -27.39 -28.53
+ 4 / 4: -30.47 -31.64
+ ---- L:5 T: 5
+ 1 / 1: -29.54 -23.49
+ 2 / 2: -14.93 -8.29
+ 3 / 3: -6.55 -11.74
+ 4 / 4: -19.42 -24.84
+ ---- L:6 T: 6
+ 1 / 1: -27.49 -28.54
+ 2 / 2: -30.57 -31.74
+ 3 / 3: -29.64 -23.59
+ 4 / 4: -14.94 -8.39
+
+! And permuted
+
+can data/all
+
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 1:6 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-T)
+ 1 2
+ 1 2
+ ---- L:1 T: 1
+ 1 / 1: -6.85 -30.27
+ 2 / 2: -6.75 -30.37
+ 3 / 3: -6.65 -30.47
+ 4 / 4: -6.55 -30.57
+ ---- L:2 T: 2
+ 1 / 1: -11.71 -31.34
+ 2 / 2: -11.72 -31.54
+ 3 / 3: -11.73 -31.64
+ 4 / 4: -11.74 -31.74
+ ---- L:3 T: 3
+ 1 / 1: -19.12 -29.34
+ 2 / 2: -19.22 -29.44
+ 3 / 3: -19.32 -29.54
+ 4 / 4: -19.42 -29.64
+ ---- L:4 T: 4
+ 1 / 1: -24.81 -23.29
+ 2 / 2: -24.82 -23.39
+ 3 / 3: -24.83 -23.49
+ 4 / 4: -24.84 -23.59
+ ---- L:5 T: 5
+ 1 / 1: -27.19 -14.91
+ 2 / 2: -27.29 -14.92
+ 3 / 3: -27.39 -14.93
+ 4 / 4: -27.49 -14.94
+ ---- L:6 T: 6
+ 1 / 1: -28.51 -8.09
+ 2 / 2: -28.52 -8.19
+ 3 / 3: -28.53 -8.29
+ 4 / 4: -28.54 -8.39
+
+! Now with Y-Z-E
+
+can data/all
+
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 ... 1:6 ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-E)
+ 1 2
+ 1 2
+ ---- M:1 E: 1
+ 1 / 1: -6.85 -11.71
+ 2 / 2: -19.12 -24.81
+ 3 / 3: -27.19 -28.51
+ 4 / 4: -30.27 -31.34
+ ---- M:2 E: 2
+ 1 / 1: -29.34 -23.29
+ 2 / 2: -14.91 -8.09
+ 3 / 3: -6.75 -11.72
+ 4 / 4: -19.22 -24.82
+ ---- M:3 E: 3
+ 1 / 1: -27.29 -28.52
+ 2 / 2: -30.37 -31.54
+ 3 / 3: -29.44 -23.39
+ 4 / 4: -14.92 -8.19
+ ---- M:4 E: 4
+ 1 / 1: -6.65 -11.73
+ 2 / 2: -19.32 -24.83
+ 3 / 3: -27.39 -28.53
+ 4 / 4: -30.47 -31.64
+ ---- M:5 E: 5
+ 1 / 1: -29.54 -23.49
+ 2 / 2: -14.93 -8.29
+ 3 / 3: -6.55 -11.74
+ 4 / 4: -19.42 -24.84
+ ---- M:6 E: 6
+ 1 / 1: -27.49 -28.54
+ 2 / 2: -30.57 -31.74
+ 3 / 3: -29.64 -23.59
+ 4 / 4: -14.94 -8.39
+
+can data/all
+
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 ... 1:6 ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-E)
+ 1 2
+ 1 2
+ ---- M:1 E: 1
+ 1 / 1: -6.85 -30.27
+ 2 / 2: -6.75 -30.37
+ 3 / 3: -6.65 -30.47
+ 4 / 4: -6.55 -30.57
+ ---- M:2 E: 2
+ 1 / 1: -11.71 -31.34
+ 2 / 2: -11.72 -31.54
+ 3 / 3: -11.73 -31.64
+ 4 / 4: -11.74 -31.74
+ ---- M:3 E: 3
+ 1 / 1: -19.12 -29.34
+ 2 / 2: -19.22 -29.44
+ 3 / 3: -19.32 -29.54
+ 4 / 4: -19.42 -29.64
+ ---- M:4 E: 4
+ 1 / 1: -24.81 -23.29
+ 2 / 2: -24.82 -23.39
+ 3 / 3: -24.83 -23.49
+ 4 / 4: -24.84 -23.59
+ ---- M:5 E: 5
+ 1 / 1: -27.19 -14.91
+ 2 / 2: -27.29 -14.92
+ 3 / 3: -27.39 -14.93
+ 4 / 4: -27.49 -14.94
+ ---- M:6 E: 6
+ 1 / 1: -28.51 -8.09
+ 2 / 2: -28.52 -8.19
+ 3 / 3: -28.53 -8.29
+ 4 / 4: -28.54 -8.39
+
+
+GO bn_reset
+cancel mode verify
+GO bn_lon_lat_time_string
+! bn_lon_lat_time_string.jnl
+! Test function written for LAS, to create profile labels from
+! a list of lnogitudes, latitudes, times, and a prefix string.
+
+show function lon_lat_time_string
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
+ Generate strings from longitude,latitude,time
+ longitude: Station longitude
+ latitude: Station latitude
+ time: numeric times
+ time_axis: Varible with a time axis to use to convert time to time strings
+ string to prepend: A label to start the strings (STRING)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
+ Generate names based on longitude,latitude,time,and a string
+ longitude: Station longitude
+ latitude: Station latitude
+ time: numeric times
+ time_axis: Varible with a time axis to use to convert time to time strings
+ string to prepend: A label to start the names with (STRING)
+
+! Longitudes are translated to 0:360 range
+let lon = {-172.44, 210.01, -19.5}
+
+! latitudes are labeled N or S
+let lat = {3.12, 4.9, -15.03}
+
+! Time steps are interpreted in terms of a time axis
+let time = {1,2,3}
+define axis/t=1-jan-2001:31-jan-2001:1/units=days/t0=1-jan-2001 taxis
+let tt = t[gt=taxis]
+
+list lon_lat_time_string(lon, lat, time, tt, "my_string")
+ VARIABLE : LON_LAT_TIME_STRING(LON, LAT, TIME, TT, "my_string")
+ SUBSET : 3 points (X)
+ 1 / 1:"my_string_187.6E_3.12N_02-JAN-2001"
+ 2 / 2:"my_string_210E_4.9N_03-JAN-2001"
+ 3 / 3:"my_string_340.5E_15.03S_04-JAN-2001"
+
+
+GO bn_reset
+cancel mode verify
+GO bn_save_justdim
+! bn_save_justdim.jnl
+! When a dataset has axes that are dimensions but not 1-D coordinate variables,
+! no longer save the coordinate axis that Ferret creates from the dimension.
+!
+! Allows for a dimension and a 2-D variable to have the same name.
+! see ticket 2227
+! 1/21/2015 ACM
+
+use twodtime.nc
+sh dat
+ currently SET data sets:
+ 1> ./twodtime.nc (default)
+ name title I J K L M N
+ TIME GRIB forecast or observation ti ... ... ... 1:8 ... 1:3
+
+
+! previously this gave a name-in-use error
+save/file=a.nc/clobber time
+
+! The file has 2D TIME variable, and TIME as a dimension.
+sp ncdump a.nc >> all_ncdump.out
+
+! Now, keep case and axis name as on input
+CANCEL MODE upcase
+
+save/clobber/keep/file=a.nc time
+sp ncdump a.nc >> all_ncdump.out
+
+SET MODE/LAST upcase_output
+
+GO bn_reset
+cancel mode verify
+GO bn_time2d
+! bn_time2d.jnl
+! 1/30/2015 ACM
+
+! initial changes to handle 2d time variable: forecast and time
+! plot both axes as formatted time axes.
+
+use twodtime.nc
+sh dat
+ currently SET data sets:
+ 1> ./twodtime.nc (default)
+ name title I J K L M N
+ TIME GRIB forecast or observation ti ... ... ... 1:8 ... 1:3
+
+sh att time
+ attributes for dataset: ./twodtime.nc
+ time.units = calendar Month since 2014-11-01T00:00:00Z
+ time.long_name = GRIB forecast or observation time
+ time.calendar = proleptic_gregorian
+ time.bounds = time_bounds
+ time.history = From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD
+ time.orig_file_axname = time
+
+! The file has the t axis as just a dimension. Define another
+! axis with time units
+
+def axis/t=1:8:1/units=month/t0=1-nov-2014 taxis
+let time2d = time[gt=taxis at asn]
+set att/like=time time2d
+
+shade time2d
+shade/trans time2d
+
+GO bn_reset
+cancel mode verify
+GO bn_legend_labels
+! bn_legend_labels.jnl
+! The legend labels on a multi-line plot describe the
+! variable and context but are not controlable by the user.
+!
+! /KEY=title tells Ferret to label the legend with the variable
+! title.
+! *acm* 2/4/2015 Ticket 2231
+
+use coads_climatology
+let/title=January sst1 = sst[l=1]
+let/title=February sst2 = sst[l=2]
+let/title=March sst3 = sst[l=3]
+
+! Draw a plot and show the labels on the legend.
+plot/x=300/y=20:65 sst1,sst2,sst3
+sh sym lab7,lab8,lab9
+LAB7 = "SST1[T=16-JAN 06:00]"
+LAB9 = "SST3[T=17-MAR 02:58]"
+LAB8 = "SST2[T=15-FEB 16:29]"
+
+! Draw a plot with legend labeled with the variable titles.
+plot/x=300/y=20:65/key=title sst1,sst2,sst3
+sh sym lab7,lab8,lab9
+LAB7 = "January"
+LAB9 = "March"
+LAB8 = "February"
+
+GO bn_reset
+cancel mode verify
+GO bn_DQ
+! bn_DQ.jnl *sh* 2/2015
+! test the use of _DQ_ and _SQ_ in lieu of " and '
+
+let foobar = 1
+let foobar_ = 1
+
+LIST foobar, foobar_
+ Column 1: FOOBAR is 1
+ Column 2: FOOBAR_ is 1
+ FOOBAR FOOBAR_
+I / *: 1.000 1.000
+
+LIST "foobar" ! bug fix: pre-V694 used to list the value of foobar
+ VARIABLE : "foobar"
+ "foobar"
+let a = "foobar"
+list a
+ VARIABLE : "foobar"
+ "foobar"
+
+list _DQ_foobar_DQ_
+ VARIABLE : _DQ_foobar_DQ_
+ "foobar"
+let a = _DQ_foobar_DQ_
+list a
+ VARIABLE : _DQ_foobar_DQ_
+ "foobar"
+
+! ======
+list "_DQ_foobar_DQ_"
+ VARIABLE : "_DQ_foobar_DQ_"
+ "_DQ_foobar_DQ_"
+let a = "_DQ_foobar_DQ_"
+list a
+ VARIABLE : "_DQ_foobar_DQ_"
+ "_DQ_foobar_DQ_"
+
+list _DQ_"foobar"_DQ_
+ VARIABLE : _DQ_"foobar"_DQ_
+ ""foobar""
+let a = _DQ_"foobar"_DQ_
+list a
+ VARIABLE : _DQ_"foobar"_DQ_
+ ""foobar""
+
+! ======
+list 'FOOBAR'
+ VARIABLE : 1
+ 1.000
+let a = 'FOOBAR'
+list a
+ VARIABLE : 'FOOBAR'
+ 1.000
+
+list _SQ_FOOBAR_SQ_
+ VARIABLE : 1
+ 1.000
+let a = _SQ_FOOBAR_SQ_
+list a
+ VARIABLE : _SQ_FOOBAR_SQ_
+ 1.000
+
+! ======
+list "'foobar'"
+ VARIABLE : "'foobar'"
+ "'foobar'"
+let a = "'foobar'"
+list a
+ VARIABLE : "'foobar'"
+ "'foobar'"
+
+list _DQ_'foobar'_DQ_
+ VARIABLE : _DQ_'foobar'_DQ_
+ "'foobar'"
+let a = _DQ_'foobar'_DQ_
+list a
+ VARIABLE : _DQ_'foobar'_DQ_
+ "'foobar'"
+
+! ======
+list "_SQ_foobar_SQ_"
+ VARIABLE : "_SQ_foobar_SQ_"
+ "_SQ_foobar_SQ_"
+let a = "_SQ_foobar_SQ_"
+list a
+ VARIABLE : "_SQ_foobar_SQ_"
+ "_SQ_foobar_SQ_"
+
+list _DQ__SQ_foobar_SQ__DQ_
+ VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+ "_SQ_foobar_SQ_"
+let a = _DQ__SQ_foobar_SQ__DQ_
+list a
+ VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+ "_SQ_foobar_SQ_"
+
+! ======
+list 'FOOBAR' + 'FOOBAR'
+ VARIABLE : 'FOOBAR' + 'FOOBAR'
+ 2.000
+let a = 'FOOBAR' + 'FOOBAR'
+list a
+ VARIABLE : 'FOOBAR' + 'FOOBAR'
+ 2.000
+
+list _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_ ! should behave like the preceding
+ VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+ 2.000
+let a = _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+list a
+ VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+ 2.000
+
+! ====== demonstrate hiding all sorts of characters
+let a = _DQ_'"+-/;_SQ_foobar"'_DQ_
+list a
+ VARIABLE : _DQ_'"+-/;_SQ_foobar"'_DQ_
+ "'"+-/;_SQ_foobar"'"
+
+! ======
+say "hello"
+hello
+say _DQ_hello_DQ_
+hello
+
+! ======
+list {"foobar","foobar"}
+ VARIABLE : {"foobar","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+let a = {"foobar","foobar"}
+list a
+ VARIABLE : {"foobar","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+
+list {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+let a = {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+list a
+ VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+
+list {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_} ! DQ used to protect '"'
+ VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:""foobar""
+ 2 / 2:""foobar""
+let a = {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+list a
+ VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:""foobar""
+ 2 / 2:""foobar""
+
+! ======
+list {SPAWN:"ls weird_name1.cdf","foobar"}
+ VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+list a
+ VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+
+list {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list a
+ VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+
+list {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+ VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list a
+ VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+
+! ======
+! in repl_exprns:
+say `"=" EQ "="`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_=_DQ_ EQ _DQ_=_DQ_`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_"="_DQ_ EQ _DQ_"="_DQ_` ! DQ used to protect '"'
+ !-> MESSAGE/CONTINUE 1
+1
+
+! in xeq_if:
+IF 1 THEN SAY "I is too big" ENDIF
+I is too big
+IF 1 THEN SAY _DQ_I is too big_DQ_ ENDIF
+I is too big
+IF 1 THEN SAY _DQ_"I is too big"_DQ_ ENDIF ! DQ used to protect '"'
+"I is too big"
+
+! ======
+DEFINE SYMBOL a "foobar"
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+DEFINE SYMBOL a _DQ_foobar_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+
+! ======
+DEFINE SYMBOL a "(`foobar,return=xaxis`)"
+ !-> DEFINE SYMBOL a "(ABSTRACT)"
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
+ !-> DEFINE SYMBOL a _DQ_(ABSTRACT)_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+
+! ======
+GO bn_DQ.sub _DQ_+-/_SQ_\!foo"bar;_SQ_"_DQ_ "_DQ_+-/_SQ_\!foobar;_SQ_"
+! bn_DQ.sub arg_with_DQ arg_with_quotes
+
+SAY _DQ_ "-quotations ok as in $1%any_arg_with_quotes%_DQ_
+ !-> MESSAGE/CONTINUE _DQ_ "-quotations ok as in +-/_SQ_!foo"bar;_SQ_"_DQ_
+ "-quotations ok as in +-/_SQ_!foo"bar;_SQ_"
+SAY "_DQ_ delimiters ok as in $2%any_arg_with_DQ%"
+ !-> MESSAGE/CONTINUE "_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_"
+_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_
+
+
+! ====== string arguments to functions
+list STRCAT( "HELL" , "O" )
+ VARIABLE : STRCAT( "HELL" , "O" )
+ "HELLO"
+list STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+ VARIABLE : STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+ "HELLO"
+
+! ======
+let/title= "title of A" a = 1
+list a
+ VARIABLE : title of A
+ 1.000
+let/title=_DQ_title of A_DQ_ a = 1
+list a
+ VARIABLE : title of A
+ 1.000
+let/title=_DQ_"title of A"_DQ_ a = 1 ! DQ used to protect '"'
+list a
+ VARIABLE : "title of A"
+ 1.000
+
+! ======
+use weird_name1.cdf
+list 'v2-and-minus'[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list 'v2-and-minus'[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list 'v2-and-minus'[i=4:6] / 'X'[i=4:6]
+ VARIABLE : 'v2-and-minus'[I=4:6] / 'X'[I=4:6]
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: -0.8741
+ 5 / 5: -0.8482
+ 6 / 6: -0.8166
+list _SQ_v2-and-minus_SQ_[i=4:6] / _SQ_X_SQ_[i=4:6]
+ VARIABLE : _SQ_v2-and-minus_SQ_[I=4:6] / _SQ_X_SQ_[I=4:6]
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: -0.8741
+ 5 / 5: -0.8482
+ 6 / 6: -0.8166
+
+! ======
+SET REGION/T= "1-jan-2001":"15-jan-2001"
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001_DQ_:_DQ_15-jan-2001_DQ_
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+SET REGION/T= "1-jan-2001:12:00":"15-jan-2001 12:00"
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001:12:00_DQ_:_DQ_15-jan-2001 12:00_DQ_
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+
+! ======
+DEFINE ATTRIBUTE foobar.some_text = "some text about foobar"
+SHOW ATTRIBUTE/ALL foobar
+ attributes for user-defined variables
+ foobar.long_name = 1
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar
+DEFINE ATTRIBUTE foobar.some_text = _DQ_some text about foobar_DQ_
+SHOW ATTRIBUTE/ALL foobar
+ attributes for user-defined variables
+ foobar.long_name = 1
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar
+DEFINE ATTR foobar.some_text = _DQ_"quoted attribute"_DQ_ ! DQ protects '"'
+SHOW ATTRIBUTE/ALL foobar
+ attributes for user-defined variables
+ foobar.long_name = 1
+ foobar.missing_value = -1.E+34
+ foobar.some_text = "quoted attribute"
+
+! ======
+SPAWN "ls weird_name1.*"
+weird_name1.cdf
+SPAWN _DQ_ls weird_name1.*_DQ_
+weird_name1.cdf
+
+! ======
+LET a = {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+LIST a
+ VARIABLE : {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+ SUBSET : 3 points (X)
+ 1 / 1:"first.nc"
+ 2 / 2:"weird_name1.cdf"
+ 3 / 3:"last.nc"
+LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+LIST a
+ VARIABLE : {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+ SUBSET : 3 points (X)
+ 1 / 1:"first.nc"
+ 2 / 2:"weird_name1.cdf"
+ 3 / 3:"last.nc"
+
+! =========================
+! !!!!!! TEMPORARY LINE
+! !!!!!! see bug report err693_xeq_show.jnl
+show data ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
+ currently SET data sets:
+ 1> ./weird_name1.cdf (default)
+ name title I J K L M N
+ v1 lower case v1 1:20 ... ... ... ... ...
+ v2-and-minus
+ SIN(2+I/10) 1:20 ... ... ... ... ...
+ V1 Upper case V1 1:20 ... ... ... ... ...
+ I SIN(4+I/10) 1:20 ... ... ... ... ...
+ X SIN(5+I/10) 1:20 ... ... ... ... ...
+
+! !!!!!!
+! =========================
+ ! ======
+define grid/x=_DQ_v1_DQ_ gg
+show grid gg
+ GRID GG
+ name axis # pts start end
+ XAX1_20 X 20 r 1 20
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+
+! ======
+LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
+LIST A
+ VARIABLE : 'A title w/ "sq"'. Ship_Ka'imimoana
+ 1.000
+
+! ======
+contour/LEVELS= "(-10,10,2)DARK(-10,10,8)" \
+ 10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+contour/LEVELS= _DQ_(-10,10,2)DARK(-10,10,8)_DQ_ \
+ 10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+
+! ====== parse, parsex routines
+!plot/set x[i=1:3]^2
+!ppl title "'A title w/ single quotes'. Ship Ka'imimoana"
+!ppl plot
+!label 2,5,0 "'A title w/ single quotes'. Ship Ka'imimoana"
+
+plot/set x[i=1:3]^2
+ppl title _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' for emacs
+ppl plot
+label 2,5,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ppl %label 2,4,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+
+! ====== EQUAL_PEMUTE
+list/order=_DQ_yx_DQ_ 10*i[i=1:3] + j[j=1:2]
+ VARIABLE : 10*I[I=1:3] + J[J=1:2]
+ SUBSET : 2 by 3 points (Y-X)
+ 1 2
+ 1 2
+ 1 / 1: 11.00 12.00
+ 2 / 2: 21.00 22.00
+ 3 / 3: 31.00 32.00
+
+! ====== EQUAL_COLOR
+plot/color=_DQ_red_DQ_ i[i=1:100]^2
+
+! ====== EQUAL_RANGE
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980" \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980_DQ_ \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980:12:00" \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+
+! the following usages for _DQ_ and _SQ_ are NOT supported:
+! 1. internal PLOT+ syntax
+! e.g. PPL XFOR (i5, ''LONW'')
+
+! 2. quote used as a delimiter for symbol substitution
+! e.g. ($mysymbol"0|red>1|green>2") ! several single char als. e.g. "%"
+
+! in xeq_set: double quotes around SET MODE argument -- _DQ_ not supported
+
+! in put_label: special hack for "'date'" -- _SQ_ not supported
+
+! it isn't clear that there is really a requirement for the _SQ_ syntax at all
+! since we are adding this feature to meet our own needs in LAS, we won't
+! make the extra effort to hit all of the obscure cases. As a result, the
+! occurrences of IF string .EQ. "'" in these routines will be ignored
+! - break_varname
+! - break_varattname
+! - inherit_attrs
+
+! in xeq_define.F: DEFINE AXIS/NAME='my-name' is of unclear purpose
+
+! *********** v6.95Additions ***********
+
+GO bn_reset
+cancel mode verify
+GO bn695_bug_fixes
+! bn695_bug_fixes
+! test various fixes that went into version 6.95
+
+GO bn_reset
+cancel mode verify
+GO err694_shf_missing
+! err694_shf_missing.jnl
+! Test the fix for ticket 2314
+
+! This had been getting a missing-result; now is correct
+use gt4d011.cdf
+list/i=100/j=50/k=1/l=24 temp[l=@shf]
+ VARIABLE : TEMPERATURE (deg. C)
+ FILENAME : gt4d011.cdf
+ LONGITUDE: 130.5W
+ LATITUDE : 1.5N
+ DEPTH (m): 5
+ TIME : 04-JAN-1983 10:00 (shifted by 1 pts)
+ 32.10
+
+! Check shift that takes us beyond the end of a modulo axis (at x=20)
+can dat/all; use coads_climatology
+list/x=10:30/y=-60/l=1 sst
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 10 points (LONGITUDE)
+ LATITUDE : 60S (interpolated)
+ TIME : 16-JAN 06:00
+ 11E / -4: 0.422
+ 13E / -3: 0.368
+ 15E / -2: 0.505
+ 17E / -1: 0.207
+ 19E / 0: 0.583
+ 21E / 1: 0.734
+ 23E / 2: 0.472
+ 25E / 3: 0.526
+ 27E / 4: 0.820
+ 29E / 5: 1.017
+list/x=10:30/y=-60/l=1 sst[i=@shf:3]
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ shifted by 3 pts on X
+ FILENAME : coads_climatology.cdf
+ SUBSET : 10 points (LONGITUDE)
+ LATITUDE : 60S (interpolated)
+ TIME : 16-JAN 06:00
+ 11E / -4: 0.207
+ 13E / -3: 0.583
+ 15E / -2: 0.734
+ 17E / -1: 0.472
+ 19E / 0: 0.526
+ 21E / 1: 0.820
+ 23E / 2: 1.017
+ 25E / 3: 1.062
+ 27E / 4: 1.423
+ 29E / 5: 1.221
+
+GO bn_reset
+cancel mode verify
+GO err694_longname_showdat
+! err694_longname_showdat.jnl
+! ticket 2317
+!
+! Make a file whose name starts the same as file with long name.
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+
+! Long name was not matched by SHOW DAT filename
+! this previously returned an unknown dataset error
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+ currently SET data sets:
+ 1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
+ name title I J K L M N
+ PROF Prof ... ... ... ... 1:21 ...
+ TIME Time ... ... ... ... 1:21 ...
+ LATITUDE Latitude ... ... ... ... 1:21 ...
+ LONGITUDE
+ Longitude ... ... ... ... 1:21 ...
+ ROWSIZE Number of Observations for this ... ... ... ... 1:21 ...
+ PRESS_DB PRESS_DB 1:373 ... ... ... ... ...
+ PCO2 PCO2 1:373 ... ... ... ... ...
+
+
+! If a file matched to 1st 32 characters, the shorter-named
+! datset was mistakenly returned.
+
+use WestCoastCarbon_9d9c_f562_77b5_5
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+ currently SET data sets:
+ 1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ name title I J K L M N
+ PROF Prof ... ... ... ... 1:21 ...
+ TIME Time ... ... ... ... 1:21 ...
+ LATITUDE Latitude ... ... ... ... 1:21 ...
+ LONGITUDE
+ Longitude ... ... ... ... 1:21 ...
+ ROWSIZE Number of Observations for this ... ... ... ... 1:21 ...
+ PRESS_DB PRESS_DB 1:373 ... ... ... ... ...
+ PCO2 PCO2 1:373 ... ... ... ... ...
+
+
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+
+GO bn_reset
+cancel mode verify
+GO err693_std4d
+! err693_std4d
+! Check fix to ticket 2319: std transform in multi-dimensions
+
+
+let a = x[gx=1:3:1] * y[gy=1:3:1]
+let astd = a[x=@std,y=@std]
+let avar = a[x=@var,y=@var]
+let a2 = a^2
+let avar_calc = a2[x=@ave,y=@ave] - a[x=@ave,y=@ave]^2
+let astd_x = a[x=@std]
+let astd_x_y = astd_x[y=@std]
+
+! STD and VAR in x and y together; vs astd_x_y separately
+list astd^2, avar, avar_calc, astd_x_y^2
+ X: 0.5 to 3.5
+ Y: 0.5 to 3.5
+ Column 1: EX#1 is ASTD^2
+ Column 2: AVAR is A[X=@VAR,Y=@VAR]
+ Column 3: AVAR_CALC is A2[X=@AVE,Y=@AVE] - A[X=@AVE,Y=@AVE]^2
+ Column 4: EX#4 is ASTD_X_Y^2
+ EX#1 AVAR AVAR_CA EX#4
+I / *: 5.778 5.778 5.778 0.4444
+
+
+! Now in the E and F directions
+
+let a = _e[ge=1:3:1] * _f[gf=1:3:1]
+let astd = a[e=@std,f=@std]
+let avar = a[e=@var,f=@var]
+let a2 = a^2
+let avar_calc = a2[e=@ave,f=@ave] - a[e=@ave,f=@ave]^2
+let astd_e = a[e=@std]
+let astd_e_f = astd_e[f=@std]
+
+list astd^2, avar, avar_calc, astd_e_f^2
+ E: 0.5 to 3.5
+ F: 0.5 to 3.5
+ Column 1: EX#1 is ASTD^2
+ Column 2: AVAR is A[E=@VAR,F=@VAR]
+ Column 3: AVAR_CALC is A2[E=@AVE,F=@AVE] - A[E=@AVE,F=@AVE]^2
+ Column 4: EX#4 is ASTD_E_F^2
+ EX#1 AVAR AVAR_CA EX#4
+I / *: 5.778 5.778 5.778 0.4444
+
+
+GO bn_reset
+cancel mode verify
+GO bn_f_tax_fcns
+! bn_f_from_tax_fcns.jnl
+! test tax_* functions returning results from a
+! time-formatted axis in the F direction
+!
+! 2/2015 ACM
+
+define axis/f=1-jan-2011:31-jan-2011:1/units=hours fax
+
+
+
+let ff = _f[gf=fax]
+! Test RETURN=F0
+say `ff,return=F0`
+ !-> MESSAGE/CONTINUE 15-JAN-1901
+15-JAN-1901
+
+list/N=20:30 tax_datestring(_F[g=ff],ff,"minute")
+ VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"minute")
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19:00"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20:00"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21:00"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22:00"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23:00"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00:00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01:00"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02:00"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03:00"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04:00"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05:00"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"hour")
+ VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"hour")
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"day")
+ VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"day")
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011"
+list/N=20:30 tax_dayfrac(_F[g=ff],ff)
+ VARIABLE : TAX_DAYFRAC(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 0.7917
+ 01-JAN-2011 20:00 / 21: 0.8333
+ 01-JAN-2011 21:00 / 22: 0.8750
+ 01-JAN-2011 22:00 / 23: 0.9167
+ 01-JAN-2011 23:00 / 24: 0.9583
+ 02-JAN-2011 00:00 / 25: 0.0000
+ 02-JAN-2011 01:00 / 26: 0.0417
+ 02-JAN-2011 02:00 / 27: 0.0833
+ 02-JAN-2011 03:00 / 28: 0.1250
+ 02-JAN-2011 04:00 / 29: 0.1667
+ 02-JAN-2011 05:00 / 30: 0.2083
+list/N=20:30 tax_day(_F[g=ff],ff)
+ VARIABLE : TAX_DAY(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 1.000
+ 01-JAN-2011 20:00 / 21: 1.000
+ 01-JAN-2011 21:00 / 22: 1.000
+ 01-JAN-2011 22:00 / 23: 1.000
+ 01-JAN-2011 23:00 / 24: 1.000
+ 02-JAN-2011 00:00 / 25: 2.000
+ 02-JAN-2011 01:00 / 26: 2.000
+ 02-JAN-2011 02:00 / 27: 2.000
+ 02-JAN-2011 03:00 / 28: 2.000
+ 02-JAN-2011 04:00 / 29: 2.000
+ 02-JAN-2011 05:00 / 30: 2.000
+list/N=20:30 tax_jday(_F[g=ff],ff)
+ VARIABLE : TAX_JDAY(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 1.000
+ 01-JAN-2011 20:00 / 21: 1.000
+ 01-JAN-2011 21:00 / 22: 1.000
+ 01-JAN-2011 22:00 / 23: 1.000
+ 01-JAN-2011 23:00 / 24: 1.000
+ 02-JAN-2011 00:00 / 25: 2.000
+ 02-JAN-2011 01:00 / 26: 2.000
+ 02-JAN-2011 02:00 / 27: 2.000
+ 02-JAN-2011 03:00 / 28: 2.000
+ 02-JAN-2011 04:00 / 29: 2.000
+ 02-JAN-2011 05:00 / 30: 2.000
+list/N=20:30 tax_month(_F[g=ff],ff)
+ VARIABLE : TAX_MONTH(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 1.000
+ 01-JAN-2011 20:00 / 21: 1.000
+ 01-JAN-2011 21:00 / 22: 1.000
+ 01-JAN-2011 22:00 / 23: 1.000
+ 01-JAN-2011 23:00 / 24: 1.000
+ 02-JAN-2011 00:00 / 25: 1.000
+ 02-JAN-2011 01:00 / 26: 1.000
+ 02-JAN-2011 02:00 / 27: 1.000
+ 02-JAN-2011 03:00 / 28: 1.000
+ 02-JAN-2011 04:00 / 29: 1.000
+ 02-JAN-2011 05:00 / 30: 1.000
+list/N=20:30 tax_yearfrac(_F[g=ff],ff)
+ VARIABLE : TAX_YEARFRAC(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 0.004909
+ 01-JAN-2011 20:00 / 21: 0.005023
+ 01-JAN-2011 21:00 / 22: 0.005137
+ 01-JAN-2011 22:00 / 23: 0.005251
+ 01-JAN-2011 23:00 / 24: 0.005365
+ 02-JAN-2011 00:00 / 25: 0.005479
+ 02-JAN-2011 01:00 / 26: 0.005594
+ 02-JAN-2011 02:00 / 27: 0.005708
+ 02-JAN-2011 03:00 / 28: 0.005822
+ 02-JAN-2011 04:00 / 29: 0.005936
+ 02-JAN-2011 05:00 / 30: 0.006050
+list/N=20:30 tax_year(_F[g=ff],ff)
+ VARIABLE : TAX_YEAR(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 2011.
+ 01-JAN-2011 20:00 / 21: 2011.
+ 01-JAN-2011 21:00 / 22: 2011.
+ 01-JAN-2011 22:00 / 23: 2011.
+ 01-JAN-2011 23:00 / 24: 2011.
+ 02-JAN-2011 00:00 / 25: 2011.
+ 02-JAN-2011 01:00 / 26: 2011.
+ 02-JAN-2011 02:00 / 27: 2011.
+ 02-JAN-2011 03:00 / 28: 2011.
+ 02-JAN-2011 04:00 / 29: 2011.
+ 02-JAN-2011 05:00 / 30: 2011.
+list/N=20:30 tax_jday1900(_F[g=ff],ff)
+ VARIABLE : TAX_JDAY1900(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 40542.
+ 01-JAN-2011 20:00 / 21: 40542.
+ 01-JAN-2011 21:00 / 22: 40542.
+ 01-JAN-2011 22:00 / 23: 40542.
+ 01-JAN-2011 23:00 / 24: 40542.
+ 02-JAN-2011 00:00 / 25: 40543.
+ 02-JAN-2011 01:00 / 26: 40543.
+ 02-JAN-2011 02:00 / 27: 40543.
+ 02-JAN-2011 03:00 / 28: 40543.
+ 02-JAN-2011 04:00 / 29: 40543.
+ 02-JAN-2011 05:00 / 30: 40543.
+list tax_units(ff)
+ VARIABLE : TAX_UNITS(FF)
+ 3600.
+
+! commands from tax_tstep, changing time origin
+
+DEFINE AXIS/F="1-JAN-2000:00:00:01":"1-JAN-2000:00:15:00":2/UNITS=seconds fsec
+LIST/N=440:451 _F[GF=fsec]
+ VARIABLE : _F
+ axis FSEC
+ SUBSET : 12 points (FORECAST)
+ 01-JAN-2000 00:14:39 / 440: 3.123E+09
+ 01-JAN-2000 00:14:41 / 441: 3.123E+09
+ 01-JAN-2000 00:14:43 / 442: 3.123E+09
+ 01-JAN-2000 00:14:45 / 443: 3.123E+09
+ 01-JAN-2000 00:14:47 / 444: 3.123E+09
+ 01-JAN-2000 00:14:49 / 445: 3.123E+09
+ 01-JAN-2000 00:14:51 / 446: 3.123E+09
+ 01-JAN-2000 00:14:53 / 447: 3.123E+09
+ 01-JAN-2000 00:14:55 / 448: 3.123E+09
+ 01-JAN-2000 00:14:57 / 449: 3.123E+09
+ 01-JAN-2000 00:14:59 / 450: 3.123E+09
+ 01-JAN-2000 00:15:01 / 451: 3.123E+09
+LET bsin = SIN(_F[GF=fsec]/40000)
+SAVE/FILE=a.nc/clobber bsin
+CAN VAR/all
+USE a.nc
+
+SET LIST/PREC=7
+! Reset the date to dec 1999
+! Function lets us leave off the leading 0.
+LIST/N=1:15 TAX_TSTEP(bsin, "1-dec-1999:00:00:00" )
+ VARIABLE : TAX_TSTEP(BSIN, "1-dec-1999:00:00:00" )
+ FILENAME : a.nc
+ SUBSET : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 / 1: 2678401.
+ 01-JAN-2000 00:00:03 / 2: 2678403.
+ 01-JAN-2000 00:00:05 / 3: 2678405.
+ 01-JAN-2000 00:00:07 / 4: 2678407.
+ 01-JAN-2000 00:00:09 / 5: 2678409.
+ 01-JAN-2000 00:00:11 / 6: 2678411.
+ 01-JAN-2000 00:00:13 / 7: 2678413.
+ 01-JAN-2000 00:00:15 / 8: 2678415.
+ 01-JAN-2000 00:00:17 / 9: 2678417.
+ 01-JAN-2000 00:00:19 / 10: 2678419.
+ 01-JAN-2000 00:00:21 / 11: 2678421.
+ 01-JAN-2000 00:00:23 / 12: 2678423.
+ 01-JAN-2000 00:00:25 / 13: 2678425.
+ 01-JAN-2000 00:00:27 / 14: 2678427.
+ 01-JAN-2000 00:00:29 / 15: 2678429.
+
+! argument can be upper or lowercase
+! Should list values 1, 3, 5...
+LIST/N=1:15 TAX_TSTEP(bsin, "1-JAN-2000:00:00:00" )
+ VARIABLE : TAX_TSTEP(BSIN, "1-JAN-2000:00:00:00" )
+ FILENAME : a.nc
+ SUBSET : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 / 1: 1.00000
+ 01-JAN-2000 00:00:03 / 2: 3.00000
+ 01-JAN-2000 00:00:05 / 3: 5.00000
+ 01-JAN-2000 00:00:07 / 4: 7.00000
+ 01-JAN-2000 00:00:09 / 5: 9.00000
+ 01-JAN-2000 00:00:11 / 6: 11.00000
+ 01-JAN-2000 00:00:13 / 7: 13.00000
+ 01-JAN-2000 00:00:15 / 8: 15.00000
+ 01-JAN-2000 00:00:17 / 9: 17.00000
+ 01-JAN-2000 00:00:19 / 10: 19.00000
+ 01-JAN-2000 00:00:21 / 11: 21.00000
+ 01-JAN-2000 00:00:23 / 12: 23.00000
+ 01-JAN-2000 00:00:25 / 13: 25.00000
+ 01-JAN-2000 00:00:27 / 14: 27.00000
+ 01-JAN-2000 00:00:29 / 15: 29.00000
+
+! Test with TAX_DATESTRING
+
+DEFINE AXIS/F="1-JAN-1902:00:00:00":"1-JAN-1902:00:30:00":5/UNITS=seconds fsec
+LIST/N=200:205 _F[GF=fsec]
+ VARIABLE : _F
+ axis FSEC
+ SUBSET : 6 points (FORECAST)
+ 01-JAN-1902 00:16:35 / 200: 30327395.
+ 01-JAN-1902 00:16:40 / 201: 30327400.
+ 01-JAN-1902 00:16:45 / 202: 30327405.
+ 01-JAN-1902 00:16:50 / 203: 30327410.
+ 01-JAN-1902 00:16:55 / 204: 30327415.
+ 01-JAN-1902 00:17:00 / 205: 30327420.
+
+LET ff = _F[GF=fsec]
+LET reset_date = TAX_DATESTRING(`_F[GF=fsec,n=1]`, ff, "sec")
+ !-> DEFINE VARIABLE reset_date = TAX_DATESTRING(30326400, ff, "sec")
+LIST/N=1:15 TAX_TSTEP(ff, "`reset_date`")
+ !-> LIST/N=1:15 TAX_TSTEP(ff, "01-JAN-1902 00:00:00")
+ VARIABLE : TAX_TSTEP(FF, "01-JAN-1902 00:00:00")
+ SUBSET : 15 points (FORECAST)
+ 01-JAN-1902 00:00:00 / 1: 0.00000
+ 01-JAN-1902 00:00:05 / 2: 5.00000
+ 01-JAN-1902 00:00:10 / 3: 10.00000
+ 01-JAN-1902 00:00:15 / 4: 15.00000
+ 01-JAN-1902 00:00:20 / 5: 20.00000
+ 01-JAN-1902 00:00:25 / 6: 25.00000
+ 01-JAN-1902 00:00:30 / 7: 30.00000
+ 01-JAN-1902 00:00:35 / 8: 35.00000
+ 01-JAN-1902 00:00:40 / 9: 40.00000
+ 01-JAN-1902 00:00:45 / 10: 45.00000
+ 01-JAN-1902 00:00:50 / 11: 50.00000
+ 01-JAN-1902 00:00:55 / 12: 55.00000
+ 01-JAN-1902 00:01:00 / 13: 60.00000
+ 01-JAN-1902 00:01:05 / 14: 65.00000
+ 01-JAN-1902 00:01:10 / 15: 70.00000
+
+GO bn_reset
+cancel mode verify
+GO bn_fmrc
+! bn_fmrc.jnl
+! initial test of DEFINE DATA/F
+
+use "run1.nc"
+use "run2.nc"
+use "run3.nc"
+use "run4.nc"
+
+define data/hide/F/agg/title fourfiles = 1,2,3,4
+
+sh grid sst
+ GRID (G087)
+ name axis # pts start end
+ LON1 LONGITUDE 10mr 109W 91W
+ LAT LATITUDE 9 r 13N 29N
+ normal Z
+ TF_LAG_T MODEL ELAPSED TIME (12 r 0 11
+ normal E
+ TF_CAL_F FORECAST 4 r 02-JAN-2010 00:00 08-JAN-2010 00:00
+list/i=1/j=1/L=1:6/n=1:4 sst
+ VARIABLE : SST_IN (Deg C)
+ FILENAME : FOURFILES
+ SUBSET : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
+ LONGITUDE: 109W
+ LATITUDE : 13N
+ Verification time increases across row. Initialization time increases down page.
+ 0 1 2 3 4 5
+ 1 2 3 4 5 6
+ 02-JAN-2010 00 / 1: 27.3789 27.4378 27.5751 28.1351 28.8653 28.7771
+ 04-JAN-2010 00 / 2: 54.7577 54.8756 55.1503 56.2703 57.7306 57.5541
+ 06-JAN-2010 00 / 3: 82.1366 82.3133 82.7254 84.4054 86.5959 86.3312
+ 08-JAN-2010 00 / 4: 109.5154 109.7511 110.3006 112.5405 115.4613 115.1082
+
+show att sst
+ attributes for dataset: FOURFILES
+ SST.long_name = SST_IN
+ SST.units = Deg C
+ SST.missing_value = -1.E+34
+ SST.coordinates = FORECAST TIME15 TF_TIMES TIME15 LAT LON1
+ SST._ftime2dRef = TF_TIMES
+
+! Attribute _ftime2dRef pointe to the 2D time variable
+list/L=1:6/n=1:4 `sst._ftime2dRef`
+ !-> list/L=1:6/n=1:4 TF_TIMES
+ VARIABLE : Forecast time step matrix (day since 01-JAN-2010 00:00:00)
+ FILENAME : FOURFILES
+ SUBSET : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
+ Verification time increases across row. Initialization time increases down page.
+ 0 1 2 3 4 5
+ 1 2 3 4 5 6
+ 02-JAN-2010 00 / 1: 1.00000 2.00000 3.00000 4.00000 5.00000 6.00000
+ 04-JAN-2010 00 / 2: 3.00000 4.00000 5.00000 6.00000 7.00000 8.00000
+ 06-JAN-2010 00 / 3: 5.00000 6.00000 7.00000 8.00000 9.00000 10.00000
+ 08-JAN-2010 00 / 4: 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000
+
+
+GO bn_reset
+cancel mode verify
+GO bn_return_defined
+! bn_return_defined.jnl
+! 5/3/2015 *acm*
+! `return=defined` returns 1 if the user variable is defined
+! see ticket 2293
+
+let a = b
+say `a,r=defined` `b,r=defined`
+ !-> MESSAGE/CONTINUE 1 0
+1 0
+
+! abbreviate to 3 letters
+use levitus_climatology
+let temp2 = 2*temp
+say `temp2,return=def`
+ !-> MESSAGE/CONTINUE 1
+1
+
+! returns false for file variables
+say `temp,return=defined`
+ !-> MESSAGE/CONTINUE 0
+0
+
+GO bn_reset
+cancel mode verify
+GO bn_can_var_noerr
+! bn_can_var_noerr.jnl
+! CANCEL VARIABLE/NOERROR
+
+
+let a = 1
+
+! intentional error
+set mode ignore
+cancel var b,a
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ A = 1
+
+cancel mode ignore
+
+! specify /noerr and we can issue the command
+
+cancel var/noerror a,b
+show var
+ Created by DEFINE VARIABLE:
+
+! no effect on CAN VAR/ALL or CAN VAR template_name
+
+let a1 = 1
+let a7 = 7
+let c = 12
+
+cancel var/noerror name*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ C = 12
+ A7 = 7
+ A1 = 1
+
+cancel var/noerror a*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ C = 12
+
+cancel var/noerror/all
+show var
+ Created by DEFINE VARIABLE:
+
+GO bn_reset
+cancel mode verify
+GO bn_annotate
+! bn_annotate.jnl
+! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
+! locates user-defined labels on a plot.
+! /USER and /NOUSER behave as the LABEL command does
+! /NORM locates labels relative to the plot axis, treating them as a unit "square".
+! /VALIGN moves the label up or down relative to the direction of the label
+! /HALIGN is -1, 1, or 0 as always, or larger values to move the label horizontally
+! relative to the direction of the label. Allows us to move, say, one character in
+! or out from the axis corner.
+
+can mode logo
+
+! ANNOTATE /USER
+set v ul
+plot/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+annotate/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=0.2 "X"
+annotate/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=0.2 "X"
+annotate/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=0.2 "X"
+
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+annotate/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=0.2 "BOX"
+
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+ annotate/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=0.2 "BOX"
+
+plot/ov/vs/sym=2/size=2/nolab 3,0
+annotate/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=0.2 "TOP"
+annotate/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=0.2 "BOTTOM"
+
+plot/ov/vs/sym=2/size=2/nolab -3,0
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=0.2 "M"
+
+
+
+! ANNOTATE/NORM
+set v ur
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+
+annotate/norm/xpos=.5/ypos=1.1/halign=0/angle=0/size=0.14 "FLOATING TITLE"
+annotate/norm/xpos=.5/ypos=-.2/halign=0/angle=0/size=0.14 "SUBMERGED TITLE"
+annotate/norm/xpos=0/ypos=1/halign=-1/angle=0/size=0.14 "LEFT/TOP"
+annotate/norm/xpos=.5/ypos=1/halign=0/angle=0/size=0.14 "CTR/TOP"
+annotate/norm/xpos=1/ypos=1/halign=1/angle=0/size=0.14 "RIGHT/TOP"
+annotate/norm/xpos=1/ypos=.5/halign=0/angle=-90/size=0.14 "RIGHT EDGE"
+annotate/norm/xpos=0/ypos=.5/halign=0/angle=90/size=0.14 "LEFT EDGE"
+annotate/norm/xpos=.5/ypos=.5/halign=0/valign=0/angle=0/size=0.14 "DEAD CENTER"
+annotate/norm/xpos=.5/ypos=0/halign=0/valign=1/angle=0/size=0.14 "HANGING FROM BOTTOM"
+annotate/norm/xpos=0/ypos=0/halign=-2/valign=-2/angle=0/siz=0.1 "BOTTOM LEFT INSET"
+annotate/norm/xpos=0/ypos=1/halign=-2/valign=2/angle=0/siz=0.1 "TOP LEFT INSET"
+annotate/norm/xpos=1/ypos=0/halign=2/valign=-2/angle=0/siz=0.1 "BOTTOM RIGHT INSET"
+annotate/norm/xpos=1/ypos=1/halign=2/valign=2/angle=0/siz=0.1 "TOP RIGHT INSET"
+
+! ANNOTATE/NOUSER
+set v ll
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+
+! nouser
+annotate/nouser/xpos=0/ypos=0/halign=-1/angle=0/size=0.15 "At Origin"
+annotate/nouser/xpos=0/ypos=0/halign=-3/valign=-3/angle=0/size=0.15 "With/HALIGN=-3/VALIGN=-3"
+
+annotate/nouser/xpos=($ppl$xlen)/ypos=($ppl$ylen)/halign=1/valign=-1/angle=0/siz=0.15 "Right-align at upper right corner"
+ !-> annotate/nouser/xpos=4.49900/ypos=3.89900/halign=1/valign=-1/angle=0/siz=0.15 "Right-align at upper right corner"
+annotate/nouser/xpos=($ppl$xlen)/ypos=($ppl$ylen)/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+ !-> annotate/nouser/xpos=4.49900/ypos=3.89900/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+
+plot/vs/line/over/color=lightblue/nolab {3,3},{1,6}
+plot/vs/line/over/color=lightblue/nolab {1,5}, {3,3}
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=`($ppl$ylen)/2`/halign=0/valign=0/angle=0/siz=0.15 \
+"Arguments locate the first<nl>line of multi-line labels "
+ !-> annotate/nouser/xpos=2.2495/ypos=1.9495/halign=0/valign=0/angle=0/siz=0.15 "Arguments locate the first<nl>line of multi-line labels "
+
+! angles
+set v lr
+
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+! nouser
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+ !-> annotate/nouser/xpos=2.2495/ypos=3.89900/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+annotate/nouser/xpos=0/ypos=0/halign=0/valign=0/angle=45/size=0.15 "Center At Origin"
+annotate/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+ !-> annotate/nouser/xpos=0/ypos=3.89900/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+annotate/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+ !-> annotate/nouser/xpos=4.49900/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+
+! Test defaults
+! Default is like PPL user-labels
+! /USER/SIZ=0.12/ANGLE=0/HALIGN=0/VALIGN=-1
+
+shade/x=1:2/y=1:2/pal=grayscale i+j
+annotate/xpos=1.5/ypos=1.8 "Anno Label"
+label 1.5,1.6,,,, PPL label
+
+
+! DEFINE ANNOTATION inside a grapchics call with /SET
+can view
+use gt4d011.cdf
+shade/set temp[k=1,l=1]
+ DEFINE ANNOTATION/user/xpos=224/ypos=-3/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+
+shade/set/j=40/L=1 temp
+ DEFINE ANNOTATION/user/xpos=224/ypos=80/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+
+can data/all
+
+plot/set/i=1:5 i
+! nouser
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=0/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.67400/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=7.27400/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=0/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=0/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=0/siz=0.15 "user units right at 3,4"
+ppl plot
+
+! angles
+
+plot/set/i=1:5 i
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=45/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.67400/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=7.27400/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=45/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=45/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=45/siz=0.15 "user units right at 3,4"
+ppl plot
+
+! DEFINE ANNO/NORM
+plot/i=1:5/nolab/set i
+def anno/norm/xp=.5/yp=1.1/hal=0/ang=0/size=.3 "FLOATING TITLE"
+def anno/norm/xp=.5/yp=-.2/hal=0/ang=0/size=.3 "SUBMERGED TITLE"
+def anno/norm/xp=0/yp=1/hal=-1/ang=0/size=.3 "LEFT/TOP"
+def anno/norm/xp=.5/yp=1/hal=0/ang=0/size=.3 "CTR/TOP"
+def anno/norm/xp=1/yp=1/hal=1/ang=0/size=.3 "RIGHT/TOP"
+def anno/norm/xp=1/yp=.5/hal=0/ang=-90/size=.3 "RIGHT EDGE"
+def anno/norm/xp=0/yp=.5/hal=0/ang=90/size=.3 "LEFT EDGE"
+def anno/norm/xp=.5/yp=.5/hal=0/val=0/ang=0/size=.3 "DEAD CENTER"
+def anno/norm/xp=.5/yp=0/hal=0/val=1/ang=0/size=.3 "HANGING FROM BOTTOM"
+def anno/norm/xp=0/yp=0/hal=-2/val=-2/ang=0/size=.2 "BOTTOM LEFT INSET"
+def anno/norm/xp=0/yp=1/hal=-2/val=2/ang=0/size=.2 "TOP LEFT INSET"
+def anno/norm/xp=1/yp=0/hal=2/val=-2/ang=0/size=.2 "BOTTOM RIGHT INSET"
+def anno/norm/xp=1/yp=1/hal=2/val=2/ang=0/size=.2 "TOP RIGHT INSET"
+ppl plot
+
+plot/set/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+
+define annotation/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=.5 "X"
+define annotation/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=.5 "X"
+define annotation/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=.5 "X"
+define annotation/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=.5 "BOX"
+define annotation/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=.5 "BOX"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=.5 "TOP"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=.5 "BOTTOM"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=.5 "M"
+ppl list labels
+
+ @AS{-1,1}
+ @AS{-1,1}
+
+ XPOS YPOS HGT ROT UNITS
+ LAB 1 0.000E+00 7.270E+00 0.120 0 SYSTEM @ASX : 0.5 to 2.5
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB 2 -1.344E+00 -1.000E+00 0.500 -90 USER X
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 3 0.000E+00 -7.492E-01 0.500 0 USER X
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 4 1.243E+00 4.703E-01 0.500 45 USER X
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 5 0.000E+00 4.251E+00 0.500 0 USER BOX
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 6 3.437E-01 -5.000E+00 0.500 90 USER BOX
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 7 3.486E+00 -1.059E+00 0.500 45 USER TOP
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 8 3.000E+00 0.000E+00 0.500 45 USER BOTTOM
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 9 -3.000E+00 0.000E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB10 -2.514E+00 -1.059E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB11 -3.000E+00 0.000E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB12 -2.514E+00 -1.059E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB13 -3.000E+00 2.119E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB14 -1.542E+00 -1.059E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB15 -3.972E+00 4.958E-08 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB16 -2.514E+00 -3.178E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB17 -1.301E+00 -2.654E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB18 -1.782E+00 -3.703E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB19 -3.732E+00 2.643E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB20 -4.213E+00 1.595E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ppl plot
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+plot/ov/vs/sym=2/size=2/nolab 3,0
+plot/ov/vs/sym=2/size=2/nolab -3,0
+
+! intentional errors
+set mode ignore
+can v
+shade/i=1:2/j=1:2/nokey i+j
+
+
+! errors in arguments
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+
+! missing a location
+annotate/nouser/ypos=0 "My Lab"
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+
+! /USER and /NOUSER
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+
+! define annotation
+
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/ypos=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/hal=1/val=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/user/xpos=0/ypos=0 "My Lab"; ppl plot
+
+GO bn_reset
+cancel mode verify
+GO bn_auxiliary
+! bn_auxiliary.jnl: exercise auxiliary coordinate regridding
+
+! notes about the 6/2015 version:
+! -- tests 1D regridding, only, as of 6/2015
+! -- includestests the deprecated "LAYERZ" and "__LayerzRef_" automation syntax
+! ... to be replaced by a different automation syntax in the future
+
+! *sh* 6/2015
+
+! initialize the test environment
+USE levitus_3d_subset
+SPAWN rm layerz_test_data.txt
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+
+! conjure a 4D auxiliary variable that contains the same values
+! as the native Z coordinates
+! regridding using this auxiliary variable should give the same results as
+! conventional regridding -- usefuly to validate the results
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+
+!************
+! exercise the syntax of setting layerz associations
+! do same tests on EZ, uvar, and netCDF variable
+
+! EZ file variable
+LIST/NOHEAD/FILE=layerz_test_data.txt 1
+FILE/VAR=v layerz_test_data.txt
+! set the layerz link to point to a variable named "depth"
+SET VAR/layerz=depth v
+SHOW VAR/LAYERZ v
+ DEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+! modify the layerz link
+SET VAR/layerz=newdepth v
+SHOW VAR/LAYERZ v
+ NEWDEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+ attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V
+ V.missing_value = -1.E+34
+ V.__LayerzRef_ = NEWDEPTH
+cancel var/layerz v
+SHOW VAR/LAYERZ v
+ No variable holds vertical (layerz) coordinates of V
+SHOW ATT v
+ attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V
+ V.missing_value = -1.E+34
+CANCEL DATA layerz_test_data.txt
+
+! user variable
+! set the layerz link
+LET a = temp
+SET VAR/layerz=depth a
+SHOW VAR/LAYERZ a
+ DEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+ attributes for user-defined variables
+ a.long_name = TEMP
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = DEPTH
+! modify the layerz link
+SET VAR/layerz=newdepth a
+SHOW VAR/LAYERZ a
+ NEWDEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+ attributes for user-defined variables
+ a.long_name = TEMP
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = NEWDEPTH
+cancel var/layerz a
+SHOW VAR/LAYERZ a
+ No variable holds vertical (layerz) coordinates of a
+SHOW ATT a
+ attributes for user-defined variables
+ a.long_name = TEMP
+ a.missing_value = -1.E+34
+
+! netCDF file variable
+! set the layerz link
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+ DEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+ attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = DEPTH
+! modify the layerz link
+SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+ NEWDEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+ attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = NEWDEPTH
+cancel var/layerz temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+ No variable holds vertical (layerz) coordinates of TEMP
+SHOW ATT temp[d=levitus_3d_subset] ! __LayerzRef_ has been deleted
+ attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.missing_value = -1.E+10
+ TEMP._FillValue = -1.E+10
+ TEMP.long_name = TEMPERATURE
+ TEMP.history = From /home/users/tmap/ferret/linux/fer_dsets/data/levitus_climatology.cdf
+ TEMP.units = DEG C
+
+! deliberate error
+SET MODE ignore; SET VAR/layerz=depth noexist; SET MODE/last ignore
+
+!************
+! exercise the layerz calculations in various situations
+! compare the manually specified syntax with the automated results
+
+! make "depth" the layerz coordinate variable for "temp"
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+
+! values of the unadulterated variable
+list/PREC=7 temp[z=0:500]
+ VARIABLE : TEMPERATURE (DEG C)
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 11 points (LONGITUDE-LATITUDE-DEPTH (m))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 0
+ 48.5S / 2: 7.725000 7.917999
+ 49.5S / 1: 6.827000 7.007000
+ ---- K:2 Z: 10
+ 48.5S / 2: 7.726000 7.917999
+ 49.5S / 1: 6.843000 7.021999
+ ---- K:3 Z: 20
+ 48.5S / 2: 7.715000 7.907000
+ 49.5S / 1: 6.840000 7.018999
+ ---- K:4 Z: 30
+ 48.5S / 2: 7.594000 7.789000
+ 49.5S / 1: 6.740999 6.923000
+ ---- K:5 Z: 50
+ 48.5S / 2: 7.410999 7.584000
+ 49.5S / 1: 6.624001 6.785000
+ ---- K:6 Z: 75
+ 48.5S / 2: 7.572001 7.666000
+ 49.5S / 1: 6.750999 6.848000
+ ---- K:7 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:8 Z: 150
+ 48.5S / 2: 7.372000 7.464001
+ 49.5S / 1: 6.466000 6.573999
+ ---- K:9 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:10 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:11 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+SHOW GRID
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid GAO1
+ GRID GAO1
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAXLEVITR DEPTH (m) 20 i- 0 5000
+ normal T
+ normal E
+ normal F
+
+! use aux var regridding. Target coordinate points match the source points
+! identically at 0, 100, 200, ... 500
+! values should match the unadulterated variable at these points
+! this command will be issued in diagnostic mode to highlight that the
+! K range over which temp is read is the minimum needed to compute the result
+SET MODE diagnostic
+LET tempz = temp[gz(depth)=zpts]
+LIST/PREC=7 tempz
+ dealloc dynamic grid GAO1 XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ getgrid TEMPZ C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ getgrid DEPTH C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GAO1 XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL NORMAL NORMAL
+ getgrid ZPTS C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid (G108) NORMAL NORMAL (AX113) NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G108) NORMAL NORMAL (AX113) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G108) NORMAL NORMAL (AX113) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999 M: -999 -999 N: -999 -999
+ eval TEMPZ C: 6 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999 M: -999 -999 N: -999 -999
+ allocate dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ strip regrid on Z: TEMP --> (G086) @LIN
+ eval DEPTH C: 9 dset: 1 I: 1 2 J: 1 2 K: 1 20 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo Z M:112 dset: 1 I: -999 -999 J: -999 -999 K: 1 20 L: -999 -999 M: -999 -999 N: -999 -999
+ constan cnst M:104 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ reading TEMP M: 98 dset: 1 I: 1 2 J: 1 2 K: 1 1 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE cnst M:104 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE tpry M: 96 dset: 0 I: 1 2 J: 1 2 K: 1 1 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE Z M:112 dset: 1 I: -999 -999 J: -999 -999 K: 1 20 L: -999 -999 M: -999 -999 N: -999 -999
+ reading TEMP M:112 dset: 1 I: 1 2 J: 1 2 K: 7 12 L: -999 -999 M: -999 -999 N: -999 -999
+ auxgrd TEMP M: 96 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+SHOW GRID tempz
+ dealloc dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid (G086) XAXLEVITR1YAXLEVITR4(AX113) NORMAL NORMAL NORMAL
+ GRID (G086)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ (AX113) Z 5 r 100 500
+ normal T
+ normal E
+ normal F
+!LET tempz = temp[gz=zpts,layerz] ! same regrid using semi-automated notation
+!LIST/PREC=7 tempz
+!SHOW GRID tempz
+SET MODE/last diagnostic
+
+! list a little with no imtermediate variable, so Z labeling is visible
+LIST/PREC=7 temp[gz(depth)=zpts,k=1]
+ VARIABLE : TEMPERATURE (DEG C)
+ regrid: 100 delta on Z at LIN using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 100
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+!LIST/PREC=7 temp[gz=zpts,k=1,layerz] ! same using semi-automated notation
+
+! same calculation, but with a named Z axis
+LET tempzax = temp[gz(depth)=zax]
+LIST tempzax
+ VARIABLE : TEMP[GZ(DEPTH)=ZAX]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+SHOW GRID tempzax
+ GRID (G106)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAX Z (METERS) 5 r 100 500
+ normal T
+ normal E
+ normal F
+!LET tempzax = temp[gz=zax,layerz] ! same regrid using semi-automated notation
+!LIST tempzax
+!SHOW GRID tempzax
+
+! regrid to a different set of Z points
+LET tempz_alt = temp[gz(depth)=2:10:2]
+LIST/PREC=7 tempz_alt
+ VARIABLE : TEMP[GZ(DEPTH)=2:10:2]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 2
+ 48.5S / 2: 7.725200 7.917999
+ 49.5S / 1: 6.830200 7.010000
+ ---- K:2 Z: 4
+ 48.5S / 2: 7.725400 7.917999
+ 49.5S / 1: 6.833400 7.013000
+ ---- K:3 Z: 6
+ 48.5S / 2: 7.725600 7.917999
+ 49.5S / 1: 6.836600 7.016000
+ ---- K:4 Z: 8
+ 48.5S / 2: 7.725800 7.917999
+ 49.5S / 1: 6.839800 7.018999
+ ---- K:5 Z: 10
+ 48.5S / 2: 7.726000 7.917999
+ 49.5S / 1: 6.843000 7.021999
+SHOW GRID tempz_alt
+ GRID (G103)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ (AX129) Z 5 r 2 10
+ normal T
+ normal E
+ normal F
+
+!! do same regrid using the shorhand semi-automated notation
+!LIST/PREC=7 temp[z=2:10:2,layerz] ! lo:hi:delta notation
+!SHOW GRID
+
+! test the shorthand notation var[gz(depth)=100] as an implicit aux var
+! regrid via linear interpolation
+! the value should match the preceding output at Z=6
+LET tempz_1pt = temp[gz(depth)=6]
+LIST/PREC=7 tempz_1pt
+ VARIABLE : TEMP[GZ(DEPTH)=6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 6
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.725600 7.917999
+ 49.5S / 1: 6.836600 7.016000
+SHOW GRID/z tempz_1pt
+ GRID (G087)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ (AX114) Z 1 r 6 6
+ normal T
+ normal E
+ normal F
+
+ K Z ZBOX ZBOXLO
+ 1> 6 6.E-05 5.99997
+
+! do same regrid using the shorhand semi-automated notation
+LIST/PREC=7 temp[z=6,layerz] ! =1pt notation WILL BE CHANGED!
+ VARIABLE : TEMPERATURE (DEG C)
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 6 (interpolated using DEPTH)
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.725600 7.917999
+ 49.5S / 1: 6.836600 7.016000
+SHOW GRID
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid GAO1
+ GRID GAO1
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAXLEVITR DEPTH (m) 20 i- 0 5000
+ normal T
+ normal E
+ normal F
+
+! auxiliary points in reverse order
+! to get results that we can check for correctness, we will reverse the Z-order
+! of the temperature field as well as the depth field.
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET/D=levitus_3d_subset rvdepth = rvdepth0[gz=temp at asn]
+! **** NOTE: THERE'S A SUBTLE MISBEHAVIOR IN AUX REGRID SHOWN IN THIS COMMENTED
+! OUT LINE BUT WILL RARELY OCCUR AND EASILY WORKED AROUND
+!LET rvtempzax = rvtemp[gz(rvdepth)=zax] ! zlims aren't filled in if not given
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+LIST/PREC=7 rvtempzax - tempz
+ VARIABLE : RVTEMPZAX - TEMPZ
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:2 Z: 200
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:3 Z: 300
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:4 Z: 400
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:5 Z: 500
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+SHOW GRID rvtempzax
+ GRID (G106)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAX Z (METERS) 5 r 100 500
+ normal T
+ normal E
+ normal F
+
+! deliberate execution errors:
+LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+LET disordered_tempz1 = temp[gz(disordered_depth1)=zax]
+LET disordered_depth2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+LET disordered_tempz2 = temp[gz(disordered_depth2)=zax]
+SET MODE ignore
+LIST disordered_tempz1
+ VARIABLE : TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+LIST disordered_tempz2
+ VARIABLE : TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+SET MODE/last ignore
+
+! test VTREE with a complex auxiliary variable definitions
+VTREE
+ in default dataset levitus_3d_subset
+ RVTEMPZAX = RVTEMP[GZ(RVDEPTH)=ZAX,Z=100:500]
+ RVTEMP = RVTEMP0[GZ=TEMP at ASN]
+ RVDEPTH = RVDEPTH0[GZ=TEMP at ASN]
+ RVDEPTH0 = ZREVERSE(DEPTH)
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ DISORDERED_TEMPZ2 = TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+ DISORDERED_DEPTH2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ DISORDERED_TEMPZ1 = TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+ DISORDERED_DEPTH1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
+ regrid to ZPTS = Z[Z=100:500:100]
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMPZAX = TEMP[GZ(DEPTH)=ZAX]
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMPZ_1PT = TEMP[GZ(DEPTH)=6]
+ TEMPZ_ALT = TEMP[GZ(DEPTH)=2:10:2]
+ A = TEMP
+
+! 6-dimensional regridding
+
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+LET temp6d = temp/100 + 1*L[L=1:2] + 10*_M[M=1:2] + 100*_N[N=1:2]
+!list/k=7:12/PREC=7 temp6d
+LET tempz6d = temp6d[gz(depth)=zpts]
+!LIST/PREC=7 tempz6d
+! compare pre- and post- regrid at a fixed depth
+stat/z=100 temp6d-tempz6d
+
+ TEMP6D-TEMPZ6D
+ LONGITUDE: 120E to 122E
+ LATITUDE: 50S to 48S
+ DEPTH (m): 100
+ T: 0.5 to 2.5
+ E: 0.5 to 2.5
+ F: 0.5 to 2.5
+ DATA SET: ./levitus_3d_subset.nc
+
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean value: 0 (unweighted average)
+ Standard deviation: 0
+stat/z=400 temp6d-tempz6d
+
+ TEMP6D-TEMPZ6D
+ LONGITUDE: 120E to 122E
+ LATITUDE: 50S to 48S
+ DEPTH (m): 400
+ T: 0.5 to 2.5
+ E: 0.5 to 2.5
+ F: 0.5 to 2.5
+ DATA SET: ./levitus_3d_subset.nc
+
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean value: 0 (unweighted average)
+ Standard deviation: 0
+
+! 6d temperature and 6d depth field
+! hold temperature constant over time, have depths change
+! note that for N=2 depths of less than 100 are no longer in the data hence missing values at Z=100
+LET temp6d_const = temp + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2] ! constant in T,E,F
+LET depth6d = depth + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+LET tempz6d_tDep = temp6d_const[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_tDep
+ VARIABLE : TEMP6D_CONST[GZ(DEPTH6D)=ZPTS]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-Z-T-E-F)
+ 120.5E 121.5E
+ 1 2
+ ---- N:1 F: 1
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.429800 7.528001
+ 49.5S / 1: 6.577600 6.682400
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.043200 7.151200
+ 49.5S / 1: 6.113999 6.234800
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.507401 6.680599
+ 49.5S / 1: 5.503100 5.713500
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.209499 6.403001
+ 49.5S / 1: 5.212800 5.435500
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.870150 6.078201
+ 49.5S / 1: 4.909800 5.133250
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.410999 7.584000
+ 49.5S / 1: 6.624001 6.785000
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.372000 7.464001
+ 49.5S / 1: 6.466000 6.573999
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.709001 6.855000
+ 49.5S / 1: 5.735499 5.907500
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.319500 6.507000
+ 49.5S / 1: 5.316000 5.537500
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.008749 6.211001
+ 49.5S / 1: 5.033000 5.256250
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.502500 7.686500
+ 49.5S / 1: 6.682500 6.854000
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.364600 7.458401
+ 49.5S / 1: 6.465200 6.573600
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.759401 6.898600
+ 49.5S / 1: 5.793599 5.956000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.347000 6.533000
+ 49.5S / 1: 5.341800 5.563000
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.043399 6.244201
+ 49.5S / 1: 5.063800 5.287000
+ ---- N:2 F: 2
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.725000 7.917999
+ 49.5S / 1: 6.827000 7.007000
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: .... ....
+ 49.5S / 1: .... ....
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.429800 7.528001
+ 49.5S / 1: 6.577600 6.682400
+ ---- K:3 Z: 300
+ 48.5S / 2: 7.043200 7.151200
+ 49.5S / 1: 6.113999 6.234800
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.507401 6.680599
+ 49.5S / 1: 5.503100 5.713500
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.209499 6.403001
+ 49.5S / 1: 5.212800 5.435500
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: .... ....
+ 49.5S / 1: .... ....
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.410999 7.584000
+ 49.5S / 1: 6.624001 6.785000
+ ---- K:3 Z: 300
+ 48.5S / 2: 7.372000 7.464001
+ 49.5S / 1: 6.466000 6.573999
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.709001 6.855000
+ 49.5S / 1: 5.735499 5.907500
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.319500 6.507000
+ 49.5S / 1: 5.316000 5.537500
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: .... ....
+ 49.5S / 1: .... ....
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.502500 7.686500
+ 49.5S / 1: 6.682500 6.854000
+ ---- K:3 Z: 300
+ 48.5S / 2: 7.364600 7.458401
+ 49.5S / 1: 6.465200 6.573600
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.759401 6.898600
+ 49.5S / 1: 5.793599 5.956000
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.347000 6.533000
+ 49.5S / 1: 5.341800 5.563000
+LIST/PREC=7/k=7:8 temp6d_const, depth6d ! reference values at Z=100, 200, 300 for visual comparison
+ DATA SET: ./levitus_3d_subset.nc
+ LONGITUDE: 120E to 122E
+ LATITUDE: 50S to 48S
+ DEPTH (m): 87.5 to 175
+ T: 0.5 to 2.5
+ E: 0.5 to 2.5
+ F: 0.5 to 2.5
+ Column 1: TEMP6D_CONST is TEMP + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2]
+ Column 2: DEPTH6D is DEPTH + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+ TEMP6D_CONS DEPTH6D
+ ---- N:1 F: 1
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 100.0000
+121.5E / 2: 6.572001 100.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 100.0000
+121.5E / 2: 7.436001 100.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 150.0000
+121.5E / 2: 6.573999 150.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 150.0000
+121.5E / 2: 7.464001 150.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 110.0000
+121.5E / 2: 6.572001 110.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 110.0000
+121.5E / 2: 7.436001 110.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 160.0000
+121.5E / 2: 6.573999 160.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 160.0000
+121.5E / 2: 7.464001 160.0000
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 150.0000
+121.5E / 2: 6.572001 150.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 150.0000
+121.5E / 2: 7.436001 150.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 200.0000
+121.5E / 2: 6.573999 200.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 200.0000
+121.5E / 2: 7.464001 200.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 160.0000
+121.5E / 2: 6.572001 160.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 160.0000
+121.5E / 2: 7.436001 160.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 210.0000
+121.5E / 2: 6.573999 210.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 210.0000
+121.5E / 2: 7.464001 210.0000
+ ---- N:2 F: 2
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 200.0000
+121.5E / 2: 6.572001 200.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 200.0000
+121.5E / 2: 7.436001 200.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 250.0000
+121.5E / 2: 6.573999 250.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 250.0000
+121.5E / 2: 7.464001 250.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 210.0000
+121.5E / 2: 6.572001 210.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 210.0000
+121.5E / 2: 7.436001 210.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 260.0000
+121.5E / 2: 6.573999 260.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 260.0000
+121.5E / 2: 7.464001 260.0000
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 250.0000
+121.5E / 2: 6.572001 250.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 250.0000
+121.5E / 2: 7.436001 250.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 300.0000
+121.5E / 2: 6.573999 300.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 300.0000
+121.5E / 2: 7.464001 300.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 260.0000
+121.5E / 2: 6.572001 260.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 260.0000
+121.5E / 2: 7.436001 260.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 310.0000
+121.5E / 2: 6.573999 310.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 310.0000
+121.5E / 2: 7.464001 310.0000
+! ... some spot checks
+LIST/PREC=7/l=1/m=1/n=1 tempz6d_tDep[Z=100] - temp6d_const[k=7]
+ VARIABLE : TEMPZ6D_TDEP[Z=100] - TEMP6D_CONST[K=7]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 100
+ T : 1
+ E : 1
+ F : 1
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+LIST/PREC=7/l=1/m=2/n=1 tempz6d_tDep[Z=200] - temp6d_const[k=8]
+ VARIABLE : TEMPZ6D_TDEP[Z=200] - TEMP6D_CONST[K=8]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 200
+ T : 1
+ E : 2
+ F : 1
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+LIST/PREC=7/l=1/m=2/n=2 tempz6d_tDep[Z=300] - temp6d_const[k=8]
+ VARIABLE : TEMPZ6D_TDEP[Z=300] - TEMP6D_CONST[K=8]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 300
+ T : 1
+ E : 2
+ F : 2
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+
+! ** deliberate error **
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+! Ferret does not permit auxiliary variable to have an axis not found on the source variable
+! (to avoid having to consider auxiliary variables during grid-getting ... possible to do)
+SET MODE IGNORE
+LET tempz6d_unmatch = temp[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_unmatch
+SET MODE/LAST IGNORE
+
+! ********************************
+! test the @plave regridding -- ave defined from area under piecewise curve
+
+! first compare to our simplest of linear interpolation regrids, tempz
+! note that results will differ due to non-linearity
+! at Z=500 on the output they become identical because the Z=500 grid box
+! extends 450:550 with source points at Z=400 and Z=600 -- pure linear
+! LET tempz = temp[gz(depth)=zpts]
+LET tempzave = temp[gz(depth)=zpts at plave]
+LIST tempzave - tempz
+ VARIABLE : TEMPZAVE - TEMPZ
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 0.07800055 0.08299971
+ 49.5S / 1: 0.09349990 0.09612441
+ ---- K:2 Z: 200
+ 48.5S / 2: 0.03974986 0.04325008
+ 49.5S / 1: 0.03737521 0.04537499
+ ---- K:3 Z: 300
+ 48.5S / 2: 0.02862477 0.02200031
+ 49.5S / 1: 0.04037499 0.02874994
+ ---- K:4 Z: 400
+ 48.5S / 2: -0.00893724 -0.00900024
+ 49.5S / 1: -0.00625008 -0.00656247
+ ---- K:5 Z: 500
+ 48.5S / 2: 0.00000000 0.00000000
+ 49.5S / 1: 0.00000000 0.00000000
+
+! list a little. Note the regridding transform label
+LIST/PREC=7 temp[gz(depth)=zpts at plave,k=1]
+ VARIABLE : TEMPERATURE (DEG C)
+ regrid: 100 delta on Z at PLAVE using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 50 to 150
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.413000 7.519001
+ 49.5S / 1: 6.555500 6.668125
+
+! Levitus has points at 50, 75, 100, 150, 200
+! define target axis with edges at 50:75 (k=1), 75:100 (k=2)
+! 100:125(k=3), 125:150 (k=4), 150:175(k=5)
+define axis/edges/z=50:175:25/units=m zpt2 ! point at 125 is mid-way
+
+! raw source data -- artifically designed for easy mental calcs
+LET myvals = temp*0+100*(i-100)+10*(j-40)+k
+list/PREC=7 myvals[z=50:300]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+K
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+ 120.5E 121.5E
+ 1 2
+ ---- K:5 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:6 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:7 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:8 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:9 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+ ---- K:10 Z: 300
+ 48.5S / 2: -10270.00 -10170.00
+ 49.5S / 1: -10280.00 -10180.00
+
+! linear interpolation regridding
+LET mzlin2 = myvals[gz(depth)=zpt2]
+LIST/PREC=7 mzlin2
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z: 87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z: 112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z: 137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z: 162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+
+! average-regridding
+LET mzave2 = myvals[gz(depth)=zpt2 at plave]
+
+! cases:
+! 1) both edges lie on source points
+LIST/PREC=7 mzave2[k=2] ! vals at 75, 100 ==> 75:100
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 87.5
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+
+! 2) lower edge only lies on source point
+LIST/PREC=7 mzave2[k=3] ! vals at 100, 150 ==> 100:125
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 112.5
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+
+! 3) upper edge only lies on source point
+LIST/PREC=7 mzave2[k=4] ! vals at 100, 150 ==> 125:150
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 137.5
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+
+! 4) full range
+! myvals2 is linear in k, so @plave and @lin get identical results
+LIST/PREC=7 mzave2
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z: 87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z: 112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z: 137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z: 162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+LIST/PREC=7 mzave2 - mzlin2
+ VARIABLE : MZAVE2 - MZLIN2
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 62.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:2 Z: 87.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:3 Z: 112.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:4 Z: 137.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:5 Z: 162.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+
+! 5) divide a single source range into multiple destination cells
+! a range of 50 divided into 5 cells will have means of x.1,x.3,x.5, x.7, x.9
+define axis/edges/z=150:200:10/units=m zpt3
+LET mzave3 = myvals[gz(depth)=zpt3 at plave]
+LIST/PREC=7 mzave3
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT3 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 155
+ 48.5S / 2: -10271.90 -10171.90
+ 49.5S / 1: -10281.90 -10181.90
+ ---- K:2 Z: 165
+ 48.5S / 2: -10271.70 -10171.70
+ 49.5S / 1: -10281.70 -10181.70
+ ---- K:3 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:4 Z: 185
+ 48.5S / 2: -10271.30 -10171.30
+ 49.5S / 1: -10281.30 -10181.30
+ ---- K:5 Z: 195
+ 48.5S / 2: -10271.10 -10171.10
+ 49.5S / 1: -10281.10 -10181.10
+
+! 6) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.333333
+define axis/edges/z=50:200:150/units=m zpt4
+LET mzave4 = myvals[gz(depth)=zpt4 at plave]
+LIST/PREC=7 mzave4
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT4 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 125
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.67 -10172.67
+ 49.5S / 1: -10282.67 -10182.67
+
+! 7) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.8125
+define axis/edges/z=50:250:200/units=m zpt5
+LET mzave5 = myvals[gz(depth)=zpt5 at plave]
+LIST/PREC=7 mzave5
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT5 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 150
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.19 -10172.19
+ 49.5S / 1: -10282.19 -10182.19
+
+! 8) test the short-hand notation var[gz(depth)=0:100 at ave] as an implicit
+! aux var regrid via piecewice linear averaging
+! To confirm correct results we create a piecewize linear function that
+! has constant slope. Averaging such a function over a symmetric region
+! around a point on the source data should return the value at the point
+LET myvals_z = TEMP*0+100*(I-100)+10*(J-40)+Z
+list/PREC=7 myvals_z[z=200]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 200
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+list/PREC=7 myvals_z[gz(depth)=190:210 at ave]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ regrid: on Z at PLAVE using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 190 to 210
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+list/PREC=7 myvals_z[gz(depth)=150:250 at ave]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ regrid: on Z at PLAVE using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 150 to 250
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+
+! 8a) do same regrid using the shorhand semi-automated notation
+SET VAR/LAYERZ=depth myvals_z
+list/PREC=7 myvals_z[z=190:210 at ave,layerz] ! lo:hi at ave notation WILL BE CHANGED
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 190 to 210 (pc wise lin avgd using DEPTH)
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+list/PREC=7 myvals_z[z=150:250 at ave,layerz] ! WILL BE CHANGED
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 150 to 250 (pc wise lin avgd using DEPTH)
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+
+! test missing values in the depth array
+! cases:
+! 1) missing values at start of aux array
+define axis/z=25:200:25/units=m zpt6
+LET depmis = IF (I NE 102 OR k GT 6) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 2) missing values at end of aux array
+LET depmis = IF (I NE 102 OR k LT 9) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 3) missing values in midst of aux array -- stops processing beyond
+LET depmis = IF (I NE 102 OR k EQ 7 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 4) singleton non-missing values in a line of the aux array
+LET depmis = IF (I NE 102 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 5) there are only missing values in a line of the aux array
+LET depmis = IF (I NE 102) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 6) two separated singletons -- only the first should be found
+LET depmis = IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+list depmis[z=25:200] ! to illustrate why the result is as it is
+ VARIABLE : IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN DEPTH
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+ 120.5E 121.5E
+ 1 2
+ ---- K:4 Z: 30
+ 48.5S / 2: 30.0000 30.0000
+ 49.5S / 1: 30.0000 30.0000
+ ---- K:5 Z: 50
+ 48.5S / 2: 50.0000 50.0000
+ 49.5S / 1: 50.0000 50.0000
+ ---- K:6 Z: 75
+ 48.5S / 2: 75.0000 75.0000
+ 49.5S / 1: 75.0000 75.0000
+ ---- K:7 Z: 100
+ 48.5S / 2: 100.0000 100.0000
+ 49.5S / 1: 100.0000 100.0000
+ ---- K:8 Z: 150
+ 48.5S / 2: 150.0000 150.0000
+ 49.5S / 1: 150.0000 150.0000
+ ---- K:9 Z: 200
+ 48.5S / 2: 200.0000 200.0000
+ 49.5S / 1: 200.0000 200.0000
+
+! ********
+! reversed-auxiliary variable used in regridding
+! (see definitions made earlier)
+! Note that the regridded result only matches the original data in regions
+! where the underlying piecewise function remains strictly linear with
+! unchanging slope/intercept. Since the Z=500 point has cell limits 450:550
+! and the underlying Levitus Z points (used in the definition of "depth") are
+! at 400 and 600, we get the identical result from @PLAVE and @LIN
+LET rvtempzaxave = rvtemp[gz(rvdepth)=zax at plave,z=100:500]
+LIST/PREC=7 rvtempzaxave - tempz
+ VARIABLE : RVTEMPZAXAVE - TEMPZ
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 0.07800055 0.08299971
+ 49.5S / 1: 0.09349990 0.09612441
+ ---- K:2 Z: 200
+ 48.5S / 2: 0.03974986 0.04325008
+ 49.5S / 1: 0.03737521 0.04537499
+ ---- K:3 Z: 300
+ 48.5S / 2: 0.02862477 0.02200031
+ 49.5S / 1: 0.04037499 0.02874994
+ ---- K:4 Z: 400
+ 48.5S / 2: -0.00893724 -0.00900024
+ 49.5S / 1: -0.00625008 -0.00656247
+ ---- K:5 Z: 500
+ 48.5S / 2: 0.00000000 0.00000000
+ 49.5S / 1: 0.00000000 0.00000000
+SHOW GRID/z rvtempzaxave
+ GRID (G106)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAX Z (METERS) 5 r 100 500
+ normal T
+ normal E
+ normal F
+
+ K Z ZBOX ZBOXLO
+ 1> 100 100 50
+ 2> 200 100 150
+ 3> 300 100 250
+ 4> 400 100 350
+ 5> 500 100 450
+
+! 5/15 -- added tests for non-monotonic auxiliary variable
+!test_non_monotonic_aux_z.jnl
+
+cancel region
+define axis/x=161e:165e:1 xax
+define axis/z=100:600:100 zax
+
+let temp = 0.0001*Z[gz=zax]^2 + 0*x[gx=xax]
+list temp
+ VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+
+! disordered points at beginning, middle and end, missing at beginning
+let density0 = 0*i[gx=xax]*k[gz=zax] + z/10
+let density1 = if i eq 2 and k eq 4 then 20 else density0
+let density2 = if i eq 3 and k eq 1 then 20 else density1
+let density3 = if i eq 3 and k eq 2 then 10 else density2
+let density4 = if i eq 4 and k eq 6 then 30 else density3
+let density = if i eq 5 and k le 2 then 1/0 else density4 ! missing at k=1:3
+list density
+ VARIABLE : IF I EQ 5 AND K LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+
+! Z=200-300 on the density axis are double valued at I=2
+list temp[gz(density)=5:65:2.5]
+ VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+ regrid: 2.5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 25 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 7.5 / 2: .... .... .... .... ....
+ 10 / 3: 1.00000 1.00000 4.00000 1.00000 ....
+ 12.5 / 4: 1.75000 1.75000 .... 1.75000 ....
+ 15 / 5: 2.50000 2.50000 .... 2.50000 ....
+ 17.5 / 6: 3.25000 3.25000 .... 3.25000 ....
+ 20 / 7: 4.00000 .... .... 4.00000 ....
+ 22.5 / 8: 5.25000 .... 7.12500 5.25000 ....
+ 25 / 9: 6.50000 .... 7.75000 6.50000 ....
+ 27.5 / 10: 7.75000 .... 8.37500 7.75000 ....
+ 30 / 11: 9.00000 .... 9.00000 .... 9.00000
+ 32.5 / 12: 10.75000 19.75000 10.75000 .... 10.75000
+ 35 / 13: 12.50000 20.50000 12.50000 .... 12.50000
+ 37.5 / 14: 14.25000 21.25000 14.25000 .... 14.25000
+ 40 / 15: 16.00000 22.00000 16.00000 .... 16.00000
+ 42.5 / 16: 18.25000 22.75000 18.25000 .... 18.25000
+ 45 / 17: 20.50000 23.50000 20.50000 .... 20.50000
+ 47.5 / 18: 22.75000 24.25000 22.75000 .... 22.75000
+ 50 / 19: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 52.5 / 20: 27.75000 27.75000 27.75000 .... 27.75000
+ 55 / 21: 30.50000 30.50000 30.50000 .... 30.50000
+ 57.5 / 22: 33.25000 33.25000 33.25000 .... 33.25000
+ 60 / 23: 36.00000 36.00000 36.00000 .... 36.00000
+ 62.5 / 24: .... .... .... .... ....
+ 65 / 25: .... .... .... .... ....
+
+
+!************************************
+! reverse-ordering of same field
+let btemp = 0.0001*(700-Z[gz=zax])^2 + 0*x[gx=xax]
+list btemp
+ VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2 + 0*X[GX=XAX]
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 200 / 2: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 300 / 3: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 400 / 4: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 500 / 5: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 600 / 6: 1.00000 1.00000 1.00000 1.00000 1.00000
+
+let bdensity0 = 0*i[gx=xax]*k[gz=zax] + (700-z)/10
+let bdensity1 = if i eq 2 and (7-k) eq 4 then 20 else bdensity0
+let bdensity2 = if i eq 3 and (7-k) eq 1 then 20 else bdensity1
+let bdensity3 = if i eq 3 and (7-k) eq 2 then 10 else bdensity2
+let bdensity4 = if i eq 4 and (7-k) eq 6 then 30 else bdensity3
+let bdensity = if i eq 5 and (7-k) le 2 then 1/0 else bdensity4 !missing k=1:3
+
+SAY "************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********"
+************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********
+SET VAR/units="kg/m^3" density
+
+list bdensity
+ VARIABLE : IF I EQ 5 AND (7-K) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 200 / 2: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 300 / 3: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 400 / 4: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 500 / 5: 20.00000 20.00000 10.00000 20.00000 ....
+ 600 / 6: 10.00000 10.00000 20.00000 10.00000 ....
+
+list btemp[gz(bdensity)=5:65:2.5]
+ VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2 + 0*X[GX=XAX]
+ regrid: 2.5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 25 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 7.5 / 2: .... .... .... .... ....
+ 10 / 3: 1.00000 1.00000 4.00000 1.00000 ....
+ 12.5 / 4: 1.75000 1.75000 .... 1.75000 ....
+ 15 / 5: 2.50000 2.50000 .... 2.50000 ....
+ 17.5 / 6: 3.25000 3.25000 .... 3.25000 ....
+ 20 / 7: 4.00000 .... .... 4.00000 ....
+ 22.5 / 8: 5.25000 .... 7.12500 5.25000 ....
+ 25 / 9: 6.50000 .... 7.75000 6.50000 ....
+ 27.5 / 10: 7.75000 .... 8.37500 7.75000 ....
+ 30 / 11: 9.00000 .... 9.00000 .... 9.00000
+ 32.5 / 12: 10.75000 19.75000 10.75000 .... 10.75000
+ 35 / 13: 12.50000 20.50000 12.50000 .... 12.50000
+ 37.5 / 14: 14.25000 21.25000 14.25000 .... 14.25000
+ 40 / 15: 16.00000 22.00000 16.00000 .... 16.00000
+ 42.5 / 16: 18.25000 22.75000 18.25000 .... 18.25000
+ 45 / 17: 20.50000 23.50000 20.50000 .... 20.50000
+ 47.5 / 18: 22.75000 24.25000 22.75000 .... 22.75000
+ 50 / 19: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 52.5 / 20: 27.75000 27.75000 27.75000 .... 27.75000
+ 55 / 21: 30.50000 30.50000 30.50000 .... 30.50000
+ 57.5 / 22: 33.25000 33.25000 33.25000 .... 33.25000
+ 60 / 23: 36.00000 36.00000 36.00000 .... 36.00000
+ 62.5 / 24: .... .... .... .... ....
+ 65 / 25: .... .... .... .... ....
+
+!************************************
+! similar analysis using @plave over wider cells
+! compare to reverse-ordered data
+list temp[gz(density)=5:65:15 at plave]
+ VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+ regrid: 15 kg/m^3 on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 5 points (LONGITUDE-Z (kg/m^3))
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+list btemp[gz(bdensity)=5:65:15 at plave]
+ VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2 + 0*X[GX=XAX]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 5 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+
+! 6/15
+! test 1D auxiliary axis regirdding on all axes
+
+! p for passive axis
+! a for active axis
+
+define axis/x=161:165:1 xp
+define axis/y=161:165:1 yp
+define axis/z=161:165:1 zp
+define axis/t=161:165:1 tp
+define axis/e=161:165:1 ep
+define axis/f=161:165:1 fp
+
+define axis/x=100:700:100 xa
+define axis/y=100:700:100 ya
+define axis/z=100:700:100 za
+define axis/t=100:700:100 ta
+define axis/e=100:700:100 ea
+define axis/f=100:700:100 fa
+
+
+GO bn_auxiliary.sub Z,X,F
+
+*****************************
+********** Z,X,F ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 density
+ VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 bdensity
+ VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5] ! passive ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5] ! passive ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using DENSITY field
+ SUBSET : 5 points (X)
+ Z : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using BDENSITY field
+ SUBSET : 5 points (X)
+ Z : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+
+
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using DENSITY field
+ SUBSET : 5 points (X)
+ Z : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using BDENSITY field
+ SUBSET : 5 points (X)
+ Z : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+GO bn_auxiliary.sub Z,Y,E
+
+*****************************
+********** Z,Y,E ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 density
+ VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 bdensity
+ VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5] ! passive ax 1
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5] ! passive ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 1
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using DENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using BDENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+
+
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using DENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35 to 55
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using BDENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35 to 55
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+CANC MODE VERIFY
+
+*****************************
+********** X,Z,F ***********
+*****************************
+
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _I LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_I) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at LIN using DENSITY field
+ SUBSET : 5 points (Z)
+ X : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at LIN using BDENSITY field
+ SUBSET : 5 points (Z)
+ X : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at PLAVE using DENSITY field
+ SUBSET : 5 points (Z)
+ X : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at PLAVE using BDENSITY field
+ SUBSET : 5 points (Z)
+ X : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+*****************************
+********** Y,X,E ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+ VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND _J LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+ VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND (8-_J) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using DENSITY field
+ SUBSET : 5 by 16 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using DENSITY field
+ SUBSET : 5 by 16 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at LIN using DENSITY field
+ SUBSET : 5 points (X)
+ Y : 35
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at LIN using BDENSITY field
+ SUBSET : 5 points (X)
+ Y : 35
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at PLAVE using DENSITY field
+ SUBSET : 5 points (X)
+ Y : 35 to 55
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at PLAVE using BDENSITY field
+ SUBSET : 5 points (X)
+ Y : 35 to 55
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+*****************************
+********** T,Y,F ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+ VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND _L LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+ VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND (8-_L) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at LIN using DENSITY field
+ SUBSET : 5 points (Y)
+ T : 35
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at LIN using BDENSITY field
+ SUBSET : 5 points (Y)
+ T : 35
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at PLAVE using DENSITY field
+ SUBSET : 5 points (Y)
+ T : 35 to 55
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at PLAVE using BDENSITY field
+ SUBSET : 5 points (Y)
+ T : 35 to 55
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+*****************************
+********** E,Z,F ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _M LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_M) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: on E at LIN using DENSITY field
+ SUBSET : 5 points (Z)
+ E : 35
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: on E at LIN using BDENSITY field
+ SUBSET : 5 points (Z)
+ E : 35
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: on E at PLAVE using DENSITY field
+ SUBSET : 5 points (Z)
+ E : 35 to 55
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: on E at PLAVE using BDENSITY field
+ SUBSET : 5 points (Z)
+ E : 35 to 55
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+*****************************
+********** F,X,T ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00000 1.00000 1.00000 1.00000 1.00000
+ 200 / 2: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 300 / 3: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 600 / 6: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 700 / 7: 49.00000 49.00000 49.00000 49.00000 49.00000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 200 / 2: 36.00000 36.00000 36.00000 36.00000 36.00000
+ 300 / 3: 25.00000 25.00000 25.00000 25.00000 25.00000
+ 400 / 4: 16.00000 16.00000 16.00000 16.00000 16.00000
+ 500 / 5: 9.00000 9.00000 9.00000 9.00000 9.00000
+ 600 / 6: 4.00000 4.00000 4.00000 4.00000 4.00000
+ 700 / 7: 1.00000 1.00000 1.00000 1.00000 1.00000
+ VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND _N LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00000 10.00000 20.00000 10.00000 ....
+ 200 / 2: 20.00000 20.00000 10.00000 20.00000 ....
+ 300 / 3: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 600 / 6: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 700 / 7: 70.00000 70.00000 70.00000 70.00000 70.00000
+ VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND (8-_N) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00000 70.00000 70.00000 70.00000 70.00000
+ 200 / 2: 60.00000 60.00000 60.00000 30.00000 60.00000
+ 300 / 3: 50.00000 50.00000 50.00000 50.00000 50.00000
+ 400 / 4: 40.00000 20.00000 40.00000 40.00000 40.00000
+ 500 / 5: 30.00000 30.00000 30.00000 30.00000 30.00000
+ 600 / 6: 20.00000 20.00000 10.00000 20.00000 ....
+ 700 / 7: 10.00000 10.00000 20.00000 10.00000 ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 5 delta on F at LIN using DENSITY field
+ SUBSET : 5 by 16 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 5 delta on F at LIN using DENSITY field
+ SUBSET : 5 by 16 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 5 delta on F at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 5 delta on F at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00000 1.00000 4.00000 1.00000 ....
+ 15 / 3: 2.50000 2.50000 .... 2.50000 ....
+ 20 / 4: 4.00000 .... .... 4.00000 ....
+ 25 / 5: 6.50000 .... 7.75000 6.50000 ....
+ 30 / 6: 9.00000 .... 9.00000 .... 9.00000
+ 35 / 7: 12.50000 20.50000 12.50000 .... 12.50000
+ 40 / 8: 16.00000 22.00000 16.00000 .... 16.00000
+ 45 / 9: 20.50000 23.50000 20.50000 .... 20.50000
+ 50 / 10: 25.00000 25.00000 25.00000 .... 25.00000
+ 55 / 11: 30.50000 30.50000 30.50000 44.12500 30.50000
+ 60 / 12: 36.00000 36.00000 36.00000 45.75000 36.00000
+ 65 / 13: 42.50000 42.50000 42.50000 47.37500 42.50000
+ 70 / 14: 49.00000 49.00000 49.00000 49.00000 49.00000
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: on F at LIN using DENSITY field
+ SUBSET : 5 points (X)
+ F : 35
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: on F at LIN using BDENSITY field
+ SUBSET : 5 points (X)
+ F : 35
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50000 20.50000 12.50000 12.50000 12.50000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 15 delta on F at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 15 delta on F at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 15 delta on F at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 15 delta on F at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.37500 .... .... 4.37500 ....
+ 35 / 3: 12.58333 .... 12.63542 .... ....
+ 50 / 4: 25.37500 26.50000 25.37500 .... 25.37500
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: on F at PLAVE using DENSITY field
+ SUBSET : 5 points (X)
+ F : 35 to 55
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: on F at PLAVE using BDENSITY field
+ SUBSET : 5 points (X)
+ F : 35 to 55
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75000 24.00000 20.75000 .... 20.75000
+
+GO bn_reset
+cancel mode verify
+GO bn_plot_ribbon_gaploc
+! bn_plot_ribbon_gaploc.jnl
+! 7/20/2015 *acm* new PLOT/VS/RIBBON/GAPLOC
+!
+! If a trajectory leaves the selected region and then travels
+! back into the region we want to pick up the pen along that
+! edge, not connect the points.
+
+! Note Ribbon plots define a lot of color/line combos, so
+! lots of ribbon overlays on a page need either SHASET RESET or
+! use of fewer than the default number of levels.
+
+let xpts = {1,2,3,4,5}
+let ypts = {1,1,1,1,1}
+let color = {1,2,3,4,5}
+let gvar = {0,0,1,0,0}
+plot/vs/ribbon/thick/line/lev=10/sym=21/siz=.3 xpts, 10*ypts, color
+plot/ov/ribbon/nolab/vs/thick/line/lev=10/sym=21/siz=.3/gapl xpts, 10.2*ypts, color, gvar
+plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3 xpts, 9.9*ypts, color
+plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3/gap xpts, 9.7*ypts, color, gvar
+
+use 39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
+
+! The line is connected across what should be a gap
+set view left
+plot/vs/hlim=63.5:68/ribbon/line/thick=3/key longitude, latitude, fco2_recommended
+
+! The gaploc variable is 1 at the location marking the start of gaps.
+let gaploc = if sample_number[I=@DDF] NE 1 THEN 1 ELSE 0
+set view right
+plot/vs/hlim=63.5:68/ribbon/line/thick=3/key/gap longitude, latitude, fco2_recommended, gaploc
+
+! Intentional errors. Qualifier needs 4 arguments. It does not (currently) apply to
+! other styles of line plots.
+set mode ignore
+plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
+plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
+plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO bn_time_short_axes
+! bn_time_short_axes.jnl
+! testing time axis style with HH:MM on the time axis labels.
+
+use timesec
+
+plot/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
+plot/axes=0,1,1,0/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
+plot/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
+
+
+plot/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
+plot/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
+plot/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
+
+! 2D plots
+
+define axis/x=0:360:1/units=degrees_east lonax
+let var2d = airt + 0.1*x[gx=lonax]
+
+shade/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
+fill/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
+shade/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
+
+
+shade/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
+fill/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
+shade/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
+
+GO bn_reset
+cancel mode verify
+GO bn_floatstr_extended
+! bn_floatstr_extended.jnl
+! test use of Integer and zero-filled formats in FLOATSTR function (Ferret v6.95)
+! 9/28/2015
+
+
+LET string = FLOATSTR({3.14159,2.71828},"(i3)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828},"(i3)")
+ SUBSET : 2 points (X)
+ 1 / 1:" 3"
+ 2 / 2:" 2"
+
+LET string = FLOATSTR({3.14159,2.71828},"(i3.3)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828},"(i3.3)")
+ SUBSET : 2 points (X)
+ 1 / 1:"003"
+ 2 / 2:"002"
+
+LET string = FLOATSTR({3.14159,2.71828},"(i03)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828},"(i03)")
+ SUBSET : 2 points (X)
+ 1 / 1:"003"
+ 2 / 2:"002"
+
+! Missing data returned as the null string
+LET string = FLOATSTR({3.14159,2.71828,},"(i3)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828,},"(i3)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 3"
+ 2 / 2:" 2"
+ 3 / 3:""
+
+! Test some large and small values
+LET var = {3.14159,2.71828,}
+LIST FLOATSTR(36*var,"(i5)")
+ VARIABLE : FLOATSTR(36*VAR,"(i5)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 113"
+ 2 / 2:" 97"
+ 3 / 3:""
+LIST FLOATSTR(36*var,"(i4.3)")
+ VARIABLE : FLOATSTR(36*VAR,"(i4.3)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 113"
+ 2 / 2:" 097"
+ 3 / 3:""
+LIST FLOATSTR(1.e14*var,"(i12)")
+ VARIABLE : FLOATSTR(1.E14*VAR,"(i12)")
+ SUBSET : 3 points (X)
+ 1 / 1:" -2147483648"
+ 2 / 2:" -2147483648"
+ 3 / 3:""
+LIST FLOATSTR(1.e-14*var,"(i5)")
+ VARIABLE : FLOATSTR(1.E-14*VAR,"(i5)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 0"
+ 2 / 2:" 0"
+ 3 / 3:""
+
+! Result shape is inherited from the input variable
+USE gt4d011.cdf
+LIST/I=100/J=36:38/T=1-dec-1982:1-jan-1983 FLOATSTR(10000*tauy, "(i4)")
+ VARIABLE : FLOATSTR(10000*TAUY, "(i4)")
+ FILENAME : gt4d011.cdf
+ SUBSET : 3 by 6 points (LATITUDE-TIME)
+ LONGITUDE: 130W
+ 3S 2.67S 2.33S
+ 36 37 38
+ 28-NOV-1982 22 / 18:"-271""-240""-208"
+ 05-DEC-1982 00 / 19:"-283""-251""-220"
+ 11-DEC-1982 02 / 20:"-294""-263""-231"
+ 17-DEC-1982 04 / 21:"-356""-323""-290"
+ 23-DEC-1982 06 / 22:"-469""-433""-397"
+ 29-DEC-1982 08 / 23:"-583""-543""-503"
+
+USE coads_climatology
+
+! i4.4 is the same as i04
+
+LET var = FLOATSTR(sst,"(i4.4)")
+LET var = FLOATSTR(sst,"(i04)")
+
+LIST/X=165W:135W/Y=-50/L=1 var
+ VARIABLE : FLOATSTR(SST,"(i04)")
+ FILENAME : coads_climatology.cdf
+ SUBSET : 16 points (LONGITUDE)
+ LATITUDE : 50S (interpolated)
+ TIME : 16-JAN 06:00
+ 165W / 88:""
+ 163W / 89:""
+ 161W / 90:""
+ 159W / 91:""
+ 157W / 92:""
+ 155W / 93:""
+ 153W / 94:""
+ 151W / 95:""
+ 149W / 96:""
+ 147W / 97:""
+ 145W / 98:""
+ 143W / 99:""
+ 141W / 100:""
+ 139W / 101:""
+ 137W / 102:""
+ 135W / 103:""
+
+! Negative numbers cannot be listed with (i5.5) but can with (I05)
+LET var1 = FLOATSTR(sst-10,"(i5.5)")
+LET var2 = FLOATSTR(sst-10,"(i05)")
+
+LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
+ DATA SET: ./coads_climatology.cdf
+ LATITUDE: 91S to 11S
+ LONGITUDE: 165W
+ TIME: 16-JAN 06:00
+ Column 1: VAR1[G=4 deg on Y] is FLOATSTR(SST-10,"(i5.5)") (regrid: 4 deg on Y)
+ Column 2: VAR2[G=4 deg on Y] is FLOATSTR(SST-10,"(i05)") (regrid: 4 deg on Y)
+ VAR1 VAR2
+89S / 1: "" ""
+85S / 2: "" ""
+81S / 3: "" ""
+77S / 4: "*****" "00-10"
+73S / 5: "*****" "00-11"
+69S / 6: "*****" "000-9"
+65S / 7: "*****" "00-10"
+61S / 8: "*****" "000-7"
+57S / 9: "*****" "000-3"
+53S / 10: "*****" "000-1"
+49S / 11: "00002" "00002"
+45S / 12: "00004" "00004"
+41S / 13: "00006" "00006"
+37S / 14: "00008" "00008"
+33S / 15: "00010" "00010"
+29S / 16: "00012" "00012"
+25S / 17: "00015" "00015"
+21S / 18: "00017" "00017"
+17S / 19: "00018" "00018"
+13S / 20: "00019" "00019"
+
+
+! F0 format for zero-filled F format
+
+let a = {1.1, 3.7}
+list floatstr(a, "(f04.1)")
+ VARIABLE : FLOATSTR(A, "(f04.1)")
+ SUBSET : 2 points (X)
+ 1 / 1:"01.1"
+ 2 / 2:"03.7"
+
+let a = {1.1, 13.7}
+list floatstr(a, "(f06.1)")
+ VARIABLE : FLOATSTR(A, "(f06.1)")
+ SUBSET : 2 points (X)
+ 1 / 1:"0001.1"
+ 2 / 2:"0013.7"
+
+let a = {-1.1, 13.7}
+list floatstr(a, "(f04.1)")
+ VARIABLE : FLOATSTR(A, "(f04.1)")
+ SUBSET : 2 points (X)
+ 1 / 1:"-1.1"
+ 2 / 2:"13.7"
+
+! testing negative numbers and null/missing results
+LET var1 = FLOATSTR(sst-20,"(f5.1)")
+LET var2 = FLOATSTR(sst-20,"(f05.1)")
+LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
+ DATA SET: ./coads_climatology.cdf
+ LATITUDE: 91S to 11S
+ LONGITUDE: 165W
+ TIME: 16-JAN 06:00
+ Column 1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f5.1)") (regrid: 4 deg on Y)
+ Column 2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(f05.1)") (regrid: 4 deg on Y)
+ VAR1 VAR2
+89S / 1: "" ""
+85S / 2: "" ""
+81S / 3: "" ""
+77S / 4: "-20.4" "-20.4"
+73S / 5: "-21.0" "-21.0"
+69S / 6: "-19.8" "-19.8"
+65S / 7: "-20.0" "-20.0"
+61S / 8: "-17.3" "-17.3"
+57S / 9: "-13.9" "-13.9"
+53S / 10: "-11.2" "-11.2"
+49S / 11: " -7.5" "0-7.5"
+45S / 12: " -5.7" "0-5.7"
+41S / 13: " -3.5" "0-3.5"
+37S / 14: " -1.3" "0-1.3"
+33S / 15: " 0.9" "000.9"
+29S / 16: " 3.0" "003.0"
+25S / 17: " 5.1" "005.1"
+21S / 18: " 7.5" "007.5"
+17S / 19: " 8.1" "008.1"
+13S / 20: " 9.7" "009.7"
+
+! *********** v6.96 Additions ***********
+
+GO bn_reset
+cancel mode verify
+GO bn696_bug_fixes
+! bn696_bug_fixes
+! test various fixes that went into version 6.96
+
+GO bn_reset
+cancel mode verify
+GO err695_bounds_match_axis
+! err695_bounds_match_axis.jnl
+! ticket 2321.
+!
+! The coordinates match the upper bound of each cell
+! to machine accuracy. The internal rep of the value
+! has pt > bound_hi however. The logic in tm_check_bnds
+! handes this.
+
+use shorttemp.nc
+
+! Previously showed tbox=0 for every second pt.
+sh grid/l=1:4444 temp
+ GRID GSL1
+ name axis # pts start end
+ LON1 LONGITUDE 1 r 97.45W 97.45W
+ LAT LATITUDE 1 r 36.65N 36.65N
+ PFULL1_1 Z (hpa) 1 r- 3.3236 3.3236
+ TIME16 TIME 4 i 19-JUN-1997 00:00 19-JUN-1997 01:30
+ normal E
+ normal F
+
+ L T TBOX TBOXLO TSTEP (days)
+ 1> 19-JUN-1997 00:00:00 0.0208333 18-JUN-1997 23:30:00 0.02083333
+ 2> 19-JUN-1997 00:30:00 0.0208333 19-JUN-1997 00:00:00 0.04166667
+ 3> 19-JUN-1997 01:00:00 0.0208333 19-JUN-1997 00:30:00 0.0625
+ 4> 19-JUN-1997 01:30:00 0.0208333 19-JUN-1997 01:00:00 0.08333333
+
+GO bn_reset
+cancel mode verify
+GO err695_show_dat_nodata
+! err695_show_dat_nodata.jnl
+! ticket 2322
+!
+! SHOW DATA noexist should include the dataset name or number
+! in the error message.
+
+USE coads_climatology
+
+SHOW DATA 1
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+SHOW DATA coads_climatology
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+! intentional errors
+SET MODE ignore
+SHOW DATA noexist
+SHOW DATA 2
+SHOW DATA/ATT noexist
+
+SET MODE/LAST ignore
+
+GO bn_reset
+cancel mode verify
+GO bn_bin_regrid
+! bin regridding tests
+
+go bn_bin_regrid.sub X
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/X=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/X irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _X[GX=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _X[GX=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+ X: 0.5 to 5.5
+ Column 1: DEST is _X[GX=DCOARSE]
+ Column 2: VAR[G=1 delta on X at AVE] is _X[GX=IRR] (regrid: 1 delta on X at AVE)
+ Column 3: VAR[G=1 delta on X at BIN] is _X[GX=IRR] (regrid: 1 delta on X at BIN)
+ Column 4: VAR[G=1 delta on X at NBIN] is _X[GX=IRR] (regrid: 1 delta on X at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.177778 1.150000 2.000000
+2 / 2: 2.000000 1.545000 .... 0.000000
+3 / 3: 3.000000 3.500000 .... 0.000000
+4 / 4: 4.000000 3.980000 3.500000 1.000000
+5 / 5: 5.000000 4.838462 4.850000 2.000000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _X[gX=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _X[GX=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+ X: 0.5 to 5.5
+ Column 1: DEST is _X[GX=DCOARSE]
+ Column 2: VAR[G=1 delta on X at AVE] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at AVE)
+ Column 3: VAR[G=1 delta on X at BIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at BIN)
+ Column 4: VAR[G=1 delta on X at NBIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.955556 1.650000 2.000000
+2 / 2: 2.000000 2.200000 .... 0.000000
+3 / 3: 3.000000 .... .... 0.000000
+4 / 4: 4.000000 .... .... 0.000000
+5 / 5: 5.000000 5.000000 5.000000 1.000000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GX=dcoarse]
+ X: 0.5 to 5.5
+ Column 1: DEST is _X[GX=DCOARSE]
+ Column 2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
+ DEST VAR
+1 / 1: 1.000000 ....
+2 / 2: 2.000000 ....
+3 / 3: 3.000000 ....
+4 / 4: 4.000000 ....
+5 / 5: 5.000000 5.000000
+
+go bn_bin_regrid.sub Y
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Y=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Y irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Y[GY=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Y[GY=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+ Y: 0.5 to 5.5
+ Column 1: DEST is _Y[GY=DCOARSE]
+ Column 2: VAR[G=1 delta on Y at AVE] is _Y[GY=IRR] (regrid: 1 delta on Y at AVE)
+ Column 3: VAR[G=1 delta on Y at BIN] is _Y[GY=IRR] (regrid: 1 delta on Y at BIN)
+ Column 4: VAR[G=1 delta on Y at NBIN] is _Y[GY=IRR] (regrid: 1 delta on Y at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.177778 1.150000 2.000000
+2 / 2: 2.000000 1.545000 .... 0.000000
+3 / 3: 3.000000 3.500000 .... 0.000000
+4 / 4: 4.000000 3.980000 3.500000 1.000000
+5 / 5: 5.000000 4.838462 4.850000 2.000000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Y[gY=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Y[GY=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+ Y: 0.5 to 5.5
+ Column 1: DEST is _Y[GY=DCOARSE]
+ Column 2: VAR[G=1 delta on Y at AVE] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at AVE)
+ Column 3: VAR[G=1 delta on Y at BIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at BIN)
+ Column 4: VAR[G=1 delta on Y at NBIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.955556 1.650000 2.000000
+2 / 2: 2.000000 2.200000 .... 0.000000
+3 / 3: 3.000000 .... .... 0.000000
+4 / 4: 4.000000 .... .... 0.000000
+5 / 5: 5.000000 5.000000 5.000000 1.000000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GY=dcoarse]
+ Y: 0.5 to 5.5
+ Column 1: DEST is _Y[GY=DCOARSE]
+ Column 2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
+ DEST VAR
+1 / 1: 1.000000 ....
+2 / 2: 2.000000 ....
+3 / 3: 3.000000 ....
+4 / 4: 4.000000 ....
+5 / 5: 5.000000 5.000000
+
+go bn_bin_regrid.sub Z
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Z=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Z irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Z[GZ=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Z[GZ=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+ Z: 0.5 to 5.5
+ Column 1: DEST is _Z[GZ=DCOARSE]
+ Column 2: VAR[G=1 delta on Z at AVE] is _Z[GZ=IRR] (regrid: 1 delta on Z at AVE)
+ Column 3: VAR[G=1 delta on Z at BIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at BIN)
+ Column 4: VAR[G=1 delta on Z at NBIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.177778 1.150000 2.000000
+2 / 2: 2.000000 1.545000 .... 0.000000
+3 / 3: 3.000000 3.500000 .... 0.000000
+4 / 4: 4.000000 3.980000 3.500000 1.000000
+5 / 5: 5.000000 4.838462 4.850000 2.000000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Z[gZ=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Z[GZ=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+ Z: 0.5 to 5.5
+ Column 1: DEST is _Z[GZ=DCOARSE]
+ Column 2: VAR[G=1 delta on Z at AVE] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at AVE)
+ Column 3: VAR[G=1 delta on Z at BIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at BIN)
+ Column 4: VAR[G=1 delta on Z at NBIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.955556 1.650000 2.000000
+2 / 2: 2.000000 2.200000 .... 0.000000
+3 / 3: 3.000000 .... .... 0.000000
+4 / 4: 4.000000 .... .... 0.000000
+5 / 5: 5.000000 5.000000 5.000000 1.000000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GZ=dcoarse]
+ Z: 0.5 to 5.5
+ Column 1: DEST is _Z[GZ=DCOARSE]
+ Column 2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
+ DEST VAR
+1 / 1: 1.000000 ....
+2 / 2: 2.000000 ....
+3 / 3: 3.000000 ....
+4 / 4: 4.000000 ....
+5 / 5: 5.000000 5.000000
+
+go bn_bin_regrid.sub T
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/T=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/T irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _T[GT=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _T[GT=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+ T: 0.5 to 5.5
+ Column 1: DEST is _T[GT=DCOARSE]
+ Column 2: VAR[G=1 delta on T at AVE] is _T[GT=IRR] (regrid: 1 delta on T at AVE)
+ Column 3: VAR[G=1 delta on T at BIN] is _T[GT=IRR] (regrid: 1 delta on T at BIN)
+ Column 4: VAR[G=1 delta on T at NBIN] is _T[GT=IRR] (regrid: 1 delta on T at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.177778 1.150000 2.000000
+2 / 2: 2.000000 1.545000 .... 0.000000
+3 / 3: 3.000000 3.500000 .... 0.000000
+4 / 4: 4.000000 3.980000 3.500000 1.000000
+5 / 5: 5.000000 4.838462 4.850000 2.000000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _T[gT=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _T[GT=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+ T: 0.5 to 5.5
+ Column 1: DEST is _T[GT=DCOARSE]
+ Column 2: VAR[G=1 delta on T at AVE] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at AVE)
+ Column 3: VAR[G=1 delta on T at BIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at BIN)
+ Column 4: VAR[G=1 delta on T at NBIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.955556 1.650000 2.000000
+2 / 2: 2.000000 2.200000 .... 0.000000
+3 / 3: 3.000000 .... .... 0.000000
+4 / 4: 4.000000 .... .... 0.000000
+5 / 5: 5.000000 5.000000 5.000000 1.000000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GT=dcoarse]
+ T: 0.5 to 5.5
+ Column 1: DEST is _T[GT=DCOARSE]
+ Column 2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
+ DEST VAR
+1 / 1: 1.000000 ....
+2 / 2: 2.000000 ....
+3 / 3: 3.000000 ....
+4 / 4: 4.000000 ....
+5 / 5: 5.000000 5.000000
+
+go bn_bin_regrid.sub E
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/E=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/E irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _E[GE=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _E[GE=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+ E: 0.5 to 5.5
+ Column 1: DEST is _E[GE=DCOARSE]
+ Column 2: VAR[G=1 delta on E at AVE] is _E[GE=IRR] (regrid: 1 delta on E at AVE)
+ Column 3: VAR[G=1 delta on E at BIN] is _E[GE=IRR] (regrid: 1 delta on E at BIN)
+ Column 4: VAR[G=1 delta on E at NBIN] is _E[GE=IRR] (regrid: 1 delta on E at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.177778 1.150000 2.000000
+2 / 2: 2.000000 1.545000 .... 0.000000
+3 / 3: 3.000000 3.500000 .... 0.000000
+4 / 4: 4.000000 3.980000 3.500000 1.000000
+5 / 5: 5.000000 4.838462 4.850000 2.000000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _E[gE=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _E[GE=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+ E: 0.5 to 5.5
+ Column 1: DEST is _E[GE=DCOARSE]
+ Column 2: VAR[G=1 delta on E at AVE] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at AVE)
+ Column 3: VAR[G=1 delta on E at BIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at BIN)
+ Column 4: VAR[G=1 delta on E at NBIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.955556 1.650000 2.000000
+2 / 2: 2.000000 2.200000 .... 0.000000
+3 / 3: 3.000000 .... .... 0.000000
+4 / 4: 4.000000 .... .... 0.000000
+5 / 5: 5.000000 5.000000 5.000000 1.000000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GE=dcoarse]
+ E: 0.5 to 5.5
+ Column 1: DEST is _E[GE=DCOARSE]
+ Column 2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
+ DEST VAR
+1 / 1: 1.000000 ....
+2 / 2: 2.000000 ....
+3 / 3: 3.000000 ....
+4 / 4: 4.000000 ....
+5 / 5: 5.000000 5.000000
+
+go bn_bin_regrid.sub F
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/F=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/F irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _F[GF=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _F[GF=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+ F: 0.5 to 5.5
+ Column 1: DEST is _F[GF=DCOARSE]
+ Column 2: VAR[G=1 delta on F at AVE] is _F[GF=IRR] (regrid: 1 delta on F at AVE)
+ Column 3: VAR[G=1 delta on F at BIN] is _F[GF=IRR] (regrid: 1 delta on F at BIN)
+ Column 4: VAR[G=1 delta on F at NBIN] is _F[GF=IRR] (regrid: 1 delta on F at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.177778 1.150000 2.000000
+2 / 2: 2.000000 1.545000 .... 0.000000
+3 / 3: 3.000000 3.500000 .... 0.000000
+4 / 4: 4.000000 3.980000 3.500000 1.000000
+5 / 5: 5.000000 4.838462 4.850000 2.000000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _F[gF=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _F[GF=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+ F: 0.5 to 5.5
+ Column 1: DEST is _F[GF=DCOARSE]
+ Column 2: VAR[G=1 delta on F at AVE] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at AVE)
+ Column 3: VAR[G=1 delta on F at BIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at BIN)
+ Column 4: VAR[G=1 delta on F at NBIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000000 1.955556 1.650000 2.000000
+2 / 2: 2.000000 2.200000 .... 0.000000
+3 / 3: 3.000000 .... .... 0.000000
+4 / 4: 4.000000 .... .... 0.000000
+5 / 5: 5.000000 5.000000 5.000000 1.000000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GF=dcoarse]
+ F: 0.5 to 5.5
+ Column 1: DEST is _F[GF=DCOARSE]
+ Column 2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
+ DEST VAR
+1 / 1: 1.000000 ....
+2 / 2: 2.000000 ....
+3 / 3: 3.000000 ....
+4 / 4: 4.000000 ....
+5 / 5: 5.000000 5.000000
+
+
+! *********** Always do a bn_reset ***********
+! *********** make sure things clean up well **
+GO bn_reset
+cancel mode verify
+
+! version 2.3 requires exit/command *sh* 3/92
+exit/command
+yes? ! bn_all_ef_shell.jnl
+yes? ! 5/05 *acm*
+yes? ! run bn_all_ef tests
+yes?
+yes? GO bn_all_ef
+ NOAA/PMEL TMAP
+ FERRET v6.951 (beta)
+ Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
+ 9-Nov-15 15:04
+
+SET MODE VERIFY
+! bn_all_ef.jnl
+! - run all the benchmark tests for externally-linked external functions.
+
+
+GO bn_reset
+cancel mode verify
+GO bn_ef_external_functions.jnl
+! Tests of external functions that are distributed as shared object files.
+
+! Jon's benchmarks
+go bench_examples
+set mode ignore_error
+show func/ext add_9
+ADD_9(A,B,C,D,E,F,G,H,I)
+ (demonstration function) adds 9 arguments
+show func/ext ave*
+AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
+ Compute average of a variable in each cell of output time axis
+ TPTS: T coordinates of scattered input time coordinates
+ VPTS: Variable at times in TPTS
+ TAXIS: Output time axis
+AVET(A)
+ (demonstration function) returns the time average
+ A: data to be averaged over the time axis
+show func pass_thru
+PASS_THRU(A)
+ (demonstration function) sets result equal to input
+ A: this arg is passed through
+show func sto*
+STORAGE(A)
+ sets result equal to input/10
+ A: input
+
+go bench_add_9
+! Bench_add_9.jnl
+! ACM 8/99
+! benchmark script for testing external function add_9.
+! Note: bench_add_9_visual contains plots of similar computations
+
+set mode ignore_errors
+
+
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+
+let a1 = sst[d=1,l=1]
+let a2 = sst[d=1,l=2]
+let a3 = sst[d=1,l=3]
+
+let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+
+list a
+ VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ TIME : 16-JAN 06:00
+ 1S
+ 45
+ 151E / 66: 263.6
+ 153E / 67: 264.5
+ 155E / 68: 264.2
+ 157E / 69: 261.3
+ 159E / 70: 260.9
+ 161E / 71: 262.4
+ 163E / 72: 264.0
+ 165E / 73: 261.1
+ 167E / 74: 260.9
+ 169E / 75: 261.0
+ 171E / 76: 259.3
+ 173E / 77: 257.9
+ 175E / 78: 257.0
+ 177E / 79: 259.1
+ 179E / 80: 254.8
+list a - 3 * sst[d=1,l=1:3 at sum]
+ VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ TIME : 16-JAN 06:00
+ 1S
+ 45
+ 151E / 66: 0.0000
+ 153E / 67: 0.0000
+ 155E / 68: 0.0000
+ 157E / 69: 0.0000
+ 159E / 70: 0.0000
+ 161E / 71: 0.0000
+ 163E / 72: 0.0000
+ 165E / 73: 0.0000
+ 167E / 74: 0.0000
+ 169E / 75: 0.0000
+ 171E / 76: 0.0000
+ 173E / 77: 0.0000
+ 175E / 78: 0.0000
+ 177E / 79: 0.0000
+ 179E / 80: 0.0000
+set mode/last ignore_errors
+go bench_avet
+! Bench_avet.jnl
+! ACM 8/99
+! benchmark script for testing external function avet.
+! Note: bench_avet_visual.jnl contains plots of similar computations
+
+set mode ignore_errors
+
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+
+let a = avet(sst)
+list a
+ VARIABLE : AVET(SST)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ 1S
+ 45
+ 151E / 66: 29.28
+ 153E / 67: 29.39
+ 155E / 68: 29.35
+ 157E / 69: 29.03
+ 159E / 70: 28.99
+ 161E / 71: 29.15
+ 163E / 72: 29.33
+ 165E / 73: 29.01
+ 167E / 74: 28.99
+ 169E / 75: 29.00
+ 171E / 76: 28.81
+ 173E / 77: 28.66
+ 175E / 78: 28.56
+ 177E / 79: 28.79
+ 179E / 80: 28.31
+list a - sst[l=@ave]
+ VARIABLE : A - SST[L=@AVE]
+ FILENAME : coads_climatology.cdf
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ TIME : 01-JAN 00:45 to 01-APR 08:12
+ 1S
+ 45
+ 151E / 66: 0.000E+00
+ 153E / 67: -3.553E-15
+ 155E / 68: 0.000E+00
+ 157E / 69: 0.000E+00
+ 159E / 70: 3.553E-15
+ 161E / 71: 7.105E-15
+ 163E / 72: 3.553E-15
+ 165E / 73: 0.000E+00
+ 167E / 74: 0.000E+00
+ 169E / 75: 3.553E-15
+ 171E / 76: 0.000E+00
+ 173E / 77: 3.553E-15
+ 175E / 78: 0.000E+00
+ 177E / 79: 3.553E-15
+ 179E / 80: 3.553E-15
+
+can region
+let a = x[i=1:9,k=1:5] + t[l=1:5]
+let b = x[i=1:9,k=1:5]
+let c = avet(a)
+list b, c
+ X: 0.5 to 9.5
+ Column 1: B is X[I=1:9,K=1:5]
+ Column 2: C is AVET(A)
+ B C
+1 / 1: 1.000 4.00
+2 / 2: 2.000 5.00
+3 / 3: 3.000 6.00
+4 / 4: 4.000 7.00
+5 / 5: 5.000 8.00
+6 / 6: 6.000 9.00
+7 / 7: 7.000 10.00
+8 / 8: 8.000 11.00
+9 / 9: 9.000 12.00
+
+set mode/last ignore_errors
+go bench_pass_thru
+! Bench_pass_thru.jnl
+! ACM 8/99
+! benchmark script for testing external function pass_thru.
+! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+
+set mode ignore_errors
+
+can region
+let a = pass_thru(x)
+list a[i=1:20]
+ VARIABLE : PASS_THRU(X)
+ SUBSET : 20 points (X)
+ 1 / 1: 1.00
+ 2 / 2: 2.00
+ 3 / 3: 3.00
+ 4 / 4: 4.00
+ 5 / 5: 5.00
+ 6 / 6: 6.00
+ 7 / 7: 7.00
+ 8 / 8: 8.00
+ 9 / 9: 9.00
+ 10 / 10: 10.00
+ 11 / 11: 11.00
+ 12 / 12: 12.00
+ 13 / 13: 13.00
+ 14 / 14: 14.00
+ 15 / 15: 15.00
+ 16 / 16: 16.00
+ 17 / 17: 17.00
+ 18 / 18: 18.00
+ 19 / 19: 19.00
+ 20 / 20: 20.00
+set region/i=1:20
+list sin(a)
+ VARIABLE : SIN(A)
+ SUBSET : 20 points (X)
+ 1 / 1: 0.8415
+ 2 / 2: 0.9093
+ 3 / 3: 0.1411
+ 4 / 4: -0.7568
+ 5 / 5: -0.9589
+ 6 / 6: -0.2794
+ 7 / 7: 0.6570
+ 8 / 8: 0.9894
+ 9 / 9: 0.4121
+ 10 / 10: -0.5440
+ 11 / 11: -1.0000
+ 12 / 12: -0.5366
+ 13 / 13: 0.4202
+ 14 / 14: 0.9906
+ 15 / 15: 0.6503
+ 16 / 16: -0.2879
+ 17 / 17: -0.9614
+ 18 / 18: -0.7510
+ 19 / 19: 0.1499
+ 20 / 20: 0.9129
+can var/all
+can region
+
+use coads_climatology
+let a = pass_thru(sst[l=@ave,y=@sbx:11])
+list/x=50 a
+ VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+ FILENAME : coads_climatology.cdf
+ SUBSET : 90 points (LATITUDE)
+ LONGITUDE: 49E
+ TIME : 01-JAN 00:45 to 01-APR 08:12
49E
15
89N / 90: ....
@@ -79504,7 +87695,7 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79529,7 +87720,7 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79553,7 +87744,7 @@ variables:
B:long_name = "\"one line of text\"" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79592,7 +87783,7 @@ variables:
D:history = "From test_string" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79627,7 +87818,7 @@ variables:
B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79668,7 +87859,7 @@ variables:
V:long_name = "T[GT=MONTH_IRREG]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79725,7 +87916,7 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79782,7 +87973,7 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79837,7 +88028,7 @@ variables:
T2:long_name = "Z[GZ=ZIRR]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79885,7 +88076,7 @@ variables:
V:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -79979,7 +88170,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80049,7 +88240,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80100,7 +88291,7 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80175,7 +88366,7 @@ variables:
A:long_name = "T[GT=TIME]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80202,7 +88393,7 @@ variables:
X_:long_name_mod = "axis ABSTRACT" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
data:
@@ -80226,7 +88417,7 @@ variables:
A:history = "From x" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
:title = "a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short." ;
data:
@@ -80253,11 +88444,11 @@ variables:
A:history = "From t0_cdc" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_long_revision_num.jnl --- history attribute
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
bn_bounds_defineax.jnl --- N+1 def of bounds.
netcdf irrxzt {
dimensions:
@@ -80288,7 +88479,7 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80360,7 +88551,7 @@ variables:
VAR_B:long_name = "my strings" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80404,7 +88595,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80446,7 +88637,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80554,7 +88745,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -80595,7 +88786,7 @@ variables:
Elev:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -80618,7 +88809,7 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80644,7 +88835,7 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80664,7 +88855,7 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80685,7 +88876,7 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80728,7 +88919,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -80768,7 +88959,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -80806,7 +88997,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -80835,7 +89026,7 @@ variables:
A3:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80868,7 +89059,7 @@ variables:
V4:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80894,7 +89085,7 @@ variables:
A:four = "theory" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -80940,7 +89131,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
:simulation = "K-Bay OAR3d model (200m)" ;
:start_date = "980105000000" ;
@@ -81047,7 +89238,7 @@ variables:
TEMP:units = "deg. C" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
:dt_internal = 15. ;
}
@@ -81089,7 +89280,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81172,7 +89363,7 @@ variables:
RIGUE:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81209,7 +89400,7 @@ variables:
B:long_name = "hello" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81249,7 +89440,7 @@ variables:
VWND:units = "M/S" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81300,7 +89491,7 @@ variables:
T2:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81359,7 +89550,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81404,7 +89595,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81447,7 +89638,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81482,7 +89673,7 @@ variables:
TEMP:units = "DEG C" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81516,7 +89707,7 @@ variables:
TWO:history = "From levitus_climatology" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 27 attributes of user-defined axes
@@ -81546,7 +89737,7 @@ variables:
AXY:long_name = "RESHAPE (A,RVAR)" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 28 Define a new global attribute
@@ -81575,7 +89766,7 @@ variables:
BROILED:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
:glob = "Global attribute" ;
:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -81636,7 +89827,7 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81681,7 +89872,7 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81700,7 +89891,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81730,7 +89921,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81760,7 +89951,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81813,7 +90004,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81855,7 +90046,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81873,7 +90064,7 @@ variables:
V:long_name = "Y[GY=YAXIS]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
err611_set_var_ez.jnl ---
@@ -81892,7 +90083,7 @@ variables:
MY_ASC:history = "From dat.dat" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -81910,7 +90101,7 @@ variables:
MY_UNF:history = "From unf.dat" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -81927,7 +90118,7 @@ variables:
A:long_name = "{1.1,2.2,3.3}" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -81948,7 +90139,7 @@ variables:
A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -82011,7 +90202,7 @@ variables:
newvar:history = "From a" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
@@ -82038,7 +90229,7 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -82065,7 +90256,7 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
@@ -82131,7 +90322,7 @@ variables:
ZUP:long_name = "Z[GZ=ZAXUP]" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -82163,7 +90354,7 @@ variables:
Y_:long_name_mod = "axis YFIFTEEN" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -82196,8 +90387,84 @@ variables:
XYTVAR:history = "From bn_strides" ;
// global attributes:
- :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
+ :Conventions = "CF-1.6" ;
+}
+netcdf a {
+dimensions:
+ TIME16 = 8 ;
+ reftime = 3 ;
+ bnds = 2 ;
+variables:
+ double reftime(reftime) ;
+ reftime:units = "calendar month since 2014-11-01t00:00:00z" ;
+ reftime:long_name = "GRIB reference time" ;
+ reftime:calendar = "proleptic_gregorian" ;
+ reftime:point_spacing = "uneven" ;
+ reftime:axis = "F" ;
+ reftime:bounds = "reftime_bnds" ;
+ double reftime_bnds(reftime, bnds) ;
+ double time(reftime, TIME16) ;
+ time:units = "calendar Month since 2014-11-01T00:00:00Z" ;
+ time:long_name = "GRIB forecast or observation time" ;
+ time:calendar = "proleptic_gregorian" ;
+ time:bounds = "time_bounds" ;
+ time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
+
+// global attributes:
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
+ :Conventions = "CF-1.6" ;
+data:
+
+ reftime = 0, 1, 2.03333333333333 ;
+
+ reftime_bnds =
+ -0.5, 0.5,
+ 0.5, 1.51666666666667,
+ 1.51666666666667, 2.55 ;
+
+ time =
+ 1, 2, 3, 4, 5, 6, 7, 8,
+ 2, 3, 4, 5, 6, 7, 8, 9,
+ 3, 4, 5, 6, 7, 8, 9, 10 ;
+}
+netcdf a {
+dimensions:
+ time = 8 ;
+ reftime = 3 ;
+ bnds = 2 ;
+variables:
+ double reftime(reftime) ;
+ reftime:units = "calendar month since 2014-11-01t00:00:00z" ;
+ reftime:long_name = "GRIB reference time" ;
+ reftime:calendar = "proleptic_gregorian" ;
+ reftime:point_spacing = "uneven" ;
+ reftime:axis = "F" ;
+ reftime:bounds = "reftime_bnds" ;
+ double reftime_bnds(reftime, bnds) ;
+ double time(reftime, time) ;
+ time:units = "calendar Month since 2014-11-01T00:00:00Z" ;
+ time:long_name = "GRIB forecast or observation time" ;
+ time:calendar = "proleptic_gregorian" ;
+ time:bounds = "time_bounds" ;
+ time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
+
+// global attributes:
+ :history = "FERRET V6.951 (beta) 9-Nov-15" ;
:Conventions = "CF-1.6" ;
+data:
+
+ reftime = 0, 1, 2.03333333333333 ;
+
+ reftime_bnds =
+ -0.5, 0.5,
+ 0.5, 1.51666666666667,
+ 1.51666666666667, 2.55 ;
+
+ time =
+ 1, 2, 3, 4, 5, 6, 7, 8,
+ 2, 3, 4, 5, 6, 7, 8, 9,
+ 3, 4, 5, 6, 7, 8, 9, 10 ;
}
-----
end of ncdump output
@@ -82210,49 +90477,49 @@ yes?
yes?
yes? GO bn_startupfile
NOAA/PMEL TMAP
- FERRET v6.93 (beta)
- Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
- 29-Oct-14 16:04
+ FERRET v6.951 (beta)
+ Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
+ 9-Nov-15 15:04
CAN MODE VERIFY
Current size of FERRET memory cache: 31 MegaWords (1 word = 8 bytes)
PPL$XPIXEL = "656"
PPL$YPIXEL = "492"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul 1 2015 15:02:01 $"
FERRET_MEMORY = "31"
-SESSION_DATE = "29-Oct-14"
-SESSION_TIME = "16:04"
-SESSION_PID = "2382"
-DELTA_CPU = "0.070989"
-CLOCK_SECS = "0.418"
-CURRENT_DATE = "29-Oct-14"
-CURRENT_TIME = "16:04:39"
+SESSION_DATE = " 9-Nov-15"
+SESSION_TIME = "15:04"
+SESSION_PID = "8705"
+DELTA_CPU = "0.066989"
+CLOCK_SECS = "0.464"
+CURRENT_DATE = " 9-Nov-15"
+CURRENT_TIME = "15:04:15"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
LAST_GO_FILE = "./bn_startupfile.jnl"
PPL$FORMAT = "(3F10.2)"
PPL$PLTNME = "startup_tests.plt"
-PPL$TEKNME = "/dev/tty"
-PPL$XLEN = "8.000"
-PPL$YLEN = "6.000"
-PPL$XORG = "1.200"
-PPL$YORG = "1.400"
-PPL$WIDTH = "10.20"
-PPL$HEIGHT = "8.800"
+PPL$TEKNME = "/dev/tt"
+PPL$XLEN = "8.00000"
+PPL$YLEN = "6.00000"
+PPL$XORG = "1.20000"
+PPL$YORG = "1.40000"
+PPL$WIDTH = "10.2000"
+PPL$HEIGHT = "8.80000"
PPL$LINE_COUNT = "0"
-PPL$XFACT1 = "1.000"
-PPL$XOFF1 = "0.000"
-PPL$YFACT1 = "1.000"
-PPL$YOFF1 = "0.000"
+PPL$XFACT1 = "1.000000"
+PPL$XOFF1 = "0.000000"
+PPL$YFACT1 = "1.000000"
+PPL$YOFF1 = "0.000000"
PPL$VIEW_X = "0.000"
PPL$VIEW_Y = "0.000"
PPL$VIEW_Z = "0.000"
PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "29-Oct-14:16:04"
+WIN_TITLE = "9-Nov-15:15:04"
VP_WIDTH = "10.2"
VP_HEIGHT = "8.8"
VP_SCALE = "1"
@@ -82274,7 +90541,8 @@ GO_FILE = "./bn_startupfile.jnl"
LATIT_LABEL CANCELLED 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -82293,7 +90561,8 @@ GO_FILE = "./bn_startupfile.jnl"
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
currently SET data sets:
1> ./gtbc011.cdf (default)
name title I J K L M N
@@ -82314,9 +90583,9 @@ yes?
yes?
yes? GO bn_gif
NOAA/PMEL TMAP
- FERRET v6.93 (beta)
- Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
- 29-Oct-14 16:04
+ FERRET v6.951 (beta)
+ Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
+ 9-Nov-15 15:04
! bn450_gif.JNL - copied from bn450_plot.jnl
! this journal file only tests the writing of gif file in batch mode using
@@ -82533,9 +90802,9 @@ yes?
yes?
yes? GO bn_ps
NOAA/PMEL TMAP
- FERRET v6.93 (beta)
- Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
- 29-Oct-14 16:04
+ FERRET v6.951 (beta)
+ Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
+ 9-Nov-15 15:04
! bn450_ps.JNL - copied from bn450_plot.jnl
! this journal file only tests the writing of ps files in batch mode using
@@ -82647,9 +90916,9 @@ yes?
yes?
yes? GO bn_batch_metafile
NOAA/PMEL TMAP
- FERRET v6.93 (beta)
- Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
- 29-Oct-14 16:04
+ FERRET v6.951 (beta)
+ Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
+ 9-Nov-15 15:04
! bn_batch_metafile.jnl
! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -82733,4 +91002,4 @@ set window/location=0.1,0.1/title="another title"
set mode/last logo
exit/command
-Ended at Wed Oct 29 16:04:41 PDT 2014
+Ended at Mon Nov 9 15:04:17 PST 2015
diff --git a/bench/ansley_official.x86_64-linux_err b/bench/ansley_official.x86_64-linux_err
index be314a6..2773bb8 100644
--- a/bench/ansley_official.x86_64-linux_err
+++ b/bench/ansley_official.x86_64-linux_err
@@ -1,26 +1,27 @@
Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/x86/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 53365065 Oct 7 10:08 /home/users/ansley/build/x86/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/x86/FERRET/external_functions/ext_func
+Running FERRET version /home/users/ksmith/Ferret/bin/ferret
+lrwxrwxrwx 1 ksmith tmap 12 Oct 26 17:18 /home/users/ksmith/Ferret/bin/ferret -> ferret_v6.95
+Using external functions from /home/users/ksmith/Ferret/ext_func/libs
Running the tests of external functions y
-Benchmark run by ansley
-Note: ticket 2203
+Benchmark run by Karl
+Note: Benchmark tests on RHEL5-64
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
FER_DAT=.
FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/tmap/ferret/linux/fer_dsets
+FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/ksmith/Datasets
FER_DESCR=.
FER_DIR=.
FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/x86/FERRET/external_functions/ext_func
-FER_GO=. /home/users/tmap/ferret/x86_64-linux/go /home/users/tmap/ferret/x86_64-linux/examples /home/users/tmap/ferret/x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
+FER_EXTERNAL_FUNCTIONS=/home/users/ksmith/Ferret/ext_func/libs
+FER_FONTS=/home/users/ksmith/Ferret/ppl/fonts
+FER_GO=. /home/users/ksmith/Ferret/go /home/users/ksmith/Ferret/examples /home/users/ksmith/Ferret/contrib
FER_GRIDS=.
-FER_LIBS=/home/users/tmap/ferret/x86_64-linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
-FER_PALETTE=. /home/users/tmap/ferret/x86_64-linux/ppl
-PWD=/home/users/ansley/build/x86/FERRET/bench
-Beginning at Tue Oct 7 10:41:47 PDT 2014
+FER_LIBS=/home/users/ksmith/Ferret/lib
+FER_PALETTE=. /home/users/ksmith/Ferret/ppl
+FER_WEB_BROWSER=firefox
+Beginning at Mon Oct 26 17:21:34 PDT 2015
+ Cached data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
SET EXPRESSION has not been given or implied
@@ -41,12 +42,12 @@ message/cont $3"<my error message"
message/cont $1"|xxxxx|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $1
message/cont $1"greetings|xxxxx|goodbye"
- *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
+ *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
**ERROR: my error message
message/cont $3"|hello|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3">greetings|hello|goodbye"
- *** NOTE: Valid argument $3 choices are: hello|goodbye
+ *** NOTE: Valid argument $3 choices are: hello|goodbye
**ERROR: my error message
message/cont $3">greetings|hello|goodbye<my error message"
**ERROR: my error message
@@ -57,17 +58,17 @@ message/cont $3""
message/cont $3"<"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"||"
- *** NOTE: Valid argument $3 choices are: |
+ *** NOTE: Valid argument $3 choices are: |
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"|>|"
- *** NOTE: Valid argument $3 choices are: >|
+ *** NOTE: Valid argument $3 choices are: >|
**ERROR: command syntax: empty text string provided with ">": >|
message/cont $3">|"
**ERROR: command syntax: empty text string provided with ">": |<
message/cont $3"|<"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"|>"
- *** NOTE: Valid argument $3 choices are: >
+ *** NOTE: Valid argument $3 choices are: >
**ERROR: command syntax: arg number not in 1-99 range: $100
say $100
**ERROR: command syntax: arg number not in 1-99 range: $100)
@@ -105,16 +106,16 @@ MESSAGE/CONTINUE `1*/3`
**ERROR: command syntax: sst*/3
* before / is illegal
MESSAGE/CONTINUE `sst*/3,return=lunits`
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
sst,return=Xsize
MESSAGE/CONTINUE `sst,return=Xsize`
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
sst,return=trash
MESSAGE/CONTINUE `sst,return=trash`
PERMANENT data cleared from memory
@@ -129,12 +130,22 @@ can var
LISTing to file v1file.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ **ERROR: invalid command: ENDIF can only be used in an IF clause
+ENDIF
+ **ERROR: command syntax: ELIF cannot be used in single line IF
+ IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+ **ERROR: command syntax: Trash after ENDIF
+ IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+ *** NOTE: Unclosed IF statement ... assuming ENDIF
**ERROR: invalid command: ELSE can only be used between IF and ENDIF
else
**ERROR: invalid command: ENDIF can only be used in an IF clause
endif
**ERROR: invalid command: ELIF can only be used between IF and ENDIF
elif
+ *** NOTE: Unclosed IF statement ... assuming ENDIF
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -152,7 +163,7 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
+ *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
**ERROR: inconsistent sizes of data regions: X axis
X[I=6:9] has 4 points (I=6:9)
expression has 5 points (I=1:5)
@@ -227,8 +238,8 @@ Re-defining viewport LM6
Re-defining viewport UM6
Using every 2th vector in the X direction
Using every 2th vector in the Y direction
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+ *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+ *** NOTE: Use /HLIMITS and /VLIMITS instead.
**ERROR: invalid command: color=noexist
Colors are Black,Red,Green,Blue,LightBlue,Purple, and White
plot/over/i=1:10/color=noexist i
@@ -275,12 +286,12 @@ define symbol t$5 = hi
message/continue ($test2"<error message")
**ERROR: invalid command: Valid value needed for symbol test2
message/continue ($test2"|hello|bye|")
- *** NOTE: Valid symbol test2 choices are: hello|bye|
+ *** NOTE: Valid symbol test2 choices are: hello|bye|
**ERROR: error message
message/continue ($test2"|hello|bye|<error message")
**ERROR: invalid command: Valid value needed for symbol t2
message/continue ($t2"|solong>really hello|bye|")
- *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
+ *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -330,12 +341,12 @@ list tu
Cached data cleared from memory
**ERROR: request exceeds memory setting: 25 Mwords were requested.
list temp[gz=z999999,z=5:15]
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Cached data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
+ *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
+ *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
**ERROR: invalid command: non-positive delta value: X[I=1:5:-1]
list x[i=1:5:-1]
**ERROR: invalid command: non-positive delta value: X[I=1:5:0]
@@ -399,9 +410,9 @@ list a
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file test2.cdf
LISTing to file FL.cdf
LISTing to file FTLON.cdf
@@ -465,7 +476,7 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: regridding: G=W - more than 1 target grid
@@ -559,14 +570,12 @@ Replacing definition of axis TAX
list v2-and-minus
**ERROR: dimensions improperly specified: 99999999 words were requested.
list x
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
+ *** NOTE: Check for unspecified limits on an ABSTRACT axis
+ *** NOTE: Use the SHOW GRID command to see the axes
**ERROR: dimensions improperly specified: 99999999 words were requested.
list i
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: variable unknown or not in data set: 'i'
-list 'i'
+ *** NOTE: Check for unspecified limits on an ABSTRACT axis
+ *** NOTE: Use the SHOW GRID command to see the axes
**ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
- before and is illegal
list v2-and-minus[i=5:15 at ddc]
@@ -581,15 +590,15 @@ Replacing definition of axis ZAX
Replacing definition of axis TAX
**ERROR: request exceeds memory setting: 24000 Mwords were requested.
load num
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
**ERROR: request exceeds memory setting: 1000 Mwords were requested.
load num
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis XAX
Replacing definition of axis YAX
Replacing definition of axis ZAX
@@ -599,7 +608,7 @@ Replacing definition of axis TAX
SET DATA/EZ/format=stream/var=num/grid=mygrid NoSuchFile.dat
**ERROR: Size of file ./junk.dat doesn't match size specified by variables/grid
load num
- *** NOTE: Binary file reading: Insufficient memory reading variable 2
+ *** NOTE: Binary file reading: Insufficient memory reading variable 2
**ERROR: invalid command: variable permutations only allowed for STREAM format
SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
**ERROR: invalid command: invalid argument for /TYPE
@@ -632,37 +641,37 @@ Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax/edges {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax/edges {6,6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
Replacing definition of axis XAX2
- *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
+ *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
Replacing definition of axis XAX2
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -695,7 +704,7 @@ Replacing definition of axis TCAL
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -751,8 +760,8 @@ stat i, noname(i)
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
**ERROR: invalid command: delta values may only modify variable names
LIST/i=2:4:2 VAR
PERMANENT data cleared from memory
@@ -761,15 +770,15 @@ LIST/i=2:4:2 VAR
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
+ *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of grid GX
@@ -794,14 +803,11 @@ Replacing definition of axis TWEEKS
Replacing definition of axis TWEEKS
Replacing definition of axis TWEEKS
LISTing to file calsst.cdf
-
-Bailing out of external function "ffta":
- Time axis must be a regular axis
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
Replacing definition of grid TGRID
Replacing definition of axis TDAYS
Replacing definition of grid TGRID
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: command syntax: dash=(1., 2.)
@@ -814,6 +820,18 @@ plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
TEMPORARY data cleared from memory
Using every 2th vector in the Y direction
Using every 2th vector in the Y direction
+
+Bailing out of external function "ffta":
+ Time axis must be a regular axis
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_stat":
+ Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Using every 2th vector in the X direction
@@ -842,19 +860,10 @@ Replacing definition of axis X10
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: X10
+ *** NOTE: Axis is in use by grid G10X5
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
-
-Bailing out of external function "eof_space":
- Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
-
-Bailing out of external function "eof_stat":
- Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
-
-Bailing out of external function "eof_tfunc":
- Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -922,10 +931,10 @@ list strcat ("All work and no play")
LISTing to file test_modulo.cdf
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Re-defining viewport MID
@@ -965,6 +974,18 @@ list a[gx=xnrst at sum]
**ERROR: invalid command: cant use this regrid transform on strings: @MOD
list a[gx=xnrst at mod]
LISTing to file foo.cdf
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" - {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" * {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" / {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" ^ {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead SIN({"a","b","c"})
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead MAX("a",{"a","b","c"})
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -980,12 +1001,12 @@ Replacing definition of grid G1
**TMAP ERR: syntax error in string
Unrecognized field type: D
Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+ *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
SET DATA/FORM=delimited/type="d, da2,date2" bn_delimited_read_date_time.dat
**TMAP ERR: syntax error in string
Unrecognized field type: DATE2
Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+ *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
SET DATA/FORM=delimited/type="da,da, date2" bn_delimited_read_date_time.dat
**ERROR: command syntax: ,,:
SET DATA/EZ/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
@@ -1044,284 +1065,287 @@ Replacing definition of axis YAX
Replacing definition of grid MYGRID
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+sh: ncrename: command not found
+sh: ncrename: command not found
+sh: ncrename: command not found
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file longax.dat
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
+ *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: Climatological axes test_irreg, test_seas defined
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
Replacing definition of axis TAX2
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file string4d.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G023)
- *** NOTE: Not deleted: XEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: XODD
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** NOTE: Axis is in use by grid JGRID
- *** NOTE: Not deleted: MONTHT
- *** NOTE: Axis is in use by grid TGRID
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: YAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAXLEVITR1_160
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME5
- *** NOTE: Axis is in use by grid GLB1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: COADSX
- *** NOTE: Axis is in use by grid GG
- *** NOTE: Not deleted: COADSY
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G023)
- *** NOTE: Not deleted: YAXLEVITR1_90
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: ZAXLEVITR1_1
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: (AX020)
- *** NOTE: Axis is in use by grid GG3
- *** NOTE: Not deleted: XEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: XODD
- *** NOTE: Axis is in use by grid G13
- *** NOTE: Not deleted: YEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: YODD
- *** NOTE: Axis is in use by grid G2
- *** NOTE: Not deleted: ZEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: ZODD
- *** NOTE: Axis is in use by grid G3
- *** NOTE: Not deleted: TEVEN
- *** NOTE: Axis is in use by grid EVEN
- *** NOTE: Not deleted: TODD
- *** NOTE: Axis is in use by grid G4
- *** NOTE: Not deleted: XCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: YFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: YCOARSE
- *** NOTE: Axis is in use by grid GCOARSE
- *** NOTE: Not deleted: XFINE
- *** NOTE: Axis is in use by grid GFINE
- *** NOTE: Not deleted: TAX48
- *** NOTE: Axis is in use by grid G48
- *** NOTE: Not deleted: XEZ1
- *** NOTE: Axis is in use by grid GEZ1
- *** NOTE: Not deleted: XEZ2
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: YEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: ZEZ
- *** NOTE: Axis is in use by grid GEZ2
- *** NOTE: Not deleted: XEZ3
- *** NOTE: Axis is in use by grid GEZ3
- *** NOTE: Not deleted: LON_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LAT_FIELD_J_AXIS
- *** NOTE: Axis is in use by grid LAT_FIELD_GRID
- *** NOTE: Not deleted: LON_FIELD_I_AXIS
- *** NOTE: Axis is in use by grid LON_FIELD_GRID
- *** NOTE: Not deleted: XIRREG
- *** NOTE: Axis is in use by grid GIRREG
- *** NOTE: Not deleted: TCENTURY
- *** NOTE: Axis is in use by grid GCENTURY
- *** NOTE: Not deleted: TAX5DAY
- *** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: XAX10
- *** NOTE: Axis is in use by grid G5_10
- *** NOTE: Not deleted: X5
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y5
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: TIME1
- *** NOTE: Axis is in use by grid GHB1
- *** NOTE: Not deleted: TIME2
- *** NOTE: Axis is in use by grid GCQ1
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: X4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Y4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: Z4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: T4
- *** NOTE: Axis is in use by grid G4D
- *** NOTE: Not deleted: XCHANNEL
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: YRISE
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: ZLAYER
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: TIME
- *** NOTE: Axis is in use by grid GSIGMA
- *** NOTE: Not deleted: Z1
- *** NOTE: Axis is in use by grid G1
- *** NOTE: Not deleted: TCAL
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: XTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: YTROP
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: ZAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: Y1
- *** NOTE: Axis is in use by grid GSRC
- *** NOTE: Not deleted: Y2
- *** NOTE: Axis is in use by grid G10X2
- *** NOTE: Not deleted: JMONTHS
- *** NOTE: Axis is in use by grid JGRID
- *** NOTE: Not deleted: MONTHT
- *** NOTE: Axis is in use by grid TGRID
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
- *** NOTE: Not deleted: YAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: XAXLEVITR1_160
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME5
- *** NOTE: Axis is in use by grid GLB1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
- *** NOTE: Not deleted: COADSX
- *** NOTE: Axis is in use by grid GG
- *** NOTE: Not deleted: COADSY
- *** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: YAXLEVITR1_90
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: ZAXLEVITR1_1
- *** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: (AX020)
- *** NOTE: Axis is in use by grid GG3
+ *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: Climatological axes test_irreg, test_seas defined
+ *** NOTE: Not deleted: TEST_IRREG
+ *** NOTE: Axis is in use by grid (G023)
+ *** NOTE: Not deleted: XEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: XODD
+ *** NOTE: Axis is in use by grid G13
+ *** NOTE: Not deleted: YEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: YODD
+ *** NOTE: Axis is in use by grid G2
+ *** NOTE: Not deleted: ZEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: ZODD
+ *** NOTE: Axis is in use by grid G3
+ *** NOTE: Not deleted: TEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: TODD
+ *** NOTE: Axis is in use by grid G4
+ *** NOTE: Not deleted: XCOARSE
+ *** NOTE: Axis is in use by grid GCOARSE
+ *** NOTE: Not deleted: YFINE
+ *** NOTE: Axis is in use by grid GFINE
+ *** NOTE: Not deleted: YCOARSE
+ *** NOTE: Axis is in use by grid GCOARSE
+ *** NOTE: Not deleted: XFINE
+ *** NOTE: Axis is in use by grid GFINE
+ *** NOTE: Not deleted: TAX48
+ *** NOTE: Axis is in use by grid G48
+ *** NOTE: Not deleted: XEZ1
+ *** NOTE: Axis is in use by grid GEZ1
+ *** NOTE: Not deleted: XEZ2
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: YEZ
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: ZEZ
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: XEZ3
+ *** NOTE: Axis is in use by grid GEZ3
+ *** NOTE: Not deleted: LON_FIELD_J_AXIS
+ *** NOTE: Axis is in use by grid LON_FIELD_GRID
+ *** NOTE: Not deleted: LAT_FIELD_I_AXIS
+ *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+ *** NOTE: Not deleted: LAT_FIELD_J_AXIS
+ *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+ *** NOTE: Not deleted: LON_FIELD_I_AXIS
+ *** NOTE: Axis is in use by grid LON_FIELD_GRID
+ *** NOTE: Not deleted: XIRREG
+ *** NOTE: Axis is in use by grid GIRREG
+ *** NOTE: Not deleted: TCENTURY
+ *** NOTE: Axis is in use by grid GCENTURY
+ *** NOTE: Not deleted: TAX5DAY
+ *** NOTE: Axis is in use by grid G5DAY
+ *** NOTE: Not deleted: XAX10
+ *** NOTE: Axis is in use by grid G5_10
+ *** NOTE: Not deleted: X5
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: Y5
+ *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: TIME1
+ *** NOTE: Axis is in use by grid GHB1
+ *** NOTE: Not deleted: TIME2
+ *** NOTE: Axis is in use by grid GCQ1
+ *** NOTE: Not deleted: TAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: X4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: Y4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: Z4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: T4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: XCHANNEL
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: YRISE
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: ZLAYER
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: TIME
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: Z1
+ *** NOTE: Axis is in use by grid G1
+ *** NOTE: Not deleted: TCAL
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: XTROP
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: YTROP
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: ZAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: Y1
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: Y2
+ *** NOTE: Axis is in use by grid G10X2
+ *** NOTE: Not deleted: JMONTHS
+ *** NOTE: Axis is in use by grid JGRID
+ *** NOTE: Not deleted: MONTHT
+ *** NOTE: Axis is in use by grid TGRID
+ *** NOTE: Not deleted: X10
+ *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: YAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: XAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: XAXLEVITR1_160
+ *** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: TIME5
+ *** NOTE: Axis is in use by grid GLB1
+ *** NOTE: Not deleted: TIME4
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: COADSX
+ *** NOTE: Axis is in use by grid GG
+ *** NOTE: Not deleted: COADSY
+ *** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: TEST_IRREG
+ *** NOTE: Axis is in use by grid (G023)
+ *** NOTE: Not deleted: YAXLEVITR1_90
+ *** NOTE: Axis is in use by grid GG2
+ *** NOTE: Not deleted: ZAXLEVITR1_1
+ *** NOTE: Axis is in use by grid GG2
+ *** NOTE: Not deleted: (AX020)
+ *** NOTE: Axis is in use by grid GG3
+ *** NOTE: Not deleted: XEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: XODD
+ *** NOTE: Axis is in use by grid G13
+ *** NOTE: Not deleted: YEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: YODD
+ *** NOTE: Axis is in use by grid G2
+ *** NOTE: Not deleted: ZEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: ZODD
+ *** NOTE: Axis is in use by grid G3
+ *** NOTE: Not deleted: TEVEN
+ *** NOTE: Axis is in use by grid EVEN
+ *** NOTE: Not deleted: TODD
+ *** NOTE: Axis is in use by grid G4
+ *** NOTE: Not deleted: XCOARSE
+ *** NOTE: Axis is in use by grid GCOARSE
+ *** NOTE: Not deleted: YFINE
+ *** NOTE: Axis is in use by grid GFINE
+ *** NOTE: Not deleted: YCOARSE
+ *** NOTE: Axis is in use by grid GCOARSE
+ *** NOTE: Not deleted: XFINE
+ *** NOTE: Axis is in use by grid GFINE
+ *** NOTE: Not deleted: TAX48
+ *** NOTE: Axis is in use by grid G48
+ *** NOTE: Not deleted: XEZ1
+ *** NOTE: Axis is in use by grid GEZ1
+ *** NOTE: Not deleted: XEZ2
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: YEZ
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: ZEZ
+ *** NOTE: Axis is in use by grid GEZ2
+ *** NOTE: Not deleted: XEZ3
+ *** NOTE: Axis is in use by grid GEZ3
+ *** NOTE: Not deleted: LON_FIELD_J_AXIS
+ *** NOTE: Axis is in use by grid LON_FIELD_GRID
+ *** NOTE: Not deleted: LAT_FIELD_I_AXIS
+ *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+ *** NOTE: Not deleted: LAT_FIELD_J_AXIS
+ *** NOTE: Axis is in use by grid LAT_FIELD_GRID
+ *** NOTE: Not deleted: LON_FIELD_I_AXIS
+ *** NOTE: Axis is in use by grid LON_FIELD_GRID
+ *** NOTE: Not deleted: XIRREG
+ *** NOTE: Axis is in use by grid GIRREG
+ *** NOTE: Not deleted: TCENTURY
+ *** NOTE: Axis is in use by grid GCENTURY
+ *** NOTE: Not deleted: TAX5DAY
+ *** NOTE: Axis is in use by grid G5DAY
+ *** NOTE: Not deleted: XAX10
+ *** NOTE: Axis is in use by grid G5_10
+ *** NOTE: Not deleted: X5
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: Y5
+ *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: TIME1
+ *** NOTE: Axis is in use by grid GHB1
+ *** NOTE: Not deleted: TIME2
+ *** NOTE: Axis is in use by grid GCQ1
+ *** NOTE: Not deleted: TAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: X4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: Y4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: Z4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: T4
+ *** NOTE: Axis is in use by grid G4D
+ *** NOTE: Not deleted: XCHANNEL
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: YRISE
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: ZLAYER
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: TIME
+ *** NOTE: Axis is in use by grid GSIGMA
+ *** NOTE: Not deleted: Z1
+ *** NOTE: Axis is in use by grid G1
+ *** NOTE: Not deleted: TCAL
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: XTROP
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: YTROP
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: ZAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: Y1
+ *** NOTE: Axis is in use by grid GSRC
+ *** NOTE: Not deleted: Y2
+ *** NOTE: Axis is in use by grid G10X2
+ *** NOTE: Not deleted: JMONTHS
+ *** NOTE: Axis is in use by grid JGRID
+ *** NOTE: Not deleted: MONTHT
+ *** NOTE: Axis is in use by grid TGRID
+ *** NOTE: Not deleted: X10
+ *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: YAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: XAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: XAXLEVITR1_160
+ *** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: TIME5
+ *** NOTE: Axis is in use by grid GLB1
+ *** NOTE: Not deleted: TIME4
+ *** NOTE: Axis is in use by grid GXYT
+ *** NOTE: Not deleted: COADSX
+ *** NOTE: Axis is in use by grid GG
+ *** NOTE: Not deleted: COADSY
+ *** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: YAXLEVITR1_90
+ *** NOTE: Axis is in use by grid GG2
+ *** NOTE: Not deleted: ZAXLEVITR1_1
+ *** NOTE: Axis is in use by grid GG2
+ *** NOTE: Not deleted: (AX020)
+ *** NOTE: Axis is in use by grid GG3
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1345,14 +1369,14 @@ define axis/x=130e:500:10/modulo=360 xsub
LISTing to file test_subspan_modulo.nc
LISTing to file test_subspan_modulo.nc
LISTing to file test_subspan_modulo.nc
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /THICKNESS ignored on /SYMBOL=DOT
- *** NOTE: /SIZE= ignored on /SYMBOL=DOT
+ *** NOTE: /THICKNESS ignored on /SYMBOL=DOT
+ *** NOTE: /SIZE= ignored on /SYMBOL=DOT
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1361,10 +1385,10 @@ define axis/x=130e:500:10/modulo=360 xsub
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
- *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
+ *** NOTE: modulo = "j"
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1407,11 +1431,12 @@ SHADE/L=1/LEV=0.01d sst
POLYGON/KEY/LEV=0.01d/coord_ax=Z PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
+ *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+ *** NOTE: A dummy axis of subscripts will be used
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+rm: cannot remove `input.txt': No such file or directory
ls: input.txt: No such file or directory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -1419,10 +1444,10 @@ Replacing definition of axis XAX
Replacing definition of axis YAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
axy, return=xx
MESSAGE/CONTINUE `axy, return=xx`
PERMANENT data cleared from memory
@@ -1433,7 +1458,7 @@ Replacing definition of axis XAX
TEMPORARY data cleared from memory
Replacing definition of axis YAX
Replacing definition of axis Z1
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1443,8 +1468,8 @@ Replacing definition of axis Z1
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
+ *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ *** NOTE: Axis has repeated values -- micro-adjusting TIME
**ERROR: illegal limits: "DUMMY" does not exist at T=JAN-1990
Axis extremes are T=DEC-1997:JAN-1998
list/t=1-jan-1990 dummy
@@ -1515,7 +1540,7 @@ SHOW VAR/XML
Using every 5th vector in the X direction
Using every 3th vector in the Y direction
Using every 2th vector in the X direction
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
@@ -1590,8 +1615,8 @@ Replacing definition of grid AGRID
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1627,9 +1652,9 @@ Replacing definition of axis YAX
LISTing to file a.nc
Replacing definition of axis TAX
Replacing definition of axis TAX
- *** NOTE: Axis definition error on axis: TAX
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Axis definition error on axis: TAX
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
Replacing definition of axis TAX
**ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
@@ -1641,16 +1666,16 @@ def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,
def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
**ERROR: improper grid or axis definition: dimension of bounds (15) must be 2*N or N+1, N=number of axis coordinates (7)
def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+ *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
**ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: TAX
+ *** NOTE: Axis is in use by grid GFORMAT
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
+ *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
+ *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
LISTing to file a.nc
Replacing definition of axis XAX
Replacing definition of axis ZAX
@@ -1659,19 +1684,19 @@ Replacing definition of axis TAX
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of grid TGRID
@@ -1679,16 +1704,16 @@ Replacing definition of grid TGRID
def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units not recognized: something
- *** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: something
- *** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: zorro
- *** NOTE: They will not be convertible:
- *** NOTE: Units not recognized for T axis: meters
- *** NOTE: They will not be convertible
- *** NOTE: Units not recognized for Y axis: seconds
- *** NOTE: They will not be convertible
+ *** NOTE: Units not recognized: something
+ *** NOTE: They will not be convertible:
+ *** NOTE: Units not recognized: something
+ *** NOTE: They will not be convertible:
+ *** NOTE: Units not recognized: zorro
+ *** NOTE: They will not be convertible:
+ *** NOTE: Units not recognized for T axis: meters
+ *** NOTE: They will not be convertible
+ *** NOTE: Units not recognized for Y axis: seconds
+ *** NOTE: They will not be convertible
Replacing definition of axis TAX
Replacing definition of axis XAX
PERMANENT data cleared from memory
@@ -1701,7 +1726,7 @@ Replacing definition of axis XAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
Replacing definition of axis TAX
Replacing definition of axis ZAX
PERMANENT data cleared from memory
@@ -1768,7 +1793,7 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
Replacing definition of axis TAX
LISTing to file aa.nc
LISTing to file cc.nc
@@ -1780,27 +1805,27 @@ Replacing definition of axis TAX
query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
**ERROR: invalid command: Valid value needed for argument $2
query/ignore $2%|a|b|c|d|%
- *** NOTE: Valid argument $2 choices are: a|b|c|d|
+ *** NOTE: Valid argument $2 choices are: a|b|c|d|
**ERROR: my error message
message/cont $1"|xxxxx|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $1
message/cont $1"greetings|xxxxx|goodbye"
- *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
+ *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
**ERROR: my error message
message/cont $3"|hello|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3">greetings|hello|goodbye"
- *** NOTE: Valid argument $3 choices are: hello|goodbye
+ *** NOTE: Valid argument $3 choices are: hello|goodbye
**ERROR: my error message
message/continue ($test2"<my error message")
**ERROR: invalid command: Valid value needed for symbol test2
message/continue ($test2"|hello|bye|")
- *** NOTE: Valid symbol test2 choices are: hello|bye|
+ *** NOTE: Valid symbol test2 choices are: hello|bye|
**ERROR: my error message
message/continue ($test2"|hello|bye|<my error message")
**ERROR: invalid command: Valid value needed for symbol t2
message/continue ($t2"|solong>really hello|bye|")
- *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
+ *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1824,29 +1849,28 @@ Replacing definition of axis XQ
Replacing definition of axis YQ
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Evenly spaced axis has edges definition: TCOADS - ignored
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TIME1
- *** NOTE: grid used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GHB2 used by data set coads_clim
+ *** NOTE: Redefinition may alter apparent contents of data set
Replacing definition of axis TIME1
- *** NOTE: grid used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GHB2 used by data set coads_clim
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis COADSX.ILLEGAL
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX2 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX1 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
Replacing definition of axis COADSY.ILLEGAL
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX3 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX1 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1881,10 +1905,10 @@ Replacing definition of axis TIME
Replacing definition of axis TAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
**ERROR: improper grid or axis definition: error in start,end,delta
DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
**ERROR: improper grid or axis definition: error in start,end,delta
DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
PERMANENT data cleared from memory
@@ -1970,7 +1994,7 @@ sho att/all .
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1979,26 +2003,26 @@ sho att/all .
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the length of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.some_text
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the value of attribute temp.missing_value
- *** NOTE: Changing the value of attribute temp.missing_value
+ *** NOTE: Changing the value of attribute temp.long_name
+ *** NOTE: Changing the value of attribute temp.units
+ *** NOTE: Changing the value of attribute temp.missing_value
+ *** NOTE: Changing the value of attribute temp.missing_value
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSZT1).positive
- *** NOTE: Changing the type of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (TIME4).time_origin
+ *** NOTE: Changing the value of attribute (PSZT1).positive
+ *** NOTE: Changing the type of attribute (coadsx).modulo
+ *** NOTE: Changing the value of attribute (coadsx).modulo
+ *** NOTE: Changing the value of attribute (TIME4).time_origin
**ERROR: command syntax: enclose coordinate variable name in parentheses
list coadsx.units
**ERROR: variable unknown or not in data set: COADSX.UNITS
@@ -2009,17 +2033,17 @@ set att (COADSX81_81).axis = "Z"
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the type of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the length of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the type of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the type of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.long_name
+ *** NOTE: Changing the value of attribute temp.units
+ *** NOTE: Changing the type of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
@@ -2055,10 +2079,10 @@ Replacing definition of grid MYGRID
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
@@ -2067,27 +2091,27 @@ Replacing definition of grid MYGRID
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (COADSX).point_spacing
- *** NOTE: Changing the value of attribute (COADSY).point_spacing
+ *** NOTE: Changing the value of attribute (COADSX).point_spacing
+ *** NOTE: Changing the value of attribute (COADSY).point_spacing
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
data in attribute missing_value not representable in output type NC_INT
LIST/FORMAT=CDF/file=a.nc/clobber/x=132w/k=1 temp
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
**ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
set var/outtype=char broiled
**ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
set var/outtype=garbage broiled
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (PSXT1).units
+ *** NOTE: Changing the value of attribute (PSXT1).units
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSXT1).units
- *** NOTE: Changing the value of attribute (PSYT1).units
+ *** NOTE: Changing the value of attribute (PSXT1).units
+ *** NOTE: Changing the value of attribute (PSYT1).units
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2098,17 +2122,17 @@ set var/outtype=garbage broiled
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis X2AX
- *** NOTE: Changing the value of attribute (z4ax).positive
+ *** NOTE: Changing the value of attribute (z4ax).positive
LISTing to file string4d.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: Changing the value of attribute (TIME7).units
+ *** NOTE: Changing the value of attribute (TIME7).units
+ *** NOTE: Changing the value of attribute (TIME7).time_origin
+ *** NOTE: Changing the value of attribute (TIME7).time_origin
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TIME
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
@@ -2121,10 +2145,10 @@ curl error details:
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+ *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
Using every 3th vector in the X direction
Using every 4th vector in the Y direction
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**TMAP ERR: non-existent or not on line
@@ -2176,7 +2200,7 @@ shade sst[t=@AVE,Z=@ave]
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
LISTing to file t3file.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2187,18 +2211,18 @@ shade sst[t=@AVE,Z=@ave]
LISTing to file subdir/0000_a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TAX
LISTing to file a.nc
- *** NOTE: Not deleted: TAX
- *** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: cannot parse "units since date", date= "event"; leaving units string
+ *** NOTE: Not deleted: TAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: cannot parse "units since date", date= "event"; leaving units string
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TAX
- *** NOTE: Invalid I axis limits ignored: TEMP
+ *** NOTE: Invalid I axis limits ignored: TEMP
**ERROR: dimensions improperly specified: specified data is not a line
- its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
plot/i=100/k=1 temp[x=122.5W]
@@ -2245,10 +2269,10 @@ Replacing definition of axis XAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TIME9
- *** NOTE: grid used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GSQ1 used by data set coads_climatology
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TIME
@@ -2274,9 +2298,9 @@ cancel axis/stride COADSX
set axis/stride=2/offset=4 COADSX
**ERROR: invalid command: not a strided axis: COADSX
cancel axis/stride COADSX
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+ *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
LISTing to file d2.nc
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+ *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
**ERROR: invalid command: unknown axis: NORMAL
set axis/stride=2 NORMAL
PERMANENT data cleared from memory
@@ -2292,45 +2316,45 @@ set axis/stride=2 NORMAL
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file tripolar_missing_lon.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
-curl error details:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ *** NOTE: Axis has repeated values -- micro-adjusting TIME
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
+ *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+ *** NOTE: They will not be convertible:
+ *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+ *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
+ *** NOTE: A dummy axis of subscripts will be used
+curl error details:
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2454,8 +2478,8 @@ Replacing definition of axis TIME
LISTing to file b.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file 1a.dat
@@ -2511,31 +2535,31 @@ Replacing definition of grid GG
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
Replacing definition of axis XAX
Replacing definition of axis YAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
Replacing definition of axis ZAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
Replacing definition of axis TAX
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
Replacing definition of axis XAX
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2597,9 +2621,9 @@ Replacing definition of grid G1
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file test2.cdf
LISTing to file FL.cdf
LISTing to file FTLON.cdf
@@ -2621,47 +2645,47 @@ list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave]
disordered output coordinate value: 363 Axis: TCENTURY
list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
LISTing to file FI.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
@@ -2673,80 +2697,80 @@ list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSYT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSZT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
**ERROR: variable unknown or not in data set: IJKL
show grid ijkl
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
@@ -2770,8 +2794,8 @@ Replacing definition of axis TSEC
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis CAXIS
- *** NOTE: grid used by data set grads_bug_file
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GMY1 used by data set grads_bug_file
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2782,15 +2806,15 @@ Replacing definition of axis CAXIS
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TAX
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file xz.nc
@@ -2855,22 +2879,22 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute sst.history
+ *** NOTE: Changing the value of attribute sst.history
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
LISTing to file mypack.nc
- *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2909,14 +2933,17 @@ Re-defining viewport V8
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
+
+Bailing out of external function "tax_year":
+ Function not valid for modulo time axis
TEMPORARY data cleared from memory
Restoring default chunk cache settings
Restoring default chunk cache settings
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file nc4_deflate4.nc
- *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
- *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
+ *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
+ *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
LISTing to file nc4_nodeflate3.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2927,13 +2954,13 @@ Re-defining viewport V8
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file nc4_inttemp_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_shuffle_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_set_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_deflate4_t1.nc
**TMAP ERR: syntax error in string
If ChunkSize is set for any dimension of var, must set for all its dimensions
@@ -2948,8 +2975,8 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not deleted: X10
- *** NOTE: Axis is in use by grid G10X5
+ *** NOTE: Not deleted: X10
+ *** NOTE: Axis is in use by grid G10X5
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2961,11 +2988,11 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of grid MYGRID
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX
- *** NOTE: Axis is already regular: MYX
+ *** NOTE: Axis reset to be regular (evenly-spaced): MYX
+ *** NOTE: Axis is already regular: MYX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
+ *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Use the GO command to name a file of FERRET commands to be executed.
@@ -2992,7 +3019,7 @@ Replacing definition of grid MYGRID
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: No active redirects to cancel
+ *** NOTE: No active redirects to cancel
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
@@ -3001,14 +3028,14 @@ Replacing definition of grid MYGRID
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: Axis is already regular: MYAXIS
+ *** NOTE: Axis is already regular: MYAXIS
**ERROR: variable unknown or not in data set: GARBAGE
show grid garbage
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: stderr is not redirected
+ *** NOTE: stderr is not redirected
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
@@ -3061,11 +3088,6 @@ Replacing definition of axis YAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
-
-Bailing out of external function "tax_year":
- Function not valid for modulo time axis
- *** NOTE: b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb [...]
- *** NOTE: exceeds expected length. Maximum characters: 2048
LISTing to file aa.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3093,11 +3115,11 @@ Replacing definition of axis YAX_DUP_AXNAMES
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3117,7 +3139,7 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis XAX
@@ -3133,20 +3155,20 @@ Replacing definition of axis TAXIS
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis XAX
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3208,10 +3230,10 @@ Replacing definition of axis TAXIS
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting TMIN
- *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting TMIN
+ *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis TNEW
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3288,34 +3310,32 @@ Replacing definition of grid G5DAY
Replacing definition of axis FAX4DAY
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
**ERROR: unknown data set: dset 3 unknown or is already an aggregate dataset
define data/agg windy = 1,2,3
- **ERROR: error defining aggregate dataset: Aggregate dataset not defined
-define data/agg windy = 1,2,3
- *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
- *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+ *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
+ *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
**ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
define data/agg windy = 1,2
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3326,8 +3346,8 @@ define data/agg windy = 1,2
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3352,7 +3372,7 @@ SET DAT/FORM=CDF ./z1.nc
TEMPORARY data cleared from memory
LISTing to file mytype.nc
LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
LISTing to file mytype.nc
LISTing to file mytype.nc
LISTing to file mytype.nc
@@ -3372,7 +3392,7 @@ SET DAT/FORM=CDF ./z1.nc
TEMPORARY data cleared from memory
LISTing to file mytype.nc
LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
LISTing to file mytype.nc
LISTing to file mytype.nc
LISTing to file mytype.nc
@@ -3388,7 +3408,7 @@ LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
LISTing to file mytype.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index 12
+ **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
define axis/t/units=days tax = tvar
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3424,11 +3444,7 @@ Replacing definition of axis TDAY
LISTing to file aa.nc
LISTing to file aa.nc
LISTing to file aa.nc
-ncks: WARNING Overwriting global attribute history
-ncks: WARNING Overwriting global attribute Conventions
-ncks: WARNING Overwriting attribute point_spacing for output variable ZAXIS_ORIG
-ncks: WARNING Overwriting attribute axis for output variable ZAXIS_ORIG
-ncks: WARNING Overwriting attribute standard_name for output variable ZAXIS_ORIG
+sh: ncks: command not found
LISTing to file aa.nc
LISTing to file aa.nc
NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
@@ -3473,8 +3489,8 @@ Replacing definition of axis AXI
Replacing definition of axis AXI_COARSE
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
- *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
+ *** NOTE: A dummy axis of subscripts will be used
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file sst_new.nc
@@ -3493,9 +3509,9 @@ Replacing definition of axis ZAX
Replacing definition of axis XIRREG
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
LISTing to file a.nc
LISTing to file a.nc
PERMANENT data cleared from memory
@@ -3505,8 +3521,8 @@ Replacing definition of axis XIRREG
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
**ERROR: command syntax: COLOR
/COLOR must have an argument for PLOT/OVERLAY
plot/i=1:100/over/COLOR 0.6*sin(i/7)
@@ -3516,9 +3532,9 @@ plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis ZAX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
**ERROR: unknown defining grid: G=NOEXIST
list b
**ERROR: command syntax: 45S
@@ -3530,8 +3546,9 @@ list e
**ERROR: illegal limits: X axis limits don't match variable def'n: A
Are you giving explicit limits when SET REGION would suffice ?
list f
- *** NOTE: Not deleted: ENSEMBLE
- *** NOTE: Axis is in use by grid (G089)
+Replacing definition of axis X1
+Replacing definition of axis Y1
+Replacing definition of axis ZAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3544,7 +3561,7 @@ list f
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute a.ival
+ *** NOTE: Changing the value of attribute a.ival
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**TMAP ERR: non-existent or not on line
@@ -3564,8 +3581,8 @@ SET DAT/FORM=CDF snoopy.dat
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+ *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3604,8 +3621,8 @@ LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
shade b
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute v1.long_name
- *** NOTE: Changing the value of attribute v1.units
+ *** NOTE: Changing the value of attribute v1.long_name
+ *** NOTE: Changing the value of attribute v1.units
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
@@ -3625,9 +3642,9 @@ set var/name=psi myvar
set var/name=diff w
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
- *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
+ *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
+ *** NOTE: Substituting coordinate midpoints
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TAX
@@ -3657,12 +3674,12 @@ list tax_datestring (tt[L=3], tt, 5)
list tax_datestring (tt[L=3], "my_tax", "minutes")
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+ *** NOTE: Substituting coordinate midpoints
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: command syntax: must be a constant COS(1)
@@ -3703,17 +3720,17 @@ Replacing definition of axis TAX
Replacing definition of axis XAXIS
**ERROR: request exceeds memory setting: 2369 Mwords were requested.
load bigvar
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis LONGTIME
**ERROR: request exceeds memory setting: 4735 Mwords were requested.
load bigvar
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
- *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
LISTing to file aa.nc
LISTing to file bb.nc
LISTing to file a.nc
@@ -3745,6 +3762,22 @@ shade a
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-2)
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-3)
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+rm: cannot remove `test_save_dsg.nc': No such file or directory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file anew_global.nc
@@ -3759,9 +3792,10 @@ Replacing definition of axis X2
Replacing definition of axis Y2
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+Replacing definition of axis ZAX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
**ERROR: unknown defining grid: G=NOEXIST
list b
**ERROR: command syntax: 45S
@@ -3773,101 +3807,90 @@ list e
**ERROR: illegal limits: X axis limits don't match variable def'n: A
Are you giving explicit limits when SET REGION would suffice ?
list f
- *** NOTE: Not deleted: ENSEMBLE
- *** NOTE: Axis is in use by grid (G091)
+X Error of failed request: BadMatch (invalid parameter attributes)
+ Major opcode of failed request: 73 (X_GetImage)
+ Serial number of failed request: 161380
+ Current serial number in output stream: 161380
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
+poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
+ **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
+poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- **ERROR: command syntax: unknown region name: @w
-set region/@w
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- **ERROR: command syntax: writev5d(tr, 0, 0, 0, 0, 0, 0, 0, "vis5d_out.v5d")
- unknown function "writev5d"
-DEFINE VARIABLE/QUIET vflag = writev5d(tr, 0, 0, 0, 0, 0, 0, 0, "vis5d_out.v5d")
- **ERROR: variable unknown or not in data set: VFLAG
-LOAD/TEMPORARY vflag
+ LISTing to file aa.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+Replacing definition of axis TIME
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- Cached data cleared from memory
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
-plot/i=1:10/j=1:20/nolabel i+j
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i,i+j"
-plot/i=1:10/j=1:20/nolabel i,i+j
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j,i"
-plot/i=1:10/j=1:20/nolabel i+j,i
- **ERROR: dimensions improperly specified: differing axes:
- first line is on Y axis
- line 2 is on X axis
-plot/i=1:10/j=1:20/nolabel j,i
- **ERROR: dimensions improperly specified: unequal line lengths:
- First expression has 20 points.
- Expression 2 has 10 points:
- "plot/i=1:10/j=1:20/vs/line/nolabel j,i"
-plot/i=1:10/j=1:20/vs/line/nolabel j,i
- **ERROR: dimensions improperly specified: must be a 2D region
- contour/i=1:10/j=1:20/nolabel i
-contour/i=1:10/j=1:20/nolabel i
- **ERROR: invalid command: can only CONTOUR single fields
- Use /OVERLAY for multiple variables
-contour/i=1:10/j=1:20/nolabel i/j,j/i
- **ERROR: invalid command: VECTOR requires paired components
-vector/i=1:10/j=1:20/nolabel i/j
- **ERROR: invalid command: VECTOR requires paired components
-vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
-Re-defining viewport LM6
-Re-defining viewport UM6
- Using every 2th vector in the X direction
- Using every 2th vector in the Y direction
-Re-defining viewport LM6
- Using every 2th vector in the X direction
- Using every 2th vector in the Y direction
- Using every 2th vector in the X direction
- Using every 2th vector in the Y direction
-Re-defining viewport UM6
- Using every 2th vector in the X direction
- Using every 2th vector in the Y direction
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
-plot/i=1:10/j=1:20/nolabel i+j
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i,i+j"
-plot/i=1:10/j=1:20/nolabel i,i+j
- **ERROR: dimensions improperly specified: specified data is not a line
- - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j,i"
-plot/i=1:10/j=1:20/nolabel i+j,i
- **ERROR: dimensions improperly specified: differing axes:
- first line is on Y axis
- line 2 is on X axis
-plot/i=1:10/j=1:20/nolabel j,i
- **ERROR: dimensions improperly specified: unequal line lengths:
- First expression has 20 points.
- Expression 2 has 10 points:
- "plot/i=1:10/j=1:20/vs/line/nolabel j,i"
-plot/i=1:10/j=1:20/vs/line/nolabel j,i
- **ERROR: dimensions improperly specified: must be a 2D region
- contour/i=1:10/j=1:20/nolabel i
-contour/i=1:10/j=1:20/nolabel i
- **ERROR: invalid command: can only CONTOUR single fields
- Use /OVERLAY for multiple variables
-contour/i=1:10/j=1:20/nolabel i/j,j/i
- **ERROR: invalid command: VECTOR requires paired components
-vector/i=1:10/j=1:20/nolabel i/j
- **ERROR: invalid command: VECTOR requires paired components
-vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
-Re-defining viewport LM6
-Re-defining viewport UM6
- *** NOTE: Cannot create new windows when batch mode set
-Ended at Tue Oct 7 10:44:14 PDT 2014
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: unknown data set: BAD_D
+stat/l=1/x=180/y=0 a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis YAX
+ LISTing to file a.nc
+ *** NOTE: Not deleted: XAX
+ *** NOTE: Axis is in use by grid GFORMAT
+ *** NOTE: Not deleted: YAX
+ *** NOTE: Axis is in use by grid GFORMAT
+Replacing definition of axis TREDEF
+ *** NOTE: grid GSI1 used by data set a
+ *** NOTE: Redefinition may alter apparent contents of data set
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: illegal format type - must be "GIF"
+ frame/format=hdf/file=a.hdf
+frame/format=hdf/file=a.hdf
+ **ERROR: invalid command: illegal format type - must be "GIF"
+ frame/file=a.png
+frame/file=a.png
diff --git a/bench/ansley_official.x86_64-linux_log b/bench/ansley_official.x86_64-linux_log
index 72dec23..d3b80b0 100644
--- a/bench/ansley_official.x86_64-linux_log
+++ b/bench/ansley_official.x86_64-linux_log
@@ -1,26 +1,36 @@
Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/x86/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 53365065 Oct 7 10:08 /home/users/ansley/build/x86/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/x86/FERRET/external_functions/ext_func
+Running FERRET version /home/users/ksmith/Ferret/bin/ferret
+lrwxrwxrwx 1 ksmith tmap 12 Oct 26 17:18 /home/users/ksmith/Ferret/bin/ferret -> ferret_v6.95
+Using external functions from /home/users/ksmith/Ferret/ext_func/libs
Running the tests of external functions y
-Benchmark run by ansley
-Note: ticket 2203
+Benchmark run by Karl
+Note: Benchmark tests on RHEL5-64
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
FER_DAT=.
FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/tmap/ferret/linux/fer_dsets
+FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/ksmith/Datasets
FER_DESCR=.
FER_DIR=.
FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/x86/FERRET/external_functions/ext_func
-FER_GO=. /home/users/tmap/ferret/x86_64-linux/go /home/users/tmap/ferret/x86_64-linux/examples /home/users/tmap/ferret/x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
+FER_EXTERNAL_FUNCTIONS=/home/users/ksmith/Ferret/ext_func/libs
+FER_FONTS=/home/users/ksmith/Ferret/ppl/fonts
+FER_GO=. /home/users/ksmith/Ferret/go /home/users/ksmith/Ferret/examples /home/users/ksmith/Ferret/contrib
FER_GRIDS=.
-FER_LIBS=/home/users/tmap/ferret/x86_64-linux/lib
-FER_LINK_DIR=/home/users/tmap/ferret_link/linux
-FER_PALETTE=. /home/users/tmap/ferret/x86_64-linux/ppl
-PWD=/home/users/ansley/build/x86/FERRET/bench
-Beginning at Tue Oct 7 10:41:47 PDT 2014
+FER_LIBS=/home/users/ksmith/Ferret/lib
+FER_PALETTE=. /home/users/ksmith/Ferret/ppl
+FER_WEB_BROWSER=firefox
+Beginning at Mon Oct 26 17:21:34 PDT 2015
+!bn500_all_shell
+
+! this "shell" is used because the Unix redirection fails to echo commands
+! from the top level command file
+! ... havn't explored the reason ... they echo fine to the screen
+! *kob* 2/02/98 - newly created - copied from bn490_all_shell.jnl
+
+
+GO bn_all
+SET MODE VERIFY
! BN500_ALL.JNL
! - run all the benchmark tests
! - ordered (more or less) from least to most complex
@@ -125,6 +135,7 @@ Beginning at Tue Oct 7 10:41:47 PDT 2014
! 11/06 *acm* New bn602_bug_fixes for version 6.02
* V610 *acm* 3/08 - add new MODE NLEVELS
* V685 *sh* 11/13 - added bn_vtree to test SHOW VAR/TREE
+* V698+ *sh* 06/15 - added bn_auxiliary
! Include this statement to compare the outupt of 6D Ferret with
! previous 4D benchmark logs.
@@ -301,10 +312,10 @@ SHOW DATA/FULL
name title I J K L M N
P my P variable 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999
on grid ABSTRACT with -1.E+34 for missing data
- X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1
+ X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1.E+08
Q Q 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999
on grid ABSTRACT with -1.E+34 for missing data
- X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1
+ X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1.E+08
/FORMAT = UNF
/SKIP = 2
@@ -422,17 +433,18 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
- DESPERATE CANCELLED 2560000
+ DESPERATE CANCELLED 10000000
GKS SET
REFRESH SET
METAFILE CANCELLED metafile.plt
PPLLIST CANCELLED ppllist.out
GUI CANCELLED
- LOGO SET
+ LOGO CANCELLED
LABELS SET
GRATICULE CANCELLED
LINECOLORS SET 6
@@ -441,7 +453,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
SET MODE IGNORE_ERROR
SHOW MODES
MODE STATE ARGUMENT
@@ -455,17 +468,18 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
- DESPERATE CANCELLED 2560000
+ DESPERATE CANCELLED 10000000
GKS SET
REFRESH SET
METAFILE CANCELLED metafile.plt
PPLLIST CANCELLED ppllist.out
GUI CANCELLED
- LOGO SET
+ LOGO CANCELLED
LABELS SET
GRATICULE CANCELLED
LINECOLORS SET 6
@@ -474,7 +488,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
CANCEL MODE IGNORE_ERROR
SHOW MODES
MODE STATE ARGUMENT
@@ -488,17 +503,18 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
- DESPERATE CANCELLED 2560000
+ DESPERATE CANCELLED 10000000
GKS SET
REFRESH SET
METAFILE CANCELLED metafile.plt
PPLLIST CANCELLED ppllist.out
GUI CANCELLED
- LOGO SET
+ LOGO CANCELLED
LABELS SET
GRATICULE CANCELLED
LINECOLORS SET 6
@@ -507,7 +523,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
SHOW MODE STUPID
MODE STATE ARGUMENT
STUPID CANCELLED
@@ -796,19 +813,19 @@ SHOW VARIABLES
! SHOW MEMORY , LOAD
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords (1 word = 8 bytes)
SHOW MEMORY/TEMPORARY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords (1 word = 8 bytes)
data loaded without /PERMANENT:
SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
105 /125W 50 /1.7N 1 /10 5 /13-SEP-1982 ... / ... ... / ...
SHOW MEMORY/PERMANENT
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords (1 word = 8 bytes)
data loaded with /PERMANENT:
SHOW MEMORY/ALL
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords (1 word = 8 bytes)
all data in memory:
SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
@@ -818,12 +835,12 @@ all data in memory:
LET A=i
LOAD/PERM/I=1:5 A
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords (1 word = 8 bytes)
SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
- memory block size: 12800
+ memory block size: 50000
number of free memory blocks: 1997
largest free region: 1997
@@ -834,12 +851,12 @@ SHOW MEMORY/FREE
number of blocks used /PERM: 1
LOAD/TEMPORARY/I=1:5 A
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords (1 word = 8 bytes)
SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
- memory block size: 12800
+ memory block size: 50000
number of free memory blocks: 1998
largest free region: 1997
@@ -1075,8 +1092,8 @@ say "demonstrate that these leading blanks:\
demonstrate that these leading blanks: really are preserved
! continuation prompts are ignored, too
-yes? say "demonstrate that these leading blanks:\
-...? really are preserved"
+say "demonstrate that these leading blanks:\
+ really are preserved"
demonstrate that these leading blanks: really are preserved
! weird little blank line inputs
@@ -1143,7 +1160,7 @@ message/continue here is: $1"some text" and some more stuff
here is: hello and some more stuff
message/cont here is a big $1 and $3&some text& ! default provided
- !-> message/cont here is a big hello and some text ! default provided
+ !-> message/cont here is a big hello and some text
here is a big hello and some text
message/cont $3 ! error - no default
@@ -1251,7 +1268,7 @@ go bn_dollar.sub ((x+y),(x-5)) ! ignore comma, get single arg
! V510 3/00
set mode ignore
message/continue "$1" ! final quote used to get mis-applied
- !-> message/continue "hello" ! final quote used to get mis-applied
+ !-> message/continue "hello"
hello
set mode/last ignore
go bn_dollar.sub \"hello\" ! quotations as part of argument
@@ -1320,7 +1337,7 @@ message/continue "2 squared + 2 squared =`2^2` + `2+2`"
2 squared + 2 squared =4 + 4
message/continue "50/0 =`50/0`" ! invalid result
- !-> message/continue "50/0 =bad" ! invalid result
+ !-> message/continue "50/0 =bad"
50/0 =bad
repeat/i=1:3 message/continue "I=`I`"
@@ -1348,7 +1365,7 @@ I=7
!cancel region/X ! removed - temporary experiment 3/00 *sh*
message/continue "2+2=``2+2``" ! double grave accents get condensed
- !-> message/continue "2+2=`2+2`" ! double grave accents get condensed
+ !-> message/continue "2+2=`2+2`"
2+2=`2+2`
message/continue A default substitution: $9"default string|2+2=`2+2`"
@@ -1368,7 +1385,7 @@ message/continue "1/300=`1/300,p=5`"
!-> message/continue "1/300=0.0033333"
1/300=0.0033333
message/continue "1/300=`1/300,p=-5`" ! decimal places
- !-> message/continue "1/300=0.00333" ! decimal places
+ !-> message/continue "1/300=0.00333"
1/300=0.00333
message/continue "1/300=`1/300 , precision=10`"
!-> message/continue "1/300=0.003333333333"
@@ -1592,13 +1609,24 @@ say `a,return=isize` ! full evaluation occurs
say `a[i=2:3],return=isize` ! full evaluation is bypassed
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ -DELETE J M: 3 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found A M: 10 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
!-> MESSAGE/CONTINUE 2
2
-say `a[i=100:200],return=isize` ! WRONG! because full evaluation is bypassed
+say `a[i=100:200],return=isize` ! correct starting with Ferret v694 (tkt 2213)
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- !-> MESSAGE/CONTINUE 101
-101
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval A C: 6 dset: 0 I: 100 200 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval (C01,V08 C: 8 dset: 0 I: 100 200 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found (C11,V08 M: 5 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 5
+5
set mode/last diagnostic
! deliberate errors
@@ -1963,6 +1991,19 @@ CORRECT:sym sub
---->CORRECT
---->CORRECT again
---->nested: all is well after multi-line IF
+CORRECT
+CORRECT
+LOOP=1
+more
+LOOP=2
+more
+LOOP=1
+LOOP=2
+semicolon group
+more
+semicolon group
+CORRECT
+WE SEE THIS CUZ OF IMPLIED CLOSE TO THE PREVIOUS
>>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<
---->... now inside of nested IF clause
---->CORRECT
@@ -1974,10 +2015,6 @@ IF yes THEN
say ---->... now inside of IF clause
---->... now inside of IF clause
-
-
-
-
GO bn_reset
cancel mode verify
GO bn_expressions
@@ -10189,7 +10226,7 @@ plot/i=1:10/ylimits=1:40/nolabel i ! note that /nolabel supresses XLAB
plot/i=1:10/over/sym=2 i^1.1
plot/i=1:10/over/sym=2/size=.12 i^1.2
plot/i=1:10/over/sym=2/color=red i^1.3
-plot/i=1:10/over/thick/step i^1.4
+plot/i=1:10/over/thick/step/color=light_blue i^1.4
plot/i=1:10/over/thick/color=blue/step=connected i^1.5
plot/i=1:10/over/thick=3/color=purple/size=.14 i^1.6
@@ -10268,7 +10305,6 @@ fill/nolabel/title="Orthographic View" masked_sst, x_page, y_page
!
!go mp_fland
go mp_land
-pause
go mp_label 237.7 47.6 -1 0 .1 @IISeattle
go mp_label 204.4 19.5 -1 0 .1 @IIHawaii
go mp_graticule
@@ -10446,21 +10482,21 @@ GO bn_symbols ! added 6/22/95
cancel symbols/all
show symbols/all
-PPL$XPIXEL = "406"
-PPL$YPIXEL = "406"
+PPL$XPIXEL = "760"
+PPL$YPIXEL = "760"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.925"
-FERRET_PLATFORM = "Linux 2.6.18-371.12.1.el5 64-bit"
+FERRET_VERSION = "6.95"
+FERRET_PLATFORM = "Linux 2.6.18-406.el5 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
-FERRET_MEMORY = "25.6"
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-SESSION_PID = "14259"
-DELTA_CPU = "6.08308"
-CLOCK_SECS = "12.483"
-CURRENT_DATE = " 7-Oct-14"
-CURRENT_TIME = "10:41:59"
+FERRET_MEMORY = "100"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+SESSION_PID = "28772"
+DELTA_CPU = "6.15006"
+CLOCK_SECS = "57.95"
+CURRENT_DATE = "26-Oct-15"
+CURRENT_TIME = "17:22:32"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -10475,21 +10511,21 @@ define symbol t_($s1) = hi ! define "t_hello" as a symbol
! exercise SHOW SYMBOL
show symbol/all
-PPL$XPIXEL = "406"
-PPL$YPIXEL = "406"
+PPL$XPIXEL = "760"
+PPL$YPIXEL = "760"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.925"
-FERRET_PLATFORM = "Linux 2.6.18-371.12.1.el5 64-bit"
+FERRET_VERSION = "6.95"
+FERRET_PLATFORM = "Linux 2.6.18-406.el5 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
-FERRET_MEMORY = "25.6"
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-SESSION_PID = "14259"
-DELTA_CPU = "9.99E-04"
-CLOCK_SECS = "12.483"
-CURRENT_DATE = " 7-Oct-14"
-CURRENT_TIME = "10:41:59"
+FERRET_MEMORY = "100"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+SESSION_PID = "28772"
+DELTA_CPU = "0.001"
+CLOCK_SECS = "57.951"
+CURRENT_DATE = "26-Oct-15"
+CURRENT_TIME = "17:22:32"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
S1 = "hello"
@@ -10499,9 +10535,9 @@ NUM = "3"
T$DOLLAR = "hi"
T_HELLO = "hi"
show symbol s*
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-SESSION_PID = "14259"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+SESSION_PID = "28772"
S1 = "hello"
S2 = ""hello""
S3 = "hello and goodbye"
@@ -10511,15 +10547,15 @@ S2 = ""hello""
! exercise CANCEL SYMBOL
cancel symbol s2
show symbol s*
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-SESSION_PID = "14259"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+SESSION_PID = "28772"
S1 = "hello"
S3 = "hello and goodbye"
show symbol S*
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-SESSION_PID = "14259"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+SESSION_PID = "28772"
S1 = "hello"
S3 = "hello and goodbye"
cancel symbol s2 ! already deleted
@@ -10553,14 +10589,11 @@ Q23456789012345678901234567XXXAAAAA = "6"
! show the upper left coordinate limits labels as symbols
plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
show symbol lab*
-LAB1 = "FERRET Ver. 6.925"
-LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "07-OCT-2014 10:41:59"
LABX = "X"
-LAB4 = "Y : 10"
-LABNUM_Y = "4"
-LAB5 = "Z : 5"
-LABNUM_Z = "5"
+LAB1 = "Y : 10"
+LABNUM_Y = "1"
+LAB2 = "Z : 5"
+LABNUM_Z = "2"
LABY = ""
LABTIT = "SIN(I/6)+Y+Z"
message/continue Z value saved as ($LAB($LABNUM_Z))
@@ -10576,11 +10609,11 @@ No T value saved: " "
! template tests (4/23/96)
cancel symbol lab?
show symbol lab*
-LABNUM_Y = "4"
-LABNUM_Z = "5"
+LABNUM_Y = "1"
+LABNUM_Z = "2"
LABTIT = "SIN(I/6)+Y+Z"
show symbol lab*y
-LABNUM_Y = "4"
+LABNUM_Y = "1"
! deliberate errors
set mode ignore_errors
@@ -10647,21 +10680,21 @@ say ($delayed_eval) ! translate symbol and then evaluate
! cleanup
cancel symbols/all
show symbols/all
-PPL$XPIXEL = "406"
-PPL$YPIXEL = "406"
+PPL$XPIXEL = "760"
+PPL$YPIXEL = "760"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.925"
-FERRET_PLATFORM = "Linux 2.6.18-371.12.1.el5 64-bit"
+FERRET_VERSION = "6.95"
+FERRET_PLATFORM = "Linux 2.6.18-406.el5 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
-FERRET_MEMORY = "25.6"
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-SESSION_PID = "14259"
-DELTA_CPU = "0.010999"
-CLOCK_SECS = "12.495"
-CURRENT_DATE = " 7-Oct-14"
-CURRENT_TIME = "10:41:59"
+FERRET_MEMORY = "100"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+SESSION_PID = "28772"
+DELTA_CPU = "0.012998"
+CLOCK_SECS = "57.964"
+CURRENT_DATE = "26-Oct-15"
+CURRENT_TIME = "17:22:32"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -12523,7 +12556,7 @@ define axis/z=5:15/npoints=999999/unit=meters/depth z999999
! else we list huge amount of adata
let save_mem = ($ferret_memory)
- !-> DEFINE VARIABLE save_mem = 25.6
+ !-> DEFINE VARIABLE save_mem = 100
set mem/siz = 10
list temp[gz=z999999,z=5:15] ! err during regrid
@@ -12540,7 +12573,7 @@ Dynamic grids:
Dynamic axes:
no implicit axes
set mem/siz=`save_mem`
- !-> set mem/siz=25.6
+ !-> set mem/siz=100
shade 1/0 * temp[gx=u] ! err during plot
show grid/dynamic
@@ -14117,7 +14150,7 @@ Dynamic axes:
! calendar axes
list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave] ! 6-day ave
- !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave] ! 6-day ave
+ !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]
VARIABLE : TEMPERATURE (deg. C)
regrid: 144 hour on T at AVE
FILENAME : gtsa056_1.cdf
@@ -14143,7 +14176,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
TIME : 15-JAN-1982 00:00
27.7767
list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`] ! pseudo-var
- !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48] ! pseudo-var
+ !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
VARIABLE : T
axis (AX003)
SUBSET : 3 points (TIME)
@@ -20067,27 +20100,27 @@ GO bn_negative_t.sub tvar ave ! like var and din
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ave] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ave]
VARIABLE : T[GT=TAX]
T : -5 to 5 (averaged)
0.000000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ave] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ave]
VARIABLE : T[GT=TAX]
T : -8 to -5 (averaged)
-6.66667
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ave] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ave]
VARIABLE : T[GT=TAX]
T : -9 to 3 (averaged)
-3.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ave] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ave]
VARIABLE : T[GT=TAX]
T : -9 to -3 (averaged)
-6.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ave] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ave]
VARIABLE : T[GT=TAX]
T : -11 to 11 (averaged)
0.000000
@@ -20103,7 +20136,7 @@ GO bn_negative_t.sub tvar iin
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at iin] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 5 points (T)
@@ -20113,14 +20146,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -8.0000
4 / 8: 0.0000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at iin] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 2 points (T)
-8 / 2: -8.0000
-6 / 3: -20.0000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at iin] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 6 points (T)
@@ -20131,7 +20164,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -40.0000
2 / 7: -36.0000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at iin] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 3 points (T)
@@ -20139,7 +20172,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -28.0000
-4 / 4: -36.0000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@iin] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 11 points (T)
@@ -20166,27 +20199,27 @@ GO bn_negative_t.sub tvar sum
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sum] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sum]
VARIABLE : T[GT=TAX]
T : -5 to 5 (summed)
0.000000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sum] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sum]
VARIABLE : T[GT=TAX]
T : -8 to -5 (summed)
-14.0000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sum] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sum]
VARIABLE : T[GT=TAX]
T : -9 to 3 (summed)
-18.0000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sum] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sum]
VARIABLE : T[GT=TAX]
T : -9 to -3 (summed)
-18.0000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sum] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sum]
VARIABLE : T[GT=TAX]
T : -11 to 11 (summed)
0.000000
@@ -20202,7 +20235,7 @@ GO bn_negative_t.sub tvar rsu
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at rsu] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 5 points (T)
@@ -20212,14 +20245,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -4.00000
4 / 8: 0.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at rsu] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 2 points (T)
-8 / 2: -8.0000
-6 / 3: -14.0000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at rsu] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 6 points (T)
@@ -20230,7 +20263,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -20.0000
2 / 7: -18.0000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at rsu] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 3 points (T)
@@ -20238,7 +20271,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -14.0000
-4 / 4: -18.0000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@rsu] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 11 points (T)
@@ -20265,7 +20298,7 @@ GO bn_negative_t.sub tvar shf
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at shf] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 5 points (T)
@@ -20275,14 +20308,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 4.00000
4 / 8: 6.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at shf] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 2 points (T)
-8 / 2: -6.00000
-6 / 3: -4.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at shf] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 6 points (T)
@@ -20293,7 +20326,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 2.00000
2 / 7: 4.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at shf] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 3 points (T)
@@ -20301,7 +20334,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -4.00000
-4 / 4: -2.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@shf] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 11 points (T)
@@ -20328,27 +20361,27 @@ GO bn_negative_t.sub tvar min ! like @max
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at min] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at min]
VARIABLE : T[GT=TAX]
T : -5 to 5 (minimum)
-4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at min] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at min]
VARIABLE : T[GT=TAX]
T : -8 to -5 (minimum)
-8.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at min] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at min]
VARIABLE : T[GT=TAX]
T : -9 to 3 (minimum)
-8.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at min] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at min]
VARIABLE : T[GT=TAX]
T : -9 to -3 (minimum)
-8.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@min] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@min]
VARIABLE : T[GT=TAX]
T : -11 to 11 (minimum)
-10.0000
@@ -20364,7 +20397,7 @@ GO bn_negative_t.sub tvar ddf
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddf] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 5 points (T)
@@ -20374,14 +20407,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 1.00000
4 / 8: 1.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddf] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 2 points (T)
-8 / 2: 1.00000
-6 / 3: 1.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddf] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 6 points (T)
@@ -20392,7 +20425,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 1.00000
2 / 7: 1.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddf] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 3 points (T)
@@ -20400,7 +20433,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: 1.00000
-4 / 4: 1.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddf] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 11 points (T)
@@ -20427,7 +20460,7 @@ GO bn_negative_t.sub tvar ddb ! @ddc like ddf and ddb
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddb] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 5 points (T)
@@ -20437,14 +20470,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 1.00000
4 / 8: 1.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddb] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 2 points (T)
-8 / 2: 1.00000
-6 / 3: 1.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddb] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 6 points (T)
@@ -20455,7 +20488,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 1.00000
2 / 7: 1.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddb] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 3 points (T)
@@ -20463,7 +20496,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: 1.00000
-4 / 4: 1.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddb] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 11 points (T)
@@ -20490,7 +20523,7 @@ GO bn_negative_t.sub tvar sbx ! like sbn, swl, shn, spz
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sbx] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 5 points (T)
@@ -20500,14 +20533,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.00000
4 / 8: 4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sbx] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sbx] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 6 points (T)
@@ -20518,7 +20551,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.00000
2 / 7: 2.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sbx] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 3 points (T)
@@ -20526,7 +20559,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -6.00000
-4 / 4: -4.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sbx] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 11 points (T)
@@ -20553,27 +20586,27 @@ GO bn_negative_t.sub tvar loc:-2.2
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at loc:-2.2] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -5 to 5 (location of -2.2)
-2.20000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at loc:-2.2] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -8 to -5 (location of -2.2)
....
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at loc:-2.2] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -9 to 3 (location of -2.2)
-2.20000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at loc:-2.2] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -9 to -3 (location of -2.2)
....
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@loc:-2.2] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -11 to 11 (location of -2.2)
-2.20000
@@ -20589,7 +20622,7 @@ GO bn_negative_t.sub tvar weq:-2.2
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at weq:-2.2] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 5 points (T)
@@ -20599,14 +20632,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: ....
4 / 8: ....
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at weq:-2.2] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 2 points (T)
-8 / 2:....
-6 / 3:....
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at weq:-2.2] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 6 points (T)
@@ -20617,7 +20650,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: ....
2 / 7: ....
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at weq:-2.2] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 3 points (T)
@@ -20625,7 +20658,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3:....
-4 / 4:....
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@weq:-2.2] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 11 points (T)
@@ -20668,27 +20701,27 @@ GO bn_negative_t.sub tgap ngd ! like @nbd
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at ngd] ! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -5 to 5 (number of valid)
3.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at ngd] ! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -8 to -5 (number of valid)
1.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at ngd] ! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -9 to 3 (number of valid)
3.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at ngd] ! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -9 to -3 (number of valid)
2.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tgap[l=@ngd] ! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -11 to 11 (number of valid)
5.00000
@@ -20704,7 +20737,7 @@ GO bn_negative_t.sub tgap fav ! like fln (fnr not implemented)
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at fav] ! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 5 points (T)
@@ -20714,14 +20747,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.00000
4 / 8: 4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at fav] ! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at fav] ! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 6 points (T)
@@ -20732,7 +20765,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.00000
2 / 7: 2.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at fav] ! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 3 points (T)
@@ -20740,7 +20773,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -6.00000
-4 / 4: -4.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tgap[l=@fav] ! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 11 points (T)
@@ -20789,7 +20822,7 @@ GO bn_negative_t.sub blin nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST blin[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST blin[t=-5:5 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 5 points (T)
-4 / 4: -4.00000
@@ -20798,13 +20831,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.00000
4 / 8: 4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST blin[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST blin[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST blin[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST blin[l=2:7 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 6 points (T)
-8 / 2: -8.00000
@@ -20814,14 +20847,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.00000
2 / 7: 2.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST blin[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST blin[l=2:4 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 3 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
-4 / 4: -4.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST blin[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST blin[l=@nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 11 points (T)
-10 / 1: ....
@@ -20847,7 +20880,7 @@ GO bn_negative_t.sub bave nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST bave[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST bave[t=-5:5 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 5 points (T)
-4 / 4: -4.00000
@@ -20856,13 +20889,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.00000
4 / 8: 4.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST bave[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST bave[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST bave[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST bave[l=2:7 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 6 points (T)
-8 / 2: -8.00000
@@ -20872,14 +20905,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.00000
2 / 7: 2.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST bave[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST bave[l=2:4 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 3 points (T)
-8 / 2: -8.00000
-6 / 3: -6.00000
-4 / 4: -4.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST bave[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST bave[l=@nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 11 points (T)
-10 / 1: -9.00000
@@ -20905,7 +20938,7 @@ GO bn_negative_t.sub basn nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST basn[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST basn[t=-5:5 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 5 points (T)
-4 / 4: -6.00000
@@ -20914,13 +20947,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -3.00000
4 / 8: -2.00000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST basn[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST basn[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 2 points (T)
-8 / 2: -8.00000
-6 / 3: -7.00000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST basn[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST basn[l=2:7 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 6 points (T)
-8 / 2: -8.00000
@@ -20930,14 +20963,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -4.00000
2 / 7: -3.00000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST basn[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST basn[l=2:4 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 3 points (T)
-8 / 2: -8.00000
-6 / 3: -7.00000
-4 / 4: -6.00000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST basn[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST basn[l=@nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 11 points (T)
-10 / 1: -9.00000
@@ -21078,7 +21111,7 @@ CANCEL REGION
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21088,7 +21121,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21102,7 +21135,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21112,7 +21145,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21126,7 +21159,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21140,7 +21173,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21153,7 +21186,7 @@ SET REGION/X=2:4
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21161,7 +21194,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -21171,7 +21204,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21179,7 +21212,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -21189,7 +21222,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -21199,7 +21232,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21210,7 +21243,7 @@ SET REGION/X=1:5
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21220,7 +21253,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21234,7 +21267,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21244,7 +21277,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21258,7 +21291,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21272,7 +21305,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21285,7 +21318,7 @@ SET REGION/X=1.5:4.5
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21293,7 +21326,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21305,7 +21338,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.00000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21313,7 +21346,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21325,7 +21358,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21337,7 +21370,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21348,7 +21381,7 @@ SET REGION/X=0:6
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21358,7 +21391,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21372,7 +21405,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21382,7 +21415,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21396,7 +21429,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21410,7 +21443,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21425,7 +21458,7 @@ CANCEL REGION
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21435,7 +21468,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21449,7 +21482,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21459,7 +21492,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21473,7 +21506,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21487,7 +21520,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21500,7 +21533,7 @@ SET REGION/Y=2:4
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21508,7 +21541,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21518,7 +21551,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21526,7 +21559,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21536,7 +21569,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21546,7 +21579,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21557,7 +21590,7 @@ SET REGION/Y=1:5
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21567,7 +21600,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21581,7 +21614,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21591,7 +21624,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21605,7 +21638,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21619,7 +21652,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21632,7 +21665,7 @@ SET REGION/Y=1.5:4.5
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21640,7 +21673,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21652,7 +21685,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.00000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21660,7 +21693,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21672,7 +21705,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21684,7 +21717,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21695,7 +21728,7 @@ SET REGION/Y=0:6
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21705,7 +21738,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21719,7 +21752,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21729,7 +21762,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21743,7 +21776,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21757,7 +21790,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21772,7 +21805,7 @@ CANCEL REGION
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21782,7 +21815,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21796,7 +21829,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21806,7 +21839,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21820,7 +21853,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21834,7 +21867,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21847,7 +21880,7 @@ SET REGION/Z=2:4
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21855,7 +21888,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21865,7 +21898,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21873,7 +21906,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21883,7 +21916,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21893,7 +21926,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21904,7 +21937,7 @@ SET REGION/Z=1:5
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21914,7 +21947,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21928,7 +21961,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21938,7 +21971,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21952,7 +21985,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21966,7 +21999,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21979,7 +22012,7 @@ SET REGION/Z=1.5:4.5
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21987,7 +22020,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -21999,7 +22032,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.00000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -22007,7 +22040,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -22019,7 +22052,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -22031,7 +22064,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -22042,7 +22075,7 @@ SET REGION/Z=0:6
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -22052,7 +22085,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -22066,7 +22099,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -22076,7 +22109,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -22090,7 +22123,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -22104,7 +22137,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -22119,7 +22152,7 @@ CANCEL REGION
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22129,7 +22162,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22143,7 +22176,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22153,7 +22186,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22167,7 +22200,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22181,7 +22214,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22194,7 +22227,7 @@ SET REGION/T=2:4
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22202,7 +22235,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -22212,7 +22245,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22220,7 +22253,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -22230,7 +22263,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -22240,7 +22273,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.50000
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22251,7 +22284,7 @@ SET REGION/T=1:5
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22261,7 +22294,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22275,7 +22308,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22285,7 +22318,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22299,7 +22332,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22313,7 +22346,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22326,7 +22359,7 @@ SET REGION/T=1.5:4.5
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22334,7 +22367,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.00000
4 / 4: 4.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22346,7 +22379,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.00000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22354,7 +22387,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.00000
4 / 4: 4.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22366,7 +22399,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22378,7 +22411,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.50000
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22389,7 +22422,7 @@ SET REGION/T=0:6
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22399,7 +22432,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.00000
5 / 5: 5.00000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22413,7 +22446,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.00000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22423,7 +22456,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.00000
5 / 5: 5.00000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22437,7 +22470,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22451,7 +22484,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.50000
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -23867,7 +23900,7 @@ cancel mode verify
GO bn_odd_variable_name
! make sure memory is limited; otherwise the abstract axis will list
let save_mem = ($ferret_memory)
- !-> DEFINE VARIABLE save_mem = 25.6
+ !-> DEFINE VARIABLE save_mem = 100
set mem /size=10
use weird_name1.cdf
sh data
@@ -23981,7 +24014,33 @@ list 'X' ! Now the proper syntax
19 / 19: 0.578440
20 / 20: 0.656987
list i ! Deliberate error
-list 'i' ! Deliberate error
+
+! v694 No longer an error: See ticket 2050
+list 'i' !
+ VARIABLE : SIN(4+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 20 points (X)
+ 1 / 1: -0.818277
+ 2 / 2: -0.871576
+ 3 / 3: -0.916166
+ 4 / 4: -0.951602
+ 5 / 5: -0.977530
+ 6 / 6: -0.993691
+ 7 / 7: -0.999923
+ 8 / 8: -0.996165
+ 9 / 9: -0.982453
+ 10 / 10: -0.958924
+ 11 / 11: -0.925815
+ 12 / 12: -0.883455
+ 13 / 13: -0.832267
+ 14 / 14: -0.772764
+ 15 / 15: -0.705540
+ 16 / 16: -0.631267
+ 17 / 17: -0.550686
+ 18 / 18: -0.464602
+ 19 / 19: -0.373877
+ 20 / 20: -0.279415
+
list 'I' ! Now the proper syntax
VARIABLE : SIN(4+I/10)
FILENAME : weird_name1.cdf
@@ -24127,7 +24186,7 @@ list 'v2-and-minus'[i=5:15 at ddc] ! Now the proper syntax
15 / 15: -0.0934896
! restore orginal memory size
set mem /size=`save_mem`
- !-> set mem /size=25.6
+ !-> set mem /size=100
GO bn_reset
cancel mode verify
@@ -25631,7 +25690,7 @@ GO err491_spawn_quotes.jnl
! this should be a valid command
SPAWN "date"
-Tue Oct 7 10:42:09 PDT 2014
+Mon Oct 26 17:23:01 PDT 2015
GO bn_reset
cancel mode verify
@@ -25758,10 +25817,10 @@ list SAMPLEI(sst[l=1:3,y=-2:2],{30,40,50})
1N / 46: 29.1373 28.9243 28.3264
1S / 45: 28.8965 28.8240 28.5357
SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
- memory block size: 12800
+ memory block size: 50000
number of free memory blocks: 1987
largest free region: 1984
@@ -26565,10 +26624,10 @@ list a ! <-- CACHE HIT FAILS!!!
set mode/last diagnostic
SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
+ Current size of FERRET memory cache: 100 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
- memory block size: 12800
+ memory block size: 50000
number of free memory blocks: 1978
largest free region: 1976
@@ -30851,9 +30910,15 @@ say `a,return=isize` ! no evaluation of a required -- just context
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 97 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
!-> MESSAGE/CONTINUE 10
10
list/nohead a ! evaluate it now
+ -DELETE I M: 97 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -30873,6 +30938,7 @@ list/nohead a ! evaluate it now
let a = XSEQUENCE(j[j=1:5])
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE A M: 98 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE A M: 99 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE I M: 97 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE SST5SBX M: 91 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -34117,8 +34183,17 @@ SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
Returns data sampled according to L indices which may vary in IJK
L_INDICES: ordered indices
DAT_TO_SAMPLE: data to sample using L indices
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+ Returns data sampled by interpolating to a set of times in F direction
+ DAT_TO_SAMPLE: data to sample at set of times in F
+ YR: Year(s) yyyy
+ MO: Month(s), integer mm
+ DAY: Day(s) of month dd
+ HR: Hour(s) hh
+ MIN: Minute(s) mm
+ SEC: Second(s) ss
SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
- Returns data sampled by interpolating to a set of times
+ Returns data sampled by interpolating to a set of times in T direction
DAT_TO_SAMPLE: data to sample at set of times
YR: Year(s) yyyy
MO: Month(s), integer mm
@@ -34183,6 +34258,14 @@ SAMPLE_FAST_I(V,Indices)
Fast 1D sample variable using set of indices
V: Variable to sample
Indices: List of indices at which to sample
+SAMPLE_FAST_I_STR(S,Indices)
+ Fast 1D sample string variable using set of indices
+ S: String Variable to sample (STRING)
+ Indices: List of indices at which to sample
+SAMPLE_FAST_I(V,Indices)
+ Fast 1D sample variable using set of indices
+ V: Variable to sample
+ Indices: List of indices at which to sample
go bench_sorti.jnl
@@ -35298,6 +35381,10 @@ CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
lat_in: Source grid latitudes (2-D) (degrees)
grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
radius: Source points falling within radius are included in mapping to destination point (degrees)
+CURV_TO_RECT_FSU(V,mapping)
+ Alt func to Apply mapping to regrid from curvilinear to rectangular grid
+ V: Variable to regrid, on curvilinear grid V(x,y,z,t)
+ mapping: mapping computed by curv_to_rect_MAP
use tripolar_subset.nc
shade ht, geolon_vert_t, geolat_vert_t
@@ -35386,12 +35473,12 @@ list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
Column 1: TAX_MONTH(T[GT=TEMP],TEMP)
Column 2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
(C001,V001) (C001,V009)
-10-NOV-1982 16 / 15: 11.0000 0.860274
-16-NOV-1982 18 / 16: 11.0000 0.876712
-22-NOV-1982 20 / 17: 11.0000 0.893151
-28-NOV-1982 22 / 18: 11.0000 0.909589
+10-NOV-1982 16 / 15: 11.0000 0.862100
+16-NOV-1982 18 / 16: 11.0000 0.878767
+22-NOV-1982 20 / 17: 11.0000 0.895434
+28-NOV-1982 22 / 18: 11.0000 0.912100
05-DEC-1982 00 / 19: 12.0000 0.928767
-11-DEC-1982 02 / 20: 12.0000 0.945205
+11-DEC-1982 02 / 20: 12.0000 0.945434
list/L=15:20 tax_year(t[gt=temp],temp)
VARIABLE : TAX_YEAR(T[GT=TEMP],TEMP)
FILENAME : gt4d011.cdf
@@ -36641,6 +36728,8 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "fri
list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
1 / 1:"now, goodbye, my friend" "now, hello, friend"
2 / 2:"then, goodbye, my friend""then, hello, friend"
+
+SET MODE IGNORE
list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
1 / 1:........
2 / 2:........
@@ -36655,18 +36744,11 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "g
2 / 2:........
! numerical operators applied to strings
+
list/nohead "b" - {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" * {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" / {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" ^ {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead {"a","b"} + 1
1 / 1:....
2 / 2:....
@@ -36677,18 +36759,14 @@ list/nohead 1 - {"a","b"}
1 / 1:....
2 / 2:....
list/nohead SIN({"a","b","c"})
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
list/nohead MAX("a",{"a","b","c"})
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
list/nohead MAX(1,{"a","b","c"})
1 / 1:....
2 / 2:....
3 / 3:....
+CANCEL MODE IGNORE
+
! transformations applied to strings
let a = {"a","b","c","d"}
list a[i=@shf]
@@ -36983,13 +37061,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1: "one" ... 1.10000 -24.0000 130.000 " " 10.000 "word 1" " " ....
-2 / 2: "two" ... 2.20000 24.0000 -130.000 "2S" .... "word 2" " " ....
-3 / 3: "three" ... 3.30000 24.0000 130.000 "3N" 0.030 " wd 3 " " " ....
-4 / 4: " " ... .... .... .... " " .... " " " " ....
-5 / 5: "five" ... 4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa" 77.0000
-6 / 6: "extra line"... .... .... .... " " .... " " " " ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: "one" .... 1.10000 -24.0000 130.000 " " 10.000 "word 1" " " ....
+2 / 2: "two" .... 2.20000 24.0000 -130.000 "2S" .... "word 2" " " ....
+3 / 3: "three" .... 3.30000 24.0000 130.000 "3N" 0.030 " wd 3 " " " ....
+4 / 4: " " .... .... .... .... " " .... " " " " ....
+5 / 5: "five" .... 4.40000 -24.0000 -130.000 "91" -400.000 "word 4" "aa" 77.0000
+6 / 6: "extra line" .... .... .... .... " " .... " " " " ....
! insist that all columns be treated as string
file/format=delim/skip=1/type=text bn_delimited_read_1.dat
@@ -37057,13 +37135,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1:...... 1.10000 .... .... .... 10.000...... ....
-2 / 2:...... 2.20000 .... .... .... .......... ....
-3 / 3:...... 3.30000 24.0000 130.000 .... 0.030...... ....
-4 / 4:...... .... .... .... .... .......... ....
-5 / 5:...... 4.40000 -24.0000 -130.000 91.0000 -400.000...... 77.0000
-6 / 6:...... .... .... .... .... .......... ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: .... .... 1.10000 .... .... .... 10.000 .... .... ....
+2 / 2: .... .... 2.20000 .... .... .... .... .... .... ....
+3 / 3: .... .... 3.30000 24.0000 130.000 .... 0.030 .... .... ....
+4 / 4: .... .... .... .... .... .... .... .... .... ....
+5 / 5: .... .... 4.40000 -24.0000 -130.000 91.0000 -400.000 .... .... 77.0000
+6 / 6: .... .... .... .... .... .... .... .... .... ....
! insist that all columns be treated as latitude
file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
@@ -37080,13 +37158,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8 is V8 (degrees_north)(Latitude)
Column 9: V9 is V9 (degrees_north)(Latitude)
Column 10: V10 is V10 (degrees_north)(Latitude)
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1:...... 1.10000 -24.0000 .... .... 10.000...... ....
-2 / 2:...... 2.20000 24.0000 .... -2.0000 .......... ....
-3 / 3:...... 3.30000 24.0000 130.000 3.0000 0.030...... ....
-4 / 4:...... .... .... .... .... .......... ....
-5 / 5:...... 4.40000 -24.0000 -130.000 91.0000 -400.000...... 77.0000
-6 / 6:...... .... .... .... .... .......... ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: .... .... 1.10000 -24.0000 .... .... 10.000 .... .... ....
+2 / 2: .... .... 2.20000 24.0000 .... -2.0000 .... .... .... ....
+3 / 3: .... .... 3.30000 24.0000 130.000 3.0000 0.030 .... .... ....
+4 / 4: .... .... .... .... .... .... .... .... .... ....
+5 / 5: .... .... 4.40000 -24.0000 -130.000 91.0000 -400.000 .... .... 77.0000
+6 / 6: .... .... .... .... .... .... .... .... .... ....
! read only the first line of the file
spawn head -1 bn_delimited_read_1.dat
@@ -37108,8 +37186,8 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-I / *: "col1" "col2" "col3" "col4" "col5" " "... " " " "....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+I / *: "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
list c1,c2,c3,c4,c5
DATA SET: ./bn_delimited_read_1.dat
@@ -37227,11 +37305,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
Column 6: V6 is V6 (days)(Julian days since 1-Jan-1900)
Column 7: V7 is V7 (days)(Julian days since 1-Jan-1900)
Column 8: V8 is V8 (days)(Julian days since 1-Jan-1900)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1: 36493.0 36218.0...... 36493.0 36218.0......
-2 / 2: 36494.0 36219.0...... 36494.0 36219.0......
-3 / 3: .... .......... 36495.0 36220.0......
-4 / 4: 36496.0 36221.0...... 36496.0 36221.0......
+ V1 V2 V3 V4 V5 V6 V7 V8
+1 / 1: 36493.0 36218.0 .... .... 36493.0 36218.0 .... ....
+2 / 2: 36494.0 36219.0 .... .... 36494.0 36219.0 .... ....
+3 / 3: .... .... .... .... 36495.0 36220.0 .... ....
+4 / 4: 36496.0 36221.0 .... .... 36496.0 36221.0 .... ....
show data 2
currently SET data sets:
2> ./bn_delimited_read_date_time.dat (default)
@@ -37266,11 +37344,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
Column 6: V6 is V6 (hours)(Time of day)
Column 7: V7 is V7 (hours)(Time of day)
Column 8: V8 is V8 (hours)(Time of day)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1:...... 12.0000 13.7601...... 12.0000 13.7601
-2 / 2:...... 1.0037 14.7601...... 1.0037 14.7601
-3 / 3:...... .... .......... 2.0000 15.7500
-4 / 4:...... 3.0000 16.7601...... 3.0000 16.7601
+ V1 V2 V3 V4 V5 V6 V7 V8
+1 / 1: .... .... 12.0000 13.7601 .... .... 12.0000 13.7601
+2 / 2: .... .... 1.0037 14.7601 .... .... 1.0037 14.7601
+3 / 3: .... .... .... .... .... .... 2.0000 15.7500
+4 / 4: .... .... 3.0000 16.7601 .... .... 3.0000 16.7601
show data 2
currently SET data sets:
2> ./bn_delimited_read_date_time.dat (default)
@@ -40040,7 +40118,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
! test modulo string arrays
list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
- !-> list vreg_strings[i=5:7] ! via IS_SUBSPAN_FILL
+ !-> list vreg_strings[i=5:7]
VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 3 points (X)
@@ -40048,7 +40126,7 @@ list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
46 / 6:"a6"
93.5 / 7:""
list $1_strings[i=1013:1024] ! via IS_MODULO
- !-> list vreg_strings[i=1013:1024] ! via IS_MODULO
+ !-> list vreg_strings[i=1013:1024]
VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 12 points (X)
@@ -40569,7 +40647,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
! test modulo string arrays
list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
- !-> list virr_strings[i=5:7] ! via IS_SUBSPAN_FILL
+ !-> list virr_strings[i=5:7]
VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 3 points (X)
@@ -40577,7 +40655,7 @@ list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
46 / 6:"a6"
93.5 / 7:""
list $1_strings[i=1013:1024] ! via IS_MODULO
- !-> list virr_strings[i=1013:1024] ! via IS_MODULO
+ !-> list virr_strings[i=1013:1024]
VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 12 points (X)
@@ -40735,7 +40813,8 @@ show modes
LATIT_LABEL SET -4
DEPTH_LABEL SET -4
CALENDAR SET months
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -40754,7 +40833,8 @@ show modes
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
contour/i=1:10/j=1:10 i/j
! restore the labels, logo still gone
@@ -45118,7 +45198,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
nulrgd BIGVAR M: 74 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE BIGVAR M:146 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G014) (AX041) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- regrid A M:136 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ regrid A M:139 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
VARIABLE : BIGVAR[I=1:40:5]
regrid: 2 delta on Y
@@ -45137,7 +45217,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
cancel mem/all
-DELETE BIGVAR M: 74 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M:136 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M:139 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE A M:146 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE BIGVAR M:147 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE A M:151 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
@@ -48031,7 +48111,7 @@ show data/full
NCEP Ocean Analysis
name title I J K L M N
TEMP temperature 1:1 1:1 1:19 1:1 ... ...
- degree_Celsius on grid GGH1 with 1.E-34 & NaN for missing data
+ degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
X=139.8E:140.8E Y=0.5S:0.5N Z=0:375
time range: FEB-1980
@@ -48306,11 +48386,11 @@ ppl list labels
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET Ver. 6.925
+ LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET Ver. 6.95
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
LAB 2 8.000E+00 7.100E+00 0.060 0 SYSTEM @ASNOAA/PMEL TMAP
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS07-OCT-2014 10:42:50
+ LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS26-OCT-2015 17:27:50
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
LAB 4 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLONGITUDE : 179E
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
@@ -48939,9 +49019,9 @@ GO err580_irreg_bounds.jnl
! the bounds seem to be ignored; axis is seen as regular.
! Bug 1160 reported by Andrew.
-yes? def ax/t/edge time = {0,1,3}
-yes? let a = t[gt=time]
-yes? show grid/t a
+def ax/t/edge time = {0,1,3}
+let a = t[gt=time]
+show grid/t a
GRID (G011)
name axis # pts start end
normal X
@@ -48955,17 +49035,17 @@ yes? show grid/t a
1> 0.5 1 0
2> 2 2 1
-yes? save/clob/file=a.nc a
+save/clob/file=a.nc a
sp echo "err580_irreg_bounds.jnl --- " >> all_ncdump.out
-yes? sp ncdump a.nc >> all_ncdump.out
+sp ncdump a.nc >> all_ncdump.out
can data/all
can var/all
can mem
! T axis was marked as regular
-yes? use a.nc
-yes? show grid/t a
+use a.nc
+show grid/t a
GRID GSI1
name axis # pts start end
normal X
@@ -49587,7 +49667,7 @@ GO bn_long_revision_num.jnl
! ferret version
sh sym FERRET_VERSION
-FERRET_VERSION = "6.925"
+FERRET_VERSION = "6.95"
! history attribute
let a = 12
@@ -49605,7 +49685,7 @@ LAB1 = "X : 0.5 to 314.5"
! show commands without an argument, lists version number at the top
sho command
- Commands in Program FERRET version6.925:
+ Commands in Program FERRET version6.95:
SET
SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE
SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
@@ -49617,7 +49697,7 @@ sho command
/TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
SET MODE/LAST
SET MOVI/FILE/COMPRESS/LASER/START
- SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/SIGMA
+ SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/LAYERZ
/CURVILIN
SET GRID/SAVE/RESTORE
SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
@@ -49636,7 +49716,7 @@ sho command
/HIDDEN
SHOW MODE/ALL
SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
/CURVILIN
SHOW COMMANDS/ALL
SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -49660,7 +49740,7 @@ sho command
CANCEL MODE
CANCEL MOVIE/ALL
CANCEL VIEWPORT
- CANCEL VARIABLE/ALL/DATASET/SIGMA/CURVILIN
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
CANCEL GRID
CANCEL ATTRIBUT/OUTPUT/DATA
@@ -49677,11 +49757,11 @@ sho command
/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS/CLOBBER
/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT/XCHUNK
/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN/OUTTYPE
- /CURVILIN/SIGMA
+ /CURVILIN/LAYERZ
PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/VS/SYMBOL
/NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE/NOAXES/STEP
/DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG/GRATICUL/NOKEY
- /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING
+ /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
GO/HELP
HELP
LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
@@ -49697,7 +49777,8 @@ sho command
DEFINE SYMBOL
DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
EXIT/COMMAND/LOOP/SCRIPT/PROMPT/PROGRAM/CYCLE/TOPYTHON
MESSAGE/CONTINUE/QUIET/JOURNAL/ERROR/OUTFILE/APPEND/CLOBBER
VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/ASPECT/NOLABEL
@@ -49724,6 +49805,7 @@ sho command
/NOLABEL/LEVELS/LINE/COLOR/PALETTE/XLIMITS/YLIMITS/TITLE/THICKNES
/NOAXES/PATTERN/FILL/KEY/NOKEY/AXES/HLIMITS/VLIMITS/HLOG/VLOG
/HGRATICU/VGRATICU/GRATICUL/MODULO
+ ANNOTATE/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
Use SHOW ALIAS to see alternative command names
@@ -49741,7 +49823,7 @@ go ptest
PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
sh sym win_title
-WIN_TITLE = "7-Oct-14:10:41"
+WIN_TITLE = "26-Oct-15:17:21"
set win/title="set the title"
sho sym win_title
@@ -49759,7 +49841,7 @@ sho sym win_title
WIN_TITLE = "_"
set win/title="($session_date):($session_time)"
- !-> set win/title=" 7-Oct-14:10:41"
+ !-> set win/title="26-Oct-15:17:21"
! If the date or time starts with a blank then we get an extra
! underscore in the window title. Evaluating the symbols into
@@ -49768,16 +49850,16 @@ set win/title="($session_date):($session_time)"
! If so substitute another string.
DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 7-Oct-14
+ !-> DEFINE SYMBOL the_date = 26-Oct-15
DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 10:41
+ !-> DEFINE SYMBOL the_time = 17:21
SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="7-Oct-14:10:41"
+ !-> SET WIN/TITLE="26-Oct-15:17:21"
can win/all
set win/new
sh sym win_title
-WIN_TITLE = "7-Oct-14:10:41"
+WIN_TITLE = "26-Oct-15:17:21"
GO bn_reset
cancel mode verify
@@ -50566,6 +50648,7 @@ let a = temp.missing_value
list a
VARIABLE : TEMP.MISSING_VALUE
FILENAME : ocean_atlas_temp.cdf
+ X : 1
-1.000E+34
use ocean_atlas_temp
@@ -50573,6 +50656,7 @@ let s = temp.units
list s
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
can data/all
@@ -50584,6 +50668,7 @@ list s
VARIABLE : ..REMARK
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
"Generated by oar3d "
go bn_reset
@@ -50602,6 +50687,7 @@ let anames = sst.attnames
list nat
VARIABLE : SST.NATTRS
FILENAME : coads_climatology.cdf
+ X : 1
5.000
list anames
VARIABLE : SST.ATTNAMES
@@ -50619,6 +50705,7 @@ let cnames = sst.dimnames
list nd
VARIABLE : SST.NDIMS
FILENAME : coads_climatology.cdf
+ X : 1
3.000
list cnames
VARIABLE : SST.DIMNAMES
@@ -50638,6 +50725,7 @@ let nd = ..ndims
let vnames = ..varnames
list/d=1 nv, nd
DATA SET: ./gt4d011.cdf
+ X: 1
Column 1: NV is ..NVARS
Column 2: ND is ..NDIMS
NV ND
@@ -50663,6 +50751,7 @@ let vnames = ..varnames
list/d=coads_climatology vnames
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
list/d=gt4d011 vnames
VARIABLE : ..VARNAMES
@@ -50699,27 +50788,28 @@ list vnames
3 / 3:"TIME4"
list lnames
VARIABLE : ..DIMNAMES[D=gt4d011]
- SUBSET : 20 points (X)
- 1 / 1:"PSXT1"
- 2 / 2:"PSYT1"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT1"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME11"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT1"
+ 3 / 3:"PSYT1"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT1"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME11"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
can var/all
can data/all
@@ -50732,6 +50822,7 @@ list v
VARIABLE : ..NDIMS
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
3.000
let na = ..nattrs
@@ -50739,6 +50830,7 @@ list na
VARIABLE : ..NATTRS
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
31.00
let gnames = ..attnames
@@ -50802,12 +50894,14 @@ let nat = temp.nattrs
list nat
VARIABLE : TEMP.NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
5.000
list (`temp,return=xaxis`).nattrs
!-> list (XAX_LEV9421_380).nattrs
VARIABLE : (XAX_LEV9421_380).NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
4.000
use gt4d011
@@ -50841,15 +50935,18 @@ let a = temp.units
list/d=3 a
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list temp.units[d=3]
VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list/d=3 temp.history
VARIABLE : TEMP.HISTORY
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"From ocean_atlas_monthly"
can data/all
@@ -50909,6 +51006,7 @@ let a= broiled.acl
list a
VARIABLE : BROILED.ACL
FILENAME : test0.nc
+ X : 1
17000.
let a= broiled.acf
@@ -50970,6 +51068,7 @@ use gt4d011
list ..nvars
VARIABLE : ..NVARS
FILENAME : gt4d011.cdf
+ X : 1
12.00
use coads_climatology
@@ -50977,10 +51076,12 @@ use coads_climatology
list/d=1 ..nvars
VARIABLE : ..NVARS
FILENAME : gt4d011.cdf
+ X : 1
12.00
list/d=2 ..nvars
VARIABLE : ..NVARS
FILENAME : coads_climatology.cdf
+ X : 1
1.000
sh data
@@ -51003,6 +51104,7 @@ sh data
list/d=2 ..varnames
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
list/d=2 ..dimnames
@@ -51015,49 +51117,55 @@ list/d=2 ..dimnames
list/d=1 ..dimnames
VARIABLE : ..DIMNAMES
FILENAME : gt4d011.cdf
- SUBSET : 20 points (X)
- 1 / 1:"PSXT1"
- 2 / 2:"PSYT1"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT1"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME11"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT1"
+ 3 / 3:"PSYT1"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT1"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME11"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
list/d=1 ..nattrs
VARIABLE : ..NATTRS
FILENAME : gt4d011.cdf
+ X : 1
1.000
list/d=1 ..attnames
VARIABLE : ..ATTNAMES
FILENAME : gt4d011.cdf
+ X : 1
"history"
list/d=1 ..ndims
VARIABLE : ..NDIMS
FILENAME : gt4d011.cdf
+ X : 1
21.00
list/d=2 ..ndims
VARIABLE : ..NDIMS
FILENAME : coads_climatology.cdf
+ X : 1
3.000
list ..nvars[d=1]
VARIABLE : ..NVARS[D=gt4d011]
FILENAME : gt4d011.cdf
+ X : 1
12.00
sh var
Created by DEFINE VARIABLE:
@@ -51084,6 +51192,7 @@ set data 1
list/d=2 pp
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
go bn_reset
@@ -51173,10 +51282,12 @@ use coads_climatology
list (coadsx).units
VARIABLE : (COADSX).UNITS
FILENAME : coads_climatology.cdf
+ X : 1
"degrees_east"
list (coadsx).modulo
VARIABLE : (COADSX).MODULO
FILENAME : coads_climatology.cdf
+ X : 1
" "
sho att/all (coadsx)
attributes for dataset: ./coads_climatology.cdf
@@ -51265,6 +51376,7 @@ list (`sst,return=xaxis`).nattrs[d=2]
!-> list (COADSX).nattrs[d=2]
VARIABLE : (COADSX).NATTRS[D=coads_climatology]
FILENAME : coads_climatology.cdf
+ X : 1
5.000
! using dimension names from the linked list structure
@@ -51284,6 +51396,7 @@ list (`cnames[i=1]`).nattrs
!-> list (COADSX).nattrs
VARIABLE : (COADSX).NATTRS
FILENAME : coads_climatology.cdf
+ X : 1
5.000
! Intentional errors.
@@ -51426,6 +51539,7 @@ let pq = temp.pp
list pq
VARIABLE : TEMP.PP
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"PP now has some text."
! set an attribute when the variable is not in the default dataset.
@@ -52863,11 +52977,11 @@ set view left; shade/x=120e:80w sst ! works correctly
set view right; fill/x=120e:80w sst
sh sym ppl$xmin, ppl$xmax ! should be 131, 279
-PPL$XMIN = "131.0"
-PPL$XMAX = "281.0"
+PPL$XMIN = "131.000"
+PPL$XMAX = "281.000"
sh sym ppl$xlow, ppl$xhigh ! should be 165, 259
-PPL$XHIGH = "165.0"
-PPL$XLOW = "259.0"
+PPL$XHIGH = "165.000"
+PPL$XLOW = "259.000"
sp rm -f err581_subspanx_fill_bug.nc
@@ -52949,8 +53063,6 @@ GO err581_if_conditional.jnl
! This should skip to the end, not trying to execute anything inside the IF 0 THEN
if 0 then
- endif
- endif
endif
say "finished the if block"
@@ -52985,7 +53097,6 @@ let key_flag = 0
IF `($xend) GT 360` THEN
!-> IF 0 THEN
- ENDIF
ENDIF
let dxymin = 0.20
if `dxymin lt 0.12` then
@@ -53000,7 +53111,6 @@ endif
IF `($xend) GT 360` THEN
!-> IF 0 THEN
- ENDIF
ELSE
say "this is the ELSE that should execute"
this is the ELSE that should execute
@@ -53097,10 +53207,8 @@ ELIF ($refmap_type%|xline>1|*>0%) THEN ! ELSE IF "xline"
!-> ELIF 1 THEN
define region/default/dy=$6"-30:30|1>-30:30|*>-20:20"/dx=$6"0:0|1>0:0|2>0:0|*>`max(-($ref_dx),-50)`:`min(($ref_dx),50)`" band
!-> define region/default/dy=-20:20/dx=-50:50 band
-
ELIF ($refmap_type%|yline>1|*>0%) THEN ! ELSE IF "yline"
!-> ELIF 0 THEN
- ENDIF
ENDIF
! init the land mask data set
set data coads_climatology
@@ -53139,17 +53247,12 @@ IF ($refmap_type%|box>1|*>0) THEN ! IF "box"
!-> IF 0 THEN
ELIF ($refmap_type%|xline>1|*>0) THEN ! ELSE IF "xline"
!-> ELIF 1 THEN
-
IF ($refmap_ycompress) THEN
!-> IF 0 THEN
ENDIF
-
plot/over/vs/nolab/line=8/i=1:2 refmap_xrng, refmap_ymid+(i-i)
-
ELIF ($refmap_type%|yline>1|*>0) THEN ! ELSE IF "yline"
!-> ELIF 0 THEN
- ENDIF
- ENDIF
ENDIF
@@ -53430,8 +53533,8 @@ GO err581_define_1pt_bounds.jnl
! again, and even that result is now very wrong!! Same results in both v5.81
! for Linux and v5.70 for Irix.
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: -2 to 6
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -53441,8 +53544,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
3 / 2: 2.000 4.000 3.000
5 / 3: 4.000 6.000 5.000
-yes? def ax/x/bounds xax = {0},{-2,2}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0},{-2,2}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: 0
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -53450,8 +53553,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
XBOXLO XBOXHI X
I / *: -2.000 2.000 0.0000
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: -2 to 6
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -53527,9 +53630,9 @@ go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle
! And, from Andrew with other reversed axes.
-yes? ppl cross 1
-yes? plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-yes? poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
+ppl cross 1
+plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
+poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
ppl cross 0
@@ -53701,12 +53804,10 @@ GO err600_if_comments_tab.jnl
! thrown off and we got an error about an invalid ENDIF
IF 0 THEN
- ENDIF
ENDIF
! Here there is a tab before the ! which throws off the parsing...
IF 0 THEN
- ENDIF
ENDIF
! err600_set_var_title.jnl
@@ -53858,6 +53959,7 @@ list ..dimnames
list ..varnames
VARIABLE : ..VARNAMES
FILENAME : levitus_climatology.cdf
+ X : 1
"TEMP"
! err600_nc_des_order.jnl
@@ -54079,7 +54181,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(PSXT191_108) DOUBLE units CHAR 12 T degrees_east
@@ -54124,7 +54226,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(PSXT191_108) DOUBLE units CHAR 12 T degrees_east
@@ -55375,8 +55477,6 @@ LIST/NOHEAD/I=91:94/J=37/K=1/L=1 temp,salt
! Previously this did not have the effect of changing the precision.
LIST/NOHEAD/I=91:94/J=37/K=1/L=1/PREC=3 temp,salt
139.5W / 91: 27.3 2.37E-04
-Unable to allocate 500000.0 Mwords of memory.
-Restoring previous memory of 0.2 Mwords.
138.5W / 92: 27.3 2.38E-04
137.5W / 93: 27.2 2.38E-04
136.5W / 94: 27.2 2.38E-04
@@ -55430,6 +55530,8 @@ LIST/X=179:183/Y=40/L=3 my_sst
SUBSET : 3 points (LONGITUDE)
LATITUDE : 39N
TIME : MAR
+Unable to allocate 500000.0 Mwords of memory.
+Restoring previous memory of 0.2 Mwords.
39N
65
179E / 80: 11.89756
@@ -55644,6 +55746,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
LABWID(STR,HT)
LANCZOS(A,F1,F2,N)
LIST_VALUE_XML(tag,value,cdata_flag,outputfile)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
LSL_LOWPASS(A,cutoff_period,filter_span)
MINMAX(A)
MINUTES24(formatted time)
@@ -55656,6 +55759,7 @@ SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
@@ -55753,6 +55857,14 @@ EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
STR_MASK(STRING,MASK,--)
SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
SEPARATE(A,Rowsize,FixLongitudes)
+TIME_REFORMAT(A)
+FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
+CURV_TO_RECT_FSU(V,mapping)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SAMPLE_FAST_I_STR(S,Indices)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
ADD_9(A,B,C,D,E,F,G,H,I)
APPENDE(ENS,VAR)
AVET(A)
@@ -55763,6 +55875,7 @@ FFT_AMP(A)
FFTA_SAMPLE(A)
FFT_PHAS(A)
LENGTH_OF_STRINGS(--)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
MAXSTRLEN(A)
PASS_THRU(A)
PASS_THRU_STRING(A)
@@ -55922,15 +56035,15 @@ def axis/y=0.000001:0.000002/npoints=100 yax
let a = x[gx=xax] + y[gy=yax]
shade a; sh sym xax*; ; sh sym yax*
XAXIS_REVERSED = "0"
-XAXIS_MIN = "3.99494949E-06"
+XAXIS_MIN = "3.994949495E-06"
XAXL = "4.737"
XAXNAME = "XIRREG_SUBSPAN"
-XAXIS_MAX = "5.0050505E-06"
+XAXIS_MAX = "5.005050505E-06"
XAXNAM = "(XAX_LEV9421_380)"
YAXIS_REVERSED = "0"
YAXL = "4.737"
-YAXIS_MIN = "9.94949495E-07"
-YAXIS_MAX = "2.0050505E-06"
+YAXIS_MIN = "9.949494949E-07"
+YAXIS_MAX = "2.005050505E-06"
YAXNAM = "YAX_LEV94"
@@ -55965,27 +56078,27 @@ USE ocean_atlas_temp
SET VIEW upper
FILL temp[L=2,X=180:200,Y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
! See the larger region used by default for SHADE
SHADE temp[L=2,X=180:200,y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.00000"
-XAXIS_MAX = "200.0000"
-YAXIS_MIN = "30.000000"
-YAXIS_MAX = "44.00000"
+XAXIS_MIN = "180.000000"
+XAXIS_MAX = "200.000000"
+YAXIS_MIN = "30.0000000"
+YAXIS_MAX = "44.0000000"
! SHADE/TRIM trims the region as for a FILL plot
SET VIEW lower
SHADE/TRIM temp[L=2,X=180:200,y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
GO bn_reset
@@ -56430,27 +56543,28 @@ list vnames
4 / 4:"TIME3"
list lnames
VARIABLE : ..DIMNAMES[D=gt4d011]
- SUBSET : 20 points (X)
- 1 / 1:"PSXT1"
- 2 / 2:"PSYT1"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT1"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME11"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT1"
+ 3 / 3:"PSYT1"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT1"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME11"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
go bn_reset
cancel mode verify
@@ -56465,12 +56579,14 @@ let nat = temp.nattrs
list nat
VARIABLE : TEMP.NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
5.000000
list (`temp,return=xaxis`)[d=2].nattrs
!-> list (XAX_LEV9421_380)[d=2].nattrs
- VARIABLE : (XAX_LEV9421_380)[d=ocean_atlas_temp].NATTRS
+ VARIABLE : (XAX_LEV9421_380)[D=ocean_atlas_temp].NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
4.000000
use gt4d011
@@ -56505,14 +56621,17 @@ let a = temp.units
list/d=3 a
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list temp[d=3].units
- VARIABLE : TEMP[d=ocean_atlas_temp].UNITS
+ VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
FILENAME : gt4d011.cdf
+ X : 1
"Deg C"
list/d=3 temp.history
VARIABLE : TEMP.HISTORY
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"From ocean_atlas_monthly"
can data/all
@@ -56525,7 +56644,7 @@ use coads_climatology
! But this does
let a = sst[d=1].dimnames
list a[i=2]
- VARIABLE : SST[d=coads_climatology].DIMNAMES
+ VARIABLE : SST[D=coads_climatology].DIMNAMES
FILENAME : coads_climatology.cdf
X : 2
"COADSY"
@@ -56541,16 +56660,18 @@ use coads_climatology
define symbol ferret_plot_var sst[x=30:39,y=-90:90]
list ($ferret_plot_var).long_name
!-> list sst[x=30:39,y=-90:90].long_name
- VARIABLE : SST.LONG_NAME
+ VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
FILENAME : coads_climatology.cdf
+ X : 1
"SEA SURFACE TEMPERATURE"
use coads_climatology
define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
list ($ferret_plot_var).units
!-> list sst[d=1,x=30:35,y=-90:90].units
- VARIABLE : SST[d=coads_climatology].UNITS
+ VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
FILENAME : coads_climatology.cdf
+ X : 1
"Deg C"
use coads_climatology
@@ -56558,8 +56679,9 @@ use levitus_climatology
define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
list ($ferret_plot_var).history
!-> list sst[d=1,x=30:35,y=-90:90].history
- VARIABLE : SST[d=coads_climatology].HISTORY
+ VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
FILENAME : levitus_climatology.cdf
+ X : 1
"From coads_climatology"
go bn_reset
@@ -56575,13 +56697,15 @@ def sym yaxnam "(`temp[d=1],return=yaxis`)"
list ($xaxnam)[d=1].modulo
!-> list (XAXLEVITR1_160)[d=1].modulo
- VARIABLE : (XAXLEVITR1_160)[d=levitus_climatology].MODULO
+ VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
FILENAME : coads_climatology.cdf
+ X : 1
" "
list ($yaxnam).point_spacing[d=1]
!-> list (YAXLEVITR1_90).point_spacing[d=1]
VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
FILENAME : levitus_climatology.cdf
+ X : 1
"even"
@@ -56779,12 +56903,12 @@ GO err611_exit_if.jnl
! This only in v6.11 GFDL release bug
! Fixed in xeq_exit.F
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b !the following fails to say "hello"
go a
if 1 then
exit/script
@@ -56853,7 +56977,7 @@ ppl list labels
plot/x=56e:100e/y=10 sst[L=1]
plot/over/x=56e:100e/y=40 sst[L=1]
ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)
+
@ASLONGITUDE
@ASDeg C
@@ -57065,12 +57189,12 @@ GO err611_exit_if.jnl
! This only in v6.11 GFDL release bug
! Fixed in xeq_exit.F
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b !the following fails to say "hello"
go a
if 1 then
exit/script
@@ -59497,7 +59621,7 @@ sh command list
/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS/CLOBBER
/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT/XCHUNK
/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN/OUTTYPE
- /CURVILIN/SIGMA
+ /CURVILIN/LAYERZ
define axis/x=1:100:1/units=deg x100
define axis/t=1-jan-2000:31-jan-2000:1/units=days/t0=31-dec-1999 t31
let a = x[gx=x100] + t[gt=t31]
@@ -59990,10 +60114,10 @@ SH GRID am
GO bn_clock_syms
SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "47.1998"
-CLOCK_SECS = "93.535"
-CURRENT_DATE = " 7-Oct-14"
-CURRENT_TIME = "10:43:20"
+DELTA_CPU = "46.8229"
+CLOCK_SECS = "639.568"
+CURRENT_DATE = "26-Oct-15"
+CURRENT_TIME = "17:32:13"
! test special symbols DELTA_CPU, CLOCK_SECS
!
! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60002,8 +60126,8 @@ CURRENT_TIME = "10:43:20"
use gt4d011
shade/k=1 temp[L=@ave]
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.040994"
-CLOCK_SECS = "93.638"
+DELTA_CPU = "0.048992"
+CLOCK_SECS = "643.172"
repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=1
@@ -60017,60 +60141,60 @@ repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=9
!-> REPEAT: K=10
let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.322951
+ !-> DEFINE VARIABLE ten_plots = 0.377943
sh sym DELTA_CPU, CLOCK_SECS
DELTA_CPU = "0"
-CLOCK_SECS = "94.678"
+CLOCK_SECS = "679.808"
let sumclock = 0
let sumcpu = 0
sh sym CLOCK_SECS
-CLOCK_SECS = "94.679"
+CLOCK_SECS = "679.809"
repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);\
let sumcpu =`sumcpu + dt`)
!-> repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);let sumcpu =`sumcpu + dt`)
!-> REPEAT: K=1
- !-> DEFINE VARIABLE dt = 0.034995
- !-> DEFINE VARIABLE sumcpu =0.034995
+ !-> DEFINE VARIABLE dt = 0.042993
+ !-> DEFINE VARIABLE sumcpu =0.042993
!-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.038994
- !-> DEFINE VARIABLE sumcpu =0.073989
+ !-> DEFINE VARIABLE dt = 0.042994
+ !-> DEFINE VARIABLE sumcpu =0.085987
!-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.106984
+ !-> DEFINE VARIABLE dt = 0.041994
+ !-> DEFINE VARIABLE sumcpu =0.127981
!-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.035995
- !-> DEFINE VARIABLE sumcpu =0.142979
+ !-> DEFINE VARIABLE dt = 0.038993
+ !-> DEFINE VARIABLE sumcpu =0.166974
!-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.175974
+ !-> DEFINE VARIABLE dt = 0.036995
+ !-> DEFINE VARIABLE sumcpu =0.203969
!-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.033994
- !-> DEFINE VARIABLE sumcpu =0.209968
+ !-> DEFINE VARIABLE dt = 0.041993
+ !-> DEFINE VARIABLE sumcpu =0.245962
!-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.037995
- !-> DEFINE VARIABLE sumcpu =0.247963
+ !-> DEFINE VARIABLE dt = 0.038994
+ !-> DEFINE VARIABLE sumcpu =0.284956
!-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.037994
- !-> DEFINE VARIABLE sumcpu =0.285957
+ !-> DEFINE VARIABLE dt = 0.042994
+ !-> DEFINE VARIABLE sumcpu =0.32795
!-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.035994
- !-> DEFINE VARIABLE sumcpu =0.321951
+ !-> DEFINE VARIABLE dt = 0.042993
+ !-> DEFINE VARIABLE sumcpu =0.370943
!-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.032996
- !-> DEFINE VARIABLE sumcpu =0.354947
+ !-> DEFINE VARIABLE dt = 0.043994
+ !-> DEFINE VARIABLE sumcpu =0.414937
say `sumcpu`
- !-> MESSAGE/CONTINUE 0.354947
-0.354947
+ !-> MESSAGE/CONTINUE 0.414937
+0.414937
sh sym CLOCK_SECS
-CLOCK_SECS = "96.227"
+CLOCK_SECS = "752.342"
SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:41"
-CURRENT_DATE = " 7-Oct-14"
-CURRENT_TIME = "10:43:23"
+SESSION_DATE = "26-Oct-15"
+SESSION_TIME = "17:21"
+CURRENT_DATE = "26-Oct-15"
+CURRENT_TIME = "17:34:06"
! ******** V6.3 Additions below ***********
@@ -60895,8 +61019,8 @@ say `temp,return=isdepth`
use coads_climatology
say `sst,return=isdepth`
- !-> MESSAGE/CONTINUE NORMAL
-NORMAL
+ !-> MESSAGE/CONTINUE 0
+0
can data 2
@@ -61415,24 +61539,24 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 23 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 22 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 755 complete
plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
dealloc dynamic grid G5DAYG5DAYG5DAYGPSXU PSYU PSZT2 TAX5DAY NORMAL NORMAL
- -DELETE TEMP M: 23 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 22 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
strip regrid on Z: TEMP --> XNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @LIN
found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
- regrid TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 22 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 22 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 23 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 22 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 756 complete
@@ -61478,12 +61602,12 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
strip moduloing TEMP on T axis: 2 171 dset: 2
reading TEMP M: 17 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 168 dset: 2
- regrid TEMP M: 16 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 13 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 16 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 15 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 12 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 15 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 16 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 13 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 15 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 12 dset: 2 I: 45 56 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 759 complete
plot/over temp[g=u at asn]
@@ -61495,16 +61619,16 @@ plot/over temp[g=u at asn]
strip regrid on X: TEMP --> PS3DU1 @ASN
strip regrid on Y: TEMP --> XNTERMED @ASN
found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
+ regrid TEMP M: 12 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
regrid TEMP M: 13 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- regrid TEMP M: 14 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 13 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 12 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 3 168 dset: 2
strip regrid on X: TEMP --> PS3DU1 @ASN
strip regrid on Y: TEMP --> XNTERMED @ASN
found TEMP M: 17 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 1 168 M: -999 -999 N: -999 -999
- regrid TEMP M: 15 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- regrid TEMP M: 12 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 15 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
+ regrid TEMP M: 14 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
+ regrid TEMP M: 11 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 14 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 2 dset: 2
setting up plot
PPL plot 760 complete
@@ -61516,14 +61640,14 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
strip regrid on Y: TEMP --> XNTERMED @ASN
strip regrid on Z: TEMP --> YNTERMED @ASN
strip regrid on T: TEMP --> ZNTERMED @ASN
- reading TEMP M: 15 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ reading TEMP M: 14 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 9 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 9 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 9 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 761 complete
plot/over temp[g=u,gt=u at ave]
@@ -61545,10 +61669,10 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
strip regrid on T: TEMP --> XNTERMED @AVE
found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 10 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 25 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 10 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 763 complete
plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
@@ -61559,11 +61683,11 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefg
strip regrid on Z: TEMP --> XNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @AVE
found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
- regrid TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 10 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 11 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 10 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 11 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 10 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 764 complete
@@ -61576,7 +61700,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
found TEMP M: 18 dset: 2 I: 45 56 J: 45 46 K: 1 2 L: 2 171 M: -999 -999 N: -999 -999
regrid TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 9 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
+ regrid TEMP M: 8 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 21 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
setting up plot
PPL plot 765 complete
@@ -62425,7 +62549,7 @@ GO bn_multi_decade
! New default no-small tics for multi-decade plots
! See bug 670
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
+def axis/t="01-JAN-1860":"30-DEC-2300":1/edges/units="years"/cal="360d" simutaxis1
let tvar = t[gt=simutaxis1]*-1E+34
define view/x=0:1/y=0.000:0.125 v1
@@ -62824,7 +62948,7 @@ set var/title=deflate_x30_y30 sst
save/file=nc4_deflate4.nc/clobber/ncformat=4/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
! With /NCFORMAT=3 the other stuff is meaningless. Will see NOTEs
-yes? save/file=nc4_nodeflate3.nc/clobber/ncformat=3/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
+save/file=nc4_nodeflate3.nc/clobber/ncformat=3/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
! --------------------------
! Compare choices of chunking.
@@ -63960,7 +64084,7 @@ list contents
2 / 2:" e.g. yes? GO filename"
3 / 3:" "
4 / 4:" Use "GO/HELP filename" to read documentation in the file to be executed."
- 5 / 5:" *** NOTE: Axis is already regular: MYAXIS"
+ 5 / 5:" *** NOTE: Axis is already regular: MYAXIS"
6 / 6:" **ERROR: variable unknown or not in data set: GARBAGE"
7 / 7:"show grid garbage"
cancel var contents
@@ -64046,9 +64170,9 @@ list contents
VARIABLE : { SPAWN:"cat redirect_journal.txt" }
SUBSET : 47 points (X)
1 / 1:" ! NOAA/PMEL TMAP"
- 2 / 2:" ! FERRET v6.925 "
- 3 / 3:" ! Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14"
- 4 / 4:" ! 7-Oct-14 10:41 "
+ 2 / 2:" ! FERRET v6.95 "
+ 3 / 3:" ! Linux 2.6.18-406.el5 64-bit - 10/26/15"
+ 4 / 4:" ! 26-Oct-15 17:21 "
5 / 5:""
6 / 6:"! "
7 / 7:"!! --- 22. produce some output to stdout and stderr"
@@ -64127,7 +64251,7 @@ variable transforms e.g.SST[T=1-jan:15-mar at DDC]
@SBN binomial smoothed @SMN minimum smoothed
@SWL Welch smoothed @STD standard deviation
@SHN Hanning smoothed @WGT weights for avg,int
- @SPZ Parzen smoothed
+ @SPZ Parzen smoothed @SPX box smooth w/missing
regridding transforms e.g.SST[GX=x5deg at AVE]
code description code description
@@ -65153,8 +65277,7 @@ sh dat/att
. history CHAR 28 T FERRET V6.7 (beta) 25-Mar-11
Conventions CHAR 6 F CF-1.0
nco_input_file_nINT 1 F 1000
- nco_input_file_lCHAR 2048 F
- b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2. [...]
+ nco_input_file_lCHAR 2760 F b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.00 [...]
(LON273_289) DOUBLE long_name CHAR 9 T longitude
units CHAR 12 T degrees_east
@@ -65335,7 +65458,6 @@ sh dat
name title I J K L M N
TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
TEMP_MM TEMP - TEMPAVE 1:18 1:22 1:10 1:25 ... ...
- (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
@@ -65425,12 +65547,12 @@ list/L=15:20 tax_month(t[gt=tvar],tvar), tax_yearfrac(t[gt=tvar],tvar)
Column 1: TAX_MONTH(T[GT=TVAR],TVAR)
Column 2: TAX_YEARFRAC(T[GT=TVAR],TVAR)
(C001,V002) (C001,V005)
-17-MAR / 15: 3.000 0.2082
-16-APR / 16: 4.000 0.2904
-17-MAY / 17: 5.000 0.3753
-16-JUN / 18: 6.000 0.4575
-17-JUL / 19: 7.000 0.5425
-16-AUG / 20: 8.000 0.6247
+17-MAR / 15: 3.000 0.2092
+16-APR / 16: 4.000 0.2926
+17-MAY / 17: 5.000 0.3760
+16-JUN / 18: 6.000 0.4594
+17-JUL / 19: 7.000 0.5428
+16-AUG / 20: 8.000 0.6262
! the following is an error for a modulo time axis
list/L=15:20 tax_year(t[gt=tvar],tvar)
list tax_units(tvar)
@@ -65475,7 +65597,6 @@ sh dat
name title I J K L M N
TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
TEMP_MM TEMP - TEMPAVE 1:18 1:22 1:10 1:25 ... ...
- (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
GO bn_reset
@@ -65871,8 +65992,8 @@ list/l=1:7 TAX_yearfrac(t[gt=var], var)
01-JAN-2010 00:00:10 / 3: 0.002740
01-JAN-2010 00:00:15 / 4: 0.002740
01-JAN-2010 00:00:20 / 5: 0.002740
- 01-JAN-2010 00:00:25 / 6: 0.002740
- 01-JAN-2010 00:00:30 / 7: 0.002740
+ 01-JAN-2010 00:00:25 / 6: 0.002741
+ 01-JAN-2010 00:00:30 / 7: 0.002741
! This example from Patrick B. Output of TAX_dayfrac repeats.
! We need to just return an error mesage. Cant represent 2.5 years
@@ -66517,40 +66638,40 @@ can mode ver
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.712
-randu2_randn2 0.201
-randu2_randn2 0.650
-randu2_randn2 0.382
-randu2_randn2 0.609
+randu2_randn2 0.913
+randu2_randn2 0.221
+randu2_randn2 0.584
+randu2_randn2 0.036
+randu2_randn2 0.766
VARIABLE : RANDU2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.262
-randu2_randn2 0.997
-randu2_randn2 0.638
-randu2_randn2 0.693
-randu2_randn2 0.167
+randu2_randn2 0.463
+randu2_randn2 0.329
+randu2_randn2 0.936
+randu2_randn2 0.904
+randu2_randn2 0.370
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.833
-randu2_randn2 0.409
-randu2_randn2 0.953
-randu2_randn2 0.533
-randu2_randn2 0.222
-randu2_randn2 0.745
+randu2_randn2 0.982
+randu2_randn2 0.402
+randu2_randn2 0.270
+randu2_randn2 0.739
+randu2_randn2 0.243
+randu2_randn2 0.518
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.917
-randu2_randn2 0.701
-randu2_randn2 0.236
-randu2_randn2 0.034
-randu2_randn2 0.841
-randu2_randn2 0.972
+randu2_randn2 0.401
+randu2_randn2 0.497
+randu2_randn2 0.128
+randu2_randn2 0.496
+randu2_randn2 0.514
+randu2_randn2 0.849
VARIABLE : RANDU2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66575,40 +66696,40 @@ randu2_randn2 0.900
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.240
-randu2_randn2 -1.279
-randu2_randn2 -0.155
-randu2_randn2 -0.377
-randu2_randn2 2.940
+randu2_randn2 1.550
+randu2_randn2 -1.357
+randu2_randn2 0.921
+randu2_randn2 -2.208
+randu2_randn2 -1.365
VARIABLE : RANDN2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 -0.961
-randu2_randn2 -0.963
-randu2_randn2 1.489
-randu2_randn2 0.470
-randu2_randn2 1.017
+randu2_randn2 -1.928
+randu2_randn2 -1.458
+randu2_randn2 -1.332
+randu2_randn2 0.077
+randu2_randn2 1.939
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 -0.310
-randu2_randn2 0.844
-randu2_randn2 0.924
-randu2_randn2 -0.357
-randu2_randn2 0.229
-randu2_randn2 1.450
+randu2_randn2 -1.352
+randu2_randn2 0.976
+randu2_randn2 -2.156
+randu2_randn2 1.193
+randu2_randn2 1.564
+randu2_randn2 -0.296
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.010
-randu2_randn2 -1.172
-randu2_randn2 1.298
-randu2_randn2 1.144
-randu2_randn2 0.021
-randu2_randn2 0.230
+randu2_randn2 0.242
+randu2_randn2 -1.126
+randu2_randn2 2.124
+randu2_randn2 1.044
+randu2_randn2 -0.462
+randu2_randn2 -0.179
VARIABLE : RANDN2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66633,14 +66754,14 @@ randu2_randn2 -0.124
Column 1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
Column 2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
Column 3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2 1.199 1.199 0.549
-randu2_randn2 1.055 1.055 0.549
-randu2_randn2 0.549 0.549 -0.127
-randu2_randn2 -0.208 -0.127 0.549
-randu2_randn2 -0.127 -0.208 0.549
-randu2_randn2 -0.857 -0.262 0.549
-randu2_randn2 -0.262 -0.262 0.549
-randu2_randn2 0.759 0.759 0.759
+randu2_randn2 1.352 1.463 0.677
+randu2_randn2 1.463 1.352 0.677
+randu2_randn2 0.677 0.677 -0.037
+randu2_randn2 -0.037 -0.037 0.161
+randu2_randn2 -0.185 -0.185 0.161
+randu2_randn2 -0.186 -0.186 0.161
+randu2_randn2 -0.449 -0.186 0.161
+randu2_randn2 0.161 0.161 0.161
GO bn_reset
cancel mode verify
@@ -68250,7 +68371,7 @@ LIST v[@ypt]
LIST v[@ept]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 by 3 points (X-Y-F)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
---- N:1 F: 1
@@ -68268,7 +68389,7 @@ LIST v[@ept]
LIST v[@fpt]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 by 3 points (X-Y-E)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
---- M:1 E: 1
@@ -68288,8 +68409,8 @@ LIST v[@fpt]
LIST v[@ept, at fpt] !XY
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-Y)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -68299,7 +68420,7 @@ LIST v[@ypt, at fpt] !XE
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-E)
Y : 1.05 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -68309,7 +68430,7 @@ LIST v[@ypt, at ept] !XF
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-F)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -68319,7 +68440,7 @@ LIST v[@xpt, at fpt] !YE
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (Y-E)
X : 1.5 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1122.00 1132.00
@@ -68329,7 +68450,7 @@ LIST v[@xpt, at ept] !YF
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (Y-F)
X : 1.5 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1122.00 1132.00
@@ -68352,7 +68473,7 @@ LIST/ORDER=F v[@xpt, at ypt, at ept] ! F
SUBSET : 3 points (F)
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1112.50 2112.50 3112.50
@@ -68361,7 +68482,7 @@ LIST/ORDER=E v[@xpt, at ypt, at fpt] ! E
SUBSET : 3 points (E)
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1212.50 1312.50
@@ -68369,8 +68490,8 @@ LIST/ORDER=Y v[@xpt, at ept, at fpt] ! Y
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 points (Y)
X : 1.5 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1122.50 1132.50
@@ -68378,8 +68499,8 @@ LIST/ORDER=X v[@ypt, at ept, at fpt] ! X
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 points (X)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1113.50 1114.50
@@ -68389,8 +68510,8 @@ LIST v[@xpt, at ypt, at ept, at fpt]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1113.00
GO bn_reset
@@ -68463,7 +68584,7 @@ list veven
SUBSET : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
4 6 8
2 3 4
- ---- N:2 F: 05-JAN-1980 00:00:00
+ ---- N:2 F: 1980
---- M:2 E: 4
4 / 2: 2222.00 3222.00 4222.00
6 / 3: 2322.00 3322.00 4322.00
@@ -68476,7 +68597,7 @@ list veven
4 / 2: 2242.00 3242.00 4242.00
6 / 3: 2342.00 3342.00 4342.00
8 / 4: 2442.00 3442.00 4442.00
- ---- N:3 F: 07-JAN-1980 00:00:00
+ ---- N:3 F: 1980
---- M:2 E: 4
4 / 2: 2223.00 3223.00 4223.00
6 / 3: 2323.00 3323.00 4323.00
@@ -68489,7 +68610,7 @@ list veven
4 / 2: 2243.00 3243.00 4243.00
6 / 3: 2343.00 3343.00 4343.00
8 / 4: 2443.00 3443.00 4443.00
- ---- N:4 F: 09-JAN-1980 00:00:00
+ ---- N:4 F: 1980
---- M:2 E: 4
4 / 2: 2224.00 3224.00 4224.00
6 / 3: 2324.00 3324.00 4324.00
@@ -68507,7 +68628,7 @@ list v1234
SUBSET : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
5 7 9
3 4 5
- ---- N:3 F: 06-JAN-1980 00:00:00
+ ---- N:3 F: 1980
---- M:3 E: 5
5 / 3: 2777.50 3777.50 4777.50
7 / 4: 2877.50 3877.50 4877.50
@@ -68520,7 +68641,7 @@ list v1234
5 / 3: 2797.50 3797.50 4797.50
7 / 4: 2897.50 3897.50 4897.50
9 / 5: 2997.50 3997.50 4997.50
- ---- N:4 F: 08-JAN-1980 00:00:00
+ ---- N:4 F: 1980
---- M:3 E: 5
5 / 3: 2778.50 3778.50 4778.50
7 / 4: 2878.50 3878.50 4878.50
@@ -68533,7 +68654,7 @@ list v1234
5 / 3: 2798.50 3798.50 4798.50
7 / 4: 2898.50 3898.50 4898.50
9 / 5: 2998.50 3998.50 4998.50
- ---- N:5 F: 10-JAN-1980 00:00:00
+ ---- N:5 F: 1980
---- M:3 E: 5
5 / 3: 2779.50 3779.50 4779.50
7 / 4: 2879.50 3879.50 4879.50
@@ -68553,8 +68674,8 @@ stat veven
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68577,8 +68698,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68593,8 +68714,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68610,8 +68731,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68626,8 +68747,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68643,8 +68764,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68659,8 +68780,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68676,8 +68797,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68692,8 +68813,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68709,8 +68830,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68725,8 +68846,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68742,8 +68863,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68758,8 +68879,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68775,8 +68896,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68791,8 +68912,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68808,8 +68929,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68824,8 +68945,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68841,8 +68962,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68857,8 +68978,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68874,8 +68995,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68890,8 +69011,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68907,8 +69028,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68923,8 +69044,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68940,8 +69061,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68956,8 +69077,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68973,8 +69094,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68989,8 +69110,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69006,8 +69127,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69022,8 +69143,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69039,8 +69160,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69055,8 +69176,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69080,8 +69201,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69096,8 +69217,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69113,8 +69234,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69129,8 +69250,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69146,8 +69267,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69162,8 +69283,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69179,8 +69300,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69195,8 +69316,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69212,8 +69333,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69228,8 +69349,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69245,8 +69366,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69261,8 +69382,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69278,8 +69399,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69294,8 +69415,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69311,8 +69432,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69327,8 +69448,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69344,8 +69465,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69360,8 +69481,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69377,8 +69498,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69393,8 +69514,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69410,8 +69531,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69426,8 +69547,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69443,8 +69564,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69459,8 +69580,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69476,8 +69597,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69492,8 +69613,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69509,8 +69630,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69525,8 +69646,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69542,8 +69663,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69558,8 +69679,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -70643,7 +70764,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
DEPTH (m): 5
TIME: 21-JAN-1982 00:00 (interpolated)
E: 1 to 2
- FORECAST: 23-JAN-1982 00:00:00 to 24-JAN-1982 00:0
+ FORECAST: 1982 to 1982
DATA SET: ./gtsa056_1_ef.nc
Total # of data points: 120 (5*6*1*1*2*2)
@@ -70675,7 +70796,7 @@ LIST temp[g=g5day at ave]
TIME : 21-JAN-1982 00:00 (interpolated)
129.5W 128.5W 127.5W 126.5W 125.5W
101 102 103 104 105
- ---- N:1 F: 23-JAN-1982 00:00:00
+ ---- N:1 F: 1982
---- M:1 E: 1
1.5N / 46: 32.3553 32.3552 32.5032 32.8652 33.3285
1.17N / 45: 32.1766 32.1710 32.2834 32.5970 33.0244
@@ -70690,7 +70811,7 @@ LIST temp[g=g5day at ave]
0.5N / 43: 37.9306 37.8902 37.8887 38.0374 38.3408
0.17N / 42: 37.8944 37.8343 37.7825 37.8263 38.0336
0.17S / 41: 37.9538 37.8657 37.7716 37.7285 37.8282
- ---- N:2 F: 23-JAN-1982 20:00:00
+ ---- N:2 F: 1982
---- M:1 E: 1
1.5N / 46: 37.7553 37.7552 37.9032 38.2652 38.7285
1.17N / 45: 37.5766 37.5710 37.6834 37.9970 38.4244
@@ -70724,7 +70845,7 @@ LIST temp[g=g5day]
TIME : 21-JAN-1982 00:00 (interpolated)
129.5W 128.5W 127.5W 126.5W 125.5W
101 102 103 104 105
- ---- N:1 F: 23-JAN-1982 00:00:00
+ ---- N:1 F: 1982
---- M:1 E: 1
1.5N / 46: 34.3553 34.3552 34.5032 34.8652 35.3285
1.17N / 45: 34.1766 34.1710 34.2834 34.5970 35.0244
@@ -70739,7 +70860,7 @@ LIST temp[g=g5day]
0.5N / 43: 39.9306 39.8902 39.8887 40.0374 40.3408
0.17N / 42: 39.8944 39.8343 39.7825 39.8263 40.0336
0.17S / 41: 39.9538 39.8657 39.7716 39.7285 39.8282
- ---- N:2 F: 23-JAN-1982 20:00:00
+ ---- N:2 F: 1982
---- M:1 E: 1
1.5N / 46: 36.0220 36.0219 36.1698 36.5318 36.9952
1.17N / 45: 35.8433 35.8377 35.9501 36.2637 36.6910
@@ -70779,7 +70900,7 @@ plot temp
-DELETE TEMP M:104 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GGR1 PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
strip --> EX#1[Y=0 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
@@ -70788,7 +70909,7 @@ plot temp
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[Y=0 at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- doing --> TEMP[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
setting up plot
PPL plot 863 complete
plot/over temp[g=g5day]
@@ -70855,14 +70976,14 @@ plot temp
-DELETE TEMP M: 80 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GGR1 PSXT1 PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 7 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
reading TEMP M: 80 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- doing --> TEMP[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
setting up plot
PPL plot 867 complete
plot/over temp[g=g5day]
@@ -71430,7 +71551,7 @@ GO bn_reset
cancel mode verify
GO bn_aggregate_e
! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
+! using the DEFINE DATA/AGGREGATE/E command
! Datasets share sst, but only ens1 has airt.
set mode diag
@@ -71441,7 +71562,7 @@ define data/agg/title fourfiles = ens1, ens3, ens2, ens4
! The grid of SST is known.
show data fourfiles
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -71492,7 +71613,7 @@ define data/agg fourfiles = ens1, ens3, ens2, ens4
allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME13 NORMAL NORMAL
show data fourfiles
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
AIRT AIR TEMPERATURE 1:10 1:9 ... 1:12 1:4 ...
@@ -71598,7 +71719,7 @@ define data/agg windy = 1,2
! The grid of the aggregate variables with LET/D is known.
show data windy
currently SET data sets:
- 3> WINDY (default) Ferret-defined Ensemble dataset
+ 3> WINDY (default) Ferret-defined Ensemble aggregation
name title I J K L M N
UWND ZONAL WIND 1:30 1:30 ... 1:12 1:2 ...
VWND MERIDIONAL WIND 1:30 1:30 ... 1:12 1:2 ...
@@ -71631,7 +71752,7 @@ define data/agg windy = 2,1
! The grid of the aggregate variables with LET/D is known.
show data windy
currently SET data sets:
- 3> WINDY (default) Ferret-defined Ensemble dataset
+ 3> WINDY (default) Ferret-defined Ensemble aggregation
name title I J K L M N
UWND ZONAL WIND 1:30 1:30 ... 1:12 1:2 ...
VWND MERIDIONAL WIND 1:30 1:30 ... 1:12 1:2 ...
@@ -71678,7 +71799,8 @@ sh command define
DEFINE SYMBOL
DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
sh command show
SHOW/ALL
SHOW WINDOW/ALL
@@ -71690,7 +71812,7 @@ sh command show
/HIDDEN
SHOW MODE/ALL
SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
/CURVILIN
SHOW COMMANDS/ALL
SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -71711,7 +71833,7 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
! should just show the ensemble set
sh dat
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -71750,7 +71872,7 @@ sh dat/hidden
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 ... ...
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -71793,7 +71915,7 @@ sh dat
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 ... ...
- 5> MY_ENS (default) Ferret-defined Ensemble dataset
+ 5> MY_ENS (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:2 ...
@@ -71822,7 +71944,7 @@ ensemble/HIDE/title="uvars in dset 2" my_ens = 1,2,3,4
! members hidden, showing only ensemble.
sh dat
currently SET data sets:
- 5> MY_ENS (default) Ferret-defined Ensemble dataset
+ 5> MY_ENS (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -71857,15 +71979,15 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
! Shows all the ensembles
sh dat
currently SET data sets:
- 5> FOURFILES Ferret-defined Ensemble dataset
+ 5> FOURFILES Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
- 6> SOME Ferret-defined Ensemble dataset
+ 6> SOME Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:2 ...
- 7> MORE (default) Ferret-defined Ensemble dataset
+ 7> MORE (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:3 ...
@@ -72422,7 +72544,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72473,7 +72595,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72512,7 +72634,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72551,7 +72673,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72582,7 +72704,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72614,7 +72736,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72675,7 +72797,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72720,7 +72842,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72775,7 +72897,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72811,7 +72933,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72847,7 +72969,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72883,7 +73005,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72915,7 +73037,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -73145,7 +73267,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
@@ -73177,7 +73299,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
@@ -73218,7 +73340,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -73256,7 +73378,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -73281,7 +73403,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) INT units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -73306,7 +73428,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -73522,11 +73644,11 @@ GO err684_tax_fcns
list/L=3:7 tax_yearfrac(var, var)
VARIABLE : TAX_YEARFRAC(VAR, VAR)
SUBSET : 5 points (TIME)
- 08-OCT-2006 22 / 3: 0.7699
- 13-OCT-2006 23 / 4: 0.7836
- 18-OCT-2006 22 / 5: 0.7973
- 23-OCT-2006 21 / 6: 0.8110
- 28-OCT-2006 22 / 7: 0.8247
+ 08-OCT-2006 22 / 3: 0.7725
+ 13-OCT-2006 23 / 4: 0.7862
+ 18-OCT-2006 22 / 5: 0.7998
+ 23-OCT-2006 21 / 6: 0.8134
+ 28-OCT-2006 22 / 7: 0.8272
list/L=3:7 tax_year(var, var)
VARIABLE : TAX_YEAR(VAR, VAR)
@@ -73572,8 +73694,8 @@ GO err684_line_plot_zero
plot {0,0,0}
sh sym yaxis*
YAXIS_REVERSED = "0"
-YAXIS_MIN = "-1.0000000"
-YAXIS_MAX = "1.000000"
+YAXIS_MIN = "-1.00000000"
+YAXIS_MAX = "1.00000000"
GO bn_reset
@@ -73742,11 +73864,11 @@ variables:
A:missing_value = -1.e+34 ;
A:_FillValue = -1.e+34 ;
A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- A:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ A:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
A:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -73771,11 +73893,11 @@ variables:
E410:missing_value = -1.e+34 ;
E410:_FillValue = -1.e+34 ;
E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -73790,7 +73912,7 @@ save/clob/file=aa.nc/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
use aa.nc
list e410
VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
- X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+ X=20E:20E(380)
FILENAME : aa.nc
SUBSET : 4 by 3 points (LATITUDE-TIME)
81S 79S 77S 75S
@@ -73822,11 +73944,11 @@ variables:
E410:missing_value = -1.e+34f ;
E410:_FillValue = -1.e+34f ;
E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -73839,7 +73961,7 @@ save/clob/file=aa.nc/outtype=float/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
use aa.nc
list e410
VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
- X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+ X=20E:20E(380)
FILENAME : aa.nc
SUBSET : 4 by 3 points (LATITUDE-TIME)
81S 79S 77S 75S
@@ -73994,8 +74116,12 @@ let/title="tic labels on dependent axis" var = {\
1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
+cancel mode meta
+! rename the metafile. Else we get weird contents in axticlabel.plt
+! once the whole benchmark suite has finished. (why?)
+set mode meta metafile.plt
+cancel mode meta
GO bn_reset
cancel mode verify
@@ -74385,14 +74511,9 @@ variables:
CYCLE_ORIG:_FillValue = -1.e+34 ;
CYCLE_ORIG:long_name = "CYCLE[GZ=ZAXIS_ORIG at ASN]" ;
CYCLE_ORIG:history = "From z2" ;
- double DDAT_ORIG(ZAXIS_ORIG) ;
- DDAT_ORIG:missing_value = -1.e+34 ;
- DDAT_ORIG:_FillValue = -1.e+34 ;
- DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
// global attributes:
- :history = "Tue Oct 7 10:43:58 2014: ncks -h -A -h z1.nc append_to_this.nc\n",
- "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74425,7 +74546,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -74456,7 +74577,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -74518,7 +74639,7 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74546,7 +74667,7 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74707,6 +74828,7 @@ GO bn_vtree
! bn_tree.jnl
! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
+! 12/14 update to test regridding output using bn_vtree_regrid.jnl
CANCEL DATA/ALL
! pure abstract variable -- no dataset
@@ -74787,16 +74909,16 @@ vtree=all a
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
vtree=all /d=1 a
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
vtree=all /d=2 a
in default dataset other_file_vars
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
FV1
********************************
@@ -74804,12 +74926,12 @@ vtree=all /d=2 a
go bn_vtree.sub noexist
/TREE=ALL
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
the problem is UNKNOWN VARIABLE: NOEXIST
************************
@@ -74817,12 +74939,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST
go bn_vtree.sub v[d=noexist]
/TREE=ALL
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
/TREE=USER
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
/TREE=FILE
- V[D=NOEXIST] (unknown dataset)
+ *unknown dataset: V[D=NOEXIST]
the problem is UNKNOWN DATASET: V[D=NOEXIST]
************************
@@ -74830,12 +74952,12 @@ the problem is UNKNOWN DATASET: V[D=NOEXIST]
go bn_vtree.sub novar[d=nodset]
/TREE=ALL
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
/TREE=USER
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
/TREE=FILE
- NOVAR[D=NODSET] (unknown dataset)
+ *unknown dataset: NOVAR[D=NODSET]
the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
************************
@@ -74844,13 +74966,13 @@ go bn_vtree.sub b
/TREE=ALL
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
the problem is UNKNOWN VARIABLE: NOEXIST
************************
@@ -74876,11 +74998,13 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
/TREE=FILE
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
@@ -74896,11 +75020,13 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
/TREE=FILE
FV1[d=my_file_vars]
@@ -74915,12 +75041,14 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
/TREE=FILE
FV1[d=my_file_vars]
@@ -74942,7 +75070,7 @@ go bn_vtree.sub fv1z
FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
NOEXIST (unknown auxiliary variable)
/TREE=FILE
- NOEXIST (unknown auxiliary variable)
+ *unknown auxiliary variable: NOEXIST
FVX[d=my_file_vars]
the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
************************
@@ -74953,17 +75081,19 @@ go bn_vtree.sub fv1z
/TREE=ALL
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
/TREE=FILE
- NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
@@ -74975,17 +75105,19 @@ go bn_vtree.sub fv1z
/TREE=ALL
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
/TREE=FILE
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
- UNKNOWN_AUX (unknown auxiliary variable)
+ *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+ *unknown auxiliary variable: UNKNOWN_AUX
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
************************
@@ -74996,9 +75128,9 @@ go bn_vtree.sub fv1
/TREE=ALL
in default dataset MY_AGG
FV1 (aggregate variable)
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- FV1[d=another_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
/TREE=USER
in default dataset MY_AGG
FV1 (aggregate variable)
@@ -75018,16 +75150,16 @@ go bn_vtree.sub fvx
/TREE=ALL
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=my_file_var]
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=other_file_var]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=another_file_var]
+ FVX[d=my_file_vars]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_vars]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_vars]
/TREE=USER
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
/TREE=FILE
FVX[d=my_file_vars]
@@ -75046,30 +75178,30 @@ go bn_vtree.sub p0 ! recursion
/TREE=ALL
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S3 (unknown variable)
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S3
the problem is ILLEGAL RECURSIVE VARIABLES: P1
************************
let p3 = s1 + S3
@@ -75077,31 +75209,31 @@ go bn_vtree.sub p0 ! ok
/TREE=ALL
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S1 (unknown variable)
- S3 (unknown variable)
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S1
+ *unknown variable: S3
the problem is UNKNOWN VARIABLE: S1
************************
@@ -75123,8 +75255,8 @@ show var/tree/d=my_uvar_agg uv
in default dataset MY_UVAR_AGG
UV = FVX + FVX + FVX
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
***************************
! suppressing duplicates elsewhere in the family tree ("defined above")
@@ -75139,8 +75271,8 @@ go bn_vtree.sub v2
V2 = V1 + B + A + A
V1 = A + B + B^2
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
B = C
C = 1
B = (defined above)
@@ -75164,8 +75296,8 @@ go bn_vtree.sub v3
in default dataset MY_UVAR_AGG
V3 = A + V1 + B + A + A
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
V1 = A + B + B^2
A = (defined above)
B = C
@@ -75199,26 +75331,26 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
- FVX[d=my_file_var]
+ FVX[d=my_file_vars]
/TREE=USER
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
/TREE=FILE
- F (unknown variable)
+ *unknown variable: F
FV1[d=my_file_vars]
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: F
************************
@@ -75233,14 +75365,16 @@ the problem is UNKNOWN VARIABLE: F
/TREE=ALL
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
/TREE=USER
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
/TREE=FILE
- A[G=NOEXIST] (unknown grid)
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+ *unknown grid: NOEXIST
+the problem is UNKNOWN GRID: NOEXIST
************************
list b
@@ -75256,7 +75390,7 @@ the problem is UNKNOWN GRID: A[G=NOEXIST]
C = A[X=45S]
A[X=45S] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[X=45S] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[X=45S]
the problem is ERROR IN EXPRESSION: A[X=45S]
************************
list c
@@ -75273,7 +75407,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
D = A[I=1,,J=2]
A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[I=1,,J=2]
the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
************************
list d
@@ -75290,7 +75424,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
E = A[P=1]
A[P=1] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[P=1] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[P=1]
the problem is ERROR IN EXPRESSION: A[P=1]
************************
list e
@@ -75323,6 +75457,528 @@ show var/tree a
in default dataset MY_UVAR_AGG
A = ..HISTORY[D=1]
+! *****
+! 12/14 addition to test regridding dependencies
+go bn_vtree_regrid
+! bn_vtree_regrid.jnl
+! exercise 12/14 enhancements to display regrid target on a separate line
+! updated 1/26/15 to exercise multiple regrid target outputs
+! updated 2/23/15 to report target of regrid even when aux regridding occurs
+
+! case 1: target grid known, regridded variable known
+let myvar = 1 ! var to be regridded is known
+let gvar = x[x=1:5] ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR = X[X=1:5]
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 2: target grid known, regridded variable unknown
+canc var/all
+! myvar unknown
+let gvar = x[x=1:5] ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR[G=GVAR] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR = X[X=1:5]
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR[G=GVAR] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! **************************************
+! same tests but now with a dataset named with the target grid
+use coads_climatology
+use levitus_climatology ! default to d=2
+
+! case 1: target grid known, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 2: target grid known, regridded variable unknown
+canc var/all
+! myvar unknown
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+ MYVAR[G=SST[D=1]] ?? <== UNKNOWN VARIABLE ******
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3a: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3b: target grid unknown cuz of dataset, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=sst[d=bad_dset]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=BAD_DSET]] + UNVAR + KVAR
+ MYVAR[G=SST[D=BAD_DSET]] ?? <== UNKNOWN DATASET ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+ MYVAR[G=GVAR[D=1]] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! *******************
+! file variable listing, only
+canc var/all
+let myvar = 1
+let fvar = airt[d=1]
+let kvar = 1 ! known var
+* /TREE=FILE with know regrid target
+let a = myvar[g=sst[d=1]] + fvar + kvar
+sho var/tree=file a
+ *unknown grid: SST[D=1]
+ *unknown variable: AIRT[D=1]
+
+* /TREE=FILE with unknow regrid target
+let a = myvar[g=unknown] + fvar + kvar
+sho var/tree=file a
+ *unknown grid: UNKNOWN
+ *unknown variable: AIRT[D=1]
+
+! ********************
+! regridding to multiple targets
+
+define axis/x=140e:160e:1 x1
+define axis/y=20s:20n:1 y1
+LET myvar = X[gx=x1] + Y[gy=y1]
+
+define axis/y=5s:5n:.5 yp5
+
+go bn_vtree.sub myvar[g=temp]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp] is ready and AVAILABLE
+************************
+
+! second target *is* a named variable
+go bn_vtree.sub myvar[g=temp,gy=sst[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=sst[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gy=sst[d=1],gx=temp] ! reverse order, only
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: SST[D=1]
+ regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+
+! second target is not a named variable
+go bn_vtree.sub myvar[g=temp,gy=yp5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[gx=temp,gy=yp5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[gx=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=temp,y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,y=5s:5n:.5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=sst[d=1],y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+
+! multiple targets, including unknown variables
+go bn_vtree.sub myvar[g=temp,gy=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,gy=temp]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+ regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=temp,g=mybad[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=1],gy=mybad2]! distinct unknown targets
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD2 ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD2 ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+ *unknown grid: MYBAD2
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]] ! dup known targets
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad] ! dup unknown suppressed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=2] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=2] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=2]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD[D=2]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy='MYBAD'] ! dup unknown missed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to 'MYBAD' ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to 'MYBAD' ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+ *unknown grid: 'MYBAD'
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=myvar,gy=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=yp5,g=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+
+! 2/15 additions -- auxiliary variable regridding
+USE levitus_climatology
+LET myzvar = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = myzvar
+SET REGION/i=101:102/j=41:42
+
+LET/D=levitus_climatology depth = z[g=temp]+ 0*temp[k=1]
+
+! valid aux var and target variable
+LET tempz = temp[gz(depth)=myzvar]
+vtree=all tempz
+ in default dataset levitus_climatology
+ TEMPZ = TEMP[GZ(DEPTH)=MYZVAR]
+ TEMP
+ regrid to MYZVAR = Z[Z=100:500:100]
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! valid aux var. Target is axis name
+LET tempz1 = temp[gz(depth)=zax]
+vtree=all tempz1
+ in default dataset levitus_climatology
+ TEMPZ1 = TEMP[GZ(DEPTH)=ZAX]
+ TEMP
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! valid aux var. Target is unknown
+LET tempz2 = temp[gz(depth)=unknown_target]
+vtree=all tempz2
+ in default dataset levitus_climatology
+ TEMPZ2 = TEMP[GZ(DEPTH)=UNKNOWN_TARGET]
+ TEMP
+ regrid to UNKNOWN_TARGET ?? <== UNKNOWN GRID ******
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! --- unknown aux var, valid target ---
+! When an unknown auxiliary variable error occurs it suppresses
+! the reporting of both the variable being regridded and the regrid target
+! The underlying issue is that GET_VAR_CONTEXT (called from is_dependencies.F)
+! can return only a single error status
+! If it contains ferr_unknown_auxvar, then the success or failure of other
+! parts of the context processing are unknown.
+! One could kludge the code to find a way around this, but the violence
+! required is not justified in order to fix this small loss in error reporting.
+LET tempz3 = temp[gz(unknown_aux)=myzvar]
+vtree=all tempz3
+ in default dataset levitus_climatology
+ TEMPZ3 = TEMP[GZ(UNKNOWN_AUX)=MYZVAR]
+ UNKNOWN_AUX (unknown auxiliary variable)
+
+! a syntax error leads to a similar behavior
+LET tempz3a = temp[gz(unknown_aux)=myzvar,SYNTAX_ERROR]
+vtree=all tempz3a
+ in default dataset levitus_climatology
+ TEMPZ3A = TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]
+ TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR] *** WARNING: ERROR IN DEFINITION
+
+! similar behavior here: the unknown_target does not get reported
+LET tempz4 = temp[gz(unknown_aux)=unknown_target]
+vtree=all tempz4
+ in default dataset levitus_climatology
+ TEMPZ4 = TEMP[GZ(UNKNOWN_AUX)=UNKNOWN_TARGET]
+ UNKNOWN_AUX (unknown auxiliary variable)
+
+
+
! *********** v6.86 Additions ***********
GO bn_reset
@@ -75714,19 +76370,19 @@ save/file=a.nc/clobber labels
sp ncdump -h a.nc
netcdf a {
dimensions:
- ENSEMBLE = 3 ;
+ ENSEMBLE1 = 3 ;
maxStrlen64 = 64 ;
variables:
- double ENSEMBLE(ENSEMBLE) ;
- ENSEMBLE:long_name = "Ensemble of Realizations" ;
- ENSEMBLE:axis = "E" ;
- ENSEMBLE:point_spacing = "even" ;
- char LABELS(ENSEMBLE, maxStrlen64) ;
+ double ENSEMBLE1(ENSEMBLE1) ;
+ ENSEMBLE1:long_name = "Ensemble of Realizations" ;
+ ENSEMBLE1:axis = "E" ;
+ ENSEMBLE1:point_spacing = "even" ;
+ char LABELS(ENSEMBLE1, maxStrlen64) ;
LABELS:long_name = "Realizations" ;
LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
}
@@ -75749,7 +76405,7 @@ variables:
STRVAR:long_name = "mystrings" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
}
@@ -75901,7 +76557,7 @@ shade/n=3/L=6 bath_tf
! If so its label will show Julian too.
sh sym lab($labnum_f)
!-> sh sym lab5
-LAB5 = "FORECAST : 03-JAN-2000 00:00:00 JULIAN"
+LAB5 = "FORECAST : 2000 JULIAN"
GO bn_reset
cancel mode verify
@@ -75977,7 +76633,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76007,7 +76663,7 @@ variables:
A:history = "From a" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76028,7 +76684,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76049,7 +76705,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76071,7 +76727,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
:Conventions = "CF-1.6" ;
}
@@ -76242,7 +76898,7 @@ show dat
! another error, new name is a user-var
-yes? set var/name=diff w
+set var/name=diff w
SET MODE/LAST ignore
@@ -76300,7 +76956,7 @@ GO bn_short.sub tvar ave
! short script extracted from bn_negative_t.sub for bn_enter_exit_GO
LIST/nohead/norow $1[t=-5:9@$2] ! neg/pos t endpoints
- !-> LIST/nohead/norow tvar[t=-5:9 at ave] ! neg/pos t endpoints
+ !-> LIST/nohead/norow tvar[t=-5:9 at ave]
2.000
! Exit_GO
@@ -76392,11 +77048,11 @@ list/y=3/l=1 temp[x=@std]
list/y=3/l=1 temp[z=@std,x=@std]
VARIABLE : TEMPERATURE (deg. C)
FILENAME : gt4d011.cdf
- LONGITUDE: 140W to 122W (standard deviation)
+ LONGITUDE: 140W to 122W (XZ stddev)
LATITUDE : 3N (interpolated)
- DEPTH (m): 0 to 100 (standard deviation)
+ DEPTH (m): 0 to 100 (XZ stddev)
TIME : 17-AUG-1982 12:00
- 0.1946
+ 1.037
GO bn_reset
cancel mode verify
@@ -76492,7 +77148,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -76508,7 +77164,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -76524,7 +77180,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.925 7-Oct-14
+ . history CHAR 24 T FERRET V6.95 26-Oct-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -76550,7 +77206,7 @@ set axis/name=.fr x_in_meters
set mode/last ignore
-! *********** v6.9+ Additions ***********
+! *********** v6.93 Additions ***********
GO bn_reset
cancel mode verify
GO bn691_bug_fixes
@@ -77053,7 +77709,7 @@ def axis/z=1:20:1 zaxis
define axis/t=1-jan-2000:1-jan-2005:1/units=days longtime
let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
sh grid bigvar
- GRID (G087)
+ GRID (G103)
name axis # pts start end
XAXIS X 360 r 1 360
YAXIS Y 180 r 1 180
@@ -77066,7 +77722,7 @@ load bigvar
! also was an incorrect size.
define axis/t=1-jan-2000:1-jan-2010:1/units=days longtime
sh grid bigvar
- GRID (G087)
+ GRID (G103)
name axis # pts start end
XAXIS X 360 r 1 360
YAXIS Y 180 r 1 180
@@ -77301,6 +77957,170 @@ label .5 .5 0 0 1 "El Nin\\^@MA45 at SRo\!"
GO bn_reset
cancel mode verify
+GO err69_isready_and_regridding
+! err69_isready_and_regridding.jnl
+! Ticket 2204: A `var,return=isready` sends Ferret into a hanged
+! state after other contexts have been defined
+
+can dat/all
+
+! create & load a file with a Gregorian time axis
+def ax/t/unit=days/t0=1-jan-1979 tax_g = {15,45,75,105,135}
+let a = t[gt=tax_g]
+save/clob/file=a.nc a
+can var a
+can ax tax_g
+use a.nc
+
+! create a variable on a Julian time axis
+def ax/edge/t=1-feb-1980:1-feb-2003/np=276/cal=julian/unit="hour"/t0=1-jan-1900 tax_j
+let b = t[gt=tax_j]
+
+! put the Gregorian data on the Julian axis
+let a2 = a
+let a2_on_b = a2[gt=b]
+
+! create a climatological axis (Julian)
+def ax/t/unit=days/t0=1-jan-0001/modulo=365.25/cal=julian tax_jc = {15.5,45.125,74.75,105.25,135.75,166.25,196.75,227.75,258.25,288.75,319.25,349.75}
+
+let b_one = missing(1+0*b,1) !set everything to 1
+let nyr = b_one[gl=tax_jc at modsum] !# years that include each month
+
+! Execute some commands which put things into context storage
+
+say `a2_on_b,r=title`
+ !-> MESSAGE/CONTINUE A2[GT=B]
+A2[GT=B]
+say `nyr[l=1]`
+ !-> MESSAGE/CONTINUE 23
+23
+
+! This got us into a weird hanged state
+IF `a2_on_b,r=isready` THEN
+ !-> IF 1 THEN
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err69_vtree_and_uvar_regrid
+! err69_vtree_and_uvar_regrid.jnl
+! Ticket 2206: This lead to a crash.
+! 10/9/2014
+
+let a = t[gt=1:2:1]
+let b2 = a
+let c = b2[gt=a]
+GO bn_vtree.sub c
+/TREE=ALL
+ C = B2[GT=A]
+ B2 = A
+ regrid to A = T[GT=1:2:1]
+ A = T[GT=1:2:1]
+/TREE=USER
+ C = B2[GT=A]
+ B2 = A
+ regrid to A = T[GT=1:2:1]
+ A = T[GT=1:2:1]
+/TREE=FILE
+c is ready and AVAILABLE
+************************
+
+GO bn_reset
+cancel mode verify
+GO err69_vtree_cancel_axis
+! err69_vtree_cancel_axis
+! Ticket 2201: After a return=isready,
+! cannot cancel the axis used by the var
+! 10-Oct-2014
+
+define axis/x=0:360:1 xax1
+define axis/x=0:360:10 xax2
+
+let a = x[gx=xax1]
+say `a,return=title`
+ !-> MESSAGE/CONTINUE X[GX=XAX1]
+X[GX=XAX1]
+
+let b = a[gx=xax2]
+say `b,return=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+cancel var a b
+cancel axis xax1
+cancel axis xax2
+
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_bugs
+! err69_isready_bugs.jnl
+! Tickets 2201 and 2215
+! updated error script 12/14 *sh* - to ensure that bench log file
+! has verification of this problem and its fix, as well as the bench error file
+
+! ticket 2201: isready operation meant we couldn't cancel the second axis
+
+def ax/x=0:360:1 xax_isready_1
+def ax/x=0:360:10 xax_isready_2
+let a = x[gx=xax_isready_1]
+say `a,r=title`
+ !-> MESSAGE/CONTINUE X[GX=XAX_ISREADY_1]
+X[GX=XAX_ISREADY_1]
+let b = a[gx=xax_isready_2]
+load b
+say `b,r=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+
+can var a
+can axis xax_isready_1
+can var b
+can axis xax_isready_2
+
+! 12/14 additions:
+show grid/dynamic ! look for "err: grid over-allocated" messages
+Dynamic grids:
+ no implicit grids
+Dynamic axes:
+ AXIS (AX127) use count: 1
+ AXIS (AX049) use count: 13
+ AXIS (AX047) use count: 13
+ AXIS (AX020) use count: 2
+show axis xax_isready_1, xax_isready_2 ! did they both get canceled?
+ name axis # pts start end
+
+! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
+
+let a = x[gx=1:3:1]
+let b = a - a[gx=a]
+let c = 1
+let/unit="m" f = b*c
+say `f,r=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+say `f,r=unit`
+ !-> MESSAGE/CONTINUE m
+m
+
+GO bn_reset
+cancel mode verify
+GO err691_substring_arg
+! err693_substring_arg
+! ACM 12/10/2014
+! ticket 2210. Argument checking was not done for the SUBSTRING function
+
+set mode ignore
+list substring("hello",1,-2)
+list substring("hello",1,-3)
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
GO bn_append_dsg
! bn_append_dsg.jnl
!From SOCAT 3: appending to a dsg file where the new variable is on the obs
@@ -77376,7 +78196,7 @@ variables:
:geospatial_lat_max = 29.07 ;
:time_coverage_start = "2006-06-10T23:48:00Z" ;
:time_converage_end = "2006-06-11T00:12:00Z" ;
- :history = "FERRET V6.925 7-Oct-14" ;
+ :history = "FERRET V6.95 26-Oct-15" ;
}
GO bn_reset
@@ -77469,7 +78289,7 @@ variables:
LON360:history = "added to test_save_dsg.nc" ;
// global attributes:
- :history = "CruiseDsgNcFile 1.0FERRET V6.925 7-Oct-14" ;
+ :history = "CruiseDsgNcFile 1.0FERRET V6.95 26-Oct-15" ;
:featureType = "Trajectory" ;
:Conventions = "Some other conventionsCF-1.6" ;
:geospatial_lon_min = -92.77 ;
@@ -77496,7 +78316,7 @@ can dat/all; use anew_global.nc
sh att .
attributes for dataset: ./anew_global.nc
..history = Subset of etopo20,
- FERRET V6.925 7-Oct-14
+ FERRET V6.95 26-Oct-15
..Conventions = Existing conventions note, , CF-1.6
@@ -77528,7 +78348,7 @@ can dat/all; use conventions_history
! The new attibutes
sh att .
attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V6.925 7-Oct-14
+ ..history = The history of the fileFERRET V6.95 26-Oct-15
..Conventions = Conventions for variables named V2CF-1.6
GO bn_reset
@@ -77940,14 +78760,14 @@ a is ready and AVAILABLE
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
in default dataset other_file_vars
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
FV1
********************************
/TREE=ALL
@@ -77956,30 +78776,30 @@ a is ready and AVAILABLE
the problem is UNKNOWN VARIABLE: NOEXIST
************************
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
- NOEXIST (unknown variable)
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
the problem is UNKNOWN DATASET: V[D=NOEXIST]
************************
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
- V[D=NOEXIST] (unknown dataset)
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ *unknown dataset: V[D=NOEXIST]
/TREE=ALL
/TREE=USER
/TREE=FILE
the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
************************
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
- NOVAR[D=NODSET] (unknown dataset)
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ *unknown dataset: NOVAR[D=NODSET]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -77987,11 +78807,11 @@ the problem is UNKNOWN VARIABLE: NOEXIST
************************
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
- NOEXIST (unknown variable)
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78010,10 +78830,12 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
FVZ
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
@@ -78025,10 +78847,12 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FV1[d=my_file_vars]
FVX[d=my_file_vars]
@@ -78040,11 +78864,13 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
@@ -78061,7 +78887,7 @@ the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
in default dataset my_file_vars
FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
NOEXIST (unknown auxiliary variable)
- NOEXIST (unknown auxiliary variable)
+ *unknown auxiliary variable: NOEXIST
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
@@ -78070,15 +78896,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
************************
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
- NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
/TREE=ALL
@@ -78088,15 +78916,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
************************
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
FVX
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
- UNKNOWN_AUX (unknown auxiliary variable)
+ *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+ *unknown auxiliary variable: UNKNOWN_AUX
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
@@ -78105,9 +78935,9 @@ fv1 is ready and AVAILABLE
************************
in default dataset MY_AGG
FV1 (aggregate variable)
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- FV1[d=another_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
in default dataset MY_AGG
FV1 (aggregate variable)
@@ -78121,15 +78951,15 @@ fvx is ready and AVAILABLE
************************
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=my_file_var]
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=other_file_var]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=another_file_var]
+ FVX[d=my_file_vars]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_vars]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_vars]
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
FVX[d=my_file_vars]
FV1[d=other_file_vars]
@@ -78141,28 +78971,28 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
************************
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S3 (unknown variable)
+ S3 ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S3
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78170,29 +79000,29 @@ the problem is UNKNOWN VARIABLE: S1
************************
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S1 (unknown variable)
- S3 (unknown variable)
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S1
+ *unknown variable: S3
in default dataset my_file_vars
FV = FV1 + FV1 + FV1
in default dataset MY_UVAR_AGG
@@ -78204,8 +79034,8 @@ the problem is UNKNOWN VARIABLE: S1
in default dataset MY_UVAR_AGG
UV = FVX + FVX + FVX
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
***************************
/TREE=ALL
/TREE=USER
@@ -78216,8 +79046,8 @@ v2 is ready and AVAILABLE
V2 = V1 + B + A + A
V1 = A + B + B^2
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
B = C
C = 1
B = (defined above)
@@ -78240,8 +79070,8 @@ v3 is ready and AVAILABLE
in default dataset MY_UVAR_AGG
V3 = A + V1 + B + A + A
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
V1 = A + B + B^2
A = (defined above)
B = C
@@ -78265,37 +79095,39 @@ the problem is UNKNOWN VARIABLE: F
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
- FVX[d=my_file_var]
+ FVX[d=my_file_vars]
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
- F (unknown variable)
+ *unknown variable: F
FV1[d=my_file_vars]
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
/TREE=FILE
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+the problem is UNKNOWN GRID: NOEXIST
************************
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
+ *unknown grid: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78307,7 +79139,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
in default dataset MY_UVAR_AGG
C = A[X=45S]
A[X=45S] *** WARNING: ERROR IN DEFINITION
- A[X=45S] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[X=45S]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78319,7 +79151,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
in default dataset MY_UVAR_AGG
D = A[I=1,,J=2]
A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
- A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[I=1,,J=2]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78331,7 +79163,7 @@ the problem is ERROR IN EXPRESSION: A[P=1]
in default dataset MY_UVAR_AGG
E = A[P=1]
A[P=1] *** WARNING: ERROR IN DEFINITION
- A[P=1] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[P=1]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -78430,8 +79262,8 @@ say `files,return=isize`
! Evaluate size without loading the variable first
let datfiles = {spawn:"ls *.dat"}
say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 36
-36
+ !-> MESSAGE/CONTINUE 37
+37
! expression syntax
say `{spawn:"ls xml*.jnl"},return=isize`
@@ -78449,8 +79281,8 @@ list {spawn:"ls xml*.jnl"}
LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 829
-829
+ !-> MESSAGE/CONTINUE 901
+901
let files = {spawn:"ls *cdf*.jnl"}
let name_len = strindex(files, ".sub")
@@ -78458,4102 +79290,686 @@ say `name_len, return=isize`
!-> MESSAGE/CONTINUE 8
8
-! *********** Always do a bn_reset ***********
-! *********** make sure things clean up well **
GO bn_reset
cancel mode verify
+GO bn_polygon_log
+! bn_polygon_log.jnl
+! polygon plots on a log axis need tests
-! version 2.3 requires exit/command *sh* 3/92
-exit/command
-yes? ! bn_all_ef_shell.jnl
-yes? ! 5/05 *acm*
-yes? ! run bn_all_ef tests
-yes?
-yes? GO bn_all_ef
- NOAA/PMEL TMAP
- FERRET v6.925
- Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
- 7-Oct-14 10:44
-
-SET MODE VERIFY
-! bn_all_ef.jnl
-! - run all the benchmark tests for externally-linked external functions.
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let xpts = cos(x/10) + 2
+let ypts = x/10+1
+! Polygon plot
+
+set view ul
+polygon/title="NOT LOG"/i=1:100 xpts+xsqr, ypts+ysqr, x*x/10
+
+! Poly/vlog and /hlog
+! (known bug: Whats up with the colorbar labels?)
+set view ur; poly/title=VLOG/i=1:100/vlog xpts+xsqr,ypts+ysqr,x*x/10
+set view ll; poly/title=HLOG/i=1:100/hlog xpts+xsqr,ypts+ysqr,x*x/10
+set view lr;poly/title=BOTH/i=1:100/vlog/hlog xpts+xsqr,ypts+ysqr,x*x/10
+
+! These are errors - log of negative values on axis
+
+set mode ignore
+
+let ybad = x/10 - 1
+let xbad = cos(x/10) + 0.8
+
+can view
+polygon/i=1:100/nolab xbad+xsqr,ybad+ysqr,x*x/10
+
+poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
+poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
+
+set mode/last ignore
+
+! *********** v6.94Additions ***********
GO bn_reset
cancel mode verify
-GO bn_ef_external_functions.jnl
-! Tests of external functions that are distributed as shared object files.
+GO bn694_bug_fixes
+! bn694_bug_fixes
+! test various fixes that went into version 6.94
+! 11/2014 ACM
+! 12/2014 *sh* added IF-THEN flow fixes, including review of past tickets
+! 1/2015 *sh* added test for undetected bad dataset name in regrid target
-! Jon's benchmarks
-go bench_examples
-set mode ignore_error
-show func/ext add_9
-ADD_9(A,B,C,D,E,F,G,H,I)
- (demonstration function) adds 9 arguments
-show func/ext ave*
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
- Compute average of a variable in each cell of output time axis
- TPTS: T coordinates of scattered input time coordinates
- VPTS: Variable at times in TPTS
- TAXIS: Output time axis
-AVET(A)
- (demonstration function) returns the time average
- A: data to be averaged over the time axis
-show func pass_thru
-PASS_THRU(A)
- (demonstration function) sets result equal to input
- A: this arg is passed through
-show func sto*
-STORAGE(A)
- sets result equal to input/10
- A: input
+GO bn_reset
+cancel mode verify
+GO err693_upcase_quoted_name
+! err693_upcase_quoted_name.jnl
+! ticket 2050. Names are saved in uppercase
+! form unless there are duplicates other than case.
+! Then searching for the name in quotes looked
+! only with a case-sensitive search.
-go bench_add_9
-! Bench_add_9.jnl
-! ACM 8/99
-! benchmark script for testing external function add_9.
-! Note: bench_add_9_visual contains plots of similar computations
+let abc = 12
+cancel mode upcase
-set mode ignore_errors
+save/file=aa.nc/clobber abc
+can dat/all; can var/all
+use aa.nc
+! previously this failed to find the name.
+list 'abc'
+ VARIABLE : 12
+ FILENAME : aa.nc
+ 12.00
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
-let a1 = sst[d=1,l=1]
-let a2 = sst[d=1,l=2]
-let a3 = sst[d=1,l=3]
+GO bn_reset
+cancel mode verify
+GO err693_isready_hang
+! err693_isready_hang.jnl
+! ACM 12/10/2014
+! ticket 2219. The last of these commands caused Ferret to hang.
-let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+use gt4d011
+def ax/t/t0="`u,r=t0`"/unit="`u,r=tunit`" time = t[gt=u]
+ !-> def ax/t/t0="14-JAN-1980 14:00:00"/unit="hour" time = t[gt=u]
+let a = u
+IF `a,r=isready` THEN; let/title="`a,r=title`" a1 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a1 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a2 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a2 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a3 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a3 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a4 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a4 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a5 = a
+
+GO bn_reset
+cancel mode verify
+GO err693_isready_dyn_grid_crash ! 12/23/2014
+let/unit="m" b = x[gx=1:5:1]
+say "`b,r=unit`" ! this causes dynamic grid of b to be created
+ !-> MESSAGE/CONTINUE "m"
+m
+let c = x[gx=1:5:2]
+let b2 = b+0*c[gx=b] ! dynamic grid of b exists, but not grid of c
+VTREE b2
+ B2 = B+0*C[GX=B]
+ B = X[GX=1:5:1]
+ C = X[GX=1:5:2]
+ regrid to B = X[GX=1:5:1]
+
+GO bn_reset
+cancel mode verify
+GO err693_attr_in_gcfcn
+! err693_attr_in_gcfcn.jnl
+! ACM 12/10/2014
+! bug 2220 varname.attname as an argument to grid-changing functions.
+! All except the last of these caused various ungraceful stops.
+
+let/units="m" a = 1
+list is_element_of_str(a.units,{"m","a"})
+ VARIABLE : IS_ELEMENT_OF_STR(A.UNITS,{"m","a"})
+ X : 1
+ 1.000
-list a
- VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 263.6
- 153E / 67: 264.5
- 155E / 68: 264.2
- 157E / 69: 261.3
- 159E / 70: 260.9
- 161E / 71: 262.4
- 163E / 72: 264.0
- 165E / 73: 261.1
- 167E / 74: 260.9
- 169E / 75: 261.0
- 171E / 76: 259.3
- 173E / 77: 257.9
- 175E / 78: 257.0
- 177E / 79: 259.1
- 179E / 80: 254.8
-list a - 3 * sst[d=1,l=1:3 at sum]
- VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 0.0000
- 153E / 67: 0.0000
- 155E / 68: 0.0000
- 157E / 69: 0.0000
- 159E / 70: 0.0000
- 161E / 71: 0.0000
- 163E / 72: 0.0000
- 165E / 73: 0.0000
- 167E / 74: 0.0000
- 169E / 75: 0.0000
- 171E / 76: 0.0000
- 173E / 77: 0.0000
- 175E / 78: 0.0000
- 177E / 79: 0.0000
- 179E / 80: 0.0000
-set mode/last ignore_errors
-go bench_avet
-! Bench_avet.jnl
-! ACM 8/99
-! benchmark script for testing external function avet.
-! Note: bench_avet_visual.jnl contains plots of similar computations
+let/units="m" a = 1
+let b = a.units
+list is_element_of_str(b,{"m","a"})
+ VARIABLE : IS_ELEMENT_OF_STR(B,{"m","a"})
+ X : 1
+ 1.000
-set mode ignore_errors
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
+use levitus_climatology
-let a = avet(sst)
-list a
- VARIABLE : AVET(SST)
- FILENAME : coads_climatology.cdf
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- 1S
- 45
- 151E / 66: 29.28
- 153E / 67: 29.39
- 155E / 68: 29.35
- 157E / 69: 29.03
- 159E / 70: 28.99
- 161E / 71: 29.15
- 163E / 72: 29.33
- 165E / 73: 29.01
- 167E / 74: 28.99
- 169E / 75: 29.00
- 171E / 76: 28.81
- 173E / 77: 28.66
- 175E / 78: 28.56
- 177E / 79: 28.79
- 179E / 80: 28.31
-list a - sst[l=@ave]
- VARIABLE : A - SST[L=@AVE]
- FILENAME : coads_climatology.cdf
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 01-JAN 00:45 to 01-APR 08:12
- 1S
- 45
- 151E / 66: 0.000E+00
- 153E / 67: -3.553E-15
- 155E / 68: 0.000E+00
- 157E / 69: 0.000E+00
- 159E / 70: 3.553E-15
- 161E / 71: 7.105E-15
- 163E / 72: 3.553E-15
- 165E / 73: 0.000E+00
- 167E / 74: 0.000E+00
- 169E / 75: 3.553E-15
- 171E / 76: 0.000E+00
- 173E / 77: 3.553E-15
- 175E / 78: 0.000E+00
- 177E / 79: 3.553E-15
- 179E / 80: 3.553E-15
+list is_element_of_str_n (temp.long_name, {"Temperature", "temp"})
+ VARIABLE : IS_ELEMENT_OF_STR_N (TEMP.LONG_NAME, {"Temperature", "temp"})
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ 2.000
-can region
-let a = x[i=1:9,k=1:5] + t[l=1:5]
-let b = x[i=1:9,k=1:5]
-let c = avet(a)
-list b, c
- X: 0.5 to 9.5
- Column 1: B is X[I=1:9,K=1:5]
- Column 2: C is AVET(A)
- B C
-1 / 1: 1.000 4.00
-2 / 2: 2.000 5.00
-3 / 3: 3.000 6.00
-4 / 4: 4.000 7.00
-5 / 5: 5.000 8.00
-6 / 6: 6.000 9.00
-7 / 7: 7.000 10.00
-8 / 8: 8.000 11.00
-9 / 9: 9.000 12.00
+let a = temp.units
+list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
+ VARIABLE : IS_ELEMENT_OF_STR (A, {"Kelvin", "Celsius", "DEG C"})
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ 1.000
-set mode/last ignore_errors
-go bench_pass_thru
-! Bench_pass_thru.jnl
-! ACM 8/99
-! benchmark script for testing external function pass_thru.
-! Note: bench_pass_thru_visual.jnl contains plots of similar computations
-set mode ignore_errors
-can region
-let a = pass_thru(x)
-list a[i=1:20]
- VARIABLE : PASS_THRU(X)
- SUBSET : 20 points (X)
- 1 / 1: 1.00
- 2 / 2: 2.00
- 3 / 3: 3.00
- 4 / 4: 4.00
- 5 / 5: 5.00
- 6 / 6: 6.00
- 7 / 7: 7.00
- 8 / 8: 8.00
- 9 / 9: 9.00
- 10 / 10: 10.00
- 11 / 11: 11.00
- 12 / 12: 12.00
- 13 / 13: 13.00
- 14 / 14: 14.00
- 15 / 15: 15.00
- 16 / 16: 16.00
- 17 / 17: 17.00
- 18 / 18: 18.00
- 19 / 19: 19.00
- 20 / 20: 20.00
-set region/i=1:20
-list sin(a)
- VARIABLE : SIN(A)
- SUBSET : 20 points (X)
- 1 / 1: 0.8415
- 2 / 2: 0.9093
- 3 / 3: 0.1411
- 4 / 4: -0.7568
- 5 / 5: -0.9589
- 6 / 6: -0.2794
- 7 / 7: 0.6570
- 8 / 8: 0.9894
- 9 / 9: 0.4121
- 10 / 10: -0.5440
- 11 / 11: -1.0000
- 12 / 12: -0.5366
- 13 / 13: 0.4202
- 14 / 14: 0.9906
- 15 / 15: 0.6503
- 16 / 16: -0.2879
- 17 / 17: -0.9614
- 18 / 18: -0.7510
- 19 / 19: 0.1499
- 20 / 20: 0.9129
-can var/all
-can region
+GO bn_reset
+cancel mode verify
+GO err693_inconsistent_quote
+! inconsistent interpretation of surrounding double quotes
+! the original source of the problem is in PARSE_COMMAND
+! arg_start and arg_end are set to skip surrounding quotation marks.
+! But since this behavior permeates so many routines it is best to repair
+! the problem in ALL_1_ARG
-use coads_climatology
-let a = pass_thru(sst[l=@ave,y=@sbx:11])
-list/x=50 a
- VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
- FILENAME : coads_climatology.cdf
- SUBSET : 90 points (LATITUDE)
- LONGITUDE: 49E
- TIME : 01-JAN 00:45 to 01-APR 08:12
- 49E
- 15
- 89N / 90: ....
- 87N / 89: ....
- 85N / 88: ....
- 83N / 87: ....
- 81N / 86: ....
- 79N / 85: ....
- 77N / 84: ....
- 75N / 83: ....
- 73N / 82: ....
- 71N / 81: ....
- 69N / 80: ....
- 67N / 79: ....
- 65N / 78: ....
- 63N / 77: ....
- 61N / 76: ....
- 59N / 75: ....
- 57N / 74: ....
- 55N / 73: ....
- 53N / 72: ....
- 51N / 71: ....
- 49N / 70: ....
- 47N / 69: ....
- 45N / 68: ....
- 43N / 67: ....
- 41N / 66: ....
- 39N / 65: ....
- 37N / 64: ....
- 35N / 63: ....
- 33N / 62: ....
- 31N / 61: ....
- 29N / 60: ....
- 27N / 59: ....
- 25N / 58: ....
- 23N / 57: ....
- 21N / 56: ....
- 19N / 55: ....
- 17N / 54: ....
- 15N / 53: ....
- 13N / 52: ....
- 11N / 51: ....
- 9N / 50: ....
- 7N / 49: ....
- 5N / 48: 26.94
- 3N / 47: 27.22
- 1N / 46: 27.48
- 1S / 45: 27.67
- 3S / 44: 27.78
- 5S / 43: 27.92
- 7S / 42: 28.04
- 9S / 41: 28.12
- 11S / 40: 28.18
- 13S / 39: 28.14
- 15S / 38: 28.03
- 17S / 37: 27.82
- 19S / 36: 27.45
- 21S / 35: 27.04
- 23S / 34: 26.52
- 25S / 33: 25.86
- 27S / 32: 25.09
- 29S / 31: 24.17
- 31S / 30: 23.04
- 33S / 29: 21.37
- 35S / 28: 19.60
- 37S / 27: 17.68
- 39S / 26: 15.76
- 41S / 25: 13.87
- 43S / 24: 11.98
- 45S / 23: 10.18
- 47S / 22: 8.45
- 49S / 21: 6.82
- 51S / 20: 5.33
- 53S / 19: 4.03
- 55S / 18: 3.19
- 57S / 17: 2.42
- 59S / 16: ....
- 61S / 15: ....
- 63S / 14: ....
- 65S / 13: ....
- 67S / 12: ....
- 69S / 11: ....
- 71S / 10: ....
- 73S / 9: ....
- 75S / 8: ....
- 77S / 7: ....
- 79S / 6: ....
- 81S / 5: ....
- 83S / 4: ....
- 85S / 3: ....
- 87S / 2: ....
- 89S / 1: ....
-let a = pass_thru(sst)
-set region/@w
-list/x=50 a[l=1]
- VARIABLE : PASS_THRU(SST)
- FILENAME : coads_climatology.cdf
- SUBSET : 90 points (LATITUDE)
- LONGITUDE: 49E
- TIME : 16-JAN 06:00
- 49E
- 15
- 89N / 90: ....
- 87N / 89: ....
- 85N / 88: ....
- 83N / 87: ....
- 81N / 86: ....
- 79N / 85: ....
- 77N / 84: ....
- 75N / 83: ....
- 73N / 82: 0.59
- 71N / 81: 0.62
- 69N / 80: 0.45
- 67N / 79: ....
- 65N / 78: ....
- 63N / 77: ....
- 61N / 76: ....
- 59N / 75: ....
- 57N / 74: ....
- 55N / 73: ....
- 53N / 72: ....
- 51N / 71: ....
- 49N / 70: ....
- 47N / 69: ....
- 45N / 68: 3.32
- 43N / 67: 4.72
- 41N / 66: 4.84
- 39N / 65: 8.63
- 37N / 64: 8.07
- 35N / 63: ....
- 33N / 62: ....
- 31N / 61: ....
- 29N / 60: 18.91
- 27N / 59: 20.83
- 25N / 58: ....
- 23N / 57: ....
- 21N / 56: ....
- 19N / 55: ....
- 17N / 54: ....
- 15N / 53: 25.41
- 13N / 52: 25.37
- 11N / 51: 25.82
- 9N / 50: 27.20
- 7N / 49: 26.11
- 5N / 48: 26.10
- 3N / 47: 26.25
- 1N / 46: 26.44
- 1S / 45: 27.01
- 3S / 44: 27.61
- 5S / 43: 28.24
- 7S / 42: 28.71
- 9S / 41: 28.46
- 11S / 40: 28.07
- 13S / 39: 28.15
- 15S / 38: 28.08
- 17S / 37: 28.29
- 19S / 36: 27.61
- 21S / 35: 27.59
- 23S / 34: 27.06
- 25S / 33: 26.70
- 27S / 32: 25.89
- 29S / 31: 24.65
- 31S / 30: 23.86
- 33S / 29: 22.16
- 35S / 28: 20.58
- 37S / 27: 19.20
- 39S / 26: 17.51
- 41S / 25: 14.44
- 43S / 24: 8.55
- 45S / 23: 7.51
- 47S / 22: 5.77
- 49S / 21: 4.21
- 51S / 20: 3.64
- 53S / 19: 2.87
- 55S / 18: 2.67
- 57S / 17: 2.05
- 59S / 16: 1.37
- 61S / 15: 1.33
- 63S / 14: 0.77
- 65S / 13: -0.04
- 67S / 12: -0.93
- 69S / 11: ....
- 71S / 10: ....
- 73S / 9: ....
- 75S / 8: ....
- 77S / 7: ....
- 79S / 6: ....
- 81S / 5: ....
- 83S / 4: ....
- 85S / 3: ....
- 87S / 2: ....
- 89S / 1: ....
-list/x=50 a[l=@ave,y=@sbx:11]
- VARIABLE : PASS_THRU(SST)
- box smoothed by 11 pts on Y
- FILENAME : coads_climatology.cdf
- SUBSET : 90 points (LATITUDE)
- LONGITUDE: 49E
- TIME : 01-JAN 00:45 to 01-APR 08:12 (averaged)
- 49E
- 15
- 89N / 90: ....
- 87N / 89: ....
- 85N / 88: ....
- 83N / 87: ....
- 81N / 86: ....
- 79N / 85: ....
- 77N / 84: ....
- 75N / 83: ....
- 73N / 82: ....
- 71N / 81: ....
- 69N / 80: ....
- 67N / 79: ....
- 65N / 78: ....
- 63N / 77: ....
- 61N / 76: ....
- 59N / 75: ....
- 57N / 74: ....
- 55N / 73: ....
- 53N / 72: ....
- 51N / 71: ....
- 49N / 70: ....
- 47N / 69: ....
- 45N / 68: ....
- 43N / 67: ....
- 41N / 66: ....
- 39N / 65: ....
- 37N / 64: ....
- 35N / 63: ....
- 33N / 62: ....
- 31N / 61: ....
- 29N / 60: ....
- 27N / 59: ....
- 25N / 58: ....
- 23N / 57: ....
- 21N / 56: ....
- 19N / 55: ....
- 17N / 54: ....
- 15N / 53: ....
- 13N / 52: ....
- 11N / 51: ....
- 9N / 50: ....
- 7N / 49: ....
- 5N / 48: 26.94
- 3N / 47: 27.22
- 1N / 46: 27.48
- 1S / 45: 27.67
- 3S / 44: 27.78
- 5S / 43: 27.92
- 7S / 42: 28.04
- 9S / 41: 28.12
- 11S / 40: 28.18
- 13S / 39: 28.14
- 15S / 38: 28.03
- 17S / 37: 27.82
- 19S / 36: 27.45
- 21S / 35: 27.04
- 23S / 34: 26.52
- 25S / 33: 25.86
- 27S / 32: 25.09
- 29S / 31: 24.17
- 31S / 30: 23.04
- 33S / 29: 21.37
- 35S / 28: 19.60
- 37S / 27: 17.68
- 39S / 26: 15.76
- 41S / 25: 13.87
- 43S / 24: 11.98
- 45S / 23: 10.18
- 47S / 22: 8.45
- 49S / 21: 6.82
- 51S / 20: 5.33
- 53S / 19: 4.03
- 55S / 18: 3.19
- 57S / 17: 2.42
- 59S / 16: ....
- 61S / 15: ....
- 63S / 14: ....
- 65S / 13: ....
- 67S / 12: ....
- 69S / 11: ....
- 71S / 10: ....
- 73S / 9: ....
- 75S / 8: ....
- 77S / 7: ....
- 79S / 6: ....
- 81S / 5: ....
- 83S / 4: ....
- 85S / 3: ....
- 87S / 2: ....
- 89S / 1: ....
-set mode/last ignore_errors
-go bench_storage
-! Bench_storage.jnl
-! ACM 8/99
-! benchmark script for testing external function storage.
-! Note: bench_storage_visual.jnl contains plots of similar computations
+let foobar = 1
+LIST "foobar", "foobar" ! this is correct - list as strings
+ Column 1: str is "foobar"
+ Column 2: str is "foobar"
+ str str
+I / *: "foobar" "foobar"
+LIST "foobar" ! error: lists the value instead
+ VARIABLE : "foobar"
+ "foobar"
-set mode ignore_errors
+! IF-THEN flow tests
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2214
+! bug 2214
+! If we put the "say hi" in parentheses, this seems to work.
+! But parentheses haven't previously been required, so there are a lot of
+! scripts that don't have them.
-use gtsa056_1
-let a = storage(temp)
-set region/k=1/l=5/i=1:2/j=44:50
-list a
- VARIABLE : STORAGE(TEMP)
- FILENAME : gtsa056_1.cdf
- SUBSET : 2 by 7 points (LONGITUDE-LATITUDE)
- DEPTH (m): 5
- TIME : 27-JAN-1982 18:00
- 130.5E 131.5E
- 1 2
- 1.5N / 50: .... 2.955
- 1.17N / 49: .... 2.962
- 0.83N / 48: .... 2.966
- 0.5N / 47: .... 2.973
- 0.17N / 46: .... 2.985
- 0.17S / 45: .... 2.990
- 0.5S / 44: .... ....
+* 12/14 note (sh) - Ferret handles this situation correctly because
+* PARSE_COMMAND acts on the semi-colons in the full command line *before*
+* it acts on the "IF". Thus the thress semicolon-connected commands
+* follow the same logical path through Ferret as if they were separated
+* onto three lines
-can region
-set region/x=140w/y=10n/k=1
-list a
- VARIABLE : STORAGE(TEMP)
- FILENAME : gtsa056_1.cdf
- SUBSET : 5 points (TIME)
- LONGITUDE: 140.5W
- LATITUDE : 9.8N
- DEPTH (m): 5
- 140.5W
- 90
- 15-JAN-1982 14 / 1: 2.656
- 18-JAN-1982 15 / 2: 2.654
- 21-JAN-1982 16 / 3: 2.652
- 24-JAN-1982 17 / 4: 2.649
- 27-JAN-1982 18 / 5: 2.646
+IF 0 THEN; rep/i=1:1 say ERROR; ENDIF
-can region
+IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF
+!-> REPEAT: I=1
+CORRECT
-let b = temp[x=140e:60w]
-let c = storage(b)
-list/i=11:20 c[k=1,l=5,j=44:50 at ave]
- VARIABLE : STORAGE(B)
- FILENAME : gtsa056_1.cdf
- SUBSET : 10 points (LONGITUDE)
- LATITUDE : 0.7S to 1.7N (averaged)
- DEPTH (m): 5
- TIME : 27-JAN-1982 18:00
- 140.5E / 11: 2.953
- 141.5E / 12: 2.956
- 142.5E / 13: 2.961
- 143.5E / 14: 2.966
- 144.5E / 15: 2.968
- 145.5E / 16: 2.968
- 146.5E / 17: 2.967
- 147.5E / 18: 2.970
- 148.5E / 19: 2.974
- 149.5E / 20: 2.979
+(IF 0 THEN; rep/i=1:1 say ERROR; ENDIF)
-set mode/last ignore_errors
+(IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF)
+!-> REPEAT: I=1
+CORRECT
-go bench_subtract
-! Bench_subtract.jnl
-! ACM 8/99
-! benchmark script for testing external function subtract.
-! Note: bench_subtract_visual.jnl contains plots of similar computations
-! V550 *sh* 11/02 - documentation note only reflecting subspan modulo
+!yes? quit
+!yes? quit
+!yes? ^Z
+!Suspended
-set mode ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2211
+! bug #2211
+
+
+IF 0 THEN
+ELSE
+ exit/script
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1860
+! from bug 1860
+! continue line found within grave accents
+
+CANCEL MODE VERIFY
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1446
+! testing ticket 1446
+
+! the presence of a tab preceding the "!" comment caused a parsing error
+
+! the behavior of this even in v69+ today is problematic in that
+! it echos an ENDIF statement that should be a plain old skip
+
+IF 0 THEN
+ENDIF
+
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1681
+! testing ticker 1681
+
+!The third block of the following script issues an error:
+!ERROR: invalid command: ENDIF can only be used in an IF clause
+!
+!Looks like a parsing bug -- it seems the ENDIF inside the REPEAT is being
+!applied to the outermost IF. Note that the error goes away if we change
+!the outer 0 to a 1.
+
+
+say "test1"
+test1
+if 0 then
+endif
+
+say "test2"
+test2
+if 0 then
+endif
+
+say "test3"
+test3
+if 0 then
+endif
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1706
+! testing ticket 1706
+!
+def sym a say hi\\; say hi
+
+IF 0 THEN
+ENDIF
+
+! some versions (not v550 but yes v63 but not v6301) fail to say "here"
+IF 1 THEN
+ say here
+here
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1368 ! Jan 28, 2010, Ferret version 5.812
+! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
+
+! this is still a bug in V69+
+! the initial IF command is not being closed by the first ENDIF
+! it is skipping down to the elif command
+
+define symbol xend 180
+let key_flag = 0
+
+! test 1 - line 1 false condition should suppress both outputs
+IF `($xend) GT 360` THEN
+ !-> IF 0 THEN
+ENDIF
+
+
+! test 2 - line 1 false condition should cause else clause - "point G"
+let dxymin = 0.20
+if `dxymin lt 0.12` then
+ !-> if 0 then
+elif `dxymin lt 0.25` then
+ !-> elif 1 then
+ SAY "CORRECT. this message should display"
+CORRECT. this message should display
+endif
+
+! test 3 - this is from bug #918 -- looks like the same bug as #1368
+IF 0 THEN
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_start_missing
+! err693_ribbon_start_missing
+! 1/6/2015 ACM
+!
+! Bug 2226: If data starts with a missing-value and we're using (-inf) then
+! the ribbon plot started with the lowest color instead of plotting as for missing
+! Only the cases starting with missing data were incorrect previous to fixing this bug.
+
+DEFINE SYMBOL ribbon_command = PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3
+
+let/units=degrees_east xvar = {-177,-174,-186}
+let/units=degrees_north yvar = {-43, -45, -42}
+let vvar = {,271, 319}
+! This previously started with purple, not a gray missing-value point
+($ribbon_command)/title="(-inf) in levels" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="(-inf) in levels" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,,271,319}
+($ribbon_command)/title="start with several missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with several missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,271,319,1000}
+($ribbon_command)/title="end large positive value" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end large positive value" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,271,319,1000,}
+($ribbon_command)/title="end with large positive and missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end with large positive and missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {1.e7,,,271,319}
+($ribbon_command)/title="start with large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with large positive" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,1.e7,,271,319}
+($ribbon_command)/title="start with missing then large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with missing then large positive" xvar,yvar,vvar
+
+
+GO bn_reset
+cancel mode verify
+GO err691_pt_in_poly
+! err691_pt_in_poly
+! ticket 1961: modulo longitude for pt_in_poly
+! and sending subset of the xy field
-can region
-use ocean_atlas_temp
use coads_climatology
-let oatemp = temp[d=ocean_atlas_temp,g=sst[d=coads_climatology]]
-set region/l=1
-let a = subtract(oatemp,sst)
-list/x=150:160/y=0 a
- VARIABLE : SUBTRACT(OATEMP,SST)
- FILENAME : coads_climatology.cdf
- SUBSET : 5 points (LONGITUDE)
- LATITUDE : 1S
- DEPTH (m): 0
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 0.0233
- 153E / 67: 0.0346
- 155E / 68: 0.1315
- 157E / 69: 0.2809
- 159E / 70: 0.2610
-let b = oatemp- sst
-list/x=150:160/y=0 a - b
- VARIABLE : A - B
- FILENAME : coads_climatology.cdf
- SUBSET : 5 points (LONGITUDE)
- LATITUDE : 1S
- DEPTH (m): 0
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 0.0000
- 153E / 67: 0.0000
- 155E / 68: 0.0000
- 157E / 69: 0.0000
- 159E / 70: 0.0000
-can region
-let a = oatemp[l=1]
-let b = sst[l=1]
-list/x=150:160/y=0 subtract(a,b)
- VARIABLE : SUBTRACT(A,B)
- FILENAME : coads_climatology.cdf
- SUBSET : 5 points (LONGITUDE)
- LATITUDE : 1S
- DEPTH (m): 0
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 0.0233
- 153E / 67: 0.0346
- 155E / 68: 0.1315
- 157E / 69: 0.2809
- 159E / 70: 0.2610
-
-let a = oatemp[x=180]
-let b = sst[x=180]
-list/y=0 subtract(a,b)
- VARIABLE : SUBTRACT(A,B)
+let xpts = {64,81,81,82,88,88,79,79,76,73,68,64}
+let ypts = {31,30,29,29,27,24,20,19,20,25,27,31}
+
+let pts = pt_in_poly(sst[L=5,x=60:90,y=15:35], xpts, ypts)
+shade/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
FILENAME : coads_climatology.cdf
- SUBSET : 3 points (TIME)
- LONGITUDE: 179E
- LATITUDE : 1S
- DEPTH (m): 0
- 179E
- 80
- 16-JAN / 1: 0.1934
- 15-FEB / 2: 0.1304
- 17-MAR / 3: ....
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
-can region
-let a = x[i=1:30]
-let b = y[j=1:30]
-list/y=15 subtract(a,b) ! pre: V550 this gave a valid MARCH. Valid behavior chg in V550
- VARIABLE : SUBTRACT(A,B)
- SUBSET : 30 points (X)
- Y : 15
- 15
- 15
- 1 / 1: -14.00
- 2 / 2: -13.00
- 3 / 3: -12.00
- 4 / 4: -11.00
- 5 / 5: -10.00
- 6 / 6: -9.00
- 7 / 7: -8.00
- 8 / 8: -7.00
- 9 / 9: -6.00
- 10 / 10: -5.00
- 11 / 11: -4.00
- 12 / 12: -3.00
- 13 / 13: -2.00
- 14 / 14: -1.00
- 15 / 15: 0.00
- 16 / 16: 1.00
- 17 / 17: 2.00
- 18 / 18: 3.00
- 19 / 19: 4.00
- 20 / 20: 5.00
- 21 / 21: 6.00
- 22 / 22: 7.00
- 23 / 23: 8.00
- 24 / 24: 9.00
- 25 / 25: 10.00
- 26 / 26: 11.00
- 27 / 27: 12.00
- 28 / 28: 13.00
- 29 / 29: 14.00
- 30 / 30: 15.00
+! Put the xpts on different modulo branches
+! Previously the list commands would have listed -1,-1
-can region
-let a = sst[l=1]
-let b = 26
-list/x=150:160/y=0 subtract(a,b)
- VARIABLE : SUBTRACT(A,B)
- FILENAME : coads_climatology.cdf
- SUBSET : 5 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 3.416
- 153E / 67: 3.431
- 155E / 68: 3.334
- 157E / 69: 3.190
- 159E / 70: 3.219
-list/x=150:160/y=0 subtract(a,26)
- VARIABLE : SUBTRACT(A,26)
+let xpts0 = {64,81,81,82,88,88,79,79,76,73,68,64}
+let/title=lon/units=degrees_east xpts = xpts0 + 360
+
+shade/title="Plus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
FILENAME : coads_climatology.cdf
- SUBSET : 5 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 3.416
- 153E / 67: 3.431
- 155E / 68: 3.334
- 157E / 69: 3.190
- 159E / 70: 3.219
-
-let b = sst[x=180,y=0,l=@ave]
-list/x=150:160/y=0 subtract(a,b)
- VARIABLE : SUBTRACT(A,B)
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
+
+let/title=lon/units=degrees_east xpts = xpts0 - 360
+
+shade/title="Minus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
FILENAME : coads_climatology.cdf
- SUBSET : 5 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 01-JAN 00:45 to 01-APR 08:12
- 1S
- 45
- 151E / 66: 1.109
- 153E / 67: 1.124
- 155E / 68: 1.027
- 157E / 69: 0.883
- 159E / 70: 0.912
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
-set mode/last ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_undetected_regrid_dset
+! err693_undetected_regrid_dset.jnl - Jan 2015
+! in GET_CONTEXT_MODS no check is made whether dataset name/number is
+! valid following "gdset = FIND_DSET_NUMBER( name(dstart:dend) )"
+use coads_climatology
+use levitus_climatology ! default to d=2
+
+canc var/all
+let myvar = temp
+let a = myvar[g=temp[d=bad_d]] ! THIS SHOULD BE DETECTED AS AN ERROR
+
+set mode ignore
+stat/l=1/x=180/y=0 a ! this *SHOULD* trigger an error. Yes. Detect it.
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err693_line_over_axis
+! Ticket 2232: line plots overlaid the plot axes
+show mode meta
+ MODE STATE ARGUMENT
+ METAFILE CANCELLED metafile.plt
+! line plot with /VS draw on top of the axes
+let xval = {0.0, 0.2, 1.0, 0.8, 0}
+let yval = {0.0, 1.1, 1.1, 0.0, 0}
+plot/vs/line/thick=3/color=lightblue xval, yval
+
+! any line overlay may draw on the axes
+let xval = {0.0, 0.0, 0.8, 0.2, 0}
+let yval = {0.1, 1.2, 1.2, 0.1, 0.1}
+plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
-!!!!!!!!!!!!!!!!!!!!!!
-!
-! YAY!! End of bench_examples.jnl without crashing!!!!
-!
-!!!!!!!!!!!!!!!!!!!!!!
-! Ansley's benchmarks
-! move bench tests that test internal external functions to their
-! own .jnl file bn_internal_external_functions
+GO bn_reset
+cancel mode verify
+GO err693_save_packed
+! err693_save_packed.jnl
+! ticket 2240: bug writing multiple vars with one SAVE when scaled
!
-! 4/2006 all efs distributed with Ferret except writev5d and the
-! examples tested in bench_examples.jnl are now internally linked.
+! Previously saw a netcdf error because first variable was mis-scaled on writing.
+
+use err693_save_packed.nc
+save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
GO bn_reset
cancel mode verify
-go bench_v5d
-! benchmark for Vis5D external function
-! 5/99 ACM
+GO err693_subspan_trans
+! err693_subspan_trans
+! bug 2241 3/9/2015
+
+use coads_climatology
+let a = sst[x=120:284,y=-2:2 at ave,t=@ave]
+save/clob/file=a.nc a
+can var a
+use a
+set reg/x=25:385
+let b = a[x=@min]
+set mode diag
+say `a[x=@min]`
+ getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ strip --> A[X=25E:25E(385)@MIN,D=2]
+ strip moduloing A on X axis: 0 83 dset: 2
+ reading A M: 48 dset: 2 I: 1 82 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ doing moduloing A on X axis: 1 82 dset: 2
+ doing --> A[X=25E:25E(385)@MIN,D=2]
+ -DELETE A M: 78 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+! This previously resulted in an error.
+say `b`
+ dealloc dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ getgrid B C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval B C: 6 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ strip --> A[X=25E:25E(385)@MIN,D=2]
+ strip moduloing A on X axis: 0 83 dset: 2
+ reading A M: 78 dset: 2 I: 1 82 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ doing moduloing A on X axis: 1 82 dset: 2
+ doing --> A[X=25E:25E(385)@MIN,D=2]
+ -DELETE B M: 80 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
-! Write data to a Vis5D file. The first argument to the
-! GO script is the file, arguments 2 through 9 are variable names to be written.
-! 7/2007 Funtion doesnt want to write a variable that doesnt have a vertical variation.
-! To get a basic test of the function, make some data on a regularly-spaced xy grid.
+can mode diag
-can region
- set mode ignore_error
+! What if the region for @MIN is in the saved portion?
+say `a[x=150:200 at min]`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+let b = a[x=150:200 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+
+! What if the region for @MIN extends beyond the saved portion?
+say `a[x=200:300 at min]`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+let b = a[x=200:300 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+! What if the region for @MIN is outside the saved portion?
+say `a[x=300:385 at min]`
+ !-> MESSAGE/CONTINUE bad
+bad
+let b = a[x=300:385 at min]
+say `b`
+ !-> MESSAGE/CONTINUE bad
+bad
+
+
+GO bn_reset
+cancel mode verify
+GO err693_repeat_err
+! err693_repeat_err.jnl
+! test fix for ticket 2244: Error handling in REPEAT
+
+! The second of these should result in an error - in debug mode
+! it instead was hitting an out-of-range subscript error.
+
+repeat/range=1:2/name=column repeat/range=1:2/name=row say `column`,`row`
+!-> REPEAT: COLUMN:1
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 1,1
+1,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 1,2
+1,2
+!-> REPEAT: COLUMN:2
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 2,1
+2,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 2,2
+2,2
-use gt4d011.cdf
-def axis/y=1:100:1/units=degrees yax
-let tr = temp[gy=yax at asn]
-go vis5d_write " " tr
-To view the file with Vis5D say: GO vis5d_start vis5d_out.v5d
+set mode ignore
+repeat/range=1:2/name=column repeat/range=1:2/name=row
+!-> REPEAT: COLUMN:1
+!-> REPEAT: COLUMN:2
+set mode/last ignore
-set mode/last ignore_error
+GO bn_reset
+cancel mode verify
+GO err693_edit_useratt
+! err693_edit_useratt.jnl
+! ticket 2249: set attribute properties for user-defined variable
+
+use err491_attval.cdf
+list/x=135.402W:135.321W/y=58.609 elev
+ VARIABLE : Surface elevation (meter)
+ DATA SET : K-Bay OAR3d model (200m)
+ FILENAME : err491_attval.cdf
+ SUBSET : 7 points (LONGITUDE)
+ LATITUDE : 58.61N (interpolated)
+ T (day) : 1.7837
+ 135.402W / 45: ....
+ 135.389W / 46: ....
+ 135.375W / 47: ....
+ 135.362W / 48: 2.953
+ 135.348W / 49: 2.953
+ 135.335W / 50: 2.950
+ 135.321W / 51: 2.953
+
+
+! Rename the file variable, define a variable using its name
+set var/name=elev_in elev
+let elev = missing(elev_in, -1.e34)
+
+! Inherit attributes from the file variable.
+! cancel writing the scale attributes
+set att/like=elev_in elev
+can att/output elev.scale_factor
+can att/output elev.add_offset
+
+! set the bad-flag (can't do this before the SET ATT/LIKE
+set var/bad=-1.e34 elev
+
+! save
+save/clobber/file=a.nc elev
+can var/all
+use a.nc
+list/x=135.402W:135.321W/y=58.609 elev
+ VARIABLE : Surface elevation (meter)
+ FILENAME : a.nc
+ SUBSET : 7 points (LONGITUDE)
+ LATITUDE : 58.61N (interpolated)
+ T (day) : 1.7837
+ 135.402W / 45: ....
+ 135.389W / 46: ....
+ 135.375W / 47: ....
+ 135.362W / 48: 2.953
+ 135.348W / 49: 2.953
+ 135.335W / 50: 2.950
+ 135.321W / 51: 2.953
GO bn_reset
cancel mode verify
-GO bn_ef_v5d_strings.jnl
-! bn_ef_v5d_strings.jnl
-! Taken out of bn_strings, because it calls so file writev5d.
-! testing string argument to external function.
-! 5/4/05 acm
-exit/script ! I dont have writev5d on this machine.
+GO err693_redef_rec_axis
+! err693_redef_rec_axis.jnl
+! ticket 2271. Redefining the record axis meant
+! that SHOW AXIS/FULL couldnt get the time axis info
-go bn_reset
+define axis/x=1:5:1 xax
+define axis/y=2:10:2 yax
+define axis/t=1:7:1 tredef
+let var = x[gx=xax] + y[gy=yax] + t[gt=tredef]
+save/clobber/file=a.nc var
+
+can var/all
+can axis xax
+can axis yax
+can axis tredef
+
+use a.nc
+define axis/t=1:7:1/units=days/t0=1-jan-2000 tredef
+
+! Previously the output had time range: ???
+show data/full
+ currently SET data sets:
+ 1> ./a.nc (default)
+
+ name title I J K L M N
+ VAR X[GX=XAX] + Y[GY=YAX] + T[GT=TR 1:5 1:5 ... 1:7 ... ...
+ on grid GSI1 with -1.E+34 for missing data
+ X=0.5:5.5 Y=1:11
+
+ time range: 02-JAN-2000 00:00 to 08-JAN-2000 00:00
+
+
+GO bn_reset
cancel mode verify
-go bn_fcn_calls.jnl
-! Simple tests of external functions
-! these are not otherwise tested in the benchmarkd
-! ACM 23-Aug-2006
-! 05/07 *acm* move tests of date1900, tax_* functions and
-! fill_xy to bn_internal_external_functions.jnl
+GO err693_frame_types
+! bn_frame_types.jnl
+! Ticket 2275
+! The default file type for FRAME was still HDF
-exit
+set mode ignore
-exit/command
+use coads_climatology
+shade/l=1 sst
------
-Appending ncdump output
+! This issued an error and quit
+frame/format=hdf/file=a.hdf
-err491_dp_time_write.jnl --- 1 original file
-netcdf out {
-dimensions:
- T5 = UNLIMITED ; // (1 currently)
-variables:
- double T5(T5) ;
- T5:units = "min since 1901-01-15 00:00:00" ;
- T5:axis = "T" ;
- T5:calendar = "GREGORIAN" ;
- T5:time_origin = "15-JAN-1901" ;
- T5:standard_name = "time" ;
- double MY_VAR(T5) ;
- MY_VAR:missing_value = -1.e+34 ;
- MY_VAR:_FillValue = -1.e+34 ;
- MY_VAR:long_name = "T[GT=T5]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- T5 = 50757969 ;
-
- MY_VAR = 50757969 ;
-}
-err491_dp_time_write.jnl --- 2 after append
-netcdf out {
-dimensions:
- T5 = UNLIMITED ; // (2 currently)
-variables:
- double T5(T5) ;
- T5:units = "min since 1901-01-15 00:00:00" ;
- T5:axis = "T" ;
- T5:calendar = "GREGORIAN" ;
- T5:time_origin = "15-JAN-1901" ;
- T5:standard_name = "time" ;
- double MY_VAR(T5) ;
- MY_VAR:missing_value = -1.e+34 ;
- MY_VAR:_FillValue = -1.e+34 ;
- MY_VAR:long_name = "T[GT=T5]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- T5 = 50757969, 50757974 ;
-
- MY_VAR = 50757969, 50757974 ;
-}
-bn_strings.jnl --- 1 original file
-netcdf test_string {
-dimensions:
- XAX1_3 = 3 ;
- STRING1_10 = 10 ;
- STRING1_16 = 16 ;
-variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- char A(XAX1_3, STRING1_10) ;
- A:long_name = "{\"hello\",\"goodbye\", \"wave to me\"}" ;
- char B(STRING1_16) ;
- B:long_name = "\"one line of text\"" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- A =
- "hello",
- "goodbye",
- "wave to me" ;
-
- B = "one line of text" ;
-}
-bn_strings.jnl --- 2 append to file
-bn_strings.jnl --- 3 enhanced heading
-netcdf test_string {
-dimensions:
- grid_definition = 1 ;
- XAX1_19 = 19 ;
- XAX1_192_5 = 4 ;
- STRING1_17 = 17 ;
-variables:
- char GFP3(grid_definition) ;
- GFP3:axes = "XAX1_19 NORMAL NORMAL NORMAL NORMAL NORMAL" ;
- double XAX1_19(XAX1_19) ;
- XAX1_19:point_spacing = "even" ;
- XAX1_19:axis = "X" ;
- double XAX1_192_5(XAX1_192_5) ;
- XAX1_192_5:child_axis = " " ;
- XAX1_192_5:point_spacing = "even" ;
- XAX1_192_5:axis = "X" ;
- char D(XAX1_192_5, STRING1_17) ;
- D:parent_grid = "GFP3" ;
- D:slab_min_index = 2, 1, 1, 1 ;
- D:slab_max_index = 5, 1, 1, 1 ;
- D:long_name = "partial filename list" ;
- D:history = "From test_string" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- GFP3 = "" ;
-
- XAX1_19 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ;
-
- XAX1_192_5 = 2, 3, 4, 5 ;
-
- D =
- "dummy1.str_test",
- "dummy2.str_test",
- "dummy3.str_test",
- "dummy4.str_test" ;
-}
-bn_strings.jnl --- 4 sample and ysequence functions on string var
-netcdf foo {
-dimensions:
- XAX1_4 = 4 ;
- STRING1_1 = 1 ;
- YAX1_3 = 3 ;
-variables:
- double XAX1_4(XAX1_4) ;
- XAX1_4:point_spacing = "even" ;
- XAX1_4:axis = "X" ;
- char A(XAX1_4, STRING1_1) ;
- A:long_name = "{\"a\",,\" \",\"\"}" ;
- double YAX1_3(YAX1_3) ;
- YAX1_3:point_spacing = "even" ;
- YAX1_3:axis = "Y" ;
- char B(YAX1_3, STRING1_1) ;
- B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX1_4 = 1, 2, 3, 4 ;
-
- A =
- "a",
- "",
- " ",
- "" ;
-
- YAX1_3 = 1, 2, 3 ;
-
- B =
- "b",
- "",
- "a" ;
-}
-err550_nc_seconds.jnl --- seconds of time axis
- TIME:time_origin = "10-JUN-1996 04:03:36" ;
-bn_bounds.jnl --- 1 output of bounds on irreg axes.
-netcdf a {
-dimensions:
- MONTH_IRREG = UNLIMITED ; // (12 currently)
- bnds = 2 ;
-variables:
- double MONTH_IRREG(MONTH_IRREG) ;
- MONTH_IRREG:units = "days since 0000-01-01 00:00:00" ;
- MONTH_IRREG:time_origin = "01-JAN-0000 00:00:00" ;
- MONTH_IRREG:modulo = " " ;
- MONTH_IRREG:axis = "T" ;
- MONTH_IRREG:standard_name = "time" ;
- MONTH_IRREG:bounds = "MONTH_IRREG_bnds" ;
- double MONTH_IRREG_bnds(MONTH_IRREG, bnds) ;
- double V(MONTH_IRREG) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "T[GT=MONTH_IRREG]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- MONTH_IRREG = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425,
- 196.7425, 227.7425, 258.2425, 288.7425, 319.2425, 349.7425 ;
-
- MONTH_IRREG_bnds =
- 0, 31,
- 31, 59.2425,
- 59.2425, 90.2425,
- 90.2425, 120.2425,
- 120.2425, 151.2425,
- 151.2425, 181.2425,
- 181.2425, 212.2425,
- 212.2425, 243.2425,
- 243.2425, 273.2425,
- 273.2425, 304.2425,
- 304.2425, 334.2425,
- 334.2425, 365.2425 ;
-
- V = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425, 196.7425,
- 227.7425, 258.2425, 288.7425, 319.2425, 349.7425 ;
-}
-bn_bounds.jnl --- 2 long irreg axes.
-netcdf a {
-dimensions:
- COADSX90_90 = 1 ;
- COADSY66_66 = 1 ;
- TCOADS = UNLIMITED ; // (5 currently)
- bnds = 2 ;
-variables:
- double COADSX90_90(COADSX90_90) ;
- COADSX90_90:units = "degrees_east" ;
- COADSX90_90:modulo = " " ;
- COADSX90_90:point_spacing = "even" ;
- COADSX90_90:axis = "X" ;
- COADSX90_90:standard_name = "longitude" ;
- double COADSY66_66(COADSY66_66) ;
- COADSY66_66:units = "degrees_north" ;
- COADSY66_66:point_spacing = "even" ;
- COADSY66_66:axis = "Y" ;
- COADSY66_66:standard_name = "latitude" ;
- double TCOADS(TCOADS) ;
- TCOADS:units = "days since 1700-01-01 00:00:00" ;
- TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
- TCOADS:axis = "T" ;
- TCOADS:standard_name = "time" ;
- TCOADS:bounds = "TCOADS_bnds" ;
- double TCOADS_bnds(TCOADS, bnds) ;
- double V(TCOADS, COADSY66_66, COADSX90_90) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "MISSING(VWND,28.5)" ;
- V:history = "From coads_vwnd" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- COADSX90_90 = 199 ;
-
- COADSY66_66 = 41 ;
-
- TCOADS = 91050, 91080.5, 91111, 91141.5, 91172.5 ;
-
- TCOADS_bnds =
- 91035, 91065,
- 91065, 91096,
- 91096, 91126,
- 91126, 91157,
- 91157, 91188 ;
-
- V =
- 4,
- 1.94999992847443,
- 4.25,
- 1.6599999666214,
- -0.129999995231628 ;
-}
-bn_bounds.jnl --- 3 Append later time steps, adding a void point
-netcdf a {
-dimensions:
- COADSX90_90 = 1 ;
- COADSY66_66 = 1 ;
- TCOADS = UNLIMITED ; // (10 currently)
- bnds = 2 ;
-variables:
- double COADSX90_90(COADSX90_90) ;
- COADSX90_90:units = "degrees_east" ;
- COADSX90_90:modulo = " " ;
- COADSX90_90:point_spacing = "even" ;
- COADSX90_90:axis = "X" ;
- COADSX90_90:standard_name = "longitude" ;
- double COADSY66_66(COADSY66_66) ;
- COADSY66_66:units = "degrees_north" ;
- COADSY66_66:point_spacing = "even" ;
- COADSY66_66:axis = "Y" ;
- COADSY66_66:standard_name = "latitude" ;
- double TCOADS(TCOADS) ;
- TCOADS:units = "days since 1700-01-01 00:00:00" ;
- TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
- TCOADS:axis = "T" ;
- TCOADS:standard_name = "time" ;
- TCOADS:bounds = "TCOADS_bnds" ;
- double TCOADS_bnds(TCOADS, bnds) ;
- double V(TCOADS, COADSY66_66, COADSX90_90) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "MISSING(VWND,28.5)" ;
- V:history = "From coads_vwnd" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- COADSX90_90 = 199 ;
-
- COADSY66_66 = 41 ;
-
- TCOADS = 91050, 91080.5, 91111, 91141.5, 91172.5, 91264.5, 91355, 91384.5,
- 91415, 91445.5 ;
-
- TCOADS_bnds =
- 91035, 91065,
- 91065, 91096,
- 91096, 91126,
- 91126, 91157,
- 91157, 91188,
- 91188, 91341,
- 91341, 91369,
- 91369, 91400,
- 91400, 91430,
- 91430, 91461 ;
-
- V =
- 4,
- 1.94999992847443,
- 4.25,
- 1.6599999666214,
- -0.129999995231628,
- _,
- -1.0699999332428,
- 3.35999989509583,
- -3.86999988555908,
- 3.93999981880188 ;
-}
-bn_bounds.jnl --- 4 depth axis, bounds positive up
-netcdf a {
-dimensions:
- ZIRR = 4 ;
- bnds = 2 ;
-variables:
- double ZIRR(ZIRR) ;
- ZIRR:units = "meters" ;
- ZIRR:point_spacing = "uneven" ;
- ZIRR:axis = "Z" ;
- ZIRR:bounds = "ZIRR_bnds" ;
- ZIRR:positive = "down" ;
- ZIRR:standard_name = "depth" ;
- double ZIRR_bnds(ZIRR, bnds) ;
- double T2(ZIRR) ;
- T2:missing_value = -1.e+34 ;
- T2:_FillValue = -1.e+34 ;
- T2:long_name = "Z[GZ=ZIRR]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- ZIRR = 0, 10, 40, 70 ;
-
- ZIRR_bnds =
- -5, 5,
- 5, 25,
- 25, 55,
- 55, 85 ;
-
- T2 = 0, 10, 40, 70 ;
-}
-bn_bounds.jnl --- 5 SAVE on irregular time axis, multi-dimensional save.
-netcdf a {
-dimensions:
- COADSX81_83 = 3 ;
- COADSY46_49 = 4 ;
- MONTH_IRREG = UNLIMITED ; // (8 currently)
- bnds = 2 ;
-variables:
- double COADSX81_83(COADSX81_83) ;
- COADSX81_83:units = "degrees_east" ;
- COADSX81_83:modulo = " " ;
- COADSX81_83:point_spacing = "even" ;
- COADSX81_83:axis = "X" ;
- COADSX81_83:standard_name = "longitude" ;
- double COADSY46_49(COADSY46_49) ;
- COADSY46_49:units = "degrees_north" ;
- COADSY46_49:point_spacing = "even" ;
- COADSY46_49:axis = "Y" ;
- COADSY46_49:standard_name = "latitude" ;
- double MONTH_IRREG(MONTH_IRREG) ;
- MONTH_IRREG:units = "days since 0000-01-01 00:00:00" ;
- MONTH_IRREG:time_origin = "01-JAN-0000 00:00:00" ;
- MONTH_IRREG:modulo = " " ;
- MONTH_IRREG:axis = "T" ;
- MONTH_IRREG:standard_name = "time" ;
- MONTH_IRREG:bounds = "MONTH_IRREG_bnds" ;
- double MONTH_IRREG_bnds(MONTH_IRREG, bnds) ;
- double V(MONTH_IRREG, COADSY46_49, COADSX81_83) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "MISSING(SST[GT=MONTH_IRREG], 28)" ;
- V:history = "From coads_climatology" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- COADSX81_83 = 181, 183, 185 ;
-
- COADSY46_49 = 1, 3, 5, 7 ;
-
- MONTH_IRREG = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 181.7425,
- 227.7425, 258.2425 ;
-
- MONTH_IRREG_bnds =
- 0, 31,
- 31, 59.2425,
- 59.2425, 90.2425,
- 90.2425, 120.2425,
- 120.2425, 151.2425,
- 151.2425, 212.2425,
- 212.2425, 243.2425,
- 243.2425, 273.2425 ;
-
- V =
- 28.2849935840911, 28.414627680037, 27.9161884993111,
- 27.9765395405733, 28.2538326818959, 28.2807402581306,
- 28.2439206183922, 28.0639671835704, 28.4098884258851,
- 27.8988069263938, 28.1024085497053, 27.7289905177585,
- 28.4160049287061, 28.4018177891461, 28.0223225569069,
- 28.3564239921735, 28.4116722185187, 27.9981931574269,
- 27.9975107377818, 28.1639069786096, 28.1146483772156,
- 27.9665335861598, 27.7497643747061, 27.8315865878107,
- 28.0636671118728, 27.5906545051978, 27.7380534023442,
- 27.9418187705116, 28.0035441744124, 27.7237886368008,
- 27.8988417091574, 27.8729683348804, 27.9324667419545,
- 27.8429933705147, 27.8182966108574, 27.9089173534895,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- _, _, _,
- _, _, _,
- _, _, _,
- _, _, _,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28,
- 28, 28, 28 ;
-}
-bn_bounds.jnl --- 6 SAVE on regular time axis with bounds attribute
-netcdf a {
-dimensions:
- COADSX81_81 = 1 ;
- bnds = 2 ;
- COADSY46_46 = 1 ;
- TIME4 = UNLIMITED ; // (3 currently)
-variables:
- double COADSX81_81(COADSX81_81) ;
- COADSX81_81:units = "degrees_east" ;
- COADSX81_81:modulo = " " ;
- COADSX81_81:point_spacing = "even" ;
- COADSX81_81:axis = "X" ;
- COADSX81_81:standard_name = "longitude" ;
- COADSX81_81:bounds = "COADSX81_81_bnds" ;
- double COADSX81_81_bnds(COADSX81_81, bnds) ;
- double COADSY46_46(COADSY46_46) ;
- COADSY46_46:units = "degrees_north" ;
- COADSY46_46:point_spacing = "even" ;
- COADSY46_46:axis = "Y" ;
- COADSY46_46:standard_name = "latitude" ;
- COADSY46_46:bounds = "COADSY46_46_bnds" ;
- double COADSY46_46_bnds(COADSY46_46, bnds) ;
- double TIME4(TIME4) ;
- TIME4:units = "hour since 0000-01-01 00:00:00" ;
- TIME4:time_origin = "01-JAN-0000 00:00:00" ;
- TIME4:modulo = " " ;
- TIME4:axis = "T" ;
- TIME4:standard_name = "time" ;
- TIME4:bounds = "TIME4_bnds" ;
- double TIME4_bnds(TIME4, bnds) ;
- float SST(TIME4, COADSY46_46, COADSX81_81) ;
- SST:missing_value = -1.e+34f ;
- SST:_FillValue = -1.e+34f ;
- SST:long_name = "SEA SURFACE TEMPERATURE" ;
- SST:history = "From coads_climatology" ;
- SST:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- COADSX81_81 = 181 ;
-
- COADSX81_81_bnds =
- 180, 182 ;
-
- COADSY46_46 = 1 ;
-
- COADSY46_46_bnds =
- 0, 2 ;
-
- TIME4 = 366, 1096.485, 1826.97 ;
-
- TIME4_bnds =
- 0.757499999999993, 731.2425,
- 731.2425, 1461.7275,
- 1461.7275, 2192.2125 ;
-
- SST =
- 28.28389,
- 28.41851,
- 28.0468 ;
-}
-bn_bounds.jnl --- 7 SAVE on regular time axis with edges attributes
-netcdf a {
-dimensions:
- COADSX81_81 = 1 ;
- COADSX81_81edges = 2 ;
- COADSY46_46 = 1 ;
- COADSY46_46edges = 2 ;
- TIME4 = UNLIMITED ; // (3 currently)
- TIME4edges = 4 ;
-variables:
- double COADSX81_81(COADSX81_81) ;
- COADSX81_81:units = "degrees_east" ;
- COADSX81_81:modulo = " " ;
- COADSX81_81:point_spacing = "even" ;
- COADSX81_81:axis = "X" ;
- COADSX81_81:standard_name = "longitude" ;
- COADSX81_81:edges = "COADSX81_81edges" ;
- double COADSX81_81edges(COADSX81_81edges) ;
- COADSX81_81edges:edges = " " ;
- double COADSY46_46(COADSY46_46) ;
- COADSY46_46:units = "degrees_north" ;
- COADSY46_46:point_spacing = "even" ;
- COADSY46_46:axis = "Y" ;
- COADSY46_46:standard_name = "latitude" ;
- COADSY46_46:edges = "COADSY46_46edges" ;
- double COADSY46_46edges(COADSY46_46edges) ;
- COADSY46_46edges:edges = " " ;
- double TIME4(TIME4) ;
- TIME4:units = "hour since 0000-01-01 00:00:00" ;
- TIME4:time_origin = "01-JAN-0000 00:00:00" ;
- TIME4:modulo = " " ;
- TIME4:axis = "T" ;
- TIME4:standard_name = "time" ;
- TIME4:edges = "TIME4edges" ;
- double TIME4edges(TIME4edges) ;
- TIME4edges:edges = " " ;
- float SST(TIME4, COADSY46_46, COADSX81_81) ;
- SST:missing_value = -1.e+34f ;
- SST:_FillValue = -1.e+34f ;
- SST:long_name = "SEA SURFACE TEMPERATURE" ;
- SST:history = "From coads_climatology" ;
- SST:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- COADSX81_81 = 181 ;
-
- COADSX81_81edges = 180, 182 ;
-
- COADSY46_46 = 1 ;
-
- COADSY46_46edges = 0, 2 ;
-
- TIME4 = 366, 1096.485, 1826.97 ;
-
- TIME4edges = 0.757499999999993, 731.2425, 1461.7275, 2192.2125 ;
-
- SST =
- 28.28389,
- 28.41851,
- 28.0468 ;
-}
-bn_bounds.jnl --- 8 outputting bounds on all irregular axes, depth axis
-netcdf irrxzt {
-dimensions:
- XAX = 6 ;
- bnds = 2 ;
- ZAX = 5 ;
- TAX = UNLIMITED ; // (5 currently)
-variables:
- double XAX(XAX) ;
- XAX:point_spacing = "uneven" ;
- XAX:axis = "X" ;
- XAX:bounds = "XAX_bnds" ;
- double XAX_bnds(XAX, bnds) ;
- double ZAX(ZAX) ;
- ZAX:point_spacing = "uneven" ;
- ZAX:axis = "Z" ;
- ZAX:positive = "down" ;
- ZAX:standard_name = "depth" ;
- ZAX:bounds = "ZAX_bnds" ;
- double ZAX_bnds(ZAX, bnds) ;
- double TAX(TAX) ;
- TAX:axis = "T" ;
- TAX:bounds = "TAX_bnds" ;
- double TAX_bnds(TAX, bnds) ;
- double V(TAX, ZAX, XAX) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX = 1, 2, 5, 6, 7, 8 ;
-
- XAX_bnds =
- 0.5, 1.5,
- 1.5, 3.5,
- 3.5, 5.5,
- 5.5, 6.5,
- 6.5, 7.5,
- 7.5, 8.5 ;
-
- ZAX = 0, 20, 50, 75, 120 ;
-
- ZAX_bnds =
- 0, 10,
- 10, 30,
- 30, 60,
- 60, 90,
- 90, 150 ;
-
- TAX = 1, 2, 9, 10, 11 ;
-
- TAX_bnds =
- 0.5, 1.5,
- 1.5, 5.5,
- 5.5, 9.5,
- 9.5, 10.5,
- 10.5, 11.5 ;
-
- V =
- 2, 3, 6, 7, 8, 9,
- 22, 23, 26, 27, 28, 29,
- 52, 53, 56, 57, 58, 59,
- 77, 78, 81, 82, 83, 84,
- 122, 123, 126, 127, 128, 129,
- 3, 4, 7, 8, 9, 10,
- 23, 24, 27, 28, 29, 30,
- 53, 54, 57, 58, 59, 60,
- 78, 79, 82, 83, 84, 85,
- 123, 124, 127, 128, 129, 130,
- 10, 11, 14, 15, 16, 17,
- 30, 31, 34, 35, 36, 37,
- 60, 61, 64, 65, 66, 67,
- 85, 86, 89, 90, 91, 92,
- 130, 131, 134, 135, 136, 137,
- 11, 12, 15, 16, 17, 18,
- 31, 32, 35, 36, 37, 38,
- 61, 62, 65, 66, 67, 68,
- 86, 87, 90, 91, 92, 93,
- 131, 132, 135, 136, 137, 138,
- 12, 13, 16, 17, 18, 19,
- 32, 33, 36, 37, 38, 39,
- 62, 63, 66, 67, 68, 69,
- 87, 88, 91, 92, 93, 94,
- 132, 133, 136, 137, 138, 139 ;
-}
-err580_irreg_bounds.jnl ---
-netcdf a {
-dimensions:
- TIME = UNLIMITED ; // (2 currently)
- bnds = 2 ;
-variables:
- double TIME(TIME) ;
- TIME:axis = "T" ;
- TIME:bounds = "TIME_bnds" ;
- double TIME_bnds(TIME, bnds) ;
- double A(TIME) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "T[GT=TIME]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- TIME = 0.5, 2 ;
-
- TIME_bnds =
- 0, 1,
- 1, 3 ;
-
- A = 0.5, 2 ;
-}
-err580_long_title.jnl ---
-netcdf longtitle {
-dimensions:
- XAX1_10 = 10 ;
-variables:
- double XAX1_10(XAX1_10) ;
- XAX1_10:point_spacing = "even" ;
- XAX1_10:axis = "X" ;
- double X_(XAX1_10) ;
- X_:missing_value = -1.e+34 ;
- X_:_FillValue = -1.e+34 ;
- X_:long_name = "X" ;
- X_:long_name_mod = "axis ABSTRACT" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
- :title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
-data:
-
- XAX1_10 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ;
-
- X_ = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ;
-}
-err580_long_dsettitle.jnl ---
-netcdf longtitle {
-dimensions:
- XAX1_5 = 5 ;
-variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float A(XAX1_5) ;
- A:missing_value = -1.e+34f ;
- A:_FillValue = -1.e+34f ;
- A:long_name = "A" ;
- A:history = "From x" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
- :title = "a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short." ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-
- A = 1, 2, 3, 4, 5 ;
-}
-err580_cdc_timeaxis.jnl ---
-netcdf my_cdc_timeaxis {
-dimensions:
- TCDC = UNLIMITED ; // (15 currently)
-variables:
- double TCDC(TCDC) ;
- TCDC:units = "days since 0001-01-01 00:00:00" ;
- TCDC:axis = "T" ;
- TCDC:calendar = "GREGORIAN" ;
- TCDC:time_origin = "01-JAN-0001 00:00:00" ;
- TCDC:standard_name = "time" ;
- double A(TCDC) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "SIN(T[GT=TCDC]/10000)" ;
- A:history = "From t0_cdc" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_long_revision_num.jnl --- history attribute
- :history = "FERRET V6.925 7-Oct-14" ;
-bn_bounds_defineax.jnl --- N+1 def of bounds.
-netcdf irrxzt {
-dimensions:
- XAX = 6 ;
- bnds = 2 ;
- ZAX = 5 ;
- TAX = UNLIMITED ; // (5 currently)
-variables:
- double XAX(XAX) ;
- XAX:point_spacing = "uneven" ;
- XAX:axis = "X" ;
- XAX:bounds = "XAX_bnds" ;
- double XAX_bnds(XAX, bnds) ;
- double ZAX(ZAX) ;
- ZAX:point_spacing = "uneven" ;
- ZAX:axis = "Z" ;
- ZAX:positive = "down" ;
- ZAX:standard_name = "depth" ;
- ZAX:bounds = "ZAX_bnds" ;
- double ZAX_bnds(ZAX, bnds) ;
- double TAX(TAX) ;
- TAX:axis = "T" ;
- TAX:bounds = "TAX_bnds" ;
- double TAX_bnds(TAX, bnds) ;
- double V(TAX, ZAX, XAX) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX = 1, 2, 5, 6, 7, 8 ;
-
- XAX_bnds =
- 0.5, 1.5,
- 1.5, 3.5,
- 3.5, 5.5,
- 5.5, 6.5,
- 6.5, 7.5,
- 7.5, 8.5 ;
-
- ZAX = 0, 20, 50, 75, 120 ;
-
- ZAX_bnds =
- 0, 10,
- 10, 30,
- 30, 60,
- 60, 90,
- 90, 150 ;
-
- TAX = 1, 2, 9, 10, 11 ;
-
- TAX_bnds =
- 0.5, 1.5,
- 1.5, 5.5,
- 5.5, 9.5,
- 9.5, 10.5,
- 10.5, 11.5 ;
-
- V =
- 2, 3, 6, 7, 8, 9,
- 22, 23, 26, 27, 28, 29,
- 52, 53, 56, 57, 58, 59,
- 77, 78, 81, 82, 83, 84,
- 122, 123, 126, 127, 128, 129,
- 3, 4, 7, 8, 9, 10,
- 23, 24, 27, 28, 29, 30,
- 53, 54, 57, 58, 59, 60,
- 78, 79, 82, 83, 84, 85,
- 123, 124, 127, 128, 129, 130,
- 10, 11, 14, 15, 16, 17,
- 30, 31, 34, 35, 36, 37,
- 60, 61, 64, 65, 66, 67,
- 85, 86, 89, 90, 91, 92,
- 130, 131, 134, 135, 136, 137,
- 11, 12, 15, 16, 17, 18,
- 31, 32, 35, 36, 37, 38,
- 61, 62, 65, 66, 67, 68,
- 86, 87, 90, 91, 92, 93,
- 131, 132, 135, 136, 137, 138,
- 12, 13, 16, 17, 18, 19,
- 32, 33, 36, 37, 38, 39,
- 62, 63, 66, 67, 68, 69,
- 87, 88, 91, 92, 93, 94,
- 132, 133, 136, 137, 138, 139 ;
-}
-bn_attributes.jnl --- 1 attributes of string variables
-netcdf a {
-dimensions:
- XAX1_3 = 3 ;
- STRING1_10 = 10 ;
-variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- char VAR_B(XAX1_3, STRING1_10) ;
- VAR_B:long_name = "my strings" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- VAR_B =
- "Seattle",
- "Skykomish",
- "Snoqualmie" ;
-}
-bn_attributes.jnl --- 2 access and edit attributes of coordinate variables.
-netcdf a {
-dimensions:
- COADSX105_105 = 1 ;
- COADSY45_45 = 1 ;
- TIME4 = UNLIMITED ; // (3 currently)
-variables:
- double COADSX105_105(COADSX105_105) ;
- COADSX105_105:units = "degrees_east" ;
- COADSX105_105:modulo = " " ;
- COADSX105_105:point_spacing = "even" ;
- COADSX105_105:newatt = 0.f ;
- COADSX105_105:axis = "X" ;
- COADSX105_105:standard_name = "longitude" ;
- double COADSY45_45(COADSY45_45) ;
- COADSY45_45:units = "degrees_north" ;
- COADSY45_45:point_spacing = "even" ;
- COADSY45_45:axis = "Y" ;
- COADSY45_45:standard_name = "latitude" ;
- double TIME4(TIME4) ;
- TIME4:units = "hour since 0000-01-01 00:00:00" ;
- TIME4:time_origin = "01-JAN-0000 00:00:00" ;
- TIME4:modulo = " " ;
- TIME4:axis = "T" ;
- TIME4:standard_name = "time" ;
- float SST(TIME4, COADSY45_45, COADSX105_105) ;
- SST:missing_value = -1.e+34f ;
- SST:_FillValue = -1.e+34f ;
- SST:long_name = "SEA SURFACE TEMPERATURE" ;
- SST:history = "From coads_climatology" ;
- SST:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- COADSX105_105 = 229 ;
-
- COADSY45_45 = -1 ;
-
- TIME4 = 366, 1096.485, 1826.97 ;
-}
-bn_attributes.jnl --- 3 modulo set to false
-netcdf a {
-dimensions:
- COADSX81_81 = 1 ;
- COADSY45_45 = 1 ;
- TIME7 = UNLIMITED ; // (12 currently)
-variables:
- double COADSX81_81(COADSX81_81) ;
- COADSX81_81:units = "degrees_east" ;
- COADSX81_81:modulo = "false" ;
- COADSX81_81:point_spacing = "even" ;
- COADSX81_81:axis = "X" ;
- COADSX81_81:standard_name = "longitude" ;
- double COADSY45_45(COADSY45_45) ;
- COADSY45_45:units = "degrees_north" ;
- COADSY45_45:point_spacing = "even" ;
- COADSY45_45:axis = "Y" ;
- COADSY45_45:standard_name = "latitude" ;
- double TIME7(TIME7) ;
- TIME7:units = "hour since 0000-01-01 00:00:00" ;
- TIME7:time_origin = "01-JAN-0000 00:00:00" ;
- TIME7:modulo = " " ;
- TIME7:axis = "T" ;
- TIME7:standard_name = "time" ;
- float SST(TIME7, COADSY45_45, COADSX81_81) ;
- SST:missing_value = -1.e+34f ;
- SST:_FillValue = -1.e+34f ;
- SST:long_name = "SEA SURFACE TEMPERATURE" ;
- SST:history = "From coads_climatology" ;
- SST:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- COADSX81_81 = 181 ;
-
- COADSY45_45 = -1 ;
-
- TIME7 = 366, 1096.485, 1826.97, 2557.455, 3287.94, 4018.425, 4748.91,
- 5479.395, 6209.88, 6940.365, 7670.85, 8401.335 ;
-}
-bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:
-netcdf err491_attval {
-dimensions:
- Ti = UNLIMITED ; // (1 currently)
- Yc = 127 ;
- Xc = 35 ;
-variables:
- double Ti(Ti) ;
- Ti:long_name = "Time" ;
- Ti:units = "day" ;
- double Yc(Yc) ;
- Yc:long_name = "Latitude" ;
- Yc:units = "degrees_north" ;
- double Xc(Xc) ;
- Xc:long_name = "Longitude" ;
- Xc:units = "degrees_east" ;
- short Elev(Ti, Yc, Xc) ;
- Elev:long_name = "Surface elevation" ;
- Elev:units = "meter" ;
- Elev:valid_range = -9., 9. ;
- Elev:_FillValue = -32768s ;
- Elev:missing_value = -32767s ;
- Elev:scale_factor = 0.000274674967954587 ;
- Elev:add_offset = 0. ;
-
-// global attributes:
- :simulation = "K-Bay OAR3d model (200m)" ;
- :start_date = "980105000000" ;
- :history = "a\n",
- "" ;
- :option = 1 ;
- :run_mode = 3 ;
- :srfc_bndry = 3 ;
- :rad_penet = 2 ;
- :dt_external = 1. ;
- :dt_internal = 15. ;
- :horiz_diff = 0.2 ;
- :inv_prandtl = 0.2 ;
- :min_slope = 0.2 ;
- :title = "K-Bay OAR3d model (200m) " ;
- :command = " " ;
- :remark = "Generated by oar3d " ;
- :x_units = "degrees " ;
- :y_units = "degrees " ;
- :z_units = " " ;
- :nx = 35 ;
- :ny = 127 ;
- :x_min = 0. ;
- :x_max = 0. ;
- :y_min = 0. ;
- :y_max = 0. ;
- :z_min = 0. ;
- :z_max = 0. ;
- :x_inc = 0. ;
- :y_inc = 0. ;
- :z_scale_factor = 0. ;
- :z_add_offset = 0. ;
- :node_offset = 0. ;
-}
-bn_attributes.jnl --- 5 before CANCEL MODE upcase_output
-netcdf a {
-dimensions:
- XC3_3 = 1 ;
- YC2_4 = 3 ;
- bnds = 2 ;
- TI = UNLIMITED ; // (1 currently)
-variables:
- double XC3_3(XC3_3) ;
- XC3_3:long_name = "Longitude" ;
- XC3_3:units = "degrees_east" ;
- XC3_3:modulo = 360. ;
- XC3_3:point_spacing = "even" ;
- XC3_3:axis = "X" ;
- XC3_3:standard_name = "longitude" ;
- double YC2_4(YC2_4) ;
- YC2_4:long_name = "Latitude" ;
- YC2_4:units = "degrees_north" ;
- YC2_4:point_spacing = "uneven" ;
- YC2_4:axis = "Y" ;
- YC2_4:standard_name = "latitude" ;
- YC2_4:bounds = "YC2_4_bnds" ;
- double YC2_4_bnds(YC2_4, bnds) ;
- double TI(TI) ;
- TI:long_name = "Time" ;
- TI:units = "day" ;
- TI:axis = "T" ;
- TI:standard_name = "time" ;
- short ELEV(TI, YC2_4, XC3_3) ;
- ELEV:missing_value = -32767s ;
- ELEV:_FillValue = -32768s ;
- ELEV:long_name = "Surface elevation" ;
- ELEV:units = "meter" ;
- ELEV:scale_factor = 0.000274674967954587 ;
- ELEV:add_offset = 0. ;
- ELEV:history = "From err491_attval" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
-netcdf a {
-dimensions:
- Xc3_3 = 1 ;
- Yc2_4 = 3 ;
- bnds = 2 ;
- Ti = UNLIMITED ; // (1 currently)
-variables:
- double Xc3_3(Xc3_3) ;
- Xc3_3:long_name = "Longitude" ;
- Xc3_3:units = "degrees_east" ;
- Xc3_3:modulo = 360. ;
- Xc3_3:point_spacing = "even" ;
- Xc3_3:axis = "X" ;
- Xc3_3:standard_name = "longitude" ;
- double Yc2_4(Yc2_4) ;
- Yc2_4:long_name = "Latitude" ;
- Yc2_4:units = "degrees_north" ;
- Yc2_4:point_spacing = "uneven" ;
- Yc2_4:axis = "Y" ;
- Yc2_4:standard_name = "latitude" ;
- Yc2_4:bounds = "Yc2_4_bnds" ;
- double Yc2_4_bnds(Yc2_4, bnds) ;
- double Ti(Ti) ;
- Ti:long_name = "Time" ;
- Ti:units = "day" ;
- Ti:axis = "T" ;
- Ti:standard_name = "time" ;
- short Elev(Ti, Yc2_4, Xc3_3) ;
- Elev:missing_value = -32767s ;
- Elev:_FillValue = -32768s ;
- Elev:long_name = "Surface elevation" ;
- Elev:units = "meter" ;
- Elev:scale_factor = 0.000274674967954587 ;
- Elev:add_offset = 0. ;
- Elev:history = "From err491_attval" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 7 outtput flags to control attribute output
-netcdf a {
-dimensions:
- XAX1_5 = 5 ;
-variables:
- double AA ;
- AA:missing_value = -1.e+34 ;
- AA:_FillValue = -1.e+34 ;
- AA:long_name = "12" ;
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- double BB(XAX1_5) ;
- BB:missing_value = -1.e+34 ;
- BB:_FillValue = -1.e+34 ;
- BB:long_name = "{3,4.5,6,7,4}" ;
- BB:my_title = "This is my new variable bb" ;
- BB:another_attr = 6.f ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 8 outtput all flags
-netcdf a {
-dimensions:
- XAX1_5 = 5 ;
-variables:
- double AA ;
- AA:missing_value = -1.e+34 ;
- AA:_FillValue = -1.e+34 ;
- AA:long_name = "12" ;
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- double BB(XAX1_5) ;
- BB:missing_value = -1.e+34 ;
- BB:_FillValue = -1.e+34 ;
- BB:long_name = "{3,4.5,6,7,4}" ;
- BB:my_title = "This is my new variable bb" ;
- BB:another_attr = 6.f ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 9 Just output the default attributes
-netcdf a {
-dimensions:
- XAX1_5 = 5 ;
-variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- double BB(XAX1_5) ;
- BB:missing_value = -1.e+34 ;
- BB:_FillValue = -1.e+34 ;
- BB:long_name = "{3,4.5,6,7,4}" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 10 Output none of the attributes for aa
-netcdf a {
-dimensions:
- XAX1_5 = 5 ;
-variables:
- double AA ;
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- double BB(XAX1_5) ;
- BB:missing_value = -1.e+34 ;
- BB:_FillValue = -1.e+34 ;
- BB:long_name = "{3,4.5,6,7,4}" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX1_5 = 1, 2, 3, 4, 5 ;
-}
-bn_attributes.jnl --- 11 Surpress output of an attribute that Ferret would otherwise add.
-netcdf a {
-dimensions:
- XAX_LEV9421_380 = 360 ;
- YAX_LEV94 = 180 ;
- ZAXLEVIT191_1 = 1 ;
- TIME3 = UNLIMITED ; // (2 currently)
-variables:
- double XAX_LEV9421_380(XAX_LEV9421_380) ;
- XAX_LEV9421_380:units = "degrees_east" ;
- XAX_LEV9421_380:modulo = " " ;
- XAX_LEV9421_380:standard_name = "longitude" ;
- double YAX_LEV94(YAX_LEV94) ;
- YAX_LEV94:units = "degrees_north" ;
- YAX_LEV94:point_spacing = "even" ;
- YAX_LEV94:axis = "Y" ;
- YAX_LEV94:standard_name = "latitude" ;
- double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
- ZAXLEVIT191_1:units = "meters" ;
- ZAXLEVIT191_1:positive = "down" ;
- ZAXLEVIT191_1:point_spacing = "even" ;
- ZAXLEVIT191_1:axis = "Z" ;
- ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME3(TIME3) ;
- TIME3:units = "hour since 0000-01-01 00:00:00" ;
- TIME3:time_origin = "01-JAN-0000 00:00:00" ;
- TIME3:modulo = " " ;
- TIME3:axis = "T" ;
- TIME3:standard_name = "time" ;
- float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
- TEMP:missing_value = -1.e+34f ;
- TEMP:_FillValue = -1.e+34f ;
- TEMP:long_name = "Temperature" ;
- TEMP:history = "From ocean_atlas_monthly" ;
- TEMP:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 12 Check that settings hold for child axis.
-netcdf a {
-dimensions:
- XAX_LEV9421_380281_340 = 60 ;
- YAX_LEV94121_135 = 15 ;
- ZAXLEVIT191_1 = 1 ;
- TIME3 = UNLIMITED ; // (2 currently)
-variables:
- double XAX_LEV9421_380281_340(XAX_LEV9421_380281_340) ;
- XAX_LEV9421_380281_340:units = "degrees_east" ;
- XAX_LEV9421_380281_340:modulo = " " ;
- XAX_LEV9421_380281_340:standard_name = "longitude" ;
- double YAX_LEV94121_135(YAX_LEV94121_135) ;
- YAX_LEV94121_135:units = "degrees_north" ;
- YAX_LEV94121_135:point_spacing = "even" ;
- YAX_LEV94121_135:axis = "Y" ;
- YAX_LEV94121_135:standard_name = "latitude" ;
- double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
- ZAXLEVIT191_1:units = "meters" ;
- ZAXLEVIT191_1:positive = "down" ;
- ZAXLEVIT191_1:point_spacing = "even" ;
- ZAXLEVIT191_1:axis = "Z" ;
- ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME3(TIME3) ;
- TIME3:units = "hour since 0000-01-01 00:00:00" ;
- TIME3:time_origin = "01-JAN-0000 00:00:00" ;
- TIME3:modulo = " " ;
- TIME3:axis = "T" ;
- TIME3:standard_name = "time" ;
- float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94121_135, XAX_LEV9421_380281_340) ;
- TEMP:missing_value = -1.e+34f ;
- TEMP:_FillValue = -1.e+34f ;
- TEMP:long_name = "Temperature" ;
- TEMP:history = "From ocean_atlas_monthly" ;
- TEMP:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 13 cancel output of attributes of the variable.
-netcdf a {
-dimensions:
- XAX_LEV9421_380 = 360 ;
- YAX_LEV94 = 180 ;
- ZAXLEVIT191_1 = 1 ;
- TIME3 = UNLIMITED ; // (2 currently)
-variables:
- double XAX_LEV9421_380(XAX_LEV9421_380) ;
- XAX_LEV9421_380:units = "degrees_east" ;
- XAX_LEV9421_380:modulo = " " ;
- XAX_LEV9421_380:standard_name = "longitude" ;
- double YAX_LEV94(YAX_LEV94) ;
- YAX_LEV94:units = "degrees_north" ;
- YAX_LEV94:point_spacing = "even" ;
- YAX_LEV94:axis = "Y" ;
- YAX_LEV94:standard_name = "latitude" ;
- double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
- ZAXLEVIT191_1:units = "meters" ;
- ZAXLEVIT191_1:positive = "down" ;
- ZAXLEVIT191_1:point_spacing = "even" ;
- ZAXLEVIT191_1:axis = "Z" ;
- ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME3(TIME3) ;
- TIME3:units = "hour since 0000-01-01 00:00:00" ;
- TIME3:time_origin = "01-JAN-0000 00:00:00" ;
- TIME3:modulo = " " ;
- TIME3:axis = "T" ;
- TIME3:standard_name = "time" ;
- float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
- TEMP:missing_value = -1.e+34f ;
- TEMP:_FillValue = -1.e+34f ;
- TEMP:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 14 attributes of data from ez data.
-netcdf a {
-dimensions:
- AX042 = 5 ;
-variables:
- double AX042(AX042) ;
- AX042:point_spacing = "even" ;
- AX042:axis = "X" ;
- float A1(AX042) ;
- A1:missing_value = -1.e+34f ;
- A1:_FillValue = -1.e+34f ;
- A1:long_name = "A1" ;
- A1:three = 1.f, 2.f, 3.f ;
- A1:history = "From EZ.DAT" ;
- float A2(AX042) ;
- A2:missing_value = -1.e+34f ;
- A2:_FillValue = -1.e+34f ;
- A2:long_name = "A2" ;
- A2:history = "From EZ.DAT" ;
- float A3(AX042) ;
- A3:missing_value = -1.e+34f ;
- A3:_FillValue = -1.e+34f ;
- A3:long_name = "A3" ;
- A3:history = "From EZ.DAT" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- AX042 = 1, 2, 3, 4, 5 ;
-
- A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
-
- A2 = 0.8865, 0.6643, 0.6071, 0.5535, 0.5337 ;
-
- A3 = 0.176, 0.379, 0.417, 0.444, 0.515 ;
-}
-bn_attributes.jnl --- 15 attributes of data from delimited data.
-netcdf a {
-dimensions:
- AX009 = 5 ;
-variables:
- double AX009(AX009) ;
- AX009:point_spacing = "even" ;
- AX009:axis = "X" ;
- float V1(AX009) ;
- V1:missing_value = -1.e+34f ;
- V1:_FillValue = -1.e+34f ;
- V1:long_name = "V1" ;
- V1:strval = "2" ;
- V1:history = "From EZ.DAT" ;
- float V4(AX009) ;
- V4:missing_value = -1.e+34f ;
- V4:_FillValue = -1.e+34f ;
- V4:long_name = "V4" ;
- V4:history = "From EZ.DAT" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- AX009 = 1, 2, 3, 4, 5 ;
-
- V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
-
- V4 = 0.7597, 0.6455, 0.5935, 0.5458, 0.5147 ;
-}
-bn_attributes.jnl --- 16 attributes of user vars
-netcdf a {
-dimensions:
- XAX1_3 = 3 ;
-variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- double A(XAX1_3) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "{12,14,15}" ;
- A:three = 1.f, 2.f, 3.f ;
- A:four = "theory" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- A = 12, 14, 15 ;
-}
-bn_attributes.jnl --- 17 global attrs.
-netcdf a {
-dimensions:
- XC = 35 ;
- YC = 127 ;
- bnds = 2 ;
- TI = UNLIMITED ; // (1 currently)
-variables:
- double XC(XC) ;
- XC:long_name = "Longitude" ;
- XC:units = "degrees_east" ;
- XC:modulo = 360. ;
- XC:point_spacing = "even" ;
- XC:axis = "X" ;
- XC:standard_name = "longitude" ;
- double YC(YC) ;
- YC:long_name = "Latitude" ;
- YC:units = "degrees_north" ;
- YC:point_spacing = "uneven" ;
- YC:axis = "Y" ;
- YC:standard_name = "latitude" ;
- YC:bounds = "YC_bnds" ;
- double YC_bnds(YC, bnds) ;
- double TI(TI) ;
- TI:long_name = "Time" ;
- TI:units = "day" ;
- TI:axis = "T" ;
- TI:standard_name = "time" ;
- short ELEV(TI, YC, XC) ;
- ELEV:missing_value = -32767s ;
- ELEV:_FillValue = -32768s ;
- ELEV:long_name = "Surface elevation" ;
- ELEV:units = "meter" ;
- ELEV:scale_factor = 0.000274674967954587 ;
- ELEV:add_offset = 0. ;
- ELEV:history = "From err491_attval" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
- :simulation = "K-Bay OAR3d model (200m)" ;
- :start_date = "980105000000" ;
- :option = 0 ;
- :run_mode = 0 ;
- :srfc_bndry = 0 ;
- :rad_penet = 0 ;
- :dt_external = 1. ;
- :dt_internal = 15. ;
- :horiz_diff = 0.2 ;
- :inv_prandtl = 0.2 ;
- :min_slope = 0.2 ;
- :command = " " ;
- :remark = "Generated by oar3d" ;
- :x_units = "degrees" ;
- :y_units = "degrees" ;
- :z_units = " " ;
- :nx = 0 ;
- :ny = 0 ;
- :x_min = 0. ;
- :x_max = 0. ;
- :y_min = 0. ;
- :y_max = 0. ;
- :z_min = 0. ;
- :z_max = 0. ;
- :x_inc = 0. ;
- :y_inc = 0. ;
- :z_scale_factor = 0. ;
- :z_add_offset = 0. ;
- :node_offset = 0. ;
-}
-bn_attributes.jnl --- 18 choose global attr to write
-netcdf a {
-dimensions:
- XC = 35 ;
- YC = 127 ;
- bnds = 2 ;
- TI = UNLIMITED ; // (1 currently)
- PSXT1100_100 = 1 ;
- PSYT135_56 = 22 ;
- PSZT11_1 = 1 ;
- TIME11 = 25 ;
-variables:
- double XC(XC) ;
- XC:long_name = "Longitude" ;
- XC:units = "degrees_east" ;
- XC:modulo = 360. ;
- XC:point_spacing = "even" ;
- XC:axis = "X" ;
- XC:standard_name = "longitude" ;
- double YC(YC) ;
- YC:long_name = "Latitude" ;
- YC:units = "degrees_north" ;
- YC:point_spacing = "uneven" ;
- YC:axis = "Y" ;
- YC:standard_name = "latitude" ;
- YC:bounds = "YC_bnds" ;
- double YC_bnds(YC, bnds) ;
- double TI(TI) ;
- TI:long_name = "Time" ;
- TI:units = "day" ;
- TI:axis = "T" ;
- TI:standard_name = "time" ;
- short ELEV(TI, YC, XC) ;
- ELEV:missing_value = -32767s ;
- ELEV:_FillValue = -32768s ;
- ELEV:long_name = "Surface elevation" ;
- ELEV:units = "meter" ;
- ELEV:scale_factor = 0.000274674967954587 ;
- ELEV:add_offset = 0. ;
- ELEV:history = "From err491_attval" ;
- double PSXT1100_100(PSXT1100_100) ;
- PSXT1100_100:units = "degrees_east" ;
- PSXT1100_100:point_spacing = "even" ;
- PSXT1100_100:modulo = 360. ;
- PSXT1100_100:axis = "X" ;
- PSXT1100_100:standard_name = "longitude" ;
- double PSYT135_56(PSYT135_56) ;
- PSYT135_56:units = "degrees_north" ;
- PSYT135_56:point_spacing = "uneven" ;
- PSYT135_56:axis = "Y" ;
- PSYT135_56:standard_name = "latitude" ;
- PSYT135_56:bounds = "PSYT135_56_bnds" ;
- double PSYT135_56_bnds(PSYT135_56, bnds) ;
- double PSZT11_1(PSZT11_1) ;
- PSZT11_1:units = "meters" ;
- PSZT11_1:positive = "down" ;
- PSZT11_1:point_spacing = "uneven" ;
- PSZT11_1:axis = "Z" ;
- PSZT11_1:standard_name = "depth" ;
- PSZT11_1:bounds = "PSZT11_1_bnds" ;
- double PSZT11_1_bnds(PSZT11_1, bnds) ;
- double TIME11(TIME11) ;
- TIME11:units = "hour since 1980-01-14 14:00:00" ;
- TIME11:time_origin = "14-JAN-1980 14:00:00" ;
- TIME11:point_spacing = "even" ;
- TIME11:axis = "T" ;
- TIME11:standard_name = "time" ;
- float TEMP(TIME11, PSZT11_1, PSYT135_56, PSXT1100_100) ;
- TEMP:missing_value = -1.e+34f ;
- TEMP:_FillValue = -1.e+34f ;
- TEMP:long_name = "TEMPERATURE" ;
- TEMP:history = "From gt4d011" ;
- TEMP:units = "deg. C" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
- :dt_internal = 15. ;
-}
-bn_attributes.jnl --- 19 scale and offset attr.
-netcdf a {
-dimensions:
- XC = 35 ;
- YC1_1 = 1 ;
- bnds = 2 ;
- TI = UNLIMITED ; // (1 currently)
-variables:
- double XC(XC) ;
- XC:long_name = "Longitude" ;
- XC:units = "degrees_east" ;
- XC:modulo = 360. ;
- XC:point_spacing = "even" ;
- XC:axis = "X" ;
- XC:standard_name = "longitude" ;
- double YC1_1(YC1_1) ;
- YC1_1:long_name = "Latitude" ;
- YC1_1:units = "degrees_north" ;
- YC1_1:point_spacing = "uneven" ;
- YC1_1:axis = "Y" ;
- YC1_1:standard_name = "latitude" ;
- YC1_1:bounds = "YC1_1_bnds" ;
- double YC1_1_bnds(YC1_1, bnds) ;
- double TI(TI) ;
- TI:long_name = "Time" ;
- TI:units = "day" ;
- TI:axis = "T" ;
- TI:standard_name = "time" ;
- short ELEV(TI, YC1_1, XC) ;
- ELEV:missing_value = -32767s ;
- ELEV:_FillValue = -32768s ;
- ELEV:long_name = "Surface elevation" ;
- ELEV:units = "meter" ;
- ELEV:scale_factor = 0.000274674967954587 ;
- ELEV:add_offset = 0. ;
- ELEV:history = "From err491_attval" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XC = -135.50957036625, -135.496120344706, -135.482670323162,
- -135.469220301618, -135.455770280074, -135.44232025853,
- -135.428870236985, -135.415420215441, -135.401970193897,
- -135.388520172353, -135.375070150809, -135.361620129265,
- -135.348170107721, -135.334720086177, -135.321270064633,
- -135.307820043089, -135.294370021545, -135.28092, -135.267469978456,
- -135.254019956912, -135.240569935368, -135.227119913824,
- -135.21366989228, -135.200219870736, -135.186769849192,
- -135.173319827648, -135.159869806104, -135.14641978456,
- -135.132969763016, -135.119519741471, -135.106069719927,
- -135.092619698383, -135.079169676839, -135.065719655295, -135.052269633751 ;
-
- YC1_1 = 58.5947143787844 ;
-
- YC1_1_bnds =
- 58.5912104049205, 58.5982183526484 ;
-
- TI = 1.78368055555556 ;
-
- ELEV =
- -32767, -32767, -32767, -32767, -32767, -32767, -32767, -32767, -32767,
- -32767, -32767, 10702, 10702, 10702, 10702, 10702, 10702, 10702, 10702,
- 10702, 10702, 10702, 10702, 10702, 10702, -32767, -32767, -32767, -32767,
- -32767, -32767, -32767, -32767, -32767, -32767 ;
-}
-bn_attributes.jnl --- 20 set data type on output int4
- int TEMP(TIME11, PSZT11_1, PSYT148_48, PSXT191_108) ;
- TEMP:missing_value = -1000 ;
- TEMP:_FillValue = -1000 ;
- TEMP:long_name = "TEMPERATURE" ;
- TEMP:history = "From gt4d011" ;
- TEMP:units = "deg. C" ;
-
-// global attributes:
---
- TEMP =
- 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 26, 26, 26, 26, 26, 25, 25, 25 ;
-}
-bn_attributes.jnl --- 21 set data type on output double
- double SALT(TIME11, PSZT11_1, PSYT148_48, PSXT191_108) ;
- SALT:missing_value = 0.00999999977648258 ;
- SALT:_FillValue = 0.00999999977648258 ;
- SALT:long_name = "(SALINITY(ppt) - 35) /1000" ;
- SALT:history = "From gt4d011" ;
- SALT:units = "frac. by wt. less .035" ;
- SALT:Ferret_Precision_Note = "This variable written using Ferret was converted from FLOAT to DOUBLE" ;
-
-// global attributes:
---
- SALT =
- 0.00016033259453252, 0.000142609584145248, 0.000126281287521124,
- 0.000120904369396158, 0.000120412340038456, 0.000123045203508809,
-bn_attributes.jnl --- 22 outtype=input
-netcdf a {
-dimensions:
- J = 3 ;
- I = 2 ;
- l = 3 ;
-variables:
- float J(J) ;
- J:point_spacing = "even" ;
- J:axis = "X" ;
- int I(I) ;
- I:point_spacing = "even" ;
- I:axis = "Y" ;
- char BROILED(I, J, l) ;
- BROILED:long_name = "BROILED" ;
- BROILED:history = "From test0" ;
- byte THE_BULLET(I, J) ;
- THE_BULLET:long_name = "THE_BULLET" ;
- THE_BULLET:history = "From test0" ;
- short ORDER(I, J) ;
- ORDER:long_name = "ORDER" ;
- ORDER:history = "From test0" ;
- int RIGUE(I, J) ;
- RIGUE:long_name = "RIGUE" ;
- RIGUE:history = "From test0" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- J = 2, 4, 6 ;
-
- I = 10, 20 ;
-
- BROILED =
- "ind",
- "ist",
- "ing",
- "uis",
- "hab",
- "le" ;
-
- THE_BULLET =
- -127, 0, 127,
- -128, -1, -127 ;
-
- ORDER =
- 1, 2, 3,
- 4, 5, 6 ;
-
- RIGUE =
- 2, 3, 4,
- 5, 6, 7 ;
-}
-bn_attributes.jnl --- 23 more user-defined vars
-netcdf a {
-variables:
- double B ;
- B:missing_value = -1.e+34 ;
- B:_FillValue = -1.e+34 ;
- B:long_name = "hello" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- B = 1 ;
-}
-bn_attributes.jnl --- 24 output redefined attr
-netcdf a {
-dimensions:
- COADSX90_91 = 2 ;
- COADSY65_66 = 2 ;
- TCOADS = UNLIMITED ; // (1 currently)
- bnds = 2 ;
-variables:
- double COADSX90_91(COADSX90_91) ;
- COADSX90_91:units = "degrees_east" ;
- COADSX90_91:modulo = " " ;
- COADSX90_91:point_spacing = "uneven" ;
- COADSX90_91:axis = "X" ;
- COADSX90_91:standard_name = "longitude" ;
- double COADSY65_66(COADSY65_66) ;
- COADSY65_66:units = "degrees_north" ;
- COADSY65_66:point_spacing = "uneven" ;
- COADSY65_66:axis = "Y" ;
- COADSY65_66:standard_name = "latitude" ;
- double TCOADS(TCOADS) ;
- TCOADS:units = "days since 1700-01-01 00:00:00" ;
- TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
- TCOADS:axis = "T" ;
- TCOADS:standard_name = "time" ;
- TCOADS:bounds = "TCOADS_bnds" ;
- double TCOADS_bnds(TCOADS, bnds) ;
- float VWND(TCOADS, COADSY65_66, COADSX90_91) ;
- VWND:missing_value = -1.e+34f ;
- VWND:_FillValue = -1.e+34f ;
- VWND:long_name = "MERIDIONAL WIND" ;
- VWND:history = "From coads_vwnd" ;
- VWND:units = "M/S" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- COADSX90_91 = 199, 201 ;
-
- COADSY65_66 = 39, 41 ;
-
- TCOADS = 89864.5 ;
-
- TCOADS_bnds =
- 89849, 89880 ;
-
- VWND =
- _, _,
- _, _ ;
-}
-bn_attributes.jnl --- 25 output new attr on user-defined var
-netcdf a {
-dimensions:
- COADSX90_91 = 2 ;
- COADSY65_66 = 2 ;
- TCOADS = UNLIMITED ; // (1 currently)
- bnds = 2 ;
-variables:
- double COADSX90_91(COADSX90_91) ;
- COADSX90_91:units = "degrees_east" ;
- COADSX90_91:modulo = " " ;
- COADSX90_91:point_spacing = "uneven" ;
- COADSX90_91:axis = "X" ;
- COADSX90_91:standard_name = "longitude" ;
- double COADSY65_66(COADSY65_66) ;
- COADSY65_66:units = "degrees_north" ;
- COADSY65_66:point_spacing = "uneven" ;
- COADSY65_66:new_att = "somthing" ;
- COADSY65_66:axis = "Y" ;
- COADSY65_66:standard_name = "latitude" ;
- double TCOADS(TCOADS) ;
- TCOADS:units = "days since 1700-01-01 00:00:00" ;
- TCOADS:time_origin = "01-JAN-1700 00:00:00" ;
- TCOADS:axis = "T" ;
- TCOADS:standard_name = "time" ;
- TCOADS:bounds = "TCOADS_bnds" ;
- double TCOADS_bnds(TCOADS, bnds) ;
- double T2(TCOADS, COADSY65_66, COADSX90_91) ;
- T2:missing_value = -1.e+34 ;
- T2:_FillValue = -1.e+34 ;
- T2:long_name = "2*VWND" ;
- T2:history = "From coads_vwnd" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- COADSX90_91 = 199, 201 ;
-
- COADSY65_66 = 39, 41 ;
-
- TCOADS = 89864.5 ;
-
- TCOADS_bnds =
- 89849, 89880 ;
-
- T2 =
- _, _,
- _, _ ;
-}
-bn_attributes.jnl --- 26 attributes of axes
-netcdf a {
-dimensions:
- PSXT191_108 = 18 ;
- PSYT135_56 = 22 ;
- bnds = 2 ;
- PSZT11_10 = 10 ;
- TIME11 = UNLIMITED ; // (1 currently)
-variables:
- double PSXT191_108(PSXT191_108) ;
- PSXT191_108:units = "degrees" ;
- PSXT191_108:point_spacing = "even" ;
- PSXT191_108:modulo = 360. ;
- PSXT191_108:axis = "X" ;
- PSXT191_108:standard_name = "longitude" ;
- double PSYT135_56(PSYT135_56) ;
- PSYT135_56:units = "degrees_north" ;
- PSYT135_56:point_spacing = "uneven" ;
- PSYT135_56:axis = "Y" ;
- PSYT135_56:standard_name = "latitude" ;
- PSYT135_56:bounds = "PSYT135_56_bnds" ;
- double PSYT135_56_bnds(PSYT135_56, bnds) ;
- double PSZT11_10(PSZT11_10) ;
- PSZT11_10:units = "meters" ;
- PSZT11_10:positive = "down" ;
- PSZT11_10:point_spacing = "uneven" ;
- PSZT11_10:axis = "Z" ;
- PSZT11_10:standard_name = "depth" ;
- PSZT11_10:bounds = "PSZT11_10_bnds" ;
- double PSZT11_10_bnds(PSZT11_10, bnds) ;
- double TIME11(TIME11) ;
- TIME11:units = "hour since 1980-01-14 14:00:00" ;
- TIME11:time_origin = "14-JAN-1980 14:00:00" ;
- TIME11:axis = "T" ;
- TIME11:standard_name = "time" ;
- double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
- T2:missing_value = -1.e+34 ;
- T2:_FillValue = -1.e+34 ;
- T2:long_name = "T*TEMP" ;
- T2:history = "From gt4d011" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
- PSXT191_108 = 18 ;
- PSYT135_56 = 22 ;
- bnds = 2 ;
- PSZT11_10 = 10 ;
- TIME11 = UNLIMITED ; // (1 currently)
-variables:
- double PSXT191_108(PSXT191_108) ;
- PSXT191_108:units = "degrees" ;
- PSXT191_108:point_spacing = "even" ;
- PSXT191_108:new_att = "something" ;
- PSXT191_108:modulo = 360. ;
- PSXT191_108:axis = "X" ;
- PSXT191_108:standard_name = "longitude" ;
- double PSYT135_56(PSYT135_56) ;
- PSYT135_56:units = "degrees_north" ;
- PSYT135_56:point_spacing = "uneven" ;
- PSYT135_56:axis = "Y" ;
- PSYT135_56:standard_name = "latitude" ;
- PSYT135_56:bounds = "PSYT135_56_bnds" ;
- double PSYT135_56_bnds(PSYT135_56, bnds) ;
- double PSZT11_10(PSZT11_10) ;
- PSZT11_10:units = "meters" ;
- PSZT11_10:positive = "down" ;
- PSZT11_10:point_spacing = "uneven" ;
- PSZT11_10:axis = "Z" ;
- PSZT11_10:standard_name = "depth" ;
- PSZT11_10:bounds = "PSZT11_10_bnds" ;
- double PSZT11_10_bnds(PSZT11_10, bnds) ;
- double TIME11(TIME11) ;
- TIME11:units = "hour since 1980-01-14 14:00:00" ;
- TIME11:time_origin = "14-JAN-1980 14:00:00" ;
- TIME11:axis = "T" ;
- TIME11:standard_name = "time" ;
- double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
- T2:missing_value = -1.e+34 ;
- T2:_FillValue = -1.e+34 ;
- T2:long_name = "T*TEMP" ;
- T2:history = "From gt4d011" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
- PSXT191_108 = 18 ;
- PSYT135_56 = 22 ;
- bnds = 2 ;
- PSZT11_10 = 10 ;
- TIME11 = UNLIMITED ; // (1 currently)
-variables:
- double PSXT191_108(PSXT191_108) ;
- PSXT191_108:units = "meters" ;
- PSXT191_108:point_spacing = "even" ;
- PSXT191_108:new_att = "something" ;
- PSXT191_108:modulo = 360. ;
- PSXT191_108:axis = "X" ;
- double PSYT135_56(PSYT135_56) ;
- PSYT135_56:units = "meters" ;
- PSYT135_56:point_spacing = "uneven" ;
- PSYT135_56:axis = "Y" ;
- PSYT135_56:bounds = "PSYT135_56_bnds" ;
- double PSYT135_56_bnds(PSYT135_56, bnds) ;
- double PSZT11_10(PSZT11_10) ;
- PSZT11_10:units = "meters" ;
- PSZT11_10:positive = "down" ;
- PSZT11_10:point_spacing = "uneven" ;
- PSZT11_10:axis = "Z" ;
- PSZT11_10:standard_name = "depth" ;
- PSZT11_10:bounds = "PSZT11_10_bnds" ;
- double PSZT11_10_bnds(PSZT11_10, bnds) ;
- double TIME11(TIME11) ;
- TIME11:units = "hour since 1980-01-14 14:00:00" ;
- TIME11:time_origin = "14-JAN-1980 14:00:00" ;
- TIME11:axis = "T" ;
- TIME11:standard_name = "time" ;
- double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
- T2:missing_value = -1.e+34 ;
- T2:_FillValue = -1.e+34 ;
- T2:long_name = "T*TEMP" ;
- T2:history = "From gt4d011" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
- XAXLEVITR1_160 = 160 ;
- YAXLEVITR1_9090_90 = 1 ;
- ZAXLEVITR1_1 = 1 ;
-variables:
- double XAXLEVITR1_160(XAXLEVITR1_160) ;
- XAXLEVITR1_160:units = "degrees_east" ;
- XAXLEVITR1_160:modulo = " " ;
- XAXLEVITR1_160:point_spacing = "even" ;
- XAXLEVITR1_160:new_att = "something" ;
- XAXLEVITR1_160:axis = "X" ;
- XAXLEVITR1_160:standard_name = "longitude" ;
- double YAXLEVITR1_9090_90(YAXLEVITR1_9090_90) ;
- YAXLEVITR1_9090_90:units = "degrees_north" ;
- YAXLEVITR1_9090_90:point_spacing = "even" ;
- YAXLEVITR1_9090_90:axis = "Y" ;
- YAXLEVITR1_9090_90:standard_name = "latitude" ;
- double ZAXLEVITR1_1(ZAXLEVITR1_1) ;
- ZAXLEVITR1_1:units = "meters" ;
- ZAXLEVITR1_1:positive = "down" ;
- ZAXLEVITR1_1:point_spacing = "even" ;
- ZAXLEVITR1_1:axis = "Z" ;
- ZAXLEVITR1_1:standard_name = "depth" ;
- float TEMP(ZAXLEVITR1_1, YAXLEVITR1_9090_90, XAXLEVITR1_160) ;
- TEMP:missing_value = -1.e+10f ;
- TEMP:_FillValue = -1.e+10f ;
- TEMP:long_name = "TEMPERATURE" ;
- TEMP:history = "From levitus_climatology" ;
- TEMP:units = "DEG C" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
- XAXLEVITR1_160161_161 = 1 ;
- YAXLEVITR1_9090_90 = 1 ;
- ZAXLEVITR1_1 = 1 ;
-variables:
- double XAXLEVITR1_160161_161(XAXLEVITR1_160161_161) ;
- XAXLEVITR1_160161_161:units = "degrees_east" ;
- XAXLEVITR1_160161_161:modulo = " " ;
- XAXLEVITR1_160161_161:point_spacing = "even" ;
- XAXLEVITR1_160161_161:new_att = "something" ;
- XAXLEVITR1_160161_161:axis = "X" ;
- XAXLEVITR1_160161_161:standard_name = "longitude" ;
- double YAXLEVITR1_9090_90(YAXLEVITR1_9090_90) ;
- YAXLEVITR1_9090_90:units = "degrees_north" ;
- YAXLEVITR1_9090_90:point_spacing = "even" ;
- YAXLEVITR1_9090_90:axis = "Y" ;
- YAXLEVITR1_9090_90:standard_name = "latitude" ;
- double ZAXLEVITR1_1(ZAXLEVITR1_1) ;
- ZAXLEVITR1_1:units = "meters" ;
- ZAXLEVITR1_1:positive = "down" ;
- ZAXLEVITR1_1:point_spacing = "even" ;
- ZAXLEVITR1_1:axis = "Z" ;
- ZAXLEVITR1_1:standard_name = "depth" ;
- double TWO(ZAXLEVITR1_1, YAXLEVITR1_9090_90, XAXLEVITR1_160161_161) ;
- TWO:missing_value = -1.e+34 ;
- TWO:_FillValue = -1.e+34 ;
- TWO:long_name = "2*TEMP[Y=0:15,X=180:200]" ;
- TWO:history = "From levitus_climatology" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 27 attributes of user-defined axes
-netcdf string4d {
-dimensions:
- X2AX = 2 ;
- Y3AX = 3 ;
- Z4AX = 4 ;
- T2AX = UNLIMITED ; // (2 currently)
- STRING1_5 = 5 ;
-variables:
- double X2AX(X2AX) ;
- X2AX:point_spacing = "even" ;
- X2AX:axis = "X" ;
- X2AX:modulo = " " ;
- double Y3AX(Y3AX) ;
- Y3AX:point_spacing = "even" ;
- Y3AX:axis = "Y" ;
- double Z4AX(Z4AX) ;
- Z4AX:point_spacing = "even" ;
- Z4AX:axis = "Z" ;
- Z4AX:positive = "up" ;
- Z4AX:standard_name = "altitude" ;
- double T2AX(T2AX) ;
- T2AX:axis = "T" ;
- char AXY(T2AX, Z4AX, Y3AX, X2AX, STRING1_5) ;
- AXY:long_name = "RESHAPE (A,RVAR)" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- 28 Define a new global attribute
-bn_attributes.jnl --- 29 SET ATT/OUTPUT=all for global attrs and a var
-netcdf a {
-dimensions:
- J = 3 ;
- I = 2 ;
- l = 3 ;
-variables:
- float J(J) ;
- J:point_spacing = "even" ;
- J:axis = "X" ;
- int I(I) ;
- I:point_spacing = "even" ;
- I:axis = "Y" ;
- char BROILED(I, J, l) ;
- BROILED:act = "text string\n",
- "\t123" ;
- BROILED:acb = 10b ;
- BROILED:acs = -200s ;
- BROILED:acl = 17000 ;
- BROILED:acf = -2.f, 1.f, 0.f ;
- BROILED:acd = -1., 2.71828182845905 ;
- BROILED:long_name = "BROILED" ;
- BROILED:history = "From test0" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
- :glob = "Global attribute" ;
- :FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
-data:
-
- J = 2, 4, 6 ;
-
- I = 10, 20 ;
-
- BROILED =
- "ind",
- "ist",
- "ing",
- "uis",
- "hab",
- "le" ;
-}
-bn_attributes.jnl --- 29 SET VAR/OUTTYPE for user variable
-netcdf a {
-dimensions:
- PSXT191_108 = 18 ;
- PSYT135_56 = 22 ;
- bnds = 2 ;
- PSZT11_10 = 10 ;
- TIME11 = UNLIMITED ; // (25 currently)
-variables:
- double PSXT191_108(PSXT191_108) ;
- PSXT191_108:units = "degrees_east" ;
- PSXT191_108:point_spacing = "even" ;
- PSXT191_108:modulo = 360. ;
- PSXT191_108:axis = "X" ;
- PSXT191_108:standard_name = "longitude" ;
- double PSYT135_56(PSYT135_56) ;
- PSYT135_56:units = "degrees_north" ;
- PSYT135_56:point_spacing = "uneven" ;
- PSYT135_56:axis = "Y" ;
- PSYT135_56:standard_name = "latitude" ;
- PSYT135_56:bounds = "PSYT135_56_bnds" ;
- double PSYT135_56_bnds(PSYT135_56, bnds) ;
- double PSZT11_10(PSZT11_10) ;
- PSZT11_10:units = "meters" ;
- PSZT11_10:positive = "down" ;
- PSZT11_10:point_spacing = "uneven" ;
- PSZT11_10:axis = "Z" ;
- PSZT11_10:standard_name = "depth" ;
- PSZT11_10:bounds = "PSZT11_10_bnds" ;
- double PSZT11_10_bnds(PSZT11_10, bnds) ;
- double TIME11(TIME11) ;
- TIME11:units = "hour since 1980-01-14 14:00:00" ;
- TIME11:time_origin = "14-JAN-1980 14:00:00" ;
- TIME11:axis = "T" ;
- TIME11:standard_name = "time" ;
- double FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
- FAREN:missing_value = -1.e+34 ;
- FAREN:_FillValue = -1.e+34 ;
- FAREN:long_name = "TEMP*9/5 + 32" ;
- FAREN:units = "Deg F" ;
- FAREN:history = "From gt4d011" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
- PSXT191_108 = 18 ;
- PSYT135_56 = 22 ;
- bnds = 2 ;
- PSZT11_10 = 10 ;
- TIME11 = UNLIMITED ; // (25 currently)
-variables:
- double PSXT191_108(PSXT191_108) ;
- PSXT191_108:units = "degrees_east" ;
- PSXT191_108:point_spacing = "even" ;
- PSXT191_108:modulo = 360. ;
- PSXT191_108:axis = "X" ;
- PSXT191_108:standard_name = "longitude" ;
- double PSYT135_56(PSYT135_56) ;
- PSYT135_56:units = "degrees_north" ;
- PSYT135_56:point_spacing = "uneven" ;
- PSYT135_56:axis = "Y" ;
- PSYT135_56:standard_name = "latitude" ;
- PSYT135_56:bounds = "PSYT135_56_bnds" ;
- double PSYT135_56_bnds(PSYT135_56, bnds) ;
- double PSZT11_10(PSZT11_10) ;
- PSZT11_10:units = "meters" ;
- PSZT11_10:positive = "down" ;
- PSZT11_10:point_spacing = "uneven" ;
- PSZT11_10:axis = "Z" ;
- PSZT11_10:standard_name = "depth" ;
- PSZT11_10:bounds = "PSZT11_10_bnds" ;
- double PSZT11_10_bnds(PSZT11_10, bnds) ;
- double TIME11(TIME11) ;
- TIME11:units = "hour since 1980-01-14 14:00:00" ;
- TIME11:time_origin = "14-JAN-1980 14:00:00" ;
- TIME11:axis = "T" ;
- TIME11:standard_name = "time" ;
- int FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
- FAREN:missing_value = -999 ;
- FAREN:_FillValue = -999 ;
- FAREN:long_name = "TEMP*9/5 + 32" ;
- FAREN:units = "Deg F" ;
- FAREN:history = "From gt4d011" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
- XAX = 4 ;
- bnds = 2 ;
-variables:
- double XAX(XAX) ;
- XAX:point_spacing = "uneven" ;
- XAX:axis = "X" ;
- XAX:bounds = "XAX_bnds" ;
- double XAX_bnds(XAX, bnds) ;
- double A(XAX) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "X[GX=XAX]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX = 1.5, 3, 6, 8.5 ;
-
- XAX_bnds =
- 1, 2,
- 2, 4,
- 4, 8,
- 8, 9 ;
-
- A = 1.5, 3, 6, 8.5 ;
-}
-netcdf a {
-dimensions:
- XAX = 4 ;
- bnds = 2 ;
-variables:
- double XAX(XAX) ;
- XAX:point_spacing = "uneven" ;
- XAX:axis = "X" ;
- XAX:bounds = "XAX_bnds" ;
- double XAX_bnds(XAX, bnds) ;
- double A(XAX) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "X[GX=XAX]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX = 1.5, 3, 6, 8.5 ;
-
- XAX_bnds =
- 1, 2,
- 2, 4,
- 4, 8,
- 8, 9 ;
-
- A = 1.5, 3, 6, 8.5 ;
-}
-netcdf a {
-dimensions:
- XAX = 4 ;
- bnds = 2 ;
-variables:
- double XAX(XAX) ;
- XAX:point_spacing = "uneven" ;
- XAX:axis = "X" ;
- XAX:bounds = "XAX_bnds" ;
- double XAX_bnds(XAX, bnds) ;
- double A(XAX) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "X[GX=XAX]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX = 1.5, 3, 6, 8.5 ;
-
- XAX_bnds =
- 1, 2,
- 2, 4,
- 4, 8,
- 8, 9 ;
-
- A = 1.5, 3, 6, 8.5 ;
-}
-netcdf a {
-dimensions:
- XAX_LEV9421_380 = 360 ;
- YAX_LEV9450_50 = 1 ;
- ZAXLEVIT191_1 = 1 ;
- TIME3 = UNLIMITED ; // (1 currently)
-variables:
- double XAX_LEV9421_380(XAX_LEV9421_380) ;
- XAX_LEV9421_380:units = "degrees_east" ;
- XAX_LEV9421_380:modulo = " " ;
- XAX_LEV9421_380:point_spacing = "even" ;
- XAX_LEV9421_380:long_name = "Here is a long name for the x axis of TEMP" ;
- XAX_LEV9421_380:axis = "X" ;
- XAX_LEV9421_380:standard_name = "longitude" ;
- double YAX_LEV9450_50(YAX_LEV9450_50) ;
- YAX_LEV9450_50:units = "degrees_north" ;
- YAX_LEV9450_50:point_spacing = "even" ;
- YAX_LEV9450_50:axis = "Y" ;
- YAX_LEV9450_50:standard_name = "latitude" ;
- double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
- ZAXLEVIT191_1:units = "meters" ;
- ZAXLEVIT191_1:positive = "down" ;
- ZAXLEVIT191_1:point_spacing = "even" ;
- ZAXLEVIT191_1:axis = "Z" ;
- ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME3(TIME3) ;
- TIME3:units = "hour since 0000-01-01 00:00:00" ;
- TIME3:time_origin = "01-JAN-0000 00:00:00" ;
- TIME3:modulo = " " ;
- TIME3:axis = "T" ;
- TIME3:standard_name = "time" ;
- float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_380) ;
- TEMP:missing_value = -1.e+34f ;
- TEMP:_FillValue = -1.e+34f ;
- TEMP:long_name = "Temperature" ;
- TEMP:history = "From ocean_atlas_monthly" ;
- TEMP:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
- XAX_LEV9421_3801_12 = 12 ;
- YAX_LEV9450_50 = 1 ;
- ZAXLEVIT191_1 = 1 ;
- TIME3 = UNLIMITED ; // (1 currently)
-variables:
- double XAX_LEV9421_3801_12(XAX_LEV9421_3801_12) ;
- XAX_LEV9421_3801_12:units = "degrees_east" ;
- XAX_LEV9421_3801_12:modulo = " " ;
- XAX_LEV9421_3801_12:point_spacing = "even" ;
- XAX_LEV9421_3801_12:long_name = "Here is a long name for the x axis of TEMP" ;
- XAX_LEV9421_3801_12:axis = "X" ;
- XAX_LEV9421_3801_12:standard_name = "longitude" ;
- double YAX_LEV9450_50(YAX_LEV9450_50) ;
- YAX_LEV9450_50:units = "degrees_north" ;
- YAX_LEV9450_50:point_spacing = "even" ;
- YAX_LEV9450_50:axis = "Y" ;
- YAX_LEV9450_50:standard_name = "latitude" ;
- double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
- ZAXLEVIT191_1:units = "meters" ;
- ZAXLEVIT191_1:positive = "down" ;
- ZAXLEVIT191_1:point_spacing = "even" ;
- ZAXLEVIT191_1:axis = "Z" ;
- ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME3(TIME3) ;
- TIME3:units = "hour since 0000-01-01 00:00:00" ;
- TIME3:time_origin = "01-JAN-0000 00:00:00" ;
- TIME3:modulo = " " ;
- TIME3:axis = "T" ;
- TIME3:standard_name = "time" ;
- float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_3801_12) ;
- TEMP:missing_value = -1.e+34f ;
- TEMP:_FillValue = -1.e+34f ;
- TEMP:long_name = "Temperature" ;
- TEMP:history = "From ocean_atlas_monthly" ;
- TEMP:units = "Deg C" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
- YAXIS = 61 ;
-variables:
- double YAXIS(YAXIS) ;
- YAXIS:units = "degrees_north" ;
- YAXIS:point_spacing = "even" ;
- YAXIS:axis = "Y" ;
- YAXIS:standard_name = "latitude" ;
- double V(YAXIS) ;
- V:missing_value = -1.e+34 ;
- V:_FillValue = -1.e+34 ;
- V:long_name = "Y[GY=YAXIS]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-err611_set_var_ez.jnl ---
-netcdf a {
-dimensions:
- AX138 = 3 ;
-variables:
- double AX138(AX138) ;
- AX138:point_spacing = "even" ;
- AX138:axis = "X" ;
- float MY_ASC(AX138) ;
- MY_ASC:missing_value = 3.f ;
- MY_ASC:_FillValue = 3.f ;
- MY_ASC:long_name = "chlorophyll" ;
- MY_ASC:units = "micrograms/L" ;
- MY_ASC:history = "From dat.dat" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-netcdf a {
-dimensions:
- AX138 = 3 ;
-variables:
- double AX138(AX138) ;
- AX138:point_spacing = "even" ;
- AX138:axis = "X" ;
- float MY_UNF(AX138) ;
- MY_UNF:missing_value = 5.f ;
- MY_UNF:_FillValue = 5.f ;
- MY_UNF:long_name = "Some Unformatted input" ;
- MY_UNF:units = "metres" ;
- MY_UNF:history = "From unf.dat" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
-netcdf a {
-dimensions:
- XAX1_3 = 3 ;
-variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- double A(XAX1_3) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "{1.1,2.2,3.3}" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX1_3 = 1, 2, 3 ;
-
- A = 1.1, 2.2, 3.3 ;
-}
-netcdf a {
-dimensions:
- XAX1_12 = 12 ;
-variables:
- double XAX1_12(XAX1_12) ;
- XAX1_12:point_spacing = "even" ;
- XAX1_12:axis = "X" ;
- int A(XAX1_12) ;
- A:missing_value = 999 ;
- A:_FillValue = 999 ;
- A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-data:
-
- XAX1_12 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ;
-
- A = 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5 ;
-}
-netcdf a {
-dimensions:
- XAX1_10 = 10 ;
- tday = UNLIMITED ; // (31 currently)
- lon1_5 = 5 ;
- lat1_5 = 5 ;
- bnds = 2 ;
- zt = 10 ;
- time1478 = 3 ;
-variables:
- double XAX1_10(XAX1_10) ;
- XAX1_10:point_spacing = "even" ;
- XAX1_10:axis = "X" ;
- double tday(tday) ;
- tday:units = "days since 1998-12-31 00:00:00" ;
- tday:axis = "T" ;
- tday:calendar = "GREGORIAN" ;
- tday:time_origin = "31-DEC-1998" ;
- tday:standard_name = "time" ;
- double MyUpperLowerCaseVar(tday, XAX1_10) ;
- MyUpperLowerCaseVar:missing_value = -1.e+34 ;
- MyUpperLowerCaseVar:_FillValue = -1.e+34 ;
- MyUpperLowerCaseVar:long_name = "X[X=1:10] + T[GT=TDAY]" ;
- double lon1_5(lon1_5) ;
- lon1_5:point_spacing = "even" ;
- lon1_5:axis = "X" ;
- lon1_5:standard_name = "longitude" ;
- double lat1_5(lat1_5) ;
- lat1_5:point_spacing = "uneven" ;
- lat1_5:axis = "Y" ;
- lat1_5:standard_name = "latitude" ;
- lat1_5:bounds = "lat1_5_bnds" ;
- double lat1_5_bnds(lat1_5, bnds) ;
- float zt(zt) ;
- zt:long_name = "zt" ;
- zt:units = "meters" ;
- zt:positive = "down" ;
- zt:point_spacing = "uneven" ;
- zt:axis = "Z" ;
- zt:standard_name = "depth" ;
- zt:bounds = "zt_bnds" ;
- float zt_bnds(zt, bnds) ;
- double time1478(time1478) ;
- time1478:calendar = "NOLEAP" ;
- time1478:axis = "T" ;
- time1478:point_spacing = "even" ;
- time1478:standard_name = "time" ;
- double newvar(time1478, zt, lat1_5, lon1_5) ;
- newvar:missing_value = -999. ;
- newvar:_FillValue = -999. ;
- newvar:long_name = "outgoing longwave radiation" ;
- newvar:units = "watts/m2" ;
- newvar:history = "From a" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
-netcdf a {
-dimensions:
- X100 = 11 ;
- T31 = UNLIMITED ; // (14 currently)
-variables:
- double X100(X100) ;
- X100:units = "degrees_east" ;
- X100:point_spacing = "even" ;
- X100:axis = "X" ;
- X100:modulo = 360. ;
- X100:standard_name = "longitude" ;
- double T31(T31) ;
- T31:units = "days since 1999-12-31 00:00:00" ;
- T31:axis = "T" ;
- T31:calendar = "GREGORIAN" ;
- T31:time_origin = "31-DEC-1999" ;
- T31:standard_name = "time" ;
- double A(T31, X100) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "X[GX=X100] + T[GT=T31]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
-netcdf a {
-dimensions:
- X10030_40 = 11 ;
- T31 = UNLIMITED ; // (14 currently)
-variables:
- double X10030_40(X10030_40) ;
- X10030_40:units = "degrees_east" ;
- X10030_40:point_spacing = "even" ;
- X10030_40:axis = "X" ;
- X10030_40:modulo = 360. ;
- X10030_40:standard_name = "longitude" ;
- double T31(T31) ;
- T31:units = "days since 1999-12-31 00:00:00" ;
- T31:axis = "T" ;
- T31:calendar = "GREGORIAN" ;
- T31:time_origin = "31-DEC-1999" ;
- T31:standard_name = "time" ;
- double A(T31, X10030_40) ;
- A:missing_value = -1.e+34 ;
- A:_FillValue = -1.e+34 ;
- A:long_name = "X[GX=X100] + T[GT=T31]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
-netcdf a {
-dimensions:
- XAX = 11 ;
- YAX = 6 ;
- TAXIS = UNLIMITED ; // (5 currently)
- ZAXDN = 4 ;
- bnds = 2 ;
- ZAXUP = 5 ;
-variables:
- double XAX(XAX) ;
- XAX:point_spacing = "even" ;
- XAX:axis = "X" ;
- XAX:units = "deg" ;
- XAX:modulo = 360. ;
- XAX:standard_name = "longitude" ;
- double XX(XAX) ;
- XX:missing_value = -1.e+34 ;
- XX:_FillValue = -1.e+34 ;
- XX:long_name = "X[GX=XAX]" ;
- double YAX(YAX) ;
- YAX:point_spacing = "even" ;
- YAX:axis = "Y" ;
- YAX:units = "degrees" ;
- YAX:standard_name = "latitude" ;
- double YY(YAX) ;
- YY:missing_value = -1.e+34 ;
- YY:_FillValue = -1.e+34 ;
- YY:long_name = "Y[GY=YAX]" ;
- double TAXIS(TAXIS) ;
- TAXIS:units = "days since 2000-01-01 00:00:00" ;
- TAXIS:axis = "T" ;
- TAXIS:time_origin = "1-JAN-2000" ;
- TAXIS:standard_name = "time" ;
- double TT(TAXIS) ;
- TT:missing_value = -1.e+34 ;
- TT:_FillValue = -1.e+34 ;
- TT:long_name = "T[GT=TAXIS]" ;
- double ZAXDN(ZAXDN) ;
- ZAXDN:units = "meters" ;
- ZAXDN:point_spacing = "uneven" ;
- ZAXDN:axis = "Z" ;
- ZAXDN:bounds = "ZAXDN_bnds" ;
- ZAXDN:positive = "down" ;
- ZAXDN:standard_name = "depth" ;
- double ZAXDN_bnds(ZAXDN, bnds) ;
- double ZDN(ZAXDN) ;
- ZDN:missing_value = -1.e+34 ;
- ZDN:_FillValue = -1.e+34 ;
- ZDN:long_name = "Z[GZ=ZAXDN]" ;
- double ZAXUP(ZAXUP) ;
- ZAXUP:units = "meters" ;
- ZAXUP:point_spacing = "uneven" ;
- ZAXUP:axis = "Z" ;
- ZAXUP:bounds = "ZAXUP_bnds" ;
- ZAXUP:standard_name = "altitude" ;
- double ZAXUP_bnds(ZAXUP, bnds) ;
- double ZUP(ZAXUP) ;
- ZUP:missing_value = -1.e+34 ;
- ZUP:_FillValue = -1.e+34 ;
- ZUP:long_name = "Z[GZ=ZAXUP]" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
-netcdf a {
-dimensions:
- XAXIS = 31 ;
- YFIFTEEN = 13 ;
-variables:
- double XAXIS(XAXIS) ;
- XAXIS:units = "degrees_east" ;
- XAXIS:point_spacing = "even" ;
- XAXIS:axis = "X" ;
- XAXIS:modulo = 360. ;
- XAXIS:standard_name = "longitude" ;
- float VAR(XAXIS) ;
- VAR:missing_value = -1.e+34f ;
- VAR:_FillValue = -1.e+34f ;
- VAR:long_name = "X[GX=XAXIS]" ;
- VAR:history = "From degrees" ;
- double YFIFTEEN(YFIFTEEN) ;
- YFIFTEEN:units = "degrees_north" ;
- YFIFTEEN:point_spacing = "even" ;
- YFIFTEEN:axis = "Y" ;
- YFIFTEEN:standard_name = "latitude" ;
- double Y_(YFIFTEEN) ;
- Y_:missing_value = -1.e+34 ;
- Y_:_FillValue = -1.e+34 ;
- Y_:long_name = "Y" ;
- Y_:long_name_mod = "axis YFIFTEEN" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
-bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
-netcdf a {
-dimensions:
- XLON = 40 ;
- YLAT = 30 ;
- TTIME = UNLIMITED ; // (20 currently)
-variables:
- double XLON(XLON) ;
- XLON:units = "degrees_east" ;
- XLON:point_spacing = "even" ;
- XLON:modulo = 360. ;
- XLON:axis = "X" ;
- XLON:standard_name = "longitude" ;
- double YLAT(YLAT) ;
- YLAT:units = "degrees_north" ;
- YLAT:point_spacing = "even" ;
- YLAT:axis = "Y" ;
- YLAT:standard_name = "latitude" ;
- double TTIME(TTIME) ;
- TTIME:units = "days since 1901-01-15 00:00:00" ;
- TTIME:time_origin = "15-JAN-1901 00:00:00" ;
- TTIME:axis = "T" ;
- TTIME:standard_name = "time" ;
- float XYTVAR(TTIME, YLAT, XLON) ;
- XYTVAR:missing_value = -1.e+34f ;
- XYTVAR:_FillValue = -1.e+34f ;
- XYTVAR:long_name = "L*1000 + J*10 + I" ;
- XYTVAR:history = "From bn_strides" ;
-
-// global attributes:
- :history = "FERRET V6.925 7-Oct-14" ;
- :Conventions = "CF-1.6" ;
-}
------
-end of ncdump output
-
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes?
-yes?
-yes? GO bn_startupfile
- NOAA/PMEL TMAP
- FERRET v6.925
- Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
- 7-Oct-14 10:44
-
-CAN MODE VERIFY
- Current size of FERRET memory cache: 31 MegaWords (1 word = 8 bytes)
-PPL$XPIXEL = "656"
-PPL$YPIXEL = "492"
-BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.925"
-FERRET_PLATFORM = "Linux 2.6.18-371.12.1.el5 64-bit"
-FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
-FERRET_MEMORY = "31"
-SESSION_DATE = " 7-Oct-14"
-SESSION_TIME = "10:44"
-SESSION_PID = "14783"
-DELTA_CPU = "0.031994"
-CLOCK_SECS = "0.316"
-CURRENT_DATE = " 7-Oct-14"
-CURRENT_TIME = "10:44:12"
-N_OPEN_DSETS = "0"
-PROGRAM_NAME = "Ferret"
-LAST_GO_FILE = "./bn_startupfile.jnl"
-PPL$FORMAT = "(3F10.2)"
-PPL$PLTNME = "startup_tests.plt"
-PPL$TEKNME = "/dev/tty"
-PPL$XLEN = "8.000"
-PPL$YLEN = "6.000"
-PPL$XORG = "1.200"
-PPL$YORG = "1.400"
-PPL$WIDTH = "10.20"
-PPL$HEIGHT = "8.800"
-PPL$LINE_COUNT = "0"
-PPL$XFACT1 = "1.000"
-PPL$XOFF1 = "0.000"
-PPL$YFACT1 = "1.000"
-PPL$YOFF1 = "0.000"
-PPL$VIEW_X = "0.000"
-PPL$VIEW_Y = "0.000"
-PPL$VIEW_Z = "0.000"
-PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "7-Oct-14:10:44"
-VP_WIDTH = "10.2"
-VP_HEIGHT = "8.8"
-VP_SCALE = "1"
-VP_RT_MARGIN = "1"
-VP_TOP_MARGIN = "1.4"
-VP_XLO = "0"
-VP_XHI = "1"
-VP_YLO = "0"
-VP_YHI = "1"
-GO_FILE = "./bn_startupfile.jnl"
- MODE STATE ARGUMENT
- DIAGNOSTIC CANCELLED 99
- VERIFY CANCELLED DEFAULT
- INTERPOLATE CANCELLED
- IGNORE_ERROR CANCELLED
- STUPID CANCELLED
- JOURNAL SET startup_tests.jnl
- LONG_LABEL SET 1
- LATIT_LABEL CANCELLED 1
- DEPTH_LABEL SET -4
- CALENDAR SET minutes
- 6D_LAB SET
- ASCII_FONT SET
- SEGMENT SET
- WAIT CANCELLED
- DESPERATE CANCELLED 3100000
- GKS SET
- REFRESH SET
- METAFILE SET startup_tests.plt
- PPLLIST CANCELLED ppllist.out
- GUI CANCELLED
- LOGO SET
- LABELS SET
- GRATICULE SET
- LINECOLORS SET 7
- UPCASE_OUTPU SET
- NLEVELS SET 100
- NODATA_LAB SET
- SHRINK_YLAB CANCELLED
- CURVILINEAR CANCELLED
- SIGMA CANCELLED
- currently SET data sets:
- 1> ./gtbc011.cdf (default)
- name title I J K L M N
- TEMP TEMPERATURE 70:72 1:100 1:27 1:3 ... ...
- SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3 ... ...
- U ZONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- V MERIDIONAL VELOCITY 69:72 1:100 1:27 1:3 ... ...
- W VERTICAL VELOCITY 70:71 1:100 1:27 1:3 ... ...
- TAUX ZONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
- PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
-
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes?
-yes?
-yes? GO bn_gif
- NOAA/PMEL TMAP
- FERRET v6.925
- Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
- 7-Oct-14 10:44
-
-! bn450_gif.JNL - copied from bn450_plot.jnl
-! this journal file only tests the writing of gif file in batch mode using
-! frame/file=bnplot.gif....will create three gif files
-! *kob*
-
-! define a 6 viewport window (modified definitions 11/92)
-def view/text=.4/xlim=0,.333/ylim=0,.5 ll6
-def view/text=.2/xlim=0,.333/ylim=.5,1 ul6
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6
-def view/text=1.5/xlim=.666,1/ylim=0,.5 lr6
-def view/xlim=.666,1/ylim=.5,1 ur6 ! auto /TEXT
-show view
-
- name text xlimits ylimits mode
+! so did this
+frame/file=a.png
- UPPER 1.00 0.00,1.00 0.50,1.00 edges
- LOWER 1.00 0.00,1.00 0.00,0.50 edges
- RIGHT 1.00 0.50,1.00 0.00,1.00 edges
- LEFT 1.00 0.00,0.50 0.00,1.00 edges
- LL 0.50 0.00,0.50 0.00,0.50 edges
- LR 0.50 0.50,1.00 0.00,0.50 edges
- UL 0.50 0.00,0.50 0.50,1.00 edges
- UR 0.50 0.50,1.00 0.50,1.00 edges
- FULL 1.00 0.00,1.00 0.00,1.00 edges
- LL6 0.40 0.00,0.33 0.00,0.50 edges
- UL6 0.20 0.00,0.33 0.50,1.00 edges
- LM6 0.10 0.33,0.67 0.00,0.50 edges
- UM6 0.60 0.33,0.67 0.50,1.00 edges
- LR6 1.50 0.67,1.00 0.00,0.50 edges
- UR6 0.41 0.67,1.00 0.50,1.00 edges
- current viewport is NONE
-
-! some variables for plotting
-let a = 0.8*sin(l/10)
-let b = 0.6*cos(l/10)
-let c = sin(100/(l+k))
-let d = l/50
-let e = k-(l/25)
-let f = -.5+(l/125)
-let g = (l-25)/(k*35)
-let h = 0.1
-let m = 0.2
-
-! illegal plot commands
-set mode ignore
-plot/i=1:10/j=1:20/nolabel i+j ! not a line
-plot/i=1:10/j=1:20/nolabel i,i+j ! not a line
-plot/i=1:10/j=1:20/nolabel i+j,i ! not a line
-plot/i=1:10/j=1:20/nolabel j,i ! differing axes
-plot/i=1:10/j=1:20/vs/line/nolabel j,i ! unequal lengths
-contour/i=1:10/j=1:20/nolabel i ! only 1 D
-contour/i=1:10/j=1:20/nolabel i/j,j/i ! multiple fields
-vector/i=1:10/j=1:20/nolabel i/j ! only 1 field
-vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j ! 3 fields
-set mode/last ignore
-
-! notice the default window size is 10.2,width x 8.8,height
-ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
- WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
- PLOT MODE= A
- PLOT FILE= .gif [...]
-
-! enlarge it to accomodate an additional 50% width
-ppl size 15.3,8.8
-
-! turn on metafile (enabled 10/29/91)
-! commented out 9/97 - instead set in bn450_all.jnl
-! set mode metafile
-
-! draw a plot into a viewport - to be deleted (check hard copy)
-set view ll6
-contour/i=1:50/j=1:50/nolabel i/(j+20)
-
-! 4 frames testing PLOT output
-set view ul6
-plot/l=1:50/k=1/trans/nolabel a,b,c
-plot/l=1:50/k=1/trans/over/line=6/nolabel d
-plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
-plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
-def view/text=.1/xlim=.333,1/ylim=0,.5 lm6 ! redefine longer in x (11/92)
-set view lm6
-!ppl axlen 16
-set region/k=1
-plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-def view/text=.6/xlim=.333,1/ylim=.5,1 um6 ! redefine it longer in x (11/92)
-set view um6
-!ppl axlen 17,5
-plot/l=1:50/nolabel sin(100/(l+5))
-plot/l=1:50/over/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-set view ll6
-!ppl axlen 8,6
-plot/l=1:99000/nolabel sin(200000/(l+10000))
-
-! reset to normal axis lengths and prepare for a new piccie
-!ppl axlen 8
-frame/file=bnplot.gif
-set wind/clear
-
-! draw six frames
-set view ll6
-contour/i=1:50/j=1:50/levels=(0,2.5,.25)/nolabel i/(j+20)
-plot/over/nolab/vs/line/i=1:50/j=1:50/nolabel 6*i/j,5*j/i
-set view ul6
-vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6 ! redefine it (11/92)
-set view lm6
-shade/i=1:50/j=1:50/nolabel i/(j+20)
-set view lr6
-ppl lev () (0,2.5,.1)
-shade/i=1:50/j=1:50/line/level/nolabel i/(j+20)
-set view ur6
-let icomp = (sin(i/20)*10+j-20)
-let jcomp = (-1*cos(j/10)*10+i-20)
-contour/i=1:50/j=1:50/nolabel icomp^2+jcomp^2
-contour/i=1:50/j=1:50/over/level/nolabel icomp^2+(-1*cos(i/10)*80)^2
-! note: "i-i" and "j-j" are needed to create 2D structures
-vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
-vector/i=1:50/j=1:50/overlay/length/nolabel i-20+(j-j),40-j+(i-i)
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6 ! redefine it (11/92)
-set view um6
-shade/i=1:50/j=1:50/nolabel i/(j+20)
-contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
-vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
-frame/file=bnplot.gif
-! additions for version 3.01 "/TITLE=" controls
-cancel viewports
-set view ul6
-plot/title="My Custom Title"/i=1:100/nolabel sin(i/6)
-plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/5)
-set view um6
-plot/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
-plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view ur6
-plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
-plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view ll6
-plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
-plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view lm6
-contour/i=1:20/j=1:20/title="My Contour Title"/nolabel sin(i/3)*cos(j/4)
-contour/over/i=5:30/j=5:30/title="My Contour Overlay"/nolabel sin(i/2)*cos(j/3)
-set view lr6
-wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
-
-! addition for 3.20 showing changed default behavior of plot/vs
-! return to window and redraw with symbols
-set view ll6
-plot/vs/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
-plot/vs/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-frame/file=bnplot.gif
-
-! Prior to v5.8 could not get the window size in pixels when in gif mode
-show symbol ppl$xpixel
-PPL$XPIXEL = "1152"
-show symbol ppl$ypixel
-PPL$YPIXEL = "662"
-
-! V6.13
-! transparency with FRAME/TRANS
-!!
-! These gif images have the background color white or black
-! replaced by transparent color. This can be tested by putting
-! them into an HTML document with a colored background.
-! e.g. a file called test_transparent.html containing only this line:
-! <html> <body bgcolor="orange"> <img src="testfile.gif"/> </body> </html>
-
-can view
-use coads_climatology
-shade/nokey/lev=50 sst[L=1]
-frame/trans/file=testbackground.gif
-
-! moved here from bn500_bug_fixes.jnl. The frame/ command it contains
-! has trouble when running the benchmarks from remote desktop
-go bn_reset
-cancel mode verify
-go err491_long_gif_name
-! err491_long_gif_name.jnl
-! *sh* 4/99 - test 175 character gif name
-
-! name length extended with changes to save_frame.F and xeq_frame.F
-
-set wind/siz=0.03
-go ptest
-! Description: create a simple test line plot
-
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
-
-
-sp rm -f abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
-
-frame/file="abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif"
-
-spawn ls abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
-abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif
-
-
-! The fix for bug 1396
-set v ul; plot/dash x[gx=0:20:.5]
-set v ur; plot/dash x[gx=0:20:.1]
-set v ll; plot/dash x[gx=0:20:.05]
-set v lr; plot/dash x[gx=0:20:.01]
-frame/file=gif_dashbug.gif
-
-exit/command
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes?
-yes?
-yes? GO bn_ps
- NOAA/PMEL TMAP
- FERRET v6.925
- Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
- 7-Oct-14 10:44
-
-! bn450_ps.JNL - copied from bn450_plot.jnl
-! this journal file only tests the writing of ps files in batch mode using
-! "-batch bnplot.ps" command line option...will create on final ps file
-! *kob*
-
-! define a 6 viewport window (modified definitions 11/92)
-def view/text=.4/xlim=0,.333/ylim=0,.5 ll6
-def view/text=.2/xlim=0,.333/ylim=.5,1 ul6
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6
-def view/text=1.5/xlim=.666,1/ylim=0,.5 lr6
-def view/xlim=.666,1/ylim=.5,1 ur6 ! auto /TEXT
-show view
-
- name text xlimits ylimits mode
-
- UPPER 1.00 0.00,1.00 0.50,1.00 edges
- LOWER 1.00 0.00,1.00 0.00,0.50 edges
- RIGHT 1.00 0.50,1.00 0.00,1.00 edges
- LEFT 1.00 0.00,0.50 0.00,1.00 edges
- LL 0.50 0.00,0.50 0.00,0.50 edges
- LR 0.50 0.50,1.00 0.00,0.50 edges
- UL 0.50 0.00,0.50 0.50,1.00 edges
- UR 0.50 0.50,1.00 0.50,1.00 edges
- FULL 1.00 0.00,1.00 0.00,1.00 edges
- LL6 0.40 0.00,0.33 0.00,0.50 edges
- UL6 0.20 0.00,0.33 0.50,1.00 edges
- LM6 0.10 0.33,0.67 0.00,0.50 edges
- UM6 0.60 0.33,0.67 0.50,1.00 edges
- LR6 1.50 0.67,1.00 0.00,0.50 edges
- UR6 0.41 0.67,1.00 0.50,1.00 edges
- current viewport is NONE
-
-! some variables for plotting
-let a = 0.8*sin(l/10)
-let b = 0.6*cos(l/10)
-let c = sin(100/(l+k))
-let d = l/50
-let e = k-(l/25)
-let f = -.5+(l/125)
-let g = (l-25)/(k*35)
-let h = 0.1
-let m = 0.2
-
-! illegal plot commands
-set mode ignore
-plot/i=1:10/j=1:20/nolabel i+j ! not a line
-plot/i=1:10/j=1:20/nolabel i,i+j ! not a line
-plot/i=1:10/j=1:20/nolabel i+j,i ! not a line
-plot/i=1:10/j=1:20/nolabel j,i ! differing axes
-plot/i=1:10/j=1:20/vs/line/nolabel j,i ! unequal lengths
-contour/i=1:10/j=1:20/nolabel i ! only 1 D
-contour/i=1:10/j=1:20/nolabel i/j,j/i ! multiple fields
-vector/i=1:10/j=1:20/nolabel i/j ! only 1 field
-vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j ! 3 fields
-set mode/last ignore
-
-! notice the default window size is 10.2,width x 8.8,height
-ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
- WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
- PLOT MODE= A
- PLOT FILE= bnplot.ps [...]
-
-! enlarge it to accomodate an additional 50% width
-ppl size 15.3,8.8
-
-! turn on metafile (enabled 10/29/91)
-! commented out 9/97 - instead set in bn450_all.jnl
-! set mode metafile
-
-! draw a plot into a viewport - to be deleted (check hard copy)
-set view ll6
-contour/i=1:50/j=1:50/nolabel i/(j+20)
-
-! 4 frames testing PLOT output
-set view ul6
-plot/l=1:50/k=1/trans/nolabel a,b,c
-plot/l=1:50/k=1/trans/over/line=6/nolabel d
-plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
-plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
-def view/text=.1/xlim=.333,1/ylim=0,.5 lm6 ! redefine longer in x (11/92)
-set view lm6
-!ppl axlen 16
-set region/k=1
-plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-def view/text=.6/xlim=.333,1/ylim=.5,1 um6 ! redefine it longer in x (11/92)
-set view um6
-!ppl axlen 17,5
-plot/l=1:50/nolabel sin(100/(l+5))
-plot/l=1:50/over/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-set view ll6
-!ppl axlen 8,6
-plot/l=1:99000/nolabel sin(200000/(l+10000))
-
-! reset to normal axis lengths and prepare for a new piccie
-!ppl axlen 8
-
-set mode ignore
-frame/file=bnplot.ps ! DELIBERATE ERROR MESSAGE
-can mode ignore
-exit/command
-yes? ! this "shell" is used because the Unix redirection fails to echo commands
-yes? ! from the top level command file
-yes? ! ... havn't explored the reason ... they echo fine to the screen
-yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
-yes?
-yes?
-yes? GO bn_batch_metafile
- NOAA/PMEL TMAP
- FERRET v6.925
- Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
- 7-Oct-14 10:44
-
-! bn_batch_metafile.jnl
-! Run at the end of the benchmark scripts, starting ferret with the flags
-! -batch bat.plt
-! Produces nine metafiles.
-
-cancel mode logo
-
-! test viewports and set window/clear; cancel viewport
-set view upper
-plot/i=1:150 sin(i/12)
-set view lower
-plot/color=red/i=1:150 cos(i/10)
-
-set window/clear
-
-set view left
-shade/i=1:15/j=1:15/lev=30 i*j
-set view right
-shade/i=1:15/j=1:15 cos(i)* sin(j)
-
-cancel viewports
-
-set view ur
-plot/i=1:12 1./i
-set view ll
-shade/i=1:150/j=1:150 cos(i/10) - sin(j/12)
-
-! polygon command and palette
-
-cancel viewports
-polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
-
-! more viewports, with pplus/reset
-
-set view upper; shade/i=1:10/j=1:10 i*j
-cancel viewports
-pplus/reset
-
-! cancel viewports when viewport wasnt set
-! and set window/clear after cancel viewports
-
-plot/vs/line/i=1:314 i*cos(i/20),i*sin(i/20)
-plot/vs/line/over/i=1:314 i*cos(i/30),i*sin(i/20)
-
-cancel viewports
-set window/clear
-
-! aspect ratio can be set
-
-set window/asp=3
-shade/i=1:15/j=1:15/lev=20 i*j
-
-set win/asp=1
-fill/i=1:15/j=1:15/lev=20 i*j
-
-pplus/reset
-
-
-! Bug 1396 fixed
-
-set v ul; plot/dash x[gx=0:20:.5]
-set v ur; plot/dash x[gx=0:20:.1]
-set v ll; plot/dash x[gx=0:20:.05]
-set v lr; plot/dash x[gx=0:20:.01]
-cancel viewports
-
-! intentional errors and ignored commands
-! set and cancel mode metafile are ignored
-
-set mode metafile new.plt
-
-cancel mode metafile
-
-plot/i=1:12/title="after cancel mode metafile in batch mode" 1./i
-
-! set window commands are ignored, except for set window/aspect
-set window/new
-
-set window/location=0.1,0.1/title="another title"
-
-set mode/last logo
-exit/command
-Ended at Tue Oct 7 10:44:14 PDT 2014
+! this is (always) ok
+frame/file=a.gif
+frame/format=gif file=a.plot
+FERRET ERRROR*********************************
diff --git a/bench/bn691_bug_fixes.jnl b/bench/bn691_bug_fixes.jnl
index ddeb2e5..a9374ec 100644
--- a/bench/bn691_bug_fixes.jnl
+++ b/bench/bn691_bug_fixes.jnl
@@ -73,3 +73,6 @@ GO err69_vtree_cancel_axis
GO bn_reset
GO err69_isready_bugs
+
+GO bn_reset
+GO err691_substring_arg
diff --git a/bench/bn694_bug_fixes.jnl b/bench/bn694_bug_fixes.jnl
new file mode 100644
index 0000000..f735007
--- /dev/null
+++ b/bench/bn694_bug_fixes.jnl
@@ -0,0 +1,108 @@
+! bn694_bug_fixes
+! test various fixes that went into version 6.94
+! 11/2014 ACM
+! 12/2014 *sh* added IF-THEN flow fixes, including review of past tickets
+! 1/2015 *sh* added test for undetected bad dataset name in regrid target
+
+GO bn_reset
+GO err693_upcase_quoted_name
+
+GO bn_reset
+GO err693_isready_hang
+
+GO bn_reset
+GO err693_isready_dyn_grid_crash ! 12/23/2014
+
+GO bn_reset
+GO err693_attr_in_gcfcn
+
+GO bn_reset
+GO err693_inconsistent_quote
+
+! IF-THEN flow tests
+GO bn_reset
+GO err693_if_then_flow_2214
+
+GO bn_reset
+GO err693_if_then_flow_2211
+
+GO bn_reset
+GO err693_if_then_flow_1860
+
+GO bn_reset
+GO err693_if_then_flow_1446
+
+GO bn_reset
+GO err693_if_then_flow_1681
+
+GO bn_reset
+GO err693_if_then_flow_1706
+
+GO bn_reset
+GO err693_if_then_flow_1368 ! Jan 28, 2010, Ferret version 5.812
+
+GO bn_reset
+GO err693_ribbon_start_missing
+
+GO bn_reset
+GO err691_pt_in_poly
+
+GO bn_reset
+GO err693_undetected_regrid_dset
+
+GO bn_reset
+GO err693_line_over_axis
+
+GO bn_reset
+GO err693_save_packed
+
+GO bn_reset
+GO err693_subspan_trans
+
+GO bn_reset
+GO err693_repeat_err
+
+GO bn_reset
+GO err693_edit_useratt
+
+GO bn_reset
+GO err693_redef_rec_axis
+
+GO bn_reset
+GO err693_frame_types
+
+GO bn_reset
+GO err693_shape
+
+GO bn_reset
+GO err693_ef_axis_precision
+
+GO bn_reset
+GO err693_string_results
+
+GO bn_reset
+GO err693_lev_nv_over
+
+GO bn_reset
+GO err693_fcn_of_attvar
+
+GO bn_reset
+GO err693_isize_and_gcfcn
+
+GO bn_reset
+GO err693_ribbon_scale
+
+GO bn_reset
+GO err693_parse_curly
+
+GO bn_reset
+GO err693_list_missing
+
+GO bn_reset
+GO err693_shf_subscr
+
+GO bn_reset
+GO err693_shift_w_region
+
+GO bn_reset
+GO err693_scalar_grids
diff --git a/bench/bn695_bug_fixes.jnl b/bench/bn695_bug_fixes.jnl
new file mode 100644
index 0000000..082b807
--- /dev/null
+++ b/bench/bn695_bug_fixes.jnl
@@ -0,0 +1,11 @@
+! bn695_bug_fixes
+! test various fixes that went into version 6.95
+
+GO bn_reset
+GO err694_shf_missing
+
+GO bn_reset
+GO err694_longname_showdat
+
+GO bn_reset
+GO err693_std4d
diff --git a/bench/bn696_bug_fixes.jnl b/bench/bn696_bug_fixes.jnl
new file mode 100644
index 0000000..356ed34
--- /dev/null
+++ b/bench/bn696_bug_fixes.jnl
@@ -0,0 +1,8 @@
+! bn696_bug_fixes
+! test various fixes that went into version 6.96
+
+GO bn_reset
+GO err695_bounds_match_axis
+
+GO bn_reset
+GO err695_show_dat_nodata
diff --git a/bench/bn_DQ.jnl b/bench/bn_DQ.jnl
new file mode 100644
index 0000000..c150e33
--- /dev/null
+++ b/bench/bn_DQ.jnl
@@ -0,0 +1,240 @@
+! bn_DQ.jnl *sh* 2/2015
+! test the use of _DQ_ and _SQ_ in lieu of " and '
+
+let foobar = 1
+let foobar_ = 1
+
+LIST foobar, foobar_
+
+LIST "foobar" ! bug fix: pre-V694 used to list the value of foobar
+let a = "foobar"
+list a
+
+list _DQ_foobar_DQ_
+let a = _DQ_foobar_DQ_
+list a
+
+! ======
+list "_DQ_foobar_DQ_"
+let a = "_DQ_foobar_DQ_"
+list a
+
+list _DQ_"foobar"_DQ_
+let a = _DQ_"foobar"_DQ_
+list a
+
+! ======
+list 'FOOBAR'
+let a = 'FOOBAR'
+list a
+
+list _SQ_FOOBAR_SQ_
+let a = _SQ_FOOBAR_SQ_
+list a
+
+! ======
+list "'foobar'"
+let a = "'foobar'"
+list a
+
+list _DQ_'foobar'_DQ_
+let a = _DQ_'foobar'_DQ_
+list a
+
+! ======
+list "_SQ_foobar_SQ_"
+let a = "_SQ_foobar_SQ_"
+list a
+
+list _DQ__SQ_foobar_SQ__DQ_
+let a = _DQ__SQ_foobar_SQ__DQ_
+list a
+
+! ======
+list 'FOOBAR' + 'FOOBAR'
+let a = 'FOOBAR' + 'FOOBAR'
+list a
+
+list _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_ ! should behave like the preceding
+let a = _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+list a
+
+! ====== demonstrate hiding all sorts of characters
+let a = _DQ_'"+-/;_SQ_foobar"'_DQ_
+list a
+
+! ======
+say "hello"
+say _DQ_hello_DQ_
+
+! ======
+list {"foobar","foobar"}
+let a = {"foobar","foobar"}
+list a
+
+list {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+let a = {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+list a
+
+list {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_} ! DQ used to protect '"'
+let a = {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+list a
+
+! ======
+list {SPAWN:"ls weird_name1.cdf","foobar"}
+let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+list a
+
+list {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list a
+
+list {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list a
+
+! ======
+! in repl_exprns:
+say `"=" EQ "="`
+say `_DQ_=_DQ_ EQ _DQ_=_DQ_`
+say `_DQ_"="_DQ_ EQ _DQ_"="_DQ_` ! DQ used to protect '"'
+
+! in xeq_if:
+IF 1 THEN SAY "I is too big" ENDIF
+IF 1 THEN SAY _DQ_I is too big_DQ_ ENDIF
+IF 1 THEN SAY _DQ_"I is too big"_DQ_ ENDIF ! DQ used to protect '"'
+
+! ======
+DEFINE SYMBOL a "foobar"
+say ($a)
+DEFINE SYMBOL a _DQ_foobar_DQ_
+say ($a)
+
+! ======
+DEFINE SYMBOL a "(`foobar,return=xaxis`)"
+say ($a)
+DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
+say ($a)
+
+! ======
+GO bn_DQ.sub _DQ_+-/_SQ_\!foo"bar;_SQ_"_DQ_ "_DQ_+-/_SQ_\!foobar;_SQ_"
+
+! ====== string arguments to functions
+list STRCAT( "HELL" , "O" )
+list STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+
+! ======
+let/title= "title of A" a = 1
+list a
+let/title=_DQ_title of A_DQ_ a = 1
+list a
+let/title=_DQ_"title of A"_DQ_ a = 1 ! DQ used to protect '"'
+list a
+
+! ======
+use weird_name1.cdf
+list 'v2-and-minus'[i=4:6]
+list _SQ_v2-and-minus_SQ_[i=4:6]
+list 'v2-and-minus'[i=4:6]
+list _SQ_v2-and-minus_SQ_[i=4:6]
+list 'v2-and-minus'[i=4:6] / 'X'[i=4:6]
+list _SQ_v2-and-minus_SQ_[i=4:6] / _SQ_X_SQ_[i=4:6]
+
+! ======
+SET REGION/T= "1-jan-2001":"15-jan-2001"
+SHOW REGION
+SET REGION/T=_DQ_1-jan-2001_DQ_:_DQ_15-jan-2001_DQ_
+SHOW REGION
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+SET REGION/T= "1-jan-2001:12:00":"15-jan-2001 12:00"
+SHOW REGION
+SET REGION/T=_DQ_1-jan-2001:12:00_DQ_:_DQ_15-jan-2001 12:00_DQ_
+SHOW REGION
+
+! ======
+DEFINE ATTRIBUTE foobar.some_text = "some text about foobar"
+SHOW ATTRIBUTE/ALL foobar
+DEFINE ATTRIBUTE foobar.some_text = _DQ_some text about foobar_DQ_
+SHOW ATTRIBUTE/ALL foobar
+DEFINE ATTR foobar.some_text = _DQ_"quoted attribute"_DQ_ ! DQ protects '"'
+SHOW ATTRIBUTE/ALL foobar
+
+! ======
+SPAWN "ls weird_name1.*"
+SPAWN _DQ_ls weird_name1.*_DQ_
+
+! ======
+LET a = {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+LIST a
+LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+LIST a
+
+! =========================
+! !!!!!! TEMPORARY LINE
+! !!!!!! see bug report err693_xeq_show.jnl
+show data ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
+! !!!!!!
+! =========================
+ ! ======
+define grid/x=_DQ_v1_DQ_ gg
+show grid gg
+
+! ======
+LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
+LIST A
+
+! ======
+contour/LEVELS= "(-10,10,2)DARK(-10,10,8)" \
+ 10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+contour/LEVELS= _DQ_(-10,10,2)DARK(-10,10,8)_DQ_ \
+ 10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+
+! ====== parse, parsex routines
+!plot/set x[i=1:3]^2
+!ppl title "'A title w/ single quotes'. Ship Ka'imimoana"
+!ppl plot
+!label 2,5,0 "'A title w/ single quotes'. Ship Ka'imimoana"
+
+plot/set x[i=1:3]^2
+ppl title _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' for emacs
+ppl plot
+label 2,5,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ppl %label 2,4,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+
+! ====== EQUAL_PEMUTE
+list/order=_DQ_yx_DQ_ 10*i[i=1:3] + j[j=1:2]
+
+! ====== EQUAL_COLOR
+plot/color=_DQ_red_DQ_ i[i=1:100]^2
+
+! ====== EQUAL_RANGE
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980" \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980_DQ_ \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980:12:00" \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+
+! the following usages for _DQ_ and _SQ_ are NOT supported:
+! 1. internal PLOT+ syntax
+! e.g. PPL XFOR (i5, ''LONW'')
+
+! 2. quote used as a delimiter for symbol substitution
+! e.g. ($mysymbol"0|red>1|green>2") ! several single char als. e.g. "%"
+
+! in xeq_set: double quotes around SET MODE argument -- _DQ_ not supported
+
+! in put_label: special hack for "'date'" -- _SQ_ not supported
+
+! it isn't clear that there is really a requirement for the _SQ_ syntax at all
+! since we are adding this feature to meet our own needs in LAS, we won't
+! make the extra effort to hit all of the obscure cases. As a result, the
+! occurrences of IF string .EQ. "'" in these routines will be ignored
+! - break_varname
+! - break_varattname
+! - inherit_attrs
+
+! in xeq_define.F: DEFINE AXIS/NAME='my-name' is of unclear purpose
diff --git a/bench/bn_DQ.sub b/bench/bn_DQ.sub
new file mode 100644
index 0000000..ad87f32
--- /dev/null
+++ b/bench/bn_DQ.sub
@@ -0,0 +1,5 @@
+! bn_DQ.sub arg_with_DQ arg_with_quotes
+
+SAY _DQ_ "-quotations ok as in $1%any_arg_with_quotes%_DQ_
+SAY "_DQ_ delimiters ok as in $2%any_arg_with_DQ%"
+
diff --git a/bench/bn_aggregate_e.jnl b/bench/bn_aggregate_e.jnl
index c6fe56e..ed3e528 100644
--- a/bench/bn_aggregate_e.jnl
+++ b/bench/bn_aggregate_e.jnl
@@ -1,5 +1,5 @@
! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
+! using the DEFINE DATA/AGGREGATE/E command
! Datasets share sst, but only ens1 has airt.
set mode diag
diff --git a/bench/bn_all.jnl b/bench/bn_all.jnl
index 0dc4945..fb83d0e 100644
--- a/bench/bn_all.jnl
+++ b/bench/bn_all.jnl
@@ -103,6 +103,7 @@ SET MODE VERIFY
! 11/06 *acm* New bn602_bug_fixes for version 6.02
* V610 *acm* 3/08 - add new MODE NLEVELS
* V685 *sh* 11/13 - added bn_vtree to test SHOW VAR/TREE
+* V698+ *sh* 06/15 - added bn_auxiliary
! Include this statement to compare the outupt of 6D Ferret with
! previous 4D benchmark logs.
@@ -901,7 +902,7 @@ GO bn_stddev
GO bn_reset
GO bn_set_axis_name
-! *********** v6.9+ Additions ***********
+! *********** v6.93 Additions ***********
GO bn_reset
GO bn691_bug_fixes
@@ -932,6 +933,69 @@ GO bn_spawn_size
GO bn_reset
GO bn_polygon_log
+! *********** v6.94Additions ***********
+
+GO bn_reset
+GO bn694_bug_fixes
+
+GO bn_reset
+GO bn_permute_ascii
+
+GO bn_reset
+GO bn_lon_lat_time_string
+
+GO bn_reset
+GO bn_save_justdim
+
+GO bn_reset
+GO bn_time2d
+
+GO bn_reset
+GO bn_legend_labels
+
+GO bn_reset
+GO bn_DQ
+
+! *********** v6.95Additions ***********
+
+GO bn_reset
+GO bn695_bug_fixes
+
+GO bn_reset
+GO bn_f_tax_fcns
+
+GO bn_reset
+GO bn_fmrc
+
+GO bn_reset
+GO bn_return_defined
+
+GO bn_reset
+GO bn_can_var_noerr
+
+GO bn_reset
+GO bn_annotate
+
+GO bn_reset
+GO bn_auxiliary
+
+GO bn_reset
+GO bn_plot_ribbon_gaploc
+
+GO bn_reset
+GO bn_time_short_axes
+
+GO bn_reset
+GO bn_floatstr_extended
+
+! *********** v6.96 Additions ***********
+
+GO bn_reset
+GO bn696_bug_fixes
+
+GO bn_reset
+GO bn_bin_regrid
+
! *********** Always do a bn_reset ***********
! *********** make sure things clean up well **
GO bn_reset
diff --git a/bench/bn_annotate.jnl b/bench/bn_annotate.jnl
new file mode 100644
index 0000000..c78c55c
--- /dev/null
+++ b/bench/bn_annotate.jnl
@@ -0,0 +1,217 @@
+! bn_annotate.jnl
+! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
+! locates user-defined labels on a plot.
+! /USER and /NOUSER behave as the LABEL command does
+! /NORM locates labels relative to the plot axis, treating them as a unit "square".
+! /VALIGN moves the label up or down relative to the direction of the label
+! /HALIGN is -1, 1, or 0 as always, or larger values to move the label horizontally
+! relative to the direction of the label. Allows us to move, say, one character in
+! or out from the axis corner.
+
+can mode logo
+
+! ANNOTATE /USER
+set v ul
+plot/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+annotate/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=0.2 "X"
+annotate/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=0.2 "X"
+annotate/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=0.2 "X"
+
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+annotate/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=0.2 "BOX"
+
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+ annotate/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=0.2 "BOX"
+
+plot/ov/vs/sym=2/size=2/nolab 3,0
+annotate/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=0.2 "TOP"
+annotate/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=0.2 "BOTTOM"
+
+plot/ov/vs/sym=2/size=2/nolab -3,0
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=0.2 "M"
+
+
+
+! ANNOTATE/NORM
+set v ur
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+
+annotate/norm/xpos=.5/ypos=1.1/halign=0/angle=0/size=0.14 "FLOATING TITLE"
+annotate/norm/xpos=.5/ypos=-.2/halign=0/angle=0/size=0.14 "SUBMERGED TITLE"
+annotate/norm/xpos=0/ypos=1/halign=-1/angle=0/size=0.14 "LEFT/TOP"
+annotate/norm/xpos=.5/ypos=1/halign=0/angle=0/size=0.14 "CTR/TOP"
+annotate/norm/xpos=1/ypos=1/halign=1/angle=0/size=0.14 "RIGHT/TOP"
+annotate/norm/xpos=1/ypos=.5/halign=0/angle=-90/size=0.14 "RIGHT EDGE"
+annotate/norm/xpos=0/ypos=.5/halign=0/angle=90/size=0.14 "LEFT EDGE"
+annotate/norm/xpos=.5/ypos=.5/halign=0/valign=0/angle=0/size=0.14 "DEAD CENTER"
+annotate/norm/xpos=.5/ypos=0/halign=0/valign=1/angle=0/size=0.14 "HANGING FROM BOTTOM"
+annotate/norm/xpos=0/ypos=0/halign=-2/valign=-2/angle=0/siz=0.1 "BOTTOM LEFT INSET"
+annotate/norm/xpos=0/ypos=1/halign=-2/valign=2/angle=0/siz=0.1 "TOP LEFT INSET"
+annotate/norm/xpos=1/ypos=0/halign=2/valign=-2/angle=0/siz=0.1 "BOTTOM RIGHT INSET"
+annotate/norm/xpos=1/ypos=1/halign=2/valign=2/angle=0/siz=0.1 "TOP RIGHT INSET"
+
+! ANNOTATE/NOUSER
+set v ll
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+
+! nouser
+annotate/nouser/xpos=0/ypos=0/halign=-1/angle=0/size=0.15 "At Origin"
+annotate/nouser/xpos=0/ypos=0/halign=-3/valign=-3/angle=0/size=0.15 "With/HALIGN=-3/VALIGN=-3"
+
+annotate/nouser/xpos=($ppl$xlen)/ypos=($ppl$ylen)/halign=1/valign=-1/angle=0/siz=0.15 "Right-align at upper right corner"
+annotate/nouser/xpos=($ppl$xlen)/ypos=($ppl$ylen)/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+
+plot/vs/line/over/color=lightblue/nolab {3,3},{1,6}
+plot/vs/line/over/color=lightblue/nolab {1,5}, {3,3}
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=`($ppl$ylen)/2`/halign=0/valign=0/angle=0/siz=0.15 \
+"Arguments locate the first<nl>line of multi-line labels "
+
+! angles
+set v lr
+
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+! nouser
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+annotate/nouser/xpos=0/ypos=0/halign=0/valign=0/angle=45/size=0.15 "Center At Origin"
+annotate/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+annotate/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+
+! Test defaults
+! Default is like PPL user-labels
+! /USER/SIZ=0.12/ANGLE=0/HALIGN=0/VALIGN=-1
+
+shade/x=1:2/y=1:2/pal=grayscale i+j
+annotate/xpos=1.5/ypos=1.8 "Anno Label"
+label 1.5,1.6,,,, PPL label
+
+
+! DEFINE ANNOTATION inside a grapchics call with /SET
+can view
+use gt4d011.cdf
+shade/set temp[k=1,l=1]
+ DEFINE ANNOTATION/user/xpos=224/ypos=-3/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+
+shade/set/j=40/L=1 temp
+ DEFINE ANNOTATION/user/xpos=224/ypos=80/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+
+can data/all
+
+plot/set/i=1:5 i
+! nouser
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=0/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=0/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=0/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=0/siz=0.15 "user units right at 3,4"
+ppl plot
+
+! angles
+
+plot/set/i=1:5 i
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=45/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=45/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=45/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=45/siz=0.15 "user units right at 3,4"
+ppl plot
+
+! DEFINE ANNO/NORM
+plot/i=1:5/nolab/set i
+def anno/norm/xp=.5/yp=1.1/hal=0/ang=0/size=.3 "FLOATING TITLE"
+def anno/norm/xp=.5/yp=-.2/hal=0/ang=0/size=.3 "SUBMERGED TITLE"
+def anno/norm/xp=0/yp=1/hal=-1/ang=0/size=.3 "LEFT/TOP"
+def anno/norm/xp=.5/yp=1/hal=0/ang=0/size=.3 "CTR/TOP"
+def anno/norm/xp=1/yp=1/hal=1/ang=0/size=.3 "RIGHT/TOP"
+def anno/norm/xp=1/yp=.5/hal=0/ang=-90/size=.3 "RIGHT EDGE"
+def anno/norm/xp=0/yp=.5/hal=0/ang=90/size=.3 "LEFT EDGE"
+def anno/norm/xp=.5/yp=.5/hal=0/val=0/ang=0/size=.3 "DEAD CENTER"
+def anno/norm/xp=.5/yp=0/hal=0/val=1/ang=0/size=.3 "HANGING FROM BOTTOM"
+def anno/norm/xp=0/yp=0/hal=-2/val=-2/ang=0/size=.2 "BOTTOM LEFT INSET"
+def anno/norm/xp=0/yp=1/hal=-2/val=2/ang=0/size=.2 "TOP LEFT INSET"
+def anno/norm/xp=1/yp=0/hal=2/val=-2/ang=0/size=.2 "BOTTOM RIGHT INSET"
+def anno/norm/xp=1/yp=1/hal=2/val=2/ang=0/size=.2 "TOP RIGHT INSET"
+ppl plot
+
+plot/set/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+
+define annotation/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=.5 "X"
+define annotation/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=.5 "X"
+define annotation/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=.5 "X"
+define annotation/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=.5 "BOX"
+define annotation/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=.5 "BOX"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=.5 "TOP"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=.5 "BOTTOM"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=.5 "M"
+ppl list labels
+ppl plot
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+plot/ov/vs/sym=2/size=2/nolab 3,0
+plot/ov/vs/sym=2/size=2/nolab -3,0
+
+! intentional errors
+set mode ignore
+can v
+shade/i=1:2/j=1:2/nokey i+j
+
+
+! errors in arguments
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+
+! missing a location
+annotate/nouser/ypos=0 "My Lab"
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+
+! /USER and /NOUSER
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+
+! define annotation
+
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/ypos=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/hal=1/val=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/user/xpos=0/ypos=0 "My Lab"; ppl plot
diff --git a/bench/bn_auxiliary.jnl b/bench/bn_auxiliary.jnl
new file mode 100644
index 0000000..1d135b3
--- /dev/null
+++ b/bench/bn_auxiliary.jnl
@@ -0,0 +1,403 @@
+! bn_auxiliary.jnl: exercise auxiliary coordinate regridding
+
+! notes about the 6/2015 version:
+! -- tests 1D regridding, only, as of 6/2015
+! -- includestests the deprecated "LAYERZ" and "__LayerzRef_" automation syntax
+! ... to be replaced by a different automation syntax in the future
+
+! *sh* 6/2015
+
+! initialize the test environment
+USE levitus_3d_subset
+SPAWN rm layerz_test_data.txt
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+
+! conjure a 4D auxiliary variable that contains the same values
+! as the native Z coordinates
+! regridding using this auxiliary variable should give the same results as
+! conventional regridding -- usefuly to validate the results
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+
+!************
+! exercise the syntax of setting layerz associations
+! do same tests on EZ, uvar, and netCDF variable
+
+! EZ file variable
+LIST/NOHEAD/FILE=layerz_test_data.txt 1
+FILE/VAR=v layerz_test_data.txt
+! set the layerz link to point to a variable named "depth"
+SET VAR/layerz=depth v
+SHOW VAR/LAYERZ v
+SHOW ATT v
+! modify the layerz link
+SET VAR/layerz=newdepth v
+SHOW VAR/LAYERZ v
+SHOW ATT v
+cancel var/layerz v
+SHOW VAR/LAYERZ v
+SHOW ATT v
+CANCEL DATA layerz_test_data.txt
+
+! user variable
+! set the layerz link
+LET a = temp
+SET VAR/layerz=depth a
+SHOW VAR/LAYERZ a
+SHOW ATT a
+! modify the layerz link
+SET VAR/layerz=newdepth a
+SHOW VAR/LAYERZ a
+SHOW ATT a
+cancel var/layerz a
+SHOW VAR/LAYERZ a
+SHOW ATT a
+
+! netCDF file variable
+! set the layerz link
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+! modify the layerz link
+SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+cancel var/layerz temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+SHOW ATT temp[d=levitus_3d_subset] ! __LayerzRef_ has been deleted
+
+! deliberate error
+SET MODE ignore; SET VAR/layerz=depth noexist; SET MODE/last ignore
+
+!************
+! exercise the layerz calculations in various situations
+! compare the manually specified syntax with the automated results
+
+! make "depth" the layerz coordinate variable for "temp"
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+
+! values of the unadulterated variable
+list/PREC=7 temp[z=0:500]
+SHOW GRID
+
+! use aux var regridding. Target coordinate points match the source points
+! identically at 0, 100, 200, ... 500
+! values should match the unadulterated variable at these points
+! this command will be issued in diagnostic mode to highlight that the
+! K range over which temp is read is the minimum needed to compute the result
+SET MODE diagnostic
+LET tempz = temp[gz(depth)=zpts]
+LIST/PREC=7 tempz
+SHOW GRID tempz
+!LET tempz = temp[gz=zpts,layerz] ! same regrid using semi-automated notation
+!LIST/PREC=7 tempz
+!SHOW GRID tempz
+SET MODE/last diagnostic
+
+! list a little with no imtermediate variable, so Z labeling is visible
+LIST/PREC=7 temp[gz(depth)=zpts,k=1]
+!LIST/PREC=7 temp[gz=zpts,k=1,layerz] ! same using semi-automated notation
+
+! same calculation, but with a named Z axis
+LET tempzax = temp[gz(depth)=zax]
+LIST tempzax
+SHOW GRID tempzax
+!LET tempzax = temp[gz=zax,layerz] ! same regrid using semi-automated notation
+!LIST tempzax
+!SHOW GRID tempzax
+
+! regrid to a different set of Z points
+LET tempz_alt = temp[gz(depth)=2:10:2]
+LIST/PREC=7 tempz_alt
+SHOW GRID tempz_alt
+
+!! do same regrid using the shorhand semi-automated notation
+!LIST/PREC=7 temp[z=2:10:2,layerz] ! lo:hi:delta notation
+!SHOW GRID
+
+! test the shorthand notation var[gz(depth)=100] as an implicit aux var
+! regrid via linear interpolation
+! the value should match the preceding output at Z=6
+LET tempz_1pt = temp[gz(depth)=6]
+LIST/PREC=7 tempz_1pt
+SHOW GRID/z tempz_1pt
+
+! do same regrid using the shorhand semi-automated notation
+LIST/PREC=7 temp[z=6,layerz] ! =1pt notation WILL BE CHANGED!
+SHOW GRID
+
+! auxiliary points in reverse order
+! to get results that we can check for correctness, we will reverse the Z-order
+! of the temperature field as well as the depth field.
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET/D=levitus_3d_subset rvdepth = rvdepth0[gz=temp at asn]
+! **** NOTE: THERE'S A SUBTLE MISBEHAVIOR IN AUX REGRID SHOWN IN THIS COMMENTED
+! OUT LINE BUT WILL RARELY OCCUR AND EASILY WORKED AROUND
+!LET rvtempzax = rvtemp[gz(rvdepth)=zax] ! zlims aren't filled in if not given
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+LIST/PREC=7 rvtempzax - tempz
+SHOW GRID rvtempzax
+
+! deliberate execution errors:
+LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+LET disordered_tempz1 = temp[gz(disordered_depth1)=zax]
+LET disordered_depth2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+LET disordered_tempz2 = temp[gz(disordered_depth2)=zax]
+SET MODE ignore
+LIST disordered_tempz1
+LIST disordered_tempz2
+SET MODE/last ignore
+
+! test VTREE with a complex auxiliary variable definitions
+VTREE
+
+! 6-dimensional regridding
+
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+LET temp6d = temp/100 + 1*L[L=1:2] + 10*_M[M=1:2] + 100*_N[N=1:2]
+!list/k=7:12/PREC=7 temp6d
+LET tempz6d = temp6d[gz(depth)=zpts]
+!LIST/PREC=7 tempz6d
+! compare pre- and post- regrid at a fixed depth
+stat/z=100 temp6d-tempz6d
+stat/z=400 temp6d-tempz6d
+
+! 6d temperature and 6d depth field
+! hold temperature constant over time, have depths change
+! note that for N=2 depths of less than 100 are no longer in the data hence missing values at Z=100
+LET temp6d_const = temp + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2] ! constant in T,E,F
+LET depth6d = depth + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+LET tempz6d_tDep = temp6d_const[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_tDep
+LIST/PREC=7/k=7:8 temp6d_const, depth6d ! reference values at Z=100, 200, 300 for visual comparison
+! ... some spot checks
+LIST/PREC=7/l=1/m=1/n=1 tempz6d_tDep[Z=100] - temp6d_const[k=7]
+LIST/PREC=7/l=1/m=2/n=1 tempz6d_tDep[Z=200] - temp6d_const[k=8]
+LIST/PREC=7/l=1/m=2/n=2 tempz6d_tDep[Z=300] - temp6d_const[k=8]
+
+! ** deliberate error **
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+! Ferret does not permit auxiliary variable to have an axis not found on the source variable
+! (to avoid having to consider auxiliary variables during grid-getting ... possible to do)
+SET MODE IGNORE
+LET tempz6d_unmatch = temp[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_unmatch
+SET MODE/LAST IGNORE
+
+! ********************************
+! test the @plave regridding -- ave defined from area under piecewise curve
+
+! first compare to our simplest of linear interpolation regrids, tempz
+! note that results will differ due to non-linearity
+! at Z=500 on the output they become identical because the Z=500 grid box
+! extends 450:550 with source points at Z=400 and Z=600 -- pure linear
+! LET tempz = temp[gz(depth)=zpts]
+LET tempzave = temp[gz(depth)=zpts at plave]
+LIST tempzave - tempz
+
+! list a little. Note the regridding transform label
+LIST/PREC=7 temp[gz(depth)=zpts at plave,k=1]
+
+! Levitus has points at 50, 75, 100, 150, 200
+! define target axis with edges at 50:75 (k=1), 75:100 (k=2)
+! 100:125(k=3), 125:150 (k=4), 150:175(k=5)
+define axis/edges/z=50:175:25/units=m zpt2 ! point at 125 is mid-way
+
+! raw source data -- artifically designed for easy mental calcs
+LET myvals = temp*0+100*(i-100)+10*(j-40)+k
+list/PREC=7 myvals[z=50:300]
+
+! linear interpolation regridding
+LET mzlin2 = myvals[gz(depth)=zpt2]
+LIST/PREC=7 mzlin2
+
+! average-regridding
+LET mzave2 = myvals[gz(depth)=zpt2 at plave]
+
+! cases:
+! 1) both edges lie on source points
+LIST/PREC=7 mzave2[k=2] ! vals at 75, 100 ==> 75:100
+
+! 2) lower edge only lies on source point
+LIST/PREC=7 mzave2[k=3] ! vals at 100, 150 ==> 100:125
+
+! 3) upper edge only lies on source point
+LIST/PREC=7 mzave2[k=4] ! vals at 100, 150 ==> 125:150
+
+! 4) full range
+! myvals2 is linear in k, so @plave and @lin get identical results
+LIST/PREC=7 mzave2
+LIST/PREC=7 mzave2 - mzlin2
+
+! 5) divide a single source range into multiple destination cells
+! a range of 50 divided into 5 cells will have means of x.1,x.3,x.5, x.7, x.9
+define axis/edges/z=150:200:10/units=m zpt3
+LET mzave3 = myvals[gz(depth)=zpt3 at plave]
+LIST/PREC=7 mzave3
+
+! 6) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.333333
+define axis/edges/z=50:200:150/units=m zpt4
+LET mzave4 = myvals[gz(depth)=zpt4 at plave]
+LIST/PREC=7 mzave4
+
+! 7) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.8125
+define axis/edges/z=50:250:200/units=m zpt5
+LET mzave5 = myvals[gz(depth)=zpt5 at plave]
+LIST/PREC=7 mzave5
+
+! 8) test the short-hand notation var[gz(depth)=0:100 at ave] as an implicit
+! aux var regrid via piecewice linear averaging
+! To confirm correct results we create a piecewize linear function that
+! has constant slope. Averaging such a function over a symmetric region
+! around a point on the source data should return the value at the point
+LET myvals_z = TEMP*0+100*(I-100)+10*(J-40)+Z
+list/PREC=7 myvals_z[z=200]
+list/PREC=7 myvals_z[gz(depth)=190:210 at ave]
+list/PREC=7 myvals_z[gz(depth)=150:250 at ave]
+
+! 8a) do same regrid using the shorhand semi-automated notation
+SET VAR/LAYERZ=depth myvals_z
+list/PREC=7 myvals_z[z=190:210 at ave,layerz] ! lo:hi at ave notation WILL BE CHANGED
+list/PREC=7 myvals_z[z=150:250 at ave,layerz] ! WILL BE CHANGED
+
+! test missing values in the depth array
+! cases:
+! 1) missing values at start of aux array
+define axis/z=25:200:25/units=m zpt6
+LET depmis = IF (I NE 102 OR k GT 6) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+
+! 2) missing values at end of aux array
+LET depmis = IF (I NE 102 OR k LT 9) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+
+! 3) missing values in midst of aux array -- stops processing beyond
+LET depmis = IF (I NE 102 OR k EQ 7 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+
+! 4) singleton non-missing values in a line of the aux array
+LET depmis = IF (I NE 102 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+
+! 5) there are only missing values in a line of the aux array
+LET depmis = IF (I NE 102) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+
+! 6) two separated singletons -- only the first should be found
+LET depmis = IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+list depmis[z=25:200] ! to illustrate why the result is as it is
+
+! ********
+! reversed-auxiliary variable used in regridding
+! (see definitions made earlier)
+! Note that the regridded result only matches the original data in regions
+! where the underlying piecewise function remains strictly linear with
+! unchanging slope/intercept. Since the Z=500 point has cell limits 450:550
+! and the underlying Levitus Z points (used in the definition of "depth") are
+! at 400 and 600, we get the identical result from @PLAVE and @LIN
+LET rvtempzaxave = rvtemp[gz(rvdepth)=zax at plave,z=100:500]
+LIST/PREC=7 rvtempzaxave - tempz
+SHOW GRID/z rvtempzaxave
+
+! 5/15 -- added tests for non-monotonic auxiliary variable
+!test_non_monotonic_aux_z.jnl
+
+cancel region
+define axis/x=161e:165e:1 xax
+define axis/z=100:600:100 zax
+
+let temp = 0.0001*Z[gz=zax]^2 + 0*x[gx=xax]
+list temp
+
+! disordered points at beginning, middle and end, missing at beginning
+let density0 = 0*i[gx=xax]*k[gz=zax] + z/10
+let density1 = if i eq 2 and k eq 4 then 20 else density0
+let density2 = if i eq 3 and k eq 1 then 20 else density1
+let density3 = if i eq 3 and k eq 2 then 10 else density2
+let density4 = if i eq 4 and k eq 6 then 30 else density3
+let density = if i eq 5 and k le 2 then 1/0 else density4 ! missing at k=1:3
+list density
+
+! Z=200-300 on the density axis are double valued at I=2
+list temp[gz(density)=5:65:2.5]
+
+
+!************************************
+! reverse-ordering of same field
+let btemp = 0.0001*(700-Z[gz=zax])^2 + 0*x[gx=xax]
+list btemp
+
+let bdensity0 = 0*i[gx=xax]*k[gz=zax] + (700-z)/10
+let bdensity1 = if i eq 2 and (7-k) eq 4 then 20 else bdensity0
+let bdensity2 = if i eq 3 and (7-k) eq 1 then 20 else bdensity1
+let bdensity3 = if i eq 3 and (7-k) eq 2 then 10 else bdensity2
+let bdensity4 = if i eq 4 and (7-k) eq 6 then 30 else bdensity3
+let bdensity = if i eq 5 and (7-k) le 2 then 1/0 else bdensity4 !missing k=1:3
+
+SAY "************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********"
+SET VAR/units="kg/m^3" density
+
+list bdensity
+
+list btemp[gz(bdensity)=5:65:2.5]
+
+!************************************
+! similar analysis using @plave over wider cells
+! compare to reverse-ordered data
+list temp[gz(density)=5:65:15 at plave]
+list btemp[gz(bdensity)=5:65:15 at plave]
+
+! 6/15
+! test 1D auxiliary axis regirdding on all axes
+
+! p for passive axis
+! a for active axis
+
+define axis/x=161:165:1 xp
+define axis/y=161:165:1 yp
+define axis/z=161:165:1 zp
+define axis/t=161:165:1 tp
+define axis/e=161:165:1 ep
+define axis/f=161:165:1 fp
+
+define axis/x=100:700:100 xa
+define axis/y=100:700:100 ya
+define axis/z=100:700:100 za
+define axis/t=100:700:100 ta
+define axis/e=100:700:100 ea
+define axis/f=100:700:100 fa
+
+
+GO bn_auxiliary.sub Z,X,F
+GO bn_auxiliary.sub Z,Y,E
+CANC MODE VERIFY
+GO bn_auxiliary.sub X,Z,F
+GO bn_auxiliary.sub Y,X,E
+GO bn_auxiliary.sub T,Y,F
+GO bn_auxiliary.sub E,Z,F
+GO bn_auxiliary.sub F,X,T
+
+SET MODE/LAST VERIFY
diff --git a/bench/bn_auxiliary.sub b/bench/bn_auxiliary.sub
new file mode 100644
index 0000000..20fff5e
--- /dev/null
+++ b/bench/bn_auxiliary.sub
@@ -0,0 +1,152 @@
+\CANC MODE VERIFY
+! bn_auxiliary.sub
+
+! define test variables and do a 1D auxiliary regridding test on the active axis
+
+
+! 2 arguments: active axis and 2 passive axes
+
+! e.g. GO test_all_axis_aux.sub Z, X, F ! test Z redrid in XZ and ZF planes
+! see example at end
+
+
+DEFINE SYMBOL aax = $1
+DEFINE SYMBOL pax1 = $2
+DEFINE SYMBOL pax2 = $3
+DEFINE SYMBOL iaax = ($aax%|X>I|Y>J|Z>K|T>L|E>M|F>N|%)
+DEFINE SYMBOL ipax1 = ($pax1%|X>I|Y>J|Z>K|T>L|E>M|F>N|%)
+DEFINE SYMBOL ipax2 = ($pax2%|X>I|Y>J|Z>K|T>L|E>M|F>N|%)
+DEFINE SYMBOL gax = g($aax)
+
+SAY
+SAY *****************************
+SAY ********** ($AAX),($PAX1),($PAX2) ***********
+SAY *****************************
+SAY
+
+! default all 6 axes to passive
+DEFINE SYMBOL contrib_xax = 0*_x[gx=xp]
+DEFINE SYMBOL contrib_yax = 0*_y[gy=yp]
+DEFINE SYMBOL contrib_zax = 0*_z[gz=zp]
+DEFINE SYMBOL contrib_tax = 0*_t[gt=tp]
+DEFINE SYMBOL contrib_eax = 0*_e[ge=ep]
+DEFINE SYMBOL contrib_fax = 0*_f[gf=fp]
+DEFINE SYMBOL bcontrib_xax = 0*_x[gx=xp]
+DEFINE SYMBOL bcontrib_yax = 0*_y[gy=yp]
+DEFINE SYMBOL bcontrib_zax = 0*_z[gz=zp]
+DEFINE SYMBOL bcontrib_tax = 0*_t[gt=tp]
+DEFINE SYMBOL bcontrib_eax = 0*_e[ge=ep]
+DEFINE SYMBOL bcontrib_fax = 0*_f[gf=fp]
+
+! non-default for active axis only
+DEFINE SYMBOL contrib_($aax)ax = 0.0001* _($aax)[g($aax)=($aax)a] ^2
+DEFINE SYMBOL bcontrib_($aax)ax = 0.0001*(800-_($aax)[g($aax)=($aax)a])^2
+
+! default all 6 region qualifiers to index 1
+DEFINE SYMBOL sx = /i=1
+DEFINE SYMBOL sy = /j=1
+DEFINE SYMBOL sz = /k=1
+DEFINE SYMBOL st = /l=1
+DEFINE SYMBOL se = /m=1
+DEFINE SYMBOL sf = /n=1
+
+! define regions to be used for listings
+CANCEL SYMBOL s($aax)
+DEFINE SYMBOL SAVE_PAX1 = ($s($pax1))
+CANCEL SYMBOL s($pax1)
+DEFINE SYMBOL REG1 = ($sx" ")($sy" ")($sz" ")($st" ")($se" ")($sf" ")
+DEFINE SYMBOL s($pax1) = ($SAVE_PAX1)
+CANCEL SYMBOL s($pax2)
+DEFINE SYMBOL REG2 = ($sx" ")($sy" ")($sz" ")($st" ")($se" ")($sf" ")
+
+! mock temperature field
+let temp = ($contrib_xax) + ($contrib_yax) + ($contrib_zax) + ($contrib_tax) + ($contrib_eax) + ($contrib_fax)
+
+! same but backwards ordered fields
+let btemp = ($bcontrib_xax) + ($bcontrib_yax) + ($bcontrib_zax) + ($bcontrib_tax) + ($bcontrib_eax) + ($bcontrib_fax)
+
+! mock density fields - 10, 20, 30, ... with inversions and missing
+let density0 = 0*temp + _($aax)/10
+let density1 = if (_($ipax1) eq 2 OR _($ipax2) eq 2) and _($iaax) eq 4 then 20 else density0
+let density2 = if (_($ipax1) eq 3 OR _($ipax2) eq 3) and _($iaax) eq 1 then 20 else density1
+let density3 = if (_($ipax1) eq 3 OR _($ipax2) eq 3) and _($iaax) eq 2 then 10 else density2
+let density4 = if (_($ipax1) eq 4 OR _($ipax2) eq 4) and _($iaax) eq 6 then 30 else density3
+let density = if (_($ipax1) eq 5 OR _($ipax2) eq 5) and _($iaax) le 2 then 1/0 else density4
+
+! same but backwards ordered
+let bdensity0 = 0*temp + (800-_($aax))/10
+let bdensity1 = if (_($ipax1) eq 2 OR _($ipax2) eq 2) and (8-_($iaax)) eq 4 then 20 else bdensity0
+let bdensity2 = if (_($ipax1) eq 3 OR _($ipax2) eq 3) and (8-_($iaax)) eq 1 then 20 else bdensity1
+let bdensity3 = if (_($ipax1) eq 3 OR _($ipax2) eq 3) and (8-_($iaax)) eq 2 then 10 else bdensity2
+let bdensity4 = if (_($ipax1) eq 4 OR _($ipax2) eq 4) and (8-_($iaax)) eq 6 then 30 else bdensity3
+let bdensity = if (_($ipax1) eq 5 OR _($ipax2) eq 5) and (8-_($iaax)) le 2 then 1/0 else bdensity4
+
+SET MODE/LAST VERIFY
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+list/order=($pax1)($aax)($REG1) btemp
+list/order=($pax1)($aax)($REG1) density
+list/order=($pax1)($aax)($REG1) bdensity
+
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5] ! passive ax 1
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5] ! passive ax 2
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 1
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 2
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+
+
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+! below here is an example of the lines that are executed given args Z,X,F
+! mock temperature field
+let temp = 0*_x[gx=xp] + 0*_y[gy=yp] + 0.0001*_z[gz=za]^2 + 0*_t[gt=tp] + 0*_e[ge=ep] + 0*_f[gf=fp]
+! same but backwards ordered fields
+let btemp = 0*x[gx=xp] + 0*y[gy=yp] + 0.0001*(800-Z[gz=za])^2 + 0*t[gt=tp] + 0*_e[ge=ep] + 0*_f[gf=fp]
+
+! mock density fields - 10, 20, 30, ... with inversions and missing
+let density0 = 0*temp + _z/10
+let density1 = if (_i eq 2 OR _n eq 2) and _k eq 4 then 20 else density0
+let density2 = if (_i eq 3 OR _n eq 3) and _k eq 1 then 20 else density1
+let density3 = if (_i eq 3 OR _n eq 3) and _k eq 2 then 10 else density2
+let density4 = if (_i eq 4 OR _n eq 4) and _k eq 6 then 30 else density3
+let density = if (_i eq 5 OR _n eq 5) and _k le 2 then 1/0 else density4
+
+! same but backwards ordered
+let bdensity0 = 0*temp + (800-_z)/10
+let bdensity1 = if (_i eq 2 OR _n eq 2) and (8-_k) eq 4 then 20 else bdensity0
+let bdensity2 = if (_i eq 3 OR _n eq 3) and (8-_k) eq 1 then 20 else bdensity1
+let bdensity3 = if (_i eq 3 OR _n eq 3) and (8-_k) eq 2 then 10 else bdensity2
+let bdensity4 = if (_i eq 4 OR _n eq 4) and (8-_k) eq 6 then 30 else bdensity3
+let bdensity = if (_i eq 5 OR _n eq 5) and (8-_k) le 2 then 1/0 else bdensity4
+
+! show the underlying fields
+list/j=1/l=1/m=1/n=1 temp
+list/j=1/l=1/m=1/n=1 btemp
+list/j=1/l=1/m=1/n=1 density
+list/j=1/l=1/m=1/n=1 bdensity
+
+! show the regridded fields
+list/order=xz/j=1/l=1/m=1/n=1 temp[gz(density)=5:80:5] ! X passive
+list/order=fz/i=1/j=1/l=1/m=1 temp[gz(density)=5:80:5] ! F passive
+list/order=xz/j=1/l=1/m=1/n=1 btemp[gz(bdensity)=5:80:5] ! backwards X passive
+list/order=fz/i=1/j=1/l=1/m=1 btemp[gz(bdensity)=5:80:5] ! backwards F passive
+
+list/order=xz/j=1/l=1/m=1/n=1 temp[gz(density)=5:80:15 at plave] ! X passive
+list/order=fz/i=1/j=1/l=1/m=1 temp[gz(density)=5:80:15 at plave] ! F passive
+list/order=xz/j=1/l=1/m=1/n=1 btemp[gz(bdensity)=5:80:15 at plave] ! backw X passive
+list/order=fz/i=1/j=1/l=1/m=1 btemp[gz(bdensity)=5:80:15 at plave] ! backw F passive
+
diff --git a/bench/bn_axis_viewports.jnl b/bench/bn_axis_viewports.jnl
index de6735a..a959d33 100644
--- a/bench/bn_axis_viewports.jnl
+++ b/bench/bn_axis_viewports.jnl
@@ -6,7 +6,7 @@ set wind/clear/aspect=1
def view/axes allax
! make guide lines
-show view allax ! text = 1
+show view allax
set view allax
plot/vs/line/hlim=0:1/vlim=0:1/nolab {0.5,0.5,,0,1},{0,1,,0.5,0.5}
plot/vs/line/over/nolab {0.25,0.25,,0,1},{0,1,,0.25,0.25}
@@ -15,7 +15,7 @@ label 0.26,0.95,-1,0,.2 @P2 at AC<-At 0.25
label 0.76,0.95,-1,0,.2 @P3 at AC<-At 0.75
! a plot from 0.25 to 0.75
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid
+def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid
set view mid
plot/vs/hlim=-1:1/vlim=-1:1/line/i=1:200 cos(i/15),sin(i/15)
show view mid
@@ -23,7 +23,7 @@ ppl list xaxis
ppl list yaxis
! guidelines showing origin, axlen, white space
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
+def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid2
set view mid2
ppl origin 0,0
define symbol xaxl `($PPL$WIDTH)/2`
@@ -52,7 +52,7 @@ ppl list xaxis
ppl list yaxis
! guidelines showing origin, axlen, white space
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
+def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid2
set view mid2
ppl origin 0,0
define symbol xaxl `($PPL$WIDTH)/2`
@@ -71,25 +71,25 @@ show view mid
! pause
set wind/clear
-def view/axes/xlim=0:0.5/ylim=0:0.5/text=1 llax
+def view/axes/xlim=0:0.5/ylim=0:0.5 llax
set view llax
PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
ppl list xaxis
ppl list yaxis
-def view/axes/xlim=0:0.5/ylim=0.5:1/text=1 lrax
+def view/axes/xlim=0:0.5/ylim=0.5:1 lrax
set view lrax
PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
ppl list xaxis
ppl list yaxis
-def view/axes/xlim=0.5:1/ylim=0:0.5/text=1 ulax
+def view/axes/xlim=0.5:1/ylim=0:0.5 ulax
set view ulax
PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
ppl list xaxis
ppl list yaxis
-def view/axes/xlim=0.5:1/ylim=0.5:1/text=1 urax
+def view/axes/xlim=0.5:1/ylim=0.5:1 urax
set view urax
PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
ppl list xaxis
diff --git a/bench/bn_bin_regrid.jnl b/bench/bn_bin_regrid.jnl
new file mode 100644
index 0000000..f710dd3
--- /dev/null
+++ b/bench/bn_bin_regrid.jnl
@@ -0,0 +1,8 @@
+! bin regridding tests
+
+go bn_bin_regrid.sub X
+go bn_bin_regrid.sub Y
+go bn_bin_regrid.sub Z
+go bn_bin_regrid.sub T
+go bn_bin_regrid.sub E
+go bn_bin_regrid.sub F
diff --git a/bench/bn_bin_regrid.sub b/bench/bn_bin_regrid.sub
new file mode 100644
index 0000000..81eee75
--- /dev/null
+++ b/bench/bn_bin_regrid.sub
@@ -0,0 +1,22 @@
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+LET var = _$1[G$1=irr]
+
+LET dest = _$1[G$1=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+LET dest = _$1[G$1=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+
+LIST dest, var[G$1=dcoarse]
+
diff --git a/bench/bn_can_var_noerr.jnl b/bench/bn_can_var_noerr.jnl
new file mode 100644
index 0000000..ee02aea
--- /dev/null
+++ b/bench/bn_can_var_noerr.jnl
@@ -0,0 +1,32 @@
+! bn_can_var_noerr.jnl
+! CANCEL VARIABLE/NOERROR
+
+
+let a = 1
+
+! intentional error
+set mode ignore
+cancel var b,a
+show var
+
+cancel mode ignore
+
+! specify /noerr and we can issue the command
+
+cancel var/noerror a,b
+show var
+
+! no effect on CAN VAR/ALL or CAN VAR template_name
+
+let a1 = 1
+let a7 = 7
+let c = 12
+
+cancel var/noerror name*
+show var
+
+cancel var/noerror a*
+show var
+
+cancel var/noerror/all
+show var
diff --git a/bench/bn_dots.jnl b/bench/bn_dots.jnl
index ae41e72..bf5a166 100644
--- a/bench/bn_dots.jnl
+++ b/bench/bn_dots.jnl
@@ -16,4 +16,3 @@ plot/symbol=dot/size=0.5/over/i=1:1000 -0.5*sin(62.8*(i+10) )
! Vector plots with null-size vectors
vector/i=1:5/j=1:5 0.*(i+j),0*(i+j)
-set mode logo
diff --git a/bench/bn_f_tax_fcns.jnl b/bench/bn_f_tax_fcns.jnl
new file mode 100644
index 0000000..b009cd3
--- /dev/null
+++ b/bench/bn_f_tax_fcns.jnl
@@ -0,0 +1,52 @@
+! bn_f_from_tax_fcns.jnl
+! test tax_* functions returning results from a
+! time-formatted axis in the F direction
+!
+! 2/2015 ACM
+
+define axis/f=1-jan-2011:31-jan-2011:1/units=hours fax
+
+
+
+let ff = _f[gf=fax]
+! Test RETURN=F0
+say `ff,return=F0`
+
+list/N=20:30 tax_datestring(_F[g=ff],ff,"minute")
+list/N=20:30 tax_datestring(_F[g=ff],ff,"hour")
+list/N=20:30 tax_datestring(_F[g=ff],ff,"day")
+list/N=20:30 tax_dayfrac(_F[g=ff],ff)
+list/N=20:30 tax_day(_F[g=ff],ff)
+list/N=20:30 tax_jday(_F[g=ff],ff)
+list/N=20:30 tax_month(_F[g=ff],ff)
+list/N=20:30 tax_yearfrac(_F[g=ff],ff)
+list/N=20:30 tax_year(_F[g=ff],ff)
+list/N=20:30 tax_jday1900(_F[g=ff],ff)
+list tax_units(ff)
+
+! commands from tax_tstep, changing time origin
+
+DEFINE AXIS/F="1-JAN-2000:00:00:01":"1-JAN-2000:00:15:00":2/UNITS=seconds fsec
+LIST/N=440:451 _F[GF=fsec]
+LET bsin = SIN(_F[GF=fsec]/40000)
+SAVE/FILE=a.nc/clobber bsin
+CAN VAR/all
+USE a.nc
+
+SET LIST/PREC=7
+! Reset the date to dec 1999
+! Function lets us leave off the leading 0.
+LIST/N=1:15 TAX_TSTEP(bsin, "1-dec-1999:00:00:00" )
+
+! argument can be upper or lowercase
+! Should list values 1, 3, 5...
+LIST/N=1:15 TAX_TSTEP(bsin, "1-JAN-2000:00:00:00" )
+
+! Test with TAX_DATESTRING
+
+DEFINE AXIS/F="1-JAN-1902:00:00:00":"1-JAN-1902:00:30:00":5/UNITS=seconds fsec
+LIST/N=200:205 _F[GF=fsec]
+
+LET ff = _F[GF=fsec]
+LET reset_date = TAX_DATESTRING(`_F[GF=fsec,n=1]`, ff, "sec")
+LIST/N=1:15 TAX_TSTEP(ff, "`reset_date`")
diff --git a/bench/bn_floatstr_extended.jnl b/bench/bn_floatstr_extended.jnl
new file mode 100644
index 0000000..8195471
--- /dev/null
+++ b/bench/bn_floatstr_extended.jnl
@@ -0,0 +1,60 @@
+! bn_floatstr_extended.jnl
+! test use of Integer and zero-filled formats in FLOATSTR function (Ferret v6.95)
+! 9/28/2015
+
+
+LET string = FLOATSTR({3.14159,2.71828},"(i3)")
+LIST string
+
+LET string = FLOATSTR({3.14159,2.71828},"(i3.3)")
+LIST string
+
+LET string = FLOATSTR({3.14159,2.71828},"(i03)")
+LIST string
+
+! Missing data returned as the null string
+LET string = FLOATSTR({3.14159,2.71828,},"(i3)")
+LIST string
+
+! Test some large and small values
+LET var = {3.14159,2.71828,}
+LIST FLOATSTR(36*var,"(i5)")
+LIST FLOATSTR(36*var,"(i4.3)")
+LIST FLOATSTR(1.e14*var,"(i12)")
+LIST FLOATSTR(1.e-14*var,"(i5)")
+
+! Result shape is inherited from the input variable
+USE gt4d011.cdf
+LIST/I=100/J=36:38/T=1-dec-1982:1-jan-1983 FLOATSTR(10000*tauy, "(i4)")
+
+USE coads_climatology
+
+! i4.4 is the same as i04
+
+LET var = FLOATSTR(sst,"(i4.4)")
+LET var = FLOATSTR(sst,"(i04)")
+
+LIST/X=165W:135W/Y=-50/L=1 var
+
+! Negative numbers cannot be listed with (i5.5) but can with (I05)
+LET var1 = FLOATSTR(sst-10,"(i5.5)")
+LET var2 = FLOATSTR(sst-10,"(i05)")
+
+LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
+
+
+! F0 format for zero-filled F format
+
+let a = {1.1, 3.7}
+list floatstr(a, "(f04.1)")
+
+let a = {1.1, 13.7}
+list floatstr(a, "(f06.1)")
+
+let a = {-1.1, 13.7}
+list floatstr(a, "(f04.1)")
+
+! testing negative numbers and null/missing results
+LET var1 = FLOATSTR(sst-20,"(f5.1)")
+LET var2 = FLOATSTR(sst-20,"(f05.1)")
+LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
diff --git a/bench/bn_flowlines.jnl b/bench/bn_flowlines.jnl
index bfef73f..313865e 100644
--- a/bench/bn_flowlines.jnl
+++ b/bench/bn_flowlines.jnl
@@ -39,5 +39,3 @@ let yy = if abs(y[gt=sst]) le 20 then 10 else (100-abs(y[gt=sst]+1))/ 10.
set reg/l=1
vec/noax/xskip=16/yskip=8/len=15/title="Sinusoidal Projection" fsst*0,fsst*0+yy*mp_mask, x_page,y_page
vec/over/flow/noax/xskip=16/yskip=8/len=5/title="Sinusoidal Projection" fsst*0,fsst*0+yy*mp_mask, x_page,y_page
-
-set mode logo
diff --git a/bench/bn_fmrc.jnl b/bench/bn_fmrc.jnl
new file mode 100644
index 0000000..e69a476
--- /dev/null
+++ b/bench/bn_fmrc.jnl
@@ -0,0 +1,18 @@
+! bn_fmrc.jnl
+! initial test of DEFINE DATA/F
+
+use "run1.nc"
+use "run2.nc"
+use "run3.nc"
+use "run4.nc"
+
+define data/hide/F/agg/title fourfiles = 1,2,3,4
+
+sh grid sst
+list/i=1/j=1/L=1:6/n=1:4 sst
+
+show att sst
+
+! Attribute _ftime2dRef pointe to the 2D time variable
+list/L=1:6/n=1:4 `sst._ftime2dRef`
+
diff --git a/bench/bn_gif.jnl b/bench/bn_gif.jnl
index 6abf095..a41524b 100644
--- a/bench/bn_gif.jnl
+++ b/bench/bn_gif.jnl
@@ -4,12 +4,12 @@
! *kob*
! define a 6 viewport window (modified definitions 11/92)
-def view/text=.4/xlim=0,.333/ylim=0,.5 ll6
-def view/text=.2/xlim=0,.333/ylim=.5,1 ul6
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6
-def view/text=1.5/xlim=.666,1/ylim=0,.5 lr6
-def view/xlim=.666,1/ylim=.5,1 ur6 ! auto /TEXT
+def view/xlim=0,.333/ylim=0,.5 ll6
+def view/xlim=0,.333/ylim=.5,1 ul6
+def view/xlim=.333,.666/ylim=0,.5 lm6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view/xlim=.666,1/ylim=0,.5 lr6
+def view/xlim=.666,1/ylim=.5,1 ur6
show view
! some variables for plotting
@@ -56,12 +56,12 @@ plot/l=1:50/k=1/trans/nolabel a,b,c
plot/l=1:50/k=1/trans/over/line=6/nolabel d
plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
-def view/text=.1/xlim=.333,1/ylim=0,.5 lm6 ! redefine longer in x (11/92)
+def view/xlim=.333,1/ylim=0,.5 lm6 ! redefine longer in x (11/92)
set view lm6
!ppl axlen 16
set region/k=1
plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-def view/text=.6/xlim=.333,1/ylim=.5,1 um6 ! redefine it longer in x (11/92)
+def view/xlim=.333,1/ylim=.5,1 um6 ! redefine it longer in x (11/92)
set view um6
!ppl axlen 17,5
plot/l=1:50/nolabel sin(100/(l+5))
@@ -81,7 +81,7 @@ contour/i=1:50/j=1:50/levels=(0,2.5,.25)/nolabel i/(j+20)
plot/over/nolab/vs/line/i=1:50/j=1:50/nolabel 6*i/j,5*j/i
set view ul6
vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6 ! redefine it (11/92)
+def view/xlim=.333,.666/ylim=0,.5 lm6 ! redefine it (11/92)
set view lm6
shade/i=1:50/j=1:50/nolabel i/(j+20)
set view lr6
@@ -95,7 +95,7 @@ contour/i=1:50/j=1:50/over/level/nolabel icomp^2+(-1*cos(i/10)*80)^2
! note: "i-i" and "j-j" are needed to create 2D structures
vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
vector/i=1:50/j=1:50/overlay/length/nolabel i-20+(j-j),40-j+(i-i)
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6 ! redefine it (11/92)
+def view/xlim=.333,.666/ylim=.5,1 um6 ! redefine it (11/92)
set view um6
shade/i=1:50/j=1:50/nolabel i/(j+20)
contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
diff --git a/bench/bn_graticules.jnl b/bench/bn_graticules.jnl
index 1a1ed55..807b64d 100644
--- a/bench/bn_graticules.jnl
+++ b/bench/bn_graticules.jnl
@@ -48,7 +48,6 @@ let fcn = k[gz=dlog]
plot/vlog/vlimits=1:100000/hg="large(color=red),small(color=lightblue)" fcn
can mode meta
-set mode logo
can view
diff --git a/bench/bn_grave.jnl b/bench/bn_grave.jnl
index 48dd691..7812d9f 100644
--- a/bench/bn_grave.jnl
+++ b/bench/bn_grave.jnl
@@ -128,7 +128,7 @@ let a = XSEQUENCE(J[j=1:5])
set mode diagnostic
say `a,return=isize` ! full evaluation occurs
say `a[i=2:3],return=isize` ! full evaluation is bypassed
-say `a[i=100:200],return=isize` ! WRONG! because full evaluation is bypassed
+say `a[i=100:200],return=isize` ! correct starting with Ferret v694 (tkt 2213)
set mode/last diagnostic
! deliberate errors
diff --git a/bench/bn_if.sub b/bench/bn_if.sub
index 00929b4..a839b94 100644
--- a/bench/bn_if.sub
+++ b/bench/bn_if.sub
@@ -1,5 +1,6 @@
! bn430_if.sub
! 5/6/96
+! for V693+ deepen the tests of implied ENDIF and unclosed IF test at the end
! test closed and unclosed IF in a nested GO command
@@ -20,6 +21,62 @@ ELSE
ENDIF
say ---->nested: all is well after multi-line IF
+! ********************
+! Single line IF statements with implied ENDIF
+
+IF 0 THEN say "ERROR if you see this" <== implied ENDIF
+
+IF 0 THEN \
+ SAY "ERROR if you see this" <== implied ENDIF
+
+IF 0 THEN
+ SAY "ERROR if you see this" <== NO implied ENDIF
+ENDIF
+
+IF 1 THEN say "CORRECT" ELSE say "ERROR if you see this" <== implied ENDIF
+
+IF 1 THEN SAY CORRECT ELSE \
+ SAY "ERROR if you see this" <== implied ENDIF
+
+! *************
+! unclosed IF conditions get closed with a warning
+REPEAT/I=1:2 (SAY "LOOP=`i`"; IF 1 THEN; SAY more)
+REPEAT/I=1:2 (SAY "LOOP=`i`"; IF 0 THEN; SAY more)
+
+(SAY "semicolon group"; IF 1 THEN; SAY more)
+(SAY "semicolon group"; IF 0 THEN; SAY more)
+
+! ***************
+! deliberate IF syntax errors
+SET MODE IGNORE
+! this should be detected as an error as it attempts to mix the
+! single line IF syntax and the multi-line IF syntax
+IF 1 THEN SAY CORRECT ELSE
+ SAY "WE SEE THIS CUZ OF IMPLIED CLOSE TO THE PREVIOUS"
+ENDIF ! DELIBERATE ERROR -- THIS EXECUTED AS A STAND_ALONE COMMAND
+
+! this should be detected as an error as ELIF cannot be in single line IF
+IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+
+! another error: trash after ENDIF
+IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+
+SET MODE/LAST IGNORE
+
+
SAY ">>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<"
IF yes THEN
say ---->... now inside of nested IF clause
+ IF 0 THEN
+ IF 1 THEN
+
+! note: these deserve a test, as well, but they only serve as documentation
+! here in this script, since they are skipped by the preceding "IF 0"
+ IF 0 THEN
+ REPEAT (SAY "ERROR -- NOT ALLOWED"; ENDIF)
+
+ IF 0 THEN
+ (SAY "ERROR -- NOT ALLOWED"; ENDIF)
+
+
+
diff --git a/bench/bn_labwid.jnl b/bench/bn_labwid.jnl
index 2bc5bcc..aab7a19 100644
--- a/bench/bn_labwid.jnl
+++ b/bench/bn_labwid.jnl
@@ -2,7 +2,19 @@
! string. For multi-line strings, returns length of
! the longest line.
+! In pyFerret fonts, there must be an open window before we
+! can query font information. The following is an error
+
+set mode ignore
LIST LABWID("aaaaabbbbb", .15)
+cancel mode ignore
+
+go ptest
+
+label/nouser 0,3,-1,0,.15,"@P2 at IILine1<NL>@IIA LONGER LINE"
+let wid = labwid("@P2 at IILine1<NL>@IIA LONGER LINE",.15)
+label/nouser `wid`, 3, -1, 0, .15, "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
+
LIST LABWID("aaaaabbbbb", .10)
LIST LABWID("aaaaabbbbb<NL>ee", .15)
LIST LABWID("ee<NL>aaaaabbbbb", .15)
@@ -12,10 +24,3 @@ LIST LABWID("@IISTRING", .15)
LIST LABWID("@SSSTRING", .15)
LIST LABWID("@SSSTRING<NL>@IISTRING", .15)
LIST LABWID("@IISTRING<NL>@SSSTRING", .15)
-
-
-go ptest
-
-label/nouser 0,3,-1,0,.15,"@P2 at IILine1<NL>@IIA LONGER LINE"
-let wid = labwid("@P2 at IILine1<NL>@IIA LONGER LINE",.15)
-label/nouser `wid`, 3, -1, 0, .15, "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
diff --git a/bench/bn_legend_labels.jnl b/bench/bn_legend_labels.jnl
new file mode 100644
index 0000000..0da4bd3
--- /dev/null
+++ b/bench/bn_legend_labels.jnl
@@ -0,0 +1,20 @@
+! bn_legend_labels.jnl
+! The legend labels on a multi-line plot describe the
+! variable and context but are not controlable by the user.
+!
+! /KEY=title tells Ferret to label the legend with the variable
+! title.
+! *acm* 2/4/2015 Ticket 2231
+
+use coads_climatology
+let/title=January sst1 = sst[l=1]
+let/title=February sst2 = sst[l=2]
+let/title=March sst3 = sst[l=3]
+
+! Draw a plot and show the labels on the legend.
+plot/x=300/y=20:65 sst1,sst2,sst3
+sh sym lab7,lab8,lab9
+
+! Draw a plot with legend labeled with the variable titles.
+plot/x=300/y=20:65/key=title sst1,sst2,sst3
+sh sym lab7,lab8,lab9
diff --git a/bench/bn_lon_lat_time_string.jnl b/bench/bn_lon_lat_time_string.jnl
new file mode 100644
index 0000000..37c118a
--- /dev/null
+++ b/bench/bn_lon_lat_time_string.jnl
@@ -0,0 +1,19 @@
+! bn_lon_lat_time_string.jnl
+! Test function written for LAS, to create profile labels from
+! a list of lnogitudes, latitudes, times, and a prefix string.
+
+show function lon_lat_time_string
+
+! Longitudes are translated to 0:360 range
+let lon = {-172.44, 210.01, -19.5}
+
+! latitudes are labeled N or S
+let lat = {3.12, 4.9, -15.03}
+
+! Time steps are interpreted in terms of a time axis
+let time = {1,2,3}
+define axis/t=1-jan-2001:31-jan-2001:1/units=days/t0=1-jan-2001 taxis
+let tt = t[gt=taxis]
+
+list lon_lat_time_string(lon, lat, time, tt, "my_string")
+
diff --git a/bench/bn_mode_logo_lab.jnl b/bench/bn_mode_logo_lab.jnl
index c18d71d..beadc20 100644
--- a/bench/bn_mode_logo_lab.jnl
+++ b/bench/bn_mode_logo_lab.jnl
@@ -53,5 +53,5 @@ polygon/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
! restore state of modes
cancel view
-set mode logo
+cancel mode logo
set mode labels
diff --git a/bench/bn_multi_decade.jnl b/bench/bn_multi_decade.jnl
index e7c435f..f7962ca 100644
--- a/bench/bn_multi_decade.jnl
+++ b/bench/bn_multi_decade.jnl
@@ -2,7 +2,7 @@
! New default no-small tics for multi-decade plots
! See bug 670
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
+def axis/t="01-JAN-1860":"30-DEC-2300":1/edges/units="years"/cal="360d" simutaxis1
let tvar = t[gt=simutaxis1]*-1E+34
define view/x=0:1/y=0.000:0.125 v1
diff --git a/bench/bn_odd_variable_name.jnl b/bench/bn_odd_variable_name.jnl
index 20c2a31..90ab3f5 100644
--- a/bench/bn_odd_variable_name.jnl
+++ b/bench/bn_odd_variable_name.jnl
@@ -11,7 +11,10 @@ list 'v2-and-minus' ! Now the proper syntax
list x ! Deliberate error
list 'X' ! Now the proper syntax
list i ! Deliberate error
-list 'i' ! Deliberate error
+
+! v694 No longer an error: See ticket 2050
+list 'i' !
+
list 'I' ! Now the proper syntax
list 'V1' - 'v1'
list 'I'[i=6:15 at sbx:10] - 'X'[i=6:15 at ave]
diff --git a/bench/bn_outline_poly.jnl b/bench/bn_outline_poly.jnl
new file mode 100644
index 0000000..f0926c7
--- /dev/null
+++ b/bench/bn_outline_poly.jnl
@@ -0,0 +1,4 @@
+set win /xinch=8 /thick=1 /asp=1 /outline=5 1
+let v = 2*3.14159*x[gx=0:1:.01]
+poly/hl=-1:1/vl=-1:1/key/pal=red/thick=1/opac=50 sin(v), cos(v)
+frame /file=outline_poly.pdf
diff --git a/bench/bn_permute_ascii.jnl b/bench/bn_permute_ascii.jnl
new file mode 100644
index 0000000..a563b5d
--- /dev/null
+++ b/bench/bn_permute_ascii.jnl
@@ -0,0 +1,79 @@
+! bn_permute_ascii.jnl
+! test permutations when reading ascii data, in E and F directions
+! 11/18/2014
+! see ticket 2217: was not working for grids in E and F
+
+
+! First with T axis
+
+! unpermuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+list tm
+
+! permuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+list tm
+
+! Then same with F axis
+can data/all
+
+def axis/f=1:12:1 f12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/f=f12 fxgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
+sh dat
+list tm
+
+! Read same data in y-z-t
+can data/all
+
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+list tm
+
+! And permuted
+
+can data/all
+
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
+sh dat
+list tm
+
+! Now with Y-Z-E
+
+can data/all
+
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+list tm
+
+can data/all
+
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
+sh dat
+list tm
+
diff --git a/bench/bn_plot.jnl b/bench/bn_plot.jnl
index b60f16e..170cbd1 100644
--- a/bench/bn_plot.jnl
+++ b/bench/bn_plot.jnl
@@ -6,12 +6,12 @@
! v581 - for the last set, cancel mode logo, so that .plt files are comparable.
! define a 6 viewport window (modified definitions 11/92)
-def view/text=.4/xlim=0,.333/ylim=0,.5 ll6
-def view/text=.2/xlim=0,.333/ylim=.5,1 ul6
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6
-def view/text=1.5/xlim=.666,1/ylim=0,.5 lr6
-def view/xlim=.666,1/ylim=.5,1 ur6 ! auto /TEXT
+def view/xlim=0,.333/ylim=0,.5 ll6
+def view/xlim=0,.333/ylim=.5,1 ul6
+def view/xlim=.333,.666/ylim=0,.5 lm6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view/xlim=.666,1/ylim=0,.5 lr6
+def view/xlim=.666,1/ylim=.5,1 ur6
show view
! some variables for plotting
@@ -58,12 +58,12 @@ plot/l=1:50/k=1/trans/nolabel a,b,c
plot/l=1:50/k=1/trans/over/line=6/nolabel d
plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
-def view/text=.1/xlim=.333,1/ylim=0,.5 lm6 ! redefine longer in x (11/92)
+def view/xlim=.333,1/ylim=0,.5 lm6 ! redefine longer in x (11/92)
set view lm6
!ppl axlen 16
set region/k=1
plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-def view/text=.6/xlim=.333,1/ylim=.5,1 um6 ! redefine it longer in x (11/92)
+def view/xlim=.333,1/ylim=.5,1 um6 ! redefine it longer in x (11/92)
set view um6
!ppl axlen 17,5
plot/l=1:50/nolabel sin(100/(l+5))
@@ -82,7 +82,7 @@ contour/i=1:50/j=1:50/levels=(0,2.5,.25)/nolabel i/(j+20)
plot/over/nolab/vs/line/i=1:50/j=1:50/nolabel 6*i/j,5*j/i
set view ul6
vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6 ! redefine it (11/92)
+def view/xlim=.333,.666/ylim=0,.5 lm6 ! redefine it (11/92)
set view lm6
shade/i=1:50/j=1:50/nolabel i/(j+20)
set view lr6
@@ -96,7 +96,7 @@ contour/i=1:50/j=1:50/over/level/nolabel icomp^2+(-1*cos(i/10)*80)^2
! note: "i-i" and "j-j" are needed to create 2D structures
vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
vector/i=1:50/j=1:50/overlay/length/nolabel i-20+(j-j),40-j+(i-i)
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6 ! redefine it (11/92)
+def view/xlim=.333,.666/ylim=.5,1 um6 ! redefine it (11/92)
set view um6
shade/i=1:50/j=1:50/nolabel i/(j+20)
contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
diff --git a/bench/bn_plot_ribbon_gaploc.jnl b/bench/bn_plot_ribbon_gaploc.jnl
new file mode 100644
index 0000000..d520c54
--- /dev/null
+++ b/bench/bn_plot_ribbon_gaploc.jnl
@@ -0,0 +1,38 @@
+! bn_plot_ribbon_gaploc.jnl
+! 7/20/2015 *acm* new PLOT/VS/RIBBON/GAPLOC
+!
+! If a trajectory leaves the selected region and then travels
+! back into the region we want to pick up the pen along that
+! edge, not connect the points.
+
+! Note Ribbon plots define a lot of color/line combos, so
+! lots of ribbon overlays on a page need either SHASET RESET or
+! use of fewer than the default number of levels.
+
+let xpts = {1,2,3,4,5}
+let ypts = {1,1,1,1,1}
+let color = {1,2,3,4,5}
+let gvar = {0,0,1,0,0}
+plot/vs/ribbon/thick/line/lev=10/sym=21/siz=.3 xpts, 10*ypts, color
+plot/ov/ribbon/nolab/vs/thick/line/lev=10/sym=21/siz=.3/gapl xpts, 10.2*ypts, color, gvar
+plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3 xpts, 9.9*ypts, color
+plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3/gap xpts, 9.7*ypts, color, gvar
+
+use 39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
+
+! The line is connected across what should be a gap
+set view left
+plot/vs/hlim=63.5:68/ribbon/line/thick=3/key longitude, latitude, fco2_recommended
+
+! The gaploc variable is 1 at the location marking the start of gaps.
+let gaploc = if sample_number[I=@DDF] NE 1 THEN 1 ELSE 0
+set view right
+plot/vs/hlim=63.5:68/ribbon/line/thick=3/key/gap longitude, latitude, fco2_recommended, gaploc
+
+! Intentional errors. Qualifier needs 4 arguments. It does not (currently) apply to
+! other styles of line plots.
+set mode ignore
+plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
+plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
+plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
+set mode/last ignore
diff --git a/bench/bn_ps.jnl b/bench/bn_ps.jnl
index 4f5d073..349b6a5 100644
--- a/bench/bn_ps.jnl
+++ b/bench/bn_ps.jnl
@@ -4,12 +4,12 @@
! *kob*
! define a 6 viewport window (modified definitions 11/92)
-def view/text=.4/xlim=0,.333/ylim=0,.5 ll6
-def view/text=.2/xlim=0,.333/ylim=.5,1 ul6
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6
-def view/text=1.5/xlim=.666,1/ylim=0,.5 lr6
-def view/xlim=.666,1/ylim=.5,1 ur6 ! auto /TEXT
+def view/xlim=0,.333/ylim=0,.5 ll6
+def view/xlim=0,.333/ylim=.5,1 ul6
+def view/xlim=.333,.666/ylim=0,.5 lm6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view//xlim=.666,1/ylim=0,.5 lr6
+def view/xlim=.666,1/ylim=.5,1 ur6
show view
! some variables for plotting
@@ -56,12 +56,12 @@ plot/l=1:50/k=1/trans/nolabel a,b,c
plot/l=1:50/k=1/trans/over/line=6/nolabel d
plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
-def view/text=.1/xlim=.333,1/ylim=0,.5 lm6 ! redefine longer in x (11/92)
+def view/xlim=.333,1/ylim=0,.5 lm6 ! redefine longer in x (11/92)
set view lm6
!ppl axlen 16
set region/k=1
plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-def view/text=.6/xlim=.333,1/ylim=.5,1 um6 ! redefine it longer in x (11/92)
+def view/xlim=.333,1/ylim=.5,1 um6 ! redefine it longer in x (11/92)
set view um6
!ppl axlen 17,5
plot/l=1:50/nolabel sin(100/(l+5))
diff --git a/bench/bn_return_defined.jnl b/bench/bn_return_defined.jnl
new file mode 100644
index 0000000..f9e6f74
--- /dev/null
+++ b/bench/bn_return_defined.jnl
@@ -0,0 +1,15 @@
+! bn_return_defined.jnl
+! 5/3/2015 *acm*
+! `return=defined` returns 1 if the user variable is defined
+! see ticket 2293
+
+let a = b
+say `a,r=defined` `b,r=defined`
+
+! abbreviate to 3 letters
+use levitus_climatology
+let temp2 = 2*temp
+say `temp2,return=def`
+
+! returns false for file variables
+say `temp,return=defined`
diff --git a/bench/bn_save_justdim.jnl b/bench/bn_save_justdim.jnl
new file mode 100644
index 0000000..14ba126
--- /dev/null
+++ b/bench/bn_save_justdim.jnl
@@ -0,0 +1,24 @@
+! bn_save_justdim.jnl
+! When a dataset has axes that are dimensions but not 1-D coordinate variables,
+! no longer save the coordinate axis that Ferret creates from the dimension.
+!
+! Allows for a dimension and a 2-D variable to have the same name.
+! see ticket 2227
+! 1/21/2015 ACM
+
+use twodtime.nc
+sh dat
+
+! previously this gave a name-in-use error
+save/file=a.nc/clobber time
+
+! The file has 2D TIME variable, and TIME as a dimension.
+sp ncdump a.nc >> all_ncdump.out
+
+! Now, keep case and axis name as on input
+CANCEL MODE upcase
+
+save/clobber/keep/file=a.nc time
+sp ncdump a.nc >> all_ncdump.out
+
+SET MODE/LAST upcase_output
diff --git a/bench/bn_strings.jnl b/bench/bn_strings.jnl
index c150b7d..f5d681b 100644
--- a/bench/bn_strings.jnl
+++ b/bench/bn_strings.jnl
@@ -165,12 +165,15 @@ list/nohead if {0,1} THEN "hello"
list/nohead if {0,1} THEN "hello" ELSE "goodbye"
list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "friend"
list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
+
+SET MODE IGNORE
list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+99 ELSE "goodbye"+", my ") + "friend"
list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+99) + "friend"
list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + 99
! numerical operators applied to strings
+
list/nohead "b" - {"a","b"}
list/nohead "b" * {"a","b"}
list/nohead "b" / {"a","b"}
@@ -182,6 +185,8 @@ list/nohead SIN({"a","b","c"})
list/nohead MAX("a",{"a","b","c"})
list/nohead MAX(1,{"a","b","c"})
+CANCEL MODE IGNORE
+
! transformations applied to strings
let a = {"a","b","c","d"}
list a[i=@shf]
diff --git a/bench/bn_time2d.jnl b/bench/bn_time2d.jnl
new file mode 100644
index 0000000..de8b388
--- /dev/null
+++ b/bench/bn_time2d.jnl
@@ -0,0 +1,19 @@
+! bn_time2d.jnl
+! 1/30/2015 ACM
+
+! initial changes to handle 2d time variable: forecast and time
+! plot both axes as formatted time axes.
+
+use twodtime.nc
+sh dat
+sh att time
+
+! The file has the t axis as just a dimension. Define another
+! axis with time units
+
+def axis/t=1:8:1/units=month/t0=1-nov-2014 taxis
+let time2d = time[gt=taxis at asn]
+set att/like=time time2d
+
+shade time2d
+shade/trans time2d
diff --git a/bench/bn_time_short_axes.jnl b/bench/bn_time_short_axes.jnl
new file mode 100644
index 0000000..0e9d98b
--- /dev/null
+++ b/bench/bn_time_short_axes.jnl
@@ -0,0 +1,27 @@
+! bn_time_short_axes.jnl
+! testing time axis style with HH:MM on the time axis labels.
+
+use timesec
+
+plot/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
+plot/axes=0,1,1,0/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
+plot/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
+
+
+plot/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
+plot/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
+plot/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
+
+! 2D plots
+
+define axis/x=0:360:1/units=degrees_east lonax
+let var2d = airt + 0.1*x[gx=lonax]
+
+shade/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
+fill/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
+shade/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
+
+
+shade/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
+fill/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
+shade/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
diff --git a/bench/bn_vec_curv.jnl b/bench/bn_vec_curv.jnl
index ca9266f..dfe46a1 100644
--- a/bench/bn_vec_curv.jnl
+++ b/bench/bn_vec_curv.jnl
@@ -67,4 +67,4 @@ let mypage = my + 0*mx
vec/title="Stretched grid" a,b,mxpage,mypage
can mode meta
-set mode logo
+
diff --git a/bench/bn_vtree.jnl b/bench/bn_vtree.jnl
index 0c524f6..0c919de 100644
--- a/bench/bn_vtree.jnl
+++ b/bench/bn_vtree.jnl
@@ -1,6 +1,7 @@
! bn_tree.jnl
! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
+! 12/14 update to test regridding output using bn_vtree_regrid.jnl
CANCEL DATA/ALL
! pure abstract variable -- no dataset
@@ -171,3 +172,7 @@ let a = fvz.long_name[d=1]
show var/tree a
let a = ..history[d=1]
show var/tree a
+
+! *****
+! 12/14 addition to test regridding dependencies
+go bn_vtree_regrid
diff --git a/bench/bn_vtree_regrid.jnl b/bench/bn_vtree_regrid.jnl
new file mode 100644
index 0000000..5b0e591
--- /dev/null
+++ b/bench/bn_vtree_regrid.jnl
@@ -0,0 +1,178 @@
+! bn_vtree_regrid.jnl
+! exercise 12/14 enhancements to display regrid target on a separate line
+! updated 1/26/15 to exercise multiple regrid target outputs
+! updated 2/23/15 to report target of regrid even when aux regridding occurs
+
+! case 1: target grid known, regridded variable known
+let myvar = 1 ! var to be regridded is known
+let gvar = x[x=1:5] ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+
+! case 2: target grid known, regridded variable unknown
+canc var/all
+! myvar unknown
+let gvar = x[x=1:5] ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+
+! case 3: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+
+! **************************************
+! same tests but now with a dataset named with the target grid
+use coads_climatology
+use levitus_climatology ! default to d=2
+
+! case 1: target grid known, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+
+! case 2: target grid known, regridded variable unknown
+canc var/all
+! myvar unknown
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+
+! case 3a: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+
+! case 3b: target grid unknown cuz of dataset, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=sst[d=bad_dset]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+
+! *******************
+! file variable listing, only
+canc var/all
+let myvar = 1
+let fvar = airt[d=1]
+let kvar = 1 ! known var
+* /TREE=FILE with know regrid target
+let a = myvar[g=sst[d=1]] + fvar + kvar
+sho var/tree=file a
+
+* /TREE=FILE with unknow regrid target
+let a = myvar[g=unknown] + fvar + kvar
+sho var/tree=file a
+
+! ********************
+! regridding to multiple targets
+
+define axis/x=140e:160e:1 x1
+define axis/y=20s:20n:1 y1
+LET myvar = X[gx=x1] + Y[gy=y1]
+
+define axis/y=5s:5n:.5 yp5
+
+go bn_vtree.sub myvar[g=temp]
+
+! second target *is* a named variable
+go bn_vtree.sub myvar[g=temp,gy=sst[d=1]]
+go bn_vtree.sub myvar[gx=temp,gy=sst[d=1]]
+go bn_vtree.sub myvar[gy=sst[d=1],gx=temp] ! reverse order, only
+
+! second target is not a named variable
+go bn_vtree.sub myvar[g=temp,gy=yp5]
+go bn_vtree.sub myvar[gx=temp,gy=yp5]
+go bn_vtree.sub myvar[g=temp,y=5s:5n:.5]
+go bn_vtree.sub myvar[g=sst[d=1],y=5s:5n:.5]
+
+! multiple targets, including unknown variables
+go bn_vtree.sub myvar[g=temp,gy=mybad]
+go bn_vtree.sub myvar[g=mybad,gy=temp]
+go bn_vtree.sub myvar[gy=temp,g=mybad[d=1]]
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=1],gy=mybad2]! distinct unknown targets
+go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]] ! dup known targets
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad] ! dup unknown suppressed
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy='MYBAD'] ! dup unknown missed
+go bn_vtree.sub myvar[g=myvar,gy=mybad]
+go bn_vtree.sub myvar[gy=yp5,g=mybad]
+go bn_vtree.sub myvar[g=mybad,y=5s:5n:.5]
+
+! 2/15 additions -- auxiliary variable regridding
+USE levitus_climatology
+LET myzvar = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = myzvar
+SET REGION/i=101:102/j=41:42
+
+LET/D=levitus_climatology depth = z[g=temp]+ 0*temp[k=1]
+
+! valid aux var and target variable
+LET tempz = temp[gz(depth)=myzvar]
+vtree=all tempz
+
+! valid aux var. Target is axis name
+LET tempz1 = temp[gz(depth)=zax]
+vtree=all tempz1
+
+! valid aux var. Target is unknown
+LET tempz2 = temp[gz(depth)=unknown_target]
+vtree=all tempz2
+
+! --- unknown aux var, valid target ---
+! When an unknown auxiliary variable error occurs it suppresses
+! the reporting of both the variable being regridded and the regrid target
+! The underlying issue is that GET_VAR_CONTEXT (called from is_dependencies.F)
+! can return only a single error status
+! If it contains ferr_unknown_auxvar, then the success or failure of other
+! parts of the context processing are unknown.
+! One could kludge the code to find a way around this, but the violence
+! required is not justified in order to fix this small loss in error reporting.
+LET tempz3 = temp[gz(unknown_aux)=myzvar]
+vtree=all tempz3
+
+! a syntax error leads to a similar behavior
+LET tempz3a = temp[gz(unknown_aux)=myzvar,SYNTAX_ERROR]
+vtree=all tempz3a
+
+! similar behavior here: the unknown_target does not get reported
+LET tempz4 = temp[gz(unknown_aux)=unknown_target]
+vtree=all tempz4
+
+
diff --git a/bench/check_pdf_ImageMagick b/bench/check_pdf_ImageMagick
new file mode 100755
index 0000000..111c057
--- /dev/null
+++ b/bench/check_pdf_ImageMagick
@@ -0,0 +1,52 @@
+#!/bin/csh -f
+# script to check image files created after a run of the
+# benchmark scripts against master image files.
+#
+# ALSO NOTE THE compare utility
+# Here is a way to compare two images by subtracting them using ImageMagick's
+# "composite" utility.
+#
+# composite -compose subtract input1.png input2.png output.png
+#
+# Pixels which are the same in both input images will be black in the output
+# image.
+
+# Clean up anything left from a previous check_metafiles_ImageMagick
+
+rm -f *.pdf.diff.pdf
+
+cd test_results
+set pdf_files = `ls *.pdf`
+set num_pdf_files = `ls -l *.pdf | wc -l `
+cd ../
+
+set err_pdf = 0
+@ count = 0
+
+foreach pdf_file ($pdf_files)
+ set size = `ls -l $pdf_file | awk '{print $5}'`
+ set size2 = `ls -l test_results/$pdf_file | awk '{print $5}'`
+ if ("$size" != "$size2") then
+ echo "pdf files differ $pdf_file size $size test_results/$pdf_file size $size2"
+
+ cp test_results/$pdf_file test_results_$pdf_file
+ compare $pdf_file test_results/$pdf_file $pdf_file.diff.pdf
+ display $pdf_file &
+ display test_results_$pdf_file &
+ display $pdf_file.diff.pdf
+
+ set err_pdf = 1
+ endif
+ @ count += 1
+
+end
+
+if ($err_pdf) then
+ echo "CHECK pdf FILES - THERE HAS BEEN AN ERROR"
+else
+ echo " pdf files look good....."
+endif
+
+# clean up
+rm -f *.pdf.diff.pdf
+rm -f test_results_*.pdf
diff --git a/bench/edge.nc b/bench/edge.nc
new file mode 100644
index 0000000..8157b66
Binary files /dev/null and b/bench/edge.nc differ
diff --git a/bench/err570_shakeylab.jnl b/bench/err570_shakeylab.jnl
index 8e15355..f6a4917 100644
--- a/bench/err570_shakeylab.jnl
+++ b/bench/err570_shakeylab.jnl
@@ -12,7 +12,7 @@
use coads_climatology
ppl dfltfnt cr
-define viewport/axes/text=1/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
+define viewport/axes/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
set viewport vp_1
fill/set/L=2 sst
@@ -29,7 +29,7 @@ ppl fill
!
-define viewport/axes/text=1/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
+define viewport/axes/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
set viewport vp_1
shade/set/L=2 sst
diff --git a/bench/err580_def_view_axes.jnl b/bench/err580_def_view_axes.jnl
index 921eb77..7a575a5 100644
--- a/bench/err580_def_view_axes.jnl
+++ b/bench/err580_def_view_axes.jnl
@@ -9,7 +9,7 @@
! Does not crash with Ferret v5.50
-define view/x=0.2:0.4/y=.2:.4/text=0.75/axes v1
+define view/x=0.2:0.4/y=.2:.4/axes v1
set window/clear
set mode metafile viewaxes.plt
diff --git a/bench/err600_reset_redefine_axis.jnl b/bench/err600_reset_redefine_axis.jnl
index 5d332c6..d947ce8 100644
--- a/bench/err600_reset_redefine_axis.jnl
+++ b/bench/err600_reset_redefine_axis.jnl
@@ -6,10 +6,10 @@
use coads_climatology
def sym timeax = `sst,return=taxis`
-show att/all ($timeax)
+show att/all (($timeax))
show axis ($timeax)
define axis/t0=1-jan-0001/t=1:3:1/unit=months ($timeax)
-show att/all ($timeax)
+show att/all (($timeax))
show axis ($timeax)
! Changing axis with the SET AXIS command
@@ -17,11 +17,11 @@ show axis ($timeax)
can data/all
use gt4d011
def sym timeax = `temp,return=taxis`
-show att/all ($timeax)
+show att/all (($timeax))
show axis ($timeax)
set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days ($timeax)
-show att/all ($timeax)
+show att/all (($timeax))
show axis ($timeax)
@@ -31,13 +31,13 @@ can data/all
use gt4d011
def sym timeax = `temp,return=taxis`
def sym zax = `temp,return=zaxis`
-show att/all ($timeax)
+show att/all (($timeax))
show axis ($zax)
cancel axis/modulo ($timeax)
-show att/all ($timeax)
+show att/all (($timeax))
show axis ($timeax)
cancel axis/depth ($zax)
-show att/all ($zax)
+show att/all (($zax))
show axis ($zax)
diff --git a/bench/err684_axticlab.jnl b/bench/err684_axticlab.jnl
index f9ee2bc..8950666 100644
--- a/bench/err684_axticlab.jnl
+++ b/bench/err684_axticlab.jnl
@@ -11,5 +11,9 @@ let/title="tic labels on dependent axis" var = {\
1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
+cancel mode meta
+! rename the metafile. Else we get weird contents in axticlabel.plt
+! once the whole benchmark suite has finished. (why?)
+set mode meta metafile.plt
+cancel mode meta
diff --git a/bench/err691_pt_in_poly.jnl b/bench/err691_pt_in_poly.jnl
new file mode 100644
index 0000000..a954d1b
--- /dev/null
+++ b/bench/err691_pt_in_poly.jnl
@@ -0,0 +1,29 @@
+! err691_pt_in_poly
+! ticket 1961: modulo longitude for pt_in_poly
+! and sending subset of the xy field
+
+use coads_climatology
+
+let xpts = {64,81,81,82,88,88,79,79,76,73,68,64}
+let ypts = {31,30,29,29,27,24,20,19,20,25,27,31}
+
+let pts = pt_in_poly(sst[L=5,x=60:90,y=15:35], xpts, ypts)
+shade/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+
+! Put the xpts on different modulo branches
+! Previously the list commands would have listed -1,-1
+
+let xpts0 = {64,81,81,82,88,88,79,79,76,73,68,64}
+let/title=lon/units=degrees_east xpts = xpts0 + 360
+
+shade/title="Plus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+
+let/title=lon/units=degrees_east xpts = xpts0 - 360
+
+shade/title="Minus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
diff --git a/bench/err691_substring_arg.jnl b/bench/err691_substring_arg.jnl
new file mode 100644
index 0000000..3777f93
--- /dev/null
+++ b/bench/err691_substring_arg.jnl
@@ -0,0 +1,9 @@
+! err693_substring_arg
+! ACM 12/10/2014
+! ticket 2210. Argument checking was not done for the SUBSTRING function
+
+set mode ignore
+list substring("hello",1,-2)
+list substring("hello",1,-3)
+
+set mode/last ignore
diff --git a/bench/err693_attr_in_gcfcn.jnl b/bench/err693_attr_in_gcfcn.jnl
new file mode 100644
index 0000000..9e5b824
--- /dev/null
+++ b/bench/err693_attr_in_gcfcn.jnl
@@ -0,0 +1,21 @@
+! err693_attr_in_gcfcn.jnl
+! ACM 12/10/2014
+! bug 2220 varname.attname as an argument to grid-changing functions.
+! All except the last of these caused various ungraceful stops.
+
+let/units="m" a = 1
+list is_element_of_str(a.units,{"m","a"})
+
+let/units="m" a = 1
+let b = a.units
+list is_element_of_str(b,{"m","a"})
+
+
+use levitus_climatology
+
+list is_element_of_str_n (temp.long_name, {"Temperature", "temp"})
+
+let a = temp.units
+list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
+
+
diff --git a/bench/err693_check_edges.jnl b/bench/err693_check_edges.jnl
new file mode 100644
index 0000000..d13b3a1
--- /dev/null
+++ b/bench/err693_check_edges.jnl
@@ -0,0 +1,23 @@
+! err693_check_edges
+! Bug 2280. Regularly-spaced coordinates with edges did
+! not check the location of the edges but just ignored them
+
+
+use edge
+
+! Should be a regular axis
+
+say `x1,return=title`
+sh axis `x1,return=xaxis`
+
+! Should be an irregular axis
+say `x2,return=title`
+sh axis `x2,return=xaxis`
+
+! Should be an irregular axis
+say `x3,return=title`
+sh axis `x3,return=xaxis`
+
+! Should be an irregular axis - previously would have been marked as regular
+say `x4,return=title`
+sh axis `x4,return=xaxis`
diff --git a/bench/err693_edit_useratt.jnl b/bench/err693_edit_useratt.jnl
new file mode 100644
index 0000000..c1b1605
--- /dev/null
+++ b/bench/err693_edit_useratt.jnl
@@ -0,0 +1,26 @@
+! err693_edit_useratt.jnl
+! ticket 2249: set attribute properties for user-defined variable
+
+use err491_attval.cdf
+list/x=135.402W:135.321W/y=58.609 elev
+
+
+! Rename the file variable, define a variable using its name
+set var/name=elev_in elev
+let elev = missing(elev_in, -1.e34)
+
+! Inherit attributes from the file variable.
+! cancel writing the scale attributes
+set att/like=elev_in elev
+can att/output elev.scale_factor
+can att/output elev.add_offset
+
+! set the bad-flag (can't do this before the SET ATT/LIKE
+set var/bad=-1.e34 elev
+
+! save
+save/clobber/file=a.nc elev
+can var/all
+use a.nc
+list/x=135.402W:135.321W/y=58.609 elev
+
diff --git a/bench/err693_ef_axis_precision.jnl b/bench/err693_ef_axis_precision.jnl
new file mode 100644
index 0000000..c31d884
--- /dev/null
+++ b/bench/err693_ef_axis_precision.jnl
@@ -0,0 +1,13 @@
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.94
+ ! Linux 2.6.32-504.12.2.el6.x86_64 64-bit - 03/20/15
+ ! 11-May-15 16:51
+
+define axis/f faxis = {0.001, 0.123, 0.234, 0.498}
+define axis/e eaxis = {1001.1009, 1234.005, 2112.321, 2520.45}
+let efvar = _M[ge=eaxis] + _n[gf=faxis]
+set view upper; plot/n=3 efvar
+set view lower; plot/m=2 efvar
+list/n=3 efvar
+list/m=2 efvar
+q
diff --git a/bench/err693_fcn_of_attvar.jnl b/bench/err693_fcn_of_attvar.jnl
new file mode 100644
index 0000000..d54bdc5
--- /dev/null
+++ b/bench/err693_fcn_of_attvar.jnl
@@ -0,0 +1,11 @@
+! err693_fcn_of_attvar.jnl
+! Ticket 2291 Function of attribute-expression
+! returned just the first result
+
+use coads_climatology
+list sst.dimnames
+list dncase(sst.dimnames)
+list strlen( sst.dimnames)
+list substring(sst.dimnames,2,3)
+list dncase(substring(sst.dimnames,2,3))
+list ysequence(dncase(sst.dimnames))
diff --git a/bench/err693_frame_types.jnl b/bench/err693_frame_types.jnl
new file mode 100644
index 0000000..45a69cd
--- /dev/null
+++ b/bench/err693_frame_types.jnl
@@ -0,0 +1,20 @@
+! bn_frame_types.jnl
+! Ticket 2275
+! The default file type for FRAME was still HDF
+
+set mode ignore
+
+use coads_climatology
+shade/l=1 sst
+
+! This issued an error and quit
+frame/format=hdf/file=a.hdf
+
+! so did this
+frame/file=a.png
+
+! this is (always) ok
+frame/file=a.gif
+frame/format=gif file=a.plot
+
+set mode/last ignore
diff --git a/bench/err693_if_then_flow_1368.jnl b/bench/err693_if_then_flow_1368.jnl
new file mode 100644
index 0000000..b8cc75f
--- /dev/null
+++ b/bench/err693_if_then_flow_1368.jnl
@@ -0,0 +1,30 @@
+! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
+
+! this is still a bug in V69+
+! the initial IF command is not being closed by the first ENDIF
+! it is skipping down to the elif command
+
+define symbol xend 180
+let key_flag = 0
+
+! test 1 - line 1 false condition should suppress both outputs
+IF `($xend) GT 360` THEN
+ SAY "ERROR - THIS MESSAGE SHOULD NOT DISPLAY"
+ IF key_flag EQ 0 THEN SAY "point E2"
+ENDIF
+
+
+! test 2 - line 1 false condition should cause else clause - "point G"
+let dxymin = 0.20
+if `dxymin lt 0.12` then
+ SAY "ERROR - this message should be silent"
+elif `dxymin lt 0.25` then
+ SAY "CORRECT. this message should display"
+endif
+
+! test 3 - this is from bug #918 -- looks like the same bug as #1368
+IF 0 THEN
+ let a = 1
+ IF a THEN
+ ENDIF
+ENDIF
diff --git a/bench/err693_if_then_flow_1446.jnl b/bench/err693_if_then_flow_1446.jnl
new file mode 100644
index 0000000..37b7c60
--- /dev/null
+++ b/bench/err693_if_then_flow_1446.jnl
@@ -0,0 +1,14 @@
+! testing ticket 1446
+
+! the presence of a tab preceding the "!" comment caused a parsing error
+
+! the behavior of this even in v69+ today is problematic in that
+! it echos an ENDIF statement that should be a plain old skip
+
+IF 0 THEN
+ LET a = 12
+ IF `a` THEN ! a comment
+ say "IF YOU ARE SEEING THIS AN ERROR HAS OCCURED "
+ ENDIF
+ENDIF
+
diff --git a/bench/err693_if_then_flow_1681.jnl b/bench/err693_if_then_flow_1681.jnl
new file mode 100644
index 0000000..96f0860
--- /dev/null
+++ b/bench/err693_if_then_flow_1681.jnl
@@ -0,0 +1,29 @@
+! testing ticker 1681
+
+!The third block of the following script issues an error:
+!ERROR: invalid command: ENDIF can only be used in an IF clause
+!
+!Looks like a parsing bug -- it seems the ENDIF inside the REPEAT is being
+!applied to the outermost IF. Note that the error goes away if we change
+!the outer 0 to a 1.
+
+
+say "test1"
+if 0 then
+ repeat/RANGE=1:2 (if 0 then; say "hello1"; endif)
+endif
+
+say "test2"
+if 0 then
+ repeat/RANGE=1:2 (\\
+ if 0 then;\\
+ say "hello2"; endif)
+endif
+
+say "test3"
+if 0 then
+ repeat/RANGE=1:2 (\\
+ if 0 then;\\
+ say "hello3";\\
+ endif)
+endif
diff --git a/bench/err693_if_then_flow_1706.jnl b/bench/err693_if_then_flow_1706.jnl
new file mode 100644
index 0000000..9cf9784
--- /dev/null
+++ b/bench/err693_if_then_flow_1706.jnl
@@ -0,0 +1,11 @@
+! testing ticket 1706
+!
+def sym a say hi\\; say hi
+
+IF 0 THEN
+ENDIF
+
+! some versions (not v550 but yes v63 but not v6301) fail to say "here"
+IF 1 THEN
+ say here
+ENDIF
diff --git a/bench/err693_if_then_flow_1860.jnl b/bench/err693_if_then_flow_1860.jnl
new file mode 100644
index 0000000..13b4c21
--- /dev/null
+++ b/bench/err693_if_then_flow_1860.jnl
@@ -0,0 +1,41 @@
+! from bug 1860
+! continue line found within grave accents
+
+CANCEL MODE VERIFY
+
+if 0 then
+ if `1 or \
+ 1` then
+ say "ERROR IF THIS DISPLAYS"
+ endif
+endif
+
+say "This works:"
+if 1 then
+ if `1 or \
+ 1` then
+ say "CORRECT IF THIS DISPLAYS"
+ endif
+endif
+
+say "This works:"
+if 1 then
+ if `1 or \
+ 1` then
+ say "CORRECT IF THIS DISPLAYS"
+ endif
+endif
+
+say "This works:"
+if 0 then
+ let condition = 1 or \
+ 1
+ if `condition` then
+ say "ERROR IF THIS DISPLAYS"
+ endif
+else
+ say "CORRECT IF THIS DISPLAYS"
+endif
+
+SET MODE/LAST VERIFY
+
diff --git a/bench/err693_if_then_flow_2211.jnl b/bench/err693_if_then_flow_2211.jnl
new file mode 100644
index 0000000..d7965cb
--- /dev/null
+++ b/bench/err693_if_then_flow_2211.jnl
@@ -0,0 +1,17 @@
+! bug #2211
+
+
+IF 0 THEN
+ rep/name=s/range=1:1 (\
+ IF 1 THEN;\
+ ELSE;\
+ ENDIF)
+ELSE
+ exit/script
+ENDIF
+
+say ERROR: SHOULD NEVER GET HERE
+
+! note that Ferret v631 (10/08/09) does NOT have this bug. v64 (12/07/09) does
+! Ferret v550 has an earlier, different bug. It reports
+! "**ERROR: command syntax: ENDIF)"
\ No newline at end of file
diff --git a/bench/err693_if_then_flow_2214.jnl b/bench/err693_if_then_flow_2214.jnl
new file mode 100644
index 0000000..bd2d8e5
--- /dev/null
+++ b/bench/err693_if_then_flow_2214.jnl
@@ -0,0 +1,23 @@
+! bug 2214
+! If we put the "say hi" in parentheses, this seems to work.
+! But parentheses haven't previously been required, so there are a lot of
+! scripts that don't have them.
+
+* 12/14 note (sh) - Ferret handles this situation correctly because
+* PARSE_COMMAND acts on the semi-colons in the full command line *before*
+* it acts on the "IF". Thus the thress semicolon-connected commands
+* follow the same logical path through Ferret as if they were separated
+* onto three lines
+
+IF 0 THEN; rep/i=1:1 say ERROR; ENDIF
+
+IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF
+
+(IF 0 THEN; rep/i=1:1 say ERROR; ENDIF)
+
+(IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF)
+
+!yes? quit
+!yes? quit
+!yes? ^Z
+!Suspended
diff --git a/bench/err693_inconsistent_quote.jnl b/bench/err693_inconsistent_quote.jnl
new file mode 100644
index 0000000..9b5db06
--- /dev/null
+++ b/bench/err693_inconsistent_quote.jnl
@@ -0,0 +1,10 @@
+! inconsistent interpretation of surrounding double quotes
+! the original source of the problem is in PARSE_COMMAND
+! arg_start and arg_end are set to skip surrounding quotation marks.
+! But since this behavior permeates so many routines it is best to repair
+! the problem in ALL_1_ARG
+
+
+let foobar = 1
+LIST "foobar", "foobar" ! this is correct - list as strings
+LIST "foobar" ! error: lists the value instead
diff --git a/bench/err693_isize_and_gcfcn.jnl b/bench/err693_isize_and_gcfcn.jnl
new file mode 100644
index 0000000..ee55672
--- /dev/null
+++ b/bench/err693_isize_and_gcfcn.jnl
@@ -0,0 +1,26 @@
+! err693_isize_and_gcfcn.jnl
+! ticket 2213
+! SET REGION interacting with ABSTRACT AXES
+! When the variable using XSEQUENCE was defined, suddenly the
+! region was being applied (inconsistently).
+
+can mode verify
+cancel region
+set reg/x=25:27
+
+! constant-array variable
+let strs = {"a","b","c","d","e","f","g","h"}
+say `strs,r=isize`
+sh grid strs
+rep/name=n/range=1:`strs,r=isize` (say `strs,r=isize`; let str=strs[i=`n`]; say `strs,r=isize` `str`)
+
+! Now with an xsequenced variable. The result should be the same (bug behavior did
+! the repeatloop just 3 times.)
+
+let xstrs = xsequence(strs)
+say `xstrs,r=isize`
+sh grid xstrs
+rep/name=n/range=1:`xstrs,r=isize` (say `xstrs,r=isize`; let xstr=xstrs[i=`n`]; say `xstrs,r=isize` `xstr`)
+
+cancel region
+set mode/last verify
diff --git a/bench/err693_isready_dyn_grid_crash.jnl b/bench/err693_isready_dyn_grid_crash.jnl
new file mode 100644
index 0000000..0bb7a3c
--- /dev/null
+++ b/bench/err693_isready_dyn_grid_crash.jnl
@@ -0,0 +1,5 @@
+let/unit="m" b = x[gx=1:5:1]
+say "`b,r=unit`" ! this causes dynamic grid of b to be created
+let c = x[gx=1:5:2]
+let b2 = b+0*c[gx=b] ! dynamic grid of b exists, but not grid of c
+VTREE b2
diff --git a/bench/err693_isready_hang.jnl b/bench/err693_isready_hang.jnl
new file mode 100644
index 0000000..4e0dde3
--- /dev/null
+++ b/bench/err693_isready_hang.jnl
@@ -0,0 +1,12 @@
+! err693_isready_hang.jnl
+! ACM 12/10/2014
+! ticket 2219. The last of these commands caused Ferret to hang.
+
+use gt4d011
+def ax/t/t0="`u,r=t0`"/unit="`u,r=tunit`" time = t[gt=u]
+let a = u
+IF `a,r=isready` THEN; let/title="`a,r=title`" a1 = a; ENDIF
+IF `a,r=isready` THEN; let/title="`a,r=title`" a2 = a; ENDIF
+IF `a,r=isready` THEN; let/title="`a,r=title`" a3 = a; ENDIF
+IF `a,r=isready` THEN; let/title="`a,r=title`" a4 = a; ENDIF
+IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
diff --git a/bench/err693_lev_nv_over.jnl b/bench/err693_lev_nv_over.jnl
new file mode 100644
index 0000000..ab6fa66
--- /dev/null
+++ b/bench/err693_lev_nv_over.jnl
@@ -0,0 +1,15 @@
+! err693_lev_nv_over.jnl
+! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
+
+! draw any underlay to set up for polymark script
+use coads_climatology
+shade/x=120:250/Y=25s:65n/L=1/pal=white/nokey sst
+
+LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
+LET ypts = 15 + 20*SIN(2*3.14*I[I=1:50]/60)
+
+! Variable is a constant w/ negative value
+LET sst = -5 + 0*ypts
+
+! The poly/over command caused a Fortran runtime error in tm_fmt_sngl
+GO polymark polygon/over/lev=20v/key/title="SST" xpts,ypts,sst,square, 0.5
diff --git a/bench/err693_line_over_axis.jnl b/bench/err693_line_over_axis.jnl
new file mode 100644
index 0000000..f496e6e
--- /dev/null
+++ b/bench/err693_line_over_axis.jnl
@@ -0,0 +1,12 @@
+! Ticket 2232: line plots overlaid the plot axes
+show mode meta
+! line plot with /VS draw on top of the axes
+let xval = {0.0, 0.2, 1.0, 0.8, 0}
+let yval = {0.0, 1.1, 1.1, 0.0, 0}
+plot/vs/line/thick=3/color=lightblue xval, yval
+
+! any line overlay may draw on the axes
+let xval = {0.0, 0.0, 0.8, 0.2, 0}
+let yval = {0.1, 1.2, 1.2, 0.1, 0.1}
+plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
+
diff --git a/bench/err693_list_missing.jnl b/bench/err693_list_missing.jnl
new file mode 100644
index 0000000..865230a
--- /dev/null
+++ b/bench/err693_list_missing.jnl
@@ -0,0 +1,10 @@
+! err693_list_missing.jnl
+
+let a= {1,2,3}
+let b = 1./0
+
+! Ths listing of b is .... was squashed onto the ends of values of a.
+! 1 / 1: 1.000..
+! 2 / 2: 2.000..
+
+list a,b
diff --git a/bench/err693_parse_curly.jnl b/bench/err693_parse_curly.jnl
new file mode 100644
index 0000000..0321f93
--- /dev/null
+++ b/bench/err693_parse_curly.jnl
@@ -0,0 +1,14 @@
+! err693_parse_curly.jnl
+! the sub-routine defines a string variable containing commands for overlays in
+! different directions. the bug was that the parser doesn't handle quoted strings
+! inside { } if those strings include curly braces.
+! The argument chooses one of the strings with commands and plots the overlay
+
+use gt4d011
+
+shade/i=100/l=1/pal=grayscale temp
+go err693_parse_curly.sub yz
+
+ shade/j=40/l=1/pal=grayscale temp
+go err693_parse_curly.sub xz
+
diff --git a/bench/err693_parse_curly.sub b/bench/err693_parse_curly.sub
new file mode 100644
index 0000000..1f28146
--- /dev/null
+++ b/bench/err693_parse_curly.sub
@@ -0,0 +1,39 @@
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+
+! list of valid shapes
+
+let prd_shapes = {"xy", "xz", "yz"}
+
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+
+let prd_overlays = {\
+ "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+
+let p1s_shape = "$1%xy%"
+
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ rep/name=s/range=1:`prd_shapes,r=isize` (let p1s_this_shape = prd_shapes[i=`s`];\
+ IF `p1s_this_shape EQ p1s_shape` THEN;\
+ let p1s_ov = prd_overlays[i=`s`];\
+ exit/loop;\
+ ENDIF;\
+ )
+ can var p1s_this_shape
+ENDIF
+
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+($overcommands)
diff --git a/bench/err693_redef_rec_axis.jnl b/bench/err693_redef_rec_axis.jnl
new file mode 100644
index 0000000..98454a1
--- /dev/null
+++ b/bench/err693_redef_rec_axis.jnl
@@ -0,0 +1,20 @@
+! err693_redef_rec_axis.jnl
+! ticket 2271. Redefining the record axis meant
+! that SHOW AXIS/FULL couldnt get the time axis info
+
+define axis/x=1:5:1 xax
+define axis/y=2:10:2 yax
+define axis/t=1:7:1 tredef
+let var = x[gx=xax] + y[gy=yax] + t[gt=tredef]
+save/clobber/file=a.nc var
+
+can var/all
+can axis xax
+can axis yax
+can axis tredef
+
+use a.nc
+define axis/t=1:7:1/units=days/t0=1-jan-2000 tredef
+
+! Previously the output had time range: ???
+show data/full
diff --git a/bench/err693_repeat_err.jnl b/bench/err693_repeat_err.jnl
new file mode 100644
index 0000000..a4e21bc
--- /dev/null
+++ b/bench/err693_repeat_err.jnl
@@ -0,0 +1,11 @@
+! err693_repeat_err.jnl
+! test fix for ticket 2244: Error handling in REPEAT
+
+! The second of these should result in an error - in debug mode
+! it instead was hitting an out-of-range subscript error.
+
+repeat/range=1:2/name=column repeat/range=1:2/name=row say `column`,`row`
+
+set mode ignore
+repeat/range=1:2/name=column repeat/range=1:2/name=row
+set mode/last ignore
diff --git a/bench/err693_ribbon_scale.jnl b/bench/err693_ribbon_scale.jnl
new file mode 100644
index 0000000..6317172
--- /dev/null
+++ b/bench/err693_ribbon_scale.jnl
@@ -0,0 +1,10 @@
+! err693_ribbon_scale.jnl
+! ticket 2295: the vertical scale is mis-computed
+! 5/29/2015
+
+let var = {-81,-81,-81}
+let color = {2,2,2}
+plot/ribbon/key var,color
+
+! should be -82 to -80
+sh sym yaxis*
diff --git a/bench/err693_ribbon_start_missing.jnl b/bench/err693_ribbon_start_missing.jnl
new file mode 100644
index 0000000..b241c8f
--- /dev/null
+++ b/bench/err693_ribbon_start_missing.jnl
@@ -0,0 +1,40 @@
+! err693_ribbon_start_missing
+! 1/6/2015 ACM
+!
+! Bug 2226: If data starts with a missing-value and we're using (-inf) then
+! the ribbon plot started with the lowest color instead of plotting as for missing
+! Only the cases starting with missing data were incorrect previous to fixing this bug.
+
+DEFINE SYMBOL ribbon_command = PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3
+
+let/units=degrees_east xvar = {-177,-174,-186}
+let/units=degrees_north yvar = {-43, -45, -42}
+let vvar = {,271, 319}
+! This previously started with purple, not a gray missing-value point
+($ribbon_command)/title="(-inf) in levels" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,,271,319}
+($ribbon_command)/title="start with several missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,271,319,1000}
+($ribbon_command)/title="end large positive value" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,271,319,1000,}
+($ribbon_command)/title="end with large positive and missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {1.e7,,,271,319}
+($ribbon_command)/title="start with large positive" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,1.e7,,271,319}
+($ribbon_command)/title="start with missing then large positive" xvar,yvar,vvar
+
diff --git a/bench/err693_save_packed.jnl b/bench/err693_save_packed.jnl
new file mode 100644
index 0000000..2e5034d
--- /dev/null
+++ b/bench/err693_save_packed.jnl
@@ -0,0 +1,7 @@
+! err693_save_packed.jnl
+! ticket 2240: bug writing multiple vars with one SAVE when scaled
+!
+! Previously saw a netcdf error because first variable was mis-scaled on writing.
+
+use err693_save_packed.nc
+save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
diff --git a/bench/err693_save_packed.nc b/bench/err693_save_packed.nc
new file mode 100644
index 0000000..cb6e550
Binary files /dev/null and b/bench/err693_save_packed.nc differ
diff --git a/bench/err693_scalar_grids.jnl b/bench/err693_scalar_grids.jnl
new file mode 100644
index 0000000..3355f61
--- /dev/null
+++ b/bench/err693_scalar_grids.jnl
@@ -0,0 +1,35 @@
+! err693_scalar_grids.jnl
+! See ticket 1602
+
+! multiplication by scalar variable "let one = 1" added
+! abstract axes to the expression in all directions not
+! already reperesented in the grid.
+
+
+! The T averaging is ignored; no T direction in the grid.
+use levitus_climatology
+let a = temp[x=140,y=0,z=0]
+list a[t=1-jan-0001:1-jan-0020 at ave]
+
+! Multiply by a variable which is a constant (prev. this
+! resulted in an illegal use of transform error.)
+let one = 1
+let b = one*a
+list b[t=1-jan-0001:1-jan-0020 at ave]
+
+! Test with a constant-array variable.
+let two = {2}
+let c = two*a
+list c[t=1-jan-0001:1-jan-0020 at ave]
+
+
+! check interactions with GC functions (prev. this
+! resulted in an illegal use of transform error.)
+LET v = X[x=1:4:1] + Y[Y=.1:.4:.1]
+LET a = XSEQUENCE( v[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+LIST a[t=1-jan-0001:1-jan-0020 at ave]
+list b
+
+list b[x=@ave,k=@ave]
+
+
diff --git a/bench/err693_shape.jnl b/bench/err693_shape.jnl
new file mode 100644
index 0000000..20e82a6
--- /dev/null
+++ b/bench/err693_shape.jnl
@@ -0,0 +1,16 @@
+! err693_shape.jnl
+! bug 2273 shape of variable with various subexpressions
+
+use coads_climatology
+let a = sst[x=@ave]
+let a_clim = a[gt=MONTH_IRREG at mod]
+let a_anom = a - a_clim[gt=a at nrst]
+
+! Should all be YT
+say `a,r=shape` `a_clim[gt=a at nrst],r=shape` `a_anom,r=shape`
+
+! Also works for size returns
+
+! Should be 180, 1, 1
+say `sst,r=isize` `a,r=isize` `a_anom,r=isize`
+
diff --git a/bench/err693_shf_subscr.jnl b/bench/err693_shf_subscr.jnl
new file mode 100644
index 0000000..074c4f8
--- /dev/null
+++ b/bench/err693_shf_subscr.jnl
@@ -0,0 +1,22 @@
+! err693_shf_subscr.jnl
+! ticket 2231 Subscripts used to compute @SHF-1 at the low end of the axis
+
+
+def ax/edge/z=0:40:10 zax_t
+def ax/edge/z=5:45:10 zax_w
+let zw = z[gz=zax_w]
+let zdiff = zw - missing(zw[z=@shf:-1],0)
+let zdiff_t = zdiff[gz=zax_t at asn]
+
+! a range of K shows the values correctly
+list zdiff_t
+
+! but just K=1 returned a K=0 error
+can mem
+list/k=1 zdiff_t
+
+! Shift of +1
+can mem
+let zdiff = zw - missing(zw[z=@shf:1],0)
+list/k=4 zdiff_t
+list/k=3:4 zdiff_t
diff --git a/bench/err693_shift_w_region.jnl b/bench/err693_shift_w_region.jnl
new file mode 100644
index 0000000..7942993
--- /dev/null
+++ b/bench/err693_shift_w_region.jnl
@@ -0,0 +1,12 @@
+! err693_shift_w_region
+! Ticket 2300. In fact with bounds checking on, the list a[i=@shf] would have
+! caused a Fortran runtime error with out-of-bounds subscripts. The fix for
+! ticket 2301 fixes this as well.
+
+set region/x=10:20
+let a = {1,2,3}
+list a
+list a[i=@shf]
+cancel region
+list a[i=@shf]
+
diff --git a/bench/err693_std4d.jnl b/bench/err693_std4d.jnl
new file mode 100755
index 0000000..d5d4773
--- /dev/null
+++ b/bench/err693_std4d.jnl
@@ -0,0 +1,28 @@
+! err693_std4d
+! Check fix to ticket 2319: std transform in multi-dimensions
+
+
+let a = x[gx=1:3:1] * y[gy=1:3:1]
+let astd = a[x=@std,y=@std]
+let avar = a[x=@var,y=@var]
+let a2 = a^2
+let avar_calc = a2[x=@ave,y=@ave] - a[x=@ave,y=@ave]^2
+let astd_x = a[x=@std]
+let astd_x_y = astd_x[y=@std]
+
+! STD and VAR in x and y together; vs astd_x_y separately
+list astd^2, avar, avar_calc, astd_x_y^2
+
+
+! Now in the E and F directions
+
+let a = _e[ge=1:3:1] * _f[gf=1:3:1]
+let astd = a[e=@std,f=@std]
+let avar = a[e=@var,f=@var]
+let a2 = a^2
+let avar_calc = a2[e=@ave,f=@ave] - a[e=@ave,f=@ave]^2
+let astd_e = a[e=@std]
+let astd_e_f = astd_e[f=@std]
+
+list astd^2, avar, avar_calc, astd_e_f^2
+
diff --git a/bench/err693_string_results.jnl b/bench/err693_string_results.jnl
new file mode 100644
index 0000000..1ca0e66
--- /dev/null
+++ b/bench/err693_string_results.jnl
@@ -0,0 +1,13 @@
+! err693_string_results.jnl
+! Ticket 2234, the LIST B returned the numeric pointer to the string.
+! *acm* 5/14/2015
+
+let b = IF a then "yes" else "no"
+let a = 1/0
+list b
+
+! The LOAD C makes the data type of D correct
+let d = if c then "ok" else "not ok"
+let c = 1/0
+load C
+list d
diff --git a/bench/err693_subspan_trans.jnl b/bench/err693_subspan_trans.jnl
new file mode 100644
index 0000000..262f2d3
--- /dev/null
+++ b/bench/err693_subspan_trans.jnl
@@ -0,0 +1,34 @@
+! err693_subspan_trans
+! bug 2241 3/9/2015
+
+use coads_climatology
+let a = sst[x=120:284,y=-2:2 at ave,t=@ave]
+save/clob/file=a.nc a
+can var a
+use a
+set reg/x=25:385
+let b = a[x=@min]
+
+set mode diag
+say `a[x=@min]`
+
+! This previously resulted in an error.
+say `b`
+
+can mode diag
+
+! What if the region for @MIN is in the saved portion?
+say `a[x=150:200 at min]`
+let b = a[x=150:200 at min]
+say `b`
+
+! What if the region for @MIN extends beyond the saved portion?
+say `a[x=200:300 at min]`
+let b = a[x=200:300 at min]
+say `b`
+
+! What if the region for @MIN is outside the saved portion?
+say `a[x=300:385 at min]`
+let b = a[x=300:385 at min]
+say `b`
+
diff --git a/bench/err693_undetected_regrid_dset.jnl b/bench/err693_undetected_regrid_dset.jnl
new file mode 100644
index 0000000..79cbe94
--- /dev/null
+++ b/bench/err693_undetected_regrid_dset.jnl
@@ -0,0 +1,15 @@
+! err693_undetected_regrid_dset.jnl - Jan 2015
+
+! in GET_CONTEXT_MODS no check is made whether dataset name/number is
+! valid following "gdset = FIND_DSET_NUMBER( name(dstart:dend) )"
+
+use coads_climatology
+use levitus_climatology ! default to d=2
+
+canc var/all
+let myvar = temp
+let a = myvar[g=temp[d=bad_d]] ! THIS SHOULD BE DETECTED AS AN ERROR
+
+set mode ignore
+stat/l=1/x=180/y=0 a ! this *SHOULD* trigger an error. Yes. Detect it.
+set mode/last ignore
\ No newline at end of file
diff --git a/bench/err693_upcase_quoted_name.jnl b/bench/err693_upcase_quoted_name.jnl
new file mode 100644
index 0000000..f989beb
--- /dev/null
+++ b/bench/err693_upcase_quoted_name.jnl
@@ -0,0 +1,16 @@
+! err693_upcase_quoted_name.jnl
+! ticket 2050. Names are saved in uppercase
+! form unless there are duplicates other than case.
+! Then searching for the name in quotes looked
+! only with a case-sensitive search.
+
+let abc = 12
+cancel mode upcase
+
+save/file=aa.nc/clobber abc
+can dat/all; can var/all
+
+use aa.nc
+! previously this failed to find the name.
+list 'abc'
+
diff --git a/bench/err694_longname_showdat.jnl b/bench/err694_longname_showdat.jnl
new file mode 100644
index 0000000..1565260
--- /dev/null
+++ b/bench/err694_longname_showdat.jnl
@@ -0,0 +1,20 @@
+! err694_longname_showdat.jnl
+! ticket 2317
+!
+! Make a file whose name starts the same as file with long name.
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+
+! Long name was not matched by SHOW DAT filename
+! this previously returned an unknown dataset error
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+
+! If a file matched to 1st 32 characters, the shorter-named
+! datset was mistakenly returned.
+
+use WestCoastCarbon_9d9c_f562_77b5_5
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
diff --git a/bench/err694_shf_missing.jnl b/bench/err694_shf_missing.jnl
new file mode 100644
index 0000000..0a37436
--- /dev/null
+++ b/bench/err694_shf_missing.jnl
@@ -0,0 +1,11 @@
+! err694_shf_missing.jnl
+! Test the fix for ticket 2314
+
+! This had been getting a missing-result; now is correct
+use gt4d011.cdf
+list/i=100/j=50/k=1/l=24 temp[l=@shf]
+
+! Check shift that takes us beyond the end of a modulo axis (at x=20)
+can dat/all; use coads_climatology
+list/x=10:30/y=-60/l=1 sst
+list/x=10:30/y=-60/l=1 sst[i=@shf:3]
diff --git a/bench/err695_bounds_match_axis.jnl b/bench/err695_bounds_match_axis.jnl
new file mode 100644
index 0000000..729a018
--- /dev/null
+++ b/bench/err695_bounds_match_axis.jnl
@@ -0,0 +1,12 @@
+! err695_bounds_match_axis.jnl
+! ticket 2321.
+!
+! The coordinates match the upper bound of each cell
+! to machine accuracy. The internal rep of the value
+! has pt > bound_hi however. The logic in tm_check_bnds
+! handes this.
+
+use shorttemp.nc
+
+! Previously showed tbox=0 for every second pt.
+sh grid/l=1:4444 temp
diff --git a/bench/err695_show_dat_nodata.jnl b/bench/err695_show_dat_nodata.jnl
new file mode 100644
index 0000000..6de593b
--- /dev/null
+++ b/bench/err695_show_dat_nodata.jnl
@@ -0,0 +1,18 @@
+! err695_show_dat_nodata.jnl
+! ticket 2322
+!
+! SHOW DATA noexist should include the dataset name or number
+! in the error message.
+
+USE coads_climatology
+
+SHOW DATA 1
+SHOW DATA coads_climatology
+
+! intentional errors
+SET MODE ignore
+SHOW DATA noexist
+SHOW DATA 2
+SHOW DATA/ATT noexist
+
+SET MODE/LAST ignore
diff --git a/bench/err69_isready_bugs.jnl b/bench/err69_isready_bugs.jnl
index d20800a..ba23731 100644
--- a/bench/err69_isready_bugs.jnl
+++ b/bench/err69_isready_bugs.jnl
@@ -1,5 +1,7 @@
! err69_isready_bugs.jnl
! Tickets 2201 and 2215
+! updated error script 12/14 *sh* - to ensure that bench log file
+! has verification of this problem and its fix, as well as the bench error file
! ticket 2201: isready operation meant we couldn't cancel the second axis
@@ -17,6 +19,10 @@ can axis xax_isready_1
can var b
can axis xax_isready_2
+! 12/14 additions:
+show grid/dynamic ! look for "err: grid over-allocated" messages
+show axis xax_isready_1, xax_isready_2 ! did they both get canceled?
+
! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
let a = x[gx=1:3:1]
diff --git a/bench/ferret_startup b/bench/ferret_startup
index c0343e9..a23f172 100644
--- a/bench/ferret_startup
+++ b/bench/ferret_startup
@@ -1,7 +1,7 @@
CAN MODE VERIFY
! This file will be copied to .ferret as part
-! pf the benchmark testing
+! of the benchmark testing
SET MEMORY/SIZE=31
SET MODE journal startup_tests.jnl
@@ -16,3 +16,6 @@ CANCEL MODE latit_label
SET MODE GRATICULE
+! always include removal of the LOGO
+CANCEL MODE LOGO
+
diff --git a/bench/fxdata.dat b/bench/fxdata.dat
new file mode 100644
index 0000000..ed90112
--- /dev/null
+++ b/bench/fxdata.dat
@@ -0,0 +1,8 @@
+paleonEBM K4, nohdsafemwpext fx Gb hconvert.Gg idHhp0.nn4s6/eu4 0.5 min marine b
+ 73 37 -180.000000 180.000000 -90.000000 90.000000 5.00000 5.00000
+
+ time(years)= -120000.0
+ -6.85 -11.71 -19.12 -24.81 -27.19 -28.51 -30.27 -31.34 -29.34 -23.29 -14.91 -8.09
+ -6.75 -11.72 -19.22 -24.82 -27.29 -28.52 -30.37 -31.54 -29.44 -23.39 -14.92 -8.19
+ -6.65 -11.73 -19.32 -24.83 -27.39 -28.53 -30.47 -31.64 -29.54 -23.49 -14.93 -8.29
+ -6.55 -11.74 -19.42 -24.84 -27.49 -28.54 -30.57 -31.74 -29.64 -23.59 -14.94 -8.39
diff --git a/bench/levitus_3d_subset.nc b/bench/levitus_3d_subset.nc
new file mode 100644
index 0000000..f701521
Binary files /dev/null and b/bench/levitus_3d_subset.nc differ
diff --git a/bench/run1.nc b/bench/run1.nc
new file mode 100644
index 0000000..02929ef
Binary files /dev/null and b/bench/run1.nc differ
diff --git a/bench/run2.nc b/bench/run2.nc
new file mode 100644
index 0000000..13e709a
Binary files /dev/null and b/bench/run2.nc differ
diff --git a/bench/run3.nc b/bench/run3.nc
new file mode 100644
index 0000000..f502322
Binary files /dev/null and b/bench/run3.nc differ
diff --git a/bench/run4.nc b/bench/run4.nc
new file mode 100644
index 0000000..4c4d349
Binary files /dev/null and b/bench/run4.nc differ
diff --git a/bench/run_all b/bench/run_all
index e110de5..d42a222 100755
--- a/bench/run_all
+++ b/bench/run_all
@@ -53,6 +53,7 @@
#
# for now you must also manually check the benchmark bn311_ez_order
+# *sh* 4/2015 automatically run clean_draconian at the end
umask 002 # make all files group deletable 3/16
@@ -112,9 +113,9 @@ set efdir = n
if ( $do_shared_obj == "y" ) then
echo "Enter the directory containing the external function libraries"
set efdir = $<
- echo "Contents of "$efdir" :"
+ echo "Contents of "$efdir "fcns a* :"
echo " "
- ls -1 $efdir
+ ls -1 $efdir/a*
echo " "
endif
@@ -348,3 +349,7 @@ echo "Checking PLT, GIF and PS files......."
echo "open test_trans.html in a browser to test transparency option in gif mode. The continents should be gray"
# save size of log file as part of the history record
ls -l $log_file >>& $bench_hist
+
+# make a clean version of the log file that can easily be compared
+./clean_draconian $log_file
+
diff --git a/bench/shorttemp.nc b/bench/shorttemp.nc
new file mode 100644
index 0000000..394ee81
Binary files /dev/null and b/bench/shorttemp.nc differ
diff --git a/bench/test_results/axticlabel.pdf b/bench/test_results/axticlabel.pdf
index 2c84f66..b2b209c 100644
Binary files a/bench/test_results/axticlabel.pdf and b/bench/test_results/axticlabel.pdf differ
diff --git a/bench/test_results/bnplot.pdf b/bench/test_results/bnplot.pdf
index f9eb8d7..30c3ef0 100644
Binary files a/bench/test_results/bnplot.pdf and b/bench/test_results/bnplot.pdf differ
diff --git a/bench/test_results/closed_lev.pdf b/bench/test_results/closed_lev.pdf
index b97931c..95aeee2 100644
Binary files a/bench/test_results/closed_lev.pdf and b/bench/test_results/closed_lev.pdf differ
diff --git a/bench/test_results/dashbug.pdf b/bench/test_results/dashbug.pdf
index 04a7002..a8b0008 100644
Binary files a/bench/test_results/dashbug.pdf and b/bench/test_results/dashbug.pdf differ
diff --git a/bench/test_results/degC_axlab.pdf b/bench/test_results/degC_axlab.pdf
index ab2d440..a515545 100644
Binary files a/bench/test_results/degC_axlab.pdf and b/bench/test_results/degC_axlab.pdf differ
diff --git a/bench/test_results/dots.pdf b/bench/test_results/dots.pdf
index 8214a4b..400608f 100644
Binary files a/bench/test_results/dots.pdf and b/bench/test_results/dots.pdf differ
diff --git a/bench/test_results/ferret_run_tests_err b/bench/test_results/ferret_run_tests_err
index 417940e..728cb62 100644
--- a/bench/test_results/ferret_run_tests_err
+++ b/bench/test_results/ferret_run_tests_err
@@ -1,8 +1,8 @@
Using FERRET /home/flat/ksmith/Ferret/bin/ferret
-lrwxrwxrwx. 1 ksmith oerdnewp 12 Oct 30 11:11 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v6.93
+lrwxrwxrwx. 1 ksmith oerdnewp 13 Nov 6 15:35 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v6.951
Using external functions from /home/flat/ksmith/Ferret/ext_func/libs
Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug build of Ferret on RHEL6-64
+Note: RUN_TESTS.sh test results for debug Ferret on RHEL6-64
Benchmark scripts that will be run:
bn_syntax.jnl
bn_dollar.jnl
@@ -226,6 +226,25 @@ Benchmark scripts that will be run:
bn_date1900_array.jnl
bn_spawn_size.jnl
bn_polygon_log.jnl
+ bn694_bug_fixes.jnl
+ bn_permute_ascii.jnl
+ bn_lon_lat_time_string.jnl
+ bn_save_justdim.jnl
+ bn_time2d.jnl
+ bn_legend_labels.jnl
+ bn_DQ.jnl
+ bn695_bug_fixes.jnl
+ bn_f_tax_fcns.jnl
+ bn_fmrc.jnl
+ bn_return_defined.jnl
+ bn_can_var_noerr.jnl
+ bn_annotate.jnl
+ bn_auxiliary.jnl
+ bn_plot_ribbon_gaploc.jnl
+ bn_time_short_axes.jnl
+ bn_floatstr_extended.jnl
+ bn696_bug_fixes
+ bn_bin_regrid
bn_all_ef.jnl
bn_startupfile.jnl
****** Restricting Ferret paths to bench directory ******
@@ -242,7 +261,7 @@ FER_GRIDS=.
FER_LIBS=/home/flat/ksmith/Ferret/lib
FER_PALETTE=. /home/flat/ksmith/Ferret/ppl
FER_WEB_BROWSER=firefox
-Beginning at Thu Oct 30 11:13:49 PDT 2014
+Beginning at Fri Nov 6 15:53:35 PST 2015
*** Running test: bn_syntax.jnl
Cached data cleared from memory
SET EXPRESSION has not been given or implied
@@ -263,12 +282,12 @@ message/cont $3"<my error message"
message/cont $1"|xxxxx|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $1
message/cont $1"greetings|xxxxx|goodbye"
- *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
+ *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
**ERROR: my error message
message/cont $3"|hello|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3">greetings|hello|goodbye"
- *** NOTE: Valid argument $3 choices are: hello|goodbye
+ *** NOTE: Valid argument $3 choices are: hello|goodbye
**ERROR: my error message
message/cont $3">greetings|hello|goodbye<my error message"
**ERROR: my error message
@@ -279,17 +298,17 @@ message/cont $3""
message/cont $3"<"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"||"
- *** NOTE: Valid argument $3 choices are: |
+ *** NOTE: Valid argument $3 choices are: |
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"|>|"
- *** NOTE: Valid argument $3 choices are: >|
+ *** NOTE: Valid argument $3 choices are: >|
**ERROR: command syntax: empty text string provided with ">": >|
message/cont $3">|"
**ERROR: command syntax: empty text string provided with ">": |<
message/cont $3"|<"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"|>"
- *** NOTE: Valid argument $3 choices are: >
+ *** NOTE: Valid argument $3 choices are: >
**ERROR: command syntax: arg number not in 1-99 range: $100
say $100
**ERROR: command syntax: arg number not in 1-99 range: $100)
@@ -327,16 +346,16 @@ MESSAGE/CONTINUE `1*/3`
**ERROR: command syntax: sst*/3
* before / is illegal
MESSAGE/CONTINUE `sst*/3,return=lunits`
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
sst,return=Xsize
MESSAGE/CONTINUE `sst,return=Xsize`
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
sst,return=trash
MESSAGE/CONTINUE `sst,return=trash`
*** Running test: bn_letd.jnl
@@ -351,12 +370,22 @@ can var
LISTing to file v1file.nc
*** Running test: bn_if.jnl
Cached data cleared from memory
+ **ERROR: invalid command: ENDIF can only be used in an IF clause
+ENDIF
+ **ERROR: command syntax: ELIF cannot be used in single line IF
+ IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+ **ERROR: command syntax: Trash after ENDIF
+ IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+ *** NOTE: Unclosed IF statement ... assuming ENDIF
**ERROR: invalid command: ELSE can only be used between IF and ENDIF
else
**ERROR: invalid command: ENDIF can only be used in an IF clause
endif
**ERROR: invalid command: ELIF can only be used between IF and ENDIF
elif
+ *** NOTE: Unclosed IF statement ... assuming ENDIF
*** Running test: bn_expressions.jnl
Cached data cleared from memory
**ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -374,7 +403,7 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
+ *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
**ERROR: inconsistent sizes of data regions: X axis
X[I=6:9] has 4 points (I=6:9)
expression has 5 points (I=1:5)
@@ -449,8 +478,8 @@ Re-defining viewport LM6
Re-defining viewport UM6
Using every 2th vector in the X direction
Using every 2th vector in the Y direction
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+ *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+ *** NOTE: Use /HLIMITS and /VLIMITS instead.
**ERROR: invalid command: color=noexist
Colors are Black,Red,Green,Blue,LightBlue,Purple, and White
plot/over/i=1:10/color=noexist i
@@ -497,12 +526,12 @@ define symbol t$5 = hi
message/continue ($test2"<error message")
**ERROR: invalid command: Valid value needed for symbol test2
message/continue ($test2"|hello|bye|")
- *** NOTE: Valid symbol test2 choices are: hello|bye|
+ *** NOTE: Valid symbol test2 choices are: hello|bye|
**ERROR: error message
message/continue ($test2"|hello|bye|<error message")
**ERROR: invalid command: Valid value needed for symbol t2
message/continue ($t2"|solong>really hello|bye|")
- *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
+ *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
*** Running test: bn_comma_delimited.jnl
Cached data cleared from memory
*** Running test: bn_dynamic_grids.jnl
@@ -552,12 +581,12 @@ list tu
Cached data cleared from memory
**ERROR: request exceeds memory setting: 25 Mwords were requested.
list temp[gz=z999999,z=5:15]
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Cached data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
+ *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
+ *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
**ERROR: invalid command: non-positive delta value: X[I=1:5:-1]
list x[i=1:5:-1]
**ERROR: invalid command: non-positive delta value: X[I=1:5:0]
@@ -621,9 +650,9 @@ list a
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file test2.cdf
LISTing to file FL.cdf
LISTing to file FTLON.cdf
@@ -687,7 +716,7 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
*** Running test: bn_regrid_transforms.jnl
Cached data cleared from memory
**ERROR: regridding: G=W - more than 1 target grid
@@ -696,8 +725,8 @@ load temp[g=u,g=w]
load temp[g=x]
*** Running test: bn_axis_limits.jnl
Cached data cleared from memory
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+ *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+ *** NOTE: Use /HLIMITS and /VLIMITS instead.
**ERROR: command syntax: xlimits
plot/xlimits i
**ERROR: command syntax: xlimits= i
@@ -751,8 +780,8 @@ LIST a[gt=tcal]
Cached data cleared from memory
*** Running test: bn_gc_functions.jnl
Cached data cleared from memory
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+ *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+ *** NOTE: Use /HLIMITS and /VLIMITS instead.
*** Running test: bn491_bug_fixes.jnl
Cached data cleared from memory
LISTing to file test.cdf
@@ -783,14 +812,12 @@ Replacing definition of axis TAX
list v2-and-minus
**ERROR: dimensions improperly specified: 99999999 words were requested.
list x
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
+ *** NOTE: Check for unspecified limits on an ABSTRACT axis
+ *** NOTE: Use the SHOW GRID command to see the axes
**ERROR: dimensions improperly specified: 99999999 words were requested.
list i
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: variable unknown or not in data set: 'i'
-list 'i'
+ *** NOTE: Check for unspecified limits on an ABSTRACT axis
+ *** NOTE: Use the SHOW GRID command to see the axes
**ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
- before and is illegal
list v2-and-minus[i=5:15 at ddc]
@@ -801,15 +828,15 @@ list v2-and-minus[i=5:15 at ddc]
LISTing to file junk.dat
**ERROR: request exceeds memory setting: 24000 Mwords were requested.
load num
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
**ERROR: request exceeds memory setting: 1000 Mwords were requested.
load num
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis XAX
Replacing definition of axis YAX
Replacing definition of axis ZAX
@@ -819,7 +846,7 @@ Replacing definition of axis TAX
SET DATA/EZ/format=stream/var=num/grid=mygrid NoSuchFile.dat
**ERROR: Size of file ./junk.dat doesn't match size specified by variables/grid
load num
- *** NOTE: Binary file reading: Insufficient memory reading variable 2
+ *** NOTE: Binary file reading: Insufficient memory reading variable 2
**ERROR: invalid command: variable permutations only allowed for STREAM format
SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
**ERROR: invalid command: invalid argument for /TYPE
@@ -850,37 +877,37 @@ Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax/edges {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax/edges {6,6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
Replacing definition of axis XAX2
- *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
+ *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
Replacing definition of axis XAX2
*** Running test: bn_polygon.jnl
Cached data cleared from memory
@@ -908,7 +935,7 @@ Replacing definition of axis XAX2
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -964,8 +991,8 @@ stat i, noname(i)
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
**ERROR: invalid command: delta values may only modify variable names
LIST/i=2:4:2 VAR
PERMANENT data cleared from memory
@@ -974,15 +1001,15 @@ LIST/i=2:4:2 VAR
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
*** Running test: bn_non_COARDS_netCDF.jnl
Cached data cleared from memory
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
+ *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
*** Running test: bn_cache_hits.jnl
Cached data cleared from memory
*** Running test: bn_regrid_to_user.jnl
@@ -1002,11 +1029,11 @@ Replacing definition of axis TWEEKS
Replacing definition of axis TWEEKS
Replacing definition of axis TWEEKS
LISTing to file calsst.cdf
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
Replacing definition of grid TGRID
Replacing definition of axis TDAYS
Replacing definition of grid TGRID
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
*** Running test: bn_dash_dot.jnl
Cached data cleared from memory
**ERROR: command syntax: dash=(1., 2.)
@@ -1126,10 +1153,10 @@ list strcat ("All work and no play")
LISTing to file test_modulo.cdf
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
*** Running test: bn_axis_viewports.jnl
Cached data cleared from memory
Re-defining viewport MID
@@ -1169,6 +1196,18 @@ list a[gx=xnrst at sum]
**ERROR: invalid command: cant use this regrid transform on strings: @MOD
list a[gx=xnrst at mod]
LISTing to file foo.cdf
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" - {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" * {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" / {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" ^ {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead SIN({"a","b","c"})
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead MAX("a",{"a","b","c"})
*** Running test: bn_axcontrol.jnl
Cached data cleared from memory
*** Running test: bn_vec_curv.jnl
@@ -1180,12 +1219,12 @@ Replacing definition of grid G1
**TMAP ERR: syntax error in string
Unrecognized field type: D
Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+ *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
SET DATA/FORM=delimited/type="d, da2,date2" bn_delimited_read_date_time.dat
**TMAP ERR: syntax error in string
Unrecognized field type: DATE2
Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+ *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
SET DATA/FORM=delimited/type="da,da, date2" bn_delimited_read_date_time.dat
**ERROR: command syntax: ,,:
SET DATA/EZ/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
@@ -1233,50 +1272,47 @@ Replacing definition of axis XAX
Replacing definition of axis YAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
-sh: ncrename: command not found
-sh: ncrename: command not found
-sh: ncrename: command not found
*** Running test: bn_cancel_axes.jnl
Cached data cleared from memory
LISTing to file longax.dat
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
+ *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: Climatological axes test_irreg, test_seas defined
*** Running test: bn542_bug_fixes.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file string4d.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G001)
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G001)
+ *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: Climatological axes test_irreg, test_seas defined
+ *** NOTE: Not deleted: TEST_IRREG
+ *** NOTE: Axis is in use by grid (G001)
+ *** NOTE: Not deleted: TEST_IRREG
+ *** NOTE: Axis is in use by grid (G001)
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
*** Running test: bn_subspan_modulo.jnl
@@ -1300,24 +1336,24 @@ define axis/x=130e:500:10/modulo=360 xsub
LISTing to file test_subspan_modulo.nc
LISTing to file test_subspan_modulo.nc
LISTing to file test_subspan_modulo.nc
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
*** Running test: bn_dots.jnl
Cached data cleared from memory
- *** NOTE: /THICKNESS ignored on /SYMBOL=DOT
- *** NOTE: /SIZE= ignored on /SYMBOL=DOT
+ *** NOTE: /THICKNESS ignored on /SYMBOL=DOT
+ *** NOTE: /SIZE= ignored on /SYMBOL=DOT
*** Running test: bn_lev_symbols.jnl
Cached data cleared from memory
*** Running test: bn_mode_logo_lab.jnl
Cached data cleared from memory
*** Running test: bn_modulo_attribute.jnl
Cached data cleared from memory
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
- *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
+ *** NOTE: modulo = "j"
*** Running test: bn550_bug_fixes.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
@@ -1358,9 +1394,9 @@ SHADE/L=1/LEV=0.01d sst
POLYGON/KEY/LEV=0.01d/coord_ax=Z PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
+ *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+ *** NOTE: A dummy axis of subscripts will be used
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
rm: cannot remove `input.txt': No such file or directory
@@ -1369,10 +1405,10 @@ ls: cannot access input.txt: No such file or directory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
axy, return=xx
MESSAGE/CONTINUE `axy, return=xx`
PERMANENT data cleared from memory
@@ -1382,7 +1418,7 @@ Replacing definition of axis XAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis YAX
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1392,8 +1428,8 @@ Replacing definition of axis YAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
+ *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ *** NOTE: Axis has repeated values -- micro-adjusting TIME
**ERROR: illegal limits: "DUMMY" does not exist at T=01-JAN-1990 00:00
Axis extremes are T=31-DEC-1997 12:00:30-JAN-1998 12:00
list/t=1-jan-1990 dummy
@@ -1460,7 +1496,7 @@ SHOW VAR/XML
Using every 5th vector in the X direction
Using every 3th vector in the Y direction
Using every 2th vector in the X direction
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
@@ -1532,8 +1568,8 @@ Replacing definition of grid AGRID
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1567,9 +1603,9 @@ Replacing definition of axis YAX
LISTing to file a.nc
LISTing to file a.nc
Replacing definition of axis TAX
- *** NOTE: Axis definition error on axis: TAX
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Axis definition error on axis: TAX
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
Replacing definition of axis TAX
**ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
@@ -1581,32 +1617,32 @@ def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,
def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
**ERROR: improper grid or axis definition: dimension of bounds (15) must be 2*N or N+1, N=number of axis coordinates (7)
def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+ *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
**ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
+ *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
+ *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
LISTing to file a.nc
LISTing to file irrxzt.nc
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
*** Running test: bn_all_leap.jnl
Cached data cleared from memory
**ERROR: command syntax: Invalid calendar name. Names are, GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
@@ -1621,7 +1657,7 @@ def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file xlong.nc
@@ -1670,6 +1706,7 @@ Replacing definition of axis XAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file fine.dat
+Cannot create cookie file
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: illegal limits: One-point independent axis: Requires a /HLIMIT or /VLIMIT specification
@@ -1680,7 +1717,7 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
LISTing to file aa.nc
LISTing to file cc.nc
PERMANENT data cleared from memory
@@ -1691,27 +1728,27 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
**ERROR: invalid command: Valid value needed for argument $2
query/ignore $2%|a|b|c|d|%
- *** NOTE: Valid argument $2 choices are: a|b|c|d|
+ *** NOTE: Valid argument $2 choices are: a|b|c|d|
**ERROR: my error message
message/cont $1"|xxxxx|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $1
message/cont $1"greetings|xxxxx|goodbye"
- *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
+ *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
**ERROR: my error message
message/cont $3"|hello|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3">greetings|hello|goodbye"
- *** NOTE: Valid argument $3 choices are: hello|goodbye
+ *** NOTE: Valid argument $3 choices are: hello|goodbye
**ERROR: my error message
message/continue ($test2"<my error message")
**ERROR: invalid command: Valid value needed for symbol test2
message/continue ($test2"|hello|bye|")
- *** NOTE: Valid symbol test2 choices are: hello|bye|
+ *** NOTE: Valid symbol test2 choices are: hello|bye|
**ERROR: my error message
message/continue ($test2"|hello|bye|<my error message")
**ERROR: invalid command: Valid value needed for symbol t2
message/continue ($t2"|solong>really hello|bye|")
- *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
+ *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1733,29 +1770,28 @@ list/l=1/j=40/i=0:300:0 sst
Cached data cleared from memory
*** Running test: bn_regulart.jnl
Cached data cleared from memory
- *** NOTE: Evenly spaced axis has edges definition: TCOADS - ignored
*** Running test: bn_labwid.jnl
Cached data cleared from memory
*** Running test: bn_redefine_taxis_mc.jnl
Cached data cleared from memory
Replacing definition of axis TIME1
- *** NOTE: grid used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GHB1 used by data set coads_clim
+ *** NOTE: Redefinition may alter apparent contents of data set
Replacing definition of axis TIME1
- *** NOTE: grid used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GHB1 used by data set coads_clim
+ *** NOTE: Redefinition may alter apparent contents of data set
*** Running test: bn_illegal_axisname.jnl
Cached data cleared from memory
Replacing definition of axis COADSX.ILLEGAL
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX1 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX2 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
Replacing definition of axis COADSY.ILLEGAL
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX1 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX3 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
*** Running test: bn_exit_script.jnl
Cached data cleared from memory
*** Running test: bn_exit_cycle.jnl
@@ -1788,10 +1824,10 @@ Replacing definition of axis COADSY.ILLEGAL
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
**ERROR: improper grid or axis definition: error in start,end,delta
DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
**ERROR: improper grid or axis definition: error in start,end,delta
DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
PERMANENT data cleared from memory
@@ -1873,7 +1909,7 @@ sho att/all .
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1882,26 +1918,26 @@ sho att/all .
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the length of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.some_text
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the value of attribute temp.missing_value
- *** NOTE: Changing the value of attribute temp.missing_value
+ *** NOTE: Changing the value of attribute temp.long_name
+ *** NOTE: Changing the value of attribute temp.units
+ *** NOTE: Changing the value of attribute temp.missing_value
+ *** NOTE: Changing the value of attribute temp.missing_value
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSZT).positive
- *** NOTE: Changing the type of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (TIME1).time_origin
+ *** NOTE: Changing the value of attribute (PSZT).positive
+ *** NOTE: Changing the type of attribute (coadsx).modulo
+ *** NOTE: Changing the value of attribute (coadsx).modulo
+ *** NOTE: Changing the value of attribute (TIME1).time_origin
**ERROR: command syntax: enclose coordinate variable name in parentheses
list coadsx.units
**ERROR: variable unknown or not in data set: COADSX.UNITS
@@ -1912,17 +1948,17 @@ set att (COADSX81_81).axis = "Z"
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the type of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the length of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the type of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the type of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.long_name
+ *** NOTE: Changing the value of attribute temp.units
+ *** NOTE: Changing the type of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
@@ -1953,10 +1989,10 @@ set att (COADSX81_81).axis = "Z"
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
@@ -1965,27 +2001,27 @@ set att (COADSX81_81).axis = "Z"
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (COADSX).point_spacing
- *** NOTE: Changing the value of attribute (COADSY).point_spacing
+ *** NOTE: Changing the value of attribute (COADSX).point_spacing
+ *** NOTE: Changing the value of attribute (COADSY).point_spacing
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
data in attribute missing_value not representable in output type NC_INT
LIST/FORMAT=CDF/file=a.nc/clobber/x=132w/k=1 temp
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
**ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
set var/outtype=char broiled
**ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
set var/outtype=garbage broiled
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (PSXT).units
+ *** NOTE: Changing the value of attribute (PSXT).units
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSXT).units
- *** NOTE: Changing the value of attribute (PSYT).units
+ *** NOTE: Changing the value of attribute (PSXT).units
+ *** NOTE: Changing the value of attribute (PSYT).units
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -1996,19 +2032,19 @@ set var/outtype=garbage broiled
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis X2AX
- *** NOTE: Changing the value of attribute (z4ax).positive
+ *** NOTE: Changing the value of attribute (z4ax).positive
LISTing to file string4d.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (TIME).units
- *** NOTE: Changing the value of attribute (TIME).units
- *** NOTE: Changing the value of attribute (TIME).time_origin
- *** NOTE: Changing the value of attribute (TIME).time_origin
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: Changing the value of attribute (TIME).units
+ *** NOTE: Changing the value of attribute (TIME).units
+ *** NOTE: Changing the value of attribute (TIME).time_origin
+ *** NOTE: Changing the value of attribute (TIME).time_origin
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TIME
- *** NOTE: grid used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: grid GSQ1 used by data set coads_climatology
+ *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
@@ -2020,17 +2056,21 @@ Replacing definition of axis TIME
Cached data cleared from memory
Using every 3th vector in the X direction
Using every 4th vector in the Y direction
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
*** Running test: bn_cdf_errmsg.jnl
+Cannot create cookie file
+Cannot create cookie file
syntax error, unexpected WORD_STRING, expecting WORD_WORD
context: Error { code = 404; message = "data/PMEL/COADS/coads_nothing.cdf"^;};
+Cannot create cookie file
+CURL Error: Couldn't resolve host name
curl error details:
Cached data cleared from memory
**TMAP ERR: non-existent or not on line
this_is_not_a_file.nc
SET DAT/FORM=CDF this_is_not_a_file.nc
**Internet Data error
- NetCDF: Malformed or inaccessible DAP DDS (OPeNDAP/netCDF Error code -72)
+ NetCDF: file not found (OPeNDAP/netCDF Error code -90)
Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
**Internet Data error
@@ -2074,7 +2114,7 @@ shade sst[t=@AVE,Z=@ave]
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
LISTing to file t3file.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2085,14 +2125,14 @@ shade sst[t=@AVE,Z=@ave]
LISTing to file subdir/0000_a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
LISTing to file a.nc
- *** NOTE: cannot parse "units since date", date= "event"; leaving units string
+ *** NOTE: cannot parse "units since date", date= "event"; leaving units string
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Invalid I axis limits ignored: TEMP
+ *** NOTE: Invalid I axis limits ignored: TEMP
**ERROR: dimensions improperly specified: specified data is not a line
- its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
plot/i=100/k=1 temp[x=122.5W]
@@ -2138,10 +2178,10 @@ Replacing definition of axis XAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TIME4
- *** NOTE: grid used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GSQ1 used by data set coads_climatology
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TIME
@@ -2167,9 +2207,9 @@ cancel axis/stride COADSX
set axis/stride=2/offset=4 COADSX
**ERROR: invalid command: not a strided axis: COADSX
cancel axis/stride COADSX
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+ *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
LISTing to file d2.nc
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+ *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
**ERROR: invalid command: unknown axis: NORMAL
set axis/stride=2 NORMAL
*** Running test: bn_lsl_lowpass.jnl
@@ -2185,8 +2225,8 @@ set axis/stride=2 NORMAL
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file tripolar_missing_lon.nc
@@ -2198,31 +2238,31 @@ set axis/stride=2 NORMAL
Cached data cleared from memory
*** Running test: bn_fifty_files.jnl
Cached data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ *** NOTE: Axis has repeated values -- micro-adjusting TIME
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
+ *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+ *** NOTE: They will not be convertible:
+ *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+ *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
*** Running test: bn603_bug_fixes.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
@@ -2270,6 +2310,9 @@ SHADE/LEV=300/I=1:100/J=1:100 i+j
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
*** Running test: bn_test_opendap.jnl
+Cannot create cookie file
+Cannot create cookie file
+CURL Error: Couldn't resolve host name
curl error details:
Cached data cleared from memory
*** Running test: bn611_bug_fixes.jnl
@@ -2339,8 +2382,8 @@ Replacing definition of axis TIME
LISTing to file b.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file 1a.dat
@@ -2394,35 +2437,35 @@ LIST a_regrid[D=1,GT=b[D=2]@MOD]
Cached data cleared from memory
*** Running test: bn_string_ngd_nbd.jnl
Cached data cleared from memory
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
Replacing definition of axis XAX
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
*** Running test: bn_cat_string.jnl
Cached data cleared from memory
*** Running test: bn_sort_strings.jnl
Cached data cleared from memory
*** Running test: bn_samplexyt.jnl
Cached data cleared from memory
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+ *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+ *** NOTE: Use /HLIMITS and /VLIMITS instead.
*** Running test: bn_last_go_file.jnl
Cached data cleared from memory
*** Running test: bn_cancel_upcase_uservar.jnl
@@ -2475,9 +2518,9 @@ Replacing definition of axis TAX
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file test2.cdf
LISTing to file FL.cdf
LISTing to file FTLON.cdf
@@ -2499,47 +2542,47 @@ list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave]
disordered output coordinate value: 363 Axis: TCENTURY
list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
LISTing to file FI.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
@@ -2551,80 +2594,80 @@ list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSYT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSZT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
**ERROR: variable unknown or not in data set: IJKL
show grid ijkl
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
*** Running test: bn_keep_axisnames.jnl
Cached data cleared from memory
LISTing to file a.nc
@@ -2646,8 +2689,8 @@ Replacing definition of axis TSEC
*** Running test: bn_grads_z.jnl
Cached data cleared from memory
Replacing definition of axis CAXIS
- *** NOTE: grid used by data set grads_bug_file
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GMY1 used by data set grads_bug_file
+ *** NOTE: Redefinition may alter apparent contents of data set
*** Running test: bn_clock_syms.jnl
Cached data cleared from memory
*** Running test: bn63_bug_fixes.jnl
@@ -2660,14 +2703,14 @@ Replacing definition of axis CAXIS
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file xz.nc
@@ -2730,22 +2773,22 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
TEMPORARY data cleared from memory
*** Running test: bn_xml_repl.jnl
Cached data cleared from memory
- *** NOTE: Changing the value of attribute sst.history
+ *** NOTE: Changing the value of attribute sst.history
*** Running test: bn65_bug_fixes.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
LISTing to file mypack.nc
- *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: TIME: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: TIME: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2788,8 +2831,8 @@ Re-defining viewport V8
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file nc4_deflate4.nc
- *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
- *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
+ *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
+ *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
LISTing to file nc4_nodeflate3.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2800,13 +2843,13 @@ Re-defining viewport V8
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file nc4_inttemp_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_shuffle_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_set_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_deflate4_t1.nc
**TMAP ERR: syntax error in string
If ChunkSize is set for any dimension of var, must set for all its dimensions
@@ -2831,11 +2874,11 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
TEMPORARY data cleared from memory
*** Running test: bn_set_axis_regular.jnl
Cached data cleared from memory
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX
- *** NOTE: Axis is already regular: MYX
+ *** NOTE: Axis reset to be regular (evenly-spaced): MYX
+ *** NOTE: Axis is already regular: MYX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
+ *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
*** Running test: bn_set_cancel_redirect.jnl
Cached data cleared from memory
Use the GO command to name a file of FERRET commands to be executed.
@@ -2862,7 +2905,7 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: No active redirects to cancel
+ *** NOTE: No active redirects to cancel
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
@@ -2871,14 +2914,14 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: Axis is already regular: MYAXIS
+ *** NOTE: Axis is already regular: MYAXIS
**ERROR: variable unknown or not in data set: GARBAGE
show grid garbage
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: stderr is not redirected
+ *** NOTE: stderr is not redirected
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
@@ -2927,8 +2970,6 @@ Replacing definition of axis YAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb [...]
- *** NOTE: exceeds expected length. Maximum characters: 2048
LISTing to file aa.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2956,11 +2997,11 @@ Replacing definition of axis YAX_DUP_AXNAMES
LISTing to file a.nc
*** Running test: bn_NaN_note.jnl
Cached data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
*** Running test: bn671_bug_fixes.jnl
Bailing out of external function "tax_year":
@@ -2983,7 +3024,7 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
*** Running test: bn68_bug_fixes.jnl
@@ -2997,21 +3038,21 @@ Replacing definition of axis TAXIS
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: ./err672_vert_axislabel.jnl
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: ./err672_vert_axislabel.jnl
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3069,10 +3110,10 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
LISTing to file a.nc
*** Running test: bn_repeated_coords.jnl
Cached data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting TMIN
- *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting TMIN
+ *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
*** Running test: bn_xml_header.jnl
Cached data cleared from memory
*** Running test: bn_eof_simple.jnl
@@ -3126,34 +3167,32 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
Replacing definition of axis FAX4DAY
*** Running test: bn_aggregate_e.jnl
Cached data cleared from memory
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
**ERROR: unknown data set: dset 3 unknown or is already an aggregate dataset
define data/agg windy = 1,2,3
- **ERROR: error defining aggregate dataset: Aggregate dataset not defined
-define data/agg windy = 1,2,3
- *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
- *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+ *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
+ *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
**ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
define data/agg windy = 1,2
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
*** Running test: bn_6d_lab_mode.jnl
Cached data cleared from memory
*** Running test: bn682_bug_fixes.jnl
@@ -3164,8 +3203,8 @@ define data/agg windy = 1,2
Cached data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
- *** NOTE: /home/flat/ksmith/Ferret/go/magnify.jnl
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+ *** NOTE: /home/flat/ksmith/Ferret/go/magnify.jnl
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3190,7 +3229,7 @@ SET DAT/FORM=CDF ./z1.nc
Cached data cleared from memory
LISTing to file mytype.nc
LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
LISTing to file mytype.nc
LISTing to file mytype.nc
LISTing to file mytype.nc
@@ -3210,7 +3249,7 @@ SET DAT/FORM=CDF ./z1.nc
Cached data cleared from memory
LISTing to file mytype.nc
LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
LISTing to file mytype.nc
LISTing to file mytype.nc
LISTing to file mytype.nc
@@ -3226,7 +3265,7 @@ LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
LISTing to file mytype.nc
*** Running test: bn_axis_nonmonotonic.jnl
Cached data cleared from memory
- **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index 12
+ **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
define axis/t/units=days tax = tvar
*** Running test: bn_vec_mod.jnl
Cached data cleared from memory
@@ -3305,8 +3344,8 @@ Replacing definition of axis AXI
Replacing definition of axis AXI_COARSE
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
- *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
+ *** NOTE: A dummy axis of subscripts will be used
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file sst_new.nc
@@ -3319,14 +3358,13 @@ Replacing definition of axis AXI_COARSE
*** Running test: bn_nco_append.jnl
Cached data cleared from memory
LISTing to file append_to_this.nc
-sh: ncks: command not found
*** Running test: bn_nobounds.jnl
Cached data cleared from memory
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
LISTing to file a.nc
LISTing to file a.nc
*** Running test: bn_write_integer_att.jnl
@@ -3336,8 +3374,8 @@ sh: ncks: command not found
Cached data cleared from memory
*** Running test: bn_plot_color_only.jnl
Cached data cleared from memory
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
**ERROR: command syntax: COLOR
/COLOR must have an argument for PLOT/OVERLAY
plot/i=1:100/over/COLOR 0.6*sin(i/7)
@@ -3346,9 +3384,9 @@ plot/i=1:100/over/COLOR 0.6*sin(i/7)
plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
*** Running test: bn_vtree.jnl
Cached data cleared from memory
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
**ERROR: unknown defining grid: G=NOEXIST
list b
**ERROR: command syntax: 45S
@@ -3360,6 +3398,7 @@ list e
**ERROR: illegal limits: X axis limits don't match variable def'n: A
Are you giving explicit limits when SET REGION would suffice ?
list f
+Replacing definition of axis ZAX
*** Running test: bn686_bug_fixes.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
@@ -3372,7 +3411,7 @@ list f
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute a.ival
+ *** NOTE: Changing the value of attribute a.ival
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**TMAP ERR: non-existent or not on line
@@ -3392,8 +3431,8 @@ SET DAT/FORM=CDF snoopy.dat
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+ *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3432,8 +3471,8 @@ LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
shade b
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute v1.long_name
- *** NOTE: Changing the value of attribute v1.units
+ *** NOTE: Changing the value of attribute v1.long_name
+ *** NOTE: Changing the value of attribute v1.units
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
@@ -3453,9 +3492,9 @@ set var/name=psi myvar
set var/name=diff w
*** Running test: bn_bad_axis_bounds.jnl
Cached data cleared from memory
- *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
- *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
+ *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
+ *** NOTE: Substituting coordinate midpoints
*** Running test: bn_enter_exit_GO.jnl
Cached data cleared from memory
*** Running test: bn_stddev.jnl
@@ -3484,12 +3523,12 @@ list tax_datestring (tt[L=3], tt, 5)
list tax_datestring (tt[L=3], "my_tax", "minutes")
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+ *** NOTE: Substituting coordinate midpoints
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: command syntax: must be a constant COS(1)
@@ -3529,17 +3568,17 @@ list {5*3+1, 2+3}
Replacing definition of axis XAXIS
**ERROR: request exceeds memory setting: 2369 Mwords were requested.
load bigvar
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis LONGTIME
**ERROR: request exceeds memory setting: 4735 Mwords were requested.
load bigvar
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
- *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
LISTing to file aa.nc
LISTing to file bb.nc
LISTing to file a.nc
@@ -3578,6 +3617,12 @@ shade a
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-2)
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-3)
*** Running test: bn_append_dsg.jnl
Cached data cleared from memory
rm: cannot remove `test_save_dsg.nc': No such file or directory
@@ -3593,9 +3638,9 @@ rm: cannot remove `test_save_dsg.nc': No such file or directory
Cached data cleared from memory
*** Running test: bn_show_outfile.jnl
Cached data cleared from memory
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
**ERROR: unknown defining grid: G=NOEXIST
list b
**ERROR: command syntax: 45S
@@ -3617,6 +3662,216 @@ list f
poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
**ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
+*** Running test: bn694_bug_fixes.jnl
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file aa.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: unknown data set: BAD_D
+stat/l=1/x=180/y=0 a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+Replacing definition of axis TREDEF
+ *** NOTE: grid GSI1 used by data set a
+ *** NOTE: Redefinition may alter apparent contents of data set
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: illegal format type - must be "GIF"
+ frame/format=hdf/file=a.hdf
+frame/format=hdf/file=a.hdf
+ **ERROR: invalid command: illegal format type - must be "GIF"
+ frame/file=a.png
+frame/file=a.png
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Could not compute Std Dev. Data too large or or not within 3 std of computed mean.
+ *** NOTE: Using linear levels instead.
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ TEMPORARY data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running test: bn_permute_ascii.jnl
+ Cached data cleared from memory
+Replacing definition of grid GRID3D
+*** Running test: bn_lon_lat_time_string.jnl
+ Cached data cleared from memory
+*** Running test: bn_save_justdim.jnl
+ Cached data cleared from memory
+ LISTing to file a.nc
+ *** NOTE: Saving E or F axis with time axis uses /RIGID in time
+ LISTing to file a.nc
+*** Running test: bn_time2d.jnl
+ Cached data cleared from memory
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+*** Running test: bn_legend_labels.jnl
+ Cached data cleared from memory
+*** Running test: bn_DQ.jnl
+ Cached data cleared from memory
+ *** NOTE: Changing the value of attribute foobar.some_text
+ *** NOTE: Changing the value of attribute foobar.some_text
+*** Running test: bn695_bug_fixes.jnl
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+rm: cannot remove `WestCoastCarbon_9d9c_f562_77b5_5.nc': No such file or directory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running test: bn_f_tax_fcns.jnl
+ Cached data cleared from memory
+ LISTing to file a.nc
+Replacing definition of axis FSEC
+ *** NOTE: grid GSI1 used by data set a
+ *** NOTE: Redefinition may alter apparent contents of data set
+*** Running test: bn_fmrc.jnl
+ Cached data cleared from memory
+*** Running test: bn_return_defined.jnl
+ Cached data cleared from memory
+*** Running test: bn_can_var_noerr.jnl
+ Cached data cleared from memory
+ **ERROR: variable unknown or not in data set: B
+cancel var b,a
+*** Running test: bn_annotate.jnl
+ Cached data cleared from memory
+ **ERROR: command syntax: xpos=a2
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: ypos=b
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: halign=c
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: valign=d
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+ **ERROR: command syntax: siz=f
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+annotate/nouser/ypos=0 "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: xpos=a2
+def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: ypos=b
+def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: hal=c
+def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: val=d
+def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"
+ **ERROR: command syntax: siz=f
+def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+def anno/nou/ypos=0 "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+def anno/nou/xpos=0/hal=1/val=0 "My Lab"
+ **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
+def anno/nou/user/xpos=0/ypos=0 "My Lab"
+*** Running test: bn_auxiliary.jnl
+ Cached data cleared from memory
+rm: cannot remove `layerz_test_data.txt': No such file or directory
+ LISTing to file layerz_test_data.txt
+ **ERROR: variable unknown or not in data set: (data set ok ?): noexist
+SET VAR/layerz=depth noexist
+ *** NOTE: Ambiguous coordinates on Z axis: TEMP6D-TEMPZ6D
+ **ERROR: invalid command: auxiliary variable DEPTH6D has a T axis not found on variable TEMP
+LIST/PREC=7 tempz6d_unmatch
+Replacing definition of axis ZAX
+*** Running test: bn_plot_ribbon_gaploc.jnl
+ Cached data cleared from memory
+ **ERROR: command syntax: PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments
+plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
+ **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
+plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
+ **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
+plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
+*** Running test: bn_time_short_axes.jnl
+ Cached data cleared from memory
+*** Running test: bn_floatstr_extended.jnl
+ Cached data cleared from memory
+*** Running test: bn696_bug_fixes
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Units on axis "pfull1_1" are not recognized: hpa
+ *** NOTE: They will not be convertible:
+*** Running test: bn_bin_regrid
+ Cached data cleared from memory
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
*** Running test: bn_all_ef.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
@@ -3636,4 +3891,4 @@ LOAD/TEMPORARY vflag
TEMPORARY data cleared from memory
*** Running test: bn_startupfile.jnl
Cached data cleared from memory
-Ended at Thu Oct 30 11:20:08 PDT 2014
+Ended at Fri Nov 6 15:55:16 PST 2015
diff --git a/bench/test_results/ferret_run_tests_log b/bench/test_results/ferret_run_tests_log
index ba1dd4b..119d3ab 100644
--- a/bench/test_results/ferret_run_tests_log
+++ b/bench/test_results/ferret_run_tests_log
@@ -1,8 +1,8 @@
Using FERRET /home/flat/ksmith/Ferret/bin/ferret
-lrwxrwxrwx. 1 ksmith oerdnewp 12 Oct 30 11:11 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v6.93
+lrwxrwxrwx. 1 ksmith oerdnewp 13 Nov 6 15:35 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v6.951
Using external functions from /home/flat/ksmith/Ferret/ext_func/libs
Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug build of Ferret on RHEL6-64
+Note: RUN_TESTS.sh test results for debug Ferret on RHEL6-64
Benchmark scripts that will be run:
bn_syntax.jnl
bn_dollar.jnl
@@ -226,6 +226,25 @@ Benchmark scripts that will be run:
bn_date1900_array.jnl
bn_spawn_size.jnl
bn_polygon_log.jnl
+ bn694_bug_fixes.jnl
+ bn_permute_ascii.jnl
+ bn_lon_lat_time_string.jnl
+ bn_save_justdim.jnl
+ bn_time2d.jnl
+ bn_legend_labels.jnl
+ bn_DQ.jnl
+ bn695_bug_fixes.jnl
+ bn_f_tax_fcns.jnl
+ bn_fmrc.jnl
+ bn_return_defined.jnl
+ bn_can_var_noerr.jnl
+ bn_annotate.jnl
+ bn_auxiliary.jnl
+ bn_plot_ribbon_gaploc.jnl
+ bn_time_short_axes.jnl
+ bn_floatstr_extended.jnl
+ bn696_bug_fixes
+ bn_bin_regrid
bn_all_ef.jnl
bn_startupfile.jnl
****** Restricting Ferret paths to bench directory ******
@@ -242,7 +261,7 @@ FER_GRIDS=.
FER_LIBS=/home/flat/ksmith/Ferret/lib
FER_PALETTE=. /home/flat/ksmith/Ferret/ppl
FER_WEB_BROWSER=firefox
-Beginning at Thu Oct 30 11:13:49 PDT 2014
+Beginning at Fri Nov 6 15:53:35 PST 2015
*** Running test: bn_syntax.jnl
! bn401_syntax.JNL
! - test syntax interpretation of Program FERRET
@@ -412,10 +431,10 @@ SHOW DATA/FULL
name title I J K L M N
P my P variable 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999
on grid ABSTRACT with -1.E+34 for missing data
- X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1
+ X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1.E+08
Q Q 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999
on grid ABSTRACT with -1.E+34 for missing data
- X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1
+ X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1.E+08
/FORMAT = UNF
/SKIP = 2
@@ -547,7 +566,8 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -566,7 +586,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
SET MODE IGNORE_ERROR
SHOW MODES
MODE STATE ARGUMENT
@@ -580,7 +601,8 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -599,7 +621,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
CANCEL MODE IGNORE_ERROR
SHOW MODES
MODE STATE ARGUMENT
@@ -613,7 +636,8 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -632,7 +656,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
SHOW MODE STUPID
MODE STATE ARGUMENT
STUPID CANCELLED
@@ -1200,8 +1225,8 @@ say "demonstrate that these leading blanks:\
demonstrate that these leading blanks: really are preserved
! continuation prompts are ignored, too
-yes? say "demonstrate that these leading blanks:\
-...? really are preserved"
+say "demonstrate that these leading blanks:\
+ really are preserved"
demonstrate that these leading blanks: really are preserved
! weird little blank line inputs
@@ -1264,7 +1289,7 @@ message/continue here is: $1"some text" and some more stuff
here is: hello and some more stuff
message/cont here is a big $1 and $3&some text& ! default provided
- !-> message/cont here is a big hello and some text ! default provided
+ !-> message/cont here is a big hello and some text
here is a big hello and some text
message/cont $3 ! error - no default
@@ -1372,7 +1397,7 @@ go bn_dollar.sub ((x+y),(x-5)) ! ignore comma, get single arg
! V510 3/00
set mode ignore
message/continue "$1" ! final quote used to get mis-applied
- !-> message/continue "hello" ! final quote used to get mis-applied
+ !-> message/continue "hello"
hello
set mode/last ignore
go bn_dollar.sub \"hello\" ! quotations as part of argument
@@ -1437,7 +1462,7 @@ message/continue "2 squared + 2 squared =`2^2` + `2+2`"
2 squared + 2 squared =4 + 4
message/continue "50/0 =`50/0`" ! invalid result
- !-> message/continue "50/0 =bad" ! invalid result
+ !-> message/continue "50/0 =bad"
50/0 =bad
repeat/i=1:3 message/continue "I=`I`"
@@ -1465,7 +1490,7 @@ I=7
!cancel region/X ! removed - temporary experiment 3/00 *sh*
message/continue "2+2=``2+2``" ! double grave accents get condensed
- !-> message/continue "2+2=`2+2`" ! double grave accents get condensed
+ !-> message/continue "2+2=`2+2`"
2+2=`2+2`
message/continue A default substitution: $9"default string|2+2=`2+2`"
@@ -1485,7 +1510,7 @@ message/continue "1/300=`1/300,p=5`"
!-> message/continue "1/300=0.0033333"
1/300=0.0033333
message/continue "1/300=`1/300,p=-5`" ! decimal places
- !-> message/continue "1/300=0.00333" ! decimal places
+ !-> message/continue "1/300=0.00333"
1/300=0.00333
message/continue "1/300=`1/300 , precision=10`"
!-> message/continue "1/300=0.003333333333"
@@ -1709,13 +1734,24 @@ say `a,return=isize` ! full evaluation occurs
say `a[i=2:3],return=isize` ! full evaluation is bypassed
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ -DELETE J M: 4 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found A M: 10 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
!-> MESSAGE/CONTINUE 2
2
-say `a[i=100:200],return=isize` ! WRONG! because full evaluation is bypassed
+say `a[i=100:200],return=isize` ! correct starting with Ferret v694 (tkt 2213)
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- !-> MESSAGE/CONTINUE 101
-101
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval A C: 6 dset: 0 I: 100 200 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval (C01,V08 C: 8 dset: 0 I: 100 200 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found (C11,V08 M: 8 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 5
+5
set mode/last diagnostic
! deliberate errors
@@ -2072,6 +2108,19 @@ CORRECT:sym sub
---->CORRECT
---->CORRECT again
---->nested: all is well after multi-line IF
+CORRECT
+CORRECT
+LOOP=1
+more
+LOOP=2
+more
+LOOP=1
+LOOP=2
+semicolon group
+more
+semicolon group
+CORRECT
+WE SEE THIS CUZ OF IMPLIED CLOSE TO THE PREVIOUS
>>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<
---->... now inside of nested IF clause
---->CORRECT
@@ -2082,10 +2131,6 @@ SAY ">>> --> DELIBERATE WARNING: UNCLOSED IF <<<"
IF yes THEN
say ---->... now inside of IF clause
---->... now inside of IF clause
-
-
-
-
*** Running test: bn_expressions.jnl
! bn450_expressions.JNL
! test all manner of expressions
@@ -10503,18 +10548,18 @@ show symbols/all
PPL$XPIXEL = "0"
PPL$YPIXEL = "0"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul 1 2015 15:02:01 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:14"
-SESSION_PID = "10236"
-DELTA_CPU = "0.035993"
-CLOCK_SECS = "0.007"
-CURRENT_DATE = "30-Oct-14"
-CURRENT_TIME = "11:14:18"
+SESSION_DATE = " 6-Nov-15"
+SESSION_TIME = "15:53"
+SESSION_PID = "19236"
+DELTA_CPU = "0.004998"
+CLOCK_SECS = "0.003"
+CURRENT_DATE = " 6-Nov-15"
+CURRENT_TIME = "15:53:40"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -10532,18 +10577,18 @@ show symbol/all
PPL$XPIXEL = "0"
PPL$YPIXEL = "0"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul 1 2015 15:02:01 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:14"
-SESSION_PID = "10236"
+SESSION_DATE = " 6-Nov-15"
+SESSION_TIME = "15:53"
+SESSION_PID = "19236"
DELTA_CPU = "0.001"
-CLOCK_SECS = "0.008"
-CURRENT_DATE = "30-Oct-14"
-CURRENT_TIME = "11:14:18"
+CLOCK_SECS = "0.003"
+CURRENT_DATE = " 6-Nov-15"
+CURRENT_TIME = "15:53:40"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
S1 = "hello"
@@ -10553,9 +10598,9 @@ NUM = "3"
T$DOLLAR = "hi"
T_HELLO = "hi"
show symbol s*
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:14"
-SESSION_PID = "10236"
+SESSION_DATE = " 6-Nov-15"
+SESSION_TIME = "15:53"
+SESSION_PID = "19236"
S1 = "hello"
S2 = ""hello""
S3 = "hello and goodbye"
@@ -10565,15 +10610,15 @@ S2 = ""hello""
! exercise CANCEL SYMBOL
cancel symbol s2
show symbol s*
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:14"
-SESSION_PID = "10236"
+SESSION_DATE = " 6-Nov-15"
+SESSION_TIME = "15:53"
+SESSION_PID = "19236"
S1 = "hello"
S3 = "hello and goodbye"
show symbol S*
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:14"
-SESSION_PID = "10236"
+SESSION_DATE = " 6-Nov-15"
+SESSION_TIME = "15:53"
+SESSION_PID = "19236"
S1 = "hello"
S3 = "hello and goodbye"
cancel symbol s2 ! already deleted
@@ -10701,18 +10746,18 @@ show symbols/all
PPL$XPIXEL = "656"
PPL$YPIXEL = "492"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul 1 2015 15:02:01 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:14"
-SESSION_PID = "10236"
-DELTA_CPU = "0.029996"
-CLOCK_SECS = "0.709"
-CURRENT_DATE = "30-Oct-14"
-CURRENT_TIME = "11:14:18"
+SESSION_DATE = " 6-Nov-15"
+SESSION_TIME = "15:53"
+SESSION_PID = "19236"
+DELTA_CPU = "0.015997"
+CLOCK_SECS = "0.07"
+CURRENT_DATE = " 6-Nov-15"
+CURRENT_TIME = "15:53:40"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -14163,7 +14208,7 @@ Dynamic axes:
! calendar axes
list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave] ! 6-day ave
- !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave] ! 6-day ave
+ !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]
VARIABLE : TEMPERATURE (deg. C)
regrid: 144 hour on T at AVE
FILENAME : gtsa056_1.cdf
@@ -14191,7 +14236,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
TIME : 15-JAN-1982 00:00
27.85
list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`] ! pseudo-var
- !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48] ! pseudo-var
+ !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
VARIABLE : T
axis (AX001)
SUBSET : 3 points (TIME)
@@ -19882,27 +19927,27 @@ GO bn_negative_t.sub tvar ave ! like var and din
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ave] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ave]
VARIABLE : T[GT=TAX]
T : -5 to 5 (averaged)
0.0000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ave] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ave]
VARIABLE : T[GT=TAX]
T : -8 to -5 (averaged)
-6.667
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ave] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ave]
VARIABLE : T[GT=TAX]
T : -9 to 3 (averaged)
-3.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ave] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ave]
VARIABLE : T[GT=TAX]
T : -9 to -3 (averaged)
-6.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ave] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ave]
VARIABLE : T[GT=TAX]
T : -11 to 11 (averaged)
0.0000
@@ -19918,7 +19963,7 @@ GO bn_negative_t.sub tvar iin
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at iin] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 5 points (T)
@@ -19928,14 +19973,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -8.00
4 / 8: 0.00
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at iin] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 2 points (T)
-8 / 2: -8.00
-6 / 3: -20.00
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at iin] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 6 points (T)
@@ -19946,7 +19991,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -40.00
2 / 7: -36.00
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at iin] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 3 points (T)
@@ -19954,7 +19999,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -28.00
-4 / 4: -36.00
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@iin] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 11 points (T)
@@ -19981,27 +20026,27 @@ GO bn_negative_t.sub tvar sum
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sum] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sum]
VARIABLE : T[GT=TAX]
T : -5 to 5 (summed)
0.0000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sum] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sum]
VARIABLE : T[GT=TAX]
T : -8 to -5 (summed)
-14.00
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sum] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sum]
VARIABLE : T[GT=TAX]
T : -9 to 3 (summed)
-18.00
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sum] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sum]
VARIABLE : T[GT=TAX]
T : -9 to -3 (summed)
-18.00
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sum] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sum]
VARIABLE : T[GT=TAX]
T : -11 to 11 (summed)
0.0000
@@ -20017,7 +20062,7 @@ GO bn_negative_t.sub tvar rsu
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at rsu] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 5 points (T)
@@ -20027,14 +20072,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -4.000
4 / 8: 0.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at rsu] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 2 points (T)
-8 / 2: -8.00
-6 / 3: -14.00
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at rsu] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 6 points (T)
@@ -20045,7 +20090,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -20.00
2 / 7: -18.00
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at rsu] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 3 points (T)
@@ -20053,7 +20098,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -14.00
-4 / 4: -18.00
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@rsu] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 11 points (T)
@@ -20080,7 +20125,7 @@ GO bn_negative_t.sub tvar shf
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at shf] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 5 points (T)
@@ -20090,14 +20135,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 4.000
4 / 8: 6.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at shf] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 2 points (T)
-8 / 2: -6.000
-6 / 3: -4.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at shf] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 6 points (T)
@@ -20108,7 +20153,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 2.000
2 / 7: 4.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at shf] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 3 points (T)
@@ -20116,7 +20161,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -4.000
-4 / 4: -2.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@shf] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 11 points (T)
@@ -20143,27 +20188,27 @@ GO bn_negative_t.sub tvar min ! like @max
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at min] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at min]
VARIABLE : T[GT=TAX]
T : -5 to 5 (minimum)
-4.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at min] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at min]
VARIABLE : T[GT=TAX]
T : -8 to -5 (minimum)
-8.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at min] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at min]
VARIABLE : T[GT=TAX]
T : -9 to 3 (minimum)
-8.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at min] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at min]
VARIABLE : T[GT=TAX]
T : -9 to -3 (minimum)
-8.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@min] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@min]
VARIABLE : T[GT=TAX]
T : -11 to 11 (minimum)
-10.00
@@ -20179,7 +20224,7 @@ GO bn_negative_t.sub tvar ddf
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddf] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 5 points (T)
@@ -20189,14 +20234,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 1.000
4 / 8: 1.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddf] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 2 points (T)
-8 / 2: 1.000
-6 / 3: 1.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddf] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 6 points (T)
@@ -20207,7 +20252,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 1.000
2 / 7: 1.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddf] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 3 points (T)
@@ -20215,7 +20260,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: 1.000
-4 / 4: 1.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddf] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 11 points (T)
@@ -20242,7 +20287,7 @@ GO bn_negative_t.sub tvar ddb ! @ddc like ddf and ddb
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddb] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 5 points (T)
@@ -20252,14 +20297,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 1.000
4 / 8: 1.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddb] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 2 points (T)
-8 / 2: 1.000
-6 / 3: 1.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddb] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 6 points (T)
@@ -20270,7 +20315,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 1.000
2 / 7: 1.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddb] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 3 points (T)
@@ -20278,7 +20323,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: 1.000
-4 / 4: 1.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddb] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 11 points (T)
@@ -20305,7 +20350,7 @@ GO bn_negative_t.sub tvar sbx ! like sbn, swl, shn, spz
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sbx] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 5 points (T)
@@ -20315,14 +20360,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.000
4 / 8: 4.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sbx] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 2 points (T)
-8 / 2: -8.000
-6 / 3: -6.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sbx] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 6 points (T)
@@ -20333,7 +20378,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.000
2 / 7: 2.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sbx] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 3 points (T)
@@ -20341,7 +20386,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -6.000
-4 / 4: -4.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sbx] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 11 points (T)
@@ -20368,27 +20413,27 @@ GO bn_negative_t.sub tvar loc:-2.2
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at loc:-2.2] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -5 to 5 (location of -2.2)
-2.200
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at loc:-2.2] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -8 to -5 (location of -2.2)
....
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at loc:-2.2] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -9 to 3 (location of -2.2)
-2.200
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at loc:-2.2] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -9 to -3 (location of -2.2)
....
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@loc:-2.2] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -11 to 11 (location of -2.2)
-2.200
@@ -20404,7 +20449,7 @@ GO bn_negative_t.sub tvar weq:-2.2
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at weq:-2.2] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 5 points (T)
@@ -20414,14 +20459,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: ....
4 / 8: ....
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at weq:-2.2] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 2 points (T)
-8 / 2:....
-6 / 3:....
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at weq:-2.2] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 6 points (T)
@@ -20432,7 +20477,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: ....
2 / 7: ....
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at weq:-2.2] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 3 points (T)
@@ -20440,7 +20485,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3:....
-4 / 4:....
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@weq:-2.2] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 11 points (T)
@@ -20483,27 +20528,27 @@ GO bn_negative_t.sub tgap ngd ! like @nbd
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at ngd] ! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -5 to 5 (number of valid)
3.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at ngd] ! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -8 to -5 (number of valid)
1.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at ngd] ! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -9 to 3 (number of valid)
3.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at ngd] ! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -9 to -3 (number of valid)
2.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tgap[l=@ngd] ! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -11 to 11 (number of valid)
5.000
@@ -20519,7 +20564,7 @@ GO bn_negative_t.sub tgap fav ! like fln (fnr not implemented)
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at fav] ! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 5 points (T)
@@ -20529,14 +20574,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.000
4 / 8: 4.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at fav] ! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 2 points (T)
-8 / 2: -8.000
-6 / 3: -6.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at fav] ! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 6 points (T)
@@ -20547,7 +20592,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.000
2 / 7: 2.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at fav] ! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 3 points (T)
@@ -20555,7 +20600,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -6.000
-4 / 4: -4.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tgap[l=@fav] ! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 11 points (T)
@@ -20604,7 +20649,7 @@ GO bn_negative_t.sub blin nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST blin[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST blin[t=-5:5 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 5 points (T)
-4 / 4: -4.000
@@ -20613,13 +20658,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.000
4 / 8: 4.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST blin[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST blin[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 2 points (T)
-8 / 2: -8.000
-6 / 3: -6.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST blin[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST blin[l=2:7 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 6 points (T)
-8 / 2: -8.000
@@ -20629,14 +20674,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.000
2 / 7: 2.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST blin[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST blin[l=2:4 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 3 points (T)
-8 / 2: -8.000
-6 / 3: -6.000
-4 / 4: -4.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST blin[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST blin[l=@nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 11 points (T)
-10 / 1: ....
@@ -20662,7 +20707,7 @@ GO bn_negative_t.sub bave nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST bave[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST bave[t=-5:5 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 5 points (T)
-4 / 4: -4.000
@@ -20671,13 +20716,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.000
4 / 8: 4.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST bave[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST bave[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 2 points (T)
-8 / 2: -8.000
-6 / 3: -6.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST bave[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST bave[l=2:7 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 6 points (T)
-8 / 2: -8.000
@@ -20687,14 +20732,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.000
2 / 7: 2.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST bave[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST bave[l=2:4 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 3 points (T)
-8 / 2: -8.000
-6 / 3: -6.000
-4 / 4: -4.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST bave[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST bave[l=@nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 11 points (T)
-10 / 1: -9.000
@@ -20720,7 +20765,7 @@ GO bn_negative_t.sub basn nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST basn[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST basn[t=-5:5 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 5 points (T)
-4 / 4: -6.000
@@ -20729,13 +20774,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -3.000
4 / 8: -2.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST basn[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST basn[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 2 points (T)
-8 / 2: -8.000
-6 / 3: -7.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST basn[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST basn[l=2:7 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 6 points (T)
-8 / 2: -8.000
@@ -20745,14 +20790,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -4.000
2 / 7: -3.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST basn[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST basn[l=2:4 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 3 points (T)
-8 / 2: -8.000
-6 / 3: -7.000
-4 / 4: -6.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST basn[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST basn[l=@nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 11 points (T)
-10 / 1: -9.000
@@ -20856,7 +20901,7 @@ CANCEL REGION
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -20866,7 +20911,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -20880,7 +20925,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -20890,7 +20935,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -20904,7 +20949,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -20918,7 +20963,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -20931,7 +20976,7 @@ SET REGION/X=2:4
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -20939,7 +20984,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -20949,7 +20994,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -20957,7 +21002,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -20967,7 +21012,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -20977,7 +21022,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -20988,7 +21033,7 @@ SET REGION/X=1:5
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -20998,7 +21043,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21012,7 +21057,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21022,7 +21067,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21036,7 +21081,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21050,7 +21095,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21063,7 +21108,7 @@ SET REGION/X=1.5:4.5
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21071,7 +21116,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21083,7 +21128,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21091,7 +21136,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21103,7 +21148,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21115,7 +21160,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21126,7 +21171,7 @@ SET REGION/X=0:6
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21136,7 +21181,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21150,7 +21195,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21160,7 +21205,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21174,7 +21219,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21188,7 +21233,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21203,7 +21248,7 @@ CANCEL REGION
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21213,7 +21258,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21227,7 +21272,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21237,7 +21282,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21251,7 +21296,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21265,7 +21310,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21278,7 +21323,7 @@ SET REGION/Y=2:4
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21286,7 +21331,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21296,7 +21341,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21304,7 +21349,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21314,7 +21359,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21324,7 +21369,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21335,7 +21380,7 @@ SET REGION/Y=1:5
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21345,7 +21390,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21359,7 +21404,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21369,7 +21414,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21383,7 +21428,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21397,7 +21442,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21410,7 +21455,7 @@ SET REGION/Y=1.5:4.5
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21418,7 +21463,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21430,7 +21475,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21438,7 +21483,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21450,7 +21495,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21462,7 +21507,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21473,7 +21518,7 @@ SET REGION/Y=0:6
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21483,7 +21528,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21497,7 +21542,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21507,7 +21552,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21521,7 +21566,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21535,7 +21580,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21550,7 +21595,7 @@ CANCEL REGION
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21560,7 +21605,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21574,7 +21619,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21584,7 +21629,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21598,7 +21643,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21612,7 +21657,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21625,7 +21670,7 @@ SET REGION/Z=2:4
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21633,7 +21678,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21643,7 +21688,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21651,7 +21696,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21661,7 +21706,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21671,7 +21716,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21682,7 +21727,7 @@ SET REGION/Z=1:5
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21692,7 +21737,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21706,7 +21751,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21716,7 +21761,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21730,7 +21775,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21744,7 +21789,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21757,7 +21802,7 @@ SET REGION/Z=1.5:4.5
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21765,7 +21810,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -21777,7 +21822,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21785,7 +21830,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -21797,7 +21842,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -21809,7 +21854,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21820,7 +21865,7 @@ SET REGION/Z=0:6
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21830,7 +21875,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21844,7 +21889,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21854,7 +21899,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21868,7 +21913,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21882,7 +21927,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21897,7 +21942,7 @@ CANCEL REGION
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -21907,7 +21952,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -21921,7 +21966,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -21931,7 +21976,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -21945,7 +21990,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -21959,7 +22004,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -21972,7 +22017,7 @@ SET REGION/T=2:4
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -21980,7 +22025,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -21990,7 +22035,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -21998,7 +22043,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -22008,7 +22053,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -22018,7 +22063,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22029,7 +22074,7 @@ SET REGION/T=1:5
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22039,7 +22084,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22053,7 +22098,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22063,7 +22108,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22077,7 +22122,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22091,7 +22136,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22104,7 +22149,7 @@ SET REGION/T=1.5:4.5
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22112,7 +22157,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22124,7 +22169,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22132,7 +22177,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22144,7 +22189,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22156,7 +22201,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22167,7 +22212,7 @@ SET REGION/T=0:6
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22177,7 +22222,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22191,7 +22236,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22201,7 +22246,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22215,7 +22260,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22229,7 +22274,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -23661,7 +23706,33 @@ list 'X' ! Now the proper syntax
19 / 19: 0.5784
20 / 20: 0.6570
list i ! Deliberate error
-list 'i' ! Deliberate error
+
+! v694 No longer an error: See ticket 2050
+list 'i' !
+ VARIABLE : SIN(4+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 20 points (X)
+ 1 / 1: -0.8183
+ 2 / 2: -0.8716
+ 3 / 3: -0.9162
+ 4 / 4: -0.9516
+ 5 / 5: -0.9775
+ 6 / 6: -0.9937
+ 7 / 7: -0.9999
+ 8 / 8: -0.9962
+ 9 / 9: -0.9825
+ 10 / 10: -0.9589
+ 11 / 11: -0.9258
+ 12 / 12: -0.8835
+ 13 / 13: -0.8323
+ 14 / 14: -0.7728
+ 15 / 15: -0.7055
+ 16 / 16: -0.6313
+ 17 / 17: -0.5507
+ 18 / 18: -0.4646
+ 19 / 19: -0.3739
+ 20 / 20: -0.2794
+
list 'I' ! Now the proper syntax
VARIABLE : SIN(4+I/10)
FILENAME : weird_name1.cdf
@@ -25248,7 +25319,7 @@ GO err491_spawn_quotes.jnl
! this should be a valid command
SPAWN "date"
-Thu Oct 30 11:14:33 PDT 2014
+Fri Nov 6 15:53:44 PST 2015
GO bn_reset
cancel mode verify
@@ -30237,14 +30308,19 @@ say `a,return=isize` ! no evaluation of a required -- just context
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 15 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
!-> MESSAGE/CONTINUE 10
10
list/nohead a ! evaluate it now
+ -DELETE I M: 15 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo I M: 15 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found A M: 16 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
1 / 1: 1.00
2 / 2: 2.00
3 / 3: 3.00
@@ -30260,7 +30336,6 @@ let a = XSEQUENCE(j[j=1:5])
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE A M: 16 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE I M: 15 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE SST5SBX M: 14 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME NORMAL NORMAL
-DELETE SST5XAVE M: 9 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -33368,8 +33443,17 @@ SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
Returns data sampled according to L indices which may vary in IJK
L_INDICES: ordered indices
DAT_TO_SAMPLE: data to sample using L indices
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+ Returns data sampled by interpolating to a set of times in F direction
+ DAT_TO_SAMPLE: data to sample at set of times in F
+ YR: Year(s) yyyy
+ MO: Month(s), integer mm
+ DAY: Day(s) of month dd
+ HR: Hour(s) hh
+ MIN: Minute(s) mm
+ SEC: Second(s) ss
SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
- Returns data sampled by interpolating to a set of times
+ Returns data sampled by interpolating to a set of times in T direction
DAT_TO_SAMPLE: data to sample at set of times
YR: Year(s) yyyy
MO: Month(s), integer mm
@@ -33434,6 +33518,14 @@ SAMPLE_FAST_I(V,Indices)
Fast 1D sample variable using set of indices
V: Variable to sample
Indices: List of indices at which to sample
+SAMPLE_FAST_I_STR(S,Indices)
+ Fast 1D sample string variable using set of indices
+ S: String Variable to sample (STRING)
+ Indices: List of indices at which to sample
+SAMPLE_FAST_I(V,Indices)
+ Fast 1D sample variable using set of indices
+ V: Variable to sample
+ Indices: List of indices at which to sample
go bench_sorti.jnl
@@ -34549,6 +34641,10 @@ CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
lat_in: Source grid latitudes (2-D) (degrees)
grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
radius: Source points falling within radius are included in mapping to destination point (degrees)
+CURV_TO_RECT_FSU(V,mapping)
+ Alt func to Apply mapping to regrid from curvilinear to rectangular grid
+ V: Variable to regrid, on curvilinear grid V(x,y,z,t)
+ mapping: mapping computed by curv_to_rect_MAP
use tripolar_subset.nc
shade ht, geolon_vert_t, geolat_vert_t
@@ -34637,12 +34733,12 @@ list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
Column 1: TAX_MONTH(T[GT=TEMP],TEMP)
Column 2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
(C001,V001) (C001,V009)
-10-NOV-1982 16 / 15: 11.00 0.8603
-16-NOV-1982 18 / 16: 11.00 0.8767
-22-NOV-1982 20 / 17: 11.00 0.8932
-28-NOV-1982 22 / 18: 11.00 0.9096
+10-NOV-1982 16 / 15: 11.00 0.8621
+16-NOV-1982 18 / 16: 11.00 0.8788
+22-NOV-1982 20 / 17: 11.00 0.8954
+28-NOV-1982 22 / 18: 11.00 0.9121
05-DEC-1982 00 / 19: 12.00 0.9288
-11-DEC-1982 02 / 20: 12.00 0.9452
+11-DEC-1982 02 / 20: 12.00 0.9454
list/L=15:20 tax_year(t[gt=temp],temp)
VARIABLE : TAX_YEAR(T[GT=TEMP],TEMP)
FILENAME : gt4d011.cdf
@@ -35869,6 +35965,8 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "fri
list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
1 / 1:"now, goodbye, my friend" "now, hello, friend"
2 / 2:"then, goodbye, my friend""then, hello, friend"
+
+SET MODE IGNORE
list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
1 / 1:........
2 / 2:........
@@ -35883,18 +35981,11 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "g
2 / 2:........
! numerical operators applied to strings
+
list/nohead "b" - {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" * {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" / {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" ^ {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead {"a","b"} + 1
1 / 1:....
2 / 2:....
@@ -35905,18 +35996,14 @@ list/nohead 1 - {"a","b"}
1 / 1:....
2 / 2:....
list/nohead SIN({"a","b","c"})
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
list/nohead MAX("a",{"a","b","c"})
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
list/nohead MAX(1,{"a","b","c"})
1 / 1:....
2 / 2:....
3 / 3:....
+CANCEL MODE IGNORE
+
! transformations applied to strings
let a = {"a","b","c","d"}
list a[i=@shf]
@@ -36202,13 +36289,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1: "one" ... 1.100 -24.00 130.0 " " 10.0 "word 1" " " ....
-2 / 2: "two" ... 2.200 24.00 -130.0 "2S" .... "word 2" " " ....
-3 / 3: "three" ... 3.300 24.00 130.0 "3N" 0.0 " wd 3 " " " ....
-4 / 4: " " ... .... .... .... " " .... " " " " ....
-5 / 5: "five" ... 4.400 -24.00 -130.0 "91" -400.0 "word 4" "aa" 77.00
-6 / 6: "extra line"... .... .... .... " " .... " " " " ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: "one" .... 1.100 -24.00 130.0 " " 10.0 "word 1" " " ....
+2 / 2: "two" .... 2.200 24.00 -130.0 "2S" .... "word 2" " " ....
+3 / 3: "three" .... 3.300 24.00 130.0 "3N" 0.0 " wd 3 " " " ....
+4 / 4: " " .... .... .... .... " " .... " " " " ....
+5 / 5: "five" .... 4.400 -24.00 -130.0 "91" -400.0 "word 4" "aa" 77.00
+6 / 6: "extra line" .... .... .... .... " " .... " " " " ....
! insist that all columns be treated as string
file/format=delim/skip=1/type=text bn_delimited_read_1.dat
@@ -36276,13 +36363,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1:...... 1.100 .... .... .... 10.0...... ....
-2 / 2:...... 2.200 .... .... .... .......... ....
-3 / 3:...... 3.300 24.00 130.0 .... 0.0...... ....
-4 / 4:...... .... .... .... .... .......... ....
-5 / 5:...... 4.400 -24.00 -130.0 91.00 -400.0...... 77.00
-6 / 6:...... .... .... .... .... .......... ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: .... .... 1.100 .... .... .... 10.0 .... .... ....
+2 / 2: .... .... 2.200 .... .... .... .... .... .... ....
+3 / 3: .... .... 3.300 24.00 130.0 .... 0.0 .... .... ....
+4 / 4: .... .... .... .... .... .... .... .... .... ....
+5 / 5: .... .... 4.400 -24.00 -130.0 91.00 -400.0 .... .... 77.00
+6 / 6: .... .... .... .... .... .... .... .... .... ....
! insist that all columns be treated as latitude
file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
@@ -36299,13 +36386,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8 is V8 (degrees_north)(Latitude)
Column 9: V9 is V9 (degrees_north)(Latitude)
Column 10: V10 is V10 (degrees_north)(Latitude)
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1:...... 1.100 -24.00 .... .... 10.0...... ....
-2 / 2:...... 2.200 24.00 .... -2.00 .......... ....
-3 / 3:...... 3.300 24.00 130.0 3.00 0.0...... ....
-4 / 4:...... .... .... .... .... .......... ....
-5 / 5:...... 4.400 -24.00 -130.0 91.00 -400.0...... 77.00
-6 / 6:...... .... .... .... .... .......... ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: .... .... 1.100 -24.00 .... .... 10.0 .... .... ....
+2 / 2: .... .... 2.200 24.00 .... -2.00 .... .... .... ....
+3 / 3: .... .... 3.300 24.00 130.0 3.00 0.0 .... .... ....
+4 / 4: .... .... .... .... .... .... .... .... .... ....
+5 / 5: .... .... 4.400 -24.00 -130.0 91.00 -400.0 .... .... 77.00
+6 / 6: .... .... .... .... .... .... .... .... .... ....
! read only the first line of the file
spawn head -1 bn_delimited_read_1.dat
@@ -36327,8 +36414,8 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-I / *: "col1" "col2" "col3" "col4" "col5" " "... " " " "....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+I / *: "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
list c1,c2,c3,c4,c5
DATA SET: ./bn_delimited_read_1.dat
@@ -36446,11 +36533,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
Column 6: V6 is V6 (days)(Julian days since 1-Jan-1900)
Column 7: V7 is V7 (days)(Julian days since 1-Jan-1900)
Column 8: V8 is V8 (days)(Julian days since 1-Jan-1900)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1: 36493. 36218....... 36493. 36218.......
-2 / 2: 36494. 36219....... 36494. 36219.......
-3 / 3: .... .......... 36495. 36220.......
-4 / 4: 36496. 36221....... 36496. 36221.......
+ V1 V2 V3 V4 V5 V6 V7 V8
+1 / 1: 36493. 36218. .... .... 36493. 36218. .... ....
+2 / 2: 36494. 36219. .... .... 36494. 36219. .... ....
+3 / 3: .... .... .... .... 36495. 36220. .... ....
+4 / 4: 36496. 36221. .... .... 36496. 36221. .... ....
show data 2
currently SET data sets:
2> ./bn_delimited_read_date_time.dat (default)
@@ -36485,11 +36572,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
Column 6: V6 is V6 (hours)(Time of day)
Column 7: V7 is V7 (hours)(Time of day)
Column 8: V8 is V8 (hours)(Time of day)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1:...... 12.00 13.76...... 12.00 13.76
-2 / 2:...... 1.00 14.76...... 1.00 14.76
-3 / 3:...... .... .......... 2.00 15.75
-4 / 4:...... 3.00 16.76...... 3.00 16.76
+ V1 V2 V3 V4 V5 V6 V7 V8
+1 / 1: .... .... 12.00 13.76 .... .... 12.00 13.76
+2 / 2: .... .... 1.00 14.76 .... .... 1.00 14.76
+3 / 3: .... .... .... .... .... .... 2.00 15.75
+4 / 4: .... .... 3.00 16.76 .... .... 3.00 16.76
show data 2
currently SET data sets:
2> ./bn_delimited_read_date_time.dat (default)
@@ -38028,8 +38115,11 @@ save/q/clob/file=g.nc b
can var a b
sp ncrename -h -v A,a f.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
sp ncrename -h -v A,a -v B,b f2.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 2 variables
sp ncrename -h -v B,b g.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
use f.nc
use f2.nc
use g.nc
@@ -39237,7 +39327,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
! test modulo string arrays
list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
- !-> list vreg_strings[i=5:7] ! via IS_SUBSPAN_FILL
+ !-> list vreg_strings[i=5:7]
VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 3 points (X)
@@ -39245,7 +39335,7 @@ list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
46 / 6:"a6"
93.5 / 7:""
list $1_strings[i=1013:1024] ! via IS_MODULO
- !-> list vreg_strings[i=1013:1024] ! via IS_MODULO
+ !-> list vreg_strings[i=1013:1024]
VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 12 points (X)
@@ -39766,7 +39856,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
! test modulo string arrays
list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
- !-> list virr_strings[i=5:7] ! via IS_SUBSPAN_FILL
+ !-> list virr_strings[i=5:7]
VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 3 points (X)
@@ -39774,7 +39864,7 @@ list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
46 / 6:"a6"
93.5 / 7:""
list $1_strings[i=1013:1024] ! via IS_MODULO
- !-> list virr_strings[i=1013:1024] ! via IS_MODULO
+ !-> list virr_strings[i=1013:1024]
VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 12 points (X)
@@ -39919,7 +40009,8 @@ show modes
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -39938,7 +40029,8 @@ show modes
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
contour/i=1:10/j=1:10 i/j
! restore the labels, logo still gone
@@ -44262,7 +44354,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
nulrgd BIGVAR M: 3 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE BIGVAR M: 7 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX022) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- regrid A M: 15 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ regrid A M: 14 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G007) (AX022) (AX021) ZAX1_20 TAX1_10 NORMAL NORMAL
VARIABLE : BIGVAR[I=1:40:5]
regrid: 2 delta on Y
@@ -44284,7 +44376,7 @@ cancel mem/all
-DELETE A M: 7 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE BIGVAR M: 8 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE A M: 11 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 15 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M: 14 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
! basic strides
LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
@@ -44299,7 +44391,7 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
strip regrid on X: UNEVENVAR --> (G007) @XACT
rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
nulrgd UNE-NVAR M: 11 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 15 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 14 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G007) (AX003) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X
@@ -44328,7 +44420,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
allocate dynamic grid (G007) (AX021) (AX023) (AX024) TAX1_10 NORMAL NORMAL
strip regrid on X: BIGVAR --> (G007) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 15 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd BIGVAR M: 14 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-DELETE BIGVAR M: 11 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G007) (AX021) (AX023) (AX024) TAX1_10 NORMAL NORMAL
VARIABLE : VAR
@@ -44347,7 +44439,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
4 / 2: 1343. 1345. 1347. 1349.
6 / 3: 1363. 1365. 1367. 1369.
canc data/all
- -DELETE BIGVAR M: 15 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 14 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G007) (AX021) (AX023) (AX024) TAX1_10 NORMAL NORMAL
dealloc dynamic grid (G006) (AX022) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
@@ -44362,7 +44454,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
strip regrid on X: BIGVAR --> (G006) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
nulrgd BIGVAR M: 11 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 15 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 14 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX024) (AX023) (AX021) TAX1_10 NORMAL NORMAL
VARIABLE : VAR
regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
@@ -44397,7 +44489,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
allocate dynamic grid (G006) (AX023) (AX024) NORMAL (AX022) NORMAL NORMAL
strip regrid on X: XYTVAR --> (G006) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 15 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 14 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
-DELETE XYTVAR M: 11 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) NORMAL (AX022) NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
@@ -44418,7 +44510,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
use/order=tyx bn_strides
show grid xytvar
dealloc dynamic grid (G006) (AX023) (AX024) NORMAL (AX022) NORMAL NORMAL
- -DELETE XYTVAR M: 15 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 14 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
GRID EGRID
name axis # pts start end
@@ -44440,7 +44532,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
strip regrid on X: XYTVAR --> (G006) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
nulrgd XYTVAR M: 11 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 15 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 14 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX024) (AX023) NORMAL (AX021) NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 deg on X, 2 deg on Y, 2 day on T
@@ -44484,7 +44576,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
allocate dynamic grid (G006) (AX023) (AX024) (AX022) NORMAL NORMAL NORMAL
strip regrid on X: XYTVAR --> (G006) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 15 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 14 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE XYTVAR M: 11 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) (AX022) NORMAL NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
@@ -44502,7 +44594,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
144 / 2: 1054. 3054. 5054. 7054.
146 / 3: 1056. 3056. 5056. 7056.
canc data/all
- -DELETE XYTVAR M: 15 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 14 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) (AX022) NORMAL NORMAL NORMAL
@@ -44520,7 +44612,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
strip regrid on X: MIDVAR --> (G006) @XACT
rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
nulrgd MIDVAR M: 11 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 15 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX024) (AX023) (AX021) TAX1_6 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44553,7 +44645,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
doing reversing MIDVAR on Y axis: 2 5 dset: 1
-DELETE MIDVAR M: 11 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
nulrgd MIDVAR M: 11 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 15 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) (AX022) TAX1_6 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44583,7 +44675,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
allocate dynamic grid (G006) (AX024) (AX023) (AX021) ZAX1_7 NORMAL NORMAL
strip regrid on X: MIDVAR --> (G006) @XACT
rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 15 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M: 14 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-DELETE MIDVAR M: 11 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX024) (AX023) (AX021) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
@@ -44600,7 +44692,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 1125. 5125.
5 / 2: 1155. 5155.
canc data/all
- -DELETE MIDVAR M: 15 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX024) (AX023) (AX021) ZAX1_7 NORMAL NORMAL
! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
@@ -44616,8 +44708,8 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
strip reversing MIDVAR on X axis: 1 5 dset: 1
rdstride MIDVAR C: 8 dset: 1 I: 2 6 J: 4 7 K: 3 5 L: 7 7 M: -999 -999 N: -999 -999
doing reversing MIDVAR on X axis: 1 5 dset: 1
- -DELETE MIDVAR M: 15 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 15 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M: 14 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-DELETE MIDVAR M: 11 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) (AX022) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
@@ -44634,7 +44726,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 6775. 2775.
5 / 2: 6745. 2745.
canc data/all
- -DELETE MIDVAR M: 15 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) (AX022) ZAX1_7 NORMAL NORMAL
! reference output
@@ -44649,7 +44741,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
strip regrid on X: MIDVAR --> (G006) @XACT
rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
nulrgd MIDVAR M: 11 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 15 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX024) (AX023) (AX021) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44682,7 +44774,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
doing reversing MIDVAR on Y axis: 2 5 dset: 1
-DELETE MIDVAR M: 11 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
nulrgd MIDVAR M: 11 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 15 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) (AX022) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -46799,7 +46891,7 @@ show data/full
NCEP Ocean Analysis
name title I J K L M N
TEMP temperature 1:1 1:1 1:19 1:1 ... ...
- degree_Celsius on grid GGH1 with 1.E-34 & NaN for missing data
+ degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
X=139.8E:140.8E Y=0.5S:0.5N Z=0:375
time range: 15-FEB-1980 12:00
@@ -47670,9 +47762,9 @@ GO err580_irreg_bounds.jnl
! the bounds seem to be ignored; axis is seen as regular.
! Bug 1160 reported by Andrew.
-yes? def ax/t/edge time = {0,1,3}
-yes? let a = t[gt=time]
-yes? show grid/t a
+def ax/t/edge time = {0,1,3}
+let a = t[gt=time]
+show grid/t a
GRID (G001)
name axis # pts start end
normal X
@@ -47686,17 +47778,17 @@ yes? show grid/t a
1> 0.5 1 0
2> 2 2 1
-yes? save/clob/file=a.nc a
+save/clob/file=a.nc a
sp echo "err580_irreg_bounds.jnl --- " >> all_ncdump.out
-yes? sp ncdump a.nc >> all_ncdump.out
+sp ncdump a.nc >> all_ncdump.out
can data/all
can var/all
can mem
! T axis was marked as regular
-yes? use a.nc
-yes? show grid/t a
+use a.nc
+show grid/t a
GRID GSI1
name axis # pts start end
normal X
@@ -48308,7 +48400,7 @@ list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
! ferret version
sh sym FERRET_VERSION
-FERRET_VERSION = "6.93"
+FERRET_VERSION = "6.951"
! history attribute
let a = 12
@@ -48326,7 +48418,7 @@ LAB1 = "X : 0.5 to 314.5"
! show commands without an argument, lists version number at the top
sho command
- Commands in Program FERRET version6.93:
+ Commands in Program FERRET version6.951:
SET
SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE
SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
@@ -48338,7 +48430,7 @@ sho command
/TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
SET MODE/LAST
SET MOVI/FILE/COMPRESS/LASER/START
- SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/SIGMA
+ SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/LAYERZ
/CURVILIN
SET GRID/SAVE/RESTORE
SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
@@ -48357,7 +48449,7 @@ sho command
/HIDDEN
SHOW MODE/ALL
SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
/CURVILIN
SHOW COMMANDS/ALL
SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -48381,7 +48473,7 @@ sho command
CANCEL MODE
CANCEL MOVIE/ALL
CANCEL VIEWPORT
- CANCEL VARIABLE/ALL/DATASET/SIGMA/CURVILIN
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
CANCEL GRID
CANCEL ATTRIBUT/OUTPUT/DATA
@@ -48398,11 +48490,11 @@ sho command
/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS/CLOBBER
/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT/XCHUNK
/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN/OUTTYPE
- /CURVILIN/SIGMA
+ /CURVILIN/LAYERZ
PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/VS/SYMBOL
/NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE/NOAXES/STEP
/DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG/GRATICUL/NOKEY
- /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING
+ /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
GO/HELP
HELP
LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
@@ -48418,7 +48510,8 @@ sho command
DEFINE SYMBOL
DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
EXIT/COMMAND/LOOP/SCRIPT/PROMPT/PROGRAM/CYCLE/TOPYTHON
MESSAGE/CONTINUE/QUIET/JOURNAL/ERROR/OUTFILE/APPEND/CLOBBER
VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/ASPECT/NOLABEL
@@ -48445,6 +48538,7 @@ sho command
/NOLABEL/LEVELS/LINE/COLOR/PALETTE/XLIMITS/YLIMITS/TITLE/THICKNES
/NOAXES/PATTERN/FILL/KEY/NOKEY/AXES/HLIMITS/VLIMITS/HLOG/VLOG
/HGRATICU/VGRATICU/GRATICUL/MODULO
+ ANNOTATE/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
Use SHOW ALIAS to see alternative command names
*** Running test: bn_window_title.jnl
@@ -48459,7 +48553,7 @@ go ptest
PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
sh sym win_title
-WIN_TITLE = "30-Oct-14:11:16"
+WIN_TITLE = "6-Nov-15:15:54"
set win/title="set the title"
sho sym win_title
@@ -48477,7 +48571,7 @@ sho sym win_title
WIN_TITLE = "_"
set win/title="($session_date):($session_time)"
- !-> set win/title="30-Oct-14:11:16"
+ !-> set win/title=" 6-Nov-15:15:54"
! If the date or time starts with a blank then we get an extra
! underscore in the window title. Evaluating the symbols into
@@ -48486,16 +48580,16 @@ set win/title="($session_date):($session_time)"
! If so substitute another string.
DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 30-Oct-14
+ !-> DEFINE SYMBOL the_date = 6-Nov-15
DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 11:16
+ !-> DEFINE SYMBOL the_time = 15:54
SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="30-Oct-14:11:16"
+ !-> SET WIN/TITLE="6-Nov-15:15:54"
can win/all
set win/new
sh sym win_title
-WIN_TITLE = "30-Oct-14:11:16"
+WIN_TITLE = "6-Nov-15:15:54"
*** Running test: bn_last_error.jnl
! bn_last_error.jnl
! acm Nov 2005
@@ -49269,6 +49363,7 @@ let a = temp.missing_value
list a
VARIABLE : TEMP.MISSING_VALUE
FILENAME : ocean_atlas_temp.cdf
+ X : 1
-1.000E+34
use ocean_atlas_temp
@@ -49276,6 +49371,7 @@ let s = temp.units
list s
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
can data/all
@@ -49287,6 +49383,7 @@ list s
VARIABLE : ..REMARK
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
"Generated by oar3d "
go bn_reset
@@ -49305,6 +49402,7 @@ let anames = sst.attnames
list nat
VARIABLE : SST.NATTRS
FILENAME : coads_climatology.cdf
+ X : 1
5.000
list anames
VARIABLE : SST.ATTNAMES
@@ -49322,6 +49420,7 @@ let cnames = sst.dimnames
list nd
VARIABLE : SST.NDIMS
FILENAME : coads_climatology.cdf
+ X : 1
3.000
list cnames
VARIABLE : SST.DIMNAMES
@@ -49341,6 +49440,7 @@ let nd = ..ndims
let vnames = ..varnames
list/d=1 nv, nd
DATA SET: ./gt4d011.cdf
+ X: 1
Column 1: NV is ..NVARS
Column 2: ND is ..NDIMS
NV ND
@@ -49366,6 +49466,7 @@ let vnames = ..varnames
list/d=coads_climatology vnames
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
list/d=gt4d011 vnames
VARIABLE : ..VARNAMES
@@ -49402,27 +49503,28 @@ list vnames
3 / 3:"TIME"
list lnames
VARIABLE : ..DIMNAMES[D=gt4d011]
- SUBSET : 20 points (X)
- 1 / 1:"PSXT"
- 2 / 2:"PSYT"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME1"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT"
+ 3 / 3:"PSYT"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME1"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
can var/all
can data/all
@@ -49435,6 +49537,7 @@ list v
VARIABLE : ..NDIMS
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
3.000
let na = ..nattrs
@@ -49442,6 +49545,7 @@ list na
VARIABLE : ..NATTRS
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
31.00
let gnames = ..attnames
@@ -49505,12 +49609,14 @@ let nat = temp.nattrs
list nat
VARIABLE : TEMP.NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
5.000
list (`temp,return=xaxis`).nattrs
!-> list (XAX_LEV9421_380).nattrs
VARIABLE : (XAX_LEV9421_380).NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
4.000
use gt4d011
@@ -49544,15 +49650,18 @@ let a = temp.units
list/d=3 a
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list temp.units[d=3]
VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list/d=3 temp.history
VARIABLE : TEMP.HISTORY
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"From ocean_atlas_monthly"
can data/all
@@ -49612,6 +49721,7 @@ let a= broiled.acl
list a
VARIABLE : BROILED.ACL
FILENAME : test0.nc
+ X : 1
17000.
let a= broiled.acf
@@ -49673,6 +49783,7 @@ use gt4d011
list ..nvars
VARIABLE : ..NVARS
FILENAME : gt4d011.cdf
+ X : 1
12.00
use coads_climatology
@@ -49680,10 +49791,12 @@ use coads_climatology
list/d=1 ..nvars
VARIABLE : ..NVARS
FILENAME : gt4d011.cdf
+ X : 1
12.00
list/d=2 ..nvars
VARIABLE : ..NVARS
FILENAME : coads_climatology.cdf
+ X : 1
1.000
sh data
@@ -49706,6 +49819,7 @@ sh data
list/d=2 ..varnames
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
list/d=2 ..dimnames
@@ -49718,49 +49832,55 @@ list/d=2 ..dimnames
list/d=1 ..dimnames
VARIABLE : ..DIMNAMES
FILENAME : gt4d011.cdf
- SUBSET : 20 points (X)
- 1 / 1:"PSXT"
- 2 / 2:"PSYT"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME1"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT"
+ 3 / 3:"PSYT"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME1"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
list/d=1 ..nattrs
VARIABLE : ..NATTRS
FILENAME : gt4d011.cdf
+ X : 1
1.000
list/d=1 ..attnames
VARIABLE : ..ATTNAMES
FILENAME : gt4d011.cdf
+ X : 1
"history"
list/d=1 ..ndims
VARIABLE : ..NDIMS
FILENAME : gt4d011.cdf
+ X : 1
21.00
list/d=2 ..ndims
VARIABLE : ..NDIMS
FILENAME : coads_climatology.cdf
+ X : 1
3.000
list ..nvars[d=1]
VARIABLE : ..NVARS[D=gt4d011]
FILENAME : gt4d011.cdf
+ X : 1
12.00
sh var
Created by DEFINE VARIABLE:
@@ -49787,6 +49907,7 @@ set data 1
list/d=2 pp
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
go bn_reset
@@ -49876,10 +49997,12 @@ use coads_climatology
list (coadsx).units
VARIABLE : (COADSX).UNITS
FILENAME : coads_climatology.cdf
+ X : 1
"degrees_east"
list (coadsx).modulo
VARIABLE : (COADSX).MODULO
FILENAME : coads_climatology.cdf
+ X : 1
" "
sho att/all (coadsx)
attributes for dataset: ./coads_climatology.cdf
@@ -49968,6 +50091,7 @@ list (`sst,return=xaxis`).nattrs[d=2]
!-> list (COADSX).nattrs[d=2]
VARIABLE : (COADSX).NATTRS[D=coads_climatology]
FILENAME : coads_climatology.cdf
+ X : 1
5.000
! using dimension names from the linked list structure
@@ -49987,6 +50111,7 @@ list (`cnames[i=1]`).nattrs
!-> list (COADSX).nattrs
VARIABLE : (COADSX).NATTRS
FILENAME : coads_climatology.cdf
+ X : 1
5.000
! Intentional errors.
@@ -50129,6 +50254,7 @@ let pq = temp.pp
list pq
VARIABLE : TEMP.PP
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"PP now has some text."
! set an attribute when the variable is not in the default dataset.
@@ -51542,11 +51668,11 @@ set view left; shade/x=120e:80w sst ! works correctly
set view right; fill/x=120e:80w sst
sh sym ppl$xmin, ppl$xmax ! should be 131, 279
-PPL$XMIN = "131.0"
-PPL$XMAX = "281.0"
+PPL$XMIN = "131.0000"
+PPL$XMAX = "281.0000"
sh sym ppl$xlow, ppl$xhigh ! should be 165, 259
-PPL$XHIGH = "165.0"
-PPL$XLOW = "259.0"
+PPL$XHIGH = "165.0000"
+PPL$XLOW = "259.0000"
sp rm -f err581_subspanx_fill_bug.nc
@@ -51628,8 +51754,6 @@ GO err581_if_conditional.jnl
! This should skip to the end, not trying to execute anything inside the IF 0 THEN
if 0 then
- endif
- endif
endif
say "finished the if block"
@@ -51664,7 +51788,6 @@ let key_flag = 0
IF `($xend) GT 360` THEN
!-> IF 0 THEN
- ENDIF
ENDIF
let dxymin = 0.20
if `dxymin lt 0.12` then
@@ -51679,7 +51802,6 @@ endif
IF `($xend) GT 360` THEN
!-> IF 0 THEN
- ENDIF
ELSE
say "this is the ELSE that should execute"
this is the ELSE that should execute
@@ -51776,10 +51898,8 @@ ELIF ($refmap_type%|xline>1|*>0%) THEN ! ELSE IF "xline"
!-> ELIF 1 THEN
define region/default/dy=$6"-30:30|1>-30:30|*>-20:20"/dx=$6"0:0|1>0:0|2>0:0|*>`max(-($ref_dx),-50)`:`min(($ref_dx),50)`" band
!-> define region/default/dy=-20:20/dx=-50:50 band
-
ELIF ($refmap_type%|yline>1|*>0%) THEN ! ELSE IF "yline"
!-> ELIF 0 THEN
- ENDIF
ENDIF
! init the land mask data set
set data coads_climatology
@@ -51818,17 +51938,12 @@ IF ($refmap_type%|box>1|*>0) THEN ! IF "box"
!-> IF 0 THEN
ELIF ($refmap_type%|xline>1|*>0) THEN ! ELSE IF "xline"
!-> ELIF 1 THEN
-
IF ($refmap_ycompress) THEN
!-> IF 0 THEN
ENDIF
-
plot/over/vs/nolab/line=8/i=1:2 refmap_xrng, refmap_ymid+(i-i)
-
ELIF ($refmap_type%|yline>1|*>0) THEN ! ELSE IF "yline"
!-> ELIF 0 THEN
- ENDIF
- ENDIF
ENDIF
@@ -52109,8 +52224,8 @@ GO err581_define_1pt_bounds.jnl
! again, and even that result is now very wrong!! Same results in both v5.81
! for Linux and v5.70 for Irix.
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: -2 to 6
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -52120,8 +52235,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
3 / 2: 2.000 4.000 3.000
5 / 3: 4.000 6.000 5.000
-yes? def ax/x/bounds xax = {0},{-2,2}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0},{-2,2}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: 0
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -52129,8 +52244,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
XBOXLO XBOXHI X
I / *: -2.000 2.000 0.0000
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: -2 to 6
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -52206,9 +52321,9 @@ go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle
! And, from Andrew with other reversed axes.
-yes? ppl cross 1
-yes? plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-yes? poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
+ppl cross 1
+plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
+poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
ppl cross 0
@@ -52376,12 +52491,10 @@ GO err600_if_comments_tab.jnl
! thrown off and we got an error about an invalid ENDIF
IF 0 THEN
- ENDIF
ENDIF
! Here there is a tab before the ! which throws off the parsing...
IF 0 THEN
- ENDIF
ENDIF
! err600_set_var_title.jnl
@@ -52533,6 +52646,7 @@ list ..dimnames
list ..varnames
VARIABLE : ..VARNAMES
FILENAME : levitus_climatology.cdf
+ X : 1
"TEMP"
! err600_nc_des_order.jnl
@@ -52754,7 +52868,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
@@ -52799,7 +52913,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
@@ -54275,6 +54389,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
LABWID(STR,HT)
LANCZOS(A,F1,F2,N)
LIST_VALUE_XML(tag,value,cdata_flag,outputfile)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
LSL_LOWPASS(A,cutoff_period,filter_span)
MINMAX(A)
MINUTES24(formatted time)
@@ -54287,6 +54402,7 @@ SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
@@ -54384,6 +54500,14 @@ EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
STR_MASK(STRING,MASK,--)
SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
SEPARATE(A,Rowsize,FixLongitudes)
+TIME_REFORMAT(A)
+FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
+CURV_TO_RECT_FSU(V,mapping)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SAMPLE_FAST_I_STR(S,Indices)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
ADD_9(A,B,C,D,E,F,G,H,I)
APPENDE(ENS,VAR)
AVET(A)
@@ -54394,6 +54518,7 @@ FFT_AMP(A)
FFTA_SAMPLE(A)
FFT_PHAS(A)
LENGTH_OF_STRINGS(--)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
MAXSTRLEN(A)
PASS_THRU(A)
PASS_THRU_STRING(A)
@@ -54541,11 +54666,11 @@ def axis/y=0.000001:0.000002/npoints=100 yax
let a = x[gx=xax] + y[gy=yax]
shade a; sh sym xax*; ; sh sym yax*
XAXIS_REVERSED = "0"
-XAXIS_MIN = "3.99494949E-06"
-XAXIS_MAX = "5.0050505E-06"
+XAXIS_MIN = "3.994949495E-06"
+XAXIS_MAX = "5.005050505E-06"
YAXIS_REVERSED = "0"
-YAXIS_MIN = "9.94949495E-07"
-YAXIS_MAX = "2.0050505E-06"
+YAXIS_MIN = "9.949494949E-07"
+YAXIS_MAX = "2.005050505E-06"
@@ -54573,27 +54698,27 @@ USE ocean_atlas_temp
SET VIEW upper
FILL temp[L=2,X=180:200,Y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
! See the larger region used by default for SHADE
SHADE temp[L=2,X=180:200,y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.00000"
-XAXIS_MAX = "200.0000"
-YAXIS_MIN = "30.000000"
-YAXIS_MAX = "44.00000"
+XAXIS_MIN = "180.000000"
+XAXIS_MAX = "200.000000"
+YAXIS_MIN = "30.0000000"
+YAXIS_MAX = "44.0000000"
! SHADE/TRIM trims the region as for a FILL plot
SET VIEW lower
SHADE/TRIM temp[L=2,X=180:200,y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
*** Running test: bn_mode_nlevels.jnl
! bn_mode_nlevels.jnl
@@ -55021,27 +55146,28 @@ list vnames
4 / 4:"TIME"
list lnames
VARIABLE : ..DIMNAMES[D=gt4d011]
- SUBSET : 20 points (X)
- 1 / 1:"PSXT"
- 2 / 2:"PSYT"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME1"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT"
+ 3 / 3:"PSYT"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME1"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
go bn_reset
cancel mode verify
@@ -55056,12 +55182,14 @@ let nat = temp.nattrs
list nat
VARIABLE : TEMP.NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
5.000
list (`temp,return=xaxis`)[d=2].nattrs
!-> list (XAX_LEV9421_380)[d=2].nattrs
- VARIABLE : (XAX_LEV9421_380)[d=ocean_atlas_temp].NATTRS
+ VARIABLE : (XAX_LEV9421_380)[D=ocean_atlas_temp].NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
4.000
use gt4d011
@@ -55096,14 +55224,17 @@ let a = temp.units
list/d=3 a
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list temp[d=3].units
- VARIABLE : TEMP[d=ocean_atlas_temp].UNITS
+ VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
FILENAME : gt4d011.cdf
+ X : 1
"Deg C"
list/d=3 temp.history
VARIABLE : TEMP.HISTORY
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"From ocean_atlas_monthly"
can data/all
@@ -55116,7 +55247,7 @@ use coads_climatology
! But this does
let a = sst[d=1].dimnames
list a[i=2]
- VARIABLE : SST[d=coads_climatology].DIMNAMES
+ VARIABLE : SST[D=coads_climatology].DIMNAMES
FILENAME : coads_climatology.cdf
X : 2
"COADSY"
@@ -55132,16 +55263,18 @@ use coads_climatology
define symbol ferret_plot_var sst[x=30:39,y=-90:90]
list ($ferret_plot_var).long_name
!-> list sst[x=30:39,y=-90:90].long_name
- VARIABLE : SST.LONG_NAME
+ VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
FILENAME : coads_climatology.cdf
+ X : 1
"SEA SURFACE TEMPERATURE"
use coads_climatology
define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
list ($ferret_plot_var).units
!-> list sst[d=1,x=30:35,y=-90:90].units
- VARIABLE : SST[d=coads_climatology].UNITS
+ VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
FILENAME : coads_climatology.cdf
+ X : 1
"Deg C"
use coads_climatology
@@ -55149,8 +55282,9 @@ use levitus_climatology
define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
list ($ferret_plot_var).history
!-> list sst[d=1,x=30:35,y=-90:90].history
- VARIABLE : SST[d=coads_climatology].HISTORY
+ VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
FILENAME : levitus_climatology.cdf
+ X : 1
"From coads_climatology"
go bn_reset
@@ -55166,13 +55300,15 @@ def sym yaxnam "(`temp[d=1],return=yaxis`)"
list ($xaxnam)[d=1].modulo
!-> list (XAXLEVITR1_160)[d=1].modulo
- VARIABLE : (XAXLEVITR1_160)[d=levitus_climatology].MODULO
+ VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
FILENAME : coads_climatology.cdf
+ X : 1
" "
list ($yaxnam).point_spacing[d=1]
!-> list (YAXLEVITR1_90).point_spacing[d=1]
VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
FILENAME : levitus_climatology.cdf
+ X : 1
"even"
@@ -55370,12 +55506,12 @@ GO err611_exit_if.jnl
! This only in v6.11 GFDL release bug
! Fixed in xeq_exit.F
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b !the following fails to say "hello"
go a
if 1 then
exit/script
@@ -55440,7 +55576,7 @@ ppl list labels
plot/x=56e:100e/y=10 sst[L=1]
plot/over/x=56e:100e/y=40 sst[L=1]
ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)
+
@ASLONGITUDE
@ASDeg C
@@ -55646,12 +55782,12 @@ GO err611_exit_if.jnl
! This only in v6.11 GFDL release bug
! Fixed in xeq_exit.F
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b !the following fails to say "hello"
go a
if 1 then
exit/script
@@ -58036,7 +58172,7 @@ sh command list
/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS/CLOBBER
/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT/XCHUNK
/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN/OUTTYPE
- /CURVILIN/SIGMA
+ /CURVILIN/LAYERZ
define axis/x=1:100:1/units=deg x100
define axis/t=1-jan-2000:31-jan-2000:1/units=days/t0=31-dec-1999 t31
let a = x[gx=x100] + t[gt=t31]
@@ -58512,10 +58648,10 @@ SH GRID am
normal F
*** Running test: bn_clock_syms.jnl
SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "0.028994"
+DELTA_CPU = "0.007998"
CLOCK_SECS = "0.003"
-CURRENT_DATE = "30-Oct-14"
-CURRENT_TIME = "11:17:55"
+CURRENT_DATE = " 6-Nov-15"
+CURRENT_TIME = "15:54:33"
! test special symbols DELTA_CPU, CLOCK_SECS
!
! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -58524,8 +58660,8 @@ CURRENT_TIME = "11:17:55"
use gt4d011
shade/k=1 temp[L=@ave]
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.062991"
-CLOCK_SECS = "1.171"
+DELTA_CPU = "0.032995"
+CLOCK_SECS = "0.18"
repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=1
@@ -58539,60 +58675,60 @@ repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=9
!-> REPEAT: K=10
let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.220966
+ !-> DEFINE VARIABLE ten_plots = 0.093985
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.001"
-CLOCK_SECS = "6.226"
+DELTA_CPU = "0"
+CLOCK_SECS = "1.038"
let sumclock = 0
let sumcpu = 0
sh sym CLOCK_SECS
-CLOCK_SECS = "6.226"
+CLOCK_SECS = "1.038"
repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);\
let sumcpu =`sumcpu + dt`)
!-> repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);let sumcpu =`sumcpu + dt`)
!-> REPEAT: K=1
- !-> DEFINE VARIABLE dt = 0.030995
- !-> DEFINE VARIABLE sumcpu =0.030995
+ !-> DEFINE VARIABLE dt = 0.010999
+ !-> DEFINE VARIABLE sumcpu =0.010999
!-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.027997
- !-> DEFINE VARIABLE sumcpu =0.058992
+ !-> DEFINE VARIABLE dt = 0.010998
+ !-> DEFINE VARIABLE sumcpu =0.021997
!-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.028995
- !-> DEFINE VARIABLE sumcpu =0.087987
+ !-> DEFINE VARIABLE dt = 0.011998
+ !-> DEFINE VARIABLE sumcpu =0.033995
!-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.020997
- !-> DEFINE VARIABLE sumcpu =0.108984
+ !-> DEFINE VARIABLE dt = 0.010999
+ !-> DEFINE VARIABLE sumcpu =0.044994
!-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.025996
- !-> DEFINE VARIABLE sumcpu =0.13498
+ !-> DEFINE VARIABLE dt = 0.011998
+ !-> DEFINE VARIABLE sumcpu =0.056992
!-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.023996
- !-> DEFINE VARIABLE sumcpu =0.158976
+ !-> DEFINE VARIABLE dt = 0.010998
+ !-> DEFINE VARIABLE sumcpu =0.06799
!-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.021997
- !-> DEFINE VARIABLE sumcpu =0.180973
+ !-> DEFINE VARIABLE dt = 0.010998
+ !-> DEFINE VARIABLE sumcpu =0.078988
!-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.019996
- !-> DEFINE VARIABLE sumcpu =0.200969
+ !-> DEFINE VARIABLE dt = 0.011999
+ !-> DEFINE VARIABLE sumcpu =0.090987
!-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.029996
- !-> DEFINE VARIABLE sumcpu =0.230965
+ !-> DEFINE VARIABLE dt = 0.010998
+ !-> DEFINE VARIABLE sumcpu =0.101985
!-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.020997
- !-> DEFINE VARIABLE sumcpu =0.251962
+ !-> DEFINE VARIABLE dt = 0.010998
+ !-> DEFINE VARIABLE sumcpu =0.112983
say `sumcpu`
- !-> MESSAGE/CONTINUE 0.251962
-0.251962
+ !-> MESSAGE/CONTINUE 0.112983
+0.112983
sh sym CLOCK_SECS
-CLOCK_SECS = "14.836"
+CLOCK_SECS = "1.885"
SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:17"
-CURRENT_DATE = "30-Oct-14"
-CURRENT_TIME = "11:18:10"
+SESSION_DATE = " 6-Nov-15"
+SESSION_TIME = "15:54"
+CURRENT_DATE = " 6-Nov-15"
+CURRENT_TIME = "15:54:35"
*** Running test: bn63_bug_fixes.jnl
! bn63_bug_fixes.jnl
! Fixes that go into v6.3 release
@@ -59402,8 +59538,8 @@ say `temp,return=isdepth`
use coads_climatology
say `sst,return=isdepth`
- !-> MESSAGE/CONTINUE NORMAL
-NORMAL
+ !-> MESSAGE/CONTINUE 0
+0
can data 2
@@ -60911,7 +61047,7 @@ N_OPEN_DSETS = "0"
! New default no-small tics for multi-decade plots
! See bug 670
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
+def axis/t="01-JAN-1860":"30-DEC-2300":1/edges/units="years"/cal="360d" simutaxis1
let tvar = t[gt=simutaxis1]*-1E+34
define view/x=0:1/y=0.000:0.125 v1
@@ -61301,7 +61437,7 @@ set var/title=deflate_x30_y30 sst
save/file=nc4_deflate4.nc/clobber/ncformat=4/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
! With /NCFORMAT=3 the other stuff is meaningless. Will see NOTEs
-yes? save/file=nc4_nodeflate3.nc/clobber/ncformat=3/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
+save/file=nc4_nodeflate3.nc/clobber/ncformat=3/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
! --------------------------
! Compare choices of chunking.
@@ -62417,7 +62553,7 @@ list contents
2 / 2:" e.g. yes? GO filename"
3 / 3:" "
4 / 4:" Use "GO/HELP filename" to read documentation in the file to be executed."
- 5 / 5:" *** NOTE: Axis is already regular: MYAXIS"
+ 5 / 5:" *** NOTE: Axis is already regular: MYAXIS"
6 / 6:" **ERROR: variable unknown or not in data set: GARBAGE"
7 / 7:"show grid garbage"
cancel var contents
@@ -62503,9 +62639,9 @@ list contents
VARIABLE : { SPAWN:"cat redirect_journal.txt" }
SUBSET : 47 points (X)
1 / 1:" ! NOAA/PMEL TMAP"
- 2 / 2:" ! FERRET v6.93 (beta)"
- 3 / 3:" ! Linux 2.6.32-504.el6.x86_64 64-bit - 10/30/14"
- 4 / 4:" ! 30-Oct-14 11:19 "
+ 2 / 2:" ! FERRET v6.951 (beta)"
+ 3 / 3:" ! Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/06/15"
+ 4 / 4:" ! 6-Nov-15 15:54 "
5 / 5:""
6 / 6:"! "
7 / 7:"!! --- 22. produce some output to stdout and stderr"
@@ -62581,20 +62717,21 @@ variable transforms e.g.SST[T=1-jan:15-mar at DDC]
@SBN binomial smoothed @SMN minimum smoothed
@SWL Welch smoothed @STD standard deviation
@SHN Hanning smoothed @WGT weights for avg,int
- @SPZ Parzen smoothed
+ @SPZ Parzen smoothed @SPX box smooth w/missing
regridding transforms e.g.SST[GX=x5deg at AVE]
code description code description
---- ----------- ---- -----------
- @LIN lin. interp. @MOD modulo ave
- @AVE box avgd @MODVAR modulo var
- @XACT exact match @MODNGD # gd mod pts
- @ASN index assn @MODNBD #bad mod pts
- @VAR variance @MODSUM modulo sum
- @MIN minimum @MODMIN modulo min
- @MAX maximum @MODMAX modulo max
- @SUM sum @NRST nearst coord
- @NGD # gd pts
+ @LIN lin. interp. @MODVAR modulo var
+ @AVE box avgd @MODNGD # gd mod pts
+ @XACT exact match @MODNBD #bad mod pts
+ @ASN index assn @MODSUM modulo sum
+ @VAR variance @MODMIN modulo min
+ @MIN minimum @MODMAX modulo max
+ @MAX maximum @NRST nearst coord
+ @SUM sum @BIN binning
+ @NGD # gd pts @NBIN #good in bin
+ @MOD modulo ave
auxiliary varible regridding transforms e.g.TEMP[GZ(depth)=zax at AVE]
code description code description
@@ -63592,8 +63729,7 @@ sh dat/att
. history CHAR 28 T FERRET V6.7 (beta) 25-Mar-11
Conventions CHAR 6 F CF-1.0
nco_input_file_nINT 1 F 1000
- nco_input_file_lCHAR 2048 F
- b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2. [...]
+ nco_input_file_lCHAR 2760 F b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.00 [...]
(LON273_289) DOUBLE long_name CHAR 9 T longitude
units CHAR 12 T degrees_east
@@ -63774,7 +63910,6 @@ sh dat
name title I J K L M N
TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
TEMP_MM TEMP - TEMPAVE 1:18 1:22 1:10 1:25 ... ...
- (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
*** Running test: bn_NaN_note.jnl
@@ -63857,12 +63992,12 @@ list/L=15:20 tax_month(t[gt=tvar],tvar), tax_yearfrac(t[gt=tvar],tvar)
Column 1: TAX_MONTH(T[GT=TVAR],TVAR)
Column 2: TAX_YEARFRAC(T[GT=TVAR],TVAR)
(C001,V002) (C001,V005)
-17-MAR / 15: 3.000 0.2082
-16-APR / 16: 4.000 0.2904
-17-MAY / 17: 5.000 0.3753
-16-JUN / 18: 6.000 0.4575
-17-JUL / 19: 7.000 0.5425
-16-AUG / 20: 8.000 0.6247
+17-MAR / 15: 3.000 0.2092
+16-APR / 16: 4.000 0.2926
+17-MAY / 17: 5.000 0.3760
+16-JUN / 18: 6.000 0.4594
+17-JUL / 19: 7.000 0.5428
+16-AUG / 20: 8.000 0.6262
! the following is an error for a modulo time axis
list/L=15:20 tax_year(t[gt=tvar],tvar)
list tax_units(tvar)
@@ -63907,7 +64042,6 @@ sh dat
name title I J K L M N
TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
TEMP_MM TEMP - TEMPAVE 1:18 1:22 1:10 1:25 ... ...
- (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
GO bn_reset
@@ -64299,8 +64433,8 @@ list/l=1:7 TAX_yearfrac(t[gt=var], var)
01-JAN-2010 00:00:10 / 3: 0.002740
01-JAN-2010 00:00:15 / 4: 0.002740
01-JAN-2010 00:00:20 / 5: 0.002740
- 01-JAN-2010 00:00:25 / 6: 0.002740
- 01-JAN-2010 00:00:30 / 7: 0.002740
+ 01-JAN-2010 00:00:25 / 6: 0.002741
+ 01-JAN-2010 00:00:30 / 7: 0.002741
! This example from Patrick B. Output of TAX_dayfrac repeats.
! We need to just return an error mesage. Cant represent 2.5 years
@@ -64939,40 +65073,40 @@ can mode ver
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.527
-randu2_randn2 0.005
-randu2_randn2 0.868
-randu2_randn2 0.513
-randu2_randn2 0.881
+randu2_randn2 0.633
+randu2_randn2 0.923
+randu2_randn2 0.140
+randu2_randn2 0.897
+randu2_randn2 0.548
VARIABLE : RANDU2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.138
-randu2_randn2 0.897
-randu2_randn2 0.700
-randu2_randn2 0.970
-randu2_randn2 0.978
+randu2_randn2 0.266
+randu2_randn2 0.933
+randu2_randn2 0.953
+randu2_randn2 0.187
+randu2_randn2 0.698
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.432
-randu2_randn2 0.519
-randu2_randn2 0.131
-randu2_randn2 0.769
-randu2_randn2 0.876
-randu2_randn2 0.810
+randu2_randn2 0.582
+randu2_randn2 0.110
+randu2_randn2 0.976
+randu2_randn2 0.181
+randu2_randn2 0.825
+randu2_randn2 0.167
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.678
-randu2_randn2 0.492
-randu2_randn2 0.405
-randu2_randn2 0.765
-randu2_randn2 0.736
-randu2_randn2 0.568
+randu2_randn2 0.861
+randu2_randn2 0.964
+randu2_randn2 0.576
+randu2_randn2 0.825
+randu2_randn2 0.362
+randu2_randn2 0.932
VARIABLE : RANDU2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -64997,40 +65131,40 @@ randu2_randn2 0.638
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.354
-randu2_randn2 1.401
-randu2_randn2 0.440
-randu2_randn2 0.430
-randu2_randn2 -1.294
+randu2_randn2 -0.480
+randu2_randn2 -0.007
+randu2_randn2 0.572
+randu2_randn2 -0.015
+randu2_randn2 2.431
VARIABLE : RANDN2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.302
-randu2_randn2 -0.063
-randu2_randn2 -0.794
-randu2_randn2 0.971
-randu2_randn2 -2.604
+randu2_randn2 0.182
+randu2_randn2 -0.903
+randu2_randn2 -0.379
+randu2_randn2 0.360
+randu2_randn2 0.141
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.810
-randu2_randn2 0.335
-randu2_randn2 -0.531
-randu2_randn2 -0.837
-randu2_randn2 -0.772
-randu2_randn2 -1.977
+randu2_randn2 -0.007
+randu2_randn2 -0.438
+randu2_randn2 0.848
+randu2_randn2 0.722
+randu2_randn2 1.096
+randu2_randn2 1.026
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 -1.337
-randu2_randn2 0.783
-randu2_randn2 1.666
-randu2_randn2 -0.327
-randu2_randn2 1.031
-randu2_randn2 1.036
+randu2_randn2 0.803
+randu2_randn2 0.446
+randu2_randn2 0.647
+randu2_randn2 0.836
+randu2_randn2 -0.392
+randu2_randn2 1.482
VARIABLE : RANDN2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -65055,14 +65189,14 @@ randu2_randn2 -1.279
Column 1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
Column 2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
Column 3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2 1.220 1.726 1.165
-randu2_randn2 1.726 1.220 1.165
-randu2_randn2 1.165 1.165 0.240
-randu2_randn2 -0.268 -0.268 0.247
-randu2_randn2 -0.608 -0.585 0.247
-randu2_randn2 -0.585 -0.585 0.247
-randu2_randn2 0.240 0.240 0.247
-randu2_randn2 0.247 0.247 0.247
+randu2_randn2 1.110 1.411 0.973
+randu2_randn2 1.411 1.110 0.973
+randu2_randn2 0.973 0.973 0.252
+randu2_randn2 -0.331 -0.331 0.824
+randu2_randn2 -0.644 -0.384 0.697
+randu2_randn2 -0.384 -0.384 0.697
+randu2_randn2 0.252 0.252 0.697
+randu2_randn2 0.824 0.697 0.697
*** Running test: bn_axis_cf.jnl
! Ticket 1792: Write axes with CF-compliant units
! and with standard name attributes for geophysical attrs.
@@ -66658,7 +66792,7 @@ LIST v[@ypt]
LIST v[@ept]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 by 3 points (X-Y-F)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
---- N:1 F: 1
@@ -66676,7 +66810,7 @@ LIST v[@ept]
LIST v[@fpt]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 by 3 points (X-Y-E)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
---- M:1 E: 1
@@ -66696,8 +66830,8 @@ LIST v[@fpt]
LIST v[@ept, at fpt] !XY
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-Y)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -66707,7 +66841,7 @@ LIST v[@ypt, at fpt] !XE
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-E)
Y : 1.05 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -66717,7 +66851,7 @@ LIST v[@ypt, at ept] !XF
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-F)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -66727,7 +66861,7 @@ LIST v[@xpt, at fpt] !YE
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (Y-E)
X : 1.5 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1122.00 1132.00
@@ -66737,7 +66871,7 @@ LIST v[@xpt, at ept] !YF
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (Y-F)
X : 1.5 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1122.00 1132.00
@@ -66760,7 +66894,7 @@ LIST/ORDER=F v[@xpt, at ypt, at ept] ! F
SUBSET : 3 points (F)
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1112.50 2112.50 3112.50
@@ -66769,7 +66903,7 @@ LIST/ORDER=E v[@xpt, at ypt, at fpt] ! E
SUBSET : 3 points (E)
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1212.50 1312.50
@@ -66777,8 +66911,8 @@ LIST/ORDER=Y v[@xpt, at ept, at fpt] ! Y
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 points (Y)
X : 1.5 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1122.50 1132.50
@@ -66786,8 +66920,8 @@ LIST/ORDER=X v[@ypt, at ept, at fpt] ! X
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 points (X)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1113.50 1114.50
@@ -66797,8 +66931,8 @@ LIST v[@xpt, at ypt, at ept, at fpt]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1113.00
*** Running test: bn_regrid_6d.jnl
! bn_regrid_6d.jnl
@@ -66868,7 +67002,7 @@ list veven
SUBSET : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
4 6 8
2 3 4
- ---- N:2 F: 05-JAN-1980 00:00:00
+ ---- N:2 F: 1980
---- M:2 E: 4
4 / 2: 2222. 3222. 4222.
6 / 3: 2322. 3322. 4322.
@@ -66881,7 +67015,7 @@ list veven
4 / 2: 2242. 3242. 4242.
6 / 3: 2342. 3342. 4342.
8 / 4: 2442. 3442. 4442.
- ---- N:3 F: 07-JAN-1980 00:00:00
+ ---- N:3 F: 1980
---- M:2 E: 4
4 / 2: 2223. 3223. 4223.
6 / 3: 2323. 3323. 4323.
@@ -66894,7 +67028,7 @@ list veven
4 / 2: 2243. 3243. 4243.
6 / 3: 2343. 3343. 4343.
8 / 4: 2443. 3443. 4443.
- ---- N:4 F: 09-JAN-1980 00:00:00
+ ---- N:4 F: 1980
---- M:2 E: 4
4 / 2: 2224. 3224. 4224.
6 / 3: 2324. 3324. 4324.
@@ -66912,7 +67046,7 @@ list v1234
SUBSET : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
5 7 9
3 4 5
- ---- N:3 F: 06-JAN-1980 00:00:00
+ ---- N:3 F: 1980
---- M:3 E: 5
5 / 3: 2778. 3778. 4778.
7 / 4: 2878. 3878. 4878.
@@ -66925,7 +67059,7 @@ list v1234
5 / 3: 2798. 3798. 4798.
7 / 4: 2898. 3898. 4898.
9 / 5: 2998. 3998. 4998.
- ---- N:4 F: 08-JAN-1980 00:00:00
+ ---- N:4 F: 1980
---- M:3 E: 5
5 / 3: 2779. 3779. 4779.
7 / 4: 2879. 3879. 4879.
@@ -66938,7 +67072,7 @@ list v1234
5 / 3: 2799. 3799. 4799.
7 / 4: 2899. 3899. 4899.
9 / 5: 2999. 3999. 4999.
- ---- N:5 F: 10-JAN-1980 00:00:00
+ ---- N:5 F: 1980
---- M:3 E: 5
5 / 3: 2780. 3780. 4780.
7 / 4: 2880. 3880. 4880.
@@ -66958,8 +67092,8 @@ stat veven
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -66982,8 +67116,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -66998,8 +67132,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67015,8 +67149,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67031,8 +67165,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67048,8 +67182,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67064,8 +67198,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67081,8 +67215,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67097,8 +67231,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67114,8 +67248,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67130,8 +67264,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67147,8 +67281,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67163,8 +67297,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67180,8 +67314,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67196,8 +67330,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67213,8 +67347,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67229,8 +67363,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67246,8 +67380,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67262,8 +67396,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67279,8 +67413,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67295,8 +67429,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67312,8 +67446,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67328,8 +67462,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67345,8 +67479,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67361,8 +67495,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67378,8 +67512,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67394,8 +67528,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67411,8 +67545,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67427,8 +67561,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67444,8 +67578,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67460,8 +67594,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67485,8 +67619,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67501,8 +67635,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67518,8 +67652,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67534,8 +67668,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67551,8 +67685,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67567,8 +67701,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67584,8 +67718,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67600,8 +67734,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67617,8 +67751,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67633,8 +67767,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67650,8 +67784,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67666,8 +67800,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67683,8 +67817,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67699,8 +67833,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67716,8 +67850,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67732,8 +67866,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67749,8 +67883,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67765,8 +67899,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67782,8 +67916,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67798,8 +67932,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67815,8 +67949,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67831,8 +67965,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67848,8 +67982,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67864,8 +67998,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67881,8 +68015,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67897,8 +68031,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67914,8 +68048,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67930,8 +68064,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67947,8 +68081,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67963,8 +68097,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -69025,7 +69159,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
DEPTH (m): 5
TIME: 21-JAN-1982 16:00
E: 1 to 2
- FORECAST: 23-JAN-1982 00:00:00 to 24-JAN-1982 00:0
+ FORECAST: 1982 to 1982
DATA SET: ./gtsa056_1_ef.nc
Total # of data points: 120 (5*6*1*1*2*2)
@@ -69054,7 +69188,7 @@ LIST temp[g=g5day at ave]
TIME : 21-JAN-1982 16:00
129.5W 128.5W 127.5W 126.5W 125.5W
101 102 103 104 105
- ---- N:1 F: 23-JAN-1982 00:00:00
+ ---- N:1 F: 1982
---- M:1 E: 1
1.5N / 46: 32.35 32.37 32.56 32.97 33.45
1.17N / 45: 32.17 32.19 32.33 32.69 33.14
@@ -69069,7 +69203,7 @@ LIST temp[g=g5day at ave]
0.5N / 43: 37.93 37.90 37.91 38.09 38.43
0.17N / 42: 37.89 37.84 37.79 37.86 38.10
0.17S / 41: 37.95 37.86 37.77 37.74 37.87
- ---- N:2 F: 23-JAN-1982 20:00:00
+ ---- N:2 F: 1982
---- M:1 E: 1
1.5N / 46: 37.75 37.77 37.96 38.37 38.85
1.17N / 45: 37.57 37.59 37.73 38.09 38.54
@@ -69100,7 +69234,7 @@ LIST temp[g=g5day]
TIME : 21-JAN-1982 16:00
129.5W 128.5W 127.5W 126.5W 125.5W
101 102 103 104 105
- ---- N:1 F: 23-JAN-1982 00:00:00
+ ---- N:1 F: 1982
---- M:1 E: 1
1.5N / 46: 34.35 34.37 34.56 34.97 35.45
1.17N / 45: 34.17 34.19 34.33 34.69 35.14
@@ -69115,7 +69249,7 @@ LIST temp[g=g5day]
0.5N / 43: 39.93 39.90 39.91 40.09 40.43
0.17N / 42: 39.89 39.84 39.79 39.86 40.10
0.17S / 41: 39.95 39.86 39.77 39.74 39.87
- ---- N:2 F: 23-JAN-1982 20:00:00
+ ---- N:2 F: 1982
---- M:1 E: 1
1.5N / 46: 36.01 36.04 36.23 36.64 37.12
1.17N / 45: 35.84 35.85 36.00 36.36 36.80
@@ -69154,7 +69288,7 @@ plot temp
-DELETE TEMP M: 3 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 3 3 M: 1 2 N: 1 2
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME2 EAXIS FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
strip --> EX#1[Y=0 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
@@ -69163,7 +69297,7 @@ plot temp
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[Y=0 at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- doing --> TEMP[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
setting up plot
PPL plot 1 complete
plot/over temp[g=g5day]
@@ -69230,14 +69364,14 @@ plot temp
-DELETE TEMP M: 10 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME2 EAXIS FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 7 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
reading TEMP M: 10 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- doing --> TEMP[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
setting up plot
PPL plot 5 complete
plot/over temp[g=g5day]
@@ -69755,7 +69889,7 @@ show grid
set mode/last diag
*** Running test: bn_aggregate_e.jnl
! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
+! using the DEFINE DATA/AGGREGATE/E command
! Datasets share sst, but only ens1 has airt.
set mode diag
@@ -69766,7 +69900,7 @@ define data/agg/title fourfiles = ens1, ens3, ens2, ens4
! The grid of SST is known.
show data fourfiles
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -69817,7 +69951,7 @@ define data/agg fourfiles = ens1, ens3, ens2, ens4
allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME NORMAL NORMAL
show data fourfiles
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
AIRT AIR TEMPERATURE 1:10 1:9 ... 1:12 1:4 ...
@@ -69923,7 +70057,7 @@ define data/agg windy = 1,2
! The grid of the aggregate variables with LET/D is known.
show data windy
currently SET data sets:
- 3> WINDY (default) Ferret-defined Ensemble dataset
+ 3> WINDY (default) Ferret-defined Ensemble aggregation
name title I J K L M N
UWND ZONAL WIND 1:30 1:30 ... 1:12 1:2 ...
VWND MERIDIONAL WIND 1:30 1:30 ... 1:12 1:2 ...
@@ -69956,7 +70090,7 @@ define data/agg windy = 2,1
! The grid of the aggregate variables with LET/D is known.
show data windy
currently SET data sets:
- 3> WINDY (default) Ferret-defined Ensemble dataset
+ 3> WINDY (default) Ferret-defined Ensemble aggregation
name title I J K L M N
UWND ZONAL WIND 1:30 1:30 ... 1:12 1:2 ...
VWND MERIDIONAL WIND 1:30 1:30 ... 1:12 1:2 ...
@@ -70003,7 +70137,8 @@ sh command define
DEFINE SYMBOL
DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
sh command show
SHOW/ALL
SHOW WINDOW/ALL
@@ -70015,7 +70150,7 @@ sh command show
/HIDDEN
SHOW MODE/ALL
SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
/CURVILIN
SHOW COMMANDS/ALL
SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -70036,7 +70171,7 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
! should just show the ensemble set
sh dat
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -70075,7 +70210,7 @@ sh dat/hidden
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 ... ...
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -70118,7 +70253,7 @@ sh dat
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 ... ...
- 5> MY_ENS (default) Ferret-defined Ensemble dataset
+ 5> MY_ENS (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:2 ...
@@ -70147,7 +70282,7 @@ ensemble/HIDE/title="uvars in dset 2" my_ens = 1,2,3,4
! members hidden, showing only ensemble.
sh dat
currently SET data sets:
- 5> MY_ENS (default) Ferret-defined Ensemble dataset
+ 5> MY_ENS (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -70182,15 +70317,15 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
! Shows all the ensembles
sh dat
currently SET data sets:
- 5> FOURFILES Ferret-defined Ensemble dataset
+ 5> FOURFILES Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
- 6> SOME Ferret-defined Ensemble dataset
+ 6> SOME Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:2 ...
- 7> MORE (default) Ferret-defined Ensemble dataset
+ 7> MORE (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:3 ...
@@ -70730,7 +70865,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -70785,7 +70920,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -70829,7 +70964,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -70873,7 +71008,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -70910,7 +71045,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -70948,7 +71083,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71015,7 +71150,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71064,7 +71199,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71125,7 +71260,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71166,7 +71301,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71207,7 +71342,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71248,7 +71383,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71286,7 +71421,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71514,7 +71649,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) FLOAT units CHAR 12 T degrees_east
@@ -71552,7 +71687,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) FLOAT units CHAR 12 T degrees_east
@@ -71599,7 +71734,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71643,7 +71778,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -71668,7 +71803,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) INT units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -71693,7 +71828,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -71899,11 +72034,11 @@ GO err684_tax_fcns
list/L=3:7 tax_yearfrac(var, var)
VARIABLE : TAX_YEARFRAC(VAR, VAR)
SUBSET : 5 points (TIME)
- 08-OCT-2006 22 / 3: 0.7699
- 13-OCT-2006 23 / 4: 0.7836
- 18-OCT-2006 22 / 5: 0.7973
- 23-OCT-2006 21 / 6: 0.8110
- 28-OCT-2006 22 / 7: 0.8247
+ 08-OCT-2006 22 / 3: 0.7725
+ 13-OCT-2006 23 / 4: 0.7862
+ 18-OCT-2006 22 / 5: 0.7998
+ 23-OCT-2006 21 / 6: 0.8134
+ 28-OCT-2006 22 / 7: 0.8272
list/L=3:7 tax_year(var, var)
VARIABLE : TAX_YEAR(VAR, VAR)
@@ -71948,8 +72083,8 @@ GO err684_line_plot_zero
plot {0,0,0}
sh sym yaxis*
-YAXIS_MIN = "-1.0000000"
-YAXIS_MAX = "1.000000"
+YAXIS_MIN = "-1.00000000"
+YAXIS_MAX = "1.00000000"
GO bn_reset
@@ -72118,11 +72253,11 @@ variables:
A:missing_value = -1.e+34 ;
A:_FillValue = -1.e+34 ;
A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- A:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ A:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
A:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -72147,11 +72282,11 @@ variables:
E410:missing_value = -1.e+34 ;
E410:_FillValue = -1.e+34 ;
E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -72166,7 +72301,7 @@ save/clob/file=aa.nc/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
use aa.nc
list e410
VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
- X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+ X=20E:20E(380)
FILENAME : aa.nc
SUBSET : 4 by 3 points (LATITUDE-TIME)
81S 79S 77S 75S
@@ -72198,11 +72333,11 @@ variables:
E410:missing_value = -1.e+34f ;
E410:_FillValue = -1.e+34f ;
E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -72215,7 +72350,7 @@ save/clob/file=aa.nc/outtype=float/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
use aa.nc
list e410
VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
- X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+ X=20E:20E(380)
FILENAME : aa.nc
SUBSET : 4 by 3 points (LATITUDE-TIME)
81S 79S 77S 75S
@@ -72379,8 +72514,12 @@ let/title="tic labels on dependent axis" var = {\
1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
+cancel mode meta
+! rename the metafile. Else we get weird contents in axticlabel.plt
+! once the whole benchmark suite has finished. (why?)
+set mode meta metafile.plt
+cancel mode meta
GO bn_reset
cancel mode verify
@@ -72764,10 +72903,16 @@ variables:
CYCLE_ORIG:_FillValue = -1.e+34 ;
CYCLE_ORIG:long_name = "CYCLE[GZ=ZAXIS_ORIG at ASN]" ;
CYCLE_ORIG:history = "From z2" ;
+ double DDAT_ORIG(ZAXIS_ORIG) ;
+ DDAT_ORIG:missing_value = -1.e+34 ;
+ DDAT_ORIG:_FillValue = -1.e+34 ;
+ DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "Fri Nov 6 15:55:01 2015: ncks -h -A -h z1.nc append_to_this.nc\n",
+ "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
+ :NCO = "4.4.6" ;
}
*** Running test: bn_nobounds.jnl
! bn_nobounds.jnl
@@ -72796,7 +72941,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -72827,7 +72972,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -72889,7 +73034,7 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -72917,7 +73062,7 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -73070,6 +73215,7 @@ set mode/last ignore
! bn_tree.jnl
! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
+! 12/14 update to test regridding output using bn_vtree_regrid.jnl
CANCEL DATA/ALL
! pure abstract variable -- no dataset
@@ -73150,16 +73296,16 @@ vtree=all a
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
vtree=all /d=1 a
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
vtree=all /d=2 a
in default dataset other_file_vars
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
FV1
********************************
@@ -73167,12 +73313,12 @@ vtree=all /d=2 a
go bn_vtree.sub noexist
/TREE=ALL
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
the problem is UNKNOWN VARIABLE: NOEXIST
************************
@@ -73180,12 +73326,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST
go bn_vtree.sub v[d=noexist]
/TREE=ALL
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
/TREE=USER
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
/TREE=FILE
- V[D=NOEXIST] (unknown dataset)
+ *unknown dataset: V[D=NOEXIST]
the problem is UNKNOWN DATASET: V[D=NOEXIST]
************************
@@ -73193,12 +73339,12 @@ the problem is UNKNOWN DATASET: V[D=NOEXIST]
go bn_vtree.sub novar[d=nodset]
/TREE=ALL
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
/TREE=USER
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
/TREE=FILE
- NOVAR[D=NODSET] (unknown dataset)
+ *unknown dataset: NOVAR[D=NODSET]
the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
************************
@@ -73207,13 +73353,13 @@ go bn_vtree.sub b
/TREE=ALL
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
the problem is UNKNOWN VARIABLE: NOEXIST
************************
@@ -73239,11 +73385,13 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
/TREE=FILE
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
@@ -73259,11 +73407,13 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
/TREE=FILE
FV1[d=my_file_vars]
@@ -73278,12 +73428,14 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
/TREE=FILE
FV1[d=my_file_vars]
@@ -73305,7 +73457,7 @@ go bn_vtree.sub fv1z
FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
NOEXIST (unknown auxiliary variable)
/TREE=FILE
- NOEXIST (unknown auxiliary variable)
+ *unknown auxiliary variable: NOEXIST
FVX[d=my_file_vars]
the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
************************
@@ -73316,17 +73468,19 @@ go bn_vtree.sub fv1z
/TREE=ALL
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
/TREE=FILE
- NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
@@ -73338,17 +73492,19 @@ go bn_vtree.sub fv1z
/TREE=ALL
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
/TREE=FILE
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
- UNKNOWN_AUX (unknown auxiliary variable)
+ *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+ *unknown auxiliary variable: UNKNOWN_AUX
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
************************
@@ -73359,9 +73515,9 @@ go bn_vtree.sub fv1
/TREE=ALL
in default dataset MY_AGG
FV1 (aggregate variable)
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- FV1[d=another_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
/TREE=USER
in default dataset MY_AGG
FV1 (aggregate variable)
@@ -73381,16 +73537,16 @@ go bn_vtree.sub fvx
/TREE=ALL
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=my_file_var]
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=other_file_var]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=another_file_var]
+ FVX[d=my_file_vars]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_vars]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_vars]
/TREE=USER
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
/TREE=FILE
FVX[d=my_file_vars]
@@ -73409,30 +73565,30 @@ go bn_vtree.sub p0 ! recursion
/TREE=ALL
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S3 (unknown variable)
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S3
the problem is ILLEGAL RECURSIVE VARIABLES: P1
************************
let p3 = s1 + S3
@@ -73440,31 +73596,31 @@ go bn_vtree.sub p0 ! ok
/TREE=ALL
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S1 (unknown variable)
- S3 (unknown variable)
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S1
+ *unknown variable: S3
the problem is UNKNOWN VARIABLE: S1
************************
@@ -73486,8 +73642,8 @@ show var/tree/d=my_uvar_agg uv
in default dataset MY_UVAR_AGG
UV = FVX + FVX + FVX
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
***************************
! suppressing duplicates elsewhere in the family tree ("defined above")
@@ -73502,8 +73658,8 @@ go bn_vtree.sub v2
V2 = V1 + B + A + A
V1 = A + B + B^2
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
B = C
C = 1
B = (defined above)
@@ -73527,8 +73683,8 @@ go bn_vtree.sub v3
in default dataset MY_UVAR_AGG
V3 = A + V1 + B + A + A
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
V1 = A + B + B^2
A = (defined above)
B = C
@@ -73562,26 +73718,26 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
- FVX[d=my_file_var]
+ FVX[d=my_file_vars]
/TREE=USER
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
/TREE=FILE
- F (unknown variable)
+ *unknown variable: F
FV1[d=my_file_vars]
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: F
************************
@@ -73596,14 +73752,16 @@ the problem is UNKNOWN VARIABLE: F
/TREE=ALL
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
/TREE=USER
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
/TREE=FILE
- A[G=NOEXIST] (unknown grid)
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+ *unknown grid: NOEXIST
+the problem is UNKNOWN GRID: NOEXIST
************************
list b
@@ -73619,7 +73777,7 @@ the problem is UNKNOWN GRID: A[G=NOEXIST]
C = A[X=45S]
A[X=45S] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[X=45S] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[X=45S]
the problem is ERROR IN EXPRESSION: A[X=45S]
************************
list c
@@ -73636,7 +73794,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
D = A[I=1,,J=2]
A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[I=1,,J=2]
the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
************************
list d
@@ -73653,7 +73811,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
E = A[P=1]
A[P=1] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[P=1] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[P=1]
the problem is ERROR IN EXPRESSION: A[P=1]
************************
list e
@@ -73685,6 +73843,528 @@ let a = ..history[d=1]
show var/tree a
in default dataset MY_UVAR_AGG
A = ..HISTORY[D=1]
+
+! *****
+! 12/14 addition to test regridding dependencies
+go bn_vtree_regrid
+! bn_vtree_regrid.jnl
+! exercise 12/14 enhancements to display regrid target on a separate line
+! updated 1/26/15 to exercise multiple regrid target outputs
+! updated 2/23/15 to report target of regrid even when aux regridding occurs
+
+! case 1: target grid known, regridded variable known
+let myvar = 1 ! var to be regridded is known
+let gvar = x[x=1:5] ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR = X[X=1:5]
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 2: target grid known, regridded variable unknown
+canc var/all
+! myvar unknown
+let gvar = x[x=1:5] ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR[G=GVAR] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR = X[X=1:5]
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR[G=GVAR] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! **************************************
+! same tests but now with a dataset named with the target grid
+use coads_climatology
+use levitus_climatology ! default to d=2
+
+! case 1: target grid known, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 2: target grid known, regridded variable unknown
+canc var/all
+! myvar unknown
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+ MYVAR[G=SST[D=1]] ?? <== UNKNOWN VARIABLE ******
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3a: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3b: target grid unknown cuz of dataset, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=sst[d=bad_dset]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=BAD_DSET]] + UNVAR + KVAR
+ MYVAR[G=SST[D=BAD_DSET]] ?? <== UNKNOWN DATASET ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+ MYVAR[G=GVAR[D=1]] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! *******************
+! file variable listing, only
+canc var/all
+let myvar = 1
+let fvar = airt[d=1]
+let kvar = 1 ! known var
+* /TREE=FILE with know regrid target
+let a = myvar[g=sst[d=1]] + fvar + kvar
+sho var/tree=file a
+ *unknown grid: SST[D=1]
+ *unknown variable: AIRT[D=1]
+
+* /TREE=FILE with unknow regrid target
+let a = myvar[g=unknown] + fvar + kvar
+sho var/tree=file a
+ *unknown grid: UNKNOWN
+ *unknown variable: AIRT[D=1]
+
+! ********************
+! regridding to multiple targets
+
+define axis/x=140e:160e:1 x1
+define axis/y=20s:20n:1 y1
+LET myvar = X[gx=x1] + Y[gy=y1]
+
+define axis/y=5s:5n:.5 yp5
+
+go bn_vtree.sub myvar[g=temp]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp] is ready and AVAILABLE
+************************
+
+! second target *is* a named variable
+go bn_vtree.sub myvar[g=temp,gy=sst[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=sst[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gy=sst[d=1],gx=temp] ! reverse order, only
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: SST[D=1]
+ regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+
+! second target is not a named variable
+go bn_vtree.sub myvar[g=temp,gy=yp5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[gx=temp,gy=yp5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[gx=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=temp,y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,y=5s:5n:.5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=sst[d=1],y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+
+! multiple targets, including unknown variables
+go bn_vtree.sub myvar[g=temp,gy=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,gy=temp]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+ regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=temp,g=mybad[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=1],gy=mybad2]! distinct unknown targets
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD2 ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD2 ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+ *unknown grid: MYBAD2
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]] ! dup known targets
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad] ! dup unknown suppressed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=2] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=2] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=2]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD[D=2]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy='MYBAD'] ! dup unknown missed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to 'MYBAD' ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to 'MYBAD' ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+ *unknown grid: 'MYBAD'
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=myvar,gy=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=yp5,g=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+
+! 2/15 additions -- auxiliary variable regridding
+USE levitus_climatology
+LET myzvar = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = myzvar
+SET REGION/i=101:102/j=41:42
+
+LET/D=levitus_climatology depth = z[g=temp]+ 0*temp[k=1]
+
+! valid aux var and target variable
+LET tempz = temp[gz(depth)=myzvar]
+vtree=all tempz
+ in default dataset levitus_climatology
+ TEMPZ = TEMP[GZ(DEPTH)=MYZVAR]
+ TEMP
+ regrid to MYZVAR = Z[Z=100:500:100]
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! valid aux var. Target is axis name
+LET tempz1 = temp[gz(depth)=zax]
+vtree=all tempz1
+ in default dataset levitus_climatology
+ TEMPZ1 = TEMP[GZ(DEPTH)=ZAX]
+ TEMP
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! valid aux var. Target is unknown
+LET tempz2 = temp[gz(depth)=unknown_target]
+vtree=all tempz2
+ in default dataset levitus_climatology
+ TEMPZ2 = TEMP[GZ(DEPTH)=UNKNOWN_TARGET]
+ TEMP
+ regrid to UNKNOWN_TARGET ?? <== UNKNOWN GRID ******
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! --- unknown aux var, valid target ---
+! When an unknown auxiliary variable error occurs it suppresses
+! the reporting of both the variable being regridded and the regrid target
+! The underlying issue is that GET_VAR_CONTEXT (called from is_dependencies.F)
+! can return only a single error status
+! If it contains ferr_unknown_auxvar, then the success or failure of other
+! parts of the context processing are unknown.
+! One could kludge the code to find a way around this, but the violence
+! required is not justified in order to fix this small loss in error reporting.
+LET tempz3 = temp[gz(unknown_aux)=myzvar]
+vtree=all tempz3
+ in default dataset levitus_climatology
+ TEMPZ3 = TEMP[GZ(UNKNOWN_AUX)=MYZVAR]
+ UNKNOWN_AUX (unknown auxiliary variable)
+
+! a syntax error leads to a similar behavior
+LET tempz3a = temp[gz(unknown_aux)=myzvar,SYNTAX_ERROR]
+vtree=all tempz3a
+ in default dataset levitus_climatology
+ TEMPZ3A = TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]
+ TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR] *** WARNING: ERROR IN DEFINITION
+
+! similar behavior here: the unknown_target does not get reported
+LET tempz4 = temp[gz(unknown_aux)=unknown_target]
+vtree=all tempz4
+ in default dataset levitus_climatology
+ TEMPZ4 = TEMP[GZ(UNKNOWN_AUX)=UNKNOWN_TARGET]
+ UNKNOWN_AUX (unknown auxiliary variable)
+
+
*** Running test: bn686_bug_fixes.jnl
! bn686_bug_fixes
! test various fixes that went into version 6.86
@@ -74078,7 +74758,7 @@ variables:
LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74101,7 +74781,7 @@ variables:
STRVAR:long_name = "mystrings" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74245,7 +74925,7 @@ shade/n=3/L=6 bath_tf
! If so its label will show Julian too.
sh sym lab($labnum_f)
!-> sh sym lab2
-LAB2 = "FORECAST : 03-JAN-2000 00:00:00 JULIAN"
+LAB2 = "FORECAST : 2000 JULIAN"
GO bn_reset
cancel mode verify
@@ -74321,7 +75001,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74351,7 +75031,7 @@ variables:
A:history = "From a" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74372,7 +75052,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74393,7 +75073,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74415,7 +75095,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74586,7 +75266,7 @@ show dat
! another error, new name is a user-var
-yes? set var/name=diff w
+set var/name=diff w
SET MODE/LAST ignore
*** Running test: bn_bad_axis_bounds.jnl
@@ -74638,7 +75318,7 @@ GO bn_short.sub tvar ave
! short script extracted from bn_negative_t.sub for bn_enter_exit_GO
LIST/nohead/norow $1[t=-5:9@$2] ! neg/pos t endpoints
- !-> LIST/nohead/norow tvar[t=-5:9 at ave] ! neg/pos t endpoints
+ !-> LIST/nohead/norow tvar[t=-5:9 at ave]
2.000
! Exit_GO
@@ -74727,11 +75407,11 @@ list/y=3/l=1 temp[x=@std]
list/y=3/l=1 temp[z=@std,x=@std]
VARIABLE : TEMPERATURE (deg. C)
FILENAME : gt4d011.cdf
- LONGITUDE: 140W to 122W (standard deviation)
+ LONGITUDE: 140W to 122W (XZ stddev)
LATITUDE : 2.8N
- DEPTH (m): 0 to 100 (standard deviation)
+ DEPTH (m): 0 to 100 (XZ stddev)
TIME : 17-AUG-1982 12:00
- 0.1895
+ 0.9487
*** Running test: bn_set_axis_name.jnl
! bn_set_axis_name.jnl
! ticket 2160 Implementing new qualifier SET AXIS/NAME
@@ -74824,7 +75504,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -74840,7 +75520,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -74856,7 +75536,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V6.93 30-Oct-14
+ . history CHAR 24 T FERRET V6.951 6-Nov-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -75686,10 +76366,12 @@ GO bn_vtree.sub c
/TREE=ALL
C = B2[GT=A]
B2 = A
+ regrid to A = T[GT=1:2:1]
A = T[GT=1:2:1]
/TREE=USER
C = B2[GT=A]
B2 = A
+ regrid to A = T[GT=1:2:1]
A = T[GT=1:2:1]
/TREE=FILE
c is ready and AVAILABLE
@@ -75727,6 +76409,8 @@ cancel mode verify
GO err69_isready_bugs
! err69_isready_bugs.jnl
! Tickets 2201 and 2215
+! updated error script 12/14 *sh* - to ensure that bench log file
+! has verification of this problem and its fix, as well as the bench error file
! ticket 2201: isready operation meant we couldn't cancel the second axis
@@ -75748,6 +76432,15 @@ can axis xax_isready_1
can var b
can axis xax_isready_2
+! 12/14 additions:
+show grid/dynamic ! look for "err: grid over-allocated" messages
+No dynamic grids
+ no implicit grids
+No dynamic axes
+ no implicit axes
+show axis xax_isready_1, xax_isready_2 ! did they both get canceled?
+ name axis # pts start end
+
! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
let a = x[gx=1:3:1]
@@ -75761,6 +76454,19 @@ say `f,r=isready`
say `f,r=unit`
!-> MESSAGE/CONTINUE m
m
+
+GO bn_reset
+cancel mode verify
+GO err691_substring_arg
+! err693_substring_arg
+! ACM 12/10/2014
+! ticket 2210. Argument checking was not done for the SUBSTRING function
+
+set mode ignore
+list substring("hello",1,-2)
+list substring("hello",1,-3)
+
+set mode/last ignore
*** Running test: bn_append_dsg.jnl
! bn_append_dsg.jnl
!From SOCAT 3: appending to a dsg file where the new variable is on the obs
@@ -75836,7 +76542,7 @@ variables:
:geospatial_lat_max = 29.07 ;
:time_coverage_start = "2006-06-10T23:48:00Z" ;
:time_converage_end = "2006-06-11T00:12:00Z" ;
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
}
*** Running test: bn_global_atts.jnl
! NOAA/PMEL TMAP
@@ -75926,7 +76632,7 @@ variables:
LON360:history = "added to test_save_dsg.nc" ;
// global attributes:
- :history = "CruiseDsgNcFile 1.0FERRET V6.93 30-Oct-14" ;
+ :history = "CruiseDsgNcFile 1.0FERRET V6.951 6-Nov-15" ;
:featureType = "Trajectory" ;
:Conventions = "Some other conventionsCF-1.6" ;
:geospatial_lon_min = -92.77 ;
@@ -75953,7 +76659,7 @@ can dat/all; use anew_global.nc
sh att .
attributes for dataset: ./anew_global.nc
..history = Subset of etopo20,
- FERRET V6.93 30-Oct-14
+ FERRET V6.951 6-Nov-15
..Conventions = Existing conventions note, , CF-1.6
@@ -75982,7 +76688,7 @@ can dat/all; use conventions_history
! The new attibutes
sh att .
attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V6.93 30-Oct-14
+ ..history = The history of the fileFERRET V6.951 6-Nov-15
..Conventions = Conventions for variables named V2CF-1.6
*** Running test: bn_center_key_labels.jnl
! bn_center_key_labels
@@ -76378,14 +77084,14 @@ a is ready and AVAILABLE
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
in default dataset other_file_vars
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
FV1
********************************
/TREE=ALL
@@ -76394,30 +77100,30 @@ a is ready and AVAILABLE
the problem is UNKNOWN VARIABLE: NOEXIST
************************
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
- NOEXIST (unknown variable)
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
the problem is UNKNOWN DATASET: V[D=NOEXIST]
************************
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
- V[D=NOEXIST] (unknown dataset)
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ *unknown dataset: V[D=NOEXIST]
/TREE=ALL
/TREE=USER
/TREE=FILE
the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
************************
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
- NOVAR[D=NODSET] (unknown dataset)
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ *unknown dataset: NOVAR[D=NODSET]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76425,11 +77131,11 @@ the problem is UNKNOWN VARIABLE: NOEXIST
************************
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
- NOEXIST (unknown variable)
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76448,10 +77154,12 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
FVZ
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
@@ -76463,10 +77171,12 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FV1[d=my_file_vars]
FVX[d=my_file_vars]
@@ -76478,11 +77188,13 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
@@ -76499,7 +77211,7 @@ the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
in default dataset my_file_vars
FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
NOEXIST (unknown auxiliary variable)
- NOEXIST (unknown auxiliary variable)
+ *unknown auxiliary variable: NOEXIST
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
@@ -76508,15 +77220,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
************************
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
- NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
/TREE=ALL
@@ -76526,15 +77240,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
************************
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
FVX
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
- UNKNOWN_AUX (unknown auxiliary variable)
+ *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+ *unknown auxiliary variable: UNKNOWN_AUX
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
@@ -76543,9 +77259,9 @@ fv1 is ready and AVAILABLE
************************
in default dataset MY_AGG
FV1 (aggregate variable)
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- FV1[d=another_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
in default dataset MY_AGG
FV1 (aggregate variable)
@@ -76559,15 +77275,15 @@ fvx is ready and AVAILABLE
************************
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=my_file_var]
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=other_file_var]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=another_file_var]
+ FVX[d=my_file_vars]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_vars]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_vars]
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
FVX[d=my_file_vars]
FV1[d=other_file_vars]
@@ -76579,28 +77295,28 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
************************
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S3 (unknown variable)
+ S3 ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S3
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76608,29 +77324,29 @@ the problem is UNKNOWN VARIABLE: S1
************************
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S1 (unknown variable)
- S3 (unknown variable)
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S1
+ *unknown variable: S3
in default dataset my_file_vars
FV = FV1 + FV1 + FV1
in default dataset MY_UVAR_AGG
@@ -76642,8 +77358,8 @@ the problem is UNKNOWN VARIABLE: S1
in default dataset MY_UVAR_AGG
UV = FVX + FVX + FVX
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
***************************
/TREE=ALL
/TREE=USER
@@ -76654,8 +77370,8 @@ v2 is ready and AVAILABLE
V2 = V1 + B + A + A
V1 = A + B + B^2
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
B = C
C = 1
B = (defined above)
@@ -76678,8 +77394,8 @@ v3 is ready and AVAILABLE
in default dataset MY_UVAR_AGG
V3 = A + V1 + B + A + A
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
V1 = A + B + B^2
A = (defined above)
B = C
@@ -76703,37 +77419,39 @@ the problem is UNKNOWN VARIABLE: F
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
- FVX[d=my_file_var]
+ FVX[d=my_file_vars]
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
- F (unknown variable)
+ *unknown variable: F
FV1[d=my_file_vars]
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
/TREE=FILE
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+the problem is UNKNOWN GRID: NOEXIST
************************
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
+ *unknown grid: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76745,7 +77463,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
in default dataset MY_UVAR_AGG
C = A[X=45S]
A[X=45S] *** WARNING: ERROR IN DEFINITION
- A[X=45S] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[X=45S]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76757,7 +77475,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
in default dataset MY_UVAR_AGG
D = A[I=1,,J=2]
A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
- A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[I=1,,J=2]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76769,7 +77487,7 @@ the problem is ERROR IN EXPRESSION: A[P=1]
in default dataset MY_UVAR_AGG
E = A[P=1]
A[P=1] *** WARNING: ERROR IN DEFINITION
- A[P=1] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[P=1]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76862,8 +77580,8 @@ say `files,return=isize`
! Evaluate size without loading the variable first
let datfiles = {spawn:"ls *.dat"}
say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 36
-36
+ !-> MESSAGE/CONTINUE 37
+37
! expression syntax
say `{spawn:"ls xml*.jnl"},return=isize`
@@ -76881,8 +77599,8 @@ list {spawn:"ls xml*.jnl"}
LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 834
-834
+ !-> MESSAGE/CONTINUE 905
+905
let files = {spawn:"ls *cdf*.jnl"}
let name_len = strindex(files, ".sub")
@@ -76923,266 +77641,7627 @@ poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
set mode/last ignore
-*** Running test: bn_all_ef.jnl
-SET MODE VERIFY
-! bn_all_ef.jnl
-! - run all the benchmark tests for externally-linked external functions.
+*** Running test: bn694_bug_fixes.jnl
+! bn694_bug_fixes
+! test various fixes that went into version 6.94
+! 11/2014 ACM
+! 12/2014 *sh* added IF-THEN flow fixes, including review of past tickets
+! 1/2015 *sh* added test for undetected bad dataset name in regrid target
+
+GO bn_reset
+cancel mode verify
+GO err693_upcase_quoted_name
+! err693_upcase_quoted_name.jnl
+! ticket 2050. Names are saved in uppercase
+! form unless there are duplicates other than case.
+! Then searching for the name in quotes looked
+! only with a case-sensitive search.
+
+let abc = 12
+cancel mode upcase
+
+save/file=aa.nc/clobber abc
+can dat/all; can var/all
+
+use aa.nc
+! previously this failed to find the name.
+list 'abc'
+ VARIABLE : 12
+ FILENAME : aa.nc
+ 12.00
GO bn_reset
cancel mode verify
-GO bn_ef_external_functions.jnl
-! Tests of external functions that are distributed as shared object files.
+GO err693_isready_hang
+! err693_isready_hang.jnl
+! ACM 12/10/2014
+! ticket 2219. The last of these commands caused Ferret to hang.
-! Jon's benchmarks
-go bench_examples
-set mode ignore_error
-show func/ext add_9
-ADD_9(A,B,C,D,E,F,G,H,I)
- (demonstration function) adds 9 arguments
-show func/ext ave*
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
- Compute average of a variable in each cell of output time axis
- TPTS: T coordinates of scattered input time coordinates
- VPTS: Variable at times in TPTS
- TAXIS: Output time axis
-AVET(A)
- (demonstration function) returns the time average
- A: data to be averaged over the time axis
-show func pass_thru
-PASS_THRU(A)
- (demonstration function) sets result equal to input
- A: this arg is passed through
-show func sto*
-STORAGE(A)
- sets result equal to input/10
- A: input
+use gt4d011
+def ax/t/t0="`u,r=t0`"/unit="`u,r=tunit`" time = t[gt=u]
+ !-> def ax/t/t0="14-JAN-1980 14:00:00"/unit="hour" time = t[gt=u]
+let a = u
+IF `a,r=isready` THEN; let/title="`a,r=title`" a1 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a1 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a2 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a2 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a3 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a3 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a4 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a4 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a5 = a
-go bench_add_9
-! Bench_add_9.jnl
-! ACM 8/99
-! benchmark script for testing external function add_9.
-! Note: bench_add_9_visual contains plots of similar computations
+GO bn_reset
+cancel mode verify
+GO err693_isready_dyn_grid_crash ! 12/23/2014
+let/unit="m" b = x[gx=1:5:1]
+say "`b,r=unit`" ! this causes dynamic grid of b to be created
+ !-> MESSAGE/CONTINUE "m"
+m
+let c = x[gx=1:5:2]
+let b2 = b+0*c[gx=b] ! dynamic grid of b exists, but not grid of c
+VTREE b2
+ B2 = B+0*C[GX=B]
+ B = X[GX=1:5:1]
+ C = X[GX=1:5:2]
+ regrid to B = X[GX=1:5:1]
-set mode ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_attr_in_gcfcn
+! err693_attr_in_gcfcn.jnl
+! ACM 12/10/2014
+! bug 2220 varname.attname as an argument to grid-changing functions.
+! All except the last of these caused various ungraceful stops.
+
+let/units="m" a = 1
+list is_element_of_str(a.units,{"m","a"})
+ VARIABLE : IS_ELEMENT_OF_STR(A.UNITS,{"m","a"})
+ X : 1
+ 1.000
+let/units="m" a = 1
+let b = a.units
+list is_element_of_str(b,{"m","a"})
+ VARIABLE : IS_ELEMENT_OF_STR(B,{"m","a"})
+ X : 1
+ 1.000
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
-let a1 = sst[d=1,l=1]
-let a2 = sst[d=1,l=2]
-let a3 = sst[d=1,l=3]
+use levitus_climatology
-let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+list is_element_of_str_n (temp.long_name, {"Temperature", "temp"})
+ VARIABLE : IS_ELEMENT_OF_STR_N (TEMP.LONG_NAME, {"Temperature", "temp"})
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ 2.000
-list a
- VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 263.6
- 153E / 67: 264.5
- 155E / 68: 264.2
- 157E / 69: 261.3
- 159E / 70: 260.9
- 161E / 71: 262.4
- 163E / 72: 264.0
- 165E / 73: 261.1
- 167E / 74: 260.9
- 169E / 75: 261.0
- 171E / 76: 259.3
- 173E / 77: 257.9
- 175E / 78: 257.0
- 177E / 79: 259.1
- 179E / 80: 254.8
-list a - 3 * sst[d=1,l=1:3 at sum]
- VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 0.0000
- 153E / 67: 0.0000
- 155E / 68: 0.0000
- 157E / 69: 0.0000
- 159E / 70: 0.0000
- 161E / 71: 0.0000
- 163E / 72: 0.0000
- 165E / 73: 0.0000
- 167E / 74: 0.0000
- 169E / 75: 0.0000
- 171E / 76: 0.0000
- 173E / 77: 0.0000
- 175E / 78: 0.0000
- 177E / 79: 0.0000
- 179E / 80: 0.0000
-set mode/last ignore_errors
-go bench_avet
-! Bench_avet.jnl
-! ACM 8/99
-! benchmark script for testing external function avet.
-! Note: bench_avet_visual.jnl contains plots of similar computations
+let a = temp.units
+list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
+ VARIABLE : IS_ELEMENT_OF_STR (A, {"Kelvin", "Celsius", "DEG C"})
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ 1.000
-set mode ignore_errors
-can region
+
+GO bn_reset
+cancel mode verify
+GO err693_inconsistent_quote
+! inconsistent interpretation of surrounding double quotes
+! the original source of the problem is in PARSE_COMMAND
+! arg_start and arg_end are set to skip surrounding quotation marks.
+! But since this behavior permeates so many routines it is best to repair
+! the problem in ALL_1_ARG
+
+
+let foobar = 1
+LIST "foobar", "foobar" ! this is correct - list as strings
+ Column 1: str is "foobar"
+ Column 2: str is "foobar"
+ str str
+I / *: "foobar" "foobar"
+LIST "foobar" ! error: lists the value instead
+ VARIABLE : "foobar"
+ "foobar"
+
+! IF-THEN flow tests
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2214
+! bug 2214
+! If we put the "say hi" in parentheses, this seems to work.
+! But parentheses haven't previously been required, so there are a lot of
+! scripts that don't have them.
+
+* 12/14 note (sh) - Ferret handles this situation correctly because
+* PARSE_COMMAND acts on the semi-colons in the full command line *before*
+* it acts on the "IF". Thus the thress semicolon-connected commands
+* follow the same logical path through Ferret as if they were separated
+* onto three lines
+
+IF 0 THEN; rep/i=1:1 say ERROR; ENDIF
+
+IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF
+!-> REPEAT: I=1
+CORRECT
+
+(IF 0 THEN; rep/i=1:1 say ERROR; ENDIF)
+
+(IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF)
+!-> REPEAT: I=1
+CORRECT
+
+!yes? quit
+!yes? quit
+!yes? ^Z
+!Suspended
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2211
+! bug #2211
+
+
+IF 0 THEN
+ELSE
+ exit/script
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1860
+! from bug 1860
+! continue line found within grave accents
+
+CANCEL MODE VERIFY
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1446
+! testing ticket 1446
+
+! the presence of a tab preceding the "!" comment caused a parsing error
+
+! the behavior of this even in v69+ today is problematic in that
+! it echos an ENDIF statement that should be a plain old skip
+
+IF 0 THEN
+ENDIF
+
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1681
+! testing ticker 1681
+
+!The third block of the following script issues an error:
+!ERROR: invalid command: ENDIF can only be used in an IF clause
+!
+!Looks like a parsing bug -- it seems the ENDIF inside the REPEAT is being
+!applied to the outermost IF. Note that the error goes away if we change
+!the outer 0 to a 1.
+
+
+say "test1"
+test1
+if 0 then
+endif
+
+say "test2"
+test2
+if 0 then
+endif
+
+say "test3"
+test3
+if 0 then
+endif
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1706
+! testing ticket 1706
+!
+def sym a say hi\\; say hi
+
+IF 0 THEN
+ENDIF
+
+! some versions (not v550 but yes v63 but not v6301) fail to say "here"
+IF 1 THEN
+ say here
+here
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1368 ! Jan 28, 2010, Ferret version 5.812
+! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
+
+! this is still a bug in V69+
+! the initial IF command is not being closed by the first ENDIF
+! it is skipping down to the elif command
+
+define symbol xend 180
+let key_flag = 0
+
+! test 1 - line 1 false condition should suppress both outputs
+IF `($xend) GT 360` THEN
+ !-> IF 0 THEN
+ENDIF
+
+
+! test 2 - line 1 false condition should cause else clause - "point G"
+let dxymin = 0.20
+if `dxymin lt 0.12` then
+ !-> if 0 then
+elif `dxymin lt 0.25` then
+ !-> elif 1 then
+ SAY "CORRECT. this message should display"
+CORRECT. this message should display
+endif
+
+! test 3 - this is from bug #918 -- looks like the same bug as #1368
+IF 0 THEN
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_start_missing
+! err693_ribbon_start_missing
+! 1/6/2015 ACM
+!
+! Bug 2226: If data starts with a missing-value and we're using (-inf) then
+! the ribbon plot started with the lowest color instead of plotting as for missing
+! Only the cases starting with missing data were incorrect previous to fixing this bug.
+
+DEFINE SYMBOL ribbon_command = PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3
+
+let/units=degrees_east xvar = {-177,-174,-186}
+let/units=degrees_north yvar = {-43, -45, -42}
+let vvar = {,271, 319}
+! This previously started with purple, not a gray missing-value point
+($ribbon_command)/title="(-inf) in levels" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="(-inf) in levels" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,,271,319}
+($ribbon_command)/title="start with several missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with several missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,271,319,1000}
+($ribbon_command)/title="end large positive value" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end large positive value" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,271,319,1000,}
+($ribbon_command)/title="end with large positive and missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end with large positive and missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {1.e7,,,271,319}
+($ribbon_command)/title="start with large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with large positive" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,1.e7,,271,319}
+($ribbon_command)/title="start with missing then large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with missing then large positive" xvar,yvar,vvar
+
+
+GO bn_reset
+cancel mode verify
+GO err691_pt_in_poly
+! err691_pt_in_poly
+! ticket 1961: modulo longitude for pt_in_poly
+! and sending subset of the xy field
+
use coads_climatology
-set region/x=151E:179E/y=0
-let a = avet(sst)
-list a
- VARIABLE : AVET(SST)
+let xpts = {64,81,81,82,88,88,79,79,76,73,68,64}
+let ypts = {31,30,29,29,27,24,20,19,20,25,27,31}
+
+let pts = pt_in_poly(sst[L=5,x=60:90,y=15:35], xpts, ypts)
+shade/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
FILENAME : coads_climatology.cdf
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- 1S
- 45
- 151E / 66: 29.28
- 153E / 67: 29.39
- 155E / 68: 29.35
- 157E / 69: 29.03
- 159E / 70: 28.99
- 161E / 71: 29.15
- 163E / 72: 29.33
- 165E / 73: 29.01
- 167E / 74: 28.99
- 169E / 75: 29.00
- 171E / 76: 28.81
- 173E / 77: 28.66
- 175E / 78: 28.56
- 177E / 79: 28.79
- 179E / 80: 28.31
-list a - sst[l=@ave]
- VARIABLE : A - SST[L=@AVE]
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
+
+! Put the xpts on different modulo branches
+! Previously the list commands would have listed -1,-1
+
+let xpts0 = {64,81,81,82,88,88,79,79,76,73,68,64}
+let/title=lon/units=degrees_east xpts = xpts0 + 360
+
+shade/title="Plus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
FILENAME : coads_climatology.cdf
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 01-JAN 00:45 to 01-APR 08:12
- 1S
- 45
- 151E / 66: 0.000E+00
- 153E / 67: -3.553E-15
- 155E / 68: 0.000E+00
- 157E / 69: 0.000E+00
- 159E / 70: 3.553E-15
- 161E / 71: 7.105E-15
- 163E / 72: 3.553E-15
- 165E / 73: 0.000E+00
- 167E / 74: 0.000E+00
- 169E / 75: 3.553E-15
- 171E / 76: 0.000E+00
- 173E / 77: 3.553E-15
- 175E / 78: 0.000E+00
- 177E / 79: 3.553E-15
- 179E / 80: 3.553E-15
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
-can region
-let a = x[i=1:9,k=1:5] + t[l=1:5]
-let b = x[i=1:9,k=1:5]
-let c = avet(a)
-list b, c
- X: 0.5 to 9.5
- Column 1: B is X[I=1:9,K=1:5]
- Column 2: C is AVET(A)
- B C
-1 / 1: 1.000 4.00
-2 / 2: 2.000 5.00
-3 / 3: 3.000 6.00
-4 / 4: 4.000 7.00
-5 / 5: 5.000 8.00
-6 / 6: 6.000 9.00
-7 / 7: 7.000 10.00
-8 / 8: 8.000 11.00
-9 / 9: 9.000 12.00
+let/title=lon/units=degrees_east xpts = xpts0 - 360
-set mode/last ignore_errors
-go bench_pass_thru
-! Bench_pass_thru.jnl
-! ACM 8/99
-! benchmark script for testing external function pass_thru.
-! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+shade/title="Minus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
-set mode ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_undetected_regrid_dset
+! err693_undetected_regrid_dset.jnl - Jan 2015
-can region
-let a = pass_thru(x)
-list a[i=1:20]
- VARIABLE : PASS_THRU(X)
- SUBSET : 20 points (X)
- 1 / 1: 1.00
- 2 / 2: 2.00
- 3 / 3: 3.00
- 4 / 4: 4.00
- 5 / 5: 5.00
- 6 / 6: 6.00
- 7 / 7: 7.00
- 8 / 8: 8.00
- 9 / 9: 9.00
- 10 / 10: 10.00
- 11 / 11: 11.00
- 12 / 12: 12.00
- 13 / 13: 13.00
- 14 / 14: 14.00
- 15 / 15: 15.00
- 16 / 16: 16.00
- 17 / 17: 17.00
- 18 / 18: 18.00
- 19 / 19: 19.00
- 20 / 20: 20.00
-set region/i=1:20
-list sin(a)
- VARIABLE : SIN(A)
- SUBSET : 20 points (X)
- 1 / 1: 0.8415
- 2 / 2: 0.9093
- 3 / 3: 0.1411
- 4 / 4: -0.7568
- 5 / 5: -0.9589
- 6 / 6: -0.2794
- 7 / 7: 0.6570
- 8 / 8: 0.9894
- 9 / 9: 0.4121
- 10 / 10: -0.5440
- 11 / 11: -1.0000
- 12 / 12: -0.5366
- 13 / 13: 0.4202
- 14 / 14: 0.9906
- 15 / 15: 0.6503
- 16 / 16: -0.2879
- 17 / 17: -0.9614
- 18 / 18: -0.7510
- 19 / 19: 0.1499
- 20 / 20: 0.9129
+! in GET_CONTEXT_MODS no check is made whether dataset name/number is
+! valid following "gdset = FIND_DSET_NUMBER( name(dstart:dend) )"
+
+use coads_climatology
+use levitus_climatology ! default to d=2
+
+canc var/all
+let myvar = temp
+let a = myvar[g=temp[d=bad_d]] ! THIS SHOULD BE DETECTED AS AN ERROR
+
+set mode ignore
+stat/l=1/x=180/y=0 a ! this *SHOULD* trigger an error. Yes. Detect it.
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err693_line_over_axis
+! Ticket 2232: line plots overlaid the plot axes
+show mode meta
+ MODE STATE ARGUMENT
+ METAFILE CANCELLED metafile.plt
+! line plot with /VS draw on top of the axes
+let xval = {0.0, 0.2, 1.0, 0.8, 0}
+let yval = {0.0, 1.1, 1.1, 0.0, 0}
+plot/vs/line/thick=3/color=lightblue xval, yval
+
+! any line overlay may draw on the axes
+let xval = {0.0, 0.0, 0.8, 0.2, 0}
+let yval = {0.1, 1.2, 1.2, 0.1, 0.1}
+plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
+
+
+GO bn_reset
+cancel mode verify
+GO err693_save_packed
+! err693_save_packed.jnl
+! ticket 2240: bug writing multiple vars with one SAVE when scaled
+!
+! Previously saw a netcdf error because first variable was mis-scaled on writing.
+
+use err693_save_packed.nc
+save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
+
+GO bn_reset
+cancel mode verify
+GO err693_subspan_trans
+! err693_subspan_trans
+! bug 2241 3/9/2015
+
+use coads_climatology
+let a = sst[x=120:284,y=-2:2 at ave,t=@ave]
+save/clob/file=a.nc a
+can var a
+use a
+set reg/x=25:385
+let b = a[x=@min]
+
+set mode diag
+say `a[x=@min]`
+ getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ strip --> A[X=25E:25E(385)@MIN,D=2]
+ strip moduloing A on X axis: 0 83 dset: 2
+ reading A M: 1 dset: 2 I: 1 82 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ doing moduloing A on X axis: 1 82 dset: 2
+ doing --> A[X=25E:25E(385)@MIN,D=2]
+ -DELETE A M: 7 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+! This previously resulted in an error.
+say `b`
+ dealloc dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ getgrid B C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval B C: 6 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found A M: 8 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE B M: 6 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+can mode diag
+
+! What if the region for @MIN is in the saved portion?
+say `a[x=150:200 at min]`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+let b = a[x=150:200 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+
+! What if the region for @MIN extends beyond the saved portion?
+say `a[x=200:300 at min]`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+let b = a[x=200:300 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+! What if the region for @MIN is outside the saved portion?
+say `a[x=300:385 at min]`
+ !-> MESSAGE/CONTINUE bad
+bad
+let b = a[x=300:385 at min]
+say `b`
+ !-> MESSAGE/CONTINUE bad
+bad
+
+
+GO bn_reset
+cancel mode verify
+GO err693_repeat_err
+! err693_repeat_err.jnl
+! test fix for ticket 2244: Error handling in REPEAT
+
+! The second of these should result in an error - in debug mode
+! it instead was hitting an out-of-range subscript error.
+
+repeat/range=1:2/name=column repeat/range=1:2/name=row say `column`,`row`
+!-> REPEAT: COLUMN:1
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 1,1
+1,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 1,2
+1,2
+!-> REPEAT: COLUMN:2
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 2,1
+2,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 2,2
+2,2
+
+set mode ignore
+repeat/range=1:2/name=column repeat/range=1:2/name=row
+!-> REPEAT: COLUMN:1
+!-> REPEAT: COLUMN:2
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err693_edit_useratt
+! err693_edit_useratt.jnl
+! ticket 2249: set attribute properties for user-defined variable
+
+use err491_attval.cdf
+list/x=135.402W:135.321W/y=58.609 elev
+ VARIABLE : Surface elevation (meter)
+ DATA SET : K-Bay OAR3d model (200m)
+ FILENAME : err491_attval.cdf
+ SUBSET : 7 points (LONGITUDE)
+ LATITUDE : 58.6N
+ T (day) : 1.7837
+ 58.609N
+ 3
+ 135.402W / 45: ....
+ 135.389W / 46: ....
+ 135.375W / 47: ....
+ 135.362W / 48: 2.952
+ 135.348W / 49: 2.953
+ 135.335W / 50: 2.949
+ 135.321W / 51: 2.953
+
+
+! Rename the file variable, define a variable using its name
+set var/name=elev_in elev
+let elev = missing(elev_in, -1.e34)
+
+! Inherit attributes from the file variable.
+! cancel writing the scale attributes
+set att/like=elev_in elev
+can att/output elev.scale_factor
+can att/output elev.add_offset
+
+! set the bad-flag (can't do this before the SET ATT/LIKE
+set var/bad=-1.e34 elev
+
+! save
+save/clobber/file=a.nc elev
can var/all
-can region
+use a.nc
+list/x=135.402W:135.321W/y=58.609 elev
+ VARIABLE : Surface elevation (meter)
+ FILENAME : a.nc
+ SUBSET : 7 points (LONGITUDE)
+ LATITUDE : 58.6N
+ T (day) : 1.7837
+ 58.609N
+ 3
+ 135.402W / 45: ....
+ 135.389W / 46: ....
+ 135.375W / 47: ....
+ 135.362W / 48: 2.952
+ 135.348W / 49: 2.953
+ 135.335W / 50: 2.949
+ 135.321W / 51: 2.953
+
+
+GO bn_reset
+cancel mode verify
+GO err693_redef_rec_axis
+! err693_redef_rec_axis.jnl
+! ticket 2271. Redefining the record axis meant
+! that SHOW AXIS/FULL couldnt get the time axis info
+
+define axis/x=1:5:1 xax
+define axis/y=2:10:2 yax
+define axis/t=1:7:1 tredef
+let var = x[gx=xax] + y[gy=yax] + t[gt=tredef]
+save/clobber/file=a.nc var
+
+can var/all
+can axis xax
+can axis yax
+can axis tredef
+
+use a.nc
+define axis/t=1:7:1/units=days/t0=1-jan-2000 tredef
+
+! Previously the output had time range: ???
+show data/full
+ currently SET data sets:
+ 1> ./a.nc (default)
+
+ name title I J K L M N
+ VAR X[GX=XAX] + Y[GY=YAX] + T[GT=TR 1:5 1:5 ... 1:7 ... ...
+ on grid GSI1 with -1.E+34 for missing data
+ X=0.5:5.5 Y=1:11
+
+ time range: 02-JAN-2000 00:00 to 08-JAN-2000 00:00
+
+
+GO bn_reset
+cancel mode verify
+GO err693_frame_types
+! bn_frame_types.jnl
+! Ticket 2275
+! The default file type for FRAME was still HDF
+
+set mode ignore
use coads_climatology
-let a = pass_thru(sst[l=@ave,y=@sbx:11])
-list/x=50 a
- VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+shade/l=1 sst
+
+! This issued an error and quit
+frame/format=hdf/file=a.hdf
+
+! so did this
+frame/file=a.png
+
+! this is (always) ok
+frame/file=a.gif
+frame/format=gif file=a.plot
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err693_shape
+! err693_shape.jnl
+! bug 2273 shape of variable with various subexpressions
+
+use coads_climatology
+let a = sst[x=@ave]
+let a_clim = a[gt=MONTH_IRREG at mod]
+let a_anom = a - a_clim[gt=a at nrst]
+
+! Should all be YT
+say `a,r=shape` `a_clim[gt=a at nrst],r=shape` `a_anom,r=shape`
+ !-> MESSAGE/CONTINUE YT YT YT
+YT YT YT
+
+! Also works for size returns
+
+! Should be 180, 1, 1
+say `sst,r=isize` `a,r=isize` `a_anom,r=isize`
+ !-> MESSAGE/CONTINUE 180 1 1
+180 1 1
+
+
+GO bn_reset
+cancel mode verify
+GO err693_ef_axis_precision
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.94
+ ! Linux 2.6.32-504.12.2.el6.x86_64 64-bit - 03/20/15
+ ! 11-May-15 16:51
+
+define axis/f faxis = {0.001, 0.123, 0.234, 0.498}
+define axis/e eaxis = {1001.1009, 1234.005, 2112.321, 2520.45}
+let efvar = _M[ge=eaxis] + _n[gf=faxis]
+set view upper; plot/n=3 efvar
+set view lower; plot/m=2 efvar
+list/n=3 efvar
+ VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
+ SUBSET : 4 points (E)
+ F : 0.2
+ 1001.1 / 1: 4.000
+ 1234 / 2: 5.000
+ 2112.3 / 3: 6.000
+ 2520.4 / 4: 7.000
+list/m=2 efvar
+ VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
+ SUBSET : 4 points (F)
+ E : 1234
+ 0 / 1: 3.000
+ 0.12 / 2: 4.000
+ 0.23 / 3: 5.000
+ 0.5 / 4: 6.000
+q
+
+GO bn_reset
+cancel mode verify
+GO err693_string_results
+! err693_string_results.jnl
+! Ticket 2234, the LIST B returned the numeric pointer to the string.
+! *acm* 5/14/2015
+
+let b = IF a then "yes" else "no"
+let a = 1/0
+list b
+ VARIABLE : IF A THEN "yes" ELSE "no"
+ "no"
+
+! The LOAD C makes the data type of D correct
+let d = if c then "ok" else "not ok"
+let c = 1/0
+load C
+list d
+ VARIABLE : IF C THEN "ok" ELSE "not ok"
+ "not ok"
+
+GO bn_reset
+cancel mode verify
+GO err693_lev_nv_over
+! err693_lev_nv_over.jnl
+! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
+
+! draw any underlay to set up for polymark script
+use coads_climatology
+shade/x=120:250/Y=25s:65n/L=1/pal=white/nokey sst
+
+LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
+LET ypts = 15 + 20*SIN(2*3.14*I[I=1:50]/60)
+
+! Variable is a constant w/ negative value
+LET sst = -5 + 0*ypts
+
+! The poly/over command caused a Fortran runtime error in tm_fmt_sngl
+GO polymark polygon/over/lev=20v/key/title="SST" xpts,ypts,sst,square, 0.5
+
+
+GO bn_reset
+cancel mode verify
+GO err693_fcn_of_attvar
+! err693_fcn_of_attvar.jnl
+! Ticket 2291 Function of attribute-expression
+! returned just the first result
+
+use coads_climatology
+list sst.dimnames
+ VARIABLE : SST.DIMNAMES
FILENAME : coads_climatology.cdf
- SUBSET : 90 points (LATITUDE)
- LONGITUDE: 49E
- TIME : 01-JAN 00:45 to 01-APR 08:12
- 49E
- 15
- 89N / 90: ....
- 87N / 89: ....
- 85N / 88: ....
- 83N / 87: ....
- 81N / 86: ....
- 79N / 85: ....
- 77N / 84: ....
- 75N / 83: ....
- 73N / 82: ....
- 71N / 81: ....
- 69N / 80: ....
- 67N / 79: ....
+ SUBSET : 3 points (X)
+ 1 / 1:"COADSX"
+ 2 / 2:"COADSY"
+ 3 / 3:"TIME1"
+list dncase(sst.dimnames)
+ VARIABLE : DNCASE(SST.DIMNAMES)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"coadsx"
+ 2 / 2:"coadsy"
+ 3 / 3:"time1"
+list strlen( sst.dimnames)
+ VARIABLE : STRLEN( SST.DIMNAMES)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1: 6.000
+ 2 / 2: 6.000
+ 3 / 3: 5.000
+list substring(sst.dimnames,2,3)
+ VARIABLE : SUBSTRING(SST.DIMNAMES,2,3)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"OAD"
+ 2 / 2:"OAD"
+ 3 / 3:"IME"
+list dncase(substring(sst.dimnames,2,3))
+ VARIABLE : DNCASE(SUBSTRING(SST.DIMNAMES,2,3))
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"oad"
+ 2 / 2:"oad"
+ 3 / 3:"ime"
+list ysequence(dncase(sst.dimnames))
+ VARIABLE : YSEQUENCE(DNCASE(SST.DIMNAMES))
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (Y)
+ 1 / 1:"coadsx"
+ 2 / 2:"coadsy"
+ 3 / 3:"time1"
+
+GO bn_reset
+cancel mode verify
+GO err693_isize_and_gcfcn
+! err693_isize_and_gcfcn.jnl
+! ticket 2213
+! SET REGION interacting with ABSTRACT AXES
+! When the variable using XSEQUENCE was defined, suddenly the
+! region was being applied (inconsistently).
+
+can mode verify
+8
+ GRID XABSTRACT
+ name axis # pts start end
+ ABSTRACT X 99999999 r 1 1.E+08
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+8
+ GRID XABSTRACT
+ name axis # pts start end
+ ABSTRACT X 99999999 r 1 1.E+08
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_scale
+! err693_ribbon_scale.jnl
+! ticket 2295: the vertical scale is mis-computed
+! 5/29/2015
+
+let var = {-81,-81,-81}
+let color = {2,2,2}
+plot/ribbon/key var,color
+
+! should be -82 to -80
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "-82.0000000"
+YAXIS_MAX = "-80.0000000"
+
+GO bn_reset
+cancel mode verify
+GO err693_parse_curly
+! err693_parse_curly.jnl
+! the sub-routine defines a string variable containing commands for overlays in
+! different directions. the bug was that the parser doesn't handle quoted strings
+! inside { } if those strings include curly braces.
+! The argument chooses one of the strings with commands and plots the overlay
+
+use gt4d011
+
+shade/i=100/l=1/pal=grayscale temp
+go err693_parse_curly.sub yz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+
+! list of valid shapes
+
+let prd_shapes = {"xy", "xz", "yz"}
+
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+
+let prd_overlays = {\
+ "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "yz"
+
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1 THEN
+ )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`]; IF `p1s_this_shape EQ p1s_shape` THEN; let p1s_ov = prd_overlays[i=`s`]; exit/loop; ENDIF; )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 0 THEN
+!-> REPEAT: S:3
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=3]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=3]
+ can var p1s_this_shape
+ENDIF
+
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+
+ shade/j=40/l=1/pal=grayscale temp
+go err693_parse_curly.sub xz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+
+! list of valid shapes
+
+let prd_shapes = {"xy", "xz", "yz"}
+
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+
+let prd_overlays = {\
+ "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "xz"
+
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1 THEN
+ )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`]; IF `p1s_this_shape EQ p1s_shape` THEN; let p1s_ov = prd_overlays[i=`s`]; exit/loop; ENDIF; )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=2]
+ can var p1s_this_shape
+ENDIF
+
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+
+
+GO bn_reset
+cancel mode verify
+GO err693_list_missing
+! err693_list_missing.jnl
+
+let a= {1,2,3}
+let b = 1./0
+
+! Ths listing of b is .... was squashed onto the ends of values of a.
+! 1 / 1: 1.000..
+! 2 / 2: 2.000..
+
+list a,b
+ X: 0.5 to 3.5
+ Column 1: A is {1,2,3}
+ Column 2: B is 1./0
+ A B
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+
+GO bn_reset
+cancel mode verify
+GO err693_shf_subscr
+! err693_shf_subscr.jnl
+! ticket 2231 Subscripts used to compute @SHF-1 at the low end of the axis
+
+
+def ax/edge/z=0:40:10 zax_t
+def ax/edge/z=5:45:10 zax_w
+let zw = z[gz=zax_w]
+let zdiff = zw - missing(zw[z=@shf:-1],0)
+let zdiff_t = zdiff[gz=zax_t at asn]
+
+! a range of K shows the values correctly
+list zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ SUBSET : 4 points (Z)
+ 5 / 1: 10.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+
+! but just K=1 returned a K=0 error
+can mem
+list/k=1 zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ Z : 5
+ 10.00
+
+! Shift of +1
+can mem
+let zdiff = zw - missing(zw[z=@shf:1],0)
+list/k=4 zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ Z : 35
+ 40.00
+list/k=3:4 zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ SUBSET : 2 points (Z)
+ 25 / 3: -10.00
+ 35 / 4: 40.00
+
+GO bn_reset
+cancel mode verify
+GO err693_shift_w_region
+! err693_shift_w_region
+! Ticket 2300. In fact with bounds checking on, the list a[i=@shf] would have
+! caused a Fortran runtime error with out-of-bounds subscripts. The fix for
+! ticket 2301 fixes this as well.
+
+set region/x=10:20
+let a = {1,2,3}
+list a
+ VARIABLE : {1,2,3}
+ SUBSET : 3 points (X)
+ 1 / 1: 1.000
+ 2 / 2: 2.000
+ 3 / 3: 3.000
+list a[i=@shf]
+ VARIABLE : {1,2,3}
+ shifted by 1 pts on X
+ SUBSET : 3 points (X)
+ 1 / 1: 2.000
+ 2 / 2: 3.000
+ 3 / 3: ....
+cancel region
+list a[i=@shf]
+ VARIABLE : {1,2,3}
+ shifted by 1 pts on X
+ SUBSET : 3 points (X)
+ 1 / 1: 2.000
+ 2 / 2: 3.000
+ 3 / 3: ....
+
+
+GO bn_reset
+cancel mode verify
+GO err693_scalar_grids
+! err693_scalar_grids.jnl
+! See ticket 1602
+
+! multiplication by scalar variable "let one = 1" added
+! abstract axes to the expression in all directions not
+! already reperesented in the grid.
+
+
+! The T averaging is ignored; no T direction in the grid.
+use levitus_climatology
+let a = temp[x=140,y=0,z=0]
+list a[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : TEMP[X=140,Y=0,Z=0]
+ FILENAME : levitus_climatology.cdf
+ LONGITUDE: 139.5E
+ LATITUDE : 0.5S
+ DEPTH (m): 0
+ 29.31
+
+! Multiply by a variable which is a constant (prev. this
+! resulted in an illegal use of transform error.)
+let one = 1
+let b = one*a
+list b[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : ONE*A
+ FILENAME : levitus_climatology.cdf
+ LONGITUDE: 139.5E
+ LATITUDE : 0.5S
+ DEPTH (m): 0
+ 29.31
+
+! Test with a constant-array variable.
+let two = {2}
+let c = two*a
+list c[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : TWO*A
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ LATITUDE : 0.5S
+ DEPTH (m): 0
+ 58.61
+
+
+! check interactions with GC functions (prev. this
+! resulted in an illegal use of transform error.)
+LET v = X[x=1:4:1] + Y[Y=.1:.4:.1]
+LET a = XSEQUENCE( v[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+LIST a[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+ SUBSET : 4 by 2 points (X-Z)
+ 1 2 3 4
+ 1 2 3 4
+ 0.01 / 1: 2.210 3.210 2.310 3.310
+ 0.02 / 2: 2.220 3.220 2.320 3.320
+list b
+ VARIABLE : ONE*A
+ SUBSET : 4 by 2 points (X-Z)
+ 1 2 3 4
+ 1 2 3 4
+ 0.01 / 1: 2.210 3.210 2.310 3.310
+ 0.02 / 2: 2.220 3.220 2.320 3.320
+
+list b[x=@ave,k=@ave]
+ VARIABLE : ONE*A
+ X : 0.5 to 4.5 (XZ ave)
+ Z : 0.005 to 0.025 (XZ ave)
+ 2.765
+
+
+*** Running test: bn_permute_ascii.jnl
+! bn_permute_ascii.jnl
+! test permutations when reading ascii data, in E and F directions
+! 11/18/2014
+! see ticket 2217: was not working for grids in E and F
+
+
+! First with T axis
+
+! unpermuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM 1:4 ... ... 1:12 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 4 by 12 points (X-T)
+ 1 2 3 4
+ 1 2 3 4
+ 1 / 1: -6.85 -6.75 -6.65 -6.55
+ 2 / 2: -11.71 -11.72 -11.73 -11.74
+ 3 / 3: -19.12 -19.22 -19.32 -19.42
+ 4 / 4: -24.81 -24.82 -24.83 -24.84
+ 5 / 5: -27.19 -27.29 -27.39 -27.49
+ 6 / 6: -28.51 -28.52 -28.53 -28.54
+ 7 / 7: -30.27 -30.37 -30.47 -30.57
+ 8 / 8: -31.34 -31.54 -31.64 -31.74
+ 9 / 9: -29.34 -29.44 -29.54 -29.64
+ 10 / 10: -23.29 -23.39 -23.49 -23.59
+ 11 / 11: -14.91 -14.92 -14.93 -14.94
+ 12 / 12: -8.09 -8.19 -8.29 -8.39
+
+! permuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM 1:4 ... ... 1:12 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 4 by 12 points (X-T)
+ 1 2 3 4
+ 1 2 3 4
+ 1 / 1: -6.85 -6.75 -6.65 -6.55
+ 2 / 2: -11.71 -11.72 -11.73 -11.74
+ 3 / 3: -19.12 -19.22 -19.32 -19.42
+ 4 / 4: -24.81 -24.82 -24.83 -24.84
+ 5 / 5: -27.19 -27.29 -27.39 -27.49
+ 6 / 6: -28.51 -28.52 -28.53 -28.54
+ 7 / 7: -30.27 -30.37 -30.47 -30.57
+ 8 / 8: -31.34 -31.54 -31.64 -31.74
+ 9 / 9: -29.34 -29.44 -29.54 -29.64
+ 10 / 10: -23.29 -23.39 -23.49 -23.59
+ 11 / 11: -14.91 -14.92 -14.93 -14.94
+ 12 / 12: -8.09 -8.19 -8.29 -8.39
+
+! Then same with F axis
+can data/all
+
+def axis/f=1:12:1 f12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/f=f12 fxgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM 1:4 ... ... ... ... 1:12
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 4 by 12 points (X-F)
+ 1 2 3 4
+ 1 2 3 4
+ 1 / 1: -6.85 -6.75 -6.65 -6.55
+ 2 / 2: -11.71 -11.72 -11.73 -11.74
+ 3 / 3: -19.12 -19.22 -19.32 -19.42
+ 4 / 4: -24.81 -24.82 -24.83 -24.84
+ 5 / 5: -27.19 -27.29 -27.39 -27.49
+ 6 / 6: -28.51 -28.52 -28.53 -28.54
+ 7 / 7: -30.27 -30.37 -30.47 -30.57
+ 8 / 8: -31.34 -31.54 -31.64 -31.74
+ 9 / 9: -29.34 -29.44 -29.54 -29.64
+ 10 / 10: -23.29 -23.39 -23.49 -23.59
+ 11 / 11: -14.91 -14.92 -14.93 -14.94
+ 12 / 12: -8.09 -8.19 -8.29 -8.39
+
+! Read same data in y-z-t
+can data/all
+
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 1:6 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-T)
+ 1 2
+ 1 2
+ ---- L:1 T: 1
+ 1 / 1: -6.85 -11.71
+ 2 / 2: -19.12 -24.81
+ 3 / 3: -27.19 -28.51
+ 4 / 4: -30.27 -31.34
+ ---- L:2 T: 2
+ 1 / 1: -29.34 -23.29
+ 2 / 2: -14.91 -8.09
+ 3 / 3: -6.75 -11.72
+ 4 / 4: -19.22 -24.82
+ ---- L:3 T: 3
+ 1 / 1: -27.29 -28.52
+ 2 / 2: -30.37 -31.54
+ 3 / 3: -29.44 -23.39
+ 4 / 4: -14.92 -8.19
+ ---- L:4 T: 4
+ 1 / 1: -6.65 -11.73
+ 2 / 2: -19.32 -24.83
+ 3 / 3: -27.39 -28.53
+ 4 / 4: -30.47 -31.64
+ ---- L:5 T: 5
+ 1 / 1: -29.54 -23.49
+ 2 / 2: -14.93 -8.29
+ 3 / 3: -6.55 -11.74
+ 4 / 4: -19.42 -24.84
+ ---- L:6 T: 6
+ 1 / 1: -27.49 -28.54
+ 2 / 2: -30.57 -31.74
+ 3 / 3: -29.64 -23.59
+ 4 / 4: -14.94 -8.39
+
+! And permuted
+
+can data/all
+
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 1:6 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-T)
+ 1 2
+ 1 2
+ ---- L:1 T: 1
+ 1 / 1: -6.85 -30.27
+ 2 / 2: -6.75 -30.37
+ 3 / 3: -6.65 -30.47
+ 4 / 4: -6.55 -30.57
+ ---- L:2 T: 2
+ 1 / 1: -11.71 -31.34
+ 2 / 2: -11.72 -31.54
+ 3 / 3: -11.73 -31.64
+ 4 / 4: -11.74 -31.74
+ ---- L:3 T: 3
+ 1 / 1: -19.12 -29.34
+ 2 / 2: -19.22 -29.44
+ 3 / 3: -19.32 -29.54
+ 4 / 4: -19.42 -29.64
+ ---- L:4 T: 4
+ 1 / 1: -24.81 -23.29
+ 2 / 2: -24.82 -23.39
+ 3 / 3: -24.83 -23.49
+ 4 / 4: -24.84 -23.59
+ ---- L:5 T: 5
+ 1 / 1: -27.19 -14.91
+ 2 / 2: -27.29 -14.92
+ 3 / 3: -27.39 -14.93
+ 4 / 4: -27.49 -14.94
+ ---- L:6 T: 6
+ 1 / 1: -28.51 -8.09
+ 2 / 2: -28.52 -8.19
+ 3 / 3: -28.53 -8.29
+ 4 / 4: -28.54 -8.39
+
+! Now with Y-Z-E
+
+can data/all
+
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 ... 1:6 ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-E)
+ 1 2
+ 1 2
+ ---- M:1 E: 1
+ 1 / 1: -6.85 -11.71
+ 2 / 2: -19.12 -24.81
+ 3 / 3: -27.19 -28.51
+ 4 / 4: -30.27 -31.34
+ ---- M:2 E: 2
+ 1 / 1: -29.34 -23.29
+ 2 / 2: -14.91 -8.09
+ 3 / 3: -6.75 -11.72
+ 4 / 4: -19.22 -24.82
+ ---- M:3 E: 3
+ 1 / 1: -27.29 -28.52
+ 2 / 2: -30.37 -31.54
+ 3 / 3: -29.44 -23.39
+ 4 / 4: -14.92 -8.19
+ ---- M:4 E: 4
+ 1 / 1: -6.65 -11.73
+ 2 / 2: -19.32 -24.83
+ 3 / 3: -27.39 -28.53
+ 4 / 4: -30.47 -31.64
+ ---- M:5 E: 5
+ 1 / 1: -29.54 -23.49
+ 2 / 2: -14.93 -8.29
+ 3 / 3: -6.55 -11.74
+ 4 / 4: -19.42 -24.84
+ ---- M:6 E: 6
+ 1 / 1: -27.49 -28.54
+ 2 / 2: -30.57 -31.74
+ 3 / 3: -29.64 -23.59
+ 4 / 4: -14.94 -8.39
+
+can data/all
+
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 ... 1:6 ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-E)
+ 1 2
+ 1 2
+ ---- M:1 E: 1
+ 1 / 1: -6.85 -30.27
+ 2 / 2: -6.75 -30.37
+ 3 / 3: -6.65 -30.47
+ 4 / 4: -6.55 -30.57
+ ---- M:2 E: 2
+ 1 / 1: -11.71 -31.34
+ 2 / 2: -11.72 -31.54
+ 3 / 3: -11.73 -31.64
+ 4 / 4: -11.74 -31.74
+ ---- M:3 E: 3
+ 1 / 1: -19.12 -29.34
+ 2 / 2: -19.22 -29.44
+ 3 / 3: -19.32 -29.54
+ 4 / 4: -19.42 -29.64
+ ---- M:4 E: 4
+ 1 / 1: -24.81 -23.29
+ 2 / 2: -24.82 -23.39
+ 3 / 3: -24.83 -23.49
+ 4 / 4: -24.84 -23.59
+ ---- M:5 E: 5
+ 1 / 1: -27.19 -14.91
+ 2 / 2: -27.29 -14.92
+ 3 / 3: -27.39 -14.93
+ 4 / 4: -27.49 -14.94
+ ---- M:6 E: 6
+ 1 / 1: -28.51 -8.09
+ 2 / 2: -28.52 -8.19
+ 3 / 3: -28.53 -8.29
+ 4 / 4: -28.54 -8.39
+
+*** Running test: bn_lon_lat_time_string.jnl
+! bn_lon_lat_time_string.jnl
+! Test function written for LAS, to create profile labels from
+! a list of lnogitudes, latitudes, times, and a prefix string.
+
+show function lon_lat_time_string
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
+ Generate strings from longitude,latitude,time
+ longitude: Station longitude
+ latitude: Station latitude
+ time: numeric times
+ time_axis: Varible with a time axis to use to convert time to time strings
+ string to prepend: A label to start the strings (STRING)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
+ Generate names based on longitude,latitude,time,and a string
+ longitude: Station longitude
+ latitude: Station latitude
+ time: numeric times
+ time_axis: Varible with a time axis to use to convert time to time strings
+ string to prepend: A label to start the names with (STRING)
+
+! Longitudes are translated to 0:360 range
+let lon = {-172.44, 210.01, -19.5}
+
+! latitudes are labeled N or S
+let lat = {3.12, 4.9, -15.03}
+
+! Time steps are interpreted in terms of a time axis
+let time = {1,2,3}
+define axis/t=1-jan-2001:31-jan-2001:1/units=days/t0=1-jan-2001 taxis
+let tt = t[gt=taxis]
+
+list lon_lat_time_string(lon, lat, time, tt, "my_string")
+ VARIABLE : LON_LAT_TIME_STRING(LON, LAT, TIME, TT, "my_string")
+ SUBSET : 3 points (X)
+ 1 / 1:"my_string_187.6E_3.12N_02-JAN-2001"
+ 2 / 2:"my_string_210E_4.9N_03-JAN-2001"
+ 3 / 3:"my_string_340.5E_15.03S_04-JAN-2001"
+
+*** Running test: bn_save_justdim.jnl
+! bn_save_justdim.jnl
+! When a dataset has axes that are dimensions but not 1-D coordinate variables,
+! no longer save the coordinate axis that Ferret creates from the dimension.
+!
+! Allows for a dimension and a 2-D variable to have the same name.
+! see ticket 2227
+! 1/21/2015 ACM
+
+use twodtime.nc
+sh dat
+ currently SET data sets:
+ 1> ./twodtime.nc (default)
+ name title I J K L M N
+ TIME GRIB forecast or observation ti ... ... ... 1:8 ... 1:3
+
+
+! previously this gave a name-in-use error
+save/file=a.nc/clobber time
+
+! The file has 2D TIME variable, and TIME as a dimension.
+sp ncdump a.nc >> all_ncdump.out
+
+! Now, keep case and axis name as on input
+CANCEL MODE upcase
+
+save/clobber/keep/file=a.nc time
+sp ncdump a.nc >> all_ncdump.out
+
+SET MODE/LAST upcase_output
+*** Running test: bn_time2d.jnl
+! bn_time2d.jnl
+! 1/30/2015 ACM
+
+! initial changes to handle 2d time variable: forecast and time
+! plot both axes as formatted time axes.
+
+use twodtime.nc
+sh dat
+ currently SET data sets:
+ 1> ./twodtime.nc (default)
+ name title I J K L M N
+ TIME GRIB forecast or observation ti ... ... ... 1:8 ... 1:3
+
+sh att time
+ attributes for dataset: ./twodtime.nc
+ time.units = calendar Month since 2014-11-01T00:00:00Z
+ time.long_name = GRIB forecast or observation time
+ time.calendar = proleptic_gregorian
+ time.bounds = time_bounds
+ time.history = From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD
+
+! The file has the t axis as just a dimension. Define another
+! axis with time units
+
+def axis/t=1:8:1/units=month/t0=1-nov-2014 taxis
+let time2d = time[gt=taxis at asn]
+set att/like=time time2d
+
+shade time2d
+shade/trans time2d
+*** Running test: bn_legend_labels.jnl
+! bn_legend_labels.jnl
+! The legend labels on a multi-line plot describe the
+! variable and context but are not controlable by the user.
+!
+! /KEY=title tells Ferret to label the legend with the variable
+! title.
+! *acm* 2/4/2015 Ticket 2231
+
+use coads_climatology
+let/title=January sst1 = sst[l=1]
+let/title=February sst2 = sst[l=2]
+let/title=March sst3 = sst[l=3]
+
+! Draw a plot and show the labels on the legend.
+plot/x=300/y=20:65 sst1,sst2,sst3
+sh sym lab7,lab8,lab9
+
+! Draw a plot with legend labeled with the variable titles.
+plot/x=300/y=20:65/key=title sst1,sst2,sst3
+sh sym lab7,lab8,lab9
+*** Running test: bn_DQ.jnl
+! bn_DQ.jnl *sh* 2/2015
+! test the use of _DQ_ and _SQ_ in lieu of " and '
+
+let foobar = 1
+let foobar_ = 1
+
+LIST foobar, foobar_
+ Column 1: FOOBAR is 1
+ Column 2: FOOBAR_ is 1
+ FOOBAR FOOBAR_
+I / *: 1.000 1.000
+
+LIST "foobar" ! bug fix: pre-V694 used to list the value of foobar
+ VARIABLE : "foobar"
+ "foobar"
+let a = "foobar"
+list a
+ VARIABLE : "foobar"
+ "foobar"
+
+list _DQ_foobar_DQ_
+ VARIABLE : _DQ_foobar_DQ_
+ "foobar"
+let a = _DQ_foobar_DQ_
+list a
+ VARIABLE : _DQ_foobar_DQ_
+ "foobar"
+
+! ======
+list "_DQ_foobar_DQ_"
+ VARIABLE : "_DQ_foobar_DQ_"
+ "_DQ_foobar_DQ_"
+let a = "_DQ_foobar_DQ_"
+list a
+ VARIABLE : "_DQ_foobar_DQ_"
+ "_DQ_foobar_DQ_"
+
+list _DQ_"foobar"_DQ_
+ VARIABLE : _DQ_"foobar"_DQ_
+ ""foobar""
+let a = _DQ_"foobar"_DQ_
+list a
+ VARIABLE : _DQ_"foobar"_DQ_
+ ""foobar""
+
+! ======
+list 'FOOBAR'
+ VARIABLE : 1
+ 1.000
+let a = 'FOOBAR'
+list a
+ VARIABLE : 'FOOBAR'
+ 1.000
+
+list _SQ_FOOBAR_SQ_
+ VARIABLE : 1
+ 1.000
+let a = _SQ_FOOBAR_SQ_
+list a
+ VARIABLE : _SQ_FOOBAR_SQ_
+ 1.000
+
+! ======
+list "'foobar'"
+ VARIABLE : "'foobar'"
+ "'foobar'"
+let a = "'foobar'"
+list a
+ VARIABLE : "'foobar'"
+ "'foobar'"
+
+list _DQ_'foobar'_DQ_
+ VARIABLE : _DQ_'foobar'_DQ_
+ "'foobar'"
+let a = _DQ_'foobar'_DQ_
+list a
+ VARIABLE : _DQ_'foobar'_DQ_
+ "'foobar'"
+
+! ======
+list "_SQ_foobar_SQ_"
+ VARIABLE : "_SQ_foobar_SQ_"
+ "_SQ_foobar_SQ_"
+let a = "_SQ_foobar_SQ_"
+list a
+ VARIABLE : "_SQ_foobar_SQ_"
+ "_SQ_foobar_SQ_"
+
+list _DQ__SQ_foobar_SQ__DQ_
+ VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+ "_SQ_foobar_SQ_"
+let a = _DQ__SQ_foobar_SQ__DQ_
+list a
+ VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+ "_SQ_foobar_SQ_"
+
+! ======
+list 'FOOBAR' + 'FOOBAR'
+ VARIABLE : 'FOOBAR' + 'FOOBAR'
+ 2.000
+let a = 'FOOBAR' + 'FOOBAR'
+list a
+ VARIABLE : 'FOOBAR' + 'FOOBAR'
+ 2.000
+
+list _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_ ! should behave like the preceding
+ VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+ 2.000
+let a = _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+list a
+ VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+ 2.000
+
+! ====== demonstrate hiding all sorts of characters
+let a = _DQ_'"+-/;_SQ_foobar"'_DQ_
+list a
+ VARIABLE : _DQ_'"+-/;_SQ_foobar"'_DQ_
+ "'"+-/;_SQ_foobar"'"
+
+! ======
+say "hello"
+hello
+say _DQ_hello_DQ_
+hello
+
+! ======
+list {"foobar","foobar"}
+ VARIABLE : {"foobar","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+let a = {"foobar","foobar"}
+list a
+ VARIABLE : {"foobar","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+
+list {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+let a = {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+list a
+ VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+
+list {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_} ! DQ used to protect '"'
+ VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:""foobar""
+ 2 / 2:""foobar""
+let a = {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+list a
+ VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:""foobar""
+ 2 / 2:""foobar""
+
+! ======
+list {SPAWN:"ls weird_name1.cdf","foobar"}
+ VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+list a
+ VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+
+list {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list a
+ VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+
+list {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+ VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list a
+ VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+
+! ======
+! in repl_exprns:
+say `"=" EQ "="`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_=_DQ_ EQ _DQ_=_DQ_`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_"="_DQ_ EQ _DQ_"="_DQ_` ! DQ used to protect '"'
+ !-> MESSAGE/CONTINUE 1
+1
+
+! in xeq_if:
+IF 1 THEN SAY "I is too big" ENDIF
+I is too big
+IF 1 THEN SAY _DQ_I is too big_DQ_ ENDIF
+I is too big
+IF 1 THEN SAY _DQ_"I is too big"_DQ_ ENDIF ! DQ used to protect '"'
+"I is too big"
+
+! ======
+DEFINE SYMBOL a "foobar"
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+DEFINE SYMBOL a _DQ_foobar_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+
+! ======
+DEFINE SYMBOL a "(`foobar,return=xaxis`)"
+ !-> DEFINE SYMBOL a "(ABSTRACT)"
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
+ !-> DEFINE SYMBOL a _DQ_(ABSTRACT)_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+
+! ======
+GO bn_DQ.sub _DQ_+-/_SQ_\!foo"bar;_SQ_"_DQ_ "_DQ_+-/_SQ_\!foobar;_SQ_"
+! bn_DQ.sub arg_with_DQ arg_with_quotes
+
+SAY _DQ_ "-quotations ok as in $1%any_arg_with_quotes%_DQ_
+ !-> MESSAGE/CONTINUE _DQ_ "-quotations ok as in +-/_SQ_!foo"bar;_SQ_"_DQ_
+ "-quotations ok as in +-/_SQ_!foo"bar;_SQ_"
+SAY "_DQ_ delimiters ok as in $2%any_arg_with_DQ%"
+ !-> MESSAGE/CONTINUE "_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_"
+_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_
+
+
+! ====== string arguments to functions
+list STRCAT( "HELL" , "O" )
+ VARIABLE : STRCAT( "HELL" , "O" )
+ "HELLO"
+list STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+ VARIABLE : STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+ "HELLO"
+
+! ======
+let/title= "title of A" a = 1
+list a
+ VARIABLE : title of A
+ 1.000
+let/title=_DQ_title of A_DQ_ a = 1
+list a
+ VARIABLE : title of A
+ 1.000
+let/title=_DQ_"title of A"_DQ_ a = 1 ! DQ used to protect '"'
+list a
+ VARIABLE : "title of A"
+ 1.000
+
+! ======
+use weird_name1.cdf
+list 'v2-and-minus'[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list 'v2-and-minus'[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list 'v2-and-minus'[i=4:6] / 'X'[i=4:6]
+ VARIABLE : 'v2-and-minus'[I=4:6] / 'X'[I=4:6]
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: -0.8741
+ 5 / 5: -0.8482
+ 6 / 6: -0.8166
+list _SQ_v2-and-minus_SQ_[i=4:6] / _SQ_X_SQ_[i=4:6]
+ VARIABLE : _SQ_v2-and-minus_SQ_[I=4:6] / _SQ_X_SQ_[I=4:6]
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: -0.8741
+ 5 / 5: -0.8482
+ 6 / 6: -0.8166
+
+! ======
+SET REGION/T= "1-jan-2001":"15-jan-2001"
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001_DQ_:_DQ_15-jan-2001_DQ_
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+SET REGION/T= "1-jan-2001:12:00":"15-jan-2001 12:00"
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001:12:00_DQ_:_DQ_15-jan-2001 12:00_DQ_
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+
+! ======
+DEFINE ATTRIBUTE foobar.some_text = "some text about foobar"
+SHOW ATTRIBUTE/ALL foobar
+ attributes for user-defined variables
+ foobar.long_name = 1
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar
+DEFINE ATTRIBUTE foobar.some_text = _DQ_some text about foobar_DQ_
+SHOW ATTRIBUTE/ALL foobar
+ attributes for user-defined variables
+ foobar.long_name = 1
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar
+DEFINE ATTR foobar.some_text = _DQ_"quoted attribute"_DQ_ ! DQ protects '"'
+SHOW ATTRIBUTE/ALL foobar
+ attributes for user-defined variables
+ foobar.long_name = 1
+ foobar.missing_value = -1.E+34
+ foobar.some_text = "quoted attribute"
+
+! ======
+SPAWN "ls weird_name1.*"
+weird_name1.cdf
+SPAWN _DQ_ls weird_name1.*_DQ_
+weird_name1.cdf
+
+! ======
+LET a = {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+LIST a
+ VARIABLE : {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+ SUBSET : 3 points (X)
+ 1 / 1:"first.nc"
+ 2 / 2:"weird_name1.cdf"
+ 3 / 3:"last.nc"
+LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+LIST a
+ VARIABLE : {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+ SUBSET : 3 points (X)
+ 1 / 1:"first.nc"
+ 2 / 2:"weird_name1.cdf"
+ 3 / 3:"last.nc"
+
+! =========================
+! !!!!!! TEMPORARY LINE
+! !!!!!! see bug report err693_xeq_show.jnl
+show data ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
+ currently SET data sets:
+ 1> ./weird_name1.cdf (default)
+ name title I J K L M N
+ v1 lower case v1 1:20 ... ... ... ... ...
+ v2-and-minus
+ SIN(2+I/10) 1:20 ... ... ... ... ...
+ V1 Upper case V1 1:20 ... ... ... ... ...
+ I SIN(4+I/10) 1:20 ... ... ... ... ...
+ X SIN(5+I/10) 1:20 ... ... ... ... ...
+
+! !!!!!!
+! =========================
+ ! ======
+define grid/x=_DQ_v1_DQ_ gg
+show grid gg
+ GRID GG
+ name axis # pts start end
+ XAX1_20 X 20 r 1 20
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+
+! ======
+LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
+LIST A
+ VARIABLE : 'A title w/ "sq"'. Ship_Ka'imimoana
+ 1.000
+
+! ======
+contour/LEVELS= "(-10,10,2)DARK(-10,10,8)" \
+ 10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+contour/LEVELS= _DQ_(-10,10,2)DARK(-10,10,8)_DQ_ \
+ 10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+
+! ====== parse, parsex routines
+!plot/set x[i=1:3]^2
+!ppl title "'A title w/ single quotes'. Ship Ka'imimoana"
+!ppl plot
+!label 2,5,0 "'A title w/ single quotes'. Ship Ka'imimoana"
+
+plot/set x[i=1:3]^2
+ppl title _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' for emacs
+ppl plot
+label 2,5,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ppl %label 2,4,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+
+! ====== EQUAL_PEMUTE
+list/order=_DQ_yx_DQ_ 10*i[i=1:3] + j[j=1:2]
+ VARIABLE : 10*I[I=1:3] + J[J=1:2]
+ SUBSET : 2 by 3 points (Y-X)
+ 1 2
+ 1 2
+ 1 / 1: 11.00 12.00
+ 2 / 2: 21.00 22.00
+ 3 / 3: 31.00 32.00
+
+! ====== EQUAL_COLOR
+plot/color=_DQ_red_DQ_ i[i=1:100]^2
+
+! ====== EQUAL_RANGE
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980" \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980_DQ_ \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980:12:00" \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+
+! the following usages for _DQ_ and _SQ_ are NOT supported:
+! 1. internal PLOT+ syntax
+! e.g. PPL XFOR (i5, ''LONW'')
+
+! 2. quote used as a delimiter for symbol substitution
+! e.g. ($mysymbol"0|red>1|green>2") ! several single char als. e.g. "%"
+
+! in xeq_set: double quotes around SET MODE argument -- _DQ_ not supported
+
+! in put_label: special hack for "'date'" -- _SQ_ not supported
+
+! it isn't clear that there is really a requirement for the _SQ_ syntax at all
+! since we are adding this feature to meet our own needs in LAS, we won't
+! make the extra effort to hit all of the obscure cases. As a result, the
+! occurrences of IF string .EQ. "'" in these routines will be ignored
+! - break_varname
+! - break_varattname
+! - inherit_attrs
+
+! in xeq_define.F: DEFINE AXIS/NAME='my-name' is of unclear purpose
+*** Running test: bn695_bug_fixes.jnl
+! bn695_bug_fixes
+! test various fixes that went into version 6.95
+
+GO bn_reset
+cancel mode verify
+GO err694_shf_missing
+! err694_shf_missing.jnl
+! Test the fix for ticket 2314
+
+! This had been getting a missing-result; now is correct
+use gt4d011.cdf
+list/i=100/j=50/k=1/l=24 temp[l=@shf]
+ VARIABLE : TEMPERATURE (deg. C)
+ FILENAME : gt4d011.cdf
+ LONGITUDE: 130.5W
+ LATITUDE : 1.5N
+ DEPTH (m): 5
+ TIME : 04-JAN-1983 10:00 (shifted by 1 pts)
+ 32.10
+
+! Check shift that takes us beyond the end of a modulo axis (at x=20)
+can dat/all; use coads_climatology
+list/x=10:30/y=-60/l=1 sst
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 10 points (LONGITUDE)
+ LATITUDE : 61S
+ TIME : 16-JAN 06:00
+ 61S
+ 15
+ 11E / -4: 0.447
+ 13E / -3: 0.179
+ 15E / -2: 0.521
+ 17E / -1: 0.229
+ 19E / 0: 0.727
+ 21E / 1: 0.844
+ 23E / 2: 0.440
+ 25E / 3: 0.620
+ 27E / 4: 0.873
+ 29E / 5: 1.062
+list/x=10:30/y=-60/l=1 sst[i=@shf:3]
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ shifted by 3 pts on X
+ FILENAME : coads_climatology.cdf
+ SUBSET : 10 points (LONGITUDE)
+ LATITUDE : 61S
+ TIME : 16-JAN 06:00
+ 61S
+ 15
+ 11E / -4: 0.229
+ 13E / -3: 0.727
+ 15E / -2: 0.844
+ 17E / -1: 0.440
+ 19E / 0: 0.620
+ 21E / 1: 0.873
+ 23E / 2: 1.062
+ 25E / 3: 1.261
+ 27E / 4: 1.395
+ 29E / 5: 1.010
+
+GO bn_reset
+cancel mode verify
+GO err694_longname_showdat
+! err694_longname_showdat.jnl
+! ticket 2317
+!
+! Make a file whose name starts the same as file with long name.
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+
+! Long name was not matched by SHOW DAT filename
+! this previously returned an unknown dataset error
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+ currently SET data sets:
+ 1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
+ name title I J K L M N
+ PROF Prof ... ... ... ... 1:21 ...
+ TIME Time ... ... ... ... 1:21 ...
+ LATITUDE Latitude ... ... ... ... 1:21 ...
+ LONGITUDE
+ Longitude ... ... ... ... 1:21 ...
+ ROWSIZE Number of Observations for this ... ... ... ... 1:21 ...
+ PRESS_DB PRESS_DB 1:373 ... ... ... ... ...
+ PCO2 PCO2 1:373 ... ... ... ... ...
+
+
+! If a file matched to 1st 32 characters, the shorter-named
+! datset was mistakenly returned.
+
+use WestCoastCarbon_9d9c_f562_77b5_5
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+ currently SET data sets:
+ 1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ name title I J K L M N
+ PROF Prof ... ... ... ... 1:21 ...
+ TIME Time ... ... ... ... 1:21 ...
+ LATITUDE Latitude ... ... ... ... 1:21 ...
+ LONGITUDE
+ Longitude ... ... ... ... 1:21 ...
+ ROWSIZE Number of Observations for this ... ... ... ... 1:21 ...
+ PRESS_DB PRESS_DB 1:373 ... ... ... ... ...
+ PCO2 PCO2 1:373 ... ... ... ... ...
+
+
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+
+GO bn_reset
+cancel mode verify
+GO err693_std4d
+! err693_std4d
+! Check fix to ticket 2319: std transform in multi-dimensions
+
+
+let a = x[gx=1:3:1] * y[gy=1:3:1]
+let astd = a[x=@std,y=@std]
+let avar = a[x=@var,y=@var]
+let a2 = a^2
+let avar_calc = a2[x=@ave,y=@ave] - a[x=@ave,y=@ave]^2
+let astd_x = a[x=@std]
+let astd_x_y = astd_x[y=@std]
+
+! STD and VAR in x and y together; vs astd_x_y separately
+list astd^2, avar, avar_calc, astd_x_y^2
+ X: 0.5 to 3.5
+ Y: 0.5 to 3.5
+ Column 1: EX#1 is ASTD^2
+ Column 2: AVAR is A[X=@VAR,Y=@VAR]
+ Column 3: AVAR_CALC is A2[X=@AVE,Y=@AVE] - A[X=@AVE,Y=@AVE]^2
+ Column 4: EX#4 is ASTD_X_Y^2
+ EX#1 AVAR AVAR_CA EX#4
+I / *: 5.778 5.778 5.778 0.4444
+
+
+! Now in the E and F directions
+
+let a = _e[ge=1:3:1] * _f[gf=1:3:1]
+let astd = a[e=@std,f=@std]
+let avar = a[e=@var,f=@var]
+let a2 = a^2
+let avar_calc = a2[e=@ave,f=@ave] - a[e=@ave,f=@ave]^2
+let astd_e = a[e=@std]
+let astd_e_f = astd_e[f=@std]
+
+list astd^2, avar, avar_calc, astd_e_f^2
+ E: 0.5 to 3.5
+ F: 0.5 to 3.5
+ Column 1: EX#1 is ASTD^2
+ Column 2: AVAR is A[E=@VAR,F=@VAR]
+ Column 3: AVAR_CALC is A2[E=@AVE,F=@AVE] - A[E=@AVE,F=@AVE]^2
+ Column 4: EX#4 is ASTD_E_F^2
+ EX#1 AVAR AVAR_CA EX#4
+I / *: 5.778 5.778 5.778 0.4444
+
+*** Running test: bn_f_tax_fcns.jnl
+! bn_f_from_tax_fcns.jnl
+! test tax_* functions returning results from a
+! time-formatted axis in the F direction
+!
+! 2/2015 ACM
+
+define axis/f=1-jan-2011:31-jan-2011:1/units=hours fax
+
+
+
+let ff = _f[gf=fax]
+! Test RETURN=F0
+say `ff,return=F0`
+ !-> MESSAGE/CONTINUE 15-JAN-1901
+15-JAN-1901
+
+list/N=20:30 tax_datestring(_F[g=ff],ff,"minute")
+ VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"minute")
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19:00"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20:00"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21:00"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22:00"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23:00"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00:00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01:00"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02:00"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03:00"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04:00"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05:00"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"hour")
+ VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"hour")
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"day")
+ VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"day")
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011"
+list/N=20:30 tax_dayfrac(_F[g=ff],ff)
+ VARIABLE : TAX_DAYFRAC(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 0.7917
+ 01-JAN-2011 20:00 / 21: 0.8333
+ 01-JAN-2011 21:00 / 22: 0.8750
+ 01-JAN-2011 22:00 / 23: 0.9167
+ 01-JAN-2011 23:00 / 24: 0.9583
+ 02-JAN-2011 00:00 / 25: 0.0000
+ 02-JAN-2011 01:00 / 26: 0.0417
+ 02-JAN-2011 02:00 / 27: 0.0833
+ 02-JAN-2011 03:00 / 28: 0.1250
+ 02-JAN-2011 04:00 / 29: 0.1667
+ 02-JAN-2011 05:00 / 30: 0.2083
+list/N=20:30 tax_day(_F[g=ff],ff)
+ VARIABLE : TAX_DAY(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 1.000
+ 01-JAN-2011 20:00 / 21: 1.000
+ 01-JAN-2011 21:00 / 22: 1.000
+ 01-JAN-2011 22:00 / 23: 1.000
+ 01-JAN-2011 23:00 / 24: 1.000
+ 02-JAN-2011 00:00 / 25: 2.000
+ 02-JAN-2011 01:00 / 26: 2.000
+ 02-JAN-2011 02:00 / 27: 2.000
+ 02-JAN-2011 03:00 / 28: 2.000
+ 02-JAN-2011 04:00 / 29: 2.000
+ 02-JAN-2011 05:00 / 30: 2.000
+list/N=20:30 tax_jday(_F[g=ff],ff)
+ VARIABLE : TAX_JDAY(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 1.000
+ 01-JAN-2011 20:00 / 21: 1.000
+ 01-JAN-2011 21:00 / 22: 1.000
+ 01-JAN-2011 22:00 / 23: 1.000
+ 01-JAN-2011 23:00 / 24: 1.000
+ 02-JAN-2011 00:00 / 25: 2.000
+ 02-JAN-2011 01:00 / 26: 2.000
+ 02-JAN-2011 02:00 / 27: 2.000
+ 02-JAN-2011 03:00 / 28: 2.000
+ 02-JAN-2011 04:00 / 29: 2.000
+ 02-JAN-2011 05:00 / 30: 2.000
+list/N=20:30 tax_month(_F[g=ff],ff)
+ VARIABLE : TAX_MONTH(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 1.000
+ 01-JAN-2011 20:00 / 21: 1.000
+ 01-JAN-2011 21:00 / 22: 1.000
+ 01-JAN-2011 22:00 / 23: 1.000
+ 01-JAN-2011 23:00 / 24: 1.000
+ 02-JAN-2011 00:00 / 25: 1.000
+ 02-JAN-2011 01:00 / 26: 1.000
+ 02-JAN-2011 02:00 / 27: 1.000
+ 02-JAN-2011 03:00 / 28: 1.000
+ 02-JAN-2011 04:00 / 29: 1.000
+ 02-JAN-2011 05:00 / 30: 1.000
+list/N=20:30 tax_yearfrac(_F[g=ff],ff)
+ VARIABLE : TAX_YEARFRAC(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 0.004909
+ 01-JAN-2011 20:00 / 21: 0.005023
+ 01-JAN-2011 21:00 / 22: 0.005137
+ 01-JAN-2011 22:00 / 23: 0.005251
+ 01-JAN-2011 23:00 / 24: 0.005365
+ 02-JAN-2011 00:00 / 25: 0.005479
+ 02-JAN-2011 01:00 / 26: 0.005594
+ 02-JAN-2011 02:00 / 27: 0.005708
+ 02-JAN-2011 03:00 / 28: 0.005822
+ 02-JAN-2011 04:00 / 29: 0.005936
+ 02-JAN-2011 05:00 / 30: 0.006050
+list/N=20:30 tax_year(_F[g=ff],ff)
+ VARIABLE : TAX_YEAR(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 2011.
+ 01-JAN-2011 20:00 / 21: 2011.
+ 01-JAN-2011 21:00 / 22: 2011.
+ 01-JAN-2011 22:00 / 23: 2011.
+ 01-JAN-2011 23:00 / 24: 2011.
+ 02-JAN-2011 00:00 / 25: 2011.
+ 02-JAN-2011 01:00 / 26: 2011.
+ 02-JAN-2011 02:00 / 27: 2011.
+ 02-JAN-2011 03:00 / 28: 2011.
+ 02-JAN-2011 04:00 / 29: 2011.
+ 02-JAN-2011 05:00 / 30: 2011.
+list/N=20:30 tax_jday1900(_F[g=ff],ff)
+ VARIABLE : TAX_JDAY1900(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 40542.
+ 01-JAN-2011 20:00 / 21: 40542.
+ 01-JAN-2011 21:00 / 22: 40542.
+ 01-JAN-2011 22:00 / 23: 40542.
+ 01-JAN-2011 23:00 / 24: 40542.
+ 02-JAN-2011 00:00 / 25: 40543.
+ 02-JAN-2011 01:00 / 26: 40543.
+ 02-JAN-2011 02:00 / 27: 40543.
+ 02-JAN-2011 03:00 / 28: 40543.
+ 02-JAN-2011 04:00 / 29: 40543.
+ 02-JAN-2011 05:00 / 30: 40543.
+list tax_units(ff)
+ VARIABLE : TAX_UNITS(FF)
+ 3600.
+
+! commands from tax_tstep, changing time origin
+
+DEFINE AXIS/F="1-JAN-2000:00:00:01":"1-JAN-2000:00:15:00":2/UNITS=seconds fsec
+LIST/N=440:451 _F[GF=fsec]
+ VARIABLE : _F
+ axis FSEC
+ SUBSET : 12 points (FORECAST)
+ 01-JAN-2000 00:14:39 / 440: 3.123E+09
+ 01-JAN-2000 00:14:41 / 441: 3.123E+09
+ 01-JAN-2000 00:14:43 / 442: 3.123E+09
+ 01-JAN-2000 00:14:45 / 443: 3.123E+09
+ 01-JAN-2000 00:14:47 / 444: 3.123E+09
+ 01-JAN-2000 00:14:49 / 445: 3.123E+09
+ 01-JAN-2000 00:14:51 / 446: 3.123E+09
+ 01-JAN-2000 00:14:53 / 447: 3.123E+09
+ 01-JAN-2000 00:14:55 / 448: 3.123E+09
+ 01-JAN-2000 00:14:57 / 449: 3.123E+09
+ 01-JAN-2000 00:14:59 / 450: 3.123E+09
+ 01-JAN-2000 00:15:01 / 451: 3.123E+09
+LET bsin = SIN(_F[GF=fsec]/40000)
+SAVE/FILE=a.nc/clobber bsin
+CAN VAR/all
+USE a.nc
+
+SET LIST/PREC=7
+! Reset the date to dec 1999
+! Function lets us leave off the leading 0.
+LIST/N=1:15 TAX_TSTEP(bsin, "1-dec-1999:00:00:00" )
+ VARIABLE : TAX_TSTEP(BSIN, "1-dec-1999:00:00:00" )
+ FILENAME : a.nc
+ SUBSET : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 / 1: 2678401.
+ 01-JAN-2000 00:00:03 / 2: 2678403.
+ 01-JAN-2000 00:00:05 / 3: 2678405.
+ 01-JAN-2000 00:00:07 / 4: 2678407.
+ 01-JAN-2000 00:00:09 / 5: 2678409.
+ 01-JAN-2000 00:00:11 / 6: 2678411.
+ 01-JAN-2000 00:00:13 / 7: 2678413.
+ 01-JAN-2000 00:00:15 / 8: 2678415.
+ 01-JAN-2000 00:00:17 / 9: 2678417.
+ 01-JAN-2000 00:00:19 / 10: 2678419.
+ 01-JAN-2000 00:00:21 / 11: 2678421.
+ 01-JAN-2000 00:00:23 / 12: 2678423.
+ 01-JAN-2000 00:00:25 / 13: 2678425.
+ 01-JAN-2000 00:00:27 / 14: 2678427.
+ 01-JAN-2000 00:00:29 / 15: 2678429.
+
+! argument can be upper or lowercase
+! Should list values 1, 3, 5...
+LIST/N=1:15 TAX_TSTEP(bsin, "1-JAN-2000:00:00:00" )
+ VARIABLE : TAX_TSTEP(BSIN, "1-JAN-2000:00:00:00" )
+ FILENAME : a.nc
+ SUBSET : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 / 1: 1.00000
+ 01-JAN-2000 00:00:03 / 2: 3.00000
+ 01-JAN-2000 00:00:05 / 3: 5.00000
+ 01-JAN-2000 00:00:07 / 4: 7.00000
+ 01-JAN-2000 00:00:09 / 5: 9.00000
+ 01-JAN-2000 00:00:11 / 6: 11.00000
+ 01-JAN-2000 00:00:13 / 7: 13.00000
+ 01-JAN-2000 00:00:15 / 8: 15.00000
+ 01-JAN-2000 00:00:17 / 9: 17.00000
+ 01-JAN-2000 00:00:19 / 10: 19.00000
+ 01-JAN-2000 00:00:21 / 11: 21.00000
+ 01-JAN-2000 00:00:23 / 12: 23.00000
+ 01-JAN-2000 00:00:25 / 13: 25.00000
+ 01-JAN-2000 00:00:27 / 14: 27.00000
+ 01-JAN-2000 00:00:29 / 15: 29.00000
+
+! Test with TAX_DATESTRING
+
+DEFINE AXIS/F="1-JAN-1902:00:00:00":"1-JAN-1902:00:30:00":5/UNITS=seconds fsec
+LIST/N=200:205 _F[GF=fsec]
+ VARIABLE : _F
+ axis FSEC
+ SUBSET : 6 points (FORECAST)
+ 01-JAN-1902 00:16:35 / 200: 30327395.
+ 01-JAN-1902 00:16:40 / 201: 30327400.
+ 01-JAN-1902 00:16:45 / 202: 30327405.
+ 01-JAN-1902 00:16:50 / 203: 30327410.
+ 01-JAN-1902 00:16:55 / 204: 30327415.
+ 01-JAN-1902 00:17:00 / 205: 30327420.
+
+LET ff = _F[GF=fsec]
+LET reset_date = TAX_DATESTRING(`_F[GF=fsec,n=1]`, ff, "sec")
+ !-> DEFINE VARIABLE reset_date = TAX_DATESTRING(30326400, ff, "sec")
+LIST/N=1:15 TAX_TSTEP(ff, "`reset_date`")
+ !-> LIST/N=1:15 TAX_TSTEP(ff, "01-JAN-1902 00:00:00")
+ VARIABLE : TAX_TSTEP(FF, "01-JAN-1902 00:00:00")
+ SUBSET : 15 points (FORECAST)
+ 01-JAN-1902 00:00:00 / 1: 0.00000
+ 01-JAN-1902 00:00:05 / 2: 5.00000
+ 01-JAN-1902 00:00:10 / 3: 10.00000
+ 01-JAN-1902 00:00:15 / 4: 15.00000
+ 01-JAN-1902 00:00:20 / 5: 20.00000
+ 01-JAN-1902 00:00:25 / 6: 25.00000
+ 01-JAN-1902 00:00:30 / 7: 30.00000
+ 01-JAN-1902 00:00:35 / 8: 35.00000
+ 01-JAN-1902 00:00:40 / 9: 40.00000
+ 01-JAN-1902 00:00:45 / 10: 45.00000
+ 01-JAN-1902 00:00:50 / 11: 50.00000
+ 01-JAN-1902 00:00:55 / 12: 55.00000
+ 01-JAN-1902 00:01:00 / 13: 60.00000
+ 01-JAN-1902 00:01:05 / 14: 65.00000
+ 01-JAN-1902 00:01:10 / 15: 70.00000
+*** Running test: bn_fmrc.jnl
+! bn_fmrc.jnl
+! initial test of DEFINE DATA/F
+
+use "run1.nc"
+use "run2.nc"
+use "run3.nc"
+use "run4.nc"
+
+define data/hide/F/agg/title fourfiles = 1,2,3,4
+
+sh grid sst
+ GRID (G007)
+ name axis # pts start end
+ LON LONGITUDE 10mr 109W 91W
+ LAT LATITUDE 9 r 13N 29N
+ normal Z
+ TF_LAG_T MODEL ELAPSED TIME (12 r 0 11
+ normal E
+ TF_CAL_F FORECAST 4 r 02-JAN-2010 00:00 08-JAN-2010 00:00
+list/i=1/j=1/L=1:6/n=1:4 sst
+ VARIABLE : SST_IN (Deg C)
+ FILENAME : FOURFILES
+ SUBSET : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
+ LONGITUDE: 109W
+ LATITUDE : 13N
+ Verification time increases across row. Initialization time increases down page.
+ 0 1 2 3 4 5
+ 1 2 3 4 5 6
+ 02-JAN-2010 00 / 1: 27.4 27.4 27.6 28.1 28.9 28.8
+ 04-JAN-2010 00 / 2: 54.8 54.9 55.2 56.3 57.7 57.6
+ 06-JAN-2010 00 / 3: 82.1 82.3 82.7 84.4 86.6 86.3
+ 08-JAN-2010 00 / 4: 109.5 109.8 110.3 112.5 115.5 115.1
+
+show att sst
+ attributes for dataset: FOURFILES
+ SST.long_name = SST_IN
+ SST.units = Deg C
+ SST.missing_value = -1.E+34
+ SST.coordinates = FORECAST TF_TIMES LAT LON
+ SST._ftime2dRef = TF_TIMES
+
+! Attribute _ftime2dRef pointe to the 2D time variable
+list/L=1:6/n=1:4 `sst._ftime2dRef`
+ !-> list/L=1:6/n=1:4 TF_TIMES
+ VARIABLE : Forecast time step matrix (day since 01-JAN-2010 00:00:00)
+ FILENAME : FOURFILES
+ SUBSET : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
+ Verification time increases across row. Initialization time increases down page.
+ 0 1 2 3 4 5
+ 1 2 3 4 5 6
+ 02-JAN-2010 00 / 1: 1.00 2.00 3.00 4.00 5.00 6.00
+ 04-JAN-2010 00 / 2: 7.00 8.00 9.00 10.00 11.00 12.00
+ 06-JAN-2010 00 / 3: 3.00 4.00 5.00 6.00 7.00 8.00
+ 08-JAN-2010 00 / 4: 9.00 10.00 11.00 12.00 13.00 14.00
+
+*** Running test: bn_return_defined.jnl
+! bn_return_defined.jnl
+! 5/3/2015 *acm*
+! `return=defined` returns 1 if the user variable is defined
+! see ticket 2293
+
+let a = b
+say `a,r=defined` `b,r=defined`
+ !-> MESSAGE/CONTINUE 1 0
+1 0
+
+! abbreviate to 3 letters
+use levitus_climatology
+let temp2 = 2*temp
+say `temp2,return=def`
+ !-> MESSAGE/CONTINUE 1
+1
+
+! returns false for file variables
+say `temp,return=defined`
+ !-> MESSAGE/CONTINUE 0
+0
+*** Running test: bn_can_var_noerr.jnl
+! bn_can_var_noerr.jnl
+! CANCEL VARIABLE/NOERROR
+
+
+let a = 1
+
+! intentional error
+set mode ignore
+cancel var b,a
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ A = 1
+
+cancel mode ignore
+
+! specify /noerr and we can issue the command
+
+cancel var/noerror a,b
+show var
+ Created by DEFINE VARIABLE:
+
+! no effect on CAN VAR/ALL or CAN VAR template_name
+
+let a1 = 1
+let a7 = 7
+let c = 12
+
+cancel var/noerror name*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ C = 12
+ A7 = 7
+ A1 = 1
+
+cancel var/noerror a*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ C = 12
+
+cancel var/noerror/all
+show var
+ Created by DEFINE VARIABLE:
+*** Running test: bn_annotate.jnl
+! bn_annotate.jnl
+! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
+! locates user-defined labels on a plot.
+! /USER and /NOUSER behave as the LABEL command does
+! /NORM locates labels relative to the plot axis, treating them as a unit "square".
+! /VALIGN moves the label up or down relative to the direction of the label
+! /HALIGN is -1, 1, or 0 as always, or larger values to move the label horizontally
+! relative to the direction of the label. Allows us to move, say, one character in
+! or out from the axis corner.
+
+can mode logo
+
+! ANNOTATE /USER
+set v ul
+plot/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+annotate/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=0.2 "X"
+annotate/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=0.2 "X"
+annotate/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=0.2 "X"
+
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+annotate/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=0.2 "BOX"
+
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+ annotate/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=0.2 "BOX"
+
+plot/ov/vs/sym=2/size=2/nolab 3,0
+annotate/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=0.2 "TOP"
+annotate/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=0.2 "BOTTOM"
+
+plot/ov/vs/sym=2/size=2/nolab -3,0
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=0.2 "M"
+
+
+
+! ANNOTATE/NORM
+set v ur
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+
+annotate/norm/xpos=.5/ypos=1.1/halign=0/angle=0/size=0.14 "FLOATING TITLE"
+annotate/norm/xpos=.5/ypos=-.2/halign=0/angle=0/size=0.14 "SUBMERGED TITLE"
+annotate/norm/xpos=0/ypos=1/halign=-1/angle=0/size=0.14 "LEFT/TOP"
+annotate/norm/xpos=.5/ypos=1/halign=0/angle=0/size=0.14 "CTR/TOP"
+annotate/norm/xpos=1/ypos=1/halign=1/angle=0/size=0.14 "RIGHT/TOP"
+annotate/norm/xpos=1/ypos=.5/halign=0/angle=-90/size=0.14 "RIGHT EDGE"
+annotate/norm/xpos=0/ypos=.5/halign=0/angle=90/size=0.14 "LEFT EDGE"
+annotate/norm/xpos=.5/ypos=.5/halign=0/valign=0/angle=0/size=0.14 "DEAD CENTER"
+annotate/norm/xpos=.5/ypos=0/halign=0/valign=1/angle=0/size=0.14 "HANGING FROM BOTTOM"
+annotate/norm/xpos=0/ypos=0/halign=-2/valign=-2/angle=0/siz=0.1 "BOTTOM LEFT INSET"
+annotate/norm/xpos=0/ypos=1/halign=-2/valign=2/angle=0/siz=0.1 "TOP LEFT INSET"
+annotate/norm/xpos=1/ypos=0/halign=2/valign=-2/angle=0/siz=0.1 "BOTTOM RIGHT INSET"
+annotate/norm/xpos=1/ypos=1/halign=2/valign=2/angle=0/siz=0.1 "TOP RIGHT INSET"
+
+! ANNOTATE/NOUSER
+set v ll
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+
+! nouser
+annotate/nouser/xpos=0/ypos=0/halign=-1/angle=0/size=0.15 "At Origin"
+annotate/nouser/xpos=0/ypos=0/halign=-3/valign=-3/angle=0/size=0.15 "With/HALIGN=-3/VALIGN=-3"
+
+annotate/nouser/xpos=($ppl$xlen)/ypos=($ppl$ylen)/halign=1/valign=-1/angle=0/siz=0.15 "Right-align at upper right corner"
+ !-> annotate/nouser/xpos=5.01200/ypos=3.42300/halign=1/valign=-1/angle=0/siz=0.15 "Right-align at upper right corner"
+annotate/nouser/xpos=($ppl$xlen)/ypos=($ppl$ylen)/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+ !-> annotate/nouser/xpos=5.01200/ypos=3.42300/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+
+plot/vs/line/over/color=lightblue/nolab {3,3},{1,6}
+plot/vs/line/over/color=lightblue/nolab {1,5}, {3,3}
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=`($ppl$ylen)/2`/halign=0/valign=0/angle=0/siz=0.15 \
+"Arguments locate the first<nl>line of multi-line labels "
+ !-> annotate/nouser/xpos=2.506/ypos=1.7115/halign=0/valign=0/angle=0/siz=0.15 "Arguments locate the first<nl>line of multi-line labels "
+
+! angles
+set v lr
+
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+! nouser
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+annotate/nouser/xpos=0/ypos=0/halign=0/valign=0/angle=45/size=0.15 "Center At Origin"
+annotate/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+ !-> annotate/nouser/xpos=0/ypos=3.42300/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+annotate/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+ !-> annotate/nouser/xpos=5.01200/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+
+! Test defaults
+! Default is like PPL user-labels
+! /USER/SIZ=0.12/ANGLE=0/HALIGN=0/VALIGN=-1
+
+shade/x=1:2/y=1:2/pal=grayscale i+j
+annotate/xpos=1.5/ypos=1.8 "Anno Label"
+label 1.5,1.6,,,, PPL label
+
+
+! DEFINE ANNOTATION inside a grapchics call with /SET
+can view
+use gt4d011.cdf
+shade/set temp[k=1,l=1]
+ DEFINE ANNOTATION/user/xpos=224/ypos=-3/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+
+shade/set/j=40/L=1 temp
+ DEFINE ANNOTATION/user/xpos=224/ypos=80/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+
+can data/all
+
+plot/set/i=1:5 i
+! nouser
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=0/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.00000/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=8.00000/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=0/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=0/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=0/siz=0.15 "user units right at 3,4"
+ppl plot
+
+! angles
+
+plot/set/i=1:5 i
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=45/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.00000/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=8.00000/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=45/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=45/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=45/siz=0.15 "user units right at 3,4"
+ppl plot
+
+! DEFINE ANNO/NORM
+plot/i=1:5/nolab/set i
+def anno/norm/xp=.5/yp=1.1/hal=0/ang=0/size=.3 "FLOATING TITLE"
+def anno/norm/xp=.5/yp=-.2/hal=0/ang=0/size=.3 "SUBMERGED TITLE"
+def anno/norm/xp=0/yp=1/hal=-1/ang=0/size=.3 "LEFT/TOP"
+def anno/norm/xp=.5/yp=1/hal=0/ang=0/size=.3 "CTR/TOP"
+def anno/norm/xp=1/yp=1/hal=1/ang=0/size=.3 "RIGHT/TOP"
+def anno/norm/xp=1/yp=.5/hal=0/ang=-90/size=.3 "RIGHT EDGE"
+def anno/norm/xp=0/yp=.5/hal=0/ang=90/size=.3 "LEFT EDGE"
+def anno/norm/xp=.5/yp=.5/hal=0/val=0/ang=0/size=.3 "DEAD CENTER"
+def anno/norm/xp=.5/yp=0/hal=0/val=1/ang=0/size=.3 "HANGING FROM BOTTOM"
+def anno/norm/xp=0/yp=0/hal=-2/val=-2/ang=0/size=.2 "BOTTOM LEFT INSET"
+def anno/norm/xp=0/yp=1/hal=-2/val=2/ang=0/size=.2 "TOP LEFT INSET"
+def anno/norm/xp=1/yp=0/hal=2/val=-2/ang=0/size=.2 "BOTTOM RIGHT INSET"
+def anno/norm/xp=1/yp=1/hal=2/val=2/ang=0/size=.2 "TOP RIGHT INSET"
+ppl plot
+
+plot/set/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+
+define annotation/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=.5 "X"
+define annotation/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=.5 "X"
+define annotation/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=.5 "X"
+define annotation/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=.5 "BOX"
+define annotation/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=.5 "BOX"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=.5 "TOP"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=.5 "BOTTOM"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=.5 "M"
+ppl list labels
+
+ @AS{-1,1}
+ @AS{-1,1}
+
+ XPOS YPOS HGT ROT UNITS
+ LAB 1 0.000E+00 6.600E+00 0.120 0 SYSTEM @ASX : 0.5 to 2.5
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB 2 -1.313E+00 -1.000E+00 0.500 -90 USER X
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 3 0.000E+00 -8.333E-01 0.500 0 USER X
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 4 1.221E+00 4.107E-01 0.500 45 USER X
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 5 0.000E+00 4.167E+00 0.500 0 USER BOX
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 6 3.125E-01 -5.000E+00 0.500 90 USER BOX
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 7 3.442E+00 -1.179E+00 0.500 45 USER TOP
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 8 3.000E+00 0.000E+00 0.500 45 USER BOTTOM
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 9 -3.000E+00 0.000E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB10 -2.558E+00 -1.179E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB11 -3.000E+00 0.000E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB12 -2.558E+00 -1.179E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB13 -3.000E+00 2.357E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB14 -1.674E+00 -1.179E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB15 -3.884E+00 5.515E-08 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB16 -2.558E+00 -3.536E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB17 -1.455E+00 -2.952E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB18 -1.893E+00 -4.119E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB19 -3.665E+00 2.940E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB20 -4.103E+00 1.774E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ppl plot
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+plot/ov/vs/sym=2/size=2/nolab 3,0
+plot/ov/vs/sym=2/size=2/nolab -3,0
+
+! intentional errors
+set mode ignore
+can v
+shade/i=1:2/j=1:2/nokey i+j
+
+
+! errors in arguments
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+
+! missing a location
+annotate/nouser/ypos=0 "My Lab"
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+
+! /USER and /NOUSER
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+
+! define annotation
+
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/ypos=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/hal=1/val=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/user/xpos=0/ypos=0 "My Lab"; ppl plot
+*** Running test: bn_auxiliary.jnl
+! bn_auxiliary.jnl: exercise auxiliary coordinate regridding
+
+! notes about the 6/2015 version:
+! -- tests 1D regridding, only, as of 6/2015
+! -- includestests the deprecated "LAYERZ" and "__LayerzRef_" automation syntax
+! ... to be replaced by a different automation syntax in the future
+
+! *sh* 6/2015
+
+! initialize the test environment
+USE levitus_3d_subset
+SPAWN rm layerz_test_data.txt
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+
+! conjure a 4D auxiliary variable that contains the same values
+! as the native Z coordinates
+! regridding using this auxiliary variable should give the same results as
+! conventional regridding -- usefuly to validate the results
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+
+!************
+! exercise the syntax of setting layerz associations
+! do same tests on EZ, uvar, and netCDF variable
+
+! EZ file variable
+LIST/NOHEAD/FILE=layerz_test_data.txt 1
+FILE/VAR=v layerz_test_data.txt
+! set the layerz link to point to a variable named "depth"
+SET VAR/layerz=depth v
+SHOW VAR/LAYERZ v
+ DEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+! modify the layerz link
+SET VAR/layerz=newdepth v
+SHOW VAR/LAYERZ v
+ NEWDEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+ attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V
+ V.missing_value = -1.E+34
+ V.__LayerzRef_ = NEWDEPTH
+cancel var/layerz v
+SHOW VAR/LAYERZ v
+ No variable holds vertical (layerz) coordinates of V
+SHOW ATT v
+ attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V
+ V.missing_value = -1.E+34
+CANCEL DATA layerz_test_data.txt
+
+! user variable
+! set the layerz link
+LET a = temp
+SET VAR/layerz=depth a
+SHOW VAR/LAYERZ a
+ DEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+ attributes for user-defined variables
+ a.long_name = TEMP
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = DEPTH
+! modify the layerz link
+SET VAR/layerz=newdepth a
+SHOW VAR/LAYERZ a
+ NEWDEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+ attributes for user-defined variables
+ a.long_name = TEMP
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = NEWDEPTH
+cancel var/layerz a
+SHOW VAR/LAYERZ a
+ No variable holds vertical (layerz) coordinates of a
+SHOW ATT a
+ attributes for user-defined variables
+ a.long_name = TEMP
+ a.missing_value = -1.E+34
+
+! netCDF file variable
+! set the layerz link
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+ DEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+ attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = DEPTH
+! modify the layerz link
+SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+ NEWDEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+ attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = NEWDEPTH
+cancel var/layerz temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+ No variable holds vertical (layerz) coordinates of TEMP
+SHOW ATT temp[d=levitus_3d_subset] ! __LayerzRef_ has been deleted
+ attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.missing_value = -1.E+10
+ TEMP._FillValue = -1.E+10
+ TEMP.long_name = TEMPERATURE
+ TEMP.history = From /home/users/tmap/ferret/linux/fer_dsets/data/levitus_climatology.cdf
+ TEMP.units = DEG C
+
+! deliberate error
+SET MODE ignore; SET VAR/layerz=depth noexist; SET MODE/last ignore
+
+!************
+! exercise the layerz calculations in various situations
+! compare the manually specified syntax with the automated results
+
+! make "depth" the layerz coordinate variable for "temp"
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+
+! values of the unadulterated variable
+list/PREC=7 temp[z=0:500]
+ VARIABLE : TEMPERATURE (DEG C)
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 11 points (LONGITUDE-LATITUDE-DEPTH (m))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 0
+ 48.5S / 2: 7.725000 7.917999
+ 49.5S / 1: 6.827000 7.007000
+ ---- K:2 Z: 10
+ 48.5S / 2: 7.726000 7.917999
+ 49.5S / 1: 6.843000 7.021999
+ ---- K:3 Z: 20
+ 48.5S / 2: 7.715000 7.907000
+ 49.5S / 1: 6.840000 7.018999
+ ---- K:4 Z: 30
+ 48.5S / 2: 7.594000 7.789000
+ 49.5S / 1: 6.740999 6.923000
+ ---- K:5 Z: 50
+ 48.5S / 2: 7.410999 7.584000
+ 49.5S / 1: 6.624001 6.785000
+ ---- K:6 Z: 75
+ 48.5S / 2: 7.572001 7.666000
+ 49.5S / 1: 6.750999 6.848000
+ ---- K:7 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:8 Z: 150
+ 48.5S / 2: 7.372000 7.464001
+ 49.5S / 1: 6.466000 6.573999
+ ---- K:9 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:10 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:11 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+SHOW GRID
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid GAO1
+ GRID GAO1
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAXLEVITR DEPTH (m) 20 i- 0 5000
+ normal T
+ normal E
+ normal F
+
+! use aux var regridding. Target coordinate points match the source points
+! identically at 0, 100, 200, ... 500
+! values should match the unadulterated variable at these points
+! this command will be issued in diagnostic mode to highlight that the
+! K range over which temp is read is the minimum needed to compute the result
+SET MODE diagnostic
+LET tempz = temp[gz(depth)=zpts]
+LIST/PREC=7 tempz
+ dealloc dynamic grid GAO1 XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ getgrid TEMPZ C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ getgrid DEPTH C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GAO1 XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL NORMAL NORMAL
+ getgrid ZPTS C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid (G003) NORMAL NORMAL (AX005) NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G003) NORMAL NORMAL (AX005) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G003) NORMAL NORMAL (AX005) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999 M: -999 -999 N: -999 -999
+ eval TEMPZ C: 6 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999 M: -999 -999 N: -999 -999
+ allocate dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ strip regrid on Z: TEMP --> (G002) @LIN
+ eval DEPTH C: 9 dset: 1 I: 1 2 J: 1 2 K: 1 20 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo Z M: 1 dset: 1 I: -999 -999 J: -999 -999 K: 1 20 L: -999 -999 M: -999 -999 N: -999 -999
+ constan cnst M: 3 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found TEMP M: 2 dset: 1 I: 1 2 J: 1 2 K: 1 11 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE cnst M: 3 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE tpry M: 4 dset: 0 I: 1 2 J: 1 2 K: 1 1 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE Z M: 1 dset: 1 I: -999 -999 J: -999 -999 K: 1 20 L: -999 -999 M: -999 -999 N: -999 -999
+ reading TEMP M: 1 dset: 1 I: 1 2 J: 1 2 K: 7 12 L: -999 -999 M: -999 -999 N: -999 -999
+ auxgrd TEMP M: 4 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+SHOW GRID tempz
+ dealloc dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ GRID (G002)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ (AX005) Z 5 r 100 500
+ normal T
+ normal E
+ normal F
+!LET tempz = temp[gz=zpts,layerz] ! same regrid using semi-automated notation
+!LIST/PREC=7 tempz
+!SHOW GRID tempz
+SET MODE/last diagnostic
+
+! list a little with no imtermediate variable, so Z labeling is visible
+LIST/PREC=7 temp[gz(depth)=zpts,k=1]
+ VARIABLE : TEMPERATURE (DEG C)
+ regrid: 100 delta on Z at LIN using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 100
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+!LIST/PREC=7 temp[gz=zpts,k=1,layerz] ! same using semi-automated notation
+
+! same calculation, but with a named Z axis
+LET tempzax = temp[gz(depth)=zax]
+LIST tempzax
+ VARIABLE : TEMP[GZ(DEPTH)=ZAX]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.335 7.436
+ 49.5S / 1: 6.462 6.572
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961 7.073
+ 49.5S / 1: 6.026 6.150
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457 6.637
+ 49.5S / 1: 5.445 5.665
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.182 6.377
+ 49.5S / 1: 5.187 5.410
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835 6.045
+ 49.5S / 1: 4.879 5.102
+SHOW GRID tempzax
+ GRID (G004)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAX Z (METERS) 5 r 100 500
+ normal T
+ normal E
+ normal F
+!LET tempzax = temp[gz=zax,layerz] ! same regrid using semi-automated notation
+!LIST tempzax
+!SHOW GRID tempzax
+
+! regrid to a different set of Z points
+LET tempz_alt = temp[gz(depth)=2:10:2]
+LIST/PREC=7 tempz_alt
+ VARIABLE : TEMP[GZ(DEPTH)=2:10:2]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 2
+ 48.5S / 2: 7.725200 7.917999
+ 49.5S / 1: 6.830200 7.010000
+ ---- K:2 Z: 4
+ 48.5S / 2: 7.725400 7.917999
+ 49.5S / 1: 6.833400 7.013000
+ ---- K:3 Z: 6
+ 48.5S / 2: 7.725600 7.917999
+ 49.5S / 1: 6.836600 7.016000
+ ---- K:4 Z: 8
+ 48.5S / 2: 7.725800 7.917999
+ 49.5S / 1: 6.839800 7.018999
+ ---- K:5 Z: 10
+ 48.5S / 2: 7.726000 7.917999
+ 49.5S / 1: 6.843000 7.021999
+SHOW GRID tempz_alt
+ GRID (G005)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ (AX007) Z 5 r 2 10
+ normal T
+ normal E
+ normal F
+
+!! do same regrid using the shorhand semi-automated notation
+!LIST/PREC=7 temp[z=2:10:2,layerz] ! lo:hi:delta notation
+!SHOW GRID
+
+! test the shorthand notation var[gz(depth)=100] as an implicit aux var
+! regrid via linear interpolation
+! the value should match the preceding output at Z=6
+LET tempz_1pt = temp[gz(depth)=6]
+LIST/PREC=7 tempz_1pt
+ VARIABLE : TEMP[GZ(DEPTH)=6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 6
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.725600 7.917999
+ 49.5S / 1: 6.836600 7.016000
+SHOW GRID/z tempz_1pt
+ GRID (G006)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ (AX008) Z 1 r 6 6
+ normal T
+ normal E
+ normal F
+
+ K Z ZBOX ZBOXLO
+ 1> 6 6.E-05 5.99997
+
+! do same regrid using the shorhand semi-automated notation
+LIST/PREC=7 temp[z=6,layerz] ! =1pt notation WILL BE CHANGED!
+ VARIABLE : TEMPERATURE (DEG C)
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 6 (interpolated using DEPTH)
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.725600 7.917999
+ 49.5S / 1: 6.836600 7.016000
+SHOW GRID
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid GAO1
+ GRID GAO1
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAXLEVITR DEPTH (m) 20 i- 0 5000
+ normal T
+ normal E
+ normal F
+
+! auxiliary points in reverse order
+! to get results that we can check for correctness, we will reverse the Z-order
+! of the temperature field as well as the depth field.
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET/D=levitus_3d_subset rvdepth = rvdepth0[gz=temp at asn]
+! **** NOTE: THERE'S A SUBTLE MISBEHAVIOR IN AUX REGRID SHOWN IN THIS COMMENTED
+! OUT LINE BUT WILL RARELY OCCUR AND EASILY WORKED AROUND
+!LET rvtempzax = rvtemp[gz(rvdepth)=zax] ! zlims aren't filled in if not given
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+LIST/PREC=7 rvtempzax - tempz
+ VARIABLE : RVTEMPZAX - TEMPZ
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:2 Z: 200
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:3 Z: 300
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:4 Z: 400
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:5 Z: 500
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+SHOW GRID rvtempzax
+ GRID (G004)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAX Z (METERS) 5 r 100 500
+ normal T
+ normal E
+ normal F
+
+! deliberate execution errors:
+LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+LET disordered_tempz1 = temp[gz(disordered_depth1)=zax]
+LET disordered_depth2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+LET disordered_tempz2 = temp[gz(disordered_depth2)=zax]
+SET MODE ignore
+LIST disordered_tempz1
+ VARIABLE : TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.335 7.436
+ 49.5S / 1: 6.462 6.572
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961 7.073
+ 49.5S / 1: 6.026 6.150
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457 6.637
+ 49.5S / 1: 5.445 5.665
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.182 6.377
+ 49.5S / 1: 5.187 5.410
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835 6.045
+ 49.5S / 1: 4.879 5.102
+LIST disordered_tempz2
+ VARIABLE : TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.335 7.436
+ 49.5S / 1: 6.462 6.572
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961 7.073
+ 49.5S / 1: 6.026 6.150
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457 6.637
+ 49.5S / 1: 5.445 5.665
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.182 6.377
+ 49.5S / 1: 5.187 5.410
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835 6.045
+ 49.5S / 1: 4.879 5.102
+SET MODE/last ignore
+
+! test VTREE with a complex auxiliary variable definitions
+VTREE
+ in default dataset levitus_3d_subset
+ RVTEMPZAX = RVTEMP[GZ(RVDEPTH)=ZAX,Z=100:500]
+ RVTEMP = RVTEMP0[GZ=TEMP at ASN]
+ RVDEPTH = RVDEPTH0[GZ=TEMP at ASN]
+ RVDEPTH0 = ZREVERSE(DEPTH)
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ DISORDERED_TEMPZ2 = TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+ DISORDERED_DEPTH2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ DISORDERED_TEMPZ1 = TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+ DISORDERED_DEPTH1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
+ regrid to ZPTS = Z[Z=100:500:100]
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMPZAX = TEMP[GZ(DEPTH)=ZAX]
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMPZ_1PT = TEMP[GZ(DEPTH)=6]
+ TEMPZ_ALT = TEMP[GZ(DEPTH)=2:10:2]
+ A = TEMP
+
+! 6-dimensional regridding
+
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+LET temp6d = temp/100 + 1*L[L=1:2] + 10*_M[M=1:2] + 100*_N[N=1:2]
+!list/k=7:12/PREC=7 temp6d
+LET tempz6d = temp6d[gz(depth)=zpts]
+!LIST/PREC=7 tempz6d
+! compare pre- and post- regrid at a fixed depth
+stat/z=100 temp6d-tempz6d
+
+ TEMP6D-TEMPZ6D
+ LONGITUDE: 120E to 122E
+ LATITUDE: 50S to 48S
+ DEPTH (m): 100
+ T: 0.5 to 2.5
+ E: 0.5 to 2.5
+ F: 0.5 to 2.5
+ DATA SET: ./levitus_3d_subset.nc
+
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean value: 0 (unweighted average)
+ Standard deviation: 0
+stat/z=400 temp6d-tempz6d
+
+ TEMP6D-TEMPZ6D
+ LONGITUDE: 120E to 122E
+ LATITUDE: 50S to 48S
+ DEPTH (m): 400
+ T: 0.5 to 2.5
+ E: 0.5 to 2.5
+ F: 0.5 to 2.5
+ DATA SET: ./levitus_3d_subset.nc
+
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean value: 0 (unweighted average)
+ Standard deviation: 0
+
+! 6d temperature and 6d depth field
+! hold temperature constant over time, have depths change
+! note that for N=2 depths of less than 100 are no longer in the data hence missing values at Z=100
+LET temp6d_const = temp + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2] ! constant in T,E,F
+LET depth6d = depth + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+LET tempz6d_tDep = temp6d_const[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_tDep
+ VARIABLE : TEMP6D_CONST[GZ(DEPTH6D)=ZPTS]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-Z-T-E-F)
+ 120.5E 121.5E
+ 1 2
+ ---- N:1 F: 1
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.429800 7.528001
+ 49.5S / 1: 6.577600 6.682400
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.043200 7.151200
+ 49.5S / 1: 6.113999 6.234800
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.507401 6.680599
+ 49.5S / 1: 5.503100 5.713500
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.209499 6.403001
+ 49.5S / 1: 5.212800 5.435500
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.870150 6.078201
+ 49.5S / 1: 4.909800 5.133250
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.410999 7.584000
+ 49.5S / 1: 6.624001 6.785000
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.372000 7.464001
+ 49.5S / 1: 6.466000 6.573999
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.709001 6.855000
+ 49.5S / 1: 5.735499 5.907500
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.319500 6.507000
+ 49.5S / 1: 5.316000 5.537500
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.008749 6.211001
+ 49.5S / 1: 5.033000 5.256250
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.502500 7.686500
+ 49.5S / 1: 6.682500 6.854000
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.364600 7.458401
+ 49.5S / 1: 6.465200 6.573600
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.759401 6.898600
+ 49.5S / 1: 5.793599 5.956000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.347000 6.533000
+ 49.5S / 1: 5.341800 5.563000
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.043399 6.244201
+ 49.5S / 1: 5.063800 5.287000
+ ---- N:2 F: 2
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.725000 7.917999
+ 49.5S / 1: 6.827000 7.007000
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: .... ....
+ 49.5S / 1: .... ....
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.429800 7.528001
+ 49.5S / 1: 6.577600 6.682400
+ ---- K:3 Z: 300
+ 48.5S / 2: 7.043200 7.151200
+ 49.5S / 1: 6.113999 6.234800
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.507401 6.680599
+ 49.5S / 1: 5.503100 5.713500
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.209499 6.403001
+ 49.5S / 1: 5.212800 5.435500
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: .... ....
+ 49.5S / 1: .... ....
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.410999 7.584000
+ 49.5S / 1: 6.624001 6.785000
+ ---- K:3 Z: 300
+ 48.5S / 2: 7.372000 7.464001
+ 49.5S / 1: 6.466000 6.573999
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.709001 6.855000
+ 49.5S / 1: 5.735499 5.907500
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.319500 6.507000
+ 49.5S / 1: 5.316000 5.537500
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: .... ....
+ 49.5S / 1: .... ....
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.502500 7.686500
+ 49.5S / 1: 6.682500 6.854000
+ ---- K:3 Z: 300
+ 48.5S / 2: 7.364600 7.458401
+ 49.5S / 1: 6.465200 6.573600
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.759401 6.898600
+ 49.5S / 1: 5.793599 5.956000
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.347000 6.533000
+ 49.5S / 1: 5.341800 5.563000
+LIST/PREC=7/k=7:8 temp6d_const, depth6d ! reference values at Z=100, 200, 300 for visual comparison
+ DATA SET: ./levitus_3d_subset.nc
+ LONGITUDE: 120E to 122E
+ LATITUDE: 50S to 48S
+ DEPTH (m): 87.5 to 175
+ T: 0.5 to 2.5
+ E: 0.5 to 2.5
+ F: 0.5 to 2.5
+ Column 1: TEMP6D_CONST is TEMP + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2]
+ Column 2: DEPTH6D is DEPTH + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+ TEMP6D_CONS DEPTH6D
+ ---- N:1 F: 1
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 100.0000
+121.5E / 2: 6.572001 100.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 100.0000
+121.5E / 2: 7.436001 100.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 150.0000
+121.5E / 2: 6.573999 150.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 150.0000
+121.5E / 2: 7.464001 150.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 110.0000
+121.5E / 2: 6.572001 110.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 110.0000
+121.5E / 2: 7.436001 110.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 160.0000
+121.5E / 2: 6.573999 160.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 160.0000
+121.5E / 2: 7.464001 160.0000
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 150.0000
+121.5E / 2: 6.572001 150.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 150.0000
+121.5E / 2: 7.436001 150.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 200.0000
+121.5E / 2: 6.573999 200.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 200.0000
+121.5E / 2: 7.464001 200.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 160.0000
+121.5E / 2: 6.572001 160.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 160.0000
+121.5E / 2: 7.436001 160.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 210.0000
+121.5E / 2: 6.573999 210.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 210.0000
+121.5E / 2: 7.464001 210.0000
+ ---- N:2 F: 2
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 200.0000
+121.5E / 2: 6.572001 200.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 200.0000
+121.5E / 2: 7.436001 200.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 250.0000
+121.5E / 2: 6.573999 250.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 250.0000
+121.5E / 2: 7.464001 250.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 210.0000
+121.5E / 2: 6.572001 210.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 210.0000
+121.5E / 2: 7.436001 210.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 260.0000
+121.5E / 2: 6.573999 260.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 260.0000
+121.5E / 2: 7.464001 260.0000
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 250.0000
+121.5E / 2: 6.572001 250.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 250.0000
+121.5E / 2: 7.436001 250.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 300.0000
+121.5E / 2: 6.573999 300.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 300.0000
+121.5E / 2: 7.464001 300.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 260.0000
+121.5E / 2: 6.572001 260.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 260.0000
+121.5E / 2: 7.436001 260.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 310.0000
+121.5E / 2: 6.573999 310.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 310.0000
+121.5E / 2: 7.464001 310.0000
+! ... some spot checks
+LIST/PREC=7/l=1/m=1/n=1 tempz6d_tDep[Z=100] - temp6d_const[k=7]
+ VARIABLE : TEMPZ6D_TDEP[Z=100] - TEMP6D_CONST[K=7]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 100
+ T : 1
+ E : 1
+ F : 1
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+LIST/PREC=7/l=1/m=2/n=1 tempz6d_tDep[Z=200] - temp6d_const[k=8]
+ VARIABLE : TEMPZ6D_TDEP[Z=200] - TEMP6D_CONST[K=8]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 200
+ T : 1
+ E : 2
+ F : 1
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+LIST/PREC=7/l=1/m=2/n=2 tempz6d_tDep[Z=300] - temp6d_const[k=8]
+ VARIABLE : TEMPZ6D_TDEP[Z=300] - TEMP6D_CONST[K=8]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 300
+ T : 1
+ E : 2
+ F : 2
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+
+! ** deliberate error **
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+! Ferret does not permit auxiliary variable to have an axis not found on the source variable
+! (to avoid having to consider auxiliary variables during grid-getting ... possible to do)
+SET MODE IGNORE
+LET tempz6d_unmatch = temp[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_unmatch
+SET MODE/LAST IGNORE
+
+! ********************************
+! test the @plave regridding -- ave defined from area under piecewise curve
+
+! first compare to our simplest of linear interpolation regrids, tempz
+! note that results will differ due to non-linearity
+! at Z=500 on the output they become identical because the Z=500 grid box
+! extends 450:550 with source points at Z=400 and Z=600 -- pure linear
+! LET tempz = temp[gz(depth)=zpts]
+LET tempzave = temp[gz(depth)=zpts at plave]
+LIST tempzave - tempz
+ VARIABLE : TEMPZAVE - TEMPZ
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 0.07800 0.08300
+ 49.5S / 1: 0.09350 0.09612
+ ---- K:2 Z: 200
+ 48.5S / 2: 0.03975 0.04325
+ 49.5S / 1: 0.03738 0.04537
+ ---- K:3 Z: 300
+ 48.5S / 2: 0.02862 0.02200
+ 49.5S / 1: 0.04037 0.02875
+ ---- K:4 Z: 400
+ 48.5S / 2: -0.00894 -0.00900
+ 49.5S / 1: -0.00625 -0.00656
+ ---- K:5 Z: 500
+ 48.5S / 2: 0.00000 0.00000
+ 49.5S / 1: 0.00000 0.00000
+
+! list a little. Note the regridding transform label
+LIST/PREC=7 temp[gz(depth)=zpts at plave,k=1]
+ VARIABLE : TEMPERATURE (DEG C)
+ regrid: 100 delta on Z at PLAVE using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 50 to 150
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.413000 7.519001
+ 49.5S / 1: 6.555500 6.668125
+
+! Levitus has points at 50, 75, 100, 150, 200
+! define target axis with edges at 50:75 (k=1), 75:100 (k=2)
+! 100:125(k=3), 125:150 (k=4), 150:175(k=5)
+define axis/edges/z=50:175:25/units=m zpt2 ! point at 125 is mid-way
+
+! raw source data -- artifically designed for easy mental calcs
+LET myvals = temp*0+100*(i-100)+10*(j-40)+k
+list/PREC=7 myvals[z=50:300]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+K
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+ 120.5E 121.5E
+ 1 2
+ ---- K:5 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:6 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:7 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:8 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:9 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+ ---- K:10 Z: 300
+ 48.5S / 2: -10270.00 -10170.00
+ 49.5S / 1: -10280.00 -10180.00
+
+! linear interpolation regridding
+LET mzlin2 = myvals[gz(depth)=zpt2]
+LIST/PREC=7 mzlin2
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z: 87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z: 112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z: 137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z: 162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+
+! average-regridding
+LET mzave2 = myvals[gz(depth)=zpt2 at plave]
+
+! cases:
+! 1) both edges lie on source points
+LIST/PREC=7 mzave2[k=2] ! vals at 75, 100 ==> 75:100
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 87.5
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+
+! 2) lower edge only lies on source point
+LIST/PREC=7 mzave2[k=3] ! vals at 100, 150 ==> 100:125
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 112.5
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+
+! 3) upper edge only lies on source point
+LIST/PREC=7 mzave2[k=4] ! vals at 100, 150 ==> 125:150
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 137.5
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+
+! 4) full range
+! myvals2 is linear in k, so @plave and @lin get identical results
+LIST/PREC=7 mzave2
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z: 87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z: 112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z: 137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z: 162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+LIST/PREC=7 mzave2 - mzlin2
+ VARIABLE : MZAVE2 - MZLIN2
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 62.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:2 Z: 87.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:3 Z: 112.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:4 Z: 137.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:5 Z: 162.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+
+! 5) divide a single source range into multiple destination cells
+! a range of 50 divided into 5 cells will have means of x.1,x.3,x.5, x.7, x.9
+define axis/edges/z=150:200:10/units=m zpt3
+LET mzave3 = myvals[gz(depth)=zpt3 at plave]
+LIST/PREC=7 mzave3
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT3 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 155
+ 48.5S / 2: -10271.90 -10171.90
+ 49.5S / 1: -10281.90 -10181.90
+ ---- K:2 Z: 165
+ 48.5S / 2: -10271.70 -10171.70
+ 49.5S / 1: -10281.70 -10181.70
+ ---- K:3 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:4 Z: 185
+ 48.5S / 2: -10271.30 -10171.30
+ 49.5S / 1: -10281.30 -10181.30
+ ---- K:5 Z: 195
+ 48.5S / 2: -10271.10 -10171.10
+ 49.5S / 1: -10281.10 -10181.10
+
+! 6) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.333333
+define axis/edges/z=50:200:150/units=m zpt4
+LET mzave4 = myvals[gz(depth)=zpt4 at plave]
+LIST/PREC=7 mzave4
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT4 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 125
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.67 -10172.67
+ 49.5S / 1: -10282.67 -10182.67
+
+! 7) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.8125
+define axis/edges/z=50:250:200/units=m zpt5
+LET mzave5 = myvals[gz(depth)=zpt5 at plave]
+LIST/PREC=7 mzave5
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT5 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 150
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.19 -10172.19
+ 49.5S / 1: -10282.19 -10182.19
+
+! 8) test the short-hand notation var[gz(depth)=0:100 at ave] as an implicit
+! aux var regrid via piecewice linear averaging
+! To confirm correct results we create a piecewize linear function that
+! has constant slope. Averaging such a function over a symmetric region
+! around a point on the source data should return the value at the point
+LET myvals_z = TEMP*0+100*(I-100)+10*(J-40)+Z
+list/PREC=7 myvals_z[z=200]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 200
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+list/PREC=7 myvals_z[gz(depth)=190:210 at ave]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ regrid: on Z at PLAVE using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 190 to 210
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+list/PREC=7 myvals_z[gz(depth)=150:250 at ave]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ regrid: on Z at PLAVE using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 150 to 250
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+
+! 8a) do same regrid using the shorhand semi-automated notation
+SET VAR/LAYERZ=depth myvals_z
+list/PREC=7 myvals_z[z=190:210 at ave,layerz] ! lo:hi at ave notation WILL BE CHANGED
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 190 to 210 (pc wise lin avgd using DEPTH)
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+list/PREC=7 myvals_z[z=150:250 at ave,layerz] ! WILL BE CHANGED
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 150 to 250 (pc wise lin avgd using DEPTH)
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+
+! test missing values in the depth array
+! cases:
+! 1) missing values at start of aux array
+define axis/z=25:200:25/units=m zpt6
+LET depmis = IF (I NE 102 OR k GT 6) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 2) missing values at end of aux array
+LET depmis = IF (I NE 102 OR k LT 9) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 3) missing values in midst of aux array -- stops processing beyond
+LET depmis = IF (I NE 102 OR k EQ 7 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 4) singleton non-missing values in a line of the aux array
+LET depmis = IF (I NE 102 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 5) there are only missing values in a line of the aux array
+LET depmis = IF (I NE 102) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 6) two separated singletons -- only the first should be found
+LET depmis = IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+list depmis[z=25:200] ! to illustrate why the result is as it is
+ VARIABLE : IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN DEPTH
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+ 120.5E 121.5E
+ 1 2
+ ---- K:4 Z: 30
+ 48.5S / 2: 30.0 30.0
+ 49.5S / 1: 30.0 30.0
+ ---- K:5 Z: 50
+ 48.5S / 2: 50.0 50.0
+ 49.5S / 1: 50.0 50.0
+ ---- K:6 Z: 75
+ 48.5S / 2: 75.0 75.0
+ 49.5S / 1: 75.0 75.0
+ ---- K:7 Z: 100
+ 48.5S / 2: 100.0 100.0
+ 49.5S / 1: 100.0 100.0
+ ---- K:8 Z: 150
+ 48.5S / 2: 150.0 150.0
+ 49.5S / 1: 150.0 150.0
+ ---- K:9 Z: 200
+ 48.5S / 2: 200.0 200.0
+ 49.5S / 1: 200.0 200.0
+
+! ********
+! reversed-auxiliary variable used in regridding
+! (see definitions made earlier)
+! Note that the regridded result only matches the original data in regions
+! where the underlying piecewise function remains strictly linear with
+! unchanging slope/intercept. Since the Z=500 point has cell limits 450:550
+! and the underlying Levitus Z points (used in the definition of "depth") are
+! at 400 and 600, we get the identical result from @PLAVE and @LIN
+LET rvtempzaxave = rvtemp[gz(rvdepth)=zax at plave,z=100:500]
+LIST/PREC=7 rvtempzaxave - tempz
+ VARIABLE : RVTEMPZAXAVE - TEMPZ
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 0.07800055 0.08299971
+ 49.5S / 1: 0.09349990 0.09612441
+ ---- K:2 Z: 200
+ 48.5S / 2: 0.03974986 0.04325008
+ 49.5S / 1: 0.03737521 0.04537499
+ ---- K:3 Z: 300
+ 48.5S / 2: 0.02862477 0.02200031
+ 49.5S / 1: 0.04037499 0.02874994
+ ---- K:4 Z: 400
+ 48.5S / 2: -0.00893724 -0.00900024
+ 49.5S / 1: -0.00625008 -0.00656247
+ ---- K:5 Z: 500
+ 48.5S / 2: 0.00000000 0.00000000
+ 49.5S / 1: 0.00000000 0.00000000
+SHOW GRID/z rvtempzaxave
+ GRID (G004)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAX Z (METERS) 5 r 100 500
+ normal T
+ normal E
+ normal F
+
+ K Z ZBOX ZBOXLO
+ 1> 100 100 50
+ 2> 200 100 150
+ 3> 300 100 250
+ 4> 400 100 350
+ 5> 500 100 450
+
+! 5/15 -- added tests for non-monotonic auxiliary variable
+!test_non_monotonic_aux_z.jnl
+
+cancel region
+define axis/x=161e:165e:1 xax
+define axis/z=100:600:100 zax
+
+let temp = 0.0001*Z[gz=zax]^2 + 0*x[gx=xax]
+list temp
+ VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+
+! disordered points at beginning, middle and end, missing at beginning
+let density0 = 0*i[gx=xax]*k[gz=zax] + z/10
+let density1 = if i eq 2 and k eq 4 then 20 else density0
+let density2 = if i eq 3 and k eq 1 then 20 else density1
+let density3 = if i eq 3 and k eq 2 then 10 else density2
+let density4 = if i eq 4 and k eq 6 then 30 else density3
+let density = if i eq 5 and k le 2 then 1/0 else density4 ! missing at k=1:3
+list density
+ VARIABLE : IF I EQ 5 AND K LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+
+! Z=200-300 on the density axis are double valued at I=2
+list temp[gz(density)=5:65:2.5]
+ VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+ regrid: 2.5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 25 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 7.5 / 2: .... .... .... .... ....
+ 10 / 3: 1.00 1.00 4.00 1.00 ....
+ 12.5 / 4: 1.75 1.75 .... 1.75 ....
+ 15 / 5: 2.50 2.50 .... 2.50 ....
+ 17.5 / 6: 3.25 3.25 .... 3.25 ....
+ 20 / 7: 4.00 .... .... 4.00 ....
+ 22.5 / 8: 5.25 .... 7.13 5.25 ....
+ 25 / 9: 6.50 .... 7.75 6.50 ....
+ 27.5 / 10: 7.75 .... 8.38 7.75 ....
+ 30 / 11: 9.00 .... 9.00 .... 9.00
+ 32.5 / 12: 10.75 19.75 10.75 .... 10.75
+ 35 / 13: 12.50 20.50 12.50 .... 12.50
+ 37.5 / 14: 14.25 21.25 14.25 .... 14.25
+ 40 / 15: 16.00 22.00 16.00 .... 16.00
+ 42.5 / 16: 18.25 22.75 18.25 .... 18.25
+ 45 / 17: 20.50 23.50 20.50 .... 20.50
+ 47.5 / 18: 22.75 24.25 22.75 .... 22.75
+ 50 / 19: 25.00 25.00 25.00 25.00 25.00
+ 52.5 / 20: 27.75 27.75 27.75 .... 27.75
+ 55 / 21: 30.50 30.50 30.50 .... 30.50
+ 57.5 / 22: 33.25 33.25 33.25 .... 33.25
+ 60 / 23: 36.00 36.00 36.00 .... 36.00
+ 62.5 / 24: .... .... .... .... ....
+ 65 / 25: .... .... .... .... ....
+
+
+!************************************
+! reverse-ordering of same field
+let btemp = 0.0001*(700-Z[gz=zax])^2 + 0*x[gx=xax]
+list btemp
+ VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2 + 0*X[GX=XAX]
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 36.00 36.00 36.00 36.00 36.00
+ 200 / 2: 25.00 25.00 25.00 25.00 25.00
+ 300 / 3: 16.00 16.00 16.00 16.00 16.00
+ 400 / 4: 9.00 9.00 9.00 9.00 9.00
+ 500 / 5: 4.00 4.00 4.00 4.00 4.00
+ 600 / 6: 1.00 1.00 1.00 1.00 1.00
+
+let bdensity0 = 0*i[gx=xax]*k[gz=zax] + (700-z)/10
+let bdensity1 = if i eq 2 and (7-k) eq 4 then 20 else bdensity0
+let bdensity2 = if i eq 3 and (7-k) eq 1 then 20 else bdensity1
+let bdensity3 = if i eq 3 and (7-k) eq 2 then 10 else bdensity2
+let bdensity4 = if i eq 4 and (7-k) eq 6 then 30 else bdensity3
+let bdensity = if i eq 5 and (7-k) le 2 then 1/0 else bdensity4 !missing k=1:3
+
+SAY "************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********"
+************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********
+SET VAR/units="kg/m^3" density
+
+list bdensity
+ VARIABLE : IF I EQ 5 AND (7-K) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 60.00 60.00 60.00 30.00 60.00
+ 200 / 2: 50.00 50.00 50.00 50.00 50.00
+ 300 / 3: 40.00 20.00 40.00 40.00 40.00
+ 400 / 4: 30.00 30.00 30.00 30.00 30.00
+ 500 / 5: 20.00 20.00 10.00 20.00 ....
+ 600 / 6: 10.00 10.00 20.00 10.00 ....
+
+list btemp[gz(bdensity)=5:65:2.5]
+ VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2 + 0*X[GX=XAX]
+ regrid: 2.5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 25 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 7.5 / 2: .... .... .... .... ....
+ 10 / 3: 1.00 1.00 4.00 1.00 ....
+ 12.5 / 4: 1.75 1.75 .... 1.75 ....
+ 15 / 5: 2.50 2.50 .... 2.50 ....
+ 17.5 / 6: 3.25 3.25 .... 3.25 ....
+ 20 / 7: 4.00 .... .... 4.00 ....
+ 22.5 / 8: 5.25 .... 7.13 5.25 ....
+ 25 / 9: 6.50 .... 7.75 6.50 ....
+ 27.5 / 10: 7.75 .... 8.38 7.75 ....
+ 30 / 11: 9.00 .... 9.00 .... 9.00
+ 32.5 / 12: 10.75 19.75 10.75 .... 10.75
+ 35 / 13: 12.50 20.50 12.50 .... 12.50
+ 37.5 / 14: 14.25 21.25 14.25 .... 14.25
+ 40 / 15: 16.00 22.00 16.00 .... 16.00
+ 42.5 / 16: 18.25 22.75 18.25 .... 18.25
+ 45 / 17: 20.50 23.50 20.50 .... 20.50
+ 47.5 / 18: 22.75 24.25 22.75 .... 22.75
+ 50 / 19: 25.00 25.00 25.00 25.00 25.00
+ 52.5 / 20: 27.75 27.75 27.75 .... 27.75
+ 55 / 21: 30.50 30.50 30.50 .... 30.50
+ 57.5 / 22: 33.25 33.25 33.25 .... 33.25
+ 60 / 23: 36.00 36.00 36.00 .... 36.00
+ 62.5 / 24: .... .... .... .... ....
+ 65 / 25: .... .... .... .... ....
+
+!************************************
+! similar analysis using @plave over wider cells
+! compare to reverse-ordered data
+list temp[gz(density)=5:65:15 at plave]
+ VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+ regrid: 15 kg/m^3 on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 5 points (LONGITUDE-Z (kg/m^3))
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+list btemp[gz(bdensity)=5:65:15 at plave]
+ VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2 + 0*X[GX=XAX]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 5 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+
+! 6/15
+! test 1D auxiliary axis regirdding on all axes
+
+! p for passive axis
+! a for active axis
+
+define axis/x=161:165:1 xp
+define axis/y=161:165:1 yp
+define axis/z=161:165:1 zp
+define axis/t=161:165:1 tp
+define axis/e=161:165:1 ep
+define axis/f=161:165:1 fp
+
+define axis/x=100:700:100 xa
+define axis/y=100:700:100 ya
+define axis/z=100:700:100 za
+define axis/t=100:700:100 ta
+define axis/e=100:700:100 ea
+define axis/f=100:700:100 fa
+
+
+GO bn_auxiliary.sub Z,X,F
+
+*****************************
+********** Z,X,F ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 density
+ VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 bdensity
+ VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5] ! passive ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5] ! passive ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using DENSITY field
+ SUBSET : 5 points (X)
+ Z : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using BDENSITY field
+ SUBSET : 5 points (X)
+ Z : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+
+
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using DENSITY field
+ SUBSET : 5 points (X)
+ Z : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using BDENSITY field
+ SUBSET : 5 points (X)
+ Z : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+GO bn_auxiliary.sub Z,Y,E
+
+*****************************
+********** Z,Y,E ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 density
+ VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 bdensity
+ VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5] ! passive ax 1
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5] ! passive ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 1
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using DENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using BDENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+
+
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using DENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35 to 55
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using BDENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35 to 55
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+CANC MODE VERIFY
+
+*****************************
+********** X,Z,F ***********
+*****************************
+
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _I LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_I) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at LIN using DENSITY field
+ SUBSET : 5 points (Z)
+ X : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at LIN using BDENSITY field
+ SUBSET : 5 points (Z)
+ X : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at PLAVE using DENSITY field
+ SUBSET : 5 points (Z)
+ X : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at PLAVE using BDENSITY field
+ SUBSET : 5 points (Z)
+ X : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+
+*****************************
+********** Y,X,E ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+ VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND _J LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+ VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND (8-_J) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using DENSITY field
+ SUBSET : 5 by 16 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using DENSITY field
+ SUBSET : 5 by 16 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at LIN using DENSITY field
+ SUBSET : 5 points (X)
+ Y : 35
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at LIN using BDENSITY field
+ SUBSET : 5 points (X)
+ Y : 35
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at PLAVE using DENSITY field
+ SUBSET : 5 points (X)
+ Y : 35 to 55
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at PLAVE using BDENSITY field
+ SUBSET : 5 points (X)
+ Y : 35 to 55
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+
+*****************************
+********** T,Y,F ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+ VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND _L LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+ VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND (8-_L) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at LIN using DENSITY field
+ SUBSET : 5 points (Y)
+ T : 35
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at LIN using BDENSITY field
+ SUBSET : 5 points (Y)
+ T : 35
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at PLAVE using DENSITY field
+ SUBSET : 5 points (Y)
+ T : 35 to 55
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at PLAVE using BDENSITY field
+ SUBSET : 5 points (Y)
+ T : 35 to 55
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+
+*****************************
+********** E,Z,F ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _M LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_M) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: on E at LIN using DENSITY field
+ SUBSET : 5 points (Z)
+ E : 35
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: on E at LIN using BDENSITY field
+ SUBSET : 5 points (Z)
+ E : 35
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: on E at PLAVE using DENSITY field
+ SUBSET : 5 points (Z)
+ E : 35 to 55
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: on E at PLAVE using BDENSITY field
+ SUBSET : 5 points (Z)
+ E : 35 to 55
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+
+*****************************
+********** F,X,T ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+ VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND _N LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+ VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND (8-_N) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 5 delta on F at LIN using DENSITY field
+ SUBSET : 5 by 16 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 5 delta on F at LIN using DENSITY field
+ SUBSET : 5 by 16 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 5 delta on F at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 5 delta on F at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: on F at LIN using DENSITY field
+ SUBSET : 5 points (X)
+ F : 35
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: on F at LIN using BDENSITY field
+ SUBSET : 5 points (X)
+ F : 35
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 15 delta on F at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 15 delta on F at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 15 delta on F at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 15 delta on F at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: on F at PLAVE using DENSITY field
+ SUBSET : 5 points (X)
+ F : 35 to 55
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: on F at PLAVE using BDENSITY field
+ SUBSET : 5 points (X)
+ F : 35 to 55
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+*** Running test: bn_plot_ribbon_gaploc.jnl
+! bn_plot_ribbon_gaploc.jnl
+! 7/20/2015 *acm* new PLOT/VS/RIBBON/GAPLOC
+!
+! If a trajectory leaves the selected region and then travels
+! back into the region we want to pick up the pen along that
+! edge, not connect the points.
+
+! Note Ribbon plots define a lot of color/line combos, so
+! lots of ribbon overlays on a page need either SHASET RESET or
+! use of fewer than the default number of levels.
+
+let xpts = {1,2,3,4,5}
+let ypts = {1,1,1,1,1}
+let color = {1,2,3,4,5}
+let gvar = {0,0,1,0,0}
+plot/vs/ribbon/thick/line/lev=10/sym=21/siz=.3 xpts, 10*ypts, color
+plot/ov/ribbon/nolab/vs/thick/line/lev=10/sym=21/siz=.3/gapl xpts, 10.2*ypts, color, gvar
+plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3 xpts, 9.9*ypts, color
+plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3/gap xpts, 9.7*ypts, color, gvar
+
+use 39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
+
+! The line is connected across what should be a gap
+set view left
+plot/vs/hlim=63.5:68/ribbon/line/thick=3/key longitude, latitude, fco2_recommended
+
+! The gaploc variable is 1 at the location marking the start of gaps.
+let gaploc = if sample_number[I=@DDF] NE 1 THEN 1 ELSE 0
+set view right
+plot/vs/hlim=63.5:68/ribbon/line/thick=3/key/gap longitude, latitude, fco2_recommended, gaploc
+
+! Intentional errors. Qualifier needs 4 arguments. It does not (currently) apply to
+! other styles of line plots.
+set mode ignore
+plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
+plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
+plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
+set mode/last ignore
+*** Running test: bn_time_short_axes.jnl
+! bn_time_short_axes.jnl
+! testing time axis style with HH:MM on the time axis labels.
+
+use timesec
+
+plot/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
+plot/axes=0,1,1,0/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
+plot/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
+
+
+plot/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
+plot/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
+plot/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
+
+! 2D plots
+
+define axis/x=0:360:1/units=degrees_east lonax
+let var2d = airt + 0.1*x[gx=lonax]
+
+shade/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
+fill/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
+shade/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
+
+
+shade/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
+fill/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
+shade/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
+*** Running test: bn_floatstr_extended.jnl
+! bn_floatstr_extended.jnl
+! test use of Integer and zero-filled formats in FLOATSTR function (Ferret v6.95)
+! 9/28/2015
+
+
+LET string = FLOATSTR({3.14159,2.71828},"(i3)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828},"(i3)")
+ SUBSET : 2 points (X)
+ 1 / 1:" 3"
+ 2 / 2:" 2"
+
+LET string = FLOATSTR({3.14159,2.71828},"(i3.3)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828},"(i3.3)")
+ SUBSET : 2 points (X)
+ 1 / 1:"003"
+ 2 / 2:"002"
+
+LET string = FLOATSTR({3.14159,2.71828},"(i03)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828},"(i03)")
+ SUBSET : 2 points (X)
+ 1 / 1:"003"
+ 2 / 2:"002"
+
+! Missing data returned as the null string
+LET string = FLOATSTR({3.14159,2.71828,},"(i3)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828,},"(i3)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 3"
+ 2 / 2:" 2"
+ 3 / 3:""
+
+! Test some large and small values
+LET var = {3.14159,2.71828,}
+LIST FLOATSTR(36*var,"(i5)")
+ VARIABLE : FLOATSTR(36*VAR,"(i5)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 113"
+ 2 / 2:" 97"
+ 3 / 3:""
+LIST FLOATSTR(36*var,"(i4.3)")
+ VARIABLE : FLOATSTR(36*VAR,"(i4.3)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 113"
+ 2 / 2:" 097"
+ 3 / 3:""
+LIST FLOATSTR(1.e14*var,"(i12)")
+ VARIABLE : FLOATSTR(1.E14*VAR,"(i12)")
+ SUBSET : 3 points (X)
+ 1 / 1:" -2147483648"
+ 2 / 2:" -2147483648"
+ 3 / 3:""
+LIST FLOATSTR(1.e-14*var,"(i5)")
+ VARIABLE : FLOATSTR(1.E-14*VAR,"(i5)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 0"
+ 2 / 2:" 0"
+ 3 / 3:""
+
+! Result shape is inherited from the input variable
+USE gt4d011.cdf
+LIST/I=100/J=36:38/T=1-dec-1982:1-jan-1983 FLOATSTR(10000*tauy, "(i4)")
+ VARIABLE : FLOATSTR(10000*TAUY, "(i4)")
+ FILENAME : gt4d011.cdf
+ SUBSET : 3 by 6 points (LATITUDE-TIME)
+ LONGITUDE: 130W
+ 3S 2.67S 2.33S
+ 36 37 38
+ 28-NOV-1982 22 / 18:"-271""-240""-208"
+ 05-DEC-1982 00 / 19:"-283""-251""-220"
+ 11-DEC-1982 02 / 20:"-294""-263""-231"
+ 17-DEC-1982 04 / 21:"-356""-323""-290"
+ 23-DEC-1982 06 / 22:"-469""-433""-397"
+ 29-DEC-1982 08 / 23:"-583""-543""-503"
+
+USE coads_climatology
+
+! i4.4 is the same as i04
+
+LET var = FLOATSTR(sst,"(i4.4)")
+LET var = FLOATSTR(sst,"(i04)")
+
+LIST/X=165W:135W/Y=-50/L=1 var
+ VARIABLE : FLOATSTR(SST,"(i04)")
+ FILENAME : coads_climatology.cdf
+ SUBSET : 16 points (LONGITUDE)
+ LATITUDE : 51S
+ TIME : 16-JAN 06:00
+ 51S
+ 20
+ 165W / 88:"0010"
+ 163W / 89:"0011"
+ 161W / 90:"0011"
+ 159W / 91:"0011"
+ 157W / 92:"0010"
+ 155W / 93:"0010"
+ 153W / 94:"0010"
+ 151W / 95:"0010"
+ 149W / 96:"0010"
+ 147W / 97:"0011"
+ 145W / 98:"0010"
+ 143W / 99:"0010"
+ 141W / 100:""
+ 139W / 101:""
+ 137W / 102:""
+ 135W / 103:""
+
+! Negative numbers cannot be listed with (i5.5) but can with (I05)
+LET var1 = FLOATSTR(sst-10,"(i5.5)")
+LET var2 = FLOATSTR(sst-10,"(i05)")
+
+LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
+ DATA SET: ./coads_climatology.cdf
+ LATITUDE: 91S to 11S
+ LONGITUDE: 165W
+ TIME: 16-JAN 06:00
+ Column 1: VAR1[G=4 deg on Y] is FLOATSTR(SST-10,"(i5.5)") (regrid: 4 deg on Y)
+ Column 2: VAR2[G=4 deg on Y] is FLOATSTR(SST-10,"(i05)") (regrid: 4 deg on Y)
+ VAR1 VAR2
+89S / 1: "" ""
+85S / 2: "" ""
+81S / 3: "" ""
+77S / 4: "*****" "00-10"
+73S / 5: "*****" "00-11"
+69S / 6: "*****" "000-9"
+65S / 7: "*****" "00-10"
+61S / 8: "*****" "000-7"
+57S / 9: "*****" "000-3"
+53S / 10: "*****" "000-1"
+49S / 11: "00002" "00002"
+45S / 12: "00004" "00004"
+41S / 13: "00006" "00006"
+37S / 14: "00008" "00008"
+33S / 15: "00010" "00010"
+29S / 16: "00012" "00012"
+25S / 17: "00015" "00015"
+21S / 18: "00017" "00017"
+17S / 19: "00018" "00018"
+13S / 20: "00019" "00019"
+
+
+! F0 format for zero-filled F format
+
+let a = {1.1, 3.7}
+list floatstr(a, "(f04.1)")
+ VARIABLE : FLOATSTR(A, "(f04.1)")
+ SUBSET : 2 points (X)
+ 1 / 1:"01.1"
+ 2 / 2:"03.7"
+
+let a = {1.1, 13.7}
+list floatstr(a, "(f06.1)")
+ VARIABLE : FLOATSTR(A, "(f06.1)")
+ SUBSET : 2 points (X)
+ 1 / 1:"0001.1"
+ 2 / 2:"0013.7"
+
+let a = {-1.1, 13.7}
+list floatstr(a, "(f04.1)")
+ VARIABLE : FLOATSTR(A, "(f04.1)")
+ SUBSET : 2 points (X)
+ 1 / 1:"-1.1"
+ 2 / 2:"13.7"
+
+! testing negative numbers and null/missing results
+LET var1 = FLOATSTR(sst-20,"(f5.1)")
+LET var2 = FLOATSTR(sst-20,"(f05.1)")
+LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
+ DATA SET: ./coads_climatology.cdf
+ LATITUDE: 91S to 11S
+ LONGITUDE: 165W
+ TIME: 16-JAN 06:00
+ Column 1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f5.1)") (regrid: 4 deg on Y)
+ Column 2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(f05.1)") (regrid: 4 deg on Y)
+ VAR1 VAR2
+89S / 1: "" ""
+85S / 2: "" ""
+81S / 3: "" ""
+77S / 4: "-20.4" "-20.4"
+73S / 5: "-21.0" "-21.0"
+69S / 6: "-19.8" "-19.8"
+65S / 7: "-20.0" "-20.0"
+61S / 8: "-17.3" "-17.3"
+57S / 9: "-13.9" "-13.9"
+53S / 10: "-11.2" "-11.2"
+49S / 11: " -7.5" "0-7.5"
+45S / 12: " -5.7" "0-5.7"
+41S / 13: " -3.5" "0-3.5"
+37S / 14: " -1.3" "0-1.3"
+33S / 15: " 0.9" "000.9"
+29S / 16: " 3.0" "003.0"
+25S / 17: " 5.1" "005.1"
+21S / 18: " 7.5" "007.5"
+17S / 19: " 8.1" "008.1"
+13S / 20: " 9.7" "009.7"
+*** Running test: bn696_bug_fixes
+! bn696_bug_fixes
+! test various fixes that went into version 6.96
+
+GO bn_reset
+cancel mode verify
+GO err695_bounds_match_axis
+! err695_bounds_match_axis.jnl
+! ticket 2321.
+!
+! The coordinates match the upper bound of each cell
+! to machine accuracy. The internal rep of the value
+! has pt > bound_hi however. The logic in tm_check_bnds
+! handes this.
+
+use shorttemp.nc
+
+! Previously showed tbox=0 for every second pt.
+sh grid/l=1:4444 temp
+ GRID GSL1
+ name axis # pts start end
+ LON LONGITUDE 1 r 97.45W 97.45W
+ LAT LATITUDE 1 r 36.65N 36.65N
+ PFULL1_1 Z (hpa) 1 r- 3.3236 3.3236
+ TIME TIME 4 i 19-JUN-1997 00:00 19-JUN-1997 01:30
+ normal E
+ normal F
+
+ L T TBOX TBOXLO TSTEP (days)
+ 1> 19-JUN-1997 00:00:00 0.0208333 18-JUN-1997 23:30:00 0.02083333
+ 2> 19-JUN-1997 00:30:00 0.0208333 19-JUN-1997 00:00:00 0.04166667
+ 3> 19-JUN-1997 01:00:00 0.0208333 19-JUN-1997 00:30:00 0.0625
+ 4> 19-JUN-1997 01:30:00 0.0208333 19-JUN-1997 01:00:00 0.08333333
+*** Running test: bn_bin_regrid
+! bin regridding tests
+
+go bn_bin_regrid.sub X
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/X=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/X irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _X[GX=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _X[GX=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+ X: 0.5 to 5.5
+ Column 1: DEST is _X[GX=DCOARSE]
+ Column 2: VAR[G=1 delta on X at AVE] is _X[GX=IRR] (regrid: 1 delta on X at AVE)
+ Column 3: VAR[G=1 delta on X at BIN] is _X[GX=IRR] (regrid: 1 delta on X at BIN)
+ Column 4: VAR[G=1 delta on X at NBIN] is _X[GX=IRR] (regrid: 1 delta on X at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.178 1.150 2.000
+2 / 2: 2.000 1.545 .... 0.000
+3 / 3: 3.000 3.500 .... 0.000
+4 / 4: 4.000 3.980 3.500 1.000
+5 / 5: 5.000 4.838 4.850 2.000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _X[gX=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _X[GX=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+ X: 0.5 to 5.5
+ Column 1: DEST is _X[GX=DCOARSE]
+ Column 2: VAR[G=1 delta on X at AVE] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at AVE)
+ Column 3: VAR[G=1 delta on X at BIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at BIN)
+ Column 4: VAR[G=1 delta on X at NBIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.956 1.650 2.000
+2 / 2: 2.000 2.200 .... 0.000
+3 / 3: 3.000 .... .... 0.000
+4 / 4: 4.000 .... .... 0.000
+5 / 5: 5.000 5.000 5.000 1.000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GX=dcoarse]
+ X: 0.5 to 5.5
+ Column 1: DEST is _X[GX=DCOARSE]
+ Column 2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
+ DEST VAR
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+4 / 4: 4.000 ....
+5 / 5: 5.000 5.000
+
+go bn_bin_regrid.sub Y
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Y=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Y irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Y[GY=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Y[GY=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+ Y: 0.5 to 5.5
+ Column 1: DEST is _Y[GY=DCOARSE]
+ Column 2: VAR[G=1 delta on Y at AVE] is _Y[GY=IRR] (regrid: 1 delta on Y at AVE)
+ Column 3: VAR[G=1 delta on Y at BIN] is _Y[GY=IRR] (regrid: 1 delta on Y at BIN)
+ Column 4: VAR[G=1 delta on Y at NBIN] is _Y[GY=IRR] (regrid: 1 delta on Y at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.178 1.150 2.000
+2 / 2: 2.000 1.545 .... 0.000
+3 / 3: 3.000 3.500 .... 0.000
+4 / 4: 4.000 3.980 3.500 1.000
+5 / 5: 5.000 4.838 4.850 2.000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Y[gY=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Y[GY=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+ Y: 0.5 to 5.5
+ Column 1: DEST is _Y[GY=DCOARSE]
+ Column 2: VAR[G=1 delta on Y at AVE] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at AVE)
+ Column 3: VAR[G=1 delta on Y at BIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at BIN)
+ Column 4: VAR[G=1 delta on Y at NBIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.956 1.650 2.000
+2 / 2: 2.000 2.200 .... 0.000
+3 / 3: 3.000 .... .... 0.000
+4 / 4: 4.000 .... .... 0.000
+5 / 5: 5.000 5.000 5.000 1.000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GY=dcoarse]
+ Y: 0.5 to 5.5
+ Column 1: DEST is _Y[GY=DCOARSE]
+ Column 2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
+ DEST VAR
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+4 / 4: 4.000 ....
+5 / 5: 5.000 5.000
+
+go bn_bin_regrid.sub Z
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Z=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Z irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Z[GZ=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Z[GZ=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+ Z: 0.5 to 5.5
+ Column 1: DEST is _Z[GZ=DCOARSE]
+ Column 2: VAR[G=1 delta on Z at AVE] is _Z[GZ=IRR] (regrid: 1 delta on Z at AVE)
+ Column 3: VAR[G=1 delta on Z at BIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at BIN)
+ Column 4: VAR[G=1 delta on Z at NBIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.178 1.150 2.000
+2 / 2: 2.000 1.545 .... 0.000
+3 / 3: 3.000 3.500 .... 0.000
+4 / 4: 4.000 3.980 3.500 1.000
+5 / 5: 5.000 4.838 4.850 2.000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Z[gZ=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Z[GZ=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+ Z: 0.5 to 5.5
+ Column 1: DEST is _Z[GZ=DCOARSE]
+ Column 2: VAR[G=1 delta on Z at AVE] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at AVE)
+ Column 3: VAR[G=1 delta on Z at BIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at BIN)
+ Column 4: VAR[G=1 delta on Z at NBIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.956 1.650 2.000
+2 / 2: 2.000 2.200 .... 0.000
+3 / 3: 3.000 .... .... 0.000
+4 / 4: 4.000 .... .... 0.000
+5 / 5: 5.000 5.000 5.000 1.000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GZ=dcoarse]
+ Z: 0.5 to 5.5
+ Column 1: DEST is _Z[GZ=DCOARSE]
+ Column 2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
+ DEST VAR
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+4 / 4: 4.000 ....
+5 / 5: 5.000 5.000
+
+go bn_bin_regrid.sub T
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/T=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/T irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _T[GT=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _T[GT=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+ T: 0.5 to 5.5
+ Column 1: DEST is _T[GT=DCOARSE]
+ Column 2: VAR[G=1 delta on T at AVE] is _T[GT=IRR] (regrid: 1 delta on T at AVE)
+ Column 3: VAR[G=1 delta on T at BIN] is _T[GT=IRR] (regrid: 1 delta on T at BIN)
+ Column 4: VAR[G=1 delta on T at NBIN] is _T[GT=IRR] (regrid: 1 delta on T at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.178 1.150 2.000
+2 / 2: 2.000 1.545 .... 0.000
+3 / 3: 3.000 3.500 .... 0.000
+4 / 4: 4.000 3.980 3.500 1.000
+5 / 5: 5.000 4.838 4.850 2.000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _T[gT=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _T[GT=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+ T: 0.5 to 5.5
+ Column 1: DEST is _T[GT=DCOARSE]
+ Column 2: VAR[G=1 delta on T at AVE] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at AVE)
+ Column 3: VAR[G=1 delta on T at BIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at BIN)
+ Column 4: VAR[G=1 delta on T at NBIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.956 1.650 2.000
+2 / 2: 2.000 2.200 .... 0.000
+3 / 3: 3.000 .... .... 0.000
+4 / 4: 4.000 .... .... 0.000
+5 / 5: 5.000 5.000 5.000 1.000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GT=dcoarse]
+ T: 0.5 to 5.5
+ Column 1: DEST is _T[GT=DCOARSE]
+ Column 2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
+ DEST VAR
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+4 / 4: 4.000 ....
+5 / 5: 5.000 5.000
+
+go bn_bin_regrid.sub E
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/E=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/E irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _E[GE=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _E[GE=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+ E: 0.5 to 5.5
+ Column 1: DEST is _E[GE=DCOARSE]
+ Column 2: VAR[G=1 delta on E at AVE] is _E[GE=IRR] (regrid: 1 delta on E at AVE)
+ Column 3: VAR[G=1 delta on E at BIN] is _E[GE=IRR] (regrid: 1 delta on E at BIN)
+ Column 4: VAR[G=1 delta on E at NBIN] is _E[GE=IRR] (regrid: 1 delta on E at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.178 1.150 2.000
+2 / 2: 2.000 1.545 .... 0.000
+3 / 3: 3.000 3.500 .... 0.000
+4 / 4: 4.000 3.980 3.500 1.000
+5 / 5: 5.000 4.838 4.850 2.000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _E[gE=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _E[GE=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+ E: 0.5 to 5.5
+ Column 1: DEST is _E[GE=DCOARSE]
+ Column 2: VAR[G=1 delta on E at AVE] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at AVE)
+ Column 3: VAR[G=1 delta on E at BIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at BIN)
+ Column 4: VAR[G=1 delta on E at NBIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.956 1.650 2.000
+2 / 2: 2.000 2.200 .... 0.000
+3 / 3: 3.000 .... .... 0.000
+4 / 4: 4.000 .... .... 0.000
+5 / 5: 5.000 5.000 5.000 1.000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GE=dcoarse]
+ E: 0.5 to 5.5
+ Column 1: DEST is _E[GE=DCOARSE]
+ Column 2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
+ DEST VAR
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+4 / 4: 4.000 ....
+5 / 5: 5.000 5.000
+
+go bn_bin_regrid.sub F
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/F=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/F irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _F[GF=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _F[GF=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+ F: 0.5 to 5.5
+ Column 1: DEST is _F[GF=DCOARSE]
+ Column 2: VAR[G=1 delta on F at AVE] is _F[GF=IRR] (regrid: 1 delta on F at AVE)
+ Column 3: VAR[G=1 delta on F at BIN] is _F[GF=IRR] (regrid: 1 delta on F at BIN)
+ Column 4: VAR[G=1 delta on F at NBIN] is _F[GF=IRR] (regrid: 1 delta on F at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.178 1.150 2.000
+2 / 2: 2.000 1.545 .... 0.000
+3 / 3: 3.000 3.500 .... 0.000
+4 / 4: 4.000 3.980 3.500 1.000
+5 / 5: 5.000 4.838 4.850 2.000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _F[gF=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _F[GF=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+ F: 0.5 to 5.5
+ Column 1: DEST is _F[GF=DCOARSE]
+ Column 2: VAR[G=1 delta on F at AVE] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at AVE)
+ Column 3: VAR[G=1 delta on F at BIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at BIN)
+ Column 4: VAR[G=1 delta on F at NBIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.956 1.650 2.000
+2 / 2: 2.000 2.200 .... 0.000
+3 / 3: 3.000 .... .... 0.000
+4 / 4: 4.000 .... .... 0.000
+5 / 5: 5.000 5.000 5.000 1.000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GF=dcoarse]
+ F: 0.5 to 5.5
+ Column 1: DEST is _F[GF=DCOARSE]
+ Column 2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
+ DEST VAR
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+4 / 4: 4.000 ....
+5 / 5: 5.000 5.000
+
+*** Running test: bn_all_ef.jnl
+SET MODE VERIFY
+! bn_all_ef.jnl
+! - run all the benchmark tests for externally-linked external functions.
+
+
+GO bn_reset
+cancel mode verify
+GO bn_ef_external_functions.jnl
+! Tests of external functions that are distributed as shared object files.
+
+! Jon's benchmarks
+go bench_examples
+set mode ignore_error
+show func/ext add_9
+ADD_9(A,B,C,D,E,F,G,H,I)
+ (demonstration function) adds 9 arguments
+show func/ext ave*
+AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
+ Compute average of a variable in each cell of output time axis
+ TPTS: T coordinates of scattered input time coordinates
+ VPTS: Variable at times in TPTS
+ TAXIS: Output time axis
+AVET(A)
+ (demonstration function) returns the time average
+ A: data to be averaged over the time axis
+show func pass_thru
+PASS_THRU(A)
+ (demonstration function) sets result equal to input
+ A: this arg is passed through
+show func sto*
+STORAGE(A)
+ sets result equal to input/10
+ A: input
+
+go bench_add_9
+! Bench_add_9.jnl
+! ACM 8/99
+! benchmark script for testing external function add_9.
+! Note: bench_add_9_visual contains plots of similar computations
+
+set mode ignore_errors
+
+
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+
+let a1 = sst[d=1,l=1]
+let a2 = sst[d=1,l=2]
+let a3 = sst[d=1,l=3]
+
+let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+
+list a
+ VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ TIME : 16-JAN 06:00
+ 1S
+ 45
+ 151E / 66: 263.6
+ 153E / 67: 264.5
+ 155E / 68: 264.2
+ 157E / 69: 261.3
+ 159E / 70: 260.9
+ 161E / 71: 262.4
+ 163E / 72: 264.0
+ 165E / 73: 261.1
+ 167E / 74: 260.9
+ 169E / 75: 261.0
+ 171E / 76: 259.3
+ 173E / 77: 257.9
+ 175E / 78: 257.0
+ 177E / 79: 259.1
+ 179E / 80: 254.8
+list a - 3 * sst[d=1,l=1:3 at sum]
+ VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ TIME : 16-JAN 06:00
+ 1S
+ 45
+ 151E / 66: 0.0000
+ 153E / 67: 0.0000
+ 155E / 68: 0.0000
+ 157E / 69: 0.0000
+ 159E / 70: 0.0000
+ 161E / 71: 0.0000
+ 163E / 72: 0.0000
+ 165E / 73: 0.0000
+ 167E / 74: 0.0000
+ 169E / 75: 0.0000
+ 171E / 76: 0.0000
+ 173E / 77: 0.0000
+ 175E / 78: 0.0000
+ 177E / 79: 0.0000
+ 179E / 80: 0.0000
+set mode/last ignore_errors
+go bench_avet
+! Bench_avet.jnl
+! ACM 8/99
+! benchmark script for testing external function avet.
+! Note: bench_avet_visual.jnl contains plots of similar computations
+
+set mode ignore_errors
+
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+
+let a = avet(sst)
+list a
+ VARIABLE : AVET(SST)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ 1S
+ 45
+ 151E / 66: 29.28
+ 153E / 67: 29.39
+ 155E / 68: 29.35
+ 157E / 69: 29.03
+ 159E / 70: 28.99
+ 161E / 71: 29.15
+ 163E / 72: 29.33
+ 165E / 73: 29.01
+ 167E / 74: 28.99
+ 169E / 75: 29.00
+ 171E / 76: 28.81
+ 173E / 77: 28.66
+ 175E / 78: 28.56
+ 177E / 79: 28.79
+ 179E / 80: 28.31
+list a - sst[l=@ave]
+ VARIABLE : A - SST[L=@AVE]
+ FILENAME : coads_climatology.cdf
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ TIME : 01-JAN 00:45 to 01-APR 08:12
+ 1S
+ 45
+ 151E / 66: 0.000E+00
+ 153E / 67: -3.553E-15
+ 155E / 68: 0.000E+00
+ 157E / 69: 0.000E+00
+ 159E / 70: 3.553E-15
+ 161E / 71: 7.105E-15
+ 163E / 72: 3.553E-15
+ 165E / 73: 0.000E+00
+ 167E / 74: 0.000E+00
+ 169E / 75: 3.553E-15
+ 171E / 76: 0.000E+00
+ 173E / 77: 3.553E-15
+ 175E / 78: 0.000E+00
+ 177E / 79: 3.553E-15
+ 179E / 80: 3.553E-15
+
+can region
+let a = x[i=1:9,k=1:5] + t[l=1:5]
+let b = x[i=1:9,k=1:5]
+let c = avet(a)
+list b, c
+ X: 0.5 to 9.5
+ Column 1: B is X[I=1:9,K=1:5]
+ Column 2: C is AVET(A)
+ B C
+1 / 1: 1.000 4.00
+2 / 2: 2.000 5.00
+3 / 3: 3.000 6.00
+4 / 4: 4.000 7.00
+5 / 5: 5.000 8.00
+6 / 6: 6.000 9.00
+7 / 7: 7.000 10.00
+8 / 8: 8.000 11.00
+9 / 9: 9.000 12.00
+
+set mode/last ignore_errors
+go bench_pass_thru
+! Bench_pass_thru.jnl
+! ACM 8/99
+! benchmark script for testing external function pass_thru.
+! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+
+set mode ignore_errors
+
+can region
+let a = pass_thru(x)
+list a[i=1:20]
+ VARIABLE : PASS_THRU(X)
+ SUBSET : 20 points (X)
+ 1 / 1: 1.00
+ 2 / 2: 2.00
+ 3 / 3: 3.00
+ 4 / 4: 4.00
+ 5 / 5: 5.00
+ 6 / 6: 6.00
+ 7 / 7: 7.00
+ 8 / 8: 8.00
+ 9 / 9: 9.00
+ 10 / 10: 10.00
+ 11 / 11: 11.00
+ 12 / 12: 12.00
+ 13 / 13: 13.00
+ 14 / 14: 14.00
+ 15 / 15: 15.00
+ 16 / 16: 16.00
+ 17 / 17: 17.00
+ 18 / 18: 18.00
+ 19 / 19: 19.00
+ 20 / 20: 20.00
+set region/i=1:20
+list sin(a)
+ VARIABLE : SIN(A)
+ SUBSET : 20 points (X)
+ 1 / 1: 0.8415
+ 2 / 2: 0.9093
+ 3 / 3: 0.1411
+ 4 / 4: -0.7568
+ 5 / 5: -0.9589
+ 6 / 6: -0.2794
+ 7 / 7: 0.6570
+ 8 / 8: 0.9894
+ 9 / 9: 0.4121
+ 10 / 10: -0.5440
+ 11 / 11: -1.0000
+ 12 / 12: -0.5366
+ 13 / 13: 0.4202
+ 14 / 14: 0.9906
+ 15 / 15: 0.6503
+ 16 / 16: -0.2879
+ 17 / 17: -0.9614
+ 18 / 18: -0.7510
+ 19 / 19: 0.1499
+ 20 / 20: 0.9129
+can var/all
+can region
+
+use coads_climatology
+let a = pass_thru(sst[l=@ave,y=@sbx:11])
+list/x=50 a
+ VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+ FILENAME : coads_climatology.cdf
+ SUBSET : 90 points (LATITUDE)
+ LONGITUDE: 49E
+ TIME : 01-JAN 00:45 to 01-APR 08:12
+ 49E
+ 15
+ 89N / 90: ....
+ 87N / 89: ....
+ 85N / 88: ....
+ 83N / 87: ....
+ 81N / 86: ....
+ 79N / 85: ....
+ 77N / 84: ....
+ 75N / 83: ....
+ 73N / 82: ....
+ 71N / 81: ....
+ 69N / 80: ....
+ 67N / 79: ....
65N / 78: ....
63N / 77: ....
61N / 76: ....
@@ -77760,40 +85839,40 @@ exit/command
PPL$XPIXEL = "656"
PPL$YPIXEL = "492"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
+FERRET_VERSION = "6.951"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
+NETCDF_VERSION = "4.3.3.1 of Jul 1 2015 15:02:01 $"
FERRET_MEMORY = "31"
-SESSION_DATE = "30-Oct-14"
-SESSION_TIME = "11:20"
-SESSION_PID = "11944"
-DELTA_CPU = "0.05399"
-CLOCK_SECS = "1.164"
-CURRENT_DATE = "30-Oct-14"
-CURRENT_TIME = "11:20:04"
+SESSION_DATE = " 6-Nov-15"
+SESSION_TIME = "15:55"
+SESSION_PID = "20755"
+DELTA_CPU = "0.014997"
+CLOCK_SECS = "0.07"
+CURRENT_DATE = " 6-Nov-15"
+CURRENT_TIME = "15:55:16"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
LAST_GO_FILE = "./bn_startupfile.jnl"
PPL$FORMAT = "(3F10.2)"
PPL$PLTNME = "startup_tests.plt"
-PPL$TEKNME = "/dev/tty"
-PPL$XLEN = "8.000"
-PPL$YLEN = "6.000"
-PPL$XORG = "1.200"
-PPL$YORG = "1.400"
-PPL$WIDTH = "10.20"
-PPL$HEIGHT = "8.800"
+PPL$TEKNME = "/dev/tt"
+PPL$XLEN = "8.00000"
+PPL$YLEN = "6.00000"
+PPL$XORG = "1.20000"
+PPL$YORG = "1.40000"
+PPL$WIDTH = "10.2000"
+PPL$HEIGHT = "8.80000"
PPL$LINE_COUNT = "0"
-PPL$XFACT1 = "1.000"
-PPL$XOFF1 = "0.000"
-PPL$YFACT1 = "1.000"
-PPL$YOFF1 = "0.000"
+PPL$XFACT1 = "1.000000"
+PPL$XOFF1 = "0.000000"
+PPL$YFACT1 = "1.000000"
+PPL$YOFF1 = "0.000000"
PPL$VIEW_X = "0.000"
PPL$VIEW_Y = "0.000"
PPL$VIEW_Z = "0.000"
PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "30-Oct-14:11:20"
+WIN_TITLE = "6-Nov-15:15:55"
VP_WIDTH = "10.2"
VP_HEIGHT = "8.8"
VP_SCALE = "1"
@@ -77814,7 +85893,8 @@ VP_YHI = "1"
LATIT_LABEL CANCELLED 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -77833,7 +85913,8 @@ VP_YHI = "1"
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
currently SET data sets:
1> ./gtbc011.cdf (default)
name title I J K L M N
@@ -77846,4 +85927,4 @@ VP_YHI = "1"
TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
-Ended at Thu Oct 30 11:20:08 PDT 2014
+Ended at Fri Nov 6 15:55:16 PST 2015
diff --git a/bench/test_results/ferret_run_tests_ncdump b/bench/test_results/ferret_run_tests_ncdump
index df2bf17..e515648 100644
--- a/bench/test_results/ferret_run_tests_ncdump
+++ b/bench/test_results/ferret_run_tests_ncdump
@@ -50,7 +50,7 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -75,7 +75,7 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -112,7 +112,7 @@ variables:
B:long_name = "\"one line of text\"" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -151,7 +151,7 @@ variables:
D:history = "From test_string" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -186,7 +186,7 @@ variables:
B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -256,7 +256,7 @@ variables:
V:long_name = "T[GT=MONTH_IRREG]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -313,7 +313,7 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -370,7 +370,7 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -425,7 +425,7 @@ variables:
T2:long_name = "Z[GZ=ZIRR]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -473,7 +473,7 @@ variables:
V:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -567,7 +567,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -637,7 +637,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -688,7 +688,7 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -779,7 +779,7 @@ variables:
A:long_name = "T[GT=TIME]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -806,7 +806,7 @@ variables:
X_:long_name_mod = "axis ABSTRACT" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
data:
@@ -830,7 +830,7 @@ variables:
A:history = "From x" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
:title = "a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short." ;
data:
@@ -857,14 +857,14 @@ variables:
A:history = "From t0_cdc" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_tab_comma_multivar.jnl
*** Running test: bn_element_functions.jnl
*** Running test: bn_long_revision_num.jnl
bn_long_revision_num.jnl --- history attribute
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
*** Running test: bn_window_title.jnl
*** Running test: bn_last_error.jnl
*** Running test: bn_deg_min.jnl
@@ -900,7 +900,7 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -973,7 +973,7 @@ variables:
VAR_B:long_name = "my strings" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1017,7 +1017,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1059,7 +1059,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1167,7 +1167,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -1208,7 +1208,7 @@ variables:
Elev:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -1231,7 +1231,7 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1257,7 +1257,7 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1277,7 +1277,7 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1298,7 +1298,7 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1341,7 +1341,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -1381,7 +1381,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -1419,7 +1419,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -1448,7 +1448,7 @@ variables:
A3:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1481,7 +1481,7 @@ variables:
V4:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1507,7 +1507,7 @@ variables:
A:four = "theory" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1553,7 +1553,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
:simulation = "K-Bay OAR3d model (200m)" ;
:start_date = "980105000000" ;
@@ -1660,7 +1660,7 @@ variables:
TEMP:units = "deg. C" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
:dt_internal = 15. ;
}
@@ -1702,7 +1702,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1785,7 +1785,7 @@ variables:
RIGUE:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1822,7 +1822,7 @@ variables:
B:long_name = "hello" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1862,7 +1862,7 @@ variables:
VWND:units = "M/S" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1913,7 +1913,7 @@ variables:
T2:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1972,7 +1972,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2017,7 +2017,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2060,7 +2060,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2095,7 +2095,7 @@ variables:
TEMP:units = "DEG C" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2129,7 +2129,7 @@ variables:
TWO:history = "From levitus_climatology" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 27 attributes of user-defined axes
@@ -2159,7 +2159,7 @@ variables:
AXY:long_name = "RESHAPE (A,RVAR)" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 28 Define a new global attribute
@@ -2188,7 +2188,7 @@ variables:
BROILED:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
:glob = "Global attribute" ;
:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -2249,7 +2249,7 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2294,7 +2294,7 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_transforms.jnl
@@ -2335,7 +2335,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -2365,7 +2365,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -2395,7 +2395,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -2448,7 +2448,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2490,7 +2490,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2508,7 +2508,7 @@ variables:
V:long_name = "Y[GY=YAXIS]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_no_valid_on_plot.jnl
@@ -2530,7 +2530,7 @@ variables:
MY_ASC:history = "From dat.dat" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2548,7 +2548,7 @@ variables:
MY_UNF:history = "From unf.dat" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -2565,7 +2565,7 @@ variables:
A:long_name = "{1.1,2.2,3.3}" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -2586,7 +2586,7 @@ variables:
A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -2657,7 +2657,7 @@ variables:
newvar:history = "From a" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_cdf_keepax.jnl
@@ -2686,7 +2686,7 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -2713,7 +2713,7 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_key_label_minmax.jnl
@@ -2818,7 +2818,7 @@ variables:
ZUP:long_name = "Z[GZ=ZAXUP]" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -2850,7 +2850,7 @@ variables:
Y_:long_name_mod = "axis YFIFTEEN" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -2883,7 +2883,7 @@ variables:
XYTVAR:history = "From bn_strides" ;
// global attributes:
- :history = "FERRET V6.93 30-Oct-14" ;
+ :history = "FERRET V6.951 6-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_repeated_coords.jnl
@@ -2933,5 +2933,100 @@ variables:
*** Running test: bn_date1900_array.jnl
*** Running test: bn_spawn_size.jnl
*** Running test: bn_polygon_log.jnl
+*** Running test: bn694_bug_fixes.jnl
+*** Running test: bn_permute_ascii.jnl
+*** Running test: bn_lon_lat_time_string.jnl
+*** Running test: bn_save_justdim.jnl
+netcdf a {
+dimensions:
+ TIME = 8 ;
+ REFTIME = 3 ;
+ bnds = 2 ;
+variables:
+ double REFTIME(REFTIME) ;
+ REFTIME:units = "calendar month since 2014-11-01t00:00:00z" ;
+ REFTIME:long_name = "GRIB reference time" ;
+ REFTIME:calendar = "proleptic_gregorian" ;
+ REFTIME:point_spacing = "uneven" ;
+ REFTIME:axis = "F" ;
+ REFTIME:bounds = "REFTIME_bnds" ;
+ double REFTIME_bnds(REFTIME, bnds) ;
+ double TIME(REFTIME, TIME) ;
+ TIME:units = "calendar Month since 2014-11-01T00:00:00Z" ;
+ TIME:long_name = "GRIB forecast or observation time" ;
+ TIME:calendar = "proleptic_gregorian" ;
+ TIME:bounds = "time_bounds" ;
+ TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
+
+// global attributes:
+ :history = "FERRET V6.951 6-Nov-15" ;
+ :Conventions = "CF-1.6" ;
+data:
+
+ REFTIME = 0, 1, 2.03333333333333 ;
+
+ REFTIME_bnds =
+ -0.5, 0.5,
+ 0.5, 1.51666666666667,
+ 1.51666666666667, 2.55 ;
+
+ TIME =
+ 1, 2, 3, 4, 5, 6, 7, 8,
+ 2, 3, 4, 5, 6, 7, 8, 9,
+ 3, 4, 5, 6, 7, 8, 9, 10 ;
+}
+netcdf a {
+dimensions:
+ time = 8 ;
+ reftime = 3 ;
+ bnds = 2 ;
+variables:
+ double reftime(reftime) ;
+ reftime:units = "calendar month since 2014-11-01t00:00:00z" ;
+ reftime:long_name = "GRIB reference time" ;
+ reftime:calendar = "proleptic_gregorian" ;
+ reftime:point_spacing = "uneven" ;
+ reftime:axis = "F" ;
+ reftime:bounds = "reftime_bnds" ;
+ double reftime_bnds(reftime, bnds) ;
+ double time(reftime, time) ;
+ time:units = "calendar Month since 2014-11-01T00:00:00Z" ;
+ time:long_name = "GRIB forecast or observation time" ;
+ time:calendar = "proleptic_gregorian" ;
+ time:bounds = "time_bounds" ;
+ time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
+
+// global attributes:
+ :history = "FERRET V6.951 6-Nov-15" ;
+ :Conventions = "CF-1.6" ;
+data:
+
+ reftime = 0, 1, 2.03333333333333 ;
+
+ reftime_bnds =
+ -0.5, 0.5,
+ 0.5, 1.51666666666667,
+ 1.51666666666667, 2.55 ;
+
+ time =
+ 1, 2, 3, 4, 5, 6, 7, 8,
+ 2, 3, 4, 5, 6, 7, 8, 9,
+ 3, 4, 5, 6, 7, 8, 9, 10 ;
+}
+*** Running test: bn_time2d.jnl
+*** Running test: bn_legend_labels.jnl
+*** Running test: bn_DQ.jnl
+*** Running test: bn695_bug_fixes.jnl
+*** Running test: bn_f_tax_fcns.jnl
+*** Running test: bn_fmrc.jnl
+*** Running test: bn_return_defined.jnl
+*** Running test: bn_can_var_noerr.jnl
+*** Running test: bn_annotate.jnl
+*** Running test: bn_auxiliary.jnl
+*** Running test: bn_plot_ribbon_gaploc.jnl
+*** Running test: bn_time_short_axes.jnl
+*** Running test: bn_floatstr_extended.jnl
+*** Running test: bn696_bug_fixes
+*** Running test: bn_bin_regrid
*** Running test: bn_all_ef.jnl
*** Running test: bn_startupfile.jnl
diff --git a/bench/test_results/flowlines.pdf b/bench/test_results/flowlines.pdf
index 08390ac..463bb6a 100644
Binary files a/bench/test_results/flowlines.pdf and b/bench/test_results/flowlines.pdf differ
diff --git a/bench/test_results/graticules.pdf b/bench/test_results/graticules.pdf
index a530c0d..c3a962f 100644
--- a/bench/test_results/graticules.pdf
+++ b/bench/test_results/graticules.pdf
@@ -1,72 +1,76 @@
-%PDF-1.4
+%PDF-1.5
%���
3 0 obj
<< /Length 4 0 R
/Filter /FlateDecode
>>
stream
-x�����̶tկ�XW�pڙi�
-��h�n"HHH�����t�sF��} !�8::�o���F��]�������������/۟�����?��g���=���������w��~����s���}�)��������
�<@i��?�s��W 2����{��z%��'O�w��Y�����Mk�Ͻ�-�&Qr�
3��{�c(��_�y�\َ��
-9Aek��b��ZK�eVJ�۷��c7���Ia�<G.햲?���2����[�����Y�2����{�i�����ݓQ9��^����~�`f�n�t|��5���R;� 3�e}O��J+�lx���m)�Qi'�
o��������ҏp6���w;�qV�
Ά7y��--SX9k8f2��OV�-�
o�
-���
�g<״{�8ʾ?Yy�4�
3���*�tٷ8ľ?��
i>f2��O�?���`�#����Ϙ�3b&���d�^��&�8ƾ?���i>#�䱥����gP�ޏ�{X�ss�H+�k�.�뙻X������{;�������]��[�X������{�����gl�.��M�X�>�v���칋����]�_�t��}
�<���
-�gP�.��C�X��
����}�.t�q
��ؚt���ֹ��R���
c\�.>J�.Vv<�:w����ʎg\�.>�+w���թ���J+;�Q���8��ł���Q�t���ҹ��V���
Ϡn9xJ+{f#]|�]�X�ћt��/�be�3�sg�.Vv<�:w�qm��
ϘN]|\M�X��\��.>X������}J+;�����n�t���5��]����3�s�R����1�S�}�],�>#;wqݻt��:�v�⚆|]�A���
�t���
��ŵ
���1���[�XY}�u��ښt��:�u���7�be��k�����3�s�s�],�>�:uq=/�be�չ��u�.T�t�[�XY}�t��z7�be�ԩ��V����gL�.n[�.V֞K��ŭ�����3�s�rI+kϠ�]����XP{�t�������s!���
-w������ŭ�be�ٹ�[=����gl�.nm�.V֞�����K�XYc;uq�5w��������ܤ���1�S�3
��=�:uq��t���
� [...]
-s�
�q�}27ڜ��(��Bf�9v�Q����h�dg�_�����5�����8ľ?�m�8¾?�퐌#�������
���'s���cK�����ɞ{X�m��"U�̍vH������X;������[�X�mN�*]�̍6'�M�X��칋���ܵK+s�
�9�hs�>������;w� 3�s{M9en�9Y�t�27�!٥������K+s�
�W�bAf�9vT�ben�C��],�5ڜ�M�X�mN�8ľ?��<������dߥ�����K�X�mN�U�X�mN^[�bAf�C�I+s��ɻ�.dF;�N�ben�)������h��%]�̍6'K�.V�F�����X�������hs2
��ڌv�����hs�
�����[�X�mN�&]�̍6'�&]�̍vHv�ben�9y���K�X�mN^G�bA���[�X�mN�q�}23�t{MAen�C�K+s��ɲK+s�
��t�27ڜ�k�bAf�C�.V�F��G�],Ȍ6�j�.V�F;$O�ben�9�v�ben�C�.V�F����.�F�s�&]�̍vH��^����U������3w� 3�
��ben�C�.V�F��n�)�̍6'�&]�̍vH��ł�hslߥ�����3w���hs�8������8ľ?�m�&]�̍6'�&]�̍vHv�ben�))Fۧ6�|l��e�d
-7ڵ��Ki�
�{��=�
"��Զup���2��I�L�
2�`�PF&�9�
6�-�
cS`�\f&�Cr �fR;$��Ia&�cr
-��̤vHN�
��Ԏ�)�c03��!YkL��Kj���1��I퐜;3ZR;Ė�9a&�cr
-��̤vH.�
��Lj�d
`ߟ̤vH^a�}�%�C쎣����Ԏ�0ξ�PI�� l)3�
�q�}�%�C�����Lj�d
aߟ̤vH�q�}2��!yl�q1��1�s
ZR;�j�*VfR;&��ł���vH+3�
��t�2��!٫t�2��!yn���Lj�d�],Ȥv�]�t�2��1�S!1�v܇t�2��1y�.��6�L`sN�I�,E�X�I�����Lj��
G��'3�
�W�bAKj��Q����Ԏ�;w��!�C�6�be&�C��beKj��)]�̤vH�]�X�I혼�����ɳJ+3�
�ז�XВ�1֤����ɻ�.��v�����Ljs�6'��Ԏ�K�X�I�,U�X�I�ܷ�łLj�\�.VfR;$���Ԏ�S�X�I퐬G�bAKj��-]�̤vH�&]�̤vH�M�X�I혌�������s�],hI����������],hH혹�����ɻI+[R��&�9�̤vLv�be&�C�����Lj��%]�̤vH�5w��%�c�.VfR;$���XВ�!V�t�2��1yJ+3�
[...]
-ڶJn�m�fS`�kJ$�*!��eb
�3KYs(!��3_M���`S�d5�2r}ͱe�9���k�-OM�D\\sh9jN%�֚b���4e�S/;͉��WSl�iJ%b��2�)���j�-)ͱ�\SŠ4�2rGͱ0d���
j�]<n�?��i��a�|!W�
���AJ<!\A#!ȥ4� ��Bf�)U��B��9���rM�=���/�"�b�{�r
ͱ��3SД�%�� ��
;S�fb�2��*��3��\��\;S��\���9S��r�
-r�̱�
-4����\��\5s,Ex��ijSʔ��%3��T���aF�e2B�\/S��\���-s���b�b��
T�[e�]�@31�L����>�cw*�L^�L��r�
-r�L�Vr�
-2�̩3� w��{.PA.�9v����bg�*��1Ů-h&�9�r�
-riL����Č1g�\��\#�f1A�9v�䢘b��䖘b��
-4W�
�@��X
���a���*��0��
-4��s�
-r'L��r�
-r!L����6�c=� W�;�T����̕
T�K`�]G*�L^́;� �[.PA�~�r͋� �
�@���X�s�
-r�˱+� ���k*�LL�r��*�M/Ŏ�
-4Ӽ��%� w�
;s�
-r�K����v�cW.PA�v)�k*�L��R��r�
-r�˱x���]��*�@���ؙ
-4s����\��\�r��*�-.b.l�
-�be�*��-�z*�LL�Rf�s�
-rs˱3h&����q��Ζcw.PA&l)U[.PAnk)ֶ\��\�r���1Ѵ6�����͇����)����(���d��
sοq�"�jim\�b�L�b%�Ԇ��!���Z�-7�9A���ش�1��)ې\�6$���
��hCR��ۘ��6&33w�SՆ`F�ocn����
nH�S����10�m
ef
7$��
����
�%nCN��ܘ��6&33��K߆�0s�1��'3��We�_h����(��d&wc2���/T��b6�C�L��d
bߟlY�,q�}2�1G��'3��{
cߟ�toH
[j�_̌oL��Â��
�Z�������3w���~C�
�������-]��pH�*]��
pH��t�2��1�s
2
r�.]��dpL�THL
�!]�̔pL�-+�1s��Sfb8$K�.Vfn8&�t�2��!�������䕻XВ�!vT�be�c��],h�M�X���lE�X��1xJ+3g
�}�.Vf�8&/�bef�C����L
���.��q�5�be��C�.��-�
c�t�2ɜ4m�Ie�c�.Vf:9$K�.VfF9$�-w� ��1ץ���W�4��륖c�.Vfv9$둻X��1vK+3�
��I+3�
�}�.Vf�9&�t�2��!y-�
c�t�2S�!y
��
�
3�t�2�!y7�be�=s�L3��~��.]��
tH�]�X�I蘼�����ɽ�.�Tt������F���r
ZB:�j�.VfN:&O�be��C������L��%]���tH���X���;7�be��c2
��zY���t�2�1y�.�\u�݇t�2��1yK+3c�I�ӜTf�:$�&]�̼uL��ł���}�.Vf�:&��ł����.Vf;&o�beKc�`m����d�dۤ���̎�.]��|6'�����a?6��@�p����� �
<�s�\i;�I~H��ھR��}%Kjsfle�R�rf�)'Ȥv�-�
r���� lN
-s��I�R;$����\jsrlf�R;����\js�֘
-�Mj���!��KmN.����Ljs�6焹��%�C23�ڜ4��Ia.�C2��O�R��We�_Ȥ6��8ʾ?�K�
���
�t�����2��!���'3���G��'s�
�q�}2�ڜ����d.�9yl�q1��!�s
2�ͱZ������3w� ��
k�t�2��!yK+s���^�������I+s�
�=w� �ڜ�v�be.�C2�BbIm܇t�2��!y�.dR�b.�)�̥6'K�.V�R;$�t�2�ڜ�w�be.�C��],Ȥ6ǎ*]�̥vH��R�3�I+s���V������S�X�KmN�]�X�K퐼�������Y��������.dR;Ět�2�ڜ�K�bA&�C�.V�R��.�)�̥vH^���\js�T�be.�9�o�����.]�̥6'��Mj��)]�̥6'둻X�I��������dk���\js�o���\j�d�.V�R��瞻X�I���������u�.�J퐹�������ݤ���Ԧ�
l
-*s�
�]�X�KmN�]�X�K퐼�������^s
2�
b�t�2�ڜ<Z�bA&�9V�t�2��!yJ+s��ɶK+s�
��t�2�ڜ�5w� �ڜ;7�be.�C2
��ڤ6�"]�̥vH�������}H+s�
��t�2�ڔt�MIe.�9Y6�be.�C��.dR�c�.]�̥vH����R�3�!]�̥vH����Ljs�6�be.�9�6�be.�C�K+s�MI��>��Bp>P��6�LaR��s=b=�4^�_���+d?�A$O�F�V��6���5&Q2�v�L}
B�����ל��v�M{
s����e�CR��\�:$��ю�i�c233�!9�ufdF;榽����h�d�1^/�
�^�Pff�Cr���h�[�:䄙ю�i�c233�!��uH
-3�
�q�}23�!y�Q������;���OfF;&�8��B%�.f�9�̌vL�!��ɖ��G��'3�
�q�}23�!��1����h�䱥����h�d�=,h��E�X��<s
ZF;��!]�̌vL�����h�d�����h��I+3�
�=w� 3�!w�����h�dN��4�!p����h�䝻X�2�
3{�9ef�C��bef�c�K+3�
��.]�̌vL^��-�
bG�.VfF;&��ł���ڤ��������'[F;O�bef�C������h��%]�̌vH�U�X�퐼��ł�ю�&]�̌vH�%w��e�c�.VfF���s+3�
��t�23�!Y�t�23�!�o���ю�.]�̌vH��_/�
�t�23�!Y��ł�ю�[�X��lM�X���t�23�1٥�����s�],h����������],h혹������;��O��6�^sP�������h�d٥���ю�K�X���k�bA�h��-]�̌vH
-w��e�C��bef�c�.VfF;$ [...]
"����k
�}�\a�$J����2�
�ȥ6��`SN�I�[;�2s��I�R��&�9)̥vH.�
������2�
�ȥv�-�
�����d�1^���%�C(3�ڜ\����� l� s�
�K`�df.�9i���\j�d
`ߟ̥6'�0ʾ��Im��q�}2��!���*�tq�M!e.�C2��OfR��%���O�R;$���d.�9��1���\js��R��b.�C��
dR�c�H+s�
�g�bA&�9��be.�C�.V�R���J+s���s�.V�R;${�bA.�9w����\j�dN�Ē�
��be.�C��],Ȥ6�\`SN�KmN�"]�̥vHv�be.�9��Q���\j�䕻X�Im�
U�X�K퐼s
z�6gj�.V�R���H+3�
��t�2�ڜ�t�2��!yI+s��ɳJ+s���k�],Ȥv�5�be.�9y��łLj��)]�̥6%�����\j��%]�̥6'K�.V�R�����X�K�����\js2
��ڤv����\js�
�����[�X�KmN�&]�̥6'�&]�̥vH�Q���\js��s
2�
b�t�2�ڜ���ł^�
2�t�2�ڜ��t�2��t�MAe.�C�K+s��ɲK+s�
��t�2�ڜ�k�bA&�C�.V�R��G�],Ȥ6�j�.V�R;$O�be.�9�v�be.�C�.V�R����.�R�s�&]�̥vH��^����U������3w� ��
��be.�C�.V�R��.�)�̥6'K
eߟ̥vH��łLjslߥ�����3w��Wjs�8������[�X�Im�&]�̥6'�&]�̥vHv�be.�))Rۧ6��'��C�����a{λ��5�9��r��Ǵ��I~�
-ڶJn�m�fS`�kJ$�*!��eb
�3KYs(!��3_M���`S�d5�2r}ͱe�9���k�-OM�D\\sh9jN%�֚b���4e�S/;͉��WSl�iJ%b��2�)���j�-)ͱ�\SŠ4�2rGͱ0d���
j�]<n�?��i��a�|!W�
���AJ<!\A#!ȥ4� ��Bf�)U��B��9���rM�=���/�"�b�{�r
ͱ��3SД�%�� ��
;S�fb�2��*��3��\��\;S��\���9S��r�
-r�̱�
-4����\��\5s,Ex��i���*�%3��T���aF�e2B�\/S��\���-s���b�b��
T�[e�]�@31�L����>�cw*�L^�L��r�
-r�L�Vr�
-2�̩3� w��{.PA.�9v����bg�*��1Ů-h&�9�r�
-riL����Č1g�\��\#�f1A�9v�䢘b��䖘b��
-4W�
�@��X
���a���*��0��
-4��s�
-r'L��r�
-r!L����6�c=� W�;�T����̕
T�K`�]G*�L^́;� �[.PA�~�r͋� �
�@���X�s�
-r�˱+� ���k*�LL�r��*�M/Ŏ�
-4Ӽ��%� w�
;s�
-r�K����v�cW.PA�v)�k*�L��R��r�
-r�˱x���]��*�@���ؙ
-4s����\��\�r��*�-.b.l�
-�be�*��-�z*�LL�Rf�s�
-rs˱3h&����q��Ζcw.PA&l)U[.PAnk)ֶ\��\�r���1Ѵ6��ѧ��C�K��*P��ܠ��Әb%S���t�!��yT�-m�9AK����1���Ԑ\�4$��P
ɥOCR�9�5&33��Ӣ�`FfVcnz����jH�S���1p��2�23��Ө�`F˲��r�!'�DkLN����k
�eVCR��֘�����q
�+���/��k��q�}2�1���*�t1��!ef_c2��O�l�8¾?�9ؘ�#�����
�=���Of&6$�-5�/f26&{�aA�džX-R��L��䙻Xв�!��be&fc�.Vfn6${�.Vfz6$�M�X�ژ칋��
�k�.Vf�6&s*$��
���.Vf�6&��ł����Y�)3g��H+3m�]�X��ې�w�be&oc��],h��;�t�2S�1y�.4,n��&]��DnH�"]�l��<�����
ɾK+3���t�2��!yV�be�uC��r
Zj7ƚt�2��!y��ł���S�X�9^N���2Ӽ1yI+3���J+3�����X��ޘ����L��d�����1pJ+3����],h��������
�֤���ɾI+3
�]�X�y�<��ł�
-��K�X������ł���[�X�9ᐼ�t����9h����
�d�.Vfr8$�.]���pL^���L��^s
Z�8�n�be�r//
�-W
b�H+3]
��t�23�!�v�be&�c�.Vf�8${�],��qȝ�t�2��1�x�r\E�X�9�<s
Z9��C�X��䘼����L椩cN*3�
�e�.VfJ9&{�bA�*�ؾK+3�
�g�bA�-��qH+3�
��t��e�C�6�be&�C�m����3�d�.Vf����5���窪�ʨ��|ߒ���v0�������z�mĿ[���u��$�������'��1���������g���s}v�=$�/v[
-�9Om:�
ϩXy����~�b?Nl�<c+�s�ͳŮ��N�cv��w'�焮o>�����W������
{k��v��W驤�ߕ>�%�
c������WC�^�����oj?�lso�n��ڨWA���w�l�=�_��(;�
�Ξl�P�ǘ�me�]�����`�b�4g�y�Qv>�l�<㫽�=j�v��:O<�������]o�yk�|�ڮ��o;:������=��<A���7��s>�N'�ʹ�r�[j?
6W�����k@=��õ��
��#�yÞu`3}�}
<��تy�W���g˵!��?襡R�N�^2@������{R�O�_ۍ���<O�~<ѾS1a�����{iކ��@/
<Ϲ�K �A(2;�%��~�؊Y�W�f���z�w/��@1���>��Vl����,�<���0ߣ��B�}�}�m��y�
����'M2�_l�:ñO�������el��L}
�Rq4�� �N_D� ��\#��[1�`��L�qk�8�q����=9�7z[=���\8��
���J�
G������g��g� �w���NN��ӗf:Op,���V�3k�m��qk�;_���?�;{c��b��}���'��
�[�|��7Z����U�C�v��~��
�����b��6�zצ�1��t�I�nwb�f���6K�6[(v{�����"�\�8�b�@�=��V�#�1k������ˏ��As�!�"f��*�!'�j��u_3�ƭ����J���n�����a6@��gH��C.��W?h���G��A�`���ޕ�}��u
o{���9x`C��
�X�lj��gl�}��qs���� 6vǚ�#ac��l�]_�9t�l�C{}�ñ1�Uכ����d;�i
-��R��u�b��ӛ�ۯ��=�s�-\��K;�
�3�u�b��䦃��V�3��6W߸k�y~Ӥ�����ҝg��u����smɧ��
���t�����"���l�I�;��pU4N<vf"��]��:�}�~���Y����零z�&�
:۟���v����Z�u�� >6�Ј��|����o9Oz]������>���\X�}_G���z���?~��ֻM��۾�ޞ l��Ј���x���F��w�ڦ5C|h��J
����,{ǣ-_�}�7]صk�ؾ��| 7�O�t(�tppW=`&�@켴���2�m]?
�����NK\��y�����X��<�a0����Y��|����z�{=�w���m�Z.�����#R�gX��W��t"'�u��vog��̀]��
-��4�O�Qd�"��,r���s�9�N�R[G'�-2�
��@���?�,DD�Y����ZC ��ɳ_mK�|~M�H�O�#�����cm������SL~�ע
�DF�mO'���D�����L�
%�&:�"���_)#2�����N>?&2rּ;��i0�g�Ƴ��N���OE �ȉ�uC[��ϏI���
=D$O���O��
-��4F������DNΖN���_�o��*^�7
�\��#�(&:͞~|ķ
H'r�7Ul
A>?&2��N�N�yM��@Ɠ=���+���� q`!�B�8 k�,����`��-��
f��WY&*����_�R�����c�9���W���������
d<SR�����/��9$�cϵA?��sr<W\{LnϱJkj��8���_
d\S]!Y��(F\"���$��B����<��{<
����
d<VR���e:sr^2ʬc�?��!�\���HC �8'bl~T��d �=)B��g�b�@������y�}�
�����2���19��'s���8+B�������Y��;ܾ����17G��')�!�Y9�
]� �8%bl���O������
m�_`<]�bs�}2#��i�
�
kߟ
dw��l]}2�.�|\��2H�R>�3��#��K�y۔Rs2�v*��pr^SC G.e���ʜ�SJ�hUJ
dϥ|�KJ
�K)u�R٤���R�R������9�o)�co��
����ϥ
rJ)�7�����Ƿ�zn��2H�R��gߟ
d�R��. [...]
-o ��3�.�@ ]�\�r ��
���� �.@�.�@ ]��tQ���E��3�.�@ ]� ]�9!��
���� �.@�.�@ ]�A�p��
��Ie �.`�.ʜ�t�tQ��
�E �
��2Hg�.� \� A�(sB�̥� �.@�.ʌ�t�tQ�⌤�2�.���EH�R&�"��Rf�� I��K���K���2'$]���2ȞK���2�.���E�&���EH�Rf�� I��K���K���2�SJ��� ��K���2�.���E�&���EH�Rf�� I��K��!���E�)�L�E@ɥ��EH�R&�"`˥��E�
�&�
愤
X�R٥�Y�(9��I�(��Y�(iR�$]9�t�R�` ��2KeN ]���2�.���EH�Rf�
d�Rf�
�I)�t� ��I)��
R�$]9�t�tQ�K)�tQҥ�Y�(٤�Y�(�R�$]9 �֤��@)e�.� �\�,]�� [...]
"
�4�3h��
�qDDic�A2�qDDi�ł
�4�0� �X�!
�4�0'�A��B�i�� �A
�B�i�� �A
�B�ka �A���5�3� �@H�#
� ig�A���1F$# hG�A�9a
�
$# hG�A� �ia �A��ҥ��R��Y�d�r)
"� kg-�24��#�r� �qFDȞK9ha ]J9ha ��r� �@��r� �q�r)C�88r)
"
�Rf
�@ɥ
4�0�.�
4�0� �
"
�J)
"� kg-�24��CJ9ha ��2k�� J.�A��4)e� l���R����5��*�L��.�
4�0�SJ�5HF %�r� �@��2k��
�qԥ�I�89����4��*�L��.�
4�0�.�
4�0�MJ9ha MJ�5HFH�8jRʤA�
RʬA2r@�Q�R&
�d�RDig��2i'��r� �@��2k��
�q֤�I�89��Y�dp�RDH�Rf
�@ϥ
4�0�MJ9ha �4��G8�}������Y���SY�U���<���I>���>O"
xF&��ZS�G^�gA��%��9���=�g!��LS�7��x��c����~��L��~T"
��t��\?�BH���������c��9SvXP��?5~���E�I�7�|>�|�t�#�Jp�~L���O�$�ўZ+���?���Y˒i��e)�f���<)_A����R���~L�~[��R2
�k� �@�f�� _�L�?�D�E�I��<�g�;��R�{�p�t���E%X;����!#w~
�&YO��|�e�4���lՏi��%�;+s^
A�M�i���<;a���=��lޟK��Zޞo��+������}\G\էxfQ�A����~��q�2�y/4���s=�s
��f��Q�D�s5�L�Ŏ
��[��dz���|1P���zH�q��
�6�+��qb�"X�5Oڴ�P�;yo�
�?c��*v��Ƈӊi�V���
>ߕ���/������g�g�`��d��#ϥ�{��̳��\3y��|�厹�N
+6f�{ٶ�:�����\`�����7��4���2���S0���r\%�qbk&|!6Gڒ�L�����M{�d�x>����<0� '�?+Ck>�J[6�3$퍱��h<�7�AG�!�`����~�
ϧ�㹼��y�{�7�����q�"q<���
i�A�A����B����A6Wߍ[��h[/��k� �6?�>è�^�
:Ƶ�I-s<[=���s�{u:< [...]
��L#���҈�4{|_�-s"�8�7_A'�x����E$O#πQ��N��w?�t"'�6c�r�أ���x�H����_A��H�ru �DNΖN�ϯ�����x��t�s���-��N��w
�. �(����u"!�q���vWS����)-n�qp�[���
S�wJ�<��i�}Q���3�<�غ1�����)M�n�� 5�>�5ZwGA
���)M���\
��*������
T�h� ��x
�Wg����3�C�4v�f�曨[7H�3�E���-�_�L�Qy�ҟ��]SZG�f�#�9:ӍT�s0�&�/r�;�?�t�����o�m�_������7��6�5�&�� �O�w��_����&+?�_�S��������V�_M����i�e�Ϗ���w��M�oR��,�>����7��|��?����gy��|�g
��R���&7�����%���0���$�s���A��Sc��_����ށ���v�>ڜ"oy<D����o��I��d�8S��
�� [...]
w�;:��wΏ���~���%��ڸ#�f�=Sh��i����0Lꆁ:>A�"�`�R�e��ao��T]����6S?��}�mu�^�&y��
X��q�pTV�
���L�γ]�}��Ğ��B�b�쉵��3�=���{O�:��L�H>�
�cE�x=�+TޟU�k�&��Vy7<�d|��sޅ�?�Q��| Z�i��`
����n_^�u �X[���
�&�j+��f� k�����u|��ާ�+��ϟ�z?���y�}�
[��i�Wz�
�����9��*��>0��1b������G;އ��y�>8���
̱�Wv�(����Z��7��w���������\����e]g�f����/n�_x*�3���_�?C�~K`|�t~�>����1�lϪ�o���K��۸���y�.��}|�����ڣ窫�G�u�xSx��3��n�3����3DZ�{��eU���#x�����yp�{����T�x`�=
����(v�{|��=
����E�،�K<����?�b�ݍ�gd7d� 3g��ǜ�y���}��*�m�e?���-�!�.��x�g�~�����_.l��U������
)v������s
�� ��j���
o��#m��<��06dlu_�N�<��]o�co|�xn����W��߲XW��i������
�{Y��ﱓ_92�����P�x��g=?άgX��դ�0�ş4�揶�������qf���~�?�8��c缪
?�2ά��z�P�ؐ���6;��
����@�j[u�
��T�=�n��q�g�-�V�{
������T�g��
����S��~�o~�w���{f���3{�2�{j=k6�HP�
����Y�����x�s���3A�||�?��M�s���K��7�{��c<�p�'��@��\�O��H��%je
�k
�A�Po�c�?�0xO����g��{f��|
�������>2]�ubYa���o�{>�V�_K
���S��ޯ�����
�����{~�s���|�9�H_�i�9ۮ9��qG����#}|����9Џ�
�l�������v�ٸ�
������8�Ʃ��#�s���Y����
�CP�1����l�������n�'$�1z{��O�}�>ڼ �m�:���tv���}m<
Gi���x��~��υ����u~���?�` Nt���}wI{�:ֻ�3�sڏ+��Z���w�g��}*,���A��D��/�/��]{\��?�sj��'������7{�����h�ځ���A�uM��s��f}X�b���XG���J�S�8ں�ǧg�:'�~�gߍ����q%K�`�p�
v�C�w=}8�]`)�>c�_��_C��Tc)�|i�m��p�;��S=�[����'��߫��3͞f�˻߫T^��jZU�j<�w�Z�pּ�8�TS
2��:�I��
�>�zh\�^w�~� [...]
�=S9��z����f���N��7>:3�w��5>ڸ�
#ϥ ��C��OM'��.�ٙ�Y�.�`���RXG#�z?=l����LO�w��3� �.vAҗU
���e��
d?����[ޓFx�t�뽵�8���s�t��K�����/���3U�:��?������O�6�v;�2
����C7�"Ξ��o�ԻBW�њW1�m��*��yooy�����:2��a�6�����c�8�tV8��
;�x�m�s�?|(�y]���̨�[�����
�Z�V���1�B��˫�d�a�
�0?3�U��[�ϼ�ի~����g|����y��PDkЧ�s��w){S���Y�Q/�qq
#Yg����y����֑���=��t�<W��
���lMR웁υ���G+0�;��$�g��.w81���k�x���~䳢
S==�q]��K�-\]8���z�o6� ώ�x�}�M��o`7���y���Z��0����Kk���Lk��-
_��y�R(�f��;����t4�/
���@�.����
,�G�}�c~Z��}�}�8/�=�i
r�p6�O�ob��+
�����z
b�������Q�Gs�U���.���~ۺ̟��
�5�ȶ�
�D�G�-|��K"O�%���D�t\��[�
�Z߳G� 7
@���S�Ә�s��������
�������ԟ?�Bmy7�����9~�3^ӧU�dէ�P�>o?�l�~J�2�[���[O U�ưo��㍻W�b�ݳc�}���ׯ�>��������� Cc`�1��� �
-oyFs�����qc�O���F�9Dch�A�����='N
�s���A���d
�Rv|��V[8�u�w�؈r]!e���c�[
K�x���k�vX��~��F���ČӾ�|>�
�ȟ��v�4����FG>��yy�x�y=@��ao��v��sȞ��o>��
-��m>�B�q#-
�A�;\�1�b 1{Ƭ�4���T����71�X�u��|��[���0c?
�p��e�PM
��~#F�TT�Y�Uy�}���!�'ݳ�ue�g_y�O���GH?�|68��{���`[C�C>��}��_�U� {�^�f!v���vz2?w۞
��o�͵~�� �
���ι��T���T㗿F��T�{J
S�<�=��Y���#2��:�V����a$��]'մ���u�s>\,���bcm�]O��\O��c����
^����Wщm�������_��2_�s�D�
m*����~\!�C�S��&\�jJ�;��z�̉ƣiN�f�S��ͧ%�D缐������7~\{\ۍ{U�7lM�'�D�
�@#��S���أ��c
�@�_����[��z/����&�ľ��6��`��}[�����d��Z������+� oY������4N��������TO��pB9��S����O�փ
��c4a_�T��6/^��MK4�k*��\�I [...]
]���mo�Ō�y�y���x0k۫,���dm��mj[�s}z?
��We�V�:@����v�t����I�c
��rщ�y�
&2��&��
�Ȯqp>�5�65�7$��.���
&'~L<��:�s�C��7�]_C? v��{�NG��'�p��w�ŵ����
�����-�|�7l��c��>��n�{�M��=�.���d�~�u���
�C7�j���b[���du�C�{��x?�ׅ�{�ķ
Wc>��&��
v�sŴ�B3��mZ:�|d1?���V� ۶[<8���wҺ��
i�$h
Z�us�*ޑW�Ǽ�}�~
-���z������A����Ҝ*ޑ�|;|־��x?A���
ʷ��l�����~�?�v��z?���N]�<��s�8�x�f���?Rv"?ch�v
�u��XI���+�fdwVl^������
2��gt�&�x��E�0ı�{%8^Nl�q=��9���
���fS�$�;
H�v��dzg{��I"�>
�Q�Y�f��}���Lm+x����eo�K��<����$XMc+�.�i�iFq��͛g��f�`g���f4g�n��Y�\}�<���
-mI��y��-y�l>v
�x7#2�1
��'@ﰱ}�맍m�>�l�[�5|���_�S�ѡ
�d�7oɽ��%�X���m���>m��Gl<�x\a'�����q��9
���
-l�>�}
��Fx�7�g�v�;C�v��������/�м��G�^8d��v6̛m�M��o�4�:
�c���M3�3���3Ƕ�4��>s��4�9�yS
�w�oi��=~��[��G�����w��[�t �u��n���B����@ڬm�|�~
�H�>����s
�>��
[G�l;0k�V,����
�>�7�g�
+x�}�O����ׯQ���K#0`�
�_�pÀƹ
�
Oߤ�+bq�����+2$QL~ʈ̪���s�Y����ӟ��\����'���~��y��������?������Iן�����s�i�����ϟ'����i�����<��Uڟ��ߜ��U~�6�>~k�_���#������֗4��O�S�fsS��\ϟҦ��W�)O%]���R��S�ϟ<�}�O�G��4_�S�����O���J�Hm�q�J_���������=���
�+��<��Lq)��ۧk5��1��4�d�s�iIw{�#���>�=�T�o�ޣ?}��ܺ�c��O��w)�^m����4�
|��`9��4�|F
K��;{��g��;��=�2��t�;Z����4�X�W�桶�{��kyϣ����Oy��h�卑�DZ���vԯ�D�|^��n��{"m
��w�#���r�M���h�]UW�
�
+���D���;z�o]��m�U�>�4G�ʕ�)#��W�`��Y���:�<���y���:���wG�։�5��ݬ\q�-�몦���-5�j>
���ڴ�'�� ��
mM�ZWs�hJ{�'��]��-�I�3ƻ�yJ�D�|jGJ�2��5j��fw�V֜��Nv���<&h#��]��-�Q�R��=����s�W�0/����u��>��
���Z?�3R&��B��M�z��u\����OH-�mn�ӻ�j�Ho���wG�#}��;�S�-+ka}��n�m��i�
���^'a/Xu|��9E�b�ѿ����c�?��T����2 �,��^&��~7{>�ג��خ��d���=�K٨���e�8xV����뻰���B�vT>���b������]�Z���5Iy֨[�HO�"�F}w�/y���zf[�PO�|ޭ�Gz�ˡ����z���d���#=�i���L�Gz�]����^&i����N���
�k�>!hc�cO��v{z���5�S]J�@o��^d��G�Z3�}�z�HoݹJ^�#�M��E���y[0�u?�}���ǚ�����I�{�z�8��������/��Z����E' �� �ٕwz�30_CX9,[� [...]
��1#q�+<��U�8:O�gx>��4���}]m�T�i��>_�n��v
��0W�������y�^�}r-z����3]�����nYA��yz_ϣ+h�V�,�%Kh�Ԑ/]>��/�E��s��Y����5%]=�4�!�����3]������.�������u�+Й�:�x�ҕ�9I�\S 4ϫ\$4ס���ͭBW䋄��B�\����k te�Hh
W t��Hh
] ]2��
]�2�oq̅�O ��� ]/�B�D�P�j��7��a���+�FBg���t����+�FBW4BW�
��R�+�FBKy����P[ ��e --BWl�4�+FGBKρ��#��߁�2���2j ��u -������+)�+|FB˓��2�b �<#Z�J��֫BWr������7��,�T�u��@h͗Z�R�����5��U�f�
1Z���F ��(�u��p��B�\����Z �����
+�� ��B�\���էt�R
��qB�\���z%��a2�'��T$t����ֹ�+S+�m��Hh�z �͗�H�*yJh��0�:��V
�|�]!��}���jE$���������@h[o3B[
�ж�o�#o9�`�,�;��Z
��^��6�b$��+�F>mCfs.�@h�S ��u m�PB�Z��PO ���#��y�}��@�j�Jh�k1�ڨ��Z���ԕ�>�b ��
�s%FBW�B{��PJ ��v���:��Hh�-��:���B����r
]-Y �s
FB�F�uљL�{�^���Ot��V�H\�]9,[y���
���ƌQZcƠИaٍ�
�1òf�] d��L���g7f7Ycf�5fr���.k���,�ݘɵ;�vcv�5f1���.k��U
�'W���1�k7f2
�^i�n��,�ݘ����Jcv�5fq���̮[V�7f�<���1�K��n�d at c��Y\�|�1�)���,.]=Ԙٕu�PcfW��h���ʧ5f��Ec�PB�1���@(���@(3�z
��1�k\�P4fqu%��Mw��1�K
�1��)�P4fq=J�5f�1�i
��1����z ��]9Bј�u+�֘�Sj �Y\��6f6�EcfWK�Pk�b�P4fv�
Ec�
Ecfר�P4fvݗj�Y<-��̮')�֘�3�h��Bc�
�Y\w ��]�Bјٕ/%�YL=���.Y�֘�0�h��E ��,�'��̮��h���W �Y\=��̮��Pk���h�캋�6f1<�P4fv=-j��Lh�0�1��Bјٕr �Y\w ��]�*�֘��Bј�U�j��=5Bј�5�h��j9��,�;��̮^�P4f6�+��,.��ݘ�p�@(���j��=O ��1�� ��1�
��\� ��]֘�ՕPk���9��,������
�Bј��B�1���@(3��EcW��1��h��x?
+�Ƽ���J��a� Ѱ���w�]�Iǿ�e
��2F��
ˮ���u�e2Y]&��uij벛�.���2�v�a��ewY]��څ�]�.��겘v]v��ev�*�Γ+u�MV�ٵ�2�O��e7Y]��zd~�.��겸t�P]f�-+��2{
]AT��%Kh�e2�.Á�,.]>^�ٔt�P]��
���ʺ|�.��\�N�equ���2{j
+��.�k(�V���J uY\O u�]�BQ��5�@(겸���̦;BQ��%�]���@(겸
%��2yP��4BQ��euY\=��̮����⺕P���)5��,�G }�2j
��.�����,�E]fWρP�eq݁P�ev�E]f�})�V�������z�juY<#��L.�e�P��uBQ�ٕj u�]�RBQ������쒵iuY
#��̮Z�P���y����j-��̮~BQ�������Y ��,�;��̮�(�o]�E]fף���2�P�aB]W��.�+�@(겸�@(�2�rUB�.�� ��.��4%��2{j
+��.�kBQ���r uY\w u�]�*���lW uY\2��.��N�P�eq
%��2{�E]�E]&�2��A(겻�.��+�V�ٓs uY\C }�2J ��.�K���e6�E]fW������P�erź�R��(uل�ÅZ���V�ڳ�`��q��1�(wc�AYcv�ט��5f�Xcf�n�lz�z��L�ݘŵ3�ƻĵ3�vcV�ט��u
q}��L�1��k��ڍY\�����rc&�n���3�O/7f2�Ƭ��1�����L�ݘե����nYAh��ytycV�,��1���;�1�K�����
o�����Y\Y��7fq�+�i�Y]]�܍Y<5B�1�k(��1���@�5fu=�Pk���5j�Y\�
+�ZcVWWB�1��Pk���ט��@�5fu=J�n���̦qj��\�1��B�1�+�
+�Ƭ�[ ݍY<�B�1��QBWcCm�Pk��j)���F ���z�ZcV�
��,�Q�֘�u_J�n��i�Pk��z���zF �3��1�����@�5fq���,�|)�֘���֘�%ks7f5�@�5fqբ��Ƭ�'j�Y\�B�1��_�Pk����Y\#+��1���Zc�]����B�1��i��ݘ�d��M֘���֘ŕr ����@�5fq媄�Ƭ�'j�Y\�)��1���@�5fu�@�5fq�
�Ƭ�;j�Y\�*�֘�4�@�5fu�l~�Y
w
+�ZcV�PBwc�S�֘��B�1��3��A�5fr�Ƭ�����,���֘�5���PJ ����@�n�b�-j�Y\�
+�ZcVW�Zcf�јGY{a�~�'<�?߷|X���a��+p�}�]�Iǿ�e��eʲvW��wU6��[�(��+9��5k�䱒�]r�c
k����=��g�cX�
�e�cx���V~��LJ1��z1yv-vˠ��R
�ub��J잇'S
+1<և�#��0yn^"ޅ����&�
^#���8Z0{d}x&K��A
�=�<���'����K�r)k���B�5_rԤ����go�z�ъ��˞GyC�%O���.yƥ��
o�d����
~|�\z�)�Z.{
��:�;Pq�2"o(��X�eOW��nɓ��n˞[x�fK�R�7�Z�<���j��ڔ7tZY�e�P��g�ӳ�6˞[yC�%Ϩ��,y�Kx�
ˎ���Œ�IuXv
�
�=(��Aeϭ����'U�
ݕ<���\�ҕ7�V�����
��<�o�X��(o��iMyC[%O��7tU�t�
M�<#
o�S�q+oh�之��vT~�Q��P��4����[PO͂vʞ�����'e�
͔=��^J�\�7k��x�7tR�&�Y#%GM��({��6J���7tQ����(yz��C�2.�
-�=<w����wR��@�3�7��x���ɞGyC�t��{z�
�
����Nr䬼�s�goo㤇KQ��7��(o�6�R��I�v)oh����z�{b�,���e��Ot�P�|����a��<�A_��?����>��3}DV4��5Mq|U�-�5ٴ�&��&���n�i�Mq��ɮ�Q�kWNr�Ω��t����j'�v�T�W<ɵ���jG����I��>���O6
�^.�d�
T]_e�#��%�\���K���Pqݲ��D���
+�.�.YB_e��QwXU�.4R1%]=�Iե��[���.��*W�Ӛ���xj
+�Z;U�PBw?O+�Pk��z��Q��k �Z���������ZSӝ��U�%�����)�P��z���X�c��M� �J+�vkUW�ZoWPk�꺕��]�Sj �ګ�
%t�W1��+����êiB�Ŋ��@��Xu݁Pk��5j]V\����6���>+�')��ѪgB�Ӳ�J���ժ��Z�W��Pk��ʗj�VM=j�V\�6w�U��Z�W-J���y��r��Z �z�������
��+�����v�sB���.J�j�jx��y���@�n�l���&���Pk��J9j�W]w �گ�rUBw�U��,�Ҕ�݁�SS �Z��F �z��Z�ZV�
�.,�^�Pk�bW ����d6�F,�;B��k(����)�P���z��e]� ��1�v;VWWBw?OPk��J���b(%j-Y]O t�d1���,�vB�+��B�-�����$luy
�D�
������rX��~_<}Q ���ƌQZcƠИaٍ�
�1�L& [...]
%�3{Z ��1�� ��1���@(3��EcWWBј�t�@(��ı3�Ecף�Zc&3��A(���1��Bјٕs �Y\�j��=�Bј��(�ocfCm�P4fv���,�EcfWρP4fq݁P4fv�Ecf�})�֘���h��z�j�Y<#��L.4f�И�uBјٕj ��]�RBј���h�쒵i�Y
#��̮Z�Pk��y�h��j-��̮~Bј���h��Y ��,�;��̮�(�oc�Ecf���֘Ʉ�
��z ��])Bј�uBјٕ�j�Y<O ��]�)�֘�SS �Y\#��̮��h���h���U EcfӸ�h���܍�
w
+��1�k(�֘��@(���@(3�И��Bј�e�Y\] ��̞��h��J�ۘ�PJ �Y\O �3�j
��1��]�P4fq�@(3�bc^�L�� ��l�?��¬�a� Ѱ.y�e�����C�u�Gdu�-_]�W��bu�M�.���:���2�v]������v]&����2���#��.�i�e5}u�\�.��Vqt�\��d�uY\_]f����L�]����ev=2�\�ɵ벺t�x]�-+uY<�� ���%��e6X]v��eu��A]S���uY]�z�.�+���,�r:�.��+��.���@��eu
%t�e�����'juY\�B�.�k\�P����J��e1�9juY]��������G �u�=V��4B�.�k�eu�@��eq�
����[ �uY<�B�.��QBW]Cm�P���j�|P��4�V���s �겺�@��eq���,��RBw]VO
�Z]ד��]��3�V��eu�]V��uB�.�+�@��eq�K ����
��,.Y��.�aB�.��%t�e�<�P���j-juY\�
+�Z]VW�Z]��J����V��u%t�e5<�P���zt��.��겛�.��B�.�+�@��eu݁P����U �uY=O �겸JSBw]OM�P����P���j9juY]w �겸zUB�.�i\�P��������������,��B�.�� �Z]f��ev��P����uY]] �uY<9B�.�k(��.���@��eu��A]Sm�P���jW �겺z ��2���\��#a��[�':\�|X���a��Л
� �i��5f
+��ݘٱ3,h�d��L���g7f7Ycf�5fr���.k���,�ݘɵ;�vcv�5f1���.k��U
�'W���1�k7f2
�^i�n��,�ݘ����Jcv�5fq���̮[V�7f�<���1�K��n�d at c��Y\�|�1�)���,.]=Ԙٕu�PcfW��h���ʧ5f��Ec�PB�1���@(���@(3�z
��1�k\�P4fqu%��Mw��1�K
�1��)�P4fq=J�5f�1�i
��1����z ��]YW5fq�J�5f��Ecף����
�Bј��R ���F ��]=Bј�uBј�5j ��]���ZcO
��1��IJ�5f�@(3��Bc�
EcfW��P4fv�K EcS��1�K֦5f1�@(3�jQB�1�� ��1���@(3��Ec�� j��Y ��,�;��̮�(�oc�Ecf���֘Ʉ�
��z ��])Bј�uBјٕ�j�Y<O ��]�)�֘�SS �Y\#��̮��h���h���U EcfӸ�h���܍�
w
+��1�k(�֘��@(���@(3�И��Bј�e�Y\] ��̞��h��J�ۘ�PJ �Y\O �3�j
��1��]�P4fq�@(3���<��A_���'<���U���V����q�K]�!Z[�!�,�awez|We3�)�Ŋ�[��Î]�a��L
+���%�<V�᱆̞]�ݳyv=���1[v9�Ǻ1yj��;ͤcX��g�b�
�K)ŰX'fϮ��yx2��c}�=�>�
���%�]�
�,j���5�{�?�l���Gևw`�$Y
Ԁ�#˃�/y��j��)����˞.�Y�%GM�z/{��f��
�(o��y�74^����g\��.{��K�;+oh����wϥ�������ެ��-#�
��[�t�
�<9+o�칅7k��(UyC�e�#����
�MyC�%OKʛ5Z�
�
}�<=+oh�칕7tY�ɒ羄7��h�Z,y�$�Y�e�P��`݃k
�W����+yRU��]ɓ/�
͕-]yCo%�;k���P��Y�S��f��
��J�֔7�U��KyCWeOW��T�3��f=�
��J��ooG��
�<OSެ����,h�����)yRV��L�s+o���Ux�VʎGyC'%Oi5RrԤ����g(oh��iYyCeϭ�����W�
=�,�R��B��s�;(=|'�
�=Cx��I��(oh��y�7tO��z��G�P<��ɞ.�Y�$G��:'{���6Nz��
}�=��fm�,�)o��i��ɞ���g�'����w»g��Ot���ֻ���n�J�8����l�=�Mo�W��ɴ���vd��ŵ� �v
T����%~q}��L�����ڥP\�����r/$�.����!�O/wC2�r���
����~H�]ե��+��nYA(��ytyMT�,��(����;�*�K�ʢ���
������Q\Y��WFq�+�i�Q]]�ܵQ<5B�8�k(��:���@��Gu=�P����5jR\�
+�Z�TWWB�D��P����W$��@�UIu=J�.��6ɦqj}�\�P��B�R�+�@��Ju�J讕�)5j�R]����j
�Z�WK��]/�4�V0��s �*���@��Lq���)��RBw�TO
�Z�ד��]6�3�V7�e}�]V8�uB�r�+�@��Nq�K �ک�
��).Y��z�aB�|��%t�O�<�P+��j-jT\�
+�Z UW�Z
��J�.���VE�u%t�Q5<�P���zZ tR6Y#u�URu�@��Rq�
�Z��;j�T\�*����� ��EBw;eӈ�Z?%�.���P���j9j%U]w �j��zUB���i\�P�����ʪ���������*��B���� �Zie��Vv��P����U]] ��U<9B���k(������@�Xu=��]a�T[ �J������
�"ˮ�dWw��)��P�+�M��x���=?>��u;�:�
�߫=����Ӳ0��^e<�p�י�{��C��6_����:g�Y�
���&Ma
�y}�ھ
+E��,�n��;���|�a!�ȾM~h�ث��
w��N����;��
��b>���ڏ�D&�
��÷��{��G4�m�
�G�*k��
��=�M��_�����e�l���c��z����4o�J�RY�dk�Sh�m;�U�y��ø?8G��wԘ;'�ẕs���
+�`ܳ��J���É�
M�65?4n�y;/L-~������|���
D���ɽ�b��I��b���iMN!���~
+������ �mY�پ�
� ��ȕ���M���v:�g:,ٷ ������6A<
tUZ}}�9�J&�U)��oy�t����z��:��/K��M{�˒����Jy�b̖����{��g�*�&�U���]���l\vQ��Nqr���~s%L�_��8�K�wY�q��q&�e)~l�K�
��e�v���y��>��'=a#2}?��b�����ۧd3�fL���66�S��>*ƱW&=�{��& �s��`�2"h�{�~r��x�t:h���w}���E/�%=����^��7Z�띍Znޤ�
��i�|?������[x�gZ�ɷ�i�����B��ق��m�8�}�La�����:�w���;�k?�3��{4��
���;A����B�^r|�tn�U�N�6� ��b$vX�u�`Ӵ�Wlڦ|O
v��@�a!���-h�m�87;*&9L��K����w�A�G���alni�� �ž~'{�s����si��1�lp}�T?,���c�;������J�A��˿@���%�^t� [...]
�|��O%B��u���G�6���]~��A!ظ�[:�j'�
��
�r��]Yσ�K��ʼn|�����?��C��a��e_a��)���pd[��?[���K�'d/w�3[�>���&
{�3ܫ��a���^���^�˽���l\��i�W�ܽg�^/i:x�?���ߺ���=l�>3S�b&S��b����m���
_��c�'Ӣ���Zu�ϼ�}��ڱϽ�qP0.,v�������k%O��9��4`�����>�����@]��|�(��j3����~N�H�IZ����R����h�_&�Lq�Xo����҃ɶ-�
��'��5���9bb֨}R�9a��;���"�C�&��"L���Bʼn���75����y���3Z�k/^�ߪ�
$<�t��'w_
|/��a�Ү8>n�����M�|�/�� �mY"��2�'d_
��]rl�v��AM��p����>���az���x���W��\}$Q���SҮ�?S����C:M�d��F.X������>��$Qhϧ����!6�M�
�Sc[��� [...]
){
]�!ҭ������CʜZ��>�I�ɕ�jk[������A�}���ܲ}�G�Ӵ���q�!��'�%"�
a���=����|"����� 6r��h
+
ѿ~҆����
R�
4D�u�0���.`+S~�b�Qҷ~�Q��~D)�Ŗ��a�Pr��{A)�����ʆ�?��
R�D|"��E�+�h����D����� �'L@�Ϸ
K�)�?�!��'�%"}���蟨DϿ�B�ŵ~�-��Z�b��\Y���
+��<3t�Vl���
eN�z���L�E'��W��6�����lvx�,�2UP��q� �+�$v���)���fd�3��zf�#��� ��u���]xc�%K��
t��>�v�U}����.6�"�u�d<dW��%�\�.^��q+eWy�X\3�5��
�5��
�M�bq��klj�7
mv��#o�%��p t��S��o�k�wͱ�ʷ�ؕ�9W~W��j�®�ؕpe����E.�5���V��j\S,��]ElZ�z<�"rSY�1��<�"b��
h��\s9FN�]��N�e
���8���iY�1p�~KM�K����6NK�����ENK��e���i�9pZ�j
��2��#���ȕ��Ӓ�rZr����?���
i��}�|�)EN�uN��N-���:8�O��
#��I�ӕ�#��n�i^�1��<��i
���߅9]�����#��g�4�+r�[�����8��>8��î|p��8�e
��϶���yX���`Q8�k1N��{���9��Ȧrp��8��
9�W
��#���i���izJ�4�"r�p��Nӝ��4Wc�4�8Ms1FNӸ���
�h�NS�����Z?8M-NS�N�����z+$r��6��}�ư�Si��T���~��Ls9N�_�(�i���iJ�r��r
����i��8�N�U�)~��
� ����8S��>z�7W
+�2%
�c�&�ߔ��0q|���S|7��;���,��@�
�;��!�C�� �
+���Q|���
�;��y|�B�
�)
ߡ!�C��n�;��ߡP|7
�
��wH��P(����
+�wh��p|�����i��(�CC|�B��4�w
�!!����
��w
�!!�oE�;4�w(�M����R|��N=�Ch�S��p|�֔S����wh5p���$��P��)�w(��)�w(ߡ����whM9��n��w(����;�9����R|�r
�R|�RN)����
ZSN%����
�88��!EN)�Ci�
�!\�S��P��)�wS8�CC|��N)�C�
�!��)�w(���� �!����whW��;�8���5��P��)�w(�M���
�z|7��;�8���RN9�C��S��y|��N)�C�N)�C��
�M���N%����aDN)�CI�
�!��)�w(��)�w(���A���#�k(��g����#A�p�5�>R?��{
���;4�wW<����;��.Y|w��;4��. ��d����y|w��%��x|�����w�,�C����wW<�C����K�]����
��.Y|w��;4�wW<��f�
+�w�,����
��w<��f�����,������w(�]����w�,�����5��x|����J?8���J:8E|w�EN=�C���ZSN)��tN9��V��!!���N=��r
�z|w�
�z|�B�ݵ��R|�����88E|w!EN=���N=��r
�z|w�
�z|�B�ݵ��r|�����88E|w!EN=���N�]�"�
�]��
ߡP|w�N9�CC|we
�"���"�
�]i���<����
�]���]��S��y|w��z|w�:8���J;8E|���ݥ8���ڥ�R|w�N9�CC|w��z|w�:8���J=8E|�@�ݵ8����
#r��ݕtp���B��z|w�:8����_�=H_����������̗���\�7�bQ�/���^��C?$a�h���'�
�+��]�
�'x�,���
�%x��]��'x�<����%xW<�CC�w��k��P�w��+��Y�w �%K�x��f �$x�,���
��3�'x�,� [...]
�'xHH�P(�o�<O��P�7�<J�А�M�
+%xӐ�!x�����iH�<�CB��B �4��)��!���
<J�!�C�
+%xӐ�!x���o
+'xh��!x����I�А�P�7�<�~pJ
J:8��EN)���
ZSN9�C������)'x�<�C����\���ԃSJ�p��֔SN�&y��2N=�CH�SJ�P��)%x(��)%x(���)��5�T�i�ࡌ�SO�R�<�vp�
�9��
�R�7�<�8�o�'x(���<�9��
�z�7�<�
8��
+�r��T���F
J?8��:8��
�z�7�<�8��RN9�C��SI�y���N)�C�N)�C����M��N%���aDN)�CI���!��)%x(��)%x(K��A�v�y2�y��m
+���{}�L�auQ���{���٭K�,�8�ǡ� x����'x��wŁ� �%K�x��f ��rFH��]�o�'xW��]��'xhH�x�w�<J�Y�w�<4K�. ��d �O��,����%xW<�C�[_�� �5K�P(��f �O��,��� �5K�x��f �$x�,�C���N�. ��d �N�Y�w�<4$xW���'xW��)�
-r�
+%xךrJ ޥ+p� 8� ޕ~p� ޕ����+���<J�5�<$$xW<��V�SJ��]����]�N=��RN=�C��ZSN9�CC�we
�"���"���]i�H�.\�SO�ԃSO�P(��V���!��2N��]H�SOS$x��]�SN�]�SJ�.��)'x�<���N=��r
�z�w�
�"�C��R
�r�w�RN)��T���!���N=��r
�z�w�
�"�C��Z
�r�����K%p�
�%xz���+���'xW����A�O����
+O����F��[A� ~:r��V���O��0
=�w�<�C���� �!!�C��n�;��ߡP|��w(
�!!�C��n��w(ߡ!����
�;��!�C�� �
+�w��!x|�����i
ߡP|���n
+�wh��P(������;4�w(�MC|���
�)
ߡY|���
��V$�CC|�B��4��P��)�w(����;�9��n
+�whM9���
+�J|�V�
�M����R|�r
�R|�RN)����
ZSN9����
�88��!EN)�C��ߡ\�ߡԃS��p|�֔S��y|�2N=�CH�S��P����wW��;�zpJ�����j�T�i
ߡ��S��R��;�vp�����z�T�;�+p��
R
�J|��w(���;����;�vp�����Z�T�;�K9���N%����
J?8���:8���
�z|7��;�8��n�;�9��%
�z|��#�ߡ\�ߡ�-���nz�
�(T���~xf�W�ʿ�A�p��x�z*���8
��wh��x|wm�w
�]����wh�]�{�A�
x�x|7��+��.Y|w��;4�wW<��f�
+�w�,����
��w�]����wh�]@|w��+
ߡ!�����5��P(��f�����,�����5��x|�f���w�,�C���ڎ�. ��d����Y|w��;4�wW����wW<�C���B��z|�B�ݵ��R|w�
+�r|w�N)�CB|w��z|w�:8���J=8����kM9�� �ݕqp���B��z|w��z|w�:8���J=8����kM9��
�ݕqp���B��z|w�
�"��pEN=��RN=�C���Z
�r|�����wrJ�
�+���
��w�z��kW��K5p���4���S��\�
�]i���<����
�]��S��.��)�wh���S��\�
�]����(����
ߡY|waDN=���N�]�S��\�
�]�K|�����7�-�� ���?}�_O��]�(�O����;��͢�|
+��'xhH�x�wm'x��]��'xh��]�B��`�x�7��+H�.Y�w�<4$xW<��f
+%x�,���
�%x��]��'xh��]@�w��+��!��� �5K�P(��f �O��,��� �5K�x���p;h��]���k;����%xS8��f ��ӌiH��SO𮤃S$xZ��<J�5��KW��k5pJ
�+����+���'xW���'x(��]k�)%xHH𮌃S$xR���+����+���'xW���'x(��]k�)'xhH𮌃S���9��J;8E�wኜz�w�
�z��B 8�
ޕqp��B��z�w�
�"�C��R�r�w�
+�R�w�N9��� ޕ~p� ޕ��n��
�"�C��R
�r�w�RN)��T���!���N=��r
�z�w�
�"�C��Z
�r��f ޅ9��J:8E�w�GN=��r
�z�w�/ �
� |�U
+�'����P}��
+
+�j�<TC�P
�B5��B5
+ո���j
��m��D��n!���jH�P(T�-J�E
+�jhո��_n"�
+�j�l�B5Ր��P�6
���jH�P(T����B�B5nfG�B5����!P���P
�B��b�L�!!T�n~��Y���B��O�C54�j(�}��j(��B5�tp�B��R�Ɲ��S�J�B�)
��!TCɑS
+�P��)�j(��)�j(��B�)
��5�C5��N%TC��)�j�<TC9o�J�
+��Q��RN)T�¡ZSN%T���88�P
!EN)TCi�
�!\�S
+�P��)�jS�y�H
+�P��)�j(���C5�9�P
�
�z�6!
�,�P
�
�R�6�B5�8�P�5
+�P��)�j(��)�j(���C� �!����jh�rʡR
�J�6�C5
+��r�TB�i
��ԃS�&p�����MC��0"�����S�z�B5���B5���껿���25߬���jwa����2ި�-?�6��l�
�xd�O�o�J�}S�S�ѩe�����J[mŷ:-���O�q�<���!�@��?��7�:���/��9%�ο���+��;��_
���O�G-?�E��)�_,��Ai]��c�
�z�S�>�'��";*>�Ӳ�����X[p�}�ѩ���Ń?8����V��y7m�
�/��������[E�J]T��.<���W:
�oW�g�|#����>1�����o�����t���6ڂ[�ݐ��<�J���
O�
+�5Y��#m����Kˤ'���[���~�9oΦ�B���gN��t� pƩ�Pkz/��ϟ��T��q�=�%��p�]�t��sz3��9�a���� �)�9������^
��633�o�N�aל��ǎj�H3����ޟ��9���u�f�㼼>���
�����I��
�gG'c�O��?w���m���f�}�u��Ln߿H��|�Lc�N��~�7����DaƖ7 �&s����Rf���㮽٤������}*�A}��o[o;5�̽�4�������0��7#�4�R�|�+6����n�x��-p�#��wL?���[.?K���;m1�����s
+���&`X�&?<�o�tf�q鹖�X�����S��%����V&
�@ʬe��Z�$[�����>*m1[�
Ǿ���^V��Ê� ��[A�W̢
��
�r�9m�V�z����+��$4�SfMju�<���^��X�
O>c�ϴ�l
���#�G���;W=�%����gQ�-��i���3���G�n�����Ig�
��Nƚ����L��:����U���9��6��-��=�[���9g������MW�-�<�6���SL�
��Z�Z�t%�1o��(+��
����+9
�݂���駶�����}����{��暺�ܯy�O�ү�i\��Pk�q��:V��۴�~
����
+�2���&�&����������`d.�c��m���^���g?�o��_|F���q��^?��/�k�נ+�>���'bbt�+J_�c�%��~Ε^R��Ã7���}�п��п7�P�5Ǟy��-H��Y-�J/)|X�&?<�w�tf�Q鉓����i]���پpm�;�Y/`��-��ۆ,e&�{�=�;���4;�[��q��o"�M��~�z5Yo\�%o&��"�ۤ�����w�}�<_T�k÷��ʛ�|�\yz�?_w����Y������S�}��fw�3���C�N�uO�
�����&?4��=E8�W9�5��o��� ?��e�M�� ��zݐ^3���mA'��F�
�Nx�����Fc]���P� ��:��~Ϗ
uF�z�w��DA�3�:m�c�;��~G���q�SQ�{A'a��=�+��%�;�C?쌿�,۸�g
�݂Nm��>*��7._�:��:��]
���&Eg��sl��;�2����Y������Tfy
�0�k�2��yOy%
��k�B�μO�7�>��<���}�O
+q��A����D�`ݾu�
�̚���0W4�d �7����Ŭ�W{x'��>o�{���2��~n� ���l�h�R��2>=}}V�N���ÿy_��s��z�ܾdT��?
+���죾���Yp�C���xTX{����d�� �թn�ƶ�sXZ^�|��Z��������v�X/m���H��`��~���rm�؟�-�w}�y�e��i�}
+M��&���
��}k��uԵ�X�J�;�|������c���Ye&�<�=V�+��оmΡ�7Mġ}#���^�����>��[X�Y{��H�aOp��~�����+$��?}���2�Y�W�Wٺ�i�IY
��god�
+�z9����B𚿷��0SS^U6Kuo�������}
�n�!�0��7u��އ�'���$���`T�����ɳ����[+oļ��XOM�75>߉����-|*�>�>{�혾���(^
�eΰ��F��u,���<����a��˹�d�;p�>еJ����8��
����`��k�
�r
�xl��x����^��
��94�6��ޑ��?�?�h�
endstream
endobj
4 0 obj
- 24219
+ 17668
endobj
2 0 obj
<<
@@ -83,6 +87,7 @@ endobj
/Group <<
/Type /Group
/S /Transparency
+ /I true
/CS /DeviceRGB
>>
/Resources 2 0 R
@@ -95,8 +100,8 @@ endobj
>>
endobj
6 0 obj
-<< /Creator (cairo 1.8.8 (http://cairographics.org))
- /Producer (cairo 1.8.8 (http://cairographics.org))
+<< /Creator (cairo 1.14.4 (http://cairographics.org))
+ /Producer (cairo 1.14.4 (http://cairographics.org))
>>
endobj
7 0 obj
@@ -107,18 +112,18 @@ endobj
xref
0 8
0000000000 65535 f
-0000024612 00000 n
-0000024334 00000 n
+0000018076 00000 n
+0000017784 00000 n
0000000015 00000 n
-0000024310 00000 n
-0000024406 00000 n
-0000024677 00000 n
-0000024802 00000 n
+0000017760 00000 n
+0000017856 00000 n
+0000018141 00000 n
+0000018268 00000 n
trailer
<< /Size 8
/Root 7 0 R
/Info 6 0 R
>>
startxref
-24854
+18320
%%EOF
diff --git a/bench/test_results/linecolors.pdf b/bench/test_results/linecolors.pdf
index 6fcb739..c797798 100644
Binary files a/bench/test_results/linecolors.pdf and b/bench/test_results/linecolors.pdf differ
diff --git a/bench/test_results/multi_line_labels.pdf b/bench/test_results/multi_line_labels.pdf
index c4ef234..33ed62f 100644
Binary files a/bench/test_results/multi_line_labels.pdf and b/bench/test_results/multi_line_labels.pdf differ
diff --git a/bench/test_results/outline_poly.pdf b/bench/test_results/outline_poly.pdf
new file mode 100644
index 0000000..bab86ad
Binary files /dev/null and b/bench/test_results/outline_poly.pdf differ
diff --git a/bench/test_results/polygon_plot.pdf b/bench/test_results/polygon_plot.pdf
index 77b6d13..786f183 100644
Binary files a/bench/test_results/polygon_plot.pdf and b/bench/test_results/polygon_plot.pdf differ
diff --git a/bench/test_results/pyferret_run_tests_err b/bench/test_results/pyferret_run_tests_err
index 3f97d80..37897e7 100644
--- a/bench/test_results/pyferret_run_tests_err
+++ b/bench/test_results/pyferret_run_tests_err
@@ -1,8 +1,8 @@
Using FERRET /home/users/ksmith/PyFerret/bin/pyferret
-lrwxrwxrwx 1 ksmith tmap 11 Nov 5 16:36 /home/users/ksmith/PyFerret/bin/pyferret -> pyferret.sh
-Using external functions from /home/users/ksmith/PyFerret/ext_func/libs
+-rwxr-xr-x. 1 ksmith tmap 1188 Nov 19 12:01 /home/users/ksmith/PyFerret/bin/pyferret
+Using external functions from /home/users/ksmith/PyFerret/ext_func/pylibs
Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug build of PyFerret on RHEL5-64
+Note: RUN_TESTS.sh test results for debug PyFerret on RHEL6-64
Benchmark scripts that will be run:
bn_syntax.jnl
bn_dollar.jnl
@@ -226,8 +226,28 @@ Benchmark scripts that will be run:
bn_date1900_array.jnl
bn_spawn_size.jnl
bn_polygon_log.jnl
+ bn694_bug_fixes.jnl
+ bn_permute_ascii.jnl
+ bn_lon_lat_time_string.jnl
+ bn_save_justdim.jnl
+ bn_time2d.jnl
+ bn_legend_labels.jnl
+ bn_DQ.jnl
+ bn695_bug_fixes.jnl
+ bn_f_tax_fcns.jnl
+ bn_fmrc.jnl
+ bn_return_defined.jnl
+ bn_can_var_noerr.jnl
+ bn_annotate.jnl
+ bn_auxiliary.jnl
+ bn_plot_ribbon_gaploc.jnl
+ bn_time_short_axes.jnl
+ bn_floatstr_extended.jnl
+ bn696_bug_fixes
+ bn_bin_regrid
bn_all_ef.jnl
bn_startupfile.jnl
+ bn_outline_poly.jnl
****** Restricting Ferret paths to bench directory ******
FER_DAT=.
FER_DATA=.
@@ -242,31 +262,32 @@ FER_GRIDS=.
FER_LIBS=/home/users/ksmith/PyFerret/lib
FER_PALETTE=. /home/users/ksmith/PyFerret/ppl
FER_WEB_BROWSER=firefox
-Beginning at Wed Nov 5 16:37:14 PST 2014
+PYFER_EXTERNAL_FUNCTIONS=/home/users/ksmith/PyFerret/ext_func/pylibs
+Beginning at Thu Nov 19 12:03:16 PST 2015
*** Running test: bn_syntax.jnl
Cached data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
SET EXPRESSION has not been given or implied
**ERROR: unknown command qualifier: help
MESSAGE/CONTINUE /help
@@ -285,12 +306,12 @@ message/cont $3"<my error message"
message/cont $1"|xxxxx|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $1
message/cont $1"greetings|xxxxx|goodbye"
- *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
+ *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
**ERROR: my error message
message/cont $3"|hello|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3">greetings|hello|goodbye"
- *** NOTE: Valid argument $3 choices are: hello|goodbye
+ *** NOTE: Valid argument $3 choices are: hello|goodbye
**ERROR: my error message
message/cont $3">greetings|hello|goodbye<my error message"
**ERROR: my error message
@@ -301,17 +322,17 @@ message/cont $3""
message/cont $3"<"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"||"
- *** NOTE: Valid argument $3 choices are: |
+ *** NOTE: Valid argument $3 choices are: |
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"|>|"
- *** NOTE: Valid argument $3 choices are: >|
+ *** NOTE: Valid argument $3 choices are: >|
**ERROR: command syntax: empty text string provided with ">": >|
message/cont $3">|"
**ERROR: command syntax: empty text string provided with ">": |<
message/cont $3"|<"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3"|>"
- *** NOTE: Valid argument $3 choices are: >
+ *** NOTE: Valid argument $3 choices are: >
**ERROR: command syntax: arg number not in 1-99 range: $100
say $100
**ERROR: command syntax: arg number not in 1-99 range: $100)
@@ -349,16 +370,16 @@ MESSAGE/CONTINUE `1*/3`
**ERROR: command syntax: sst*/3
* before / is illegal
MESSAGE/CONTINUE `sst*/3,return=lunits`
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
sst,return=Xsize
MESSAGE/CONTINUE `sst,return=Xsize`
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
sst,return=trash
MESSAGE/CONTINUE `sst,return=trash`
*** Running test: bn_letd.jnl
@@ -373,12 +394,22 @@ can var
LISTing to file v1file.nc
*** Running test: bn_if.jnl
Cached data cleared from memory
+ **ERROR: invalid command: ENDIF can only be used in an IF clause
+ENDIF
+ **ERROR: command syntax: ELIF cannot be used in single line IF
+ IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
+ **ERROR: command syntax: Trash after ENDIF
+ IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
+ *** NOTE: Unclosed IF statement ... assuming ENDIF
**ERROR: invalid command: ELSE can only be used between IF and ENDIF
else
**ERROR: invalid command: ENDIF can only be used in an IF clause
endif
**ERROR: invalid command: ELIF can only be used between IF and ENDIF
elif
+ *** NOTE: Unclosed IF statement ... assuming ENDIF
*** Running test: bn_expressions.jnl
Cached data cleared from memory
**ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -396,7 +427,7 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
+ *** NOTE: Ambiguous coordinates on X axis: X[I=1:5] - X[I=6:9]
**ERROR: inconsistent sizes of data regions: X axis
X[I=6:9] has 4 points (I=6:9)
expression has 5 points (I=1:5)
@@ -471,8 +502,8 @@ Re-defining viewport LM6
Re-defining viewport UM6
Using every 2th vector in the X direction
Using every 2th vector in the Y direction
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+ *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+ *** NOTE: Use /HLIMITS and /VLIMITS instead.
**ERROR: invalid command: color=noexist
Colors are Black, Red, Green, Blue, LightBlue, Purple, and White
plot/over/i=1:10/color=noexist i
@@ -486,7 +517,7 @@ plot/over/i=1:10/size=-1 i
**ERROR: invalid command: color=noexist
Colors are Black, Red, Green, Blue, LightBlue, Purple, and White
cont/over/i=1:10/color=noexist i
- *** NOTE: /THICKNESS ignored unless /COLOR (or /PEN) given
+ *** NOTE: /THICKNESS ignored unless /COLOR (or /PEN) given
**ERROR: dimensions improperly specified: overlay not valid in plane of plot
cont/over/i=1:10/thick=4 i
cont/over/i=1:10/thick=4 i
@@ -495,8 +526,8 @@ cont/over/i=1:10/thick=4 i
cont/over/i=1:10/sigdig=-1 i
*** Running test: bn_curv.jnl
Cached data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
Replacing definition of axis LON_FIELD_I_AXIS
Replacing definition of axis LON_FIELD_J_AXIS
Replacing definition of axis LAT_FIELD_I_AXIS
@@ -520,8 +551,8 @@ shade/nolabel sst, x_page, 0*y_page
shade/nolabel sst, x_page[j=1:12], y_page
**ERROR: inconsistent sizes of data regions: Y axis of X position array
shade/nolabel sst, x_page[j=1:12], y_page
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
*** Running test: bn_symbols.jnl
Cached data cleared from memory
**ERROR: command syntax: illegal name: TEST*
@@ -533,12 +564,12 @@ define symbol t$5 = hi
message/continue ($test2"<error message")
**ERROR: invalid command: Valid value needed for symbol test2
message/continue ($test2"|hello|bye|")
- *** NOTE: Valid symbol test2 choices are: hello|bye|
+ *** NOTE: Valid symbol test2 choices are: hello|bye|
**ERROR: error message
message/continue ($test2"|hello|bye|<error message")
**ERROR: invalid command: Valid value needed for symbol t2
message/continue ($t2"|solong>really hello|bye|")
- *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
+ *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
*** Running test: bn_comma_delimited.jnl
Cached data cleared from memory
*** Running test: bn_dynamic_grids.jnl
@@ -588,12 +619,12 @@ list tu
Cached data cleared from memory
**ERROR: request exceeds memory setting: 25 Mwords were requested.
list temp[gz=z999999,z=5:15]
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Cached data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
- *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
+ *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
+ *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] + X[X=1.1:11:1.5]
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
**ERROR: invalid command: non-positive delta value: X[I=1:5:-1]
list x[i=1:5:-1]
**ERROR: invalid command: non-positive delta value: X[I=1:5:0]
@@ -657,9 +688,9 @@ list a
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file test2.cdf
LISTing to file FL.cdf
LISTing to file FTLON.cdf
@@ -723,7 +754,7 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
*** Running test: bn_regrid_transforms.jnl
Cached data cleared from memory
**ERROR: regridding: G=W - more than 1 target grid
@@ -732,8 +763,8 @@ load temp[g=u,g=w]
load temp[g=x]
*** Running test: bn_axis_limits.jnl
Cached data cleared from memory
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+ *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+ *** NOTE: Use /HLIMITS and /VLIMITS instead.
**ERROR: command syntax: xlimits
plot/xlimits i
**ERROR: command syntax: xlimits= i
@@ -787,8 +818,8 @@ LIST a[gt=tcal]
Cached data cleared from memory
*** Running test: bn_gc_functions.jnl
Cached data cleared from memory
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+ *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+ *** NOTE: Use /HLIMITS and /VLIMITS instead.
*** Running test: bn491_bug_fixes.jnl
Cached data cleared from memory
LISTing to file test.cdf
@@ -819,14 +850,12 @@ Replacing definition of axis TAX
list v2-and-minus
**ERROR: dimensions improperly specified: 99999999 words were requested.
list x
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
+ *** NOTE: Check for unspecified limits on an ABSTRACT axis
+ *** NOTE: Use the SHOW GRID command to see the axes
**ERROR: dimensions improperly specified: 99999999 words were requested.
list i
- *** NOTE: Check for unspecified limits on an ABSTRACT axis
- *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: variable unknown or not in data set: 'i'
-list 'i'
+ *** NOTE: Check for unspecified limits on an ABSTRACT axis
+ *** NOTE: Use the SHOW GRID command to see the axes
**ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
- before and is illegal
list v2-and-minus[i=5:15 at ddc]
@@ -837,15 +866,15 @@ list v2-and-minus[i=5:15 at ddc]
LISTing to file junk.dat
**ERROR: request exceeds memory setting: 24000 Mwords were requested.
load num
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
**ERROR: request exceeds memory setting: 1000 Mwords were requested.
load num
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis XAX
Replacing definition of axis YAX
Replacing definition of axis ZAX
@@ -855,7 +884,7 @@ Replacing definition of axis TAX
SET DATA/EZ/format=stream/var=num/grid=mygrid NoSuchFile.dat
**ERROR: Size of file ./junk.dat doesn't match size specified by variables/grid
load num
- *** NOTE: Binary file reading: Insufficient memory reading variable 2
+ *** NOTE: Binary file reading: Insufficient memory reading variable 2
**ERROR: invalid command: variable permutations only allowed for STREAM format
SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
**ERROR: invalid command: invalid argument for /TYPE
@@ -886,42 +915,42 @@ Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax/edges {6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax/edges {6,6,6}
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
Replacing definition of axis XAX2
- *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
+ *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
Replacing definition of axis XAX2
*** Running test: bn_polygon.jnl
Cached data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
*** Running test: bn500_bug_fixes.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
@@ -946,7 +975,7 @@ Replacing definition of axis XAX2
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1002,8 +1031,8 @@ stat i, noname(i)
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
**ERROR: invalid command: delta values may only modify variable names
LIST/i=2:4:2 VAR
PERMANENT data cleared from memory
@@ -1012,15 +1041,15 @@ LIST/i=2:4:2 VAR
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
*** Running test: bn_non_COARDS_netCDF.jnl
Cached data cleared from memory
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
+ *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
*** Running test: bn_cache_hits.jnl
Cached data cleared from memory
*** Running test: bn_regrid_to_user.jnl
@@ -1040,11 +1069,11 @@ Replacing definition of axis TWEEKS
Replacing definition of axis TWEEKS
Replacing definition of axis TWEEKS
LISTing to file calsst.cdf
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
Replacing definition of grid TGRID
Replacing definition of axis TDAYS
Replacing definition of grid TGRID
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
*** Running test: bn_dash_dot.jnl
Cached data cleared from memory
**ERROR: command syntax: dash=(1., 2.)
@@ -1059,8 +1088,8 @@ plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
Using every 2th vector in the Y direction
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
Using every 2th vector in the X direction
Using every 2th vector in the Y direction
PERMANENT data cleared from memory
@@ -1166,10 +1195,10 @@ list strcat ("All work and no play")
LISTing to file test_modulo.cdf
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
*** Running test: bn_axis_viewports.jnl
Cached data cleared from memory
Re-defining viewport MID
@@ -1209,14 +1238,26 @@ list a[gx=xnrst at sum]
**ERROR: invalid command: cant use this regrid transform on strings: @MOD
list a[gx=xnrst at mod]
LISTing to file foo.cdf
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" - {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" * {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" / {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead "b" ^ {"a","b"}
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead SIN({"a","b","c"})
+ **ERROR: invalid command: cannot use strings in numerical expression
+list/nohead MAX("a",{"a","b","c"})
*** Running test: bn_axcontrol.jnl
Cached data cleared from memory
*** Running test: bn_vec_curv.jnl
Cached data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
*** Running test: bn_delimited_read.jnl
Cached data cleared from memory
Replacing definition of axis TAX
@@ -1224,12 +1265,12 @@ Replacing definition of grid G1
**TMAP ERR: syntax error in string
Unrecognized field type: D
Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+ *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
SET DATA/FORM=delimited/type="d, da2,date2" bn_delimited_read_date_time.dat
**TMAP ERR: syntax error in string
Unrecognized field type: DATE2
Data set: ./bn_delimited_read_date_time.dat
- *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+ *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
SET DATA/FORM=delimited/type="da,da, date2" bn_delimited_read_date_time.dat
**ERROR: command syntax: ,,:
SET DATA/EZ/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
@@ -1277,50 +1318,47 @@ Replacing definition of axis XAX
Replacing definition of axis YAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
-sh: ncrename: command not found
-sh: ncrename: command not found
-sh: ncrename: command not found
*** Running test: bn_cancel_axes.jnl
Cached data cleared from memory
LISTing to file longax.dat
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
+ *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: Climatological axes test_irreg, test_seas defined
*** Running test: bn542_bug_fixes.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.25 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file string4d.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./test_axes.nc ...
- *** NOTE: Climatological axes test_irreg, test_seas defined
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G001)
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G001)
+ *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: Climatological axes test_irreg, test_seas defined
+ *** NOTE: Not deleted: TEST_IRREG
+ *** NOTE: Axis is in use by grid (G001)
+ *** NOTE: Not deleted: TEST_IRREG
+ *** NOTE: Axis is in use by grid (G001)
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
*** Running test: bn_subspan_modulo.jnl
@@ -1344,26 +1382,26 @@ define axis/x=130e:500:10/modulo=360 xsub
LISTing to file test_subspan_modulo.nc
LISTing to file test_subspan_modulo.nc
LISTing to file test_subspan_modulo.nc
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
*** Running test: bn_dots.jnl
Cached data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: /THICKNESS ignored on /SYMBOL=DOT
- *** NOTE: /SIZE= ignored on /SYMBOL=DOT
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: /THICKNESS ignored on /SYMBOL=DOT
+ *** NOTE: /SIZE= ignored on /SYMBOL=DOT
*** Running test: bn_lev_symbols.jnl
Cached data cleared from memory
*** Running test: bn_mode_logo_lab.jnl
Cached data cleared from memory
*** Running test: bn_modulo_attribute.jnl
Cached data cleared from memory
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
- *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
+ *** NOTE: modulo = "j"
*** Running test: bn550_bug_fixes.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
@@ -1388,10 +1426,10 @@ Replacing definition of axis TAX
TEMPORARY data cleared from memory
*** Running test: bn_multi_line_labels.jnl
Cached data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
*** Running test: bn552_bug_fixes.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
@@ -1408,21 +1446,21 @@ SHADE/L=1/LEV=0.01d sst
POLYGON/KEY/LEV=0.01d/coord_ax=Z PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
+ *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+ *** NOTE: A dummy axis of subscripts will be used
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
rm: cannot remove `input.txt': No such file or directory
-ls: input.txt: No such file or directory
+ls: cannot access input.txt: No such file or directory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,units,dset,
+ **ERROR: invalid command: use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
dsetnum,dsetpath,dsettitle,*size,*start,*end,
*units,*axis,nc_scale,nc_offset,user_scale,user_offset,
- calendar,dtype,xmod,tmod,status,isDepth,isReady
+ calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
axy, return=xx
MESSAGE/CONTINUE `axy, return=xx`
PERMANENT data cleared from memory
@@ -1432,7 +1470,7 @@ Replacing definition of axis XAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis YAX
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1442,8 +1480,8 @@ Replacing definition of axis YAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
+ *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ *** NOTE: Axis has repeated values -- micro-adjusting TIME
**ERROR: illegal limits: "DUMMY" does not exist at T=01-JAN-1990 00:00
Axis extremes are T=31-DEC-1997 12:00:30-JAN-1998 12:00
list/t=1-jan-1990 dummy
@@ -1510,9 +1548,9 @@ SHOW VAR/XML
Using every 5th vector in the X direction
Using every 3th vector in the Y direction
Using every 2th vector in the X direction
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TAX
Replacing definition of axis TAX
Replacing definition of axis TAX
@@ -1584,8 +1622,8 @@ Replacing definition of grid AGRID
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Not using NetCDF strides for multi-cycle modulo
- *** NOTE: Stride value not a factor of axis length
+ *** NOTE: Not using NetCDF strides for multi-cycle modulo
+ *** NOTE: Stride value not a factor of axis length
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1619,9 +1657,9 @@ Replacing definition of axis YAX
LISTing to file a.nc
LISTing to file a.nc
Replacing definition of axis TAX
- *** NOTE: Axis definition error on axis: TAX
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Axis definition error on axis: TAX
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
Replacing definition of axis TAX
**ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
def axis/t/bounds tax={1.2,2,3.2,5,7,8.8,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5}
@@ -1633,32 +1671,32 @@ def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,
def axis/t/bounds tax={0,2,3.2,5,7,8,9.9}, {0.5,1.5,2.5,3.5,6.5,7.5,8.5,9.5}
**ERROR: improper grid or axis definition: dimension of bounds (15) must be 2*N or N+1, N=number of axis coordinates (7)
def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.5,7.5,7.5,8.5,8.5,9.5,10.5}
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+ *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
**ERROR: improper grid or axis definition: BOUNDS specified do not correctly enclose coordinate points
def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
+ *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
LISTing to file a.nc
- *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
+ *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
LISTing to file a.nc
LISTing to file irrxzt.nc
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: MONTH_REG
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
*** Running test: bn_all_leap.jnl
Cached data cleared from memory
**ERROR: command syntax: Invalid calendar name. Names are, GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
@@ -1673,7 +1711,7 @@ def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file xlong.nc
@@ -1722,6 +1760,7 @@ Replacing definition of axis XAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file fine.dat
+Cannot create cookie file
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: illegal limits: One-point independent axis: Requires a /HLIMIT or /VLIMIT specification
@@ -1732,7 +1771,7 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
LISTing to file aa.nc
LISTing to file cc.nc
PERMANENT data cleared from memory
@@ -1743,27 +1782,27 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
**ERROR: invalid command: Valid value needed for argument $2
query/ignore $2%|a|b|c|d|%
- *** NOTE: Valid argument $2 choices are: a|b|c|d|
+ *** NOTE: Valid argument $2 choices are: a|b|c|d|
**ERROR: my error message
message/cont $1"|xxxxx|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $1
message/cont $1"greetings|xxxxx|goodbye"
- *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
+ *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
**ERROR: my error message
message/cont $3"|hello|goodbye<my error message"
**ERROR: invalid command: Valid value needed for argument $3
message/cont $3">greetings|hello|goodbye"
- *** NOTE: Valid argument $3 choices are: hello|goodbye
+ *** NOTE: Valid argument $3 choices are: hello|goodbye
**ERROR: my error message
message/continue ($test2"<my error message")
**ERROR: invalid command: Valid value needed for symbol test2
message/continue ($test2"|hello|bye|")
- *** NOTE: Valid symbol test2 choices are: hello|bye|
+ *** NOTE: Valid symbol test2 choices are: hello|bye|
**ERROR: my error message
message/continue ($test2"|hello|bye|<my error message")
**ERROR: invalid command: Valid value needed for symbol t2
message/continue ($t2"|solong>really hello|bye|")
- *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
+ *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1785,29 +1824,28 @@ list/l=1/j=40/i=0:300:0 sst
Cached data cleared from memory
*** Running test: bn_regulart.jnl
Cached data cleared from memory
- *** NOTE: Evenly spaced axis has edges definition: TCOADS - ignored
*** Running test: bn_labwid.jnl
Cached data cleared from memory
*** Running test: bn_redefine_taxis_mc.jnl
Cached data cleared from memory
Replacing definition of axis TIME1
- *** NOTE: grid used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GHB1 used by data set coads_clim
+ *** NOTE: Redefinition may alter apparent contents of data set
Replacing definition of axis TIME1
- *** NOTE: grid used by data set coads_clim
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GHB1 used by data set coads_clim
+ *** NOTE: Redefinition may alter apparent contents of data set
*** Running test: bn_illegal_axisname.jnl
Cached data cleared from memory
Replacing definition of axis COADSX.ILLEGAL
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX1 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX2 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
Replacing definition of axis COADSY.ILLEGAL
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: grid used by data set illeg_axname
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX1 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GEX3 used by data set illeg_axname
+ *** NOTE: Redefinition may alter apparent contents of data set
*** Running test: bn_exit_script.jnl
Cached data cleared from memory
*** Running test: bn_exit_cycle.jnl
@@ -1840,20 +1878,20 @@ Replacing definition of axis COADSY.ILLEGAL
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
**ERROR: improper grid or axis definition: error in start,end,delta
DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 365.00 days
**ERROR: improper grid or axis definition: error in start,end,delta
DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1929,7 +1967,7 @@ sho att/all .
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1938,26 +1976,26 @@ sho att/all .
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the length of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.some_text
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the value of attribute temp.missing_value
- *** NOTE: Changing the value of attribute temp.missing_value
+ *** NOTE: Changing the value of attribute temp.long_name
+ *** NOTE: Changing the value of attribute temp.units
+ *** NOTE: Changing the value of attribute temp.missing_value
+ *** NOTE: Changing the value of attribute temp.missing_value
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSZT).positive
- *** NOTE: Changing the type of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (TIME1).time_origin
+ *** NOTE: Changing the value of attribute (PSZT).positive
+ *** NOTE: Changing the type of attribute (coadsx).modulo
+ *** NOTE: Changing the value of attribute (coadsx).modulo
+ *** NOTE: Changing the value of attribute (TIME1).time_origin
**ERROR: command syntax: enclose coordinate variable name in parentheses
list coadsx.units
**ERROR: variable unknown or not in data set: COADSX.UNITS
@@ -1968,17 +2006,17 @@ set att (COADSX81_81).axis = "Z"
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the length of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
- *** NOTE: Changing the type of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.some_text
- *** NOTE: Changing the value of attribute temp.long_name
- *** NOTE: Changing the value of attribute temp.units
- *** NOTE: Changing the type of attribute temp.pp
- *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the length of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the type of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
+ *** NOTE: Changing the type of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.some_text
+ *** NOTE: Changing the value of attribute temp.long_name
+ *** NOTE: Changing the value of attribute temp.units
+ *** NOTE: Changing the type of attribute temp.pp
+ *** NOTE: Changing the value of attribute temp.pp
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
@@ -2009,10 +2047,10 @@ set att (COADSX81_81).axis = "Z"
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
@@ -2021,27 +2059,27 @@ set att (COADSX81_81).axis = "Z"
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (COADSX).point_spacing
- *** NOTE: Changing the value of attribute (COADSY).point_spacing
+ *** NOTE: Changing the value of attribute (COADSX).point_spacing
+ *** NOTE: Changing the value of attribute (COADSY).point_spacing
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
data in attribute missing_value not representable in output type NC_INT
LIST/FORMAT=CDF/file=a.nc/clobber/x=132w/k=1 temp
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
**ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
set var/outtype=char broiled
**ERROR: unknown or invalid argument: Can SET VARIABLE/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE
set var/outtype=garbage broiled
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (PSXT).units
+ *** NOTE: Changing the value of attribute (PSXT).units
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Changing the value of attribute (PSXT).units
- *** NOTE: Changing the value of attribute (PSYT).units
+ *** NOTE: Changing the value of attribute (PSXT).units
+ *** NOTE: Changing the value of attribute (PSYT).units
LISTing to file a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2052,19 +2090,19 @@ set var/outtype=garbage broiled
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis X2AX
- *** NOTE: Changing the value of attribute (z4ax).positive
+ *** NOTE: Changing the value of attribute (z4ax).positive
LISTing to file string4d.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute (TIME).units
- *** NOTE: Changing the value of attribute (TIME).units
- *** NOTE: Changing the value of attribute (TIME).time_origin
- *** NOTE: Changing the value of attribute (TIME).time_origin
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: Changing the value of attribute (TIME).units
+ *** NOTE: Changing the value of attribute (TIME).units
+ *** NOTE: Changing the value of attribute (TIME).time_origin
+ *** NOTE: Changing the value of attribute (TIME).time_origin
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TIME
- *** NOTE: grid used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: grid GSQ1 used by data set coads_climatology
+ *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
LISTing to file a.nc
LISTing to file a.nc
LISTing to file a.nc
@@ -2074,23 +2112,27 @@ Replacing definition of axis TIME
Cached data cleared from memory
*** Running test: bn_linecolors.jnl
Cached data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
Using every 3th vector in the X direction
Using every 4th vector in the Y direction
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
*** Running test: bn_cdf_errmsg.jnl
+Cannot create cookie file
+Cannot create cookie file
syntax error, unexpected WORD_STRING, expecting WORD_WORD
context: Error { code = 404; message = "data/PMEL/COADS/coads_nothing.cdf"^;};
+Cannot create cookie file
+CURL Error: Couldn't resolve host name
curl error details:
Cached data cleared from memory
**TMAP ERR: non-existent or not on line
this_is_not_a_file.nc
SET DAT/FORM=CDF this_is_not_a_file.nc
**Internet Data error
- NetCDF: Malformed or inaccessible DAP DDS (OPeNDAP/netCDF Error code -72)
+ NetCDF: file not found (OPeNDAP/netCDF Error code -90)
Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
**Internet Data error
@@ -2134,7 +2176,7 @@ shade sst[t=@AVE,Z=@ave]
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
+ *** NOTE: /UNIT=MONTHS ... using 1/12 of 360.00 days
LISTing to file t3file.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2145,14 +2187,14 @@ shade sst[t=@AVE,Z=@ave]
LISTing to file subdir/0000_a.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
LISTing to file a.nc
- *** NOTE: cannot parse "units since date", date= "event"; leaving units string
+ *** NOTE: cannot parse "units since date", date= "event"; leaving units string
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Invalid I axis limits ignored: TEMP
+ *** NOTE: Invalid I axis limits ignored: TEMP
**ERROR: dimensions improperly specified: specified data is not a line
- its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
plot/i=100/k=1 temp[x=122.5W]
@@ -2198,10 +2240,10 @@ Replacing definition of axis XAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TIME4
- *** NOTE: grid used by data set coads_climatology
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GSQ1 used by data set coads_climatology
+ *** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis TIME
@@ -2227,9 +2269,9 @@ cancel axis/stride COADSX
set axis/stride=2/offset=4 COADSX
**ERROR: invalid command: not a strided axis: COADSX
cancel axis/stride COADSX
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+ *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
LISTing to file d2.nc
- *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
+ *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
**ERROR: invalid command: unknown axis: NORMAL
set axis/stride=2 NORMAL
*** Running test: bn_lsl_lowpass.jnl
@@ -2245,8 +2287,8 @@ set axis/stride=2 NORMAL
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file tripolar_missing_lon.nc
@@ -2258,31 +2300,31 @@ set axis/stride=2 NORMAL
Cached data cleared from memory
*** Running test: bn_fifty_files.jnl
Cached data cleared from memory
- *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
- *** NOTE: Axis has repeated values -- micro-adjusting TIME
- *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
- *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
- *** NOTE: modulo = "j"
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
- *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
- *** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
- *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ *** NOTE: Axis has repeated values -- micro-adjusting TIME
+ *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Valid calendars are GREGORIAN NOLEAP JULIAN 360_DAY ALL_LEAP
+ *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
+ *** NOTE: modulo = "j"
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
+ *** NOTE: They will not be convertible:
+ *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+ *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
*** Running test: bn603_bug_fixes.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
@@ -2330,6 +2372,9 @@ SHADE/LEV=300/I=1:100/J=1:100 i+j
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
*** Running test: bn_test_opendap.jnl
+Cannot create cookie file
+Cannot create cookie file
+CURL Error: Couldn't resolve host name
curl error details:
Cached data cleared from memory
*** Running test: bn611_bug_fixes.jnl
@@ -2399,8 +2444,8 @@ Replacing definition of axis TIME
LISTing to file b.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file 1a.dat
@@ -2454,35 +2499,35 @@ LIST a_regrid[D=1,GT=b[D=2]@MOD]
Cached data cleared from memory
*** Running test: bn_string_ngd_nbd.jnl
Cached data cleared from memory
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
Replacing definition of axis XAX
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
- *** NOTE: @NBD of string variable, counting null strings as missing
- *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
+ *** NOTE: @NBD of string variable, counting null strings as missing
+ *** NOTE: @NGD of string variable, counting null strings as missing
*** Running test: bn_cat_string.jnl
Cached data cleared from memory
*** Running test: bn_sort_strings.jnl
Cached data cleared from memory
*** Running test: bn_samplexyt.jnl
Cached data cleared from memory
- *** NOTE: /XLIMITS and /YLIMITS are deprecated.
- *** NOTE: Use /HLIMITS and /VLIMITS instead.
+ *** NOTE: /XLIMITS and /YLIMITS are deprecated.
+ *** NOTE: Use /HLIMITS and /VLIMITS instead.
*** Running test: bn_last_go_file.jnl
Cached data cleared from memory
*** Running test: bn_cancel_upcase_uservar.jnl
@@ -2535,9 +2580,9 @@ Replacing definition of axis TAX
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
LISTing to file test_abs.cdf
- *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
- *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
- *** NOTE: Write the data initially with the /BOUNDS qualifier
+ *** NOTE: Appending to NetCDF record axis which has no bounds attribute.
+ *** NOTE: This will result in incorrect box sizes on record axis: TCENTURY
+ *** NOTE: Write the data initially with the /BOUNDS qualifier
LISTing to file test2.cdf
LISTing to file FL.cdf
LISTing to file FTLON.cdf
@@ -2559,47 +2604,47 @@ list/format=cdf/keep_axnames/append/file=test_abs.cdf ijkl[k=@ave]
disordered output coordinate value: 363 Axis: TCENTURY
list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
LISTing to file FI.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
- *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
+ *** NOTE: /KEEP_AXISNAMES ignored. Inconsistent w/ enhanced heading.
LISTing to file test_fil0.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
@@ -2611,80 +2656,80 @@ list/format=cdf/keep_axnames/l=13/append/file=test_abs.cdf l1
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijk
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ikl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSYT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf jkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=1:50/l=2:3 ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=51:100/l=2:3 ijl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf/j=30:40/k=5/l=1:3 ijkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSZT doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf iavejkl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijavekl
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijkavel
LISTing to file test_fil.cdf
- *** NOTE: Writing a subset of data with original axis names
- *** NOTE: Axis was already written with a different set of coordinates
+ *** NOTE: Writing a subset of data with original axis names
+ *** NOTE: Axis was already written with a different set of coordinates
**TMAP ERR: attempt to redefine line
axis PSXU doesnt match CDF file
list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
**ERROR: variable unknown or not in data set: IJKL
show grid ijkl
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
*** Running test: bn_keep_axisnames.jnl
Cached data cleared from memory
LISTing to file a.nc
@@ -2706,8 +2751,8 @@ Replacing definition of axis TSEC
*** Running test: bn_grads_z.jnl
Cached data cleared from memory
Replacing definition of axis CAXIS
- *** NOTE: grid used by data set grads_bug_file
- *** NOTE: Redefinition may alter apparent contents of data set
+ *** NOTE: grid GMY1 used by data set grads_bug_file
+ *** NOTE: Redefinition may alter apparent contents of data set
*** Running test: bn_clock_syms.jnl
Cached data cleared from memory
*** Running test: bn63_bug_fixes.jnl
@@ -2720,20 +2765,20 @@ Replacing definition of axis CAXIS
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file xz.nc
@@ -2796,22 +2841,22 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
TEMPORARY data cleared from memory
*** Running test: bn_xml_repl.jnl
Cached data cleared from memory
- *** NOTE: Changing the value of attribute sst.history
+ *** NOTE: Changing the value of attribute sst.history
*** Running test: bn65_bug_fixes.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
LISTing to file mypack.nc
- *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: TIME: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: Units on axis "ENS" are not recognized: count
- *** NOTE: They will not be convertible:
+ *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: TIME: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: Units on axis "ENS" are not recognized: count
+ *** NOTE: They will not be convertible:
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -2854,8 +2899,8 @@ Re-defining viewport V8
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file nc4_deflate4.nc
- *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
- *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
+ *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
+ *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
LISTing to file nc4_nodeflate3.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -2866,13 +2911,13 @@ Re-defining viewport V8
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file nc4_inttemp_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_shuffle_set_list_deflate_chunk.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_inttemp_set_classic.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
LISTing to file nc4_deflate4_t1.nc
**TMAP ERR: syntax error in string
If ChunkSize is set for any dimension of var, must set for all its dimensions
@@ -2893,17 +2938,17 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
Cached data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
*** Running test: bn_set_axis_regular.jnl
Cached data cleared from memory
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX
- *** NOTE: Axis is already regular: MYX
+ *** NOTE: Axis reset to be regular (evenly-spaced): MYX
+ *** NOTE: Axis is already regular: MYX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
+ *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
*** Running test: bn_set_cancel_redirect.jnl
Cached data cleared from memory
Use the GO command to name a file of FERRET commands to be executed.
@@ -2930,7 +2975,7 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: No active redirects to cancel
+ *** NOTE: No active redirects to cancel
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
@@ -2939,14 +2984,14 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: Axis is already regular: MYAXIS
+ *** NOTE: Axis is already regular: MYAXIS
**ERROR: variable unknown or not in data set: GARBAGE
show grid garbage
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
Use "GO/HELP filename" to read documentation in the file to be executed.
- *** NOTE: stderr is not redirected
+ *** NOTE: stderr is not redirected
Use the GO command to name a file of FERRET commands to be executed.
e.g. yes? GO filename
@@ -2995,13 +3040,11 @@ Replacing definition of axis YAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb [...]
- *** NOTE: exceeds expected length. Maximum characters: 2048
LISTing to file aa.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
-set mode desperate 1.E+10
+set mode desperate 9999999999.000000
**ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
set mode desperate 1234567890123456789
PERMANENT data cleared from memory
@@ -3024,11 +3067,11 @@ Replacing definition of axis YAX_DUP_AXNAMES
LISTing to file a.nc
*** Running test: bn_NaN_note.jnl
Cached data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+ *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
*** Running test: bn671_bug_fixes.jnl
Bailing out of external function "tax_year":
@@ -3051,7 +3094,7 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
*** Running test: bn68_bug_fixes.jnl
@@ -3065,21 +3108,21 @@ Replacing definition of axis TAXIS
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: ./err672_vert_axislabel.jnl
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: ./err672_vert_axislabel.jnl
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
- *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3137,10 +3180,10 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
LISTing to file a.nc
*** Running test: bn_repeated_coords.jnl
Cached data cleared from memory
- *** NOTE: Axis has repeated values -- micro-adjusting TMIN
- *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Axis has repeated values -- micro-adjusting ...
+ *** NOTE: Axis has repeated values -- micro-adjusting TMIN
+ *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
+ *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis has repeated values -- micro-adjusting ...
*** Running test: bn_xml_header.jnl
Cached data cleared from memory
*** Running test: bn_eof_simple.jnl
@@ -3194,34 +3237,32 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
Replacing definition of axis FAX4DAY
*** Running test: bn_aggregate_e.jnl
Cached data cleared from memory
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
**ERROR: unknown data set: dset 3 unknown or is already an aggregate dataset
define data/agg windy = 1,2,3
- **ERROR: error defining aggregate dataset: Aggregate dataset not defined
-define data/agg windy = 1,2,3
- *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
- *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+ *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
+ *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
**ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
define data/agg windy = 1,2
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
- *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
- *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
+ *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
+ *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
*** Running test: bn_6d_lab_mode.jnl
Cached data cleared from memory
*** Running test: bn682_bug_fixes.jnl
@@ -3232,8 +3273,8 @@ define data/agg windy = 1,2
Cached data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
- *** NOTE: /home/users/ksmith/PyFerret/go/magnify.jnl
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
+ *** NOTE: /home/users/ksmith/PyFerret/go/magnify.jnl
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3258,7 +3299,7 @@ SET DAT/FORM=CDF ./z1.nc
Cached data cleared from memory
LISTing to file mytype.nc
LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
LISTing to file mytype.nc
LISTing to file mytype.nc
LISTing to file mytype.nc
@@ -3278,7 +3319,7 @@ SET DAT/FORM=CDF ./z1.nc
Cached data cleared from memory
LISTing to file mytype.nc
LISTing to file mytype.nc
- *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+ *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
LISTing to file mytype.nc
LISTing to file mytype.nc
LISTing to file mytype.nc
@@ -3294,7 +3335,7 @@ LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
LISTing to file mytype.nc
*** Running test: bn_axis_nonmonotonic.jnl
Cached data cleared from memory
- **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index 12
+ **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
define axis/t/units=days tax = tvar
*** Running test: bn_vec_mod.jnl
Cached data cleared from memory
@@ -3337,10 +3378,10 @@ NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
data in attribute _FillValue not representable in output type NC_INT
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file a.nc
@@ -3349,8 +3390,10 @@ NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: command syntax: .HELLO
@@ -3379,8 +3422,8 @@ Replacing definition of axis AXI
Replacing definition of axis AXI_COARSE
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
- *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
+ *** NOTE: A dummy axis of subscripts will be used
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file sst_new.nc
@@ -3391,16 +3434,15 @@ Replacing definition of axis AXI_COARSE
*** Running test: bn_dsg_e_x.jnl
Cached data cleared from memory
*** Running test: bn_nco_append.jnl
-sh: ncks: command not found
Cached data cleared from memory
LISTing to file append_to_this.nc
*** Running test: bn_nobounds.jnl
Cached data cleared from memory
LISTing to file a.nc
LISTing to file a.nc
- *** NOTE: Axis definition error on axis: TGAP
- *** NOTE: Bounds given describe non-contiguous axis cells
- *** NOTE: Using the LOWER bound specified for each axis cell
+ *** NOTE: Axis definition error on axis: TGAP
+ *** NOTE: Bounds given describe non-contiguous axis cells
+ *** NOTE: Using the LOWER bound specified for each axis cell
LISTing to file a.nc
LISTing to file a.nc
*** Running test: bn_write_integer_att.jnl
@@ -3410,8 +3452,8 @@ sh: ncks: command not found
Cached data cleared from memory
*** Running test: bn_plot_color_only.jnl
Cached data cleared from memory
- *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
- *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+ *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+ *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
**ERROR: command syntax: COLOR
/COLOR must have an argument for PLOT/OVERLAY
plot/i=1:100/over/COLOR 0.6*sin(i/7)
@@ -3420,9 +3462,9 @@ plot/i=1:100/over/COLOR 0.6*sin(i/7)
plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
*** Running test: bn_vtree.jnl
Cached data cleared from memory
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
**ERROR: unknown defining grid: G=NOEXIST
list b
**ERROR: command syntax: 45S
@@ -3434,6 +3476,7 @@ list e
**ERROR: illegal limits: X axis limits don't match variable def'n: A
Are you giving explicit limits when SET REGION would suffice ?
list f
+Replacing definition of axis ZAX
*** Running test: bn686_bug_fixes.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
@@ -3446,7 +3489,7 @@ list f
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute a.ival
+ *** NOTE: Changing the value of attribute a.ival
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**TMAP ERR: non-existent or not on line
@@ -3466,8 +3509,8 @@ SET DAT/FORM=CDF snoopy.dat
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: regarding ./climatological_axes.cdf ...
- *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
+ *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3506,8 +3549,8 @@ LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
shade b
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Changing the value of attribute v1.long_name
- *** NOTE: Changing the value of attribute v1.units
+ *** NOTE: Changing the value of attribute v1.long_name
+ *** NOTE: Changing the value of attribute v1.units
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
@@ -3527,9 +3570,9 @@ set var/name=psi myvar
set var/name=diff w
*** Running test: bn_bad_axis_bounds.jnl
Cached data cleared from memory
- *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
- *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
+ *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
+ *** NOTE: Substituting coordinate midpoints
*** Running test: bn_enter_exit_GO.jnl
Cached data cleared from memory
*** Running test: bn_stddev.jnl
@@ -3558,12 +3601,12 @@ list tax_datestring (tt[L=3], tt, 5)
list tax_datestring (tt[L=3], "my_tax", "minutes")
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
- *** NOTE: Substituting coordinate midpoints
- *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
- *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+ *** NOTE: Substituting coordinate midpoints
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
**ERROR: command syntax: must be a constant COS(1)
@@ -3603,17 +3646,17 @@ list {5*3+1, 2+3}
Replacing definition of axis XAXIS
**ERROR: request exceeds memory setting: 2369 Mwords were requested.
load bigvar
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis LONGTIME
**ERROR: request exceeds memory setting: 4735 Mwords were requested.
load bigvar
- *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
- *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
- *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
LISTing to file aa.nc
LISTing to file bb.nc
LISTing to file a.nc
@@ -3652,6 +3695,12 @@ shade a
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-2)
+ **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
+list substring("hello",1,-3)
*** Running test: bn_append_dsg.jnl
Cached data cleared from memory
rm: cannot remove `test_save_dsg.nc': No such file or directory
@@ -3667,9 +3716,9 @@ rm: cannot remove `test_save_dsg.nc': No such file or directory
Cached data cleared from memory
*** Running test: bn_show_outfile.jnl
Cached data cleared from memory
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
- *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
**ERROR: unknown defining grid: G=NOEXIST
list b
**ERROR: command syntax: 45S
@@ -3691,6 +3740,220 @@ list f
poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
**ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
+*** Running test: bn694_bug_fixes.jnl
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file aa.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: unknown data set: BAD_D
+stat/l=1/x=180/y=0 a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ **ERROR: invalid command: REPEAT what ?
+repeat/range=1:2/name=row
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+Replacing definition of axis TREDEF
+ *** NOTE: grid GSI1 used by data set a
+ *** NOTE: Redefinition may alter apparent contents of data set
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: cairoCFerBind_saveWindow: unrecognized format 'HDF'
+frame/format=hdf/file=a.hdf
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Could not compute Std Dev. Data too large or or not within 3 std of computed mean.
+ *** NOTE: Using linear levels instead.
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ TEMPORARY data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running test: bn_permute_ascii.jnl
+ Cached data cleared from memory
+Replacing definition of grid GRID3D
+*** Running test: bn_lon_lat_time_string.jnl
+ Cached data cleared from memory
+*** Running test: bn_save_justdim.jnl
+ Cached data cleared from memory
+ LISTing to file a.nc
+ *** NOTE: Saving E or F axis with time axis uses /RIGID in time
+ LISTing to file a.nc
+*** Running test: bn_time2d.jnl
+ Cached data cleared from memory
+ *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+*** Running test: bn_legend_labels.jnl
+ Cached data cleared from memory
+*** Running test: bn_DQ.jnl
+ Cached data cleared from memory
+ *** NOTE: Changing the value of attribute foobar.some_text
+ *** NOTE: Changing the value of attribute foobar.some_text
+*** Running test: bn695_bug_fixes.jnl
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+rm: cannot remove `WestCoastCarbon_9d9c_f562_77b5_5.nc': No such file or directory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running test: bn_f_tax_fcns.jnl
+ Cached data cleared from memory
+ LISTing to file a.nc
+Replacing definition of axis FSEC
+ *** NOTE: grid GSI1 used by data set a
+ *** NOTE: Redefinition may alter apparent contents of data set
+*** Running test: bn_fmrc.jnl
+ Cached data cleared from memory
+*** Running test: bn_return_defined.jnl
+ Cached data cleared from memory
+*** Running test: bn_can_var_noerr.jnl
+ Cached data cleared from memory
+ **ERROR: variable unknown or not in data set: B
+cancel var b,a
+*** Running test: bn_annotate.jnl
+ Cached data cleared from memory
+ **ERROR: command syntax: xpos=a2
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: ypos=b
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: halign=c
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: valign=d
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+ **ERROR: command syntax: siz=f
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+annotate/nouser/ypos=0 "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: xpos=a2
+def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: ypos=b
+def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: hal=c
+def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: val=d
+def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"
+ **ERROR: command syntax: siz=f
+def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+def anno/nou/ypos=0 "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+def anno/nou/xpos=0/hal=1/val=0 "My Lab"
+ **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
+def anno/nou/user/xpos=0/ypos=0 "My Lab"
+*** Running test: bn_auxiliary.jnl
+ Cached data cleared from memory
+rm: cannot remove `layerz_test_data.txt': No such file or directory
+ LISTing to file layerz_test_data.txt
+ **ERROR: variable unknown or not in data set: (data set ok ?): noexist
+SET VAR/layerz=depth noexist
+ *** NOTE: Ambiguous coordinates on Z axis: TEMP6D-TEMPZ6D
+ **ERROR: invalid command: auxiliary variable DEPTH6D has a T axis not found on variable TEMP
+LIST/PREC=7 tempz6d_unmatch
+Replacing definition of axis ZAX
+*** Running test: bn_plot_ribbon_gaploc.jnl
+ Cached data cleared from memory
+ **ERROR: command syntax: PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments
+plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
+ **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
+plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
+ **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
+plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
+*** Running test: bn_time_short_axes.jnl
+ Cached data cleared from memory
+*** Running test: bn_floatstr_extended.jnl
+ Cached data cleared from memory
+*** Running test: bn696_bug_fixes
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Units on axis "pfull1_1" are not recognized: hpa
+ *** NOTE: They will not be convertible:
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: unknown data set: noexist
+SHOW DATA noexist
+ **ERROR: unknown data set: 2
+SHOW DATA 2
+ **ERROR: unknown data set: noexist
+SHOW DATA/ATT noexist
+*** Running test: bn_bin_regrid
+ Cached data cleared from memory
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
*** Running test: bn_all_ef.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
@@ -3710,6 +3973,8 @@ LOAD/TEMPORARY vflag
TEMPORARY data cleared from memory
*** Running test: bn_startupfile.jnl
Cached data cleared from memory
- *** NOTE: the use of "SET MODE METAFILE" is deprecated;
- *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
-Ended at Wed Nov 5 16:42:11 PST 2014
+ *** NOTE: the use of "SET MODE METAFILE" is deprecated;
+ *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
+*** Running test: bn_outline_poly.jnl
+ Cached data cleared from memory
+Ended at Thu Nov 19 12:07:03 PST 2015
diff --git a/bench/test_results/pyferret_run_tests_log b/bench/test_results/pyferret_run_tests_log
index 8a7e0f3..612e4ca 100644
--- a/bench/test_results/pyferret_run_tests_log
+++ b/bench/test_results/pyferret_run_tests_log
@@ -1,8 +1,8 @@
Using FERRET /home/users/ksmith/PyFerret/bin/pyferret
-lrwxrwxrwx 1 ksmith tmap 11 Nov 5 16:36 /home/users/ksmith/PyFerret/bin/pyferret -> pyferret.sh
-Using external functions from /home/users/ksmith/PyFerret/ext_func/libs
+-rwxr-xr-x. 1 ksmith tmap 1188 Nov 19 12:01 /home/users/ksmith/PyFerret/bin/pyferret
+Using external functions from /home/users/ksmith/PyFerret/ext_func/pylibs
Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug build of PyFerret on RHEL5-64
+Note: RUN_TESTS.sh test results for debug PyFerret on RHEL6-64
Benchmark scripts that will be run:
bn_syntax.jnl
bn_dollar.jnl
@@ -226,8 +226,28 @@ Benchmark scripts that will be run:
bn_date1900_array.jnl
bn_spawn_size.jnl
bn_polygon_log.jnl
+ bn694_bug_fixes.jnl
+ bn_permute_ascii.jnl
+ bn_lon_lat_time_string.jnl
+ bn_save_justdim.jnl
+ bn_time2d.jnl
+ bn_legend_labels.jnl
+ bn_DQ.jnl
+ bn695_bug_fixes.jnl
+ bn_f_tax_fcns.jnl
+ bn_fmrc.jnl
+ bn_return_defined.jnl
+ bn_can_var_noerr.jnl
+ bn_annotate.jnl
+ bn_auxiliary.jnl
+ bn_plot_ribbon_gaploc.jnl
+ bn_time_short_axes.jnl
+ bn_floatstr_extended.jnl
+ bn696_bug_fixes
+ bn_bin_regrid
bn_all_ef.jnl
bn_startupfile.jnl
+ bn_outline_poly.jnl
****** Restricting Ferret paths to bench directory ******
FER_DAT=.
FER_DATA=.
@@ -242,9 +262,10 @@ FER_GRIDS=.
FER_LIBS=/home/users/ksmith/PyFerret/lib
FER_PALETTE=. /home/users/ksmith/PyFerret/ppl
FER_WEB_BROWSER=firefox
-Beginning at Wed Nov 5 16:37:14 PST 2014
+PYFER_EXTERNAL_FUNCTIONS=/home/users/ksmith/PyFerret/ext_func/pylibs
+Beginning at Thu Nov 19 12:03:16 PST 2015
*** Running test: bn_syntax.jnl
-! bn401_syntax.JNL
+[?1034h! bn401_syntax.JNL
! - test syntax interpretation of Program FERRET
! - major changes for FERRET ver 2.00 5/90
! - changed mode REMOTE to mode STUPID - REMOTE removed in V2.30
@@ -412,10 +433,10 @@ SHOW DATA/FULL
name title I J K L M N
P my P variable 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999
on grid ABSTRACT with -1.E+34 for missing data
- X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1
+ X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1.E+08
Q Q 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999 1:99999999
on grid ABSTRACT with -1.E+34 for missing data
- X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1
+ X=0.5:1.E+08 Y=0.5:1.E+08 Z=0.5:1.E+08 E=0.5:1.E+08 F=0.5:1.E+08
/FORMAT = UNF
/SKIP = 2
@@ -547,7 +568,8 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -566,7 +588,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
SET MODE IGNORE_ERROR
SHOW MODES
MODE STATE ARGUMENT
@@ -580,7 +603,8 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -599,7 +623,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
CANCEL MODE IGNORE_ERROR
SHOW MODES
MODE STATE ARGUMENT
@@ -613,7 +638,8 @@ SHOW MODES
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -632,7 +658,8 @@ SHOW MODES
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
SHOW MODE STUPID
MODE STATE ARGUMENT
STUPID CANCELLED
@@ -1201,8 +1228,8 @@ say "demonstrate that these leading blanks:\
demonstrate that these leading blanks: really are preserved
! continuation prompts are ignored, too
-yes? say "demonstrate that these leading blanks:\
-...? really are preserved"
+say "demonstrate that these leading blanks:\
+ really are preserved"
demonstrate that these leading blanks: really are preserved
! weird little blank line inputs
@@ -1250,7 +1277,7 @@ J1111111112222222222333333333344444444445555555555666666666677777777778888888888
*** A111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000B111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000C111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000D111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000E111111111222222222233333333334444444444555555555566666666667777777777888888888899999999 [...]
*** Running test: bn_dollar.jnl
-! test this with GO journal hello
+[?1034h! test this with GO journal hello
! V510: 3/00 *sh* added tests of backslash escapes and surrounding quotations
! V532: 5/01 *sh* added tests of 2-digit arguments; made mode ignore stricter
@@ -1265,7 +1292,7 @@ message/continue here is: $1"some text" and some more stuff
here is: hello and some more stuff
message/cont here is a big $1 and $3&some text& ! default provided
- !-> message/cont here is a big hello and some text ! default provided
+ !-> message/cont here is a big hello and some text
here is a big hello and some text
message/cont $3 ! error - no default
@@ -1373,7 +1400,7 @@ go bn_dollar.sub ((x+y),(x-5)) ! ignore comma, get single arg
! V510 3/00
set mode ignore
message/continue "$1" ! final quote used to get mis-applied
- !-> message/continue "hello" ! final quote used to get mis-applied
+ !-> message/continue "hello"
hello
set mode/last ignore
go bn_dollar.sub \"hello\" ! quotations as part of argument
@@ -1419,7 +1446,7 @@ set mode ignore
say ($10)0 ! argument 10 not defined
set mode/last ignore
*** Running test: bn_grave.jnl
-! bn420_grave
+[?1034h! bn420_grave
! benchmark to test evaluation of grave accent-enclosed expressions
! requires FERRET version 4.00 or later
@@ -1438,7 +1465,7 @@ message/continue "2 squared + 2 squared =`2^2` + `2+2`"
2 squared + 2 squared =4 + 4
message/continue "50/0 =`50/0`" ! invalid result
- !-> message/continue "50/0 =bad" ! invalid result
+ !-> message/continue "50/0 =bad"
50/0 =bad
repeat/i=1:3 message/continue "I=`I`"
@@ -1466,7 +1493,7 @@ I=7
!cancel region/X ! removed - temporary experiment 3/00 *sh*
message/continue "2+2=``2+2``" ! double grave accents get condensed
- !-> message/continue "2+2=`2+2`" ! double grave accents get condensed
+ !-> message/continue "2+2=`2+2`"
2+2=`2+2`
message/continue A default substitution: $9"default string|2+2=`2+2`"
@@ -1486,7 +1513,7 @@ message/continue "1/300=`1/300,p=5`"
!-> message/continue "1/300=0.0033333"
1/300=0.0033333
message/continue "1/300=`1/300,p=-5`" ! decimal places
- !-> message/continue "1/300=0.00333" ! decimal places
+ !-> message/continue "1/300=0.00333"
1/300=0.00333
message/continue "1/300=`1/300 , precision=10`"
!-> message/continue "1/300=0.003333333333"
@@ -1710,13 +1737,24 @@ say `a,return=isize` ! full evaluation occurs
say `a[i=2:3],return=isize` ! full evaluation is bypassed
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ -DELETE J M: 4 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found A M: 10 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
!-> MESSAGE/CONTINUE 2
2
-say `a[i=100:200],return=isize` ! WRONG! because full evaluation is bypassed
+say `a[i=100:200],return=isize` ! correct starting with Ferret v694 (tkt 2213)
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- !-> MESSAGE/CONTINUE 101
-101
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval A C: 6 dset: 0 I: 100 200 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval (C01,V08 C: 8 dset: 0 I: 100 200 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found (C11,V08 M: 8 dset: 0 I: -999 -999 J: 1 5 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 5
+5
set mode/last diagnostic
! deliberate errors
@@ -1731,7 +1769,7 @@ say `sst,return=trash`
set mode/last ignore_errors
*** Running test: bn_letd.jnl
-! bn420_letd.jnl
+[?1034h! bn420_letd.jnl
! 9/1/95
! test LET definitions with the /D qualifier: LET, SHOW, SET VAR, CANCEL
@@ -2005,7 +2043,7 @@ list q[d=v12file]
3 / 3: 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00
*** Running test: bn_if.jnl
-! bn430_if
+[?1034h! bn430_if
! 5/6/96
! 5/22/96 - added nested multi-line IF with nesting in REJECTED clause
@@ -2073,6 +2111,19 @@ CORRECT:sym sub
---->CORRECT
---->CORRECT again
---->nested: all is well after multi-line IF
+CORRECT
+CORRECT
+LOOP=1
+more
+LOOP=2
+more
+LOOP=1
+LOOP=2
+semicolon group
+more
+semicolon group
+CORRECT
+WE SEE THIS CUZ OF IMPLIED CLOSE TO THE PREVIOUS
>>> --> DELIBERATE WARNING: UNCLOSED IF in NESTED GO FILE<<<
---->... now inside of nested IF clause
---->CORRECT
@@ -2083,12 +2134,8 @@ SAY ">>> --> DELIBERATE WARNING: UNCLOSED IF <<<"
IF yes THEN
say ---->... now inside of IF clause
---->... now inside of IF clause
-
-
-
-
*** Running test: bn_expressions.jnl
-! bn450_expressions.JNL
+[?1034h! bn450_expressions.JNL
! test all manner of expressions
! V450 - commented out MODE POLISH test -- mode was eliminated
! V530 - new pseudo-variables XBOXLO, YBOXHI, etc.
@@ -2616,7 +2663,7 @@ LIST/L=5:7 TBOXLO, TBOXHI
6 / 6: 5.500 6.500
7 / 7: 6.500 7.500
*** Running test: bn_geometry.jnl
-! bn200_geometry.JNL
+[?1034h! bn200_geometry.JNL
! benchmark various geometries for accessing FERRET data
! similar tests are performed on:
! abstract variable
@@ -3909,7 +3956,7 @@ SET MODE/LAST IGNORE_ERRORS
*** Running test: bn_output.jnl
-! bn200_output.JNL
+[?1034h! bn200_output.JNL
! - test various output methods in FERRET
! rev 0.0 4/27/90 *sh*
@@ -6894,7 +6941,7 @@ LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
SET MODE/LAST IGNORE
CANCEL LIST
*** Running test: bn_in_plane.jnl
-! bn200_in_plane.JNL
+[?1034h! bn200_in_plane.JNL
! benchmark various geometries with in-plane transformation applied (@SBX)
! this benchmark is layered on the compress benchmark to obtain the geometries
! similar tests are performed on:
@@ -7408,7 +7455,7 @@ LIST/ORDER=T v[t=@sbx,i=@ave,j=@ave,k=@ave]
2 3 4
-2.855 -1.567 -0.836
*** Running test: bn_compress.jnl
-! bn200_compress.JNL
+[?1034h! bn200_compress.JNL
! benchmark various geometries obtained by compressing FERRET data with @AVE
! similar tests are performed on:
! abstract variable
@@ -7914,7 +7961,7 @@ LIST/ORDER=X v[i=@ave,j=@ave,k=@ave,l=@ave]
! remove call to bn200_compress.sub_qady for portable benchmarks *kob* 5/99
! ****
*** Running test: bn_interpolate.jnl
-! bn200_interpolate.JNL
+[?1034h! bn200_interpolate.JNL
! benchmark interpolation along various axes
SET LIST/PRECISION=6
@@ -8309,7 +8356,7 @@ LIST v[@xpt, at ypt, at zpt, at tpt]
T : 1.0005 (interpolated)
1113.00
*** Running test: bn_regrid.jnl
-! bn200_regrid.JNL
+[?1034h! bn200_regrid.JNL
! test regridding
! first test consists of regridding and re-regridding back and comparing
! when the variable, v is linear along all axes results should be exact
@@ -9690,7 +9737,7 @@ list a24[g=g48]-a48
05-JAN-1980 00 / 3: -438312.
07-JAN-1980 00 / 4: -438312.
*** Running test: bn_ez.jnl
-! bn401_ez.JNL
+[?1034h! bn401_ez.JNL
! test all manner of accessing non-TMAP data files
! V401 modified from bn200_ez.jnl by the addition of a test of UNF reading
@@ -10099,7 +10146,7 @@ list my_var
9 / 9: 9.00
10 / 10: 10.00
*** Running test: bn_plot.jnl
-! bn450_plot.JNL - updated 9/97 from bn320_plot.jnl
+[?1034h! bn450_plot.JNL - updated 9/97 from bn320_plot.jnl
! upgraded from bn320 to provide method for testing batch mode. Also remove
! all labels to create "master" gif and ps files to compare against
! *kob*
@@ -10107,12 +10154,12 @@ list my_var
! v581 - for the last set, cancel mode logo, so that .plt files are comparable.
! define a 6 viewport window (modified definitions 11/92)
-def view/text=.4/xlim=0,.333/ylim=0,.5 ll6
-def view/text=.2/xlim=0,.333/ylim=.5,1 ul6
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6
-def view/text=1.5/xlim=.666,1/ylim=0,.5 lr6
-def view/xlim=.666,1/ylim=.5,1 ur6 ! auto /TEXT
+def view/xlim=0,.333/ylim=0,.5 ll6
+def view/xlim=0,.333/ylim=.5,1 ul6
+def view/xlim=.333,.666/ylim=0,.5 lm6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view/xlim=.666,1/ylim=0,.5 lr6
+def view/xlim=.666,1/ylim=.5,1 ur6
show view
name text xlimits ylimits mode
@@ -10126,11 +10173,11 @@ show view
UL 0.50 0.00,0.50 0.50,1.00 edges
UR 0.50 0.50,1.00 0.50,1.00 edges
FULL 1.00 0.00,1.00 0.00,1.00 edges
- LL6 0.40 0.00,0.33 0.00,0.50 edges
- UL6 0.20 0.00,0.33 0.50,1.00 edges
- LM6 0.10 0.33,0.67 0.00,0.50 edges
- UM6 0.60 0.33,0.67 0.50,1.00 edges
- LR6 1.50 0.67,1.00 0.00,0.50 edges
+ LL6 0.41 0.00,0.33 0.00,0.50 edges
+ UL6 0.41 0.00,0.33 0.50,1.00 edges
+ LM6 0.41 0.33,0.67 0.00,0.50 edges
+ UM6 0.41 0.33,0.67 0.50,1.00 edges
+ LR6 0.41 0.67,1.00 0.00,0.50 edges
UR6 0.41 0.67,1.00 0.50,1.00 edges
current viewport is NONE
@@ -10182,12 +10229,12 @@ plot/l=1:50/k=1/trans/nolabel a,b,c
plot/l=1:50/k=1/trans/over/line=6/nolabel d
plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
-def view/text=.1/xlim=.333,1/ylim=0,.5 lm6 ! redefine longer in x (11/92)
+def view/xlim=.333,1/ylim=0,.5 lm6 ! redefine longer in x (11/92)
set view lm6
!ppl axlen 16
set region/k=1
plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-def view/text=.6/xlim=.333,1/ylim=.5,1 um6 ! redefine it longer in x (11/92)
+def view/xlim=.333,1/ylim=.5,1 um6 ! redefine it longer in x (11/92)
set view um6
!ppl axlen 17,5
plot/l=1:50/nolabel sin(100/(l+5))
@@ -10206,7 +10253,7 @@ contour/i=1:50/j=1:50/levels=(0,2.5,.25)/nolabel i/(j+20)
plot/over/nolab/vs/line/i=1:50/j=1:50/nolabel 6*i/j,5*j/i
set view ul6
vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6 ! redefine it (11/92)
+def view/xlim=.333,.666/ylim=0,.5 lm6 ! redefine it (11/92)
set view lm6
shade/i=1:50/j=1:50/nolabel i/(j+20)
set view lr6
@@ -10220,7 +10267,7 @@ contour/i=1:50/j=1:50/over/level/nolabel icomp^2+(-1*cos(i/10)*80)^2
! note: "i-i" and "j-j" are needed to create 2D structures
vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
vector/i=1:50/j=1:50/overlay/length/nolabel i-20+(j-j),40-j+(i-i)
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6 ! redefine it (11/92)
+def view/xlim=.333,.666/ylim=.5,1 um6 ! redefine it (11/92)
set view um6
shade/i=1:50/j=1:50/nolabel i/(j+20)
contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
@@ -10297,7 +10344,7 @@ polygon/thick/color=red/palette=blue {1,2,1}, {2,1,0.5}
set mode/last logo
*** Running test: bn_curv.jnl
-cancel mode ignore
+[?1034hcancel mode ignore
!
! Your basic map projection
!
@@ -10474,7 +10521,7 @@ can mode ignore
set mode meta bnplot.plt
*** Running test: bn_symbols.jnl
-! bn420_symbols
+[?1034h! bn420_symbols
! benchmark to test machinery of symbol definition and use
! requires FERRET version 4.00 or later
@@ -10495,18 +10542,18 @@ show symbols/all
PPL$XPIXEL = "0"
PPL$YPIXEL = "0"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5"
+FERRET_VERSION = "6.96"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
+NETCDF_VERSION = "4.3.3.1 of Nov 17 2015 15:01:40 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:37"
-SESSION_PID = "13035"
-DELTA_CPU = "0.547915"
-CLOCK_SECS = "0.381"
-CURRENT_DATE = " 5-Nov-14"
-CURRENT_TIME = "16:37:40"
+SESSION_DATE = "19-Nov-15"
+SESSION_TIME = "12:03"
+SESSION_PID = "14039"
+DELTA_CPU = "0.432934"
+CLOCK_SECS = "0.314"
+CURRENT_DATE = "19-Nov-15"
+CURRENT_TIME = "12:03:34"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "PyFerret"
@@ -10524,18 +10571,18 @@ show symbol/all
PPL$XPIXEL = "0"
PPL$YPIXEL = "0"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5"
+FERRET_VERSION = "6.96"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
+NETCDF_VERSION = "4.3.3.1 of Nov 17 2015 15:01:40 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:37"
-SESSION_PID = "13035"
-DELTA_CPU = "0.001"
-CLOCK_SECS = "0.383"
-CURRENT_DATE = " 5-Nov-14"
-CURRENT_TIME = "16:37:40"
+SESSION_DATE = "19-Nov-15"
+SESSION_TIME = "12:03"
+SESSION_PID = "14039"
+DELTA_CPU = "0.001999"
+CLOCK_SECS = "0.316"
+CURRENT_DATE = "19-Nov-15"
+CURRENT_TIME = "12:03:34"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "PyFerret"
S1 = "hello"
@@ -10545,9 +10592,9 @@ NUM = "3"
T$DOLLAR = "hi"
T_HELLO = "hi"
show symbol s*
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:37"
-SESSION_PID = "13035"
+SESSION_DATE = "19-Nov-15"
+SESSION_TIME = "12:03"
+SESSION_PID = "14039"
S1 = "hello"
S2 = ""hello""
S3 = "hello and goodbye"
@@ -10557,15 +10604,15 @@ S2 = ""hello""
! exercise CANCEL SYMBOL
cancel symbol s2
show symbol s*
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:37"
-SESSION_PID = "13035"
+SESSION_DATE = "19-Nov-15"
+SESSION_TIME = "12:03"
+SESSION_PID = "14039"
S1 = "hello"
S3 = "hello and goodbye"
show symbol S*
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:37"
-SESSION_PID = "13035"
+SESSION_DATE = "19-Nov-15"
+SESSION_TIME = "12:03"
+SESSION_PID = "14039"
S1 = "hello"
S3 = "hello and goodbye"
cancel symbol s2 ! already deleted
@@ -10693,23 +10740,23 @@ show symbols/all
PPL$XPIXEL = "979"
PPL$YPIXEL = "844"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5"
+FERRET_VERSION = "6.96"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
+NETCDF_VERSION = "4.3.3.1 of Nov 17 2015 15:01:40 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:37"
-SESSION_PID = "13035"
-DELTA_CPU = "0.026997"
-CLOCK_SECS = "0.41"
-CURRENT_DATE = " 5-Nov-14"
-CURRENT_TIME = "16:37:41"
+SESSION_DATE = "19-Nov-15"
+SESSION_TIME = "12:03"
+SESSION_PID = "14039"
+DELTA_CPU = "0.031995"
+CLOCK_SECS = "0.348"
+CURRENT_DATE = "19-Nov-15"
+CURRENT_TIME = "12:03:35"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "PyFerret"
*** Running test: bn_comma_delimited.jnl
-! bn420_comma_delimited
+[?1034h! bn420_comma_delimited
! 10/2/95 - test comma and tab-delimited outputs
@@ -12312,8 +12359,8 @@ LIST/FORMAT=comma/precision=9 randu(i)*temp*1e7
DEPTH (m): 15
TIME : 10-SEP-1982 20:00
135.5W,134.5W
-1.5S,1.6675084E+08,2.0208841E+08
-1.2S,1.6616283E+08,2.0136658E+08
+1.5S, 166750845., 202088412.
+1.2S, 166162833., 201366579.
! small number formatting test
set region/i=95:96/j=41:42/k=2/l=5
@@ -12367,7 +12414,7 @@ LIST/FORMAT=comma/precision=5 10*j+i
2,21,22,23,24,25
3,31,32,33,34,35
*** Running test: bn_dynamic_grids.jnl
-! bn420_dynamic_grids
+[?1034h! bn420_dynamic_grids
! 9/95-9/11/95 - test the creation, destruction, and use of dynamic grids
! 2/96 - added GX=lo:hi:delta notation
! 4/98 *sh* changes once again to confine_axis -- earlier trapped error is once
@@ -14155,7 +14202,7 @@ Dynamic axes:
! calendar axes
list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave] ! 6-day ave
- !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave] ! 6-day ave
+ !-> list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:144 at ave]
VARIABLE : TEMPERATURE (deg. C)
regrid: 144 hour on T at AVE
FILENAME : gtsa056_1.cdf
@@ -14183,7 +14230,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
TIME : 15-JAN-1982 00:00
27.85
list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`] ! pseudo-var
- !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48] ! pseudo-var
+ !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
VARIABLE : T
axis (AX001)
SUBSET : 3 points (TIME)
@@ -14201,7 +14248,7 @@ set axis/modulo psxt
set mode/last diag
*** Running test: bn_cdf.jnl
-! bn320_cdf
+[?1034h! bn320_cdf
! benchmark to test netCDF input and output
! requires version 3.20 or later
! updated from version 2.3 1/26/95
@@ -15105,7 +15152,7 @@ list/x=180 fcn_rev_sub
0 / 11: 0.0000
1S / 10: 0.3166
*** Running test: bn_regrid_transforms.jnl
-! bn500_regrid_transforms
+[?1034h! bn500_regrid_transforms
! benchmark to test regridding transformations and syntax
! requires version 2.30 or later
! 8/92
@@ -18130,7 +18177,7 @@ set mode/last diag
*** Running test: bn_axis_limits.jnl
-!bn301_axis_limits.jnl
+[?1034h!bn301_axis_limits.jnl
! exercise the new-V301 /XLIMITS and /YLIMITS qualifiers
define axis/x=20e:10w:10/unit=degree xax
@@ -18282,7 +18329,7 @@ set view v44
contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=28000:29000:-400/trans sin(x/3)*sin(t/100)
*** Running test: bn_movie.jnl
-! bn301_movie.JNL
+[?1034h! bn301_movie.JNL
! - test on-HDF movie creation by Program FERRET
! - FERRET ver 3.10 10/93
@@ -18291,7 +18338,7 @@ contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/
! Dont run this script - fails with hdf5 libraries
exit/script
*** Running test: bn_ez_order.jnl
-! bn420_ez_order
+[?1034h! bn420_ez_order
! updated from bn311_ez_order 9/95 - improved testing of /FORMAT=STREAM
! create test files
@@ -19324,7 +19371,7 @@ sp rm -f test_perm48.dat
sp rm -f test_perm48_10.dat
*** Running test: bn_user.jnl
-! bn312_user.jnl
+[?1034h! bn312_user.jnl
! test the USER command options
@@ -19338,7 +19385,7 @@ set window/size=.5/aspect=.75 2
exit/script
*** Running test: bn_stream.jnl
-! bn420_stream.jnl
+[?1034h! bn420_stream.jnl
! jan 96
! note that although this benchmark was added only in 1/96 the STREAM
@@ -19399,7 +19446,7 @@ list myv1,myv2
cancel data stream_data_link.unf
*** Running test: bn_mc.jnl
-!bn430_mc.jnl
+[?1034h!bn430_mc.jnl
! kob - 9/5/96
! - simple test of mc data access for both irregular and regular time
! axis
@@ -19848,7 +19895,7 @@ CAN MODE VERIFY
*** Running test: bn_negative_t.jnl
-! bn450_negative_t - 10/97
+[?1034h! bn450_negative_t - 10/97
! test behavior of negative time step values (unsupported except as absolute
! dates prior to Ferret version 4.5)
@@ -19874,27 +19921,27 @@ GO bn_negative_t.sub tvar ave ! like var and din
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ave] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ave]
VARIABLE : T[GT=TAX]
T : -5 to 5 (averaged)
0.0000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ave] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ave]
VARIABLE : T[GT=TAX]
T : -8 to -5 (averaged)
-6.667
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ave] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ave]
VARIABLE : T[GT=TAX]
T : -9 to 3 (averaged)
-3.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ave] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ave]
VARIABLE : T[GT=TAX]
T : -9 to -3 (averaged)
-6.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ave] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ave]
VARIABLE : T[GT=TAX]
T : -11 to 11 (averaged)
0.0000
@@ -19910,7 +19957,7 @@ GO bn_negative_t.sub tvar iin
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at iin] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 5 points (T)
@@ -19920,14 +19967,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -8.00
4 / 8: 0.00
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at iin] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 2 points (T)
-8 / 2: -8.00
-6 / 3: -20.00
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at iin] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 6 points (T)
@@ -19938,7 +19985,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -40.00
2 / 7: -36.00
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at iin] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 3 points (T)
@@ -19946,7 +19993,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -28.00
-4 / 4: -36.00
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@iin] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@iin]
VARIABLE : T[GT=TAX]
indef. integ. on T
SUBSET : 11 points (T)
@@ -19973,27 +20020,27 @@ GO bn_negative_t.sub tvar sum
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sum] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sum]
VARIABLE : T[GT=TAX]
T : -5 to 5 (summed)
0.0000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sum] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sum]
VARIABLE : T[GT=TAX]
T : -8 to -5 (summed)
-14.00
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sum] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sum]
VARIABLE : T[GT=TAX]
T : -9 to 3 (summed)
-18.00
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sum] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sum]
VARIABLE : T[GT=TAX]
T : -9 to -3 (summed)
-18.00
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sum] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sum]
VARIABLE : T[GT=TAX]
T : -11 to 11 (summed)
0.0000
@@ -20009,7 +20056,7 @@ GO bn_negative_t.sub tvar rsu
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at rsu] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 5 points (T)
@@ -20019,14 +20066,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -4.000
4 / 8: 0.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at rsu] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 2 points (T)
-8 / 2: -8.00
-6 / 3: -14.00
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at rsu] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 6 points (T)
@@ -20037,7 +20084,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -20.00
2 / 7: -18.00
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at rsu] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 3 points (T)
@@ -20045,7 +20092,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -14.00
-4 / 4: -18.00
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@rsu] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@rsu]
VARIABLE : T[GT=TAX]
running sum on T
SUBSET : 11 points (T)
@@ -20072,7 +20119,7 @@ GO bn_negative_t.sub tvar shf
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at shf] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 5 points (T)
@@ -20082,14 +20129,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 4.000
4 / 8: 6.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at shf] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 2 points (T)
-8 / 2: -6.000
-6 / 3: -4.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at shf] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 6 points (T)
@@ -20100,7 +20147,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 2.000
2 / 7: 4.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at shf] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 3 points (T)
@@ -20108,7 +20155,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -4.000
-4 / 4: -2.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@shf] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@shf]
VARIABLE : T[GT=TAX]
shifted by 1 pts on T
SUBSET : 11 points (T)
@@ -20135,27 +20182,27 @@ GO bn_negative_t.sub tvar min ! like @max
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at min] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at min]
VARIABLE : T[GT=TAX]
T : -5 to 5 (minimum)
-4.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at min] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at min]
VARIABLE : T[GT=TAX]
T : -8 to -5 (minimum)
-8.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at min] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at min]
VARIABLE : T[GT=TAX]
T : -9 to 3 (minimum)
-8.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at min] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at min]
VARIABLE : T[GT=TAX]
T : -9 to -3 (minimum)
-8.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@min] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@min]
VARIABLE : T[GT=TAX]
T : -11 to 11 (minimum)
-10.00
@@ -20171,7 +20218,7 @@ GO bn_negative_t.sub tvar ddf
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddf] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 5 points (T)
@@ -20181,14 +20228,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 1.000
4 / 8: 1.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddf] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 2 points (T)
-8 / 2: 1.000
-6 / 3: 1.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddf] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 6 points (T)
@@ -20199,7 +20246,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 1.000
2 / 7: 1.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddf] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 3 points (T)
@@ -20207,7 +20254,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: 1.000
-4 / 4: 1.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddf] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddf]
VARIABLE : T[GT=TAX]
forward derivative on T
SUBSET : 11 points (T)
@@ -20234,7 +20281,7 @@ GO bn_negative_t.sub tvar ddb ! @ddc like ddf and ddb
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at ddb] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 5 points (T)
@@ -20244,14 +20291,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 1.000
4 / 8: 1.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at ddb] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 2 points (T)
-8 / 2: 1.000
-6 / 3: 1.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at ddb] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 6 points (T)
@@ -20262,7 +20309,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 1.000
2 / 7: 1.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at ddb] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 3 points (T)
@@ -20270,7 +20317,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: 1.000
-4 / 4: 1.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@ddb] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@ddb]
VARIABLE : T[GT=TAX]
backwards derivative on T
SUBSET : 11 points (T)
@@ -20297,7 +20344,7 @@ GO bn_negative_t.sub tvar sbx ! like sbn, swl, shn, spz
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at sbx] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 5 points (T)
@@ -20307,14 +20354,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.000
4 / 8: 4.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at sbx] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 2 points (T)
-8 / 2: -8.000
-6 / 3: -6.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at sbx] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 6 points (T)
@@ -20325,7 +20372,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.000
2 / 7: 2.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at sbx] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 3 points (T)
@@ -20333,7 +20380,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -6.000
-4 / 4: -4.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@sbx] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@sbx]
VARIABLE : T[GT=TAX]
box smoothed by 3 pts on T
SUBSET : 11 points (T)
@@ -20360,27 +20407,27 @@ GO bn_negative_t.sub tvar loc:-2.2
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at loc:-2.2] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -5 to 5 (location of -2.2)
-2.200
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at loc:-2.2] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -8 to -5 (location of -2.2)
....
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at loc:-2.2] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -9 to 3 (location of -2.2)
-2.200
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at loc:-2.2] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -9 to -3 (location of -2.2)
....
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@loc:-2.2] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@loc:-2.2]
VARIABLE : T of -2.2 in T[GT=TAX]
T : -11 to 11 (location of -2.2)
-2.200
@@ -20396,7 +20443,7 @@ GO bn_negative_t.sub tvar weq:-2.2
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tvar[t=-5:5 at weq:-2.2] ! neg/pos t endpoints
+ !-> LIST tvar[t=-5:5 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 5 points (T)
@@ -20406,14 +20453,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: ....
4 / 8: ....
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tvar[t=-5:-8 at weq:-2.2] ! neg/neq t endpoints
+ !-> LIST tvar[t=-5:-8 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 2 points (T)
-8 / 2:....
-6 / 3:....
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tvar[l=2:7 at weq:-2.2] ! neg/pos l endpoints
+ !-> LIST tvar[l=2:7 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 6 points (T)
@@ -20424,7 +20471,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: ....
2 / 7: ....
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tvar[l=2:4 at weq:-2.2] ! neg/neg l endpoints
+ !-> LIST tvar[l=2:4 at weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 3 points (T)
@@ -20432,7 +20479,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3:....
-4 / 4:....
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tvar[l=@weq:-2.2] ! unspecified limits (neg/pos)
+ !-> LIST tvar[l=@weq:-2.2]
VARIABLE : T[GT=TAX]
weighted equal of -2.2 on T
SUBSET : 11 points (T)
@@ -20475,27 +20522,27 @@ GO bn_negative_t.sub tgap ngd ! like @nbd
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at ngd] ! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -5 to 5 (number of valid)
3.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at ngd] ! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -8 to -5 (number of valid)
1.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at ngd] ! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -9 to 3 (number of valid)
3.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at ngd] ! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -9 to -3 (number of valid)
2.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tgap[l=@ngd] ! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@ngd]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR (# of points)
T : -11 to 11 (number of valid)
5.000
@@ -20511,7 +20558,7 @@ GO bn_negative_t.sub tgap fav ! like fln (fnr not implemented)
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST tgap[t=-5:5 at fav] ! neg/pos t endpoints
+ !-> LIST tgap[t=-5:5 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 5 points (T)
@@ -20521,14 +20568,14 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.000
4 / 8: 4.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST tgap[t=-5:-8 at fav] ! neg/neq t endpoints
+ !-> LIST tgap[t=-5:-8 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 2 points (T)
-8 / 2: -8.000
-6 / 3: -6.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST tgap[l=2:7 at fav] ! neg/pos l endpoints
+ !-> LIST tgap[l=2:7 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 6 points (T)
@@ -20539,7 +20586,7 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.000
2 / 7: 2.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST tgap[l=2:4 at fav] ! neg/neg l endpoints
+ !-> LIST tgap[l=2:4 at fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 3 points (T)
@@ -20547,7 +20594,7 @@ LIST $1[l=2:4@$2] ! neg/neg l endpoints
-6 / 3: -6.000
-4 / 4: -4.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST tgap[l=@fav] ! unspecified limits (neg/pos)
+ !-> LIST tgap[l=@fav]
VARIABLE : IF MOD(T,4) EQ 0 THEN TVAR
ave-filled by 3 pts on T
SUBSET : 11 points (T)
@@ -20596,7 +20643,7 @@ GO bn_negative_t.sub blin nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST blin[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST blin[t=-5:5 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 5 points (T)
-4 / 4: -4.000
@@ -20605,13 +20652,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.000
4 / 8: 4.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST blin[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST blin[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 2 points (T)
-8 / 2: -8.000
-6 / 3: -6.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST blin[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST blin[l=2:7 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 6 points (T)
-8 / 2: -8.000
@@ -20621,14 +20668,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.000
2 / 7: 2.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST blin[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST blin[l=2:4 at nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 3 points (T)
-8 / 2: -8.000
-6 / 3: -6.000
-4 / 4: -4.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST blin[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST blin[l=@nul]
VARIABLE : A[GT=TDST at LIN]
SUBSET : 11 points (T)
-10 / 1: ....
@@ -20654,7 +20701,7 @@ GO bn_negative_t.sub bave nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST bave[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST bave[t=-5:5 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 5 points (T)
-4 / 4: -4.000
@@ -20663,13 +20710,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: 2.000
4 / 8: 4.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST bave[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST bave[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 2 points (T)
-8 / 2: -8.000
-6 / 3: -6.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST bave[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST bave[l=2:7 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 6 points (T)
-8 / 2: -8.000
@@ -20679,14 +20726,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: 0.000
2 / 7: 2.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST bave[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST bave[l=2:4 at nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 3 points (T)
-8 / 2: -8.000
-6 / 3: -6.000
-4 / 4: -4.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST bave[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST bave[l=@nul]
VARIABLE : A[GT=TDST at AVE]
SUBSET : 11 points (T)
-10 / 1: -9.000
@@ -20712,7 +20759,7 @@ GO bn_negative_t.sub basn nul
! tvar axis runs from -10 to 10 by 1's
LIST $1[t=-5:5@$2] ! neg/pos t endpoints
- !-> LIST basn[t=-5:5 at nul] ! neg/pos t endpoints
+ !-> LIST basn[t=-5:5 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 5 points (T)
-4 / 4: -6.000
@@ -20721,13 +20768,13 @@ LIST $1[t=-5:5@$2] ! neg/pos t endpoints
2 / 7: -3.000
4 / 8: -2.000
LIST $1[t=-5:-8@$2] ! neg/neq t endpoints
- !-> LIST basn[t=-5:-8 at nul] ! neg/neq t endpoints
+ !-> LIST basn[t=-5:-8 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 2 points (T)
-8 / 2: -8.000
-6 / 3: -7.000
LIST $1[l=2:7@$2] ! neg/pos l endpoints
- !-> LIST basn[l=2:7 at nul] ! neg/pos l endpoints
+ !-> LIST basn[l=2:7 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 6 points (T)
-8 / 2: -8.000
@@ -20737,14 +20784,14 @@ LIST $1[l=2:7@$2] ! neg/pos l endpoints
0 / 6: -4.000
2 / 7: -3.000
LIST $1[l=2:4@$2] ! neg/neg l endpoints
- !-> LIST basn[l=2:4 at nul] ! neg/neg l endpoints
+ !-> LIST basn[l=2:4 at nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 3 points (T)
-8 / 2: -8.000
-6 / 3: -7.000
-4 / 4: -6.000
LIST $1[l=@$2] ! unspecified limits (neg/pos)
- !-> LIST basn[l=@nul] ! unspecified limits (neg/pos)
+ !-> LIST basn[l=@nul]
VARIABLE : A[GT=TDST at ASN]
SUBSET : 11 points (T)
-10 / 1: -9.000
@@ -20837,7 +20884,7 @@ LIST a[gt=tcal] ! deliberate error
CANCEL MODE ignore_error
*** Running test: bn_xact_regrid.jnl
-! BN450_xact_regrid.jnl
+[?1034h! BN450_xact_regrid.jnl
! 10/97 - test "exact match" regridding
! wherein destination points are filled only if they exactly match
@@ -20848,7 +20895,7 @@ CANCEL REGION
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -20858,7 +20905,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -20872,7 +20919,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -20882,7 +20929,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -20896,7 +20943,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -20910,7 +20957,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -20923,7 +20970,7 @@ SET REGION/X=2:4
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -20931,7 +20978,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -20941,7 +20988,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -20949,7 +20996,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -20959,7 +21006,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 5 points (X)
@@ -20969,7 +21016,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -20980,7 +21027,7 @@ SET REGION/X=1:5
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -20990,7 +21037,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21004,7 +21051,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21014,7 +21061,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21028,7 +21075,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21042,7 +21089,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21055,7 +21102,7 @@ SET REGION/X=1.5:4.5
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21063,7 +21110,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21075,7 +21122,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21083,7 +21130,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21095,7 +21142,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 7 points (X)
@@ -21107,7 +21154,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 3 points (X)
@@ -21118,7 +21165,7 @@ SET REGION/X=0:6
GO bn_xact_regrid.sub X
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GX=XDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21128,7 +21175,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GX=XDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GX=XDfine at XACT]
VARIABLE : X[GX=XSCOARSE]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21142,7 +21189,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GX=XDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINE]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21152,7 +21199,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETBIG]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21166,7 +21213,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GX=XDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GX=XDfine at XACT]
VARIABLE : X[GX=XSOFFSETSMALL]
regrid: 0.5 delta on X at XACT
SUBSET : 9 points (X)
@@ -21180,7 +21227,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GX=XDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GX=XDcoarse at XACT]
VARIABLE : X[GX=XSFINEOFFSET]
regrid: 1 delta on X at XACT
SUBSET : 5 points (X)
@@ -21195,7 +21242,7 @@ CANCEL REGION
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21205,7 +21252,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21219,7 +21266,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21229,7 +21276,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21243,7 +21290,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21257,7 +21304,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21270,7 +21317,7 @@ SET REGION/Y=2:4
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21278,7 +21325,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21288,7 +21335,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21296,7 +21343,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21306,7 +21353,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21316,7 +21363,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21327,7 +21374,7 @@ SET REGION/Y=1:5
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21337,7 +21384,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21351,7 +21398,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21361,7 +21408,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21375,7 +21422,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21389,7 +21436,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21402,7 +21449,7 @@ SET REGION/Y=1.5:4.5
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21410,7 +21457,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21422,7 +21469,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21430,7 +21477,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21442,7 +21489,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 7 points (Y)
@@ -21454,7 +21501,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 3 points (Y)
@@ -21465,7 +21512,7 @@ SET REGION/Y=0:6
GO bn_xact_regrid.sub Y
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GY=YDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21475,7 +21522,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GY=YDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GY=YDfine at XACT]
VARIABLE : Y[GY=YSCOARSE]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21489,7 +21536,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GY=YDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINE]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21499,7 +21546,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETBIG]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21513,7 +21560,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GY=YDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GY=YDfine at XACT]
VARIABLE : Y[GY=YSOFFSETSMALL]
regrid: 0.5 delta on Y at XACT
SUBSET : 9 points (Y)
@@ -21527,7 +21574,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GY=YDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GY=YDcoarse at XACT]
VARIABLE : Y[GY=YSFINEOFFSET]
regrid: 1 delta on Y at XACT
SUBSET : 5 points (Y)
@@ -21542,7 +21589,7 @@ CANCEL REGION
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21552,7 +21599,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21566,7 +21613,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21576,7 +21623,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21590,7 +21637,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21604,7 +21651,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21617,7 +21664,7 @@ SET REGION/Z=2:4
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21625,7 +21672,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21635,7 +21682,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21643,7 +21690,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21653,7 +21700,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21663,7 +21710,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21674,7 +21721,7 @@ SET REGION/Z=1:5
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21684,7 +21731,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21698,7 +21745,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21708,7 +21755,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21722,7 +21769,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21736,7 +21783,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21749,7 +21796,7 @@ SET REGION/Z=1.5:4.5
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21757,7 +21804,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -21769,7 +21816,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21777,7 +21824,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -21789,7 +21836,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 7 points (Z)
@@ -21801,7 +21848,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 3 points (Z)
@@ -21812,7 +21859,7 @@ SET REGION/Z=0:6
GO bn_xact_regrid.sub Z
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GZ=ZDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21822,7 +21869,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GZ=ZDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSCOARSE]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21836,7 +21883,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GZ=ZDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINE]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21846,7 +21893,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETBIG]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21860,7 +21907,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GZ=ZDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GZ=ZDfine at XACT]
VARIABLE : Z[GZ=ZSOFFSETSMALL]
regrid: 0.5 delta on Z at XACT
SUBSET : 9 points (Z)
@@ -21874,7 +21921,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GZ=ZDcoarse at XACT]
VARIABLE : Z[GZ=ZSFINEOFFSET]
regrid: 1 delta on Z at XACT
SUBSET : 5 points (Z)
@@ -21889,7 +21936,7 @@ CANCEL REGION
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -21899,7 +21946,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -21913,7 +21960,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -21923,7 +21970,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -21937,7 +21984,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -21951,7 +21998,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -21964,7 +22011,7 @@ SET REGION/T=2:4
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -21972,7 +22019,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -21982,7 +22029,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
3.5 / 6: ....
4 / 7: 4.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -21990,7 +22037,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -22000,7 +22047,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 5 points (T)
@@ -22010,7 +22057,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
3.5 / 6: 3.500
4 / 7: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22021,7 +22068,7 @@ SET REGION/T=1:5
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22031,7 +22078,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22045,7 +22092,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22055,7 +22102,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22069,7 +22116,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22083,7 +22130,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22096,7 +22143,7 @@ SET REGION/T=1.5:4.5
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22104,7 +22151,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
3 / 3: 3.000
4 / 4: 4.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22116,7 +22163,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4 / 7: 4.000
4.5 / 8: ....
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22124,7 +22171,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
3 / 3: 3.000
4 / 4: 4.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22136,7 +22183,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 7 points (T)
@@ -22148,7 +22195,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4 / 7: ....
4.5 / 8: 4.500
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 3 points (T)
@@ -22159,7 +22206,7 @@ SET REGION/T=0:6
GO bn_xact_regrid.sub T
! PERFORM REGRIDDINGS
LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
- !-> LIST Scoarse[GT=TDcoarse at XACT]! same src and dst axis
+ !-> LIST Scoarse[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22169,7 +22216,7 @@ LIST Scoarse[G$1=$1Dcoarse at XACT]! same src and dst axis
4 / 4: 4.000
5 / 5: 5.000
LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
- !-> LIST Scoarse[GT=TDfine at XACT] ! coarse data onto fine grid
+ !-> LIST Scoarse[GT=TDfine at XACT]
VARIABLE : T[GT=TSCOARSE]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22183,7 +22230,7 @@ LIST Scoarse[G$1=$1Dfine at XACT] ! coarse data onto fine grid
4.5 / 8: ....
5 / 9: 5.000
LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
- !-> LIST Sfine[GT=TDcoarse at XACT] ! fine data onto coarse grid
+ !-> LIST Sfine[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINE]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22193,7 +22240,7 @@ LIST Sfine[G$1=$1Dcoarse at XACT] ! fine data onto coarse grid
4 / 4: 4.000
5 / 5: 5.000
LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetbig[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetbig[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETBIG]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22207,7 +22254,7 @@ LIST Soffsetbig[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
- !-> LIST Soffsetsmall[GT=TDfine at XACT] ! non-aligning grid points coarse to fine
+ !-> LIST Soffsetsmall[GT=TDfine at XACT]
VARIABLE : T[GT=TSOFFSETSMALL]
regrid: 0.5 delta on T at XACT
SUBSET : 9 points (T)
@@ -22221,7 +22268,7 @@ LIST Soffsetsmall[G$1=$1Dfine at XACT] ! non-aligning grid points coarse to fine
4.5 / 8: 4.500
5 / 9: ....
LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
- !-> LIST Sfineoffset[GT=TDcoarse at XACT]! non-aligning grid points fine to coarse
+ !-> LIST Sfineoffset[GT=TDcoarse at XACT]
VARIABLE : T[GT=TSFINEOFFSET]
regrid: 1 delta on T at XACT
SUBSET : 5 points (T)
@@ -22233,7 +22280,7 @@ LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
*** Running test: bn_gc_functions.jnl
-! bn500_gc_functions.jnl
+[?1034h! bn500_gc_functions.jnl
! 10/97 - first version - test GC functions released in V4.9
! 3/98 - added single test of a dynamic axis passed to GC fcn
@@ -22819,7 +22866,7 @@ LIST/x=0/l=1 Z10_flow - bottom_flow
set view lr
shade/x=0/l=1/ylim=0:200:-20/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[z=0:200:.5])
*** Running test: bn491_bug_fixes.jnl
-! bn491_bug_fixes.jnl
+[?1034h! bn491_bug_fixes.jnl
! test various fixes that went into version 4.91
! 2/98 *kob*
!
@@ -23537,7 +23584,7 @@ list elev
58.5947N / 1: .... .... .... .... 2.940 2.940 2.940 2.940 2.940 .... .... ....
*** Running test: bn_odd_variable_name.jnl
-! make sure memory is limited; otherwise the abstract axis will list
+[?1034h! make sure memory is limited; otherwise the abstract axis will list
let save_mem = ($ferret_memory)
!-> DEFINE VARIABLE save_mem = 25.6
set mem /size=10
@@ -23653,7 +23700,33 @@ list 'X' ! Now the proper syntax
19 / 19: 0.5784
20 / 20: 0.6570
list i ! Deliberate error
-list 'i' ! Deliberate error
+
+! v694 No longer an error: See ticket 2050
+list 'i' !
+ VARIABLE : SIN(4+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 20 points (X)
+ 1 / 1: -0.8183
+ 2 / 2: -0.8716
+ 3 / 3: -0.9162
+ 4 / 4: -0.9516
+ 5 / 5: -0.9775
+ 6 / 6: -0.9937
+ 7 / 7: -0.9999
+ 8 / 8: -0.9962
+ 9 / 9: -0.9825
+ 10 / 10: -0.9589
+ 11 / 11: -0.9258
+ 12 / 12: -0.8835
+ 13 / 13: -0.8323
+ 14 / 14: -0.7728
+ 15 / 15: -0.7055
+ 16 / 16: -0.6313
+ 17 / 17: -0.5507
+ 18 / 18: -0.4646
+ 19 / 19: -0.3739
+ 20 / 20: -0.2794
+
list 'I' ! Now the proper syntax
VARIABLE : SIN(4+I/10)
FILENAME : weird_name1.cdf
@@ -23801,7 +23874,7 @@ list 'v2-and-minus'[i=5:15 at ddc] ! Now the proper syntax
set mem /size=`save_mem`
!-> set mem /size=25.6
*** Running test: bn_test_stream.jnl
-
+[?1034h
canc data/all
sp rm -f permutedBinaryTest.dat
@@ -24462,7 +24535,7 @@ list num1
2 / 2: 20.00 21.00
3 / 3: 22.00 23.00
*** Running test: bn_define_axes.jnl
-! bn_define_axes.jnl
+[?1034h! bn_define_axes.jnl
! *sh* 5/99
! *sh* 12/99 - with streamlined syntax
@@ -24929,7 +25002,7 @@ show axis xax2
! cleanup
set mode/last ignore
*** Running test: bn_polygon.jnl
-! Demo of new POLYGON command
+[?1034h! Demo of new POLYGON command
! *jd * 3.99
let xsqr = YSEQUENCE({0,.1,.1,0})
@@ -24951,7 +25024,7 @@ polygon/trans/line=4/over/i=1:100/nolabel xpts+xsqr-.25, ypts+ysqr, x*x/10
can mode meta
*** Running test: bn500_bug_fixes.jnl
-! bn500_bug_fixes.jnl
+[?1034h! bn500_bug_fixes.jnl
! test various fixes that went into version 5.00
! 5/99 *kob*
@@ -25242,7 +25315,7 @@ GO err491_spawn_quotes.jnl
! this should be a valid command
SPAWN "date"
-Wed Nov 5 16:38:03 PST 2014
+Thu Nov 19 12:03:53 PST 2015
GO bn_reset
cancel mode verify
@@ -25309,7 +25382,7 @@ GO err500_IF_THEN_ELSE_quote.jnl
IF 1 THEN SAY "I is too big" ENDIF
I is too big
*** Running test: bn_sample.jnl
-! bn_sample.jnl
+[?1034h! bn_sample.jnl
! 10/99 *sh*
! V550 *sh* 11/02 - documentation change only, reflecting subspan modulo
@@ -26382,7 +26455,7 @@ list SAMPLEL(X[x=110:200:10],{3,4,7}) ! normal axis
3 / 3:........................................
*** Running test: bn_strides_revs_perms.jnl
-! bn_strides_revs_perms.jnl
+[?1034h! bn_strides_revs_perms.jnl
! *sh* 6/99
! exercise special netCDF performance and robustness enhancements to allow
@@ -28413,7 +28486,7 @@ canc data/all
-DELETE MIDVAR M: 6 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX022) (AX024) (AX020) ZAX1_7 NORMAL NORMAL
*** Running test: bn_non_COARDS_netCDF.jnl
-! bn_non_COARDS_netCDF.jnl
+[?1034h! bn_non_COARDS_netCDF.jnl
! *sh* 3/99
! *sh* 6/00 -- added true scalar variable, TRUE_SCALAR
@@ -28639,7 +28712,7 @@ list HAS_BACKWARDS_AXIS
! list/i=1:5 BIG_IRREG
*** Running test: bn_cache_hits.jnl
-! bn_cache_hits.jnl
+[?1034h! bn_cache_hits.jnl
! 3/99 *sh*
! Test the success of Ferret in recalling past results
@@ -30231,14 +30304,19 @@ say `a,return=isize` ! no evaluation of a required -- just context
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
+ eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo I M: 15 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
!-> MESSAGE/CONTINUE 10
10
list/nohead a ! evaluate it now
+ -DELETE I M: 15 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- eval A C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- pseudo I M: 15 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found A M: 16 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
1 / 1: 1.00
2 / 2: 2.00
3 / 3: 3.00
@@ -30254,7 +30332,6 @@ let a = XSEQUENCE(j[j=1:5])
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE A M: 16 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
- -DELETE I M: 15 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE SST5SBX M: 14 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME NORMAL NORMAL
-DELETE SST5XAVE M: 9 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -30436,7 +30513,7 @@ set mode/last diag
! v5.4 *kob* 10/01 - need to add exit/script - new exit command qualifiers
EXIT/SCRIPT
*** Running test: bn_regrid_to_user.jnl
-! bn_regrid_to_user
+[?1034h! bn_regrid_to_user
! 8/99 *sh*
! 5/01 *sh* - changes to accomodate truncated levitus_climatology.cdf
! - additions to test use of expressions in SET/SHOW/DEFINE grid
@@ -30918,7 +30995,7 @@ Dynamic axes:
AXIS (AX008) use count: 1
*** Running test: bn_calendar.jnl
-! bn_calendar.jnl
+[?1034h! bn_calendar.jnl
! Version 5.3
! Add definitions of calendar axes as a NetCDF attribute of the time axis
! DEFINE AXIS/CALENDAR
@@ -31201,7 +31278,7 @@ T0 = 1-JAN-1980
! also see bn_all_leap.jnl, 6/2004
! Added ALL_LEAP, or 366_DAY calendar (which is in the CF conventions).
*** Running test: bn_dash_dot.jnl
-! new PLOT/DASH and PLOT/SYMBOL=DOT qualifiers
+[?1034h! new PLOT/DASH and PLOT/SYMBOL=DOT qualifiers
! *acm* 5/01
! *acm* 8/02 Remove calls to SYMBOL=DOT until postscript issues are resolved.
@@ -31221,7 +31298,7 @@ set mode ignore
plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
*** Running test: bn_flowlines.jnl
-! bn_flowlines.jnl
+[?1034h! bn_flowlines.jnl
! VECTOR/FLOW
! 6/2001
! ACM 4/2005 set mode meta to save one of the plots for the metafile checks.
@@ -31264,10 +31341,8 @@ let yy = if abs(y[gt=sst]) le 20 then 10 else (100-abs(y[gt=sst]+1))/ 10.
set reg/l=1
vec/noax/xskip=16/yskip=8/len=15/title="Sinusoidal Projection" fsst*0,fsst*0+yy*mp_mask, x_page,y_page
vec/over/flow/noax/xskip=16/yskip=8/len=5/title="Sinusoidal Projection" fsst*0,fsst*0+yy*mp_mask, x_page,y_page
-
-set mode logo
*** Running test: bn_logaxes.jnl
-! Test the qualifiers /HLOG and /VLOG for setting
+[?1034h! Test the qualifiers /HLOG and /VLOG for setting
! log axes. On a depth axis, inverse log plot.
! use /VLOG
@@ -31309,7 +31384,7 @@ def axis/x dlog = -1*(10-i[i=1:10])
let fcn = (i[gx=dlog])^2
plot/hlog fcn
*** Running test: bn_internal_external_functions.jnl
-! test internal external functions. These moved from bn_external_functions
+[?1034h! test internal external functions. These moved from bn_external_functions
! 6/01 because on systems w/out external functions support, the internal
! functions were not being tested - most notably win32 *kob*
@@ -33362,8 +33437,17 @@ SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
Returns data sampled according to L indices which may vary in IJK
L_INDICES: ordered indices
DAT_TO_SAMPLE: data to sample using L indices
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
+ Returns data sampled by interpolating to a set of times in F direction
+ DAT_TO_SAMPLE: data to sample at set of times in F
+ YR: Year(s) yyyy
+ MO: Month(s), integer mm
+ DAY: Day(s) of month dd
+ HR: Hour(s) hh
+ MIN: Minute(s) mm
+ SEC: Second(s) ss
SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
- Returns data sampled by interpolating to a set of times
+ Returns data sampled by interpolating to a set of times in T direction
DAT_TO_SAMPLE: data to sample at set of times
YR: Year(s) yyyy
MO: Month(s), integer mm
@@ -33428,6 +33512,14 @@ SAMPLE_FAST_I(V,Indices)
Fast 1D sample variable using set of indices
V: Variable to sample
Indices: List of indices at which to sample
+SAMPLE_FAST_I_STR(S,Indices)
+ Fast 1D sample string variable using set of indices
+ S: String Variable to sample (STRING)
+ Indices: List of indices at which to sample
+SAMPLE_FAST_I(V,Indices)
+ Fast 1D sample variable using set of indices
+ V: Variable to sample
+ Indices: List of indices at which to sample
go bench_sorti.jnl
@@ -34543,6 +34635,10 @@ CURV_TO_RECT_MAP(lon_in,lat_in,grid_out,radius)
lat_in: Source grid latitudes (2-D) (degrees)
grid_out: Any variable on destination Longitude-Latitude grid, Lon and Lat (degrees)
radius: Source points falling within radius are included in mapping to destination point (degrees)
+CURV_TO_RECT_FSU(V,mapping)
+ Alt func to Apply mapping to regrid from curvilinear to rectangular grid
+ V: Variable to regrid, on curvilinear grid V(x,y,z,t)
+ mapping: mapping computed by curv_to_rect_MAP
CURV2RECT(CurvData,CurvCenterLons,CurvCenterLats,CurvCornerLons,CurvCornerLats,TemplateRectVar,Method)
Regrids data from curvilinear lon,lat center and/or corner grid to rectilinear using ESMP/ESMF
CurvData: Curvilinear X,Y data positioned at centers
@@ -34649,12 +34745,12 @@ list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
Column 1: TAX_MONTH(T[GT=TEMP],TEMP)
Column 2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
(C001,V001) (C001,V009)
-10-NOV-1982 16 / 15: 11.00 0.8603
-16-NOV-1982 18 / 16: 11.00 0.8767
-22-NOV-1982 20 / 17: 11.00 0.8932
-28-NOV-1982 22 / 18: 11.00 0.9096
+10-NOV-1982 16 / 15: 11.00 0.8621
+16-NOV-1982 18 / 16: 11.00 0.8788
+22-NOV-1982 20 / 17: 11.00 0.8954
+28-NOV-1982 22 / 18: 11.00 0.9121
05-DEC-1982 00 / 19: 12.00 0.9288
-11-DEC-1982 02 / 20: 12.00 0.9452
+11-DEC-1982 02 / 20: 12.00 0.9454
list/L=15:20 tax_year(t[gt=temp],temp)
VARIABLE : TAX_YEAR(T[GT=TEMP],TEMP)
FILENAME : gt4d011.cdf
@@ -34678,7 +34774,7 @@ shade fill_xy(sst[l=1], mask[l=1], 1)
shade fill_xy(sst[l=1], mask[l=1], 4)
*** Running test: bn_modulo_strides.jnl
-! bn_modulo_strides.jnl
+[?1034h! bn_modulo_strides.jnl
! 6/01 *sh*
! exercise the combination of modulo and netCDF strides IO
@@ -35057,7 +35153,7 @@ list/nohead str[i=105:145:5]
140 / 8:"t"
145 / 9:"e"
*** Running test: bn_axis_viewports.jnl
-! bn_axis_viewports
+[?1034h! bn_axis_viewports
! *sh* 9/01
! demonstrate vieport layout using the /AXES qualifier
@@ -35065,7 +35161,7 @@ set wind/clear/aspect=1
def view/axes allax
! make guide lines
-show view allax ! text = 1
+show view allax
name text xlimits ylimits mode
@@ -35079,20 +35175,20 @@ label 0.26,0.95,-1,0,.2 @P2 at AC<-At 0.25
label 0.76,0.95,-1,0,.2 @P3 at AC<-At 0.75
! a plot from 0.25 to 0.75
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid
+def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid
set view mid
plot/vs/hlim=-1:1/vlim=-1:1/line/i=1:200 cos(i/15),sin(i/15)
show view mid
name text xlimits ylimits mode
- MID 1.00 0.25,0.75 0.25,0.75 axes
+ MID 0.72 0.25,0.75 0.25,0.75 axes
current viewport is MID
ppl list xaxis
XAXIS QUALITIES
- LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 4.74E+00 CSIZE= 1.00E-01
+ LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 5.57E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
XORG= 1.20E+00 AUTO LABELLING
@@ -35100,13 +35196,13 @@ ppl list yaxis
YAXIS QUALITIES
- LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 4.74E+00 CSIZE= 1.00E-01
+ LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 5.57E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
YORG= 1.40E+00 AUTO LABELLING
! guidelines showing origin, axlen, white space
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
+def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid2
set view mid2
ppl origin 0,0
define symbol xaxl `($PPL$WIDTH)/2`
@@ -35158,7 +35254,7 @@ ppl list yaxis
YORG= 1.40E+00 AUTO LABELLING
! guidelines showing origin, axlen, white space
-def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
+def view /xlim=0.25:0.75/ylim=0.25:0.75/axes mid2
set view mid2
ppl origin 0,0
define symbol xaxl `($PPL$WIDTH)/2`
@@ -35186,14 +35282,14 @@ show view mid
! pause
set wind/clear
-def view/axes/xlim=0:0.5/ylim=0:0.5/text=1 llax
+def view/axes/xlim=0:0.5/ylim=0:0.5 llax
set view llax
PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
ppl list xaxis
XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+ LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
XORG= 0.00E+00 AUTO LABELLING
@@ -35201,19 +35297,19 @@ ppl list yaxis
YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+ LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
YORG= 0.00E+00 AUTO LABELLING
-def view/axes/xlim=0:0.5/ylim=0.5:1/text=1 lrax
+def view/axes/xlim=0:0.5/ylim=0.5:1 lrax
set view lrax
PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
ppl list xaxis
XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+ LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
XORG= 0.00E+00 AUTO LABELLING
@@ -35221,19 +35317,19 @@ ppl list yaxis
YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+ LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
YORG= 1.40E+00 AUTO LABELLING
-def view/axes/xlim=0.5:1/ylim=0:0.5/text=1 ulax
+def view/axes/xlim=0.5:1/ylim=0:0.5 ulax
set view ulax
PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
ppl list xaxis
XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+ LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
XORG= 1.20E+00 AUTO LABELLING
@@ -35241,19 +35337,19 @@ ppl list yaxis
YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+ LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
YORG= 0.00E+00 AUTO LABELLING
-def view/axes/xlim=0.5:1/ylim=0.5:1/text=1 urax
+def view/axes/xlim=0.5:1/ylim=0.5:1 urax
set view urax
PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
ppl list xaxis
XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+ LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
XORG= 1.20E+00 AUTO LABELLING
@@ -35261,7 +35357,7 @@ ppl list yaxis
YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
+ LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
YORG= 1.40E+00 AUTO LABELLING
@@ -35400,7 +35496,7 @@ ppl list yaxis
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
YORG= 1.40E+00 AUTO LABELLING
*** Running test: bn_strings.jnl
-! bn_strings.jnl
+[?1034h! bn_strings.jnl
! 7/01 - test string syntax and behaviors
@@ -35888,6 +35984,8 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", ") + "fri
list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
1 / 1:"now, goodbye, my friend" "now, hello, friend"
2 / 2:"then, goodbye, my friend""then, hello, friend"
+
+SET MODE IGNORE
list/nohead ysequence({98, 99})+", " + (if {0,1} THEN "hello"+", " ELSE "goodbye"+", my ") + "friend"
1 / 1:........
2 / 2:........
@@ -35902,18 +36000,11 @@ list/nohead ysequence({"now","then"})+", " + (if {0,1} THEN "hello"+", " ELSE "g
2 / 2:........
! numerical operators applied to strings
+
list/nohead "b" - {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" * {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" / {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead "b" ^ {"a","b"}
- 1 / 1:....
- 2 / 2:....
list/nohead {"a","b"} + 1
1 / 1:....
2 / 2:....
@@ -35924,18 +36015,14 @@ list/nohead 1 - {"a","b"}
1 / 1:....
2 / 2:....
list/nohead SIN({"a","b","c"})
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
list/nohead MAX("a",{"a","b","c"})
- 1 / 1:....
- 2 / 2:....
- 3 / 3:....
list/nohead MAX(1,{"a","b","c"})
1 / 1:....
2 / 2:....
3 / 3:....
+CANCEL MODE IGNORE
+
! transformations applied to strings
let a = {"a","b","c","d"}
list a[i=@shf]
@@ -35977,7 +36064,7 @@ list a[i=@rsum]
set mode/last stupid
*** Running test: bn_axcontrol.jnl
- ! NOAA/PMEL TMAP
+[?1034h ! NOAA/PMEL TMAP
! Program FERRET (alpha)
! Version 5.33 - 07/12/01
! 12-Jul-01 14:47
@@ -36016,7 +36103,7 @@ fill/l=1/axes sst
can view
polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
*** Running test: bn_vec_curv.jnl
-! bn_vec_curv.jnl
+[?1034h! bn_vec_curv.jnl
!
! vector plots with curvilinear coordinates
!
@@ -36085,9 +36172,9 @@ let mypage = my + 0*mx
vec/title="Stretched grid" a,b,mxpage,mypage
can mode meta
-set mode logo
+
*** Running test: bn_delimited_read.jnl
-! bn_delimited_read.jnl
+[?1034h! bn_delimited_read.jnl
! 10/01 *sh*
! test delimiited (spreadsheet) reads in Ferret
@@ -36221,13 +36308,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1: "one" ... 1.100 -24.00 130.0 " " 10.0 "word 1" " " ....
-2 / 2: "two" ... 2.200 24.00 -130.0 "2S" .... "word 2" " " ....
-3 / 3: "three" ... 3.300 24.00 130.0 "3N" 0.0 " wd 3 " " " ....
-4 / 4: " " ... .... .... .... " " .... " " " " ....
-5 / 5: "five" ... 4.400 -24.00 -130.0 "91" -400.0 "word 4" "aa" 77.00
-6 / 6: "extra line"... .... .... .... " " .... " " " " ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: "one" .... 1.100 -24.00 130.0 " " 10.0 "word 1" " " ....
+2 / 2: "two" .... 2.200 24.00 -130.0 "2S" .... "word 2" " " ....
+3 / 3: "three" .... 3.300 24.00 130.0 "3N" 0.0 " wd 3 " " " ....
+4 / 4: " " .... .... .... .... " " .... " " " " ....
+5 / 5: "five" .... 4.400 -24.00 -130.0 "91" -400.0 "word 4" "aa" 77.00
+6 / 6: "extra line" .... .... .... .... " " .... " " " " ....
! insist that all columns be treated as string
file/format=delim/skip=1/type=text bn_delimited_read_1.dat
@@ -36295,13 +36382,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1:...... 1.100 .... .... .... 10.0...... ....
-2 / 2:...... 2.200 .... .... .... .......... ....
-3 / 3:...... 3.300 24.00 130.0 .... 0.0...... ....
-4 / 4:...... .... .... .... .... .......... ....
-5 / 5:...... 4.400 -24.00 -130.0 91.00 -400.0...... 77.00
-6 / 6:...... .... .... .... .... .......... ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: .... .... 1.100 .... .... .... 10.0 .... .... ....
+2 / 2: .... .... 2.200 .... .... .... .... .... .... ....
+3 / 3: .... .... 3.300 24.00 130.0 .... 0.0 .... .... ....
+4 / 4: .... .... .... .... .... .... .... .... .... ....
+5 / 5: .... .... 4.400 -24.00 -130.0 91.00 -400.0 .... .... 77.00
+6 / 6: .... .... .... .... .... .... .... .... .... ....
! insist that all columns be treated as latitude
file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
@@ -36318,13 +36405,13 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8 is V8 (degrees_north)(Latitude)
Column 9: V9 is V9 (degrees_north)(Latitude)
Column 10: V10 is V10 (degrees_north)(Latitude)
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-1 / 1:...... 1.100 -24.00 .... .... 10.0...... ....
-2 / 2:...... 2.200 24.00 .... -2.00 .......... ....
-3 / 3:...... 3.300 24.00 130.0 3.00 0.0...... ....
-4 / 4:...... .... .... .... .... .......... ....
-5 / 5:...... 4.400 -24.00 -130.0 91.00 -400.0...... 77.00
-6 / 6:...... .... .... .... .... .......... ....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+1 / 1: .... .... 1.100 -24.00 .... .... 10.0 .... .... ....
+2 / 2: .... .... 2.200 24.00 .... -2.00 .... .... .... ....
+3 / 3: .... .... 3.300 24.00 130.0 3.00 0.0 .... .... ....
+4 / 4: .... .... .... .... .... .... .... .... .... ....
+5 / 5: .... .... 4.400 -24.00 -130.0 91.00 -400.0 .... .... 77.00
+6 / 6: .... .... .... .... .... .... .... .... .... ....
! read only the first line of the file
spawn head -1 bn_delimited_read_1.dat
@@ -36346,8 +36433,8 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
Column 8: V8
Column 9: V9
Column 10: V10
- V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
-I / *: "col1" "col2" "col3" "col4" "col5" " "... " " " "....
+ V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
+I / *: "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
list c1,c2,c3,c4,c5
DATA SET: ./bn_delimited_read_1.dat
@@ -36465,11 +36552,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
Column 6: V6 is V6 (days)(Julian days since 1-Jan-1900)
Column 7: V7 is V7 (days)(Julian days since 1-Jan-1900)
Column 8: V8 is V8 (days)(Julian days since 1-Jan-1900)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1: 36493. 36218....... 36493. 36218.......
-2 / 2: 36494. 36219....... 36494. 36219.......
-3 / 3: .... .......... 36495. 36220.......
-4 / 4: 36496. 36221....... 36496. 36221.......
+ V1 V2 V3 V4 V5 V6 V7 V8
+1 / 1: 36493. 36218. .... .... 36493. 36218. .... ....
+2 / 2: 36494. 36219. .... .... 36494. 36219. .... ....
+3 / 3: .... .... .... .... 36495. 36220. .... ....
+4 / 4: 36496. 36221. .... .... 36496. 36221. .... ....
show data 2
currently SET data sets:
2> ./bn_delimited_read_date_time.dat (default)
@@ -36504,11 +36591,11 @@ list v1,v2,v3,v4,v5,v6,v7,v8
Column 6: V6 is V6 (hours)(Time of day)
Column 7: V7 is V7 (hours)(Time of day)
Column 8: V8 is V8 (hours)(Time of day)
- V1 V2 V3 V4 V5 V6 V7 V8
-1 / 1:...... 12.00 13.76...... 12.00 13.76
-2 / 2:...... 1.00 14.76...... 1.00 14.76
-3 / 3:...... .... .......... 2.00 15.75
-4 / 4:...... 3.00 16.76...... 3.00 16.76
+ V1 V2 V3 V4 V5 V6 V7 V8
+1 / 1: .... .... 12.00 13.76 .... .... 12.00 13.76
+2 / 2: .... .... 1.00 14.76 .... .... 1.00 14.76
+3 / 3: .... .... .... .... .... .... 2.00 15.75
+4 / 4: .... .... 3.00 16.76 .... .... 3.00 16.76
show data 2
currently SET data sets:
2> ./bn_delimited_read_date_time.dat (default)
@@ -37147,7 +37234,7 @@ file/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
cancel mode ignore
*** Running test: bn541_bug_fixes.jnl
-! bn541_bug_fixes.jnl
+[?1034h! bn541_bug_fixes.jnl
! test various fixes that went into version 5.41
! 3/02 *acm*
!
@@ -38049,8 +38136,11 @@ save/q/clob/file=g.nc b
can var a b
sp ncrename -h -v A,a f.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
sp ncrename -h -v A,a -v B,b f2.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 2 variables
sp ncrename -h -v B,b g.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
use f.nc
use f2.nc
use g.nc
@@ -38116,7 +38206,7 @@ list b[d=1]
*** Running test: bn_cancel_axes.jnl
-! bn_cancel_axes.jnl
+[?1034h! bn_cancel_axes.jnl
let ind1 = 1*i
let tim1 = 20500*randu(ind1[i=1:20500])
@@ -38363,7 +38453,7 @@ T0 = 01-JAN-0000 00:00:00
4> 15-NOV 14:05:33 2191.455 30-SEP 22:21:54 7670.092
*** Running test: bn542_bug_fixes.jnl
-! bn542_bug_fixes.jnl
+[?1034h! bn542_bug_fixes.jnl
! test various fixes that went into version 5.42
! 10/02 *acm*
!
@@ -38571,7 +38661,7 @@ cancel mode verify
! GO err541_date_delim
*** Running test: bn_subspan_modulo.jnl
-! bn_subspan_modulo.jnl
+[?1034h! bn_subspan_modulo.jnl
! *sh* 11/02
! a subspan modulo axis is one which is modulo, but the wrapping length
@@ -39258,7 +39348,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
! test modulo string arrays
list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
- !-> list vreg_strings[i=5:7] ! via IS_SUBSPAN_FILL
+ !-> list vreg_strings[i=5:7]
VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 3 points (X)
@@ -39266,7 +39356,7 @@ list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
46 / 6:"a6"
93.5 / 7:""
list $1_strings[i=1013:1024] ! via IS_MODULO
- !-> list vreg_strings[i=1013:1024] ! via IS_MODULO
+ !-> list vreg_strings[i=1013:1024]
VARIABLE : MY_STRINGS[GX=XAX_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 12 points (X)
@@ -39787,7 +39877,7 @@ list/nohead/l=1001:1009 time_series[gt=($TAXNAME)@mod]
! test modulo string arrays
list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
- !-> list virr_strings[i=5:7] ! via IS_SUBSPAN_FILL
+ !-> list virr_strings[i=5:7]
VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 3 points (X)
@@ -39795,7 +39885,7 @@ list $1_strings[i=5:7] ! via IS_SUBSPAN_FILL
46 / 6:"a6"
93.5 / 7:""
list $1_strings[i=1013:1024] ! via IS_MODULO
- !-> list virr_strings[i=1013:1024] ! via IS_MODULO
+ !-> list virr_strings[i=1013:1024]
VARIABLE : MY_STRINGS[GX=XIRREG_SUBSPAN at ASN]
FILENAME : test_subspan_modulo.nc
SUBSET : 12 points (X)
@@ -39814,7 +39904,7 @@ list $1_strings[i=1013:1024] ! via IS_MODULO
*** Running test: bn_dots.jnl
-! PLOT/SYMBOL=DOT qualifiers
+[?1034h! PLOT/SYMBOL=DOT qualifiers
! *acm* 12/02
! ACM 4/2005 set mode meta to save this plot for the metafile checks.
! and cancel mode logo, so that .plt files are comparable.
@@ -39832,9 +39922,8 @@ plot/symbol=dot/size=0.5/over/i=1:1000 -0.5*sin(62.8*(i+10) )
! Vector plots with null-size vectors
vector/i=1:5/j=1:5 0.*(i+j),0*(i+j)
-set mode logo
*** Running test: bn_lev_symbols.jnl
-! Test symbols which capture the latest LEVELS settings
+[?1034h! Test symbols which capture the latest LEVELS settings
! LEV_TEXT The argument, if any, to the LEV qualifier
! LEV_MIN Minimum level
! LEV_MAX Maximum level
@@ -39909,7 +39998,7 @@ LEV_MAX = "33"
LEV_NUM = "1"
LEV_DEL = "none"
*** Running test: bn_mode_logo_lab.jnl
-
+[?1034h
! bn_mode_logo_lab.jnl
! cancel both logo and labels
! NOTE this script redefined the pre-defined viewports ul, ur, ll, lr...
@@ -39940,7 +40029,8 @@ show modes
LATIT_LABEL SET 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -39959,7 +40049,8 @@ show modes
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
contour/i=1:10/j=1:10 i/j
! restore the labels, logo still gone
@@ -40000,10 +40091,10 @@ polygon/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
! restore state of modes
cancel view
-set mode logo
+cancel mode logo
set mode labels
*** Running test: bn_modulo_attribute.jnl
-! Ferret V5.50 m
+[?1034h! Ferret V5.50 m
! Modulo attribute can take numerical values to indicate
! the modulo length of axis (subspan modulo changes)
@@ -40042,7 +40133,7 @@ T0 = %%
Axis span (to cell edges) = 40 (modulo length = axis span)
*** Running test: bn550_bug_fixes.jnl
-! bn550_bug_fixes.jnl
+[?1034h! bn550_bug_fixes.jnl
! test various fixes that went into version 5.5
! 10/02 *acm*
!
@@ -40059,7 +40150,7 @@ shade pc
poly/over/color=red/line=2/title="polygon" {220,240,280,250},{-20,70,40,-30}
*** Running test: bn551_bug_fixes.jnl
-! bn551_bug_fixes.jnl
+[?1034h! bn551_bug_fixes.jnl
! test various fixes that went into version 5.51
! 2/03 *acm*
!
@@ -40289,7 +40380,7 @@ GO err550_dots_thickpens.jnl
plot/sym=dot/color=8/i=1:10 i
*** Running test: bn_multi_line_labels.jnl
- ! bn_multi_line_labels.jnl
+[?1034h ! bn_multi_line_labels.jnl
! March 31, 2003
!
! ACM 4/2005 ! set mode meta to save this plot for the metafile checks.
@@ -40417,7 +40508,7 @@ ppl plot
ppl rlabs,4,0
*** Running test: bn552_bug_fixes.jnl
-! bn552_bug_fixes.jnl
+[?1034h! bn552_bug_fixes.jnl
! test various fixes that went into version 5.52
! 3/03 *acm*
!
@@ -40901,7 +40992,7 @@ list/t=1-jan-1990 dummy
SET MODE/LAST IGNORE_ERROR
*** Running test: bn_set_var_scale_off.jnl
-! Qualifiers /SCALEFACTOR= and /OFFSET for SET VARIABLE.
+[?1034h! Qualifiers /SCALEFACTOR= and /OFFSET for SET VARIABLE.
! Only for NetCDF datasets
! Applied after NetCDF Scale_factor and add_offset attributes
! New RETURN= arguments NC_SCALE, NC_OFF for values of NetCDF attributes
@@ -40946,7 +41037,7 @@ SET VAR/SCALE=10 x2
SET MODE/LAST IGNORE_ERROR
*** Running test: bn_longvarnames.jnl
-! variable names up to 128 characters long
+[?1034h! variable names up to 128 characters long
! 3/2006 make them 127 to be able to add the null terminator for C strings
! else not used correctly in linked-list attribute structure.
@@ -41047,7 +41138,7 @@ LIST/K=2/L=3 a234567890b234567890c234567890d234567890e234567890f234567890g234567
3 / 3: 9.00 15.00 21.00 27.00 33.00
4 / 4: 11.00 19.00 27.00 35.00 43.00
*** Running test: bn_shakey.jnl
-! Changes to shade key:
+[?1034h! Changes to shade key:
! - Default size is a little bigger
! - To put key labels on the left or bottom of the key, multiply the size by -1
! - Previously ALL OF kx_lo, kx_hi,ky_lo, ky_hi had to be set, or none of them
@@ -41172,7 +41263,7 @@ ppl list shakey
X LO X HI Y LO Y HI
1.20 9.20 -1.40 -1.31
*** Running test: bn_eof_4d.jnl
-! bn_eof_4d.jnl
+[?1034h! bn_eof_4d.jnl
! test EOFs on XYZT grids
! In version 6.8 (double precision), the old eof functions are not available
@@ -41383,7 +41474,7 @@ list/nohead/i=1:5/j=3/k=9 eofst
exit/script
*** Running test: bn_abstract_axis_names.jnl
-! bn_abstract_axis_names.jnl
+[?1034h! bn_abstract_axis_names.jnl
! acm 6/12/03
!
! Write and read datafiles with no clues about axis orientation from
@@ -41582,7 +41673,7 @@ sh grid v
normal F
can data 1
*** Running test: bn_many_polygons.jnl
-! testing large number of polygons in a plot. Map plot has
+[?1034h! testing large number of polygons in a plot. Map plot has
! 130501 polygons; previously we had an upper limit of 100K polygons
use coads_climatology
@@ -41610,7 +41701,7 @@ let xpts = 180 + 30*randu(i[i=1:10])
let ypts = 30*randu(1+i[i=1:10])
polygon xtriangle+xpts, ytriangle+ypts, i[i=1:10]
*** Running test: bn_fill_irregular.jnl
-! FILL on vars with irregular axes
+[?1034h! FILL on vars with irregular axes
use gtbc011
fill/i=70/l=1 temp
@@ -41631,7 +41722,7 @@ fill v2d_irr[t=1-jan-1990:1-jan-1995]
use coads_clim_irreg.des
fill/x=180 sst
*** Running test: bn_xml_output.jnl
-!bn_xml_output.jnl
+[?1034h!bn_xml_output.jnl
! new-V553 output in XML-style format
! Illustrate the SHOW commands with /XML xml-style output
! V5.80 11/04 new tests for SHOW VAR/XML; global variables.
@@ -42875,7 +42966,7 @@ SHOW VAR/XML
</global>
*** Running test: bn_test_nan.jnl
-!bn_test_nan.jnl
+[?1034h!bn_test_nan.jnl
! test to make sure that NaN is able to be set by user
! as bad value. If this fails, Ferret will crash
! Test on a file which is nothing but NaN's, and use
@@ -42951,7 +43042,7 @@ can var/all
*** Running test: bn553_bug_fixes.jnl
-! bn553_bug_fixes.jnl
+[?1034h! bn553_bug_fixes.jnl
! test various fixes that went into version 5.52
! 9/03 *kob*
!
@@ -43036,7 +43127,7 @@ ppl shakey 1,1,.12
ppl shade
*** Running test: bn_graticules.jnl
-! /GRAT, /HGRAT and /VGRAT to set graticule lines
+[?1034h! /GRAT, /HGRAT and /VGRAT to set graticule lines
! ACM March 12, 2004
! ACM 4/2005 set mode meta to save one of the plots for the metafile checks.
! and cancel mode logo, so that .plt files are comparable.
@@ -43086,7 +43177,6 @@ let fcn = k[gz=dlog]
plot/vlog/vlimits=1:100000/hg="large(color=red),small(color=lightblue)" fcn
can mode meta
-set mode logo
can view
@@ -43145,7 +43235,7 @@ can mode graticule
pplus/reset ! restore tics etc
*** Running test: bn_repeat_range.jnl
-! REPEAT/RANGE=[/NAME=] for looping without depending
+[?1034h! REPEAT/RANGE=[/NAME=] for looping without depending
! on the grid\
! ACM March 12, 2004
@@ -43642,7 +43732,7 @@ repeat/range=1:4/name=a (repeat/range=3:1:-1/name=a list a)
!-> REPEAT: A:4
cancel mode ignore
*** Running test: bn554_bug_fixes.jnl
-! bn554_bug_fixes.jnl
+[?1034h! bn554_bug_fixes.jnl
! test various fixes that went into version 5.54
! 11/03 *acm*
!
@@ -44278,7 +44368,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
nulrgd BIGVAR M: 3 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE BIGVAR M: 7 dset: 1 I: 1 36 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX022) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
- regrid A M: 15 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ regrid A M: 14 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G007) (AX022) (AX021) ZAX1_20 TAX1_10 NORMAL NORMAL
VARIABLE : BIGVAR[I=1:40:5]
regrid: 2 delta on Y
@@ -44300,7 +44390,7 @@ cancel mem/all
-DELETE A M: 7 dset: 1 I: 1 8 J: 1 7 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE BIGVAR M: 8 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE A M: 11 dset: 1 I: 1 8 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE A M: 15 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE A M: 14 dset: 1 I: 3 5 J: 1 4 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
! basic strides
LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
@@ -44315,7 +44405,7 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
strip regrid on X: UNEVENVAR --> (G007) @XACT
rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
nulrgd UNE-NVAR M: 11 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE UNE-NVAR M: 15 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE UNE-NVAR M: 14 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G007) (AX003) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X
@@ -44344,7 +44434,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
allocate dynamic grid (G007) (AX021) (AX023) (AX024) TAX1_10 NORMAL NORMAL
strip regrid on X: BIGVAR --> (G007) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd BIGVAR M: 15 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd BIGVAR M: 14 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-DELETE BIGVAR M: 11 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G007) (AX021) (AX023) (AX024) TAX1_10 NORMAL NORMAL
VARIABLE : VAR
@@ -44363,7 +44453,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
4 / 2: 1343. 1345. 1347. 1349.
6 / 3: 1363. 1365. 1367. 1369.
canc data/all
- -DELETE BIGVAR M: 15 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 14 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G007) (AX021) (AX023) (AX024) TAX1_10 NORMAL NORMAL
dealloc dynamic grid (G006) (AX022) YAX1_30 ZAX1_20 TAX1_10 NORMAL NORMAL
@@ -44378,7 +44468,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
strip regrid on X: BIGVAR --> (G006) @XACT
rdstride BIGVAR C: 7 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
nulrgd BIGVAR M: 11 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE BIGVAR M: 15 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE BIGVAR M: 14 dset: 1 I: 3 9 J: 2 6 K: 1 3 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX024) (AX023) (AX021) TAX1_10 NORMAL NORMAL
VARIABLE : VAR
regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
@@ -44413,7 +44503,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
allocate dynamic grid (G006) (AX023) (AX024) NORMAL (AX022) NORMAL NORMAL
strip regrid on X: XYTVAR --> (G006) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 15 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 14 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
-DELETE XYTVAR M: 11 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) NORMAL (AX022) NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
@@ -44434,7 +44524,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
use/order=tyx bn_strides
show grid xytvar
dealloc dynamic grid (G006) (AX023) (AX024) NORMAL (AX022) NORMAL NORMAL
- -DELETE XYTVAR M: 15 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 14 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
GRID EGRID
name axis # pts start end
@@ -44456,7 +44546,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
strip regrid on X: XYTVAR --> (G006) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
nulrgd XYTVAR M: 11 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2 M: -999 -999 N: -999 -999
- -DELETE XYTVAR M: 15 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 14 dset: 1 I: 1 7 J: 2 6 K: -999 -999 L: 3 5 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX024) (AX023) NORMAL (AX021) NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
regrid: 2 deg on X, 2 deg on Y, 2 day on T
@@ -44500,7 +44590,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
allocate dynamic grid (G006) (AX023) (AX024) (AX022) NORMAL NORMAL NORMAL
strip regrid on X: XYTVAR --> (G006) @XACT
rdstride XYTVAR C: 7 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
- nulrgd XYTVAR M: 15 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ nulrgd XYTVAR M: 14 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE XYTVAR M: 11 dset: 1 I: 1 7 J: 2 6 K: 3 5 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) (AX022) NORMAL NORMAL NORMAL
VARIABLE : L*1000 + J*10 + I
@@ -44518,7 +44608,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
144 / 2: 1054. 3054. 5054. 7054.
146 / 3: 1056. 3056. 5056. 7056.
canc data/all
- -DELETE XYTVAR M: 15 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE XYTVAR M: 14 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) (AX022) NORMAL NORMAL NORMAL
@@ -44536,7 +44626,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
strip regrid on X: MIDVAR --> (G006) @XACT
rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
nulrgd MIDVAR M: 11 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 15 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX024) (AX023) (AX021) TAX1_6 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44569,7 +44659,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
doing reversing MIDVAR on Y axis: 2 5 dset: 1
-DELETE MIDVAR M: 11 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
nulrgd MIDVAR M: 11 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 15 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) (AX022) TAX1_6 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44599,7 +44689,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
allocate dynamic grid (G006) (AX024) (AX023) (AX021) ZAX1_7 NORMAL NORMAL
strip regrid on X: MIDVAR --> (G006) @XACT
rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 15 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M: 14 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-DELETE MIDVAR M: 11 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX024) (AX023) (AX021) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
@@ -44616,7 +44706,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 1125. 5125.
5 / 2: 1155. 5155.
canc data/all
- -DELETE MIDVAR M: 15 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX024) (AX023) (AX021) ZAX1_7 NORMAL NORMAL
! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
@@ -44632,8 +44722,8 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
strip reversing MIDVAR on X axis: 1 5 dset: 1
rdstride MIDVAR C: 8 dset: 1 I: 2 6 J: 4 7 K: 3 5 L: 7 7 M: -999 -999 N: -999 -999
doing reversing MIDVAR on X axis: 1 5 dset: 1
- -DELETE MIDVAR M: 15 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
- nulrgd MIDVAR M: 15 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ nulrgd MIDVAR M: 14 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-DELETE MIDVAR M: 11 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) (AX022) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
@@ -44650,7 +44740,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
2 / 1: 6775. 2775.
5 / 2: 6745. 2745.
canc data/all
- -DELETE MIDVAR M: 15 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) (AX022) ZAX1_7 NORMAL NORMAL
! reference output
@@ -44665,7 +44755,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
strip regrid on X: MIDVAR --> (G006) @XACT
rdstride MIDVAR C: 7 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
nulrgd MIDVAR M: 11 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 15 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX024) (AX023) (AX021) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44698,7 +44788,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
doing reversing MIDVAR on Y axis: 2 5 dset: 1
-DELETE MIDVAR M: 11 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
nulrgd MIDVAR M: 11 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- -DELETE MIDVAR M: 15 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
+ -DELETE MIDVAR M: 14 dset: 1 I: 1 5 J: 2 5 K: 3 5 L: 1 1 M: -999 -999 N: -999 -999
dealloc dynamic grid (G006) (AX023) (AX024) (AX022) ZAX1_7 NORMAL NORMAL
VARIABLE : VAR
regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -44762,7 +44852,7 @@ ppl list shakey
DEFAULT KEY POSITIONING
X LO X HI Y LO Y HI
- 9.40 9.69 1.40 7.40
+ 9.37 9.66 1.40 7.40
fill/lev=c {-1.1,1.1}*ysequence({1,1})
ppl list shakey
@@ -44773,7 +44863,7 @@ ppl list shakey
DEFAULT KEY POSITIONING
X LO X HI Y LO Y HI
- 9.40 9.69 1.40 7.40
+ 9.37 9.66 1.40 7.40
! At lon = 0, we used to have an E; remove this.
@@ -45091,7 +45181,7 @@ list/wid=1024/y=1:2 sin(x[gx=xax]) + y[gy=yax]
can mode ignore
*** Running test: bn_bounds.jnl
-
+[?1034h
! bn_bounds.jnl
! testing CDF read and write of file with irregular axes and bounds
! and DEFINE AXIS/BOUNDS
@@ -45453,7 +45543,7 @@ sh axis/t tax
4> 10 1 9.5
5> 11 1 10.5
*** Running test: bn_all_leap.jnl
-! bn_all_leap.jnl
+[?1034h! bn_all_leap.jnl
! ACM 6/2004
! Added ALL_LEAP, or 366_DAY calendar (which is in the CF conventions).
! leap year every year
@@ -45503,7 +45593,7 @@ def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
can mode ignore
*** Running test: bn570_bug_fixes.jnl
-! bn554_bug_fixes.jnl
+[?1034h! bn554_bug_fixes.jnl
! test various fixes that went into version 5.70
! 11/03 *acm*
!
@@ -45740,7 +45830,7 @@ plot v[gt=tax at asn]
def axis/t=07-feb-0599:07-feb-0600:1/units=years tt
plot t[gt=tt]
*** Running test: bn_modstats.jnl
-! bn_modstats.jnl
+[?1034h! bn_modstats.jnl
! acm 8/25/04
! There was never a benchmark test of modulo statistics.
! (and a bug had crept into @MODVAR when there was missing data)
@@ -45887,7 +45977,7 @@ list var[gt=month_reg at modngd]
15-NOV / 11: 10.00
16-DEC / 12: 10.00
*** Running test: bn_mc_vary_scale.jnl
-! bn_mc_vary_scale.jnl
+[?1034h! bn_mc_vary_scale.jnl
! Allow stepfiles to have different internal scale and offset.
! read and apply when opening each stepfile. Previously, the
! scale and offset from the first stepfile were applied.
@@ -45965,7 +46055,7 @@ list/quiet/nohead `tt,return=nc_scale`, `tt,return=nc_offset`
I / *: 2.000 -0.02000
*** Running test: bn_plot_nokey.jnl
-! bn_plot_nokey.jnl (bug 1089)
+[?1034h! bn_plot_nokey.jnl (bug 1089)
! 22-nov-2004
! Test new PLOT/NOKEY qualifier
@@ -45984,7 +46074,7 @@ PLOT/X=180/Y=0/K=1 temp
PLOT/OVER/NOKEY/X=180/Y=-1/K=1 temp
PLOT/OVER/NOKEY/X=180/Y=1/K=1 temp
*** Running test: bn580_bug_fixes.jnl
-! bn580_bug_fixes.jnl
+[?1034h! bn580_bug_fixes.jnl
! test various fixes that went into version 5.80
! 7/04 *acm*
!
@@ -46050,44 +46140,44 @@ GO err570_shakeylab.jnl
use coads_climatology
ppl dfltfnt cr
-define viewport/axes/text=1/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
- !-> define viewport/axes/text=1/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
+define viewport/axes/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
+ !-> define viewport/axes/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
set viewport vp_1
fill/set/L=2 sst
ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 10.282, 10.582, 1.4, 4.777
ppl fill
fill/set/L=2 sst* 10000
ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 10.282, 10.582, 1.4, 4.777
ppl fill
fill/set/L=2 sst/ 10000
ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 10.282, 10.582, 1.4, 4.777
ppl fill
!
-define viewport/axes/text=1/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
- !-> define viewport/axes/text=1/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
+define viewport/axes/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
+ !-> define viewport/axes/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
set viewport vp_1
shade/set/L=2 sst
ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 10.282, 10.582, 1.4, 4.777
ppl shade
shade/set/L=2 sst* 10000
ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 10.282, 10.582, 1.4, 4.777
ppl shade
shade/set/L=2 sst/ 10000
ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 10.282, 10.582, 1.4, 4.777
ppl shade
@@ -46815,7 +46905,7 @@ show data/full
NCEP Ocean Analysis
name title I J K L M N
TEMP temperature 1:1 1:1 1:19 1:1 ... ...
- degree_Celsius on grid GGH1 with 1.E-34 & NaN for missing data
+ degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
X=139.8E:140.8E Y=0.5S:0.5N Z=0:375
time range: 15-FEB-1980 12:00
@@ -47096,9 +47186,7 @@ ppl list labels
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
LAB 3 8.000E+00 6.550E+00 0.090 0 SYSTEM @ASDATA SET: coads_climatology
LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
- LAB 4 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
- LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 5 8.000E+00 6.750E+00 0.073 0 SYSTEM @ASOPeNDAP URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+ LAB 4 8.000E+00 6.750E+00 0.073 0 SYSTEM @ASOPeNDAP URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
@@ -47143,7 +47231,7 @@ POLYGON XT, YT, I[I=1:10]
PLOT/VS XT, YT
*** Running test: bn_inf_levels.jnl
-! Run FERRET/fer/ferretdods_gui
+[?1034h! Run FERRET/fer/ferretdods_gui
! test open upper and lower levels (-INF) (INF)
can mode logo
@@ -47234,7 +47322,7 @@ go polymark poly/key/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequen
*** Running test: bn_regulart.jnl
-! bn_regulart.jnl
+[?1034h! bn_regulart.jnl
! 5/12/2005 ACM
! Test of the USE/REGULART qualifier
@@ -47278,14 +47366,32 @@ list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
17-JUN-1946 / 6: 90017. 30.44
*** Running test: bn_labwid.jnl
-! LABWID returns the length in Denbo inches of the
+[?1034h! LABWID returns the length in Denbo inches of the
! string. For multi-line strings, returns length of
! the longest line.
+! In pyFerret fonts, there must be an open window before we
+! can query font information. The following is an error
+
+set mode ignore
LIST LABWID("aaaaabbbbb", .15)
VARIABLE : LABWID("aaaaabbbbb", .15)
X : 1
1.357
+cancel mode ignore
+
+go ptest
+! Description: create a simple test line plot
+
+! spirograph picture ...
+PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
+
+
+label/nouser 0,3,-1,0,.15,"@P2 at IILine1<NL>@IIA LONGER LINE"
+let wid = labwid("@P2 at IILine1<NL>@IIA LONGER LINE",.15)
+label/nouser `wid`, 3, -1, 0, .15, "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
+ !-> PPL %LABEL/nouser 2.019230842590332, 3, -1, 0, .15, "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
+
LIST LABWID("aaaaabbbbb", .10)
VARIABLE : LABWID("aaaaabbbbb", .10)
X : 1
@@ -47316,21 +47422,8 @@ LIST LABWID("@IISTRING<NL>@SSSTRING", .15)
VARIABLE : LABWID("@IISTRING<NL>@SSSTRING", .15)
X : 1
0.9808
-
-
-go ptest
-! Description: create a simple test line plot
-
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
-
-
-label/nouser 0,3,-1,0,.15,"@P2 at IILine1<NL>@IIA LONGER LINE"
-let wid = labwid("@P2 at IILine1<NL>@IIA LONGER LINE",.15)
-label/nouser `wid`, 3, -1, 0, .15, "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
- !-> PPL %LABEL/nouser 2.019230842590332, 3, -1, 0, .15, "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
*** Running test: bn_redefine_taxis_mc.jnl
-! bn_redefine_taxis_mc.jnl
+[?1034h! bn_redefine_taxis_mc.jnl
! ACM 15-Apr-2005
! Redefine the time axis of a multi-file data set.
@@ -47393,7 +47486,7 @@ list/x=180/y=0 sst
5 / 5: 28.49
6 / 6: 28.32
*** Running test: bn_illegal_axisname.jnl
-! Some OPenDAP HDF files have illegal axis names, e.g. with a dot in the name.
+[?1034h! Some OPenDAP HDF files have illegal axis names, e.g. with a dot in the name.
! This is a test of using such names, in a redefinition of the axes of the data.
! The file has a variable with axis names COADSX.ILLEGAL, COADSY.ILLEGAL. The axes contain
! just indices. The file also has variables NEW.LONGITUDES and NEW.LATITUDES which contain
@@ -47446,7 +47539,7 @@ sh grid sst
normal E
normal F
*** Running test: bn_exit_script.jnl
-! bn_exit_script.jnl
+[?1034h! bn_exit_script.jnl
! 5/2005 ACM
! tests of EXIT/SCRIPT command, in combination with IF and REPEAT
! 3/2007 add a check for exit/script within a loop (fixes for bug 1304)
@@ -47532,7 +47625,7 @@ loop
3
loop
*** Running test: bn_exit_cycle.jnl
-! bn_exit_cycle.jnl
+[?1034h! bn_exit_cycle.jnl
! 5/2005 ACM
! EXIT/CYCLE skips remaining commands in this repetition of a loop
@@ -47560,7 +47653,7 @@ say 16384 if bigger than 500
loop finished 16384 gt 10000
*** Running test: bn_curv_mod.jnl
-! bn_curv_mod
+[?1034h! bn_curv_mod
! Test of fill/mod and contour/mod
! 5/24/2005 Ferret v5.81
@@ -47578,7 +47671,7 @@ fill/mod/hlim=-180:180 ht, geolon_vert_t[i=1:180,j=1:24], geolat_vert_t[i=1:180,
contour/over/mod/hlim=-180:180 ht, geolon_vert_t[i=1:180,j=1:24], geolat_vert_t[i=1:180,j=1:24]
*** Running test: bn_shade_keycont.jnl
-! Continuous shade key
+[?1034h! Continuous shade key
! test setting it and whether default is restored on next command.
! also whether behavior consistent when we call shakey
@@ -47671,7 +47764,7 @@ ppl shakey ,0,-.12,3,,,`x1`,`x2`,`y1`
!-> ppl shakey ,0,-.12,3,,,2.2,5.212,1.4
ppl fill
*** Running test: bn581_bug_fixes.jnl
-! bn581_bug_fixes.jnl
+[?1034h! bn581_bug_fixes.jnl
! test various fixes that went into version 5.81
! 2/05 *acm*
!
@@ -47686,9 +47779,9 @@ GO err580_irreg_bounds.jnl
! the bounds seem to be ignored; axis is seen as regular.
! Bug 1160 reported by Andrew.
-yes? def ax/t/edge time = {0,1,3}
-yes? let a = t[gt=time]
-yes? show grid/t a
+def ax/t/edge time = {0,1,3}
+let a = t[gt=time]
+show grid/t a
GRID (G001)
name axis # pts start end
normal X
@@ -47702,17 +47795,17 @@ yes? show grid/t a
1> 0.5 1 0
2> 2 2 1
-yes? save/clob/file=a.nc a
+save/clob/file=a.nc a
sp echo "err580_irreg_bounds.jnl --- " >> all_ncdump.out
-yes? sp ncdump a.nc >> all_ncdump.out
+sp ncdump a.nc >> all_ncdump.out
can data/all
can var/all
can mem
! T axis was marked as regular
-yes? use a.nc
-yes? show grid/t a
+use a.nc
+show grid/t a
GRID GSI1
name axis # pts start end
normal X
@@ -47919,7 +48012,7 @@ GO err580_def_view_axes.jnl
! Does not crash with Ferret v5.50
-define view/x=0.2:0.4/y=.2:.4/text=0.75/axes v1
+define view/x=0.2:0.4/y=.2:.4/axes v1
set window/clear
set mode metafile viewaxes.plt
@@ -48151,7 +48244,7 @@ POLYGON/LINE/fill xp, yp, ypts
! GO err580_regrid_prec.jnl
*** Running test: bn_tab_comma_multivar.jnl
-! bn_tab_comma_multivar.jnl
+[?1034h! bn_tab_comma_multivar.jnl
!
! Fixes for bug 1273
! v5.90 8/9/2005
@@ -48193,7 +48286,7 @@ COUNTRY ID AA BB NEWCOUNTRY THE_DATA_VAR
"JP" 2 8000 2000500 "c" 5
"US" 3 12000 3000500 "e" 4
*** Running test: bn_element_functions.jnl
- ! NOAA/PMEL TMAP
+[?1034h ! NOAA/PMEL TMAP
! FERRET v5.81
! Solaris 5.6 - 08/08/05
! 9-Aug-05 14:36
@@ -48317,14 +48410,14 @@ list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
2 / 2: .... 3.000
*** Running test: bn_long_revision_num.jnl
-! bn_long_revision_num.jnl
+[?1034h! bn_long_revision_num.jnl
! ACM 8/30/05
! revision numbers were previously limited to 2 decimal places: v5.81
! Now they can be longer, for minor revisions between releases: v5.8101
! ferret version
sh sym FERRET_VERSION
-FERRET_VERSION = "6.93"
+FERRET_VERSION = "6.96"
! history attribute
let a = 12
@@ -48342,10 +48435,11 @@ LAB1 = "X : 0.5 to 314.5"
! show commands without an argument, lists version number at the top
sho command
- Commands in Program FERRET (PyFerret 1.1.0) version6.93:
+ Commands in Program FERRET (PyFerret 1.2) version6.96:
SET
SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE/QUALITY/ANTIALIA/NOANTIAL
/ENGINE/COLOR/OPACITY/THICKEN/XPIXELS/YPIXELS/XINCHES/YINCHES/TEXTPROM
+ /OUTLINE
SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
SET VIEWPORT
SET EXPRSION
@@ -48355,8 +48449,8 @@ sho command
/TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
SET MODE/LAST
SET MOVI/FILE/COMPRESS/LASER/START
- SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/SIGMA
- /CURVILIN
+ SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+ /LAYERZ/CURVILIN
SET GRID/SAVE/RESTORE
SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
SET MEMORY/SIZE
@@ -48364,6 +48458,7 @@ sho command
SET NCCACHE/SIZE/NELEMS/PREEMPT
SET REDIRECT/TEE/JOURNAL/FILE/APPEND/CLOBBER
SET GIFFILE
+ SET TEXT/FONT/COLOR/ITALIC/BOLD/ISIZ
SHOW/ALL
SHOW WINDOW/ALL
SHOW REGION/ALL
@@ -48374,7 +48469,7 @@ sho command
/HIDDEN
SHOW MODE/ALL
SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
/CURVILIN
SHOW COMMANDS/ALL
SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -48387,8 +48482,8 @@ sho command
SHOW NCCACHE
SHOW GIFFILE
SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
- SHOW QUERIES/ALL
- CANCEL
+ SHOW TEXT
+ CANCEL QUERIES
CANCEL WIND/ALL
CANCEL REGION/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F
CANCEL MEMORY/ALL/TEMPORY/PERMANT
@@ -48398,7 +48493,7 @@ sho command
CANCEL MODE
CANCEL MOVIE/ALL
CANCEL VIEWPORT
- CANCEL VARIABLE/ALL/DATASET/SIGMA/CURVILIN
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
CANCEL GRID
CANCEL ATTRIBUT/OUTPUT/DATA
@@ -48407,6 +48502,7 @@ sho command
CANCEL SYMBOL/ALL
CANCEL NCCACHE
CANCEL PYVAR/ALL/DATASET
+ CANCEL TEXT/FONT/COLOR/ITALIC/BOLD/ISIZ/ALL
CONTOUR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/FILL/LINE
/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/COLOR
/NOAXES/PATTERN/SIZE/SPACING/SIGDIG/PEN/HLIMITS/VLIMITS/AXES/HGRATICU
@@ -48416,11 +48512,11 @@ sho command
/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS/CLOBBER
/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT/XCHUNK
/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN/OUTTYPE
- /CURVILIN/SIGMA
+ /CURVILIN/LAYERZ
PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/VS/SYMBOL
/NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE/NOAXES/STEP
/DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG/GRATICUL/NOKEY
- /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/OPACITY
+ /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC/OPACITY
GO/HELP
HELP
LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
@@ -48436,7 +48532,8 @@ sho command
DEFINE SYMBOL
DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
EXIT/COMMAND/LOOP/SCRIPT/PROMPT/PROGRAM/CYCLE/TOPYTHON
MESSAGE/CONTINUE/QUIET/JOURNAL/ERROR/OUTFILE/APPEND/CLOBBER
VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/ASPECT/NOLABEL
@@ -48463,10 +48560,11 @@ sho command
/NOLABEL/LEVELS/LINE/COLOR/PALETTE/XLIMITS/YLIMITS/TITLE/THICKNES
/NOAXES/PATTERN/FILL/KEY/NOKEY/AXES/HLIMITS/VLIMITS/HLOG/VLOG
/HGRATICU/VGRATICU/GRATICUL/MODULO/OPACITY
+ ANNOTATE/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
Use SHOW ALIAS to see alternative command names
*** Running test: bn_window_title.jnl
-! bn_window_title.jnl
+[?1034h! bn_window_title.jnl
! Define a title for windows rather than just FERRET_1, FERRET_2, ...
! If no title is set, use SESSION_DATE:SESSION_TIME
@@ -48477,7 +48575,7 @@ go ptest
PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
sh sym win_title
-WIN_TITLE = "5-Nov-14_16:39"
+WIN_TITLE = "19-Nov-15_12:05"
set win/title="set the title"
sho sym win_title
@@ -48495,7 +48593,7 @@ sho sym win_title
WIN_TITLE = "_"
set win/title="($session_date):($session_time)"
- !-> set win/title=" 5-Nov-14:16:39"
+ !-> set win/title="19-Nov-15:12:05"
! If the date or time starts with a blank then we get an extra
! underscore in the window title. Evaluating the symbols into
@@ -48504,18 +48602,18 @@ set win/title="($session_date):($session_time)"
! If so substitute another string.
DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 5-Nov-14
+ !-> DEFINE SYMBOL the_date = 19-Nov-15
DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 16:39
+ !-> DEFINE SYMBOL the_time = 12:05
SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="5-Nov-14:16:39"
+ !-> SET WIN/TITLE="19-Nov-15:12:05"
can win/all
set win/new
sh sym win_title
-WIN_TITLE = "5-Nov-14:16:39"
+WIN_TITLE = "19-Nov-15:12:05"
*** Running test: bn_last_error.jnl
-! bn_last_error.jnl
+[?1034h! bn_last_error.jnl
! acm Nov 2005
!
! - test the symbol FER_LAST_ERROR (Commands from various bn scripts)
@@ -48568,7 +48666,7 @@ FER_LAST_ERROR = "**ERROR: error in external function. Bailing out of external f
SET MODE/LAST IGNORE_ERROR
*** Running test: bn_deg_min.jnl
-! bn_deg_min.jnl
+[?1034h! bn_deg_min.jnl
! label axes with degrees and minutes rather than degrees and decimal degrees.
! 19-May-06 add seconds as well...
@@ -48602,7 +48700,7 @@ ppl plot
! Restore the default settings
ppl axlint,2,2
*** Running test: bn_dp_readscale.jnl
-! bn_dp_readscale.jnl
+[?1034h! bn_dp_readscale.jnl
! 9-Feb-2006 ACM
! When there is a double precision variable,
@@ -48678,7 +48776,7 @@ list xax
cancel list/precision
*** Running test: bn_bounds_defineax.jnl
-! bn_bounds_defineax.jnl
+[?1034h! bn_bounds_defineax.jnl
! 3/22/2006
! Previously only allowed 2*N definition of bounds in DEFINE AXIS/BOUNDS
! Now allow N+1 definition of bounds, or three equal-lenght lists of
@@ -48880,7 +48978,7 @@ list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
1678.5 / 12: 1158. 1679. 2199.
2849 / 13: 2199. 2849. 3499.
*** Running test: bn_attributes.jnl
-! bn_attributes
+[?1034h! bn_attributes
! test attribute handling on netcdf intput/output and
! programatic access to attribute information
! needs new cdf files modfalse.nc, test0.nc
@@ -49287,6 +49385,7 @@ let a = temp.missing_value
list a
VARIABLE : TEMP.MISSING_VALUE
FILENAME : ocean_atlas_temp.cdf
+ X : 1
-1.000E+34
use ocean_atlas_temp
@@ -49294,6 +49393,7 @@ let s = temp.units
list s
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
can data/all
@@ -49305,6 +49405,7 @@ list s
VARIABLE : ..REMARK
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
"Generated by oar3d "
go bn_reset
@@ -49323,6 +49424,7 @@ let anames = sst.attnames
list nat
VARIABLE : SST.NATTRS
FILENAME : coads_climatology.cdf
+ X : 1
5.000
list anames
VARIABLE : SST.ATTNAMES
@@ -49340,6 +49442,7 @@ let cnames = sst.dimnames
list nd
VARIABLE : SST.NDIMS
FILENAME : coads_climatology.cdf
+ X : 1
3.000
list cnames
VARIABLE : SST.DIMNAMES
@@ -49359,6 +49462,7 @@ let nd = ..ndims
let vnames = ..varnames
list/d=1 nv, nd
DATA SET: ./gt4d011.cdf
+ X: 1
Column 1: NV is ..NVARS
Column 2: ND is ..NDIMS
NV ND
@@ -49384,6 +49488,7 @@ let vnames = ..varnames
list/d=coads_climatology vnames
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
list/d=gt4d011 vnames
VARIABLE : ..VARNAMES
@@ -49420,27 +49525,28 @@ list vnames
3 / 3:"TIME"
list lnames
VARIABLE : ..DIMNAMES[D=gt4d011]
- SUBSET : 20 points (X)
- 1 / 1:"PSXT"
- 2 / 2:"PSYT"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME1"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT"
+ 3 / 3:"PSYT"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME1"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
can var/all
can data/all
@@ -49453,6 +49559,7 @@ list v
VARIABLE : ..NDIMS
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
3.000
let na = ..nattrs
@@ -49460,6 +49567,7 @@ list na
VARIABLE : ..NATTRS
DATA SET : K-Bay OAR3d model (200m)
FILENAME : err491_attval.cdf
+ X : 1
31.00
let gnames = ..attnames
@@ -49523,12 +49631,14 @@ let nat = temp.nattrs
list nat
VARIABLE : TEMP.NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
5.000
list (`temp,return=xaxis`).nattrs
!-> list (XAX_LEV9421_380).nattrs
VARIABLE : (XAX_LEV9421_380).NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
4.000
use gt4d011
@@ -49562,15 +49672,18 @@ let a = temp.units
list/d=3 a
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list temp.units[d=3]
VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list/d=3 temp.history
VARIABLE : TEMP.HISTORY
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"From ocean_atlas_monthly"
can data/all
@@ -49630,6 +49743,7 @@ let a= broiled.acl
list a
VARIABLE : BROILED.ACL
FILENAME : test0.nc
+ X : 1
17000.
let a= broiled.acf
@@ -49691,6 +49805,7 @@ use gt4d011
list ..nvars
VARIABLE : ..NVARS
FILENAME : gt4d011.cdf
+ X : 1
12.00
use coads_climatology
@@ -49698,10 +49813,12 @@ use coads_climatology
list/d=1 ..nvars
VARIABLE : ..NVARS
FILENAME : gt4d011.cdf
+ X : 1
12.00
list/d=2 ..nvars
VARIABLE : ..NVARS
FILENAME : coads_climatology.cdf
+ X : 1
1.000
sh data
@@ -49724,6 +49841,7 @@ sh data
list/d=2 ..varnames
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
list/d=2 ..dimnames
@@ -49736,49 +49854,55 @@ list/d=2 ..dimnames
list/d=1 ..dimnames
VARIABLE : ..DIMNAMES
FILENAME : gt4d011.cdf
- SUBSET : 20 points (X)
- 1 / 1:"PSXT"
- 2 / 2:"PSYT"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME1"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT"
+ 3 / 3:"PSYT"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME1"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
list/d=1 ..nattrs
VARIABLE : ..NATTRS
FILENAME : gt4d011.cdf
+ X : 1
1.000
list/d=1 ..attnames
VARIABLE : ..ATTNAMES
FILENAME : gt4d011.cdf
+ X : 1
"history"
list/d=1 ..ndims
VARIABLE : ..NDIMS
FILENAME : gt4d011.cdf
+ X : 1
21.00
list/d=2 ..ndims
VARIABLE : ..NDIMS
FILENAME : coads_climatology.cdf
+ X : 1
3.000
list ..nvars[d=1]
VARIABLE : ..NVARS[D=gt4d011]
FILENAME : gt4d011.cdf
+ X : 1
12.00
sh var
Created by DEFINE VARIABLE:
@@ -49805,6 +49929,7 @@ set data 1
list/d=2 pp
VARIABLE : ..VARNAMES
FILENAME : coads_climatology.cdf
+ X : 1
"SST"
go bn_reset
@@ -49894,10 +50019,12 @@ use coads_climatology
list (coadsx).units
VARIABLE : (COADSX).UNITS
FILENAME : coads_climatology.cdf
+ X : 1
"degrees_east"
list (coadsx).modulo
VARIABLE : (COADSX).MODULO
FILENAME : coads_climatology.cdf
+ X : 1
" "
sho att/all (coadsx)
attributes for dataset: ./coads_climatology.cdf
@@ -49986,6 +50113,7 @@ list (`sst,return=xaxis`).nattrs[d=2]
!-> list (COADSX).nattrs[d=2]
VARIABLE : (COADSX).NATTRS[D=coads_climatology]
FILENAME : coads_climatology.cdf
+ X : 1
5.000
! using dimension names from the linked list structure
@@ -50005,6 +50133,7 @@ list (`cnames[i=1]`).nattrs
!-> list (COADSX).nattrs
VARIABLE : (COADSX).NATTRS
FILENAME : coads_climatology.cdf
+ X : 1
5.000
! Intentional errors.
@@ -50091,7 +50220,7 @@ sh att/all temp3
can var temp2
let/units="degrees C"/title="my new TEMP"/bad=`temp,return=bad` temp2 = temp*2
- !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad=-9.9999998E+33 temp2 = temp*2
+ !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad= -9.999999790214768E+33 temp2 = temp*2
sh att/all temp2
attributes for user-defined variables
temp2.long_name = my new TEMP
@@ -50147,6 +50276,7 @@ let pq = temp.pp
list pq
VARIABLE : TEMP.PP
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"PP now has some text."
! set an attribute when the variable is not in the default dataset.
@@ -51077,7 +51207,7 @@ sho att .
attributes for dataset: ./levitus_climatology.cdf
..history = FERRET V5.22 5-Apr-01
*** Running test: bn_transforms.jnl
-! Test the transforms
+[?1034h! Test the transforms
use coads_climatology
@@ -51281,7 +51411,7 @@ list/L=1/y=11:23/x=93w sst, sst[y=@shn] , sst[y=@spz], sst[y=@sum], sst[y=@swl],
21N / 56: 23.95 24.06 24.06 181.6 24.08 ....
23N / 57: 23.84 23.69 23.69 181.6 23.66 ....
*** Running test: bn_variance.jnl
- ! bn_variance.jnl
+[?1034h ! bn_variance.jnl
! the @VAR transform is not tested in bn_transforms.jnl script.
use coads_climatology
@@ -51317,7 +51447,7 @@ list/y=3/l=1/x=233 u[z=@var]
TIME : 17-AUG-1982 12:00
11.33
*** Running test: bn_linecolors.jnl
-! bn_linecolors.jnl
+[?1034h! bn_linecolors.jnl
! 5/2006 ACM
! test setting more line colors
@@ -51382,7 +51512,7 @@ can win/all
set win/new
*** Running test: bn_cdf_errmsg.jnl
-! bn_cdf_errmsg.jnl
+[?1034h! bn_cdf_errmsg.jnl
! ACM 7/13/2006
! test reporting of cdf error messages from OPeNDAP library v3.6.2
@@ -51424,7 +51554,7 @@ use asc.nc
set mode/last ignore
*** Running test: bn600_bug_fixes.jnl
-! bn600_bug_fixes.jnl
+[?1034h! bn600_bug_fixes.jnl
! test various fixes that went into version 6.00
! 8/05 *acm*
!
@@ -51560,11 +51690,11 @@ set view left; shade/x=120e:80w sst ! works correctly
set view right; fill/x=120e:80w sst
sh sym ppl$xmin, ppl$xmax ! should be 131, 279
-PPL$XMIN = "131.0"
-PPL$XMAX = "281.0"
+PPL$XMIN = "131.0000"
+PPL$XMAX = "281.0000"
sh sym ppl$xlow, ppl$xhigh ! should be 165, 259
-PPL$XHIGH = "165.0"
-PPL$XLOW = "259.0"
+PPL$XHIGH = "165.0000"
+PPL$XLOW = "259.0000"
sp rm -f err581_subspanx_fill_bug.nc
@@ -51646,8 +51776,6 @@ GO err581_if_conditional.jnl
! This should skip to the end, not trying to execute anything inside the IF 0 THEN
if 0 then
- endif
- endif
endif
say "finished the if block"
@@ -51682,7 +51810,6 @@ let key_flag = 0
IF `($xend) GT 360` THEN
!-> IF 0 THEN
- ENDIF
ENDIF
let dxymin = 0.20
if `dxymin lt 0.12` then
@@ -51697,7 +51824,6 @@ endif
IF `($xend) GT 360` THEN
!-> IF 0 THEN
- ENDIF
ELSE
say "this is the ELSE that should execute"
this is the ELSE that should execute
@@ -51794,10 +51920,8 @@ ELIF ($refmap_type%|xline>1|*>0%) THEN ! ELSE IF "xline"
!-> ELIF 1 THEN
define region/default/dy=$6"-30:30|1>-30:30|*>-20:20"/dx=$6"0:0|1>0:0|2>0:0|*>`max(-($ref_dx),-50)`:`min(($ref_dx),50)`" band
!-> define region/default/dy=-20:20/dx=-50:50 band
-
ELIF ($refmap_type%|yline>1|*>0%) THEN ! ELSE IF "yline"
!-> ELIF 0 THEN
- ENDIF
ENDIF
! init the land mask data set
set data coads_climatology
@@ -51836,17 +51960,12 @@ IF ($refmap_type%|box>1|*>0) THEN ! IF "box"
!-> IF 0 THEN
ELIF ($refmap_type%|xline>1|*>0) THEN ! ELSE IF "xline"
!-> ELIF 1 THEN
-
IF ($refmap_ycompress) THEN
!-> IF 0 THEN
ENDIF
-
plot/over/vs/nolab/line=8/i=1:2 refmap_xrng, refmap_ymid+(i-i)
-
ELIF ($refmap_type%|yline>1|*>0) THEN ! ELSE IF "yline"
!-> ELIF 0 THEN
- ENDIF
- ENDIF
ENDIF
@@ -52127,8 +52246,8 @@ GO err581_define_1pt_bounds.jnl
! again, and even that result is now very wrong!! Same results in both v5.81
! for Linux and v5.70 for Irix.
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: -2 to 6
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -52138,8 +52257,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
3 / 2: 2.000 4.000 3.000
5 / 3: 4.000 6.000 5.000
-yes? def ax/x/bounds xax = {0},{-2,2}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0},{-2,2}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: 0
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -52147,8 +52266,8 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
XBOXLO XBOXHI X
I / *: -2.000 2.000 0.0000
-yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
-yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
+def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
+list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: -2 to 6
Column 1: XBOXLO is XBOXLO (axis XAX)
Column 2: XBOXHI is XBOXHI (axis XAX)
@@ -52224,9 +52343,9 @@ go polymark poly/lev=(-5,30,1)/pal=white/fill/line=1/nolab/over v1 v2 v3 circle
! And, from Andrew with other reversed axes.
-yes? ppl cross 1
-yes? plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
-yes? poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
+ppl cross 1
+plot/vl=4:-4/hl=4:-4/vs/line/title="there should be just one triangle" {1,2,3,1},{0,2,1,0}
+poly/ov/col=2/pal=yellow {1,2,3,1},{0,2,1,0}
ppl cross 0
@@ -52234,7 +52353,7 @@ set mem /size=25.6
*** Running test: bn601_bug_fixes.jnl
-! bn601_bug_fixes.jnl
+[?1034h! bn601_bug_fixes.jnl
! test various fixes that went into version 6.01
! 20-Sep-2006 ACM
!
@@ -52394,12 +52513,10 @@ GO err600_if_comments_tab.jnl
! thrown off and we got an error about an invalid ENDIF
IF 0 THEN
- ENDIF
ENDIF
! Here there is a tab before the ! which throws off the parsing...
IF 0 THEN
- ENDIF
ENDIF
! err600_set_var_title.jnl
@@ -52551,6 +52668,7 @@ list ..dimnames
list ..varnames
VARIABLE : ..VARNAMES
FILENAME : levitus_climatology.cdf
+ X : 1
"TEMP"
! err600_nc_des_order.jnl
@@ -52628,8 +52746,13 @@ use coads_climatology
def sym timeax = `sst,return=taxis`
!-> def sym timeax = TIME4
-show att/all ($timeax)
- !-> show att/all TIME4
+show att/all (($timeax))
+ !-> show att/all (TIME4)
+ attributes for dataset: ./coads_climatology.cdf
+ (TIME4).units = hour since 0000-01-01 00:00:00
+ (TIME4).time_origin = 1-JAN-0000 00:00:00
+ (TIME4).modulo =
+ (TIME4).orig_file_axname = TIME
show axis ($timeax)
!-> show axis TIME4
name axis # pts start end
@@ -52638,8 +52761,12 @@ T0 = 01-JAN-0000 00:00:00
Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
define axis/t0=1-jan-0001/t=1:3:1/unit=months ($timeax)
!-> define axis/t0=1-jan-0001/t=1:3:1/unit=months TIME4
-show att/all ($timeax)
- !-> show att/all TIME4
+show att/all (($timeax))
+ !-> show att/all (TIME4)
+ attributes for dataset: ./coads_climatology.cdf
+ (TIME4).units = MONTHS since 1-JAN-0001
+ (TIME4).time_origin = 1-JAN-0001
+ (TIME4).orig_file_axname = TIME
show axis ($timeax)
!-> show axis TIME4
name axis # pts start end
@@ -52653,8 +52780,12 @@ can data/all
use gt4d011
def sym timeax = `temp,return=taxis`
!-> def sym timeax = TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
+show att/all (($timeax))
+ !-> show att/all (TIME11)
+ attributes for dataset: ./gt4d011.cdf
+ (TIME11).units = hour since 1980-01-14 14:00:00
+ (TIME11).time_origin = 14-JAN-1980 14:00:00
+ (TIME11).orig_file_axname = TIME1
show axis ($timeax)
!-> show axis TIME11
name axis # pts start end
@@ -52664,8 +52795,14 @@ T0 = 14-JAN-1980 14:00:00
set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days ($timeax)
!-> set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
+show att/all (($timeax))
+ !-> show att/all (TIME11)
+ attributes for dataset: ./gt4d011.cdf
+ (TIME11).units = days since 1-JAN-1900
+ (TIME11).time_origin = 1-JAN-1900
+ (TIME11).orig_file_axname = TIME1
+ (TIME11).calendar = NOLEAP
+ (TIME11).modulo =
show axis ($timeax)
!-> show axis TIME11
name axis # pts start end
@@ -52683,8 +52820,12 @@ def sym timeax = `temp,return=taxis`
!-> def sym timeax = TIME11
def sym zax = `temp,return=zaxis`
!-> def sym zax = PSZT
-show att/all ($timeax)
- !-> show att/all TIME11
+show att/all (($timeax))
+ !-> show att/all (TIME11)
+ attributes for dataset: ./gt4d011.cdf
+ (TIME11).units = hour since 1980-01-14 14:00:00
+ (TIME11).time_origin = 14-JAN-1980 14:00:00
+ (TIME11).orig_file_axname = TIME1
show axis ($zax)
!-> show axis PSZT
name axis # pts start end
@@ -52693,8 +52834,12 @@ show axis ($zax)
cancel axis/modulo ($timeax)
!-> cancel axis/modulo TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
+show att/all (($timeax))
+ !-> show att/all (TIME11)
+ attributes for dataset: ./gt4d011.cdf
+ (TIME11).units = hour since 1980-01-14 14:00:00
+ (TIME11).time_origin = 14-JAN-1980 14:00:00
+ (TIME11).orig_file_axname = TIME1
show axis ($timeax)
!-> show axis TIME11
name axis # pts start end
@@ -52703,8 +52848,14 @@ T0 = 14-JAN-1980 14:00:00
Axis span (to cell edges) = 3650
cancel axis/depth ($zax)
!-> cancel axis/depth PSZT
-show att/all ($zax)
- !-> show att/all PSZT
+show att/all (($zax))
+ !-> show att/all (PSZT)
+ attributes for dataset: ./gt4d011.cdf
+ (PSZT).units = METERS
+ (PSZT).positive = up
+ (PSZT).point_spacing = uneven
+ (PSZT).edges = PSZTedges
+ (PSZT).orig_file_axname = PSZT
show axis ($zax)
!-> show axis PSZT
name axis # pts start end
@@ -52772,7 +52923,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
@@ -52817,7 +52968,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
@@ -53032,7 +53183,7 @@ stat rose[j=12,d=1]
Mean value: 62.717 (unweighted average)
Standard deviation: 156.25
*** Running test: bn_set_strides.jnl
-! bn_set_strides.jnl
+[?1034h! bn_set_strides.jnl
! Jing Li, 11/2006
! tests for SET AXIS/STRIDES
@@ -53469,7 +53620,7 @@ show axis `sst,return=taxis`
T0 = 01-JAN-0000 00:00:00
Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
*** Running test: bn_lsl_lowpass.jnl
-! bn_lsl_lowpass.jnl
+[?1034h! bn_lsl_lowpass.jnl
! Test lsl_lowpass, now included as a statically-linked external function
use gtsa056_2
@@ -53502,7 +53653,7 @@ LIST/L=10:20 MY_TEMP[L=1:110], F_FILTERED[L=1:110]
14-MAR-1982 09 / 20: 27.42 27.43
*** Running test: bn_return_xmod_tmod.jnl
-! New `var,return=xmod` `var,return=tmod`
+[?1034h! New `var,return=xmod` `var,return=tmod`
! Return modulo lengths, or blank if not modulo
use ocean_atlas_temp
@@ -53575,7 +53726,7 @@ say `axy,return=xmod`
!-> MESSAGE/CONTINUE 2
2
*** Running test: bn602_bug_fixes.jnl
-! bn602_bug_fixes.jnl
+[?1034h! bn602_bug_fixes.jnl
! test various fixes that went into version 6.02
! 09-Nov-2006 ACM
@@ -53681,11 +53832,11 @@ SHOW GRID/Z atmos
normal F
K Z ZBOX ZBOXLO
- 1> 6.7915956192266E-10 6.885E-10 3.3490923923019E-10
- 2> 0.00000000136766 1.037E-09 0.00000000102341
- 3> 0.000000002754131 2.089E-09 0.000000002060896
- 4> 0.000000005546143 4.207E-09 0.000000004150137
- 5> 0.00000001116856 8.472E-09 0.000000008357353
+ 1> 6.791595619227E-10 6.885E-10 3.349092392302E-10
+ 2> 1.367660207308E-09 1.037E-09 1.023409884615E-09
+ 3> 2.754131145366E-09 2.089E-09 2.060895676337E-09
+ 4> 5.546143100332E-09 4.207E-09 4.150137122849E-09
+ 5> 0.00000001116856 8.472E-09 8.357352587751E-09
6> 0.00000002249072 1.706E-08 0.00000001682964
7> 0.00000004529075 3.436E-08 0.00000003389074
8> 0.00000009120437 6.919E-08 0.00000006824756
@@ -53834,7 +53985,7 @@ list a
3 / 3:""
*** Running test: bn_modnbd.jnl
-! Test MODNBD regridding statistic.
+[?1034h! Test MODNBD regridding statistic.
use gtsa056_2.cdf
!use climatological_axes
@@ -53896,7 +54047,7 @@ list var[gt=month_reg at MODNGD], var[gt=month_reg at MODNBD], var[gt=month_reg at MODNGD
15-NOV / 11: 10.00 0.00 10.00 10.00
16-DEC / 12: 10.00 0.00 10.00 10.00
*** Running test: bn_fifty_files.jnl
-! bn_fifty_files.jnl
+[?1034h! bn_fifty_files.jnl
! We build OPeNDAP so that 100 files can be opened at a time.
! Test with fifty.
@@ -53956,7 +54107,7 @@ use weird_name1.cdf
cancel mode ignore_error
*** Running test: bn603_bug_fixes.jnl
-! bn603_bug_fixes.jnl
+[?1034h! bn603_bug_fixes.jnl
! test various fixes that went into version 6.03
! 11-May-2006 ACM
@@ -54069,7 +54220,7 @@ LIST/NOHEAD/I=91:94/J=37/K=1/L=1 TEMP,SALT
136.5W / 94: 27.17807 2.380348E-04
*** Running test: bn_set_var_name.jnl
-! bn_set_var_name.jnl
+[?1034h! bn_set_var_name.jnl
! This has been in Ferret since v5.3 but never a benchmark test of it!
! ACM 8/2007
@@ -54114,7 +54265,7 @@ LIST/X=179:183/Y=40/L=3 sst
177W / 82: 36.24
*** Running test: bn_memory_symbol.jnl
-Unable to resize Ferret's memory cache to 500000.000000 Mdoubles
+[?1034hUnable to resize Ferret's memory cache to 500000.000000 Mdoubles
Ferret's memory cache remains at 0.200000 Mdoubles
! bn_memory_symbol.jnl
! Ferret v6.06 15-Aug-07
@@ -54141,7 +54292,7 @@ set mem/siz=25.6 ! return to the default setting
show memory
Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
*** Running test: bn605_bug_fixes.jnl
-! bn604_bug_fixes.jnl
+[?1034h! bn604_bug_fixes.jnl
! test various fixes that went into version 6.05
! 27-July-2007 ACM
@@ -54293,6 +54444,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
LABWID(STR,HT)
LANCZOS(A,F1,F2,N)
LIST_VALUE_XML(tag,value,cdata_flag,outputfile)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
LSL_LOWPASS(A,cutoff_period,filter_span)
MINMAX(A)
MINUTES24(formatted time)
@@ -54305,6 +54457,7 @@ SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
+SAMPLEF_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
SAMPLET_DATE(DAT_TO_SAMPLE,YR,MO,DAY,HR,MIN,SEC)
SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
SAMPLEXY_CLOSEST(DAT_TO_SAMPLE,XPTS,YPTS)
@@ -54402,6 +54555,14 @@ EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
STR_MASK(STRING,MASK,--)
SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
SEPARATE(A,Rowsize,FixLongitudes)
+TIME_REFORMAT(A)
+FT_TO_ORTHOGONAL(VAR,TIME2D,ALLTIME)
+CURV_TO_RECT_FSU(V,mapping)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SAMPLE_FAST_I_STR(S,Indices)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
ADD_9(A,B,C,D,E,F,G,H,I)
APPENDE(ENS,VAR)
AVET(A)
@@ -54412,6 +54573,7 @@ FFT_AMP(A)
FFTA_SAMPLE(A)
FFT_PHAS(A)
LENGTH_OF_STRINGS(--)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
MAXSTRLEN(A)
PASS_THRU(A)
PASS_THRU_STRING(A)
@@ -54597,7 +54759,7 @@ CURV2RECT(CurvData,CurvCenterLons,CurvCenterLats,CurvCornerLons,CurvCornerLats,T
CURV3SRECT(CurvData,CurvLons,CurvLats,CurvBaths,CurvZetas,TemplateRectVar,Method)
*** Running test: bn608_bug_fixes.jnl
-! bn608_bug_fixes
+[?1034h! bn608_bug_fixes
! test various fixes that went into version 6.08
! 24-Sep ACM
@@ -54710,11 +54872,11 @@ GO err607_axis_minmax_syms
use coads_climatology
let plotvar = sst[L=1]
plot/y=35 plotvar/10000; sh sym yax*
-YAXIS_MIN = "8.0000010E-04"
-YAXIS_MAX = "2.1000002E-03"
+YAXIS_MIN = "7.9999998E-04"
+YAXIS_MAX = "2.0999999E-03"
plot/y=35 plotvar/10000000; sh sym yax*
-YAXIS_MIN = "8.0000012E-07"
-YAXIS_MAX = "2.1000003E-06"
+YAXIS_MIN = "8.0000001E-07"
+YAXIS_MAX = "2.1000001E-06"
plot/y=35 plotvar*10000000; sh sym yax*
YAXIS_MIN = "8.0000000E+07"
YAXIS_MAX = "2.1000000E+08"
@@ -54724,11 +54886,11 @@ def axis/y=0.000001:0.000002/npoints=100 yax
let a = x[gx=xax] + y[gy=yax]
shade a; sh sym xax*; ; sh sym yax*
XAXIS_REVERSED = "0"
-XAXIS_MIN = "3.99494949E-06"
-XAXIS_MAX = "5.0050505E-06"
+XAXIS_MIN = "3.994949495E-06"
+XAXIS_MAX = "5.005050505E-06"
YAXIS_REVERSED = "0"
-YAXIS_MIN = "9.94949495E-07"
-YAXIS_MAX = "2.0050505E-06"
+YAXIS_MIN = "9.949494949E-07"
+YAXIS_MAX = "2.005050505E-06"
@@ -54745,7 +54907,7 @@ SHADE/LEV=300/I=1:100/J=1:100 i+j
SET MODE/LAST ignore
*** Running test: bn_shade_trim.jnl
-! bn_shade_trim.jnl
+[?1034h! bn_shade_trim.jnl
! Test new qualifier SHADE/TRIM which trims the region of
! shade plot as is done by FILL. For LAS scripts which do
! shade underlay for FILL plots.
@@ -54756,30 +54918,30 @@ USE ocean_atlas_temp
SET VIEW upper
FILL temp[L=2,X=180:200,Y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
! See the larger region used by default for SHADE
SHADE temp[L=2,X=180:200,y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.00000"
-XAXIS_MAX = "200.0000"
-YAXIS_MIN = "30.000000"
-YAXIS_MAX = "44.00000"
+XAXIS_MIN = "180.000000"
+XAXIS_MAX = "200.000000"
+YAXIS_MIN = "30.0000000"
+YAXIS_MAX = "44.0000000"
! SHADE/TRIM trims the region as for a FILL plot
SET VIEW lower
SHADE/TRIM temp[L=2,X=180:200,y=30:44]
SHOW SYM xaxis_min, xaxis_max, yaxis_min, yaxis_max
-XAXIS_MIN = "180.50000"
-XAXIS_MAX = "199.5000"
-YAXIS_MIN = "30.500000"
-YAXIS_MAX = "43.50000"
+XAXIS_MIN = "180.500000"
+XAXIS_MAX = "199.500000"
+YAXIS_MIN = "30.5000000"
+YAXIS_MAX = "43.5000000"
*** Running test: bn_mode_nlevels.jnl
-! bn_mode_nlevels.jnl
+[?1034h! bn_mode_nlevels.jnl
! 3-mar-2008
! v6.1 MODE NLEVELS (default is 40)
@@ -54817,7 +54979,7 @@ LEV_DEL = "0.5"
set mode nlevels 40
*** Running test: bn61_bug_fixes.jnl
-! bn608_bug_fixes
+[?1034h! bn608_bug_fixes
! test various fixes that went into version 6.1
! 2-Jan-2008 ACM
@@ -54871,7 +55033,7 @@ SAY `1.23456789e-15,prec=10`
!-> MESSAGE/CONTINUE 1.23456789E-15
1.23456789E-15
*** Running test: bn_test_opendap.jnl
-! Test the test_opendap function: returns 0 if successful, or error code if not.
+[?1034h! Test the test_opendap function: returns 0 if successful, or error code if not.
SET MODE IGNORE
!! Change to another server, this one not working 3/2012
@@ -54891,7 +55053,7 @@ list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA0
CANCEL MODE IGNORE
*** Running test: bn611_bug_fixes.jnl
-! bn611_bug_fixes.jnl
+[?1034h! bn611_bug_fixes.jnl
! Fixes that go into v6.11 release
GO bn_reset
@@ -55209,27 +55371,28 @@ list vnames
4 / 4:"TIME"
list lnames
VARIABLE : ..DIMNAMES[D=gt4d011]
- SUBSET : 20 points (X)
- 1 / 1:"PSXT"
- 2 / 2:"PSYT"
- 3 / 3:"PSYTedges"
- 4 / 4:"PSZT"
- 5 / 5:"PSZTedges"
- 6 / 6:"TIME1"
- 7 / 7:"PSXT91_108"
- 8 / 8:"PSYT35_56"
- 9 / 9:"PSZT1_10"
- 10 / 10:"PSYT35_55"
- 11 / 11:"PSXU"
- 12 / 12:"PSYU"
- 13 / 13:"PSYUedges"
- 14 / 14:"PSXU91_108"
- 15 / 15:"PSYU35_55"
- 16 / 16:"PSZW"
- 17 / 17:"PSZWedges"
- 18 / 18:"PSYT36_55"
- 19 / 19:"PSZW1_10"
- 20 / 20:"PSYU35_56"
+ SUBSET : 21 points (X)
+ 1 / 1:"grid_definition"
+ 2 / 2:"PSXT"
+ 3 / 3:"PSYT"
+ 4 / 4:"PSYTedges"
+ 5 / 5:"PSZT"
+ 6 / 6:"PSZTedges"
+ 7 / 7:"TIME1"
+ 8 / 8:"PSXT91_108"
+ 9 / 9:"PSYT35_56"
+ 10 / 10:"PSZT1_10"
+ 11 / 11:"PSYT35_55"
+ 12 / 12:"PSXU"
+ 13 / 13:"PSYU"
+ 14 / 14:"PSYUedges"
+ 15 / 15:"PSXU91_108"
+ 16 / 16:"PSYU35_55"
+ 17 / 17:"PSZW"
+ 18 / 18:"PSZWedges"
+ 19 / 19:"PSYT36_55"
+ 20 / 20:"PSZW1_10"
+ 21 / 21:"PSYU35_56"
go bn_reset
cancel mode verify
@@ -55244,12 +55407,14 @@ let nat = temp.nattrs
list nat
VARIABLE : TEMP.NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
5.000
list (`temp,return=xaxis`)[d=2].nattrs
!-> list (XAX_LEV9421_380)[d=2].nattrs
- VARIABLE : (XAX_LEV9421_380)[d=ocean_atlas_temp].NATTRS
+ VARIABLE : (XAX_LEV9421_380)[D=ocean_atlas_temp].NATTRS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
4.000
use gt4d011
@@ -55284,14 +55449,17 @@ let a = temp.units
list/d=3 a
VARIABLE : TEMP.UNITS
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"Deg C"
list temp[d=3].units
- VARIABLE : TEMP[d=ocean_atlas_temp].UNITS
+ VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
FILENAME : gt4d011.cdf
+ X : 1
"Deg C"
list/d=3 temp.history
VARIABLE : TEMP.HISTORY
FILENAME : ocean_atlas_temp.cdf
+ X : 1
"From ocean_atlas_monthly"
can data/all
@@ -55304,7 +55472,7 @@ use coads_climatology
! But this does
let a = sst[d=1].dimnames
list a[i=2]
- VARIABLE : SST[d=coads_climatology].DIMNAMES
+ VARIABLE : SST[D=coads_climatology].DIMNAMES
FILENAME : coads_climatology.cdf
X : 2
"COADSY"
@@ -55320,16 +55488,18 @@ use coads_climatology
define symbol ferret_plot_var sst[x=30:39,y=-90:90]
list ($ferret_plot_var).long_name
!-> list sst[x=30:39,y=-90:90].long_name
- VARIABLE : SST.LONG_NAME
+ VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
FILENAME : coads_climatology.cdf
+ X : 1
"SEA SURFACE TEMPERATURE"
use coads_climatology
define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
list ($ferret_plot_var).units
!-> list sst[d=1,x=30:35,y=-90:90].units
- VARIABLE : SST[d=coads_climatology].UNITS
+ VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
FILENAME : coads_climatology.cdf
+ X : 1
"Deg C"
use coads_climatology
@@ -55337,8 +55507,9 @@ use levitus_climatology
define symbol ferret_plot_var sst[d=1,x=30:35,y=-90:90]
list ($ferret_plot_var).history
!-> list sst[d=1,x=30:35,y=-90:90].history
- VARIABLE : SST[d=coads_climatology].HISTORY
+ VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
FILENAME : levitus_climatology.cdf
+ X : 1
"From coads_climatology"
go bn_reset
@@ -55354,13 +55525,15 @@ def sym yaxnam "(`temp[d=1],return=yaxis`)"
list ($xaxnam)[d=1].modulo
!-> list (XAXLEVITR1_160)[d=1].modulo
- VARIABLE : (XAXLEVITR1_160)[d=levitus_climatology].MODULO
+ VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
FILENAME : coads_climatology.cdf
+ X : 1
" "
list ($yaxnam).point_spacing[d=1]
!-> list (YAXLEVITR1_90).point_spacing[d=1]
VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
FILENAME : levitus_climatology.cdf
+ X : 1
"even"
@@ -55558,12 +55731,12 @@ GO err611_exit_if.jnl
! This only in v6.11 GFDL release bug
! Fixed in xeq_exit.F
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b !the following fails to say "hello"
go a
if 1 then
exit/script
@@ -55600,7 +55773,7 @@ list b
save/clob/file=b.nc b
*** Running test: bn_no_valid_on_plot.jnl
-! bn_no_valid_on_plot.jnl
+[?1034h! bn_no_valid_on_plot.jnl
! Bug 1038 points out that the No Valid Data label that is
! put onto 2D plot if there is no good data, is not put onto
! 1D plots. Add it to the variable title so it shows up in the key
@@ -55620,28 +55793,18 @@ ppl list labels
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
LAB 3 8.000E+00 6.630E+00 0.120 0 SYSTEM @ASDATA SET: coads_climatology
LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
- LAB 4 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
- LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
! and now valid data overlaid with all-missing data
plot/x=56e:100e/y=10 sst[L=1]
plot/over/x=56e:100e/y=40 sst[L=1]
ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)
+
@ASLONGITUDE
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLATITUDE : 9N
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 2 0.000E+00 6.600E+00 0.120 0 SYSTEM @ASTIME : 16-JAN 06:00
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 3 8.000E+00 6.630E+00 0.120 0 SYSTEM @ASDATA SET: coads_climatology
- LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
- LAB 4 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
- LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 5 -3.700E-01 -5.500E-01 0.080 0 SYSTEM @ASSST[Y=39N] No Valid Data
+ LAB 1 -3.100E-01 -5.500E-01 0.080 0 SYSTEM @ASSST[Y=39N] No Valid Data
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
! For plots with multi lines in one plot command, mark each if no data
@@ -55656,13 +55819,11 @@ ppl list labels
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
LAB 2 8.000E+00 6.630E+00 0.120 0 SYSTEM @ASDATA SET: coads_climatology
LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
- LAB 3 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
- LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 4 2.530E+00 -8.000E-01 0.120 0 SYSTEM @ASSST[Y=9N]
+ LAB 3 2.530E+00 -8.000E-01 0.120 0 SYSTEM @ASSST[Y=9N]
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 5 5.780E+00 -7.900E-01 0.119 0 SYSTEM @ASSST[Y=49N] No Valid Data
+ LAB 4 5.780E+00 -7.900E-01 0.119 0 SYSTEM @ASSST[Y=49N] No Valid Data
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 6 2.530E+00 -1.050E+00 0.120 0 SYSTEM @ASSST[Y=19N]
+ LAB 5 2.530E+00 -1.050E+00 0.120 0 SYSTEM @ASSST[Y=19N]
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
! For 2D plots create a new MODE NODATA_LAB which if on, puts
@@ -55678,7 +55839,7 @@ VECTOR/Y=80:90 sst[L=1], sst[L=1]
SET MODE/last nodata_lab
*** Running test: bn_median.jnl
-! Test median smoothing tranform
+[?1034h! Test median smoothing tranform
! Default length is 3
use gtsa056_2.cdf
@@ -55783,7 +55944,7 @@ plot/trans var, var[z=@med:4]
set mode/last ignore
*** Running test: bn614_bug_fixes.jnl
-! bn614_bug_fixes.jnl
+[?1034h! bn614_bug_fixes.jnl
! Fixes that go into v6.14 release
GO bn_reset
@@ -55834,12 +55995,12 @@ GO err611_exit_if.jnl
! This only in v6.11 GFDL release bug
! Fixed in xeq_exit.F
-yes? sp echo if 1 then > a.jnl
-yes? sp echo exit/script >> a.jnl
-yes? sp echo endif >> a.jnl
-yes? sp echo go a > b.jnl
-yes? sp echo say hello >> b.jnl
-yes? go b !the following fails to say "hello"
+sp echo if 1 then > a.jnl
+sp echo exit/script >> a.jnl
+sp echo endif >> a.jnl
+sp echo go a > b.jnl
+sp echo say hello >> b.jnl
+go b !the following fails to say "hello"
go a
if 1 then
exit/script
@@ -56436,13 +56597,13 @@ GO err611_shade_fill_levs
shade x[gx=0:1:.1]*y[gy=0:1:.1]; sh sym lev*
LEV_MIN = "0"
-LEV_MAX = "1"
-LEV_NUM = "20"
+LEV_MAX = "1.05"
+LEV_NUM = "21"
LEV_DEL = "0.05"
fill x[gx=0:1:.1]*y[gy=0:1:.1]; sh sym lev*
LEV_MIN = "0"
-LEV_MAX = "1"
-LEV_NUM = "20"
+LEV_MAX = "1.05"
+LEV_NUM = "21"
LEV_DEL = "0.05"
@@ -56635,7 +56796,7 @@ fill/ov/pal=greyscale/x=-360:360 b
cont/ov/x=-360:360 b
*** Running test: bn_mode_nodata_lab.jnl
-! bn_mode_nodata_lab
+[?1034h! bn_mode_nodata_lab
! turns off the No Valid Data label on plots
! (for line plots this is added to the plot label,
! if the mode is SET).
@@ -56664,7 +56825,7 @@ contour/fill/y=40:50/x=70e:110e/L=1 vwnd
set mode/last nodata_lab
*** Running test: bn_proleptic_gregorian_calendar.jnl
-! proleptic_gregorian_calendar.jnl
+[?1034h! proleptic_gregorian_calendar.jnl
! Allow PROLEPTIC_GREGORIAN as a calendar attribute
! for the default Ferret calendar.
@@ -56681,7 +56842,7 @@ show axis tdays
T0 = 15-JAN-1901 00:00:00
Axis span (to cell edges) = 32
*** Running test: bn_string_ngd_nbd.jnl
-! @NGD and @NBD for strings
+[?1034h! @NGD and @NBD for strings
! Bad data is taken to be the null string
! Compare with results for numeric data
! *ACM 11/2008
@@ -56997,7 +57158,7 @@ list av[i=@ngd,j=@ngd,k=@ngd,L=@ngd]
T : 0.5 to 2.5 (XYZT # valid)
16.00
*** Running test: bn_cat_string.jnl
-! bn_cat_string.jnl
+[?1034h! bn_cat_string.jnl
! Test concatenation functions for string variables
! ACM nov 08 See bug 1577
@@ -57063,7 +57224,7 @@ list tcat(a,b)
5 / 5:"V"
6 / 6:"W"
*** Running test: bn_sort_strings.jnl
-! bn_sort_strings.jnl
+[?1034h! bn_sort_strings.jnl
! 11/08 acm
! show func/detail now shows the alternative function for
@@ -57239,7 +57400,7 @@ list indx_bl, samplel(bl,indx_bl)
7 / 7: .... ""
*** Running test: bn_samplexyt.jnl
-! bn_samplexyt.jnl
+[?1034h! bn_samplexyt.jnl
! 1/2009
! Check the SAMPLEXYT function, should give missing results for T sample points
@@ -57309,14 +57470,14 @@ plot/vs/color=red/over tpts, sampl_pts
set mode calendar
*** Running test: bn_last_go_file.jnl
-! bn_last_go_file.jnl
+[?1034h! bn_last_go_file.jnl
! test the automatically-defined symbol LAST_GO_FILE
show sym last_go_file
LAST_GO_FILE = "./bn_last_go_file.jnl"
*** Running test: bn_cancel_upcase_uservar.jnl
-! bn_cancel_upcase_uservar.jnl
+[?1034h! bn_cancel_upcase_uservar.jnl
!
! Ferret v6.2
! MODE upcase_only cancelled, now writes lowercase
@@ -57348,7 +57509,7 @@ SP ncdump -h a.nc >> all_ncdump.out
SET MODE/LAST upcase_output
*** Running test: bn_cdf_keepax.jnl
-! bn320_cdf
+[?1034h! bn320_cdf
! benchmark to test netCDF input and output
! This is the same as bn_cdf with /KEEP_AXNAMES added to SAVE commands.
@@ -58212,7 +58373,7 @@ list/x=180 fcn_rev_sub
0 / 11: 0.0000
1S / 10: 0.3166
*** Running test: bn_keep_axisnames.jnl
-! bn_keep_axisnames.jnl
+[?1034h! bn_keep_axisnames.jnl
! 2/2009 ACM
! save/KEEP_AXISNAMES prevents changes to
@@ -58224,7 +58385,7 @@ sh command list
/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS/CLOBBER
/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT/XCHUNK
/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN/OUTTYPE
- /CURVILIN/SIGMA
+ /CURVILIN/LAYERZ
define axis/x=1:100:1/units=deg x100
define axis/t=1-jan-2000:31-jan-2000:1/units=days/t0=31-dec-1999 t31
let a = x[gx=x100] + t[gt=t31]
@@ -58239,7 +58400,7 @@ sp echo "bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES" >> all_ncdump.out
sp ncdump -h a.nc >> all_ncdump.out
*** Running test: bn_key_label_minmax.jnl
-! bn_key_label_minmax.jnl
+[?1034h! bn_key_label_minmax.jnl
! Label data min and max on vertical and horizontal keys
@@ -58319,7 +58480,7 @@ set mode/last logo
shade/lev=35 sst[L=1]
*** Running test: bn62_bug_fixes.jnl
-! bn62_bug_fixes.jnl
+[?1034h! bn62_bug_fixes.jnl
! Fixes that go into v6.2 release
GO bn_reset
@@ -58390,7 +58551,7 @@ plot/title="vertical profile" yp4
GO error_bars polygon/color=red/thickness=2/title="variability" yp4 errors
*** Running test: bn_convolve.jnl
-! bn_convolve.jnl
+[?1034h! bn_convolve.jnl
! test convolutions, including with missing-data.
! compare behavior with smoothing transform spz.
@@ -58518,7 +58679,7 @@ list a, a[i=@spz], convolvei(a,{.25,.5,.25})
*** Running test: bn_tax_tstep.jnl
-! bn_tax_tstep.jnl
+[?1034h! bn_tax_tstep.jnl
!
! Working with the coordinates of this axis loses accuracy because its
! time origin is so far back from the time it represents
@@ -58630,7 +58791,7 @@ LIST/L=1:15 TAX_TSTEP(tt, "`reset_date`")
01-JAN-1902 00:01:05 / 14: 65.00000
01-JAN-1902 00:01:10 / 15: 70.00000
*** Running test: bn_grads_z.jnl
-! bn_grads_z.jnl
+[?1034h! bn_grads_z.jnl
! acm 3/31/09
! Fixing bug 1651.
! The file has no axis attributes other than units and long_name,
@@ -58699,11 +58860,11 @@ SH GRID am
normal E
normal F
*** Running test: bn_clock_syms.jnl
-SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "0.525919"
-CLOCK_SECS = "0.309"
-CURRENT_DATE = " 5-Nov-14"
-CURRENT_TIME = "16:40:37"
+[?1034hSH SYM delta_cpu, clock_secs, current_date, current_time
+DELTA_CPU = "0.684895"
+CLOCK_SECS = "0.324"
+CURRENT_DATE = "19-Nov-15"
+CURRENT_TIME = "12:05:50"
! test special symbols DELTA_CPU, CLOCK_SECS
!
! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -58712,8 +58873,8 @@ CURRENT_TIME = "16:40:37"
use gt4d011
shade/k=1 temp[L=@ave]
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.060991"
-CLOCK_SECS = "0.369"
+DELTA_CPU = "0.051992"
+CLOCK_SECS = "0.376"
repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=1
@@ -58727,62 +58888,62 @@ repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=9
!-> REPEAT: K=10
let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.676897
+ !-> DEFINE VARIABLE ten_plots = 0.176973
sh sym DELTA_CPU, CLOCK_SECS
DELTA_CPU = "0"
-CLOCK_SECS = "1.047"
+CLOCK_SECS = "0.553"
let sumclock = 0
let sumcpu = 0
sh sym CLOCK_SECS
-CLOCK_SECS = "1.047"
+CLOCK_SECS = "0.555"
repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);\
let sumcpu =`sumcpu + dt`)
!-> repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);let sumcpu =`sumcpu + dt`)
!-> REPEAT: K=1
- !-> DEFINE VARIABLE dt = 0.042993
- !-> DEFINE VARIABLE sumcpu =0.042993
+ !-> DEFINE VARIABLE dt = 0.019997
+ !-> DEFINE VARIABLE sumcpu =0.019997
!-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.047993
- !-> DEFINE VARIABLE sumcpu =0.090986
+ !-> DEFINE VARIABLE dt = 0.021997
+ !-> DEFINE VARIABLE sumcpu =0.041994
!-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.047993
- !-> DEFINE VARIABLE sumcpu =0.138979
+ !-> DEFINE VARIABLE dt = 0.021997
+ !-> DEFINE VARIABLE sumcpu =0.063991
!-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.048992
- !-> DEFINE VARIABLE sumcpu =0.187971
+ !-> DEFINE VARIABLE dt = 0.021996
+ !-> DEFINE VARIABLE sumcpu =0.085987
!-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.045993
- !-> DEFINE VARIABLE sumcpu =0.233964
+ !-> DEFINE VARIABLE dt = 0.021997
+ !-> DEFINE VARIABLE sumcpu =0.107984
!-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.047993
- !-> DEFINE VARIABLE sumcpu =0.281957
+ !-> DEFINE VARIABLE dt = 0.021997
+ !-> DEFINE VARIABLE sumcpu =0.129981
!-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.043993
- !-> DEFINE VARIABLE sumcpu =0.32595
+ !-> DEFINE VARIABLE dt = 0.020996
+ !-> DEFINE VARIABLE sumcpu =0.150977
!-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.043994
- !-> DEFINE VARIABLE sumcpu =0.369944
+ !-> DEFINE VARIABLE dt = 0.022997
+ !-> DEFINE VARIABLE sumcpu =0.173974
!-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.042993
- !-> DEFINE VARIABLE sumcpu =0.412937
+ !-> DEFINE VARIABLE dt = 0.020997
+ !-> DEFINE VARIABLE sumcpu =0.194971
!-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.041993
- !-> DEFINE VARIABLE sumcpu =0.45493
+ !-> DEFINE VARIABLE dt = 0.020997
+ !-> DEFINE VARIABLE sumcpu =0.215968
say `sumcpu`
- !-> MESSAGE/CONTINUE 0.45493
-0.45493
+ !-> MESSAGE/CONTINUE 0.215968
+0.215968
sh sym CLOCK_SECS
-CLOCK_SECS = "1.505"
+CLOCK_SECS = "0.774"
SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:40"
-CURRENT_DATE = " 5-Nov-14"
-CURRENT_TIME = "16:40:38"
+SESSION_DATE = "19-Nov-15"
+SESSION_TIME = "12:05"
+CURRENT_DATE = "19-Nov-15"
+CURRENT_TIME = "12:05:50"
*** Running test: bn63_bug_fixes.jnl
-! bn63_bug_fixes.jnl
+[?1034h! bn63_bug_fixes.jnl
! Fixes that go into v6.3 release
GO bn_reset
@@ -59090,8 +59251,8 @@ list yboxlo[g=grd],yboxhi[g=grd]
11.2S / 15: -12.84 -9.59
8S / 16: -9.59 -6.38
4.8S / 17: -6.38 -3.18
-1.6S / 18: -3.18 0.00
-1.6N / 19: 0.00 3.18
+1.6S / 18: -3.18 -0.00
+1.6N / 19: -0.00 3.18
4.8N / 20: 3.18 6.38
8N / 21: 6.38 9.59
11.2N / 22: 9.59 12.84
@@ -59485,7 +59646,7 @@ LIST 1 EQ 2 OR "A" EQ "B" ! should be 0
0.0000
*** Running test: bn_axis_reversed_syms.jnl
-! bn_axis_reversed_syms.jnl
+[?1034h! bn_axis_reversed_syms.jnl
! XAXIS_REVERSED and YAXIS_REVERSED are
! set to 0 or if the reversed-axis is
! plotted upside-down, set to 1
@@ -59569,7 +59730,7 @@ XAXIS_REVERSED = "0"
YAXIS_REVERSED = "1"
*** Running test: bn_isdepth.jnl
-! Tests of `var,RETURN=ISDEPTH`
+[?1034h! Tests of `var,RETURN=ISDEPTH`
define axis/units=meters/z=0:100:2 zup
let zz = z[gz=zup]
@@ -59590,8 +59751,8 @@ say `temp,return=isdepth`
use coads_climatology
say `sst,return=isdepth`
- !-> MESSAGE/CONTINUE NORMAL
-NORMAL
+ !-> MESSAGE/CONTINUE 0
+0
can data 2
@@ -59602,7 +59763,7 @@ say `temp,return=isdepth`
0
*** Running test: bn_var_hist_levels.jnl
-! bn_var_hist_levels.jnl
+[?1034h! bn_var_hist_levels.jnl
! Syntax for variance-based or histogram-based levels
!
@@ -59659,7 +59820,7 @@ shade/line/key/lev=20c,1d/title="/LEV=20c,1d" cvar[K=1]
shade/line/key/lev=50h/title="/LEV=50h" cvar[K=1]
*** Running test: bn64_bug_fixes.jnl
-! bn64_bug_fixes.jnl
+[?1034h! bn64_bug_fixes.jnl
! Fixes that go into v6.4 release
! (changes were made to err62_if_inside_repeat.jnl
@@ -59746,7 +59907,7 @@ list v1
X : 1
"ZAIRA"
*** Running test: bn_long_grid_names.jnl
-! bn_long_grid_names.jnl
+[?1034h! bn_long_grid_names.jnl
! test longer grid names (16 --> 64 chars)
! tests taken from other bn scripts but with longer grid names
@@ -60530,7 +60691,7 @@ SHOW GRID mygrid_123456789012345678901234567890
normal E
normal F
*** Running test: bn_xml_repl.jnl
-! bn_xml_repl.jnl
+[?1034h! bn_xml_repl.jnl
! replace > and < and & with their html equivalents.
use coads_climatology
@@ -60670,7 +60831,7 @@ sh dat/xml/var
</axes>
shade/l=1 sst
*** Running test: bn65_bug_fixes.jnl
-! bn65_bug_fixes.jnl
+[?1034h! bn65_bug_fixes.jnl
! Fixes that go into v6.5 release
GO bn_reset
@@ -60931,7 +61092,7 @@ go polymark "poly/ov/nolab/pal=red/line=1" pos pos " " circle .5
*** Running test: bn_txtype_dmy.jnl
-! bn_txtype_dmy.jnl
+[?1034h! bn_txtype_dmy.jnl
! 2/2010 ACM
!
! Testing Time Axis plot style "DMY" labels the year
@@ -61054,7 +61215,7 @@ ppl plot
plot/y=-1/k=1/t=5-mar-1982:28-mar-1982/x=144w temp
plot/y=-1/k=1/t=5-mar-1982:28-apr-1982/x=144w temp
*** Running test: bn_n_open_dsets_sym.jnl
- ! bn_n_open_dsets_sym.jnl
+[?1034h ! bn_n_open_dsets_sym.jnl
! Ferret v6.5
! New special symbol N_OPEN_DSETS, evaulated when requested.
! Gives a count of the number of open datasets.
@@ -61095,11 +61256,11 @@ sh sym N_OPEN_DSETS
N_OPEN_DSETS = "0"
*** Running test: bn_multi_decade.jnl
-! bn_multi_decade.jnl
+[?1034h! bn_multi_decade.jnl
! New default no-small tics for multi-decade plots
! See bug 670
-def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
+def axis/t="01-JAN-1860":"30-DEC-2300":1/edges/units="years"/cal="360d" simutaxis1
let tvar = t[gt=simutaxis1]*-1E+34
define view/x=0:1/y=0.000:0.125 v1
@@ -61156,7 +61317,7 @@ set view v8; plot/trans/nolab/ax=0,0,1,0/hlim=0:1/set tvar
ppl tics,0.1,0.25
ppl plot
*** Running test: bn_show_xml_file.jnl
-! bn_show_xml_file.jnl
+[?1034h! bn_show_xml_file.jnl
! Testing SHOW DATA/OUTFILE
! SHOW AXIS/OUTFILE
! SHOW VAR/OUTFILE
@@ -61361,7 +61522,7 @@ sp cat the_xml_file.xml
</data>
*** Running test: bn66_bug_fixes.jnl
-! bn66_bug_fixes.jnl
+[?1034h! bn66_bug_fixes.jnl
! Fixes that go into v6.6 release
@@ -61457,7 +61618,7 @@ stat temp[z=@ave,t=@ave,y=-2:2]
cancel region
*** Running test: bn_netcdf4.jnl
-! bn_netcdf4.jnl
+[?1034h! bn_netcdf4.jnl
! test syntax for controling NetCDF-4 intput and output.
@@ -61489,7 +61650,7 @@ set var/title=deflate_x30_y30 sst
save/file=nc4_deflate4.nc/clobber/ncformat=4/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
! With /NCFORMAT=3 the other stuff is meaningless. Will see NOTEs
-yes? save/file=nc4_nodeflate3.nc/clobber/ncformat=3/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
+save/file=nc4_nodeflate3.nc/clobber/ncformat=3/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
! --------------------------
! Compare choices of chunking.
@@ -61572,7 +61733,7 @@ save/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=1
can mode ignore
*** Running test: bn_scat2grid_bin.jnl
-! bn_scat2grid_bin.jnl
+[?1034h! bn_scat2grid_bin.jnl
! Tests of scat2grid_bin and scat2grid_nbin functions.
! define some variables (as in bench_gridding)
@@ -61909,7 +62070,7 @@ can axis tout
can axis tin
*** Running test: bn_axis_dir_symbols.jnl
-! bn_axis_dir_symbols.jnl
+[?1034h! bn_axis_dir_symbols.jnl
! 5/2010
!
! For LAS:
@@ -61935,7 +62096,7 @@ shade/x=180 sst; show sym ax*; can sym ax*
AX_HORIZ = "T"
AX_VERT = "Y"
*** Running test: bn663_bug_fixes.jnl
-! bn663_bug_fixes.jnl
+[?1034h! bn663_bug_fixes.jnl
! Fixes that go into v6.63 release
@@ -61970,7 +62131,7 @@ SHADE/L=1/X=60:70/Y=40:50/LEV=v sst
FILL/L=2/X=60:70/Y=40:50/LEV=v sst
*** Running test: bn_set_axis_regular.jnl
-! bn_set_axis_regular.jnl
+[?1034h! bn_set_axis_regular.jnl
! Karl Smith, 5/2010
! tests for SET AXIS /REGULAR
@@ -62243,7 +62404,7 @@ show grid
normal F
*** Running test: bn_set_cancel_redirect.jnl
-! bn_set_cancel_redirect.jnl
+[?1034h! bn_set_cancel_redirect.jnl
! Karl Smith, 5/2010
! test for SET REDIRECT and CANCEL REDIRECT
@@ -62605,7 +62766,7 @@ list contents
2 / 2:" e.g. yes? GO filename"
3 / 3:" "
4 / 4:" Use "GO/HELP filename" to read documentation in the file to be executed."
- 5 / 5:" *** NOTE: Axis is already regular: MYAXIS"
+ 5 / 5:" *** NOTE: Axis is already regular: MYAXIS"
6 / 6:" **ERROR: variable unknown or not in data set: GARBAGE"
7 / 7:"show grid garbage"
cancel var contents
@@ -62691,9 +62852,9 @@ list contents
VARIABLE : { SPAWN:"cat redirect_journal.txt" }
SUBSET : 47 points (X)
1 / 1:" ! NOAA/PMEL TMAP"
- 2 / 2:" ! FERRET v6.93 (PyFerret 1.1.0)"
- 3 / 3:" ! Linux 2.6.18-398.el5 - 11/05/14"
- 4 / 4:" ! 5-Nov-14 16:41 "
+ 2 / 2:" ! FERRET v6.96 (PyFerret 1.2)"
+ 3 / 3:" ! Linux 2.6.32-573.7.1.el6.x86_64 - 11/19/15"
+ 4 / 4:" ! 19-Nov-15 12:06 "
5 / 5:""
6 / 6:"! "
7 / 7:"!! --- 22. produce some output to stdout and stderr"
@@ -62745,7 +62906,7 @@ cancel grid mygrid
!!! NOTE: journal mode is now turned off !!!
*** Running test: bn_min_max_smoothers.jnl
-! bn_min_max_smoothers.jnl
+[?1034h! bn_min_max_smoothers.jnl
! New transforms @SMN and @SMX, smoothers based on the
! min and max of the data in the window.
sh trans
@@ -62769,20 +62930,21 @@ variable transforms e.g.SST[T=1-jan:15-mar at DDC]
@SBN binomial smoothed @SMN minimum smoothed
@SWL Welch smoothed @STD standard deviation
@SHN Hanning smoothed @WGT weights for avg,int
- @SPZ Parzen smoothed
+ @SPZ Parzen smoothed @SPX box smooth w/missing
regridding transforms e.g.SST[GX=x5deg at AVE]
code description code description
---- ----------- ---- -----------
- @LIN lin. interp. @MOD modulo ave
- @AVE box avgd @MODVAR modulo var
- @XACT exact match @MODNGD # gd mod pts
- @ASN index assn @MODNBD #bad mod pts
- @VAR variance @MODSUM modulo sum
- @MIN minimum @MODMIN modulo min
- @MAX maximum @MODMAX modulo max
- @SUM sum @NRST nearst coord
- @NGD # gd pts
+ @LIN lin. interp. @MODVAR modulo var
+ @AVE area-wgtd avgd @MODNGD # gd mod pts
+ @XACT exact match @MODNBD #bad mod pts
+ @ASN index assn @MODSUM modulo sum
+ @VAR variance @MODMIN modulo min
+ @MIN minimum @MODMAX modulo max
+ @MAX maximum @NRST nearst coord
+ @SUM area-wgtd sum @BIN unwgtd avg
+ @NGD #gd pts, area wgtd @NBIN #good in bin
+ @MOD modulo ave
auxiliary varible regridding transforms e.g.TEMP[GZ(depth)=zax at AVE]
code description code description
@@ -63032,7 +63194,7 @@ list/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
95 / 10: 23.54 24.51 24.51 23.54
*** Running test: bn_vector_symbols.jnl
-! bn_vector_symbols.jnl
+[?1034h! bn_vector_symbols.jnl
! ACM 7/16/21010 Ferret V6.6.3
!
! On any vector plot command, define symbols
@@ -63077,7 +63239,7 @@ VECTOR/NOLAB/KEY/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=6 i/j,j/i
VECTOR/OVER/KEY/NOLAB/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=4 i/j,j/i
*** Running test: bn_variance_large.jnl
-! bn_variance_large.jnl
+[?1034h! bn_variance_large.jnl
! Previous to v6.6.4, these returned messages **too big**
USE coads_climatology
@@ -63123,7 +63285,7 @@ SHADE/L=1/LEV=v huge
CANCEL SYMBOL lev*
*** Running test: bn_labnum_calendar.jnl
-! bn_labnum_calendar.jn.
+[?1034h! bn_labnum_calendar.jn.
! Define new symbol, when a Calendar label is on
! the plot, pointing to its ppl label number.
@@ -63141,7 +63303,7 @@ sh sym lab($labnum_calend)
LAB4 = "CALENDAR: NOLEAP"
*** Running test: bn665_bug_fixes.jnl
-! bn65_bug_fixes.jnl
+[?1034h! bn65_bug_fixes.jnl
! test various fixes that went into version 6.6.5
! 11/2010 ACM
!
@@ -63495,7 +63657,7 @@ list tax_year(a,a)
JUL-0005 / 6:"01-JUL-0005"
*** Running test: bn_floatstr.jnl
-! bn_floatstr.jnl
+[?1034h! bn_floatstr.jnl
! testing new function to convert floating-point
! variables to strings.
@@ -63616,7 +63778,7 @@ LIST/X=165W:135W/Y=-50/L=1 STRLEN(var)
137W / 102: 0.000
135W / 103: 0.000
*** Running test: bn67_bug_fixes.jnl
-! bn67_bug_fixes.jnl
+[?1034h! bn67_bug_fixes.jnl
! test various fixes that went into version 6.7
! 2/2011 ACM
@@ -63780,8 +63942,7 @@ sh dat/att
. history CHAR 28 T FERRET V6.7 (beta) 25-Mar-11
Conventions CHAR 6 F CF-1.0
nco_input_file_nINT 1 F 1000
- nco_input_file_lCHAR 2048 F
- b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2. [...]
+ nco_input_file_lCHAR 2760 F b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.00 [...]
(LON273_289) DOUBLE long_name CHAR 9 T longitude
units CHAR 12 T degrees_east
@@ -63822,7 +63983,7 @@ set mode ignore
! setting too large
set mode desperate `9999999999`
- !-> set mode desperate 1.E+10
+ !-> set mode desperate 9999999999.000000
show mode desperate
MODE STATE ARGUMENT
DESPERATE CANCELLED 2560000
@@ -63837,10 +63998,10 @@ show mode desperate
! Previously couldnt handle a floating point
! input. Now we can.
set mode desperate `96 * 1024 * 1024`
- !-> set mode desperate 1.006633E+08
+ !-> set mode desperate 100663296.0000000
show mode desperate
MODE STATE ARGUMENT
- DESPERATE SET 100663300
+ DESPERATE SET 100663296
can mode ignore
GO bn_reset
@@ -63962,11 +64123,10 @@ sh dat
name title I J K L M N
TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
TEMP_MM TEMP - TEMPAVE 1:18 1:22 1:10 1:25 ... ...
- (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
*** Running test: bn_NaN_note.jnl
-! bn_NaN_note.jnl
+[?1034h! bn_NaN_note.jnl
! Ferret v6.7 2/2011
! The message about no missing flags, and assuming NaN,
! is issued only when MODE DIAGNOSTIC is turned on.
@@ -63983,7 +64143,7 @@ SET MODE diag
USE test0
CANCEL MODE diag
*** Running test: bn671_bug_fixes.jnl
-! bn671_bug_fixes.jnl
+[?1034h! bn671_bug_fixes.jnl
! test various fixes that went into version 6.71
! 4/2011 ACM
@@ -64045,12 +64205,12 @@ list/L=15:20 tax_month(t[gt=tvar],tvar), tax_yearfrac(t[gt=tvar],tvar)
Column 1: TAX_MONTH(T[GT=TVAR],TVAR)
Column 2: TAX_YEARFRAC(T[GT=TVAR],TVAR)
(C001,V002) (C001,V005)
-17-MAR / 15: 3.000 0.2082
-16-APR / 16: 4.000 0.2904
-17-MAY / 17: 5.000 0.3753
-16-JUN / 18: 6.000 0.4575
-17-JUL / 19: 7.000 0.5425
-16-AUG / 20: 8.000 0.6247
+17-MAR / 15: 3.000 0.2092
+16-APR / 16: 4.000 0.2926
+17-MAY / 17: 5.000 0.3760
+16-JUN / 18: 6.000 0.4594
+17-JUL / 19: 7.000 0.5428
+16-AUG / 20: 8.000 0.6262
! the following is an error for a modulo time axis
list/L=15:20 tax_year(t[gt=tvar],tvar)
list tax_units(tvar)
@@ -64095,7 +64255,6 @@ sh dat
name title I J K L M N
TEMP TEMPERATURE 1:18 1:22 1:10 1:25 ... ...
TEMP_MM TEMP - TEMPAVE 1:18 1:22 1:10 1:25 ... ...
- (T=14-AUG-1982 11:00:13-JAN-1983 13:00)
GO bn_reset
@@ -64274,7 +64433,7 @@ list var
390 / 10: ....
400 / 11: ....
*** Running test: bn68_bug_fixes.jnl
-! bn68_bug_fixes.jnl
+[?1034h! bn68_bug_fixes.jnl
! test various fixes that went into version 6.8
!
GO bn_reset
@@ -64487,8 +64646,8 @@ list/l=1:7 TAX_yearfrac(t[gt=var], var)
01-JAN-2010 00:00:10 / 3: 0.002740
01-JAN-2010 00:00:15 / 4: 0.002740
01-JAN-2010 00:00:20 / 5: 0.002740
- 01-JAN-2010 00:00:25 / 6: 0.002740
- 01-JAN-2010 00:00:30 / 7: 0.002740
+ 01-JAN-2010 00:00:25 / 6: 0.002741
+ 01-JAN-2010 00:00:30 / 7: 0.002741
! This example from Patrick B. Output of TAX_dayfrac repeats.
! We need to just return an error mesage. Cant represent 2.5 years
@@ -64976,7 +65135,7 @@ list x[gx=a[d=1],i=1:3]
1 / 2: 1.000
2 / 3: 2.000
*** Running test: bn_ifv.jnl
-! bn_ifv.jnl
+[?1034h! bn_ifv.jnl
! test IFV IfValid masking for a variety of combos
@@ -65111,7 +65270,7 @@ list IFV strings EQ "a" THEN "" ELSE strings
2 / 2:"b"
3 / 3:""
*** Running test: bn_randu2_randn2.jnl
-! Test randu2 and randn2 with newer random-number algorithm.
+[?1034h! Test randu2 and randn2 with newer random-number algorithm.
! 9/2011 acm
! Note that most of these results will differe from one
! run of the benchmarks to the next.
@@ -65127,132 +65286,132 @@ can mode ver
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.504
-randu2_randn2 0.458
-randu2_randn2 0.703
-randu2_randn2 0.525
-randu2_randn2 0.621
+randu2_randn2 0.086
+randu2_randn2 0.198
+randu2_randn2 0.798
+randu2_randn2 0.030
+randu2_randn2 0.779
VARIABLE : RANDU2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.252
-randu2_randn2 0.687
-randu2_randn2 0.408
-randu2_randn2 0.233
-randu2_randn2 0.062
+randu2_randn2 0.914
+randu2_randn2 0.232
+randu2_randn2 0.331
+randu2_randn2 0.297
+randu2_randn2 0.096
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.859
-randu2_randn2 0.974
-randu2_randn2 0.676
-randu2_randn2 0.288
-randu2_randn2 0.453
-randu2_randn2 0.247
+randu2_randn2 0.342
+randu2_randn2 0.952
+randu2_randn2 0.373
+randu2_randn2 0.186
+randu2_randn2 0.390
+randu2_randn2 0.001
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.860
-randu2_randn2 0.919
-randu2_randn2 0.914
-randu2_randn2 0.940
-randu2_randn2 0.169
-randu2_randn2 0.241
+randu2_randn2 0.376
+randu2_randn2 0.988
+randu2_randn2 0.561
+randu2_randn2 0.203
+randu2_randn2 0.715
+randu2_randn2 0.317
VARIABLE : RANDU2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.343
-randu2_randn2 0.598
-randu2_randn2 0.888
-randu2_randn2 0.608
-randu2_randn2 0.446
-randu2_randn2 0.900
+randu2_randn2 0.302
+randu2_randn2 0.380
+randu2_randn2 0.926
+randu2_randn2 0.672
+randu2_randn2 0.238
+randu2_randn2 0.638
VARIABLE : RANDU2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.343
-randu2_randn2 0.598
-randu2_randn2 0.888
-randu2_randn2 0.608
-randu2_randn2 0.446
-randu2_randn2 0.900
+randu2_randn2 0.302
+randu2_randn2 0.380
+randu2_randn2 0.926
+randu2_randn2 0.672
+randu2_randn2 0.238
+randu2_randn2 0.638
VARIABLE : RANDN2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.823
-randu2_randn2 0.797
-randu2_randn2 -0.547
-randu2_randn2 -0.022
-randu2_randn2 0.989
+randu2_randn2 0.119
+randu2_randn2 0.011
+randu2_randn2 -0.739
+randu2_randn2 1.723
+randu2_randn2 0.479
VARIABLE : RANDN2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 -1.026
-randu2_randn2 0.024
-randu2_randn2 -0.560
-randu2_randn2 0.330
-randu2_randn2 -0.057
+randu2_randn2 -0.902
+randu2_randn2 0.150
+randu2_randn2 0.389
+randu2_randn2 0.418
+randu2_randn2 -2.675
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.205
-randu2_randn2 0.576
-randu2_randn2 -1.683
-randu2_randn2 0.867
-randu2_randn2 -0.172
-randu2_randn2 0.518
+randu2_randn2 0.072
+randu2_randn2 0.581
+randu2_randn2 0.008
+randu2_randn2 1.515
+randu2_randn2 -0.506
+randu2_randn2 1.005
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 -1.766
-randu2_randn2 0.041
-randu2_randn2 -1.355
-randu2_randn2 2.133
-randu2_randn2 -1.568
-randu2_randn2 1.024
+randu2_randn2 0.130
+randu2_randn2 -1.730
+randu2_randn2 -0.080
+randu2_randn2 0.196
+randu2_randn2 -0.846
+randu2_randn2 0.180
VARIABLE : RANDN2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 1.052
-randu2_randn2 -1.694
-randu2_randn2 0.249
-randu2_randn2 0.895
-randu2_randn2 0.919
-randu2_randn2 -0.124
+randu2_randn2 -0.906
+randu2_randn2 -1.503
+randu2_randn2 0.217
+randu2_randn2 0.537
+randu2_randn2 0.674
+randu2_randn2 -1.279
VARIABLE : RANDN2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 1.052
-randu2_randn2 -1.694
-randu2_randn2 0.249
-randu2_randn2 0.895
-randu2_randn2 0.919
-randu2_randn2 -0.124
+randu2_randn2 -0.906
+randu2_randn2 -1.503
+randu2_randn2 0.217
+randu2_randn2 0.537
+randu2_randn2 0.674
+randu2_randn2 -1.279
Z: 1 to 140
Column 1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
Column 2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
Column 3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2 1.989 1.989 0.710
-randu2_randn2 0.955 0.955 0.710
-randu2_randn2 0.710 0.710 -0.049
-randu2_randn2 -0.137 -0.137 0.437
-randu2_randn2 -0.462 -0.462 0.437
-randu2_randn2 -0.551 -0.462 0.437
-randu2_randn2 -0.049 -0.049 0.437
-randu2_randn2 0.437 0.437 0.437
+randu2_randn2 1.654 1.756 0.694
+randu2_randn2 1.756 1.654 0.694
+randu2_randn2 0.694 0.694 0.211
+randu2_randn2 0.211 0.211 0.286
+randu2_randn2 -0.771 -0.536 0.286
+randu2_randn2 -0.536 -0.550 0.286
+randu2_randn2 -0.550 -0.536 0.286
+randu2_randn2 0.286 0.286 0.286
*** Running test: bn_axis_cf.jnl
-! Ticket 1792: Write axes with CF-compliant units
+[?1034h! Ticket 1792: Write axes with CF-compliant units
! and with standard name attributes for geophysical attrs.
@@ -65318,7 +65477,7 @@ sp ncdump -h a.nc >> all_ncdump.out
*** Running test: bn_repeated_coords.jnl
-! Test the use of micro-adjusting on NetCDF read
+[?1034h! Test the use of micro-adjusting on NetCDF read
! when coordinates are repeated.
! See ticket 1910
@@ -65390,7 +65549,7 @@ list aa[L=1:71:10]
01-JAN-2001 01:10:00 / 8: 0.6997
*** Running test: bn_xml_header.jnl
-! bn_xml_header.jnl
+[?1034h! bn_xml_header.jnl
! run the exact script that LAS uses to make XML header files
go xml_header_script.jnl xml_use_coads.jnl xml_out.xml
@@ -65611,7 +65770,7 @@ sp grep -A5 dimension xml_out_string.xml
</dimensions>
</data>
*** Running test: bn_eof_simple.jnl
-! bn_eof_simple
+[?1034h! bn_eof_simple
! Define a simple function with two known functions.
! decompose with EOFs.
! 7/2012
@@ -65679,7 +65838,7 @@ list eofsvd_space(spacetime)
1 2
1 2
1 / 1: 0.0000 -0.7071
- 2 / 2: -0.7071 0.0000
+ 2 / 2: -0.7071 -0.0000
show func eofsvd_tfunc
EOFSVD_TFUNC(A)
@@ -65692,7 +65851,7 @@ list eofsvd_tfunc(spacetime)
SUBSET : 2 by 240 points (X-T)
1 2
1 2
- 0 / 1: 0.000 -1.414
+ 0 / 1: -0.000 -1.414
0.25 / 2: -0.185 -1.402
0.5 / 3: -0.366 -1.366
0.75 / 4: -0.541 -1.307
@@ -65704,7 +65863,7 @@ list eofsvd_tfunc(spacetime)
2.25 / 10: -1.307 -0.541
2.5 / 11: -1.366 -0.366
2.75 / 12: -1.402 -0.185
- 3 / 13: -1.414 0.000
+ 3 / 13: -1.414 -0.000
3.25 / 14: -1.402 0.185
3.5 / 15: -1.366 0.366
3.75 / 16: -1.307 0.541
@@ -65716,7 +65875,7 @@ list eofsvd_tfunc(spacetime)
5.25 / 22: -0.541 1.307
5.5 / 23: -0.366 1.366
5.75 / 24: -0.185 1.402
- 6 / 25: 0.000 1.414
+ 6 / 25: -0.000 1.414
6.25 / 26: 0.185 1.402
6.5 / 27: 0.366 1.366
6.75 / 28: 0.541 1.307
@@ -65752,7 +65911,7 @@ list eofsvd_tfunc(spacetime)
14.25 / 58: -1.307 -0.541
14.5 / 59: -1.366 -0.366
14.75 / 60: -1.402 -0.185
- 15 / 61: -1.414 0.000
+ 15 / 61: -1.414 -0.000
15.25 / 62: -1.402 0.185
15.5 / 63: -1.366 0.366
15.75 / 64: -1.307 0.541
@@ -65764,7 +65923,7 @@ list eofsvd_tfunc(spacetime)
17.25 / 70: -0.541 1.307
17.5 / 71: -0.366 1.366
17.75 / 72: -0.185 1.402
- 18 / 73: 0.000 1.414
+ 18 / 73: -0.000 1.414
18.25 / 74: 0.185 1.402
18.5 / 75: 0.366 1.366
18.75 / 76: 0.541 1.307
@@ -65800,7 +65959,7 @@ list eofsvd_tfunc(spacetime)
26.25 / 106: -1.307 -0.541
26.5 / 107: -1.366 -0.366
26.75 / 108: -1.402 -0.185
- 27 / 109: -1.414 0.000
+ 27 / 109: -1.414 -0.000
27.25 / 110: -1.402 0.185
27.5 / 111: -1.366 0.366
27.75 / 112: -1.307 0.541
@@ -65812,7 +65971,7 @@ list eofsvd_tfunc(spacetime)
29.25 / 118: -0.541 1.307
29.5 / 119: -0.366 1.366
29.75 / 120: -0.185 1.402
- 30 / 121: 0.000 1.414
+ 30 / 121: -0.000 1.414
30.25 / 122: 0.185 1.402
30.5 / 123: 0.366 1.366
30.75 / 124: 0.541 1.307
@@ -65824,7 +65983,7 @@ list eofsvd_tfunc(spacetime)
32.25 / 130: 1.307 0.541
32.5 / 131: 1.366 0.366
32.75 / 132: 1.402 0.185
- 33 / 133: 1.414 0.000
+ 33 / 133: 1.414 -0.000
33.25 / 134: 1.402 -0.185
33.5 / 135: 1.366 -0.366
33.75 / 136: 1.307 -0.541
@@ -65848,7 +66007,7 @@ list eofsvd_tfunc(spacetime)
38.25 / 154: -1.307 -0.541
38.5 / 155: -1.366 -0.366
38.75 / 156: -1.402 -0.185
- 39 / 157: -1.414 0.000
+ 39 / 157: -1.414 -0.000
39.25 / 158: -1.402 0.185
39.5 / 159: -1.366 0.366
39.75 / 160: -1.307 0.541
@@ -65860,7 +66019,7 @@ list eofsvd_tfunc(spacetime)
41.25 / 166: -0.541 1.307
41.5 / 167: -0.366 1.366
41.75 / 168: -0.185 1.402
- 42 / 169: 0.000 1.414
+ 42 / 169: -0.000 1.414
42.25 / 170: 0.185 1.402
42.5 / 171: 0.366 1.366
42.75 / 172: 0.541 1.307
@@ -65872,7 +66031,7 @@ list eofsvd_tfunc(spacetime)
44.25 / 178: 1.307 0.541
44.5 / 179: 1.366 0.366
44.75 / 180: 1.402 0.185
- 45 / 181: 1.414 0.000
+ 45 / 181: 1.414 -0.000
45.25 / 182: 1.402 -0.185
45.5 / 183: 1.366 -0.366
45.75 / 184: 1.307 -0.541
@@ -65896,7 +66055,7 @@ list eofsvd_tfunc(spacetime)
50.25 / 202: -1.307 -0.541
50.5 / 203: -1.366 -0.366
50.75 / 204: -1.402 -0.185
- 51 / 205: -1.414 0.000
+ 51 / 205: -1.414 -0.000
51.25 / 206: -1.402 0.185
51.5 / 207: -1.366 0.366
51.75 / 208: -1.307 0.541
@@ -65908,7 +66067,7 @@ list eofsvd_tfunc(spacetime)
53.25 / 214: -0.541 1.307
53.5 / 215: -0.366 1.366
53.75 / 216: -0.185 1.402
- 54 / 217: 0.000 1.414
+ 54 / 217: -0.000 1.414
54.25 / 218: 0.185 1.402
54.5 / 219: 0.366 1.366
54.75 / 220: 0.541 1.307
@@ -65963,14 +66122,14 @@ list eofsvd_space(space12)
1 2 3
1 2 3
1 / 1: 0.0000 -0.7071 ....
- 2 / 2: -0.7071 0.0000 ....
+ 2 / 2: -0.7071 -0.0000 ....
3 / 3: .... .... ....
list eofsvd_tfunc(space12)
VARIABLE : EOFSVD_TFUNC(SPACE12)
SUBSET : 3 by 240 points (X-T)
1 2 3
1 2 3
- 0 / 1: 0.000 -1.414 ....
+ 0 / 1: -0.000 -1.414 ....
0.25 / 2: -0.185 -1.402 ....
0.5 / 3: -0.366 -1.366 ....
0.75 / 4: -0.541 -1.307 ....
@@ -65982,7 +66141,7 @@ list eofsvd_tfunc(space12)
2.25 / 10: -1.307 -0.541 ....
2.5 / 11: -1.366 -0.366 ....
2.75 / 12: -1.402 -0.185 ....
- 3 / 13: -1.414 0.000 ....
+ 3 / 13: -1.414 -0.000 ....
3.25 / 14: -1.402 0.185 ....
3.5 / 15: -1.366 0.366 ....
3.75 / 16: -1.307 0.541 ....
@@ -65994,7 +66153,7 @@ list eofsvd_tfunc(space12)
5.25 / 22: -0.541 1.307 ....
5.5 / 23: -0.366 1.366 ....
5.75 / 24: -0.185 1.402 ....
- 6 / 25: 0.000 1.414 ....
+ 6 / 25: -0.000 1.414 ....
6.25 / 26: 0.185 1.402 ....
6.5 / 27: 0.366 1.366 ....
6.75 / 28: 0.541 1.307 ....
@@ -66030,7 +66189,7 @@ list eofsvd_tfunc(space12)
14.25 / 58: -1.307 -0.541 ....
14.5 / 59: -1.366 -0.366 ....
14.75 / 60: -1.402 -0.185 ....
- 15 / 61: -1.414 0.000 ....
+ 15 / 61: -1.414 -0.000 ....
15.25 / 62: -1.402 0.185 ....
15.5 / 63: -1.366 0.366 ....
15.75 / 64: -1.307 0.541 ....
@@ -66042,7 +66201,7 @@ list eofsvd_tfunc(space12)
17.25 / 70: -0.541 1.307 ....
17.5 / 71: -0.366 1.366 ....
17.75 / 72: -0.185 1.402 ....
- 18 / 73: 0.000 1.414 ....
+ 18 / 73: -0.000 1.414 ....
18.25 / 74: 0.185 1.402 ....
18.5 / 75: 0.366 1.366 ....
18.75 / 76: 0.541 1.307 ....
@@ -66078,7 +66237,7 @@ list eofsvd_tfunc(space12)
26.25 / 106: -1.307 -0.541 ....
26.5 / 107: -1.366 -0.366 ....
26.75 / 108: -1.402 -0.185 ....
- 27 / 109: -1.414 0.000 ....
+ 27 / 109: -1.414 -0.000 ....
27.25 / 110: -1.402 0.185 ....
27.5 / 111: -1.366 0.366 ....
27.75 / 112: -1.307 0.541 ....
@@ -66090,7 +66249,7 @@ list eofsvd_tfunc(space12)
29.25 / 118: -0.541 1.307 ....
29.5 / 119: -0.366 1.366 ....
29.75 / 120: -0.185 1.402 ....
- 30 / 121: 0.000 1.414 ....
+ 30 / 121: -0.000 1.414 ....
30.25 / 122: 0.185 1.402 ....
30.5 / 123: 0.366 1.366 ....
30.75 / 124: 0.541 1.307 ....
@@ -66102,7 +66261,7 @@ list eofsvd_tfunc(space12)
32.25 / 130: 1.307 0.541 ....
32.5 / 131: 1.366 0.366 ....
32.75 / 132: 1.402 0.185 ....
- 33 / 133: 1.414 0.000 ....
+ 33 / 133: 1.414 -0.000 ....
33.25 / 134: 1.402 -0.185 ....
33.5 / 135: 1.366 -0.366 ....
33.75 / 136: 1.307 -0.541 ....
@@ -66126,7 +66285,7 @@ list eofsvd_tfunc(space12)
38.25 / 154: -1.307 -0.541 ....
38.5 / 155: -1.366 -0.366 ....
38.75 / 156: -1.402 -0.185 ....
- 39 / 157: -1.414 0.000 ....
+ 39 / 157: -1.414 -0.000 ....
39.25 / 158: -1.402 0.185 ....
39.5 / 159: -1.366 0.366 ....
39.75 / 160: -1.307 0.541 ....
@@ -66138,7 +66297,7 @@ list eofsvd_tfunc(space12)
41.25 / 166: -0.541 1.307 ....
41.5 / 167: -0.366 1.366 ....
41.75 / 168: -0.185 1.402 ....
- 42 / 169: 0.000 1.414 ....
+ 42 / 169: -0.000 1.414 ....
42.25 / 170: 0.185 1.402 ....
42.5 / 171: 0.366 1.366 ....
42.75 / 172: 0.541 1.307 ....
@@ -66150,7 +66309,7 @@ list eofsvd_tfunc(space12)
44.25 / 178: 1.307 0.541 ....
44.5 / 179: 1.366 0.366 ....
44.75 / 180: 1.402 0.185 ....
- 45 / 181: 1.414 0.000 ....
+ 45 / 181: 1.414 -0.000 ....
45.25 / 182: 1.402 -0.185 ....
45.5 / 183: 1.366 -0.366 ....
45.75 / 184: 1.307 -0.541 ....
@@ -66174,7 +66333,7 @@ list eofsvd_tfunc(space12)
50.25 / 202: -1.307 -0.541 ....
50.5 / 203: -1.366 -0.366 ....
50.75 / 204: -1.402 -0.185 ....
- 51 / 205: -1.414 0.000 ....
+ 51 / 205: -1.414 -0.000 ....
51.25 / 206: -1.402 0.185 ....
51.5 / 207: -1.366 0.366 ....
51.75 / 208: -1.307 0.541 ....
@@ -66186,7 +66345,7 @@ list eofsvd_tfunc(space12)
53.25 / 214: -0.541 1.307 ....
53.5 / 215: -0.366 1.366 ....
53.75 / 216: -0.185 1.402 ....
- 54 / 217: 0.000 1.414 ....
+ 54 / 217: -0.000 1.414 ....
54.25 / 218: 0.185 1.402 ....
54.5 / 219: 0.366 1.366 ....
54.75 / 220: 0.541 1.307 ....
@@ -66233,7 +66392,7 @@ can axis xaxis
exit/script
*** Running test: bn_eof_simple2.jnl
-! bn_eof_simple2
+[?1034h! bn_eof_simple2
! Define a simple function with four known functions, two of which are degenerate.
! decompose with EOFs.
! 7/2012
@@ -66593,7 +66752,7 @@ can axis xaxis
exit/script
*** Running test: bn_interpolate_6d.jnl
-! bn_interpolate_6d.JNL
+[?1034h! bn_interpolate_6d.JNL
! benchmark interpolation along various axes
! including the E and F axis
@@ -66846,7 +67005,7 @@ LIST v[@ypt]
LIST v[@ept]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 by 3 points (X-Y-F)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
---- N:1 F: 1
@@ -66864,7 +67023,7 @@ LIST v[@ept]
LIST v[@fpt]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 by 3 points (X-Y-E)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
---- M:1 E: 1
@@ -66884,8 +67043,8 @@ LIST v[@fpt]
LIST v[@ept, at fpt] !XY
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-Y)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -66895,7 +67054,7 @@ LIST v[@ypt, at fpt] !XE
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-E)
Y : 1.05 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -66905,7 +67064,7 @@ LIST v[@ypt, at ept] !XF
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (X-F)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1113.00 1114.00
@@ -66915,7 +67074,7 @@ LIST v[@xpt, at fpt] !YE
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (Y-E)
X : 1.5 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1122.00 1132.00
@@ -66925,7 +67084,7 @@ LIST v[@xpt, at ept] !YF
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 by 3 points (Y-F)
X : 1.5 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1 / 1: 1112.00 1122.00 1132.00
@@ -66948,7 +67107,7 @@ LIST/ORDER=F v[@xpt, at ypt, at ept] ! F
SUBSET : 3 points (F)
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
+ E : 1 (interpolated)
1 2 3
1 2 3
1112.50 2112.50 3112.50
@@ -66957,7 +67116,7 @@ LIST/ORDER=E v[@xpt, at ypt, at fpt] ! E
SUBSET : 3 points (E)
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1212.50 1312.50
@@ -66965,8 +67124,8 @@ LIST/ORDER=Y v[@xpt, at ept, at fpt] ! Y
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 points (Y)
X : 1.5 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1122.50 1132.50
@@ -66974,8 +67133,8 @@ LIST/ORDER=X v[@ypt, at ept, at fpt] ! X
VARIABLE : X + 10*Y + 100*_E + 1000*_F
SUBSET : 3 points (X)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1 2 3
1 2 3
1112.50 1113.50 1114.50
@@ -66985,11 +67144,11 @@ LIST v[@xpt, at ypt, at ept, at fpt]
VARIABLE : X + 10*Y + 100*_E + 1000*_F
X : 1.5 (interpolated)
Y : 1.05 (interpolated)
- E : 1.00499999999999989 (interpolated)
- F : 1.000499999999999945 (interpolated)
+ E : 1 (interpolated)
+ F : 1 (interpolated)
1113.00
*** Running test: bn_regrid_6d.jnl
-! bn_regrid_6d.jnl
+[?1034h! bn_regrid_6d.jnl
! version of bn_regrid, using E and F directions.
set mode latit_label -4
@@ -67056,7 +67215,7 @@ list veven
SUBSET : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
4 6 8
2 3 4
- ---- N:2 F: 05-JAN-1980 00:00:00
+ ---- N:2 F: 1980
---- M:2 E: 4
4 / 2: 2222. 3222. 4222.
6 / 3: 2322. 3322. 4322.
@@ -67069,7 +67228,7 @@ list veven
4 / 2: 2242. 3242. 4242.
6 / 3: 2342. 3342. 4342.
8 / 4: 2442. 3442. 4442.
- ---- N:3 F: 07-JAN-1980 00:00:00
+ ---- N:3 F: 1980
---- M:2 E: 4
4 / 2: 2223. 3223. 4223.
6 / 3: 2323. 3323. 4323.
@@ -67082,7 +67241,7 @@ list veven
4 / 2: 2243. 3243. 4243.
6 / 3: 2343. 3343. 4343.
8 / 4: 2443. 3443. 4443.
- ---- N:4 F: 09-JAN-1980 00:00:00
+ ---- N:4 F: 1980
---- M:2 E: 4
4 / 2: 2224. 3224. 4224.
6 / 3: 2324. 3324. 4324.
@@ -67100,7 +67259,7 @@ list v1234
SUBSET : 3 by 3 by 3 by 3 points (X-Y-E-FORECAST)
5 7 9
3 4 5
- ---- N:3 F: 06-JAN-1980 00:00:00
+ ---- N:3 F: 1980
---- M:3 E: 5
5 / 3: 2778. 3778. 4778.
7 / 4: 2878. 3878. 4878.
@@ -67113,7 +67272,7 @@ list v1234
5 / 3: 2798. 3798. 4798.
7 / 4: 2898. 3898. 4898.
9 / 5: 2998. 3998. 4998.
- ---- N:4 F: 08-JAN-1980 00:00:00
+ ---- N:4 F: 1980
---- M:3 E: 5
5 / 3: 2779. 3779. 4779.
7 / 4: 2879. 3879. 4879.
@@ -67126,7 +67285,7 @@ list v1234
5 / 3: 2799. 3799. 4799.
7 / 4: 2899. 3899. 4899.
9 / 5: 2999. 3999. 4999.
- ---- N:5 F: 10-JAN-1980 00:00:00
+ ---- N:5 F: 1980
---- M:3 E: 5
5 / 3: 2780. 3780. 4780.
7 / 4: 2880. 3880. 4880.
@@ -67146,8 +67305,8 @@ stat veven
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67170,8 +67329,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67186,8 +67345,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67203,8 +67362,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67219,8 +67378,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67236,8 +67395,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67252,8 +67411,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67269,8 +67428,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67285,8 +67444,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67302,8 +67461,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67318,8 +67477,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67335,8 +67494,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67351,8 +67510,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67368,8 +67527,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67384,8 +67543,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67401,8 +67560,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67417,8 +67576,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67434,8 +67593,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67450,8 +67609,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67467,8 +67626,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67483,8 +67642,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67500,8 +67659,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67516,8 +67675,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67533,8 +67692,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67549,8 +67708,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67566,8 +67725,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67582,8 +67741,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67599,8 +67758,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67615,8 +67774,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67632,8 +67791,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67648,8 +67807,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67673,8 +67832,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67689,8 +67848,8 @@ stat v1[g=even]-veven, v1
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67706,8 +67865,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67722,8 +67881,8 @@ stat v2[g=even]-veven, v2
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67739,8 +67898,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67755,8 +67914,8 @@ stat v3[g=even]-veven, v3
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67772,8 +67931,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67788,8 +67947,8 @@ stat v4[g=even]-veven, v4
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67805,8 +67964,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67821,8 +67980,8 @@ stat v12[g=even]-veven, v12
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67838,8 +67997,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67854,8 +68013,8 @@ stat v13[g=even]-veven, v13
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67871,8 +68030,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67887,8 +68046,8 @@ stat v14[g=even]-veven, v14
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67904,8 +68063,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67920,8 +68079,8 @@ stat v23[g=even]-veven, v23
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67937,8 +68096,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67953,8 +68112,8 @@ stat v24[g=even]-veven, v24
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67970,8 +68129,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -67986,8 +68145,8 @@ stat v33[g=even]-veven, v33
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68003,8 +68162,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68019,8 +68178,8 @@ stat v234[g=even]-veven, v234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68036,8 +68195,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68052,8 +68211,8 @@ stat v134[g=even]-veven, v134
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68069,8 +68228,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68085,8 +68244,8 @@ stat v124[g=even]-veven, v124
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68102,8 +68261,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68118,8 +68277,8 @@ stat v123[g=even]-veven, v123
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68135,8 +68294,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68151,8 +68310,8 @@ stat v1234[g=even]-veven, v1234
Y: 4.01 to 8.99
Z: N/A
T: N/A
- E: 4.0099999999999998 to 8.9900000000000002
- FORECAST: 05-JAN-1980 00:14:24 to 09-JAN-1980 23:4
+ E: 4 to 9
+ FORECAST: 1980 to 1980
DATA SET: N/A
Total # of data points: 81 (3*3*1*1*3*3)
@@ -68364,7 +68523,7 @@ list a24[g=g48]-a48
07-JAN-1980 00 / 4: -438312.
*** Running test: bn_syntax_6d.jnl
-! bn_syntax_6d.JNL
+[?1034h! bn_syntax_6d.JNL
! - test syntax interpretation of Program FERRET 6D
! SET - SHOW - CANCEL DATA
@@ -68482,7 +68641,7 @@ cancel variables/all;\
currently SET data sets:
3.000
*** Running test: bn_expressions_6d.jnl
-! bn_expressions_6d.jnl
+[?1034h! bn_expressions_6d.jnl
! testing expressions syntax in E and F directions.
! Note pseudo-variables are _E,
@@ -68962,7 +69121,7 @@ LIST/n=5:7 FBOXLO, FBOXHI
6 / 6: 5.500 6.500
7 / 7: 6.500 7.500
*** Running test: bn_direction_fcns_6d.jnl
-! bn_direction_functions_6d
+[?1034h! bn_direction_functions_6d
! Tests of sort, sample, reverse, convolve, compress, and compess_by
! functions in the E and F directions.
@@ -69179,7 +69338,7 @@ list compressn_by(fsequence({10,20,30,40,50}),mask)
4 / 4: .... ....
5 / 5: .... ....
*** Running test: bn_regrid_transforms_6d.jnl
-! bn_regrid_transforms_6d.jnl
+[?1034h! bn_regrid_transforms_6d.jnl
! benchmark to test regridding transformations and syntax
! version of bn_regrid_transforms, using E and F directions.
@@ -69213,7 +69372,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
DEPTH (m): 5
TIME: 21-JAN-1982 16:00
E: 1 to 2
- FORECAST: 23-JAN-1982 00:00:00 to 24-JAN-1982 00:0
+ FORECAST: 1982 to 1982
DATA SET: ./gtsa056_1_ef.nc
Total # of data points: 120 (5*6*1*1*2*2)
@@ -69242,7 +69401,7 @@ LIST temp[g=g5day at ave]
TIME : 21-JAN-1982 16:00
129.5W 128.5W 127.5W 126.5W 125.5W
101 102 103 104 105
- ---- N:1 F: 23-JAN-1982 00:00:00
+ ---- N:1 F: 1982
---- M:1 E: 1
1.5N / 46: 32.35 32.37 32.56 32.97 33.45
1.17N / 45: 32.17 32.19 32.33 32.69 33.14
@@ -69257,7 +69416,7 @@ LIST temp[g=g5day at ave]
0.5N / 43: 37.93 37.90 37.91 38.09 38.43
0.17N / 42: 37.89 37.84 37.79 37.86 38.10
0.17S / 41: 37.95 37.86 37.77 37.74 37.87
- ---- N:2 F: 23-JAN-1982 20:00:00
+ ---- N:2 F: 1982
---- M:1 E: 1
1.5N / 46: 37.75 37.77 37.96 38.37 38.85
1.17N / 45: 37.57 37.59 37.73 38.09 38.54
@@ -69288,7 +69447,7 @@ LIST temp[g=g5day]
TIME : 21-JAN-1982 16:00
129.5W 128.5W 127.5W 126.5W 125.5W
101 102 103 104 105
- ---- N:1 F: 23-JAN-1982 00:00:00
+ ---- N:1 F: 1982
---- M:1 E: 1
1.5N / 46: 34.35 34.37 34.56 34.97 35.45
1.17N / 45: 34.17 34.19 34.33 34.69 35.14
@@ -69303,7 +69462,7 @@ LIST temp[g=g5day]
0.5N / 43: 39.93 39.90 39.91 40.09 40.43
0.17N / 42: 39.89 39.84 39.79 39.86 40.10
0.17S / 41: 39.95 39.86 39.77 39.74 39.87
- ---- N:2 F: 23-JAN-1982 20:00:00
+ ---- N:2 F: 1982
---- M:1 E: 1
1.5N / 46: 36.01 36.04 36.23 36.64 37.12
1.17N / 45: 35.84 35.85 36.00 36.36 36.80
@@ -69342,7 +69501,7 @@ plot temp
-DELETE TEMP M: 3 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 3 3 M: 1 2 N: 1 2
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME2 EAXIS FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
strip --> EX#1[Y=0 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
@@ -69351,7 +69510,7 @@ plot temp
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[Y=0 at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- doing --> TEMP[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
setting up plot
PPL plot 1 complete
plot/over temp[g=g5day]
@@ -69418,14 +69577,14 @@ plot temp
-DELETE TEMP M: 10 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME2 EAXIS FAXIS
- strip --> EX#1[F=23-JAN-198200:00:00 at ITP,D=1]
+ strip --> EX#1[F=1982 at ITP,D=1]
strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 7 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
reading TEMP M: 10 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
- doing --> TEMP[F=23-JAN-198200:00:00 at ITP,D=1]
+ doing --> TEMP[F=1982 at ITP,D=1]
setting up plot
PPL plot 5 complete
plot/over temp[g=g5day]
@@ -69942,8 +70101,8 @@ show grid
set mode/last diag
*** Running test: bn_aggregate_e.jnl
-! bn_aggregate_e.jnl
-! using the DEFINE ATTRIBUTE/E command
+[?1034h! bn_aggregate_e.jnl
+! using the DEFINE DATA/AGGREGATE/E command
! Datasets share sst, but only ens1 has airt.
set mode diag
@@ -69954,7 +70113,7 @@ define data/agg/title fourfiles = ens1, ens3, ens2, ens4
! The grid of SST is known.
show data fourfiles
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -70005,7 +70164,7 @@ define data/agg fourfiles = ens1, ens3, ens2, ens4
allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME NORMAL NORMAL
show data fourfiles
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
AIRT AIR TEMPERATURE 1:10 1:9 ... 1:12 1:4 ...
@@ -70111,7 +70270,7 @@ define data/agg windy = 1,2
! The grid of the aggregate variables with LET/D is known.
show data windy
currently SET data sets:
- 3> WINDY (default) Ferret-defined Ensemble dataset
+ 3> WINDY (default) Ferret-defined Ensemble aggregation
name title I J K L M N
UWND ZONAL WIND 1:30 1:30 ... 1:12 1:2 ...
VWND MERIDIONAL WIND 1:30 1:30 ... 1:12 1:2 ...
@@ -70144,7 +70303,7 @@ define data/agg windy = 2,1
! The grid of the aggregate variables with LET/D is known.
show data windy
currently SET data sets:
- 3> WINDY (default) Ferret-defined Ensemble dataset
+ 3> WINDY (default) Ferret-defined Ensemble aggregation
name title I J K L M N
UWND ZONAL WIND 1:30 1:30 ... 1:12 1:2 ...
VWND MERIDIONAL WIND 1:30 1:30 ... 1:12 1:2 ...
@@ -70191,7 +70350,8 @@ sh command define
DEFINE SYMBOL
DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
sh command show
SHOW/ALL
SHOW WINDOW/ALL
@@ -70203,7 +70363,7 @@ sh command show
/HIDDEN
SHOW MODE/ALL
SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/SIGMA
+ SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
/CURVILIN
SHOW COMMANDS/ALL
SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
@@ -70216,7 +70376,7 @@ sh command show
SHOW NCCACHE
SHOW GIFFILE
SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
- SHOW QUERIES/ALL
+ SHOW TEXT
use ens1, ens2, ens3, ens4
ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
@@ -70224,7 +70384,7 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
! should just show the ensemble set
sh dat
currently SET data sets:
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -70263,7 +70423,7 @@ sh dat/hidden
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 ... ...
- 5> FOURFILES (default) Ferret-defined Ensemble dataset
+ 5> FOURFILES (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -70306,7 +70466,7 @@ sh dat
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 ... ...
- 5> MY_ENS (default) Ferret-defined Ensemble dataset
+ 5> MY_ENS (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:2 ...
@@ -70335,7 +70495,7 @@ ensemble/HIDE/title="uvars in dset 2" my_ens = 1,2,3,4
! members hidden, showing only ensemble.
sh dat
currently SET data sets:
- 5> MY_ENS (default) Ferret-defined Ensemble dataset
+ 5> MY_ENS (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
@@ -70370,15 +70530,15 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
! Shows all the ensembles
sh dat
currently SET data sets:
- 5> FOURFILES Ferret-defined Ensemble dataset
+ 5> FOURFILES Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
- 6> SOME Ferret-defined Ensemble dataset
+ 6> SOME Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:2 ...
- 7> MORE (default) Ferret-defined Ensemble dataset
+ 7> MORE (default) Ferret-defined Ensemble aggregation
name title I J K L M N
SST SST_IN 1:10 1:9 ... 1:12 1:3 ...
@@ -70403,7 +70563,7 @@ sh dat
*** Running test: bn_6d_lab_mode.jnl
-! bn_6d_lab_mode.jnl
+[?1034h! bn_6d_lab_mode.jnl
!
! Tests of CANCEL MODE 6d_lab, writes SHOW and STAT output in classic 4D form.
!
@@ -70552,7 +70712,7 @@ can mode diag
! restore default setting
set mode 6d_lab
*** Running test: bn682_bug_fixes.jnl
-! bn682_bug_fixes.jnl
+[?1034h! bn682_bug_fixes.jnl
! test various fixes that went into version 6.82
! 8/2012 ACM
@@ -70601,7 +70761,7 @@ sho grid lon_c
normal F
*** Running test: bn683_bug_fixes.jnl
-! bn683_bug_fixes.jnl
+[?1034h! bn683_bug_fixes.jnl
! test various fixes that went into version 6.83
! 8/2012 ACM
@@ -70886,7 +71046,7 @@ list temp ! values should match those above.
set mode/last upcase_output
*** Running test: bn_outtype.jnl
-! bn_outtype
+[?1034h! bn_outtype
! Tests of output-type control:
! SET VAR/OUTTYPE
! SET LIST/OUTTYPE
@@ -70918,7 +71078,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -70973,7 +71133,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71017,7 +71177,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71061,7 +71221,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71098,7 +71258,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71136,7 +71296,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71203,7 +71363,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71252,7 +71412,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71313,7 +71473,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71354,7 +71514,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71395,7 +71555,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71436,7 +71596,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71474,7 +71634,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71511,7 +71671,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
! Go back to default setting.
can list/outtype
*** Running test: bn_ribbon_plot.jnl
-! bn_ribbon_plot.jnl
+[?1034h! bn_ribbon_plot.jnl
! Test color-line-by variable style of plots
show alias ribbon
@@ -71654,7 +71814,7 @@ RIBBON/vs/over/nolab/thick=3/sym=20/key/set xpts, ypts, var
ppl shakey,1,0
ppl ribbon/over
*** Running test: bn_descr_4digit.jnl
- ! bn_descr_4digit.jnl
+[?1034h ! bn_descr_4digit.jnl
! See ticket 1969: step files have 3- or 4-digit extensions
! coads_clim.999, coads_clim.1000, coads_clim.1001
@@ -71681,7 +71841,7 @@ list/x=180/y=0 sst
17-MAY-1900 / 5: 28.49
17-JUN-1900 / 6: 28.32
*** Running test: bn_axis_outtype.jnl
-! bn_axis_outtype.jnl
+[?1034h! bn_axis_outtype.jnl
! SET AXIS/OUTTYPE
! 23-Oct-2012
@@ -71702,7 +71862,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) FLOAT units CHAR 12 T degrees_east
@@ -71740,7 +71900,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) FLOAT units CHAR 12 T degrees_east
@@ -71787,7 +71947,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71831,7 +71991,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -71856,7 +72016,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) INT units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -71881,7 +72041,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -71921,7 +72081,7 @@ save/clobber/file=mytype.nc my_data
cancel mode ignore
*** Running test: bn_axis_nonmonotonic.jnl
-! bn_axis_nonmonotonic.jnl
+[?1034h! bn_axis_nonmonotonic.jnl
! bn_define_axis doesnt test the case where the varible is not monotonic
! ACM 11/2012 With Ferret v6.83+ the message tells us the index value
@@ -71933,7 +72093,7 @@ define axis/t/units=days tax = tvar
cancel mode ignore
*** Running test: bn_vec_mod.jnl
-! bn_vec_mod.jnl
+[?1034h! bn_vec_mod.jnl
! /MODULO qualifier for the vector command.
! 12/12/2012 ACM
!
@@ -71954,7 +72114,7 @@ vec/MOD/HLIM=-180:180 u,fakev,geolon_c,geolat_c
can view
*** Running test: bn685_bug_fixes.jnl
-! bn685_bug_fixes.jnl
+[?1034h! bn685_bug_fixes.jnl
! test various fixes that went into version 6.85
! 1/2013 ACM
@@ -72087,11 +72247,11 @@ GO err684_tax_fcns
list/L=3:7 tax_yearfrac(var, var)
VARIABLE : TAX_YEARFRAC(VAR, VAR)
SUBSET : 5 points (TIME)
- 08-OCT-2006 22 / 3: 0.7699
- 13-OCT-2006 23 / 4: 0.7836
- 18-OCT-2006 22 / 5: 0.7973
- 23-OCT-2006 21 / 6: 0.8110
- 28-OCT-2006 22 / 7: 0.8247
+ 08-OCT-2006 22 / 3: 0.7725
+ 13-OCT-2006 23 / 4: 0.7862
+ 18-OCT-2006 22 / 5: 0.7998
+ 23-OCT-2006 21 / 6: 0.8134
+ 28-OCT-2006 22 / 7: 0.8272
list/L=3:7 tax_year(var, var)
VARIABLE : TAX_YEAR(VAR, VAR)
@@ -72136,8 +72296,8 @@ GO err684_line_plot_zero
plot {0,0,0}
sh sym yaxis*
-YAXIS_MIN = "-1.0000000"
-YAXIS_MAX = "1.000000"
+YAXIS_MIN = "-1.00000000"
+YAXIS_MAX = "1.00000000"
GO bn_reset
@@ -72306,11 +72466,11 @@ variables:
A:missing_value = -1.e+34 ;
A:_FillValue = -1.e+34 ;
A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- A:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ A:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
A:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -72335,11 +72495,11 @@ variables:
E410:missing_value = -1.e+34 ;
E410:_FillValue = -1.e+34 ;
E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -72354,7 +72514,7 @@ save/clob/file=aa.nc/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
use aa.nc
list e410
VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
- X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+ X=20E:20E(380)
FILENAME : aa.nc
SUBSET : 4 by 3 points (LATITUDE-TIME)
81S 79S 77S 75S
@@ -72386,11 +72546,11 @@ variables:
E410:missing_value = -1.e+34f ;
E410:_FillValue = -1.e+34f ;
E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
- E410:long_name_mod = "X=20E:20E(380), Y=90S:90N, T=01-JAN 00:45:01-APR 08:12" ;
+ E410:long_name_mod = "X=20E:20E(380), Y=90S:90N" ;
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -72403,7 +72563,7 @@ save/clob/file=aa.nc/outtype=float/y=-81:-75 sst[x=@ave]-sst[x=@ave,t=@ave]
use aa.nc
list e410
VARIABLE : SST[X=@AVE]-SST[X=@AVE,T=@AVE]
- X=20E:20E(380), T=01-JAN 00:45:01-APR 08:12
+ X=20E:20E(380)
FILENAME : aa.nc
SUBSET : 4 by 3 points (LATITUDE-TIME)
81S 79S 77S 75S
@@ -72491,7 +72651,7 @@ sh dat/var/xml
<value><![CDATA[Number of O2 Utilization Observations]]></value>
</attribute>
<attribute name="_FillValue" type="float">
- <value> -2147483647</value>
+ <value> -2147483647.</value>
</attribute>
<attribute name="ferret_datatype" type="char">
<value><![CDATA[FLOAT]]></value>
@@ -72567,8 +72727,12 @@ let/title="tic labels on dependent axis" var = {\
1.6897,1.687,1.6843,1.6817,1.679,1.6765,1.676,1.676}
plot/line/sym/title="Vert axis labels should be 1.675 thru 1.715" var
-can mode meta
+cancel mode meta
+! rename the metafile. Else we get weird contents in axticlabel.plt
+! once the whole benchmark suite has finished. (why?)
+set mode meta metafile.plt
+cancel mode meta
GO bn_reset
cancel mode verify
@@ -72813,7 +72977,7 @@ define axis/y=54:66:0.5/units=degrees_north lat_ax
define grid/x=lon_ax/y=lat_ax/z=zax three_d_grd
*** Running test: bn_dsg_e_x.jnl
-! bn_dsg_e.jnl
+[?1034h! bn_dsg_e.jnl
!
! Discrete Sampling Geometries files
! Create grids such that the instance dimension
@@ -72910,7 +73074,7 @@ sh grid pco2
normal E
normal F
*** Running test: bn_nco_append.jnl
-! bn_nco_append.jnl
+[?1034h! bn_nco_append.jnl
! 5/2013 add a test appending files with ncks
! These functions use Unix NCO utilities, found at http://nco.sourceforge.net/
@@ -72952,13 +73116,19 @@ variables:
CYCLE_ORIG:_FillValue = -1.e+34 ;
CYCLE_ORIG:long_name = "CYCLE[GZ=ZAXIS_ORIG at ASN]" ;
CYCLE_ORIG:history = "From z2" ;
+ double DDAT_ORIG(ZAXIS_ORIG) ;
+ DDAT_ORIG:missing_value = -1.e+34 ;
+ DDAT_ORIG:_FillValue = -1.e+34 ;
+ DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "Thu Nov 19 12:06:36 2015: ncks -h -A -h z1.nc append_to_this.nc\n",
+ "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
+ :NCO = "4.4.6" ;
}
*** Running test: bn_nobounds.jnl
-! bn_nobounds.jnl
+[?1034h! bn_nobounds.jnl
! The SAVE/NOBOUNDS qualifier causes bounds never to be written
! even if the data is irregular, and even if the axis came into
! Ferret with bounds.
@@ -72984,7 +73154,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -73015,7 +73185,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -73077,7 +73247,7 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -73105,12 +73275,12 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_write_integer_att.jnl
-! bn_write_integer_att.jnl
+[?1034h! bn_write_integer_att.jnl
! ACM 6/2013
!
! This file has an integer attribute
@@ -73141,7 +73311,7 @@ sp ncdump a.nc | grep numberOfObservations
*** Running test: bn_descriptor_mc.jnl
-! bn_descriptor_mc.jnl
+[?1034h! bn_descriptor_mc.jnl
! 7/2013 ACM
! See ticket 2087
!
@@ -73180,7 +73350,7 @@ list /x=300/y=10 sst
16-MAY-0000 / 3: 27.22
16-JUN-0000 / 4: 27.66
*** Running test: bn_plot_color_only.jnl
-! bn_plot_color_only.jnl
+[?1034h! bn_plot_color_only.jnl
! 9/20/2013 ACM
! ticket 2094
! PLOT/COLOR with no argument skips the black pen and starts with the next one.
@@ -73255,9 +73425,10 @@ set mode/last ignore
*** Running test: bn_vtree.jnl
-! bn_tree.jnl
+[?1034h! bn_tree.jnl
! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
+! 12/14 update to test regridding output using bn_vtree_regrid.jnl
CANCEL DATA/ALL
! pure abstract variable -- no dataset
@@ -73338,16 +73509,16 @@ vtree=all a
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
vtree=all /d=1 a
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
vtree=all /d=2 a
in default dataset other_file_vars
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
FV1
********************************
@@ -73355,12 +73526,12 @@ vtree=all /d=2 a
go bn_vtree.sub noexist
/TREE=ALL
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
the problem is UNKNOWN VARIABLE: NOEXIST
************************
@@ -73368,12 +73539,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST
go bn_vtree.sub v[d=noexist]
/TREE=ALL
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
/TREE=USER
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
/TREE=FILE
- V[D=NOEXIST] (unknown dataset)
+ *unknown dataset: V[D=NOEXIST]
the problem is UNKNOWN DATASET: V[D=NOEXIST]
************************
@@ -73381,12 +73552,12 @@ the problem is UNKNOWN DATASET: V[D=NOEXIST]
go bn_vtree.sub novar[d=nodset]
/TREE=ALL
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
/TREE=USER
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
/TREE=FILE
- NOVAR[D=NODSET] (unknown dataset)
+ *unknown dataset: NOVAR[D=NODSET]
the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
************************
@@ -73395,13 +73566,13 @@ go bn_vtree.sub b
/TREE=ALL
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
the problem is UNKNOWN VARIABLE: NOEXIST
************************
@@ -73427,11 +73598,13 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
/TREE=FILE
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
@@ -73447,11 +73620,13 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
/TREE=FILE
FV1[d=my_file_vars]
@@ -73466,12 +73641,14 @@ go bn_vtree.sub fv1z
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
/TREE=FILE
FV1[d=my_file_vars]
@@ -73493,7 +73670,7 @@ go bn_vtree.sub fv1z
FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
NOEXIST (unknown auxiliary variable)
/TREE=FILE
- NOEXIST (unknown auxiliary variable)
+ *unknown auxiliary variable: NOEXIST
FVX[d=my_file_vars]
the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
************************
@@ -73504,17 +73681,19 @@ go bn_vtree.sub fv1z
/TREE=ALL
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
/TREE=FILE
- NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
@@ -73526,17 +73705,19 @@ go bn_vtree.sub fv1z
/TREE=ALL
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
FVX
/TREE=USER
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
/TREE=FILE
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
- UNKNOWN_AUX (unknown auxiliary variable)
+ *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+ *unknown auxiliary variable: UNKNOWN_AUX
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
************************
@@ -73547,9 +73728,9 @@ go bn_vtree.sub fv1
/TREE=ALL
in default dataset MY_AGG
FV1 (aggregate variable)
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- FV1[d=another_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
/TREE=USER
in default dataset MY_AGG
FV1 (aggregate variable)
@@ -73569,16 +73750,16 @@ go bn_vtree.sub fvx
/TREE=ALL
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=my_file_var]
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=other_file_var]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=another_file_var]
+ FVX[d=my_file_vars]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_vars]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_vars]
/TREE=USER
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
/TREE=FILE
FVX[d=my_file_vars]
@@ -73597,30 +73778,30 @@ go bn_vtree.sub p0 ! recursion
/TREE=ALL
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S3 (unknown variable)
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S3
the problem is ILLEGAL RECURSIVE VARIABLES: P1
************************
let p3 = s1 + S3
@@ -73628,31 +73809,31 @@ go bn_vtree.sub p0 ! ok
/TREE=ALL
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=USER
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
/TREE=FILE
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S1 (unknown variable)
- S3 (unknown variable)
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S1
+ *unknown variable: S3
the problem is UNKNOWN VARIABLE: S1
************************
@@ -73674,8 +73855,8 @@ show var/tree/d=my_uvar_agg uv
in default dataset MY_UVAR_AGG
UV = FVX + FVX + FVX
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
***************************
! suppressing duplicates elsewhere in the family tree ("defined above")
@@ -73690,8 +73871,8 @@ go bn_vtree.sub v2
V2 = V1 + B + A + A
V1 = A + B + B^2
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
B = C
C = 1
B = (defined above)
@@ -73715,8 +73896,8 @@ go bn_vtree.sub v3
in default dataset MY_UVAR_AGG
V3 = A + V1 + B + A + A
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
V1 = A + B + B^2
A = (defined above)
B = C
@@ -73750,26 +73931,26 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
- FVX[d=my_file_var]
+ FVX[d=my_file_vars]
/TREE=USER
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
/TREE=FILE
- F (unknown variable)
+ *unknown variable: F
FV1[d=my_file_vars]
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
FVX[d=my_file_vars]
the problem is UNKNOWN VARIABLE: F
************************
@@ -73784,14 +73965,16 @@ the problem is UNKNOWN VARIABLE: F
/TREE=ALL
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
/TREE=USER
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
/TREE=FILE
- A[G=NOEXIST] (unknown grid)
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+ *unknown grid: NOEXIST
+the problem is UNKNOWN GRID: NOEXIST
************************
list b
@@ -73807,7 +73990,7 @@ the problem is UNKNOWN GRID: A[G=NOEXIST]
C = A[X=45S]
A[X=45S] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[X=45S] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[X=45S]
the problem is ERROR IN EXPRESSION: A[X=45S]
************************
list c
@@ -73824,7 +74007,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
D = A[I=1,,J=2]
A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[I=1,,J=2]
the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
************************
list d
@@ -73841,7 +74024,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
E = A[P=1]
A[P=1] *** WARNING: ERROR IN DEFINITION
/TREE=FILE
- A[P=1] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[P=1]
the problem is ERROR IN EXPRESSION: A[P=1]
************************
list e
@@ -73873,8 +74056,530 @@ let a = ..history[d=1]
show var/tree a
in default dataset MY_UVAR_AGG
A = ..HISTORY[D=1]
+
+! *****
+! 12/14 addition to test regridding dependencies
+go bn_vtree_regrid
+! bn_vtree_regrid.jnl
+! exercise 12/14 enhancements to display regrid target on a separate line
+! updated 1/26/15 to exercise multiple regrid target outputs
+! updated 2/23/15 to report target of regrid even when aux regridding occurs
+
+! case 1: target grid known, regridded variable known
+let myvar = 1 ! var to be regridded is known
+let gvar = x[x=1:5] ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR = X[X=1:5]
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 2: target grid known, regridded variable unknown
+canc var/all
+! myvar unknown
+let gvar = x[x=1:5] ! target regridding var is known
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR[G=GVAR] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR = X[X=1:5]
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar unknown
+let a = myvar[g=gvar] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree a
+ in default dataset MY_UVAR_AGG
+ A = MYVAR[G=GVAR] + UNVAR + KVAR
+ MYVAR[G=GVAR] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! **************************************
+! same tests but now with a dataset named with the target grid
+use coads_climatology
+use levitus_climatology ! default to d=2
+
+! case 1: target grid known, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 2: target grid known, regridded variable unknown
+canc var/all
+! myvar unknown
+let a = myvar[g=sst[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
+ MYVAR[G=SST[D=1]] ?? <== UNKNOWN VARIABLE ******
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3a: target grid unknown, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+ MYVAR = 1
+ regrid to GVAR[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 3b: target grid unknown cuz of dataset, regridded variable known
+canc var/all
+let myvar = 1 ! var to be regridded is known
+! gvar unknown
+let a = myvar[g=sst[d=bad_dset]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=SST[D=BAD_DSET]] + UNVAR + KVAR
+ MYVAR[G=SST[D=BAD_DSET]] ?? <== UNKNOWN DATASET ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! case 4: target grid unknown, regridded variable unknown
+canc var/all
+! myvar unknown
+! gvar unknown
+let a = myvar[g=gvar[d=1]] + unvar + kvar
+let kvar = 1 ! known var
+! unvar is always unknown
+sho var/tree=all a
+ in default dataset levitus_climatology
+ A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
+ MYVAR[G=GVAR[D=1]] ?? <== UNKNOWN VARIABLE ******
+ regrid to GVAR[D=1] ?? <== UNKNOWN GRID ******
+ UNVAR ?? <== UNKNOWN VARIABLE ******
+ KVAR = 1
+
+! *******************
+! file variable listing, only
+canc var/all
+let myvar = 1
+let fvar = airt[d=1]
+let kvar = 1 ! known var
+* /TREE=FILE with know regrid target
+let a = myvar[g=sst[d=1]] + fvar + kvar
+sho var/tree=file a
+ *unknown grid: SST[D=1]
+ *unknown variable: AIRT[D=1]
+
+* /TREE=FILE with unknow regrid target
+let a = myvar[g=unknown] + fvar + kvar
+sho var/tree=file a
+ *unknown grid: UNKNOWN
+ *unknown variable: AIRT[D=1]
+
+! ********************
+! regridding to multiple targets
+
+define axis/x=140e:160e:1 x1
+define axis/y=20s:20n:1 y1
+LET myvar = X[gx=x1] + Y[gy=y1]
+
+define axis/y=5s:5n:.5 yp5
+
+go bn_vtree.sub myvar[g=temp]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp] is ready and AVAILABLE
+************************
+
+! second target *is* a named variable
+go bn_vtree.sub myvar[g=temp,gy=sst[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=sst[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+go bn_vtree.sub myvar[gy=sst[d=1],gx=temp] ! reverse order, only
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: SST[D=1]
+ regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+
+! second target is not a named variable
+go bn_vtree.sub myvar[g=temp,gy=yp5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[gx=temp,gy=yp5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[gx=temp,gy=yp5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=temp,y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+myvar[g=temp,y=5s:5n:.5] is ready and AVAILABLE
+************************
+go bn_vtree.sub myvar[g=sst[d=1],y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to SST[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: SST[D=1]
+the problem is UNKNOWN GRID: SST[D=1]
+************************
+
+! multiple targets, including unknown variables
+go bn_vtree.sub myvar[g=temp,gy=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,gy=temp]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to TEMP
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+ regrid to TEMP[d=levitus_climatology]
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=temp,g=mybad[d=1]]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=1],gy=mybad2]! distinct unknown targets
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD2 ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD2 ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+ *unknown grid: MYBAD2
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]] ! dup known targets
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=1] ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=1]
+the problem is UNKNOWN GRID: MYBAD[D=1]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad] ! dup unknown suppressed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad[d=2],gy=mybad] ! dup unknown missed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD[D=2] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD[D=2] ?? <== UNKNOWN GRID ******
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD[D=2]
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD[D=2]
+************************
+go bn_vtree.sub myvar[g=temp,gx=mybad,gy='MYBAD'] ! dup unknown missed
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to TEMP
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to 'MYBAD' ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+ regrid to 'MYBAD' ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ regrid to TEMP[d=levitus_climatology]
+ *unknown grid: MYBAD
+ *unknown grid: 'MYBAD'
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=myvar,gy=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[gy=yp5,g=mybad]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+go bn_vtree.sub myvar[g=mybad,y=5s:5n:.5]
+/TREE=ALL
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=USER
+ in default dataset levitus_climatology
+ MYVAR = X[GX=X1] + Y[GY=Y1]
+ regrid to MYBAD ?? <== UNKNOWN GRID ******
+/TREE=FILE
+ *unknown grid: MYBAD
+the problem is UNKNOWN GRID: MYBAD
+************************
+
+! 2/15 additions -- auxiliary variable regridding
+USE levitus_climatology
+LET myzvar = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = myzvar
+SET REGION/i=101:102/j=41:42
+
+LET/D=levitus_climatology depth = z[g=temp]+ 0*temp[k=1]
+
+! valid aux var and target variable
+LET tempz = temp[gz(depth)=myzvar]
+vtree=all tempz
+ in default dataset levitus_climatology
+ TEMPZ = TEMP[GZ(DEPTH)=MYZVAR]
+ TEMP
+ regrid to MYZVAR = Z[Z=100:500:100]
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! valid aux var. Target is axis name
+LET tempz1 = temp[gz(depth)=zax]
+vtree=all tempz1
+ in default dataset levitus_climatology
+ TEMPZ1 = TEMP[GZ(DEPTH)=ZAX]
+ TEMP
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! valid aux var. Target is unknown
+LET tempz2 = temp[gz(depth)=unknown_target]
+vtree=all tempz2
+ in default dataset levitus_climatology
+ TEMPZ2 = TEMP[GZ(DEPTH)=UNKNOWN_TARGET]
+ TEMP
+ regrid to UNKNOWN_TARGET ?? <== UNKNOWN GRID ******
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMP
+
+! --- unknown aux var, valid target ---
+! When an unknown auxiliary variable error occurs it suppresses
+! the reporting of both the variable being regridded and the regrid target
+! The underlying issue is that GET_VAR_CONTEXT (called from is_dependencies.F)
+! can return only a single error status
+! If it contains ferr_unknown_auxvar, then the success or failure of other
+! parts of the context processing are unknown.
+! One could kludge the code to find a way around this, but the violence
+! required is not justified in order to fix this small loss in error reporting.
+LET tempz3 = temp[gz(unknown_aux)=myzvar]
+vtree=all tempz3
+ in default dataset levitus_climatology
+ TEMPZ3 = TEMP[GZ(UNKNOWN_AUX)=MYZVAR]
+ UNKNOWN_AUX (unknown auxiliary variable)
+
+! a syntax error leads to a similar behavior
+LET tempz3a = temp[gz(unknown_aux)=myzvar,SYNTAX_ERROR]
+vtree=all tempz3a
+ in default dataset levitus_climatology
+ TEMPZ3A = TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]
+ TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR] *** WARNING: ERROR IN DEFINITION
+
+! similar behavior here: the unknown_target does not get reported
+LET tempz4 = temp[gz(unknown_aux)=unknown_target]
+vtree=all tempz4
+ in default dataset levitus_climatology
+ TEMPZ4 = TEMP[GZ(UNKNOWN_AUX)=UNKNOWN_TARGET]
+ UNKNOWN_AUX (unknown auxiliary variable)
+
+
*** Running test: bn686_bug_fixes.jnl
-! bn686_bug_fixes
+[?1034h! bn686_bug_fixes
! test various fixes that went into version 6.86
! 11/2013 ACM
@@ -74208,7 +74913,7 @@ LEV_NUM = "4"
LEV_DEL = "5"
*** Running test: bn_long_symnames.jnl
-! bn_long_symnames.jnl
+[?1034h! bn_long_symnames.jnl
! *ACM* 11/22/2013
! Allow longer names for Ferret symbols
@@ -74245,7 +74950,7 @@ show symbol q*
Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890 = "5"
Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567XXX = "6"
*** Running test: bn_strdim.jnl
-! bn_strdim.jnl
+[?1034h! bn_strdim.jnl
! Keep the string dimension name and size from the intput file
! on writing the string variable.
@@ -74270,7 +74975,7 @@ variables:
LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74293,12 +74998,12 @@ variables:
STRVAR:long_name = "mystrings" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_single_colorlev.jnl
-! bn_single_colorlev.jnl
+[?1034h! bn_single_colorlev.jnl
! Ticket 2123, mis-labeled color bars when
! single level is specified with a range of values
@@ -74315,7 +75020,7 @@ shade/lev=(25)/L=1 INT(sst)
fill/lev=(20,30,10)/L=1 sst
*** Running test: bn69_bug_fixes.jnl
-! bn69_bug_fixes
+[?1034h! bn69_bug_fixes
! test various fixes that went into version 6.9
! 02/2014 ACM
@@ -74437,7 +75142,7 @@ shade/n=3/L=6 bath_tf
! If so its label will show Julian too.
sh sym lab($labnum_f)
!-> sh sym lab2
-LAB2 = "FORECAST : 03-JAN-2000 00:00:00 JULIAN"
+LAB2 = "FORECAST : 2000 JULIAN"
GO bn_reset
cancel mode verify
@@ -74513,7 +75218,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74543,7 +75248,7 @@ variables:
A:history = "From a" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74564,7 +75269,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74585,7 +75290,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74607,7 +75312,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
@@ -74778,11 +75483,11 @@ show dat
! another error, new name is a user-var
-yes? set var/name=diff w
+set var/name=diff w
SET MODE/LAST ignore
*** Running test: bn_bad_axis_bounds.jnl
-! bn_bad_axis_bounds
+[?1034h! bn_bad_axis_bounds
! Ticket 2146 If there are invalid axis bounds
! make them into a dependent variable.
@@ -74797,7 +75502,7 @@ show data
TEMP2 TEMP[GT=MONTH_IRREG at ASN] 1:1 1:1 1:1 1:12 ... ...
*** Running test: bn_enter_exit_GO.jnl
-! GO bn_enter_exit_GO
+[?1034h! GO bn_enter_exit_GO
! Lines to allow trace of GO scripts:
!
! ! Enter_GO and ! Exit_GO lines written to the journal file
@@ -74830,7 +75535,7 @@ GO bn_short.sub tvar ave
! short script extracted from bn_negative_t.sub for bn_enter_exit_GO
LIST/nohead/norow $1[t=-5:9@$2] ! neg/pos t endpoints
- !-> LIST/nohead/norow tvar[t=-5:9 at ave] ! neg/pos t endpoints
+ !-> LIST/nohead/norow tvar[t=-5:9 at ave]
2.000
! Exit_GO
@@ -74864,7 +75569,7 @@ plot/i=1:15/color=red/thick i
cancel redirect
*** Running test: bn_stddev.jnl
-! bn_std.jnl
+[?1034h! bn_std.jnl
! New StdDev transform
use coads_climatology
@@ -74919,13 +75624,13 @@ list/y=3/l=1 temp[x=@std]
list/y=3/l=1 temp[z=@std,x=@std]
VARIABLE : TEMPERATURE (deg. C)
FILENAME : gt4d011.cdf
- LONGITUDE: 140W to 122W (standard deviation)
+ LONGITUDE: 140W to 122W (XZ stddev)
LATITUDE : 2.8N
- DEPTH (m): 0 to 100 (standard deviation)
+ DEPTH (m): 0 to 100 (XZ stddev)
TIME : 17-AUG-1982 12:00
- 0.1895
+ 0.9487
*** Running test: bn_set_axis_name.jnl
-! bn_set_axis_name.jnl
+[?1034h! bn_set_axis_name.jnl
! ticket 2160 Implementing new qualifier SET AXIS/NAME
! 3/2014
!
@@ -75016,7 +75721,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -75032,7 +75737,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -75048,7 +75753,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ . history CHAR 37 T FERRET V6.96 (PyFerret 1.2) 19-Nov-15
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -75074,7 +75779,7 @@ set axis/name=.fr x_in_meters
set mode/last ignore
*** Running test: bn691_bug_fixes.jnl
-! bn691_bug_fixes
+[?1034h! bn691_bug_fixes
! test various fixes that went into version 6.91
! 04/2014 ACM
@@ -75878,10 +76583,12 @@ GO bn_vtree.sub c
/TREE=ALL
C = B2[GT=A]
B2 = A
+ regrid to A = T[GT=1:2:1]
A = T[GT=1:2:1]
/TREE=USER
C = B2[GT=A]
B2 = A
+ regrid to A = T[GT=1:2:1]
A = T[GT=1:2:1]
/TREE=FILE
c is ready and AVAILABLE
@@ -75919,6 +76626,8 @@ cancel mode verify
GO err69_isready_bugs
! err69_isready_bugs.jnl
! Tickets 2201 and 2215
+! updated error script 12/14 *sh* - to ensure that bench log file
+! has verification of this problem and its fix, as well as the bench error file
! ticket 2201: isready operation meant we couldn't cancel the second axis
@@ -75940,6 +76649,15 @@ can axis xax_isready_1
can var b
can axis xax_isready_2
+! 12/14 additions:
+show grid/dynamic ! look for "err: grid over-allocated" messages
+No dynamic grids
+ no implicit grids
+No dynamic axes
+ no implicit axes
+show axis xax_isready_1, xax_isready_2 ! did they both get canceled?
+ name axis # pts start end
+
! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
let a = x[gx=1:3:1]
@@ -75953,8 +76671,21 @@ say `f,r=isready`
say `f,r=unit`
!-> MESSAGE/CONTINUE m
m
+
+GO bn_reset
+cancel mode verify
+GO err691_substring_arg
+! err693_substring_arg
+! ACM 12/10/2014
+! ticket 2210. Argument checking was not done for the SUBSTRING function
+
+set mode ignore
+list substring("hello",1,-2)
+list substring("hello",1,-3)
+
+set mode/last ignore
*** Running test: bn_append_dsg.jnl
-! bn_append_dsg.jnl
+[?1034h! bn_append_dsg.jnl
!From SOCAT 3: appending to a dsg file where the new variable is on the obs
! dimension. THe file has no coordinate variable, and we want to keep it that way.
! Ferret needs to detect the dimension-only axis and keep it as-is. Do not upcase,
@@ -76028,10 +76759,10 @@ variables:
:geospatial_lat_max = 29.07 ;
:time_coverage_start = "2006-06-10T23:48:00Z" ;
:time_converage_end = "2006-06-11T00:12:00Z" ;
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
}
*** Running test: bn_global_atts.jnl
- ! NOAA/PMEL TMAP
+[?1034h ! NOAA/PMEL TMAP
! FERRET v6.91 (beta)
! Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 04/07/14
! 7-Apr-14 16:41
@@ -76118,7 +76849,7 @@ variables:
LON360:history = "added to test_save_dsg.nc" ;
// global attributes:
- :history = "CruiseDsgNcFile 1.0FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "CruiseDsgNcFile 1.0FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:featureType = "Trajectory" ;
:Conventions = "Some other conventionsCF-1.6" ;
:geospatial_lon_min = -92.77 ;
@@ -76145,13 +76876,13 @@ can dat/all; use anew_global.nc
sh att .
attributes for dataset: ./anew_global.nc
..history = Subset of etopo20,
- FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ FERRET V6.96 (PyFerret 1.2) 19-Nov-15
..Conventions = Existing conventions note, , CF-1.6
*** Running test: bn_conventions_history.jnl
-! bn_conventions_history.jnl
+[?1034h! bn_conventions_history.jnl
! ticket 2169:
! Write conventions CF-1.6
! When appending to the Conventions and history
@@ -76174,10 +76905,10 @@ can dat/all; use conventions_history
! The new attibutes
sh att .
attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ ..history = The history of the fileFERRET V6.96 (PyFerret 1.2) 19-Nov-15
..Conventions = Conventions for variables named V2CF-1.6
*** Running test: bn_center_key_labels.jnl
-! bn_center_key_labels
+[?1034h! bn_center_key_labels
! 6/2014
!
! Arguments to /KEY qualifier on color plots
@@ -76222,7 +76953,7 @@ can data coads_climatology
shade temp
*** Running test: bn_wgt_transform.jnl
-! bn_wgt_transform.jnl test new @WGT transform,
+[?1034h! bn_wgt_transform.jnl test new @WGT transform,
! returns weights used in the equiv. average or integral transform
! ACM 7/2014
@@ -76332,7 +77063,7 @@ list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
35 / 4: 10.00
45 / 5: 3.50
*** Running test: bn_show_outfile.jnl
-! bn_show_outfile
+[?1034h! bn_show_outfile
! Adding tests for SHOW/OUTFILE=
! Previously only tests when SHOW/XML/OUTFILE=
! Bugs in SHOW/OUTFILE reported in ticket 2194
@@ -76570,14 +77301,14 @@ a is ready and AVAILABLE
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
in default dataset my_file_vars
A = FV1[D=1] - FV1[D=2]
FV1
- FV1[d=other_file_var]
+ FV1[d=other_file_vars]
in default dataset other_file_vars
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
FV1
********************************
/TREE=ALL
@@ -76586,30 +77317,30 @@ a is ready and AVAILABLE
the problem is UNKNOWN VARIABLE: NOEXIST
************************
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
in default dataset my_file_vars
- NOEXIST ?? <== UNKNOWN VARIABLE ******
- NOEXIST (unknown variable)
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
the problem is UNKNOWN DATASET: V[D=NOEXIST]
************************
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
in default dataset my_file_vars
- V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
- V[D=NOEXIST] (unknown dataset)
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ *unknown dataset: V[D=NOEXIST]
/TREE=ALL
/TREE=USER
/TREE=FILE
the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
************************
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
in default dataset my_file_vars
- NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
- NOVAR[D=NODSET] (unknown dataset)
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ *unknown dataset: NOVAR[D=NODSET]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76617,11 +77348,11 @@ the problem is UNKNOWN VARIABLE: NOEXIST
************************
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
in default dataset my_file_vars
B = NOEXIST
- NOEXIST ?? <== UNKNOWN VARIABLE ******
- NOEXIST (unknown variable)
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76640,10 +77371,12 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
FVZ
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
@@ -76655,10 +77388,12 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]
FV1[d=my_file_vars]
FVX[d=my_file_vars]
@@ -76670,11 +77405,13 @@ fv1z is ready and AVAILABLE
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
FV1
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
in default dataset my_file_vars
FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FV1[d=my_file_vars]
FVZ[d=my_file_vars]
@@ -76691,7 +77428,7 @@ the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
in default dataset my_file_vars
FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
NOEXIST (unknown auxiliary variable)
- NOEXIST (unknown auxiliary variable)
+ *unknown auxiliary variable: NOEXIST
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
@@ -76700,15 +77437,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
************************
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
FVZ
FVX
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
- NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
- NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
FVZ[d=my_file_vars]
FVX[d=my_file_vars]
/TREE=ALL
@@ -76718,15 +77457,17 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
************************
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
FVX
in default dataset my_file_vars
FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ regrid to ZPTS = Z[Z=0:500:100]
UNKNOWN_AUX (unknown auxiliary variable)
- NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
- UNKNOWN_AUX (unknown auxiliary variable)
+ *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+ *unknown auxiliary variable: UNKNOWN_AUX
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
@@ -76735,9 +77476,9 @@ fv1 is ready and AVAILABLE
************************
in default dataset MY_AGG
FV1 (aggregate variable)
- FV1[d=my_file_var]
- FV1[d=other_file_var]
- FV1[d=another_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
in default dataset MY_AGG
FV1 (aggregate variable)
@@ -76751,15 +77492,15 @@ fvx is ready and AVAILABLE
************************
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=my_file_var]
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=other_file_var]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
- FV1[d=another_file_var]
+ FVX[d=my_file_vars]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_vars]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_vars]
in default dataset MY_UVAR_AGG
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
FVX[d=my_file_vars]
FV1[d=other_file_vars]
@@ -76771,28 +77512,28 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
************************
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = P1 + S3
P1 = *** WARNING: RECURSIVE DEFINITION. See above
- S3 ?? <== UNKNOWN VARIABLE ******
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S3 (unknown variable)
+ S3 ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S3
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76800,29 +77541,29 @@ the problem is UNKNOWN VARIABLE: S1
************************
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
in default dataset MY_UVAR_AGG
P0 = S1 + P1
- S1 ?? <== UNKNOWN VARIABLE ******
+ S1 ?? <== UNKNOWN VARIABLE ******
P1 = S2 + P2
- S2 ?? <== UNKNOWN VARIABLE ******
+ S2 ?? <== UNKNOWN VARIABLE ******
P2 = S3 + P3
- S3 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
P3 = S1 + S3
- S1 ?? <== UNKNOWN VARIABLE ******
- S3 ?? <== UNKNOWN VARIABLE ******
- S1 (unknown variable)
- S2 (unknown variable)
- S3 (unknown variable)
- S1 (unknown variable)
- S3 (unknown variable)
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ *unknown variable: S1
+ *unknown variable: S2
+ *unknown variable: S3
+ *unknown variable: S1
+ *unknown variable: S3
in default dataset my_file_vars
FV = FV1 + FV1 + FV1
in default dataset MY_UVAR_AGG
@@ -76834,8 +77575,8 @@ the problem is UNKNOWN VARIABLE: S1
in default dataset MY_UVAR_AGG
UV = FVX + FVX + FVX
FVX (aggregate variable)
- FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
- FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
***************************
/TREE=ALL
/TREE=USER
@@ -76846,8 +77587,8 @@ v2 is ready and AVAILABLE
V2 = V1 + B + A + A
V1 = A + B + B^2
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
B = C
C = 1
B = (defined above)
@@ -76870,8 +77611,8 @@ v3 is ready and AVAILABLE
in default dataset MY_UVAR_AGG
V3 = A + V1 + B + A + A
A = FV1[D=1] - FV1[D=2]
- FV1[d=my_file_var]
- FV1[d=other_file_var]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
V1 = A + B + B^2
A = (defined above)
B = C
@@ -76895,37 +77636,39 @@ the problem is UNKNOWN VARIABLE: F
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
- FV1[d=my_file_var]
+ FV1[d=my_file_vars]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
- FVX[d=my_file_var]
+ FVX[d=my_file_vars]
in default dataset MY_UVAR_AGG
D = B + C
B = FV1[D=MY_FILE_VARS]
C = 1
A = F
- F ?? <== UNKNOWN VARIABLE ******
- NOEXIST ?? <== UNKNOWN VARIABLE ******
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
E = 1
- F (unknown variable)
+ *unknown variable: F
FV1[d=my_file_vars]
- NOEXIST (unknown variable)
+ *unknown variable: NOEXIST
FVX[d=my_file_vars]
/TREE=ALL
/TREE=USER
/TREE=FILE
-the problem is UNKNOWN GRID: A[G=NOEXIST]
+the problem is UNKNOWN GRID: NOEXIST
************************
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
in default dataset MY_UVAR_AGG
B = A[G=NOEXIST]
- A[G=NOEXIST] (unknown grid)
- A[G=NOEXIST] (unknown grid)
+ A = I[I=1:5]
+ regrid to NOEXIST ?? <== UNKNOWN GRID ******
+ *unknown grid: NOEXIST
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76937,7 +77680,7 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
in default dataset MY_UVAR_AGG
C = A[X=45S]
A[X=45S] *** WARNING: ERROR IN DEFINITION
- A[X=45S] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[X=45S]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76949,7 +77692,7 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
in default dataset MY_UVAR_AGG
D = A[I=1,,J=2]
A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
- A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[I=1,,J=2]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76961,7 +77704,7 @@ the problem is ERROR IN EXPRESSION: A[P=1]
in default dataset MY_UVAR_AGG
E = A[P=1]
A[P=1] *** WARNING: ERROR IN DEFINITION
- A[P=1] *** WARNING: SYNTAX ERROR
+ *WARNING: syntax error: A[P=1]
/TREE=ALL
/TREE=USER
/TREE=FILE
@@ -76980,7 +77723,7 @@ f is ready and AVAILABLE
*** Running test: bn_date1900_array.jnl
-! bn_date1900_array.jnl
+[?1034h! bn_date1900_array.jnl
! Let date1900 accept an array of date strings, returning a list
! of coordinate values, days since 1-jan-1900.
@@ -77029,7 +77772,7 @@ list t[gt=taxis]
30-JUL-2002 00 / 3: 37465.
*** Running test: bn_spawn_size.jnl
-! bn_spawn_size.jnl
+[?1034h! bn_spawn_size.jnl
! Return the size of the result of a spawn, not
! the nominalabstract axis length.
@@ -77054,8 +77797,8 @@ say `files,return=isize`
! Evaluate size without loading the variable first
let datfiles = {spawn:"ls *.dat"}
say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 36
-36
+ !-> MESSAGE/CONTINUE 37
+37
! expression syntax
say `{spawn:"ls xml*.jnl"},return=isize`
@@ -77073,8 +77816,8 @@ list {spawn:"ls xml*.jnl"}
LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 827
-827
+ !-> MESSAGE/CONTINUE 900
+900
let files = {spawn:"ls *cdf*.jnl"}
let name_len = strindex(files, ".sub")
@@ -77082,7 +77825,7 @@ say `name_len, return=isize`
!-> MESSAGE/CONTINUE 8
8
*** Running test: bn_polygon_log.jnl
-! bn_polygon_log.jnl
+[?1034h! bn_polygon_log.jnl
! polygon plots on a log axis need tests
let xsqr = YSEQUENCE({0,.1,.1,0})
@@ -77115,266 +77858,7659 @@ poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
set mode/last ignore
-*** Running test: bn_all_ef.jnl
-SET MODE VERIFY
-! bn_all_ef.jnl
-! - run all the benchmark tests for externally-linked external functions.
+*** Running test: bn694_bug_fixes.jnl
+[?1034h! bn694_bug_fixes
+! test various fixes that went into version 6.94
+! 11/2014 ACM
+! 12/2014 *sh* added IF-THEN flow fixes, including review of past tickets
+! 1/2015 *sh* added test for undetected bad dataset name in regrid target
+
+GO bn_reset
+cancel mode verify
+GO err693_upcase_quoted_name
+! err693_upcase_quoted_name.jnl
+! ticket 2050. Names are saved in uppercase
+! form unless there are duplicates other than case.
+! Then searching for the name in quotes looked
+! only with a case-sensitive search.
+
+let abc = 12
+cancel mode upcase
+
+save/file=aa.nc/clobber abc
+can dat/all; can var/all
+
+use aa.nc
+! previously this failed to find the name.
+list 'abc'
+ VARIABLE : 12
+ FILENAME : aa.nc
+ 12.00
GO bn_reset
cancel mode verify
-GO bn_ef_external_functions.jnl
-! Tests of external functions that are distributed as shared object files.
+GO err693_isready_hang
+! err693_isready_hang.jnl
+! ACM 12/10/2014
+! ticket 2219. The last of these commands caused Ferret to hang.
-! Jon's benchmarks
-go bench_examples
-set mode ignore_error
-show func/ext add_9
-ADD_9(A,B,C,D,E,F,G,H,I)
- (demonstration function) adds 9 arguments
-show func/ext ave*
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
- Compute average of a variable in each cell of output time axis
- TPTS: T coordinates of scattered input time coordinates
- VPTS: Variable at times in TPTS
- TAXIS: Output time axis
-AVET(A)
- (demonstration function) returns the time average
- A: data to be averaged over the time axis
-show func pass_thru
-PASS_THRU(A)
- (demonstration function) sets result equal to input
- A: this arg is passed through
-show func sto*
-STORAGE(A)
- sets result equal to input/10
- A: input
+use gt4d011
+def ax/t/t0="`u,r=t0`"/unit="`u,r=tunit`" time = t[gt=u]
+ !-> def ax/t/t0="14-JAN-1980 14:00:00"/unit="hour" time = t[gt=u]
+let a = u
+IF `a,r=isready` THEN; let/title="`a,r=title`" a1 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a1 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a2 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a2 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a3 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a3 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a4 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a4 = a
+IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE/title="U" a5 = a
-go bench_add_9
-! Bench_add_9.jnl
-! ACM 8/99
-! benchmark script for testing external function add_9.
-! Note: bench_add_9_visual contains plots of similar computations
+GO bn_reset
+cancel mode verify
+GO err693_isready_dyn_grid_crash ! 12/23/2014
+let/unit="m" b = x[gx=1:5:1]
+say "`b,r=unit`" ! this causes dynamic grid of b to be created
+ !-> MESSAGE/CONTINUE "m"
+m
+let c = x[gx=1:5:2]
+let b2 = b+0*c[gx=b] ! dynamic grid of b exists, but not grid of c
+VTREE b2
+ B2 = B+0*C[GX=B]
+ B = X[GX=1:5:1]
+ C = X[GX=1:5:2]
+ regrid to B = X[GX=1:5:1]
-set mode ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_attr_in_gcfcn
+! err693_attr_in_gcfcn.jnl
+! ACM 12/10/2014
+! bug 2220 varname.attname as an argument to grid-changing functions.
+! All except the last of these caused various ungraceful stops.
+
+let/units="m" a = 1
+list is_element_of_str(a.units,{"m","a"})
+ VARIABLE : IS_ELEMENT_OF_STR(A.UNITS,{"m","a"})
+ X : 1
+ 1.000
+let/units="m" a = 1
+let b = a.units
+list is_element_of_str(b,{"m","a"})
+ VARIABLE : IS_ELEMENT_OF_STR(B,{"m","a"})
+ X : 1
+ 1.000
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
-let a1 = sst[d=1,l=1]
-let a2 = sst[d=1,l=2]
-let a3 = sst[d=1,l=3]
+use levitus_climatology
-let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+list is_element_of_str_n (temp.long_name, {"Temperature", "temp"})
+ VARIABLE : IS_ELEMENT_OF_STR_N (TEMP.LONG_NAME, {"Temperature", "temp"})
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ 2.000
-list a
- VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 263.6
- 153E / 67: 264.5
- 155E / 68: 264.2
- 157E / 69: 261.3
- 159E / 70: 260.9
- 161E / 71: 262.4
- 163E / 72: 264.0
- 165E / 73: 261.1
- 167E / 74: 260.9
- 169E / 75: 261.0
- 171E / 76: 259.3
- 173E / 77: 257.9
- 175E / 78: 257.0
- 177E / 79: 259.1
- 179E / 80: 254.8
-list a - 3 * sst[d=1,l=1:3 at sum]
- VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 0.0000
- 153E / 67: 0.0000
- 155E / 68: 0.0000
- 157E / 69: 0.0000
- 159E / 70: 0.0000
- 161E / 71: 0.0000
- 163E / 72: 0.0000
- 165E / 73: 0.0000
- 167E / 74: 0.0000
- 169E / 75: 0.0000
- 171E / 76: 0.0000
- 173E / 77: 0.0000
- 175E / 78: 0.0000
- 177E / 79: 0.0000
- 179E / 80: 0.0000
-set mode/last ignore_errors
-go bench_avet
-! Bench_avet.jnl
-! ACM 8/99
-! benchmark script for testing external function avet.
-! Note: bench_avet_visual.jnl contains plots of similar computations
+let a = temp.units
+list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
+ VARIABLE : IS_ELEMENT_OF_STR (A, {"Kelvin", "Celsius", "DEG C"})
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ 1.000
-set mode ignore_errors
-can region
+
+GO bn_reset
+cancel mode verify
+GO err693_inconsistent_quote
+! inconsistent interpretation of surrounding double quotes
+! the original source of the problem is in PARSE_COMMAND
+! arg_start and arg_end are set to skip surrounding quotation marks.
+! But since this behavior permeates so many routines it is best to repair
+! the problem in ALL_1_ARG
+
+
+let foobar = 1
+LIST "foobar", "foobar" ! this is correct - list as strings
+ Column 1: str is "foobar"
+ Column 2: str is "foobar"
+ str str
+I / *: "foobar" "foobar"
+LIST "foobar" ! error: lists the value instead
+ VARIABLE : "foobar"
+ "foobar"
+
+! IF-THEN flow tests
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2214
+! bug 2214
+! If we put the "say hi" in parentheses, this seems to work.
+! But parentheses haven't previously been required, so there are a lot of
+! scripts that don't have them.
+
+* 12/14 note (sh) - Ferret handles this situation correctly because
+* PARSE_COMMAND acts on the semi-colons in the full command line *before*
+* it acts on the "IF". Thus the thress semicolon-connected commands
+* follow the same logical path through Ferret as if they were separated
+* onto three lines
+
+IF 0 THEN; rep/i=1:1 say ERROR; ENDIF
+
+IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF
+!-> REPEAT: I=1
+CORRECT
+
+(IF 0 THEN; rep/i=1:1 say ERROR; ENDIF)
+
+(IF 1 THEN; rep/i=1:1 say CORRECT; ENDIF)
+!-> REPEAT: I=1
+CORRECT
+
+!yes? quit
+!yes? quit
+!yes? ^Z
+!Suspended
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_2211
+! bug #2211
+
+
+IF 0 THEN
+ELSE
+ exit/script
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1860
+! from bug 1860
+! continue line found within grave accents
+
+CANCEL MODE VERIFY
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+This works:
+CORRECT IF THIS DISPLAYS
+
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1446
+! testing ticket 1446
+
+! the presence of a tab preceding the "!" comment caused a parsing error
+
+! the behavior of this even in v69+ today is problematic in that
+! it echos an ENDIF statement that should be a plain old skip
+
+IF 0 THEN
+ENDIF
+
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1681
+! testing ticker 1681
+
+!The third block of the following script issues an error:
+!ERROR: invalid command: ENDIF can only be used in an IF clause
+!
+!Looks like a parsing bug -- it seems the ENDIF inside the REPEAT is being
+!applied to the outermost IF. Note that the error goes away if we change
+!the outer 0 to a 1.
+
+
+say "test1"
+test1
+if 0 then
+endif
+
+say "test2"
+test2
+if 0 then
+endif
+
+say "test3"
+test3
+if 0 then
+endif
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1706
+! testing ticket 1706
+!
+def sym a say hi\\; say hi
+
+IF 0 THEN
+ENDIF
+
+! some versions (not v550 but yes v63 but not v6301) fail to say "here"
+IF 1 THEN
+ say here
+here
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err693_if_then_flow_1368 ! Jan 28, 2010, Ferret version 5.812
+! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
+
+! this is still a bug in V69+
+! the initial IF command is not being closed by the first ENDIF
+! it is skipping down to the elif command
+
+define symbol xend 180
+let key_flag = 0
+
+! test 1 - line 1 false condition should suppress both outputs
+IF `($xend) GT 360` THEN
+ !-> IF 0 THEN
+ENDIF
+
+
+! test 2 - line 1 false condition should cause else clause - "point G"
+let dxymin = 0.20
+if `dxymin lt 0.12` then
+ !-> if 0 then
+elif `dxymin lt 0.25` then
+ !-> elif 1 then
+ SAY "CORRECT. this message should display"
+CORRECT. this message should display
+endif
+
+! test 3 - this is from bug #918 -- looks like the same bug as #1368
+IF 0 THEN
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_start_missing
+! err693_ribbon_start_missing
+! 1/6/2015 ACM
+!
+! Bug 2226: If data starts with a missing-value and we're using (-inf) then
+! the ribbon plot started with the lowest color instead of plotting as for missing
+! Only the cases starting with missing data were incorrect previous to fixing this bug.
+
+DEFINE SYMBOL ribbon_command = PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3
+
+let/units=degrees_east xvar = {-177,-174,-186}
+let/units=degrees_north yvar = {-43, -45, -42}
+let vvar = {,271, 319}
+! This previously started with purple, not a gray missing-value point
+($ribbon_command)/title="(-inf) in levels" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="(-inf) in levels" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,,271,319}
+($ribbon_command)/title="start with several missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with several missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,,271,319,1000}
+($ribbon_command)/title="end large positive value" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end large positive value" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,271,319,1000,}
+($ribbon_command)/title="end with large positive and missing" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="end with large positive and missing" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {1.e7,,,271,319}
+($ribbon_command)/title="start with large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with large positive" xvar,yvar,vvar
+
+let/units=degrees_east xvar = {-177,-174,-186,-184,-196}
+let/units=degrees_north yvar = {-43, -45, -42, -45, -42}
+let vvar = {,1.e7,,271,319}
+($ribbon_command)/title="start with missing then large positive" xvar,yvar,vvar
+ !-> PLOT/VS/RIBBON/LINE/SYM/FAST/LEVELS=(-inf)(160,560,20)(INF)/THICK=3/title="start with missing then large positive" xvar,yvar,vvar
+
+
+GO bn_reset
+cancel mode verify
+GO err691_pt_in_poly
+! err691_pt_in_poly
+! ticket 1961: modulo longitude for pt_in_poly
+! and sending subset of the xy field
+
use coads_climatology
-set region/x=151E:179E/y=0
-let a = avet(sst)
-list a
- VARIABLE : AVET(SST)
+let xpts = {64,81,81,82,88,88,79,79,76,73,68,64}
+let ypts = {31,30,29,29,27,24,20,19,20,25,27,31}
+
+let pts = pt_in_poly(sst[L=5,x=60:90,y=15:35], xpts, ypts)
+shade/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
FILENAME : coads_climatology.cdf
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- 1S
- 45
- 151E / 66: 29.28
- 153E / 67: 29.39
- 155E / 68: 29.35
- 157E / 69: 29.03
- 159E / 70: 28.99
- 161E / 71: 29.15
- 163E / 72: 29.33
- 165E / 73: 29.01
- 167E / 74: 28.99
- 169E / 75: 29.00
- 171E / 76: 28.81
- 173E / 77: 28.66
- 175E / 78: 28.56
- 177E / 79: 28.79
- 179E / 80: 28.31
-list a - sst[l=@ave]
- VARIABLE : A - SST[L=@AVE]
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
+
+! Put the xpts on different modulo branches
+! Previously the list commands would have listed -1,-1
+
+let xpts0 = {64,81,81,82,88,88,79,79,76,73,68,64}
+let/title=lon/units=degrees_east xpts = xpts0 + 360
+
+shade/title="Plus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
FILENAME : coads_climatology.cdf
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 01-JAN 00:45 to 01-APR 08:12
- 1S
- 45
- 151E / 66: 0.000E+00
- 153E / 67: -3.553E-15
- 155E / 68: 0.000E+00
- 157E / 69: 0.000E+00
- 159E / 70: 3.553E-15
- 161E / 71: 7.105E-15
- 163E / 72: 3.553E-15
- 165E / 73: 0.000E+00
- 167E / 74: 0.000E+00
- 169E / 75: 3.553E-15
- 171E / 76: 0.000E+00
- 173E / 77: 3.553E-15
- 175E / 78: 0.000E+00
- 177E / 79: 3.553E-15
- 179E / 80: 3.553E-15
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
-can region
-let a = x[i=1:9,k=1:5] + t[l=1:5]
-let b = x[i=1:9,k=1:5]
-let c = avet(a)
-list b, c
- X: 0.5 to 9.5
- Column 1: B is X[I=1:9,K=1:5]
- Column 2: C is AVET(A)
- B C
-1 / 1: 1.000 4.00
-2 / 2: 2.000 5.00
-3 / 3: 3.000 6.00
-4 / 4: 4.000 7.00
-5 / 5: 5.000 8.00
-6 / 6: 6.000 9.00
-7 / 7: 7.000 10.00
-8 / 8: 8.000 11.00
-9 / 9: 9.000 12.00
+let/title=lon/units=degrees_east xpts = xpts0 - 360
-set mode/last ignore_errors
-go bench_pass_thru
-! Bench_pass_thru.jnl
-! ACM 8/99
-! benchmark script for testing external function pass_thru.
-! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+shade/title="Minus 360"/lev=(-2,2,1)/pal=ten_by_levels pts
+plot/vs/over/line/nolab xpts, ypts
+list minmax(pts)
+ VARIABLE : MINMAX(PTS)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 2 points (X)
+ 1 / 1: -1.000
+ 2 / 2: 1.000
-set mode ignore_errors
+GO bn_reset
+cancel mode verify
+GO err693_undetected_regrid_dset
+! err693_undetected_regrid_dset.jnl - Jan 2015
-can region
-let a = pass_thru(x)
-list a[i=1:20]
- VARIABLE : PASS_THRU(X)
- SUBSET : 20 points (X)
- 1 / 1: 1.00
- 2 / 2: 2.00
- 3 / 3: 3.00
- 4 / 4: 4.00
- 5 / 5: 5.00
- 6 / 6: 6.00
- 7 / 7: 7.00
- 8 / 8: 8.00
- 9 / 9: 9.00
- 10 / 10: 10.00
- 11 / 11: 11.00
- 12 / 12: 12.00
- 13 / 13: 13.00
- 14 / 14: 14.00
- 15 / 15: 15.00
- 16 / 16: 16.00
- 17 / 17: 17.00
- 18 / 18: 18.00
- 19 / 19: 19.00
- 20 / 20: 20.00
-set region/i=1:20
-list sin(a)
- VARIABLE : SIN(A)
- SUBSET : 20 points (X)
- 1 / 1: 0.8415
- 2 / 2: 0.9093
- 3 / 3: 0.1411
- 4 / 4: -0.7568
- 5 / 5: -0.9589
- 6 / 6: -0.2794
- 7 / 7: 0.6570
- 8 / 8: 0.9894
- 9 / 9: 0.4121
- 10 / 10: -0.5440
- 11 / 11: -1.0000
- 12 / 12: -0.5366
- 13 / 13: 0.4202
- 14 / 14: 0.9906
- 15 / 15: 0.6503
- 16 / 16: -0.2879
- 17 / 17: -0.9614
- 18 / 18: -0.7510
- 19 / 19: 0.1499
- 20 / 20: 0.9129
+! in GET_CONTEXT_MODS no check is made whether dataset name/number is
+! valid following "gdset = FIND_DSET_NUMBER( name(dstart:dend) )"
+
+use coads_climatology
+use levitus_climatology ! default to d=2
+
+canc var/all
+let myvar = temp
+let a = myvar[g=temp[d=bad_d]] ! THIS SHOULD BE DETECTED AS AN ERROR
+
+set mode ignore
+stat/l=1/x=180/y=0 a ! this *SHOULD* trigger an error. Yes. Detect it.
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err693_line_over_axis
+! Ticket 2232: line plots overlaid the plot axes
+show mode meta
+ MODE STATE ARGUMENT
+ METAFILE CANCELLED ferret.png
+! line plot with /VS draw on top of the axes
+let xval = {0.0, 0.2, 1.0, 0.8, 0}
+let yval = {0.0, 1.1, 1.1, 0.0, 0}
+plot/vs/line/thick=3/color=lightblue xval, yval
+
+! any line overlay may draw on the axes
+let xval = {0.0, 0.0, 0.8, 0.2, 0}
+let yval = {0.1, 1.2, 1.2, 0.1, 0.1}
+plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
+
+
+GO bn_reset
+cancel mode verify
+GO err693_save_packed
+! err693_save_packed.jnl
+! ticket 2240: bug writing multiple vars with one SAVE when scaled
+!
+! Previously saw a netcdf error because first variable was mis-scaled on writing.
+
+use err693_save_packed.nc
+save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
+
+GO bn_reset
+cancel mode verify
+GO err693_subspan_trans
+! err693_subspan_trans
+! bug 2241 3/9/2015
+
+use coads_climatology
+let a = sst[x=120:284,y=-2:2 at ave,t=@ave]
+save/clob/file=a.nc a
+can var a
+use a
+set reg/x=25:385
+let b = a[x=@min]
+
+set mode diag
+say `a[x=@min]`
+ getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ strip --> A[X=25E:25E(385)@MIN,D=2]
+ strip moduloing A on X axis: 0 83 dset: 2
+ reading A M: 1 dset: 2 I: 1 82 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ doing moduloing A on X axis: 1 82 dset: 2
+ doing --> A[X=25E:25E(385)@MIN,D=2]
+ -DELETE A M: 7 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+! This previously resulted in an error.
+say `b`
+ dealloc dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ getgrid B C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ eval B C: 6 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found A M: 8 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE B M: 6 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+can mode diag
+
+! What if the region for @MIN is in the saved portion?
+say `a[x=150:200 at min]`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+let b = a[x=150:200 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
+
+! What if the region for @MIN extends beyond the saved portion?
+say `a[x=200:300 at min]`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+let b = a[x=200:300 at min]
+say `b`
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
+
+! What if the region for @MIN is outside the saved portion?
+say `a[x=300:385 at min]`
+ !-> MESSAGE/CONTINUE bad
+bad
+let b = a[x=300:385 at min]
+say `b`
+ !-> MESSAGE/CONTINUE bad
+bad
+
+
+GO bn_reset
+cancel mode verify
+GO err693_repeat_err
+! err693_repeat_err.jnl
+! test fix for ticket 2244: Error handling in REPEAT
+
+! The second of these should result in an error - in debug mode
+! it instead was hitting an out-of-range subscript error.
+
+repeat/range=1:2/name=column repeat/range=1:2/name=row say `column`,`row`
+!-> REPEAT: COLUMN:1
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 1,1
+1,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 1,2
+1,2
+!-> REPEAT: COLUMN:2
+!-> REPEAT: ROW:1
+ !-> MESSAGE/CONTINUE 2,1
+2,1
+!-> REPEAT: ROW:2
+ !-> MESSAGE/CONTINUE 2,2
+2,2
+
+set mode ignore
+repeat/range=1:2/name=column repeat/range=1:2/name=row
+!-> REPEAT: COLUMN:1
+!-> REPEAT: COLUMN:2
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err693_edit_useratt
+! err693_edit_useratt.jnl
+! ticket 2249: set attribute properties for user-defined variable
+
+use err491_attval.cdf
+list/x=135.402W:135.321W/y=58.609 elev
+ VARIABLE : Surface elevation (meter)
+ DATA SET : K-Bay OAR3d model (200m)
+ FILENAME : err491_attval.cdf
+ SUBSET : 7 points (LONGITUDE)
+ LATITUDE : 58.6N
+ T (day) : 1.7837
+ 58.609N
+ 3
+ 135.402W / 45: ....
+ 135.389W / 46: ....
+ 135.375W / 47: ....
+ 135.362W / 48: 2.952
+ 135.348W / 49: 2.953
+ 135.335W / 50: 2.949
+ 135.321W / 51: 2.953
+
+
+! Rename the file variable, define a variable using its name
+set var/name=elev_in elev
+let elev = missing(elev_in, -1.e34)
+
+! Inherit attributes from the file variable.
+! cancel writing the scale attributes
+set att/like=elev_in elev
+can att/output elev.scale_factor
+can att/output elev.add_offset
+
+! set the bad-flag (can't do this before the SET ATT/LIKE
+set var/bad=-1.e34 elev
+
+! save
+save/clobber/file=a.nc elev
can var/all
-can region
+use a.nc
+list/x=135.402W:135.321W/y=58.609 elev
+ VARIABLE : Surface elevation (meter)
+ FILENAME : a.nc
+ SUBSET : 7 points (LONGITUDE)
+ LATITUDE : 58.6N
+ T (day) : 1.7837
+ 58.609N
+ 3
+ 135.402W / 45: ....
+ 135.389W / 46: ....
+ 135.375W / 47: ....
+ 135.362W / 48: 2.952
+ 135.348W / 49: 2.953
+ 135.335W / 50: 2.949
+ 135.321W / 51: 2.953
+
+
+GO bn_reset
+cancel mode verify
+GO err693_redef_rec_axis
+! err693_redef_rec_axis.jnl
+! ticket 2271. Redefining the record axis meant
+! that SHOW AXIS/FULL couldnt get the time axis info
+
+define axis/x=1:5:1 xax
+define axis/y=2:10:2 yax
+define axis/t=1:7:1 tredef
+let var = x[gx=xax] + y[gy=yax] + t[gt=tredef]
+save/clobber/file=a.nc var
+
+can var/all
+can axis xax
+can axis yax
+can axis tredef
+
+use a.nc
+define axis/t=1:7:1/units=days/t0=1-jan-2000 tredef
+
+! Previously the output had time range: ???
+show data/full
+ currently SET data sets:
+ 1> ./a.nc (default)
+
+ name title I J K L M N
+ VAR X[GX=XAX] + Y[GY=YAX] + T[GT=TR 1:5 1:5 ... 1:7 ... ...
+ on grid GSI1 with -1.E+34 for missing data
+ X=0.5:5.5 Y=1:11
+
+ time range: 02-JAN-2000 00:00 to 08-JAN-2000 00:00
+
+
+GO bn_reset
+cancel mode verify
+GO err693_frame_types
+! bn_frame_types.jnl
+! Ticket 2275
+! The default file type for FRAME was still HDF
+
+set mode ignore
use coads_climatology
-let a = pass_thru(sst[l=@ave,y=@sbx:11])
-list/x=50 a
- VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+shade/l=1 sst
+
+! This issued an error and quit
+frame/format=hdf/file=a.hdf
+
+! so did this
+frame/file=a.png
+
+! this is (always) ok
+frame/file=a.gif
+frame/format=gif file=a.plot
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err693_shape
+! err693_shape.jnl
+! bug 2273 shape of variable with various subexpressions
+
+use coads_climatology
+let a = sst[x=@ave]
+let a_clim = a[gt=MONTH_IRREG at mod]
+let a_anom = a - a_clim[gt=a at nrst]
+
+! Should all be YT
+say `a,r=shape` `a_clim[gt=a at nrst],r=shape` `a_anom,r=shape`
+ !-> MESSAGE/CONTINUE YT YT YT
+YT YT YT
+
+! Also works for size returns
+
+! Should be 180, 1, 1
+say `sst,r=isize` `a,r=isize` `a_anom,r=isize`
+ !-> MESSAGE/CONTINUE 180 1 1
+180 1 1
+
+
+GO bn_reset
+cancel mode verify
+GO err693_ef_axis_precision
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.94
+ ! Linux 2.6.32-504.12.2.el6.x86_64 64-bit - 03/20/15
+ ! 11-May-15 16:51
+
+define axis/f faxis = {0.001, 0.123, 0.234, 0.498}
+define axis/e eaxis = {1001.1009, 1234.005, 2112.321, 2520.45}
+let efvar = _M[ge=eaxis] + _n[gf=faxis]
+set view upper; plot/n=3 efvar
+set view lower; plot/m=2 efvar
+list/n=3 efvar
+ VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
+ SUBSET : 4 points (E)
+ F : 0.2
+ 1001.1 / 1: 4.000
+ 1234 / 2: 5.000
+ 2112.3 / 3: 6.000
+ 2520.4 / 4: 7.000
+list/m=2 efvar
+ VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
+ SUBSET : 4 points (F)
+ E : 1234
+ 0 / 1: 3.000
+ 0.12 / 2: 4.000
+ 0.23 / 3: 5.000
+ 0.5 / 4: 6.000
+q
+
+GO bn_reset
+cancel mode verify
+GO err693_string_results
+! err693_string_results.jnl
+! Ticket 2234, the LIST B returned the numeric pointer to the string.
+! *acm* 5/14/2015
+
+let b = IF a then "yes" else "no"
+let a = 1/0
+list b
+ VARIABLE : IF A THEN "yes" ELSE "no"
+ "no"
+
+! The LOAD C makes the data type of D correct
+let d = if c then "ok" else "not ok"
+let c = 1/0
+load C
+list d
+ VARIABLE : IF C THEN "ok" ELSE "not ok"
+ "not ok"
+
+GO bn_reset
+cancel mode verify
+GO err693_lev_nv_over
+! err693_lev_nv_over.jnl
+! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
+
+! draw any underlay to set up for polymark script
+use coads_climatology
+shade/x=120:250/Y=25s:65n/L=1/pal=white/nokey sst
+
+LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
+LET ypts = 15 + 20*SIN(2*3.14*I[I=1:50]/60)
+
+! Variable is a constant w/ negative value
+LET sst = -5 + 0*ypts
+
+! The poly/over command caused a Fortran runtime error in tm_fmt_sngl
+GO polymark polygon/over/lev=20v/key/title="SST" xpts,ypts,sst,square, 0.5
+
+
+GO bn_reset
+cancel mode verify
+GO err693_fcn_of_attvar
+! err693_fcn_of_attvar.jnl
+! Ticket 2291 Function of attribute-expression
+! returned just the first result
+
+use coads_climatology
+list sst.dimnames
+ VARIABLE : SST.DIMNAMES
FILENAME : coads_climatology.cdf
- SUBSET : 90 points (LATITUDE)
- LONGITUDE: 49E
- TIME : 01-JAN 00:45 to 01-APR 08:12
- 49E
- 15
- 89N / 90: ....
- 87N / 89: ....
- 85N / 88: ....
- 83N / 87: ....
- 81N / 86: ....
- 79N / 85: ....
- 77N / 84: ....
- 75N / 83: ....
- 73N / 82: ....
- 71N / 81: ....
- 69N / 80: ....
- 67N / 79: ....
+ SUBSET : 3 points (X)
+ 1 / 1:"COADSX"
+ 2 / 2:"COADSY"
+ 3 / 3:"TIME1"
+list dncase(sst.dimnames)
+ VARIABLE : DNCASE(SST.DIMNAMES)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"coadsx"
+ 2 / 2:"coadsy"
+ 3 / 3:"time1"
+list strlen( sst.dimnames)
+ VARIABLE : STRLEN( SST.DIMNAMES)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1: 6.000
+ 2 / 2: 6.000
+ 3 / 3: 5.000
+list substring(sst.dimnames,2,3)
+ VARIABLE : SUBSTRING(SST.DIMNAMES,2,3)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"OAD"
+ 2 / 2:"OAD"
+ 3 / 3:"IME"
+list dncase(substring(sst.dimnames,2,3))
+ VARIABLE : DNCASE(SUBSTRING(SST.DIMNAMES,2,3))
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (X)
+ 1 / 1:"oad"
+ 2 / 2:"oad"
+ 3 / 3:"ime"
+list ysequence(dncase(sst.dimnames))
+ VARIABLE : YSEQUENCE(DNCASE(SST.DIMNAMES))
+ FILENAME : coads_climatology.cdf
+ SUBSET : 3 points (Y)
+ 1 / 1:"coadsx"
+ 2 / 2:"coadsy"
+ 3 / 3:"time1"
+
+GO bn_reset
+cancel mode verify
+GO err693_isize_and_gcfcn
+! err693_isize_and_gcfcn.jnl
+! ticket 2213
+! SET REGION interacting with ABSTRACT AXES
+! When the variable using XSEQUENCE was defined, suddenly the
+! region was being applied (inconsistently).
+
+can mode verify
+8
+ GRID XABSTRACT
+ name axis # pts start end
+ ABSTRACT X 99999999 r 1 1.E+08
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+8
+ GRID XABSTRACT
+ name axis # pts start end
+ ABSTRACT X 99999999 r 1 1.E+08
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+8
+8 a
+8
+8 b
+8
+8 c
+8
+8 d
+8
+8 e
+8
+8 f
+8
+8 g
+8
+8 h
+
+GO bn_reset
+cancel mode verify
+GO err693_ribbon_scale
+! err693_ribbon_scale.jnl
+! ticket 2295: the vertical scale is mis-computed
+! 5/29/2015
+
+let var = {-81,-81,-81}
+let color = {2,2,2}
+plot/ribbon/key var,color
+
+! should be -82 to -80
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "-82.0000000"
+YAXIS_MAX = "-80.0000000"
+
+GO bn_reset
+cancel mode verify
+GO err693_parse_curly
+! err693_parse_curly.jnl
+! the sub-routine defines a string variable containing commands for overlays in
+! different directions. the bug was that the parser doesn't handle quoted strings
+! inside { } if those strings include curly braces.
+! The argument chooses one of the strings with commands and plots the overlay
+
+use gt4d011
+
+shade/i=100/l=1/pal=grayscale temp
+go err693_parse_curly.sub yz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+
+! list of valid shapes
+
+let prd_shapes = {"xy", "xz", "yz"}
+
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+
+let prd_overlays = {\
+ "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "yz"
+
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1 THEN
+ )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`]; IF `p1s_this_shape EQ p1s_shape` THEN; let p1s_ov = prd_overlays[i=`s`]; exit/loop; ENDIF; )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 0 THEN
+!-> REPEAT: S:3
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=3]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=3]
+ can var p1s_this_shape
+ENDIF
+
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}
+
+ shade/j=40/l=1/pal=grayscale temp
+go err693_parse_curly.sub xz
+! err693_parse_curly.sub
+! Define a variable with commands for overlays in different directions
+! the bug was that the parser doesn't handle quoted strings inside { } if those
+! strings include curly braces.
+! Choose one of the strings and plot the overlay
+
+! list of valid shapes
+
+let prd_shapes = {"xy", "xz", "yz"}
+
+! List of associated overlays
+! This is the part that's not working; due to bug #2296 we can't write {"...{}..."}.
+
+let prd_overlays = {\
+ "go land 6; go draw_line 180 -90 180 90 1; go draw_box 210 270 -5 5 6/dash=(.04,.06,.04,.06)",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}",\
+ "plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) 1e3*{-1,1,,-1,1,,-1,1},{85,85,,50,50,,20,20}"}
+
+! Then later when we're generating figures, we'll be
+! passing one of these shapes into a script like this:
+
+let p1s_shape = "$1%xy%"
+ !-> DEFINE VARIABLE p1s_shape = "xz"
+
+! For the specified shape, find the associated overlay command
+! (default is no overlay).
+let p1s_ov = ""
+IF `prd_shapes,r=isready` THEN
+ !-> IF 1 THEN
+ )
+ !-> rep/name=s/range=1:3 (let p1s_this_shape = prd_shapes[i=`s`]; IF `p1s_this_shape EQ p1s_shape` THEN; let p1s_ov = prd_overlays[i=`s`]; exit/loop; ENDIF; )
+!-> REPEAT: S:1
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=1]
+ !-> IF 0 THEN
+!-> REPEAT: S:2
+ !-> DEFINE VARIABLE p1s_this_shape = prd_shapes[i=2]
+ !-> IF 1 THEN
+ !-> DEFINE VARIABLE p1s_ov = prd_overlays[i=2]
+ can var p1s_this_shape
+ENDIF
+
+! generate a figure, with the appropriate overlay
+define symbol overcommands = `p1s_ov`
+ !-> define symbol overcommands = plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+($overcommands)
+ !-> plot/vs/ov/nolab/line=6/dash=(.02,.12,.02,.12) {-1e3,1e3,,-1e3,1e3,,-1e3,1e3,,-136,-136,,-126,-126}, {85,85,,50,50,,20,20,,-1e4,1e4,,-1e4,1e4}
+
+
+GO bn_reset
+cancel mode verify
+GO err693_list_missing
+! err693_list_missing.jnl
+
+let a= {1,2,3}
+let b = 1./0
+
+! Ths listing of b is .... was squashed onto the ends of values of a.
+! 1 / 1: 1.000..
+! 2 / 2: 2.000..
+
+list a,b
+ X: 0.5 to 3.5
+ Column 1: A is {1,2,3}
+ Column 2: B is 1./0
+ A B
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+
+GO bn_reset
+cancel mode verify
+GO err693_shf_subscr
+! err693_shf_subscr.jnl
+! ticket 2231 Subscripts used to compute @SHF-1 at the low end of the axis
+
+
+def ax/edge/z=0:40:10 zax_t
+def ax/edge/z=5:45:10 zax_w
+let zw = z[gz=zax_w]
+let zdiff = zw - missing(zw[z=@shf:-1],0)
+let zdiff_t = zdiff[gz=zax_t at asn]
+
+! a range of K shows the values correctly
+list zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ SUBSET : 4 points (Z)
+ 5 / 1: 10.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+
+! but just K=1 returned a K=0 error
+can mem
+list/k=1 zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ Z : 5
+ 10.00
+
+! Shift of +1
+can mem
+let zdiff = zw - missing(zw[z=@shf:1],0)
+list/k=4 zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ Z : 35
+ 40.00
+list/k=3:4 zdiff_t
+ VARIABLE : ZDIFF[GZ=ZAX_T at ASN]
+ SUBSET : 2 points (Z)
+ 25 / 3: -10.00
+ 35 / 4: 40.00
+
+GO bn_reset
+cancel mode verify
+GO err693_shift_w_region
+! err693_shift_w_region
+! Ticket 2300. In fact with bounds checking on, the list a[i=@shf] would have
+! caused a Fortran runtime error with out-of-bounds subscripts. The fix for
+! ticket 2301 fixes this as well.
+
+set region/x=10:20
+let a = {1,2,3}
+list a
+ VARIABLE : {1,2,3}
+ SUBSET : 3 points (X)
+ 1 / 1: 1.000
+ 2 / 2: 2.000
+ 3 / 3: 3.000
+list a[i=@shf]
+ VARIABLE : {1,2,3}
+ shifted by 1 pts on X
+ SUBSET : 3 points (X)
+ 1 / 1: 2.000
+ 2 / 2: 3.000
+ 3 / 3: ....
+cancel region
+list a[i=@shf]
+ VARIABLE : {1,2,3}
+ shifted by 1 pts on X
+ SUBSET : 3 points (X)
+ 1 / 1: 2.000
+ 2 / 2: 3.000
+ 3 / 3: ....
+
+
+GO bn_reset
+cancel mode verify
+GO err693_scalar_grids
+! err693_scalar_grids.jnl
+! See ticket 1602
+
+! multiplication by scalar variable "let one = 1" added
+! abstract axes to the expression in all directions not
+! already reperesented in the grid.
+
+
+! The T averaging is ignored; no T direction in the grid.
+use levitus_climatology
+let a = temp[x=140,y=0,z=0]
+list a[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : TEMP[X=140,Y=0,Z=0]
+ FILENAME : levitus_climatology.cdf
+ LONGITUDE: 139.5E
+ LATITUDE : 0.5S
+ DEPTH (m): 0
+ 29.31
+
+! Multiply by a variable which is a constant (prev. this
+! resulted in an illegal use of transform error.)
+let one = 1
+let b = one*a
+list b[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : ONE*A
+ FILENAME : levitus_climatology.cdf
+ LONGITUDE: 139.5E
+ LATITUDE : 0.5S
+ DEPTH (m): 0
+ 29.31
+
+! Test with a constant-array variable.
+let two = {2}
+let c = two*a
+list c[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : TWO*A
+ FILENAME : levitus_climatology.cdf
+ X : 1
+ LATITUDE : 0.5S
+ DEPTH (m): 0
+ 58.61
+
+
+! check interactions with GC functions (prev. this
+! resulted in an illegal use of transform error.)
+LET v = X[x=1:4:1] + Y[Y=.1:.4:.1]
+LET a = XSEQUENCE( v[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+LIST a[t=1-jan-0001:1-jan-0020 at ave]
+ VARIABLE : XSEQUENCE( V[I=2:3,J=2:3] ) + Z[Z=.01:.02:.01]
+ SUBSET : 4 by 2 points (X-Z)
+ 1 2 3 4
+ 1 2 3 4
+ 0.01 / 1: 2.210 3.210 2.310 3.310
+ 0.02 / 2: 2.220 3.220 2.320 3.320
+list b
+ VARIABLE : ONE*A
+ SUBSET : 4 by 2 points (X-Z)
+ 1 2 3 4
+ 1 2 3 4
+ 0.01 / 1: 2.210 3.210 2.310 3.310
+ 0.02 / 2: 2.220 3.220 2.320 3.320
+
+list b[x=@ave,k=@ave]
+ VARIABLE : ONE*A
+ X : 0.5 to 4.5 (XZ ave)
+ Z : 0.005 to 0.025 (XZ ave)
+ 2.765
+
+
+*** Running test: bn_permute_ascii.jnl
+[?1034h! bn_permute_ascii.jnl
+! test permutations when reading ascii data, in E and F directions
+! 11/18/2014
+! see ticket 2217: was not working for grids in E and F
+
+
+! First with T axis
+
+! unpermuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM 1:4 ... ... 1:12 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 4 by 12 points (X-T)
+ 1 2 3 4
+ 1 2 3 4
+ 1 / 1: -6.85 -6.75 -6.65 -6.55
+ 2 / 2: -11.71 -11.72 -11.73 -11.74
+ 3 / 3: -19.12 -19.22 -19.32 -19.42
+ 4 / 4: -24.81 -24.82 -24.83 -24.84
+ 5 / 5: -27.19 -27.29 -27.39 -27.49
+ 6 / 6: -28.51 -28.52 -28.53 -28.54
+ 7 / 7: -30.27 -30.37 -30.47 -30.57
+ 8 / 8: -31.34 -31.54 -31.64 -31.74
+ 9 / 9: -29.34 -29.44 -29.54 -29.64
+ 10 / 10: -23.29 -23.39 -23.49 -23.59
+ 11 / 11: -14.91 -14.92 -14.93 -14.94
+ 12 / 12: -8.09 -8.19 -8.29 -8.39
+
+! permuted
+def axis/t=1:12:1 t12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/t=t12 txgrid
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM 1:4 ... ... 1:12 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 4 by 12 points (X-T)
+ 1 2 3 4
+ 1 2 3 4
+ 1 / 1: -6.85 -6.75 -6.65 -6.55
+ 2 / 2: -11.71 -11.72 -11.73 -11.74
+ 3 / 3: -19.12 -19.22 -19.32 -19.42
+ 4 / 4: -24.81 -24.82 -24.83 -24.84
+ 5 / 5: -27.19 -27.29 -27.39 -27.49
+ 6 / 6: -28.51 -28.52 -28.53 -28.54
+ 7 / 7: -30.27 -30.37 -30.47 -30.57
+ 8 / 8: -31.34 -31.54 -31.64 -31.74
+ 9 / 9: -29.34 -29.44 -29.54 -29.64
+ 10 / 10: -23.29 -23.39 -23.49 -23.59
+ 11 / 11: -14.91 -14.92 -14.93 -14.94
+ 12 / 12: -8.09 -8.19 -8.29 -8.39
+
+! Then same with F axis
+can data/all
+
+def axis/f=1:12:1 f12
+define axis/x=1:4:1 x4ax
+def grid/x=x4ax/f=f12 fxgrid
+ FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM 1:4 ... ... ... ... 1:12
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 4 by 12 points (X-F)
+ 1 2 3 4
+ 1 2 3 4
+ 1 / 1: -6.85 -6.75 -6.65 -6.55
+ 2 / 2: -11.71 -11.72 -11.73 -11.74
+ 3 / 3: -19.12 -19.22 -19.32 -19.42
+ 4 / 4: -24.81 -24.82 -24.83 -24.84
+ 5 / 5: -27.19 -27.29 -27.39 -27.49
+ 6 / 6: -28.51 -28.52 -28.53 -28.54
+ 7 / 7: -30.27 -30.37 -30.47 -30.57
+ 8 / 8: -31.34 -31.54 -31.64 -31.74
+ 9 / 9: -29.34 -29.44 -29.54 -29.64
+ 10 / 10: -23.29 -23.39 -23.49 -23.59
+ 11 / 11: -14.91 -14.92 -14.93 -14.94
+ 12 / 12: -8.09 -8.19 -8.29 -8.39
+
+! Read same data in y-z-t
+can data/all
+
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 1:6 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-T)
+ 1 2
+ 1 2
+ ---- L:1 T: 1
+ 1 / 1: -6.85 -11.71
+ 2 / 2: -19.12 -24.81
+ 3 / 3: -27.19 -28.51
+ 4 / 4: -30.27 -31.34
+ ---- L:2 T: 2
+ 1 / 1: -29.34 -23.29
+ 2 / 2: -14.91 -8.09
+ 3 / 3: -6.75 -11.72
+ 4 / 4: -19.22 -24.82
+ ---- L:3 T: 3
+ 1 / 1: -27.29 -28.52
+ 2 / 2: -30.37 -31.54
+ 3 / 3: -29.44 -23.39
+ 4 / 4: -14.92 -8.19
+ ---- L:4 T: 4
+ 1 / 1: -6.65 -11.73
+ 2 / 2: -19.32 -24.83
+ 3 / 3: -27.39 -28.53
+ 4 / 4: -30.47 -31.64
+ ---- L:5 T: 5
+ 1 / 1: -29.54 -23.49
+ 2 / 2: -14.93 -8.29
+ 3 / 3: -6.55 -11.74
+ 4 / 4: -19.42 -24.84
+ ---- L:6 T: 6
+ 1 / 1: -27.49 -28.54
+ 2 / 2: -30.57 -31.74
+ 3 / 3: -29.64 -23.59
+ 4 / 4: -14.94 -8.39
+
+! And permuted
+
+can data/all
+
+def axis/t=1:6:1 t6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/t=t6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 1:6 ... ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-T)
+ 1 2
+ 1 2
+ ---- L:1 T: 1
+ 1 / 1: -6.85 -30.27
+ 2 / 2: -6.75 -30.37
+ 3 / 3: -6.65 -30.47
+ 4 / 4: -6.55 -30.57
+ ---- L:2 T: 2
+ 1 / 1: -11.71 -31.34
+ 2 / 2: -11.72 -31.54
+ 3 / 3: -11.73 -31.64
+ 4 / 4: -11.74 -31.74
+ ---- L:3 T: 3
+ 1 / 1: -19.12 -29.34
+ 2 / 2: -19.22 -29.44
+ 3 / 3: -19.32 -29.54
+ 4 / 4: -19.42 -29.64
+ ---- L:4 T: 4
+ 1 / 1: -24.81 -23.29
+ 2 / 2: -24.82 -23.39
+ 3 / 3: -24.83 -23.49
+ 4 / 4: -24.84 -23.59
+ ---- L:5 T: 5
+ 1 / 1: -27.19 -14.91
+ 2 / 2: -27.29 -14.92
+ 3 / 3: -27.39 -14.93
+ 4 / 4: -27.49 -14.94
+ ---- L:6 T: 6
+ 1 / 1: -28.51 -8.09
+ 2 / 2: -28.52 -8.19
+ 3 / 3: -28.53 -8.29
+ 4 / 4: -28.54 -8.39
+
+! Now with Y-Z-E
+
+can data/all
+
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 ... 1:6 ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-E)
+ 1 2
+ 1 2
+ ---- M:1 E: 1
+ 1 / 1: -6.85 -11.71
+ 2 / 2: -19.12 -24.81
+ 3 / 3: -27.19 -28.51
+ 4 / 4: -30.27 -31.34
+ ---- M:2 E: 2
+ 1 / 1: -29.34 -23.29
+ 2 / 2: -14.91 -8.09
+ 3 / 3: -6.75 -11.72
+ 4 / 4: -19.22 -24.82
+ ---- M:3 E: 3
+ 1 / 1: -27.29 -28.52
+ 2 / 2: -30.37 -31.54
+ 3 / 3: -29.44 -23.39
+ 4 / 4: -14.92 -8.19
+ ---- M:4 E: 4
+ 1 / 1: -6.65 -11.73
+ 2 / 2: -19.32 -24.83
+ 3 / 3: -27.39 -28.53
+ 4 / 4: -30.47 -31.64
+ ---- M:5 E: 5
+ 1 / 1: -29.54 -23.49
+ 2 / 2: -14.93 -8.29
+ 3 / 3: -6.55 -11.74
+ 4 / 4: -19.42 -24.84
+ ---- M:6 E: 6
+ 1 / 1: -27.49 -28.54
+ 2 / 2: -30.57 -31.74
+ 3 / 3: -29.64 -23.59
+ 4 / 4: -14.94 -8.39
+
+can data/all
+
+def axis/e=1:6:1 e6ax
+define axis/z=1:4:1 z4ax
+define axis/y=1:2:1 y2ax
+def grid/y=y2ax/z=z4ax/e=e6ax grid3d
+FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
+sh dat
+ currently SET data sets:
+ 1> ./fxdata.dat (default)
+ name title I J K L M N
+ TM TM ... 1:2 1:4 ... 1:6 ...
+
+list tm
+ VARIABLE : TM
+ FILENAME : fxdata.dat
+ SUBSET : 2 by 4 by 6 points (Y-Z-E)
+ 1 2
+ 1 2
+ ---- M:1 E: 1
+ 1 / 1: -6.85 -30.27
+ 2 / 2: -6.75 -30.37
+ 3 / 3: -6.65 -30.47
+ 4 / 4: -6.55 -30.57
+ ---- M:2 E: 2
+ 1 / 1: -11.71 -31.34
+ 2 / 2: -11.72 -31.54
+ 3 / 3: -11.73 -31.64
+ 4 / 4: -11.74 -31.74
+ ---- M:3 E: 3
+ 1 / 1: -19.12 -29.34
+ 2 / 2: -19.22 -29.44
+ 3 / 3: -19.32 -29.54
+ 4 / 4: -19.42 -29.64
+ ---- M:4 E: 4
+ 1 / 1: -24.81 -23.29
+ 2 / 2: -24.82 -23.39
+ 3 / 3: -24.83 -23.49
+ 4 / 4: -24.84 -23.59
+ ---- M:5 E: 5
+ 1 / 1: -27.19 -14.91
+ 2 / 2: -27.29 -14.92
+ 3 / 3: -27.39 -14.93
+ 4 / 4: -27.49 -14.94
+ ---- M:6 E: 6
+ 1 / 1: -28.51 -8.09
+ 2 / 2: -28.52 -8.19
+ 3 / 3: -28.53 -8.29
+ 4 / 4: -28.54 -8.39
+
+*** Running test: bn_lon_lat_time_string.jnl
+[?1034h! bn_lon_lat_time_string.jnl
+! Test function written for LAS, to create profile labels from
+! a list of lnogitudes, latitudes, times, and a prefix string.
+
+show function lon_lat_time_string
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
+ Generate strings from longitude,latitude,time
+ longitude: Station longitude
+ latitude: Station latitude
+ time: numeric times
+ time_axis: Varible with a time axis to use to convert time to time strings
+ string to prepend: A label to start the strings (STRING)
+LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
+ Generate names based on longitude,latitude,time,and a string
+ longitude: Station longitude
+ latitude: Station latitude
+ time: numeric times
+ time_axis: Varible with a time axis to use to convert time to time strings
+ string to prepend: A label to start the names with (STRING)
+
+! Longitudes are translated to 0:360 range
+let lon = {-172.44, 210.01, -19.5}
+
+! latitudes are labeled N or S
+let lat = {3.12, 4.9, -15.03}
+
+! Time steps are interpreted in terms of a time axis
+let time = {1,2,3}
+define axis/t=1-jan-2001:31-jan-2001:1/units=days/t0=1-jan-2001 taxis
+let tt = t[gt=taxis]
+
+list lon_lat_time_string(lon, lat, time, tt, "my_string")
+ VARIABLE : LON_LAT_TIME_STRING(LON, LAT, TIME, TT, "my_string")
+ SUBSET : 3 points (X)
+ 1 / 1:"my_string_187.6E_3.12N_02-JAN-2001"
+ 2 / 2:"my_string_210E_4.9N_03-JAN-2001"
+ 3 / 3:"my_string_340.5E_15.03S_04-JAN-2001"
+
+*** Running test: bn_save_justdim.jnl
+[?1034h! bn_save_justdim.jnl
+! When a dataset has axes that are dimensions but not 1-D coordinate variables,
+! no longer save the coordinate axis that Ferret creates from the dimension.
+!
+! Allows for a dimension and a 2-D variable to have the same name.
+! see ticket 2227
+! 1/21/2015 ACM
+
+use twodtime.nc
+sh dat
+ currently SET data sets:
+ 1> ./twodtime.nc (default)
+ name title I J K L M N
+ TIME GRIB forecast or observation ti ... ... ... 1:8 ... 1:3
+
+
+! previously this gave a name-in-use error
+save/file=a.nc/clobber time
+
+! The file has 2D TIME variable, and TIME as a dimension.
+sp ncdump a.nc >> all_ncdump.out
+
+! Now, keep case and axis name as on input
+CANCEL MODE upcase
+
+save/clobber/keep/file=a.nc time
+sp ncdump a.nc >> all_ncdump.out
+
+SET MODE/LAST upcase_output
+*** Running test: bn_time2d.jnl
+[?1034h! bn_time2d.jnl
+! 1/30/2015 ACM
+
+! initial changes to handle 2d time variable: forecast and time
+! plot both axes as formatted time axes.
+
+use twodtime.nc
+sh dat
+ currently SET data sets:
+ 1> ./twodtime.nc (default)
+ name title I J K L M N
+ TIME GRIB forecast or observation ti ... ... ... 1:8 ... 1:3
+
+sh att time
+ attributes for dataset: ./twodtime.nc
+ time.units = calendar Month since 2014-11-01T00:00:00Z
+ time.long_name = GRIB forecast or observation time
+ time.calendar = proleptic_gregorian
+ time.bounds = time_bounds
+ time.history = From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD
+
+! The file has the t axis as just a dimension. Define another
+! axis with time units
+
+def axis/t=1:8:1/units=month/t0=1-nov-2014 taxis
+let time2d = time[gt=taxis at asn]
+set att/like=time time2d
+
+shade time2d
+shade/trans time2d
+*** Running test: bn_legend_labels.jnl
+[?1034h! bn_legend_labels.jnl
+! The legend labels on a multi-line plot describe the
+! variable and context but are not controlable by the user.
+!
+! /KEY=title tells Ferret to label the legend with the variable
+! title.
+! *acm* 2/4/2015 Ticket 2231
+
+use coads_climatology
+let/title=January sst1 = sst[l=1]
+let/title=February sst2 = sst[l=2]
+let/title=March sst3 = sst[l=3]
+
+! Draw a plot and show the labels on the legend.
+plot/x=300/y=20:65 sst1,sst2,sst3
+sh sym lab7,lab8,lab9
+
+! Draw a plot with legend labeled with the variable titles.
+plot/x=300/y=20:65/key=title sst1,sst2,sst3
+sh sym lab7,lab8,lab9
+*** Running test: bn_DQ.jnl
+[?1034h! bn_DQ.jnl *sh* 2/2015
+! test the use of _DQ_ and _SQ_ in lieu of " and '
+
+let foobar = 1
+let foobar_ = 1
+
+LIST foobar, foobar_
+ Column 1: FOOBAR is 1
+ Column 2: FOOBAR_ is 1
+ FOOBAR FOOBAR_
+I / *: 1.000 1.000
+
+LIST "foobar" ! bug fix: pre-V694 used to list the value of foobar
+ VARIABLE : "foobar"
+ "foobar"
+let a = "foobar"
+list a
+ VARIABLE : "foobar"
+ "foobar"
+
+list _DQ_foobar_DQ_
+ VARIABLE : _DQ_foobar_DQ_
+ "foobar"
+let a = _DQ_foobar_DQ_
+list a
+ VARIABLE : _DQ_foobar_DQ_
+ "foobar"
+
+! ======
+list "_DQ_foobar_DQ_"
+ VARIABLE : "_DQ_foobar_DQ_"
+ "_DQ_foobar_DQ_"
+let a = "_DQ_foobar_DQ_"
+list a
+ VARIABLE : "_DQ_foobar_DQ_"
+ "_DQ_foobar_DQ_"
+
+list _DQ_"foobar"_DQ_
+ VARIABLE : _DQ_"foobar"_DQ_
+ ""foobar""
+let a = _DQ_"foobar"_DQ_
+list a
+ VARIABLE : _DQ_"foobar"_DQ_
+ ""foobar""
+
+! ======
+list 'FOOBAR'
+ VARIABLE : 1
+ 1.000
+let a = 'FOOBAR'
+list a
+ VARIABLE : 'FOOBAR'
+ 1.000
+
+list _SQ_FOOBAR_SQ_
+ VARIABLE : 1
+ 1.000
+let a = _SQ_FOOBAR_SQ_
+list a
+ VARIABLE : _SQ_FOOBAR_SQ_
+ 1.000
+
+! ======
+list "'foobar'"
+ VARIABLE : "'foobar'"
+ "'foobar'"
+let a = "'foobar'"
+list a
+ VARIABLE : "'foobar'"
+ "'foobar'"
+
+list _DQ_'foobar'_DQ_
+ VARIABLE : _DQ_'foobar'_DQ_
+ "'foobar'"
+let a = _DQ_'foobar'_DQ_
+list a
+ VARIABLE : _DQ_'foobar'_DQ_
+ "'foobar'"
+
+! ======
+list "_SQ_foobar_SQ_"
+ VARIABLE : "_SQ_foobar_SQ_"
+ "_SQ_foobar_SQ_"
+let a = "_SQ_foobar_SQ_"
+list a
+ VARIABLE : "_SQ_foobar_SQ_"
+ "_SQ_foobar_SQ_"
+
+list _DQ__SQ_foobar_SQ__DQ_
+ VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+ "_SQ_foobar_SQ_"
+let a = _DQ__SQ_foobar_SQ__DQ_
+list a
+ VARIABLE : _DQ__SQ_foobar_SQ__DQ_
+ "_SQ_foobar_SQ_"
+
+! ======
+list 'FOOBAR' + 'FOOBAR'
+ VARIABLE : 'FOOBAR' + 'FOOBAR'
+ 2.000
+let a = 'FOOBAR' + 'FOOBAR'
+list a
+ VARIABLE : 'FOOBAR' + 'FOOBAR'
+ 2.000
+
+list _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_ ! should behave like the preceding
+ VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+ 2.000
+let a = _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+list a
+ VARIABLE : _SQ_FOOBAR_SQ_ + _SQ_FOOBAR_SQ_
+ 2.000
+
+! ====== demonstrate hiding all sorts of characters
+let a = _DQ_'"+-/;_SQ_foobar"'_DQ_
+list a
+ VARIABLE : _DQ_'"+-/;_SQ_foobar"'_DQ_
+ "'"+-/;_SQ_foobar"'"
+
+! ======
+say "hello"
+hello
+say _DQ_hello_DQ_
+hello
+
+! ======
+list {"foobar","foobar"}
+ VARIABLE : {"foobar","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+let a = {"foobar","foobar"}
+list a
+ VARIABLE : {"foobar","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+
+list {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+let a = {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+list a
+ VARIABLE : {_DQ_foobar_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"foobar"
+ 2 / 2:"foobar"
+
+list {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_} ! DQ used to protect '"'
+ VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:""foobar""
+ 2 / 2:""foobar""
+let a = {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+list a
+ VARIABLE : {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:""foobar""
+ 2 / 2:""foobar""
+
+! ======
+list {SPAWN:"ls weird_name1.cdf","foobar"}
+ VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+list a
+ VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+
+list {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list a
+ VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+
+list {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+ VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list a
+ VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ SUBSET : 2 points (X)
+ 1 / 1:"weird_name1.cdf"
+ 2 / 2:"foobar"
+
+! ======
+! in repl_exprns:
+say `"=" EQ "="`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_=_DQ_ EQ _DQ_=_DQ_`
+ !-> MESSAGE/CONTINUE 1
+1
+say `_DQ_"="_DQ_ EQ _DQ_"="_DQ_` ! DQ used to protect '"'
+ !-> MESSAGE/CONTINUE 1
+1
+
+! in xeq_if:
+IF 1 THEN SAY "I is too big" ENDIF
+I is too big
+IF 1 THEN SAY _DQ_I is too big_DQ_ ENDIF
+I is too big
+IF 1 THEN SAY _DQ_"I is too big"_DQ_ ENDIF ! DQ used to protect '"'
+"I is too big"
+
+! ======
+DEFINE SYMBOL a "foobar"
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+DEFINE SYMBOL a _DQ_foobar_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE foobar
+foobar
+
+! ======
+DEFINE SYMBOL a "(`foobar,return=xaxis`)"
+ !-> DEFINE SYMBOL a "(ABSTRACT)"
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+DEFINE SYMBOL a _DQ_(`foobar,return=xaxis`)_DQ_
+ !-> DEFINE SYMBOL a _DQ_(ABSTRACT)_DQ_
+say ($a)
+ !-> MESSAGE/CONTINUE (ABSTRACT)
+(ABSTRACT)
+
+! ======
+GO bn_DQ.sub _DQ_+-/_SQ_\!foo"bar;_SQ_"_DQ_ "_DQ_+-/_SQ_\!foobar;_SQ_"
+! bn_DQ.sub arg_with_DQ arg_with_quotes
+
+SAY _DQ_ "-quotations ok as in $1%any_arg_with_quotes%_DQ_
+ !-> MESSAGE/CONTINUE _DQ_ "-quotations ok as in +-/_SQ_!foo"bar;_SQ_"_DQ_
+ "-quotations ok as in +-/_SQ_!foo"bar;_SQ_"
+SAY "_DQ_ delimiters ok as in $2%any_arg_with_DQ%"
+ !-> MESSAGE/CONTINUE "_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_"
+_DQ_ delimiters ok as in _DQ_+-/_SQ_!foobar;_SQ_
+
+
+! ====== string arguments to functions
+list STRCAT( "HELL" , "O" )
+ VARIABLE : STRCAT( "HELL" , "O" )
+ "HELLO"
+list STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+ VARIABLE : STRCAT(_DQ_HELL_DQ_,_DQ_O_DQ_)
+ "HELLO"
+
+! ======
+let/title= "title of A" a = 1
+list a
+ VARIABLE : title of A
+ 1.000
+let/title=_DQ_title of A_DQ_ a = 1
+list a
+ VARIABLE : title of A
+ 1.000
+let/title=_DQ_"title of A"_DQ_ a = 1 ! DQ used to protect '"'
+list a
+ VARIABLE : "title of A"
+ 1.000
+
+! ======
+use weird_name1.cdf
+list 'v2-and-minus'[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list 'v2-and-minus'[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list _SQ_v2-and-minus_SQ_[i=4:6]
+ VARIABLE : SIN(2+I/10)
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: 0.6755
+ 5 / 5: 0.5985
+ 6 / 6: 0.5155
+list 'v2-and-minus'[i=4:6] / 'X'[i=4:6]
+ VARIABLE : 'v2-and-minus'[I=4:6] / 'X'[I=4:6]
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: -0.8741
+ 5 / 5: -0.8482
+ 6 / 6: -0.8166
+list _SQ_v2-and-minus_SQ_[i=4:6] / _SQ_X_SQ_[i=4:6]
+ VARIABLE : _SQ_v2-and-minus_SQ_[I=4:6] / _SQ_X_SQ_[I=4:6]
+ FILENAME : weird_name1.cdf
+ SUBSET : 3 points (X)
+ 4 / 4: -0.8741
+ 5 / 5: -0.8482
+ 6 / 6: -0.8166
+
+! ======
+SET REGION/T= "1-jan-2001":"15-jan-2001"
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001_DQ_:_DQ_15-jan-2001_DQ_
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+SET REGION/T= "1-jan-2001:12:00":"15-jan-2001 12:00"
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+SET REGION/T=_DQ_1-jan-2001:12:00_DQ_:_DQ_15-jan-2001 12:00_DQ_
+SHOW REGION
+default region:
+ X/I is unspecified
+ Y/J is unspecified
+ Z/K is unspecified
+ T=-6.3146E+10:-6.3147E+10
+ E/M is unspecified
+ F/N is unspecified
+
+! ======
+DEFINE ATTRIBUTE foobar.some_text = "some text about foobar"
+SHOW ATTRIBUTE/ALL foobar
+ attributes for user-defined variables
+ foobar.long_name = 1
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar
+DEFINE ATTRIBUTE foobar.some_text = _DQ_some text about foobar_DQ_
+SHOW ATTRIBUTE/ALL foobar
+ attributes for user-defined variables
+ foobar.long_name = 1
+ foobar.missing_value = -1.E+34
+ foobar.some_text = some text about foobar
+DEFINE ATTR foobar.some_text = _DQ_"quoted attribute"_DQ_ ! DQ protects '"'
+SHOW ATTRIBUTE/ALL foobar
+ attributes for user-defined variables
+ foobar.long_name = 1
+ foobar.missing_value = -1.E+34
+ foobar.some_text = "quoted attribute"
+
+! ======
+SPAWN "ls weird_name1.*"
+weird_name1.cdf
+SPAWN _DQ_ls weird_name1.*_DQ_
+weird_name1.cdf
+
+! ======
+LET a = {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+LIST a
+ VARIABLE : {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+ SUBSET : 3 points (X)
+ 1 / 1:"first.nc"
+ 2 / 2:"weird_name1.cdf"
+ 3 / 3:"last.nc"
+LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+LIST a
+ VARIABLE : {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+ SUBSET : 3 points (X)
+ 1 / 1:"first.nc"
+ 2 / 2:"weird_name1.cdf"
+ 3 / 3:"last.nc"
+
+! =========================
+! !!!!!! TEMPORARY LINE
+! !!!!!! see bug report err693_xeq_show.jnl
+show data ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
+ currently SET data sets:
+ 1> ./weird_name1.cdf (default)
+ name title I J K L M N
+ v1 lower case v1 1:20 ... ... ... ... ...
+ v2-and-minus
+ SIN(2+I/10) 1:20 ... ... ... ... ...
+ V1 Upper case V1 1:20 ... ... ... ... ...
+ I SIN(4+I/10) 1:20 ... ... ... ... ...
+ X SIN(5+I/10) 1:20 ... ... ... ... ...
+
+! !!!!!!
+! =========================
+ ! ======
+define grid/x=_DQ_v1_DQ_ gg
+show grid gg
+ GRID GG
+ name axis # pts start end
+ XAX1_20 X 20 r 1 20
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+
+! ======
+LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
+LIST A
+ VARIABLE : 'A title w/ "sq"'. Ship_Ka'imimoana
+ 1.000
+
+! ======
+contour/LEVELS= "(-10,10,2)DARK(-10,10,8)" \
+ 10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+contour/LEVELS= _DQ_(-10,10,2)DARK(-10,10,8)_DQ_ \
+ 10*SIN(X[x=1:5:.1])*COS(Y[Y=1:5:.1])
+
+! ====== parse, parsex routines
+!plot/set x[i=1:3]^2
+!ppl title "'A title w/ single quotes'. Ship Ka'imimoana"
+!ppl plot
+!label 2,5,0 "'A title w/ single quotes'. Ship Ka'imimoana"
+
+plot/set x[i=1:3]^2
+ppl title _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' for emacs
+ppl plot
+label 2,5,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+ppl %label 2,4,0 _DQ_'A title w/ "single quotes"'. Ship_Ka'imimoana_DQ_ ! ' emacs
+
+! ====== EQUAL_PEMUTE
+list/order=_DQ_yx_DQ_ 10*i[i=1:3] + j[j=1:2]
+ VARIABLE : 10*I[I=1:3] + J[J=1:2]
+ SUBSET : 2 by 3 points (Y-X)
+ 1 2
+ 1 2
+ 1 / 1: 11.00 12.00
+ 2 / 2: 21.00 22.00
+ 3 / 3: 31.00 32.00
+
+! ====== EQUAL_COLOR
+plot/color=_DQ_red_DQ_ i[i=1:100]^2
+
+! ====== EQUAL_RANGE
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980" \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980_DQ_ \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+! ==> THE clean_draconian FILTER REMOVES THE FOLLOWING DATE-TIME LINES FROM LOG
+plot/vlim=-2:2/hlim="1-jan-1980":"15-feb-1980:12:00" \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
+ SIN(t[t=1-jan-1980:1-feb-1980:1]/5)
+
+! the following usages for _DQ_ and _SQ_ are NOT supported:
+! 1. internal PLOT+ syntax
+! e.g. PPL XFOR (i5, ''LONW'')
+
+! 2. quote used as a delimiter for symbol substitution
+! e.g. ($mysymbol"0|red>1|green>2") ! several single char als. e.g. "%"
+
+! in xeq_set: double quotes around SET MODE argument -- _DQ_ not supported
+
+! in put_label: special hack for "'date'" -- _SQ_ not supported
+
+! it isn't clear that there is really a requirement for the _SQ_ syntax at all
+! since we are adding this feature to meet our own needs in LAS, we won't
+! make the extra effort to hit all of the obscure cases. As a result, the
+! occurrences of IF string .EQ. "'" in these routines will be ignored
+! - break_varname
+! - break_varattname
+! - inherit_attrs
+
+! in xeq_define.F: DEFINE AXIS/NAME='my-name' is of unclear purpose
+*** Running test: bn695_bug_fixes.jnl
+[?1034h! bn695_bug_fixes
+! test various fixes that went into version 6.95
+
+GO bn_reset
+cancel mode verify
+GO err694_shf_missing
+! err694_shf_missing.jnl
+! Test the fix for ticket 2314
+
+! This had been getting a missing-result; now is correct
+use gt4d011.cdf
+list/i=100/j=50/k=1/l=24 temp[l=@shf]
+ VARIABLE : TEMPERATURE (deg. C)
+ FILENAME : gt4d011.cdf
+ LONGITUDE: 130.5W
+ LATITUDE : 1.5N
+ DEPTH (m): 5
+ TIME : 04-JAN-1983 10:00 (shifted by 1 pts)
+ 32.10
+
+! Check shift that takes us beyond the end of a modulo axis (at x=20)
+can dat/all; use coads_climatology
+list/x=10:30/y=-60/l=1 sst
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 10 points (LONGITUDE)
+ LATITUDE : 61S
+ TIME : 16-JAN 06:00
+ 61S
+ 15
+ 11E / -4: 0.447
+ 13E / -3: 0.179
+ 15E / -2: 0.521
+ 17E / -1: 0.229
+ 19E / 0: 0.727
+ 21E / 1: 0.844
+ 23E / 2: 0.440
+ 25E / 3: 0.620
+ 27E / 4: 0.873
+ 29E / 5: 1.062
+list/x=10:30/y=-60/l=1 sst[i=@shf:3]
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ shifted by 3 pts on X
+ FILENAME : coads_climatology.cdf
+ SUBSET : 10 points (LONGITUDE)
+ LATITUDE : 61S
+ TIME : 16-JAN 06:00
+ 61S
+ 15
+ 11E / -4: 0.229
+ 13E / -3: 0.727
+ 15E / -2: 0.844
+ 17E / -1: 0.440
+ 19E / 0: 0.620
+ 21E / 1: 0.873
+ 23E / 2: 1.062
+ 25E / 3: 1.261
+ 27E / 4: 1.395
+ 29E / 5: 1.010
+
+GO bn_reset
+cancel mode verify
+GO err694_longname_showdat
+! err694_longname_showdat.jnl
+! ticket 2317
+!
+! Make a file whose name starts the same as file with long name.
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+
+! Long name was not matched by SHOW DAT filename
+! this previously returned an unknown dataset error
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+ currently SET data sets:
+ 1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
+ name title I J K L M N
+ PROF Prof ... ... ... ... 1:21 ...
+ TIME Time ... ... ... ... 1:21 ...
+ LATITUDE Latitude ... ... ... ... 1:21 ...
+ LONGITUDE
+ Longitude ... ... ... ... 1:21 ...
+ ROWSIZE Number of Observations for this ... ... ... ... 1:21 ...
+ PRESS_DB PRESS_DB 1:373 ... ... ... ... ...
+ PCO2 PCO2 1:373 ... ... ... ... ...
+
+
+! If a file matched to 1st 32 characters, the shorter-named
+! datset was mistakenly returned.
+
+use WestCoastCarbon_9d9c_f562_77b5_5
+sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
+ currently SET data sets:
+ 1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ name title I J K L M N
+ PROF Prof ... ... ... ... 1:21 ...
+ TIME Time ... ... ... ... 1:21 ...
+ LATITUDE Latitude ... ... ... ... 1:21 ...
+ LONGITUDE
+ Longitude ... ... ... ... 1:21 ...
+ ROWSIZE Number of Observations for this ... ... ... ... 1:21 ...
+ PRESS_DB PRESS_DB 1:373 ... ... ... ... ...
+ PCO2 PCO2 1:373 ... ... ... ... ...
+
+
+sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
+
+GO bn_reset
+cancel mode verify
+GO err693_std4d
+! err693_std4d
+! Check fix to ticket 2319: std transform in multi-dimensions
+
+
+let a = x[gx=1:3:1] * y[gy=1:3:1]
+let astd = a[x=@std,y=@std]
+let avar = a[x=@var,y=@var]
+let a2 = a^2
+let avar_calc = a2[x=@ave,y=@ave] - a[x=@ave,y=@ave]^2
+let astd_x = a[x=@std]
+let astd_x_y = astd_x[y=@std]
+
+! STD and VAR in x and y together; vs astd_x_y separately
+list astd^2, avar, avar_calc, astd_x_y^2
+ X: 0.5 to 3.5
+ Y: 0.5 to 3.5
+ Column 1: EX#1 is ASTD^2
+ Column 2: AVAR is A[X=@VAR,Y=@VAR]
+ Column 3: AVAR_CALC is A2[X=@AVE,Y=@AVE] - A[X=@AVE,Y=@AVE]^2
+ Column 4: EX#4 is ASTD_X_Y^2
+ EX#1 AVAR AVAR_CA EX#4
+I / *: 5.778 5.778 5.778 0.4444
+
+
+! Now in the E and F directions
+
+let a = _e[ge=1:3:1] * _f[gf=1:3:1]
+let astd = a[e=@std,f=@std]
+let avar = a[e=@var,f=@var]
+let a2 = a^2
+let avar_calc = a2[e=@ave,f=@ave] - a[e=@ave,f=@ave]^2
+let astd_e = a[e=@std]
+let astd_e_f = astd_e[f=@std]
+
+list astd^2, avar, avar_calc, astd_e_f^2
+ E: 0.5 to 3.5
+ F: 0.5 to 3.5
+ Column 1: EX#1 is ASTD^2
+ Column 2: AVAR is A[E=@VAR,F=@VAR]
+ Column 3: AVAR_CALC is A2[E=@AVE,F=@AVE] - A[E=@AVE,F=@AVE]^2
+ Column 4: EX#4 is ASTD_E_F^2
+ EX#1 AVAR AVAR_CA EX#4
+I / *: 5.778 5.778 5.778 0.4444
+
+*** Running test: bn_f_tax_fcns.jnl
+[?1034h! bn_f_from_tax_fcns.jnl
+! test tax_* functions returning results from a
+! time-formatted axis in the F direction
+!
+! 2/2015 ACM
+
+define axis/f=1-jan-2011:31-jan-2011:1/units=hours fax
+
+
+
+let ff = _f[gf=fax]
+! Test RETURN=F0
+say `ff,return=F0`
+ !-> MESSAGE/CONTINUE 15-JAN-1901
+15-JAN-1901
+
+list/N=20:30 tax_datestring(_F[g=ff],ff,"minute")
+ VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"minute")
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19:00"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20:00"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21:00"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22:00"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23:00"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00:00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01:00"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02:00"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03:00"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04:00"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05:00"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"hour")
+ VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"hour")
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011 19"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011 20"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011 21"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011 22"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011 23"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011 00"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011 01"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011 02"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011 03"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011 04"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011 05"
+list/N=20:30 tax_datestring(_F[g=ff],ff,"day")
+ VARIABLE : TAX_DATESTRING(_F[G=FF],FF,"day")
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20:"01-JAN-2011"
+ 01-JAN-2011 20:00 / 21:"01-JAN-2011"
+ 01-JAN-2011 21:00 / 22:"01-JAN-2011"
+ 01-JAN-2011 22:00 / 23:"01-JAN-2011"
+ 01-JAN-2011 23:00 / 24:"01-JAN-2011"
+ 02-JAN-2011 00:00 / 25:"02-JAN-2011"
+ 02-JAN-2011 01:00 / 26:"02-JAN-2011"
+ 02-JAN-2011 02:00 / 27:"02-JAN-2011"
+ 02-JAN-2011 03:00 / 28:"02-JAN-2011"
+ 02-JAN-2011 04:00 / 29:"02-JAN-2011"
+ 02-JAN-2011 05:00 / 30:"02-JAN-2011"
+list/N=20:30 tax_dayfrac(_F[g=ff],ff)
+ VARIABLE : TAX_DAYFRAC(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 0.7917
+ 01-JAN-2011 20:00 / 21: 0.8333
+ 01-JAN-2011 21:00 / 22: 0.8750
+ 01-JAN-2011 22:00 / 23: 0.9167
+ 01-JAN-2011 23:00 / 24: 0.9583
+ 02-JAN-2011 00:00 / 25: 0.0000
+ 02-JAN-2011 01:00 / 26: 0.0417
+ 02-JAN-2011 02:00 / 27: 0.0833
+ 02-JAN-2011 03:00 / 28: 0.1250
+ 02-JAN-2011 04:00 / 29: 0.1667
+ 02-JAN-2011 05:00 / 30: 0.2083
+list/N=20:30 tax_day(_F[g=ff],ff)
+ VARIABLE : TAX_DAY(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 1.000
+ 01-JAN-2011 20:00 / 21: 1.000
+ 01-JAN-2011 21:00 / 22: 1.000
+ 01-JAN-2011 22:00 / 23: 1.000
+ 01-JAN-2011 23:00 / 24: 1.000
+ 02-JAN-2011 00:00 / 25: 2.000
+ 02-JAN-2011 01:00 / 26: 2.000
+ 02-JAN-2011 02:00 / 27: 2.000
+ 02-JAN-2011 03:00 / 28: 2.000
+ 02-JAN-2011 04:00 / 29: 2.000
+ 02-JAN-2011 05:00 / 30: 2.000
+list/N=20:30 tax_jday(_F[g=ff],ff)
+ VARIABLE : TAX_JDAY(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 1.000
+ 01-JAN-2011 20:00 / 21: 1.000
+ 01-JAN-2011 21:00 / 22: 1.000
+ 01-JAN-2011 22:00 / 23: 1.000
+ 01-JAN-2011 23:00 / 24: 1.000
+ 02-JAN-2011 00:00 / 25: 2.000
+ 02-JAN-2011 01:00 / 26: 2.000
+ 02-JAN-2011 02:00 / 27: 2.000
+ 02-JAN-2011 03:00 / 28: 2.000
+ 02-JAN-2011 04:00 / 29: 2.000
+ 02-JAN-2011 05:00 / 30: 2.000
+list/N=20:30 tax_month(_F[g=ff],ff)
+ VARIABLE : TAX_MONTH(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 1.000
+ 01-JAN-2011 20:00 / 21: 1.000
+ 01-JAN-2011 21:00 / 22: 1.000
+ 01-JAN-2011 22:00 / 23: 1.000
+ 01-JAN-2011 23:00 / 24: 1.000
+ 02-JAN-2011 00:00 / 25: 1.000
+ 02-JAN-2011 01:00 / 26: 1.000
+ 02-JAN-2011 02:00 / 27: 1.000
+ 02-JAN-2011 03:00 / 28: 1.000
+ 02-JAN-2011 04:00 / 29: 1.000
+ 02-JAN-2011 05:00 / 30: 1.000
+list/N=20:30 tax_yearfrac(_F[g=ff],ff)
+ VARIABLE : TAX_YEARFRAC(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 0.004909
+ 01-JAN-2011 20:00 / 21: 0.005023
+ 01-JAN-2011 21:00 / 22: 0.005137
+ 01-JAN-2011 22:00 / 23: 0.005251
+ 01-JAN-2011 23:00 / 24: 0.005365
+ 02-JAN-2011 00:00 / 25: 0.005479
+ 02-JAN-2011 01:00 / 26: 0.005594
+ 02-JAN-2011 02:00 / 27: 0.005708
+ 02-JAN-2011 03:00 / 28: 0.005822
+ 02-JAN-2011 04:00 / 29: 0.005936
+ 02-JAN-2011 05:00 / 30: 0.006050
+list/N=20:30 tax_year(_F[g=ff],ff)
+ VARIABLE : TAX_YEAR(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 2011.
+ 01-JAN-2011 20:00 / 21: 2011.
+ 01-JAN-2011 21:00 / 22: 2011.
+ 01-JAN-2011 22:00 / 23: 2011.
+ 01-JAN-2011 23:00 / 24: 2011.
+ 02-JAN-2011 00:00 / 25: 2011.
+ 02-JAN-2011 01:00 / 26: 2011.
+ 02-JAN-2011 02:00 / 27: 2011.
+ 02-JAN-2011 03:00 / 28: 2011.
+ 02-JAN-2011 04:00 / 29: 2011.
+ 02-JAN-2011 05:00 / 30: 2011.
+list/N=20:30 tax_jday1900(_F[g=ff],ff)
+ VARIABLE : TAX_JDAY1900(_F[G=FF],FF)
+ SUBSET : 11 points (FORECAST)
+ 01-JAN-2011 19:00 / 20: 40542.
+ 01-JAN-2011 20:00 / 21: 40542.
+ 01-JAN-2011 21:00 / 22: 40542.
+ 01-JAN-2011 22:00 / 23: 40542.
+ 01-JAN-2011 23:00 / 24: 40542.
+ 02-JAN-2011 00:00 / 25: 40543.
+ 02-JAN-2011 01:00 / 26: 40543.
+ 02-JAN-2011 02:00 / 27: 40543.
+ 02-JAN-2011 03:00 / 28: 40543.
+ 02-JAN-2011 04:00 / 29: 40543.
+ 02-JAN-2011 05:00 / 30: 40543.
+list tax_units(ff)
+ VARIABLE : TAX_UNITS(FF)
+ 3600.
+
+! commands from tax_tstep, changing time origin
+
+DEFINE AXIS/F="1-JAN-2000:00:00:01":"1-JAN-2000:00:15:00":2/UNITS=seconds fsec
+LIST/N=440:451 _F[GF=fsec]
+ VARIABLE : _F
+ axis FSEC
+ SUBSET : 12 points (FORECAST)
+ 01-JAN-2000 00:14:39 / 440: 3.123E+09
+ 01-JAN-2000 00:14:41 / 441: 3.123E+09
+ 01-JAN-2000 00:14:43 / 442: 3.123E+09
+ 01-JAN-2000 00:14:45 / 443: 3.123E+09
+ 01-JAN-2000 00:14:47 / 444: 3.123E+09
+ 01-JAN-2000 00:14:49 / 445: 3.123E+09
+ 01-JAN-2000 00:14:51 / 446: 3.123E+09
+ 01-JAN-2000 00:14:53 / 447: 3.123E+09
+ 01-JAN-2000 00:14:55 / 448: 3.123E+09
+ 01-JAN-2000 00:14:57 / 449: 3.123E+09
+ 01-JAN-2000 00:14:59 / 450: 3.123E+09
+ 01-JAN-2000 00:15:01 / 451: 3.123E+09
+LET bsin = SIN(_F[GF=fsec]/40000)
+SAVE/FILE=a.nc/clobber bsin
+CAN VAR/all
+USE a.nc
+
+SET LIST/PREC=7
+! Reset the date to dec 1999
+! Function lets us leave off the leading 0.
+LIST/N=1:15 TAX_TSTEP(bsin, "1-dec-1999:00:00:00" )
+ VARIABLE : TAX_TSTEP(BSIN, "1-dec-1999:00:00:00" )
+ FILENAME : a.nc
+ SUBSET : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 / 1: 2678401.
+ 01-JAN-2000 00:00:03 / 2: 2678403.
+ 01-JAN-2000 00:00:05 / 3: 2678405.
+ 01-JAN-2000 00:00:07 / 4: 2678407.
+ 01-JAN-2000 00:00:09 / 5: 2678409.
+ 01-JAN-2000 00:00:11 / 6: 2678411.
+ 01-JAN-2000 00:00:13 / 7: 2678413.
+ 01-JAN-2000 00:00:15 / 8: 2678415.
+ 01-JAN-2000 00:00:17 / 9: 2678417.
+ 01-JAN-2000 00:00:19 / 10: 2678419.
+ 01-JAN-2000 00:00:21 / 11: 2678421.
+ 01-JAN-2000 00:00:23 / 12: 2678423.
+ 01-JAN-2000 00:00:25 / 13: 2678425.
+ 01-JAN-2000 00:00:27 / 14: 2678427.
+ 01-JAN-2000 00:00:29 / 15: 2678429.
+
+! argument can be upper or lowercase
+! Should list values 1, 3, 5...
+LIST/N=1:15 TAX_TSTEP(bsin, "1-JAN-2000:00:00:00" )
+ VARIABLE : TAX_TSTEP(BSIN, "1-JAN-2000:00:00:00" )
+ FILENAME : a.nc
+ SUBSET : 15 points (FORECAST)
+ 01-JAN-2000 00:00:01 / 1: 1.00000
+ 01-JAN-2000 00:00:03 / 2: 3.00000
+ 01-JAN-2000 00:00:05 / 3: 5.00000
+ 01-JAN-2000 00:00:07 / 4: 7.00000
+ 01-JAN-2000 00:00:09 / 5: 9.00000
+ 01-JAN-2000 00:00:11 / 6: 11.00000
+ 01-JAN-2000 00:00:13 / 7: 13.00000
+ 01-JAN-2000 00:00:15 / 8: 15.00000
+ 01-JAN-2000 00:00:17 / 9: 17.00000
+ 01-JAN-2000 00:00:19 / 10: 19.00000
+ 01-JAN-2000 00:00:21 / 11: 21.00000
+ 01-JAN-2000 00:00:23 / 12: 23.00000
+ 01-JAN-2000 00:00:25 / 13: 25.00000
+ 01-JAN-2000 00:00:27 / 14: 27.00000
+ 01-JAN-2000 00:00:29 / 15: 29.00000
+
+! Test with TAX_DATESTRING
+
+DEFINE AXIS/F="1-JAN-1902:00:00:00":"1-JAN-1902:00:30:00":5/UNITS=seconds fsec
+LIST/N=200:205 _F[GF=fsec]
+ VARIABLE : _F
+ axis FSEC
+ SUBSET : 6 points (FORECAST)
+ 01-JAN-1902 00:16:35 / 200: 30327395.
+ 01-JAN-1902 00:16:40 / 201: 30327400.
+ 01-JAN-1902 00:16:45 / 202: 30327405.
+ 01-JAN-1902 00:16:50 / 203: 30327410.
+ 01-JAN-1902 00:16:55 / 204: 30327415.
+ 01-JAN-1902 00:17:00 / 205: 30327420.
+
+LET ff = _F[GF=fsec]
+LET reset_date = TAX_DATESTRING(`_F[GF=fsec,n=1]`, ff, "sec")
+ !-> DEFINE VARIABLE reset_date = TAX_DATESTRING(30326400, ff, "sec")
+LIST/N=1:15 TAX_TSTEP(ff, "`reset_date`")
+ !-> LIST/N=1:15 TAX_TSTEP(ff, "01-JAN-1902 00:00:00")
+ VARIABLE : TAX_TSTEP(FF, "01-JAN-1902 00:00:00")
+ SUBSET : 15 points (FORECAST)
+ 01-JAN-1902 00:00:00 / 1: 0.00000
+ 01-JAN-1902 00:00:05 / 2: 5.00000
+ 01-JAN-1902 00:00:10 / 3: 10.00000
+ 01-JAN-1902 00:00:15 / 4: 15.00000
+ 01-JAN-1902 00:00:20 / 5: 20.00000
+ 01-JAN-1902 00:00:25 / 6: 25.00000
+ 01-JAN-1902 00:00:30 / 7: 30.00000
+ 01-JAN-1902 00:00:35 / 8: 35.00000
+ 01-JAN-1902 00:00:40 / 9: 40.00000
+ 01-JAN-1902 00:00:45 / 10: 45.00000
+ 01-JAN-1902 00:00:50 / 11: 50.00000
+ 01-JAN-1902 00:00:55 / 12: 55.00000
+ 01-JAN-1902 00:01:00 / 13: 60.00000
+ 01-JAN-1902 00:01:05 / 14: 65.00000
+ 01-JAN-1902 00:01:10 / 15: 70.00000
+*** Running test: bn_fmrc.jnl
+[?1034h! bn_fmrc.jnl
+! initial test of DEFINE DATA/F
+
+use "run1.nc"
+use "run2.nc"
+use "run3.nc"
+use "run4.nc"
+
+define data/hide/F/agg/title fourfiles = 1,2,3,4
+
+sh grid sst
+ GRID (G007)
+ name axis # pts start end
+ LON LONGITUDE 10mr 109W 91W
+ LAT LATITUDE 9 r 13N 29N
+ normal Z
+ TF_LAG_T MODEL ELAPSED TIME (12 r 0 11
+ normal E
+ TF_CAL_F FORECAST 4 r 02-JAN-2010 00:00 08-JAN-2010 00:00
+list/i=1/j=1/L=1:6/n=1:4 sst
+ VARIABLE : SST_IN (Deg C)
+ FILENAME : FOURFILES
+ SUBSET : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
+ LONGITUDE: 109W
+ LATITUDE : 13N
+ Verification time increases across row. Initialization time increases down page.
+ 0 1 2 3 4 5
+ 1 2 3 4 5 6
+ 02-JAN-2010 00 / 1: 27.4 27.4 27.6 28.1 28.9 28.8
+ 04-JAN-2010 00 / 2: 54.8 54.9 55.2 56.3 57.7 57.6
+ 06-JAN-2010 00 / 3: 82.1 82.3 82.7 84.4 86.6 86.3
+ 08-JAN-2010 00 / 4: 109.5 109.8 110.3 112.5 115.5 115.1
+
+show att sst
+ attributes for dataset: FOURFILES
+ SST.long_name = SST_IN
+ SST.units = Deg C
+ SST.missing_value = -1.E+34
+ SST.coordinates = FORECAST TF_TIMES LAT LON
+ SST._ftime2dRef = TF_TIMES
+
+! Attribute _ftime2dRef pointe to the 2D time variable
+list/L=1:6/n=1:4 `sst._ftime2dRef`
+ !-> list/L=1:6/n=1:4 TF_TIMES
+ VARIABLE : Forecast time step matrix (day since 01-JAN-2010 00:00:00)
+ FILENAME : FOURFILES
+ SUBSET : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
+ Verification time increases across row. Initialization time increases down page.
+ 0 1 2 3 4 5
+ 1 2 3 4 5 6
+ 02-JAN-2010 00 / 1: 1.00 2.00 3.00 4.00 5.00 6.00
+ 04-JAN-2010 00 / 2: 7.00 8.00 9.00 10.00 11.00 12.00
+ 06-JAN-2010 00 / 3: 3.00 4.00 5.00 6.00 7.00 8.00
+ 08-JAN-2010 00 / 4: 9.00 10.00 11.00 12.00 13.00 14.00
+
+*** Running test: bn_return_defined.jnl
+[?1034h! bn_return_defined.jnl
+! 5/3/2015 *acm*
+! `return=defined` returns 1 if the user variable is defined
+! see ticket 2293
+
+let a = b
+say `a,r=defined` `b,r=defined`
+ !-> MESSAGE/CONTINUE 1 0
+1 0
+
+! abbreviate to 3 letters
+use levitus_climatology
+let temp2 = 2*temp
+say `temp2,return=def`
+ !-> MESSAGE/CONTINUE 1
+1
+
+! returns false for file variables
+say `temp,return=defined`
+ !-> MESSAGE/CONTINUE 0
+0
+*** Running test: bn_can_var_noerr.jnl
+[?1034h! bn_can_var_noerr.jnl
+! CANCEL VARIABLE/NOERROR
+
+
+let a = 1
+
+! intentional error
+set mode ignore
+cancel var b,a
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ A = 1
+
+cancel mode ignore
+
+! specify /noerr and we can issue the command
+
+cancel var/noerror a,b
+show var
+ Created by DEFINE VARIABLE:
+
+! no effect on CAN VAR/ALL or CAN VAR template_name
+
+let a1 = 1
+let a7 = 7
+let c = 12
+
+cancel var/noerror name*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ C = 12
+ A7 = 7
+ A1 = 1
+
+cancel var/noerror a*
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ C = 12
+
+cancel var/noerror/all
+show var
+ Created by DEFINE VARIABLE:
+*** Running test: bn_annotate.jnl
+[?1034h! bn_annotate.jnl
+! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
+! locates user-defined labels on a plot.
+! /USER and /NOUSER behave as the LABEL command does
+! /NORM locates labels relative to the plot axis, treating them as a unit "square".
+! /VALIGN moves the label up or down relative to the direction of the label
+! /HALIGN is -1, 1, or 0 as always, or larger values to move the label horizontally
+! relative to the direction of the label. Allows us to move, say, one character in
+! or out from the axis corner.
+
+can mode logo
+
+! ANNOTATE /USER
+set v ul
+plot/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/USER labels"
+annotate/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=0.2 "X"
+annotate/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=0.2 "X"
+annotate/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=0.2 "X"
+
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+annotate/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=0.2 "BOX"
+
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+ annotate/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=0.2 "BOX"
+
+plot/ov/vs/sym=2/size=2/nolab 3,0
+annotate/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=0.2 "TOP"
+annotate/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=0.2 "BOTTOM"
+
+plot/ov/vs/sym=2/size=2/nolab -3,0
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=0.2 "M"
+annotate/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=0.2 "M"
+
+
+
+! ANNOTATE/NORM
+set v ur
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/NORM labels"
+
+annotate/norm/xpos=.5/ypos=1.1/halign=0/angle=0/size=0.14 "FLOATING TITLE"
+annotate/norm/xpos=.5/ypos=-.2/halign=0/angle=0/size=0.14 "SUBMERGED TITLE"
+annotate/norm/xpos=0/ypos=1/halign=-1/angle=0/size=0.14 "LEFT/TOP"
+annotate/norm/xpos=.5/ypos=1/halign=0/angle=0/size=0.14 "CTR/TOP"
+annotate/norm/xpos=1/ypos=1/halign=1/angle=0/size=0.14 "RIGHT/TOP"
+annotate/norm/xpos=1/ypos=.5/halign=0/angle=-90/size=0.14 "RIGHT EDGE"
+annotate/norm/xpos=0/ypos=.5/halign=0/angle=90/size=0.14 "LEFT EDGE"
+annotate/norm/xpos=.5/ypos=.5/halign=0/valign=0/angle=0/size=0.14 "DEAD CENTER"
+annotate/norm/xpos=.5/ypos=0/halign=0/valign=1/angle=0/size=0.14 "HANGING FROM BOTTOM"
+annotate/norm/xpos=0/ypos=0/halign=-2/valign=-2/angle=0/siz=0.1 "BOTTOM LEFT INSET"
+annotate/norm/xpos=0/ypos=1/halign=-2/valign=2/angle=0/siz=0.1 "TOP LEFT INSET"
+annotate/norm/xpos=1/ypos=0/halign=2/valign=-2/angle=0/siz=0.1 "BOTTOM RIGHT INSET"
+annotate/norm/xpos=1/ypos=1/halign=2/valign=2/angle=0/siz=0.1 "TOP RIGHT INSET"
+
+! ANNOTATE/NOUSER
+set v ll
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+
+! nouser
+annotate/nouser/xpos=0/ypos=0/halign=-1/angle=0/size=0.15 "At Origin"
+annotate/nouser/xpos=0/ypos=0/halign=-3/valign=-3/angle=0/size=0.15 "With/HALIGN=-3/VALIGN=-3"
+
+annotate/nouser/xpos=($ppl$xlen)/ypos=($ppl$ylen)/halign=1/valign=-1/angle=0/siz=0.15 "Right-align at upper right corner"
+ !-> annotate/nouser/xpos=5.01200/ypos=3.42300/halign=1/valign=-1/angle=0/siz=0.15 "Right-align at upper right corner"
+annotate/nouser/xpos=($ppl$xlen)/ypos=($ppl$ylen)/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+ !-> annotate/nouser/xpos=5.01200/ypos=3.42300/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+
+plot/vs/line/over/color=lightblue/nolab {3,3},{1,6}
+plot/vs/line/over/color=lightblue/nolab {1,5}, {3,3}
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=`($ppl$ylen)/2`/halign=0/valign=0/angle=0/siz=0.15 \
+"Arguments locate the first<nl>line of multi-line labels "
+ !-> annotate/nouser/xpos=2.506/ypos=1.7115/halign=0/valign=0/angle=0/siz=0.15 "Arguments locate the first<nl>line of multi-line labels "
+
+! angles
+set v lr
+
+plot/i=1:5/vlim=1:5/hlim=1:5/color=white/nolab i
+! nouser
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+ !-> annotate/nouser/xpos=2.506/ypos=3.42300/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels<nl>Use VALIGN=0"
+annotate/nouser/xpos=0/ypos=0/halign=0/valign=0/angle=45/size=0.15 "Center At Origin"
+annotate/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+ !-> annotate/nouser/xpos=0/ypos=3.42300/halign=-1/valign=0/angle=-45/siz=0.15 "left-align"
+annotate/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+ !-> annotate/nouser/xpos=5.01200/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "right-align"
+
+! Test defaults
+! Default is like PPL user-labels
+! /USER/SIZ=0.12/ANGLE=0/HALIGN=0/VALIGN=-1
+
+shade/x=1:2/y=1:2/pal=grayscale i+j
+annotate/xpos=1.5/ypos=1.8 "Anno Label"
+label 1.5,1.6,,,, PPL label
+
+
+! DEFINE ANNOTATION inside a grapchics call with /SET
+can view
+use gt4d011.cdf
+shade/set temp[k=1,l=1]
+ DEFINE ANNOTATION/user/xpos=224/ypos=-3/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+
+shade/set/j=40/L=1 temp
+ DEFINE ANNOTATION/user/xpos=224/ypos=80/halign=0/valign=0/angle=0/siz=.3 "X"
+ppl shade
+
+can data/all
+
+plot/set/i=1:5 i
+! nouser
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=0/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.00000/halign=-1/angle=0/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=8.00000/ypos=0/halign=1/angle=0/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=0/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=0/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=0/siz=0.15 "user units right at 3,4"
+ppl plot
+
+! angles
+
+plot/set/i=1:5 i
+define annotation/nouser/xpos=0/ypos=0/halign=0/angle=45/size=0.15 "Center At Origin"
+define annotation/nouser/xpos=0/ypos=($ppl$ylen)/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+ !-> define annotation/nouser/xpos=0/ypos=6.00000/halign=-1/angle=-45/siz=0.15 "left-align at upper left corner"
+define annotation/nouser/xpos=($ppl$xlen)/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+ !-> define annotation/nouser/xpos=8.00000/ypos=0/halign=1/angle=-45/siz=0.15 "right-align at lower right corner"
+! user
+define annotation/user/xpos=3/ypos=2/halign=0/angle=45/siz=0.15 "user units centered at 3,2"
+define annotation/user/xpos=3/ypos=3/halign=-1/angle=45/siz=0.15 "user units left at 3,3"
+define annotation/user/xpos=3/ypos=4/halign=1/angle=45/siz=0.15 "user units right at 3,4"
+ppl plot
+
+! DEFINE ANNO/NORM
+plot/i=1:5/nolab/set i
+def anno/norm/xp=.5/yp=1.1/hal=0/ang=0/size=.3 "FLOATING TITLE"
+def anno/norm/xp=.5/yp=-.2/hal=0/ang=0/size=.3 "SUBMERGED TITLE"
+def anno/norm/xp=0/yp=1/hal=-1/ang=0/size=.3 "LEFT/TOP"
+def anno/norm/xp=.5/yp=1/hal=0/ang=0/size=.3 "CTR/TOP"
+def anno/norm/xp=1/yp=1/hal=1/ang=0/size=.3 "RIGHT/TOP"
+def anno/norm/xp=1/yp=.5/hal=0/ang=-90/size=.3 "RIGHT EDGE"
+def anno/norm/xp=0/yp=.5/hal=0/ang=90/size=.3 "LEFT EDGE"
+def anno/norm/xp=.5/yp=.5/hal=0/val=0/ang=0/size=.3 "DEAD CENTER"
+def anno/norm/xp=.5/yp=0/hal=0/val=1/ang=0/size=.3 "HANGING FROM BOTTOM"
+def anno/norm/xp=0/yp=0/hal=-2/val=-2/ang=0/size=.2 "BOTTOM LEFT INSET"
+def anno/norm/xp=0/yp=1/hal=-2/val=2/ang=0/size=.2 "TOP LEFT INSET"
+def anno/norm/xp=1/yp=0/hal=2/val=-2/ang=0/size=.2 "BOTTOM RIGHT INSET"
+def anno/norm/xp=1/yp=1/hal=2/val=2/ang=0/size=.2 "TOP RIGHT INSET"
+ppl plot
+
+plot/set/vs/sym=28/hl=-5:5/vl=-10:10 {-1,1},{-1,1}
+
+define annotation/user/xpos=-1/ypos=-1/halign=0/valign=0/angle=-90/siz=.5 "X"
+define annotation/user/xpos=0/ypos=0/halign=0/valign=0/angle=0/siz=.5 "X"
+define annotation/user/xpos=1/ypos=1/halign=0/valign=0/angle=45/siz=.5 "X"
+define annotation/user/xpos=0/ypos=5/halign=0/valign=0/angle=0/siz=.5 "BOX"
+define annotation/user/xpos=0/ypos=-5/halign=0/valign=0/angle=90/siz=.5 "BOX"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=1/angle=45/siz=.5 "TOP"
+define annotation/user/xpos=3/ypos=0/halign=0/valign=-1/angle=45/siz=.5 "BOTTOM"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=-1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=1/valign=1/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=-3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=3/valign=3/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=-.99/valign=-5/angle=45/siz=.5 "M"
+define annotation/user/xpos=-3/ypos=0/halign=.99/valign=-5/angle=45/siz=.5 "M"
+ppl list labels
+
+ @AS{-1,1}
+ @AS{-1,1}
+
+ XPOS YPOS HGT ROT UNITS
+ LAB 1 0.000E+00 6.600E+00 0.120 0 SYSTEM @ASX : 0.5 to 2.5
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB 2 -1.313E+00 -1.000E+00 0.500 -90 USER X
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 3 0.000E+00 -8.333E-01 0.500 0 USER X
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 4 1.221E+00 4.107E-01 0.500 45 USER X
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 5 0.000E+00 4.167E+00 0.500 0 USER BOX
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 6 3.125E-01 -5.000E+00 0.500 90 USER BOX
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 7 3.442E+00 -1.179E+00 0.500 45 USER TOP
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 8 3.000E+00 0.000E+00 0.500 45 USER BOTTOM
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 9 -3.000E+00 0.000E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB10 -2.558E+00 -1.179E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB11 -3.000E+00 0.000E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB12 -2.558E+00 -1.179E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB13 -3.000E+00 2.357E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB14 -1.674E+00 -1.179E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB15 -3.884E+00 -1.179E+00 0.500 45 USER 5.5148314619E-,1, M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+ LAB16 -2.558E+00 -3.536E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB17 -1.455E+00 -2.952E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB18 -1.893E+00 -4.119E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB19 -3.665E+00 2.940E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB20 -4.103E+00 1.774E+00 0.500 45 USER M
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ppl plot
+plot/ov/vs/line=1/nolab {-1,1,1,-1,-1},{4,4,6,6,4}
+plot/ov/vs/line=1/nolab .5*{-1,1,1,-1,-1},{-2,-2,-8,-8,-2}
+plot/ov/vs/sym=2/size=2/nolab 3,0
+plot/ov/vs/sym=2/size=2/nolab -3,0
+
+! intentional errors
+set mode ignore
+can v
+shade/i=1:2/j=1:2/nokey i+j
+
+
+! errors in arguments
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+
+! missing a location
+annotate/nouser/ypos=0 "My Lab"
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+
+! /USER and /NOUSER
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+
+! define annotation
+
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"; ppl plot
+
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/ypos=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/hal=1/val=0 "My Lab"; ppl plot
+shad/set/i=1:2/j=1:2 i+j; def anno/nou/user/xpos=0/ypos=0 "My Lab"; ppl plot
+*** Running test: bn_auxiliary.jnl
+[?1034h! bn_auxiliary.jnl: exercise auxiliary coordinate regridding
+
+! notes about the 6/2015 version:
+! -- tests 1D regridding, only, as of 6/2015
+! -- includestests the deprecated "LAYERZ" and "__LayerzRef_" automation syntax
+! ... to be replaced by a different automation syntax in the future
+
+! *sh* 6/2015
+
+! initialize the test environment
+USE levitus_3d_subset
+SPAWN rm layerz_test_data.txt
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+
+! conjure a 4D auxiliary variable that contains the same values
+! as the native Z coordinates
+! regridding using this auxiliary variable should give the same results as
+! conventional regridding -- usefuly to validate the results
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+
+!************
+! exercise the syntax of setting layerz associations
+! do same tests on EZ, uvar, and netCDF variable
+
+! EZ file variable
+LIST/NOHEAD/FILE=layerz_test_data.txt 1
+FILE/VAR=v layerz_test_data.txt
+! set the layerz link to point to a variable named "depth"
+SET VAR/layerz=depth v
+SHOW VAR/LAYERZ v
+ DEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+! modify the layerz link
+SET VAR/layerz=newdepth v
+SHOW VAR/LAYERZ v
+ NEWDEPTH holds the designated vertical (layerz) coordinates of V
+SHOW ATT v
+ attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V
+ V.missing_value = -1.E+34
+ V.__LayerzRef_ = NEWDEPTH
+cancel var/layerz v
+SHOW VAR/LAYERZ v
+ No variable holds vertical (layerz) coordinates of V
+SHOW ATT v
+ attributes for dataset: ./layerz_test_data.txt
+ V.long_name = V
+ V.missing_value = -1.E+34
+CANCEL DATA layerz_test_data.txt
+
+! user variable
+! set the layerz link
+LET a = temp
+SET VAR/layerz=depth a
+SHOW VAR/LAYERZ a
+ DEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+ attributes for user-defined variables
+ a.long_name = TEMP
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = DEPTH
+! modify the layerz link
+SET VAR/layerz=newdepth a
+SHOW VAR/LAYERZ a
+ NEWDEPTH holds the designated vertical (layerz) coordinates of a
+SHOW ATT a
+ attributes for user-defined variables
+ a.long_name = TEMP
+ a.missing_value = -1.E+34
+ a.__LayerzRef_ = NEWDEPTH
+cancel var/layerz a
+SHOW VAR/LAYERZ a
+ No variable holds vertical (layerz) coordinates of a
+SHOW ATT a
+ attributes for user-defined variables
+ a.long_name = TEMP
+ a.missing_value = -1.E+34
+
+! netCDF file variable
+! set the layerz link
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+ DEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+ attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = DEPTH
+! modify the layerz link
+SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+ NEWDEPTH holds the designated vertical (layerz) coordinates of TEMP
+SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
+ attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.__LayerzRef_ = NEWDEPTH
+cancel var/layerz temp[d=levitus_3d_subset]
+SHOW VAR/LAYERZ/d=levitus_3d_subset temp
+ No variable holds vertical (layerz) coordinates of TEMP
+SHOW ATT temp[d=levitus_3d_subset] ! __LayerzRef_ has been deleted
+ attributes for dataset: ./levitus_3d_subset.nc
+ TEMP.missing_value = -1.E+10
+ TEMP._FillValue = -1.E+10
+ TEMP.long_name = TEMPERATURE
+ TEMP.history = From /home/users/tmap/ferret/linux/fer_dsets/data/levitus_climatology.cdf
+ TEMP.units = DEG C
+
+! deliberate error
+SET MODE ignore; SET VAR/layerz=depth noexist; SET MODE/last ignore
+
+!************
+! exercise the layerz calculations in various situations
+! compare the manually specified syntax with the automated results
+
+! make "depth" the layerz coordinate variable for "temp"
+SET VAR/layerz=depth temp[d=levitus_3d_subset]
+
+! values of the unadulterated variable
+list/PREC=7 temp[z=0:500]
+ VARIABLE : TEMPERATURE (DEG C)
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 11 points (LONGITUDE-LATITUDE-DEPTH (m))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 0
+ 48.5S / 2: 7.725000 7.917999
+ 49.5S / 1: 6.827000 7.007000
+ ---- K:2 Z: 10
+ 48.5S / 2: 7.726000 7.917999
+ 49.5S / 1: 6.843000 7.021999
+ ---- K:3 Z: 20
+ 48.5S / 2: 7.715000 7.907000
+ 49.5S / 1: 6.840000 7.018999
+ ---- K:4 Z: 30
+ 48.5S / 2: 7.594000 7.789000
+ 49.5S / 1: 6.740999 6.923000
+ ---- K:5 Z: 50
+ 48.5S / 2: 7.410999 7.584000
+ 49.5S / 1: 6.624001 6.785000
+ ---- K:6 Z: 75
+ 48.5S / 2: 7.572001 7.666000
+ 49.5S / 1: 6.750999 6.848000
+ ---- K:7 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:8 Z: 150
+ 48.5S / 2: 7.372000 7.464001
+ 49.5S / 1: 6.466000 6.573999
+ ---- K:9 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:10 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:11 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+SHOW GRID
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid GAO1
+ GRID GAO1
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAXLEVITR DEPTH (m) 20 i- 0 5000
+ normal T
+ normal E
+ normal F
+
+! use aux var regridding. Target coordinate points match the source points
+! identically at 0, 100, 200, ... 500
+! values should match the unadulterated variable at these points
+! this command will be issued in diagnostic mode to highlight that the
+! K range over which temp is read is the minimum needed to compute the result
+SET MODE diagnostic
+LET tempz = temp[gz(depth)=zpts]
+LIST/PREC=7 tempz
+ dealloc dynamic grid GAO1 XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ getgrid TEMPZ C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ getgrid DEPTH C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid GAO1 XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL NORMAL NORMAL
+ getgrid ZPTS C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid (G003) NORMAL NORMAL (AX005) NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G003) NORMAL NORMAL (AX005) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G003) NORMAL NORMAL (AX005) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999 M: -999 -999 N: -999 -999
+ eval TEMPZ C: 6 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999 M: -999 -999 N: -999 -999
+ allocate dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ strip regrid on Z: TEMP --> (G002) @LIN
+ eval DEPTH C: 9 dset: 1 I: 1 2 J: 1 2 K: 1 20 L: -999 -999 M: -999 -999 N: -999 -999
+ pseudo Z M: 1 dset: 1 I: -999 -999 J: -999 -999 K: 1 20 L: -999 -999 M: -999 -999 N: -999 -999
+ constan cnst M: 3 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ found TEMP M: 2 dset: 1 I: 1 2 J: 1 2 K: 1 11 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE cnst M: 3 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE tpry M: 4 dset: 0 I: 1 2 J: 1 2 K: 1 1 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE Z M: 1 dset: 1 I: -999 -999 J: -999 -999 K: 1 20 L: -999 -999 M: -999 -999 N: -999 -999
+ reading TEMP M: 1 dset: 1 I: 1 2 J: 1 2 K: 7 12 L: -999 -999 M: -999 -999 N: -999 -999
+ auxgrd TEMP M: 4 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999 M: -999 -999 N: -999 -999
+ dealloc dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+SHOW GRID tempz
+ dealloc dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
+ allocate dynamic grid (G002) XAXLEVITR1YAXLEVITR4(AX005) NORMAL NORMAL NORMAL
+ GRID (G002)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ (AX005) Z 5 r 100 500
+ normal T
+ normal E
+ normal F
+!LET tempz = temp[gz=zpts,layerz] ! same regrid using semi-automated notation
+!LIST/PREC=7 tempz
+!SHOW GRID tempz
+SET MODE/last diagnostic
+
+! list a little with no imtermediate variable, so Z labeling is visible
+LIST/PREC=7 temp[gz(depth)=zpts,k=1]
+ VARIABLE : TEMPERATURE (DEG C)
+ regrid: 100 delta on Z at LIN using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 100
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+!LIST/PREC=7 temp[gz=zpts,k=1,layerz] ! same using semi-automated notation
+
+! same calculation, but with a named Z axis
+LET tempzax = temp[gz(depth)=zax]
+LIST tempzax
+ VARIABLE : TEMP[GZ(DEPTH)=ZAX]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.335 7.436
+ 49.5S / 1: 6.462 6.572
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961 7.073
+ 49.5S / 1: 6.026 6.150
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457 6.637
+ 49.5S / 1: 5.445 5.665
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.182 6.377
+ 49.5S / 1: 5.187 5.410
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835 6.045
+ 49.5S / 1: 4.879 5.102
+SHOW GRID tempzax
+ GRID (G004)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAX Z (METERS) 5 r 100 500
+ normal T
+ normal E
+ normal F
+!LET tempzax = temp[gz=zax,layerz] ! same regrid using semi-automated notation
+!LIST tempzax
+!SHOW GRID tempzax
+
+! regrid to a different set of Z points
+LET tempz_alt = temp[gz(depth)=2:10:2]
+LIST/PREC=7 tempz_alt
+ VARIABLE : TEMP[GZ(DEPTH)=2:10:2]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 2
+ 48.5S / 2: 7.725200 7.917999
+ 49.5S / 1: 6.830200 7.010000
+ ---- K:2 Z: 4
+ 48.5S / 2: 7.725400 7.917999
+ 49.5S / 1: 6.833400 7.013000
+ ---- K:3 Z: 6
+ 48.5S / 2: 7.725600 7.917999
+ 49.5S / 1: 6.836600 7.016000
+ ---- K:4 Z: 8
+ 48.5S / 2: 7.725800 7.917999
+ 49.5S / 1: 6.839800 7.018999
+ ---- K:5 Z: 10
+ 48.5S / 2: 7.726000 7.917999
+ 49.5S / 1: 6.843000 7.021999
+SHOW GRID tempz_alt
+ GRID (G005)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ (AX007) Z 5 r 2 10
+ normal T
+ normal E
+ normal F
+
+!! do same regrid using the shorhand semi-automated notation
+!LIST/PREC=7 temp[z=2:10:2,layerz] ! lo:hi:delta notation
+!SHOW GRID
+
+! test the shorthand notation var[gz(depth)=100] as an implicit aux var
+! regrid via linear interpolation
+! the value should match the preceding output at Z=6
+LET tempz_1pt = temp[gz(depth)=6]
+LIST/PREC=7 tempz_1pt
+ VARIABLE : TEMP[GZ(DEPTH)=6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 6
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.725600 7.917999
+ 49.5S / 1: 6.836600 7.016000
+SHOW GRID/z tempz_1pt
+ GRID (G006)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ (AX008) Z 1 r 6 6
+ normal T
+ normal E
+ normal F
+
+ K Z ZBOX ZBOXLO
+ 1> 6 6.E-05 5.99997
+
+! do same regrid using the shorhand semi-automated notation
+LIST/PREC=7 temp[z=6,layerz] ! =1pt notation WILL BE CHANGED!
+ VARIABLE : TEMPERATURE (DEG C)
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 6 (interpolated using DEPTH)
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.725600 7.917999
+ 49.5S / 1: 6.836600 7.016000
+SHOW GRID
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid GAO1
+ GRID GAO1
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAXLEVITR DEPTH (m) 20 i- 0 5000
+ normal T
+ normal E
+ normal F
+
+! auxiliary points in reverse order
+! to get results that we can check for correctness, we will reverse the Z-order
+! of the temperature field as well as the depth field.
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET/D=levitus_3d_subset rvdepth = rvdepth0[gz=temp at asn]
+! **** NOTE: THERE'S A SUBTLE MISBEHAVIOR IN AUX REGRID SHOWN IN THIS COMMENTED
+! OUT LINE BUT WILL RARELY OCCUR AND EASILY WORKED AROUND
+!LET rvtempzax = rvtemp[gz(rvdepth)=zax] ! zlims aren't filled in if not given
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+LIST/PREC=7 rvtempzax - tempz
+ VARIABLE : RVTEMPZAX - TEMPZ
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:2 Z: 200
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:3 Z: 300
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:4 Z: 400
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:5 Z: 500
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+SHOW GRID rvtempzax
+ GRID (G004)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAX Z (METERS) 5 r 100 500
+ normal T
+ normal E
+ normal F
+
+! deliberate execution errors:
+LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+LET disordered_tempz1 = temp[gz(disordered_depth1)=zax]
+LET disordered_depth2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+LET disordered_tempz2 = temp[gz(disordered_depth2)=zax]
+SET MODE ignore
+LIST disordered_tempz1
+ VARIABLE : TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.335 7.436
+ 49.5S / 1: 6.462 6.572
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961 7.073
+ 49.5S / 1: 6.026 6.150
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457 6.637
+ 49.5S / 1: 5.445 5.665
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.182 6.377
+ 49.5S / 1: 5.187 5.410
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835 6.045
+ 49.5S / 1: 4.879 5.102
+LIST disordered_tempz2
+ VARIABLE : TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (METERS))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.335 7.436
+ 49.5S / 1: 6.462 6.572
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961 7.073
+ 49.5S / 1: 6.026 6.150
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457 6.637
+ 49.5S / 1: 5.445 5.665
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.182 6.377
+ 49.5S / 1: 5.187 5.410
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835 6.045
+ 49.5S / 1: 4.879 5.102
+SET MODE/last ignore
+
+! test VTREE with a complex auxiliary variable definitions
+VTREE
+ in default dataset levitus_3d_subset
+ RVTEMPZAX = RVTEMP[GZ(RVDEPTH)=ZAX,Z=100:500]
+ RVTEMP = RVTEMP0[GZ=TEMP at ASN]
+ RVDEPTH = RVDEPTH0[GZ=TEMP at ASN]
+ RVDEPTH0 = ZREVERSE(DEPTH)
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ DISORDERED_TEMPZ2 = TEMP[GZ(DISORDERED_DEPTH2)=ZAX]
+ DISORDERED_DEPTH2 = IF K EQ 3 THEN DEPTH[K=5] ELSE DEPTH
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ DISORDERED_TEMPZ1 = TEMP[GZ(DISORDERED_DEPTH1)=ZAX]
+ DISORDERED_DEPTH1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
+ regrid to ZPTS = Z[Z=100:500:100]
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMPZAX = TEMP[GZ(DEPTH)=ZAX]
+ DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
+ TEMPZ_1PT = TEMP[GZ(DEPTH)=6]
+ TEMPZ_ALT = TEMP[GZ(DEPTH)=2:10:2]
+ A = TEMP
+
+! 6-dimensional regridding
+
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+LET temp6d = temp/100 + 1*L[L=1:2] + 10*_M[M=1:2] + 100*_N[N=1:2]
+!list/k=7:12/PREC=7 temp6d
+LET tempz6d = temp6d[gz(depth)=zpts]
+!LIST/PREC=7 tempz6d
+! compare pre- and post- regrid at a fixed depth
+stat/z=100 temp6d-tempz6d
+
+ TEMP6D-TEMPZ6D
+ LONGITUDE: 120E to 122E
+ LATITUDE: 50S to 48S
+ DEPTH (m): 100
+ T: 0.5 to 2.5
+ E: 0.5 to 2.5
+ F: 0.5 to 2.5
+ DATA SET: ./levitus_3d_subset.nc
+
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean value: 0 (unweighted average)
+ Standard deviation: 0
+stat/z=400 temp6d-tempz6d
+
+ TEMP6D-TEMPZ6D
+ LONGITUDE: 120E to 122E
+ LATITUDE: 50S to 48S
+ DEPTH (m): 400
+ T: 0.5 to 2.5
+ E: 0.5 to 2.5
+ F: 0.5 to 2.5
+ DATA SET: ./levitus_3d_subset.nc
+
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean value: 0 (unweighted average)
+ Standard deviation: 0
+
+! 6d temperature and 6d depth field
+! hold temperature constant over time, have depths change
+! note that for N=2 depths of less than 100 are no longer in the data hence missing values at Z=100
+LET temp6d_const = temp + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2] ! constant in T,E,F
+LET depth6d = depth + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+LET tempz6d_tDep = temp6d_const[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_tDep
+ VARIABLE : TEMP6D_CONST[GZ(DEPTH6D)=ZPTS]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 by 2 by 2 by 2 points (LONGITUDE-LATITUDE-Z-T-E-F)
+ 120.5E 121.5E
+ 1 2
+ ---- N:1 F: 1
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:2 Z: 200
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.835500 6.045001
+ 49.5S / 1: 4.879000 5.102500
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.429800 7.528001
+ 49.5S / 1: 6.577600 6.682400
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.043200 7.151200
+ 49.5S / 1: 6.113999 6.234800
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.507401 6.680599
+ 49.5S / 1: 5.503100 5.713500
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.209499 6.403001
+ 49.5S / 1: 5.212800 5.435500
+ ---- K:5 Z: 500
+ 48.5S / 2: 5.870150 6.078201
+ 49.5S / 1: 4.909800 5.133250
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.410999 7.584000
+ 49.5S / 1: 6.624001 6.785000
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.372000 7.464001
+ 49.5S / 1: 6.466000 6.573999
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.709001 6.855000
+ 49.5S / 1: 5.735499 5.907500
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.319500 6.507000
+ 49.5S / 1: 5.316000 5.537500
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.008749 6.211001
+ 49.5S / 1: 5.033000 5.256250
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.502500 7.686500
+ 49.5S / 1: 6.682500 6.854000
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.364600 7.458401
+ 49.5S / 1: 6.465200 6.573600
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.759401 6.898600
+ 49.5S / 1: 5.793599 5.956000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.347000 6.533000
+ 49.5S / 1: 5.341800 5.563000
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.043399 6.244201
+ 49.5S / 1: 5.063800 5.287000
+ ---- N:2 F: 2
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: 7.725000 7.917999
+ 49.5S / 1: 6.827000 7.007000
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.334999 7.436001
+ 49.5S / 1: 6.462000 6.572001
+ ---- K:3 Z: 300
+ 48.5S / 2: 6.961000 7.073000
+ 49.5S / 1: 6.025999 6.150000
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.457001 6.636999
+ 49.5S / 1: 5.445000 5.665000
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.181999 6.377001
+ 49.5S / 1: 5.187000 5.410000
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: .... ....
+ 49.5S / 1: .... ....
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.429800 7.528001
+ 49.5S / 1: 6.577600 6.682400
+ ---- K:3 Z: 300
+ 48.5S / 2: 7.043200 7.151200
+ 49.5S / 1: 6.113999 6.234800
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.507401 6.680599
+ 49.5S / 1: 5.503100 5.713500
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.209499 6.403001
+ 49.5S / 1: 5.212800 5.435500
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:1 Z: 100
+ 48.5S / 2: .... ....
+ 49.5S / 1: .... ....
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.410999 7.584000
+ 49.5S / 1: 6.624001 6.785000
+ ---- K:3 Z: 300
+ 48.5S / 2: 7.372000 7.464001
+ 49.5S / 1: 6.466000 6.573999
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.709001 6.855000
+ 49.5S / 1: 5.735499 5.907500
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.319500 6.507000
+ 49.5S / 1: 5.316000 5.537500
+ ---- L:2 T: 2
+ ---- K:1 Z: 100
+ 48.5S / 2: .... ....
+ 49.5S / 1: .... ....
+ ---- K:2 Z: 200
+ 48.5S / 2: 7.502500 7.686500
+ 49.5S / 1: 6.682500 6.854000
+ ---- K:3 Z: 300
+ 48.5S / 2: 7.364600 7.458401
+ 49.5S / 1: 6.465200 6.573600
+ ---- K:4 Z: 400
+ 48.5S / 2: 6.759401 6.898600
+ 49.5S / 1: 5.793599 5.956000
+ ---- K:5 Z: 500
+ 48.5S / 2: 6.347000 6.533000
+ 49.5S / 1: 5.341800 5.563000
+LIST/PREC=7/k=7:8 temp6d_const, depth6d ! reference values at Z=100, 200, 300 for visual comparison
+ DATA SET: ./levitus_3d_subset.nc
+ LONGITUDE: 120E to 122E
+ LATITUDE: 50S to 48S
+ DEPTH (m): 87.5 to 175
+ T: 0.5 to 2.5
+ E: 0.5 to 2.5
+ F: 0.5 to 2.5
+ Column 1: TEMP6D_CONST is TEMP + 0*L[L=1:2] + 0*_M[M=1:2] + 0*_N[N=1:2]
+ Column 2: DEPTH6D is DEPTH + 10*(L[L=1:2]-1) + 50*(_M[M=1:2]-1) + 100*(_N[N=1:2]-1)
+ TEMP6D_CONS DEPTH6D
+ ---- N:1 F: 1
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 100.0000
+121.5E / 2: 6.572001 100.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 100.0000
+121.5E / 2: 7.436001 100.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 150.0000
+121.5E / 2: 6.573999 150.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 150.0000
+121.5E / 2: 7.464001 150.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 110.0000
+121.5E / 2: 6.572001 110.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 110.0000
+121.5E / 2: 7.436001 110.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 160.0000
+121.5E / 2: 6.573999 160.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 160.0000
+121.5E / 2: 7.464001 160.0000
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 150.0000
+121.5E / 2: 6.572001 150.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 150.0000
+121.5E / 2: 7.436001 150.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 200.0000
+121.5E / 2: 6.573999 200.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 200.0000
+121.5E / 2: 7.464001 200.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 160.0000
+121.5E / 2: 6.572001 160.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 160.0000
+121.5E / 2: 7.436001 160.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 210.0000
+121.5E / 2: 6.573999 210.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 210.0000
+121.5E / 2: 7.464001 210.0000
+ ---- N:2 F: 2
+ ---- M:1 E: 1
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 200.0000
+121.5E / 2: 6.572001 200.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 200.0000
+121.5E / 2: 7.436001 200.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 250.0000
+121.5E / 2: 6.573999 250.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 250.0000
+121.5E / 2: 7.464001 250.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 210.0000
+121.5E / 2: 6.572001 210.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 210.0000
+121.5E / 2: 7.436001 210.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 260.0000
+121.5E / 2: 6.573999 260.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 260.0000
+121.5E / 2: 7.464001 260.0000
+ ---- M:2 E: 2
+ ---- L:1 T: 1
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 250.0000
+121.5E / 2: 6.572001 250.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 250.0000
+121.5E / 2: 7.436001 250.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 300.0000
+121.5E / 2: 6.573999 300.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 300.0000
+121.5E / 2: 7.464001 300.0000
+ ---- L:2 T: 2
+ ---- K:7 Z: 100
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.462000 260.0000
+121.5E / 2: 6.572001 260.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.334999 260.0000
+121.5E / 2: 7.436001 260.0000
+ ---- K:8 Z: 150
+ ---- J:1 Y: 49.5S
+120.5E / 1: 6.466000 310.0000
+121.5E / 2: 6.573999 310.0000
+ ---- J:2 Y: 48.5S
+120.5E / 1: 7.372000 310.0000
+121.5E / 2: 7.464001 310.0000
+! ... some spot checks
+LIST/PREC=7/l=1/m=1/n=1 tempz6d_tDep[Z=100] - temp6d_const[k=7]
+ VARIABLE : TEMPZ6D_TDEP[Z=100] - TEMP6D_CONST[K=7]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 100
+ T : 1
+ E : 1
+ F : 1
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+LIST/PREC=7/l=1/m=2/n=1 tempz6d_tDep[Z=200] - temp6d_const[k=8]
+ VARIABLE : TEMPZ6D_TDEP[Z=200] - TEMP6D_CONST[K=8]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 200
+ T : 1
+ E : 2
+ F : 1
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+LIST/PREC=7/l=1/m=2/n=2 tempz6d_tDep[Z=300] - temp6d_const[k=8]
+ VARIABLE : TEMPZ6D_TDEP[Z=300] - TEMP6D_CONST[K=8]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 300
+ T : 1
+ E : 2
+ F : 2
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+
+! ** deliberate error **
+! 6d temperature and 3d depth field (depth unchanging in time, ensemble and forecast)
+! Ferret does not permit auxiliary variable to have an axis not found on the source variable
+! (to avoid having to consider auxiliary variables during grid-getting ... possible to do)
+SET MODE IGNORE
+LET tempz6d_unmatch = temp[gz(depth6d)=zpts]
+LIST/PREC=7 tempz6d_unmatch
+SET MODE/LAST IGNORE
+
+! ********************************
+! test the @plave regridding -- ave defined from area under piecewise curve
+
+! first compare to our simplest of linear interpolation regrids, tempz
+! note that results will differ due to non-linearity
+! at Z=500 on the output they become identical because the Z=500 grid box
+! extends 450:550 with source points at Z=400 and Z=600 -- pure linear
+! LET tempz = temp[gz(depth)=zpts]
+LET tempzave = temp[gz(depth)=zpts at plave]
+LIST tempzave - tempz
+ VARIABLE : TEMPZAVE - TEMPZ
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 0.07800 0.08300
+ 49.5S / 1: 0.09350 0.09612
+ ---- K:2 Z: 200
+ 48.5S / 2: 0.03975 0.04325
+ 49.5S / 1: 0.03738 0.04537
+ ---- K:3 Z: 300
+ 48.5S / 2: 0.02862 0.02200
+ 49.5S / 1: 0.04037 0.02875
+ ---- K:4 Z: 400
+ 48.5S / 2: -0.00894 -0.00900
+ 49.5S / 1: -0.00625 -0.00656
+ ---- K:5 Z: 500
+ 48.5S / 2: 0.00000 0.00000
+ 49.5S / 1: 0.00000 0.00000
+
+! list a little. Note the regridding transform label
+LIST/PREC=7 temp[gz(depth)=zpts at plave,k=1]
+ VARIABLE : TEMPERATURE (DEG C)
+ regrid: 100 delta on Z at PLAVE using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 50 to 150
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: 7.413000 7.519001
+ 49.5S / 1: 6.555500 6.668125
+
+! Levitus has points at 50, 75, 100, 150, 200
+! define target axis with edges at 50:75 (k=1), 75:100 (k=2)
+! 100:125(k=3), 125:150 (k=4), 150:175(k=5)
+define axis/edges/z=50:175:25/units=m zpt2 ! point at 125 is mid-way
+
+! raw source data -- artifically designed for easy mental calcs
+LET myvals = temp*0+100*(i-100)+10*(j-40)+k
+list/PREC=7 myvals[z=50:300]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+K
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+ 120.5E 121.5E
+ 1 2
+ ---- K:5 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:6 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:7 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:8 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:9 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+ ---- K:10 Z: 300
+ 48.5S / 2: -10270.00 -10170.00
+ 49.5S / 1: -10280.00 -10180.00
+
+! linear interpolation regridding
+LET mzlin2 = myvals[gz(depth)=zpt2]
+LIST/PREC=7 mzlin2
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z: 87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z: 112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z: 137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z: 162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+
+! average-regridding
+LET mzave2 = myvals[gz(depth)=zpt2 at plave]
+
+! cases:
+! 1) both edges lie on source points
+LIST/PREC=7 mzave2[k=2] ! vals at 75, 100 ==> 75:100
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 87.5
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+
+! 2) lower edge only lies on source point
+LIST/PREC=7 mzave2[k=3] ! vals at 100, 150 ==> 100:125
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 112.5
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+
+! 3) upper edge only lies on source point
+LIST/PREC=7 mzave2[k=4] ! vals at 100, 150 ==> 125:150
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 137.5
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+
+! 4) full range
+! myvals2 is linear in k, so @plave and @lin get identical results
+LIST/PREC=7 mzave2
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT2 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 62.5
+ 48.5S / 2: -10274.50 -10174.50
+ 49.5S / 1: -10284.50 -10184.50
+ ---- K:2 Z: 87.5
+ 48.5S / 2: -10273.50 -10173.50
+ 49.5S / 1: -10283.50 -10183.50
+ ---- K:3 Z: 112.5
+ 48.5S / 2: -10272.75 -10172.75
+ 49.5S / 1: -10282.75 -10182.75
+ ---- K:4 Z: 137.5
+ 48.5S / 2: -10272.25 -10172.25
+ 49.5S / 1: -10282.25 -10182.25
+ ---- K:5 Z: 162.5
+ 48.5S / 2: -10271.75 -10171.75
+ 49.5S / 1: -10281.75 -10181.75
+LIST/PREC=7 mzave2 - mzlin2
+ VARIABLE : MZAVE2 - MZLIN2
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 62.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:2 Z: 87.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:3 Z: 112.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:4 Z: 137.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+ ---- K:5 Z: 162.5
+ 48.5S / 2: 0.0000000 0.0000000
+ 49.5S / 1: 0.0000000 0.0000000
+
+! 5) divide a single source range into multiple destination cells
+! a range of 50 divided into 5 cells will have means of x.1,x.3,x.5, x.7, x.9
+define axis/edges/z=150:200:10/units=m zpt3
+LET mzave3 = myvals[gz(depth)=zpt3 at plave]
+LIST/PREC=7 mzave3
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT3 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 155
+ 48.5S / 2: -10271.90 -10171.90
+ 49.5S / 1: -10281.90 -10181.90
+ ---- K:2 Z: 165
+ 48.5S / 2: -10271.70 -10171.70
+ 49.5S / 1: -10281.70 -10181.70
+ ---- K:3 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:4 Z: 185
+ 48.5S / 2: -10271.30 -10171.30
+ 49.5S / 1: -10281.30 -10181.30
+ ---- K:5 Z: 195
+ 48.5S / 2: -10271.10 -10171.10
+ 49.5S / 1: -10281.10 -10181.10
+
+! 6) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.333333
+define axis/edges/z=50:200:150/units=m zpt4
+LET mzave4 = myvals[gz(depth)=zpt4 at plave]
+LIST/PREC=7 mzave4
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT4 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 125
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.67 -10172.67
+ 49.5S / 1: -10282.67 -10182.67
+
+! 7) derive a single destination cell from many source points
+! by manual calculation the correct answers will be n.8125
+define axis/edges/z=50:250:200/units=m zpt5
+LET mzave5 = myvals[gz(depth)=zpt5 at plave]
+LIST/PREC=7 mzave5
+ VARIABLE : MYVALS[GZ(DEPTH)=ZPT5 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z (M) : 150
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10272.19 -10172.19
+ 49.5S / 1: -10282.19 -10182.19
+
+! 8) test the short-hand notation var[gz(depth)=0:100 at ave] as an implicit
+! aux var regrid via piecewice linear averaging
+! To confirm correct results we create a piecewize linear function that
+! has constant slope. Averaging such a function over a symmetric region
+! around a point on the source data should return the value at the point
+LET myvals_z = TEMP*0+100*(I-100)+10*(J-40)+Z
+list/PREC=7 myvals_z[z=200]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 200
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+list/PREC=7 myvals_z[gz(depth)=190:210 at ave]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ regrid: on Z at PLAVE using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 190 to 210
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+list/PREC=7 myvals_z[gz(depth)=150:250 at ave]
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ regrid: on Z at PLAVE using DEPTH field
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ Z : 150 to 250
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+
+! 8a) do same regrid using the shorhand semi-automated notation
+SET VAR/LAYERZ=depth myvals_z
+list/PREC=7 myvals_z[z=190:210 at ave,layerz] ! lo:hi at ave notation WILL BE CHANGED
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 190 to 210 (pc wise lin avgd using DEPTH)
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+list/PREC=7 myvals_z[z=150:250 at ave,layerz] ! WILL BE CHANGED
+ VARIABLE : TEMP*0+100*(I-100)+10*(J-40)+Z
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 points (LONGITUDE-LATITUDE)
+ DEPTH (m): 150 to 250 (pc wise lin avgd using DEPTH)
+ 120.5E 121.5E
+ 1 2
+ 48.5S / 2: -10080.00 -9980.00
+ 49.5S / 1: -10090.00 -9990.00
+
+! test missing values in the depth array
+! cases:
+! 1) missing values at start of aux array
+define axis/z=25:200:25/units=m zpt6
+LET depmis = IF (I NE 102 OR k GT 6) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 2) missing values at end of aux array
+LET depmis = IF (I NE 102 OR k LT 9) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 3) missing values in midst of aux array -- stops processing beyond
+LET depmis = IF (I NE 102 OR k EQ 7 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 4) singleton non-missing values in a line of the aux array
+LET depmis = IF (I NE 102 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 5) there are only missing values in a line of the aux array
+LET depmis = IF (I NE 102) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+
+! 6) two separated singletons -- only the first should be found
+LET depmis = IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN depth
+LET mzmis = myvals[gz(depmis)=zpt6]
+LIST/PREC=7 mzmis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.50 -10176.50
+ 49.5S / 1: -10286.50 -10186.50
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.00 -10175.00
+ 49.5S / 1: -10285.00 -10185.00
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.00 -10173.00
+ 49.5S / 1: -10283.00 -10183.00
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.00 -10171.00
+ 49.5S / 1: -10281.00 -10181.00
+LET mzavemis = myvals[gz(depmis)=zpt6 at plave]
+LIST/PREC=7 mzavemis
+ VARIABLE : MYVALS[GZ(DEPMIS)=ZPT6 at PLAVE]
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 8 points (LONGITUDE-LATITUDE-Z (M))
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 25
+ 48.5S / 2: -10276.56 -10176.56
+ 49.5S / 1: -10286.56 -10186.56
+ ---- K:2 Z: 50
+ 48.5S / 2: -10275.03 -10175.03
+ 49.5S / 1: -10285.03 -10185.03
+ ---- K:3 Z: 75
+ 48.5S / 2: -10274.00 -10174.00
+ 49.5S / 1: -10284.00 -10184.00
+ ---- K:4 Z: 100
+ 48.5S / 2: -10273.06 -10173.06
+ 49.5S / 1: -10283.06 -10183.06
+ ---- K:5 Z: 125
+ 48.5S / 2: -10272.50 -10172.50
+ 49.5S / 1: -10282.50 -10182.50
+ ---- K:6 Z: 150
+ 48.5S / 2: -10272.00 -10172.00
+ 49.5S / 1: -10282.00 -10182.00
+ ---- K:7 Z: 175
+ 48.5S / 2: -10271.50 -10171.50
+ 49.5S / 1: -10281.50 -10181.50
+ ---- K:8 Z: 200
+ 48.5S / 2: -10271.03 -10171.03
+ 49.5S / 1: -10281.03 -10181.03
+list depmis[z=25:200] ! to illustrate why the result is as it is
+ VARIABLE : IF (I NE 102 OR K EQ 6 OR K EQ 8) THEN DEPTH
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 6 points (LONGITUDE-LATITUDE-DEPTH (m))
+ 120.5E 121.5E
+ 1 2
+ ---- K:4 Z: 30
+ 48.5S / 2: 30.0 30.0
+ 49.5S / 1: 30.0 30.0
+ ---- K:5 Z: 50
+ 48.5S / 2: 50.0 50.0
+ 49.5S / 1: 50.0 50.0
+ ---- K:6 Z: 75
+ 48.5S / 2: 75.0 75.0
+ 49.5S / 1: 75.0 75.0
+ ---- K:7 Z: 100
+ 48.5S / 2: 100.0 100.0
+ 49.5S / 1: 100.0 100.0
+ ---- K:8 Z: 150
+ 48.5S / 2: 150.0 150.0
+ 49.5S / 1: 150.0 150.0
+ ---- K:9 Z: 200
+ 48.5S / 2: 200.0 200.0
+ 49.5S / 1: 200.0 200.0
+
+! ********
+! reversed-auxiliary variable used in regridding
+! (see definitions made earlier)
+! Note that the regridded result only matches the original data in regions
+! where the underlying piecewise function remains strictly linear with
+! unchanging slope/intercept. Since the Z=500 point has cell limits 450:550
+! and the underlying Levitus Z points (used in the definition of "depth") are
+! at 400 and 600, we get the identical result from @PLAVE and @LIN
+LET rvtempzaxave = rvtemp[gz(rvdepth)=zax at plave,z=100:500]
+LIST/PREC=7 rvtempzaxave - tempz
+ VARIABLE : RVTEMPZAXAVE - TEMPZ
+ FILENAME : levitus_3d_subset.nc
+ SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
+ 120.5E 121.5E
+ 1 2
+ ---- K:1 Z: 100
+ 48.5S / 2: 0.07800055 0.08299971
+ 49.5S / 1: 0.09349990 0.09612441
+ ---- K:2 Z: 200
+ 48.5S / 2: 0.03974986 0.04325008
+ 49.5S / 1: 0.03737521 0.04537499
+ ---- K:3 Z: 300
+ 48.5S / 2: 0.02862477 0.02200031
+ 49.5S / 1: 0.04037499 0.02874994
+ ---- K:4 Z: 400
+ 48.5S / 2: -0.00893724 -0.00900024
+ 49.5S / 1: -0.00625008 -0.00656247
+ ---- K:5 Z: 500
+ 48.5S / 2: 0.00000000 0.00000000
+ 49.5S / 1: 0.00000000 0.00000000
+SHOW GRID/z rvtempzaxave
+ GRID (G004)
+ name axis # pts start end
+ XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E
+ YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S
+ ZAX Z (METERS) 5 r 100 500
+ normal T
+ normal E
+ normal F
+
+ K Z ZBOX ZBOXLO
+ 1> 100 100 50
+ 2> 200 100 150
+ 3> 300 100 250
+ 4> 400 100 350
+ 5> 500 100 450
+
+! 5/15 -- added tests for non-monotonic auxiliary variable
+!test_non_monotonic_aux_z.jnl
+
+cancel region
+define axis/x=161e:165e:1 xax
+define axis/z=100:600:100 zax
+
+let temp = 0.0001*Z[gz=zax]^2 + 0*x[gx=xax]
+list temp
+ VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+
+! disordered points at beginning, middle and end, missing at beginning
+let density0 = 0*i[gx=xax]*k[gz=zax] + z/10
+let density1 = if i eq 2 and k eq 4 then 20 else density0
+let density2 = if i eq 3 and k eq 1 then 20 else density1
+let density3 = if i eq 3 and k eq 2 then 10 else density2
+let density4 = if i eq 4 and k eq 6 then 30 else density3
+let density = if i eq 5 and k le 2 then 1/0 else density4 ! missing at k=1:3
+list density
+ VARIABLE : IF I EQ 5 AND K LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+
+! Z=200-300 on the density axis are double valued at I=2
+list temp[gz(density)=5:65:2.5]
+ VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+ regrid: 2.5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 25 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 7.5 / 2: .... .... .... .... ....
+ 10 / 3: 1.00 1.00 4.00 1.00 ....
+ 12.5 / 4: 1.75 1.75 .... 1.75 ....
+ 15 / 5: 2.50 2.50 .... 2.50 ....
+ 17.5 / 6: 3.25 3.25 .... 3.25 ....
+ 20 / 7: 4.00 .... .... 4.00 ....
+ 22.5 / 8: 5.25 .... 7.13 5.25 ....
+ 25 / 9: 6.50 .... 7.75 6.50 ....
+ 27.5 / 10: 7.75 .... 8.38 7.75 ....
+ 30 / 11: 9.00 .... 9.00 .... 9.00
+ 32.5 / 12: 10.75 19.75 10.75 .... 10.75
+ 35 / 13: 12.50 20.50 12.50 .... 12.50
+ 37.5 / 14: 14.25 21.25 14.25 .... 14.25
+ 40 / 15: 16.00 22.00 16.00 .... 16.00
+ 42.5 / 16: 18.25 22.75 18.25 .... 18.25
+ 45 / 17: 20.50 23.50 20.50 .... 20.50
+ 47.5 / 18: 22.75 24.25 22.75 .... 22.75
+ 50 / 19: 25.00 25.00 25.00 25.00 25.00
+ 52.5 / 20: 27.75 27.75 27.75 .... 27.75
+ 55 / 21: 30.50 30.50 30.50 .... 30.50
+ 57.5 / 22: 33.25 33.25 33.25 .... 33.25
+ 60 / 23: 36.00 36.00 36.00 .... 36.00
+ 62.5 / 24: .... .... .... .... ....
+ 65 / 25: .... .... .... .... ....
+
+
+!************************************
+! reverse-ordering of same field
+let btemp = 0.0001*(700-Z[gz=zax])^2 + 0*x[gx=xax]
+list btemp
+ VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2 + 0*X[GX=XAX]
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 36.00 36.00 36.00 36.00 36.00
+ 200 / 2: 25.00 25.00 25.00 25.00 25.00
+ 300 / 3: 16.00 16.00 16.00 16.00 16.00
+ 400 / 4: 9.00 9.00 9.00 9.00 9.00
+ 500 / 5: 4.00 4.00 4.00 4.00 4.00
+ 600 / 6: 1.00 1.00 1.00 1.00 1.00
+
+let bdensity0 = 0*i[gx=xax]*k[gz=zax] + (700-z)/10
+let bdensity1 = if i eq 2 and (7-k) eq 4 then 20 else bdensity0
+let bdensity2 = if i eq 3 and (7-k) eq 1 then 20 else bdensity1
+let bdensity3 = if i eq 3 and (7-k) eq 2 then 10 else bdensity2
+let bdensity4 = if i eq 4 and (7-k) eq 6 then 30 else bdensity3
+let bdensity = if i eq 5 and (7-k) le 2 then 1/0 else bdensity4 !missing k=1:3
+
+SAY "************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********"
+************ TBD: STILL NEED TO MAKE SURE UNITS ARE WORKING ********
+SET VAR/units="kg/m^3" density
+
+list bdensity
+ VARIABLE : IF I EQ 5 AND (7-K) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 6 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 100 / 1: 60.00 60.00 60.00 30.00 60.00
+ 200 / 2: 50.00 50.00 50.00 50.00 50.00
+ 300 / 3: 40.00 20.00 40.00 40.00 40.00
+ 400 / 4: 30.00 30.00 30.00 30.00 30.00
+ 500 / 5: 20.00 20.00 10.00 20.00 ....
+ 600 / 6: 10.00 10.00 20.00 10.00 ....
+
+list btemp[gz(bdensity)=5:65:2.5]
+ VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2 + 0*X[GX=XAX]
+ regrid: 2.5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 25 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 7.5 / 2: .... .... .... .... ....
+ 10 / 3: 1.00 1.00 4.00 1.00 ....
+ 12.5 / 4: 1.75 1.75 .... 1.75 ....
+ 15 / 5: 2.50 2.50 .... 2.50 ....
+ 17.5 / 6: 3.25 3.25 .... 3.25 ....
+ 20 / 7: 4.00 .... .... 4.00 ....
+ 22.5 / 8: 5.25 .... 7.13 5.25 ....
+ 25 / 9: 6.50 .... 7.75 6.50 ....
+ 27.5 / 10: 7.75 .... 8.38 7.75 ....
+ 30 / 11: 9.00 .... 9.00 .... 9.00
+ 32.5 / 12: 10.75 19.75 10.75 .... 10.75
+ 35 / 13: 12.50 20.50 12.50 .... 12.50
+ 37.5 / 14: 14.25 21.25 14.25 .... 14.25
+ 40 / 15: 16.00 22.00 16.00 .... 16.00
+ 42.5 / 16: 18.25 22.75 18.25 .... 18.25
+ 45 / 17: 20.50 23.50 20.50 .... 20.50
+ 47.5 / 18: 22.75 24.25 22.75 .... 22.75
+ 50 / 19: 25.00 25.00 25.00 25.00 25.00
+ 52.5 / 20: 27.75 27.75 27.75 .... 27.75
+ 55 / 21: 30.50 30.50 30.50 .... 30.50
+ 57.5 / 22: 33.25 33.25 33.25 .... 33.25
+ 60 / 23: 36.00 36.00 36.00 .... 36.00
+ 62.5 / 24: .... .... .... .... ....
+ 65 / 25: .... .... .... .... ....
+
+!************************************
+! similar analysis using @plave over wider cells
+! compare to reverse-ordered data
+list temp[gz(density)=5:65:15 at plave]
+ VARIABLE : 0.0001*Z[GZ=ZAX]^2 + 0*X[GX=XAX]
+ regrid: 15 kg/m^3 on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 5 points (LONGITUDE-Z (kg/m^3))
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+list btemp[gz(bdensity)=5:65:15 at plave]
+ VARIABLE : 0.0001*(700-Z[GZ=ZAX])^2 + 0*X[GX=XAX]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 5 points (LONGITUDE-Z)
+ 161E 162E 163E 164E 165E
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+
+! 6/15
+! test 1D auxiliary axis regirdding on all axes
+
+! p for passive axis
+! a for active axis
+
+define axis/x=161:165:1 xp
+define axis/y=161:165:1 yp
+define axis/z=161:165:1 zp
+define axis/t=161:165:1 tp
+define axis/e=161:165:1 ep
+define axis/f=161:165:1 fp
+
+define axis/x=100:700:100 xa
+define axis/y=100:700:100 ya
+define axis/z=100:700:100 za
+define axis/t=100:700:100 ta
+define axis/e=100:700:100 ea
+define axis/f=100:700:100 fa
+
+
+GO bn_auxiliary.sub Z,X,F
+
+*****************************
+********** Z,X,F ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 density
+ VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 bdensity
+ VARIABLE : IF (_I EQ 5 OR _N EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5] ! passive ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5] ! passive ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 1
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 2
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using DENSITY field
+ SUBSET : 5 points (X)
+ Z : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using BDENSITY field
+ SUBSET : 5 points (X)
+ Z : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+
+
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (X-Z)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=FZ/i=1/j=1 /l=1/m=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-Z)
+ X : 161
+ Y : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using DENSITY field
+ SUBSET : 5 points (X)
+ Z : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=XZ/j=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using BDENSITY field
+ SUBSET : 5 points (X)
+ Z : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+GO bn_auxiliary.sub Z,Y,E
+
+*****************************
+********** Z,Y,E ***********
+*****************************
+
+! show the underlying fields
+list/order=($pax1)($aax)($REG1) temp
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+list/order=($pax1)($aax)($REG1) btemp
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+list/order=($pax1)($aax)($REG1) density
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 density
+ VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND _K LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+list/order=($pax1)($aax)($REG1) bdensity
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 bdensity
+ VARIABLE : IF (_J EQ 5 OR _M EQ 5) AND (8-_K) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+
+! show the regridded fields
+! using interpolation
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:5] ! passive ax 1
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:5] ! passive ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using DENSITY field
+ SUBSET : 5 by 16 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 1
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:5] ! backwards pasv ax 2
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:5]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Z at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using DENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at LIN using BDENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+
+
+! using piecewise linear averaging
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) temp[($gax)(density)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 temp[gZ(density)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Y-Z)
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+list/order=($pax2)($aax)($REG2) btemp[($gax)(bdensity)=5:80:15 at plave]
+ !-> list/order=EZ/i=1/j=1 /l=1 /n=1 btemp[gZ(bdensity)=5:80:15 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Z at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (E-Z)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+! 6/2015 - test degenerate single point target axis
+list/order=($pax1)($aax)($REG1) temp[($gax)(density)=35:55 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 temp[gZ(density)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001* _Z[GZ=ZA] ^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using DENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35 to 55
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+list/order=($pax1)($aax)($REG1) btemp[($gax)(bdensity)=35:55 at plave]
+ !-> list/order=YZ/i=1 /l=1/m=1/n=1 btemp[gZ(bdensity)=35:55 at plave]
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0.0001*(800-_Z[GZ=ZA])^2 + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Z at PLAVE using BDENSITY field
+ SUBSET : 5 points (Y)
+ Z : 35 to 55
+ X : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+
+!*********************************************************************************
+!*********************************************************************************
+EXIT/SCRIPT
+CANC MODE VERIFY
+
+*****************************
+********** X,Z,F ***********
+*****************************
+
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _I LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_I) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on X at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at LIN using DENSITY field
+ SUBSET : 5 points (Z)
+ X : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at LIN using BDENSITY field
+ SUBSET : 5 points (Z)
+ X : 35
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Z-X)
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on X at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-X)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0.0001* _X[GX=XA] ^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at PLAVE using DENSITY field
+ SUBSET : 5 points (Z)
+ X : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+ VARIABLE : 0.0001*(800-_X[GX=XA])^2 + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on X at PLAVE using BDENSITY field
+ SUBSET : 5 points (Z)
+ X : 35 to 55
+ Y : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+
+*****************************
+********** Y,X,E ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+ VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND _J LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+ VARIABLE : IF (_I EQ 5 OR _M EQ 5) AND (8-_J) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using DENSITY field
+ SUBSET : 5 by 16 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using DENSITY field
+ SUBSET : 5 by 16 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on Y at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at LIN using DENSITY field
+ SUBSET : 5 points (X)
+ Y : 35
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at LIN using BDENSITY field
+ SUBSET : 5 points (X)
+ Y : 35
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (X-Y)
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on Y at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (E-Y)
+ X : 161
+ Z : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0.0001* _Y[GY=YA] ^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at PLAVE using DENSITY field
+ SUBSET : 5 points (X)
+ Y : 35 to 55
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+ VARIABLE : 0*_X[GX=XP] + 0.0001*(800-_Y[GY=YA])^2 + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on Y at PLAVE using BDENSITY field
+ SUBSET : 5 points (X)
+ Y : 35 to 55
+ Z : 161
+ T : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+
+*****************************
+********** T,Y,F ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+ VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND _L LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+ VARIABLE : IF (_J EQ 5 OR _N EQ 5) AND (8-_L) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 5 delta on T at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at LIN using DENSITY field
+ SUBSET : 5 points (Y)
+ T : 35
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at LIN using BDENSITY field
+ SUBSET : 5 points (Y)
+ T : 35
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Y-T)
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: 15 delta on T at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-T)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001* _T[GT=TA] ^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at PLAVE using DENSITY field
+ SUBSET : 5 points (Y)
+ T : 35 to 55
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0.0001*(800-_T[GT=TA])^2 + 0*_E[GE=EP] + 0*_F[GF=FP]
+ regrid: on T at PLAVE using BDENSITY field
+ SUBSET : 5 points (Y)
+ T : 35 to 55
+ X : 161
+ Z : 161
+ E : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+
+*****************************
+********** E,Z,F ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND _M LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+ VARIABLE : IF (_K EQ 5 OR _N EQ 5) AND (8-_M) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using DENSITY field
+ SUBSET : 5 by 16 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using DENSITY field
+ SUBSET : 5 by 16 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 5 delta on E at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: on E at LIN using DENSITY field
+ SUBSET : 5 points (Z)
+ E : 35
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: on E at LIN using BDENSITY field
+ SUBSET : 5 points (Z)
+ E : 35
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (Z-E)
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: 15 delta on E at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (F-E)
+ X : 161
+ Y : 161
+ Z : 161
+ T : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001* _E[GE=EA] ^2 + 0*_F[GF=FP]
+ regrid: on E at PLAVE using DENSITY field
+ SUBSET : 5 points (Z)
+ E : 35 to 55
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0.0001*(800-_E[GE=EA])^2 + 0*_F[GF=FP]
+ regrid: on E at PLAVE using BDENSITY field
+ SUBSET : 5 points (Z)
+ E : 35 to 55
+ X : 161
+ Y : 161
+ T : 161
+ F : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+
+*****************************
+********** F,X,T ***********
+*****************************
+
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 1.00 1.00 1.00 1.00 1.00
+ 200 / 2: 4.00 4.00 4.00 4.00 4.00
+ 300 / 3: 9.00 9.00 9.00 9.00 9.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 25.00 25.00 25.00 25.00 25.00
+ 600 / 6: 36.00 36.00 36.00 36.00 36.00
+ 700 / 7: 49.00 49.00 49.00 49.00 49.00
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 49.00 49.00 49.00 49.00 49.00
+ 200 / 2: 36.00 36.00 36.00 36.00 36.00
+ 300 / 3: 25.00 25.00 25.00 25.00 25.00
+ 400 / 4: 16.00 16.00 16.00 16.00 16.00
+ 500 / 5: 9.00 9.00 9.00 9.00 9.00
+ 600 / 6: 4.00 4.00 4.00 4.00 4.00
+ 700 / 7: 1.00 1.00 1.00 1.00 1.00
+ VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND _N LE 2 THEN 1/0 ELSE DENSITY4
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 10.00 10.00 20.00 10.00 ....
+ 200 / 2: 20.00 20.00 10.00 20.00 ....
+ 300 / 3: 30.00 30.00 30.00 30.00 30.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 50.00 50.00 50.00 50.00 50.00
+ 600 / 6: 60.00 60.00 60.00 30.00 60.00
+ 700 / 7: 70.00 70.00 70.00 70.00 70.00
+ VARIABLE : IF (_I EQ 5 OR _L EQ 5) AND (8-_N) LE 2 THEN 1/0 ELSE BDENSITY4
+ SUBSET : 5 by 7 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 100 / 1: 70.00 70.00 70.00 70.00 70.00
+ 200 / 2: 60.00 60.00 60.00 30.00 60.00
+ 300 / 3: 50.00 50.00 50.00 50.00 50.00
+ 400 / 4: 40.00 20.00 40.00 40.00 40.00
+ 500 / 5: 30.00 30.00 30.00 30.00 30.00
+ 600 / 6: 20.00 20.00 10.00 20.00 ....
+ 700 / 7: 10.00 10.00 20.00 10.00 ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 5 delta on F at LIN using DENSITY field
+ SUBSET : 5 by 16 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 5 delta on F at LIN using DENSITY field
+ SUBSET : 5 by 16 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 5 delta on F at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 5 delta on F at LIN using BDENSITY field
+ SUBSET : 5 by 16 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 10 / 2: 1.00 1.00 4.00 1.00 ....
+ 15 / 3: 2.50 2.50 .... 2.50 ....
+ 20 / 4: 4.00 .... .... 4.00 ....
+ 25 / 5: 6.50 .... 7.75 6.50 ....
+ 30 / 6: 9.00 .... 9.00 .... 9.00
+ 35 / 7: 12.50 20.50 12.50 .... 12.50
+ 40 / 8: 16.00 22.00 16.00 .... 16.00
+ 45 / 9: 20.50 23.50 20.50 .... 20.50
+ 50 / 10: 25.00 25.00 25.00 .... 25.00
+ 55 / 11: 30.50 30.50 30.50 44.13 30.50
+ 60 / 12: 36.00 36.00 36.00 45.75 36.00
+ 65 / 13: 42.50 42.50 42.50 47.38 42.50
+ 70 / 14: 49.00 49.00 49.00 49.00 49.00
+ 75 / 15: .... .... .... .... ....
+ 80 / 16: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: on F at LIN using DENSITY field
+ SUBSET : 5 points (X)
+ F : 35
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: on F at LIN using BDENSITY field
+ SUBSET : 5 points (X)
+ F : 35
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 12.50 20.50 12.50 12.50 12.50
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 15 delta on F at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: 15 delta on F at PLAVE using DENSITY field
+ SUBSET : 5 by 6 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 15 delta on F at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (X-F)
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: 15 delta on F at PLAVE using BDENSITY field
+ SUBSET : 5 by 6 points (T-F)
+ X : 161
+ Y : 161
+ Z : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 5 / 1: .... .... .... .... ....
+ 20 / 2: 4.38 .... .... 4.38 ....
+ 35 / 3: 12.58 .... 12.64 .... ....
+ 50 / 4: 25.38 26.50 25.38 .... 25.38
+ 65 / 5: .... .... .... .... ....
+ 80 / 6: .... .... .... .... ....
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001* _F[GF=FA] ^2
+ regrid: on F at PLAVE using DENSITY field
+ SUBSET : 5 points (X)
+ F : 35 to 55
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+ VARIABLE : 0*_X[GX=XP] + 0*_Y[GY=YP] + 0*_Z[GZ=ZP] + 0*_T[GT=TP] + 0*_E[GE=EP] + 0.0001*(800-_F[GF=FA])^2
+ regrid: on F at PLAVE using BDENSITY field
+ SUBSET : 5 points (X)
+ F : 35 to 55
+ Y : 161
+ Z : 161
+ T : 161
+ E : 161
+ 161 162 163 164 165
+ 1 2 3 4 5
+ 20.75 24.00 20.75 .... 20.75
+*** Running test: bn_plot_ribbon_gaploc.jnl
+[?1034h! bn_plot_ribbon_gaploc.jnl
+! 7/20/2015 *acm* new PLOT/VS/RIBBON/GAPLOC
+!
+! If a trajectory leaves the selected region and then travels
+! back into the region we want to pick up the pen along that
+! edge, not connect the points.
+
+! Note Ribbon plots define a lot of color/line combos, so
+! lots of ribbon overlays on a page need either SHASET RESET or
+! use of fewer than the default number of levels.
+
+let xpts = {1,2,3,4,5}
+let ypts = {1,1,1,1,1}
+let color = {1,2,3,4,5}
+let gvar = {0,0,1,0,0}
+plot/vs/ribbon/thick/line/lev=10/sym=21/siz=.3 xpts, 10*ypts, color
+plot/ov/ribbon/nolab/vs/thick/line/lev=10/sym=21/siz=.3/gapl xpts, 10.2*ypts, color, gvar
+plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3 xpts, 9.9*ypts, color
+plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3/gap xpts, 9.7*ypts, color, gvar
+
+use 39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
+
+! The line is connected across what should be a gap
+set view left
+plot/vs/hlim=63.5:68/ribbon/line/thick=3/key longitude, latitude, fco2_recommended
+
+! The gaploc variable is 1 at the location marking the start of gaps.
+let gaploc = if sample_number[I=@DDF] NE 1 THEN 1 ELSE 0
+set view right
+plot/vs/hlim=63.5:68/ribbon/line/thick=3/key/gap longitude, latitude, fco2_recommended, gaploc
+
+! Intentional errors. Qualifier needs 4 arguments. It does not (currently) apply to
+! other styles of line plots.
+set mode ignore
+plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
+plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
+plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
+set mode/last ignore
+*** Running test: bn_time_short_axes.jnl
+[?1034h! bn_time_short_axes.jnl
+! testing time axis style with HH:MM on the time axis labels.
+
+use timesec
+
+plot/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
+plot/axes=0,1,1,0/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
+plot/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
+
+
+plot/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
+plot/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
+plot/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
+
+! 2D plots
+
+define axis/x=0:360:1/units=degrees_east lonax
+let var2d = airt + 0.1*x[gx=lonax]
+
+shade/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
+fill/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
+shade/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
+
+
+shade/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
+fill/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
+shade/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
+*** Running test: bn_floatstr_extended.jnl
+[?1034h! bn_floatstr_extended.jnl
+! test use of Integer and zero-filled formats in FLOATSTR function (Ferret v6.95)
+! 9/28/2015
+
+
+LET string = FLOATSTR({3.14159,2.71828},"(i3)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828},"(i3)")
+ SUBSET : 2 points (X)
+ 1 / 1:" 3"
+ 2 / 2:" 2"
+
+LET string = FLOATSTR({3.14159,2.71828},"(i3.3)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828},"(i3.3)")
+ SUBSET : 2 points (X)
+ 1 / 1:"003"
+ 2 / 2:"002"
+
+LET string = FLOATSTR({3.14159,2.71828},"(i03)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828},"(i03)")
+ SUBSET : 2 points (X)
+ 1 / 1:"003"
+ 2 / 2:"002"
+
+! Missing data returned as the null string
+LET string = FLOATSTR({3.14159,2.71828,},"(i3)")
+LIST string
+ VARIABLE : FLOATSTR({3.14159,2.71828,},"(i3)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 3"
+ 2 / 2:" 2"
+ 3 / 3:""
+
+! Test some large and small values
+LET var = {3.14159,2.71828,}
+LIST FLOATSTR(36*var,"(i5)")
+ VARIABLE : FLOATSTR(36*VAR,"(i5)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 113"
+ 2 / 2:" 97"
+ 3 / 3:""
+LIST FLOATSTR(36*var,"(i4.3)")
+ VARIABLE : FLOATSTR(36*VAR,"(i4.3)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 113"
+ 2 / 2:" 097"
+ 3 / 3:""
+LIST FLOATSTR(1.e14*var,"(i12)")
+ VARIABLE : FLOATSTR(1.E14*VAR,"(i12)")
+ SUBSET : 3 points (X)
+ 1 / 1:" -2147483648"
+ 2 / 2:" -2147483648"
+ 3 / 3:""
+LIST FLOATSTR(1.e-14*var,"(i5)")
+ VARIABLE : FLOATSTR(1.E-14*VAR,"(i5)")
+ SUBSET : 3 points (X)
+ 1 / 1:" 0"
+ 2 / 2:" 0"
+ 3 / 3:""
+
+! Result shape is inherited from the input variable
+USE gt4d011.cdf
+LIST/I=100/J=36:38/T=1-dec-1982:1-jan-1983 FLOATSTR(10000*tauy, "(i4)")
+ VARIABLE : FLOATSTR(10000*TAUY, "(i4)")
+ FILENAME : gt4d011.cdf
+ SUBSET : 3 by 6 points (LATITUDE-TIME)
+ LONGITUDE: 130W
+ 3S 2.67S 2.33S
+ 36 37 38
+ 28-NOV-1982 22 / 18:"-271""-240""-208"
+ 05-DEC-1982 00 / 19:"-283""-251""-220"
+ 11-DEC-1982 02 / 20:"-294""-263""-231"
+ 17-DEC-1982 04 / 21:"-356""-323""-290"
+ 23-DEC-1982 06 / 22:"-469""-433""-397"
+ 29-DEC-1982 08 / 23:"-583""-543""-503"
+
+USE coads_climatology
+
+! i4.4 is the same as i04
+
+LET var = FLOATSTR(sst,"(i4.4)")
+LET var = FLOATSTR(sst,"(i04)")
+
+LIST/X=165W:135W/Y=-50/L=1 var
+ VARIABLE : FLOATSTR(SST,"(i04)")
+ FILENAME : coads_climatology.cdf
+ SUBSET : 16 points (LONGITUDE)
+ LATITUDE : 51S
+ TIME : 16-JAN 06:00
+ 51S
+ 20
+ 165W / 88:"0010"
+ 163W / 89:"0011"
+ 161W / 90:"0011"
+ 159W / 91:"0011"
+ 157W / 92:"0010"
+ 155W / 93:"0010"
+ 153W / 94:"0010"
+ 151W / 95:"0010"
+ 149W / 96:"0010"
+ 147W / 97:"0011"
+ 145W / 98:"0010"
+ 143W / 99:"0010"
+ 141W / 100:""
+ 139W / 101:""
+ 137W / 102:""
+ 135W / 103:""
+
+! Negative numbers cannot be listed with (i5.5) but can with (I05)
+LET var1 = FLOATSTR(sst-10,"(i5.5)")
+LET var2 = FLOATSTR(sst-10,"(i05)")
+
+LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
+ DATA SET: ./coads_climatology.cdf
+ LATITUDE: 91S to 11S
+ LONGITUDE: 165W
+ TIME: 16-JAN 06:00
+ Column 1: VAR1[G=4 deg on Y] is FLOATSTR(SST-10,"(i5.5)") (regrid: 4 deg on Y)
+ Column 2: VAR2[G=4 deg on Y] is FLOATSTR(SST-10,"(i05)") (regrid: 4 deg on Y)
+ VAR1 VAR2
+89S / 1: "" ""
+85S / 2: "" ""
+81S / 3: "" ""
+77S / 4: "*****" "00-10"
+73S / 5: "*****" "00-11"
+69S / 6: "*****" "000-9"
+65S / 7: "*****" "00-10"
+61S / 8: "*****" "000-7"
+57S / 9: "*****" "000-3"
+53S / 10: "*****" "000-1"
+49S / 11: "00002" "00002"
+45S / 12: "00004" "00004"
+41S / 13: "00006" "00006"
+37S / 14: "00008" "00008"
+33S / 15: "00010" "00010"
+29S / 16: "00012" "00012"
+25S / 17: "00015" "00015"
+21S / 18: "00017" "00017"
+17S / 19: "00018" "00018"
+13S / 20: "00019" "00019"
+
+
+! F0 format for zero-filled F format
+
+let a = {1.1, 3.7}
+list floatstr(a, "(f04.1)")
+ VARIABLE : FLOATSTR(A, "(f04.1)")
+ SUBSET : 2 points (X)
+ 1 / 1:"01.1"
+ 2 / 2:"03.7"
+
+let a = {1.1, 13.7}
+list floatstr(a, "(f06.1)")
+ VARIABLE : FLOATSTR(A, "(f06.1)")
+ SUBSET : 2 points (X)
+ 1 / 1:"0001.1"
+ 2 / 2:"0013.7"
+
+let a = {-1.1, 13.7}
+list floatstr(a, "(f04.1)")
+ VARIABLE : FLOATSTR(A, "(f04.1)")
+ SUBSET : 2 points (X)
+ 1 / 1:"-1.1"
+ 2 / 2:"13.7"
+
+! testing negative numbers and null/missing results
+LET var1 = FLOATSTR(sst-20,"(f5.1)")
+LET var2 = FLOATSTR(sst-20,"(f05.1)")
+LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
+ DATA SET: ./coads_climatology.cdf
+ LATITUDE: 91S to 11S
+ LONGITUDE: 165W
+ TIME: 16-JAN 06:00
+ Column 1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f5.1)") (regrid: 4 deg on Y)
+ Column 2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(f05.1)") (regrid: 4 deg on Y)
+ VAR1 VAR2
+89S / 1: "" ""
+85S / 2: "" ""
+81S / 3: "" ""
+77S / 4: "-20.4" "-20.4"
+73S / 5: "-21.0" "-21.0"
+69S / 6: "-19.8" "-19.8"
+65S / 7: "-20.0" "-20.0"
+61S / 8: "-17.3" "-17.3"
+57S / 9: "-13.9" "-13.9"
+53S / 10: "-11.2" "-11.2"
+49S / 11: " -7.5" "0-7.5"
+45S / 12: " -5.7" "0-5.7"
+41S / 13: " -3.5" "0-3.5"
+37S / 14: " -1.3" "0-1.3"
+33S / 15: " 0.9" "000.9"
+29S / 16: " 3.0" "003.0"
+25S / 17: " 5.1" "005.1"
+21S / 18: " 7.5" "007.5"
+17S / 19: " 8.1" "008.1"
+13S / 20: " 9.7" "009.7"
+*** Running test: bn696_bug_fixes
+[?1034h! bn696_bug_fixes
+! test various fixes that went into version 6.96
+
+GO bn_reset
+cancel mode verify
+GO err695_bounds_match_axis
+! err695_bounds_match_axis.jnl
+! ticket 2321.
+!
+! The coordinates match the upper bound of each cell
+! to machine accuracy. The internal rep of the value
+! has pt > bound_hi however. The logic in tm_check_bnds
+! handes this.
+
+use shorttemp.nc
+
+! Previously showed tbox=0 for every second pt.
+sh grid/l=1:4444 temp
+ GRID GSL1
+ name axis # pts start end
+ LON LONGITUDE 1 r 97.45W 97.45W
+ LAT LATITUDE 1 r 36.65N 36.65N
+ PFULL1_1 Z (hpa) 1 r- 3.3236 3.3236
+ TIME TIME 4 i 19-JUN-1997 00:00 19-JUN-1997 01:30
+ normal E
+ normal F
+
+ L T TBOX TBOXLO TSTEP (days)
+ 1> 19-JUN-1997 00:00:00 0.0208333 18-JUN-1997 23:30:00 0.02083333
+ 2> 19-JUN-1997 00:30:00 0.0208333 19-JUN-1997 00:00:00 0.04166667
+ 3> 19-JUN-1997 01:00:00 0.0208333 19-JUN-1997 00:30:00 0.0625
+ 4> 19-JUN-1997 01:30:00 0.0208333 19-JUN-1997 01:00:00 0.08333333
+
+GO bn_reset
+cancel mode verify
+GO err695_show_dat_nodata
+! err695_show_dat_nodata.jnl
+! ticket 2322
+!
+! SHOW DATA noexist should include the dataset name or number
+! in the error message.
+
+USE coads_climatology
+
+SHOW DATA 1
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+SHOW DATA coads_climatology
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+! intentional errors
+SET MODE ignore
+SHOW DATA noexist
+SHOW DATA 2
+SHOW DATA/ATT noexist
+
+SET MODE/LAST ignore
+*** Running test: bn_bin_regrid
+[?1034h! bin regridding tests
+
+go bn_bin_regrid.sub X
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/X=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/X irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _X[GX=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _X[GX=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+ X: 0.5 to 5.5
+ Column 1: DEST is _X[GX=DCOARSE]
+ Column 2: VAR[G=1 delta on X at AVE] is _X[GX=IRR] (regrid: 1 delta on X at AVE)
+ Column 3: VAR[G=1 delta on X at BIN] is _X[GX=IRR] (regrid: 1 delta on X at BIN)
+ Column 4: VAR[G=1 delta on X at NBIN] is _X[GX=IRR] (regrid: 1 delta on X at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.178 1.150 2.000
+2 / 2: 2.000 1.545 .... 0.000
+3 / 3: 3.000 3.500 .... 0.000
+4 / 4: 4.000 3.980 3.500 1.000
+5 / 5: 5.000 4.838 4.850 2.000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _X[gX=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _X[GX=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+ X: 0.5 to 5.5
+ Column 1: DEST is _X[GX=DCOARSE]
+ Column 2: VAR[G=1 delta on X at AVE] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at AVE)
+ Column 3: VAR[G=1 delta on X at BIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at BIN)
+ Column 4: VAR[G=1 delta on X at NBIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.956 1.650 2.000
+2 / 2: 2.000 2.200 .... 0.000
+3 / 3: 3.000 .... .... 0.000
+4 / 4: 4.000 .... .... 0.000
+5 / 5: 5.000 5.000 5.000 1.000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GX=dcoarse]
+ X: 0.5 to 5.5
+ Column 1: DEST is _X[GX=DCOARSE]
+ Column 2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
+ DEST VAR
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+4 / 4: 4.000 ....
+5 / 5: 5.000 5.000
+
+go bn_bin_regrid.sub Y
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Y=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Y irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Y[GY=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Y[GY=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+ Y: 0.5 to 5.5
+ Column 1: DEST is _Y[GY=DCOARSE]
+ Column 2: VAR[G=1 delta on Y at AVE] is _Y[GY=IRR] (regrid: 1 delta on Y at AVE)
+ Column 3: VAR[G=1 delta on Y at BIN] is _Y[GY=IRR] (regrid: 1 delta on Y at BIN)
+ Column 4: VAR[G=1 delta on Y at NBIN] is _Y[GY=IRR] (regrid: 1 delta on Y at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.178 1.150 2.000
+2 / 2: 2.000 1.545 .... 0.000
+3 / 3: 3.000 3.500 .... 0.000
+4 / 4: 4.000 3.980 3.500 1.000
+5 / 5: 5.000 4.838 4.850 2.000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Y[gY=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Y[GY=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+ Y: 0.5 to 5.5
+ Column 1: DEST is _Y[GY=DCOARSE]
+ Column 2: VAR[G=1 delta on Y at AVE] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at AVE)
+ Column 3: VAR[G=1 delta on Y at BIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at BIN)
+ Column 4: VAR[G=1 delta on Y at NBIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.956 1.650 2.000
+2 / 2: 2.000 2.200 .... 0.000
+3 / 3: 3.000 .... .... 0.000
+4 / 4: 4.000 .... .... 0.000
+5 / 5: 5.000 5.000 5.000 1.000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GY=dcoarse]
+ Y: 0.5 to 5.5
+ Column 1: DEST is _Y[GY=DCOARSE]
+ Column 2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
+ DEST VAR
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+4 / 4: 4.000 ....
+5 / 5: 5.000 5.000
+
+go bn_bin_regrid.sub Z
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Z=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Z irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Z[GZ=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Z[GZ=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+ Z: 0.5 to 5.5
+ Column 1: DEST is _Z[GZ=DCOARSE]
+ Column 2: VAR[G=1 delta on Z at AVE] is _Z[GZ=IRR] (regrid: 1 delta on Z at AVE)
+ Column 3: VAR[G=1 delta on Z at BIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at BIN)
+ Column 4: VAR[G=1 delta on Z at NBIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.178 1.150 2.000
+2 / 2: 2.000 1.545 .... 0.000
+3 / 3: 3.000 3.500 .... 0.000
+4 / 4: 4.000 3.980 3.500 1.000
+5 / 5: 5.000 4.838 4.850 2.000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Z[gZ=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _Z[GZ=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+ Z: 0.5 to 5.5
+ Column 1: DEST is _Z[GZ=DCOARSE]
+ Column 2: VAR[G=1 delta on Z at AVE] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at AVE)
+ Column 3: VAR[G=1 delta on Z at BIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at BIN)
+ Column 4: VAR[G=1 delta on Z at NBIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.956 1.650 2.000
+2 / 2: 2.000 2.200 .... 0.000
+3 / 3: 3.000 .... .... 0.000
+4 / 4: 4.000 .... .... 0.000
+5 / 5: 5.000 5.000 5.000 1.000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GZ=dcoarse]
+ Z: 0.5 to 5.5
+ Column 1: DEST is _Z[GZ=DCOARSE]
+ Column 2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
+ DEST VAR
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+4 / 4: 4.000 ....
+5 / 5: 5.000 5.000
+
+go bn_bin_regrid.sub T
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/T=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/T irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _T[GT=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _T[GT=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+ T: 0.5 to 5.5
+ Column 1: DEST is _T[GT=DCOARSE]
+ Column 2: VAR[G=1 delta on T at AVE] is _T[GT=IRR] (regrid: 1 delta on T at AVE)
+ Column 3: VAR[G=1 delta on T at BIN] is _T[GT=IRR] (regrid: 1 delta on T at BIN)
+ Column 4: VAR[G=1 delta on T at NBIN] is _T[GT=IRR] (regrid: 1 delta on T at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.178 1.150 2.000
+2 / 2: 2.000 1.545 .... 0.000
+3 / 3: 3.000 3.500 .... 0.000
+4 / 4: 4.000 3.980 3.500 1.000
+5 / 5: 5.000 4.838 4.850 2.000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _T[gT=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _T[GT=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+ T: 0.5 to 5.5
+ Column 1: DEST is _T[GT=DCOARSE]
+ Column 2: VAR[G=1 delta on T at AVE] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at AVE)
+ Column 3: VAR[G=1 delta on T at BIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at BIN)
+ Column 4: VAR[G=1 delta on T at NBIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.956 1.650 2.000
+2 / 2: 2.000 2.200 .... 0.000
+3 / 3: 3.000 .... .... 0.000
+4 / 4: 4.000 .... .... 0.000
+5 / 5: 5.000 5.000 5.000 1.000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GT=dcoarse]
+ T: 0.5 to 5.5
+ Column 1: DEST is _T[GT=DCOARSE]
+ Column 2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
+ DEST VAR
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+4 / 4: 4.000 ....
+5 / 5: 5.000 5.000
+
+go bn_bin_regrid.sub E
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/E=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/E irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _E[GE=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _E[GE=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+ E: 0.5 to 5.5
+ Column 1: DEST is _E[GE=DCOARSE]
+ Column 2: VAR[G=1 delta on E at AVE] is _E[GE=IRR] (regrid: 1 delta on E at AVE)
+ Column 3: VAR[G=1 delta on E at BIN] is _E[GE=IRR] (regrid: 1 delta on E at BIN)
+ Column 4: VAR[G=1 delta on E at NBIN] is _E[GE=IRR] (regrid: 1 delta on E at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.178 1.150 2.000
+2 / 2: 2.000 1.545 .... 0.000
+3 / 3: 3.000 3.500 .... 0.000
+4 / 4: 4.000 3.980 3.500 1.000
+5 / 5: 5.000 4.838 4.850 2.000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _E[gE=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _E[GE=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+ E: 0.5 to 5.5
+ Column 1: DEST is _E[GE=DCOARSE]
+ Column 2: VAR[G=1 delta on E at AVE] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at AVE)
+ Column 3: VAR[G=1 delta on E at BIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at BIN)
+ Column 4: VAR[G=1 delta on E at NBIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.956 1.650 2.000
+2 / 2: 2.000 2.200 .... 0.000
+3 / 3: 3.000 .... .... 0.000
+4 / 4: 4.000 .... .... 0.000
+5 / 5: 5.000 5.000 5.000 1.000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GE=dcoarse]
+ E: 0.5 to 5.5
+ Column 1: DEST is _E[GE=DCOARSE]
+ Column 2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
+ DEST VAR
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+4 / 4: 4.000 ....
+5 / 5: 5.000 5.000
+
+go bn_bin_regrid.sub F
+! Tests of @BIN and @NBIN regridding transforms
+
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/F=1:5:1 dcoarse
+
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/F irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _F[GF=irr]
+
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _F[GF=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+ F: 0.5 to 5.5
+ Column 1: DEST is _F[GF=DCOARSE]
+ Column 2: VAR[G=1 delta on F at AVE] is _F[GF=IRR] (regrid: 1 delta on F at AVE)
+ Column 3: VAR[G=1 delta on F at BIN] is _F[GF=IRR] (regrid: 1 delta on F at BIN)
+ Column 4: VAR[G=1 delta on F at NBIN] is _F[GF=IRR] (regrid: 1 delta on F at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.178 1.150 2.000
+2 / 2: 2.000 1.545 .... 0.000
+3 / 3: 3.000 3.500 .... 0.000
+4 / 4: 4.000 3.980 3.500 1.000
+5 / 5: 5.000 4.838 4.850 2.000
+
+
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _F[gF=irr])
+LET dest = _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest = _F[GF=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+ F: 0.5 to 5.5
+ Column 1: DEST is _F[GF=DCOARSE]
+ Column 2: VAR[G=1 delta on F at AVE] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at AVE)
+ Column 3: VAR[G=1 delta on F at BIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at BIN)
+ Column 4: VAR[G=1 delta on F at NBIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at NBIN)
+ DEST VAR VAR VAR
+1 / 1: 1.000 1.956 1.650 2.000
+2 / 2: 2.000 2.200 .... 0.000
+3 / 3: 3.000 .... .... 0.000
+4 / 4: 4.000 .... .... 0.000
+5 / 5: 5.000 5.000 5.000 1.000
+
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GF=dcoarse]
+ F: 0.5 to 5.5
+ Column 1: DEST is _F[GF=DCOARSE]
+ Column 2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
+ DEST VAR
+1 / 1: 1.000 ....
+2 / 2: 2.000 ....
+3 / 3: 3.000 ....
+4 / 4: 4.000 ....
+5 / 5: 5.000 5.000
+
+*** Running test: bn_all_ef.jnl
+[?1034hSET MODE VERIFY
+! bn_all_ef.jnl
+! - run all the benchmark tests for externally-linked external functions.
+
+
+GO bn_reset
+cancel mode verify
+GO bn_ef_external_functions.jnl
+! Tests of external functions that are distributed as shared object files.
+
+! Jon's benchmarks
+go bench_examples
+set mode ignore_error
+show func/ext add_9
+ADD_9(A,B,C,D,E,F,G,H,I)
+ (demonstration function) adds 9 arguments
+show func/ext ave*
+AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
+ Compute average of a variable in each cell of output time axis
+ TPTS: T coordinates of scattered input time coordinates
+ VPTS: Variable at times in TPTS
+ TAXIS: Output time axis
+AVET(A)
+ (demonstration function) returns the time average
+ A: data to be averaged over the time axis
+show func pass_thru
+PASS_THRU(A)
+ (demonstration function) sets result equal to input
+ A: this arg is passed through
+show func sto*
+STORAGE(A)
+ sets result equal to input/10
+ A: input
+
+go bench_add_9
+! Bench_add_9.jnl
+! ACM 8/99
+! benchmark script for testing external function add_9.
+! Note: bench_add_9_visual contains plots of similar computations
+
+set mode ignore_errors
+
+
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+
+let a1 = sst[d=1,l=1]
+let a2 = sst[d=1,l=2]
+let a3 = sst[d=1,l=3]
+
+let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+
+list a
+ VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ TIME : 16-JAN 06:00
+ 1S
+ 45
+ 151E / 66: 263.6
+ 153E / 67: 264.5
+ 155E / 68: 264.2
+ 157E / 69: 261.3
+ 159E / 70: 260.9
+ 161E / 71: 262.4
+ 163E / 72: 264.0
+ 165E / 73: 261.1
+ 167E / 74: 260.9
+ 169E / 75: 261.0
+ 171E / 76: 259.3
+ 173E / 77: 257.9
+ 175E / 78: 257.0
+ 177E / 79: 259.1
+ 179E / 80: 254.8
+list a - 3 * sst[d=1,l=1:3 at sum]
+ VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ TIME : 16-JAN 06:00
+ 1S
+ 45
+ 151E / 66: 0.0000
+ 153E / 67: 0.0000
+ 155E / 68: 0.0000
+ 157E / 69: 0.0000
+ 159E / 70: 0.0000
+ 161E / 71: 0.0000
+ 163E / 72: 0.0000
+ 165E / 73: 0.0000
+ 167E / 74: 0.0000
+ 169E / 75: 0.0000
+ 171E / 76: 0.0000
+ 173E / 77: 0.0000
+ 175E / 78: 0.0000
+ 177E / 79: 0.0000
+ 179E / 80: 0.0000
+set mode/last ignore_errors
+go bench_avet
+! Bench_avet.jnl
+! ACM 8/99
+! benchmark script for testing external function avet.
+! Note: bench_avet_visual.jnl contains plots of similar computations
+
+set mode ignore_errors
+
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+
+let a = avet(sst)
+list a
+ VARIABLE : AVET(SST)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ 1S
+ 45
+ 151E / 66: 29.28
+ 153E / 67: 29.39
+ 155E / 68: 29.35
+ 157E / 69: 29.03
+ 159E / 70: 28.99
+ 161E / 71: 29.15
+ 163E / 72: 29.33
+ 165E / 73: 29.01
+ 167E / 74: 28.99
+ 169E / 75: 29.00
+ 171E / 76: 28.81
+ 173E / 77: 28.66
+ 175E / 78: 28.56
+ 177E / 79: 28.79
+ 179E / 80: 28.31
+list a - sst[l=@ave]
+ VARIABLE : A - SST[L=@AVE]
+ FILENAME : coads_climatology.cdf
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ TIME : 01-JAN 00:45 to 01-APR 08:12
+ 1S
+ 45
+ 151E / 66: 0.000E+00
+ 153E / 67: -3.553E-15
+ 155E / 68: 0.000E+00
+ 157E / 69: 0.000E+00
+ 159E / 70: 3.553E-15
+ 161E / 71: 7.105E-15
+ 163E / 72: 3.553E-15
+ 165E / 73: 0.000E+00
+ 167E / 74: 0.000E+00
+ 169E / 75: 3.553E-15
+ 171E / 76: 0.000E+00
+ 173E / 77: 3.553E-15
+ 175E / 78: 0.000E+00
+ 177E / 79: 3.553E-15
+ 179E / 80: 3.553E-15
+
+can region
+let a = x[i=1:9,k=1:5] + t[l=1:5]
+let b = x[i=1:9,k=1:5]
+let c = avet(a)
+list b, c
+ X: 0.5 to 9.5
+ Column 1: B is X[I=1:9,K=1:5]
+ Column 2: C is AVET(A)
+ B C
+1 / 1: 1.000 4.00
+2 / 2: 2.000 5.00
+3 / 3: 3.000 6.00
+4 / 4: 4.000 7.00
+5 / 5: 5.000 8.00
+6 / 6: 6.000 9.00
+7 / 7: 7.000 10.00
+8 / 8: 8.000 11.00
+9 / 9: 9.000 12.00
+
+set mode/last ignore_errors
+go bench_pass_thru
+! Bench_pass_thru.jnl
+! ACM 8/99
+! benchmark script for testing external function pass_thru.
+! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+
+set mode ignore_errors
+
+can region
+let a = pass_thru(x)
+list a[i=1:20]
+ VARIABLE : PASS_THRU(X)
+ SUBSET : 20 points (X)
+ 1 / 1: 1.00
+ 2 / 2: 2.00
+ 3 / 3: 3.00
+ 4 / 4: 4.00
+ 5 / 5: 5.00
+ 6 / 6: 6.00
+ 7 / 7: 7.00
+ 8 / 8: 8.00
+ 9 / 9: 9.00
+ 10 / 10: 10.00
+ 11 / 11: 11.00
+ 12 / 12: 12.00
+ 13 / 13: 13.00
+ 14 / 14: 14.00
+ 15 / 15: 15.00
+ 16 / 16: 16.00
+ 17 / 17: 17.00
+ 18 / 18: 18.00
+ 19 / 19: 19.00
+ 20 / 20: 20.00
+set region/i=1:20
+list sin(a)
+ VARIABLE : SIN(A)
+ SUBSET : 20 points (X)
+ 1 / 1: 0.8415
+ 2 / 2: 0.9093
+ 3 / 3: 0.1411
+ 4 / 4: -0.7568
+ 5 / 5: -0.9589
+ 6 / 6: -0.2794
+ 7 / 7: 0.6570
+ 8 / 8: 0.9894
+ 9 / 9: 0.4121
+ 10 / 10: -0.5440
+ 11 / 11: -1.0000
+ 12 / 12: -0.5366
+ 13 / 13: 0.4202
+ 14 / 14: 0.9906
+ 15 / 15: 0.6503
+ 16 / 16: -0.2879
+ 17 / 17: -0.9614
+ 18 / 18: -0.7510
+ 19 / 19: 0.1499
+ 20 / 20: 0.9129
+can var/all
+can region
+
+use coads_climatology
+let a = pass_thru(sst[l=@ave,y=@sbx:11])
+list/x=50 a
+ VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+ FILENAME : coads_climatology.cdf
+ SUBSET : 90 points (LATITUDE)
+ LONGITUDE: 49E
+ TIME : 01-JAN 00:45 to 01-APR 08:12
+ 49E
+ 15
+ 89N / 90: ....
+ 87N / 89: ....
+ 85N / 88: ....
+ 83N / 87: ....
+ 81N / 86: ....
+ 79N / 85: ....
+ 77N / 84: ....
+ 75N / 83: ....
+ 73N / 82: ....
+ 71N / 81: ....
+ 69N / 80: ....
+ 67N / 79: ....
65N / 78: ....
63N / 77: ....
61N / 76: ....
@@ -77948,39 +86084,39 @@ exit
exit/command
*** Running test: bn_startupfile.jnl
- Current size of FERRET memory cache: 31 MegaWords (1 word = 8 bytes)
+[?1034h Current size of FERRET memory cache: 31 MegaWords (1 word = 8 bytes)
PPL$XPIXEL = "979"
PPL$YPIXEL = "844"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.93"
-FERRET_PLATFORM = "Linux 2.6.18-398.el5"
+FERRET_VERSION = "6.96"
+FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
+NETCDF_VERSION = "4.3.3.1 of Nov 17 2015 15:01:40 $"
FERRET_MEMORY = "31"
-SESSION_DATE = " 5-Nov-14"
-SESSION_TIME = "16:42"
-SESSION_PID = "14705"
-DELTA_CPU = "0.537918"
-CLOCK_SECS = "0.335"
-CURRENT_DATE = " 5-Nov-14"
-CURRENT_TIME = "16:42:11"
+SESSION_DATE = "19-Nov-15"
+SESSION_TIME = "12:07"
+SESSION_PID = "16296"
+DELTA_CPU = "0.688895"
+CLOCK_SECS = "0.329"
+CURRENT_DATE = "19-Nov-15"
+CURRENT_TIME = "12:07:02"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "PyFerret"
LAST_GO_FILE = "./bn_startupfile.jnl"
PPL$FORMAT = "(3F10.2)"
PPL$PLTNME = "ferret.png"
-PPL$TEKNME = "/dev/tty"
-PPL$XLEN = "8.000"
-PPL$YLEN = "6.000"
-PPL$XORG = "1.200"
-PPL$YORG = "1.400"
-PPL$WIDTH = "10.20"
-PPL$HEIGHT = "8.800"
+PPL$TEKNME = "/dev/tt"
+PPL$XLEN = "8.00000"
+PPL$YLEN = "6.00000"
+PPL$XORG = "1.20000"
+PPL$YORG = "1.40000"
+PPL$WIDTH = "10.2000"
+PPL$HEIGHT = "8.80000"
PPL$LINE_COUNT = "0"
-PPL$XFACT1 = "1.000"
-PPL$XOFF1 = "0.000"
-PPL$YFACT1 = "1.000"
-PPL$YOFF1 = "0.000"
+PPL$XFACT1 = "1.000000"
+PPL$XOFF1 = "0.000000"
+PPL$YFACT1 = "1.000000"
+PPL$YOFF1 = "0.000000"
PPL$VIEW_X = "0.000"
PPL$VIEW_Y = "0.000"
PPL$VIEW_Z = "0.000"
@@ -77988,7 +86124,7 @@ PPL$COMMAND_FILE = "$$MEMBUF$$"
VP_WIDTH = "10.2"
VP_HEIGHT = "8.8"
PPL$SCALE = "1.0000"
-WIN_TITLE = "5-Nov-14_16:42"
+WIN_TITLE = "19-Nov-15_12:07"
VP_SCALE = "1"
VP_RT_MARGIN = "1"
VP_TOP_MARGIN = "1.4"
@@ -78007,7 +86143,8 @@ VP_YHI = "1"
LATIT_LABEL CANCELLED 1
DEPTH_LABEL SET -4
CALENDAR SET minutes
- 6D_LAB SET
+ E_LABEL SET 1
+ F_LABEL SET 1
ASCII_FONT SET
SEGMENT SET
WAIT CANCELLED
@@ -78017,7 +86154,7 @@ VP_YHI = "1"
METAFILE CANCELLED ferret.png
PPLLIST CANCELLED ppllist.out
GUI CANCELLED
- LOGO SET
+ LOGO CANCELLED
LABELS SET
GRATICULE SET
LINECOLORS SET 7
@@ -78026,7 +86163,8 @@ VP_YHI = "1"
NODATA_LAB SET
SHRINK_YLAB CANCELLED
CURVILINEAR CANCELLED
- SIGMA CANCELLED
+ LAYERZ CANCELLED
+ 6D_LAB SET
currently SET data sets:
1> ./gtbc011.cdf (default)
name title I J K L M N
@@ -78039,4 +86177,9 @@ VP_YHI = "1"
TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
-Ended at Wed Nov 5 16:42:11 PST 2014
+*** Running test: bn_outline_poly.jnl
+[?1034hset win /xinch=8 /thick=1 /asp=1 /outline=5 1
+let v = 2*3.14159*x[gx=0:1:.01]
+poly/hl=-1:1/vl=-1:1/key/pal=red/thick=1/opac=50 sin(v), cos(v)
+frame /file=outline_poly.pdf
+Ended at Thu Nov 19 12:07:03 PST 2015
diff --git a/bench/test_results/pyferret_run_tests_ncdump b/bench/test_results/pyferret_run_tests_ncdump
index 6407e3a..74aa5bf 100644
--- a/bench/test_results/pyferret_run_tests_ncdump
+++ b/bench/test_results/pyferret_run_tests_ncdump
@@ -50,7 +50,7 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -75,7 +75,7 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -112,7 +112,7 @@ variables:
B:long_name = "\"one line of text\"" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -151,7 +151,7 @@ variables:
D:history = "From test_string" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -186,7 +186,7 @@ variables:
B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -256,7 +256,7 @@ variables:
V:long_name = "T[GT=MONTH_IRREG]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -313,7 +313,7 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -370,7 +370,7 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -425,7 +425,7 @@ variables:
T2:long_name = "Z[GZ=ZIRR]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -473,7 +473,7 @@ variables:
V:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -567,7 +567,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -637,7 +637,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -688,7 +688,7 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -779,7 +779,7 @@ variables:
A:long_name = "T[GT=TIME]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -806,7 +806,7 @@ variables:
X_:long_name_mod = "axis ABSTRACT" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
data:
@@ -830,7 +830,7 @@ variables:
A:history = "From x" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
:title = "a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short." ;
data:
@@ -857,14 +857,14 @@ variables:
A:history = "From t0_cdc" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_tab_comma_multivar.jnl
*** Running test: bn_element_functions.jnl
*** Running test: bn_long_revision_num.jnl
bn_long_revision_num.jnl --- history attribute
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
*** Running test: bn_window_title.jnl
*** Running test: bn_last_error.jnl
*** Running test: bn_deg_min.jnl
@@ -900,7 +900,7 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -973,7 +973,7 @@ variables:
VAR_B:long_name = "my strings" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1017,7 +1017,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1059,7 +1059,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1167,7 +1167,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -1208,7 +1208,7 @@ variables:
Elev:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -1231,7 +1231,7 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1257,7 +1257,7 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1277,7 +1277,7 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1298,7 +1298,7 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1341,7 +1341,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -1381,7 +1381,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -1419,7 +1419,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -1448,7 +1448,7 @@ variables:
A3:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1481,7 +1481,7 @@ variables:
V4:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1507,7 +1507,7 @@ variables:
A:four = "theory" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1553,7 +1553,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
:simulation = "K-Bay OAR3d model (200m)" ;
:start_date = "980105000000" ;
@@ -1660,7 +1660,7 @@ variables:
TEMP:units = "deg. C" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
:dt_internal = 15. ;
}
@@ -1702,7 +1702,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1785,7 +1785,7 @@ variables:
RIGUE:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1822,7 +1822,7 @@ variables:
B:long_name = "hello" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1862,7 +1862,7 @@ variables:
VWND:units = "M/S" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1913,7 +1913,7 @@ variables:
T2:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -1972,7 +1972,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2017,7 +2017,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2060,7 +2060,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2095,7 +2095,7 @@ variables:
TEMP:units = "DEG C" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2129,7 +2129,7 @@ variables:
TWO:history = "From levitus_climatology" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 27 attributes of user-defined axes
@@ -2159,7 +2159,7 @@ variables:
AXY:long_name = "RESHAPE (A,RVAR)" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 28 Define a new global attribute
@@ -2188,7 +2188,7 @@ variables:
BROILED:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
:glob = "Global attribute" ;
:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -2249,7 +2249,7 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2294,7 +2294,7 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_transforms.jnl
@@ -2335,7 +2335,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -2365,7 +2365,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -2395,7 +2395,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -2448,7 +2448,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2490,7 +2490,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2508,7 +2508,7 @@ variables:
V:long_name = "Y[GY=YAXIS]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_no_valid_on_plot.jnl
@@ -2530,7 +2530,7 @@ variables:
MY_ASC:history = "From dat.dat" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2548,7 +2548,7 @@ variables:
MY_UNF:history = "From unf.dat" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -2565,7 +2565,7 @@ variables:
A:long_name = "{1.1,2.2,3.3}" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -2586,7 +2586,7 @@ variables:
A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
data:
@@ -2657,7 +2657,7 @@ variables:
newvar:history = "From a" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_cdf_keepax.jnl
@@ -2686,7 +2686,7 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -2713,7 +2713,7 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_key_label_minmax.jnl
@@ -2818,7 +2818,7 @@ variables:
ZUP:long_name = "Z[GZ=ZAXUP]" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -2850,7 +2850,7 @@ variables:
Y_:long_name_mod = "axis YFIFTEEN" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -2883,7 +2883,7 @@ variables:
XYTVAR:history = "From bn_strides" ;
// global attributes:
- :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
:Conventions = "CF-1.6" ;
}
*** Running test: bn_repeated_coords.jnl
@@ -2933,5 +2933,101 @@ variables:
*** Running test: bn_date1900_array.jnl
*** Running test: bn_spawn_size.jnl
*** Running test: bn_polygon_log.jnl
+*** Running test: bn694_bug_fixes.jnl
+*** Running test: bn_permute_ascii.jnl
+*** Running test: bn_lon_lat_time_string.jnl
+*** Running test: bn_save_justdim.jnl
+netcdf a {
+dimensions:
+ TIME = 8 ;
+ REFTIME = 3 ;
+ bnds = 2 ;
+variables:
+ double REFTIME(REFTIME) ;
+ REFTIME:units = "calendar month since 2014-11-01t00:00:00z" ;
+ REFTIME:long_name = "GRIB reference time" ;
+ REFTIME:calendar = "proleptic_gregorian" ;
+ REFTIME:point_spacing = "uneven" ;
+ REFTIME:axis = "F" ;
+ REFTIME:bounds = "REFTIME_bnds" ;
+ double REFTIME_bnds(REFTIME, bnds) ;
+ double TIME(REFTIME, TIME) ;
+ TIME:units = "calendar Month since 2014-11-01T00:00:00Z" ;
+ TIME:long_name = "GRIB forecast or observation time" ;
+ TIME:calendar = "proleptic_gregorian" ;
+ TIME:bounds = "time_bounds" ;
+ TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
+
+// global attributes:
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+ :Conventions = "CF-1.6" ;
+data:
+
+ REFTIME = 0, 1, 2.03333333333333 ;
+
+ REFTIME_bnds =
+ -0.5, 0.5,
+ 0.5, 1.51666666666667,
+ 1.51666666666667, 2.55 ;
+
+ TIME =
+ 1, 2, 3, 4, 5, 6, 7, 8,
+ 2, 3, 4, 5, 6, 7, 8, 9,
+ 3, 4, 5, 6, 7, 8, 9, 10 ;
+}
+netcdf a {
+dimensions:
+ time = 8 ;
+ reftime = 3 ;
+ bnds = 2 ;
+variables:
+ double reftime(reftime) ;
+ reftime:units = "calendar month since 2014-11-01t00:00:00z" ;
+ reftime:long_name = "GRIB reference time" ;
+ reftime:calendar = "proleptic_gregorian" ;
+ reftime:point_spacing = "uneven" ;
+ reftime:axis = "F" ;
+ reftime:bounds = "reftime_bnds" ;
+ double reftime_bnds(reftime, bnds) ;
+ double time(reftime, time) ;
+ time:units = "calendar Month since 2014-11-01T00:00:00Z" ;
+ time:long_name = "GRIB forecast or observation time" ;
+ time:calendar = "proleptic_gregorian" ;
+ time:bounds = "time_bounds" ;
+ time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
+
+// global attributes:
+ :history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+ :Conventions = "CF-1.6" ;
+data:
+
+ reftime = 0, 1, 2.03333333333333 ;
+
+ reftime_bnds =
+ -0.5, 0.5,
+ 0.5, 1.51666666666667,
+ 1.51666666666667, 2.55 ;
+
+ time =
+ 1, 2, 3, 4, 5, 6, 7, 8,
+ 2, 3, 4, 5, 6, 7, 8, 9,
+ 3, 4, 5, 6, 7, 8, 9, 10 ;
+}
+*** Running test: bn_time2d.jnl
+*** Running test: bn_legend_labels.jnl
+*** Running test: bn_DQ.jnl
+*** Running test: bn695_bug_fixes.jnl
+*** Running test: bn_f_tax_fcns.jnl
+*** Running test: bn_fmrc.jnl
+*** Running test: bn_return_defined.jnl
+*** Running test: bn_can_var_noerr.jnl
+*** Running test: bn_annotate.jnl
+*** Running test: bn_auxiliary.jnl
+*** Running test: bn_plot_ribbon_gaploc.jnl
+*** Running test: bn_time_short_axes.jnl
+*** Running test: bn_floatstr_extended.jnl
+*** Running test: bn696_bug_fixes
+*** Running test: bn_bin_regrid
*** Running test: bn_all_ef.jnl
*** Running test: bn_startupfile.jnl
+*** Running test: bn_outline_poly.jnl
diff --git a/bench/test_results/startup_tests2.pdf b/bench/test_results/startup_tests2.pdf
index 365c8a5..5bff017 100644
Binary files a/bench/test_results/startup_tests2.pdf and b/bench/test_results/startup_tests2.pdf differ
diff --git a/bench/test_results/timetics.pdf b/bench/test_results/timetics.pdf
index 0f6cd34..f5857a4 100644
Binary files a/bench/test_results/timetics.pdf and b/bench/test_results/timetics.pdf differ
diff --git a/bench/test_results/timetics2.pdf b/bench/test_results/timetics2.pdf
index 1824830..53b6621 100644
Binary files a/bench/test_results/timetics2.pdf and b/bench/test_results/timetics2.pdf differ
diff --git a/bench/test_results/vec_curv.pdf b/bench/test_results/vec_curv.pdf
index d6ccf4b..f63cf4b 100644
Binary files a/bench/test_results/vec_curv.pdf and b/bench/test_results/vec_curv.pdf differ
diff --git a/bench/test_results/vec_curv2.pdf b/bench/test_results/vec_curv2.pdf
index 1e5a8e8..d121ebd 100644
Binary files a/bench/test_results/vec_curv2.pdf and b/bench/test_results/vec_curv2.pdf differ
diff --git a/bench/test_results/viewaxes.pdf b/bench/test_results/viewaxes.pdf
index b37aa16..14c1c0e 100644
Binary files a/bench/test_results/viewaxes.pdf and b/bench/test_results/viewaxes.pdf differ
diff --git a/bench/timesec.nc b/bench/timesec.nc
new file mode 100644
index 0000000..4bebc14
Binary files /dev/null and b/bench/timesec.nc differ
diff --git a/bench/twodtime.nc b/bench/twodtime.nc
new file mode 100644
index 0000000..f249b29
Binary files /dev/null and b/bench/twodtime.nc differ
diff --git a/bin/ferret_paths_template.csh b/bin/ferret_paths_template.csh
index 8e4d14c..f8b6bf3 100644
--- a/bin/ferret_paths_template.csh
+++ b/bin/ferret_paths_template.csh
@@ -75,6 +75,8 @@ setenv FER_GO ". ${FER_DIR}/go ${FER_DIR}/examples ${FER_DIR}/contrib"
## Space-separated list of directories containing traditional
## Ferret external function files (shared-object libraries)
setenv FER_EXTERNAL_FUNCTIONS "${FER_DIR}/ext_func/libs"
+## PyFerret external function files (shared-object libraries)
+setenv PYFER_EXTERNAL_FUNCTIONS "${FER_DIR}/ext_func/pylibs"
## Space-separated list of directories for Ferret color palettes
setenv FER_PALETTE ". ${FER_DIR}/ppl"
diff --git a/bin/ferret_paths_template.sh b/bin/ferret_paths_template.sh
index 4d585d8..69f9375 100644
--- a/bin/ferret_paths_template.sh
+++ b/bin/ferret_paths_template.sh
@@ -75,6 +75,8 @@ export FER_GO=". ${FER_DIR}/go ${FER_DIR}/examples ${FER_DIR}/contrib"
## Space-separated list of directories containing traditional
## Ferret external function files (shared-object libraries)
export FER_EXTERNAL_FUNCTIONS="${FER_DIR}/ext_func/libs"
+## PyFerret external function files (shared-object libraries)
+export PYFER_EXTERNAL_FUNCTIONS="${FER_DIR}/ext_func/pylibs"
## Space-separated list of directories for Ferret color palettes
export FER_PALETTE=". ${FER_DIR}/ppl"
diff --git a/bin/make_environment_tar b/bin/make_environment_tar
index 9a0477e..e78e522 100755
--- a/bin/make_environment_tar
+++ b/bin/make_environment_tar
@@ -135,6 +135,7 @@ echo ""
echo -n "Create gzipped tar file ${ctar_file} (y/n)? "
if [ -n "$auto_ans" ]; then
ans="${auto_ans}"
+ echo $ans
else
read ans
fi
@@ -145,7 +146,7 @@ done
if [ "${ans}" = "y" ]; then
echo ""
rm -f "${ctar_file}"
- tar cvzf "${ctar_file}" --exclude .svn *
+ tar czf "${ctar_file}" --exclude .svn *
echo ""
ls -l "${ctar_file}"
else
diff --git a/bin/make_executable_tar b/bin/make_executable_tar
index dec1cde..0906ed3 100755
--- a/bin/make_executable_tar
+++ b/bin/make_executable_tar
@@ -1,9 +1,8 @@
#! /bin/sh
# mycp needs to recursively copy subdirectories for the lib/python* directories
-# verbose flag used to create info messages when running this script
-mycp="/bin/cp -v -R -p"
-mylns="/bin/ln -v -s"
+mycp="/bin/cp -R -p"
+mylns="/bin/ln -s"
echo ""
if [ $# -eq 3 ]; then
@@ -74,6 +73,9 @@ if [ -x ${ferret_dir}/fer/ferret_c ]; then
${mycp} ${ferret_dir}/fer/ferret_c ${temp_dir}/bin/ferret_v${version}
cd ${temp_dir}/bin
${mylns} ferret_v${version} ferret
+# Copy the Ferret external function shared-object library files
+ mkdir -p ${temp_dir}/ext_func/libs
+ find ${ferret_dir}/external_functions -type f -perm -100 -name \*.so -exec ${mycp} {} ${temp_dir}/ext_func/libs \;
else
echo "No ferret_c executable found in ${ferret_dir}/fer"
# An error only if pyferret_dir was not given
@@ -84,12 +86,11 @@ else
echo " ferret_v<n> and ferret symbolic link not created"
echo ""
fi
+# Copy the PyFerret external function shared-object library files
+ mkdir -p ${temp_dir}/ext_func/pylibs
+ find ${ferret_dir}/external_functions -type f -perm -100 -name \*.so -exec ${mycp} {} ${temp_dir}/ext_func/pylibs \;
fi
-# Copy the external function shared-object library files
-mkdir -p ${temp_dir}/ext_func/libs
-find ${ferret_dir}/external_functions -type f -perm -100 -name \*.so -exec ${mycp} {} ${temp_dir}/ext_func/libs \;
-
# Copy font files from bin/build_fonts/unix/
fer_files=${ferret_dir}/bin/build_fonts/unix/f*
if [ $? -ne 0 -o "${fer_files}" = "" ]; then
@@ -154,6 +155,7 @@ echo ""
echo -n "Create gzipped tar file ${ctar_file} (y/n)? "
if [ -n "$auto_ans" ]; then
ans="${auto_ans}"
+ echo $ans
else
read ans
fi
@@ -165,7 +167,7 @@ if [ "${ans}" = "y" ]; then
echo ""
cd ${temp_dir}
rm -f "${ctar_file}"
- tar cvzf "${ctar_file}" *
+ tar czf "${ctar_file}" *
echo ""
ls -l "${ctar_file}"
else
diff --git a/bin/make_source_tar b/bin/make_source_tar
index 96f643e..81e8e76 100755
--- a/bin/make_source_tar
+++ b/bin/make_source_tar
@@ -87,7 +87,7 @@ done
if [ "${ans}" = "y" ]; then
echo ""
rm -f "${ctar_file}"
- tar cvzf "${ctar_file}" --exclude .svn "${fer_name}"
+ tar czf "${ctar_file}" --exclude .svn "${fer_name}"
echo ""
ls -l "${ctar_file}"
else
diff --git a/external_functions/ef_utility/site_specific.mk b/external_functions/ef_utility/site_specific.mk
index 1b501f7..2c06d31 100644
--- a/external_functions/ef_utility/site_specific.mk
+++ b/external_functions/ef_utility/site_specific.mk
@@ -1,6 +1,5 @@
## Site-dependent definitions included in external function
-## Makefiles in an installed PyFerret directory. (This file
-## is not used when building PyFerret from source.)
+## Makefiles in an installed PyFerret directory.
## Machine type for which to build Ferret/PyFerret
## x86_64-linux for 64-bit RHEL
@@ -32,7 +31,7 @@ PYTHON_EXE = python2.6
## FER_LOCAL_EXTFCNS is the directory in which to install
## the Ferret Fortran external functions. The example
## functions that come with the PyFerret installation are
-## installed in $(INSTALL_FER_DIR)/ext_func/libs
-FER_LOCAL_EXTFCNS = $(INSTALL_FER_DIR)/ext_func/libs
+## installed in $(INSTALL_FER_DIR)/ext_func/pylibs
+FER_LOCAL_EXTFCNS = $(INSTALL_FER_DIR)/ext_func/pylibs
##
diff --git a/external_functions/fft/Makefile b/external_functions/fft/Makefile
index 08cbe0e..fdf0384 100644
--- a/external_functions/fft/Makefile
+++ b/external_functions/fft/Makefile
@@ -30,7 +30,7 @@ include ../ef_utility/platform_specific.mk.$(BUILDTYPE)
.SUFFIXES: .so
-SUB_OBJS = fftinv_subs.o
+SUB_OBJS = fftinv_subs.o fftsubs.o
#
# Rules
diff --git a/external_functions/gridding/Makefile b/external_functions/gridding/Makefile
index 2193405..67f9dfa 100644
--- a/external_functions/gridding/Makefile
+++ b/external_functions/gridding/Makefile
@@ -39,9 +39,9 @@ SUB_OBJS = modscatminmax.o nobsxytv.o scat2grid_subs_mask.o
# Targets
#
-all: $(SUB_OBJS) tracks2grid_std_xyt.so tracks2grid_ave_xyt.so scat2grid_std_xyt.so \
+all: $(SUB_OBJS) tracks2grid_std_xyt.so scat2grid_std_xyt.so \
scat2grid_minmax_xyt.so scat2grid_mask_bin_xyt.so scat2grid_mask_minmax_xyt.so \
- scat2grid_mask_nbin_xyt.so scat2grid_mask_std_xyt.so tracks2grid_mask_ave_xyt.so
+ scat2grid_mask_nbin_xyt.so scat2grid_mask_std_xyt.so tracks2grid_mask_ave_xyt.so
#all: $(SUB_OBJS) index_to_grid.so scat2grid_nobs_xy.so
diff --git a/external_functions/gridding/fco2_xyt_stats_year.jnl b/external_functions/gridding/fco2_xyt_stats_year.jnl
deleted file mode 100644
index db5feb8..0000000
--- a/external_functions/gridding/fco2_xyt_stats_year.jnl
+++ /dev/null
@@ -1,84 +0,0 @@
-DEFINE AXIS/T0="1-jan-1970"/EDGES/UNITS=days tmnth = DAYS1900(year,month,1) - offset1970
-
-! Count of cruises with some data in each XYT cell
- ! Send a scalar as argument 1 to just count the cruises
- LET var = 1
- LET/UNITS="count"/TITLE="Number of cruises" \
- count_ncruise = TRACKS2GRID_AVE_XYT(var,LON,LAT,DATE,CRUISE_NO,X[GX=xlon],Y[GY=ylat],T[GT=tmnth])
-
- SAVE/($file_qual)/FILE="($gridded_outfile)" count_ncruise
- sh axis tmnth
- DEFINE SYMBOL file_qual = APPEND
-
-! Now count all of observations in each XYT cell
- LET var = fco2_rec
- LET/Units="count"/TITLE="Number of obs" \
- count_nobs = SCAT2GRID_NBIN_XYT(LON,LAT,DATE,var,X[GX=xlon],Y[GY=ylat],T[GT=tmnth])
-
- SAVE/APPEND/FILE="($gridded_outfile)" count_nobs
- sh axis tmnth
-
-! Mean by cruise of Fco2_rec, with some data in each XYT cell
- LET var = fco2_rec
- LET/UNITS="umol"/TITLE="fco2 mean - per cruise weighted" \
- FCO2_AVE_WEIGHTED = TRACKS2GRID_AVE_XYT(VAR,LON,LAT,DATE,CRUISE_NO,X[GX=xlon],Y[GY=ylat],T[GT=tmnth])
-
- SAVE/APPEND/FILE="($gridded_outfile)" fco2_ave_weighted
- sh axis tmnth
-
-
-! Mean fco2_rec, all observations in each XYT cell
- LET/UNITS="umol"/TITLE="fco2 mean - unweighted all obs" \
- FCO2_AVE_UNWTD = SCAT2GRID_BIN_XYT(LON,LAT,DATE,fco2_rec,X[GX=xlon],Y[GY=ylat],T[GT=tmnth])
-
- SAVE/APPEND/FILE="($gridded_outfile)" fco2_ave_unwtd
- sh axis tmnth
-
-! Min and max fco2. These are computed from one function with min at k=1, max at k=2.
-! Use the Z=1:1 at ave to remove the Z axis from the grid of the variable on output.
- LET minmax = SCAT2GRID_MINMAX_XYT(lon, lat, date, fco2_rec, x[gx=xlon], y[gy=ylat], t[gt=tmnth])
- LOAD minmax
-
- LET/UNITS=umol/TITLE="fco2 min" fco2_min_unwtd = minmax[z=1:1 at ave]
- SAVE/APPEND/FILE="($gridded_outfile)" fco2_min_unwtd
- sh axis tmnth
-
- LET/UNITS=umol/TITLE="fco2 max" fco2_max_unwtd = minmax[z=2:2 at ave]
- SAVE/APPEND/FILE="($gridded_outfile)" fco2_max_unwtd
-
- sh axis tmnth
-
-! Variance by cruise of Fco2_rec, with some data in each XYT cell
- LET fvar = fco2_rec
-
- LET/UNITS="umol"/TITLE="fco2 std dev - per cruise weighted" \
- fco2_std_weighted = tracks2grid_std_xyt(fvar,lon,lat,\
- date,cruise_no,x[gx=xlon],y[gy=ylat],t[gt=tmnth])
-
- SAVE/APPEND/FILE="($gridded_outfile)" fco2_std_weighted
- sh axis tmnth
-
-
-! unweighted std dev fco2
- LET/UNITS=umol/TITLE="fco2 std dev - unweighted all obs" \
- fco2_std_unwtd = SCAT2GRID_STD_XYT(lon, lat, date, fco2_rec, x[gx=xlon], y[gy=ylat], t[gt=tmnth])
- SAVE/APPEND/FILE="($gridded_outfile)" fco2_std_unwtd
- sh axis tmnth
-
-
-! Mean delta-latitude of all observations in each XYT cell
- LET nearest_lat = IF lat GE 0 THEN (INT(lat) + 0.5) ELSE (INT(lat) - 0.5)
- LET y_from_lat = (lat - nearest_lat)
- LET/UNITS="Deg N"/TITLE="Latitude average offset from cell center" \
- lat_offset_unwtd = SCAT2GRID_BIN_XYT(LON,LAT,DATE,y_from_lat,X[GX=xlon],Y[GY=ylat],T[GT=tmnth])
-
- SAVE/APPEND/FILE="($gridded_outfile)" lat_offset_unwtd
-
-! Mean delta-longitude of all observations in each XYT cell
- LET nearest_lon = IF lon GE 0 THEN (INT(lon) + 0.5) ELSE (INT(lon) - 0.5)
- LET x_from_lon = (lon - nearest_lon)
- LET/UNITS="Deg E"/TITLE="Longitude average offset from cell center" \
- lon_offset_unwtd = SCAT2GRID_BIN_XYT(LON,LAT,DATE,x_from_lon,X[GX=xlon],Y[GY=ylat],T[GT=tmnth])
-
- SAVE/APPEND/FILE="($gridded_outfile)" lon_offset_unwtd
- sh axis tmnth
diff --git a/external_functions/gridding/nobsxytv.F b/external_functions/gridding/nobsxytv.F
index b6ab230..89a0d80 100644
--- a/external_functions/gridding/nobsxytv.F
+++ b/external_functions/gridding/nobsxytv.F
@@ -8,57 +8,62 @@ c............yy/y1/yf all in same units
c i xx,yy,tt=x/y/t location of data pt (data units)
c i nx,ny,nt=size of grids
-c i x1,y1,L1=west/south/earliest edge of grid (center of 1st box in data units)
+c i xaxlo,xaxyi, etc bounds of destination grid cells
c o obs(nx,ny,nt) number of obs in each (x,y,t) gridbox
c--------------------------------------------------------------------------
SUBROUTINE nobsxytv (obs_only, xx, yy, tt, vv, nx, ny, nt,
- . x1, y1, t1, dx, dy, dt, xf, yf, tf, indx, obs)
+ . xaxlo,xaxhi, yaxlo,yaxhi, taxlo,taxhi, indx, obs)
* Argument declarations
INTEGER nx, ny, nt, obs_only, indx(4,2)
- REAL xx, yy, tt, vv, x1, y1, t1, dx, dy, dt, xf,
- . yf, tf, obs(nx,ny,2,nt)
+ REAL xx, yy, tt, vv, xaxlo(*), xaxhi(*),
+ . yaxlo(*), yaxhi(*), taxlo(*), taxhi(*), obs(nx,ny,2,nt)
* Local variable declarations
- REAL xxg, yyg, ttg
- INTEGER ig, jg, Lg ! !!!!!!!!!!!!!!!!!!!!!!!! adding t dimension throughtout
-
- xxg = (xx-x1)/ dx + 1. ! grid values of data location
- yyg = (yy-y1)/ dy + 1.
- ttg = (tt-t1)/ dt + 1.
-
-c.................sum the value and count in each (x,y,t) gridbox
- ig = NINT(xxg)
- jg = NINT(yyg)
- Lg = NINT(ttg)
- IF (ig.LT.1 .OR. ig.GT.nx) RETURN
- IF (ig.LT.1 .OR. ig.GT.nx) RETURN
- IF (lg.LT.1 .OR. lg.GT.nt) RETURN
-
- IF (obs_only .EQ. 0) THEN
- IF (ig.GE.1 .AND. ig.LE.nx .AND. jg.GE.1 .AND. jg.LE.ny .AND.
- . Lg.GE.1 .AND. Lg.LE.nt ) THEN
- obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + vv
- obs(ig,jg,2,Lg) = obs(ig,jg,2,Lg) + 1.
- ENDIF
- ELSE
- IF (ig.GE.1 .AND. ig.LE.nx .AND. jg.GE.1 .AND. jg.LE.ny .AND.
- . Lg.GE.1 .AND. Lg.LE.nt ) THEN
- obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + 1.
- ENDIF
- ENDIF
+ INTEGER ig, jg, Lg
+
+ lg = 1
+ DO l = 1, nt
+ IF (tt.GE.taxlo(lg) .AND.
+ . tt.LT.taxhi(lg)) THEN
+ jg = 1
+ DO j = 1, ny
+ IF (yy.GE.yaxlo(jg) .AND.
+ . yy.LT.yaxhi(jg)) THEN
+ ig = 1
+ DO i = 1, nx
+ IF ( xx.GE.xaxlo(ig) .AND.
+ . xx.LT.xaxhi(ig)) THEN
+
+ IF (obs_only .EQ. 0) THEN
+ obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + vv
+ obs(ig,jg,2,Lg) = obs(ig,jg,2,Lg) + 1.
+ ELSE
+ obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + 1.
+ ENDIF
* Store the min and max index used in this cruise
- indx(1,1) = MIN(indx(1,1), ig)
- indx(1,2) = MAX(indx(1,2), ig)
- indx(2,1) = MIN(indx(2,1), jg)
- indx(2,2) = MAX(indx(2,2), jg)
- indx(4,1) = MIN(indx(4,1), Lg)
- indx(4,2) = MAX(indx(4,2), Lg)
+ indx(1,1) = MIN(indx(1,1), ig)
+ indx(1,2) = MAX(indx(1,2), ig)
+ indx(2,1) = MIN(indx(2,1), jg)
+ indx(2,2) = MAX(indx(2,2), jg)
+ indx(4,1) = MIN(indx(4,1), Lg)
+ indx(4,2) = MAX(indx(4,2), Lg)
+ ENDIF !xx in grid box
+ ig = ig + 1
+ ENDDO ! nx
+
+ ENDIF !yy in grid box
+ jg = jg + 1
+ ENDDO ! ny
+
+ ENDIF !tt in grid box
+ lg = lg + 1
+ ENDDO ! nt
RETURN
END
diff --git a/external_functions/gridding/scat2grid_mask_bin_xyt.F b/external_functions/gridding/scat2grid_mask_bin_xyt.F
index 771ff62..2f4a855 100644
--- a/external_functions/gridding/scat2grid_mask_bin_xyt.F
+++ b/external_functions/gridding/scat2grid_mask_bin_xyt.F
@@ -438,11 +438,14 @@ C Get first coordinates of output axes.
imask = INT(1+(xx-x1)/dx)
if (xx .LT. xaxlo(imask,1,1,1)) imask = imask - 1
- if (xx .GT. xaxhi(imask,1,1,1)) imask = imask + 1
+ if (xx .GE. xaxhi(imask,1,1,1)) imask = imask + 1
jmask = INT(1+(yy-y1)/dy)
if (yy .LT. yaxlo(jmask,1,1,1)) jmask = jmask - 1
- if (yy .GT. yaxhi(jmask,1,1,1)) jmask = jmask + 1
+ if (yy .GE. yaxhi(jmask,1,1,1)) jmask = jmask + 1
+
+ IF (imask.LT.mem8lox .OR. imask.GT.mem8hix) GOTO 300
+ IF (jmask.LT.mem8loy .OR. jmask.GT.mem8hiy) GOTO 300
IF (arg_8(imask,jmask,k8,l8) .NE. 1.) GOTO 300
* If output X axis is modulo, apply modulo adjustment to that coordinate
diff --git a/external_functions/gridding/socat_decadal.jnl b/external_functions/gridding/socat_decadal.jnl
deleted file mode 100644
index 6748faf..0000000
--- a/external_functions/gridding/socat_decadal.jnl
+++ /dev/null
@@ -1,99 +0,0 @@
- ! Compute decadal averages of SOCAT gridded data:
- ! sum the counts
- ! average the fco2 averages
- ! min and max the fco2 min and max.
-
-use "/home/data/socat/SOCAT_tracks_gridded_monthly.nc"
-set mem/siz=70
-
-define symbol outfile = /home/data/socat/SOCAT_tracks_gridded_decadal_new.nc
-sp rm -f outfile
-
-! Define output time axis
-
-
-
-yes? let year = 1900+{70,80,90,100,110}
-yes? let month = 1
-yes? let day = 1
-yes? define axis/units=days/t0=1-jan-1900/edges tdecade = days1900(year, month, 1)
-
-
-! Regrid each variable to the decadal axis using the appropriate transform.
-
-define symbol invar = count_ncruise ! count_ncruise or ($invar)
-define sym op = SUM
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! Sum for each month, adding to the dataset
-let/title="($title_out)"/units="($units_out)" ($invar)_decade = ($invar)[gt=tdecade@($op)]
-save/file="($outfile)"/clobber ($invar)_decade
-
-! Now the same for count_nobs
-define symbol invar = count_nobs ! count_ncruise or count_nobs
-define symbol op = SUM
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)" ($invar)_decade = ($invar)[gt=tdecade@($op)]
-save/file="($outfile)"/append ($invar)_decade
-
-
-! For FCO2 variables, average.
-define symbol invar = fco2_ave_weighted
-define symbol op = AVE
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)" ($invar)_decade = ($invar)[gt=tdecade@($op)]
-save/file="($outfile)"/append ($invar)_decade
-
-! For FCO2 variables, average.
-define symbol invar = fco2_ave_unwtd
-define symbol op = AVE
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)" ($invar)_decade = ($invar)[gt=tdecade@($op)]
-save/file="($outfile)"/append ($invar)_decade
-
-! For FCO2 min and max, use the min and max.
-define symbol invar = fco2_min_unwtd
-define symbol op = MIN
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)" ($invar)_decade = ($invar)[gt=tdecade@($op)]
-save/file="($outfile)"/append ($invar)_decade
-
-! For FCO2 min and max, use the min and max.
-define symbol invar = fco2_max_unwtd
-define symbol op = MAX
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)" ($invar)_decade = ($invar)[gt=tdecade@($op)]
-save/file="($outfile)"/append ($invar)_decade
-
-! Add global attribute
-
-let status = nco_attr("($outfile)", "global", "title", "c", "a",\
-"SOCAT gridded v1.4 May 2011, QC-Flags A-D, WOCE-Flag 2 by Decade" )
-load status
diff --git a/external_functions/gridding/socat_monthly_climatology.jnl b/external_functions/gridding/socat_monthly_climatology.jnl
deleted file mode 100644
index f3abc1b..0000000
--- a/external_functions/gridding/socat_monthly_climatology.jnl
+++ /dev/null
@@ -1,96 +0,0 @@
- ! Compute monthly climatologies of SOCAT gridded data.
- ! sum the counts
- ! average the fco2 averages
- ! min and max the fco2 min and max.
-
-use "/home/data/socat/SOCAT_tracks_gridded_monthly.nc"
-
-
-define symbol outfile = /home/data/socat/SOCAT_tracks_gridded_month_clim.nc
-sp rm -f outfile
-
-define symbol invar = count_ncruise ! count_ncruise or ($invar)
-define sym op = SUM
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-use climatological_axes
-can data 2
-
-let LL = l[gt=($invar)[d=1]]
-
-if `tax_month(LL[L=1], LL) NE 1` THEN
- say 'original time axis does not start in January'
- exit/program
-endif
-
-! For plotting the climatologies
-define sym levsym=(v,0min)
-keymark,1
-set win/siz=0.5
-
-! Sum for each month, adding to the dataset
-repeat/range=1:12/name=m (let imon = `m`; go clim_month)
-pause
-
-! Now the same for count_nobs
-define symbol invar = count_nobs ! count_ncruise or count_nobs
-define symbol op = SUM
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! All months
-repeat/range=1:12/name=m (let imon = `m`; go clim_month)
-pause
-
-! For FCO2 variables, average.
-define symbol invar = fco2_ave_weighted
-define symbol op = AVE
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! All months
-repeat/range=1:12/name=m (let imon = `m`; go clim_month)
-pause
-
-! For FCO2 variables, average.
-define symbol invar = fco2_ave_unwtd
-define symbol op = AVE
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! All months
-repeat/range=1:12/name=m (let imon = `m`; go clim_month)
-pause
-
-! For FCO2 min and max, use the min and max.
-define symbol invar = fco2_min_unwtd
-define symbol op = MIN
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! All months
-repeat/range=1:12/name=m (let imon = `m`; go clim_month)
-pause
-
-! For FCO2 min and max, use the min and max.
-define symbol invar = fco2_max_unwtd
-define symbol op = MAX
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! All months
-repeat/range=1:12/name=m (let imon = `m`; go clim_month)
-
-
-! Add global attributes
-
-let status = nco_attr("($outfile)", "global", "title", "c", "a",\
-"SOCAT gridded v1.4 May 2011, QC-Flags A-D, WOCE-Flag 2 Monthly Climatology" )
-load status
diff --git a/external_functions/gridding/socat_yearly.jnl b/external_functions/gridding/socat_yearly.jnl
deleted file mode 100644
index 7506f35..0000000
--- a/external_functions/gridding/socat_yearly.jnl
+++ /dev/null
@@ -1,93 +0,0 @@
- ! Compute yearly averages of SOCAT gridded data:
- ! sum the counts
- ! average the fco2 averages
- ! min and max the fco2 min and max.
-
-use "/home/data/socat/SOCAT_tracks_gridded_monthly.nc"
-set mem/siz=70
-
-define symbol outfile = /home/data/socat/SOCAT_tracks_gridded_yearly.nc
-sp rm -f outfile
-
-! Define output time axis
-
-DEFINE AXIS/t="1-jan-1970":"31-dec-2007":1/edges/units=year tyear
-
-
-! Regrid each variable to the yearly axis using the appropriate transform.
-
-define symbol invar = count_ncruise ! count_ncruise or ($invar)
-define sym op = SUM
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! Sum for each month, adding to the dataset
-let/title="($title_out)"/units="($units_out)" ($invar)_year = ($invar)[gt=tyear@($op)]
-save/file="($outfile)"/clobber ($invar)_year
-
-! Now the same for count_nobs
-define symbol invar = count_nobs ! count_ncruise or count_nobs
-define symbol op = SUM
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)" ($invar)_year = ($invar)[gt=tyear@($op)]
-save/file="($outfile)"/append ($invar)_year
-
-
-! For FCO2 variables, average.
-define symbol invar = fco2_ave_weighted
-define symbol op = AVE
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)" ($invar)_year = ($invar)[gt=tyear@($op)]
-save/file="($outfile)"/append ($invar)_year
-
-! For FCO2 variables, average.
-define symbol invar = fco2_ave_unwtd
-define symbol op = AVE
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)" ($invar)_year = ($invar)[gt=tyear@($op)]
-save/file="($outfile)"/append ($invar)_year
-
-! For FCO2 min and max, use the min and max.
-define symbol invar = fco2_min_unwtd
-define symbol op = MIN
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)" ($invar)_year = ($invar)[gt=tyear@($op)]
-save/file="($outfile)"/append ($invar)_year
-
-! For FCO2 min and max, use the min and max.
-define symbol invar = fco2_max_unwtd
-define symbol op = MAX
-
-define symbol title_out=`($invar)[d=1],return=title`
-define symbol units_out=`($invar)[d=1],return=units`
-
-
-! add to dataset
-let/title="($title_out)"/units="($units_out)" ($invar)_year = ($invar)[gt=tyear@($op)]
-save/file="($outfile)"/append ($invar)_year
-
-! Add global attribute
-
-let status = nco_attr("($outfile)", "global", "title", "c", "a",\
-"SOCAT gridded v1.4 May 2011, QC-Flags A-D, WOCE-Flag 2 Yearly" )
-load status
diff --git a/external_functions/gridding/test_tracks2grid_var_xyt.jnl b/external_functions/gridding/test_tracks2grid_var_xyt.jnl
deleted file mode 100644
index 4eb893e..0000000
--- a/external_functions/gridding/test_tracks2grid_var_xyt.jnl
+++ /dev/null
@@ -1,64 +0,0 @@
-! compute cruiseVariance
-
-! create a coarse resolution XYT grid that can be used to anticipate the
-! volume of data in an arbitrary XYT region
-
-SET MEM/SIZ=300
-
-DEFINE AXIS/X=-179.5:179.5:1/UNITS=degrees_east/MODULO xlon
-DEFINE AXIS/Y=-89.5:89.5:1/UNITS=degrees_north ylat
-
-LET dx = `0.5* xbox[gx=xlon,i=1]`
-LET dy = `0.5* ybox[gy=ylat,j=1]`
-
-!Data contains lat,lon,date,data_id,cruise_id,cruise_no,fco2_rec
-USE "/home/data/socat/SOCAT_triples_1.3_fco2.nc"
-
-SET AXIS/STRIDE=1 `lon,return=xaxis`
-let ntimes = 10000
-let ntimes = `lon,return=isize`
-
-LET offset1970 = DAYS1900(1970,1,1)
-LET month = MOD(ii-1,12)+1
-LET year = 1970 + INT((ii-1)/12)
-
-! for entire time period of SOCAT
-LET ii = i[i=1:480]
-
-
-!LET ii = i[i=421:433] ! for the year 2005 only
-!LET ii = i[i=445:456] ! for the year 2007 only
-
-DEFINE AXIS/T0="1-jan-1970"/EDGES/UNITS=days tmnth = DAYS1900(year,month,1) - offset1970
-
-! Variance by cruise of Fco2_rec, with some data in each XYT cell
-LET fvar = fco2_rec
-
-LET/UNITS="Variance"/\
- TITLE="Variance variable fco2_rec over cruises with carbon obs in 1x1, monthly bins" \
- fco2_weighted_var = TRACKS2GRID_VAR_XYT(fvar[i=1:`ntimes`],lon[i=1:`ntimes`],lat[i=1:`ntimes`],\
- date[i=1:`ntimes`],cruise_no[i=1:`ntimes`],x[gx=xlon],y[gy=ylat],t[gt=tmnth])
-
-SP date
-SAVE/CLOBBER/FILE=SOCAT_var.nc fco2_weighted_var
-SP date
-
-can var/all
-use SOCAT_var
-
-
-shade/lev=(0,2200,100)(inf) fco2_weighted_var[t=@ave]
-go fland 20
-
-
-pause
-shade/lev/x=-10:10/y=40:60 fco2_weighted_var[t=@ave]
-SET DATA 1
-GO polymark poly/over/nokey/pal=greyscale lon, lat, cruise_no, square
-
-
-pause
-let fc = FCO2_WEIGHTED_VAR^0.5
-shade fc[t=@ave]
-go fland 20
-
diff --git a/external_functions/gridding/tracks2grid_ave_fco2_xyt_stats.jnl b/external_functions/gridding/tracks2grid_ave_fco2_xyt_stats.jnl
deleted file mode 100644
index 19d194d..0000000
--- a/external_functions/gridding/tracks2grid_ave_fco2_xyt_stats.jnl
+++ /dev/null
@@ -1,57 +0,0 @@
-! compute cruiseDensity
-
-! create a coarse resolution XYT grid that can be used to anticipate the
-! volume of data in an arbitrary XYT region
-
-SET MEM/SIZ=300
-
-DEFINE AXIS/X=-179.5:179.5:1/UNITS=degrees_east/MODULO xlon
-DEFINE AXIS/Y=-89.5:89.5:1/UNITS=degrees_north ylat
-
-LET dx = `0.5* xbox[gx=xlon,i=1]`
-LET dy = `0.5* ybox[gy=ylat,j=1]`
-
-!Data contains lat,lon,date,data_id,cruise_id,cruise_no,fco2_rec
-! USE "/home/data/socat/SOCAT_triples_fco2.nc"
-
- !USE "/home/data/socat/SOCAT_triples_AD_1.3_fco2.nc"
-
-use "/home/data/socat/SOCAT_triples_averaged_8_30_2011_AD_1.3_fco2.nc"
-
-!SET AXIS/STRIDE=100 `lon,return=xaxis`
-
-! Triples have time with origin at start of 1970.
-LET offset1970 = DAYS1900(1970,1,1)
-LET month = MOD(ii-1,12)+1
-LET year = 1970 + INT((ii-1)/12)
-
-! for entire time period of SOCAT
-LET ii = i[i=1:480]
-
-! Repeat and do the calculation for 5-year intervals.
-LET i1 = 1
-LET i2 = 61
-LET del = 60
-
-let imax = 457 ! through the end of 2007
-
-DEFINE SYMBOL file_qual = CLOBBER ! First time CLOBBBER, afterwards APPEND to the file.
-DEFINE SYMBOL gridded_outfile = /home/data/socat/SOCAT_tracks_gridded_stats_AD.nc
-DEFINE SYMBOL gridded_outfile = /home/data/socat/SOCAT_tracks_gridded_monthly.SOCAT_triples_averaged_8_30_2011_AD_1.3_fco2.nc
-
-repeat/range=1:10:1 ( \
- LET ii = i[i=`i1`:`i2`]; \
- GO fco2_xyt_stats_year.jnl; \
- LET i1 = `i2`; \
- LET i2 = `i2+del`; \
- IF `i2 GT imax` THEN LET i2 = `imax`; \
- IF `i1 GE imax` THEN exit/loop; \
- )
-
-
-! Add global attributes
-
-let status = nco_attr("($gridded_outfile)", "global", "title", "c", "a",\
-"SOCAT gridded. SOCAT v1.4 May 2011, QC-Flags A-D, WOCE-Flag 2" )
-load status
-
diff --git a/external_functions/gridding/tracks2grid_mask_ave_xyt.F b/external_functions/gridding/tracks2grid_mask_ave_xyt.F
index 1d8ee0a..26f2178 100644
--- a/external_functions/gridding/tracks2grid_mask_ave_xyt.F
+++ b/external_functions/gridding/tracks2grid_mask_ave_xyt.F
@@ -106,7 +106,7 @@
CALL ef_set_axis_inheritance(id, IMPLIED_BY_ARGS,
. IMPLIED_BY_ARGS, NORMAL, IMPLIED_BY_ARGS)
- CALL ef_set_num_work_arrays(id, 5)
+ CALL ef_set_num_work_arrays(id, 8)
* Output grid is determined by arguments 4, 5, 6, the result's x, y, t axes.
@@ -144,19 +144,19 @@
arg = 6
CALL ef_set_arg_name(id, arg, 'XAXPTS')
CALL ef_set_arg_desc(id, arg,
- . 'X axis coordinates of a regular output grid')
+ . 'X axis coordinates of the output grid, with same units as xpts')
CALL ef_set_axis_influence(id, arg, YES, NO, NO, NO)
arg = 7
CALL ef_set_arg_name(id, arg, 'YAXPTS')
CALL ef_set_arg_desc(id, arg,
- . 'Y axis coordinates of a regular output grid')
+ . 'Y axis coordinates of the output grid, with same units as ypts')
CALL ef_set_axis_influence(id, arg, NO, YES, NO, NO)
arg = 8
CALL ef_set_arg_name(id, arg, 'TAXPTS')
WRITE (buff, 20)
- 20 FORMAT ('T axis coordinates, of a regular output grid, with same ',
+ 20 FORMAT ('T axis coordinates, of the output grid, with same ',
. 'units and origin as tpts')
CALL ef_set_arg_desc(id, arg, buff)
CALL ef_set_axis_influence(id, arg, NO, NO, NO, YES)
@@ -203,29 +203,31 @@
nyout = 1 + arg_hi_ss(Y_AXIS,ARG7) - arg_lo_ss(Y_AXIS,ARG7)
ntout = 1 + arg_hi_ss(T_AXIS,ARG8) - arg_lo_ss(T_AXIS,ARG8)
- nx2 = nxout* 2
- ny2 = nyout* 2
- nt2 = ntout* 2
+* xaxlo output x axis
+ CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nxout, 1, 1, 1)
+* xaxhi output x axis
+ CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, nxout, 1, 1, 1)
-* xax output x axis
- CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nx2, 1, 1, 1)
+* yaxlo output y axis
+ CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, nyout, 1, 1, 1)
+* yaxhi output y axis
+ CALL ef_set_work_array_dims (id, 4, 1, 1, 1, 1, nyout, 1, 1, 1)
-* yax output y axis
- CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, ny2, 1, 1, 1)
-
-* Tax output t axis
- CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, nt2, 1, 1, 1)
+* taxlo output t axis
+ CALL ef_set_work_array_dims (id, 5, 1, 1, 1, 1, ntout, 1, 1, 1)
+* taxhi output t axis
+ CALL ef_set_work_array_dims (id, 6, 1, 1, 1, 1, ntout, 1, 1, 1)
* obs_cruise work array - sum and counts of observations per cruise
* x,y,t direction: output grid
* z direction: 1..2
- CALL ef_set_work_array_dims (id, 4, 1, 1, 1, 1,
+ CALL ef_set_work_array_dims (id, 7, 1, 1, 1, 1,
. nxout, nyout, 2, ntout)
* obs work array - work array - sum and counts of observations
* x,y,t direction: output grid
* z direction: 1..2
- CALL ef_set_work_array_dims (id, 5, 1, 1, 1, 1,
+ CALL ef_set_work_array_dims (id, 8, 1, 1, 1, 1,
. nxout, nyout, 2, ntout)
RETURN
@@ -238,7 +240,7 @@
SUBROUTINE tracks2grid_mask_ave_xyt_compute(id, arg_1, arg_2, arg_3,
. arg_4, arg_5, arg_6, arg_7, arg_8, arg_9, result,
- . xax, yax, tax, obs_cruise, obs)
+ . xaxlo, xaxhi, yaxlo, yaxhi, taxlo, taxhi, obs_cruise, obs)
* arg_1 var
* arg_2 xpts \
@@ -295,7 +297,6 @@
INTEGER i, j, k, l, m, n
INTEGER i1, i2, j1, k1, l1, k2
INTEGER i6,j7,L8,i6n,j7n,L8n
- INTEGER imask, jmask, k9, l9
INTEGER nxpts, npts
INTEGER nx, ny, nt
@@ -307,25 +308,27 @@
* Dimension the work arrays
- REAL*8 xax(wrk1lox:wrk1hix/2, wrk1loy:wrk1hiy,
+ REAL*8 xaxlo(wrk1lox:wrk1hix, wrk1loy:wrk1hiy,
. wrk1loz:wrk1hiz, wrk1lot:wrk1hit)
- REAL*8 yax(wrk2lox:wrk2hix/2, wrk2loy:wrk2hiy,
+ REAL*8 xaxhi(wrk2lox:wrk2hix, wrk2loy:wrk2hiy,
. wrk2loz:wrk2hiz, wrk2lot:wrk2hit)
- REAL*8 tax(wrk3lox:wrk3hix/2, wrk3loy:wrk3hiy,
+ REAL*8 yaxlo(wrk3lox:wrk3hix, wrk3loy:wrk3hiy,
. wrk3loz:wrk3hiz, wrk3lot:wrk3hit)
- REAL obs_cruise(wrk4lox:wrk4hix, wrk4loy:wrk4hiy,
+ REAL*8 yaxhi(wrk4lox:wrk4hix, wrk4loy:wrk4hiy,
. wrk4loz:wrk4hiz, wrk4lot:wrk4hit)
- REAL obs(wrk5lox:wrk5hix, wrk5loy:wrk5hiy,
+ REAL*8 taxlo(wrk5lox:wrk5hix, wrk5loy:wrk5hiy,
. wrk5loz:wrk5hiz, wrk5lot:wrk5hit)
+ REAL*8 taxhi(wrk6lox:wrk6hix, wrk6loy:wrk6hiy,
+ . wrk6loz:wrk6hiz, wrk6lot:wrk6hit)
- CHARACTER*250 errtxt
-
-C variables for checking axis characteristics (modulo axes)
+ REAL obs_cruise(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
+ . wrk7loz:wrk7hiz, wrk7lot:wrk7hit)
+ REAL obs(wrk8lox:wrk8hix, wrk8loy:wrk8hiy,
+ . wrk8loz:wrk8hiz, wrk8lot:wrk8hit)
- CHARACTER ax_name(4)*16, ax_units(4)*16
- LOGICAL backward(4), modulox(4), moduloy(4), modulot(4), regular(4)
+ CHARACTER*250 errtxt
- REAL dx, dy, xxbeg, xxend, yybeg, yyend
+ REAL*8 dx, dy, dt, xxbeg, xxend, yybeg, yyend
REAL*8 xax1,xaxf, yax1,yaxf, tax1,taxf
INTEGER indx(4,2)
@@ -336,15 +339,6 @@ C variables for checking axis characteristics (modulo axes)
obs_only = 0 ! 0 = var 1 is a variable to average.
! 1 = Compute a count of cruises with an obs in the grid cells
-* Check to see if output axes are modulo
-
- CALL ef_get_axis_info (id, 6, ax_name, ax_units, backward,
- . modulox, regular)
- CALL ef_get_axis_info (id, 7, ax_name, ax_units, backward,
- . moduloy, regular)
- CALL ef_get_axis_info (id, 8, ax_name, ax_units, backward,
- . modulot, regular)
-
* Find number of points in scattered input points. 1-D arrays defining the
* scattered data points may lie on the X, Y, Z, or T axis of the input arguments.
@@ -435,54 +429,23 @@ C variables for checking axis characteristics (modulo axes)
C Get coordinates of output axes.
- call ef_get_coordinates(id, ARG6, X_AXIS,
- . arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xax)
-
- call ef_get_coordinates(id, ARG7, Y_AXIS,
- . arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yax)
-
- call ef_get_coordinates(id, ARG8, T_AXIS,
- . arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), tax)
+ CALL EF_GET_BOX_LIMITS(id, ARG6, X_AXIS,
+ . arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xaxlo, xaxhi)
-* Set start, end, and delta for output axes.
+ CALL EF_GET_BOX_LIMITS(id, ARG7, Y_AXIS,
+ . arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yaxlo, yaxhi)
- x1 = xax(1,1,1,1)
- y1 = yax(1,1,1,1)
- t1 = tax(1,1,1,1)
+ CALL EF_GET_BOX_LIMITS(id, ARG8, T_AXIS,
+ . arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), taxlo, taxhi)
- xf = xax(nx,1,1,1)
- yf = yax(ny,1,1,1)
- tf = tax(nt,1,1,1)
+* Get first coordinates of output axes.
-* Gridbox sizes in data units
- dx = xf - x1
- IF (nx .GT. 1) dx = (xf-x1)/ REAL(nx-1)
- dy = yf - y1
- IF (ny .GT. 1) dy = (yf-y1)/ REAL(ny-1)
- dt = tf - t1
- IF (nt .GT. 1) dt = (tf-t1)/ REAL(nt-1)
-
- IF (nx .EQ. 1) THEN
- CALL ef_get_box_limits(id, ARG6, X_AXIS,
- . arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xax1,xaxf)
- dx = xaxf - xax1
- ENDIF
- IF (ny .EQ. 1) THEN
- CALL ef_get_box_limits(id, ARG7, Y_AXIS,
- . arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yax1,yaxf)
- dy = yaxf - yax1
- ENDIF
- IF (nt .EQ. 1) THEN
- CALL ef_get_box_limits(id, ARG8, T_AXIS,
- . arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), tax1,taxf)
- tx = taxf - tax1
- ENDIF
-
-
- CALL ef_get_box_limits(id, ARG6, X_AXIS,
- . arg_lo_ss(X_AXIS, ARG6), arg_lo_ss(X_AXIS, ARG6), xax1,xax1)
- CALL ef_get_box_limits(id, ARG6, X_AXIS,
- . arg_hi_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xaxf,xaxf)
+ call ef_get_coordinates(id, ARG6, X_AXIS,
+ . arg_lo_ss(X_AXIS, ARG6), arg_lo_ss(X_AXIS, ARG6), xax1)
+ call ef_get_coordinates(id, ARG7, X_AXIS,
+ . arg_lo_ss(Y_AXIS, ARG7), arg_lo_ss(Y_AXIS, ARG7), yax1)
+ x1 = xax1
+ y1 = yax1
* Compute result
@@ -529,9 +492,7 @@ C Get coordinates of output axes.
indx(2,2) = 1
indx(4,1) = nt
indx(4,2) = 1
-
- k9 = arg_lo_ss(Z_AXIS,ARG9)
- l9 = arg_lo_ss(T_AXIS,ARG9)
+
DO 300 n = 1, nscat
CALL pickoutxytcv (obs_only, arg_1, arg_2, arg_3, arg_4, arg_5,
@@ -539,15 +500,9 @@ C Get coordinates of output axes.
IF (vv .EQ. bad_flag(ARG1) .OR. xx .EQ. bad_flag(ARG2) .OR.
. yy .EQ. bad_flag(ARG3) .OR. tt .EQ. bad_flag(ARG4) ) GOTO 300
- imask = INT(1+(xx-x1)/dx)
- if (xx .LT. xax(imask,1,1,1) - dx/2) imask = imask - 1
- if (xx .GT. xax(imask,1,1,1) + dx/2) imask = imask + 1
- jmask = INT(1+(yy-y1)/dy)
- if (yy .LT. yax(jmask,1,1,1) - dy/2) jmask = jmask - 1
- if (yy .GT. yax(jmask,1,1,1) + dy/2) jmask = jmask + 1
-
- IF (arg_9(imask,jmask,k9,l9) .NE. 1.) GOTO 300
-
+ if (xx.LT.xaxlo(1,1,1,1) .OR. xx.GT.xaxhi(nx,1,1,1)) GOTO 300
+ if (yy.LT.yaxlo(1,1,1,1) .OR. yy.GT.yaxhi(ny,1,1,1)) GOTO 300
+ if (tt.LT.taxlo(1,1,1,1) .OR. tt.GT.taxhi(nt,1,1,1)) GOTO 300
IF (ncc .NE. icruise) THEN
@@ -584,31 +539,8 @@ C Get coordinates of output axes.
ENDIF
-* If an output axis is modulo, apply modulo adjustment to that coordinate
-* of the scattered point.
-
-c IF (modulox(1) .AND. xx.NE.bad_flag(ARG1))
-c . CALL modscatminmax (xax1, xaxf, 1, xx)
-
CALL nobsxytv (obs_only, xx, yy, tt, vv, nx, ny, nt,
- . x1, y1, t1, dx, dy, dt, xf, yf, tf, indx, obs_cruise)
-
-* Put points within dx or dy or dt of the end just beyond the
-* other end, and use in the gridding computation.
-
-c IF (modulox(1)) THEN
-c IF ((xx-x1 .GE. 0.) .AND. (xx-x1 .LT. dx) ) THEN
-c xxend = xf + (xx-x1)
-c CALL nobsxytv (obs_only, xxend, yy, tt, vv, nx, ny, nt,
-c . x1, y1, t1, dx, dy, dt, xf, yf, tf, indx, obs_cruise)
-c ENDIF
-
-c IF ((xf-xx .GE. 0.) .AND. (xf-xx .LT. dx) ) THEN
-c xxbeg = x1 - (xf-xx)
-c CALL nobsxytv (obs_only, xxbeg, yy, tt, vv, nx, ny, nt,
-c . x1, y1, t1, dx, dy, dt, xf, yf, tf, indx, obs_cruise)
-c ENDIF
-c ENDIF
+ . xaxlo,xaxhi, yaxlo,yaxhi, taxlo,taxhi, indx, obs_cruise)
300 CONTINUE
diff --git a/external_functions/gridding/tracks2grid_std_xyt.F b/external_functions/gridding/tracks2grid_std_xyt.F
index 4df5e3f..e790900 100644
--- a/external_functions/gridding/tracks2grid_std_xyt.F
+++ b/external_functions/gridding/tracks2grid_std_xyt.F
@@ -204,18 +204,14 @@
nyout = 1 + arg_hi_ss(Y_AXIS,ARG7) - arg_lo_ss(Y_AXIS,ARG7)
ntout = 1 + arg_hi_ss(T_AXIS,ARG8) - arg_lo_ss(T_AXIS,ARG8)
- nx2 = nxout* 2
- ny2 = nyout* 2
- nt2 = ntout* 2
+* xax output x axis cell edges
+ CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nxout, 2, 1, 1)
-* xax output x axis
- CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nx2, 1, 1, 1)
+* yax output y axis cell edges
+ CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, nyout, 2, 1, 1)
-* yax output y axis
- CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, ny2, 1, 1, 1)
-
-* Tax output t axis
- CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, nt2, 1, 1, 1)
+* Tax output t axis cell edges
+ CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, ntout, 2, 1, 1)
* obs_cruise work array - sum and counts of observations per cruise
* x,y,t direction: output grid
@@ -332,11 +328,11 @@
* Dimension the work arrays
- REAL*8 xax(wrk1lox:wrk1hix/2, wrk1loy:wrk1hiy,
+ REAL*8 xax(wrk1lox:wrk1hix, wrk1loy:wrk1hiy,
. wrk1loz:wrk1hiz, wrk1lot:wrk1hit)
- REAL*8 yax(wrk2lox:wrk2hix/2, wrk2loy:wrk2hiy,
+ REAL*8 yax(wrk2lox:wrk2hix, wrk2loy:wrk2hiy,
. wrk2loz:wrk2hiz, wrk2lot:wrk2hit)
- REAL*8 tax(wrk3lox:wrk3hix/2, wrk3loy:wrk3hiy,
+ REAL*8 tax(wrk3lox:wrk3hix, wrk3loy:wrk3hiy,
. wrk3loz:wrk3hiz, wrk3lot:wrk3hit)
REAL obs_cruise(wrk4lox:wrk4hix, wrk4loy:wrk4hiy,
. wrk4loz:wrk4hiz, wrk4lot:wrk4hit)
@@ -351,26 +347,12 @@
CHARACTER*250 errtxt
-C variables for checking axis characteristics (modulo axes)
-
- CHARACTER ax_name(4)*16, ax_units(4)*16
- LOGICAL backward(4), modulox(4), moduloy(4), modulot(4), regular(4)
-
CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
obs_only = 0 ! Compute the std for average of variable (e.g. fco2)
-* Check to see if output axes are modulo
-
- CALL ef_get_axis_info (id, 6, ax_name, ax_units, backward,
- . modulox, regular)
- CALL ef_get_axis_info (id, 7, ax_name, ax_units, backward,
- . moduloy, regular)
- CALL ef_get_axis_info (id, 8, ax_name, ax_units, backward,
- . modulot, regular)
-
* Find number of points in scattered input points. 1-D arrays defining the
* scattered data points may lie on the X, Y, Z, or T axis of the input arguments.
@@ -460,48 +442,23 @@ C variables for checking axis characteristics (modulo axes)
C Get coordinates of output axes.
- call ef_get_coordinates(id, ARG6, X_AXIS,
- . arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xax)
-
- call ef_get_coordinates(id, ARG7, Y_AXIS,
- . arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yax)
-
- call ef_get_coordinates(id, ARG8, T_AXIS,
- . arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), tax)
+ CALL EF_GET_BOX_LIMITS(id, ARG6, X_AXIS,
+ . arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xax(1,1,1,1), xax(1,2,1,1))
-* Set start, end, and delta for output axes.
+ CALL EF_GET_BOX_LIMITS(id, ARG7, Y_AXIS,
+ . arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yax(1,1,1,1), yax(1,2,1,1))
- x1 = xax(1,1,1,1)
- y1 = yax(1,1,1,1)
- t1 = tax(1,1,1,1)
+ CALL EF_GET_BOX_LIMITS(id, ARG8, T_AXIS,
+ . arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), tax(1,1,1,1), tax(1,2,1,1))
- xf = xax(nx,1,1,1)
- yf = yax(ny,1,1,1)
- tf = tax(nt,1,1,1)
+* Get first coordinates of output axes.
-* Gridbox sizes in data units
- dx = xf - x1
- IF (nx .GT. 1) dx = (xf-x1)/ REAL(nx-1)
- dy = yf - y1
- IF (ny .GT. 1) dy = (yf-y1)/ REAL(ny-1)
- dt = tf - t1
- IF (nt .GT. 1) dt = (tf-t1)/ REAL(nt-1)
-
- IF (nx .EQ. 1) THEN
- CALL ef_get_box_limits(id, ARG6, X_AXIS,
- . arg_lo_ss(X_AXIS, ARG6), arg_hi_ss(X_AXIS, ARG6), xax1,xaxf)
- dx = xaxf - xax1
- ENDIF
- IF (ny .EQ. 1) THEN
- CALL ef_get_box_limits(id, ARG7, Y_AXIS,
- . arg_lo_ss(Y_AXIS, ARG7), arg_hi_ss(Y_AXIS, ARG7), yax1,yaxf)
- dy = yaxf - yax1
- ENDIF
- IF (nt .EQ. 1) THEN
- CALL ef_get_box_limits(id, ARG8, T_AXIS,
- . arg_lo_ss(T_AXIS, ARG8), arg_hi_ss(T_AXIS, ARG8), tax1,taxf)
- tx = taxf - tax1
- ENDIF
+ call ef_get_coordinates(id, ARG6, X_AXIS,
+ . arg_lo_ss(X_AXIS, ARG6), arg_lo_ss(X_AXIS, ARG6), xax1)
+ call ef_get_coordinates(id, ARG7, X_AXIS,
+ . arg_lo_ss(Y_AXIS, ARG7), arg_lo_ss(Y_AXIS, ARG7), yax1)
+ x1 = xax1
+ y1 = yax1
* Compute result
@@ -599,7 +556,7 @@ C Get coordinates of output axes.
DO j = indx(2,1), indx(2,2)
DO i = indx(1,1), indx(1,2)
- IF (obs_cruise(i,j,2,L) .GT. 0.) THEN
+ IF (obs_cruise(i,j,2,L).GT.0. .AND. obs_cruise(i,j,3,L).GT.0.) THEN
wt_cruise_mean = obs_cruise(i,j,1,L)/obs_cruise(i,j,3,L)
@@ -653,7 +610,8 @@ C Get coordinates of output axes.
* Count and add up observations in each cell, in this cruise.
CALL nobsxytv_var (obs_only, xx, yy, tt, vv, nx, ny, nt,
- . x1, y1, t1, dx, dy, dt, xf, yf, tf, indx, obs_cruise)
+ . xax(1,1,1,1), xax(1,2,1,1), yax(1,1,1,1), yax(1,2,1,1),
+ . tax(1,1,1,1), tax(1,2,1,1), indx, obs_cruise)
300 CONTINUE
@@ -665,7 +623,7 @@ C Get coordinates of output axes.
DO j = indx(2,1), indx(2,2)
DO i = indx(1,1), indx(1,2)
- IF (obs_cruise(i,j,2,L) .GT. 0.) THEN
+ IF (obs_cruise(i,j,2,L).GT.0. .AND. obs_cruise(i,j,3,L).GT.0.) THEN
wt_cruise_mean = obs_cruise(i,j,1,L)/obs_cruise(i,j,3,L)
@@ -709,10 +667,10 @@ C Get coordinates of output axes.
IF (nc_cell .EQ. 0) THEN
result(i,j,k,l) = bad_flag_result
- result(i,j,2,l) = bad_flag_result
ELSE IF (nc_cell .EQ. 1) THEN
result(i,j,k,l) = 0.
- result(i,j,2,l) = wi_sums(i,j,1,L)
+ ELSE IF (wi_sums(i,j,1,l).LE.1.e-6) THEN
+ result(i,j,k,l) = bad_flag_result
* Compute sum of (cruise-cell-averages - weighted cell mean) squared\
@@ -815,61 +773,69 @@ c this version returns the cell variance in obs(ig,jg,3,Lg)
c i xx,yy,tt=x/y/t location of data pt (data units)
c i nx,ny,nt=size of grids
-c i x1,y1,L1=west/south/earliest edge of grid (center of 1st box in data units)
+c i xaxlo,xaxyi, etc bounds of destination grid cells
c o obs(nx,ny,nt) number of obs in each (x,y,t) gridbox
c--------------------------------------------------------------------------
SUBROUTINE nobsxytv_var (obs_only, xx, yy, tt, vv, nx, ny, nt,
- . x1, y1, t1, dx, dy, dt, xf, yf, tf, indx, obs)
+ . xaxlo,xaxhi, yaxlo,yaxhi, taxlo,taxhi, indx, obs)
* Argument declarations
INTEGER nx, ny, nt, obs_only, indx(4,2)
- REAL xx, yy, tt, vv, x1, y1, t1, dx, dy, dt, xf,
- . yf, tf, obs(nx,ny,3,nt)
+ REAL xx, yy, tt, vv,xaxlo(*), xaxhi(*), yaxlo(*), yaxhi(*),
+ . taxlo(*), taxhi(*), obs(nx,ny,3,nt)
* Local variable declarations
REAL xxg, yyg, ttg
- INTEGER ig, jg, Lg ! !!!!!!!!!!!!!!!!!!!!!!!! adding t dimension throughtout
-
- xxg = (xx-x1)/ dx + 1. ! grid values of data location
- yyg = (yy-y1)/ dy + 1.
- ttg = (tt-t1)/ dt + 1.
-
-c.................sum the value and count in each (x,y,t) gridbox
- ig = NINT(xxg)
- jg = NINT(yyg)
- Lg = NINT(ttg)
- IF (ig.LT.1 .OR. ig.GT.nx) RETURN
- IF (ig.LT.1 .OR. ig.GT.nx) RETURN
- IF (lg.LT.1 .OR. lg.GT.nt) RETURN
-
-* See below for def of algorithm, mean, delta, M2
-
- IF (obs_only .EQ. 0) THEN
- IF (ig.GE.1 .AND. ig.LE.nx .AND. jg.GE.1 .AND. jg.LE.ny .AND.
- . Lg.GE.1 .AND. Lg.LE.nt ) THEN
- obs(ig,jg,2,Lg) = obs(ig,jg,2,Lg) + 1. ! count
- delta = vv - obs(ig,jg,1,Lg)
- obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + delta/obs(ig,jg,2,Lg) ! current est of mean
- obs(ig,jg,3,Lg) = obs(ig,jg,3,Lg) - delta*(vv - obs(ig,jg,1,Lg)) !M2
- ENDIF
- ELSE
- IF (ig.GE.1 .AND. ig.LE.nx .AND. jg.GE.1 .AND. jg.LE.ny .AND.
- . Lg.GE.1 .AND. Lg.LE.nt ) THEN
- obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + 1.
- ENDIF
- ENDIF
+ INTEGER ig, jg, Lg
+
+
+ lg = 1
+ DO l = 1, nt
+ IF (tt.GE.taxlo(lg) .AND.
+ . tt.LT.taxhi(lg)) THEN
+ jg = 1
+ DO j = 1, ny
+ IF (yy.GE.yaxlo(jg) .AND.
+ . yy.LT.yaxhi(jg)) THEN
+ ig = 1
+ DO i = 1, nx
+ IF ( xx.GE.xaxlo(ig) .AND.
+ . xx.LT.xaxhi(ig)) THEN
+
+ IF (obs_only .EQ. 0) THEN
+ obs(ig,jg,2,Lg) = obs(ig,jg,2,Lg) + 1. ! count
+ delta = vv - obs(ig,jg,1,Lg)
+ obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) +
+ . delta/obs(ig,jg,2,Lg) ! current est of mean
+ obs(ig,jg,3,Lg) = obs(ig,jg,3,Lg) -
+ . delta*(vv - obs(ig,jg,1,Lg)) !M2
+ ELSE
+ obs(ig,jg,1,Lg) = obs(ig,jg,1,Lg) + 1.
+ ENDIF
* Store the min and max index used in this cruise
- indx(1,1) = MIN(indx(1,1), ig)
- indx(1,2) = MAX(indx(1,2), ig)
- indx(2,1) = MIN(indx(2,1), jg)
- indx(2,2) = MAX(indx(2,2), jg)
- indx(4,1) = MIN(indx(4,1), Lg)
- indx(4,2) = MAX(indx(4,2), Lg)
+ indx(1,1) = MIN(indx(1,1), ig)
+ indx(1,2) = MAX(indx(1,2), ig)
+ indx(2,1) = MIN(indx(2,1), jg)
+ indx(2,2) = MAX(indx(2,2), jg)
+ indx(4,1) = MIN(indx(4,1), Lg)
+ indx(4,2) = MAX(indx(4,2), Lg)
+ ENDIF !xx in grid box
+ ig = ig + 1
+ ENDDO ! nx
+
+ ENDIF !yy in grid box
+ jg = jg + 1
+ ENDDO ! ny
+
+ ENDIF !tt in grid box
+ lg = lg + 1
+ ENDDO ! nt
+
RETURN
END
diff --git a/external_functions/las/Makefile b/external_functions/las/Makefile
index ce16f7f..4a43db7 100644
--- a/external_functions/las/Makefile
+++ b/external_functions/las/Makefile
@@ -40,7 +40,7 @@ include ../ef_utility/platform_specific.mk.$(BUILDTYPE)
#
#all: write_webrow.so write_webrow_gwt.so list_value_xml.so
-all: write_webrow_gwt.so
+all: write_webrow_gwt.so lon_lat_time_string.so
debug:
$(MAKE) "FFLAGS = $(FFLAGS) $(FFLAGS_DEBUG)" "CFLAGS = $(CFLAGS) $(CFLAGS_DEBUG)" all
diff --git a/external_functions/las/lon_lat_time_string.F b/external_functions/las/lon_lat_time_string.F
new file mode 100644
index 0000000..a966554
--- /dev/null
+++ b/external_functions/las/lon_lat_time_string.F
@@ -0,0 +1,238 @@
+*
+* lon_lat_time_string.F
+*
+*
+* In this subroutine we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+* CUSTOM - user defined axis
+* IMPLIED_BY_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+*
+*
+* For each argument we provide the following information:
+*
+* name Text name for an argument
+*
+* unit Text units for an argument
+*
+* desc Text description of an argument
+*
+* axis_influence Are this argument's axes the same as the result grid?
+* ( YES, NO )
+*
+* axis_extend How much does Ferret need to extend arg limits relative to result
+*
+
+
+ SUBROUTINE lon_lat_time_string_init(id)
+
+ IMPLICIT NONE
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+
+ INTEGER id, arg
+
+ CALL ef_version_test(ef_version)
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ CALL ef_set_desc(id,
+ . 'Generate names based on longitude,latitude,time,and a string')
+ CALL ef_set_num_args(id, 5)
+ CALL ef_set_axis_inheritance(id,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+ CALL ef_set_result_type(id, STRING_RETURN)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'longitude')
+ CALL ef_set_arg_desc(id, arg, 'Station longitude')
+ CALL ef_set_axis_influence(id, arg, YES, YES, YES, YES)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'latitude')
+ CALL ef_set_arg_desc(id, arg, 'Station latitude')
+ CALL ef_set_axis_influence(id, arg, YES, YES, YES, YES)
+
+ arg = 3
+ CALL ef_set_arg_name(id, arg, 'time')
+ CALL ef_set_arg_desc(id, arg, 'numeric times')
+ CALL ef_set_axis_influence(id, arg, YES, YES, YES, YES)
+
+ arg = 4
+ CALL ef_set_arg_name(id, arg, 'time_axis')
+ CALL ef_set_arg_desc(id, arg,
+ . 'Varible with a time axis to use to convert time to time strings')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 5
+ CALL ef_set_arg_name(id, arg, 'string to prepend')
+ CALL ef_set_arg_type (id, arg, STRING_ARG)
+ CALL ef_set_arg_desc(id, arg, 'A label to start the names with')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+*
+* In this subroutine we compute the result
+*
+ SUBROUTINE lon_lat_time_string_compute(id, arg_1, arg_2, arg_3, arg_4,
+ . arg_5, result)
+
+ IMPLICIT NONE
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+ INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
+
+ INTEGER id
+
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+ . mem1lot:mem1hit)
+ REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+ . mem2lot:mem2hit)
+ REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz,
+ . mem3lot:mem3hit)
+ REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy, mem4loz:mem4hiz,
+ . mem4lot:mem4hit)
+ REAL arg_5(1,mem5lox:mem5hix, mem5loy:mem5hiy, mem5loz:mem5hiz,
+ . mem5lot:mem5hit)
+
+ REAL result(1,memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit)
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable's axes.
+
+ INTEGER res_lo_ss(4),
+ . res_hi_ss(4),
+ . res_incr (4)
+ INTEGER arg_lo_ss(4,EF_MAX_ARGS),
+ . arg_hi_ss(4,EF_MAX_ARGS),
+ . arg_incr (4,EF_MAX_ARGS)
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+ INTEGER TM_LENSTR
+ INTEGER i, j, k, l
+ INTEGER i1, j1, k1, l1
+ INTEGER slen,len1,len2,outlen,llen
+
+ CHARACTER*20 TM_FMT, datestring, lonstr, latstr, ilab
+ CHARACTER*256 lab, outstring
+ REAL ddate
+
+ 1100 FORMAT(i1)
+ 1200 FORMAT(i2.2)
+ 1300 FORMAT(i3.3)
+
+ CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+ IF (arg_hi_ss(X_AXIS,ARG1) .GE. 1000)
+ . CALL ef_bail_out(id,'Function for making lists size 999 or smaller')
+
+ CALL ef_get_arg_string(id, ARG5, lab)
+ slen = TM_LENSTR(lab)
+
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO 400 l=res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+ k1 = arg_lo_ss(Z_AXIS,ARG1)
+ DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 100 i=res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+ IF ( arg_1(i1,j1,k1,l1) .EQ. bad_flag(ARG1) .OR.
+ . arg_2(i1,j1,k1,l1) .EQ. bad_flag(ARG2) .OR.
+ . arg_3(i1,j1,k1,l1) .EQ. bad_flag(ARG3) ) THEN
+
+C Get the string value of dates and put them in the result.
+
+ outstring = '***'
+ CALL EF_PUT_STRING (outstring, 3, result(1,i,j,k,l))
+
+ ELSE
+
+ lonstr = TM_FMT(arg_1(i1,j1,k1,l1), 4, 5, len1)
+ latstr = TM_FMT(arg_2(i1,j1,k1,l1), 4, 5, len2)
+
+ ddate = arg_3(i1,j1,k1,l1)
+ CALL EF_GET_AXIS_DATES (id, ARG4, ddate, 1, datestring)
+ outstring = lab(:slen)//'_'//lonstr(:len1)//
+ . 'E_'//latstr(:len2) //'N_'//datestring(1:11)
+
+cc Just use a sequence number...
+cc
+cc IF (arg_hi_ss(X_AXIS,ARG1) .LT. 10) THEN
+cc WRITE (ilab, 1100) i1
+cc llen = 1
+cc ELSEIF (arg_hi_ss(X_AXIS,ARG1) .LT. 100) THEN
+cc WRITE (ilab, 1200) i1
+cc llen = 2
+cc ELSEIF (arg_hi_ss(X_AXIS,ARG1) .LT. 1000) THEN
+cc WRITE (ilab, 1300) i1
+cc llen = 3
+cc ENDIF
+cc outstring = lab(:slen)//'_'//ilab(:llen)
+
+ outlen = TM_LENSTR(outstring)
+ CALL EF_PUT_STRING (outstring, outlen, result(1,i,j,k,l))
+
+ ENDIF
+
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100 CONTINUE
+
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200 CONTINUE
+
+ k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ 300 CONTINUE
+
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400 CONTINUE
+
+
+ RETURN
+
+ 999 CALL EF_BAIL_OUT(id, 'Argument 2 is not a numeric string')
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
diff --git a/external_functions/zaxr/Makefile b/external_functions/zaxr/Makefile
index 1eec861..ebbac60 100644
--- a/external_functions/zaxr/Makefile
+++ b/external_functions/zaxr/Makefile
@@ -38,7 +38,7 @@ include ../ef_utility/platform_specific.mk.$(BUILDTYPE)
#
# all: zaxreplace_avg.so zaxreplace_bin.so zaxreplace_lin.so zaxreplace_zlev.so zaxreplace_rev.so
-all: zaxreplace_xyt.so zaxreplace_lin.so
+all: zaxreplace_xyt.so zaxreplace_lin.so eaxreplace_lin.so taxreplace_lin.so
debug:
$(MAKE) "FFLAGS = $(FFLAGS) $(FFLAGS_DEBUG)" "CFLAGS = $(CFLAGS) $(CFLAGS_DEBUG)" all
diff --git a/fer/ccr/EF_InternalUtil.c b/fer/ccr/EF_InternalUtil.c
index 56db464..f5e1867 100644
--- a/fer/ccr/EF_InternalUtil.c
+++ b/fer/ccr/EF_InternalUtil.c
@@ -91,6 +91,8 @@
* *kms* 3/12 Add E and F dimensions
* *acm* 6/14 New separate function for DSG files
* *acm* 9/14 Make DATE1900 accept an array of date strings, returning an array of coordinates
+* *acm* 2/15 TAX_DATESTRING works on an F or a T axis
+* *acm* 2/15 new Functions TIME_REFORMAT, FT_TO_ORTHOGONAL
*/
@@ -267,8 +269,7 @@ void FORTRAN(fft_re_init)(int *);
void FORTRAN(fft_re_custom_axes)(int *);
void FORTRAN(fft_re_result_limits)(int *);
void FORTRAN(fft_re_work_size)(int *);
-void FORTRAN(fft_re_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
- DFTYPE *, DFTYPE *, DFTYPE *);
+void FORTRAN(fft_re_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
void FORTRAN(sampleij_init)(int *);
void FORTRAN(sampleij_result_limits)(int *);
@@ -303,6 +304,14 @@ void FORTRAN(samplet_date_compute)(int *, DFTYPE *, DFTYPE *,
DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
DFTYPE *, DFTYPE *);
+void FORTRAN(samplef_date_init)(int *);
+void FORTRAN(samplef_date_result_limits)(int *);
+void FORTRAN(samplef_date_work_size)(int *);
+void FORTRAN(samplef_date_compute)(int *, DFTYPE *, DFTYPE *,
+ DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
+ DFTYPE *, DFTYPE *);
+
+
void FORTRAN(samplexy_init)(int *);
void FORTRAN(samplexy_result_limits)(int *);
void FORTRAN(samplexy_work_size)(int *);
@@ -641,6 +650,9 @@ void FORTRAN(curv_to_rect_map_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTY
void FORTRAN(curv_to_rect_init)(int *);
void FORTRAN(curv_to_rect_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
+void FORTRAN(curv_to_rect_fsu_init)(int *);
+void FORTRAN(curv_to_rect_fsu_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
+
void FORTRAN(rect_to_curv_init)(int *);
void FORTRAN(rect_to_curv_work_size)(int *);
void FORTRAN(rect_to_curv_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
@@ -913,23 +925,18 @@ void FORTRAN(nco_result_limits)(int *);
void FORTRAN(nco_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
void FORTRAN(tax_datestring_init)(int *);
-void FORTRAN(tax_datestring_work_size)(int *);
void FORTRAN(tax_datestring_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
void FORTRAN(tax_day_init)(int *);
-void FORTRAN(tax_day_work_size)(int *);
void FORTRAN(tax_day_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
void FORTRAN(tax_dayfrac_init)(int *);
-void FORTRAN(tax_dayfrac_work_size)(int *);
void FORTRAN(tax_dayfrac_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
void FORTRAN(tax_jday1900_init)(int *);
-void FORTRAN(tax_jday1900_work_size)(int *);
void FORTRAN(tax_jday1900_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
void FORTRAN(tax_jday_init)(int *);
-void FORTRAN(tax_jday_work_size)(int *);
void FORTRAN(tax_jday_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
void FORTRAN(tax_month_init)(int *);
@@ -947,11 +954,9 @@ void FORTRAN(tax_units_init)(int *);
void FORTRAN(tax_units_compute)(int *, DFTYPE *, DFTYPE*);
void FORTRAN(tax_year_init)(int *);
-void FORTRAN(tax_year_work_size)(int *);
void FORTRAN(tax_year_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
void FORTRAN(tax_yearfrac_init)(int *);
-void FORTRAN(tax_yearfrac_work_size)(int *);
void FORTRAN(tax_yearfrac_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
void FORTRAN(fill_xy_init)(int *);
@@ -1014,6 +1019,9 @@ void FORTRAN(list_value_xml_init)(int *);
void FORTRAN(list_value_xml_result_limits)(int *);
void FORTRAN(list_value_xml_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+void FORTRAN(lon_lat_time_string_init)(int *);
+void FORTRAN(lon_lat_time_string_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, char *);
+
void FORTRAN(write_webrow_init)(int *);
void FORTRAN(write_webrow_result_limits)(int *);
void FORTRAN(write_webrow_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
@@ -1025,6 +1033,35 @@ void FORTRAN(separate_init)(int *);
void FORTRAN(separate_result_limits)(int *);
void FORTRAN(separate_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+void FORTRAN(time_reformat_init)(int *);
+void FORTRAN(time_reformat_compute)(int *, char *);
+
+void FORTRAN(ft_to_orthogonal_init)(int *);
+void FORTRAN(ft_to_orthogonal_work_size)(int *);
+void FORTRAN(ft_to_orthogonal_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(separate_str_init)(int *);
+void FORTRAN(separate_str_result_limits)(int *);
+void FORTRAN(separate_str_compute)(int *, char *, DFTYPE *, DFTYPE *, char *);
+
+void FORTRAN(sample_fast_i_init)(int *);
+void FORTRAN(sample_fast_i_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(sample_fast_i_str_init)(int *);
+void FORTRAN(sample_fast_i_str_compute)(int *, char *, DFTYPE *, char *);
+
+void FORTRAN(piecewise3_init)(int *);
+void FORTRAN(piecewise3_result_limits)(int *);
+void FORTRAN(piecewise3_work_size)(int *);
+void FORTRAN(piecewise3_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
+ DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *,
+ DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(write_webrow_gwt_init)(int *);
+void FORTRAN(write_webrow_gwt_result_limits)(int *);
+void FORTRAN(write_webrow_gwt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+
/*
* End of declarations for internally linked external functions
* ------------------------------------ */
@@ -1043,7 +1080,7 @@ void FORTRAN(separate_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
/*
* Find all of the ~.so files in directories listed in the
- * FER_EXTERNAL_FUNCTIONS environment variable and add all
+ * PYFER_EXTERNAL_FUNCTIONS environment variable and add all
* the names and associated directory information to the
* STATIC_ExternalFunctionList.
*/
@@ -1066,7 +1103,7 @@ int FORTRAN(efcn_scan)( int *gfcn_num_internal )
* int_dlsym.pl. Check that N_INTEF is correctly defined below.
*/
-#define N_INTEF 164
+#define N_INTEF 174
struct {
char funcname[EF_MAX_NAME_LENGTH];
@@ -1127,115 +1164,125 @@ struct {
strcpy(I_EFnames[52].funcname, "labwid");
strcpy(I_EFnames[53].funcname, "lanczos");
strcpy(I_EFnames[54].funcname, "list_value_xml");
- strcpy(I_EFnames[55].funcname, "lsl_lowpass");
- strcpy(I_EFnames[56].funcname, "minmax");
- strcpy(I_EFnames[57].funcname, "minutes24");
- strcpy(I_EFnames[58].funcname, "nco");
- strcpy(I_EFnames[59].funcname, "nco_attr");
- strcpy(I_EFnames[60].funcname, "pt_in_poly");
- strcpy(I_EFnames[61].funcname, "rect_to_curv");
- strcpy(I_EFnames[62].funcname, "sampleij");
- strcpy(I_EFnames[63].funcname, "samplei_multi");
- strcpy(I_EFnames[64].funcname, "samplej_multi");
- strcpy(I_EFnames[65].funcname, "samplek_multi");
- strcpy(I_EFnames[66].funcname, "samplel_multi");
- strcpy(I_EFnames[67].funcname, "samplet_date");
- strcpy(I_EFnames[68].funcname, "samplexy");
- strcpy(I_EFnames[69].funcname, "samplexy_closest");
- strcpy(I_EFnames[70].funcname, "samplexy_curv");
- strcpy(I_EFnames[71].funcname, "samplexy_curv_avg");
- strcpy(I_EFnames[72].funcname, "samplexy_curv_nrst");
- strcpy(I_EFnames[73].funcname, "samplexyt");
- strcpy(I_EFnames[74].funcname, "samplexz");
- strcpy(I_EFnames[75].funcname, "sampleyz");
- strcpy(I_EFnames[76].funcname, "scat2ddups");
- strcpy(I_EFnames[77].funcname, "scat2grid_bin_xy");
- strcpy(I_EFnames[78].funcname, "scat2grid_bin_xyt");
- strcpy(I_EFnames[79].funcname, "scat2gridgauss_xt");
- strcpy(I_EFnames[80].funcname, "scat2gridgauss_xt_v0");
- strcpy(I_EFnames[81].funcname, "scat2gridgauss_xy");
- strcpy(I_EFnames[82].funcname, "scat2gridgauss_xy_v0");
- strcpy(I_EFnames[83].funcname, "scat2gridgauss_xz");
- strcpy(I_EFnames[84].funcname, "scat2gridgauss_xz_v0");
- strcpy(I_EFnames[85].funcname, "scat2gridgauss_yt");
- strcpy(I_EFnames[86].funcname, "scat2gridgauss_yt_v0");
- strcpy(I_EFnames[87].funcname, "scat2gridgauss_yz");
- strcpy(I_EFnames[88].funcname, "scat2gridgauss_yz_v0");
- strcpy(I_EFnames[89].funcname, "scat2gridgauss_zt");
- strcpy(I_EFnames[90].funcname, "scat2gridgauss_zt_v0");
- strcpy(I_EFnames[91].funcname, "scat2gridlaplace_xt");
- strcpy(I_EFnames[92].funcname, "scat2gridlaplace_xy");
- strcpy(I_EFnames[93].funcname, "scat2gridlaplace_xz");
- strcpy(I_EFnames[94].funcname, "scat2gridlaplace_yt");
- strcpy(I_EFnames[95].funcname, "scat2gridlaplace_yz");
- strcpy(I_EFnames[96].funcname, "scat2gridlaplace_zt");
- strcpy(I_EFnames[97].funcname, "scat2grid_nbin_xy");
- strcpy(I_EFnames[98].funcname, "scat2grid_nbin_xyt");
- strcpy(I_EFnames[99].funcname, "scat2grid_nobs_xy");
- strcpy(I_EFnames[100].funcname, "scat2grid_nobs_xyt");
- strcpy(I_EFnames[101].funcname, "scat2grid_t");
- strcpy(I_EFnames[102].funcname, "sorti");
- strcpy(I_EFnames[103].funcname, "sorti_str");
- strcpy(I_EFnames[104].funcname, "sortj");
- strcpy(I_EFnames[105].funcname, "sortj_str");
- strcpy(I_EFnames[106].funcname, "sortk");
- strcpy(I_EFnames[107].funcname, "sortk_str");
- strcpy(I_EFnames[108].funcname, "sortl");
- strcpy(I_EFnames[109].funcname, "sortl_str");
- strcpy(I_EFnames[110].funcname, "sortm");
- strcpy(I_EFnames[111].funcname, "sortm_str");
- strcpy(I_EFnames[112].funcname, "sortn");
- strcpy(I_EFnames[113].funcname, "sortn_str");
- strcpy(I_EFnames[114].funcname, "tauto_cor");
- strcpy(I_EFnames[115].funcname, "tax_datestring");
- strcpy(I_EFnames[116].funcname, "tax_day");
- strcpy(I_EFnames[117].funcname, "tax_dayfrac");
- strcpy(I_EFnames[118].funcname, "tax_jday");
- strcpy(I_EFnames[119].funcname, "tax_jday1900");
- strcpy(I_EFnames[120].funcname, "tax_month");
- strcpy(I_EFnames[121].funcname, "tax_times");
- strcpy(I_EFnames[122].funcname, "tax_tstep");
- strcpy(I_EFnames[123].funcname, "tax_units");
- strcpy(I_EFnames[124].funcname, "tax_year");
- strcpy(I_EFnames[125].funcname, "tax_yearfrac");
- strcpy(I_EFnames[126].funcname, "tcat");
- strcpy(I_EFnames[127].funcname, "tcat_str");
- strcpy(I_EFnames[128].funcname, "test_opendap");
- strcpy(I_EFnames[129].funcname, "transpose_xt");
- strcpy(I_EFnames[130].funcname, "transpose_xy");
- strcpy(I_EFnames[131].funcname, "transpose_xz");
- strcpy(I_EFnames[132].funcname, "transpose_yt");
- strcpy(I_EFnames[133].funcname, "transpose_yz");
- strcpy(I_EFnames[134].funcname, "transpose_zt");
- strcpy(I_EFnames[135].funcname, "treverse");
- strcpy(I_EFnames[136].funcname, "unique_str2int");
- strcpy(I_EFnames[137].funcname, "write_webrow");
- strcpy(I_EFnames[138].funcname, "xauto_cor");
- strcpy(I_EFnames[139].funcname, "xcat");
- strcpy(I_EFnames[140].funcname, "xcat_str");
- strcpy(I_EFnames[141].funcname, "xreverse");
- strcpy(I_EFnames[142].funcname, "ycat");
- strcpy(I_EFnames[143].funcname, "ycat_str");
- strcpy(I_EFnames[144].funcname, "yreverse");
- strcpy(I_EFnames[145].funcname, "zaxreplace_avg");
- strcpy(I_EFnames[146].funcname, "zaxreplace_bin");
- strcpy(I_EFnames[147].funcname, "zaxreplace_rev");
- strcpy(I_EFnames[148].funcname, "zaxreplace_zlev");
- strcpy(I_EFnames[149].funcname, "zcat");
- strcpy(I_EFnames[150].funcname, "zcat_str");
- strcpy(I_EFnames[151].funcname, "zreverse");
- strcpy(I_EFnames[152].funcname, "eofsvd_space");
- strcpy(I_EFnames[153].funcname, "eofsvd_stat");
- strcpy(I_EFnames[154].funcname, "eofsvd_tfunc");
- strcpy(I_EFnames[155].funcname, "expnd_by_len");
- strcpy(I_EFnames[156].funcname, "expnd_by_len_str");
- strcpy(I_EFnames[157].funcname, "fc_isubset");
- strcpy(I_EFnames[158].funcname, "expndi_by_z_counts");
- strcpy(I_EFnames[159].funcname, "expndi_id_by_z_counts");
- strcpy(I_EFnames[160].funcname, "expndi_by_m_counts");
- strcpy(I_EFnames[161].funcname, "str_mask");
- strcpy(I_EFnames[162].funcname, "samplexyt_nrst");
- strcpy(I_EFnames[163].funcname, "separate");
+ strcpy(I_EFnames[55].funcname, "lon_lat_time_string");
+ strcpy(I_EFnames[56].funcname, "lsl_lowpass");
+ strcpy(I_EFnames[57].funcname, "minmax");
+ strcpy(I_EFnames[58].funcname, "minutes24");
+ strcpy(I_EFnames[59].funcname, "nco");
+ strcpy(I_EFnames[60].funcname, "nco_attr");
+ strcpy(I_EFnames[61].funcname, "pt_in_poly");
+ strcpy(I_EFnames[62].funcname, "rect_to_curv");
+ strcpy(I_EFnames[63].funcname, "sampleij");
+ strcpy(I_EFnames[64].funcname, "samplei_multi");
+ strcpy(I_EFnames[65].funcname, "samplej_multi");
+ strcpy(I_EFnames[66].funcname, "samplek_multi");
+ strcpy(I_EFnames[67].funcname, "samplel_multi");
+ strcpy(I_EFnames[68].funcname, "samplef_date");
+ strcpy(I_EFnames[69].funcname, "samplet_date");
+ strcpy(I_EFnames[70].funcname, "samplexy");
+ strcpy(I_EFnames[71].funcname, "samplexy_closest");
+ strcpy(I_EFnames[72].funcname, "samplexy_curv");
+ strcpy(I_EFnames[73].funcname, "samplexy_curv_avg");
+ strcpy(I_EFnames[74].funcname, "samplexy_curv_nrst");
+ strcpy(I_EFnames[75].funcname, "samplexyt");
+ strcpy(I_EFnames[76].funcname, "samplexz");
+ strcpy(I_EFnames[77].funcname, "sampleyz");
+ strcpy(I_EFnames[78].funcname, "scat2ddups");
+ strcpy(I_EFnames[79].funcname, "scat2grid_bin_xy");
+ strcpy(I_EFnames[80].funcname, "scat2grid_bin_xyt");
+ strcpy(I_EFnames[81].funcname, "scat2gridgauss_xt");
+ strcpy(I_EFnames[82].funcname, "scat2gridgauss_xt_v0");
+ strcpy(I_EFnames[83].funcname, "scat2gridgauss_xy");
+ strcpy(I_EFnames[84].funcname, "scat2gridgauss_xy_v0");
+ strcpy(I_EFnames[85].funcname, "scat2gridgauss_xz");
+ strcpy(I_EFnames[86].funcname, "scat2gridgauss_xz_v0");
+ strcpy(I_EFnames[87].funcname, "scat2gridgauss_yt");
+ strcpy(I_EFnames[88].funcname, "scat2gridgauss_yt_v0");
+ strcpy(I_EFnames[89].funcname, "scat2gridgauss_yz");
+ strcpy(I_EFnames[90].funcname, "scat2gridgauss_yz_v0");
+ strcpy(I_EFnames[91].funcname, "scat2gridgauss_zt");
+ strcpy(I_EFnames[92].funcname, "scat2gridgauss_zt_v0");
+ strcpy(I_EFnames[93].funcname, "scat2gridlaplace_xt");
+ strcpy(I_EFnames[94].funcname, "scat2gridlaplace_xy");
+ strcpy(I_EFnames[95].funcname, "scat2gridlaplace_xz");
+ strcpy(I_EFnames[96].funcname, "scat2gridlaplace_yt");
+ strcpy(I_EFnames[97].funcname, "scat2gridlaplace_yz");
+ strcpy(I_EFnames[98].funcname, "scat2gridlaplace_zt");
+ strcpy(I_EFnames[99].funcname, "scat2grid_nbin_xy");
+ strcpy(I_EFnames[100].funcname, "scat2grid_nbin_xyt");
+ strcpy(I_EFnames[101].funcname, "scat2grid_nobs_xy");
+ strcpy(I_EFnames[102].funcname, "scat2grid_nobs_xyt");
+ strcpy(I_EFnames[103].funcname, "scat2grid_t");
+ strcpy(I_EFnames[104].funcname, "sorti");
+ strcpy(I_EFnames[105].funcname, "sorti_str");
+ strcpy(I_EFnames[106].funcname, "sortj");
+ strcpy(I_EFnames[107].funcname, "sortj_str");
+ strcpy(I_EFnames[108].funcname, "sortk");
+ strcpy(I_EFnames[109].funcname, "sortk_str");
+ strcpy(I_EFnames[110].funcname, "sortl");
+ strcpy(I_EFnames[111].funcname, "sortl_str");
+ strcpy(I_EFnames[112].funcname, "sortm");
+ strcpy(I_EFnames[113].funcname, "sortm_str");
+ strcpy(I_EFnames[114].funcname, "sortn");
+ strcpy(I_EFnames[115].funcname, "sortn_str");
+ strcpy(I_EFnames[116].funcname, "tauto_cor");
+ strcpy(I_EFnames[117].funcname, "tax_datestring");
+ strcpy(I_EFnames[118].funcname, "tax_day");
+ strcpy(I_EFnames[119].funcname, "tax_dayfrac");
+ strcpy(I_EFnames[120].funcname, "tax_jday");
+ strcpy(I_EFnames[121].funcname, "tax_jday1900");
+ strcpy(I_EFnames[122].funcname, "tax_month");
+ strcpy(I_EFnames[123].funcname, "tax_times");
+ strcpy(I_EFnames[124].funcname, "tax_tstep");
+ strcpy(I_EFnames[125].funcname, "tax_units");
+ strcpy(I_EFnames[126].funcname, "tax_year");
+ strcpy(I_EFnames[127].funcname, "tax_yearfrac");
+ strcpy(I_EFnames[128].funcname, "tcat");
+ strcpy(I_EFnames[129].funcname, "tcat_str");
+ strcpy(I_EFnames[130].funcname, "test_opendap");
+ strcpy(I_EFnames[131].funcname, "transpose_xt");
+ strcpy(I_EFnames[132].funcname, "transpose_xy");
+ strcpy(I_EFnames[133].funcname, "transpose_xz");
+ strcpy(I_EFnames[134].funcname, "transpose_yt");
+ strcpy(I_EFnames[135].funcname, "transpose_yz");
+ strcpy(I_EFnames[136].funcname, "transpose_zt");
+ strcpy(I_EFnames[137].funcname, "treverse");
+ strcpy(I_EFnames[138].funcname, "unique_str2int");
+ strcpy(I_EFnames[139].funcname, "write_webrow");
+ strcpy(I_EFnames[140].funcname, "xauto_cor");
+ strcpy(I_EFnames[141].funcname, "xcat");
+ strcpy(I_EFnames[142].funcname, "xcat_str");
+ strcpy(I_EFnames[143].funcname, "xreverse");
+ strcpy(I_EFnames[144].funcname, "ycat");
+ strcpy(I_EFnames[145].funcname, "ycat_str");
+ strcpy(I_EFnames[146].funcname, "yreverse");
+ strcpy(I_EFnames[147].funcname, "zaxreplace_avg");
+ strcpy(I_EFnames[148].funcname, "zaxreplace_bin");
+ strcpy(I_EFnames[149].funcname, "zaxreplace_rev");
+ strcpy(I_EFnames[150].funcname, "zaxreplace_zlev");
+ strcpy(I_EFnames[151].funcname, "zcat");
+ strcpy(I_EFnames[152].funcname, "zcat_str");
+ strcpy(I_EFnames[153].funcname, "zreverse");
+ strcpy(I_EFnames[154].funcname, "eofsvd_space");
+ strcpy(I_EFnames[155].funcname, "eofsvd_stat");
+ strcpy(I_EFnames[156].funcname, "eofsvd_tfunc");
+ strcpy(I_EFnames[157].funcname, "expnd_by_len");
+ strcpy(I_EFnames[158].funcname, "expnd_by_len_str");
+ strcpy(I_EFnames[159].funcname, "fc_isubset");
+ strcpy(I_EFnames[160].funcname, "expndi_by_z_counts");
+ strcpy(I_EFnames[161].funcname, "expndi_id_by_z_counts");
+ strcpy(I_EFnames[162].funcname, "expndi_by_m_counts");
+ strcpy(I_EFnames[163].funcname, "str_mask");
+ strcpy(I_EFnames[164].funcname, "samplexyt_nrst");
+ strcpy(I_EFnames[165].funcname, "separate");
+ strcpy(I_EFnames[166].funcname, "time_reformat");
+ strcpy(I_EFnames[167].funcname, "ft_to_orthogonal");
+ strcpy(I_EFnames[168].funcname, "curv_to_rect_fsu");
+ strcpy(I_EFnames[169].funcname, "piecewise3");
+ strcpy(I_EFnames[170].funcname, "sample_fast_i");
+ strcpy(I_EFnames[171].funcname, "sample_fast_i_str");
+ strcpy(I_EFnames[172].funcname, "separate_str");
+ strcpy(I_EFnames[173].funcname, "write_webrow_gwt");
/*
* ------------------------------------
@@ -1310,7 +1357,7 @@ struct {
}
/*
- * - Get all the paths from the "FER_EXTERNAL_FUNCTIONS" environment variable.
+ * - Get all the paths from the "PYFER_EXTERNAL_FUNCTIONS" environment variable.
*
* - While there is another path:
* - get the path;
@@ -1319,15 +1366,15 @@ struct {
*
*/
- if ( !getenv("FER_EXTERNAL_FUNCTIONS") ) {
+ if ( !getenv("PYFER_EXTERNAL_FUNCTIONS") ) {
if ( !I_have_warned_already ) {
fprintf(stderr, "\n"
- "WARNING: environment variable FER_EXTERNAL_FUNCTIONS not defined.\n\n");
+ "WARNING: environment variable PYFER_EXTERNAL_FUNCTIONS not defined.\n\n");
I_have_warned_already = TRUE;
}
/* *kob* v5.32 - the return val was set to 0 below but that was wrong.
That didn't take into account that on any system, the
- FER_EXTERNAL_FUNCTIONS env variable might not be set. If that were the
+ PYFER_EXTERNAL_FUNCTIONS env variable might not be set. If that were the
case, a core dump occurred on all systems. Set return_val to count,
which was generated above - also have to note that the ef's
have been scanned*/
@@ -1336,16 +1383,16 @@ struct {
return return_val;
}
- sprintf(paths, "%s", getenv("FER_EXTERNAL_FUNCTIONS"));
-
+ strncpy(paths, getenv("PYFER_EXTERNAL_FUNCTIONS"), 8192);
path_ptr = strtok(paths, " \t");
-
if ( path_ptr == NULL ) {
-
- fprintf(stderr, "\n"
- "WARNING:No paths were found in the environment variable FER_EXTERNAL_FUNCTIONS.\n\n");
-
- return_val = 0;
+ if ( !I_have_warned_already ) {
+ fprintf(stderr, "\n"
+ "WARNING:No paths were found in the environment variable PYFER_EXTERNAL_FUNCTIONS.\n\n");
+ I_have_warned_already = TRUE;
+ }
+ return_val = count;
+ I_have_scanned_already = TRUE;
return return_val;
} else {
@@ -3420,6 +3467,12 @@ else if ( !strcmp(name,"samplet_date_result_limits_") ) return (void *)FORTRAN(s
else if ( !strcmp(name,"samplet_date_work_size_") ) return (void *)FORTRAN(samplet_date_work_size);
else if ( !strcmp(name,"samplet_date_compute_") ) return (void *)FORTRAN(samplet_date_compute);
+/* samplef_date.F */
+else if ( !strcmp(name,"samplef_date_init_") ) return (void *)FORTRAN(samplef_date_init);
+else if ( !strcmp(name,"samplef_date_result_limits_") ) return (void *)FORTRAN(samplef_date_result_limits);
+else if ( !strcmp(name,"samplef_date_work_size_") ) return (void *)FORTRAN(samplef_date_work_size);
+else if ( !strcmp(name,"samplef_date_compute_") ) return (void *)FORTRAN(samplef_date_compute);
+
/* samplexy.F */
else if ( !strcmp(name,"samplexy_init_") ) return (void *)FORTRAN(samplexy_init);
else if ( !strcmp(name,"samplexy_result_limits_") ) return (void *)FORTRAN(samplexy_result_limits);
@@ -3817,6 +3870,10 @@ else if ( !strcmp(name,"curv_to_rect_map_compute_") ) return (void *)FORTRAN(cur
else if ( !strcmp(name,"curv_to_rect_init_") ) return (void *)FORTRAN(curv_to_rect_init);
else if ( !strcmp(name,"curv_to_rect_compute_") ) return (void *)FORTRAN(curv_to_rect_compute);
+/* curv_to_rect_fsu.F */
+else if ( !strcmp(name,"curv_to_rect_fsu_init_") ) return (void *)FORTRAN(curv_to_rect_fsu_init);
+else if ( !strcmp(name,"curv_to_rect_fsu_compute_") ) return (void *)FORTRAN(curv_to_rect_fsu_compute);
+
/* rect_to_curv.F */
else if ( !strcmp(name,"rect_to_curv_init_") ) return (void *)FORTRAN(rect_to_curv_init);
else if ( !strcmp(name,"rect_to_curv_work_size_") ) return (void *)FORTRAN(rect_to_curv_work_size);
@@ -4096,25 +4153,19 @@ else if ( !strcmp(name,"nco_attr_init_") ) return (void *)FORTRAN(nco_attr_init)
else if ( !strcmp(name,"nco_attr_result_limits_") ) return (void *)FORTRAN(nco_attr_result_limits);
else if ( !strcmp(name,"nco_attr_compute_") ) return (void *)FORTRAN(nco_attr_compute);
-
else if ( !strcmp(name,"tax_datestring_init_") ) return (void *)FORTRAN(tax_datestring_init);
-else if ( !strcmp(name,"tax_datestring_work_size_") ) return (void *)FORTRAN(tax_datestring_work_size);
else if ( !strcmp(name,"tax_datestring_compute_") ) return (void *)FORTRAN(tax_datestring_compute);
else if ( !strcmp(name,"tax_day_init_") ) return (void *)FORTRAN(tax_day_init);
-else if ( !strcmp(name,"tax_day_work_size_") ) return (void *)FORTRAN(tax_day_work_size);
else if ( !strcmp(name,"tax_day_compute_") ) return (void *)FORTRAN(tax_day_compute);
else if ( !strcmp(name,"tax_dayfrac_init_") ) return (void *)FORTRAN(tax_dayfrac_init);
-else if ( !strcmp(name,"tax_dayfrac_work_size_") ) return (void *)FORTRAN(tax_dayfrac_work_size);
else if ( !strcmp(name,"tax_dayfrac_compute_") ) return (void *)FORTRAN(tax_dayfrac_compute);
else if ( !strcmp(name,"tax_jday1900_init_") ) return (void *)FORTRAN(tax_jday1900_init);
-else if ( !strcmp(name,"tax_jday1900_work_size_") ) return (void *)FORTRAN(tax_jday1900_work_size);
else if ( !strcmp(name,"tax_jday1900_compute_") ) return (void *)FORTRAN(tax_jday1900_compute);
else if ( !strcmp(name,"tax_jday_init_") ) return (void *)FORTRAN(tax_jday_init);
-else if ( !strcmp(name,"tax_jday_work_size_") ) return (void *)FORTRAN(tax_jday_work_size);
else if ( !strcmp(name,"tax_jday_compute_") ) return (void *)FORTRAN(tax_jday_compute);
else if ( !strcmp(name,"tax_month_init_") ) return (void *)FORTRAN(tax_month_init);
@@ -4132,11 +4183,9 @@ else if ( !strcmp(name,"tax_units_init_") ) return (void *)FORTRAN(tax_units_ini
else if ( !strcmp(name,"tax_units_compute_") ) return (void *)FORTRAN(tax_units_compute);
else if ( !strcmp(name,"tax_year_init_") ) return (void *)FORTRAN(tax_year_init);
-else if ( !strcmp(name,"tax_year_work_size_") ) return (void *)FORTRAN(tax_year_work_size);
else if ( !strcmp(name,"tax_year_compute_") ) return (void *)FORTRAN(tax_year_compute);
else if ( !strcmp(name,"tax_yearfrac_init_") ) return (void *)FORTRAN(tax_yearfrac_init);
-else if ( !strcmp(name,"tax_yearfrac_work_size_") ) return (void *)FORTRAN(tax_yearfrac_work_size);
else if ( !strcmp(name,"tax_yearfrac_compute_") ) return (void *)FORTRAN(tax_yearfrac_compute);
else if ( !strcmp(name,"fill_xy_init_") ) return (void *)FORTRAN(fill_xy_init);
@@ -4168,6 +4217,9 @@ else if ( !strcmp(name,"list_value_xml_init_") ) return (void *)FORTRAN(list_val
else if ( !strcmp(name,"list_value_xml_result_limits_") ) return (void *)FORTRAN(list_value_xml_result_limits);
else if ( !strcmp(name,"list_value_xml_compute_") ) return (void *)FORTRAN(list_value_xml_compute);
+else if ( !strcmp(name,"lon_lat_time_string_init_") ) return (void *)FORTRAN(lon_lat_time_string_init);
+else if ( !strcmp(name,"lon_lat_time_string_compute_") ) return (void *)FORTRAN(lon_lat_time_string_compute);
+
else if ( !strcmp(name,"write_webrow_init_") ) return (void *)FORTRAN(write_webrow_init);
else if ( !strcmp(name,"write_webrow_result_limits_") ) return (void *)FORTRAN(write_webrow_result_limits);
else if ( !strcmp(name,"write_webrow_compute_") ) return (void *)FORTRAN(write_webrow_compute);
@@ -4179,7 +4231,31 @@ else if ( !strcmp(name,"separate_init_") ) return (void *)FORTRAN(separate_init)
else if ( !strcmp(name,"separate_result_limits_") ) return (void *)FORTRAN(separate_result_limits);
else if ( !strcmp(name,"separate_compute_") ) return (void *)FORTRAN(separate_compute);
+else if ( !strcmp(name,"separate_str_init_") ) return (void *)FORTRAN(separate_str_init);
+else if ( !strcmp(name,"separate_str_result_limits_") ) return (void *)FORTRAN(separate_str_result_limits);
+else if ( !strcmp(name,"separate_str_compute_") ) return (void *)FORTRAN(separate_str_compute);
+
+else if ( !strcmp(name,"time_reformat_init_") ) return (void *)FORTRAN(time_reformat_init);
+else if ( !strcmp(name,"time_reformat_compute_") ) return (void *)FORTRAN(time_reformat_compute);
+
+else if ( !strcmp(name,"ft_to_orthogonal_init_") ) return (void *)FORTRAN(ft_to_orthogonal_init);
+else if ( !strcmp(name,"ft_to_orthogonal_work_size_") ) return (void *)FORTRAN(ft_to_orthogonal_work_size);
+else if ( !strcmp(name,"ft_to_orthogonal_compute_") ) return (void *)FORTRAN(ft_to_orthogonal_compute);
+
+else if ( !strcmp(name,"piecewise3_init_") ) return (void *)FORTRAN(piecewise3_init);
+else if ( !strcmp(name,"piecewise3_result_limits_") ) return (void *)FORTRAN(piecewise3_result_limits);
+else if ( !strcmp(name,"piecewise3_work_size_") ) return (void *)FORTRAN(piecewise3_work_size);
+else if ( !strcmp(name,"piecewise3_compute_") ) return (void *)FORTRAN(piecewise3_compute);
+
+else if ( !strcmp(name,"sample_fast_i_init_") ) return (void *)FORTRAN(sample_fast_i_init);
+else if ( !strcmp(name,"sample_fast_i_compute_") ) return (void *)FORTRAN(sample_fast_i_compute);
+
+else if ( !strcmp(name,"sample_fast_i_str_init_") ) return (void *)FORTRAN(sample_fast_i_str_init);
+else if ( !strcmp(name,"sample_fast_i_str_compute_") ) return (void *)FORTRAN(sample_fast_i_str_compute);
+else if ( !strcmp(name,"write_webrow_gwt_init_") ) return (void *)FORTRAN(write_webrow_gwt_init);
+else if ( !strcmp(name,"write_webrow_gwt_result_limits_") ) return (void *)FORTRAN(write_webrow_gwt_result_limits);
+else if ( !strcmp(name,"write_webrow_gwt_compute_") ) return (void *)FORTRAN(write_webrow_gwt_compute);
return NULL;
}
diff --git a/fer/ccr/SOURCE_FILES b/fer/ccr/SOURCE_FILES
index 61463f7..4848330 100644
--- a/fer/ccr/SOURCE_FILES
+++ b/fer/ccr/SOURCE_FILES
@@ -11,13 +11,16 @@ c_strrindex.c\
c_strcat.c\
c_substr.c\
c_strfloat.c\
+cache_full_array.c\
check_nan_data_sub.c\
compare_c_strings.c\
copy_c_string.c\
+create_utf8_string.c\
perl_read.c\
EF_InternalUtil.c\
ferret_dispatch_c.c\
ferret_query.c\
+free_cached_full_array.c\
free_c_pointer.c\
free_c_string_array.c\
get_c_string.c\
@@ -29,6 +32,7 @@ get_sys_cmnd.c\
init_c_string_array.c\
linux_routines_c.c\
list.c\
+recover_cached_full_array.c\
replaceable_bad_flags.c \
replace_bad_data_sub.c \
run_thredds_browser.c\
@@ -38,5 +42,6 @@ set_nan.c\
set_null_c_string.c\
set_null_c_string_array.c\
sizeof_pointer.c\
+text_to_utf8.c\
write_dods.c\
xfer_c_ptrs.c
diff --git a/fmt/src/tm_switch_nan.c b/fer/ccr/cache_full_array.c
similarity index 71%
copy from fmt/src/tm_switch_nan.c
copy to fer/ccr/cache_full_array.c
index e3c75e8..49ada13 100644
--- a/fmt/src/tm_switch_nan.c
+++ b/fer/ccr/cache_full_array.c
@@ -34,33 +34,43 @@
*
*/
-#include <Python.h> /* make sure Python.h is first */
-#include <math.h>
-#include "ferretmacros.h"
-#define bad_val4 1.0e-34
-/* tm_switch_nan :
- * check for a missing or bad value flag of NaN. if either flag is Nan, */
-/* then make sure it's ds_missing_flag and if both are NaN, make sure to */
-/* set ds_bad_flag to bad_val4 */
+/*
+ * cache_full_array.c
+ *
+ * Allocate c heap storage and copy array to it, returning pointer
+ * This storage mechanism will be used for CF auxiliary coordinate arrays,
+ * in order to minimize the need to re-read them
+ *
+ * programmer - steve hankin
+ * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+ *
+ * revision 0.0 - 5/5/15
+ */
+
+#include <stdlib.h>
+#include "ferret.h"
+
+void FORTRAN(cache_full_array)( double *array, int *alen, double **pointer_val )
-/* *kob* - 2/18/99 */
-/* *acm* 1/12 - Ferret 6.8 ifdef double_p for double-precision ferret, see the
-* definition of macro DFTYPE in ferretmacros.h.
+/*
+ input - array and alen (array length)
+ output - pointer to array
+ note the "lie" here": FORTRAN actually passes the
*/
-void FORTRAN(switch_nan)(bad, missing)
- DFTYPE *bad;
- DFTYPE *missing;
{
- if (isnan(*bad) || isnan(*missing))
- {
- if (isnan(*bad))
- {
- *missing = *bad;
- *bad = bad_val4;
- }
- }
-}
+ double *ptr;
+ int i;
+ ptr = (double *) malloc(sizeof(double) * (*alen));
+
+ for (i=0; i < *alen; i++) {
+ ptr[i] = array[i];
+ }
+
+ *pointer_val = ptr; // return the address value for ptr
+
+ return;
+}
diff --git a/fer/ccr/create_utf8_string.c b/fer/ccr/create_utf8_string.c
new file mode 100644
index 0000000..07e8523
--- /dev/null
+++ b/fer/ccr/create_utf8_string.c
@@ -0,0 +1,80 @@
+/*
+ * This software was developed by the Thermal Modeling and Analysis
+ * Project(TMAP) of the National Oceanographic and Atmospheric
+ * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+ * hereafter referred to as NOAA/PMEL/TMAP.
+ *
+ * Access and use of this software shall impose the following
+ * obligations and understandings on the user. The user is granted the
+ * right, without any fee or cost, to use, copy, modify, alter, enhance
+ * and distribute this software, and any derivative works thereof, and
+ * its supporting documentation for any purpose whatsoever, provided
+ * that this entire notice appears in all copies of the software,
+ * derivative works and supporting documentation. Further, the user
+ * agrees to credit NOAA/PMEL/TMAP in any publications that result from
+ * the use of this software or in any product that includes this
+ * software. The names TMAP, NOAA and/or PMEL, however, may not be used
+ * in any advertising or publicity to endorse or promote any products
+ * or commercial entity unless specific written permission is obtained
+ * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+ * is not obligated to provide the user with any support, consulting,
+ * training or assistance of any kind with regard to the use, operation
+ * and performance of this software nor to provide the user with any
+ * updates, revisions, new versions or "bug fixes".
+ *
+ * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <Python.h> /* make sure Python.h is first */
+#include "utf8str.h"
+
+/*
+ * Assigns a character string with the values for a UTF-8 character
+ *
+ * Input:
+ * codepoint - the UTF-8 code point (integer) value
+ * Output:
+ * utf8str (array of at least four characters) - the character
+ * representation of the UTF-8 character
+ * utf8strlen - the number of characters in the character
+ * representation of the UTF-8 characters,
+ * or zero if the codepoint is invalid for UTF-8
+ */
+void create_utf8_str_(const int *codepoint, char *utf8str, int *utf8strlen)
+{
+ int codept = *codepoint;
+
+ if ( codept <= 0x7F ) {
+ utf8str[0] = (char) codept;
+ *utf8strlen = 1;
+ }
+ else if ( codept <= 0x7FF ) {
+ utf8str[0] = (char) ((codept >> 6) + 0xC0);
+ utf8str[1] = (char) ((codept & 0x3F) + 0x80);
+ *utf8strlen = 2;
+ }
+ else if (codept <= 0xFFFF) {
+ utf8str[0] = (char) ((codept >> 12) + 0xE0);
+ utf8str[1] = (char) (((codept >> 6) & 0x3F) + 0x80);
+ utf8str[2] = (char) ((codept & 0x3F) + 0x80);
+ *utf8strlen = 3;
+ }
+ else if (codept <= 0x10FFFF) {
+ utf8str[0] = (char) ((codept >> 18) + 0xF0);
+ utf8str[1] = (((codept >> 12) & 0x3F) + 0x80);
+ utf8str[2] = (((codept >> 6) & 0x3F) + 0x80);
+ utf8str[3] = ((codept & 0x3F) + 0x80);
+ *utf8strlen = 4;
+ }
+ else {
+ *utf8strlen = 0;
+ }
+}
+
diff --git a/fer/utl/decrement_plot_grid.F b/fer/ccr/free_cached_full_array.c
old mode 100755
new mode 100644
similarity index 75%
copy from fer/utl/decrement_plot_grid.F
copy to fer/ccr/free_cached_full_array.c
index aa6c503..594df6c
--- a/fer/utl/decrement_plot_grid.F
+++ b/fer/ccr/free_cached_full_array.c
@@ -1,5 +1,4 @@
- SUBROUTINE DECREMENT_PLOT_GRID
-
+/*
*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -31,21 +30,44 @@
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
+*/
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
-*
-* Decrement the grid use count which was bumped up, saving the grid used
-* in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
- include 'xbox_bounds.cmn'
- INTEGER grid
+/*
+ * free_cached_full_array.c
+ *
+ * Free a cached full array from c heap storage
+ *
+ * programmer - steve hankin
+ * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+ *
+ * revision 0.0 - 5/5/15
+ * 6/25/2015 *acm* set the pointer value to 0, fixing ticket 2305
+ */
+
+#include <stdlib.h>
+#include <assert.h>
+#include "ferret.h"
+
+
+void FORTRAN(free_cached_full_array)( double **pointer_val )
+
+/*
+ see complementary routines recover_cached_full_array and cache_full_array.c
+*/
+
+{
+ double *ptr;
+
+ ptr = *pointer_val;
- grid = bb_grid
- IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
- bb_grid_inccount = 0
+ if (ptr) {
+ free(ptr); // could do assert on ptr==0
+ *pointer_val=0;
+ }
- RETURN
- END
+ return;
+}
diff --git a/fer/utl/decrement_plot_grid.F b/fer/ccr/recover_cached_full_array.c
old mode 100755
new mode 100644
similarity index 77%
copy from fer/utl/decrement_plot_grid.F
copy to fer/ccr/recover_cached_full_array.c
index aa6c503..51e9844
--- a/fer/utl/decrement_plot_grid.F
+++ b/fer/ccr/recover_cached_full_array.c
@@ -1,5 +1,4 @@
- SUBROUTINE DECREMENT_PLOT_GRID
-
+/*
*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -31,21 +30,41 @@
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
+*/
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
-*
-* Decrement the grid use count which was bumped up, saving the grid used
-* in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
- include 'xbox_bounds.cmn'
- INTEGER grid
+/*
+ * recover_cached_full_array.c
+ *
+ * Copy a cached full array from c heap storage into Ferret array memory
+ *
+ * programmer - steve hankin
+ * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+ *
+ * revision 0.0 - 5/5/15
+ */
+
+#include <stdlib.h>
+#include "ferret.h"
+
+void FORTRAN(recover_cached_full_array)( double *array, int *alen, double **pointer_val )
+
+/*
+ see complementary routine cache_full_array.c
+*/
+
+{
+ double *ptr;
+ int i;
+
+ ptr = *pointer_val;
- grid = bb_grid
- IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
- bb_grid_inccount = 0
+ for (i=0; i < *alen; i++) {
+ array[i] = ptr[i];
+ }
- RETURN
- END
+ return;
+}
diff --git a/fer/ccr/text_to_utf8.c b/fer/ccr/text_to_utf8.c
new file mode 100644
index 0000000..072135e
--- /dev/null
+++ b/fer/ccr/text_to_utf8.c
@@ -0,0 +1,67 @@
+/*
+ * This software was developed by the Thermal Modeling and Analysis
+ * Project(TMAP) of the National Oceanographic and Atmospheric
+ * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+ * hereafter referred to as NOAA/PMEL/TMAP.
+ *
+ * Access and use of this software shall impose the following
+ * obligations and understandings on the user. The user is granted the
+ * right, without any fee or cost, to use, copy, modify, alter, enhance
+ * and distribute this software, and any derivative works thereof, and
+ * its supporting documentation for any purpose whatsoever, provided
+ * that this entire notice appears in all copies of the software,
+ * derivative works and supporting documentation. Further, the user
+ * agrees to credit NOAA/PMEL/TMAP in any publications that result from
+ * the use of this software or in any product that includes this
+ * software. The names TMAP, NOAA and/or PMEL, however, may not be used
+ * in any advertising or publicity to endorse or promote any products
+ * or commercial entity unless specific written permission is obtained
+ * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+ * is not obligated to provide the user with any support, consulting,
+ * training or assistance of any kind with regard to the use, operation
+ * and performance of this software nor to provide the user with any
+ * updates, revisions, new versions or "bug fixes".
+ *
+ * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <Python.h> /* make sure Python.h is first */
+#include "utf8str.h"
+
+/*
+ * Translates an extended-character string into a UTF-8 string.
+ *
+ * Input:
+ * text - string that include extended characters (> 0x7F)
+ * textlen - length of text
+ * Output:
+ * utf8str - null-terminated UTF-8 string representation of text;
+ * every extended character in text will result
+ * in two characters in this array (so ideally,
+ * has minimum length 2*textlen + 1)
+ * utf8strlen - length of the UTF-8 string created
+ */
+void text_to_utf8_(const char *text, const int *textlen, char *utf8str, int *utf8strlen)
+{
+ int codept;
+ char utf8chars[4];
+ int numutf8chars;
+ int j, k, q;
+
+ for (j = 0, k = 0; j < *textlen; j++) {
+ codept = (unsigned char) (text[j]);
+ create_utf8_str_(&codept, utf8chars, &numutf8chars);
+ for (q = 0; q < numutf8chars; q++, k++)
+ utf8str[k] = utf8chars[q];
+ }
+ utf8str[k] = '\0';
+ *utf8strlen = k;
+}
+
diff --git a/fer/ccr/utf8str.h b/fer/ccr/utf8str.h
new file mode 100644
index 0000000..eebdd24
--- /dev/null
+++ b/fer/ccr/utf8str.h
@@ -0,0 +1,5 @@
+#include <Python.h> /* make sure Python.h is first */
+
+void create_utf8_str_(const int *codepoint, char *utf8str, int *utf8strlen);
+void text_to_utf8_(const char *text, const int *textlen, char *utf8str, int *utf8strlen);
+
diff --git a/fer/cferbind/cairoCFerBind.h b/fer/cferbind/cairoCFerBind.h
index 2d035a1..8dc6966 100644
--- a/fer/cferbind/cairoCFerBind.h
+++ b/fer/cferbind/cairoCFerBind.h
@@ -4,18 +4,15 @@
/* Make sure Python.h is always included first */
#include <Python.h>
#include <cairo/cairo.h>
+#ifdef USEPANGOCAIRO
+#include <pango/pangocairo.h>
+#endif
/* Use of grdelBool (int) and grdelType (void *) is just to clarify intent */
#include "grdel.h"
/* Size of filename string arrays */
#define CCFB_NAME_SIZE 512
-/* DPI to use for the Cairo "Window" */
-#define CCFB_WINDOW_DPI 96
-
-/* Factor for converting pixels to points */
-#define CCFB_POINTS_PER_PIXEL (72.0 / (double) CCFB_WINDOW_DPI)
-
typedef enum CCFBImageFormat_enum {
CCFBIF_PNG = 0,
CCFBIF_PDF,
@@ -58,6 +55,18 @@ typedef struct CCFBBrush_Struct {
cairo_pattern_t *pattern;
} CCFBBrush;
+extern const char *CCFBFontId;
+typedef struct CCFBFont_Struct {
+ const char *id;
+#ifdef USEPANGOCAIRO
+ PangoFontDescription *fontdesc;
+#else
+ cairo_font_face_t *fontface;
+ double fontsize;
+#endif
+ int underline;
+} CCFBFont;
+
/* Structure for creating a linked list of image or recording surfaces */
typedef struct CCFBPicture_Struct {
struct CCFBPicture_Struct *next;
@@ -66,10 +75,13 @@ typedef struct CCFBPicture_Struct {
} CCFBPicture;
typedef struct CairoCFerBindData_struct {
+ double pixelsperinch;
/* image size in pixels */
int imagewidth;
int imageheight;
int minsize;
+ /* Scaling factor for line widths and symbol sizes */
+ double widthfactor;
/* clearing color */
CCFBColor lastclearcolor;
/* image filename and format */
@@ -77,13 +89,14 @@ typedef struct CairoCFerBindData_struct {
CCFBImageFormat imageformat;
/* Anti-alias non-text elements? */
int antialias;
- /* Use colors with an alpha channel (ARGB32)? */
- int usealpha;
+ /*
+ * Never use colors with an alpha channel (ARGB32) ?
+ * If false (zero), it will depend on the output format.
+ */
+ int noalpha;
/* data for recreating the current view */
CCFBSides fracsides;
int clipit;
- /* Scaling factor for line widths, symbol sizes, and font sizes */
- double widthfactor;
/* Linked list of image or recording surfaces, with segment IDs */
CCFBPicture *firstpic;
CCFBPicture *lastpic;
@@ -100,12 +113,12 @@ typedef struct CairoCFerBindData_struct {
int somethingdrawn;
/*
* Flag that something about the image has changed since the last
- * update. Only really used by the PipedImager/PyQtCairo engine.
+ * update. Only really used by the PipedImager engine.
*/
int imagechanged;
/*
* The image displayer.
- * Only assigned and used by the PipedImager/PyQtCairo engine.
+ * Only assigned and used by the PipedImager engine.
*/
grdelType viewer;
} CairoCFerBindData;
@@ -127,6 +140,7 @@ grdelBool cairoCFerBind_clearWindow(CFerBind *self, grdelType fillcolor);
grdelBool cairoCFerBind_redrawWindow(CFerBind *self, grdelType fillcolor);
grdelBool cairoCFerBind_windowScreenInfo(CFerBind *self, float *dpix, float *dpiy,
int *screenwidth, int *screenheight);
+grdelBool cairoCFerBind_setWindowDpi(CFerBind *self, double newdpi);
grdelBool cairoCFerBind_resizeWindow(CFerBind *self, double width, double height);
grdelBool cairoCFerBind_scaleWindow(CFerBind *self, double scale);
grdelBool cairoCFerBind_showWindow(CFerBind *self, int visible);
@@ -164,6 +178,8 @@ grdelBool cairoCFerBind_drawPolygon(CFerBind *self, double ptsx[], double ptsy[]
int numpts, grdelType brush, grdelType pen);
grdelBool cairoCFerBind_drawRectangle(CFerBind *self, double left, double bottom,
double right, double top, grdelType brush, grdelType pen);
+grdelBool cairoCFerBind_textSize(CFerBind *self, const char *text, int textlen,
+ grdelType font, double *widthptr, double *heightptr);
grdelBool cairoCFerBind_drawText(CFerBind *self, const char *text, int textlen,
double startx, double starty, grdelType font,
grdelType color, double rotation);
diff --git a/fer/cferbind/cairoCFerBind_clipView.c b/fer/cferbind/cairoCFerBind_clipView.c
index a7ec1f1..40b4807 100644
--- a/fer/cferbind/cairoCFerBind_clipView.c
+++ b/fer/cferbind/cairoCFerBind_clipView.c
@@ -53,10 +53,10 @@ grdelBool cairoCFerBind_clipView(CFerBind *self, int clipit)
top = instdata->fracsides.top * instdata->imageheight;
bottom = instdata->fracsides.bottom * instdata->imageheight;
if ( instdata->imageformat != CCFBIF_PNG ) {
- left *= CCFB_POINTS_PER_PIXEL;
- right *= CCFB_POINTS_PER_PIXEL;
- top *= CCFB_POINTS_PER_PIXEL;
- bottom *= CCFB_POINTS_PER_PIXEL;
+ left *= (72.0 / instdata->pixelsperinch);
+ right *= (72.0 / instdata->pixelsperinch);
+ top *= (72.0 / instdata->pixelsperinch);
+ bottom *= (72.0 / instdata->pixelsperinch);
}
/* Create the clipping rectangle path */
diff --git a/fer/cferbind/cairoCFerBind_createBrush.c b/fer/cferbind/cairoCFerBind_createBrush.c
index 6a0b2b2..8199faf 100644
--- a/fer/cferbind/cairoCFerBind_createBrush.c
+++ b/fer/cferbind/cairoCFerBind_createBrush.c
@@ -7,7 +7,7 @@
#include "cferbind.h"
#include "cairoCFerBind.h"
-/* Instatiate the global value */
+/* Instantiate the global value */
const char *CCFBBrushId = "CCFBBrushId";
/*
diff --git a/fer/cferbind/cairoCFerBind_createColor.c b/fer/cferbind/cairoCFerBind_createColor.c
index b31936d..f420294 100644
--- a/fer/cferbind/cairoCFerBind_createColor.c
+++ b/fer/cferbind/cairoCFerBind_createColor.c
@@ -6,7 +6,7 @@
#include "cferbind.h"
#include "cairoCFerBind.h"
-/* Instatiate the global value */
+/* Instantiate the global value */
const char *CCFBColorId = "CCFBColorId";
/*
diff --git a/fer/cferbind/cairoCFerBind_createFont.c b/fer/cferbind/cairoCFerBind_createFont.c
index 3f6ad2d..069d3c5 100644
--- a/fer/cferbind/cairoCFerBind_createFont.c
+++ b/fer/cferbind/cairoCFerBind_createFont.c
@@ -5,11 +5,12 @@
#include "cferbind.h"
#include "cairoCFerBind.h"
+/* Instantiate the global value */
+const char *CCFBFontId = "CCFBFontId";
+
/*
* Create a font object for this "Window".
- *
- * Currently stubbed since it is currently not used by Ferret;
- * thus always fails.
+ * The fontsize is in points (1/72")
*
* Returns a font object if successful. If an error occurs,
* grdelerrmsg is assigned an appropriate error message and NULL
@@ -18,17 +19,104 @@
grdelType cairoCFerBind_createFont(CFerBind *self, const char *familyname, int namelen,
double fontsize, int italic, int bold, int underlined)
{
+ CairoCFerBindData *instdata;
+ double adjfontsize;
+ char *family;
+ CCFBFont *fontobj;
+#ifndef USEPANGOCAIRO
+ cairo_font_slant_t slant;
+ cairo_font_weight_t weight;
+#endif
+
/* Sanity check */
if ( (self->enginename != CairoCFerBindName) &&
(self->enginename != PyQtCairoCFerBindName) ) {
strcpy(grdelerrmsg, "cairoCFerBind_createFont: unexpected error, "
"self is not a valid CFerBind struct");
- return 0;
+ return NULL;
+ }
+ if ( fontsize <= 0.0 ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_createFont: invalid font size given");
+ return NULL;
+ }
+ instdata = (CairoCFerBindData *) self->instancedata;
+ /* adjust the font size for Cairo text drawing */
+ if ( instdata->imageformat == CCFBIF_PNG ) {
+ adjfontsize = fontsize * 96.0 / 72.0;
+ }
+ else {
+ adjfontsize = fontsize * 96.0 / instdata->pixelsperinch;
+ }
+
+ if ( familyname == NULL ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_createFont: familyname is not given");
+ return NULL;
+ }
+ if ( namelen < 0 ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_createFont: invalid familyname length given");
+ return NULL;
+ }
+
+ fontobj = (CCFBFont *) PyMem_Malloc(sizeof(CCFBFont));
+ if ( fontobj == NULL ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_createFont: "
+ "out of memory for a CCFBFont structure");
+ return NULL;
+ }
+
+ family = (char *) PyMem_Malloc(namelen+1);
+ if ( family == NULL ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_createFont: "
+ "out of memory for a copy of the familyname string");
+ PyMem_Free(fontobj);
+ return NULL;
+ }
+ strncpy(family, familyname, namelen);
+ family[namelen] = '\0';
+
+#ifdef USEPANGOCAIRO
+
+ fontobj->fontdesc = pango_font_description_new();
+ pango_font_description_set_family(fontobj->fontdesc, family);
+ if ( italic == 0 )
+ pango_font_description_set_style(fontobj->fontdesc, PANGO_STYLE_NORMAL);
+ else
+ pango_font_description_set_style(fontobj->fontdesc, PANGO_STYLE_ITALIC);
+ if ( bold == 0 )
+ pango_font_description_set_weight(fontobj->fontdesc, PANGO_WEIGHT_NORMAL);
+ else
+ pango_font_description_set_weight(fontobj->fontdesc, PANGO_WEIGHT_BOLD);
+ pango_font_description_set_variant(fontobj->fontdesc, PANGO_VARIANT_NORMAL);
+ pango_font_description_set_stretch(fontobj->fontdesc, PANGO_STRETCH_NORMAL);
+ pango_font_description_set_size(fontobj->fontdesc, (int) (adjfontsize * PANGO_SCALE + 0.5));
+
+#else
+
+ if ( italic != 0 )
+ slant = CAIRO_FONT_SLANT_ITALIC;
+ else
+ slant = CAIRO_FONT_SLANT_NORMAL;
+ if ( bold != 0 )
+ weight = CAIRO_FONT_WEIGHT_BOLD;
+ else
+ weight = CAIRO_FONT_WEIGHT_NORMAL;
+ fontobj->fontface = cairo_toy_font_face_create(family, slant, weight);
+ if ( cairo_font_face_status(fontobj->fontface) != CAIRO_STATUS_SUCCESS ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_createFont: "
+ "unable to find a font face for the given font");
+ cairo_font_face_destroy(fontobj->fontface);
+ PyMem_Free(family);
+ PyMem_Free(fontobj);
+ return NULL;
}
+ fontobj->fontsize = adjfontsize;
+
+#endif
+
+ PyMem_Free(family);
- /* TODO: implement */
- strcpy(grdelerrmsg, "cairoCFerBind_createFont: unexpected error, "
- "stubbed function");
- return NULL;
+ fontobj->underline = underlined;
+ fontobj->id = CCFBFontId;
+ return fontobj;
}
diff --git a/fer/cferbind/cairoCFerBind_createPen.c b/fer/cferbind/cairoCFerBind_createPen.c
index 2629b9e..05a36db 100644
--- a/fer/cferbind/cairoCFerBind_createPen.c
+++ b/fer/cferbind/cairoCFerBind_createPen.c
@@ -7,7 +7,7 @@
#include "cferbind.h"
#include "cairoCFerBind.h"
-/* Instatiate the global value */
+/* Instantiate the global value */
const char *CCFBPenId = "CCFBPenId";
/*
diff --git a/fer/cferbind/cairoCFerBind_createSurface.c b/fer/cferbind/cairoCFerBind_createSurface.c
index 497b751..5410bc5 100644
--- a/fer/cferbind/cairoCFerBind_createSurface.c
+++ b/fer/cferbind/cairoCFerBind_createSurface.c
@@ -22,6 +22,7 @@ grdelBool cairoCFerBind_createSurface(CFerBind *self)
char *fmtname;
double width;
double height;
+ cairo_rectangle_t extents;
/* Sanity check */
if ( (self->enginename != CairoCFerBindName) &&
@@ -49,60 +50,63 @@ grdelBool cairoCFerBind_createSurface(CFerBind *self)
switch( instdata->imageformat ) {
case CCFBIF_PNG:
/* Surface size is given in integer pixels */
- instdata->surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
+ if ( instdata->noalpha )
+ instdata->surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24,
+ instdata->imagewidth, instdata->imageheight);
+ else
+ instdata->surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
instdata->imagewidth, instdata->imageheight);
- instdata->usealpha = 1;
/* Note that all surface values are initialized to zero (transparent) */
fmtname = "PNG";
break;
case CCFBIF_PDF:
/* Surface size is given in (floating-point) points */
- width = (double) instdata->imagewidth * CCFB_POINTS_PER_PIXEL;
- height = (double) instdata->imageheight * CCFB_POINTS_PER_PIXEL;
- instdata->surface = cairo_pdf_surface_create(instdata->imagename,
- width, height);
- instdata->usealpha = 0;
+ width = instdata->imagewidth * 72.0 / instdata->pixelsperinch;
+ height = instdata->imageheight * 72.0 / instdata->pixelsperinch;
+ instdata->surface = cairo_pdf_surface_create(instdata->imagename, width, height);
+ /* Never use the alpha channel to avoid embedded image */
+ instdata->noalpha = 1;
fmtname = "PDF";
break;
case CCFBIF_PS:
/* Surface size is given in (floating-point) points */
- width = (double) instdata->imagewidth * CCFB_POINTS_PER_PIXEL;
- height = (double) instdata->imageheight * CCFB_POINTS_PER_PIXEL;
+ width = instdata->imagewidth * 72.0 / instdata->pixelsperinch;
+ height = instdata->imageheight * 72.0 / instdata->pixelsperinch;
if ( width > height ) {
/*
* Landscape orientation
* Swap width and height and then translate and rotate (see
* below) per Cairo requirements.
*/
- instdata->surface = cairo_ps_surface_create(instdata->imagename,
- height, width);
+ instdata->surface = cairo_ps_surface_create(instdata->imagename, height, width);
}
else {
/* Portrait orientation */
- instdata->surface = cairo_ps_surface_create(instdata->imagename,
- width, height);
+ instdata->surface = cairo_ps_surface_create(instdata->imagename, width, height);
}
- /* Do not use alpha channel - prevents embedded image */
- instdata->usealpha = 0;
+ /* Never use the alpha channel to avoid embedded image */
+ instdata->noalpha = 1;
fmtname = "PS";
break;
case CCFBIF_SVG:
/* Surface size is given in (floating-point) points */
- width = (double) instdata->imagewidth * CCFB_POINTS_PER_PIXEL;
- height = (double) instdata->imageheight * CCFB_POINTS_PER_PIXEL;
- instdata->surface = cairo_svg_surface_create(instdata->imagename,
- width, height);
- instdata->usealpha = 1;
+ width = instdata->imagewidth * 72.0 / instdata->pixelsperinch;
+ height = instdata->imageheight * 72.0 / instdata->pixelsperinch;
+ instdata->surface = cairo_svg_surface_create(instdata->imagename, width, height);
fmtname = "SVG";
break;
case CCFBIF_REC:
- /* Surface size is given in (floating-point) points */
- width = (double) instdata->imagewidth * CCFB_POINTS_PER_PIXEL;
- height = (double) instdata->imageheight * CCFB_POINTS_PER_PIXEL;
- instdata->surface =
- cairo_svg_surface_create_for_stream(NULL, NULL, width, height);
- instdata->usealpha = 1;
- fmtname = "SVG REC";
+ /* Values will be given in (floating-point) points */
+ extents.x = 0.0;
+ extents.y = 0.0;
+ extents.width = instdata->imagewidth * 72.0 / instdata->pixelsperinch;
+ extents.height = height = instdata->imageheight * 72.0 / instdata->pixelsperinch;
+#ifdef CAIRO_HAS_RECORDING_SURFACE
+ instdata->surface = cairo_recording_surface_create(CAIRO_CONTENT_COLOR_ALPHA, &extents);
+#else
+ instdata->surface = cairo_svg_surface_create_for_stream(NULL, NULL, extents.width, extents.height);
+#endif
+ fmtname = "recording";
break;
default:
sprintf(grdelerrmsg, "cairoCFerBind_createSurface: unexpected error, "
@@ -139,8 +143,8 @@ grdelBool cairoCFerBind_createSurface(CFerBind *self)
* to correct for swapped width and height (per Cairo requirements).
*/
if ( instdata->imageformat == CCFBIF_PS ) {
- width = (double) instdata->imagewidth * CCFB_POINTS_PER_PIXEL;
- height = (double) instdata->imageheight * CCFB_POINTS_PER_PIXEL;
+ width = instdata->imagewidth * 72.0 / instdata->pixelsperinch;
+ height = instdata->imageheight * 72.0 / instdata->pixelsperinch;
if ( width > height ) {
/* surface was created with coordinates (0,0) to (height, width) */
cairo_matrix_t transmat;
diff --git a/fer/cferbind/cairoCFerBind_createWindow.c b/fer/cferbind/cairoCFerBind_createWindow.c
index 77e0265..b848f3c 100644
--- a/fer/cferbind/cairoCFerBind_createWindow.c
+++ b/fer/cferbind/cairoCFerBind_createWindow.c
@@ -13,7 +13,7 @@
* successful. If an error occurs, grdelerrmsg is assigned
* an appropriate error message and NULL is returned.
*/
-CFerBind *cairoCFerBind_createWindow(void)
+CFerBind *cairoCFerBind_createWindow(int noalpha)
{
CFerBind *bindings;
CairoCFerBindData *instdata;
@@ -45,6 +45,7 @@ CFerBind *cairoCFerBind_createWindow(void)
bindings->clearWindow = cairoCFerBind_clearWindow;
bindings->redrawWindow = cairoCFerBind_redrawWindow;
bindings->windowScreenInfo = cairoCFerBind_windowScreenInfo;
+ bindings->setWindowDpi = cairoCFerBind_setWindowDpi;
bindings->resizeWindow = cairoCFerBind_resizeWindow;
bindings->scaleWindow = cairoCFerBind_scaleWindow;
bindings->showWindow = cairoCFerBind_showWindow;
@@ -66,6 +67,7 @@ CFerBind *cairoCFerBind_createWindow(void)
bindings->drawPoints = cairoCFerBind_drawPoints;
bindings->drawPolygon = cairoCFerBind_drawPolygon;
bindings->drawRectangle = cairoCFerBind_drawRectangle;
+ bindings->textSize = cairoCFerBind_textSize;
bindings->drawText = cairoCFerBind_drawText;
/* Create the instance-specific data structure */
@@ -83,9 +85,11 @@ CFerBind *cairoCFerBind_createWindow(void)
instdata = (CairoCFerBindData *) bindings->instancedata;
/* Default Cairo surface type */
instdata->imageformat = CCFBIF_REC;
- /* default image size and minimum allowed value */
- instdata->imagewidth = (int) (10.5 * CCFB_WINDOW_DPI);
- instdata->imageheight = (int) (8.5 * CCFB_WINDOW_DPI);
+ /* default DPI, image size, line width scaling factor, and minimum allowed value */
+ instdata->pixelsperinch = 96;
+ instdata->imagewidth = (int) (10.2 * instdata->pixelsperinch);
+ instdata->imageheight = (int) (8.8 * instdata->pixelsperinch);
+ instdata->widthfactor = instdata->pixelsperinch * 0.72 / 72.0;
instdata->minsize = 128;
/* default clear color of opaque white */
instdata->lastclearcolor.id = CCFBColorId;
@@ -93,8 +97,9 @@ CFerBind *cairoCFerBind_createWindow(void)
instdata->lastclearcolor.greenfrac = 1.0;
instdata->lastclearcolor.bluefrac = 1.0;
instdata->lastclearcolor.opaquefrac = 1.0;
- /* default line width scaling factor */
- instdata->widthfactor = CCFB_WINDOW_DPI * 0.75 / 72.0;
+
+ /* save the decision about the alpha channel */
+ instdata->noalpha = noalpha;
return bindings;
}
diff --git a/fer/cferbind/cairoCFerBind_deleteFont.c b/fer/cferbind/cairoCFerBind_deleteFont.c
index 88c7654..5c9bb9f 100644
--- a/fer/cferbind/cairoCFerBind_deleteFont.c
+++ b/fer/cferbind/cairoCFerBind_deleteFont.c
@@ -8,14 +8,13 @@
/*
* Delete a font object for this "Window".
*
- * Currently stubbed since it is currently not used by Ferret;
- * thus always fails.
- *
* Returns one if successful. If an error occurs, grdelerrmsg
* is assigned an appropriate error message and zero is returned.
*/
grdelBool cairoCFerBind_deleteFont(CFerBind *self, grdelType font)
{
+ CCFBFont *fontobj;
+
/* Sanity check */
if ( (self->enginename != CairoCFerBindName) &&
(self->enginename != PyQtCairoCFerBindName) ) {
@@ -24,9 +23,31 @@ grdelBool cairoCFerBind_deleteFont(CFerBind *self, grdelType font)
return 0;
}
- /* TODO: implement */
- strcpy(grdelerrmsg, "cairoCFerBind_deleteFont: unexpected error, "
- "stubbed function");
- return 0;
+ fontobj = (CCFBFont *) font;
+ if ( fontobj->id != CCFBFontId ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_deleteFont: unexpected error, "
+ "font is not CCFBFont struct");
+ return 0;
+ }
+
+#ifdef USEPANGOCAIRO
+ if ( fontobj->fontdesc != NULL ) {
+ pango_font_description_free(fontobj->fontdesc);
+ fontobj->fontdesc = NULL;
+ }
+#else
+ if ( fontobj->fontface != NULL ) {
+ cairo_font_face_destroy(fontobj->fontface);
+ fontobj->fontface = NULL;
+ }
+#endif
+
+ /* Wipe the id to detect errors */
+ fontobj->id = NULL;
+
+ /* Free the memory */
+ PyMem_Free(font);
+
+ return 1;
}
diff --git a/fer/cferbind/cairoCFerBind_drawMultiline.c b/fer/cferbind/cairoCFerBind_drawMultiline.c
index 9c2ff48..550c90f 100644
--- a/fer/cferbind/cairoCFerBind_drawMultiline.c
+++ b/fer/cferbind/cairoCFerBind_drawMultiline.c
@@ -59,12 +59,12 @@ grdelBool cairoCFerBind_drawMultiline(CFerBind *self, double ptsx[],
return 0;
}
- /* Convertions factor for those surfaces that expect points instead of pixels */
+ /* Conversion factor for those surfaces that expect points instead of pixels */
if ( instdata->imageformat == CCFBIF_PNG ) {
unitfactor = 1.0;
}
else {
- unitfactor = CCFB_POINTS_PER_PIXEL;
+ unitfactor = 72.0 / instdata->pixelsperinch;
}
/* Create the path that will be stroked */
@@ -79,13 +79,13 @@ grdelBool cairoCFerBind_drawMultiline(CFerBind *self, double ptsx[],
}
/* Assign the line color */
- if ( instdata->usealpha )
+ if ( instdata->noalpha )
+ cairo_set_source_rgb(instdata->context, penobj->color.redfrac,
+ penobj->color.greenfrac, penobj->color.bluefrac);
+ else
cairo_set_source_rgba(instdata->context, penobj->color.redfrac,
penobj->color.greenfrac, penobj->color.bluefrac,
penobj->color.opaquefrac);
- else
- cairo_set_source_rgb(instdata->context, penobj->color.redfrac,
- penobj->color.greenfrac, penobj->color.bluefrac);
/* Assign the adjusted line width, which is in points */
adjwidth = penobj->width * instdata->widthfactor;
/* width of zero is a cosmetic pen - make it 1 pixel wide */
diff --git a/fer/cferbind/cairoCFerBind_drawPoints.c b/fer/cferbind/cairoCFerBind_drawPoints.c
index 61c6fe2..42f3534 100644
--- a/fer/cferbind/cairoCFerBind_drawPoints.c
+++ b/fer/cferbind/cairoCFerBind_drawPoints.c
@@ -48,20 +48,20 @@ grdelBool cairoCFerBind_drawPoints(CFerBind *self, double ptsx[], double ptsy[],
}
/* Assign the (solid) color to use for the symbols */
- if ( instdata->usealpha )
+ if ( instdata->noalpha )
+ cairo_set_source_rgb(instdata->context, colorobj->redfrac,
+ colorobj->greenfrac, colorobj->bluefrac);
+ else
cairo_set_source_rgba(instdata->context, colorobj->redfrac,
colorobj->greenfrac, colorobj->bluefrac,
colorobj->opaquefrac);
- else
- cairo_set_source_rgb(instdata->context, colorobj->redfrac,
- colorobj->greenfrac, colorobj->bluefrac);
- /* Convertions factor for those surfaces that expect points instead of pixels */
+ /* Conversion factor for those surfaces that expect points instead of pixels */
if ( instdata->imageformat == CCFBIF_PNG ) {
unitfactor = 1.0;
}
else {
- unitfactor = CCFB_POINTS_PER_PIXEL;
+ unitfactor = 72.0 / instdata->pixelsperinch;
}
/* Scaling factor to use for these symbols "drawn" as 100x100 pixel paths */
diff --git a/fer/cferbind/cairoCFerBind_drawPolygon.c b/fer/cferbind/cairoCFerBind_drawPolygon.c
index 5872abb..cfef6e4 100644
--- a/fer/cferbind/cairoCFerBind_drawPolygon.c
+++ b/fer/cferbind/cairoCFerBind_drawPolygon.c
@@ -88,12 +88,12 @@ grdelBool cairoCFerBind_drawPolygon(CFerBind *self, double ptsx[], double ptsy[]
return 0;
}
- /* Convertions factor for those surfaces that expect points instead of pixels */
+ /* Conversion factor for those surfaces that expect points instead of pixels */
if ( instdata->imageformat == CCFBIF_PNG ) {
unitfactor = 1.0;
}
else {
- unitfactor = CCFB_POINTS_PER_PIXEL;
+ unitfactor = 72.0 / instdata->pixelsperinch;
}
/* Turn off antialiasing for this operation */
@@ -128,23 +128,28 @@ grdelBool cairoCFerBind_drawPolygon(CFerBind *self, double ptsx[], double ptsy[]
if ( brushobj->pattern != NULL )
cairo_set_source(instdata->context, brushobj->pattern);
- else if ( instdata->usealpha )
+ else if ( instdata->noalpha )
+ cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
+ brushobj->color.greenfrac, brushobj->color.bluefrac);
+ else
cairo_set_source_rgba(instdata->context, brushobj->color.redfrac,
brushobj->color.greenfrac, brushobj->color.bluefrac,
brushobj->color.opaquefrac);
- else
- cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
- brushobj->color.greenfrac, brushobj->color.bluefrac);
/* Fill the rectangle, but preserve the path for stroking */
- cairo_fill_preserve(instdata->context);
+ /*
+ * cairo_fill_preserve(instdata->context);
+ */
+ cairo_fill(instdata->context);
/* Stroke the path with a solid cosmetic (one pixel width) line */
- cairo_set_line_width(instdata->context, 1.0 * unitfactor);
- cairo_set_dash(instdata->context, NULL, 0, 0.0);
- cairo_set_line_cap(instdata->context, CAIRO_LINE_CAP_SQUARE);
- cairo_set_line_join(instdata->context, CAIRO_LINE_JOIN_BEVEL);
- cairo_stroke(instdata->context);
+ /*
+ * cairo_set_line_width(instdata->context, 1.0 * unitfactor);
+ * cairo_set_dash(instdata->context, NULL, 0, 0.0);
+ * cairo_set_line_cap(instdata->context, CAIRO_LINE_CAP_SQUARE);
+ * cairo_set_line_join(instdata->context, CAIRO_LINE_JOIN_BEVEL);
+ * cairo_stroke(instdata->context);
+ */
/* Reset the original transformation */
/*
@@ -154,10 +159,10 @@ grdelBool cairoCFerBind_drawPolygon(CFerBind *self, double ptsx[], double ptsy[]
/* Draw this group using the brush alpha value (if appropriate) */
/*
* cairo_pop_group_to_source(instdata->context);
- * if ( instdata->usealpha )
- * cairo_paint_with_alpha(instdata->context, brushobj->color.opaquefrac);
- * else
+ * if ( instdata->noalpha )
* cairo_paint(instdata->context);
+ * else
+ * cairo_paint_with_alpha(instdata->context, brushobj->color.opaquefrac);
*/
}
else {
@@ -166,25 +171,25 @@ grdelBool cairoCFerBind_drawPolygon(CFerBind *self, double ptsx[], double ptsy[]
/* Fill pattern or solid color */
if ( brushobj->pattern != NULL )
cairo_set_source(instdata->context, brushobj->pattern);
- else if ( instdata->usealpha )
+ else if ( instdata->noalpha )
+ cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
+ brushobj->color.greenfrac, brushobj->color.bluefrac);
+ else
cairo_set_source_rgba(instdata->context, brushobj->color.redfrac,
brushobj->color.greenfrac, brushobj->color.bluefrac,
brushobj->color.opaquefrac);
- else
- cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
- brushobj->color.greenfrac, brushobj->color.bluefrac);
/* Fill the polygon, but preserve the path for stroking */
cairo_fill_preserve(instdata->context);
}
/* Assign the line color to the context */
- if ( instdata->usealpha )
+ if ( instdata->noalpha )
+ cairo_set_source_rgb(instdata->context, penobj->color.redfrac,
+ penobj->color.greenfrac, penobj->color.bluefrac);
+ else
cairo_set_source_rgba(instdata->context, penobj->color.redfrac,
penobj->color.greenfrac, penobj->color.bluefrac,
penobj->color.opaquefrac);
- else
- cairo_set_source_rgb(instdata->context, penobj->color.redfrac,
- penobj->color.greenfrac, penobj->color.bluefrac);
/* Assign the adjusted line width */
adjwidth = penobj->width * instdata->widthfactor;
/* width of zero is a cosmetic pen - make it one pixel wide */
diff --git a/fer/cferbind/cairoCFerBind_drawRectangle.c b/fer/cferbind/cairoCFerBind_drawRectangle.c
index 851202c..d961b28 100644
--- a/fer/cferbind/cairoCFerBind_drawRectangle.c
+++ b/fer/cferbind/cairoCFerBind_drawRectangle.c
@@ -85,12 +85,12 @@ grdelBool cairoCFerBind_drawRectangle(CFerBind *self, double left, double bottom
return 0;
}
- /* Convertions factor for those surfaces that expect points instead of pixels */
+ /* Conversion factor for those surfaces that expect points instead of pixels */
if ( instdata->imageformat == CCFBIF_PNG ) {
unitfactor = 1.0;
}
else {
- unitfactor = CCFB_POINTS_PER_PIXEL;
+ unitfactor = 72.0 / instdata->pixelsperinch;
}
/* Turn off antialiasing for this operation */
@@ -121,23 +121,28 @@ grdelBool cairoCFerBind_drawRectangle(CFerBind *self, double left, double bottom
if ( brushobj->pattern != NULL )
cairo_set_source(instdata->context, brushobj->pattern);
- else if ( instdata->usealpha )
+ else if ( instdata->noalpha )
+ cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
+ brushobj->color.greenfrac, brushobj->color.bluefrac);
+ else
cairo_set_source_rgba(instdata->context, brushobj->color.redfrac,
brushobj->color.greenfrac, brushobj->color.bluefrac,
brushobj->color.opaquefrac);
- else
- cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
- brushobj->color.greenfrac, brushobj->color.bluefrac);
/* Fill the rectangle, but preserve the path for stroking */
- cairo_fill_preserve(instdata->context);
+ /*
+ * cairo_fill_preserve(instdata->context);
+ */
+ cairo_fill(instdata->context);
/* Stroke the path with a solid cosmetic (one pixel width) line */
- cairo_set_line_width(instdata->context, 1.0 * unitfactor);
- cairo_set_dash(instdata->context, NULL, 0, 0.0);
- cairo_set_line_cap(instdata->context, CAIRO_LINE_CAP_SQUARE);
- cairo_set_line_join(instdata->context, CAIRO_LINE_JOIN_BEVEL);
- cairo_stroke(instdata->context);
+ /*
+ * cairo_set_line_width(instdata->context, 1.0 * unitfactor);
+ * cairo_set_dash(instdata->context, NULL, 0, 0.0);
+ * cairo_set_line_cap(instdata->context, CAIRO_LINE_CAP_SQUARE);
+ * cairo_set_line_join(instdata->context, CAIRO_LINE_JOIN_BEVEL);
+ * cairo_stroke(instdata->context);
+ */
/* Reset the original transformation */
/*
@@ -147,10 +152,10 @@ grdelBool cairoCFerBind_drawRectangle(CFerBind *self, double left, double bottom
/* Draw this group using the brush alpha value (if appropriate) */
/*
* cairo_pop_group_to_source(instdata->context);
- * if ( instdata->usealpha )
- * cairo_paint_with_alpha(instdata->context, brushobj->color.opaquefrac);
- * else
+ * if ( instdata->noalpha )
* cairo_paint(instdata->context);
+ * else
+ * cairo_paint_with_alpha(instdata->context, brushobj->color.opaquefrac);
*/
}
else {
@@ -159,25 +164,25 @@ grdelBool cairoCFerBind_drawRectangle(CFerBind *self, double left, double bottom
/* Fill pattern or solid color */
if ( brushobj->pattern != NULL )
cairo_set_source(instdata->context, brushobj->pattern);
- else if ( instdata->usealpha )
+ else if ( instdata->noalpha )
+ cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
+ brushobj->color.greenfrac, brushobj->color.bluefrac);
+ else
cairo_set_source_rgba(instdata->context, brushobj->color.redfrac,
brushobj->color.greenfrac, brushobj->color.bluefrac,
brushobj->color.opaquefrac);
- else
- cairo_set_source_rgb(instdata->context, brushobj->color.redfrac,
- brushobj->color.greenfrac, brushobj->color.bluefrac);
/* Fill the rectangle, but preserve the path for stroking */
cairo_fill_preserve(instdata->context);
}
/* Assign the line color to the context */
- if ( instdata->usealpha )
+ if ( instdata->noalpha )
+ cairo_set_source_rgb(instdata->context, penobj->color.redfrac,
+ penobj->color.greenfrac, penobj->color.bluefrac);
+ else
cairo_set_source_rgba(instdata->context, penobj->color.redfrac,
penobj->color.greenfrac, penobj->color.bluefrac,
penobj->color.opaquefrac);
- else
- cairo_set_source_rgb(instdata->context, penobj->color.redfrac,
- penobj->color.greenfrac, penobj->color.bluefrac);
/* Assign the adjusted line width */
adjwidth = penobj->width * instdata->widthfactor;
/* width of zero is a cosmetic pen - make it one pixel wide */
diff --git a/fer/cferbind/cairoCFerBind_drawText.c b/fer/cferbind/cairoCFerBind_drawText.c
index fd75cff..bcec48b 100644
--- a/fer/cferbind/cairoCFerBind_drawText.c
+++ b/fer/cferbind/cairoCFerBind_drawText.c
@@ -4,12 +4,12 @@
#include "grdel.h"
#include "cferbind.h"
#include "cairoCFerBind.h"
+#include "utf8str.h"
/*
- * Draw text to this "Window".
- *
- * Currently stubbed since it is currently not used by Ferret;
- * thus always fails.
+ * Draw text to this "Window". Text is a UTF-8 encoding of the desired text,
+ * and textlen is length of the text array (which may be more than the number
+ * of "characters" in the text). Rotation is in degrees clockwise from horizontal.
*
* Returns one if successful. If an error occurs, grdelerrmsg
* is assigned an appropriate error message and zero is returned.
@@ -19,7 +19,14 @@ grdelBool cairoCFerBind_drawText(CFerBind *self, const char *text, int textlen,
grdelType color, double rotation)
{
CairoCFerBindData *instdata;
+ CCFBFont *fontobj;
CCFBColor *colorobj;
+ double unitfactor;
+ char *utf8str;
+#ifdef USEPANGOCAIRO
+ PangoLayout *layout;
+#endif
+ cairo_status_t result;
/* Sanity check */
if ( (self->enginename != CairoCFerBindName) &&
@@ -36,16 +43,85 @@ grdelBool cairoCFerBind_drawText(CFerBind *self, const char *text, int textlen,
return 0;
}
}
+ fontobj = (CCFBFont *) font;
+ if ( fontobj->id != CCFBFontId ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_drawText: unexpected error, "
+ "font is not CCFBFont struct");
+ return 0;
+ }
colorobj = (CCFBColor *) color;
if ( colorobj->id != CCFBColorId ) {
strcpy(grdelerrmsg, "cairoCFerBind_drawText: unexpected error, "
"color is not CCFBColor struct");
return 0;
}
+ if ( textlen < 0 ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_drawText: textlen is not positive");
+ return 0;
+ }
+
+ /* Assign the color for this text */
+ if ( instdata->noalpha )
+ cairo_set_source_rgb(instdata->context, colorobj->redfrac,
+ colorobj->greenfrac, colorobj->bluefrac);
+ else
+ cairo_set_source_rgba(instdata->context, colorobj->redfrac,
+ colorobj->greenfrac, colorobj->bluefrac,
+ colorobj->opaquefrac);
+
+ /* Conversion factor for those surfaces that expect points instead of pixels */
+ if ( instdata->imageformat == CCFBIF_PNG ) {
+ unitfactor = 1.0;
+ }
+ else {
+ unitfactor = 72.0 / instdata->pixelsperinch;
+ }
+
+ /* Move to the place to start drawing this text */
+ cairo_move_to(instdata->context, startx * unitfactor, starty * unitfactor);
+
+ /* If no text to draw, just return at this point */
+ if ( textlen == 0 )
+ return 1;
+
+ /* Null-terminated the UTF-8 string */
+ utf8str = (char *) PyMem_Malloc((textlen + 1) * sizeof(char));
+ if ( utf8str == NULL ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_drawText: "
+ "out of memory for a copy of the text string");
+ return 0;
+ }
+ strncpy(utf8str, text, textlen);
+ utf8str[textlen] = '\0';
+
+ /* draw the text */
+ cairo_save(instdata->context);
+ cairo_rotate(instdata->context, rotation * M_PI / 180.0);
+#ifdef USEPANGOCAIRO
+ layout = pango_cairo_create_layout(instdata->context);
+ pango_layout_set_font_description(layout, fontobj->fontdesc);
+ pango_layout_set_text(layout, text, textlen);
+ pango_cairo_show_layout(instdata->context, layout);
+ g_object_unref(layout);
+#else
+ cairo_set_font_face(instdata->context, fontobj->fontface);
+ /* fontsize has already been adjusted appropriately for this surface */
+ cairo_set_font_size(instdata->context, fontobj->fontsize);
+ cairo_show_text(instdata->context, utf8str);
+#endif
+ result = cairo_status(instdata->context);
+ cairo_restore(instdata->context);
+
+ PyMem_Free(utf8str);
+ instdata->somethingdrawn = 1;
+ instdata->imagechanged = 1;
+
+ if ( result != CAIRO_STATUS_SUCCESS ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_drawText: "
+ "drawing the text was not successful");
+ return 0;
+ }
- /* TODO: implement */
- strcpy(grdelerrmsg, "cairoCFerBind_drawText: unexpected error, "
- "stubbed function");
- return 0;
+ return 1;
}
diff --git a/fer/cferbind/cairoCFerBind_saveWindow.c b/fer/cferbind/cairoCFerBind_saveWindow.c
index 7257cd9..06ec36e 100644
--- a/fer/cferbind/cairoCFerBind_saveWindow.c
+++ b/fer/cferbind/cairoCFerBind_saveWindow.c
@@ -38,7 +38,7 @@
* A filename consisting of only an extension (e.g., ".png")
* will be treated as not having an extension.
*
- * If transbkg is non-zero, the saved image is filled with the
+ * If transbkg is zero, the saved image is filled with the
* last clearing color before drawing the current image with a
* transparent background.
*
@@ -62,20 +62,20 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
cairo_t *annocontext;
double padding;
double penwidth;
- double annowidth;
- double annoheight;
cairo_surface_t *savesurface;
cairo_t *savecontext;
PangoLayout *annolayout;
+ double layoutwidth;
double layoutheight;
cairo_status_t result;
char savename[CCFB_NAME_SIZE];
double savewidth;
double saveheight;
- int usealpha;
+ int noalpha;
double scalefactor;
double offset;
CCFBPicture *thispic;
+ cairo_rectangle_t extents;
/* Sanity checks - this should NOT be called by the PyQtCairo engine */
if ( self->enginename != CairoCFerBindName ) {
@@ -223,19 +223,27 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
/* Remove the last newline */
allannos[j-1] = '\0';
/* padding and pen width in points */
- padding = 12.0;
+ padding = 9.0;
penwidth = 2.0;
/*
- * Create the SVG recording surface for the annotations;
+ * Create the recording surface for the annotations;
* keep the same width, less padding, as the image; the
* height is actually arbitrary.
*/
- annowidth = (double) (instdata->imagewidth * CCFB_POINTS_PER_PIXEL
- - 2 * padding);
- annoheight = (double) (instdata->imageheight * CCFB_POINTS_PER_PIXEL
- - 2 * padding);
- annosurface = cairo_svg_surface_create_for_stream(
- NULL, NULL, annowidth, annoheight);
+ extents.x = 0.0;
+ extents.y = 0.0;
+ extents.width = instdata->imagewidth * 72.0 / instdata->pixelsperinch - 2.0 * padding;
+ extents.height = instdata->imageheight * 72.0 / instdata->pixelsperinch - 2.0 * padding;
+#if 0
+#ifdef CAIRO_HAS_RECORDING_SURFACE
+ annosurface = cairo_recording_surface_create(CAIRO_CONTENT_COLOR_ALPHA, &extents);
+#else
+ annosurface = cairo_svg_surface_create_for_stream(NULL, NULL, extents.width, extents.height);
+#endif
+#else
+ /* Always use the SVG surface for the old Pango library */
+ annosurface = cairo_svg_surface_create_for_stream(NULL, NULL, extents.width, extents.height);
+#endif
if ( cairo_surface_status(annosurface) != CAIRO_STATUS_SUCCESS ) {
strcpy(grdelerrmsg, "cairoCFerBind_saveWindow: "
"problems creating a temp surface for annotations");
@@ -255,14 +263,24 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
}
/* Create the Pango layout for the annotations */
annolayout = pango_cairo_create_layout(annocontext);
- pango_layout_set_width(annolayout, (int) (PANGO_SCALE * annowidth + 0.5));
+ pango_layout_set_width(annolayout, (int) (PANGO_SCALE * (extents.width) + 0.5));
pango_layout_set_wrap(annolayout, PANGO_WRAP_WORD_CHAR);
pango_layout_set_markup(annolayout, allannos, j-1);
/* Apply the annotations to this cairo surface */
pango_cairo_show_layout(annocontext, annolayout);
- /* Get the actual size of the annotations in "device units" (points) */
- pango_layout_get_pixel_size(annolayout, &j, &k);
- layoutheight = (double) k;
+ /* Get the actual size of the annotations in Pango scaled surface units */
+ pango_layout_get_size(annolayout, NULL, &k);
+ if ( k > 0 ) {
+ layoutheight = (double) k / PANGO_SCALE + 2.0 * padding;
+ layoutwidth = extents.width + 2.0 * padding;
+ }
+ else {
+ /* No content in the annotations so ignore them */
+ padding = 0.0;
+ penwidth = 0.0;
+ layoutheight = 0.0;
+ layoutwidth = 0.0;
+ }
/* Done with the Pango layout */
g_object_unref(annolayout);
/* Make sure the context is not in an error state */
@@ -295,9 +313,10 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
}
else {
annosurface = NULL;
- padding = 0;
- penwidth = 0;
- layoutheight = 0;
+ padding = 0.0;
+ penwidth = 0.0;
+ layoutheight = 0.0;
+ layoutwidth = 0.0;
}
/* Create a temporary surface for the desired format */
@@ -307,12 +326,25 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
saveheight = (double) ypixels;
scalefactor = savewidth / instdata->imagewidth;
scalefactor += saveheight / instdata->imageheight;
- /* layoutheight, padding, and recording surfaces are in points */
- scalefactor /= 2.0 * CCFB_POINTS_PER_PIXEL;
- saveheight += scalefactor * (layoutheight + 2.0 * padding);
- savesurface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
- (int) savewidth, (int) saveheight );
- usealpha = 1;
+ if ( instdata->imageformat == CCFBIF_PNG ) {
+ /* memory image is in pixels value given in imagewidth, imageheight */
+ scalefactor *= 0.5;
+ }
+ else {
+ /* recording surface is actually in points value of imagewidth, imageheight */
+ scalefactor *= instdata->pixelsperinch / 144.0;
+ }
+ saveheight += scalefactor * layoutheight;
+ if ( instdata->noalpha ) {
+ savesurface = cairo_image_surface_create(CAIRO_FORMAT_RGB24,
+ (int) savewidth, (int) saveheight);
+ noalpha = 1;
+ }
+ else {
+ savesurface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
+ (int) savewidth, (int) saveheight);
+ noalpha = 0;
+ }
}
else if ( strcmp(fmtext, "PDF") == 0 ) {
/* Surface size is given in (floating-point) points */
@@ -320,11 +352,12 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
saveheight = yinches * 72.0;
scalefactor = savewidth / instdata->imagewidth;
scalefactor += saveheight / instdata->imageheight;
- /* instdata image size is in pixels */
- scalefactor /= 2.0 * CCFB_POINTS_PER_PIXEL;
- saveheight += scalefactor * (layoutheight + 2.0 * padding);
+ /* recording surface is actually in points value of imagewidth, imageheight */
+ scalefactor *= instdata->pixelsperinch / 144.0;
+ saveheight += scalefactor * layoutheight;
savesurface = cairo_pdf_surface_create(savename, savewidth, saveheight);
- usealpha = 0;
+ /* Never use the alpha channel */
+ noalpha = 1;
}
else if ( strcmp(fmtext, "PS") == 0 ) {
/* Surface size is given in (floating-point) points */
@@ -332,9 +365,9 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
saveheight = yinches * 72.0;
scalefactor = savewidth / instdata->imagewidth;
scalefactor += saveheight / instdata->imageheight;
- /* instdata image size is in pixels */
- scalefactor /= 2.0 * CCFB_POINTS_PER_PIXEL;
- saveheight += scalefactor * (layoutheight + 2.0 * padding);
+ /* recording surface is actually in points value of imagewidth, imageheight */
+ scalefactor *= instdata->pixelsperinch / 144.0;
+ saveheight += scalefactor * layoutheight;
if ( savewidth > saveheight ) {
/*
* Landscape orientation
@@ -347,8 +380,8 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
/* Portrait orientation */
savesurface = cairo_ps_surface_create(savename, savewidth, saveheight);
}
- /* Do not use alpha channel; otherwise it will be created with an embedded image */
- usealpha = 0;
+ /* Never use the alpha channel */
+ noalpha = 1;
}
else if ( strcmp(fmtext, "SVG") == 0 ) {
/* Surface size is given in (floating-point) points */
@@ -356,11 +389,11 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
saveheight = yinches * 72.0;
scalefactor = savewidth / instdata->imagewidth;
scalefactor += saveheight / instdata->imageheight;
- /* instdata image size is in pixels */
- scalefactor /= 2.0 * CCFB_POINTS_PER_PIXEL;
- saveheight += scalefactor * (layoutheight + 2.0 * padding);
+ /* recording surface is actually in points value of imagewidth, imageheight */
+ scalefactor *= instdata->pixelsperinch / 144.0;
+ saveheight += scalefactor * layoutheight;
savesurface = cairo_svg_surface_create(savename, savewidth, saveheight);
- usealpha = 1;
+ noalpha = instdata->noalpha;
}
else {
sprintf(grdelerrmsg, "cairoCFerBind_saveWindow: "
@@ -386,14 +419,6 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
return 0;
}
- if ( (strcmp(fmtext, "PNG") == 0) && (instdata->imageformat == CCFBIF_PNG) ) {
- /*
- * Both surface use units of pixels, so fix the scaling
- * factor computed for recording surfaces, which use points.
- */
- scalefactor *= CCFB_POINTS_PER_PIXEL;
- }
-
/*
* If landscape PostScript, translate and rotate the coordinate system
* to correct for swapped savewidth and saveheight (per Cairo requirements).
@@ -423,30 +448,30 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
}
}
- /* Set the scale on the destination so the source will just fit. */
- cairo_scale(savecontext, scalefactor, scalefactor);
-
/*
* If not a transparent background, or if the alpha channel
* is not supported, fill in the background (with an opaque
* color if the alpha channel is not supported).
*/
- if ( (! transbkg) || (! usealpha) ) {
- if ( usealpha )
+ if ( (! transbkg) || noalpha ) {
+ if ( noalpha )
+ cairo_set_source_rgb(savecontext,
+ instdata->lastclearcolor.redfrac,
+ instdata->lastclearcolor.greenfrac,
+ instdata->lastclearcolor.bluefrac);
+ else
cairo_set_source_rgba(savecontext,
instdata->lastclearcolor.redfrac,
instdata->lastclearcolor.greenfrac,
instdata->lastclearcolor.bluefrac,
instdata->lastclearcolor.opaquefrac);
- else
- cairo_set_source_rgb(savecontext,
- instdata->lastclearcolor.redfrac,
- instdata->lastclearcolor.greenfrac,
- instdata->lastclearcolor.bluefrac);
cairo_paint(savecontext);
}
- /* Check using layoutheight just in case there was no text */
+ /* Set the scale on the destination so the source will just fit. */
+ cairo_scale(savecontext, scalefactor, scalefactor);
+
+ /* Check if there are annotations (with content) to be drawn */
if ( layoutheight > 0.0 ) {
/*
* Draw the annotations in a white-filled, black-outlined
@@ -454,19 +479,18 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
*/
cairo_new_path(savecontext);
cairo_rectangle(savecontext, 0.5 * penwidth, 0.5 * penwidth,
- (instdata->imagewidth * CCFB_POINTS_PER_PIXEL - penwidth),
- layoutheight + 2.0 * padding - penwidth);
+ layoutwidth - penwidth, layoutheight - penwidth);
/* white fill */
- if ( usealpha )
- cairo_set_source_rgba(savecontext, 1.0, 1.0, 1.0, 1.0);
- else
+ if ( noalpha )
cairo_set_source_rgb(savecontext, 1.0, 1.0, 1.0);
+ else
+ cairo_set_source_rgba(savecontext, 1.0, 1.0, 1.0, 1.0);
cairo_fill_preserve(savecontext);
/* black outline */
- if ( usealpha )
- cairo_set_source_rgba(savecontext, 0.0, 0.0, 0.0, 1.0);
- else
+ if ( noalpha )
cairo_set_source_rgb(savecontext, 0.0, 0.0, 0.0);
+ else
+ cairo_set_source_rgba(savecontext, 0.0, 0.0, 0.0, 1.0);
cairo_set_line_width(savecontext, penwidth);
cairo_set_dash(savecontext, NULL, 0, 0.0);
cairo_set_line_cap(savecontext, CAIRO_LINE_CAP_SQUARE);
@@ -474,11 +498,12 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
cairo_stroke(savecontext);
/*
* Draw the transparent-background annotations image
- * onto this temporary surface within the rectangle.
+ * onto the save surface within the rectangle.
*/
cairo_set_source_surface(savecontext, annosurface, padding, padding);
cairo_paint(savecontext);
- offset = layoutheight + 2.0 * padding;
+ cairo_surface_flush(savesurface);
+ offset = layoutheight;
}
else {
offset = 0.0;
diff --git a/fer/cferbind/cairoCFerBind_setWidthFactor.c b/fer/cferbind/cairoCFerBind_setWidthFactor.c
index 1a7ecd4..bdd558e 100644
--- a/fer/cferbind/cairoCFerBind_setWidthFactor.c
+++ b/fer/cferbind/cairoCFerBind_setWidthFactor.c
@@ -31,7 +31,7 @@ grdelBool cairoCFerBind_setWidthFactor(CFerBind *self, double factor)
}
instdata = (CairoCFerBindData *) self->instancedata;
- instdata->widthfactor = CCFB_WINDOW_DPI * factor / 72.0;
+ instdata->widthfactor = factor * instdata->pixelsperinch / 72.0;
return 1;
}
diff --git a/fer/cferbind/cairoCFerBind_setWidthFactor.c b/fer/cferbind/cairoCFerBind_setWindowDpi.c
similarity index 50%
copy from fer/cferbind/cairoCFerBind_setWidthFactor.c
copy to fer/cferbind/cairoCFerBind_setWindowDpi.c
index 1a7ecd4..bdee4fb 100644
--- a/fer/cferbind/cairoCFerBind_setWidthFactor.c
+++ b/fer/cferbind/cairoCFerBind_setWindowDpi.c
@@ -1,37 +1,33 @@
/* Python.h should always be first */
#include <Python.h>
+#include <cairo/cairo.h>
#include <string.h>
#include "grdel.h"
#include "cferbind.h"
#include "cairoCFerBind.h"
/*
- * Set the scaling factor for line widths and symbol sizes
- * to convert from points (1/72 inches) to pixels, and to
- * apply any additional width scaling specified by factor.
+ * Set the DPI for this "Window". Adjusts the line width scaling factor.
+ * Does not adjust window size since the should precede a window resize
+ * command. Does not adjust font sizes as these are generated as needed.
*
* Returns one if successful. If an error occurs, grdelerrmsg
* is assigned an appropriate error message and zero is returned.
*/
-grdelBool cairoCFerBind_setWidthFactor(CFerBind *self, double factor)
+grdelBool cairoCFerBind_setWindowDpi(CFerBind *self, double newdpi)
{
CairoCFerBindData *instdata;
- /* Sanity check */
+ /* Sanity check - allow PyQtCairoCFerBindName for internal use */
if ( (self->enginename != CairoCFerBindName) &&
(self->enginename != PyQtCairoCFerBindName) ) {
- strcpy(grdelerrmsg, "cairoCFerBind_setWidthFactor: unexpected error, "
+ strcpy(grdelerrmsg, "cairoCFerBind_setWindowDpi: unexpected error, "
"self is not a valid CFerBind struct");
return 0;
}
- if ( factor <= 0.0 ) {
- strcpy(grdelerrmsg, "cairoCFerBind_setWidthFactor: "
- "scaling factor must be positive");
- return 0;
- }
-
instdata = (CairoCFerBindData *) self->instancedata;
- instdata->widthfactor = CCFB_WINDOW_DPI * factor / 72.0;
+ instdata->widthfactor *= newdpi / instdata->pixelsperinch;
+ instdata->pixelsperinch = newdpi;
return 1;
}
diff --git a/fer/cferbind/cairoCFerBind_textSize.c b/fer/cferbind/cairoCFerBind_textSize.c
new file mode 100644
index 0000000..c46c012
--- /dev/null
+++ b/fer/cferbind/cairoCFerBind_textSize.c
@@ -0,0 +1,110 @@
+/* Python.h should always be first */
+#include <Python.h>
+#include <string.h>
+#include "grdel.h"
+#include "cferbind.h"
+#include "cairoCFerBind.h"
+#include "utf8str.h"
+
+/*
+ * Return the size of the text if drawn to this "Window" using the given font.
+ * Text is a UTF-8 encoding of the desired text, and textlen is length of the
+ * text array (which may be more than the number of "characters" in the text).
+ * The value returned at widthptr is amount to advance in X direction to draw
+ * any subsequent text after this text (not the width of the text glyphs as
+ * drawn). The value returned at heightptr is the height for the font
+ * (recommended line spacing).
+ *
+ * Returns one if successful. If an error occurs, grdelerrmsg
+ * is assigned an appropriate error message and zero is returned.
+ */
+grdelBool cairoCFerBind_textSize(CFerBind *self, const char *text, int textlen,
+ grdelType font, double *widthptr, double *heightptr)
+{
+ CairoCFerBindData *instdata;
+ CCFBFont *fontobj;
+ char *utf8str;
+#ifdef USEPANGOCAIRO
+ PangoLayout *layout;
+ int pangowidth;
+ int pangoheight;
+#else
+ cairo_font_extents_t fontextents;
+ cairo_text_extents_t textextents;
+#endif
+ cairo_status_t result;
+
+ /* Sanity check */
+ if ( (self->enginename != CairoCFerBindName) &&
+ (self->enginename != PyQtCairoCFerBindName) ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_textSize: unexpected error, "
+ "self is not a valid CFerBind struct");
+ return 0;
+ }
+ instdata = (CairoCFerBindData *) self->instancedata;
+ if ( instdata->context == NULL ) {
+ /* Create the Cairo Surface and Context if they do not exist */
+ if ( ! cairoCFerBind_createSurface(self) ) {
+ /* grdelerrmsg already assigned */
+ return 0;
+ }
+ }
+ fontobj = (CCFBFont *) font;
+ if ( fontobj->id != CCFBFontId ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_textSize: unexpected error, "
+ "font is not CCFBFont struct");
+ return 0;
+ }
+ if ( textlen < 1 ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_textSize: textlen is not positive");
+ return 0;
+ }
+
+ /* Convert to a null-terminated string */
+ utf8str = (char *) PyMem_Malloc((textlen + 1) * sizeof(char));
+ if ( utf8str == NULL ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_textSize: "
+ "out of memory for a copy of the text string");
+ return 0;
+ }
+ strncpy(utf8str, text, textlen);
+ utf8str[textlen] = '\0';
+
+ /* Get the extents of this text if drawn using the given font */
+ cairo_save(instdata->context);
+#ifdef USEPANGOCAIRO
+ layout = pango_cairo_create_layout(instdata->context);
+ pango_layout_set_font_description(layout, fontobj->fontdesc);
+ pango_layout_set_text(layout, text, textlen);
+ pango_layout_get_size(layout, &pangowidth, &pangoheight);
+ g_object_unref(layout);
+ *widthptr = (double) pangowidth / PANGO_SCALE;
+ *heightptr = (double) pangoheight / PANGO_SCALE;
+#else
+ cairo_set_font_face(instdata->context, fontobj->fontface);
+ cairo_set_font_size(instdata->context, fontobj->fontsize);
+ cairo_font_extents(instdata->context, &fontextents);
+ cairo_text_extents(instdata->context, utf8str, &textextents);
+ *widthptr = textextents.x_advance;
+ *heightptr = fontextents.height;
+#endif
+ result = cairo_status(instdata->context);
+ cairo_restore(instdata->context);
+
+ PyMem_Free(utf8str);
+
+ /* Convert returned sizes to pixels */
+ if ( instdata->imageformat != CCFBIF_PNG ) {
+ *widthptr *= (instdata->pixelsperinch / 72.0);
+ *heightptr *= (instdata->pixelsperinch / 72.0);
+ }
+
+ if ( result != CAIRO_STATUS_SUCCESS ) {
+ strcpy(grdelerrmsg, "cairoCFerBind_textSize: "
+ "getting the text size was not successful");
+ return 0;
+ }
+
+ return 1;
+}
+
diff --git a/fer/cferbind/cairoCFerBind_windowScreenInfo.c b/fer/cferbind/cairoCFerBind_windowScreenInfo.c
index 4a81d94..9bc4076 100644
--- a/fer/cferbind/cairoCFerBind_windowScreenInfo.c
+++ b/fer/cferbind/cairoCFerBind_windowScreenInfo.c
@@ -6,8 +6,7 @@
#include "cairoCFerBind.h"
/*
- * Returns information about the default screen (display) of
- * the window. In this case (Cairo), these are hard-coded values.
+ * Returns information about the default screen (display) of the window.
*
* If an error occurs, grdelerrmsg is assigned an appropriate
* error message and zero is returned; otherwise one is returned.
@@ -16,17 +15,20 @@ grdelBool cairoCFerBind_windowScreenInfo(CFerBind *self,
float *dpix, float *dpiy,
int *screenwidth, int *screenheight)
{
+ CairoCFerBindData *instdata;
+
/* Sanity check - this should NOT be called by the PyQtCairo engine */
if ( self->enginename != CairoCFerBindName ) {
strcpy(grdelerrmsg, "cairoCFerBind_windowScreenInfo: unexpected error, "
"self is not a valid CFerBind struct");
return 0;
}
+ instdata = (CairoCFerBindData *) self->instancedata;
- *dpix = (float) CCFB_WINDOW_DPI;
- *dpiy = (float) CCFB_WINDOW_DPI;
- *screenwidth = (int) (20 * CCFB_WINDOW_DPI);
- *screenheight = (int) (11.25 * CCFB_WINDOW_DPI);
+ *dpix = (float) instdata->pixelsperinch;
+ *dpiy = (float) instdata->pixelsperinch;
+ *screenwidth = (int) (20 * instdata->pixelsperinch);
+ *screenheight = (int) (12 * instdata->pixelsperinch);
return 1;
}
diff --git a/fer/cferbind/cferbind.h b/fer/cferbind/cferbind.h
index eeaa9d7..8d2bca8 100644
--- a/fer/cferbind/cferbind.h
+++ b/fer/cferbind/cferbind.h
@@ -40,6 +40,7 @@ typedef struct CFerBind_struct {
grdelBool (*redrawWindow)(struct CFerBind_struct *self, grdelType fillcolor);
grdelBool (*windowScreenInfo)(struct CFerBind_struct *self, float *dpix, float *dpiy,
int *screenwidth, int *screenheight);
+ grdelBool (*setWindowDpi)(struct CFerBind_struct *self, double newdpi);
grdelBool (*resizeWindow)(struct CFerBind_struct *self,
double width, double height);
grdelBool (*scaleWindow)(struct CFerBind_struct *self, double scale);
@@ -83,6 +84,8 @@ typedef struct CFerBind_struct {
grdelBool (*drawRectangle)(struct CFerBind_struct *self,
double left, double bottom, double right,
double top, grdelType brush, grdelType pen);
+ grdelBool (*textSize)(struct CFerBind_struct *self, const char *text, int textlen,
+ grdelType font, double *widthptr, double *heightptr);
grdelBool (*drawText)(struct CFerBind_struct *self, const char *text, int textlen,
double startx, double starty, grdelType font, grdelType color,
double rotation);
@@ -93,12 +96,13 @@ typedef struct CFerBind_struct {
* instance and any other appropriate initialization for this "Window".
*/
CFerBind *cferbind_createWindow(const char *enginename, int engnamelen,
- const char *windowname, int winnamelen, int visible);
+ const char *windowname, int winnamelen,
+ int visible, int noalpha);
/* The createWindow function for the Cairo engine */
-CFerBind *cairoCFerBind_createWindow(void);
+CFerBind *cairoCFerBind_createWindow(int noalpha);
/* The createWindow function for the PyQtCairo engine */
CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen,
- int visible);
+ int visible, int noalpha);
#endif
diff --git a/fer/cferbind/cferbind_createWindow.c b/fer/cferbind/cferbind_createWindow.c
index 670e1da..9b2a3f1 100644
--- a/fer/cferbind/cferbind_createWindow.c
+++ b/fer/cferbind/cferbind_createWindow.c
@@ -27,7 +27,8 @@ const int lenPyQtCairoCFerBindName = 11;
* error message and NULL is returned.
*/
CFerBind *cferbind_createWindow(const char *enginename, int engnamelen,
- const char *windowname, int winnamelen, int visible)
+ const char *windowname, int winnamelen,
+ int visible, int noalpha)
{
CFerBind *bindings;
int k;
@@ -36,7 +37,7 @@ CFerBind *cferbind_createWindow(const char *enginename, int engnamelen,
if ( (engnamelen == lenCairoCFerBindName) &&
(strncmp(enginename, CairoCFerBindName, lenCairoCFerBindName) == 0) ) {
/* Create a bindings instance for a Cairo engine */
- bindings = cairoCFerBind_createWindow();
+ bindings = cairoCFerBind_createWindow(noalpha);
return bindings;
}
@@ -44,7 +45,7 @@ CFerBind *cferbind_createWindow(const char *enginename, int engnamelen,
if ( (engnamelen == lenPyQtCairoCFerBindName) &&
(strncmp(enginename, PyQtCairoCFerBindName, lenPyQtCairoCFerBindName) == 0) ) {
/* Create a bindings instance for a PipedImager engine */
- bindings = pyqtcairoCFerBind_createWindow(windowname, winnamelen, visible);
+ bindings = pyqtcairoCFerBind_createWindow(windowname, winnamelen, visible, noalpha);
return bindings;
}
diff --git a/fer/cferbind/pyqtcairoCFerBind_createWindow.c b/fer/cferbind/pyqtcairoCFerBind_createWindow.c
index 30805ec..8f284ac 100644
--- a/fer/cferbind/pyqtcairoCFerBind_createWindow.c
+++ b/fer/cferbind/pyqtcairoCFerBind_createWindow.c
@@ -15,7 +15,7 @@
* an appropriate error message and NULL is returned.
*/
CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen,
- int visible)
+ int visible, int noalpha)
{
CFerBind *bindings;
CairoCFerBindData *instdata;
@@ -40,6 +40,7 @@ CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen
bindings->clearWindow = pyqtcairoCFerBind_clearWindow;
bindings->redrawWindow = pyqtcairoCFerBind_redrawWindow;
bindings->windowScreenInfo = pyqtcairoCFerBind_windowScreenInfo;
+ bindings->setWindowDpi = NULL;
bindings->resizeWindow = pyqtcairoCFerBind_resizeWindow;
bindings->scaleWindow = pyqtcairoCFerBind_scaleWindow;
bindings->showWindow = pyqtcairoCFerBind_showWindow;
@@ -70,6 +71,7 @@ CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen
bindings->drawPoints = cairoCFerBind_drawPoints;
bindings->drawPolygon = cairoCFerBind_drawPolygon;
bindings->drawRectangle = cairoCFerBind_drawRectangle;
+ bindings->textSize = cairoCFerBind_textSize;
bindings->drawText = cairoCFerBind_drawText;
/* Create the instance-specific data structure */
@@ -88,9 +90,11 @@ CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen
instdata = (CairoCFerBindData *) bindings->instancedata;
/* Cairo surface type - must be an image surface */
instdata->imageformat = CCFBIF_PNG;
- /* default image size and minimum allowed value */
- instdata->imagewidth = (int) 10.5 * CCFB_WINDOW_DPI;
- instdata->imageheight = (int) 8.5 * CCFB_WINDOW_DPI;
+ /* default DPI, image size, line width scaling factor, and minimum allowed value */
+ instdata->pixelsperinch = 96;
+ instdata->imagewidth = (int) (10.2 * instdata->pixelsperinch);
+ instdata->imageheight = (int) (8.8 * instdata->pixelsperinch);
+ instdata->widthfactor = 0.72 * instdata->pixelsperinch / 72.0;
instdata->minsize = 128;
/* default clear color of opaque white */
instdata->lastclearcolor.id = CCFBColorId;
@@ -99,7 +103,9 @@ CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen
instdata->lastclearcolor.bluefrac = 1.0;
instdata->lastclearcolor.opaquefrac = 1.0;
/* default line width scaling factor */
- instdata->widthfactor = CCFB_WINDOW_DPI * 0.75 / 72.0;
+
+ /* save the decision about the alpha channel */
+ instdata->noalpha = noalpha;
/*
* Get bindings to PipedImagerPQ for displaying the image.
@@ -107,7 +113,7 @@ CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen
* PipedImager methods interacting with the viewer.
*/
instdata->viewer = grdelWindowCreate("PipedImagerPQ", 13, windowname,
- windnamelen, visible);
+ windnamelen, visible, noalpha);
if ( instdata->viewer == NULL ) {
/* grdelerrmsg already assigned */
PyMem_Free(bindings->instancedata);
diff --git a/fer/cferbind/pyqtcairoCFerBind_updateWindow.c b/fer/cferbind/pyqtcairoCFerBind_updateWindow.c
index 063bb8e..108a02e 100644
--- a/fer/cferbind/pyqtcairoCFerBind_updateWindow.c
+++ b/fer/cferbind/pyqtcairoCFerBind_updateWindow.c
@@ -73,8 +73,12 @@ grdelBool pyqtcairoCFerBind_updateWindow(CFerBind *self)
if ( instdata->firstpic != NULL ) {
/* create a temporary surface to combine all the pictures */
- savesurface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
- instdata->imagewidth, instdata->imageheight);
+ if ( instdata->noalpha )
+ savesurface = cairo_image_surface_create(CAIRO_FORMAT_RGB24,
+ instdata->imagewidth, instdata->imageheight);
+ else
+ savesurface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
+ instdata->imagewidth, instdata->imageheight);
if ( cairo_surface_status(savesurface) != CAIRO_STATUS_SUCCESS ) {
strcpy(grdelerrmsg, "pyqtCairoCFerBind_updateWindow: problems "
"creating a combined pictures image surface");
diff --git a/fer/common/ferret.parm b/fer/common/ferret.parm
index 18f349b..c3c7465 100644
--- a/fer/common/ferret.parm
+++ b/fer/common/ferret.parm
@@ -38,6 +38,11 @@
* added patnam_sigma, patnam_curvx, patnam_curvy
* turned max_context into a variable to allow aux frames above it
* V692 7/14 *acm* new transform @WGT, ticket 2180
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* 12/14 *sh* _DQ_ and _SQ_ alternatives to double and single quote marks
+* 3/15 *sh* pauxrgrd_fmrc for forecast-time index orthoganalizing
+* V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
+* V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
* this should always match maxdsets in TMAP_FORMAT:
INTEGER max_gfdl_dsets
@@ -139,8 +144,9 @@
. cat_temp_var, cat_pseudo_var,
. cat_constant, cat_file_rev,
. cat_const_var, cat_string,
- . cat_counter_var, cat_attrib_val,
- . cat_aggregate_var, cat_pystat_var
+ . cat_counter_var, cat_attrib_val,
+ . cat_agg_e_var, cat_agg_f_var,
+ . cat_pystat_var
PARAMETER ( cat_work_mr = -9,
. cat_file_var = 1,
. cat_calc_var = 2,
@@ -156,8 +162,9 @@
. cat_string = 12,
. cat_counter_var= 13,
. cat_attrib_val = 14,
- . cat_aggregate_var= 15,
- . cat_pystat_var = 16 )
+ . cat_agg_e_var = 15,
+ . cat_agg_f_var = 16,
+ . cat_pystat_var = 17 )
* codes referring to the user-defined variables
INTEGER uvar_deleted,
@@ -282,7 +289,9 @@
. trans_4d_good_pt,
. trans_4d_bad_pt,
. trans_reduced,
- . trans_4d_sum
+ . trans_4d_sum,
+ . trans_smth_box_p,
+ . trans_4d_std
INTEGER trans_nrst_dist_abv,
. trans_nrst_dist_blw,
. trans_nrst_indx_abv,
@@ -319,7 +328,8 @@
. trans_event_mask = 26,
. trans_avg_wgt = 27,
. trans_4d_avg_wgt = 28,
- . max_plane_transform = trans_4d_avg_wgt )
+ . trans_smth_box_p = 29,
+ . max_plane_transform = trans_smth_box_p )
PARAMETER ( trans_average = trans_compress_code + 1,
. trans_interpolate = trans_compress_code + 2,
@@ -339,7 +349,8 @@
. trans_4d_bad_pt = trans_compress_code + 16,
. trans_reduced = trans_compress_code + 17,
. trans_4d_sum = trans_compress_code + 18,
- . trans_std_dev = trans_compress_code + 19)
+ . trans_std_dev = trans_compress_code + 19,
+ . trans_4d_std = trans_compress_code + 20)
* codes to designate regridding transformations
! unused but required to compile V4.11 code:
@@ -366,6 +377,8 @@
. prgrd_modmin,
. prgrd_modmax,
. prgrd_nearest,
+ . prgrd_bin,
+ . prgrd_nbin,
. prgrd_from_source,
. prgrd_from_ntrmed,
. pinterpolate
@@ -390,6 +403,8 @@
. prgrd_modmin = 17,
. prgrd_modmax = 18,
. prgrd_nearest = 19,
+ . prgrd_bin = 21,
+ . prgrd_nbin = 22,
. prgrd_from_source = -6,
. prgrd_from_ntrmed = -7,
. pinterpolate = 0 )
@@ -399,32 +414,39 @@
. pauxrgrd_linear,
. pauxrgrd_average,
. pauxrgrd_pwlave,
- . pauxrgrd_thick_ave
+ . pauxrgrd_thick_ave,
+ . pauxrgrd_fmrc
PARAMETER ( max_auxregrid_trans= max_regrid_trans+6,
. pauxrgrd_linear = max_regrid_trans+1,
. pauxrgrd_average = max_regrid_trans+2,
. pauxrgrd_pwlave = max_regrid_trans+3,
- . pauxrgrd_thick_ave = max_regrid_trans+4 )
+ . pauxrgrd_thick_ave = max_regrid_trans+4,
+ . pauxrgrd_fmrc = max_regrid_trans+5 )
* auxiliary variable pointer merging
+* paux_stat_init - initialize to 0
* paux_stat_na - no inherited aux coord
* paux_stat_passed - aux coords inherited passively
* paux_stat_needed - aux coords inherited and desired in graphics
* paux_stat_used - aux coords inherited but already regridded
* paux_stat_conflict - vars w differing aux coordinates in one expression
* paux_stat_notfound - named aux var not found in this dataset
- INTEGER paux_stat_na ,
+ INTEGER paux_stat_init ,
+ . paux_stat_na ,
. paux_stat_passed ,
. paux_stat_needed ,
. paux_stat_used ,
. paux_stat_conflict,
- . paux_stat_notfound
- PARAMETER ( paux_stat_na = 1,
+ . paux_stat_notfound,
+ . paux_stat_false_1pt_regrid
+ PARAMETER ( paux_stat_init = 0,
+ . paux_stat_na = 1,
. paux_stat_passed = 2,
. paux_stat_needed = 3,
. paux_stat_used = 4,
. paux_stat_conflict = 5,
- . paux_stat_notfound = 6)
+ . paux_stat_notfound = 6,
+ . paux_stat_false_1pt_regrid = 7 )
* codes to designate classes of items used within algebraic expressions
INTEGER alg_operator,
@@ -514,6 +536,14 @@
INTEGER pdset_irrelevant
PARAMETER ( pdset_irrelevant = 0 )
+* virtual dataset containing user-defined variables, used in attribute handling
+ INTEGER pdset_uvars
+ PARAMETER ( pdset_uvars = -1 )
+
+* virtual dataset containing user-defined axes (coord vars), used in attribute handling
+ INTEGER pdset_coordvars
+ PARAMETER ( pdset_coordvars = -2 )
+
* pointers to the 7 fundamental axes of the Cox/Phil./Sieg. model
* eg mxt points to the X axis used by TEMP (and SALT, TAU, etc.)
INTEGER mtime, mxt, mxu, myt, myu, mzt, mzw
@@ -694,7 +724,13 @@
. pinfer_frm_aux = -123455 )
* special attribute names
- CHARACTER*11 patnam_sigma, patnam_curvx, patnam_curvy
- PARAMETER ( patnam_sigma = '__SigmaRef_',
- . patnam_curvx = '__CurvxRef_',
- . patnam_curvy = '__CurvxRef_' )
\ No newline at end of file
+ CHARACTER*12 patnam_layerz, patnam_curvx, patnam_curvy
+ PARAMETER ( patnam_layerz = '__LayerzRef_',
+ . patnam_curvx = '__CurvxRef_',
+ . patnam_curvy = '__CurvyRef_' )
+
+* alternative quotation atoms
+ CHARACTER*4 p_DQ_quote, p_SQ_quote
+ PARAMETER ( p_DQ_quote = '_DQ_',
+ . p_SQ_quote = '_SQ_' )
+
diff --git a/fer/common/fgrdel.cmn b/fer/common/fgrdel.cmn
index a7a9202..9799dfd 100644
--- a/fer/common/fgrdel.cmn
+++ b/fer/common/fgrdel.cmn
@@ -53,6 +53,9 @@
* Scaling factor for line widths and symbol sizes
REAL*4 thickfactor(maxwindowobjs)
+* Width of outlines for rectangles and other polygons
+ REAL*4 outlinewidth(maxwindowobjs)
+
* Coordinate transformation information (independent of window)
* View limits defined in [0,1] normalized device coordinates
REAL*4 viewleftfrac(maxtransforms),
@@ -147,7 +150,7 @@
. penobjs, symbolobjs,
.
. colorrgba, symbolsize, windowdpix, windowdpiy,
- . thickfactor, windowwidth, windowheight,
+ . thickfactor, outlinewidth, windowwidth, windowheight,
. ndcxmax, ndcymax, viewleftfrac, viewbottomfrac,
. viewrightfrac, viewtopfrac, viewleftcoord,
. viewbottomcoord, viewrightcoord, viewtopcoord,
diff --git a/fer/common/interp_stack.parm b/fer/common/interp_stack.parm
index ba1014e..3abc02b 100644
--- a/fer/common/interp_stack.parm
+++ b/fer/common/interp_stack.parm
@@ -6,6 +6,7 @@
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
* V690 12/13 *sh* for auto-curvilinear Ferret
* V692 7/14 *acm* added isact_avg_wgt
+* V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
* minimum working space provided to transformations
INTEGER iswksiz
@@ -103,6 +104,7 @@
. isact_smth_median,
. isact_smth_min,
. isact_smth_box,
+ . isact_smth_box_p,
. isact_smth_binml,
. isact_smth_hanng,
. isact_smth_parzn,
@@ -132,7 +134,8 @@
. isact_nrst_indx_blw,
. isact_event_mask,
. isact_avg_wgt,
- . isact_avg_4d_wgt
+ . isact_avg_4d_wgt,
+ . isact_std_4d
PARAMETER (
. isact_interp = isact_trans_code + trans_interpolate,
@@ -145,6 +148,7 @@
. isact_max = isact_trans_code + trans_max,
. isact_min = isact_trans_code + trans_min,
. isact_smth_box = isact_trans_code + trans_smth_box,
+ . isact_smth_box_p = isact_trans_code + trans_smth_box_p,
. isact_smth_binml = isact_trans_code + trans_smth_binml,
. isact_smth_hanng = isact_trans_code + trans_smth_hanng,
. isact_smth_parzn = isact_trans_code + trans_smth_parzn,
@@ -178,7 +182,8 @@
. isact_nrst_indx_blw = isact_trans_code + trans_nrst_indx_blw,
. isact_event_mask = isact_trans_code + trans_event_mask,
. isact_avg_wgt = isact_trans_code + trans_avg_wgt,
- . isact_avg_4d_wgt = isact_trans_code + trans_4d_avg_wgt)
+ . isact_avg_4d_wgt = isact_trans_code + trans_4d_avg_wgt,
+ . isact_std_4d = isact_trans_code + trans_4d_std)
* classes of stack objects
INTEGER isobj_uvar,
diff --git a/fer/common/rpn.parm b/fer/common/rpn.parm
index 70f5a3a..bb29a18 100644
--- a/fer/common/rpn.parm
+++ b/fer/common/rpn.parm
@@ -11,6 +11,7 @@
* 12/98 - *sh* increased num_state and num_class to add {1,3,5} notation
* 1/99 - *sh* increased num_state and num_class to add string variables
* V530 10/00 - *sh* increased maxatoms and max_exp
+* V693+ 12/14 *sh* allow _QD_ and _SQ_ for quotation alternatives
integer maxatoms,
. max_fcn,
@@ -41,5 +42,5 @@
. right_paren = 3,
. inf_flg = 1,
. stk_flg = 2,
- . num_state = 12,
- . num_class = 15 )
+ . num_state = 16,
+ . num_class = 16 )
diff --git a/fer/common/slash.parm b/fer/common/slash.parm
index 9696853..0192e7a 100644
--- a/fer/common/slash.parm
+++ b/fer/common/slash.parm
@@ -64,6 +64,13 @@
* V690 12/13 *sh* /SIGMA and /CURVILINEAR
* V687 3/14 *acm* add SET AXIS/NAME
* V691+ 8/14 *acm* Fix ticket 2194: SHOW with /OUTFILE and not /XML.
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. Add SET TEXT, SHOW TEXT,
+* CANCEL TEXT
+* v695 5/15 *acm* New command ANNOTATE
+* v696 6/15 *acm* PLOT/VS/RIBBON/GAPLOC to define seperate line segments on
+* color PLOT/VS plots (LAS ticket 1597 and others)
+
* command qualifier states
INTEGER qual_on,
@@ -104,11 +111,20 @@
. slash_canc_data_noerr,
.
. slash_canc_var_data,
- . slash_canc_var_sigma,
+ . slash_canc_var_layerz,
. slash_canc_var_curvi,
+ . slash_canc_var_noerr,
.
. slash_canc_attr_output,
- . slash_canc_attr_data
+ . slash_canc_attr_data,
+ .
+ . slash_canc_text_font,
+ . slash_canc_text_color,
+ . slash_canc_text_italic,
+ . slash_canc_text_bold,
+ . slash_canc_text_isiz,
+ . slash_canc_text_all
+
INTEGER
. slash_set_movie_out,
@@ -127,7 +143,7 @@
. slash_show_var_append,
. slash_show_var_clobber,
. slash_show_var_tree,
- . slash_show_var_sigma,
+ . slash_show_var_layerz,
. slash_show_var_curvi,
.
. slash_show_grid_x0,
@@ -167,7 +183,7 @@
. slash_list_endian,
. slash_list_outtype,
. slash_list_curvi,
- . slash_list_sigma
+ . slash_list_layerz
INTEGER
. slash_set_data_ez,
@@ -195,7 +211,7 @@
. slash_set_var_scale,
. slash_set_var_offset,
. slash_set_var_outtype,
- . slash_set_var_sigma,
+ . slash_set_var_layerz,
. slash_set_var_curvi,
.
. slash_set_grid_save,
@@ -228,6 +244,13 @@
. slash_set_redirect_append,
. slash_set_redirect_clobber
+ INTEGER
+ . slash_set_text_font,
+ . slash_set_text_color,
+ . slash_set_text_italic,
+ . slash_set_text_bold,
+ . slash_set_text_isiz
+
INTEGER slash_cont_over_plot,
. slash_cont_set_up,
. slash_cont_frame,
@@ -323,6 +346,7 @@
. slash_plot_spectrum,
. slash_plot_fast,
. slash_plot_missing,
+ . slash_plot_gap,
. slash_plot_opacity
INTEGER slash_wire_over,
@@ -402,12 +426,20 @@
. slash_canc_data_noerr = 2,
.
. slash_canc_var_data = 2,
- . slash_canc_var_sigma = 3,
+ . slash_canc_var_layerz = 3,
. slash_canc_var_curvi = 4,
+ . slash_canc_var_noerr = 5,
.
. slash_canc_attr_output = 1,
. slash_canc_attr_data = 2,
.
+ . slash_canc_text_font = 1,
+ . slash_canc_text_color = 2,
+ . slash_canc_text_italic = 3,
+ . slash_canc_text_bold = 4,
+ . slash_canc_text_isiz = 5,
+ . slash_canc_text_all = 6,
+ .
. slash_set_movie_out = 1,
. slash_set_movie_compress = 2,
. slash_set_movie_laser = 3,
@@ -420,7 +452,7 @@
. slash_show_var_append = 7,
. slash_show_var_clobber = 8,
. slash_show_var_tree = 9,
- . slash_show_var_sigma = 10,
+ . slash_show_var_layerz = 10,
. slash_show_var_curvi = 11,
.
. slash_show_grid_x0 = 7,
@@ -463,7 +495,7 @@
. slash_list_endian = 1+52,
. slash_list_outtype = 1+53,
. slash_list_curvi = 1+54,
- . slash_list_sigma = 1+55 )
+ . slash_list_layerz = 1+55 )
PARAMETER (
. slash_set_data_ez = 1,
@@ -491,7 +523,7 @@
. slash_set_var_scale = 7,
. slash_set_var_offset = 8,
. slash_set_var_outtype = 9,
- . slash_set_var_sigma = 10,
+ . slash_set_var_layerz = 10,
. slash_set_var_curvi = 11,
.
. slash_set_grid_save = 1,
@@ -523,7 +555,14 @@
. slash_set_redirect_journal = 2,
. slash_set_redirect_file = 3,
. slash_set_redirect_append = 4,
- . slash_set_redirect_clobber = 5 )
+ . slash_set_redirect_clobber = 5)
+
+ PARAMETER (
+ . slash_set_text_font = 1,
+ . slash_set_text_color = 2,
+ . slash_set_text_italic = 3,
+ . slash_set_text_bold = 4,
+ . slash_set_text_isiz = 5)
PARAMETER ( slash_cont_over_plot = 1+12,
. slash_cont_set_up = 1+13,
@@ -620,7 +659,8 @@
. slash_plot_spectrum = 1+44,
. slash_plot_fast = 1+45,
. slash_plot_missing = 1+46,
- . slash_plot_opacity = 1+47 )
+ . slash_plot_gap = 1+47,
+ . slash_plot_opacity = 1+48)
PARAMETER ( slash_wire_over = 1+12,
. slash_wire_set_up = 1+13,
@@ -701,3 +741,24 @@
. slash_polygon_mod = 1 + 41,
. slash_polygon_opacity = 1 + 42 )
+
+
+ INTEGER slash_annotate_user,
+ . slash_annotate_norm,
+ . slash_annotate_nouser,
+ . slash_annotate_xpos,
+ . slash_annotate_ypos,
+ . slash_annotate_valign,
+ . slash_annotate_halign,
+ . slash_annotate_angle,
+ . slash_annotate_size
+
+ PARAMETER ( slash_annotate_user = 0 + 1,
+ . slash_annotate_norm = 1 + 1,
+ . slash_annotate_nouser = 2 + 1,
+ . slash_annotate_xpos = 3 + 1,
+ . slash_annotate_ypos = 4 + 1,
+ . slash_annotate_halign = 5 + 1,
+ . slash_annotate_valign = 6 + 1,
+ . slash_annotate_angle = 7 + 1,
+ . slash_annotate_size = 8 + 1)
diff --git a/fer/common/xcommand.cmn b/fer/common/xcommand.cmn
index 8fb710b..8a2a66e 100644
--- a/fer/common/xcommand.cmn
+++ b/fer/common/xcommand.cmn
@@ -49,6 +49,11 @@
* PyFr *kms* 7/13 Add /THICKEN to SET WINDOW to specify line thickness scaling factor
* PyFr *kms* 7/13 Add /XPIXELS, /YPIXELS, /XINCHES, /YINCHES to SET WINDOW and FRAME
* V685+ *sh* 9/13 Add SHOW VARIABLE/TREE and alias VTREE
+* V695 *acm* 2/15 Add DEFINE AGGREGATE/F alias, FMRC
+* V695 *acm* 3/15 Changes for PyFerret fonts. Add SET TEXT, SHOW TEXT, CANCEL TEXT
+* V695 *acm* 6/16 New command ANNOTATE
+* V695 *acm* 6/16 New subcommand DEFINE ANNOTATION
+
* PARAMETERS are used to store numbers of subcommands and qualifiers for use
* in BLOCK DATA XCOMMAND_DATA. They are also used to compute pointers into
@@ -123,7 +128,7 @@
. nqual1o = 3, nqual_at1p = nqual_at1o + nqual1o, !'NCCACHE'
. nqual1p = 8, nqual_at1q = nqual_at1p + nqual1p, !'REDIRECT'
. nqual1q = 0, nqual_at1r = nqual_at1q + nqual1q, !'GIFFILE'
- . nqual1r = 4, nqual_at1s = nqual_at1r + nqual1r, !'****'
+ . nqual1r = 6, nqual_at1s = nqual_at1r + nqual1r, !'TEXT'
. nqual1s = 4, nqual_at1t = nqual_at1s + nqual1s, !'****'
. nqual1t = 4, nqual_at2a = nqual_at1t + nqual1t !'****'
. )
@@ -152,7 +157,8 @@
. nqual2s , nqual_at2t,
. nqual2t , nqual_at2u,
. nqual2u , nqual_at2v,
- . nqual2v , nqual_at3a
+ . nqual2v , nqual_at2w,
+ . nqual2w , nqual_at3a
PARAMETER ( nsub2 =22, nsub_at3 = nsub_at2 + nsub2,
. nqual2a = 1, nqual_at2b = nqual_at2a + nqual2a, !' '
. nqual2b = 1, nqual_at2c = nqual_at2b + nqual2b, !'WIND'
@@ -174,10 +180,12 @@
. nqual2r = 3, nqual_at2s = nqual_at2r + nqual2r, !'ATTR'
. nqual2s = 1, nqual_at2t = nqual_at2s + nqual2s, !'NCCACHE'
. nqual2t = 1, nqual_at2u = nqual_at2t + nqual2t, !'GIFFILE'
- . nqual2u = 7, nqual_at2v = nqual_at2u + nqual2u, !'FUNC'
- . nqual2v = 3, nqual_at3a = nqual_at2v + nqual2v !'QUER'
+ . nqual2u = 7, nqual_at2v = nqual_at2u + nqual2u, !'FUNC'
+ . nqual2v = 1, nqual_at2w = nqual_at2v + nqual2v, !'TEXT'
+ . nqual2w = 3, nqual_at3a = nqual_at2w + nqual2w !'QUER'
. )
+
* CANCEL - commmand # 3
INTEGER nsub3 , nsub_at4 ,
. nqual3a , nqual_at3b,
@@ -220,7 +228,7 @@
. nqual3q = 1, nqual_at3r = nqual_at3q + nqual3q, !'SYMBOL'
. nqual3r = 1, nqual_at3s = nqual_at3r + nqual3r, !'NCCACHE'
. nqual3s = 3, nqual_at3t = nqual_at3s + nqual3s, !'PYVAR'
- . nqual3t = 3, nqual_at4a = nqual_at3t + nqual3t !'****'
+ . nqual3t = 7, nqual_at4a = nqual_at3t + nqual3t !'TEXT'
. )
* CONTOUR - commmand # 4
@@ -239,7 +247,7 @@
INTEGER nsub6 , nsub_at7 ,
. nqual6a , nqual_at7a
PARAMETER ( nsub6 = 1, nsub_at7 = nsub_at6 + nsub6,
- . nqual6a =48, nqual_at7a = nqual_at6a + nqual6a )
+ . nqual6a =49, nqual_at7a = nqual_at6a + nqual6a )
* GO - commmand # 7
INTEGER nsub7 , nsub_at8 ,
@@ -271,8 +279,9 @@
. nqual10h , nqual_at10i,
. nqual10i , nqual_at10j,
. nqual10j , nqual_at10k,
- . nqual10k , nqual_at11a
- PARAMETER ( nsub10 =11, nsub_at11 = nsub_at10 + nsub10,
+ . nqual10k , nqual_at10l,
+ . nqual10l , nqual_at11a
+ PARAMETER ( nsub10 =12, nsub_at11 = nsub_at10 + nsub10,
. nqual10a = 0, nqual_at10b = nqual_at10a + nqual10a,!' '
. nqual10b =26, nqual_at10c = nqual_at10b + nqual10b,!REGI
. nqual10c =11, nqual_at10d = nqual_at10c + nqual10c,!GRID
@@ -283,7 +292,8 @@
. nqual10h = 2, nqual_at10i = nqual_at10h + nqual10h,!SYMB
. nqual10i = 4, nqual_at10j = nqual_at10i + nqual10i,!ATTR
. nqual10j = 2, nqual_at10k = nqual_at10j + nqual10j,!PYFUNC
- . nqual10k =10, nqual_at11a = nqual_at10k + nqual10k !DATA
+ . nqual10k =10, nqual_at10l = nqual_at10k + nqual10k, !DATA
+ . nqual10l =10, nqual_at11a = nqual_at10l + nqual10l !ANNOTATION
. )
* EXIT - commmand # 11
INTEGER nsub11 , nsub_at12 ,
@@ -387,11 +397,11 @@
PARAMETER ( nsub27 = 1, nsub_at28 = nsub_at27 + nsub27,
. nqual27a = 44,nqual_at28a = nqual_at27a + nqual27a )
-* ****/****/**** - command number 28
+* ANNOTATE - command number 28
INTEGER nsub28 , nsub_at29 ,
. nqual28a ,nqual_at29a
PARAMETER ( nsub28 = 1, nsub_at29 = nsub_at28 + nsub28,
- . nqual28a = 2,nqual_at29a = nqual_at28a + nqual28a )
+ . nqual28a = 12,nqual_at29a = nqual_at28a + nqual28a )
* ****/****/**** - command number 29
INTEGER nsub29 , nsub_at30 ,
@@ -416,7 +426,7 @@
. total_num_commands = 30,
. total_num_subcommands = nsub_at31 - 1,
. total_num_qualifiers = nqual_at31a - 1,
- . num_predefined_alias = 23,
+ . num_predefined_alias = 24,
. max_queries = 50 )
* declarations
diff --git a/fer/common/xcontext.cmn b/fer/common/xcontext.cmn
index 86bf1bb..2f2a367 100644
--- a/fer/common/xcontext.cmn
+++ b/fer/common/xcontext.cmn
@@ -18,6 +18,9 @@
* V690 12/13 *sh* added cx_implicit_aux, cx_aux_given, cx_g_eq_regrid,
* cx_aux_stat for automated curvilinear regridding
* max_context made a variable to allow frames above it
+* V693+ added cx_vtree* vars for ticket #2195 - reporting regridding dependency
+* V694 cx_calendar needs to be 6-D to handle F and T calendar time
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. Add SET TEXT, SHOW TEXT
* the declarations below represent a stack of depth max_context for saving
* the nested contexts. The bottom few entries in the stack have special uses:
@@ -79,6 +82,10 @@
. cx_trans ( nferdims, min_context:max_cx ),
. cx_regrid_trans ( nferdims, max_cx )
INTEGER cx_stack_ptr,
+ . cx_vtree_var_or_start( nferdims ),
+ . cx_vtree_cat_or_end ( nferdims ),
+ . cx_vtree_regrid_dset ( nferdims ),
+ . cx_vtree_regrid_ntarget,
. cx_data_set ( max_cx ),
. cx_category ( max_cx ),
. cx_variable ( max_cx ),
@@ -92,11 +99,12 @@
. cx_aux_cat (nferdims, max_cx),
. cx_aux_stat (nferdims, max_cx )
- LOGICAL cx_unstand_grid ( max_cx ),
+ LOGICAL cx_vtree_unknown_grid( nferdims ),
+ . cx_unstand_grid ( max_cx ),
. cx_by_ss ( nferdims, min_context:max_cx ),
. cx_given ( nferdims, min_context:max_cx ),
. cx_dset_gvn ( max_cx ),
- . cx_calendar ( min_context:max_cx ),
+ . cx_calendar ( nferdims, min_context:max_cx ),
. cx_grid_needs_dset,
. cx_aux_given ( nferdims, max_cx ),
. cx_g_eq_regrid ( nferdims),
@@ -127,6 +135,11 @@
. cx_data_set,
. cx_category,
. cx_variable,
+ . cx_vtree_var_or_start,
+ . cx_vtree_cat_or_end,
+ . cx_vtree_regrid_dset,
+ . cx_vtree_regrid_ntarget,
+ . cx_vtree_unknown_grid,
. cx_naux,
. cx_aux_var,
. cx_aux_cat,
diff --git a/fer/common/xcontrol.cmn b/fer/common/xcontrol.cmn
index b7a3a93..470f8f4 100644
--- a/fer/common/xcontrol.cmn
+++ b/fer/common/xcontrol.cmn
@@ -14,6 +14,7 @@
* for repeat command.
* V6.31 10/09 *acm* Fixing bug 1706, by properly fixing # 1681. ENDIF inside a REPEAT
* loop with semicolon-separated commands. New flag: bumped.
+* V694 2/15 *acm* cs_is_calendar for each of T and F dimensions.
INTEGER cs_max
PARAMETER ( cs_max = 200 )
@@ -21,7 +22,8 @@
LOGICAL cs_in_control,
. cs_by_ss( cs_max ),
. cs_save_by_ss( cs_max ),
- . cs_is_calendar(cs_max),
+ . cs_is_calendar_f(cs_max),
+ . cs_is_calendar_t(cs_max),
. has_continuation_cmnd,
. bumped
INTEGER csp, ! control stack pointer
@@ -65,12 +67,10 @@
. cs_lun ,
. cs_text ,
. cmnd_copy ,
- . cs_is_calendar,
+ . cs_is_calendar_t,
+ . cs_is_calendar_f,
. cs_repeatname,
. has_continuation_cmnd,
. bumped,
. len_cmnd_copy,
. my_cbuff
-
-
-
diff --git a/fer/common/xdependency_tree.cmn b/fer/common/xdependency_tree.cmn
index 5a2772f..dad4ec6 100644
--- a/fer/common/xdependency_tree.cmn
+++ b/fer/common/xdependency_tree.cmn
@@ -33,6 +33,10 @@
INTEGER dependency_nfields
PARAMETER ( dependency_nfields = 9 )
+* special flag for report of a regrid dependency, rather than a variable
+ INTEGER pcx_vtree_regrid_report
+ PARAMETER ( pcx_vtree_regrid_report = -12345 )
+
* dependency flag values -- ordered by increasing error severity
INTEGER df_defined_earlier,
. df_valid_aux_var,
diff --git a/fer/common/xprog_state.cmn b/fer/common/xprog_state.cmn
index ed0c831..9012b10 100644
--- a/fer/common/xprog_state.cmn
+++ b/fer/common/xprog_state.cmn
@@ -40,7 +40,7 @@
* mode_ensemble_lab, and mode_forecast_lab;
* add E and F dimensions to ax_fmt and ax_dec_pt (set to nferdims)
* *acm* 4/12 Add new MODE FOURDEE to allow E,F,M,N,etc as user-vars
-* V6.8 *acm 6/12 Implement mode_6d_lab, set by default. If canceled, the
+* V6.8 *acm 6/12 Implement mode_F_LAB, set by default. If canceled, the
* various SHOW commnands will not list info for E,F dimensions.
* Remove mode_ensemble_lab, and mode_forecast_lab.
*acm* 4/12 Remove MODE FOURDEE, using _E, _F, _M, _N instead, throughout.
@@ -48,6 +48,9 @@
*acm* 8/12 New MODE shrink_ylab, see tickets 1896, 1958.
* V685 *sh* 11/13 - added allowed_err. SHOW VAR/TREE to display despite errors
* V690 *sh* 12/13 - added mode_auto_*, for automated curvilinear and sigma vars
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* added ifstk_skipping
+* V695 *acm* 5/15 logical flag its_pyferret
INTEGER cmnd_buff_len, max_qual_list, max_arg_list,
. max_item_list, max_modes, mode_stack_size,
@@ -68,14 +71,14 @@
INTEGER pmode_diagnostic, pmode_verify, pmode_interpolate,
. pmode_ignore_err, pmode_stupid, pmode_journal,
. pmode_long_lab, pmode_lat_lab, pmode_depth_lab,
- . pmode_time_lab, pmode_6d_lab,
+ . pmode_time_lab, pmode_E_LAB, pmode_F_LAB,
. pmode_segment, pmode_font_ascii, pmode_wait,
. pmode_reject, pmode_desperate, pmode_rpn,
. pmode_gks, pmode_xwindows, pmode_metafile,
. pmode_ppllist, pmode_gui, pmode_logo, pmode_labels,
. pmode_grat, pmode_linecolors, pmode_upcase_output,
. pmode_nlevels, pmode_nodata_lab, pmode_shrink_ylab,
- . pmode_curvilinear, pmode_sigma
+ . pmode_curvilinear, pmode_layerz, pmode_6d_lab
PARAMETER ( pmode_diagnostic = 1,
. pmode_verify = 2,
@@ -87,29 +90,31 @@
. pmode_lat_lab = 8,
. pmode_depth_lab = 9,
. pmode_time_lab = 10,
- . pmode_6d_lab = 11,
- . pmode_font_ascii = 12,
- . pmode_segment = 13,
- . pmode_wait = 14,
- . pmode_reject = 15,
- . pmode_desperate = 16 )
+ . pmode_e_lab = 11,
+ . pmode_f_lab = 12,
+ . pmode_font_ascii = 13,
+ . pmode_segment = 14,
+ . pmode_wait = 15,
+ . pmode_reject = 16,
+ . pmode_desperate = 17 )
PARAMETER (
- . pmode_rpn = 17,
- . pmode_gks = 18,
- . pmode_xwindows = 19,
- . pmode_metafile = 20,
- . pmode_ppllist = 21,
- . pmode_gui = 22,
- . pmode_logo = 23,
- . pmode_labels = 24,
- . pmode_grat = 25,
- . pmode_linecolors = 26,
- . pmode_upcase_output = 27,
- . pmode_nlevels = 28,
- . pmode_nodata_lab = 29,
- . pmode_shrink_ylab = 30,
- . pmode_curvilinear = 31,
- . pmode_sigma = 32 )
+ . pmode_rpn = 18,
+ . pmode_gks = 19,
+ . pmode_xwindows = 20,
+ . pmode_metafile = 21,
+ . pmode_ppllist = 22,
+ . pmode_gui = 23,
+ . pmode_logo = 24,
+ . pmode_labels = 25,
+ . pmode_grat = 26,
+ . pmode_linecolors = 27,
+ . pmode_upcase_output = 28,
+ . pmode_nlevels = 29,
+ . pmode_nodata_lab = 30,
+ . pmode_shrink_ylab = 31,
+ . pmode_curvilinear = 32,
+ . pmode_layerz = 33,
+ . pmode_6d_lab = 34 )
CHARACTER pmode_unused*10
PARAMETER ( pmode_unused = '%% unused %%' )
@@ -163,7 +168,8 @@
. saved_abstract_grid,
. xwind_node_len,
. genl_storage(25),
- . ifstk, if_cs(max_ifstk), if_doing(max_ifstk),
+ . ifstk, ifstk_skipping,
+ . if_cs(max_ifstk), if_doing(max_ifstk),
. num_linecolors
@@ -185,7 +191,8 @@
. allowed_err,
. one_cmnd_mode,
. mode_auto_curvi, mode_auto_curvi_last,
- . mode_auto_sigma, mode_auto_sigma_last
+ . mode_auto_layerz, mode_auto_layerz_last,
+ . its_pyferret
! Note: available_char_var is unused
@@ -222,7 +229,7 @@
COMMON/ XPROG_STATE /
. interactive, prompt, prompt_len,
. input_source, mouse_input,
- . if_conditional, ifstk, if_cs, if_doing,
+ . if_conditional, ifstk, ifstk_skipping, if_cs, if_doing,
. num_linecolors,
. cmnd_buff, last_cmnd_buff,
. mode_grat_buff,
@@ -243,11 +250,11 @@
. denig_xylim_msg_done, denig_pen_msg_done,
. in_get_grid_mode,
. mode_auto_curvi, mode_auto_curvi_last,
- . mode_auto_sigma, mode_auto_sigma_last,
+ . mode_auto_layerz, mode_auto_layerz_last,
. frame_compress, available_char_var,
. journal_file, ppllist_file,
. xwind_node, xwind_node_len,
- . genl_storage, its_script, grat_on,
+ . genl_storage, its_script, its_pyferret, grat_on,
. shade_trim, silent_err, allowed_err, one_cmnd_mode,
. ppl_wait, mode_name,
. scriptfile_name, show_file, list_outtype
@@ -256,13 +263,14 @@
LOGICAL mode_diagnostic, mode_verify, mode_interpolate,
. mode_ignore_err, mode_stupid, mode_journal,
. mode_long_lab, mode_lat_lab, mode_depth_lab,
- . mode_time_lab, mode_6d_lab,
+ . mode_time_lab, mode_e_lab, mode_f_lab,
. mode_segment, mode_font_ascii, mode_wait,
. mode_reject, mode_desperate, mode_rpn,
. mode_gks, mode_xwindows, mode_metafile,
. mode_ppllist, mode_gui, mode_logo, mode_labels,
. mode_grat, mode_linecolors, mode_upcase_output,
- . mode_nlevels, mode_nodata_lab, mode_shrink_ylab
+ . mode_nlevels, mode_nodata_lab, mode_shrink_ylab,
+ . mode_6d_lab
EQUIVALENCE
. ( mode_state( pmode_diagnostic ,1), mode_diagnostic ),
. ( mode_state( pmode_verify ,1), mode_verify ),
@@ -274,7 +282,8 @@
. ( mode_state( pmode_lat_lab ,1), mode_lat_lab ),
. ( mode_state( pmode_depth_lab ,1), mode_depth_lab ),
. ( mode_state( pmode_time_lab ,1), mode_time_lab ),
- . ( mode_state( pmode_6d_lab ,1), mode_6d_lab ),
+ . ( mode_state( pmode_e_lab ,1), mode_e_lab ),
+ . ( mode_state( pmode_f_lab ,1), mode_f_lab ),
. ( mode_state( pmode_font_ascii ,1), mode_font_ascii ),
. ( mode_state( pmode_segment ,1), mode_segment ),
. ( mode_state( pmode_wait ,1), mode_wait ),
@@ -293,7 +302,8 @@
. ( mode_state( pmode_upcase_output,1),mode_upcase_output),
. ( mode_state( pmode_nlevels ,1), mode_nlevels ),
. ( mode_state( pmode_nodata_lab ,1), mode_nodata_lab ),
- . ( mode_state( pmode_shrink_ylab ,1), mode_shrink_ylab )
+ . ( mode_state( pmode_shrink_ylab ,1), mode_shrink_ylab ),
+ . ( mode_state( pmode_6d_lab ,1), mode_6d_lab )
* axis label modes
* assumes sequential long, lat, depth, time, ensemble, forecast pmode values
diff --git a/fer/common/xrisc.cmn b/fer/common/xrisc.cmn
index d697003..38f510b 100644
--- a/fer/common/xrisc.cmn
+++ b/fer/common/xrisc.cmn
@@ -8,13 +8,14 @@
* symbol substitution and grave accent evals on command it limits the
* command line length. So increase the buffer size.
* V530 10/00 - increased to 2048 (should be at least as large as len_cmnd_buf)
+* V694 1/14 - increase to 10240 for handling very long global attribute strings.
+
+* *** Note that there is also a risc_buff defined in fmt/cmn/xrisc_buff.cmn ***
+
INTEGER size_rbuff
- PARAMETER ( size_rbuff = 2048 ) ! was 256 pre 8/99
+ PARAMETER ( size_rbuff = 10240 ) ! was 256 pre 8/99
COMMON/ XRISC / len_rbuff, risc_buff
CHARACTER risc_buff*(size_rbuff)
INTEGER len_rbuff
-
-
-
diff --git a/fer/common/xvariables.cmn b/fer/common/xvariables.cmn
index 989dd3b..8d55052 100644
--- a/fer/common/xvariables.cmn
+++ b/fer/common/xvariables.cmn
@@ -61,6 +61,8 @@
* V690 9/13-1/14 *sh* added aux var regridding,
* including is_aux_ptr, and uvar_curvi_var/cat
* added space at the top of the isp stack for nferdims auxvars
+* V695+ *sh* 5/15 added uvar_c_cache_ptr for c-malloc caching of aux vars
+* V698+ *sh* 6/15 changed is_sum from REAL to INTEGER
* Terminology:
* "mr" - "memory resident"
@@ -159,7 +161,9 @@
* uvar_lo/hi_ss - when uvlims are given in expression this tells what
* uvar_lo/hi_ww - when uvlims are given in expression this tells what
* uvar_bad_data - missing value flag to be used for this variable
+* uvar_c_cache_ptr- pointer to c-cahce of full range variable
* has_uvar_gc - variable is a grid-changing variable
+* is_uvar_const - variable is a constant-array variable
* isp - interpretation stack pointer
* is_act - activity currently in progress
@@ -308,7 +312,9 @@
. uvar_ifv ( max_uvar ),
. uvar_title_w_text( max_uvar ),
. uvar_need_dset ( max_uvar ),
+ . uvar_c_cache_ptr ( max_uvar ),
. has_uvar_gc,
+ . is_uvar_const,
.
. uvar_text ( max_uvar ),
. uvar_title ( max_uvar ),
@@ -373,13 +379,16 @@
. uvar_mod_pseudo,
. uvar_by_ss,
. has_uvar_gc,
+ . is_uvar_const,
. uvar_ifv,
. uvar_remote,
. rvar_on_server
REAL*8 uvar_name_code_head,
. uvar_name_code_padding,
. uvar_num_items_head,
- . uvar_num_items_padding
+ . uvar_num_items_padding,
+ . uvar_c_cache_ptr
+
INTEGER uvar_num_items ,
. uvar_grid ,
. uvar_data_type ,
@@ -410,8 +419,8 @@
. is_axis ,
. is_uvar ,
. is_mr,
- . is_aux_ptr
- REAL is_sum
+ . is_aux_ptr,
+ . is_sum
* equivalences to assist with declaration statements
INTEGER mr_lo_s1( max_mrs ),
diff --git a/fer/ctx/apply_auto_curv.F b/fer/ctx/apply_auto_curv.F
index ca783fe..aba9b84 100644
--- a/fer/ctx/apply_auto_curv.F
+++ b/fer/ctx/apply_auto_curv.F
@@ -33,15 +33,17 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
* setup auto-curvilinear loading of aux vars and regridding
-* z = lo:hi at ave ==> a curvi regrid to a 1pt axis via pcwz avrging
+* z = pt ==> interpolation computed as a hidden curvi regrid
+* z = lo:hi at ave ==> a compressing xform computed as a hidden curvi
+* regridding operation using pcwz averaging
+*
* z = lo:hi:delta ==> a curvi regrid via linear interpolation
* z = lo:hi:delta at ave ==> a curvi regrid via piececwise averaging
-* z = pt ==> a curvi regrid to a 1pt axis via linear interp
-* ... and for convenience also
-* gz = axis, sigma
-* gz = lo:hi:delta,sigma
-* V690 12/13 *sh*
+* V690 12/13 *sh* - hidden curvi regrids added 4/14
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V695+ 3/15 *sh* added pauxrgrd_fmrc for GT(time2d)+1d and GF(time2d)=1d
+* V698+ 6/15 *sh* generalize single_pt applicable to all axes
IMPLICIT NONE
@@ -58,6 +60,7 @@
CHARACTER*(*) full_var_name
* internal variable declarations
+ LOGICAL single_pt
INTEGER idim, impl_grid
REAL range, midpt
@@ -79,14 +82,28 @@
* a regrid implies that the aux axis status is "used"
cx_aux_stat(idim,cx) = paux_stat_used
+* single point Z-axis regrid?
+ single_pt = cx_lo_ww(idim,cx) .EQ. cx_hi_ww(idim,cx)
+ . .OR. ( cx_trans(idim,cx) .EQ. trans_average
+ . .AND. cx_delta(idim,cx) .EQ. unspecified_val8 )
+
* modify the xform or regridding xform to be an aux var regrid xform
- IF ( cx_regrid_trans(idim,cx) .EQ. prgrd_average
- . . OR. cx_trans (idim,cx) .EQ. trans_average) THEN
- CALL WARN_OCCASIONALLY(
- . 'Box-averaging not available for sigma axis '//
- . 'regridding.'//pCR//
- . ' Using piecewise linear averaging instead, '//
- . 'equivalent to gz(depth)=0:100 at plave', 10, 101)
+ IF ( single_pt ) THEN ! Z=pt or Z=lo:hi at ave
+ IF ( cx_trans(idim,cx) .EQ. trans_no_transform ) THEN
+ cx_regrid_trans(idim,cx) = pauxrgrd_linear
+ ELSEIF ( cx_trans(idim,cx) .EQ. trans_average ) THEN
+ cx_regrid_trans(idim,cx) = pauxrgrd_pwlave
+ ELSE
+ GOTO 5200
+ ENDIF
+ cx_trans(idim,cx) = trans_no_transform
+ ELSEIF ( cx_regrid_trans(idim,cx) .EQ. prgrd_average
+ . .OR. cx_trans(idim,cx) .EQ. trans_average ) THEN
+! CALL WARN_OCCASIONALLY(
+! . 'Box-averaging not available for layerz axis '//
+! . 'regridding.'//pCR//
+! . ' Using piecewise linear averaging instead, '//
+! . 'equivalent to gz(depth)=0:100 at plave', 10, 101)
cx_regrid_trans(idim,cx) = pauxrgrd_pwlave
cx_trans (idim,cx) = trans_no_transform
ELSEIF (cx_regrid_trans(idim,cx) .EQ. prgrd_linear_interp) THEN
@@ -100,21 +117,29 @@
IF (cx_g_eq_regrid(idim)) THEN
* GZ=axis or GZ=lo:hi:delta
cx_aux_stat(idim,cx) = paux_stat_used ! gz syntax sets itself up
- ELSEIF (cx_regrid_trans(idim,cx) .EQ. pauxrgrd_pwlave
- . .AND. cx_delta(idim,cx) .EQ. unspecified_val8) THEN
-* Z=lo:hi at ave ==> regrid to a single point axis with these lo:hi end points
- range = cx_hi_ww(idim,cx) - cx_lo_ww(idim,cx)
- midpt = (cx_hi_ww(idim,cx) + cx_lo_ww(idim,cx)) / 2.
- cx_lo_ww(idim,cx) = midpt - range/2
- cx_hi_ww(idim,cx) = midpt + range/2
- cx_delta(idim,cx) = pauto_1pt_ax
+ ELSEIF (single_pt) THEN
+* set up a "false regridding" by falsely setting cx_unstand_grid
+* and setting cx_aux_stat as a flag that it is not a real regrid
+* This is because we want to invoke the curvilinear regridding machinery
+* but we want the result to remain on the original grid -- not unique 1pt grids
+* Else layerz_temp[Z=50] and layerz_temp[Z=100] would get differing grids
+ cx_unstand_grid(cx) = .TRUE.
+ cx_aux_stat(idim,cx) = paux_stat_false_1pt_regrid
+! ELSEIF (cx_regrid_trans(idim,cx) .EQ. pauxrgrd_pwlave
+! . .AND. cx_delta(idim,cx) .EQ. unspecified_val8) THEN
+!* Z=lo:hi at ave ==> regrid to a single point axis with these lo:hi end points
+! range = cx_hi_ww(idim,cx) - cx_lo_ww(idim,cx)
+! midpt = (cx_hi_ww(idim,cx) + cx_lo_ww(idim,cx)) / 2.
+! cx_lo_ww(idim,cx) = midpt - range/2
+! cx_hi_ww(idim,cx) = midpt + range/2
+! cx_delta(idim,cx) = pauto_1pt_ax
ELSEIF ( cx_delta(idim,cx) .NE. unspecified_val8 ) THEN
* z=lo:hi:delta and z=lo:hi:delta at ave
CONTINUE
- ELSEIF (cx_given(idim,cx)
- . .AND. cx_lo_ww(idim,cx) .EQ. cx_hi_ww(idim,cx)) THEN
-* Z=pt ==> regrid to a 1 point axis axis by interpolation
- cx_delta(idim,cx) = pauto_1pt_ax
+! ELSEIF (cx_given(idim,cx)
+! . .AND. cx_lo_ww(idim,cx) .EQ. cx_hi_ww(idim,cx)) THEN
+!* Z=pt ==> regrid to a 1 point axis axis by interpolation
+! cx_delta(idim,cx) = pauto_1pt_ax
ELSE
* no regridding after all -- just getting the aux vars for plotting
cx_aux_stat(idim,cx) = paux_stat_needed
@@ -122,9 +147,10 @@
cx_implicit_aux(cx) = .TRUE.
cx_naux(cx) = cx_naux(cx) + 1
-* curvilinear and sigma regridding always imply a new target axis
+* curvilinear and layerz regridding that are not single_pt imply a new target axis
* if it was not already created by GET_CONTEXT_MODS then create it here
- IF (.NOT.( cx_aux_stat(idim,cx).EQ.paux_stat_needed
+ IF (.NOT.( single_pt
+ . .OR. cx_aux_stat(idim,cx).EQ.paux_stat_needed
. .OR. cx_unstand_grid(cx)
. .OR. cx_has_impl_grid(cx)) ) THEN
CALL ALLO_GRID_TO_CX(cx,impl_grid,status)
@@ -137,15 +163,9 @@
5000 RETURN
* error exits
- 5200 IF (idim .EQ. z_dim) THEN
- CALL ERRMSG( ferr_invalid_command, status,
- . 'xform not (yet) supported on sigma-Z var: '
- . //full_var_name, *5000)
- ELSE
- CALL ERRMSG( ferr_invalid_command, status,
- . 'xform not (yet) supported on curvilinear var: '
+ 5200 CALL ERRMSG( ferr_invalid_command, status,
+ . 'xform not (yet) supported on auxiliary variable regridding: '
. //full_var_name, *5000)
- ENDIF
END
diff --git a/fer/ctx/apply_context_mods.F b/fer/ctx/apply_context_mods.F
index 343d80c..9f0c804 100644
--- a/fer/ctx/apply_context_mods.F
+++ b/fer/ctx/apply_context_mods.F
@@ -68,6 +68,7 @@
* world coordinates
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
* V685 3/13 *sh* support for aux var regridding: var[gz(depth)=zax]
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
IMPLICIT NONE
@@ -127,7 +128,7 @@
cx_hi_ww( idim,dest_cx ) = unspecified_val8
* kob 9/97 - need to reset cx_calendar as well
IF (idim.EQ.t_dim .OR. idim.EQ.f_dim) THEN
- cx_calendar(dest_cx) = .FALSE.
+ cx_calendar(idim,dest_cx) = .FALSE.
cx_cal_id(dest_cx) = unspecified_int4
ENDIF
ELSE
@@ -137,7 +138,7 @@
cx_hi_ss( dest_cx ,idim) = unspecified_int4
* kob 9/97 - need to transfer cx_calendar as well
IF (idim.EQ.t_dim .OR. idim.EQ.f_dim) THEN
- cx_calendar(dest_cx) = cx_calendar(mods_cx)
+ cx_calendar(idim,dest_cx) = cx_calendar(idim,mods_cx)
cx_cal_id(dest_cx) = cx_cal_id(mods_cx)
ENDIF
diff --git a/fer/ctx/complete_missing_limits.F b/fer/ctx/complete_missing_limits.F
index 652369b..afcb981 100644
--- a/fer/ctx/complete_missing_limits.F
+++ b/fer/ctx/complete_missing_limits.F
@@ -147,9 +147,10 @@
IF ( needs_limits ) THEN
cx_by_ss(idim, cx) = .TRUE.
- IF ( (cat .EQ. cat_file_var) .OR.
- . (cat .EQ. cat_aggregate_var) .OR.
- . (cat .EQ. cat_pystat_var) ) THEN
+ IF ( (cat .EQ. cat_file_var) .OR.
+ . (cat .EQ. cat_agg_e_var) .OR.
+ . (cat .EQ. cat_agg_f_var) .OR.
+ . (cat .EQ. cat_pystat_var) ) THEN
CALL VAR_SS_LIMS( idim, cx,
. cx_lo_ss(cx,idim),
. cx_hi_ss(cx,idim) )
diff --git a/fer/ctx/cs_set_context.F b/fer/ctx/cs_set_context.F
index 0a48436..4bb8c41 100644
--- a/fer/ctx/cs_set_context.F
+++ b/fer/ctx/cs_set_context.F
@@ -49,6 +49,7 @@
* *acm* v580 11/04 Introducing cx_cal_id, saves the calendar ID used
* when computing world coordinates
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
* internal variable declarations:
INTEGER idim
@@ -70,8 +71,8 @@
cx_lo_ww( idim, cx_last ) = unspecified_val8
cx_hi_ww( idim, cx_last ) = unspecified_val8
* kob 9/97 - need to reset cx_calendar as well
- IF (idim .eq. t_dim) THEN
- cx_calendar(cx_last) = .FALSE.
+ IF (idim .eq. t_dim .OR. idim .eq. f_dim) THEN
+ cx_calendar(idim,cx_last) = .FALSE.
cx_cal_id(cx_last) = unspecified_int4
ENDIF
ELSE
@@ -81,7 +82,11 @@
cx_lo_ww( idim, cx_last ) = cs_phase( csp )
cx_hi_ww( idim, cx_last ) = cs_phase( csp )
IF (idim .eq. t_dim) THEN
- cx_calendar(cx_last) = cs_is_calendar(csp)
+ cx_calendar(idim,cx_last) = cs_is_calendar_t(csp)
+ cx_cal_id ( cx_last) = cs_cal_id(csp)
+ ENDIF
+ IF (idim .eq. f_dim) THEN
+ cx_calendar(idim,cx_last) = cs_is_calendar_f(csp)
cx_cal_id ( cx_last) = cs_cal_id(csp)
ENDIF
ENDIF
diff --git a/fer/ctx/del_cx_dim.F b/fer/ctx/del_cx_dim.F
index d176ba6..69d51ac 100644
--- a/fer/ctx/del_cx_dim.F
+++ b/fer/ctx/del_cx_dim.F
@@ -45,6 +45,7 @@
* V200: 5/19/89 - reordered _ss dims
* 9/97 *kob* - eliminate newly create cx_calendar
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -59,8 +60,8 @@
cx_hi_ww ( idim, cx ) = unspecified_val8
cx_trans ( idim, cx ) = trans_no_transform
cx_trans_arg( idim, cx ) = bad_val4
- if (idim .EQ. t_dim)
- . cx_calendar(cx) = .FALSE.
+ if (idim .EQ. t_dim .OR. idim .EQ. f_dim)
+ . cx_calendar(idim,cx) = .FALSE.
RETURN
END
diff --git a/fer/ctx/flesh_out_axis.F b/fer/ctx/flesh_out_axis.F
index b5a19ea..b20cf04 100644
--- a/fer/ctx/flesh_out_axis.F
+++ b/fer/ctx/flesh_out_axis.F
@@ -81,6 +81,9 @@
* dimension is now an arg to SECS_TO_TSTEP.
* V683 *acm*10/12 Fix bug 1972: cx_calendar and cx_cal_id are changed only
* if it's the T dimension not the T or F dimension.
+* V690 *sh* 4/14 For curvilinear axes keep ww limits as-is (may exceed axis limits)
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
@@ -113,10 +116,9 @@
cat = cx_category( cx )
grid = cx_grid ( cx )
-* For setting the calendar information just think about the time axis
-* (What if it's the F axis?)
+* For setting the calendar information
- is_time = idim .EQ. t_dim
+ is_time = idim.EQ.t_dim .OR. idim.EQ.f_dim
* check for special actions needed on user-defined variables
* ( e.g. how to handle U[K=5] - U[K=1:10] )
@@ -147,7 +149,7 @@
cx_trans( idim, cx ) = trans_no_transform
* kob 9/97 - need to reset cx_calendar as well
- IF (is_time) cx_calendar(cx) = .FALSE.
+ IF (is_time) cx_calendar(idim,cx) = .FALSE.
* axes with fully "given" regions will have their regions determined via
* MERGE_CONTEXT (when computed) or PASS_AMBIG_LIMS (when found in memory)
@@ -186,7 +188,7 @@
cx_trans( idim, cx ) = trans_no_transform
* kob 9/97 - need to reset cx_calendar as well
IF (is_time) THEN
- cx_calendar(cx) = .FALSE.
+ cx_calendar(idim,cx) = .FALSE.
cx_cal_id(cx) = unspecified_int4
ENDIF
@@ -217,14 +219,22 @@
cx_hi_ww(idim, cx) = TM_WORLD( cx_hi_ss( cx,idim),
. grid, idim, box_hi_lim )
- IF ( is_time .AND. cx_calendar(cx) ) THEN
+ IF ( is_time .AND. cx_calendar(idim,cx) ) THEN
cal_id = TM_GET_CALENDAR_ID (line_cal_name(axis))
cx_cal_id(cx) = cal_id
ENDIF
-* POSITIONS WERE SPECIFIED BY WORLD COORDINATES
+ ELSEIF ( cx_aux_stat( idim, cx ) .EQ. paux_stat_false_1pt_regrid
+ . .AND. cx_unstand_grid( cx ) ) THEN
+* 4/14 - WORLD COORDINATES ON A CURVILINEAR OR LAYERZ AXIS
+ cx_lo_ss(cx,idim) = unspecified_int4
+ cx_hi_ss(cx,idim) = unspecified_int4
+* leave ww limits as-is. Values refer to the aux var range, not the native axis
+ CONTINUE
+
ELSE
+* WORLD COORDINATE POSITIONS
* is there valid position data for this axis ?
IF ( cx_lo_ww( idim, cx ) .EQ. unspecified_val8 ) THEN
* ... no position data but maybe it's a file variable with only 1 point
@@ -236,21 +246,21 @@
* ... compute world positions as grid box edges
cx_lo_ww(idim, cx) = TM_WORLD( lo_ss, grid, idim, box_lo_lim )
cx_hi_ww(idim, cx) = TM_WORLD( hi_ss, grid, idim, box_hi_lim )
- ENDIF
+ ENDIF
point = cx_lo_ww(idim,cx) .EQ. cx_hi_ww(idim,cx)
* convert times given as seconds from BC to time step values
* *kob* 8/97 - use cx_calender instead of cx_lo_ww
- IF ( is_time .AND. cx_calendar(cx) ) THEN
+ IF ( is_time .AND. cx_calendar(idim,cx) ) THEN
cal_id = TM_GET_CALENDAR_ID (line_cal_name(axis))
IF ( TM_DATE_OK( line_t0(axis), cal_id ) ) THEN
cx_lo_ww(idim,cx) =
. SECS_TO_TSTEP( grid, idim, -cx_lo_ww(idim,cx) )
cx_hi_ww(idim,cx) =
. SECS_TO_TSTEP( grid, idim, -cx_hi_ww(idim,cx) )
- cx_calendar(cx) = .FALSE.
+ cx_calendar(idim,cx) = .FALSE.
cx_cal_id(cx) = cal_id
ENDIF
ENDIF
diff --git a/fer/ctx/get_auto_aux_vars.F b/fer/ctx/get_auto_aux_vars.F
index 9a46228..848f084 100644
--- a/fer/ctx/get_auto_aux_vars.F
+++ b/fer/ctx/get_auto_aux_vars.F
@@ -37,17 +37,18 @@
*
*
* determine if curvilinear coordinates are applicable on a particular variable
-* by looking for the __SigmaRef_ and __CurviRef__ attributes
+* by looking for the __LayerzRef_ and __CurviRef_ attributes
* These may have been set either automatically, based upon CF 'coordinates'
* and 'formula_terms' attributes found in a netCDF file, or have been set
-* manually using the SET VARIABLE/SIGMA and /CURV commands
+* manually using the SET VARIABLE/LAYERZ and /CURV commands
* inputs: var, cat, dset -- describe the variable for which we are seeking
* auxiliary coordinates
* outputs: curv_vars, curv_cats -- the identities of the aux variables
-
* *sh* 12/13
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+
include 'tmap_dims.parm'
include 'ferret.parm'
include 'errmsg.parm'
@@ -65,7 +66,7 @@
INTEGER TM_LENSTR1,
. idim, dset, attlen, attoutflag, maxlen, varid, slen,
. status, aux_var, aux_cat
- REAL attvals(10) ! only if __SigmaRef_ mis-defined as numeric!
+ REAL attvals(10) ! only if __LayerzRef_ mis-defined as numeric!
CHARACTER VAR_CODE*128, refvarname*128, varname*128,
. dsetname*128
@@ -91,15 +92,15 @@
ENDDO
ENDIF
-* get the variable ID in the linked list (user vars stored under dset=-1?)
- IF (cat .EQ. cat_user_var) dset = -1 ! signals a uvar ??
+* get the variable ID in the linked list (user vars stored under dset=pdset_uvars)
+ IF (cat .EQ. cat_user_var) dset = pdset_uvars ! signals a uvar
* NOTE: if dset=-1 signals uvar, it would seem that we'll see a bug if
* the same varname is used for LET/D definitions in two datasets
CALL CD_GET_VAR_ID (dset, varname, varid, status) ! status check??
-* get the attribute value of '__SigmaRef_' (patnam_sigma)
+* get the attribute value of '__LayerzRef_' (patnam_layerz)
maxlen = LEN(refvarname)
- got_it = NC_GET_ATTRIB ( dset, varid, patnam_sigma,
+ got_it = NC_GET_ATTRIB ( dset, varid, patnam_layerz,
. .FALSE., varname, maxlen,
. attlen, attoutflag, refvarname,
. attvals )
@@ -111,11 +112,11 @@
. refvarname,
. aux_cat, aux_var )
IF (aux_var .EQ. munknown_var_name) THEN
-* .... "Variable TEMP associated with non-existent sigma variable DEPTH"
+* .... "Variable TEMP associated with non-existent layerz variable DEPTH"
* "in levitus_climatology"
CALL GET_SHORT_DSET_NAME(dataset, dsetname, slen )
CALL WARN('Variable '//varname(:TM_LENSTR1(varname)) //
- . ' associated with non-existent sigma variable ' //
+ . ' associated with non-existent layerz variable ' //
. refvarname(:TM_LENSTR1(refvarname)) // pCR //
. ' in ' //dsetname(:slen) )
ELSE
diff --git a/fer/ctx/get_aux_var_context.F b/fer/ctx/get_aux_var_context.F
index 6fa831a..79cebfd 100644
--- a/fer/ctx/get_aux_var_context.F
+++ b/fer/ctx/get_aux_var_context.F
@@ -37,24 +37,22 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* given a full variable specification of the form:
-* (eg.) TEMP[X=170E:170W,K=+1D,T=188979]
-* return in var_cx context information describing the exact variable instance
-* including variable, data set, grid, region and plane
+* this routine gets the context of the auxiliary variable (e.g."depth")
+* within parenthese in the format VAR[gz(depth)=zax at ave]
+*
+
+* it is performed in two steps: first get the context of the main variable
+* VAR. Then use the context of the parent variable as the default for the
+* auxiliary variable ("depth")
+
* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
* written for VAX computer under VMS operating system
*
* V685 - new based upon GET_VAR_CONTEXT
+* V695+ *sh* 3/15 - support joint TF -- var[gt(time2d)calt,gf(time2d)=lagf]
-* this routine gets the context of the auxiliary variable arguments (e.g."depth")
-* within parenthese in the format VAR[gz(depth)=zax at ave]
-*
-
-* it is performed in two steps: first get the context of the main variable
-* VAR. Then use the context of the parent variable as the default for the
-* auxiliary variable ("depth")
IMPLICIT NONE
@@ -92,6 +90,7 @@
* which auxiliary var is the subject of interest?
* e.g. for "temp[gz(depth)=zax]" the argument "depth" is found in the z dim
+* note that for joint TF regridding, this will return T_dim
the_axis = AUX_AXIS_FROM_ARG(var_cx, aux_arg_num)
* pull the auxiliary variable identity from the parent context
@@ -126,7 +125,9 @@
DO 500 idim = 1, nferdims
aux_var_axis = grid_line(idim,cx_grid(aux_var_cx))
var_axis = grid_line(idim,cx_grid( var_cx))
- IF (idim .EQ. the_axis) THEN
+!3/15 IF (idim .EQ. the_axis) THEN ! logic not adequate for joint TF
+ IF (cx_aux_stat(idim,var_cx) .NE. paux_stat_na) THEN !ok logic? 3/15
+
IF (aux_var_axis .EQ. mnormal) GOTO 5300
* ... set up to get the full index range on the regrid axes of the aux var
cx_lo_ss ( aux_var_cx, idim ) = unspecified_int4
diff --git a/fer/ctx/get_context_bad_flag.F b/fer/ctx/get_context_bad_flag.F
index 3ae952a..32a881e 100644
--- a/fer/ctx/get_context_bad_flag.F
+++ b/fer/ctx/get_context_bad_flag.F
@@ -59,13 +59,14 @@
IF ( cx_category( cx ) .EQ. cat_file_var .OR.
- . cx_category( cx ) .EQ. cat_aggregate_var ) THEN
+ . cx_category( cx ) .EQ. cat_agg_e_var .OR.
+ . cx_category( cx ) .EQ. cat_agg_f_var ) THEN
cx_bad_data( cx ) = ds_bad_flag( cx_variable( cx ) )
- ELSEIF ( cx_category(cx) .EQ. cat_pystat_var ) THEN
+ ELSEIF ( cx_category(cx) .EQ. cat_pystat_var ) THEN
- cx_bad_data( cx ) = pyvar_missing_flag( cx_variable( cx ) )
+ cx_bad_data( cx ) = pyvar_missing_flag( cx_variable( cx ) )
ELSEIF ( cx_category( cx ) .EQ. cat_user_var ) THEN
diff --git a/fer/ctx/get_context_grid.F b/fer/ctx/get_context_grid.F
index f3cc2ce..adb571e 100644
--- a/fer/ctx/get_context_grid.F
+++ b/fer/ctx/get_context_grid.F
@@ -48,6 +48,9 @@
* Also, if delta specifications were used (e.g. var[i=1:100:10]) then an
* implicit axis AND grid must be created.
+
+* FERRET DOCUMENTATION: MANAGING DYNAMIC GRIDS AND AXES: OVERVIEW
+
*************************************
* *** MANAGING DYNAMIC GRIDS AND AXES: OVERVIEW ***
@@ -115,7 +118,7 @@
* into implicit grid
* 1/96 - idim subscripting bug fixed 1/96 ... how did it escape?
-* $Id: get_context_grid.F 17182 2014-04-01 00:38:04Z ksmith $
+* $Id: get_context_grid.F 19906 2015-07-01 01:26:09Z ksmith $
* - add check on cx_calendar rather than cx_lo/hi_ww to indicate whether time
* is date or timesteps
* V500 *kob* 3/99- up VAR_CODE decl from 8 to 64 chars
@@ -140,6 +143,11 @@
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
* V690 12/13 *sh* set default regrid transforms for aux var regridding transform
* set up dynamic axis if cx_delta=pauto_1pt_ax
+* 4/14 *sh* return standard grid if "false regridding" - 1 pt curvi
+* V695 *acm* 2/15 cx_calendar stores info about formatting of T and F axes
+* V695+ *sh* 3/15 assign regrid transform for T-F plane FMRC regridding
+* V698+ *sh* 5/15 ax units for gz(density)=lo:hi:del should come from aux var
+* only partially fixed here: T0 not parsed from auxvar units
include 'errmsg.parm'
include 'ferret.parm'
@@ -156,21 +164,24 @@
include 'xtm_grid.cmn_text'
external xgt_grid_data
include 'xfr_grid.cmn' ! stack ptr should be in TMAP lib
+ include 'xunits.cmn_text'
* calling argument declarations:
INTEGER cx, status
* internal variable declarations:
LOGICAL GEOG_COS_FACTOR, GEOG_LABEL,
- . its_dyn, has_impl_axis, explicit_unstd
- INTEGER KNOWN_GRID,
+ . its_dyn, has_impl_axis, explicit_unstd, use_std_grid,
+ . made_aux_line_dummy
+ INTEGER KNOWN_GRID, TM_UNIT_ID,
. use_grid, ilo, ihi,
. cat, var, dset, std_grid, std_axis, use_axis, idim,
- . base_grid, impl_grid
+ . base_grid, impl_grid, src_line
REAL*8 SECS_TO_TSTEP, dlo, dhi, delta
- CHARACTER VAR_CODE*128
+ CHARACTER VAR_CODE*128, AUX_VAR_UNITS*64
* initialize
+ made_aux_line_dummy = .FALSE.
cat = cx_category( cx )
var = cx_variable( cx )
dset = cx_data_set( cx )
@@ -180,7 +191,8 @@
* by this point the variable and data set must be known
IF ( var .EQ. unspecified_int4 ) CALL ERRMSG
. ( ferr_syntax,status,'no variable specified',*5000 )
- IF ( ( cat.EQ.cat_file_var .OR. cat.EQ.cat_aggregate_var .OR. cat.EQ.cat_calc_var )
+ IF ( ( cat.EQ.cat_file_var .OR. cat.EQ.cat_agg_e_var .OR.
+ . cat.EQ.cat_agg_f_var .OR. cat.EQ.cat_calc_var )
. .AND. dset.EQ.unspecified_int4 ) CALL ERRMSG
. ( ferr_state_not_set,status,'SET DATA_SET',*5000 )
@@ -280,7 +292,7 @@
ENDIF
IF (idim.EQ.t_dim .OR. idim.EQ.f_dim) THEN
* 8/97 *kob* use cx_calender to check if time is date rather than time step
- IF ( cx_calendar(cx) ) THEN
+ IF ( cx_calendar(idim,cx) ) THEN
IF (.NOT.GEOG_LABEL(idim,std_grid)) GOTO 5400
dlo = SECS_TO_TSTEP(std_grid,idim,-1.*cx_lo_ww(idim,cx))
dhi = SECS_TO_TSTEP(std_grid,idim,-1.*cx_hi_ww(idim,cx))
@@ -288,11 +300,25 @@
. / line_tunit(grid_line(idim,std_grid)) !was hrs
ENDIF
ENDIF
+* 5/15 ax units for gz(density)=lo:hi:del come from aux var
+ IF ( cx_naux(cx) .GT.0
+ . .AND. cx_aux_var(idim,cx) .NE. unspecified_int4 ) THEN
+* ... set up specimen line using units information from the auxiliary variable
+ CALL TM_MAKE_BASIC_AXIS('tmp_aux_line_dummy',0.,1.,1,
+ . src_line, status)
+ made_aux_line_dummy = .TRUE.
+ line_units(src_line) = AUX_VAR_UNITS(cx,idim)
+ line_unit_code(src_line) = TM_UNIT_ID(line_units(src_line))
+ line_tunit(src_line) = un_convert(line_unit_code(src_line))
+* ** MORE TO BE DONE: line_t0 and calendar need to be set as in cd_get_1_axis.F
+ ELSE
+ src_line = grid_line(idim,std_grid)
+ ENDIF
CALL TM_GET_LIKE_DYN_LINE( idim,
. dlo,
. dhi,
. delta,
- . grid_line(idim,std_grid),
+ . src_line,
. pline_class_basic,
. grid_line(idim,impl_grid),
. status)
@@ -315,7 +341,15 @@
ENDIF
* use the standard grid ?
- IF ( .NOT. cx_unstand_grid( cx ) ) THEN
+* 4/14 cx_unstand_grid may indicate a "false regrid" used for single point curvi results
+* note that false regridding may not have been checked in all possible combos of
+* delta values on other axes, etc.
+ use_std_grid = .NOT. cx_unstand_grid( cx )
+ DO idim = 1, nferdims
+ IF (cx_aux_stat(idim,cx) .EQ. paux_stat_false_1pt_regrid)
+ . use_std_grid = .TRUE.
+ ENDDO
+ IF ( use_std_grid ) THEN
cx_grid( cx ) = std_grid
RETURN
ENDIF
@@ -399,6 +433,10 @@
ELSEIF ( cx_regrid_trans(idim,cx) .EQ. unspecified_int4 ) THEN
IF (cx_naux(cx) .EQ. 0) THEN
cx_regrid_trans( idim, cx ) = prgrd_linear_interp
+ ELSEIF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim)
+ . .AND. cx_aux_var( idim,cx) .NE. unspecified_int4
+ . .AND. cx_aux_var(t_dim,cx) .EQ. cx_aux_var(f_dim,cx) ) THEN
+ cx_regrid_trans( idim, cx ) = pauxrgrd_fmrc ! T-F plane
ELSE
cx_regrid_trans( idim, cx ) = pauxrgrd_linear
ENDIF
@@ -425,7 +463,8 @@
ENDIF
ENDIF
- 5000 RETURN
+ 5000 IF (made_aux_line_dummy) CALL TM_DEALLO_DYN_LINE(src_line) ! is this needed?
+ RETURN
* error exits
! 5100 CALL ERRMSG( ferr_invalid_command, status,
diff --git a/fer/ctx/get_var_context.F b/fer/ctx/get_var_context.F
index 5665ce1..6853338 100644
--- a/fer/ctx/get_var_context.F
+++ b/fer/ctx/get_var_context.F
@@ -65,9 +65,10 @@
* V685 4/13 *sh* parse the auxiliary regridding context terms ("*aux*"), too
* and don't report errors in dependency_tree_mode
* V690 12/13 *sh* bug fix when variable name unrecognized in VTREE mode
-* V693 10/14 *acm fix ticket 2206: If the grid number is a placeholder, don't
+* V693 10/14 *acm* fix ticket 2206: If the grid number is a placeholder, don't
* go call flesh_out_axis etc (See the comment in get_context_mods, where
* the grid is an encoding of the start/end limits of the regrid spec)
+* V695+ 5/15 *sh* report unrecognized aux var unless in dependency_tree_mode
IMPLICIT NONE
@@ -80,7 +81,9 @@
include 'xprog_state.cmn'
include 'xdset_info.cmn_text'
include 'xdependency_tree.cmn'
+ include 'xtm_grid.cmn_text'
external xdset_info_data
+# include "tmap_dset.parm"
* calling argument declarations:
INTEGER default_cx, var_cx, status
@@ -111,16 +114,22 @@
cx_variable(var_cx) = unspecified_int4
cx_category(var_cx) = unspecified_int4
unreported_error = .TRUE.
- IF (cx_has_impl_grid(var_cx)) THEN
- IF (cx_impl_grid(var_cx).NE.grd_stk_ptr )
- . CALL WARN('crptn_get_var_ctxt')
- CALL DEALLO_GRID(i) ! 12/13 bug fix
- ENDIF
ELSE
GOTO 5000
ENDIF
ENDIF
+* in dependency tree mode bail out of implicit grid created by GET_CONTEXT_MODS
+ IF ( dependency_tree_mode ) THEN
+ IF (cx_has_impl_grid(var_cx)) THEN
+ IF (cx_impl_grid(var_cx).NE.grd_stk_ptr )
+ . CALL WARN('crptn_get_var_ctxt')
+ grid_name(grd_stk_ptr) = char_init16
+ grd_stk_ptr = grd_stk_ptr + 1
+ cx_has_impl_grid(var_cx) = .FALSE.
+ ENDIF
+ ENDIF
+
* if explicit auxiliary regridding variables were detected, identify them
IF (cx_naux(var_cx).GT.0 .AND. .NOT.cx_implicit_aux(var_cx)) THEN
iarg = 0
@@ -147,12 +156,14 @@
cx_aux_cat (idim,var_cx) = cat
cx_aux_var (idim,var_cx) = var
cx_aux_stat(idim,var_cx) = paux_stat_used
- ELSE
+ ELSEIF ( dependency_tree_mode ) THEN
cx_valid_aux(iarg,var_cx) = .FALSE. ! a name not found
IF (.NOT. unreported_error) THEN
status = ferr_unknown_auxvar
unreported_error = .TRUE.
ENDIF
+ ELSE
+ GOTO 5200
ENDIF
ENDIF
ENDDO
@@ -162,6 +173,9 @@
GOTO 5000
ENDIF
+* below here is work that is needed for evaluations; not for dependency tree
+ IF ( dependency_tree_mode ) GOTO 100 ! 12/31
+
* 8/99 If G=unknown_user_var was given then exit now.
* It is recognizable because the text position is encoded in the grid number.
* This should happen ONLY when this is called from IS_UVAR_GRID
@@ -199,6 +213,9 @@ c Fix for bug 1475
c FLESH_OUT_AXIS has a check for whether there is a transformation that
c reduces the range to a point and if so sets cx_by_ss(idim,cx)=.FALSE.
+** NOTE: This change causes bug 1748 because then the index range for the
+** transform doesn't get checked in confine_context.
+
* flesh out the context on each axis with grid-related positions
* seeing if cx_by_ss(idim,cx) should really be in effect
DO 11 idim = 1, nferdims
diff --git a/fer/ctx/init_context_mods.F b/fer/ctx/init_context_mods.F
index d194427..6bf9e0a 100644
--- a/fer/ctx/init_context_mods.F
+++ b/fer/ctx/init_context_mods.F
@@ -52,6 +52,7 @@
* V510 *sh* - added cx_formatted
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* V685 3/2013 *sh* initialize auxiliary regrid variable info
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -71,7 +72,6 @@
cx_grid( cx ) = unspecified_int4
cx_unstand_grid( cx ) = .FALSE.
cx_has_impl_grid( cx ) = .FALSE.
- cx_calendar(cx) = .FALSE.
cx_grid_needs_dset = .FALSE.
* initialize region
@@ -79,6 +79,7 @@
DO 100 idim = 1, nferdims
cx_lo_ss ( cx, idim ) = unspecified_int4
cx_hi_ss ( cx, idim ) = unspecified_int4
+ cx_calendar(idim,cx) = .FALSE.
cx_lo_ww ( idim, cx ) = unspecified_val8
cx_hi_ww ( idim, cx ) = unspecified_val8
cx_delta ( idim, cx ) = unspecified_val8
diff --git a/fer/ctx/init_empty_context.F b/fer/ctx/init_empty_context.F
index 0f272c9..491f3bc 100644
--- a/fer/ctx/init_empty_context.F
+++ b/fer/ctx/init_empty_context.F
@@ -42,6 +42,7 @@
* V530: 8/00 *sh* - initialize data type to unspecified
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* V690 *sh* 2/14 init auxiliary var-related context variables
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -85,8 +86,8 @@
cx_impl_grid ( cx ) = unspecified_int4
* kob 9/97 - need to initialize cx_calendar as well
- IF (idim .eq. t_dim)
- . cx_calendar(cx) = .FALSE.
+ IF (idim .eq. t_dim .OR. idim .eq. f_dim)
+ . cx_calendar(idim,cx) = .FALSE.
* (*) initialized to TRUE so that ANDing with another context will yield
* TRUE only if "given" in that context
diff --git a/fer/ctx/known_data_type.F b/fer/ctx/known_data_type.F
index 8e74502..2afb262 100644
--- a/fer/ctx/known_data_type.F
+++ b/fer/ctx/known_data_type.F
@@ -69,11 +69,15 @@
cx_type(cx) = ds_var_type(variable)
- ELSEIF ( category .EQ. cat_aggregate_var ) THEN
+ ELSEIF ( category .EQ. cat_agg_e_var ) THEN
cx_type(cx) = ds_var_type(variable)
- ELSEIF ( category .EQ. cat_pystat_var ) THEN
+ ELSEIF ( category .EQ. cat_agg_f_var ) THEN
+
+ cx_type(cx) = ds_var_type(variable)
+
+ ELSEIF ( category .EQ. cat_pystat_var ) THEN
cx_type(cx) = pyvar_type(variable)
diff --git a/fer/ctx/merge_axis_with_offsets.F b/fer/ctx/merge_axis_with_offsets.F
index b700d8f..a4e6b85 100644
--- a/fer/ctx/merge_axis_with_offsets.F
+++ b/fer/ctx/merge_axis_with_offsets.F
@@ -46,6 +46,7 @@
* V500: 4/9/98 - extracted from merge_context
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* V685 *acm* 12/13 Fix bug in 6D Ferret decclarations, lo_off and hi_off
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -114,8 +115,8 @@
* cx_given ( idim, dest ) = cx_given ( idim, source )
* cx_trans_arg(idim, dest) = cx_trans_arg(idim, source)
** 8/97 *kob*
-* IF (idim .EQ. t_dim)
-* . cx_calendar(dest) = cx_calendar(source)
+* IF (idim .EQ. t_dim .OR. idim .eq. f_dim)
+* . cx_calendar(idim,dest) = cx_calendar(idim,source)
* successful completion
diff --git a/fer/ctx/merge_grid.F b/fer/ctx/merge_grid.F
index 03f26bb..69bf0dd 100644
--- a/fer/ctx/merge_grid.F
+++ b/fer/ctx/merge_grid.F
@@ -114,6 +114,10 @@
* user-variable has multiple sub-expressions
* v690 *sh* 2/14 Determine the curvilinear (aux var) dependencies of the merged
* expression
+* V694+*acm*5/15 Fix for ticket 2273: return= shape, *size for expressions built
+* of other exprns.
+* V695 *acm* 6/16 Fix ticket 1602. Do not substitute abstract axes for normal axes
+* when merging a constant.
include 'tmap_dims.parm'
include 'grid_chg_fcns.parm'
@@ -135,14 +139,14 @@
* local variable declarations
LOGICAL INHERITED_LIMITS, ITSA_PURE_SUM_VAR,
- . same, nest, expl_com_lim
+ . same, nest, expl_com_lim, abstgrid, normabst, var_is_const
INTEGER CX_DIM_LEN, TM_LENSTR1, REGION_CLASS,
. NEST_REGION_CLASS, WHICH_GCFCN, GCF_RTN_TYPE,
. mrg_grd, mrg_ax, mrg_len, com_grd, com_ax, com_len,
. idim, i, icom, imrg, com_uvar, com_class, mrg_class,
. uv_class, ax_choice(6,5), joint_match(0:3,0:3),
. lims_gvn, gcfcn, axis_source(nferdims), uvar_test,
- . naux, blen
+ . naux, blen, mabstract, iline
CHARACTER VAR_CODE*128, buff*128
* local parameter declarations
@@ -151,6 +155,8 @@
INTEGER gnl, lo, lohi, xact
PARAMETER ( gnl=0, lo=1, lohi=2, xact=3 )
+* FERRET DOCUMENTATION: merging grids for an expression
+*
* procedure:
* the important considerations are
* o whether merged/component axes are same axis
@@ -261,7 +267,19 @@
* do we have nested user-defined variables ?
nest = cx_category( com_cx ) .EQ. cat_user_var
- IF ( nest ) com_uvar = cx_variable( com_cx )
+ IF ( nest ) THEN
+ com_uvar = cx_variable( com_cx )
+ var_is_const = uvar_item_type( uvar_num_items(com_uvar), com_uvar )
+ . .EQ. alg_constant
+ ENDIF
+
+* Is the mrg_grd all normal or abstract ?
+ mabstract = grid_line( 1, mgrid_abstract )
+ normabst = .TRUE.
+ DO idim = 1, nferdims
+ iline = grid_line(idim,mrg_grd)
+ IF (iline.NE.mnormal .AND. iline.NE.mabstract) normabst = .FALSE.
+ ENDDO
* for merged context to be data set independent all components must be so
IF ( cx_category(com_cx) .EQ. cat_pseudo_var ) THEN
@@ -468,6 +486,13 @@
cx_given(idim,mrg_cx) = cx_given(idim,mrg_cx)
. .AND. expl_com_lim
+* Do not substitute an abstract axis for normal axes in the grid
+* when merging a constant
+
+ IF (com_ax.EQ.mabstract .AND. mrg_ax.EQ.mnormal) THEN
+ IF (.NOT. (normabst) .AND. var_is_const) GOTO 400
+ ENDIF
+
* take appropriate merging action
* EXP IMP WRN1 *** NA WRN2
GOTO ( 100, 200, 90, 9000, 400, 190 ) ax_choice(icom,imrg)
@@ -530,9 +555,13 @@
* for the entire expression. This was the cause of ticket 2051. Use
* uvlim_need_lohi instead for the tests below.
+* For 2273, we do not want to change the value of uvar_test here. The
+* examples in ticket 2051 still give correct resu;ts, but the RETURN= examples
+* in the report for 2273 did not. Perhaps changes for the `RETURN=isready`
+* have allowed cause this to work better?
+
cc IF ( uvar_given(idim,uvar) .EQ. uvlim_need_xact ) GOTO 500
uvar_test = uvar_given(idim,uvar)
- IF ( uvar_given(idim,uvar) .EQ. uvlim_need_xact ) uvar_test = uvlim_need_lohi
* get limits-region class of new component
IF ( nest ) THEN
diff --git a/fer/ctx/parse_var_name.F b/fer/ctx/parse_var_name.F
index 30434a4..8472493 100644
--- a/fer/ctx/parse_var_name.F
+++ b/fer/ctx/parse_var_name.F
@@ -70,6 +70,8 @@
* V685 3/13 *sh* support for auxiliary regridding variables
* and SHOW VAR/DEPENDENCIES (unknown variable err not reported)
* V690 12/13 *sh* set auto-curvilinear actions that are needed
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* 12/14 *sh* save bracket character positions for VTREE report
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -171,6 +173,13 @@
. status )
IF ( status .NE. ferr_ok ) GOTO 5900
+! no. save exact position when error is detected in GET_CONTEXT_MODS
+!* save the bracket position for VTREE unknown grid report
+! IF (cx_vtree_unknown_grid) THEN
+! cx_vtree_var_or_start = left_bracket
+! cx_vtree_cat_or_end = right_bracket
+! ENDIF
+
* apply those context mods that don't need to know the grid
* apply them now, before looking for the variable name, because the data set is
* needed in the name search
@@ -215,7 +224,7 @@
* set up automated curvilinear actions: aux variable loads and regridding
* cases include
-* [z=pt, sigma], [z=lo:hi:delta,sigma], [z=lo:hi at ave,sigma], [gz=zax,sigma]
+* [z=pt, layerz], [z=lo:hi:delta,layerz], [z=lo:hi at ave,layerz], [gz=zax,layerz]
cx_implicit_aux(var_cx) = .FALSE. ! set default
aux_given = .FALSE.
DO idim = 1, nferdims
@@ -224,7 +233,7 @@
IF ( aux_given ) THEN
IF ( cx_category(var_cx) .NE. cat_file_var
. .AND. cx_category(var_cx) .NE. cat_user_var ) GOTO 5200
-! IF (cx_mod_sigma .AND.
+! IF (cx_mod_layerz .AND.
! . .NOT. (cx_given(z_dim,mods_cx)) GOTO 5300
! IF (cx_mod_curvi .AND.
! . .NOT.(cx_given(x_dim,mods_cx).AND.cx_given(y_dim,mods_cx))
@@ -236,19 +245,21 @@
* set the data type of the variable'
IF ( cx_category(var_cx) .EQ. cat_file_var ) THEN
cx_type(var_cx) = ptype_float ! TO BE GENERALIZED LATER (8/00)
- ELSEIF ( cx_category(var_cx) .EQ. cat_aggregate_var ) THEN
+ ELSEIF ( cx_category(var_cx) .EQ. cat_agg_e_var ) THEN
+ cx_type(var_cx) = ptype_float
+ ELSEIF ( cx_category(var_cx) .EQ. cat_agg_f_var ) THEN
cx_type(var_cx) = ptype_float
- ELSEIF ( cx_category(var_cx) .EQ. cat_pystat_var ) THEN
- cx_type(var_cx) = ptype_float
- ELSEIF (cx_category(var_cx) .EQ. cat_calc_var ) THEN
+ ELSEIF ( cx_category(var_cx) .EQ. cat_pystat_var ) THEN
+ cx_type(var_cx) = ptype_float
+ ELSEIF ( cx_category(var_cx) .EQ. cat_calc_var ) THEN
cx_type(var_cx) = ptype_float
- ELSEIF (cx_category(var_cx) .EQ. cat_counter_var ) THEN
+ ELSEIF ( cx_category(var_cx) .EQ. cat_counter_var ) THEN
cx_type(var_cx) = ptype_float
- ELSEIF (cx_category(var_cx) .EQ. cat_attrib_val) THEN
+ ELSEIF (cx_category(var_cx) .EQ. cat_attrib_val) THEN
do_err = .TRUE.
dset = cx_data_set(var_cx)
- IF (dset .EQ. unspecified_int4) dset = -1
+ IF (dset .EQ. unspecified_int4) dset = pdset_uvars
CALL BREAK_VARATTNAME ( newname(1:name_len),
. dset, varname,
. attname, varid, do_err, status )
@@ -306,10 +317,10 @@
. ( ferr_unknown_variable, status, full_var_name, *5900 )
ENDIF
5200 CALL ERRMSG( ferr_syntax, status,
- . 'SIGMA and CURVI can only be used on LET variables'//
+ . 'LAYERZ and CURVI can only be used on LET variables'//
. ' and file variables: '//full_var_name, *5900 )
! 5300 CALL ERRMSG( ferr_syntax, status,
-! . 'SIGMA must be accompanied by explicit Z limits: '
+! . 'LAYERZ must be accompanied by explicit Z limits: '
! . //full_var_name, *5900 )
! 5350 CALL ERRMSG( ferr_syntax, status,
! . 'CURVI must be accompanied by explicit X and Y limits: '
diff --git a/fer/ctx/pseudo_var_context.F b/fer/ctx/pseudo_var_context.F
index 2637b08..de7b958 100644
--- a/fer/ctx/pseudo_var_context.F
+++ b/fer/ctx/pseudo_var_context.F
@@ -70,6 +70,7 @@
* V581*acm* 6/05 - For fix to bug 1271, add flag line_shift_origin
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
* *acm* 4/12 Add new MODE FOURDEE to allow E,F,M,N,etc as user-vars
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'ferret.parm'
include 'errmsg.parm'
@@ -209,7 +210,8 @@
ELSE
* ... special processing for calendar pseudo-variables and lat/long formatting
* *kob* 8/97 check cx_calendar rather then cx_lo_ww
- calendar = pvdim.EQ.t_dim .AND. cx_calendar(pvar_cx)
+ calendar = (pvdim.EQ.t_dim .OR. pvdim.EQ.f_dim) .AND.
+ . cx_calendar(pvdim,pvar_cx)
alloed_tmp = .FALSE. ! assume no dyn axis allocated
IF ( calendar ) THEN
* ... note: a minor misbehavior: for the pseudo-variable
@@ -220,7 +222,7 @@
cx_hi_ww(pvdim,pvar_cx) = cx_hi_ww(pvdim,pvar_cx)
. /(-1 * daysinsecs) ! days since BC
* *kob* 9/997 - reset cx_calendar after conversion
- cx_calendar(pvar_cx) = .FALSE.
+ cx_calendar(pvdim,pvar_cx) = .FALSE.
cx_delta(pvdim,pvar_cx) = cx_delta(pvdim,pvar_cx)/24.
CALL TM_ALLO_DYN_LINE( tmp, status )
IF ( status .NE. ferr_ok ) GOTO 5000
diff --git a/fer/dat/SOURCE_FILES b/fer/dat/SOURCE_FILES
index 12475da..8e9fd03 100644
--- a/fer/dat/SOURCE_FILES
+++ b/fer/dat/SOURCE_FILES
@@ -18,7 +18,6 @@ xonedim_data.F\
xplot_setup_data.F\
xplot_state_data.F\
xprog_state_data.F\
-xpyvar_info_data.F\
xrevision_data.F\
xtext_info_data.F\
xvariables_data.F\
diff --git a/fer/dat/xalgebra_data.F b/fer/dat/xalgebra_data.F
index 0c35877..b7cce19 100644
--- a/fer/dat/xalgebra_data.F
+++ b/fer/dat/xalgebra_data.F
@@ -92,6 +92,9 @@
* pseudo-variables
* *acm* 4/12 Add new MODE FOURDEE to allow E,F,M,N,etc as user-vars
* V690 12/13 *sh* added auxiliary regridding transforms
+* v695+ 3/15 *sh* added pauxrgrd_fmrc for T-F orthoganalization
+* V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
+* V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
IMPLICIT NONE
include 'ferret.parm'
@@ -689,10 +692,19 @@
. alg_trans_num ( 43 ) / trans_avg_wgt /,
. alg_trans_text ( 44 ) / 'WG4' /,
. alg_trans_title( 44 ) / '4D weights, avg,int' /,
- . alg_trans_num ( 44 ) / trans_4d_avg_wgt /
+ . alg_trans_num ( 44 ) / trans_4d_avg_wgt /,
+ . alg_trans_text ( 45 ) / 'SPX' /,
+ . alg_trans_title( 45 ) / 'box smooth w/missing'/,
+ . alg_trans_num ( 45 ) / trans_smth_box_p /,
+ . alg_trans_its_int ( 45) / .TRUE. /,
+ . alg_trans_has_arg ( 45) / .TRUE. /,
+ . alg_trans_dflt_arg( 45) / 3. /,
+ . alg_trans_text ( 46 ) / 'SD4' /,
+ . alg_trans_title( 46 ) / '4D stddev' /,
+ . alg_trans_num ( 46 ) / trans_4d_std /
- DATA (alg_trans_num(i),i = 45, num_transforms)
- . /16*unspecified_int4 /
+ DATA (alg_trans_num(i),i = 47, num_transforms)
+ . /14*unspecified_int4 /
DATA
. alg_regrid_title( prgrd_exact ) / ' ' /,
@@ -701,7 +713,7 @@
. alg_regrid_title( prgrd_linear_interp ) / 'lin. interp.'/,
. alg_regrid_code ( prgrd_linear_interp ) / 'LIN' /,
. alg_regrid_vizb ( prgrd_linear_interp ) / .TRUE. /,
- . alg_regrid_title( prgrd_average ) / 'box avgd' /,
+ . alg_regrid_title( prgrd_average ) / 'area-wgtd avgd'/,
. alg_regrid_code ( prgrd_average ) / 'AVE' /,
. alg_regrid_vizb ( prgrd_average ) / .TRUE. /,
. alg_regrid_title( prgrd_xy_ave ) / 'area avgd' /,
@@ -725,10 +737,10 @@
. alg_regrid_title( prgrd_max ) / 'maximum' /,
. alg_regrid_code ( prgrd_max ) / 'MAX' /,
. alg_regrid_vizb( prgrd_max ) / .TRUE. /,
- . alg_regrid_title( prgrd_sum ) / 'sum' /,
+ . alg_regrid_title( prgrd_sum ) / 'area-wgtd sum'/,
. alg_regrid_code ( prgrd_sum ) / 'SUM' /,
. alg_regrid_vizb( prgrd_sum ) / .TRUE. /,
- . alg_regrid_title( prgrd_good_pt ) / '# gd pts' /,
+ . alg_regrid_title( prgrd_good_pt ) / '#gd pts, area wgtd' /,
. alg_regrid_code ( prgrd_good_pt ) / 'NGD' /,
. alg_regrid_vizb ( prgrd_good_pt ) / .TRUE. /,
. alg_regrid_title( prgrd_modulo ) / 'modulo ave' /,
@@ -755,12 +767,19 @@
. alg_regrid_title( prgrd_nearest ) / 'nearst coord'/,
. alg_regrid_code ( prgrd_nearest ) / 'NRST' /
. alg_regrid_vizb ( prgrd_nearest ) / .TRUE. /,
- . (alg_regrid_title(i),i=prgrd_nearest+1,max_regrid_trans)
- . /11*unspecified_name4/,
- . (alg_regrid_code (i),i=prgrd_nearest+1,max_regrid_trans)
- . /11*unspecified_name4/,
- . (alg_regrid_vizb (i),i=prgrd_nearest+1,max_regrid_trans)
- . /11*.FALSE./
+ . alg_regrid_title( prgrd_bin ) / 'unwgtd avg' /,
+ . alg_regrid_code ( prgrd_bin ) / 'BIN' /
+ . alg_regrid_vizb ( prgrd_bin ) / .TRUE. /,
+ . alg_regrid_title( prgrd_nbin ) / '#good in bin'/,
+ . alg_regrid_code ( prgrd_nbin ) / 'NBIN' /
+ . alg_regrid_vizb ( prgrd_nbin ) / .TRUE. /,
+
+ . (alg_regrid_title(i),i=prgrd_nbin+1,max_regrid_trans)
+ . /8*unspecified_name4/,
+ . (alg_regrid_code (i),i=prgrd_nbin+1,max_regrid_trans)
+ . /8*unspecified_name4/,
+ . (alg_regrid_vizb (i),i=prgrd_nbin+1,max_regrid_trans)
+ . /8*.FALSE./
DATA
@@ -778,18 +797,23 @@
. / 'box ave from thkness'/,
. alg_regrid_code (pauxrgrd_thick_ave)/ unspecified_name4 /,
. alg_regrid_vizb (pauxrgrd_thick_ave) / .FALSE. /,
+ . alg_regrid_title(pauxrgrd_fmrc)
+ . / 'reorg T-F array'/,
+ . alg_regrid_code (pauxrgrd_fmrc) / 'FMRC'/,
+ . alg_regrid_vizb (pauxrgrd_fmrc) / .FALSE. /,
+
. (alg_regrid_title(i),
- . i=pauxrgrd_thick_ave+1,max_auxregrid_trans)
- . /2*unspecified_name4/,
+ . i=pauxrgrd_fmrc+1,max_auxregrid_trans)
+ . /1*unspecified_name4/,
. (alg_regrid_code (i),
- . i=pauxrgrd_thick_ave+1,max_auxregrid_trans)
- . /2*unspecified_name4/,
+ . i=pauxrgrd_fmrc+1,max_auxregrid_trans)
+ . /1*unspecified_name4/,
. (alg_regrid_vizb (i),
- . i=pauxrgrd_thick_ave+1,max_auxregrid_trans)
- . /2*.FALSE./
+ . i=pauxrgrd_fmrc+1,max_auxregrid_trans)
+ . /1*.FALSE./
* translation table for substituting 1D transformations with 4D transforms
- DATA num_4d_trans/ 7 /
+ DATA num_4d_trans/ 8 /
DATA alg_1d_to_4d(1) /trans_average/,
. alg_4d_trans(1) /trans_4d_ave/,
. alg_1d_to_4d(2) /trans_integ_def/,
@@ -804,6 +828,8 @@
. alg_4d_trans(6) /trans_4d_sum/,
. alg_1d_to_4d(7) /trans_avg_wgt/,
. alg_4d_trans(7) /trans_4d_avg_wgt/
+ . alg_1d_to_4d(8) /trans_std_dev/,
+ . alg_4d_trans(8) /trans_4d_std/
END
diff --git a/fer/dat/xcommand_data.F b/fer/dat/xcommand_data.F
index 98616ea..9fc2f98 100644
--- a/fer/dat/xcommand_data.F
+++ b/fer/dat/xcommand_data.F
@@ -213,9 +213,20 @@
* PyFr *kms* 8/13 Add /ANNOTATE to FRAME
* V685 *sh* 9/13 Add SHOW VARIABLE/TREE and alias VTREE
* V685 *acm* 11/13 Add /QUIET for DEFINE ATTRIBUTE
-* V690 *sh* 12/13 Add /CURVILINEAR and /SIGMA to action commands
-* Add SET,CANCEL,SHOW VARIABLE/SIGMA/CURVI
+* V690 *sh* 12/13 Add /CURVILINEAR and /LAYERZ to action commands (formerly /SIGMA)
+* Add SET,CANCEL,SHOW VARIABLE/LAYERZ/CURVI (formerly /SIGMA)
* V687 3/14 *acm* add SET AXIS/NAME
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V695 *acm* 2/15 Add DEFINE AGGREGATE/F alias, FMRC
+* V695 *acm* 3/15 Changes for PyFerret fonts. Add SHOW TEXT,
+* 4/15 Add SET TEXT/FONT/COLOR/ITALIC/BOLD/ISIZ
+* Add CANCEL TEXT/FONT/COLOR/ITALIC/BOLD/ISIZ
+* No args on SHOW TEXT
+* V695 *acm* 6/16 New ANNOTATE command.
+* V695 *acm* 6/16 New subcommand DEFINE ANNOTATION
+* v696 *acm* 6/15 PLOT/VS/GAPLOC to define seperate line segments on
+* PLOT/VS plots (LAS ticket 1597 and others)
+* v696 *acm* 11/15 SET VAR/UNITS instead of /UNIT, just for consistency
IMPLICIT NONE
include 'ferret.parm'
@@ -256,7 +267,7 @@
DATA qualifiers (nqual_at1b+15)/ 'XINCHES' /
DATA qualifiers (nqual_at1b+16)/ 'YINCHES' /
DATA qualifiers (nqual_at1b+17)/ 'TEXTPROM' /
- DATA qualifiers (nqual_at1b+18)/ '****' /
+ DATA qualifiers (nqual_at1b+18)/ 'OUTLINE' /
DATA qualifiers (nqual_at1b+19)/ '****' /
* SET REGION
DATA subcommands (nsub_at1 + 2) / 'REGION' /
@@ -367,9 +378,9 @@
DATA subcommands (nsub_at1 + 9) / 'VARIABLE' /
DATA num_qualifs (nsub_at1 + 9) / nqual1j /
DATA qualifier_pointer(nsub_at1 + 9) / nqual_at1j /
-* SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+* SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
DATA qualifiers (nqual_at1j+0) / 'TITLE' /
- DATA qualifiers (nqual_at1j+1) / 'UNIT' /
+ DATA qualifiers (nqual_at1j+1) / 'UNITS' /
DATA qualifiers (nqual_at1j+2) / 'GRID' /
DATA qualifiers (nqual_at1j+3) / 'BAD' /
DATA qualifiers (nqual_at1j+4) / 'DATASET' /
@@ -377,7 +388,7 @@
DATA qualifiers (nqual_at1j+6) / 'SCALEFAC' /
DATA qualifiers (nqual_at1j+7) / 'OFFSET' /
DATA qualifiers (nqual_at1j+8) / 'OUTTYPE' /
- DATA qualifiers (nqual_at1j+9) / 'SIGMA' /
+ DATA qualifiers (nqual_at1j+9) / 'LAYERZ' /
DATA qualifiers (nqual_at1j+10)/ 'CURVILINEAR' /
DATA qualifiers (nqual_at1j+11)/ '****' /
DATA qualifiers (nqual_at1j+12)/ '****' /
@@ -448,15 +459,17 @@
DATA subcommands (nsub_at1 +16) / 'GIFFILE' /
DATA num_qualifs (nsub_at1 +16) / nqual1q /
DATA qualifier_pointer(nsub_at1 +16) / nqual_at1q /
-* SET **** ! unused (r)
- DATA subcommands (nsub_at1 +17) / '****' /
+* SET TEXT ! set text properties for PyFerret fonts
+ DATA subcommands (nsub_at1 +17) / 'TEXT' /
DATA num_qualifs (nsub_at1 +17) / nqual1r /
DATA qualifier_pointer(nsub_at1 +17) / nqual_at1r /
-* SET **** / ****
- DATA qualifiers (nqual_at1r+0) / '****' /
- DATA qualifiers (nqual_at1r+1) / '****' /
- DATA qualifiers (nqual_at1r+2) / '****' /
- DATA qualifiers (nqual_at1r+3) / '****' /
+* SET TEXT /FONT /COLOR /ITALIC /BOLD
+ DATA qualifiers (nqual_at1r+0) / 'FONT' /
+ DATA qualifiers (nqual_at1r+1) / 'COLOR' /
+ DATA qualifiers (nqual_at1r+2) / 'ITALIC' /
+ DATA qualifiers (nqual_at1r+3) / 'BOLD' /
+ DATA qualifiers (nqual_at1r+4) / 'ISIZ' /
+ DATA qualifiers (nqual_at1r+5) / '****' /
* SET **** ! unused (s)
DATA subcommands (nsub_at1 +18) / '****' /
DATA num_qualifs (nsub_at1 +18) / nqual1s /
@@ -583,7 +596,7 @@
DATA qualifiers (nqual_at2j+6) / 'APPEND' /
DATA qualifiers (nqual_at2j+7) / 'CLOBBER' /
DATA qualifiers (nqual_at2j+8) / 'TREE' / ! was /DEPENDENCY
- DATA qualifiers (nqual_at2j+9) / 'SIGMA' /
+ DATA qualifiers (nqual_at2j+9) / 'LAYERZ' /
DATA qualifiers (nqual_at2j+10)/ 'CURVILINEAR' /
DATA qualifiers (nqual_at2j+11)/ '****' /
DATA qualifiers (nqual_at2j+12)/ '****' /
@@ -687,14 +700,23 @@
DATA qualifiers (nqual_at2u+4) / 'DETAILS' /
DATA qualifiers (nqual_at2u+5) / '****' /
DATA qualifiers (nqual_at2u+6) / '****' /
+
+* SHOW TEXT ! view text properties for PyFerret fonts
+ DATA subcommands (nsub_at2 +21)/ 'TEXT' /
+ DATA num_qualifs (nsub_at2 +21) / nqual2v /
+ DATA qualifier_pointer(nsub_at2 +21) / nqual_at2v /
+* SHOW TEXT / ****
+ DATA qualifiers (nqual_at2v+0) / '****' /
+ DATA qualifiers (nqual_at2v+1) / '****' /
+
* SHOW QUERIES
- DATA subcommands (nsub_at2 +21) / 'QUERIES' /
- DATA num_qualifs (nsub_at2 +21) / nqual2v /
- DATA qualifier_pointer(nsub_at2 +21) / nqual_at2v /
+ DATA subcommands (nsub_at2 +22) / 'QUERIES' /
+ DATA num_qualifs (nsub_at2 +22) / nqual2w /
+ DATA qualifier_pointer(nsub_at2 +22) / nqual_at2w /
* SHOW QUERIES / ****
- DATA qualifiers (nqual_at2v+0) / 'ALL' /
- DATA qualifiers (nqual_at2v+1) / '****' /
- DATA qualifiers (nqual_at2v+2) / '****' /
+ DATA qualifiers (nqual_at2w+0) / 'ALL' /
+ DATA qualifiers (nqual_at2w+1) / '****' /
+ DATA qualifiers (nqual_at2w+2) / '****' /
* CANCEL - command # 3
DATA commands(3) / 'CANCEL' /
@@ -785,9 +807,9 @@
DATA qualifier_pointer(nsub_at3 +10) / nqual_at3k /
DATA qualifiers (nqual_at3k+0) / 'ALL ' /
DATA qualifiers (nqual_at3k+1) / 'DATASET' /
- DATA qualifiers (nqual_at3k+2) / 'SIGMA' /
+ DATA qualifiers (nqual_at3k+2) / 'LAYERZ' /
DATA qualifiers (nqual_at3k+3) / 'CURVILINEAR' /
- DATA qualifiers (nqual_at3k+4) / '****' /
+ DATA qualifiers (nqual_at3k+4) / 'NOERROR' /
DATA qualifiers (nqual_at3k+5) / '****' /
* CANCEL AXIS
DATA subcommands (nsub_at3 +11) / 'AXIS' /
@@ -837,13 +859,17 @@
DATA qualifiers (nqual_at3s+0) / 'ALL' /
DATA qualifiers (nqual_at3s+1) / 'DATASET' /
DATA qualifiers (nqual_at3s+2) / '****' /
-* CANCEL **** ! unused(t)
- DATA subcommands (nsub_at3 +19) / '****' /
+* CANCEL TEXT ! unset text properties for PyFerret fonts
+ DATA subcommands (nsub_at3 +19) / 'TEXT' /
DATA num_qualifs (nsub_at3 +19) / nqual3t /
DATA qualifier_pointer(nsub_at3 +19) / nqual_at3t /
- DATA qualifiers (nqual_at3t+0) / '****' /
- DATA qualifiers (nqual_at3t+1) / '****' /
- DATA qualifiers (nqual_at3t+2) / '****' /
+ DATA qualifiers (nqual_at3t+0) / 'FONT' /
+ DATA qualifiers (nqual_at3t+1) / 'COLOR' /
+ DATA qualifiers (nqual_at3t+2) / 'ITALIC' /
+ DATA qualifiers (nqual_at3t+3) / 'BOLD' /
+ DATA qualifiers (nqual_at3t+4) / 'ISIZ' /
+ DATA qualifiers (nqual_at3t+5) / 'ALL' /
+ DATA qualifiers (nqual_at3t+6) / '****' /
* CONTOUR - command # 4
DATA commands(4) / 'CONTOUR' /
@@ -966,7 +992,7 @@
DATA qualifiers (nqual_at5a+52)/ 'ENDIAN'/
DATA qualifiers (nqual_at5a+53)/ 'OUTTYPE'/
DATA qualifiers (nqual_at5a+54)/ 'CURVILIN'/
- DATA qualifiers (nqual_at5a+55)/ 'SIGMA'/
+ DATA qualifiers (nqual_at5a+55)/ 'LAYERZ'/
DATA qualifiers (nqual_at5a+56)/ '****'/
DATA qualifiers (nqual_at5a+57)/ '****'/
DATA qualifiers (nqual_at5a+58)/ '****'/
@@ -1029,7 +1055,8 @@
DATA qualifiers (nqual_at6a+44)/ 'PALETTE'/ !
DATA qualifiers (nqual_at6a+45)/ 'FAST'/ ! style for Ribbon plot
DATA qualifiers (nqual_at6a+46)/ 'MISSING'/ ! For missing-dat in ribbon plot
- DATA qualifiers (nqual_at6a+47)/ 'OPACITY'/ ! overriding opacity
+ DATA qualifiers (nqual_at6a+47)/ 'GAPLOC'/ ! A variable marking gaps to insert in PLOT/VS
+ DATA qualifiers (nqual_at6a+48)/ 'OPACITY'/ ! overriding opacity
* GO - command # 7
DATA commands(7) / 'GO ' /
@@ -1227,18 +1254,32 @@
DATA subcommands (nsub_at10 + 10)/ 'DATA' /
DATA num_qualifs (nsub_at10 + 10)/ nqual10k /
DATA qualifier_pointer(nsub_at10 + 10)/ nqual_at10k /
-* DEFINE DATA / AGGREGATE / TITLE /HIDE /E
+* DEFINE DATA / AGGREGATE / TITLE /HIDE /E /F
DATA qualifiers (nqual_at10k+ 0)/ 'AGGREGATE' /
DATA qualifiers (nqual_at10k+ 1)/ '****' / ! reserved for x
DATA qualifiers (nqual_at10k+ 2)/ '****' / ! y
DATA qualifiers (nqual_at10k+ 3)/ '****' / ! z
DATA qualifiers (nqual_at10k+ 4)/ '****' / ! t
- DATA qualifiers (nqual_at10k+ 5)/ 'E' /
- DATA qualifiers (nqual_at10k+ 6)/ '****' / ! f
+ DATA qualifiers (nqual_at10k+ 5)/ 'E' / ! e
+ DATA qualifiers (nqual_at10k+ 6)/ 'F' / ! f
DATA qualifiers (nqual_at10k+ 7)/ 'TITLE' /
DATA qualifiers (nqual_at10k+ 8)/ 'QUIET' /
- DATA qualifiers (nqual_at10k+ 9)/ 'HIDE' /
-
+ DATA qualifiers (nqual_at10k+ 9)/ 'HIDE' /
+* DEFINE ANNOTATION
+ DATA subcommands (nsub_at10 + 11)/ 'ANNOTATION' /
+ DATA num_qualifs (nsub_at10 + 11)/ nqual10l /
+ DATA qualifier_pointer(nsub_at10 + 11)/ nqual_at10l /
+* DEFINE ANNOTATION /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
+ DATA qualifiers (nqual_at10l+ 0)/ 'USER' /
+ DATA qualifiers (nqual_at10l+ 1)/ 'NORM' /
+ DATA qualifiers (nqual_at10l+ 2)/ 'NOUSER' /
+ DATA qualifiers (nqual_at10l+ 3)/ 'XPOS' /
+ DATA qualifiers (nqual_at10l+ 4)/ 'YPOS' /
+ DATA qualifiers (nqual_at10l+ 5)/ 'HALIGN' /
+ DATA qualifiers (nqual_at10l+ 6)/ 'VALIGN' /
+ DATA qualifiers (nqual_at10l+ 7)/ 'ANGLE' /
+ DATA qualifiers (nqual_at10l+ 8)/ 'SIZE' /
+ DATA qualifiers (nqual_at10l+ 9)/ 'NLAB' /
* EXIT - command # 11
DATA commands(11) / 'EXIT' /
DATA its_action_command(11) / .FALSE. /
@@ -1664,18 +1705,28 @@
DATA qualifiers (nqual_at27a+42)/ 'OPACITY'/ ! overriding opacity
DATA qualifiers (nqual_at27a+43)/ '****'/
-* **** - command # 28
- DATA commands(28) / '****' /
+* ANNOTATE - command # 28
+ DATA commands(28) / 'ANNOTATE' /
DATA its_action_command(28) / .FALSE. /
DATA num_subcommands(28) / nsub28 /
DATA subcommand_pointer(28) / nsub_at28 /
-* **** ' '
+* ANNOTATE ' '
DATA subcommands (nsub_at28 + 0) / ' ' /
DATA num_qualifs (nsub_at28 + 0) / nqual28a /
DATA qualifier_pointer(nsub_at28 + 0) / nqual_at28a /
-* **** / ****
- DATA qualifiers (nqual_at28a+0)/ '****' /
- DATA qualifiers (nqual_at28a+1)/ '****' /
+* ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
+ DATA qualifiers (nqual_at28a+0)/ 'USER' /
+ DATA qualifiers (nqual_at28a+1)/ 'NORM' /
+ DATA qualifiers (nqual_at28a+2)/ 'NOUSER' /
+ DATA qualifiers (nqual_at28a+3)/ 'XPOS' /
+ DATA qualifiers (nqual_at28a+4)/ 'YPOS' /
+ DATA qualifiers (nqual_at28a+5)/ 'HALIGN' /
+ DATA qualifiers (nqual_at28a+6)/ 'VALIGN' /
+ DATA qualifiers (nqual_at28a+7)/ 'ANGLE' /
+ DATA qualifiers (nqual_at28a+8)/ 'SIZE' /
+ DATA qualifiers (nqual_at28a+9)/ '****' /
+ DATA qualifiers (nqual_at28a+10)/ '****' /
+ DATA qualifiers (nqual_at28a+11)/ '****' /
* **** - command # 29
DATA commands(29) / '****' /
@@ -1770,16 +1821,19 @@
. alias_name(22) / 'ENSEMBLE' /,
. alias_len(22) / 22 /,
. alias(22) / 'DEFINE DATA/AGGREGAT/E' /
- . alias_name(23) / 'VTREE' /,
- . alias_len(23) / 13 /,
- . alias(23) / 'SHOW VAR/TREE' /
+ . alias_name(23) / 'FMRC' /,
+ . alias_len(23) / 22 /,
+ . alias(23) / 'DEFINE DATA/AGGREGAT/F' /
+ . alias_name(24) / 'VTREE' /,
+ . alias_len(24) / 13 /,
+ . alias(24) / 'SHOW VAR/TREE' /
DATA
. (alias_name(i),i=num_predefined_alias+1,150)
- . / 127*unspecified_name4 /,
- . (alias_len(i),i=num_predefined_alias+1,150) / 127*4 /,
+ . / 126*unspecified_name4 /,
+ . (alias_len(i),i=num_predefined_alias+1,150) / 126*4 /,
. (alias(i),i=num_predefined_alias+1,150)
- . / 127*unspecified_name4 /
+ . / 126*unspecified_name4 /
DATA queries(1) / 'STATUS' /,
diff --git a/fer/dat/xfgrdel_data.F b/fer/dat/xfgrdel_data.F
index d9cde8a..5f20a85 100644
--- a/fer/dat/xfgrdel_data.F
+++ b/fer/dat/xfgrdel_data.F
@@ -67,6 +67,9 @@
* Scaling factor for line widths and symbol sizes
DATA thickfactor / maxwindowobjs * dflt_thicken /
+* Width of outlines for rectangles and other polygons
+ DATA outlinewidth / maxwindowobjs * 0.0 /
+
* Coordinate transformation data independent of windows
DATA viewleftfrac / maxtransforms * 0.0 /
DATA viewbottomfrac / maxtransforms * 0.0 /
diff --git a/fer/dat/xprog_state_data.F b/fer/dat/xprog_state_data.F
index 64c069d..a4a861e 100644
--- a/fer/dat/xprog_state_data.F
+++ b/fer/dat/xprog_state_data.F
@@ -107,7 +107,7 @@
* include tmap_dims.parm for nferdims needed by xprog_state.cmn
* *acm* 4/12 Add new MODE FOURDEE to allow E,F,M,N,etc as user-vars
* *acm* 4/12 Remove MODE FOURDEE, using _E, _F, _M, _N instead, throughout.
-* V6.8 acm 6/12 Instead of mode_ensemble_lab, mode_forecast_lab, use mode_6d_lab,
+* V6.8 acm 6/12 Instead of mode_ensemble_lab, mode_forecast_lab, use mode_F_LAB,
* which will be on by default. If canceled, the various SHOW and
* LIST commands, etc, will not list info for E,F dimensions.
* V683 *acm* 8/12 - add new MODE SHRINK_YLAB
@@ -115,6 +115,12 @@
* PyFr *kms* 8/12 - frame file ferret.gif -> ferret.png
* V685 *sh* 11/13 - added allowed_err for SH VAR/TREE
* V690 *sh* 12/13 - added mode_curvilinear, mode_sigma
+* V694 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V695 *acm* 5/15 logical flag its_pyferret
+* V695 *acm* 5/13 - Ticket 2281: mode_e_lab and mode_f_lab to act as mode_lon_lab, etc,
+* precision of E and F labeling. The values are equivalenced to
+* ax_dec_pt(MODE_6D_LAB still turns on and off the listing of all
+* 6 dimensions on SHOW commands.)
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -173,7 +179,9 @@
. / mode_stack_size*.TRUE. /,
. (mode_state( pmode_time_lab ,i), i=1,mode_stack_size)
. / mode_stack_size*.TRUE. /,
- . (mode_state( pmode_6d_lab ,i), i=1,mode_stack_size)
+ . (mode_state( pmode_E_LAB ,i), i=1,mode_stack_size)
+ . / mode_stack_size*.TRUE. /,
+ . (mode_state( pmode_F_LAB ,i), i=1,mode_stack_size)
. / mode_stack_size*.TRUE. /
DATA (mode_state( pmode_font_ascii ,i), i=1,mode_stack_size)
. / mode_stack_size*.TRUE. /,
@@ -215,8 +223,10 @@
. / mode_stack_size*.FALSE. /
. (mode_state( pmode_curvilinear,i), i=1,mode_stack_size)
. / mode_stack_size*.FALSE. /
- . (mode_state( pmode_sigma,i), i=1,mode_stack_size)
+ . (mode_state( pmode_layerz,i), i=1,mode_stack_size)
. / mode_stack_size*.FALSE. /
+ . (mode_state( pmode_6d_lab,i), i=1,mode_stack_size)
+ . / mode_stack_size*.TRUE. /
DATA mode_name ( pmode_diagnostic ) / 'DIAGNOSTIC ' /,
. mode_name ( pmode_verify ) / 'VERIFY ' /,
@@ -228,7 +238,8 @@
. mode_name ( pmode_lat_lab ) / 'LATIT_LABEL' /,
. mode_name ( pmode_depth_lab ) / 'DEPTH_LABEL' /,
. mode_name ( pmode_time_lab ) / 'CALENDAR' /,
- . mode_name ( pmode_6d_lab) / '6D_LAB' /,
+ . mode_name ( pmode_E_LAB) / 'E_LABEL' /,
+ . mode_name ( pmode_F_LAB) / 'F_LABEL' /,
. mode_name ( pmode_font_ascii ) / 'ASCII_FONT' /,
. mode_name ( pmode_segment ) / 'SEGMENT' /,
. mode_name ( pmode_wait ) / 'WAIT' /,
@@ -249,9 +260,8 @@
. mode_name ( pmode_nodata_lab ) / 'NODATA_LAB' /,
. mode_name ( pmode_shrink_ylab ) / 'SHRINK_YLAB' /,
. mode_name ( pmode_curvilinear ) / 'CURVILINEAR' /,
- . mode_name ( pmode_sigma ) / 'SIGMA' /,
- . mode_name ( 33 ) / pmode_unused /,
- . mode_name ( 34 ) / pmode_unused /,
+ . mode_name ( pmode_layerz ) / 'LAYERZ' /,
+ . mode_name ( pmode_6d_lab ) / '6D_LAB' /,
. mode_name ( 35 ) / pmode_unused /,
. mode_name ( 36 ) / pmode_unused /,
. mode_name ( 37 ) / pmode_unused /,
@@ -279,8 +289,10 @@
. / mode_stack_size*-4 /, ! 4 sig. digs. less 0's
. (mode_arg ( pmode_time_lab ,i), i=1,mode_stack_size)
. / mode_stack_size*-5 /, ! dd-mmm-yyyy:hh:mm
- . (mode_arg ( pmode_6d_lab ,i), i=1,mode_stack_size)
- . / mode_stack_size*unspecified_int4 /
+ . (mode_arg ( pmode_e_lab ,i), i=1,mode_stack_size)
+ . / mode_stack_size*1 /
+ . (mode_arg ( pmode_f_lab ,i), i=1,mode_stack_size)
+ . / mode_stack_size*1 /
DATA (mode_arg ( pmode_font_ascii ,i), i=1,mode_stack_size)
. / mode_stack_size*unspecified_int4 /,
. (mode_arg ( pmode_segment ,i), i=1,mode_stack_size)
@@ -321,7 +333,9 @@
. / mode_stack_size*unspecified_int4 /
. (mode_arg ( pmode_curvilinear,i), i=1,mode_stack_size)
. / mode_stack_size*unspecified_int4 /
- . (mode_arg ( pmode_sigma,i), i=1,mode_stack_size)
+ . (mode_arg ( pmode_layerz,i), i=1,mode_stack_size)
+ . / mode_stack_size*unspecified_int4 /
+ . (mode_arg ( pmode_6d_lab,i), i=1,mode_stack_size)
. / mode_stack_size*unspecified_int4 /
* If the value of nlevels is changed, also change NLEV in plot/ppldata.F
@@ -360,11 +374,11 @@
DATA denig_xylim_msg_done / .FALSE. /
DATA denig_pen_msg_done / .FALSE. /
-* auto sigma and curvilinear states
- DATA mode_auto_curvi /.FALSE./,
- . mode_auto_curvi_last /.FALSE./,
- . mode_auto_sigma /.FALSE./,
- . mode_auto_sigma_last /.FALSE./
+* auto layerz and curvilinear states
+ DATA mode_auto_curvi /.FALSE./,
+ . mode_auto_curvi_last /.FALSE./,
+ . mode_auto_layerz /.FALSE./,
+ . mode_auto_layerz_last /.FALSE./
* miscellaneous
DATA saved_dset / unspecified_int4 /
@@ -375,5 +389,6 @@
DATA allowed_err / .FALSE. / ! briefly set true in SHOW VAR/TREE
DATA grat_on / .FALSE. /
DATA num_linecolors / 6 /
+ DATA its_pyferret / .TRUE. /
END
diff --git a/fer/dat/xrevision_data.F b/fer/dat/xrevision_data.F
index 1a6179a..3e9ef7f 100644
--- a/fer/dat/xrevision_data.F
+++ b/fer/dat/xrevision_data.F
@@ -117,13 +117,23 @@
* v6.926 fix ticket 2203, 2200
* v6.927 fix ticket 2205, 2206
* v6.93 release
+* v6.931 to gfdl
+* v6.932 to John Maurer, bug 2223 and tag v_6_9_32_GFDL23Dec
+* v6.933 to GFDL tag v_6_9_33_GFDL27Jan15
+* v6.94 Ferret release to go with LAS 8.4
+* v6.941 Version number for post-v6.94 development
+* v6.942 Version number for post-v6.94 development 5/8/2015
+* v6.943 To GFDL tag v_6_9_43_GFDL_2Jun15 tickets thru 2296
+* v6.95 release for LAS8.4
+* v6.951 New development
+* v6.96 little release with @BIN @NBIN regrid; high-res time plots
IMPLICIT NONE
include 'xrevision.cmn'
DATA program_name / 'FERRET' /
DATA len_program_name / 6 /
- DATA revision_level / 6.93 /
+ DATA revision_level / 6.96 /
! Note we can put a debug title in the Ferret startup header lines
! by putting a title into the Makefile: $(MAKE) "DEBUG_TITLE=beta" update
diff --git a/fer/dat/xvariables_data.F b/fer/dat/xvariables_data.F
index 3f269eb..d2db40c 100644
--- a/fer/dat/xvariables_data.F
+++ b/fer/dat/xvariables_data.F
@@ -60,6 +60,7 @@
* because it needed a preprocessor.
* 2/12 *kms* Add E and F dimensions (set to nferdims in tmap_dims.parm)
* V685+: 3/14 *sh* - initialize max_usable_intrp
+* V695+: 5/15 *sh* - initialize uvar_c_cache_ptr
IMPLICIT NONE
#include "tmap_dset.parm"
@@ -120,6 +121,7 @@
DATA uvar_num_items_head / 0 /
DATA uvar_num_items_padding / 0 /
DATA uvar_num_items / max_uvar*uvar_deleted /
+ DATA uvar_c_cache_ptr / max_uvar*0.0 /
DATA num_uvars_in_cmnd / cmnd_uvars_not_given /
diff --git a/fer/doo/SOURCE_FILES b/fer/doo/SOURCE_FILES
index e0a1801..93ff770 100644
--- a/fer/doo/SOURCE_FILES
+++ b/fer/doo/SOURCE_FILES
@@ -3,7 +3,9 @@ asn_regrid_1_axis.F\
asn_ptr_regrid_1_axis.F\
ave_regrid_1_axis.F\
binom_wt.F\
+bin_regrid_1_axis.F\
convolve.F\
+convolve_p.F\
days_from_day0.F\
dd1step.F\
dd2step.F\
@@ -15,19 +17,23 @@ do_4d_nbd.F\
do_4d_ngd.F\
do_4d_string_goodbad.F\
do_4d_string_trans.F\
+do_4d_std.F\
do_4d_sum.F\
do_4d_trans.F\
do_4d_var.F\
do_4d_wgt.F\
do_asn_regrid.F\
+do_aux_regrid_line_ave.F\
+do_aux_regrid_line_lin.F\
do_aux_var_regrid.F\
do_aux_var_regrid_1d.F\
-do_aux_var_regrid_line_ave.F\
-do_aux_var_regrid_line_lin.F\
+do_aux_var_regrid_1d_t.F\
+do_aux_var_regrid_2d_tf.F\
do_ave_int.F\
do_ave_regrid.F\
do_average.F\
do_avg_wgt.F\
+do_bin_regrid.F\
do_deriv_bkwd.F\
do_deriv_cntr.F\
do_deriv_frwd.F\
@@ -60,6 +66,7 @@ do_run_sum_sub.F\
do_shift.F\
do_smth_binml.F\
do_smth_box.F\
+do_smth_box_p.F\
do_smth_hanng.F\
do_smth_max.F\
do_smth_median.F\
diff --git a/fer/doo/ave_regrid_1_axis.F b/fer/doo/ave_regrid_1_axis.F
index 33513b9..c5549f2 100644
--- a/fer/doo/ave_regrid_1_axis.F
+++ b/fer/doo/ave_regrid_1_axis.F
@@ -177,7 +177,7 @@
xsrc_max = TM_WORLD(srcss,src_grid,axis,box_hi_lim)
src_encloses =
- . (xdst_lo.GE.xsrc_min .AND. xdst_hi.LE.xsrc_max)
+ . (xdst_lo.GT.xsrc_min .AND. xdst_hi.LT.xsrc_max)
xsrc_lo = MAX(xsrc_min,xdst_lo)
xsrc_hi = MIN(xsrc_max,xdst_hi )
@@ -256,7 +256,7 @@
xsrc_max = TM_WORLD(srcss,src_grid,axis,box_hi_lim)
src_encloses =
- . (xdst_lo.GE.xsrc_min .AND. xdst_hi.LE.xsrc_max)
+ . (xdst_lo.GT.xsrc_min .AND. xdst_hi.LT.xsrc_max)
xsrc_lo = MAX(xsrc_min,xdst_lo)
xsrc_hi = MIN(xsrc_max,xdst_hi)
@@ -334,7 +334,7 @@
xsrc_max = TM_WORLD(srcss,src_grid,axis,box_hi_lim)
src_encloses =
- . (xdst_lo.GE.xsrc_min .AND. xdst_hi.LE.xsrc_max)
+ . (xdst_lo.GT.xsrc_min .AND. xdst_hi.LT.xsrc_max)
xsrc_lo = MAX(xsrc_min,xdst_lo)
xsrc_hi = MIN(xsrc_max,xdst_hi )
@@ -415,7 +415,7 @@
xsrc_max = TM_WORLD(srcss,src_grid,axis,box_hi_lim)
src_encloses =
- . (xdst_lo.GE.xsrc_min .AND. xdst_hi.LE.xsrc_max)
+ . (xdst_lo.GT.xsrc_min .AND. xdst_hi.LT.xsrc_max)
xsrc_lo = MAX(xsrc_min,xdst_lo)
xsrc_hi = MIN(xsrc_max,xdst_hi)
@@ -433,7 +433,8 @@
ELSE ! average or variance
sum = sum + ddist * src(i, j, k, srcss, m, n)
ENDIF
- ENDIF
+ ENDIF
+
410 CONTINUE
IF ( trans.EQ.prgrd_good_pt ) THEN
@@ -495,7 +496,7 @@
xsrc_max = TM_WORLD(srcss,src_grid,axis,box_hi_lim)
src_encloses =
- . (xdst_lo.GE.xsrc_min .AND. xdst_hi.LE.xsrc_max)
+ . (xdst_lo.GT.xsrc_min .AND. xdst_hi.LT.xsrc_max)
xsrc_lo = MAX(xsrc_min,xdst_lo)
xsrc_hi = MIN(xsrc_max,xdst_hi)
@@ -575,7 +576,7 @@
xsrc_max = TM_WORLD(srcss,src_grid,axis,box_hi_lim)
src_encloses =
- . (xdst_lo.GE.xsrc_min .AND. xdst_hi.LE.xsrc_max)
+ . (xdst_lo.GT.xsrc_min .AND. xdst_hi.LT.xsrc_max)
xsrc_lo = MAX(xsrc_min,xdst_lo)
xsrc_hi = MIN(xsrc_max,xdst_hi)
diff --git a/fer/doo/bin_regrid_1_axis.F b/fer/doo/bin_regrid_1_axis.F
new file mode 100644
index 0000000..7c2aab6
--- /dev/null
+++ b/fer/doo/bin_regrid_1_axis.F
@@ -0,0 +1,495 @@
+ SUBROUTINE BIN_REGRID_1_AXIS(cx_lims, axis, trans,
+ . src, msrc, dst, mdst, ss21, src_cx,
+ . dst_cx, wksize )
+*
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
+* Using data values from src organized on grid src_grid, regrid to
+* grid dst_grid by binning withing boxes along one axis
+* @BIN returns binned data, @NBIN returns number of valid source
+* points in the destination grid cell
+
+* msrc and mdst point to data structures in COMMON/XVARIABLES/ which
+
+* specify the subscript bounds of src and dst within their
+* respective grids.
+
+* ss21 holds the indices of source grid boxes (on src_grid) for box
+* limits on dst_grid.
+
+* programmer - Ansley Manke
+* NOAA/PMEL,Seattle,WA - TMAP/ SDIG 11/2/2015
+
+ IMPLICIT NONE
+ include 'tmap_dims.parm'
+ include 'ferret.parm'
+ include 'xcontext.cmn'
+ include 'xmem_subsc.cmn'
+ include 'xvariables.cmn'
+
+* calling argument declarations:
+ INTEGER cx_lims, axis, trans, msrc, mdst, wksize
+ INTEGER ss21(wksize)
+
+ REAL src( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+ . m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
+ . dst( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+ . m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
+
+* local variable declarations:
+
+ LOGICAL ok_neg111, coord_in_dst
+ INTEGER dstss,srcss,src_grid,dst_grid,i,j,k,l,m,n
+ INTEGER srcss_lo,srcss_hi, dstss_lo, dstss_hi,
+ . src_cx, dst_cx
+
+ REAL ddist, bad_src, bad_dst
+ REAL*8 TM_WORLD, TDEST_WORLD, sum,
+ . xsrc_min, xsrc_max,
+ . xdst_lo, xdst_hi, xsrc_pt, nsrc_in_dst
+******************************************************************************
+
+* initialize
+ src_grid = mr_grid( msrc )
+ dst_grid = mr_grid( mdst )
+
+* limits for calculation
+ srcss_lo = mr_lo_ss(msrc,axis)
+ srcss_hi = mr_hi_ss(msrc,axis)
+
+* Range of subscripts might be negative, and contain the value of unspecified_int4
+* among them. ok_neg111 distinguishes between this and the flag unspecified_int4.
+
+ ok_neg111 = srcss_lo .LT. unspecified_int4 .AND.
+ . srcss_hi .GT. unspecified_int4
+
+ dstss_lo = cx_lo_ss(cx_lims,axis)
+ dstss_hi = cx_hi_ss(cx_lims,axis)
+
+* flag for bad/missing data
+ bad_src = mr_bad_data(msrc)
+ bad_dst = mr_bad_data(mdst)
+
+* determine the source grid boxes containing the destination box edges
+ CALL GET_AVE_LIMS( srcss_lo, srcss_hi, src_grid,
+ . dstss_lo, dstss_hi, dst_grid,
+ . axis, ss21 )
+
+* along X axis
+ IF ( axis .EQ. x_dim ) THEN
+ DO 190 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+ DO 190 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+ DO 190 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+ DO 190 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+ DO 190 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+
+* loop through the each destination grid box
+ DO 160 dstss = dstss_lo,dstss_hi
+ srcss_lo = ss21(dstss-dstss_lo+1)
+ srcss_hi = ss21(dstss-dstss_lo+2)
+
+* check if requested region is out of source range
+ IF ( (srcss_lo .EQ. unspecified_int4
+ . .OR. srcss_hi .EQ. unspecified_int4)
+ . .AND. .NOT.(ok_neg111) ) THEN
+ dst(dstss,j,k,l,m,n) = bad_dst
+ goto 160
+ ENDIF
+
+ xdst_lo = TM_WORLD(dstss, dst_grid, axis, box_lo_lim )
+ xdst_hi = TM_WORLD(dstss, dst_grid, axis, box_hi_lim )
+
+* add all partial or complete boxes of data from the source grid
+
+* IF source box completely encloses the dest box, then srcss_lo=srcss_hi
+* and we can just stick the source point into the destination (for avg or var)
+ sum = 0.0D0
+ nsrc_in_dst = 0.0D0
+ DO 110 srcss = srcss_lo, srcss_hi
+
+* ... ignore missing source data
+ IF ( src(srcss, j, k, l, m, n) .EQ. bad_src ) GOTO 110
+
+ xsrc_pt = TM_WORLD(srcss,src_grid,axis,box_middle)
+ coord_in_dst = (xsrc_pt.GE.xdst_lo .AND. xsrc_pt.LT.xdst_hi)
+
+* ... source point in dest box
+ IF (coord_in_dst) THEN
+ nsrc_in_dst = nsrc_in_dst + 1
+ sum = sum + src(srcss, j, k, l, m, n)
+ ENDIF
+
+ 110 CONTINUE
+
+
+* ... divide by npts in bin for @BIN or return # pts for @NBIN
+
+ IF (trans.EQ.prgrd_bin ) THEN
+
+ IF ( nsrc_in_dst .EQ. 0.0 ) THEN
+ dst(dstss, j, k, l, m, n) = bad_dst
+ ELSE
+ dst(dstss, j, k, l, m, n) = sum / nsrc_in_dst
+ ENDIF
+
+ ELSEIF ( trans.EQ.prgrd_nbin ) THEN
+ dst(dstss, j, k, l, m, n) = nsrc_in_dst
+ ENDIF
+
+ 160 CONTINUE
+ 190 CONTINUE
+
+* along Y axis
+ ELSEIF ( axis .EQ. Y_dim ) THEN
+
+ DO 290 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+ DO 290 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+ DO 290 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+ DO 290 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+ DO 290 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+
+* loop through the each destination grid box
+ DO 260 dstss = dstss_lo,dstss_hi
+ srcss_lo = ss21(dstss-dstss_lo+1)
+ srcss_hi = ss21(dstss-dstss_lo+2)
+
+* check if requested region is out of source range
+ IF ( (srcss_lo .EQ. unspecified_int4
+ . .OR. srcss_hi .EQ. unspecified_int4)
+ . .AND. .NOT.(ok_neg111) ) THEN
+ dst(i,dstss,k,l,m,n) = bad_dst
+ goto 260
+ ENDIF
+
+ xdst_lo = TM_WORLD(dstss, dst_grid, axis, box_lo_lim )
+ xdst_hi = TM_WORLD(dstss, dst_grid, axis, box_hi_lim )
+
+* add all partial or complete boxes of data from the source grid
+
+* IF source box completely encloses the dest box, then srcss_lo=srcss_hi
+* and we can just stick the source point into the destination (for avg or var)
+ sum = 0.0D0
+ nsrc_in_dst = 0.0D0
+ DO 210 srcss = srcss_lo, srcss_hi
+
+* ... ignore missing source data
+ IF ( src(i, srcss, k, l, m, n) .EQ. bad_src ) GOTO 210
+
+ xsrc_pt = TM_WORLD(srcss,src_grid,axis,box_middle)
+ coord_in_dst = (xsrc_pt.GE.xdst_lo .AND. xsrc_pt.LT.xdst_hi)
+
+* ... source point in dest box
+ IF (coord_in_dst) THEN
+ nsrc_in_dst = nsrc_in_dst + 1
+ sum = sum + src(i, srcss, k, l, m, n)
+ ENDIF
+
+ 210 CONTINUE
+
+* ... divide by npts in bin for @BIN or return # pts for @NBIN
+
+ IF (trans.EQ.prgrd_bin ) THEN
+ IF ( nsrc_in_dst .EQ. 0.0 ) THEN
+ dst(i, dstss, k, l, m, n) = bad_dst
+ ELSE
+ dst(i, dstss, k, l, m, n) = sum / nsrc_in_dst
+ ENDIF
+ ELSEIF ( trans.EQ.prgrd_nbin ) THEN
+ dst(i, dstss, k, l, m, n) = nsrc_in_dst
+ ENDIF
+
+ 260 CONTINUE
+ 290 CONTINUE
+
+* along Z axis
+ ELSEIF ( axis .EQ. z_dim ) THEN
+
+ DO 390 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+ DO 390 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+ DO 390 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+ DO 390 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+ DO 390 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+
+* loop through the each destination grid box
+ DO 360 dstss = dstss_lo,dstss_hi
+ srcss_lo = ss21(dstss-dstss_lo+1)
+ srcss_hi = ss21(dstss-dstss_lo+2)
+
+* check if requested region is out of source range
+ IF ( (srcss_lo .EQ. unspecified_int4
+ . .OR. srcss_hi .EQ. unspecified_int4)
+ . .AND. .NOT.(ok_neg111) ) THEN
+ dst(i,j,dstss,k,m,n) = bad_dst
+ goto 360
+ ENDIF
+
+ xdst_lo = TM_WORLD(dstss, dst_grid, axis, box_lo_lim )
+ xdst_hi = TM_WORLD(dstss, dst_grid, axis, box_hi_lim )
+
+* add all partial or complete boxes of data from the source grid
+
+* IF source box completely encloses the dest box, then srcss_lo=srcss_hi
+* and we can just stick the source point into the destination (for avg or var)
+ sum = 0.0D0
+ nsrc_in_dst = 0.0D0
+ DO 310 srcss = srcss_lo, srcss_hi
+
+* ... ignore missing source data
+ IF ( src(i, j, srcss, l, m, n) .EQ. bad_src ) GOTO 310
+
+ xsrc_pt = TM_WORLD(srcss,src_grid,axis,box_middle)
+
+ coord_in_dst = (xsrc_pt.GE.xdst_lo .AND. xsrc_pt.LT.xdst_hi)
+
+* ... source point in dest box
+ IF (coord_in_dst) THEN
+ nsrc_in_dst = nsrc_in_dst + 1
+ sum = sum + src(i, j, srcss, l, m, n)
+ ENDIF
+
+ 310 CONTINUE
+
+* ... divide by npts in bin for @BIN or return # pts for @NBIN
+
+ IF (trans.EQ.prgrd_bin ) THEN
+ IF ( nsrc_in_dst .EQ. 0.0 ) THEN
+ dst(i, j, dstss, l, m, n) = bad_dst
+ ELSE
+ dst(i, j, dstss, l, m, n) = sum / nsrc_in_dst
+ ENDIF
+ ELSEIF ( trans.EQ.prgrd_nbin ) THEN
+ dst(i, j, dstss, l, m, n) = nsrc_in_dst
+ ENDIF
+
+ 360 CONTINUE
+ 390 CONTINUE
+
+* along T axis
+ ELSEIF ( axis .EQ. T_dim ) THEN
+
+ DO 490 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+ DO 490 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+ DO 490 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+ DO 490 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+ DO 490 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+
+* loop through the each destination grid box
+ DO 460 dstss = dstss_lo,dstss_hi
+ srcss_lo = ss21(dstss-dstss_lo+1)
+ srcss_hi = ss21(dstss-dstss_lo+2)
+
+* check if requested region is out of source range
+ IF ( (srcss_lo .EQ. unspecified_int4
+ . .OR. srcss_hi .EQ. unspecified_int4)
+ . .AND. .NOT.(ok_neg111) ) THEN
+ dst(i,j,k,dstss,m,n) = bad_dst
+ goto 460
+ ENDIF
+
+* USE SOURCE GRID TIME/DATE ENCODINGS FOR ALL CALCULATIONS 6/94
+* initialization of TDEST_WORLD is done from GET_AVE_LIMS
+
+ xdst_lo = TDEST_WORLD(dstss, dst_grid, axis, box_lo_lim)
+ xdst_hi = TDEST_WORLD(dstss, dst_grid, axis, box_hi_lim)
+
+* add all partial or complete boxes of data from the source grid
+
+* IF source box completely encloses the dest box, then srcss_lo=srcss_hi
+* and we can just stick the source point into the destination (for avg or var)
+ sum = 0.0D0
+ nsrc_in_dst = 0.0
+ DO 410 srcss = srcss_lo, srcss_hi
+
+* ... ignore missing source data
+ IF ( src(i, j, k, srcss, m, n) .EQ. bad_src ) GOTO 410
+ xsrc_pt = TM_WORLD(srcss,src_grid,axis,box_middle)
+
+ coord_in_dst = (xsrc_pt.GE.xdst_lo .AND. xsrc_pt.LT.xdst_hi)
+
+* ... source point in dest box
+ IF (coord_in_dst) THEN
+ nsrc_in_dst = nsrc_in_dst + 1
+ sum = sum + src(i, j, k, srcss, m, n)
+ ENDIF
+
+ 410 CONTINUE
+
+* ... divide by npts in bin for @BIN or return # pts for @NBIN
+
+ IF (trans.EQ.prgrd_bin ) THEN
+ IF ( nsrc_in_dst .EQ. 0.0 ) THEN
+ dst(i, j, k, dstss, m, n) = bad_dst
+ ELSE
+ dst(i, j, k, dstss, m, n) = sum / nsrc_in_dst
+ ENDIF
+ ELSEIF ( trans.EQ.prgrd_nbin ) THEN
+ dst(i, j, k, dstss, m, n) = nsrc_in_dst
+ ENDIF
+
+ 460 CONTINUE
+ 490 CONTINUE
+
+* along E axis
+ ELSEIF ( axis .EQ. e_dim ) THEN
+
+ DO 590 n = cx_lo_s6(cx_lims), cx_hi_s6(cx_lims)
+ DO 590 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+ DO 590 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+ DO 590 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+ DO 590 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+
+* loop through the each destination grid box
+ DO 560 dstss = dstss_lo,dstss_hi
+ srcss_lo = ss21(dstss-dstss_lo+1)
+ srcss_hi = ss21(dstss-dstss_lo+2)
+
+* check if requested region is out of source range
+ IF ( (srcss_lo .EQ. unspecified_int4
+ . .OR. srcss_hi .EQ. unspecified_int4)
+ . .AND. .NOT.(ok_neg111) ) THEN
+ dst(i,j,k,l,dstss,n) = bad_dst
+ goto 560
+ ENDIF
+
+* USE SOURCE GRID TIME/DATE ENCODINGS FOR ALL CALCULATIONS 6/94
+* initialization of TDEST_WORLD is done from GET_AVE_LIMS
+
+ xdst_lo = TDEST_WORLD(dstss, dst_grid, axis, box_lo_lim)
+ xdst_hi = TDEST_WORLD(dstss, dst_grid, axis, box_hi_lim)
+
+* add all partial or complete boxes of data from the source grid
+
+* IF source box completely encloses the dest box, then srcss_lo=srcss_hi
+* and we can just stick the source point into the destination (for avg or var)
+ sum = 0.0D0
+ nsrc_in_dst = 0.0
+ DO 510 srcss = srcss_lo, srcss_hi
+
+* ... ignore missing source data
+ IF ( src(i, j, k, l, srcss, n) .EQ. bad_src ) GOTO 510
+
+ xsrc_pt = TM_WORLD(srcss,src_grid,axis,box_middle)
+ coord_in_dst = (xsrc_pt.GE.xdst_lo .AND. xsrc_pt.LT.xdst_hi)
+
+* ... source point in dest box
+ IF (coord_in_dst) THEN
+ nsrc_in_dst = nsrc_in_dst + 1
+ sum = sum + src(i, j, k, l, srcss, n)
+ ENDIF
+ 510 CONTINUE
+
+* ... divide by npts in bin for @BIN or return # pts for @NBIN
+
+ IF (trans.EQ.prgrd_bin ) THEN
+ IF ( nsrc_in_dst .EQ. 0.0 ) THEN
+ dst(i, j, k, l, dstss, n) = bad_dst
+ ELSE
+ dst(i, j, k, l, dstss, n) = sum / nsrc_in_dst
+ ENDIF
+ ELSEIF ( trans.EQ.prgrd_nbin ) THEN
+ dst(i, j, k, l, dstss, n) = nsrc_in_dst
+ ENDIF
+
+ 560 CONTINUE
+ 590 CONTINUE
+
+* along F axis
+ ELSEIF ( axis .EQ. f_dim ) THEN
+
+ DO 690 m = cx_lo_s5(cx_lims), cx_hi_s5(cx_lims)
+ DO 690 l = cx_lo_s4(cx_lims), cx_hi_s4(cx_lims)
+ DO 690 k = cx_lo_s3(cx_lims), cx_hi_s3(cx_lims)
+ DO 690 j = cx_lo_s2(cx_lims), cx_hi_s2(cx_lims)
+ DO 690 i = cx_lo_s1(cx_lims), cx_hi_s1(cx_lims)
+
+* loop through the each destination grid box
+ DO 660 dstss = dstss_lo,dstss_hi
+ srcss_lo = ss21(dstss-dstss_lo+1)
+ srcss_hi = ss21(dstss-dstss_lo+2)
+
+* check if requested region is out of source range
+ IF ( (srcss_lo .EQ. unspecified_int4
+ . .OR. srcss_hi .EQ. unspecified_int4)
+ . .AND. .NOT.(ok_neg111) ) THEN
+ dst(i,j,k,l,m,dstss) = bad_dst
+ goto 660
+ ENDIF
+
+* USE SOURCE GRID TIME/DATE ENCODINGS FOR ALL CALCULATIONS 6/94
+* initialization of TDEST_WORLD is done from GET_AVE_LIMS
+
+ xdst_lo = TDEST_WORLD(dstss, dst_grid, axis, box_lo_lim)
+ xdst_hi = TDEST_WORLD(dstss, dst_grid, axis, box_hi_lim)
+
+* add all partial or complete boxes of data from the source grid
+
+* IF source box completely encloses the dest box, then srcss_lo=srcss_hi
+* and we can just stick the source point into the destination (for avg or var)
+ sum = 0.0D0
+ nsrc_in_dst = 0.0
+ DO 610 srcss = srcss_lo, srcss_hi
+
+* ... ignore missing source data
+ IF ( src(i, j, k, l, m, srcss) .EQ. bad_src ) GOTO 610
+
+ xsrc_pt = TM_WORLD(srcss,src_grid,axis,box_middle)
+ coord_in_dst = (xsrc_pt.GE.xdst_lo .AND. xsrc_pt.LT.xdst_hi)
+
+* ... source point in dest box
+ IF (coord_in_dst) THEN
+ nsrc_in_dst = nsrc_in_dst + 1
+ sum = sum + src(i, j, k, l, m, srcss)
+ ENDIF
+ 610 CONTINUE
+
+* ... divide by npts in bin for @BIN or return # pts for @NBIN
+
+ IF (trans.EQ.prgrd_bin ) THEN
+ IF ( nsrc_in_dst .EQ. 0.0 ) THEN
+ dst(i, j, k, l, m, dstss) = bad_dst
+ ELSE
+ dst(i, j, k, l, m, dstss) = sum / nsrc_in_dst
+ ENDIF
+ ELSEIF ( trans.EQ.prgrd_nbin ) THEN
+ dst(i, j, k, l, m, dstss) = nsrc_in_dst
+ ENDIF
+
+ 660 CONTINUE
+ 690 CONTINUE
+
+ ENDIF
+
+ RETURN
+ END
diff --git a/fer/doo/convolve_p.F b/fer/doo/convolve_p.F
new file mode 100644
index 0000000..701ab19
--- /dev/null
+++ b/fer/doo/convolve_p.F
@@ -0,0 +1,390 @@
+ SUBROUTINE CONVOLVE_P(idim, hlen, wt,
+ . com, com_mr, com_cx,
+ . res, res_mr, res_cx )
+
+*
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
+* convolve the component grid, com, with the weight function, wt
+* along axis idim, skipping missing data and applyig weights accordingly
+*
+* note: the component context may not be of adequate size for the full
+* calculation. Missing data flags will be inserted where computation is
+* impossible
+* From convolve; removing the restriction that any missing data results in
+* missing result. This is called for boxcar smoother SPX.
+
+ IMPLICIT NONE
+ include 'tmap_dims.parm'
+ include 'ferret.parm'
+ include 'xcontext.cmn'
+ include 'xvariables.cmn'
+ include 'xmem_subsc.cmn'
+
+* calling argument declarations:
+ INTEGER idim, hlen, com_mr, com_cx, res_mr, res_cx
+ REAL wt(-hlen:hlen),
+ . com( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+ . m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
+ . res( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+ . m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
+
+* internal variable declarations:
+ LOGICAL TM_ITS_SUBSPAN_MODULO, has_mod_void
+ INTEGER TM_MODULO_LINE_DIM, CGRID_AXIS,
+ . i, j, k, l, m, n, ii,
+ . lo_sub(nferdims), hi_sub(nferdims), lo_lim, hi_lim,
+ . hlen1, lo_modlim, hi_modlim, nmod, nmod_prev, modlen
+ REAL bad_com, bad_res, comp, sum, wsum
+
+* internal (convenience) equivalences
+ INTEGER lo_s1, lo_s2, lo_s3, lo_s4, lo_s5, lo_s6,
+ . hi_s1, hi_s2, hi_s3, hi_s4, hi_s5, hi_s6
+ EQUIVALENCE (lo_s1, lo_sub(1)) , (lo_s2, lo_sub(2)),
+ . (lo_s3, lo_sub(3)) , (lo_s4, lo_sub(4)),
+ . (lo_s5, lo_sub(5)) , (lo_s6, lo_sub(6)),
+ . (hi_s1, hi_sub(1)) , (hi_s2, hi_sub(2)),
+ . (hi_s3, hi_sub(3)) , (hi_s4, hi_sub(4)),
+ . (hi_s5, hi_sub(5)) , (hi_s6, hi_sub(6))
+
+* initialize
+ bad_com = mr_bad_data( res_mr )
+ bad_res = mr_bad_data( com_mr )
+ hlen1 = hlen
+ lo_lim = cx_lo_ss(com_cx,idim)
+ hi_lim = cx_hi_ss(com_cx,idim)
+ nmod_prev = -99999
+
+* compute limits within which calculation is possible
+ DO 10 ii = 1, nferdims
+ lo_sub(ii) = cx_lo_ss(res_cx,ii)
+ hi_sub(ii) = cx_hi_ss(res_cx,ii)
+ 10 CONTINUE
+
+* it his a subspan modulo axis?
+ has_mod_void = TM_ITS_SUBSPAN_MODULO( CGRID_AXIS(idim,com_cx) )
+ IF (has_mod_void) THEN
+ modlen = TM_MODULO_LINE_DIM( CGRID_AXIS(idim,com_cx) )
+ has_mod_void = lo_lim.LE.0 .OR. hi_lim.GE.modlen
+ ENDIF
+
+* !temp - not optimized for speed yet
+* ... though treating each axis separately is to avoid testing inside the loop
+* CONVOLVE ALONG X AXIS
+ IF ( idim .EQ. x_dim ) THEN
+ DO 110 n = lo_s6, hi_s6
+ DO 110 m = lo_s5, hi_s5
+ DO 110 l = lo_s4, hi_s4
+ DO 110 k = lo_s3, hi_s3
+ DO 110 j = lo_s2, hi_s2
+ DO 110 i = lo_s1, hi_s1
+ IF (has_mod_void) THEN
+* ... do not allow convolution across the modulo void
+ IF (i.GE.1) THEN ! get # of modulos to curr index
+ nmod = (i-1)/modlen
+ ELSE
+ nmod = i/modlen - 1
+ ENDIF
+ IF ( nmod .NE. nmod_prev ) THEN
+ nmod_prev = nmod
+ lo_modlim = nmod*modlen + 1
+ hi_modlim = (nmod+1) * modlen
+ lo_lim = MAX( lo_modlim, cx_lo_ss(com_cx,idim) )
+ hi_lim = MIN( hi_modlim, cx_hi_ss(com_cx,idim) )
+ ENDIF
+ ENDIF
+ sum = 0.0
+ wsum = 0.0
+ DO 100 ii = -hlen1, hlen1
+* test limits of component data before using
+ IF ( i+ii .GE. lo_lim
+ . .AND. i+ii .LE. hi_lim ) THEN
+ comp = com(i+ii,j,k,l,m,n)
+ ELSE
+ res(i,j,k,l,m,n) = bad_res
+ GOTO 110
+ ENDIF
+
+ IF ( comp .NE. bad_com ) THEN
+ sum = sum + comp*wt(ii)
+ wsum = wsum + wt(ii)
+ ENDIF
+ 100 CONTINUE
+ IF (wsum .GT. 0) THEN
+ res(i,j,k,l,m,n) = sum/wsum
+ ELSE
+ res(i,j,k,l,m,n) = bad_res
+ ENDIF
+ 110 CONTINUE
+
+* CONVOLVE ALONG Y AXIS
+ ELSEIF ( idim .EQ. y_dim ) THEN
+ DO 210 n = lo_s6, hi_s6
+ DO 210 m = lo_s5, hi_s5
+ DO 210 l = lo_s4, hi_s4
+ DO 210 k = lo_s3, hi_s3
+ DO 210 j = lo_s2, hi_s2
+ IF (has_mod_void) THEN
+* ... do not allow convolution across the modulo void
+ IF (j.GE.1) THEN ! get # of modulos to curr index
+ nmod = (j-1)/modlen
+ ELSE
+ nmod = j/modlen - 1
+ ENDIF
+ IF ( nmod .NE. nmod_prev ) THEN
+ nmod_prev = nmod
+ lo_modlim = nmod*modlen + 1
+ hi_modlim = (nmod+1) * modlen
+ lo_lim = MAX( lo_modlim, cx_lo_ss(com_cx,idim) )
+ hi_lim = MIN( hi_modlim, cx_hi_ss(com_cx,idim) )
+ ENDIF
+ ENDIF
+ DO 210 i = lo_s1, hi_s1
+ sum = 0.0
+ wsum = 0.0
+ DO 200 ii = -hlen1, hlen1
+* test limits of component data before using
+ IF ( j+ii .GE. lo_lim
+ . .AND. j+ii .LE. hi_lim ) THEN
+ comp = com(i,j+ii,k,l,m,n)
+ ELSE
+ res(i,j,k,l,m,n) = bad_res
+ GOTO 210
+ ENDIF
+
+ IF ( comp .NE. bad_com ) THEN
+ sum = sum + comp*wt(ii)
+ wsum = wsum + wt(ii)
+ ENDIF
+ 200 CONTINUE
+ IF (wsum .GT. 0) THEN
+ res(i,j,k,l,m,n) = sum/wsum
+ ELSE
+ res(i,j,k,l,m,n) = bad_res
+ ENDIF
+ 210 CONTINUE
+
+* CONVOLVE ALONG Z AXIS
+ ELSEIF ( idim .EQ. z_dim ) THEN
+ DO 310 n = lo_s6, hi_s6
+ DO 310 m = lo_s5, hi_s5
+ DO 310 l = lo_s4, hi_s4
+ DO 310 k = lo_s3, hi_s3
+ IF (has_mod_void) THEN
+* ... do not allow convolution across the modulo void
+ IF (k.GE.1) THEN ! get # of modulos to curr index
+ nmod = (k-1)/modlen
+ ELSE
+ nmod = k/modlen - 1
+ ENDIF
+ IF ( nmod .NE. nmod_prev ) THEN
+ nmod_prev = nmod
+ lo_modlim = nmod*modlen + 1
+ hi_modlim = (nmod+1) * modlen
+ lo_lim = MAX( lo_modlim, cx_lo_ss(com_cx,idim) )
+ hi_lim = MIN( hi_modlim, cx_hi_ss(com_cx,idim) )
+ ENDIF
+ ENDIF
+ DO 310 j = lo_s2, hi_s2
+ DO 310 i = lo_s1, hi_s1
+ sum = 0.0
+ wsum = 0.0
+ DO 300 ii = -hlen1, hlen1
+* test limits of component data before using
+ IF ( k+ii .GE. lo_lim
+ . .AND. k+ii .LE. hi_lim ) THEN
+ comp = com(i,j,k+ii,l,m,n)
+ ELSE
+ res(i,j,k,l,m,n) = bad_res
+ GOTO 310
+ ENDIF
+
+ IF ( comp .NE. bad_com ) THEN
+ sum = sum + comp*wt(ii)
+ wsum = wsum + wt(ii)
+ ENDIF
+ 300 CONTINUE
+ IF (wsum .GT. 0) THEN
+ res(i,j,k,l,m,n) = sum/wsum
+ ELSE
+ res(i,j,k,l,m,n) = bad_res
+ ENDIF
+ 310 CONTINUE
+
+* CONVOLVE ALONG T AXIS
+ ELSE IF ( idim .EQ. t_dim ) THEN
+ DO 410 n = lo_s6, hi_s6
+ DO 410 m = lo_s5, hi_s5
+ DO 410 l = lo_s4, hi_s4
+ IF (has_mod_void) THEN
+* ... do not allow convolution across the modulo void
+ IF (l.GE.1) THEN ! get # of modulos to curr index
+ nmod = (l-1)/modlen
+ ELSE
+ nmod = l/modlen - 1
+ ENDIF
+ IF ( nmod .NE. nmod_prev ) THEN
+ nmod_prev = nmod
+ lo_modlim = nmod*modlen + 1
+ hi_modlim = (nmod+1) * modlen
+ lo_lim = MAX( lo_modlim, cx_lo_ss(com_cx,idim) )
+ hi_lim = MIN( hi_modlim, cx_hi_ss(com_cx,idim) )
+ ENDIF
+ ENDIF
+ DO 410 k = lo_s3, hi_s3
+ DO 410 j = lo_s2, hi_s2
+ DO 410 i = lo_s1, hi_s1
+ sum = 0.0
+ wsum = 0.0
+ DO 400 ii = -hlen1, hlen1
+* test limits of component data before using
+ IF ( l+ii .GE. lo_lim
+ . .AND. l+ii .LE. hi_lim ) THEN
+ comp = com(i,j,k,l+ii,m,n)
+ ELSE
+ res(i,j,k,l,m,n) = bad_res
+ GOTO 410
+ ENDIF
+
+ IF ( comp .NE. bad_com ) THEN
+ sum = sum + comp*wt(ii)
+ wsum = wsum + wt(ii)
+ ENDIF
+ 400 CONTINUE
+ IF (wsum .GT. 0) THEN
+ res(i,j,k,l,m,n) = sum/wsum
+ ELSE
+ res(i,j,k,l,m,n) = bad_res
+ ENDIF
+ 410 CONTINUE
+
+* CONVOLVE ALONG E AXIS
+ ELSE IF ( idim .EQ. e_dim ) THEN
+ DO 510 n = lo_s6, hi_s6
+ DO 510 m = lo_s5, hi_s5
+ IF (has_mod_void) THEN
+* ... do not allow convolution across the modulo void
+ IF (m.GE.1) THEN ! get # of modulos to curr index
+ nmod = (m-1)/modlen
+ ELSE
+ nmod = m/modlen - 1
+ ENDIF
+ IF ( nmod .NE. nmod_prev ) THEN
+ nmod_prev = nmod
+ lo_modlim = nmod*modlen + 1
+ hi_modlim = (nmod+1) * modlen
+ lo_lim = MAX( lo_modlim, cx_lo_ss(com_cx,idim) )
+ hi_lim = MIN( hi_modlim, cx_hi_ss(com_cx,idim) )
+ ENDIF
+ ENDIF
+ DO 510 l = lo_s4, hi_s4
+ DO 510 k = lo_s3, hi_s3
+ DO 510 j = lo_s2, hi_s2
+ DO 510 i = lo_s1, hi_s1
+ sum = 0.0
+ wsum = 0.0
+ DO 500 ii = -hlen1, hlen1
+* test limits of component data before using
+ IF ( m+ii .GE. lo_lim
+ . .AND. m+ii .LE. hi_lim ) THEN
+ comp = com(i,j,k,l,m+ii,n)
+ ELSE
+ res(i,j,k,l,m,n) = bad_res
+ GOTO 510
+ ENDIF
+
+ IF ( comp .NE. bad_com ) THEN
+ sum = sum + comp*wt(ii)
+ wsum = wsum + wt(ii)
+ ENDIF
+ 500 CONTINUE
+ IF (wsum .GT. 0) THEN
+ res(i,j,k,l,m,n) = sum/wsum
+ ELSE
+ res(i,j,k,l,m,n) = bad_res
+ ENDIF
+ 510 CONTINUE
+
+* CONVOLVE ALONG F AXIS
+ ELSE IF ( idim .EQ. f_dim ) THEN
+ DO 610 n = lo_s6, hi_s6
+ IF (has_mod_void) THEN
+* ... do not allow convolution across the modulo void
+ IF (n.GE.1) THEN ! get # of modulos to curr index
+ nmod = (n-1)/modlen
+ ELSE
+ nmod = n/modlen - 1
+ ENDIF
+ IF ( nmod .NE. nmod_prev ) THEN
+ nmod_prev = nmod
+ lo_modlim = nmod*modlen + 1
+ hi_modlim = (nmod+1) * modlen
+ lo_lim = MAX( lo_modlim, cx_lo_ss(com_cx,idim) )
+ hi_lim = MIN( hi_modlim, cx_hi_ss(com_cx,idim) )
+ ENDIF
+ ENDIF
+ DO 610 m = lo_s5, hi_s5
+ DO 610 l = lo_s4, hi_s4
+ DO 610 k = lo_s3, hi_s3
+ DO 610 j = lo_s2, hi_s2
+ DO 610 i = lo_s1, hi_s1
+ sum = 0.0
+ wsum = 0.0
+ DO 600 ii = -hlen1, hlen1
+* test limits of component data before using
+ IF ( n+ii .GE. lo_lim
+ . .AND. n+ii .LE. hi_lim ) THEN
+ comp = com(i,j,k,l,m,n+ii)
+ ELSE
+ res(i,j,k,l,m,n) = bad_res
+ GOTO 610
+ ENDIF
+
+ IF ( comp .NE. bad_com ) THEN
+ sum = sum + comp*wt(ii)
+ wsum = wsum + wt(ii)
+ ENDIF
+ 600 CONTINUE
+ IF (wsum .GT. 0) THEN
+ res(i,j,k,l,m,n) = sum/wsum
+ ELSE
+ res(i,j,k,l,m,n) = bad_res
+ ENDIF
+ 610 CONTINUE
+
+ ENDIF
+
+ RETURN
+ END
diff --git a/fer/doo/dd1step.F b/fer/doo/dd1step.F
index 82e9f46..47a5580 100644
--- a/fer/doo/dd1step.F
+++ b/fer/doo/dd1step.F
@@ -248,7 +248,7 @@
IF ( lo_com.EQ.bad_res .OR. hi_com.EQ.bad_res ) THEN
res(i,j,k,l,m,n) = bad_res
ELSE
- res(i,j,k,l,m,n) = (hi_com-lo_com) / box(m)
+ res(i,j,k,l,m,n) = (hi_com-lo_com) / box(n)
ENDIF
lo_com = hi_com
600 CONTINUE
diff --git a/fer/doo/diag_op.F b/fer/doo/diag_op.F
index 4a58fab..dcf69f6 100644
--- a/fer/doo/diag_op.F
+++ b/fer/doo/diag_op.F
@@ -60,6 +60,7 @@
* V6.8 acm 6/12 Implement mode_6d_lab, set by default. If cancelled, the
* output will not list info for E,F dimensions.
* V690 1/14 *sh* report 3-argument var-getting operation
+* allow for "false 1 point" regridding
* calling argument declarations:
IMPLICIT NONE
@@ -68,6 +69,7 @@
* internal variable declarations:
INTEGER TM_LENSTR1, slen, clen, ii, i, listdims
+ CHARACTER*3 ALG_TRANS_CODE
CHARACTER*128 VAR_CODE, var
CHARACTER*150 VAR_TRANS, out_buff
@@ -104,12 +106,20 @@
3010 FORMAT (1X,A5,' --> ',A)
CALL SPLIT_LIST(pttmode_ops, ttout_lun, risc_buff, 0 )
-* REGRIDDING
+* REGRIDDING (4/14 - incl false 1pt regridding)
ELSEIF( act_class .EQ. isact_class_regrid ) THEN
- WRITE ( risc_buff, 3020 ) doing, ww_dim_name(idim),
+ IF (cx_aux_stat(idim,cx) .EQ. paux_stat_false_1pt_regrid ) THEN
+ WRITE ( risc_buff, 3019 ) doing,
+ . var(1:slen),
+ . ww_dim_name(idim),
+ . alg_regrid_code(cx_regrid_trans(idim,cx))
+ 3019 FORMAT (1X,A5,' false regrid of ',A,' --> ',A1,'@',A)
+ ELSE
+ WRITE ( risc_buff, 3020 ) doing, ww_dim_name(idim),
. var(1:slen), grid_name(cx_grid(cx))(:16),
. alg_regrid_code(cx_regrid_trans(idim,cx))
- 3020 FORMAT (1X,A5,' regrid on ',A1,': ',A,' --> ',A,' @',A)
+ 3020 FORMAT (1X,A5,' regrid on ',A1,': ',A,' --> ',A,' @',A)
+ ENDIF
CALL SPLIT_LIST(pttmode_ops, ttout_lun, risc_buff, 0 )
* SPLITTING/GATHERING
diff --git a/fer/doo/do_stddev.F b/fer/doo/do_4d_std.F
old mode 100755
new mode 100644
similarity index 79%
copy from fer/doo/do_stddev.F
copy to fer/doo/do_4d_std.F
index 0e4724d..9e44565
--- a/fer/doo/do_stddev.F
+++ b/fer/doo/do_4d_std.F
@@ -1,7 +1,7 @@
- INTEGER FUNCTION DO_STDDEV ( idim, arg,
+ INTEGER FUNCTION DO_4D_STD( idim, arg,
. com, com_mr, com_cx,
. res, res_mr, res_cx,
- . box )
+ . boxes )
*
*
@@ -38,43 +38,38 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* determine the variance of the given field along the indicated axis
+* call DO_4D_TRANS with the appropriate transformation
+
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA - TMAP
+* V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V230: 3/2/92
-* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
IMPLICIT NONE
include 'tmap_dims.parm'
include 'ferret.parm'
include 'errmsg.parm'
include 'interp_stack.parm'
- include 'xcontext.cmn'
include 'xprog_state.cmn'
* calling argument declarations:
INTEGER idim, com_mr, com_cx, res_mr, res_cx
- REAL arg, com(*), res(*), box(*)
+ REAL arg, com(*), res(*), boxes(*)
* internal variable declarations:
- LOGICAL stddev
-
- stddev = .TRUE.
+ INTEGER CX_DIM_LEN
* diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
IF ( mode_diagnostic ) CALL DIAG_OP
. ( 'doing', isact_class_trans, res_cx, idim )
- CALL DO_VAR_SUB( idim,
- . cx_lo_ss(com_cx,idim), cx_hi_ss(com_cx,idim),
- . com, com_mr, com_cx,
- . res, res_mr, res_cx,
- . box, stddev )
+* pass the transform to be performed
+ CALL DO_4D_TRANS( trans_4d_std,
+ . com, com_mr, com_cx,
+ . res, res_mr, res_cx,
+ . boxes )
- DO_STDDEV = ferr_ok
+ DO_4D_STD = ferr_ok
RETURN
END
diff --git a/fer/doo/do_4d_trans.F b/fer/doo/do_4d_trans.F
index 5d81d55..286dba4 100644
--- a/fer/doo/do_4d_trans.F
+++ b/fer/doo/do_4d_trans.F
@@ -72,6 +72,7 @@
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
* V685 *acm* 7/13 Fix ticket 2083: single-y and multi-D transform
* V685+*acm* 12/13 Bug in y boxes; only when y axis in the transf.
+* V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -87,8 +88,8 @@
* internal variable declarations:
LOGICAL GEOG_COS_FACTOR, point, yes_ax(nferdims), no_ax(nferdims),
- . at_ave, at_var, at_din, at_nbd, at_ngd, at_sum, short_comp,
- . need_cos, one_y
+ . at_ave, at_var, at_din, at_nbd, at_ngd, at_sum, at_std,
+ . short_comp,need_cos, one_y
INTEGER idim, i, j, ir, jr, kr, lr, mr, nr, ic, jc, kc, lc, mc, nc,
. grid, nbd, ngd, com_lo(nferdims), com_hi(nferdims),
. box_offset(nferdims), offset, ind_lo, ind_hi, cos_offset
@@ -162,6 +163,7 @@
at_nbd = action .EQ. trans_4d_bad_pt
at_ngd = action .EQ. trans_4d_good_pt
at_sum = action .EQ. trans_4d_sum
+ at_std = action .EQ. trans_4d_std
short_comp = at_ngd .OR. at_nbd .OR. at_sum ! for speed, only
* determine the axes to be transformed
@@ -424,8 +426,8 @@ C (Unless there is just one grid cell in the y direction.)
220 CONTINUE
-! for variance calculation, only: a 2nd pass ...
- IF ( at_var ) THEN
+! for variance or std calculation, only: a 2nd pass ...
+ IF ( at_var .OR. at_std) THEN
IF (bsum .NE. 0.0D0) THEN
mean = dsum / bsum
dsum = 0.0D0
@@ -467,7 +469,13 @@ C (Unless there is just one grid cell in the y direction.)
ELSEIF (at_din) THEN
res(ir,jr,kr,lr,mr,nr) = dsum
ELSE
- res(ir,jr,kr,lr,mr,nr) = dsum/bsum ! average or variance
+
+ IF (at_std) THEN
+ res(ir,jr,kr,lr,mr,nr) = SQRT( dsum/bsum )
+ ELSE
+ res(ir,jr,kr,lr,mr,nr) = dsum/bsum ! average or variance
+ ENDIF
+
ENDIF
300 CONTINUE
diff --git a/fer/doo/do_aux_var_regrid_line_ave.F b/fer/doo/do_aux_regrid_line_ave.F
similarity index 79%
rename from fer/doo/do_aux_var_regrid_line_ave.F
rename to fer/doo/do_aux_regrid_line_ave.F
index f1894f1..8d84e2b 100644
--- a/fer/doo/do_aux_var_regrid_line_ave.F
+++ b/fer/doo/do_aux_regrid_line_ave.F
@@ -4,7 +4,8 @@
. ndx_dst, coef_dst,
. kmin_dst, kmax_dst,
. kdlo_ok, kdhi_ok,
- . bad_src, bad_dst, ascending,
+ . bad_src, bad_dst, bad_pos,
+ . ascending,
. dst_line )
*
@@ -76,6 +77,7 @@
* interp_val = coef*src(k) + (1-coef)*src(k+1)
*
* v690 11/13 *sh* - based upon DO_AUX_VAR_REGRID_LIN
+* v698+ 5/15 *sh* - support non-monotonic and missing aux vars (e.g. density)
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -93,27 +95,31 @@
. pos_line(kmin_src:kmax_src),
. coef_dst(kmin_dst:kmax_dst+1),
. dst_line(kmin_dst:kmax_dst),
- . bad_src, bad_dst
+ . bad_src, bad_dst, bad_pos
* internal variable declarations:
- LOGICAL trunc
+ LOGICAL trunc, bad_ave, bad_next_ave
INTEGER ndx_lo, ksrc, kdst, kend, kstart, kinc1
REAL area, span, width, frac, pos_lo, pos_hi, src_lo, src_hi
+* ... 5/15 bad_ave and bad_next_ave look after non-monotonic and missing values
* initialize
- IF (ascending) THEN
+ IF (ascending) THEN
kinc1 = 1
ELSE
kinc1 = -1
ENDIF
* set up the lower bound of the first trapezoid (possibly truncated)
- 110 ksrc = ndx_dst (kdlo_ok)
+ frac = coef_dst(kdlo_ok)
+ ksrc = ndx_dst (kdlo_ok)
pos_hi = pos_line(ksrc)
src_hi = src_line(ksrc)
- frac = coef_dst(kdlo_ok)
- trunc = frac .NE. 1.0
- IF (trunc) THEN
+ bad_ave = frac .EQ. bad_val4
+ . .OR. pos_hi .EQ. bad_pos
+ . .OR. src_hi .EQ. bad_src
+ trunc = frac.NE.1.0
+ IF (trunc .AND. .NOT.bad_ave) THEN
* make the initial truncated trapezoid behave like a full trapezoid by
* replacing its lower limit with the proper linear interpolation
src_hi = frac*src_hi + (1-frac)*src_line(ksrc+kinc1)
@@ -143,8 +149,16 @@
pos_hi = pos_line(ksrc)
src_hi = src_line(ksrc)
-* add a full trapezoid
width = pos_hi - pos_lo
+
+* bail on this output cell if there is non-monotonic or missing data
+ bad_ave = bad_ave
+ . .OR. pos_hi .EQ. bad_pos
+ . .OR. src_hi .EQ. bad_src
+ . .OR. width .LE. 0.0
+ IF (bad_ave) EXIT
+
+* add a full trapezoid
span = span + width
area = area + width * 0.5*(src_hi+src_lo)
@@ -155,22 +169,34 @@
* handle partial trapezoid at upper bound of destination cell
frac = coef_dst(kdst+1)
- trunc = frac .NE. 1.0
+ bad_next_ave = frac .EQ. bad_val4
+ trunc = frac .NE. 1.0 .AND. .NOT.bad_next_ave
IF (trunc) THEN
+ bad_next_ave = pos_line(kend) .EQ. bad_pos
+ . .OR. src_line(kend) .EQ. bad_src
+ . .OR. pos_line(kend+kinc1) .EQ. bad_pos
+ . .OR. src_line(kend+kinc1) .EQ. bad_src
+ IF (.NOT. bad_next_ave) THEN
* add the lower part of the truncated trapezoid.
* the upper part is handled as part of the next destination cell
- pos_hi = frac*pos_line(kend) + (1-frac)*pos_line(kend+kinc1)
- src_hi = frac*src_line(kend) + (1-frac)*src_line(kend+kinc1)
- width = pos_hi - pos_lo
- span = span + width
- area = area + width * 0.5*(src_hi+src_lo)
+ pos_hi = frac*pos_line(kend) + (1-frac)*pos_line(kend+kinc1)
+ src_hi = frac*src_line(kend) + (1-frac)*src_line(kend+kinc1)
+ width = pos_hi - pos_lo
+ span = span + width
+ area = area + width * 0.5*(src_hi+src_lo)
+ ENDIF
ENDIF
* store the weighted average of trapezoids contributing to dst cell
- dst_line(kdst) = area/span
+ IF (bad_ave .OR. bad_next_ave) THEN
+ dst_line(kdst) = bad_dst
+ ELSE
+ dst_line(kdst) = area/span
+ ENDIF
-* prepare for next src trapezoid contributing to this dst
+* prepare for next dst
kstart = kend + kinc1
+ bad_ave = bad_next_ave ! happens when bad partial trap at end
1000 CONTINUE
diff --git a/fer/doo/do_aux_var_regrid_line_lin.F b/fer/doo/do_aux_regrid_line_lin.F
similarity index 98%
rename from fer/doo/do_aux_var_regrid_line_lin.F
rename to fer/doo/do_aux_regrid_line_lin.F
index b51e7be..caffe94 100644
--- a/fer/doo/do_aux_var_regrid_line_lin.F
+++ b/fer/doo/do_aux_regrid_line_lin.F
@@ -87,7 +87,7 @@
dst_line(k) = bad_dst
ELSEIF ( frac .EQ. 1.0 ) THEN
dst_line(k) = src_line(ndx_lo)
- ELSEIF ( src_line(ndx_lo+1) .EQ. bad_src ) THEN
+ ELSEIF ( src_line(ndx_lo+kinc1) .EQ. bad_src ) THEN
dst_line(k) = bad_dst
ELSE
* ... interpolate data from com1 field to get result
diff --git a/fer/doo/do_aux_var_regrid.F b/fer/doo/do_aux_var_regrid.F
index b38ab0c..ceeeac5 100644
--- a/fer/doo/do_aux_var_regrid.F
+++ b/fer/doo/do_aux_var_regrid.F
@@ -44,7 +44,9 @@
* perform a dispatch of regridding to the rountine appropriate
! for the dimensionailty
-* v685 4/13 *sh*
+* v685 4/13-4/14 *sh*
+* v689+ 3/15 *sh* added support for T axis T-F orthoganalization
+* 5/15 *sh* allow non-monotonic aux points
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -62,31 +64,66 @@
REAL memory( mem_blk_size, max_mem_blks )
REAL src(*), dst(*), aux1(*), aux2(*), aux3(*)
+* internal variable declarations
+ INTEGER axis, indmin_dst, indmax_dst, slen
+ CHARACTER LEFINT*8, cn*8
IF ( naxis .EQ. 1) THEN
-* Ansley: note that this needs to be generalized for other axes than Z
-* allocate a work arrays for a single profile of Z depths
-* nwk_dst enuf to hold a line of the destination grid
- IF (axis_list(1) .NE. z_dim)
- . CALL ERRMSG( ferr_internal, status, 'non-z aux', *5000)
-* do the 1D regridding using linear interpolation
- CALL DO_AUX_VAR_REGRID_1D(
- . axis_list(1), aux_has_cell_pts,
+* initialize
+ axis = axis_list(1)
+
+ IF ( axis .EQ. t_dim
+ . .AND. cx_regrid_trans(axis,dst_cx) .EQ. pauxrgrd_fmrc) THEN
+* do the 1D T axis T-F orthoganalization
+ CALL DO_AUX_VAR_REGRID_1D_T(
+ . axis,
. src, msrc, src_cx,
. dst, mdst, dst_cx,
. aux1, maux1, aux1_cx,
- . cx_lo_ss(src_cx,z_dim),cx_hi_ss(src_cx,z_dim),
- . cx_lo_ss(dst_cx,z_dim),cx_hi_ss(dst_cx,z_dim) )
+ . cx_lo_ss(dst_cx,t_dim),cx_hi_ss(dst_cx,t_dim) )
+
+ ELSE
+* if this is a "1pt false regridding", in which there is no new target axis
+* such as results from Z=0 or Z=100:200 at ave, then the cx_ss values are
+* -999:-999. To avoid accidental "bad value" interpretations we replace those
+ IF (cx_aux_stat(axis,dst_cx)
+ . .EQ. paux_stat_false_1pt_regrid) THEN
+ indmin_dst = 1 ! replacing -999
+ indmax_dst = 1 ! replacing -999
+ ELSE
+ indmin_dst = cx_lo_ss(dst_cx,axis)
+ indmax_dst = cx_hi_ss(dst_cx,axis)
+ ENDIF
+
+* do the 1D regridding
+ CALL DO_AUX_VAR_REGRID_1D(
+ . axis, aux_has_cell_pts,
+ . src, msrc, src_cx,
+ . dst, mdst, dst_cx,
+ . aux1, maux1, aux1_cx,
+ . cx_lo_ss(aux1_cx,axis),cx_hi_ss(aux1_cx,axis),
+ . cx_lo_ss(src_cx, axis),cx_hi_ss(src_cx, axis),
+ . indmin_dst, indmax_dst )
+
+ ENDIF
+
+ ELSEIF (naxis .EQ. 2) THEN
+ IF (axis_list(1).EQ.t_dim .AND. axis_list(2).EQ.f_dim) THEN
+
+* do the 1D T axis T-F orthoganalization
+ CALL DO_AUX_VAR_REGRID_2D_TF(
+ . src, msrc, src_cx,
+ . dst, mdst, dst_cx,
+ . aux1, maux1, aux1_cx,
+ . cx_lo_ss(dst_cx,t_dim),cx_hi_ss(dst_cx,t_dim) )
+ ELSE
+ STOP 'mystery 2D regrid should not be happening'
+ ENDIF
ELSE
-* ==> insert horizontal curvilinear regridding (naxis.EQ.2) here
- STOP 'do_aux_var_regrid >1d'
+ STOP 'mystery N-D regrid should not be happening'
ENDIF
-* success
+* success always -- all possible error conditions were anticipated
RETURN
-
-* error
- 5000 RETURN
-
END
diff --git a/fer/doo/do_aux_var_regrid_1d.F b/fer/doo/do_aux_var_regrid_1d.F
index dca3fab..67bc5ac 100644
--- a/fer/doo/do_aux_var_regrid_1d.F
+++ b/fer/doo/do_aux_var_regrid_1d.F
@@ -1,9 +1,10 @@
- SUBROUTINE DO_AUX_VAR_REGRID_1D( axis, aux_has_cell_pts,
- . src, msrc, src_cx,
- . dst, mdst, dst_cx,
- . pos, mpos, pos_cx,
- . kmin_src, kmax_src,
- . kmin_dst, kmax_dst )
+ SUBROUTINE DO_AUX_VAR_REGRID_1D ( axis, aux_has_cell_pts,
+ . src, msrc, src_cx,
+ . dst, mdst, dst_cx,
+ . pos, mpos, pos_cx,
+ . kmin_pos, kmax_pos,
+ . kmin_src, kmax_src,
+ . kmin_dst, kmax_dst )
*
*
@@ -40,7 +41,8 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* perform a 1D regrid guided by an auxiliary variable containing coord positions
+* perform a 1D Z axis regrid guided by an auxiliary variable
+* containing coord positions
* allow for the usual Ferret promotion of point axes to match span axes
* where either the source data or the position field may have degenerate axes
* (typically the position array will be degenerate in T, E and F)
@@ -51,7 +53,11 @@
* pos == com2
-* v690 11/13 *sh*
+* v690 11/13-4/14 *sh*
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* v695+ 3/15 *sh* change to call name to accommodate T axis regridding
+* v698+ 5/15 *sh* linear regrid allows monotonic, but averaging doesnt
+* 6/15 *sh* bug fix in determination of ascending affects false_1pt_regrid [gz(aux)=pt]
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -65,7 +71,7 @@
LOGICAL aux_has_cell_pts
INTEGER axis,
. msrc, mdst, mpos, src_cx, dst_cx, pos_cx,
- . kmin_src, kmax_src, kmin_dst, kmax_dst
+ . kmin_src, kmax_src, kmin_dst, kmax_dst, kmin_pos, kmax_pos
REAL src( m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,
. m4lot:m4hit,m4loe:m4hie,m4lof:m4hif ),
. dst( m5lox:m5hix,m5loy:m5hiy,m5loz:m5hiz,
@@ -75,7 +81,8 @@
* internal variable declarations:
- LOGICAL new_aux_line, has_valid, ascending
+ LOGICAL new_aux_line, has_valid, ascending, false_1pt_regrid,
+ . monotonic_block
INTEGER CX_DIM_LEN,
. idim,
. i, j, k, l, m, n,
@@ -85,12 +92,14 @@
. pi0, pj0, pk0, pl0, pm0, pn0,
. dsi, dsj, dsk, dsl, dsm, dsn,
. dpi, dpj, dpk, dpl, dpm, dpn
- INTEGER ndx_lo, wkblk, kdmax, ii, trans, klook, khiok
- REAL bad_src, bad_dst, bad_pos, zval, frac
+ INTEGER ndx_lo, wkblk, kdmax, ss, trans, klook, khiok,
+ . koffset_false, kstart, kend, n_ascnd, n_desnd
+ REAL bad_src, bad_dst, bad_pos, zval, v0, v1
REAL*8 TM_WORLD
* internally declared work arrays
- INTEGER indices(kmin_dst:kmax_dst+1)
- REAL posline(kmin_src:kmax_src),srcline(kmin_src:kmax_src),
+ INTEGER indices(kmin_dst:kmax_dst+1),
+ . dstlo(nferdims), dsthi(nferdims)
+ REAL posline(kmin_pos:kmax_pos),srcline(kmin_src:kmax_src),
. dstline(kmin_dst:kmax_dst),
. dstcoords(kmin_dst:kmax_dst+1),coef(kmin_dst:kmax_dst+1)
@@ -117,16 +126,23 @@
*==========================
* initialize
+ kdmax = kmax_dst
+ false_1pt_regrid = cx_aux_stat(axis,dst_cx)
+ . .EQ. paux_stat_false_1pt_regrid
+* koofset_false fixes ss of -999 used as a valid position in the dest axis.
+ koffset_false = kmin_dst - m5loz
+ trans = cx_regrid_trans(axis,dst_cx)
+
* flag(s) for bad or missing values
bad_src = mr_bad_data( msrc )
bad_dst = mr_bad_data( mdst )
bad_pos = mr_bad_data( mpos )
- kdmax = kmax_dst
- trans = cx_regrid_trans(z_dim,dst_cx) ! TEMPORARY: z_dim HARD CODED!!!
* compute the delta increment for each axis
* this allows "promotion" of degenerate axes
DO 10 idim = 1, nferdims
+ dstlo(idim) = mr_lo_ss(mdst,idim)
+ dsthi(idim) = mr_hi_ss(mdst,idim)
IF ( CX_DIM_LEN(idim,src_cx) .EQ. 1 ) THEN
srcinc(idim) = 0
ELSE
@@ -138,6 +154,11 @@
posinc(idim) = 1
ENDIF
10 CONTINUE
+* ... a dummy loop on the designated axis
+ dstlo(axis) = 1
+ dsthi(axis) = 1
+ srcinc(axis) = 0
+ posinc(axis) = 0
* compute the starting subscript for each axis of each component
* (pre-decrement by 1 delta for looping ahead)
@@ -149,22 +170,33 @@
* extract the list of target coordinates
IF (trans .EQ. pauxrgrd_linear ) THEN
- DO 30 k = kmin_dst, kmax_dst
- dstcoords(k) = TM_WORLD(k,cx_grid(dst_cx),z_dim,box_middle)
- 30 CONTINUE
+ IF (false_1pt_regrid) THEN
+* ... false 1pt regridding - e.g. Z=100
+ dstcoords(kmin_dst) = cx_lo_ww(axis, dst_cx)
+ ELSE
+ DO k = kmin_dst, kmax_dst
+ dstcoords(k) = TM_WORLD(k,cx_grid(dst_cx),axis,box_middle)
+ ENDDO
+ ENDIF
ELSEIF (trans .EQ. pauxrgrd_pwlave ) THEN
- DO 32 k = kmin_dst, kmax_dst
- dstcoords(k) = TM_WORLD(k,cx_grid(dst_cx),z_dim,box_lo_lim)
- 32 CONTINUE
- dstcoords(kmax_dst+1) =
- . TM_WORLD(kmax_dst,cx_grid(dst_cx),z_dim,box_hi_lim)
+ IF (false_1pt_regrid) THEN
+* ... false 1pt regridding - e.g. Z=100:200 at ave
+ dstcoords(kmin_dst ) = cx_lo_ww(axis, dst_cx)
+ dstcoords(kmin_dst+1) = cx_hi_ww(axis, dst_cx)
+ ELSE
+ DO k = kmin_dst, kmax_dst
+ dstcoords(k) = TM_WORLD(k,cx_grid(dst_cx),axis,box_lo_lim)
+ ENDDO
+ dstcoords(kmax_dst+1) =
+ . TM_WORLD(kmax_dst,cx_grid(dst_cx),axis,box_hi_lim)
+ ENDIF
kdmax = kdmax + 1
ELSE
STOP 'do_aux_var_regrid_trns' ! checked in AUX_REGRID_LIMS
ENDIF
* initial code does only the Z axis, based upon "ZAXREPLACE(V,ZVALS,ZAX)"
-* of old ... regrid a sigma-coordinate-style (layered) variable, V (src), onto
+* of old ... regrid a layer-Z-coordinate variable, V (src), onto
* a depth axis, ZAX, (Z axis of dst) guided by the depths in ZVALS (pos)
@@ -172,7 +204,7 @@
new_aux_line = .TRUE.
is = si0
ip = pi0
- DO 1000 i = mr_lo_s1(mdst), mr_hi_s1(mdst)
+ DO 1000 i = dstlo(x_dim), dsthi(x_dim)
is = is + dsi
IF (dpi .NE. 0) THEN
ip = ip + dpi
@@ -180,61 +212,117 @@
ENDIF
js = sj0
jp = pj0
- DO 1000 j = mr_lo_s2(mdst), mr_hi_s2(mdst)
+ DO 1000 j = dstlo(y_dim), dsthi(y_dim)
js = js + dsj
IF (dpj .NE. 0) THEN
jp = jp + dpj
new_aux_line = .TRUE.
ENDIF
- ls = sl0
- lp = pl0
-! ... k is the axis of the EXTRACT ...
- DO 1000 l = mr_lo_s4(mdst), mr_hi_s4(mdst)
- ls = ls + dsl
- IF (dpl .NE. 0) THEN
- lp = lp + dpl
- new_aux_line = .TRUE.
- ENDIF
- ms = sm0
- mp = pm0
- DO 1000 m = mr_lo_s5(mdst), mr_hi_s5(mdst)
- ms = ms + dsm
- IF (dpm .NE. 0) THEN
- mp = mp + dpm
+ ks = sk0
+ kp = pk0
+ DO 1000 k = dstlo(z_dim), dsthi(z_dim)
+ ks = ks + dsk
+ IF (dpk .NE. 0) THEN
+ kp = kp + dpk
new_aux_line = .TRUE.
ENDIF
- ns = sn0
- np = pn0
- DO 1000 n = mr_lo_s6(mdst), mr_hi_s6(mdst)
- ns = ns + dsn
- IF (dpn .NE. 0) THEN
- np = np + dpn
+ ls = sl0
+ lp = pl0
+ DO 1000 l = dstlo(t_dim), dsthi(t_dim)
+ ls = ls + dsl
+ IF (dpl .NE. 0) THEN
+ lp = lp + dpl
new_aux_line = .TRUE.
ENDIF
+ ms = sm0
+ mp = pm0
+ DO 1000 m = dstlo(e_dim), dsthi(e_dim)
+ ms = ms + dsm
+ IF (dpm .NE. 0) THEN
+ mp = mp + dpm
+ new_aux_line = .TRUE.
+ ENDIF
+ ns = sn0
+ np = pn0
+ DO 1000 n = dstlo(f_dim), dsthi(f_dim)
+ ns = ns + dsn
+ IF (dpn .NE. 0) THEN
+ np = np + dpn
+ new_aux_line = .TRUE.
+ ENDIF
* compute on the source and destination coords only if they differ from last
IF (new_aux_line) THEN
-* extract the line of source coord vals from the aux variable at this location
- DO 500 k = kmin_src, kmax_src
- 500 posline(k) = pos(ip, jp, k, lp, mp, np)
-
-* for each destination point, find the source index just below this value
-* and the weight coefficient to attach to that index
-* ... note that the indices are referenced to a starting index of 1
- CALL HUNT_INDICES(posline, kmin_src, kmax_src,
+* extract the line of coord vals from the aux variable at this location
+* 6/2015-- do full region so that we get a reliable determination of ascending vs descending
+ CALL EXTRACT_ARG1_LINE( pos, axis, kmin_pos, kmax_pos,
+ . ip, jp, kp, lp, mp, np, posline )
+
+
+* 5/15 - allow for non-monotonic position array.
+* PROGRAMMER NOTE: The 5/15 changes make this code seriously sub-optimal
+* The code immediately following could be blended with the routines
+* HUNT_INDICES and FULL_SCAN_INDICES to make something both smaller and faster
+
+* check for a single contiguous block of monotonic points
+ monotonic_block = .FALSE.
+ n_ascnd = 0
+ n_desnd = 0
+ kstart = kmax_src
+ kend = kmin_src
+
+* ... count ascending and descending pairs
+ v0 = posline(kmin_pos)
+ DO ss = kmin_pos+1, kmax_pos
+ v1 = posline(ss)
+ IF (v1 .NE. bad_pos) THEN
+ IF (v1 .GT. v0) THEN
+ n_ascnd = n_ascnd + 1
+ ELSEIF (v1 .LT. v0) THEN
+ n_desnd = n_desnd + 1
+ ENDIF
+ v0 = v1
+ ENDIF
+ ENDDO
+
+* ... assess the monotonicity
+* Note: through this approach columns may differ in direction in pathological data!!
+ ascending = n_ascnd .GE. n_desnd
+
+* ... find start of non-bad block
+ DO ss = kmin_src, kmax_src
+ IF (posline(ss) .NE. bad_pos) THEN
+ kstart = ss
+ GOTO 510
+ ENDIF
+ ENDDO
+* ... find end of non-bad block
+ 510 DO ss = kmax_src, kstart, -1
+ IF (posline(ss) .NE. bad_pos) THEN
+ kend = ss
+ GOTO 590
+ ENDIF
+ ENDDO
+
+* ... no non-bad-block exists
+ CONTINUE
+
+ 590 CALL FULL_SCAN_INDICES(posline(kmin_src), kmin_src, kmax_src,
+ . kstart, kend,
. bad_pos, dstcoords,
. indices, coef, kmin_dst, kdmax,
- . klook, khiok, ascending )
- has_valid = klook .NE. unspecified_int4
- IF (trans .EQ. pauxrgrd_pwlave ) khiok = khiok-1
- new_aux_line = .FALSE.
+ . ascending, has_valid )
+ klook = kmin_dst
+ khiok = kdmax
+ IF (trans .EQ. pauxrgrd_pwlave ) khiok = khiok-1
+ new_aux_line = .FALSE.
ENDIF
IF (has_valid) THEN
* extract the line of source vals
- DO 600 k = kmin_src, kmax_src
- 600 srcline(k) = src(is, js, k, ls, ms, ns)
+ CALL EXTRACT_ARG4_LINE( src, axis, kmin_src, kmax_src,
+ . is, js, ks, ls, ms, ns, srcline )
* perform the regridding
IF (trans .EQ. pauxrgrd_linear ) THEN
@@ -248,20 +336,23 @@
. bad_src, bad_dst, ascending,
. dstline )
ELSEIF (trans .EQ. pauxrgrd_pwlave ) THEN
-* ... by within-target-cell averaging
+* ... by within-target-cell averaging (count non-monotonic positions)
CALL DO_AUX_REGRID_LINE_AVE (axis,
- . srcline, posline,
+ . srcline, posline(kmin_src),
. kmin_src, kmax_src,
. indices, coef,
. kmin_dst, kmax_dst,
. klook, khiok,
- . bad_src, bad_dst, ascending,
+ . bad_src, bad_dst, bad_pos,
+ . ascending,
. dstline )
ENDIF
* put the line of results into the destination array
- DO 900 k = klook, khiok
- 900 dst(i, j, k, l, m, n) = dstline(k)
+ CALL PUT_ARG5_LINE(
+ . dst, axis, klook, khiok, koffset_false,
+ . i, j, k, l, m, n, dstline )
+
ENDIF
1000 CONTINUE
diff --git a/fer/doo/do_aux_var_regrid_1d_t.F b/fer/doo/do_aux_var_regrid_1d_t.F
new file mode 100644
index 0000000..3a5ac1b
--- /dev/null
+++ b/fer/doo/do_aux_var_regrid_1d_t.F
@@ -0,0 +1,233 @@
+ SUBROUTINE DO_AUX_VAR_REGRID_1D_T( axis,
+ . src, msrc, src_cx,
+ . dst, mdst, dst_cx,
+ . tsrc, mtsrc, tsrc_cx,
+ . ldst_min, ldst_max )
+
+*
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
+* perform a 1D t-axis "orthoganalization" regrid guided by an
+* auxiliary variable containing a 2D array of time steps
+* allow for the usual Ferret promotion of point axes to match span axes
+* where either the source data or the position field may have degenerate axes
+* (typically the position array will be degenerate in Z and E)
+
+* This code copied/modified from do_aux_var_regrid_1d_z.F
+
+* V695+ 3/15 *sh*
+
+ IMPLICIT NONE
+ include 'tmap_dims.parm'
+ include 'errmsg.parm'
+ include 'ferret.parm'
+ include 'xcontext.cmn'
+ include 'xvariables.cmn'
+ include 'xmem_subsc.cmn'
+
+* calling argument declarations:
+ INTEGER axis,
+ . msrc, mdst, mtsrc, src_cx, dst_cx, tsrc_cx,
+ . ldst_min, ldst_max
+ REAL src ( m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,
+ . m4lot:m4hit,m4loe:m4hie,m4lof:m4hif ),
+ . dst ( m5lox:m5hix,m5loy:m5hiy,m5loz:m5hiz,
+ . m5lot:m5hit,m5loe:m5hie,m5lof:m5hif ),
+ . tsrc( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+ . m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+
+
+* internal variable declarations:
+ INTEGER CX_DIM_LEN,
+ . idim,
+ . i, j, k, l, m, n,
+ . is, js, ks, ls, ms, ns,
+ . si0, sj0, sk0, sl0, sm0, sn0,
+ . dsi, dsj, dsk, dsl, dsm, dsn,
+ . ip, jp, kp, mp
+ INTEGER nmin, nmax, dgrid, status,
+ . lsrc_min, lsrc_max, lsrc_start, lsrc_end, ldst_start, ldst_end
+ REAL tsrc_min, tsrc_max
+ REAL*8 TM_WORLD
+* internally declared work arrays
+ REAL*8 tdst(ldst_min:ldst_max)
+
+* equivalence conveniences
+* "inc" is the increments for each axis of each component
+* "lo" is the starting subscript (minus 1) for each axis of each component
+* "s" is the source data (src)
+* "p" (tsrcition) is the time steps of the source data ==> the 2D array
+* "d" indicates the delta increment
+* "0" indicates the start (lo) index
+ INTEGER srcinc(nferdims), srclo(nferdims)
+ EQUIVALENCE
+ . (srcinc(1),dsi), (srcinc(2),dsj), (srcinc(3),dsk),
+ . (srcinc(4),dsl), (srcinc(5),dsm), (srcinc(6),dsn),
+ . (srclo(1), si0), (srclo(2), sj0), (srclo(3), sk0),
+ . (srclo(4), sl0), (srclo(5), sm0), (srclo(6), sn0)
+
+*==========================
+
+* initialize
+* nicer names for key index limits
+ dgrid = cx_grid(dst_cx)
+ nmin = cx_lo_ss(dst_cx,f_dim) ! lowest forecast axis index
+ nmax = cx_hi_ss(dst_cx,f_dim) ! hiest forecast axis index
+ lsrc_min = cx_lo_ss(src_cx,t_dim) ! l index min in source data
+ lsrc_max = cx_hi_ss(src_cx,t_dim) ! l index max in source data
+
+* auxiliary TIME field is 2D on T-F so set up static indices for other axes
+ ip = cx_lo_ss(tsrc_cx,x_dim)
+ jp = cx_lo_ss(tsrc_cx,y_dim)
+ kp = cx_lo_ss(tsrc_cx,z_dim)
+ mp = cx_lo_ss(tsrc_cx,e_dim)
+
+* extract the time step values of the destination
+ DO l = ldst_min, ldst_max
+ tdst(l) = TM_WORLD(l, dgrid, t_dim, box_middle)
+ ENDDO
+
+* compute the delta increment for each axis
+* this allows "promotion" of degenerate axes
+ DO 10 idim = 1, nferdims
+ IF ( CX_DIM_LEN(idim,src_cx) .EQ. 1 ) THEN
+ srcinc(idim) = 0
+ ELSE
+ srcinc(idim) = 1
+ ENDIF
+ 10 CONTINUE
+
+* compute the starting subscript for each axis of each component
+* used below through equivalence relationship
+* pre-decrement by 1 delta for looping ahead)
+ DO idim = 1, nferdims
+ srclo(idim) = cx_lo_ss(src_cx,idim) - srcinc(idim)
+ ENDDO
+
+* the relationship between the time steps in the source data (the
+* values found in the "position" data -- the 2D aux time field)
+* and the same times in the destination field looks something
+* like this over 3 forecast cycles
+
+* ** 2d aux times ** ** orthoganalized T-F field **
+* 110
+* 109
+* 1010 1010 108
+* 1009 1009 107
+* 18 >1008 1012 1016 1008 1008 1008 106
+* 17 >1007 1011 1015 1007 1007 105
+* 16 >1006 >1010 1014 1006 1006 104
+* 15 >1005 >1009 1013 1005 1005 103
+* 14 1004 >1008 1012 1004 1004 102
+* 13 1003 >1007 1011 101
+* 12 1002 >1006 >1010 100
+* 11 1001 >1005 >1009 99
+* 10 1000 1004 >1008 98
+* | |
+* l in src_cx l in dst_cx
+
+* ">" above indicate a requested time range of T=1005:1010
+
+* the outer loop is over the frequency axis
+ ns = sn0
+ DO n = mr_lo_s6(mdst), mr_hi_s6(mdst)
+ ns = ns + dsn
+
+* are there time steps to be copied at this forecast index
+ tsrc_min = tsrc(ip,jp,kp,lsrc_min,mp,n) ! min time at this F
+ tsrc_max = tsrc(ip,jp,kp,lsrc_max,mp,n) ! max time at this F
+ IF (tdst(ldst_min) .GT. tsrc_max
+ . .OR. tdst(ldst_max) .LT. tsrc_min) CYCLE ! nothing to copy
+
+* locate the index at which the block of times to be copied begins in source and dest
+ IF (tdst(ldst_min) .LT. tsrc_min ) THEN
+ lsrc_start = lsrc_min
+ DO ldst_start = ldst_min, ldst_max
+ IF (tdst(ldst_start) .EQ. tsrc_min) EXIT
+ ENDDO
+ ELSE
+ ldst_start = ldst_min
+ DO lsrc_start = lsrc_min, lsrc_max
+ IF (tsrc(ip,jp,kp,lsrc_start,mp,n)
+ . .EQ. tdst(ldst_min) ) EXIT
+ ENDDO
+ ENDIF
+
+* locate the index at which the block of times to be copied ends
+ IF (tdst(ldst_max) .GT. tsrc_max ) THEN
+ lsrc_end = lsrc_max
+ ELSE
+ DO lsrc_end = lsrc_max, lsrc_min, -1
+ IF (tsrc(ip,jp,kp,lsrc_end,mp,n)
+ . .EQ. tdst(ldst_max) ) EXIT
+ ENDDO
+ ENDIF
+ ldst_end = ldst_start + (lsrc_end-lsrc_start)
+
+* copy the src data to the destination array -- loop over its X,Y,Z,T,E range
+* the 's' variables are source array indices
+ 100 is = si0
+ DO 1000 i = mr_lo_s1(mdst), mr_hi_s1(mdst)
+ is = is + dsi
+
+ js = sj0
+ DO 1000 j = mr_lo_s2(mdst), mr_hi_s2(mdst)
+ js = js + dsj
+
+ ks = sk0
+ DO 1000 k = mr_lo_s3(mdst), mr_hi_s3(mdst)
+ ks = ks + dsk
+
+* ... special set-up for L axis
+ ls = lsrc_start - 1
+ DO 1000 l = ldst_start, ldst_end
+ ls = ls + 1
+
+ ms = sm0
+ DO 1000 m = mr_lo_s5(mdst), mr_hi_s5(mdst)
+ ms = ms + dsm
+
+ dst(i,j,k,l,m,n) = src(is,js,ks,ls,ms,ns)
+
+ 1000 CONTINUE
+ ENDDO
+
+* successful completion. Clean up.
+ CALL RELEASE_WORK_SPC ! ?? needed ??
+ RETURN
+
+* error exit
+ 5000 RETURN
+ END
diff --git a/fer/doo/do_aux_var_regrid_2d_tf.F b/fer/doo/do_aux_var_regrid_2d_tf.F
new file mode 100644
index 0000000..bf4c515
--- /dev/null
+++ b/fer/doo/do_aux_var_regrid_2d_tf.F
@@ -0,0 +1,286 @@
+ SUBROUTINE DO_AUX_VAR_REGRID_2D_TF(
+ . src, msrc, src_cx,
+ . dst, mdst, dst_cx,
+ . tsrc, mtsrc, tsrc_cx,
+ . ldst_min, ldst_max )
+
+*
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
+* perform a 1D t-axis "orthoganalization" regrid guided by an
+* auxiliary variable containing a 2D array of time steps
+* allow for the usual Ferret promotion of point axes to match span axes
+* where either the source data or the position field may have degenerate axes
+* (typically the position array will be degenerate in Z and E)
+
+* This code copied/modified from do_aux_var_regrid_1d_z.F
+
+* V695+ 3/15 *sh*
+
+ IMPLICIT NONE
+ include 'tmap_dims.parm'
+ include 'errmsg.parm'
+ include 'ferret.parm'
+ include 'xcontext.cmn'
+ include 'xvariables.cmn'
+ include 'xmem_subsc.cmn'
+ include 'xtm_grid.cmn_text' ! for line_delta
+
+* calling argument declarations:
+ INTEGER axis,
+ . msrc, mdst, mtsrc, src_cx, dst_cx, tsrc_cx,
+ . ldst_min, ldst_max
+ REAL src ( m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,
+ . m4lot:m4hit,m4loe:m4hie,m4lof:m4hif ),
+ . dst ( m5lox:m5hix,m5loy:m5hiy,m5loz:m5hiz,
+ . m5lot:m5hit,m5loe:m5hie,m5lof:m5hif ),
+ . tsrc( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+ . m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+
+
+* internal variable declarations:
+ INTEGER CX_DIM_LEN,
+ . idim,
+ . i, j, k, l, m, n,
+ . is, js, ks, ls, ms, ns,
+ . si0, sj0, sk0, sl0, sm0, sn0,
+ . dsi, dsj, dsk, dsl, dsm, dsn,
+ . ip, jp, kp, mp
+ INTEGER CGRID_AXIS,
+ . ndst_min, ndst_max, dgrid,
+ . lsrc_min, lsrc_max, lsrc_start, lsrc_end, ldst_start, ldst_end,
+ . nsrc_min, nsrc_max, nsrc0, lsrc0, f_axis, l_per_n, ldst0
+ REAL tsrc_min, tsrc_max, t_target, f_delta, t_delta
+ REAL*8 TM_WORLD
+* internally declared work arrays
+ REAL*8 tdst(ldst_min:ldst_max)
+
+* equivalence conveniences
+* "inc" is the increments for each axis of each component
+* "lo" is the starting subscript (minus 1) for each axis of each component
+* "s" is the source data (src)
+* "p" (tsrcition) is the time steps of the source data ==> the 2D array
+* "d" indicates the delta increment
+* "0" indicates the start (lo) index
+ INTEGER srcinc(nferdims), srclo(nferdims)
+ EQUIVALENCE
+ . (srcinc(1),dsi), (srcinc(2),dsj), (srcinc(3),dsk),
+ . (srcinc(4),dsl), (srcinc(5),dsm), (srcinc(6),dsn),
+ . (srclo(1), si0), (srclo(2), sj0), (srclo(3), sk0),
+ . (srclo(4), sl0), (srclo(5), sm0), (srclo(6), sn0)
+
+*==========================
+
+* initialize
+* nicer names for key index limits
+ dgrid = cx_grid(dst_cx)
+ ndst_min = cx_lo_ss(dst_cx,f_dim) ! lowest forecast axis index
+ ndst_max = cx_hi_ss(dst_cx,f_dim) ! hiest forecast axis index
+ lsrc_min = cx_lo_ss(src_cx,t_dim) ! l index min in source data
+ lsrc_max = cx_hi_ss(src_cx,t_dim) ! l index max in source data
+ nsrc_min = cx_lo_ss(src_cx,f_dim)
+ nsrc_max = cx_hi_ss(src_cx,f_dim)
+
+* auxiliary TIME field is 2D on T-F so set up static indices for other axes
+ ip = cx_lo_ss(tsrc_cx,x_dim)
+ jp = cx_lo_ss(tsrc_cx,y_dim)
+ kp = cx_lo_ss(tsrc_cx,z_dim)
+ mp = cx_lo_ss(tsrc_cx,e_dim)
+
+* f_delta is the time lag between forecasts.
+* It should be consistent in tsrc and should match the delta of the F lag axis
+ f_axis = CGRID_AXIS(f_dim, dst_cx)
+ f_delta = line_delta(f_axis)
+
+* extract the time step values of the destination
+ DO l = ldst_min, ldst_max
+ tdst(l) = TM_WORLD(l, dgrid, t_dim, box_middle)
+ ENDDO
+
+* no source data overlapping with requested dest times? Then quit here
+ IF (tdst(ldst_min) .GT. tsrc(ip,jp,kp,lsrc_max,mp,nsrc_max)
+ . .OR. tdst(ldst_max) .LT. tsrc(ip,jp,kp,lsrc_min,mp,nsrc_min) )
+ . RETURN
+* number of time steps before the start of the next forecast
+ IF (m1hit .GT. m1lot ) THEN
+* ... for irregular monthly time steps, t_delta is approximate
+ t_delta = (tsrc(ip,jp,kp,lsrc_max,mp,nsrc_min)
+ . - tsrc(ip,jp,kp,lsrc_min,mp,nsrc_min))
+ . / (lsrc_max-lsrc_min+1)
+ l_per_n = INT(f_delta/t_delta + 0.5)
+ ELSE
+ t_delta = 1.0 ! irrelevant
+ l_per_n = 1
+ ENDIF
+
+* compute the delta increment for each axis
+* this allows "promotion" of degenerate axes
+ DO 10 idim = 1, nferdims
+ IF ( CX_DIM_LEN(idim,src_cx) .EQ. 1 ) THEN
+ srcinc(idim) = 0
+ ELSE
+ srcinc(idim) = 1
+ ENDIF
+ 10 CONTINUE
+
+* compute the starting subscript for each axis of each component
+* used below through equivalence relationship
+* pre-decrement by 1 delta for looping ahead)
+ DO idim = 1, nferdims
+ srclo(idim) = cx_lo_ss(src_cx,idim) - srcinc(idim)
+ ENDDO
+
+* the relationship between the time steps in the 2D aux time field (cx1)
+* and the same times in the destination field looks something
+* like this
+
+* ** 2d aux times ** ==> ** cal-T x lag-F field **
+
+* 12 1011(0) 1015(1) 1019(2) 1019(2) 1019(3) 1019(4) 20
+* 11 1010(0) 1014(1) 1018(2) 1018(2) 1018(3) 1018(4) 19
+* 10 1009(0) 1013(1) 1017(2) 1017(2) 1017(3) 1017(4) 18
+* 9 1008(0) 1012(1) 1016(2) 1016(2) 1016(3) 1016(4) 17
+* 8 1007(0) 1011(1) 1015(2) 1015(1) 1015(2) 1015(3) 16
+* 7 1006(0) >1010(1) 1014(2) 1014(1) 1014(2) 1014(3) 15
+* 6 1005(0) 1009(1) 1013(2) 1013(1) 1013(2) 1013(3) 14
+* 5 1004(0) 1008(1) 1012(2) 1012(1) 1012(2) 1012(3) 13
+* 4 1003(0) 1007(1) 1011(2) 1011(0) 1011(1) 1011(2) 12
+* 3 1002(0) 1006(1) 1010(2) 1010(0) 1010(1) 1010(2) 11
+* 2 1001(0) >1005(1) 1009(2) 1009(0) 1009(1) 1009(2) 10
+* 1 1000(0) 1004(1) 1008(2) 1008(0) 1008(1) 1008(2) 9
+* ^ ^
+* | |
+* l in src_cx l in dst_cx
+
+* ">" above indicate a requested time range of T=1005:1010
+
+* strategy for reorganizing the data:
+* - initialize by finding the last forecast (highest N index) which
+* contains the starting destination time requested. Call this nsrc0
+* - loop over the destination time axis.
+* count when F-delta advances occur. When they occur, advance to
+* next nsrc0
+* - at each time, loop over the F axis,
+* start by copying nsrc0 source into n=1
+* advance to n=2,3, ... keeping T constant by incrementing L forward
+* at each consecutive forecast by an amount delta-F
+
+* find the highest source N index at which lowest destination time can be found
+ DO ldst0 = ldst_min, ldst_max
+ t_target = tdst(ldst0)
+ DO nsrc0 = cx_hi_ss(tsrc_cx,f_dim),cx_lo_ss(tsrc_cx,f_dim), -1
+ IF (t_target .GE. tsrc(ip,jp,kp,lsrc_min,mp,nsrc0)) THEN
+ DO lsrc0 = lsrc_min,lsrc_max
+ IF (tsrc(ip,jp,kp,lsrc0,mp,nsrc0) .EQ. t_target) THEN
+ GOTO 50
+ ELSEIF (tsrc(ip,jp,kp,lsrc0,mp,nsrc0) .GT. t_target) THEN
+ CALL WARN('1D time axis of FMRC contains time'//
+ . ' not in forecast collection'//pCR//
+ . 'Results may not be correct.')
+ GOTO 50
+ ENDIF
+ ENDDO
+ ENDIF
+ ENDDO
+* ... the time t_target does not exist in this forcast
+ ENDDO
+* can never get here: no overlap between source and destination time ranges
+ STOP 'do_aux_ver_regrid_2d_tf'
+
+* determine where we are starting on the l_per_n cycle
+! 50 n = AMOD(t_target, f_delta) / t_delta + 1
+ 50 lsrc0 = lsrc0 - 1
+
+******************************************************************
+ DO l = ldst0, ldst_max ! ***** T-cal loop ******
+
+* advance to the next forecast for pulling from the source data
+* (do not do this on initial entry -- everything set properly initially)
+ IF (l.GT.ldst0 .AND. MOD(ls,l_per_n).EQ.0) THEN
+ nsrc0 = nsrc0 + 1
+ lsrc0 = lsrc_min - 1
+ ENDIF
+
+ lsrc0 = lsrc0 + 1
+ ls = lsrc0
+ ns = nsrc0
+ n = 1
+
+ DO WHILE (n<=ndst_max) ! ***** N-lag loop *****
+
+* this IF allows i) user N limits to exclude low n values
+* and ii) copying the ragged high end of the FMRC block
+ IF (n .GE. ndst_min
+ . .AND. ns .LE. nsrc_max) THEN
+
+* copy the src data to the destination array -- loop over its X,Y,Z,E range
+* the 's' variables are source array indices
+ is = si0
+ DO 1000 i = mr_lo_s1(mdst), mr_hi_s1(mdst)
+ is = is + dsi
+
+ js = sj0
+ DO 1000 j = mr_lo_s2(mdst), mr_hi_s2(mdst)
+ js = js + dsj
+
+ ks = sk0
+ DO 1000 k = mr_lo_s3(mdst), mr_hi_s3(mdst)
+ ks = ks + dsk
+
+ ms = sm0
+ DO 1000 m = mr_lo_s5(mdst), mr_hi_s5(mdst)
+ ms = ms + dsm
+
+ dst(i,j,k,l,m,n) = src(is,js,ks,ls,ms,ns)
+
+ 1000 CONTINUE
+ ENDIF
+
+* set up for same destination time taken from the previous forecast
+ n = n + 1
+ ns = ns - 1
+ ls = ls + l_per_n
+ IF (ns.LT.nsrc_min .OR. ls.GT.lsrc_max) EXIT
+ ENDDO ! N loop
+
+ ENDDO ! L loop
+
+* successful completion. Clean up.
+ CALL RELEASE_WORK_SPC ! ?? needed ??
+ RETURN
+
+* error exit
+ 5000 RETURN
+ END
diff --git a/fer/utl/decrement_plot_grid.F b/fer/doo/do_bin_regrid.F
old mode 100755
new mode 100644
similarity index 73%
copy from fer/utl/decrement_plot_grid.F
copy to fer/doo/do_bin_regrid.F
index aa6c503..8695666
--- a/fer/utl/decrement_plot_grid.F
+++ b/fer/doo/do_bin_regrid.F
@@ -1,9 +1,11 @@
- SUBROUTINE DECREMENT_PLOT_GRID
+ SUBROUTINE DO_BIN_REGRID( cx_lims, axis, trans,
+ . src, msrc, dst, mdst,
+ . work, src_cx, dst_cx, itot)
+
-*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
*
* Access and use of this software shall impose the following
@@ -33,19 +35,25 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
*
-* Decrement the grid use count which was bumped up, saving the grid used
-* in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
+* call the regridding routine with appropriate work arrays
- include 'xbox_bounds.cmn'
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG
+*
+* revision 0.0 - 11/15
+ IMPLICIT NONE
+ include 'tmap_dims.parm'
+ include 'ferret.parm'
+ include 'xcontext.cmn'
- INTEGER grid
+* calling argument declarations:
+ INTEGER cx_lims, axis, trans, msrc, mdst, itot, src_cx, dst_cx
+ REAL src(*), dst(*), work(itot)
- grid = bb_grid
- IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
- bb_grid_inccount = 0
+ CALL BIN_REGRID_1_AXIS( cx_lims, axis, trans,
+ . src, msrc, dst, mdst,
+ . work(1), src_cx, dst_cx, itot )
RETURN
END
diff --git a/fer/doo/do_stddev.F b/fer/doo/do_smth_box_p.F
old mode 100755
new mode 100644
similarity index 73%
copy from fer/doo/do_stddev.F
copy to fer/doo/do_smth_box_p.F
index 0e4724d..b7f710b
--- a/fer/doo/do_stddev.F
+++ b/fer/doo/do_smth_box_p.F
@@ -1,7 +1,7 @@
- INTEGER FUNCTION DO_STDDEV ( idim, arg,
+ INTEGER FUNCTION DO_SMTH_BOX_P( idim, arg,
. com, com_mr, com_cx,
. res, res_mr, res_cx,
- . box )
+ . wt )
*
*
@@ -38,43 +38,53 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* determine the variance of the given field along the indicated axis
+* smooth along axis idim by a running mean filter, summing all data
+* present in the box. This will return a result based on partial data.
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V230: 3/2/92
-* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* programmer - Ansley Manke
+* From do_smth_box
IMPLICIT NONE
include 'tmap_dims.parm'
include 'ferret.parm'
include 'errmsg.parm'
include 'interp_stack.parm'
- include 'xcontext.cmn'
include 'xprog_state.cmn'
* calling argument declarations:
INTEGER idim, com_mr, com_cx, res_mr, res_cx
- REAL arg, com(*), res(*), box(*)
-
-* internal variable declarations:
- LOGICAL stddev
+ REAL arg, wt(*), com(*), res(*)
- stddev = .TRUE.
+* internal variable declarations
+ LOGICAL even
+ INTEGER i, wlen
+ REAL weight
* diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
IF ( mode_diagnostic ) CALL DIAG_OP
. ( 'doing', isact_class_trans, res_cx, idim )
- CALL DO_VAR_SUB( idim,
- . cx_lo_ss(com_cx,idim), cx_hi_ss(com_cx,idim),
- . com, com_mr, com_cx,
- . res, res_mr, res_cx,
- . box, stddev )
+* initialize
+ wlen = arg ! length of smoother
+
+* create weights array to be convolved with data
+* (with half weights on ends for even argument given)
+ weight = 1. / FLOAT(wlen)
+ even = MOD(wlen,2) .EQ. 0
+ IF (even) wlen = wlen + 1
+ DO 100 i = 1, wlen
+ 100 wt(i) = weight
+ IF ( even) THEN
+ wt(1) = weight * 0.5
+ wt(wlen) = weight * 0.5
+ ENDIF
- DO_STDDEV = ferr_ok
+* now convolve this along the desired axis of the grid
+ CALL CONVOLVE_P(idim, wlen/2, wt,
+ . com, com_mr, com_cx,
+ . res, res_mr, res_cx )
+* success
+ DO_SMTH_BOX_P = ferr_ok
RETURN
END
diff --git a/fer/doo/do_stddev.F b/fer/doo/do_stddev.F
old mode 100755
new mode 100644
diff --git a/fer/doo/regrid_comments.F b/fer/doo/regrid_comments.F
index 6bac7b6..d6f68b3 100644
--- a/fer/doo/regrid_comments.F
+++ b/fer/doo/regrid_comments.F
@@ -48,6 +48,8 @@
* V68 *acm* 1/12 changes for double-precision ferret.
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
* V690 *sh* 1/14 document sigma and curvilinear aux var regridding
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V695+ 3/15 *sh* special formatting of T-F plane FMRC regridding comments
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -142,61 +144,83 @@
ELSE
add_on = .TRUE.
ENDIF
- IF ( line_regular(axis) .AND. .NOT.stat_grid
- . .AND. line_dim (axis) .GT. 1 ) THEN
+
+ IF (cx_regrid_trans(idim,cx) .EQ. pauxrgrd_fmrc ) THEN
+* ... comment about T-F axis reorganization for FMRC data sets:
+* "reorganized on T using 2d TIME2D field"
+ IF (idim .EQ. t_dim) THEN
+ REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
+ . 'reorganized on T'
+ mlen = mlen + 16
+ ELSEIF (idim.EQ. f_dim) THEN
+ REGRID_COMMENTS = REGRID_COMMENTS(:mlen-1) //
+ . 'F'
+ ENDIF
+ ELSE
+
+ IF ( line_regular(axis) .AND. .NOT.stat_grid
+ . . AND. line_dim (axis) .GT. 1 ) THEN
* ... delta
#ifdef double_p
- REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
+ REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
. TM_FMT(line_delta(axis),2,8,slen)
- mybuff = mybuff(:mlen) //
+ mybuff = mybuff(:mlen) //
. TM_FMT(line_delta(axis),2,8,slen)
#else
- REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
+ REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
. TM_FMT(SNGL(line_delta(axis)),2,8,slen)
- mybuff = mybuff(:mlen) //
+ mybuff = mybuff(:mlen) //
. TM_FMT(SNGL(line_delta(axis)),2,8,slen)
#endif
- mlen = MIN( maxlen, mlen+slen )
+ mlen = MIN( maxlen, mlen+slen )
* ... units
- IF ( line_units(axis) .EQ. ' ' ) THEN
- units = 'delta'
- ELSE
- IF ( line_unit_code(axis) .EQ. 0 ) THEN
- units = line_units(axis)
+ IF ( line_units(axis) .EQ. ' ' ) THEN
+ units = 'delta'
ELSE
- units = un_name(line_unit_code(axis))
+ IF ( line_unit_code(axis) .EQ. 0 ) THEN
+ units = line_units(axis)
+ ELSE
+ units = un_name(line_unit_code(axis))
+ ENDIF
ENDIF
- ENDIF
- slen = TM_LENSTR1(units)
- REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
+ slen = TM_LENSTR1(units)
+ REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
. ' '// units(:slen)//' '
- mybuff = mybuff(:mlen) //
+ mybuff = mybuff(:mlen) //
. ' '// units(:slen)//' '
- mlen = MIN( maxlen, mlen+slen+2 )
- ENDIF
+ mlen = MIN( maxlen, mlen+slen+2 )
+ ENDIF
* ... axis
- REGRID_COMMENTS = REGRID_COMMENTS(:mlen) // 'on '
+ REGRID_COMMENTS = REGRID_COMMENTS(:mlen) // 'on '
. //ww_dim_name(idim)
- mybuff = mybuff(:mlen) // 'on '
+ mybuff = mybuff(:mlen) // 'on '
. //ww_dim_name(idim)
- mlen = MIN( maxlen, mlen+4 )
+ mlen = MIN( maxlen, mlen+4 )
* ... @transform
- IF (non_atlin) THEN
- trans = alg_regrid_code(cx_regrid_trans(idim,cx))
- REGRID_COMMENTS = REGRID_COMMENTS(:mlen)//'@'//trans
- mybuff = mybuff(:mlen)//'@'//trans
- mlen = MIN(maxlen,mlen+1+TM_LENSTR1(trans) )
+ IF (non_atlin) THEN
+ trans = alg_regrid_code(cx_regrid_trans(idim,cx))
+ IF ( trans(:4) .NE. unspecified_name4 ) THEN
+ REGRID_COMMENTS = REGRID_COMMENTS(:mlen)//'@'//trans
+ mybuff = mybuff(:mlen)//'@'//trans
+ mlen = MIN(maxlen,mlen+1+TM_LENSTR1(trans) )
+ ENDIF
+ ENDIF
ENDIF
ENDIF
120 CONTINUE
-* sigma and curvilinear regridding
+* layerz and curvilinear regridding
* if an auxiliary variable regrid then document "using DEPTH" or whatever
900 IF (cx_naux(cx) .GT. 0) THEN
mybuff = ' using'
slen = 6
sep = ' '
DO idim = 1, nferdims
+ IF (cx_regrid_trans(idim,cx) .EQ. pauxrgrd_fmrc ) THEN
+ IF (idim .EQ. f_dim ) CYCLE
+ mybuff = mybuff(:slen) // ' 2d'
+ slen = slen + 3
+ ENDIF
IF (cx_aux_cat(idim,cx) .NE. unspecified_int4) THEN
mybuff = mybuff(:slen) // sep //
. VAR_CODE(cx_aux_cat(idim,cx),
@@ -207,6 +231,12 @@
ENDDO
REGRID_COMMENTS = REGRID_COMMENTS(:mlen)//mybuff
mlen = MIN(maxlen,mlen+slen)
+ REGRID_COMMENTS = REGRID_COMMENTS(:mlen)//' field'
+ mlen = MIN(maxlen,mlen+6)
+ IF (cx_naux(cx) .GT. 1) THEN
+ REGRID_COMMENTS = REGRID_COMMENTS(:mlen)//'s'
+ mlen = MIN(maxlen,mlen+1)
+ ENDIF
ENDIF
* signal if the string has been truncated for being too long
diff --git a/fer/ef_utility/SOURCE_FILES b/fer/ef_utility/SOURCE_FILES
index e0a1c91..6b65122 100644
--- a/fer/ef_utility/SOURCE_FILES
+++ b/fer/ef_utility/SOURCE_FILES
@@ -41,7 +41,8 @@ ef_set_arg_unit.F\
ef_set_custom_axis.F\
ef_set_freq_axis.F\
ef_set_desc.F\
-ef_set_real_to_string.F
+ef_set_real_to_string.F\
+ef_get_date_tstep.F
SRCS_C = \
ef_get_arg_type.c\
diff --git a/fer/ef_utility/ef_get_axis_dates.F b/fer/ef_utility/ef_get_axis_dates.F
index c7e36d2..db46f58 100644
--- a/fer/ef_utility/ef_get_axis_dates.F
+++ b/fer/ef_utility/ef_get_axis_dates.F
@@ -46,8 +46,9 @@ c*
* the year 0000 or 0001 returns as blank. If not modulo
* then we want to return the year correctly.
* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
+* v695 *acm* 2/15 Get axis dates from an F or T axis
- SUBROUTINE EF_GET_AXIS_DATES(id, iarg, tax, numtimes, datebuf )
+ SUBROUTINE EF_GET_AXIS_DATES(id, iarg, tax, dim, numtimes, datebuf )
IMPLICIT NONE
INCLUDE 'tmap_dims.parm'
@@ -56,7 +57,7 @@ c*
INCLUDE 'EF_Util.parm'
INCLUDE 'xtm_grid.cmn_text'
- INTEGER id, iarg, numtimes
+ INTEGER id, iarg, dim, numtimes
REAL*8 tax(*)
CHARACTER*(*) datebuf(*)
@@ -73,112 +74,9 @@ c* to be accessible to the external function.
DO 100 L = 1, numtimes
tstep_r8 = tax(L)
- CALL TSTEP_TO_DATE_OLD ( grid, tstep_r8, seconds, datebuf(l) )
+ CALL EF_GET_DATE_TSTEP ( grid, dim, tstep_r8, seconds, datebuf(l) )
100 CONTINUE
RETURN
END
-
- SUBROUTINE TSTEP_TO_DATE_OLD ( grid, tstep, precision, date )
-*
-* Return a string giving the date for a particular timestep
-* This is done by figuring the offset from
-* 01-JAN-0000 00:00:00 in seconds, and then calculating the date.
-*
-* This is an older version of TSTEP_TO_DATE which was revised for better
-* output formatting in Ferret v6.0. This version gives a fixed unchanging
-* format.
-*
-* Arguments:
-* grid - grid containing a time axis
-* tstep - time step
-* precision- precision (1 to 6 for day,mon,yr,hr,min,sec, respectively )
-* (use ABS(precision) - neg. indicates truncate left 0s)
-* date - returned string containing date in ASCII form
-*
-
- IMPLICIT NONE
- include 'tmap_dims.parm'
- include 'xtm_grid.cmn_text'
- external xgt_grid_data
- include 'ferret.parm'
- include 'xtext_info.cmn'
-
-* calling argument declarations
- CHARACTER*(*) date
- INTEGER grid, precision
- REAL*8 tstep
-*
-* Local definitions
- LOGICAL modulo
- CHARACTER*20 SECS_TO_DATE, SECS_TO_DATE_OUT, buff
- INTEGER axis, status, prec,
- . TM_GET_CALENDAR_ID, cal_id
- REAL*8 start_secs, offset_secs, this_secs
- REAL*8 SECS_FROM_BC
-
-! REAL*8 start_secs, offset_secs, this_secs, prec_fact(6)
-! DATA prec_fact / 31536000., 2628000., 86400., 3600.,
-! . 60., 1./
-
-* initialize
- prec = ABS(precision)
-
-* get the axis number
- axis = grid_line( t_dim, grid )
- modulo = line_modulo(axis)
-#ifdef double_p
- IF ( axis .EQ. mnormal .OR. axis .EQ. munknown ) THEN
- WRITE ( date, * ) (tstep)
- RETURN
- ELSEIF ( line_direction(axis) .NE. 'TI' ) THEN
- WRITE ( date, * ) (tstep)
- RETURN
- ENDIF
-#else
- IF ( axis .EQ. mnormal .OR. axis .EQ. munknown ) THEN
- WRITE ( date, * ) SNGL(tstep)
- RETURN
- ELSEIF ( line_direction(axis) .NE. 'TI' ) THEN
- WRITE ( date, * ) SNGL(tstep)
- RETURN
- ENDIF
-#endif
-
-* get the calendar type
-
- cal_id = TM_GET_CALENDAR_ID ( line_cal_name(axis) )
-
-* First find the offset from 01-JAN-0000 00:00:00 from the descriptor file
- start_secs = SECS_FROM_BC( line_t0(axis), cal_id, status )
-
-* Find the number of seconds since start of data set for this time step
- offset_secs = tstep*line_tunit( axis )
-
-* Total seconds to this time step since 01-JAN-0000 00:00:00
- this_secs = start_secs + offset_secs
-
-* round off date instead of truncating
-* ( people do not normally view dates this way )
-! this_secs = ( DNINT(this_secs/prec_fact(prec)) + 0.5 ) * prec_fact(prec)
-
-* Convert to date
-
- buff = SECS_TO_DATE_OUT(this_secs, cal_id, modulo, prec)
-
-* Select the requested precision
- IF ( prec .GT. 6 ) THEN ! full precision
- date = buff
- ELSEIF ( prec .GE. 3 ) THEN ! dd-mmm-$_...
- date = buff( :date_str_len(prec) )
- ELSEIF ( prec .EQ. 2 ) THEN ! mmm-$_
- date = buff( 4:11 )
- ELSE ! $_
- date = buff( 8:11 )
- ENDIF
-
-* Finished
- RETURN
- END
-
diff --git a/fer/ef_utility/ef_get_axis_dates.F b/fer/ef_utility/ef_get_date_tstep.F
similarity index 74%
copy from fer/ef_utility/ef_get_axis_dates.F
copy to fer/ef_utility/ef_get_date_tstep.F
index c7e36d2..0ccad61 100644
--- a/fer/ef_utility/ef_get_axis_dates.F
+++ b/fer/ef_utility/ef_get_date_tstep.F
@@ -1,14 +1,8 @@
-c*
-c* ef_get_axis_dates.F
-c*
-c* Ansley Manke
-c* Dec 9 1998
-c*
-c*
+ SUBROUTINE EF_GET_DATE_TSTEP ( grid, dim, tstep, precision, date )
*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
*
* Access and use of this software shall impose the following
@@ -38,49 +32,6 @@ c*
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-c*
-c* This returns the date buffer associated with the
-c* time axis of an argument.
-c*
-* V665 *acm*/11/09 Fix ticket 1766, as in #762, if the axis is modulo
-* the year 0000 or 0001 returns as blank. If not modulo
-* then we want to return the year correctly.
-* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
-
- SUBROUTINE EF_GET_AXIS_DATES(id, iarg, tax, numtimes, datebuf )
-
- IMPLICIT NONE
- INCLUDE 'tmap_dims.parm'
- INCLUDE 'ferret.parm'
- INCLUDE 'xcontext.cmn'
- INCLUDE 'EF_Util.parm'
- INCLUDE 'xtm_grid.cmn_text'
-
- INTEGER id, iarg, numtimes
- REAL*8 tax(*)
- CHARACTER*(*) datebuf(*)
-
- INTEGER l, grid, seconds
- PARAMETER (seconds=6)
- REAL*8 tstep_r8, test(5)
- INTEGER cx_list(EF_MAX_ARGS)
-
-c* The context list was cached by Ferret and must be retrieved
-c* to be accessible to the external function.
-
- CALL EF_GET_CX_LIST(cx_list)
- grid = CX_GRID(cx_list(iarg))
-
- DO 100 L = 1, numtimes
- tstep_r8 = tax(L)
- CALL TSTEP_TO_DATE_OLD ( grid, tstep_r8, seconds, datebuf(l) )
-100 CONTINUE
-
-
- RETURN
- END
-
- SUBROUTINE TSTEP_TO_DATE_OLD ( grid, tstep, precision, date )
*
* Return a string giving the date for a particular timestep
* This is done by figuring the offset from
@@ -92,6 +43,7 @@ c* to be accessible to the external function.
*
* Arguments:
* grid - grid containing a time axis
+* dim - dimension (t_dim or f_dim)
* tstep - time step
* precision- precision (1 to 6 for day,mon,yr,hr,min,sec, respectively )
* (use ABS(precision) - neg. indicates truncate left 0s)
@@ -107,12 +59,13 @@ c* to be accessible to the external function.
* calling argument declarations
CHARACTER*(*) date
- INTEGER grid, precision
+ INTEGER grid, dim, precision
REAL*8 tstep
*
* Local definitions
LOGICAL modulo
CHARACTER*20 SECS_TO_DATE, SECS_TO_DATE_OUT, buff
+ CHARACTER*2 linedir
INTEGER axis, status, prec,
. TM_GET_CALENDAR_ID, cal_id
REAL*8 start_secs, offset_secs, this_secs
@@ -124,15 +77,17 @@ c* to be accessible to the external function.
* initialize
prec = ABS(precision)
+ linedir = 'TI'
+ IF (dim .EQ. f_dim) linedir = 'FI' ! formatted forecast date
* get the axis number
- axis = grid_line( t_dim, grid )
+ axis = grid_line( dim, grid )
modulo = line_modulo(axis)
#ifdef double_p
IF ( axis .EQ. mnormal .OR. axis .EQ. munknown ) THEN
WRITE ( date, * ) (tstep)
RETURN
- ELSEIF ( line_direction(axis) .NE. 'TI' ) THEN
+ ELSEIF ( line_direction(axis) .NE. linedir ) THEN
WRITE ( date, * ) (tstep)
RETURN
ENDIF
@@ -140,7 +95,7 @@ c* to be accessible to the external function.
IF ( axis .EQ. mnormal .OR. axis .EQ. munknown ) THEN
WRITE ( date, * ) SNGL(tstep)
RETURN
- ELSEIF ( line_direction(axis) .NE. 'TI' ) THEN
+ ELSEIF ( line_direction(axis) .NE. linedir ) THEN
WRITE ( date, * ) SNGL(tstep)
RETURN
ENDIF
diff --git a/fer/efi/SOURCE_FILES b/fer/efi/SOURCE_FILES
index 730d3d7..d24e4a4 100644
--- a/fer/efi/SOURCE_FILES
+++ b/fer/efi/SOURCE_FILES
@@ -23,6 +23,8 @@ copyscat.F\
curv_range.F\
curv_to_rect.F\
curv_to_rect_map.F\
+curv_to_rect_fsu.F\
+curv_to_rect_subs.F\
day_of_year.F\
date1900.F\
days1900toymdhms.F\
@@ -63,6 +65,7 @@ findlo.F\
floatstr.F\
flag2ddups.F\
freverse.F\
+ft_to_orthogonal.F\
gausswt.F\
gausswt_v0.F\
heap2_str.F\
@@ -72,6 +75,7 @@ is_element_of_str_n.F\
labwid.F\
lanczos.F\
list_value_xml.F\
+lon_lat_time_string.F\
lsl_lowpass.F\
maxminmax.F\
minmax.F\
@@ -83,8 +87,13 @@ nco_attr.F\
nco.F\
nobad.F\
pickindex.F\
+piecewise3.F\
+piecewise_subs.F\
pt_in_poly.F\
rect_to_curv.F\
+sample_fast_i.F\
+sample_fast_i_str.F\
+samplef_date.F\
sampleij.F\
samplei_multi.F\
samplej_multi.F\
@@ -129,6 +138,7 @@ scat2grid_nobs_xyt.F\
scat2grid_subs.F\
secs_to_ymdhms.F\
separate.F\
+separate_str.F\
sorti.F\
sorti_str.F\
sortj.F\
@@ -159,6 +169,7 @@ tax_yearfrac.F\
tcat.F\
tcat_str.F\
test_opendap.F\
+time_reformat.F\
transpose_xt.F\
transpose_xy.F\
transpose_xz.F\
@@ -175,6 +186,7 @@ xreverse.F\
ycat.F\
ycat_str.F\
yreverse.F\
+write_webrow_gwt.F\
zaxreplace_avg.F\
zaxreplace_bin.F\
zaxreplace_rev.F\
diff --git a/fer/efi/bin_index_wt.F b/fer/efi/bin_index_wt.F
index 2fe857b..c4b7beb 100644
--- a/fer/efi/bin_index_wt.F
+++ b/fer/efi/bin_index_wt.F
@@ -199,19 +199,13 @@
ndx = res_lo_ss(X_AXIS)
DO 200 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
- IF (INT(arg_1(i1,j1,k1,l1,m1,n1)) .EQ. ndx) THEN
- result(ndx,j,k,l,m,n) = result(ndx,j, k, l, m, n) +
- . arg_2(i1, j1,k1,l1,m1,n1)
- ELSEIF ( INT(arg_1(i1,j1,k1,l1,m1,n1)) .GT. 0) THEN
- ndx = INT(arg_1(i1,j1,k1,l1,m1,n1))
- result(ndx,j,k,l,m,n) = arg_2(i1,j1,k1,l1,m1,n1)
+ ndx = INT(arg_1(i1,j1,k1,l1,m1,n1))
+ IF ( ndx .GT. 0 .AND. ndx .LE. res_hi_ss(X_AXIS) ) THEN
+ result(ndx,j,k,l,m,n) = result(ndx,j, k, l, m, n) +
+ . arg_2(i1, j1,k1,l1,m1,n1)
ENDIF
200 CONTINUE
- DO 300 i = ndx+1, res_hi_ss(X_AXIS)
- result(i,j,k,l,m,n) = bad_flag_result
- 300 CONTINUE
-
* ^
* |
* USER CONFIGURABLE PORTION |
diff --git a/fer/efi/curv_to_rect.F b/fer/efi/curv_to_rect.F
index 30f6201..efbd468 100644
--- a/fer/efi/curv_to_rect.F
+++ b/fer/efi/curv_to_rect.F
@@ -254,97 +254,4 @@
END ! SUBROUTINE curv_to_rect_compute
!#######################################################################
-
- subroutine apply_mapping (data_in, ilo, ihi, jlo, jhi,
- . wt, i_lon, j_lat, data_out,
- . nlon_src, nlat_src, nlon_dst, nlat_dst,
- . num_nbrs, bad_flag_in, bad_flag_out)
-
-! This is the last set of loops from horiz_interp_sphe, applying wt
-! to the data to compute the regridded result.
-
-! acm 7/2004 Add variable COUNT to set data to missing if there is nothing added
-! to the sum in a given output grid cell. This had been done in the original code
-! by seeing if the value is a "land" value, but it is not general enough for our
-! purposes.
-
-! acm 12/2004 Compute the sum of weights here; weights only used when there
-! is good data contributing to the destination point.
-
- IMPLICIT NONE
- integer ilo, ihi, jlo, jhi
- real data_in(ilo:ihi, jlo:jhi) ! input field
- real data_out(nlon_dst, nlat_dst) ! output
- real wt(nlon_dst, nlat_dst, num_nbrs)
-
- real i_lon(nlon_dst,nlat_dst,num_nbrs)
- real j_lat(nlon_dst,nlat_dst,num_nbrs)
-
- real bad_flag_in, bad_flag_out
-
- integer nlon_src, nlat_src, nlon_dst, nlat_dst,
- . num_nbrs
-
-!--- some local variables ----------------------------------------
- integer nlon_in, nlat_in, nlon_out, nlat_out, num_neighbors,
- . m, n, k, i, j
- real sum
- logical okij
-!-----------------------------------------------------------------
-
-! parameters
- real epsln, large
-cc parameter (epsln=1.e-10, large=1.e20)
- parameter (epsln=4.e-7, large=1.e20)
-
- nlon_in = nlon_src
- nlat_in = nlat_src
- nlon_out = nlon_dst
- nlat_out = nlat_dst
- num_neighbors = num_nbrs
-
- do m=1,nlon_out
- do n=1,nlat_out
-
- data_out(m,n) = 0.0
- sum=0.0
- do k=1, num_neighbors
- i = i_lon(m,n,k)
- j = j_lat(m,n,k)
-
- okij = .TRUE.
- IF (i .LT. ilo .OR. i .GT. ihi) THEN
- okij = .FALSE.
- ENDIF
- IF (j .LT. jlo .OR. j .GT. jhi) THEN
- okij = .FALSE.
- ENDIF
-
-
- if (i.GT.0 .and. j.GT.0 .AND. okij) THEN
- IF (data_in(i,j) .NE. bad_flag_in ) THEN
- data_out(m,n) = data_out(m,n)+
- . data_in(i,j)*wt(m,n,k)
- sum = sum + wt(m,n,k)
- endif
- else
- data_out(m,n) = bad_flag_out
- GO TO 33
- endif
- enddo
-
- IF (sum .GT. epsln) THEN
- data_out(m,n) = data_out(m,n)/sum
- ELSE
- data_out(m,n) = bad_flag_out
- ENDIF
- 33 continue
-
- enddo
- enddo
-
-
- return
- end ! subroutine horiz_interp_sphe
-
-
+
\ No newline at end of file
diff --git a/fer/efi/curv_to_rect.F b/fer/efi/curv_to_rect_fsu.F
similarity index 50%
copy from fer/efi/curv_to_rect.F
copy to fer/efi/curv_to_rect_fsu.F
index 30f6201..b6feaf9 100644
--- a/fer/efi/curv_to_rect.F
+++ b/fer/efi/curv_to_rect_fsu.F
@@ -1,9 +1,11 @@
-! curv_to_rect.F
+
+! curv_to_rect_fsu.F
! From Matt Harrison hinterp.F
! to call only the spherical interpolation modules, and
! recast in F77-compileable format.
-! ACM 3/2004
!
+! This is a special version of curv_to_rect, but with num_nbrs = 1 not 4.
+! the mapping function computed at FSU uses just one neighbor.
!
! -- Check use of and document issue of cell bounds
! vs cell centers.
@@ -53,6 +55,9 @@
* a map pre-computed using the entire dataset for this regridding.
* Pass the subscripts of the input curvilinear data to the
* apply_mapping routine (if not a subset these are 1:max_ss).
+* ACM 1/2009 Correct bug with the indices passed into apply_mapping; Treating
+* indices as if they start at 1 inside that routine lets us compute
+* and apply mapping functions based on subsets of the grid
! In this SUBROUTINE we provide information about
@@ -90,9 +95,8 @@
!
- SUBROUTINE curv_to_rect_init(id)
+ SUBROUTINE curv_to_rect_fsu_init(id)
- IMPLICIT NONE
INCLUDE 'EF_Util.cmn'
INTEGER id, arg
@@ -105,31 +109,26 @@
WRITE (descr, 10)
10 FORMAT
- .('Apply mapping to regrid from curvilinear to rectangular grid')
+ .('Alt func to Apply mapping to regrid from curvilinear to rectangular grid')
CALL ef_set_desc(id, descr)
CALL ef_set_num_args(id, 2)
- CALL ef_set_axis_inheritance_6d(id,
- . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
- . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
- . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
- CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+ CALL ef_set_axis_inheritance(id, IMPLIED_BY_ARGS,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
arg = 1
CALL ef_set_arg_name(id, arg, 'V')
CALL ef_set_arg_desc(id, arg,
- . 'Variable to regrid, on curvilinear grid V(x,y,z,t,e,f)')
- CALL ef_set_axis_influence_6d(id, arg,
- . NO, NO, YES, YES, YES, YES)
+ . 'Variable to regrid, on curvilinear grid V(x,y,z,t)')
+ CALL ef_set_axis_influence(id, arg, NO, NO, YES, YES)
arg = 2
CALL ef_set_arg_name(id, arg, 'mapping')
WRITE (descr, 30)
30 FORMAT ('mapping computed by curv_to_rect_MAP')
CALL ef_set_arg_desc(id, arg, descr)
- CALL ef_set_axis_influence_6d(id, arg,
- . YES, YES, NO, NO, NO, NO)
+ CALL ef_set_axis_influence(id, arg, YES, YES, NO, NO)
! ^
! |
@@ -137,57 +136,52 @@
!***********************************************************************
RETURN
- END ! SUBROUTINE curv_to_rect_init
+ END ! SUBROUTINE curv_to_rect_fsu_init
!
! In this SUBROUTINE we compute the result
!
- SUBROUTINE curv_to_rect_compute(id, arg_1, arg_2, result)
+ SUBROUTINE curv_to_rect_fsu_compute(id, arg_1, arg_2, result)
- IMPLICIT NONE
+ IMPLICIT none
+
INCLUDE 'EF_Util.cmn'
INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER id
- INTEGER id
-
- REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
- . mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
- REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
- . mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
-
- REAL result(memreslox:memreshix, memresloy:memreshiy,
- . memresloz:memreshiz, memreslot:memreshit,
- . memresloe:memreshie, memreslof:memreshif)
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
-* After initialization, the 'res_' arrays contain indexing information
-* for the result axes. The 'arg_' arrays will contain the indexing
-* information for each variable''s axes.
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+ . mem1lot:mem1hit)
+ REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+ . mem2lot:mem2hit)
- INTEGER res_lo_ss(6),
- . res_hi_ss(6),
- . res_incr (6)
- INTEGER arg_lo_ss(6,EF_MAX_ARGS),
- . arg_hi_ss(6,EF_MAX_ARGS),
- . arg_incr (6,EF_MAX_ARGS)
+ REAL result(memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit)
- REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+! After initialization, the 'res_' arrays contain indexing information
+! for the result axes. The 'arg_' arrays will contain the indexing
+! information for each variable's axes.
+ INTEGER res_lo_ss(4), res_hi_ss(4), res_incr(4)
+ INTEGER arg_lo_ss(4,EF_MAX_ARGS), arg_hi_ss(4,EF_MAX_ARGS),
+ . arg_incr(4,EF_MAX_ARGS)
+
!**********************************************************************
! USER CONFIGURABLE PORTION |
! |
! V
- INTEGER i, j, k, l, m, n,
- . i1, j1, k1, l1, m1, n1,
- . i2, j2, k2, l2, m2, n2,
- . ih, jh, num_nbrs,
- . nlon_src, nlat_src, nlon_dst, nlat_dst
+ INTEGER i, j, k, l, i1, j1, k1, l1, i2, j2, k2, l2, ih, jh,
+ . num_nbrs, nlon_src, nlat_src, nlon_dst, nlat_dst
num_nbrs = 4
+ num_nbrs = 1
- CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
- CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id,bad_flag,bad_flag_result)
nlon_src = arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1
@@ -205,45 +199,31 @@
j2 = arg_lo_ss(Y_AXIS,ARG2)
k2 = arg_lo_ss(Z_AXIS,ARG2)
l2 = arg_lo_ss(T_AXIS,ARG2)
- m2 = arg_lo_ss(E_AXIS,ARG2)
- n2 = arg_lo_ss(F_AXIS,ARG2)
i = res_lo_ss(X_AXIS)
j = res_lo_ss(Y_AXIS)
- n1 = arg_lo_ss(F_AXIS,ARG1)
- DO 40 n = res_lo_ss(F_AXIS),res_hi_ss(F_AXIS)
-
- m1 = arg_lo_ss(E_AXIS,ARG1)
- DO 30 m = res_lo_ss(E_AXIS),res_hi_ss(E_AXIS)
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO l = res_lo_ss(T_AXIS),res_hi_ss(T_AXIS)
- l1 = arg_lo_ss(T_AXIS,ARG1)
- DO 20 l = res_lo_ss(T_AXIS),res_hi_ss(T_AXIS)
+ k1 = arg_lo_ss(Z_AXIS,ARG1)
+ DO k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
- k1 = arg_lo_ss(Z_AXIS,ARG1)
- DO 10 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+c . i1, ih, j1, jh, ! line 2 of this call WAS...
+c . 1,nlon_src, 1,nlat_src, ! Or try
+ CALL apply_mapping ( arg_1(i1,j1,k1,l1),
+ . i1, ih, j1, jh,
+ . arg_2(i2,j2,k2,l2), arg_2(i2,j2,k2,l2+1),
+ . arg_2(i2,j2,k2,l2+2), result(i,j,k,l), nlon_src,
+ . nlat_src, nlon_dst, nlat_dst, num_nbrs,
+ . bad_flag(ARG1), bad_flag_result )
- CALL apply_mapping ( arg_1(i1,j1,k1,l1,m1,n1),
- . i1, ih, j1, jh,
- . arg_2(i2,j2,k2,l2,m2,n2),
- . arg_2(i2,j2,k2,l2+1,m2,n2),
- . arg_2(i2,j2,k2,l2+2,m2,n2),
- . result(i,j,k,l,m,n), nlon_src,
- . nlat_src, nlon_dst, nlat_dst,
- . num_nbrs, bad_flag(ARG1),
- . bad_flag_result )
+ k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ ENDDO
- k1 = k1 + arg_incr(Z_AXIS,ARG1)
- 10 CONTINUE
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ ENDDO
- l1 = l1 + arg_incr(T_AXIS,ARG1)
- 20 CONTINUE
-
- m1 = m1 + arg_incr(E_AXIS,ARG1)
- 30 CONTINUE
-
- n1 = n1 + arg_incr(F_AXIS,ARG1)
- 40 CONTINUE
! ^
! |
@@ -251,100 +231,4 @@
!**********************************************************************
RETURN
- END ! SUBROUTINE curv_to_rect_compute
-
-!#######################################################################
-
- subroutine apply_mapping (data_in, ilo, ihi, jlo, jhi,
- . wt, i_lon, j_lat, data_out,
- . nlon_src, nlat_src, nlon_dst, nlat_dst,
- . num_nbrs, bad_flag_in, bad_flag_out)
-
-! This is the last set of loops from horiz_interp_sphe, applying wt
-! to the data to compute the regridded result.
-
-! acm 7/2004 Add variable COUNT to set data to missing if there is nothing added
-! to the sum in a given output grid cell. This had been done in the original code
-! by seeing if the value is a "land" value, but it is not general enough for our
-! purposes.
-
-! acm 12/2004 Compute the sum of weights here; weights only used when there
-! is good data contributing to the destination point.
-
- IMPLICIT NONE
- integer ilo, ihi, jlo, jhi
- real data_in(ilo:ihi, jlo:jhi) ! input field
- real data_out(nlon_dst, nlat_dst) ! output
- real wt(nlon_dst, nlat_dst, num_nbrs)
-
- real i_lon(nlon_dst,nlat_dst,num_nbrs)
- real j_lat(nlon_dst,nlat_dst,num_nbrs)
-
- real bad_flag_in, bad_flag_out
-
- integer nlon_src, nlat_src, nlon_dst, nlat_dst,
- . num_nbrs
-
-!--- some local variables ----------------------------------------
- integer nlon_in, nlat_in, nlon_out, nlat_out, num_neighbors,
- . m, n, k, i, j
- real sum
- logical okij
-!-----------------------------------------------------------------
-
-! parameters
- real epsln, large
-cc parameter (epsln=1.e-10, large=1.e20)
- parameter (epsln=4.e-7, large=1.e20)
-
- nlon_in = nlon_src
- nlat_in = nlat_src
- nlon_out = nlon_dst
- nlat_out = nlat_dst
- num_neighbors = num_nbrs
-
- do m=1,nlon_out
- do n=1,nlat_out
-
- data_out(m,n) = 0.0
- sum=0.0
- do k=1, num_neighbors
- i = i_lon(m,n,k)
- j = j_lat(m,n,k)
-
- okij = .TRUE.
- IF (i .LT. ilo .OR. i .GT. ihi) THEN
- okij = .FALSE.
- ENDIF
- IF (j .LT. jlo .OR. j .GT. jhi) THEN
- okij = .FALSE.
- ENDIF
-
-
- if (i.GT.0 .and. j.GT.0 .AND. okij) THEN
- IF (data_in(i,j) .NE. bad_flag_in ) THEN
- data_out(m,n) = data_out(m,n)+
- . data_in(i,j)*wt(m,n,k)
- sum = sum + wt(m,n,k)
- endif
- else
- data_out(m,n) = bad_flag_out
- GO TO 33
- endif
- enddo
-
- IF (sum .GT. epsln) THEN
- data_out(m,n) = data_out(m,n)/sum
- ELSE
- data_out(m,n) = bad_flag_out
- ENDIF
- 33 continue
-
- enddo
- enddo
-
-
- return
- end ! subroutine horiz_interp_sphe
-
-
+ END ! SUBROUTINE curv_to_rect_fsu_compute
diff --git a/fer/efi/curv_to_rect_subs.F b/fer/efi/curv_to_rect_subs.F
new file mode 100755
index 0000000..ea45dc7
--- /dev/null
+++ b/fer/efi/curv_to_rect_subs.F
@@ -0,0 +1,94 @@
+
+ subroutine apply_mapping (data_in, ilo, ihi, jlo, jhi,
+ . wt, i_lon, j_lat, data_out,
+ . nlon_src, nlat_src, nlon_dst, nlat_dst,
+ . num_nbrs, bad_flag_in, bad_flag_out)
+
+! This is the last set of loops from horiz_interp_sphe, applying wt
+! to the data to compute the regridded result.
+
+! acm 7/2004 Add variable COUNT to set data to missing if there is nothing added
+! to the sum in a given output grid cell. This had been done in the original code
+! by seeing if the value is a "land" value, but it is not general enough for our
+! purposes.
+
+! acm 12/2004 Compute the sum of weights here; weights only used when there
+! is good data contributing to the destination point.
+
+ IMPLICIT NONE
+ integer ilo, ihi, jlo, jhi
+ real data_in(ilo:ihi, jlo:jhi) ! input field
+ real data_out(nlon_dst, nlat_dst) ! output
+ real wt(nlon_dst, nlat_dst, num_nbrs)
+
+ real i_lon(nlon_dst,nlat_dst,num_nbrs)
+ real j_lat(nlon_dst,nlat_dst,num_nbrs)
+
+ real bad_flag_in, bad_flag_out
+
+ integer nlon_src, nlat_src, nlon_dst, nlat_dst,
+ . num_nbrs
+
+!--- some local variables ----------------------------------------
+ integer nlon_in, nlat_in, nlon_out, nlat_out, num_neighbors,
+ . m, n, k, i, j
+ real sum
+ logical okij
+!-----------------------------------------------------------------
+
+! parameters
+ real epsln, large
+cc parameter (epsln=1.e-10, large=1.e20)
+ parameter (epsln=4.e-7, large=1.e20)
+
+ nlon_in = nlon_src
+ nlat_in = nlat_src
+ nlon_out = nlon_dst
+ nlat_out = nlat_dst
+ num_neighbors = num_nbrs
+
+ do m=1,nlon_out
+ do n=1,nlat_out
+
+ data_out(m,n) = 0.0
+ sum=0.0
+ do k=1, num_neighbors
+ i = i_lon(m,n,k)
+ j = j_lat(m,n,k)
+
+ okij = .TRUE.
+ IF (i .LT. ilo .OR. i .GT. ihi) THEN
+ okij = .FALSE.
+ ENDIF
+ IF (j .LT. jlo .OR. j .GT. jhi) THEN
+ okij = .FALSE.
+ ENDIF
+
+
+ if (i.GT.0 .and. j.GT.0 .AND. okij) THEN
+ IF (data_in(i,j) .NE. bad_flag_in ) THEN
+ data_out(m,n) = data_out(m,n)+
+ . data_in(i,j)*wt(m,n,k)
+ sum = sum + wt(m,n,k)
+ endif
+ else
+ data_out(m,n) = bad_flag_out
+ GO TO 33
+ endif
+ enddo
+
+ IF (sum .GT. epsln) THEN
+ data_out(m,n) = data_out(m,n)/sum
+ ELSE
+ data_out(m,n) = bad_flag_out
+ ENDIF
+ 33 continue
+
+ enddo
+ enddo
+
+
+ return
+ end ! subroutine horiz_interp_sphe
+
+
diff --git a/fer/efi/expndi_by_m_counts.F b/fer/efi/expndi_by_m_counts.F
index ddbc449..ddc9e69 100644
--- a/fer/efi/expndi_by_m_counts.F
+++ b/fer/efi/expndi_by_m_counts.F
@@ -291,7 +291,8 @@
i1 = 1
DO 200 mout=arg_lo_ss(E_AXIS,ARG2),arg_hi_ss(E_AXIS,ARG2)
DO 100 iout = 1, arg_2(i2,j2,k2,l2,mout,n1)
- result(iout,j,k,l,mout,n) = arg_1(i1,j1,k1,l1,m1,n1)
+ IF ( arg_1(i1,j1,k1,l1,m1,n1) .NE. bad_flag(1) )
+ . result(iout,j,k,l,mout,n) = arg_1(i1,j1,k1,l1,m1,n1)
i1 = i1 + 1
100 CONTINUE
diff --git a/fer/efi/expndi_by_z_counts.F b/fer/efi/expndi_by_z_counts.F
index 6c5b22d..13f4665 100644
--- a/fer/efi/expndi_by_z_counts.F
+++ b/fer/efi/expndi_by_z_counts.F
@@ -248,7 +248,8 @@
i1 = 1
DO 200 iout=arg_lo_ss(X_AXIS,ARG2),arg_hi_ss(X_AXIS,ARG2)
DO 100 kout = 1, arg_2(iout,j2,k2,l2)
- result(iout,j,kout,l) = arg_1(i1,j1,k1,l1)
+ IF ( arg_1(i1,j1,k1,l1) .NE. bad_flag(1) )
+ . result(iout,j,kout,l) = arg_1(i1,j1,k1,l1)
i1 = i1 + 1
100 CONTINUE
200 CONTINUE
diff --git a/fer/efi/floatstr.F b/fer/efi/floatstr.F
index e6e2704..4cff4ef 100644
--- a/fer/efi/floatstr.F
+++ b/fer/efi/floatstr.F
@@ -3,6 +3,8 @@
*
* Ansley Manke 11/10
* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
+* V695 *acm* 9/15 Allow integer formats. Truncate Floating point data, write as integer
+*
* Returns float converted to strings according to format given.
*
* In this subroutine we provide information about
@@ -61,7 +63,7 @@
CALL ef_set_arg_name(id, arg, 'FMT')
CALL ef_set_arg_unit(id, arg, ' ')
CALL ef_set_arg_desc(id, arg,
- . 'Fortran format, in parentheses, e.g. "(F5.1)"')
+ . 'Fortran format, in parentheses, e.g. "(F5.1)", ("I4"), or ("I3.3")')
CALL ef_set_axis_influence_6d(id, arg,
. NO, NO, NO, NO, NO, NO)
@@ -103,7 +105,7 @@
* After initialization, the 'res_' arrays contain indexing information
* for the result axes. The 'arg_' arrays will contain the indexing
-* information for each variable''s axes.
+* information for each variable's axes.
INTEGER res_lo_ss(6),
. res_hi_ss(6),
@@ -120,10 +122,20 @@
* V
INTEGER i, j, k, l, m, n
- INTEGER i1, j1, k1, l1, m1, n1
+ INTEGER i1, j1, k1, l1, m1, n1, p, p2
REAL fval
- INTEGER TM_LENSTR1, slen
+ INTEGER TM_LENSTR1, STR_UPCASE, slen, ival, isok, status
CHARACTER*32 fstring, fformat
+ CHARACTER*128 err_msg
+ CHARACTER*1 nullstr
+
+
+ LOGICAL do_integer, zero_fill
+
+ nullstr = ''
+ isok = 3
+ zero_fill = .FALSE.
+ do_integer = .FALSE.
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
@@ -137,7 +149,33 @@
m = arg_lo_ss (E_AXIS, ARG2)
n = arg_lo_ss (F_AXIS, ARG2)
CALL ef_get_string_arg_element_6d(id, ARG2, arg_2,
- . i, j, k, l, m, n, slen, fformat)
+ . i, j, k, l, m, n, slen, fstring)
+
+ i = STR_UPCASE(fformat, fstring)
+
+ do_integer = .FALSE.
+ slen = TM_LENSTR1( fformat )
+ DO 30, p =1, slen-1
+ IF (fformat(p:p+1) .EQ. 'F0') THEN
+ zero_fill = .TRUE.
+ fformat = fformat(1:p)//fformat(p+2:slen)
+ GOTO 40
+ ENDIF
+ IF (fformat(p:p) .EQ. 'F') GOTO 40
+
+ IF (fformat(p:p+1) .EQ. 'I0') THEN
+ zero_fill = .TRUE.
+ do_integer = .TRUE.
+ fformat = fformat(1:p)//fformat(p+2:slen)
+ GOTO 40
+ ENDIF
+ IF (fformat(p:p) .EQ. 'I') THEN
+ do_integer = .TRUE.
+ GOTO 40
+ ENDIF
+ 30 CONTINUE
+ 40 CONTINUE
+
n1 = arg_lo_ss(F_AXIS,ARG1)
DO 600 n=res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -158,16 +196,31 @@
DO 100 i=res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
fval = arg_1(i1,j1,k1,l1,m1,n1)
+C Write the string using the format, and put it in the result.
+C If they have sent in an integer format, truncate the data first.
+
IF ( fval .NE. bad_flag(ARG1) ) THEN
+ IF (do_integer) THEN
+ ival = INT(fval)
+ WRITE (fstring, fformat) ival
+ ELSE
+ WRITE (fstring, fformat) fval
+ ENDIF
-C Write the string using the format, and put it in the result.
- WRITE (fstring, fformat) fval
slen = TM_LENSTR1(fstring)
+
+C adjust the field width if requested by the user (from repl_exprns.F)
+ IF (zero_fill) THEN
+ DO p = 1, slen
+ IF (fstring(p:p) .EQ. ' ') fstring(p:p) = '0'
+ END DO
+ ENDIF
+
CALL EF_PUT_STRING(fstring, slen, result(1,i,j,k,l,m,n))
ELSE
- fstring = ''
+ fstring = nullstr
slen = 0
CALL EF_PUT_STRING (fstring, slen, result(1,i,j,k,l,m,n))
ENDIF
@@ -196,4 +249,8 @@ C Write the string using the format, and put it in the result.
* **********************************************************************
RETURN
+ 5000 err_msg = 'Could not translate W or ZW width value '// fformat
+ CALL ef_bail_out (id, err_msg)
+ RETURN
+
END
diff --git a/fer/efi/ft_to_orthogonal.F b/fer/efi/ft_to_orthogonal.F
new file mode 100644
index 0000000..849baa8
--- /dev/null
+++ b/fer/efi/ft_to_orthogonal.F
@@ -0,0 +1,259 @@
+*
+* ft_to_orthogonal.F
+*
+* Ansley Manke 2/2015
+*
+*
+* Given a variable from a Forecast-Time dataset, and
+* the 2D time variable and a time axis representing all
+* the times in the set, return the variable in orthogonal
+* form: properly put onto the new time axis.
+*
+* In this subroutine we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ft_to_orthogonal )
+* CUSTOM - user defined axis
+* IMPLIED_BY_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+
+
+ SUBROUTINE ft_to_orthogonal_init(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id, arg
+
+* **********************************************************************
+
+
+ CALL ef_set_desc(id,
+ . 'Convert data with 2D Time coordinate to orthogonal FT grid' )
+ CALL ef_set_num_args(id, 3)
+ CALL ef_set_has_vari_args(id, NO)
+ CALL ef_set_axis_inheritance_6d(id,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+ CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+ CALL ef_set_num_work_arrays(id, 1)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'VAR')
+ CALL ef_set_arg_unit(id, arg, ' ')
+ CALL ef_set_arg_desc(id, arg, 'Variable with 2D Time coordinate')
+ CALL ef_set_axis_influence_6d(id, arg,
+ . YES, YES, YES, NO, YES, YES)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'TIME2D')
+ CALL ef_set_arg_unit(id, arg, ' ')
+ CALL ef_set_arg_desc(id, arg, 'The 2-Dimensional Time coordinate variable')
+ CALL ef_set_axis_influence_6d(id, arg,
+ . NO, NO, NO, NO, NO, YES)
+
+ arg = 3
+ CALL ef_set_arg_name(id, arg, 'ALLTIME')
+ CALL ef_set_arg_unit(id, arg, ' ')
+ CALL ef_set_arg_desc(id, arg, 'A variable on the output time axis')
+ CALL ef_set_axis_influence_6d(id, arg,
+ . NO, NO, NO, YES, NO, NO)
+
+ RETURN
+ END
+
+***********************************************************************
+
+* Request an amount of storage to be supplied by Ferret and passed
+* as additional arguments.
+
+ SUBROUTINE ft_to_orthogonal_work_size(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id
+
+*
+* Set the work array X/Y/Z/T/E/F dimensions
+* ef_set_work_array_dims_6d(id, array #,
+* xlo, ylo, zlo, tlo, elo, flo,
+* xhi, yhi, zhi, thi, ehi, fhi)
+
+ INTEGER ntout, nt2
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+* Coordinate data from argument 3
+
+ ntout = 1 + arg_hi_ss(T_AXIS,ARG3) - arg_lo_ss(T_AXIS,ARG3)
+
+* output t coordinates
+ CALL ef_set_work_array_dims_6d(id, 1,
+ . 1, 1, 1, 1, 1, 1,
+ . ntout, 1, 1, 1, 1, 1)
+
+ RETURN
+ END
+
+* **********************************************************************
+
+* In this subroutine we compute the result
+*
+ SUBROUTINE ft_to_orthogonal_compute(id, arg_1, arg_2, arg_3,
+ . result, taxout)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER id
+
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+ . mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+ REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+ . mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+ REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz,
+ . mem3lot:mem3hit, mem3loe:mem3hie, mem3lof:mem3hif)
+
+ REAL result( memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit,
+ . memresloe:memreshie, memreslof:memreshif)
+
+ REAL taxout(wrk1lox:wrk1hix)
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable''s axes.
+
+ INTEGER res_lo_ss(6),
+ . res_hi_ss(6),
+ . res_incr (6)
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+* **********************************************************************
+
+ INTEGER i, j, k, l, m, n
+ INTEGER i1, j1, k1, l1, m1, n1
+ INTEGER i2, j2, k2, l2, m2, n2
+ INTEGER i3, j3, k3, l3, m3, n3
+ INTEGER l_off, del_l, del_n
+ CHARACTER*255 err_msg
+ REAL time2d_ft, timeout
+
+ CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+ CALL ef_get_coordinates(id, ARG3, T_AXIS, arg_lo_ss(T_AXIS, ARG3),
+ . arg_hi_ss(T_AXIS, ARG3), taxout)
+
+1000 FORMAT ('2D time array mismatch with new time axis: time2d',
+ . f8.2, ' time axis ', i3, f8.2)
+
+* Fill the result with missing-flag
+
+ DO 50 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+ DO 50 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ DO 50 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ DO 50 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+ DO 50 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+ DO 50 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ result(i,j,k,l,m,n) = bad_flag_result
+ 50 CONTINUE
+
+ i2 = arg_lo_ss(X_AXIS,ARG2)
+ j2 = arg_lo_ss(Y_AXIS,ARG2)
+ k2 = arg_lo_ss(Z_AXIS,ARG2)
+ l2 = arg_lo_ss(T_AXIS,ARG2)
+ m2 = arg_lo_ss(E_AXIS,ARG2)
+ n2 = arg_lo_ss(F_AXIS,ARG2)
+
+ i3 = arg_lo_ss(X_AXIS,ARG3)
+ j3 = arg_lo_ss(Y_AXIS,ARG3)
+ k3 = arg_lo_ss(Z_AXIS,ARG3)
+ l3 = arg_lo_ss(T_AXIS,ARG3)
+ m3 = arg_lo_ss(E_AXIS,ARG3)
+ n3 = arg_lo_ss(F_AXIS,ARG3)
+
+ l_off = 0
+ del_l = arg_2(i2,j2,k2,l2+1,m2,n2) - arg_2(i2,j2,k2,l2,m2,n2)
+ del_n = (arg_2(i2,j2,k2,l2,m2,n2+1) - arg_2(i2,j2,k2,l2,m2,n2))/del_l
+
+ n1 = arg_lo_ss(F_AXIS,ARG1)
+ DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+ DO 400 l2 = arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2)
+
+ l = l2 + l_off
+ time2d_ft = arg_2(i2,j2,k2,l2,m2,n2)
+
+* These should match. (commented out now; something wrong with the
+* declaration of work arrays with this function; Ferret crashes on
+* trying to free the memory...)
+
+ timeout = taxout(l)
+ IF (time2d_ft .NE. timeout) THEN
+ write (err_msg, 1000) time2d_ft, l, timeout
+ GOTO 999
+ ENDIF
+
+ m1 = arg_lo_ss(E_AXIS,ARG1)
+ DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+ k1 = arg_lo_ss(Z_AXIS,ARG1)
+ DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+ result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l2,m1,n1)
+
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100 CONTINUE
+
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200 CONTINUE
+
+ k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ 300 CONTINUE
+
+ m1 = m1 + arg_incr(E_AXIS,ARG1)
+ 500 CONTINUE
+
+ 400 CONTINUE
+
+ n2 = n2 + arg_incr(F_AXIS,ARG2)
+ n1 = n1 + arg_incr(F_AXIS,ARG1)
+ l_off = l_off + del_n
+ 600 CONTINUE
+
+ RETURN
+
+ 999 CALL ef_bail_out (id, err_msg)
+
+* **********************************************************************
+
+ END
diff --git a/fer/efi/labwid.F b/fer/efi/labwid.F
index 4a17129..6a7af0b 100644
--- a/fer/efi/labwid.F
+++ b/fer/efi/labwid.F
@@ -135,9 +135,9 @@
. arg_hi_ss(6,EF_MAX_ARGS),
. arg_incr (6,EF_MAX_ARGS)
- INTEGER arg, i, j, k, l, m, n
+ INTEGER arg, i, j, k, l, m, n, status
REAL LABEL_WIDTH, height
- CHARACTER*1024 strng
+ CHARACTER strng*1024, errtxt*250
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
@@ -154,23 +154,31 @@
m = res_lo_ss(E_AXIS)
n = res_lo_ss(F_AXIS)
- result(i,j,k,l,m,n) = LABEL_WIDTH(height, strng)
+ result(i,j,k,l,m,n) = LABEL_WIDTH(height, strng, errtxt, status)
+
+ IF (status .NE. 1) CALL EF_BAIL_OUT(id, errtxt)
RETURN
END
- REAL FUNCTION LABEL_WIDTH(height,strng)
+ REAL FUNCTION LABEL_WIDTH(height,strng, errtxt, status)
IMPLICIT NONE
- CHARACTER*(*) strng
- REAL height
+ INTEGER status
+ REAL height
+ CHARACTER*(*) strng, errtxt
+
INCLUDE 'xrisc.cmn'
+ include 'pyfonts.cmn'
+ INCLUDE 'fgrdel.cmn'
+
- INTEGER n, lnbeg(500), lnend(500), numlines,
- . npen, nfont, npnew, nfnew, nchr
- REAL*4 SYMWID, ht, ss, xmn
+ INTEGER n, lnbeg(500), lnend(500), numlines,
+ . npen, nfont, npnew, nfnew, nchr, mywindowid
+ REAL*4 SYMWID, ht, ss, xmn
+ REAL*8 mywindow
CHARACTER*3 fontprefix, penprefix, newfont, newpen
CALL TM_BREAK_LINES (strng, lnbeg, lnend, numlines)
@@ -182,11 +190,34 @@
ss = 0.
ht = height
+ status = 1
+
+c PyFerret fonts need an active window to return font size info
+ IF (pyfont) THEN
+
+ mywindowid = ACTIVEWINDOW
+C Some sanity checks on the window ID and window
+ IF ( (mywindowid .LT. 1) .OR.
+ . (mywindowid .GT. MAXWINDOWOBJS) ) THEN
+ errtxt = 'LABWID: PyFerret font queries need an active plot window'
+ status = 0
+ RETURN
+ ENDIF
+ mywindow = WINDOWOBJS(mywindowid)
+ IF ( mywindow .EQ. NULLOBJ ) THEN
+ errtxt = 'LABWID: PyFerret font queries need an active plot window'
+ status = 0
+ RETURN
+ ENDIF
+ ENDIF
+
DO 40 n = 1, numlines
CALL getlabfonts (strng, lnbeg, lnend, n, fontprefix,
. npnew, nfnew, newfont, newpen, nchr)
risc_buff = strng(lnbeg(n):lnend(n))
+
+
xmn = SYMWID(ht,nchr+npen+nfont,
. penprefix(1:npen)//fontprefix(1:nfont)//
. risc_buff)
diff --git a/fer/efi/lon_lat_time_string.F b/fer/efi/lon_lat_time_string.F
new file mode 100644
index 0000000..65d8ef5
--- /dev/null
+++ b/fer/efi/lon_lat_time_string.F
@@ -0,0 +1,298 @@
+*
+* lon_lat_time_string.F
+*
+
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without anx fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and anx derivative works thereof, and
+* its supporting documentation for anx purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in anx publications that result from
+* the use of this software or in anx product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in anx advertising or publicity to endorse or promote anx products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with anx support, consulting,
+* training or assistance of anx kind with regard to the use, operation
+* and performance of this software nor to provide the user with anx
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND Anx EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR Anx SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR Anx DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+* Ansley Manke
+* Jan 2015
+* 6-D function
+*
+* In this subroutine we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+* CUSTO - user defined axis
+* IMPLIED_BY_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+*
+*
+* For each argument we provide the following information:
+*
+* name Text name for an argument
+*
+* unit Text units for an argument
+*
+* desc Text description of an argument
+*
+* axis_influence Are this argument's axes the same as the result grid?
+* ( YES, NO )
+*
+* axis_extend How much does Ferret need to extend arg limits relative to result
+*
+
+
+ SUBROUTINE lon_lat_time_string_init(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id, arg
+
+ CALL ef_version_test(ef_version)
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ CALL ef_set_desc(id,
+ . 'Generate strings from longitude,latitude,time')
+ CALL ef_set_num_args(id, 5)
+
+ CALL ef_set_axis_inheritance_6d(id,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+ CALL ef_set_result_type(id, STRING_RETURN)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'longitude')
+ CALL ef_set_arg_desc(id, arg, 'Station longitude')
+ CALL ef_set_axis_influence_6d(id, arg,
+ . YES, YES, YES, YES, YES, YES)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'latitude')
+ CALL ef_set_arg_desc(id, arg, 'Station latitude')
+ CALL ef_set_axis_influence_6d(id, arg,
+ . YES, YES, YES, YES, YES, YES)
+
+ arg = 3
+ CALL ef_set_arg_name(id, arg, 'time')
+ CALL ef_set_arg_desc(id, arg, 'numeric times')
+ CALL ef_set_axis_influence_6d(id, arg,
+ . YES, YES, YES, YES, YES, YES)
+
+ arg = 4
+ CALL ef_set_arg_name(id, arg, 'time_axis')
+ CALL ef_set_arg_desc(id, arg,
+ . 'Varible with a time axis to use to convert time to time strings')
+ CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+ arg = 5
+ CALL ef_set_arg_name(id, arg, 'string to prepend')
+ CALL ef_set_arg_type (id, arg, STRING_ARG)
+ CALL ef_set_arg_desc(id, arg, 'A label to start the strings')
+ CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+*
+* In this subroutine we compute the result
+*
+ SUBROUTINE lon_lat_time_string_compute(id, arg_1, arg_2, arg_3, arg_4,
+ . arg_5, result)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER strdf
+#ifdef double_p
+ PARAMETER (strdf = 1)
+#else
+ PARAMETER (strdf = 2)
+#endif
+
+ INTEGER id
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+ . mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+ REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+ . mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+ REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz,
+ . mem3lot:mem3hit, mem3loe:mem3hie, mem3lof:mem3hif)
+ REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy, mem4loz:mem4hiz,
+ . mem4lot:mem4hit, mem4loe:mem4hie, mem4lof:mem4hif)
+ REAL arg_5(strdf,mem5lox:mem5hix, mem5loy:mem5hiy, mem5loz:mem5hiz,
+ . mem5lot:mem5hit, mem5loe:mem5hie, mem5lof:mem5hif)
+ REAL result(strdf,memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit,
+ . memresloe:memreshie, memreslof:memreshif)
+
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable's axes.
+
+ INTEGER res_lo_ss(6),
+ . res_hi_ss(6),
+ . res_incr (6)
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+ INTEGER TM_LENSTR
+ INTEGER i, j, k, l, m, n
+ INTEGER i1, j1, k1, l1, m1, n1
+ INTEGER slen, len1, len2, outlen, llen
+
+ CHARACTER*2 ns
+ CHARACTER*20 TM_FMT, datestring, lonstr, latstr, ilab
+ CHARACTER*256 lab, outstring
+ REAL ddate, alon, alat
+
+ 1100 FORMAT(i1)
+ 1200 FORMAT(i2.2)
+ 1300 FORMAT(i3.3)
+
+ CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+ CALL ef_get_arg_string(id, ARG5, lab)
+ slen = TM_LENSTR(lab)
+
+ n1 = arg_lo_ss(F_AXIS,ARG1)
+ DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+ m1 = arg_lo_ss(E_AXIS,ARG1)
+ DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+ k1 = arg_lo_ss(Z_AXIS,ARG1)
+ DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 100 i=res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+ IF ( arg_1(i1,j1,k1,l1,m1,n1) .EQ. bad_flag(ARG1) .OR.
+ . arg_2(i1,j1,k1,l1,m1,n1) .EQ. bad_flag(ARG2) .OR.
+ . arg_3(i1,j1,k1,l1,m1,n1) .EQ. bad_flag(ARG3) ) THEN
+
+C Get the string value of dates and put them in the result.
+
+ outstring = '***'
+ CALL EF_PUT_STRING (outstring, 3, result(1,i,j,k,l,m,n))
+
+ ELSE
+
+ alon = arg_1(i1,j1,k1,l1,m1,n1)
+ IF (alon .LT. 0) alon = 360 + alon
+ lonstr = TM_FMT(alon, 4, 5, len1)
+
+ ns = 'N_'
+ alat = arg_2(i1,j1,k1,l1,m1,n1)
+ IF (alat .LT. 0) THEN
+ alat = ABS(alat)
+ ns = 'S_'
+ ENDIF
+ latstr = TM_FMT(alat, 4, 5, len2)
+
+ ddate = arg_3(i1,j1,k1,l1,m1,n1)
+ CALL EF_GET_AXIS_DATES (id, ARG4, ddate, T_AXIS, 1, datestring)
+ outstring = lab(:slen)//'_'//lonstr(:len1)//
+ . 'E_'//latstr(:len2) //ns//datestring(1:11)
+
+cc Just use a sequence number...
+cc
+cc IF (arg_hi_ss(X_AXIS,ARG1) .LT. 10) THEN
+cc WRITE (ilab, 1100) i1
+cc llen = 1
+cc ELSEIF (arg_hi_ss(X_AXIS,ARG1) .LT. 100) THEN
+cc WRITE (ilab, 1200) i1
+cc llen = 2
+cc ELSEIF (arg_hi_ss(X_AXIS,ARG1) .LT. 1000) THEN
+cc WRITE (ilab, 1300) i1
+cc llen = 3
+cc ENDIF
+cc outstring = lab(:slen)//'_'//ilab(:llen)
+
+ outlen = TM_LENSTR(outstring)
+ CALL EF_PUT_STRING (outstring, outlen, result(1,i,j,k,l,m,n))
+
+ ENDIF
+
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100 CONTINUE
+
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200 CONTINUE
+
+ k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ 300 CONTINUE
+
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400 CONTINUE
+ m1 = m1 + arg_incr(E_AXIS,ARG1)
+ 500 CONTINUE
+ n1 = n1 + arg_incr(F_AXIS,ARG1)
+ 600 CONTINUE
+
+
+ RETURN
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
diff --git a/fer/efi/piecewise3.F b/fer/efi/piecewise3.F
new file mode 100644
index 0000000..ef2b770
--- /dev/null
+++ b/fer/efi/piecewise3.F
@@ -0,0 +1,479 @@
+* piecewise3.F
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+
+* Ansley Manke June 2013
+* implements stl2, Piecewise linear approximations of fewest line segments
+* described in http://www.computer.org/csdl/proceedings/afips/1972/5079/00/50790187.pdf
+* and a somewhat later version of the code, found at
+* http://www.netlib.org/toms/510
+*
+*
+* In this subroutine we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+* CUSTOM - user defined axis
+* IMPLIED_BY_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+*
+*
+* For each argument we provide the following information:
+*
+* name Text name for an argument
+*
+* unit Text units for an argument
+*
+* desc Text description of an argument
+*
+* axis_influence Are this argument's axes the same as the result grid?
+* ( YES, NO )
+*
+* axis_extend How much does Ferret need to extend arg limits relative to result
+*
+
+
+ SUBROUTINE piecewise3_init(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id, arg
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ CALL ef_set_desc(id,
+ . 'Return indices to sample from piecewise linear interpolation of 3 vars' )
+
+ CALL ef_set_num_args(id, 7)
+ CALL ef_set_has_vari_args(id, NO)
+ CALL ef_set_axis_inheritance(id, ABSTRACT, NORMAL,
+ . NORMAL, NORMAL)
+ CALL ef_set_piecemeal_ok(id, NO, NO, NO, NO)
+ CALL ef_set_num_work_arrays(id, 7)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'V1')
+ CALL ef_set_arg_desc(id, arg, '1st variable to sample')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'V2')
+ CALL ef_set_arg_desc(id, arg, '2nd variable to sample')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 3
+ CALL ef_set_arg_name(id, arg, 'V3')
+ CALL ef_set_arg_desc(id, arg, '3rd variable to sample')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 4
+ CALL ef_set_arg_name(id, arg, 'Control parameter')
+ CALL ef_set_arg_desc(id, arg,
+ . 'Control parameter (e.g. 6 for ntol=rest=cont=1)')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 5
+ CALL ef_set_arg_name(id, arg, 'Tol1')
+ CALL ef_set_arg_desc(id, arg, 'Tolerance for V1')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 6
+ CALL ef_set_arg_name(id, arg, 'Tol2')
+ CALL ef_set_arg_desc(id, arg, 'Tolerance for V2')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 7
+ CALL ef_set_arg_name(id, arg, 'Tol3')
+ CALL ef_set_arg_desc(id, arg, 'Tolerance for V3')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+*
+* In this subroutine we provide information about the lo and hi
+* limits associated with each abstract or custom axis. The user
+* configurable information consists of the following:
+*
+* lo_ss lo subscript for an axis
+*
+* hi_ss hi subscript for an axis
+*
+
+ SUBROUTINE piecewise3_result_limits(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER my_hi_i
+ INTEGER arg_lo_ss(4,EF_MAX_ARGS),
+ . arg_hi_ss(4,EF_MAX_ARGS),
+ . arg_incr (4,EF_MAX_ARGS)
+
+*
+* Use utility functions to get context information about the arguments.
+*
+
+ CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+ my_hi_i = arg_hi_ss(X_AXIS,1) - arg_lo_ss(X_AXIS,1) + 1
+
+ CALL ef_set_axis_limits(id, X_AXIS, 1, my_hi_i)
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+*
+* In this subroutine we request an amount of storage to be supplied
+* by Ferret and passed as an additional argument.
+*
+ SUBROUTINE piecewise3_work_size(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+*
+* Set the work arrays, X/Y/Z/T/E/F dimensions
+*
+* ef_set_work_array_dims(id, array #,
+* xlo, ylo, zlo, tlo,
+* xhi, yhi, zhi, thi)
+*
+
+ INTEGER arg_lo_ss(4,EF_MAX_ARGS),
+ . arg_hi_ss(4,EF_MAX_ARGS),
+ . arg_incr (4,EF_MAX_ARGS)
+ INTEGER npts, iwork
+
+ CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+ npts = 1 + arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1)
+ npts = 2*npts
+
+* input x-axis coordinates
+ iwork = 1
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . npts+10, 1, 1, 1)
+
+* internal computation, u1 for y1
+ iwork = 2
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . npts+10, 1, 1, 1)
+
+* internal computation, u2 for y2
+ iwork = 3
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . npts+10, 1, 1, 1)
+
+* internal computation, u3 for y3
+ iwork = 4
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . npts+10, 1, 1, 1)
+
+* internal computation, v
+ iwork = 5
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . 2*npts+10, 1, 1, 1)
+
+* internal computation, w
+ iwork = 6
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . 2*npts+10, 1, 1, 1)
+
+* data w/o gaps
+ iwork = 7
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . npts+10, 1, 1, 1)
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+* In this subroutine we compute the result
+*
+ SUBROUTINE piecewise3_compute(id, arg_1, arg_2, arg_3, arg_4,
+ . arg_5, arg_6, arg_7, result, xpts, u1, u2, u3, v, w, yf)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER id
+
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+ . mem1lot:mem1hit)
+ REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+ . mem2lot:mem2hit)
+ REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz,
+ . mem3lot:mem3hit)
+ REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy, mem4loz:mem4hiz,
+ . mem4lot:mem4hit)
+ REAL arg_5(mem5lox:mem5hix, mem5loy:mem5hiy, mem5loz:mem5hiz,
+ . mem5lot:mem5hit)
+ REAL arg_6(mem6lox:mem6hix, mem6loy:mem6hiy, mem6loz:mem6hiz,
+ . mem6lot:mem6hit)
+ REAL arg_7(mem7lox:mem7hix, mem7loy:mem7hiy, mem7loz:mem7hiz,
+ . mem7lot:mem7hit)
+
+ REAL result(memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit)
+
+* Ignore the Y/Z/T/E/F dimensions in the work array since
+* they are not used and Fortran is column major
+
+ REAL xpts(wrk1lox:wrk1hix)
+
+ REAL u1(wrk2lox:wrk2hix)
+ REAL u2(wrk3lox:wrk3hix)
+ REAL u3(wrk4lox:wrk4hix)
+ REAL v(wrk5lox:wrk5hix)
+ REAL w(wrk6lox:wrk6hix)
+ REAL yf(wrk7lox:wrk7hix)
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable's axes.
+
+ INTEGER res_lo_ss(4),
+ . res_hi_ss(4),
+ . res_incr (4)
+ INTEGER arg_lo_ss(4,EF_MAX_ARGS),
+ . arg_hi_ss(4,EF_MAX_ARGS),
+ . arg_incr (4,EF_MAX_ARGS)
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER i, j, k, l
+ INTEGER nx, nout1, nout2, nout3, nmerge1, nmerge2, ip, icount
+ REAL val, tol(3), bad_y
+ CHARACTER*100 errtxt
+
+ CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* Initialize
+ nx = 0
+ nout1 = 0
+ nout2 = 0
+ nout3 = 0
+ nmerge1 = 0
+ nmerge2 = 0
+
+* Control parameter IP
+
+ CALL ef_get_one_val(id, ARG4, val)
+ IP = INT(val)
+
+* Tolerances
+
+ CALL ef_get_one_val(id, ARG5, tol(1))
+
+ CALL ef_get_one_val(id, ARG6, tol(2))
+
+ CALL ef_get_one_val(id, ARG7, tol(3))
+
+* Set x coordinate - abstract axis.
+
+ nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
+ DO 50 i = 1, nx
+ xpts(i) = i
+ 50 CONTINUE
+
+ k = res_lo_ss(Z_AXIS) ! index for unused dimensions
+
+* Find piecewise fit for each array then merge the indices
+* Set the work arrays to 0's so we arent using spurious data
+* If the function returns too many points, just return all indices
+
+
+* STL2 modified to truncate result to next lowest integer
+
+ bad_y = bad_flag(ARG1)
+ CALL STL2(xpts, arg_1, tol(1), nx, bad_y, bad_flag_result,
+ . u1, v, w, nout1, IP)
+ IF (nout1 .GT. res_hi_ss(X_AXIS)) THEN
+ nout1 = nx
+ DO 100 i = 1, nx
+ u1(i) = FLOAT(i)
+ 100 CONTINUE
+ ENDIF
+
+ DO 110 i = nout1+1, wrk2hix
+ u1(i) = 0.
+ 110 CONTINUE
+
+ bad_y = bad_flag(ARG2)
+ CALL STL2(xpts, arg_2, tol(2), nx, bad_y, bad_flag_result,
+ . u2, v, w, nout2, IP)
+ IF (nout2 .GT. res_hi_ss(X_AXIS)) THEN
+ nout2 = nx
+ DO 200 i = 1, nx
+ u2(i) = FLOAT(i)
+ 200 CONTINUE
+ ENDIF
+
+ DO 210 i = nout2+1, wrk3hix
+ u2(i) = 0.
+ 210 CONTINUE
+
+
+* Skip over gaps in the data array, keeping good data and indices where
+* good data lies. Decimate this instead.
+
+ bad_y = bad_flag(ARG3)
+
+ j = arg_lo_ss(Y_AXIS, ARG3)
+ k = arg_lo_ss(Z_AXIS, ARG3)
+ l = arg_lo_ss(T_AXIS, ARG3)
+
+ icount = 0
+ DO 220 i = 1, nx
+ IF (arg_3(i,j,k,l) .NE. bad_y) THEN
+ icount = icount + 1
+ xpts(icount) = xpts(i)
+ yf(icount) = arg_3(i,j,k,l)
+ ENDIF
+ 220 CONTINUE
+
+ CALL STL2(xpts, yf, tol(3), icount, bad_y, bad_flag_result,
+ . u3, v, w, nout3, IP)
+ IF (nout3 .GT. res_hi_ss(X_AXIS)) THEN
+ nout3 = nx
+ DO 300 i = 1, nx
+ u3(i) = FLOAT(i)
+ 300 CONTINUE
+ ENDIF
+
+ DO 310 i = nout3+1, wrk4hix
+ u3(i) = 0.
+ 310 CONTINUE
+
+* Truncate result(j=1) to next lowest integer - its going to be
+* the set of coordinate values to sample at.
+
+ DO 400 i = 1, wrk6hix
+ w(i) = 0.
+ 400 CONTINUE
+
+ CALL merge (u1,nout1,u2,nout2,w,nmerge1,wrk6hix)
+ IF (nmerge1 .GT. res_hi_ss(X_AXIS)) THEN
+ write (errtxt,*) 'nmerge1 too large', nmerge1
+ GOTO 999
+ ENDIF
+
+ DO 500 i = 1, wrk5hix
+ v(i) = 0.
+ 500 CONTINUE
+ DO 510 i = nmerge1+1, wrk6hix
+ w(i) = 0.
+ 510 CONTINUE
+
+ CALL merge (w,nmerge1,u3,nout3,v,nmerge2,wrk5hix)
+ IF ((nmerge2 .EQ. res_hi_ss(X_AXIS)) .OR.
+ . (nmerge2 .EQ. res_hi_ss(X_AXIS)+1) ) THEN
+ nmerge2 = res_hi_ss(X_AXIS) ! Returning all the data
+ ELSE IF (nmerge2 .GT. res_hi_ss(X_AXIS)) THEN
+ GOTO 999
+ ENDIF
+
+ DO 600 i = 1, nmerge2
+ result(i,k,k,k) = v(i)
+ 600 CONTINUE
+
+ DO 700 i = nmerge2+1, res_hi_ss(X_AXIS)
+ result(i,k,k,k) = bad_flag_result
+ 700 CONTINUE
+
+ RETURN
+ 999 CALL EF_BAIL_OUT(id, errtxt)
+ RETURN
+
+ END
diff --git a/fer/efi/piecewise_subs.F b/fer/efi/piecewise_subs.F
new file mode 100644
index 0000000..a78a9dd
--- /dev/null
+++ b/fer/efi/piecewise_subs.F
@@ -0,0 +1,511 @@
+
+ SUBROUTINE STL2(X, Y, E, M, bad_y, bad_out, U, V, W, K, IP)
+
+C PIECEWISE LINEAR APPROXIMATIONS OF FEWEST
+C LINE SEGMENTS WITHIN GIVEN TOLERANCES.
+
+C X,Y,E AND M CONTAIN INPUT DATA.
+C U,V,K AND POSSIBLY W CONTAIN OUTPUT.
+
+C IP IS A PARAMETER DETERMINING THE OPERATION
+C OF THE PROGRAM.
+
+C X AND Y ARE INPUT DATA ARRAYS OF M ELEMENTS
+C X(I),Y(I) CONTAINS THE ITH DATA POINT.
+
+C E MAY BE A SINGLE TOLERANCE OR A TABLE OF
+C TOLERANCES DEPENDING ON THE VALUE OF IP.
+C IF E IS AN ARRAY, THEN E(I) IS THE TOLERANCE
+C ASSOCIATED WITH X(I),Y(I) AND E MUST CONTAIN
+C M NONNEGATIVE ELEMENTS.
+
+C U AND V ARE OUTPUT ARRAYS OF K+1 ELEMENTS.
+C U IS A PARTITION OF THE INTERVAL (X(1),X(N))
+C WITH U(1)=X(1) AND U(K+1)=X(N).
+C V(I) IS AN ORDINATE TO BE ASSOCIATED WITH
+C U(I) IN THE APPROXIMATION. (IF A CONTINUOUS
+C APPROXIMATION IS REQUESTED, THEN V(I) IS
+C 'THE' ORDINATE TO BE ASSOCIATED WITH U(I).)
+
+C IF A CONTINUOUS APPROXIMATION IS REQUESTED,
+C THEN W IS NOT USED. IN THIS CASE THE ITH
+C APPROXIMATING SEGMENT IS THE STRAIGHT LINE
+C FROM U(I),V(I) TO U(I+1),V(I+1).
+
+C IF A CONTINUOUS APPROXIMATION IS NOT
+C REQUESTED, THEN W IS A K-ELEMENT OUTPUT
+C ARRAY. IN THIS CASE THE ITH APPROXIMATING
+C SEGMENT IS THE STRAIGHT LINE FROM
+C U(I),W(I) TO U(I+1),V(I+1), AND V(1) IS
+C SET EQUAL TO W(1).
+
+C K IS THE NUMBER OF SEGMENTS IN THE PIECE-
+C WISE LINEAR APPROXIMATION GENERATED. IN
+C CASE OF AN ERROR RETURN, K WILL BE SET TO
+C ZERO.
+
+C THE CONTROL PARAMETER IP IS THE PRODUCT
+C OF THREE INDICATORS I1,I2 AND I3.
+C I1 INDICATES WHETHER OR NOT E IS AN
+C ARRAY OF TOLERANCES.
+C I1 = -1 INDICATES E IS AN ARRAY
+C I1 = +1 INDICATES E IS A SINGLE NUMBER.
+C I2 INDICATES WHETHER OR NOT THE
+C APPROXIMATION IS TO BE RESTRICTED TO
+C THE 'TOLERANCE BAND' ABOUT THE DATA.
+C I2 = 1 INDICATES NO BAND RESTRICTION
+C I2 = 2 INDICATES APPLY THIS RESTRICTION
+C (THE 'TOLERANCE BAND' IS A PIECEWISE
+C LINEAR BAND CENTERED AT THE DATA WHOSE
+C WIDTH IS DETERMINED BY THE TOLERANCES
+C AT THE DATA POINTS.)
+C I3 INDICATES WHETHER OR NOT THE
+C APPROXIMATION MUST BE CONTINUOUS.
+C I3 = 1 INDICATES CONTINUITY NOT REQUIRED
+C I3 = 3 INDICATES CONTINUITY IS REQUIRED
+
+C CALL STL2 (X,Y,E,M,X,Y,E,M,IP) WILL NOT
+C CAUSE PROBLEMS PROVIDED THAT
+C EITHER A CONTINUOUS APPROXIMATION IS
+C REQUESTED, OR E IS A SUFFICIENTLY LARGE
+C ARRAY.
+
+C THE PROGRAM PERFORMS THE FOLLOWING DATA
+C CHECKS. ARE THE X-VALUES IN INCREASING
+C ORDER. ARE THE TOLERANCE(S) NONNEGATIVE.
+C IS THE NUMBER OF DATA POINTS GREATER THAN
+C ONE. IF ANY CHECK FAILS, THE PROGRAM
+C RETURNS WITH K SET EQUAL TO 0. IN THIS
+C CASE NO FURTHER PROCESSING IS ATTEMPTED.
+
+ IMPLICIT NONE
+* Calling arguments
+ REAL X(*), Y(*), E(*), U(*), V(*), W(*), bad_y, bad_out
+ INTEGER M, K, IP
+
+* Local declarations
+ LOGICAL skipbad
+ INTEGER N, ITCH, I, J, L, KEEP, INIT, INDC, IGRAZE,
+ . IDIOT, IT, IPIV, KP, ilo, ihi, icount
+ REAL EPSLN, SGN, XEYE, YEYE, TEMP1, SMIN, DX,
+ . SVX, SVY, SVMN, TEMP2, XINIT, YINIT, SLOPE, SMAX,
+ . SVMX, TEST
+
+* If there is a trivial amount of data in the input array then we are done
+ ilo = 0
+ ihi = 0
+ icount = 0
+ DO i = 1, m
+ IF (y(i) .NE. bad_y) THEN
+ icount = icount + 1
+ IF (ilo .EQ. 0) ilo = i
+ ihi = i
+ ENDIF
+ ENDDO
+
+ IF (icount .LE. 2) THEN
+ k = icount
+ IF (ilo .GT. 0) u(1) = ilo
+ IF (ihi .GT. 0) u(icount) = ihi
+ GOTO 600
+ ENDIF
+
+ N = M
+ ITCH = IP
+ J = 1
+C ERROR CHECKS
+ IF (N.LE.1) GO TO 400
+ IF (E(1).LT.0.0) GO TO 400
+ DO 10 L=2,N
+ IF (X(L-1).GE.X(L)) GO TO 400
+ IF (ITCH.GE.0) GO TO 10
+ IF (E(L).LT.0.0) GO TO 400
+ 10 CONTINUE
+C INITIALIZATION FOR ENTIRE PROGRAM
+ EPSLN = E(1)
+ SGN = 1.0
+ KEEP = 1
+ I = 1
+
+ CALL PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j, n, skipbad)
+ IF (I.EQ.N) GOTO 260
+ IF (skipbad) GOTO 30
+
+ U(i) = X(i)
+ J = 2
+ INIT = 1
+ INDC = 0
+ GO TO 30
+C INITIALIZATION FOR EACH SEGMENT
+ 20 CONTINUE
+ J = J + 1
+ INIT = I
+ INDC = 0
+ IF (IABS(ITCH).LT.3) KEEP = I
+ IF (IABS(IABS(ITCH)-4).NE.2) GO TO 30
+C RESTRICTED TO TOLERANCE BAND
+ XEYE = U(J-1)
+ YEYE = V(J-1)
+ TEMP1 = EPSLN
+ IF (ITCH.LT.0) TEMP1 = TEMP1 + (SGN*E(I-1)-EPSLN)*(X(I)-U(J-1)
+ * )/(X(I)-X(I-1))
+ YINIT = YEYE - TEMP1 - TEMP1
+ GO TO 40
+ 30 CONTINUE
+C NOT RESTRICTED TO TOLERANCE BAND
+ XEYE = X(I)
+ YEYE = Y(I) + EPSLN
+ YINIT = Y(I) - EPSLN
+ IF (IABS(ITCH).EQ.1 .OR. I.EQ.1) GO TO 40
+ TEMP1 = EPSLN
+ IF (ITCH.LT.0) TEMP1 = SGN*E(I+1)
+ SMIN = (Y(I+1)-YEYE-TEMP1)/(X(I+1)-XEYE)
+ IF (ITCH.LT.0) TEMP1 = SGN*E(I-1)
+ SMAX = (YEYE-Y(I-1)+TEMP1)/(XEYE-X(I-1))
+
+ IF (KEEP.EQ.I-1) GO TO 50
+ IT = I - 2
+ XINIT = XEYE
+ IPIV = I
+ IGRAZE = I
+ I = I + 1
+
+ CALL PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j, n, skipbad)
+ IF (skipbad) THEN
+ IF (I.EQ.N) GOTO 260
+ GOTO 30
+ ENDIF
+
+ GO TO 150
+ 40 CONTINUE
+ IF (XEYE.GE.X(I)) I = I + 1
+ IF (ITCH.LT.0) EPSLN = SGN*E(I)
+ DX = X(I) - XEYE
+ SMAX = (Y(I)+EPSLN-YEYE)/DX
+ SMIN = (Y(I)-EPSLN-YEYE)/DX
+ 50 CONTINUE
+ XINIT = XEYE
+ IPIV = I
+ IGRAZE = I
+C DETERMINATION OF INDIVIDUAL SEGMENT
+ 60 CONTINUE
+ IF (I.EQ.N) GO TO 260
+ I = I + 1
+
+C New i, so does it point to a bad-val?
+
+ CALL PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j, n, skipbad)
+ IF (skipbad) THEN
+ IF (I.EQ.N) GOTO 260
+ GOTO 30
+ ENDIF
+
+ 70 CONTINUE
+
+C TEST FOR NEW *MAX* SLOPE
+ DX = X(I) - XEYE
+ IF (ITCH.LT.0) EPSLN = SGN*E(I)
+ TEMP1 = (Y(I)+EPSLN-YEYE)/DX
+ TEST = TEMP1 - SMAX
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST) 80, 90, 100
+ 80 CONTINUE
+C TEST FOR END OF CANDIDATE SEGMENT
+ TEST = TEMP1 - SMIN
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST.LT.0.0) GO TO 210
+ SMAX = TEMP1
+ 90 CONTINUE
+C TEST FOR NEW *MIN* SLOPE
+ IPIV = I
+ 100 CONTINUE
+ TEMP2 = (Y(I)-EPSLN-YEYE)/DX
+ TEST = TEMP2 - SMAX
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST) 110, 120, 140
+ 110 CONTINUE
+ TEST = SMIN - TEMP2
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST) 120, 130, 60
+ 120 CONTINUE
+ SMIN = TEMP2
+ 130 CONTINUE
+ IGRAZE = I
+ GO TO 60
+C CHECK FOR PIVOT AT NEW EYE POINT
+ 140 CONTINUE
+ IF (XEYE.EQ.X(IPIV)) GO TO 220
+ IF (ITCH.LT.0) EPSLN = SGN*E(IPIV)
+ INDC = 1
+ SVX = XEYE
+ SVY = YEYE
+ SVMN = SMIN
+ SVMX = SMAX
+ XEYE = X(IPIV)
+ YEYE = Y(IPIV) + EPSLN
+ SMIN = SMAX
+ SMAX = (YINIT-YEYE)/(XINIT-XEYE)
+ IF (KEEP.GE.IPIV) GO TO 170
+ IT = IPIV - 1
+ 150 CONTINUE
+ TEMP2 = YEYE + EPSLN
+ DO 160 L=KEEP,IT
+ IF (ITCH.LT.0) TEMP2 = YEYE + SGN*E(L)
+ TEMP1 = (Y(L)-TEMP2)/(X(L)-XEYE)
+ TEST = TEMP1 - SMAX
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST.LT.0.0) SMAX = TEMP1
+ 160 CONTINUE
+ 170 CONTINUE
+ IF (IPIV.GE.I-1) GO TO 70
+ IT = I - 2
+ TEMP2 = YEYE - EPSLN
+ IDIOT = IPIV
+ DO 200 L=IDIOT,IT
+ DX = X(L+1) - XEYE
+ IF (ITCH.LT.0) TEMP2 = YEYE - SGN*E(L+1)
+ TEMP1 = (Y(L+1)-TEMP2)/DX
+ TEST = TEMP1 - SMAX
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST) 180, 190, 200
+ 180 CONTINUE
+ SMAX = TEMP1
+ 190 CONTINUE
+ IPIV = L + 1
+ 200 CONTINUE
+ GO TO 70
+C END OF CURRENT SEGMENT
+ 210 CONTINUE
+ TEMP2 = SMIN
+ IF (I.EQ.N) GO TO 240
+ KEEP = IGRAZE
+ GO TO 250
+ 220 CONTINUE
+ TEMP2 = SMAX
+ IF (I.EQ.N) GO TO 230
+ SGN = -SGN
+ EPSLN = -EPSLN
+ KEEP = IPIV
+ GO TO 250
+ 230 CONTINUE
+ IF (INDC.EQ.0 .OR. XEYE.NE.X(N-1)) GO TO 240
+ XEYE = SVX
+ YEYE = SVY
+ SMIN = SVMN
+ SMAX = SVMX
+ 240 CONTINUE
+ U(J) = X(N-1)
+ YINIT = Y(N-1)
+ GO TO 270
+ 250 CONTINUE
+ IF (IABS(IABS(ITCH)-4).NE.2) GO TO 300
+C DETERMINE KNOT ON EDGE OF TOLERANCE BAND
+ TEMP1 = 0.0
+ IF (ITCH.LT.0) TEMP1 = EPSLN - SGN*E(I-1)
+ TEMP1 = (Y(I)-Y(I-1)+TEMP1)/(X(I)-X(I-1))
+
+ U(J) = (Y(I)+EPSLN-YEYE-TEMP1*X(I)+TEMP2*XEYE)/(TEMP2-TEMP1)
+
+ GO TO 310
+ 260 CONTINUE
+ U(J) = X(N)
+ YINIT = Y(N)
+ 270 CONTINUE
+C CONTINUITY CHECK FOR LAST SEGMENT
+ IF (IABS(ITCH).GE.3 .OR. INIT.EQ.1) GO TO 290
+ IT = INIT - 1
+ SVMX = SMAX + SGN
+ TEMP2 = YEYE + EPSLN
+ DO 280 L=KP,IT
+ IF (ITCH.LT.0) TEMP2 = YEYE + SGN*E(L)
+ TEMP1 = (Y(L)-TEMP2)/(X(L)-XEYE)
+ TEST = TEMP1 - SVMX
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST.LT.0.0) SVMX = TEMP1
+ 280 CONTINUE
+ IF (ABS(SVMX-SMAX+SVMX-SMIN).LE.ABS(SMAX-SMIN)) SMAX = SVMX
+ 290 CONTINUE
+C NEARNESS CHECK FOR LAST SEGMENT
+ TEMP2 = SMAX
+ TEMP1 = YEYE + SMAX*(U(J)-XEYE)
+ TEST = YINIT - TEMP1
+ IF (SGN.LT.0.0) TEST = -TEST
+ IF (TEST.GT.0.0) GO TO 310
+ TEMP2 = SMIN
+ TEMP1 = YEYE + SMIN*(U(J)-XEYE)
+ TEST = YINIT - TEMP1
+ IF (SGN.LT.0.0) TEST = -TEST
+ IF (TEST.LT.0.0) GO TO 310
+ TEMP2 = (YINIT-YEYE)/(U(J)-XEYE)
+ V(J) = YINIT
+ GO TO 320
+ 300 CONTINUE
+ IF (IABS(ITCH).GE.3) GO TO 330
+ U(J) = 0.5*(X(I)+X(I-1))
+ 310 CONTINUE
+ V(J) = YEYE + TEMP2*(U(J)-XEYE)
+ 320 CONTINUE
+ IF (XEYE.NE.XINIT) GO TO 330
+ IF (IABS(ITCH).EQ.2) GO TO 360
+ IF (IABS(ITCH).NE.6) GO TO 330
+ IF (J.LE.2) GO TO 380
+ GO TO 390
+ 330 CONTINUE
+C RECOMPUTATION OF KNOT FOR CONTINUITY
+ IF (J.LE.2) GO TO 370
+ IF (SLOPE.EQ.TEMP2) GO TO 360
+ YINIT = V(J-2)
+ IF (IABS(ITCH).LT.3) YINIT = W(J-2)
+ TEMP1 = (XEYE*TEMP2-U(J-2)*SLOPE+YINIT-YEYE)/(TEMP2-SLOPE)
+ IF (IABS(ITCH).GE.3) GO TO 350
+ IF (TEMP1.GT.XINIT) GO TO 360
+ TEST = ABS(EPSLN)
+ IDIOT = INIT - KP
+ DO 340 L=1,IDIOT
+ IT = INIT - L
+ IF (TEMP1.GE.X(IT)) GO TO 350
+ DX = Y(IT) - YEYE - TEMP2*(X(IT)-XEYE)
+ IF (ITCH.LT.0) TEST = E(IT)
+ IF (ABS(DX).GT.TEST) GO TO 360
+ 340 CONTINUE
+ 350 CONTINUE
+ U(J-1) = TEMP1
+ V(J-1) = YEYE + TEMP2*(U(J-1)-XEYE)
+ IF (IABS(ITCH).LT.3) W(J-1) = V(J-1)
+ GO TO 390
+ 360 CONTINUE
+ W(J-1) = YEYE + TEMP2*(U(J-1)-XEYE)
+ GO TO 390
+ 370 CONTINUE
+ IF (IABS(ITCH).LT.3) GO TO 360
+ 380 CONTINUE
+ V(1) = YEYE + TEMP2*(U(1)-XEYE)
+ 390 CONTINUE
+ SLOPE = TEMP2
+ KP = KEEP
+ IF (I.LT.N) GO TO 20
+ IF (X(N).EQ.U(J)) GO TO 400
+ IF (IABS(ITCH).LT.3) W(J) = V(J)
+ J = J + 1
+ U(J) = X(N)
+ V(J) = Y(N)
+ 400 CONTINUE
+ IF (J.GE.2 .AND. IABS(ITCH).LT.3) V(1) = W(1)
+ K = J
+
+* Truncate to integer values: indices at which to sample
+
+ DO 500 I = 1, K
+ u(i) = INT(u(i))
+ 500 CONTINUE
+
+ 600 CONTINUE
+ RETURN
+ END
+
+ SUBROUTINE PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j,
+ . n, skipbad)
+ REAL Y(*), bad_y, x(*), u(*)
+ INTEGER i, j, n
+ LOGICAL skipbad
+
+ skipbad = .FALSE.
+
+ IF ( Y(i).EQ.bad_y ) THEN
+ IF (i.GT.2) THEN
+ u(j) = x(i-1)
+
+ IF ( j .gt. 1 .and. INT(u(j)) .LT. INT(u(j-1)) ) then
+ j = j - 1
+ DO WHILE (INT(u(j)) .LE. INT(u(j-1)) )
+ j = j - 1
+ ENDDO
+ u(j) = x(i-1)
+ ENDIF
+ IF ( j .gt. 1 .and. INT(u(j)) .EQ. INT(u(j-1)) ) j = j - 1
+
+ j = j + 1
+ ENDIF
+ DO WHILE ( Y(i).EQ.bad_y .AND. i.LT.n)
+ i = i + 1
+ ENDDO
+
+ IF (i.GT.1) u(j) = x(i-1)
+ IF (i.GE.n) THEN
+ i = n
+ u(j) = x(n)
+ ENDIF
+ IF ( j .gt. 1 .and. INT(u(j)) .EQ. INT(u(j-1)) ) j = j - 1
+
+ j = j + 1
+ u(j) = x(i)
+ IF ( j .gt. 1 .and. INT(u(j)) .EQ. INT(u(j-1)) ) j = j - 1
+
+ j = j + 1
+ skipbad = .TRUE.
+ ENDIF
+
+ RETURN
+ END
+
+
+ subroutine merge(a,na,b,nb,c,nout,nmax)
+c http://en.wikibooks.org/wiki/Algorithm_Implementation/Sorting/Merge_sort#Fortran
+! Normal usage: NA+NB = NC
+! B overlays C(NA+1:NC)
+
+! modified to return nout instead of assuming treating NC, length of C as known.
+
+ integer nout, nmax
+ integer NA,NB,NC
+ REAL A(*), B(*), C(*)
+
+ integer I,J,K
+
+ I = 1
+ J = 1
+ K = 1
+ do while(I .LE. NA .and. J .LE. NB)
+ if (A(I) .LE. B(J)) then
+ C(K) = A(I)
+ I = I+1
+ IF (I.GT.nmax) GOTO 100
+ else
+ C(K) = B(J)
+ J = J+1
+ endif
+ K = K + 1
+ IF (K.GT.nmax) GOTO 100
+ enddo
+ do while (I .LE. NA)
+ C(K) = A(I)
+ I = I + 1
+ K = K + 1
+ IF (K.GT.nmax) GOTO 100
+ enddo
+ do while (J .LE. NB)
+ C(K) = B(J)
+ J = J+1
+ K = K + 1
+ IF (K.GT.nmax) GOTO 100
+ enddo
+
+* remove duplicates
+
+ 100 CONTINUE
+ j = 1
+ do i = 2, k
+ IF (c(i) .GT. c(i-1)) then
+ j = j + 1
+ IF (j.GT.nmax) THEN
+ j = nmax
+ GOTO 200
+ ENDIF
+ c(j) = c(i)
+ endif
+ enddo
+ 200 nout = j
+
+ return
+
+ end ! subroutine merge
diff --git a/fer/efi/pt_in_poly.F b/fer/efi/pt_in_poly.F
index 9e19fde..d542776 100644
--- a/fer/efi/pt_in_poly.F
+++ b/fer/efi/pt_in_poly.F
@@ -151,21 +151,18 @@ C 1 IF THE POINT IS INSIDE OF THE POLYGON.
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-* These are going to be a double precision array, to contain axis
-* coordinates so allocate 2* the size of the axes
-
- nx = 2*( arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1 )
- ny = 2*( arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1) + 1 )
+* Coordinate data from argument 1
array_num = 1
CALL ef_set_work_array_dims_6d(id, array_num,
- . 1, 1, 1, 1, 1, 1,
- . nx, 1, 1, 1, 1, 1)
+ . arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+ . arg_hi_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1)
array_num = 2
CALL ef_set_work_array_dims_6d(id, array_num,
- . 1, 1, 1, 1, 1, 1,
- . ny, 1, 1, 1, 1, 1)
+ . arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+ . arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
+
* Set two arrays the size of the number of vertices.
@@ -212,6 +209,11 @@ C A VERTICAL LINE IS DRAWN THRU THE POINT IN QUESTION. IF IT
C CROSSES THE POLYGON AN ODD NUMBER OF TIMES, THEN THE
C POINT IS INSIDE OF THE POLYGON.
C
+C Originally written as an external function, this version uses
+C internal Ferret functions STR_UPCASE and TM_HAS_STRING to upcase
+C the axis units string and compare its value to legal longitude
+C units strings.
+C
C ..................................................................
C
@@ -249,10 +251,15 @@ C
. arg_incr (6,EF_MAX_ARGS)
REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+ CHARACTER ax_name(6)*16, ax_units(6)*16, dummy*16
+ LOGICAL backward(6), mdulo(6), regular(6)
INTEGER i, j, k, l, m, n
INTEGER i1, j1, ii, jj, iarg, inout, nv
- REAL xvmin, xvmax, yvmin, yvmax, px, py
+ REAL xvmin, xvmax, yvmin, yvmax, px, py, xmin, xmax
+ INTEGER STR_UPCASE
+ LOGICAL TM_HAS_STRING, mod_lo, mod_hi
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
@@ -266,13 +273,14 @@ C
CALL ef_get_coordinates (id, iarg, Y_AXIS,
. arg_lo_ss(Y_AXIS, ARG1), arg_hi_ss(Y_AXIS, ARG1), ycoords)
-! Size of the list of polygon vertices
+* Size of the list of polygon vertices
nv = arg_hi_ss(X_AXIS,ARG2) - arg_lo_ss(X_AXIS,ARG2) + 1
nv = MAX(nv, arg_hi_ss(Y_AXIS,ARG2) - arg_lo_ss(Y_AXIS,ARG2) + 1 )
nv = MAX(nv, arg_hi_ss(Z_AXIS,ARG2) - arg_lo_ss(Z_AXIS,ARG2) + 1 )
nv = MAX(nv, arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1 )
+
* Get the bounding box around the polygon. Do not check points if they are
* outside this bounding box
@@ -283,6 +291,42 @@ C
CALL POLY_BOUND_BOX(arg_2, arg_3, nv, xvmin, xvmax, yvmin, yvmax)
+* If x axis of arg 1 is longitude, see if the xpts are outside the range of the x axis. Do we need to work
+* in a different modulo branch?
+* Get the units of the x axis of arg1
+
+ CALL ef_get_axis_info_6d(id, ARG1, ax_name, ax_units,
+ . backward, mdulo, regular)
+ dummy = ax_units(1)
+ i = STR_UPCASE (dummy, ax_units(1))
+
+ mod_lo = .FALSE.
+ mod_hi = .FALSE.
+
+ IF ( TM_HAS_STRING(ax_units(1), 'EAST')
+ . .OR. TM_HAS_STRING(ax_units(1), 'WEST')
+ . .OR. TM_HAS_STRING(ax_units(1), 'degreeE')
+ . .OR. TM_HAS_STRING(ax_units(1), 'degreesE')
+ . .OR. TM_HAS_STRING(ax_units(1), 'degree_E')
+ . .OR. TM_HAS_STRING(ax_units(1), 'degrees_E')
+ . .OR. TM_HAS_STRING(ax_units(1), 'degreeW')
+ . .OR. TM_HAS_STRING(ax_units(1), 'degreesW')
+ . .OR. TM_HAS_STRING(ax_units(1), 'degree_W')
+ . .OR. TM_HAS_STRING(ax_units(1), 'degrees_W')
+ . .OR. TM_HAS_STRING(ax_units(1), 'LON') ) THEN
+
+
+ xmin = 1.e34
+ xmax = -1.e34
+ do i = wrk1lox,wrk1hix
+ xmin = MIN(xmin, xcoords(i))
+ xmax = MAX(xmax, xcoords(i))
+ enddo
+
+ mod_lo = (xvmin .LT. xmin)
+ mod_hi = (xvmax .GT. xmax)
+ ENDIF
+
* Loop over all points, checking if they are inside or outside the polygon.
n = res_lo_ss(F_AXIS)
@@ -306,6 +350,28 @@ C
ELSE
result(i,j,k,l,m,n) = -1
ENDIF
+
+ IF (mod_lo) THEN
+ IF (px-360 .GE. xvmin .AND. px-360 .LE. xvmax .AND.
+ . py .GE. yvmin .AND. py .LE. yvmax ) THEN
+ CALL PNPOLY (px-360, py, arg_2, arg_3, nv,
+ . workx, worky, inout )
+ result(i,j,k,l,m,n)= FLOAT(inout)
+ ELSE
+ result(i,j,k,l,m,n) = -1
+ ENDIF
+ ENDIF ! mod_lo
+
+ IF (mod_hi) THEN
+ IF (px+360 .GE. xvmin .AND. px+360 .LE. xvmax .AND.
+ . py .GE. yvmin .AND. py .LE. yvmax ) THEN
+ CALL PNPOLY (px+360, py, arg_2, arg_3, nv,
+ . workx, worky, inout )
+ result(i,j,k,l,m,n)= FLOAT(inout)
+ ELSE
+ result(i,j,k,l,m,n) = -1
+ ENDIF
+ ENDIF ! mod_hi
i1 = i1 + arg_incr(X_AXIS,ARG1)
100 CONTINUE
diff --git a/fer/efi/sample_fast_i.F b/fer/efi/sample_fast_i.F
new file mode 100644
index 0000000..370d0f1
--- /dev/null
+++ b/fer/efi/sample_fast_i.F
@@ -0,0 +1,167 @@
+* sample_fast_i.F
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+
+* Ansley Manke June 2013
+* Sample variable using a set of indices.
+*
+*
+* In this subroutine we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+* CUSTOM - user defined axis
+* IMPLIED_BY_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+*
+*
+* For each argument we provide the following information:
+*
+* name Text name for an argument
+*
+* unit Text units for an argument
+*
+* desc Text description of an argument
+*
+* axis_influence Are this argument's axes the same as the result grid?
+* ( YES, NO )
+*
+* axis_extend How much does Ferret need to extend arg limits relative to result
+*
+
+
+ SUBROUTINE sample_fast_i_init(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id, arg
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ CALL ef_set_desc(id, 'Fast 1D sample variable using set of indices' )
+
+ CALL ef_set_num_args(id, 2)
+ CALL ef_set_has_vari_args(id, NO)
+ CALL ef_set_axis_inheritance_6d(id, IMPLIED_BY_ARGS, NORMAL,
+ . NORMAL, NORMAL, NORMAL, NORMAL)
+ CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'V')
+ CALL ef_set_arg_desc(id, arg, 'Variable to sample')
+ CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'Indices')
+ CALL ef_set_arg_desc(id, arg, 'List of indices at which to sample ')
+ CALL ef_set_axis_influence_6d(id, arg, YES, NO, NO, NO, NO, NO)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+* In this subroutine we compute the result
+*
+ SUBROUTINE sample_fast_i_compute(id, arg_1, arg_2, result)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER id
+
+* Function is intended only for variables in the x direction
+
+ REAL arg_1(mem1lox:mem1hix)
+ REAL arg_2(mem2lox:mem2hix)
+ REAL result(memreslox:memreshix)
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable's axes.
+
+ INTEGER res_lo_ss(6),
+ . res_hi_ss(6),
+ . res_incr (6)
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER i, i2, isample
+
+ CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+ i2 = arg_lo_ss(X_AXIS,ARG2)
+ DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+ result(i) = bad_flag_result
+ IF (arg_2(i2) .NE. bad_flag(ARG2)) THEN
+ isample = INT(arg_2(i2))
+ result(i) = arg_1(isample)
+ ENDIF
+ i2 = i2 + arg_incr(X_AXIS,ARG2)
+ 100 CONTINUE
+
+ RETURN
+
+ RETURN
+ END
diff --git a/fer/efi/sample_fast_i_str.F b/fer/efi/sample_fast_i_str.F
new file mode 100644
index 0000000..2278c7f
--- /dev/null
+++ b/fer/efi/sample_fast_i_str.F
@@ -0,0 +1,178 @@
+* sample_fast_i_str.F
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+
+* Ansley Manke June 2013
+* Sample variable using a set of indices.
+*
+*
+* In this subroutine we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+* CUSTOM - user defined axis
+* IMPLIED_BY_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+*
+*
+* For each argument we provide the following information:
+*
+* name Text name for an argument
+*
+* unit Text units for an argument
+*
+* desc Text description of an argument
+*
+* axis_influence Are this argument's axes the same as the result grid?
+* ( YES, NO )
+*
+* axis_extend How much does Ferret need to extend arg limits relative to result
+*
+
+
+ SUBROUTINE sample_fast_i_str_init(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id, arg
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ CALL ef_set_desc(id,
+ . 'Fast 1D sample string variable using set of indices' )
+
+ CALL ef_set_num_args(id, 2)
+ CALL ef_set_has_vari_args(id, NO)
+ CALL ef_set_axis_inheritance_6d(id, IMPLIED_BY_ARGS, NORMAL,
+ . NORMAL, NORMAL, NORMAL, NORMAL)
+ CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+ CALL ef_set_result_type(id, STRING_RETURN)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'S')
+ CALL ef_set_arg_desc(id, arg, 'String Variable to sample')
+ CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+ CALL ef_set_arg_type(id, arg, STRING_ARG)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'Indices')
+ CALL ef_set_arg_desc(id, arg, 'List of indices at which to sample ')
+ CALL ef_set_axis_influence_6d(id, arg, YES, NO, NO, NO, NO, NO)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+* In this subroutine we compute the result
+*
+ SUBROUTINE sample_fast_i_str_compute(id, arg_1, arg_2, result)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER id
+
+* Function is intended only for variables in the x direction
+
+* Single precision Ferret: string arg and result needed to be twice the length.
+ INTEGER strdf
+#ifdef double_p
+ PARAMETER (strdf = 1)
+#else
+ PARAMETER (strdf = 2)
+#endif
+
+ REAL arg_1(strdf,mem1lox:mem1hix)
+ REAL arg_2(mem2lox:mem2hix)
+ REAL result(strdf,memreslox:memreshix)
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable's axes.
+
+ INTEGER res_lo_ss(6),
+ . res_hi_ss(6),
+ . res_incr (6)
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER i, i2, isample
+
+ CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+ i2 = arg_lo_ss(X_AXIS,ARG2)
+ DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+ IF (arg_2(i2) .NE. bad_flag(ARG2)) THEN ! HELLO HELLO
+ isample = INT(arg_2(i2))
+ CALL EF_PUT_STRING_PTR(arg_1(1,isample), result(1,i) )
+
+ ENDIF
+ i2 = i2 + arg_incr(X_AXIS,ARG2)
+ 100 CONTINUE
+
+ RETURN
+
+ RETURN
+ END
diff --git a/fer/efi/samplet_date.F b/fer/efi/samplef_date.F
similarity index 80%
copy from fer/efi/samplet_date.F
copy to fer/efi/samplef_date.F
index 5e45d38..50b1de4 100644
--- a/fer/efi/samplet_date.F
+++ b/fer/efi/samplef_date.F
@@ -1,5 +1,5 @@
*
-* samplet_date.F
+* samplef_date.F
*
*
* This software was developed by the Thermal Modeling and Analysis
@@ -81,7 +81,7 @@
*
- SUBROUTINE samplet_date_init(id)
+ SUBROUTINE samplef_date_init(id)
IMPLICIT NONE
INCLUDE 'EF_Util.cmn'
@@ -98,23 +98,23 @@
WRITE (fcn_desc, 10)
10 FORMAT
. ('Returns data sampled by interpolating ',
- . 'to a set of times')
+ . 'to a set of times in F direction')
CALL ef_set_desc(id, fcn_desc)
CALL ef_set_num_args(id, 7)
CALL ef_set_has_vari_args(id, NO)
CALL ef_set_axis_inheritance_6d(id,
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
- . IMPLIED_BY_ARGS, ABSTRACT,
- . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+ . IMPLIED_BY_ARGS,IMPLIED_BY_ARGS,
+ . IMPLIED_BY_ARGS, ABSTRACT)
CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
CALL ef_set_num_work_arrays(id, 3)
arg = 1
CALL ef_set_arg_name(id, arg, 'DAT_TO_SAMPLE')
- CALL ef_set_arg_desc(id, arg, 'data to sample at set of times')
+ CALL ef_set_arg_desc(id, arg, 'data to sample at set of times in F')
CALL ef_set_axis_influence_6d(id, arg,
- . YES, YES, YES, NO, YES, YES)
+ . YES, YES, YES, YES, YES, NO)
arg = 2
CALL ef_set_arg_name(id, arg, 'YR')
@@ -170,7 +170,7 @@
* hiss hi subscript for an axis
*
- SUBROUTINE samplet_date_result_limits(id)
+ SUBROUTINE samplef_date_result_limits(id)
IMPLICIT NONE
INCLUDE 'EF_Util.cmn'
@@ -185,7 +185,7 @@
INTEGER arg_lo_ss(6,EF_MAX_ARGS),
. arg_hi_ss(6,EF_MAX_ARGS),
. arg_incr (6,EF_MAX_ARGS)
- INTEGER my_lo_l, my_hi_l
+ INTEGER my_lo_n, my_hi_n
INTEGER nx, ny, nz, nt, ne, nf
* Use utility functions to get context information about the
@@ -202,9 +202,9 @@
* Use the subscripts for ARG2 for the abstract axis limits; could be on any axis
- my_lo_l = 1
- my_hi_l = MAX(nx,ny,nz,nt,ne,nf)
- CALL ef_set_axis_limits(id, T_AXIS, my_lo_l, my_hi_l)
+ my_lo_n = 1
+ my_hi_n = MAX(nx,ny,nz,nt,ne,nf)
+ CALL ef_set_axis_limits(id, F_AXIS, my_lo_n, my_hi_n)
* ^
* |
@@ -219,7 +219,7 @@
* In this subroutine we request an amount of storage to be supplied
* by Ferret and passed as an additional argument.
*
- SUBROUTINE samplet_date_work_size(id)
+ SUBROUTINE samplef_date_work_size(id)
IMPLICIT NONE
INCLUDE 'EF_Util.cmn'
@@ -238,7 +238,7 @@
* xhi, yhi, zhi, thi, ehi, fhi)
*
- INTEGER mtdat, mt2, mt20
+ INTEGER mfdat, mf20
INTEGER arg_lo_ss(6,EF_MAX_ARGS),
. arg_hi_ss(6,EF_MAX_ARGS),
. arg_incr (6,EF_MAX_ARGS)
@@ -248,24 +248,23 @@
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
- mtdat = arg_hi_ss(T_AXIS, ARG1) - arg_lo_ss(T_AXIS, ARG1) + 1
- mt2 = mtdat* 2 ! real*8 takes twice what a real*4 does
- mt20 = mtdat* 20 ! character*20: character*1 takes 1 byte
+ mfdat = arg_hi_ss(F_AXIS, ARG1) - arg_lo_ss(F_AXIS, ARG1) + 1
+ mf20 = mfdat* 20 ! character*20: character*1 takes 1 byte
* taxdat (real*8)
CALL ef_set_work_array_dims_6d(id, 1,
. 1, 1, 1, 1, 1, 1,
- . mt2, 1, 1, 1, 1, 1)
+ . mfdat, 1, 1, 1, 1, 1)
* datebuf (character*20)
CALL ef_set_work_array_dims_6d(id, 2,
. 1, 1, 1, 1, 1, 1,
- . mt20, 1, 1, 1, 1, 1)
+ . mf20, 1, 1, 1, 1, 1)
* date_axis
CALL ef_set_work_array_dims_6d(id, 3,
- . arg_lo_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1,
- . arg_hi_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1)
+ . arg_lo_ss(F_AXIS,ARG1), 1, 1, 1, 1, 1,
+ . arg_hi_ss(F_AXIS,ARG1), 1, 1, 1, 1, 1)
* ^
* |
@@ -278,7 +277,7 @@
*
* In this subroutine we compute the result
*
- SUBROUTINE samplet_date_compute(id, arg_1, arg_2, arg_3,
+ SUBROUTINE samplef_date_compute(id, arg_1, arg_2, arg_3,
. arg_4, arg_5, arg_6, arg_7, result,
. taxdat, datebuf, date_axis)
@@ -307,7 +306,7 @@
. memresloz:memreshiz, memreslot:memreshit,
. memresloe:memreshie, memreslof:memreshif)
- REAL*8 taxdat(wrk1lox:wrk1hix/2, wrk1loy:wrk1hiy,
+ REAL*8 taxdat(wrk1lox:wrk1hix, wrk1loy:wrk1hiy,
. wrk1loz:wrk1hiz, wrk1lot:wrk1hit,
. wrk1loe:wrk1hie, wrk1lof:wrk1hif)
CHARACTER*20 datebuf(wrk2lox:wrk2hix/20, wrk2loy:wrk2hiy,
@@ -346,10 +345,10 @@
INTEGER i6, j6, k6, l6, m6, n6
INTEGER i7, j7, k7, l7, m7, n7
INTEGER mnth, numtimes
- INTEGER lbot, ltop, status
+ INTEGER nbot, ntop, status
REAL ayr, amo, ada, ahr, amn, asc
REAL byr, bmo, bda, bhr, bmn, bsc
- REAL tbot, ttop, timepoint, frac
+ REAL fbot, ftop, timepoint, frac
CHARACTER*100 errtxt
@@ -364,15 +363,15 @@
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
iarg = 1
- CALL ef_get_coordinates (id, ARG1, T_AXIS,
- . arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdat)
+ CALL ef_get_coordinates (id, ARG1, F_AXIS,
+ . arg_lo_ss(F_AXIS, ARG1), arg_hi_ss(F_AXIS, ARG1), taxdat)
- numtimes = arg_hi_ss(T_AXIS, ARG1) - arg_lo_ss(T_AXIS, ARG1) + 1
- CALL ef_get_axis_dates (id, ARG1, taxdat, numtimes, datebuf)
+ numtimes = arg_hi_ss(F_AXIS, ARG1) - arg_lo_ss(F_AXIS, ARG1) + 1
+ CALL ef_get_axis_dates (id, ARG1, taxdat, F_AXIS, numtimes, datebuf)
- l1 = arg_lo_ss(T_AXIS,ARG1)
- DO 60 l = 1, numtimes
- READ (datebuf(l,1,1,1,1,1), 20, err=900) bda, cmon, byr,
+ n1 = arg_lo_ss(F_AXIS,ARG1)
+ DO 60 n = 1, numtimes
+ READ (datebuf(n,1,1,1,1,1), 20, err=900) bda, cmon, byr,
. bhr, bmn, bsc
bmo = 0
DO 40 mnth = 1, 12
@@ -383,36 +382,36 @@
bmn = bmn + bsc/ 60.
bhr = bhr + bmn/ 60.
bda = bda + bhr/ 24.
- date_axis(l1,1,1,1,1,1) = byr + bda / 365.2425
- l1 = l1 + arg_incr(T_AXIS,ARG1)
+ date_axis(n1,1,1,1,1,1) = byr + bda / 365.2425
+ n1 = n1 + arg_incr(F_AXIS,ARG1)
60 CONTINUE
- l2 = arg_lo_ss(T_AXIS,ARG2)
- l3 = arg_lo_ss(T_AXIS,ARG3)
- l4 = arg_lo_ss(T_AXIS,ARG4)
- l5 = arg_lo_ss(T_AXIS,ARG5)
- l6 = arg_lo_ss(T_AXIS,ARG6)
- l7 = arg_lo_ss(T_AXIS,ARG7)
- DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ n2 = arg_lo_ss(F_AXIS,ARG2)
+ n3 = arg_lo_ss(F_AXIS,ARG3)
+ n4 = arg_lo_ss(F_AXIS,ARG4)
+ n5 = arg_lo_ss(F_AXIS,ARG5)
+ n6 = arg_lo_ss(F_AXIS,ARG6)
+ n7 = arg_lo_ss(F_AXIS,ARG7)
+ DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
* Get the time to sample, whichever axis of arg_2 thru arg_7 it is on.
- CALL pickindex(arg_2, l, ayr)
- CALL pickindex(arg_3, l, amo)
- CALL pickindex(arg_4, l, ada)
- CALL pickindex(arg_5, l, ahr)
- CALL pickindex(arg_6, l, amn)
- CALL pickindex(arg_7, l, asc)
+ CALL pickindex(arg_2, n, ayr)
+ CALL pickindex(arg_3, n, amo)
+ CALL pickindex(arg_4, n, ada)
+ CALL pickindex(arg_5, n, ahr)
+ CALL pickindex(arg_6, n, amn)
+ CALL pickindex(arg_7, n, asc)
* Check that we do have a valid time.
- lbot = 0
+ nbot = 0
IF (ayr .NE. bad_flag(ARG2) .AND.
- . amo .NE. bad_flag(arg3) .AND.
- . ada .NE. bad_flag(arg4) .AND.
- . ahr .NE. bad_flag(arg5) .AND.
- . amn .NE. bad_flag(arg6) .AND.
- . asc .NE. bad_flag(arg7) ) THEN
+ . amo .NE. bad_flag(ARG3) .AND.
+ . ada .NE. bad_flag(ARG4) .AND.
+ . ahr .NE. bad_flag(ARG5) .AND.
+ . amn .NE. bad_flag(ARG6) .AND.
+ . asc .NE. bad_flag(ARG7) ) THEN
CALL day_of_year(amo, ada, ayr, status, errtxt)
IF (status .NE. 0) GO TO 1000
@@ -425,31 +424,22 @@
* Search the 1st argument for the points before and after the requested time,
* interpolate to set the result.
- DO 80 l1 = arg_lo_ss(T_AXIS,ARG1), arg_hi_ss(T_AXIS,ARG1)
- IF (timepoint .GE. date_axis(l1,1,1,1,1,1)) lbot = l1
+ DO 80 n1 = arg_lo_ss(F_AXIS,ARG1), arg_hi_ss(F_AXIS,ARG1)
+ IF (timepoint .GE. date_axis(n1,1,1,1,1,1)) nbot = n1
80 CONTINUE
- ltop = lbot + 1
+ ntop = nbot + 1
- IF (lbot .GE. arg_lo_ss(T_AXIS,ARG1) .AND.
- . ltop .LE. arg_hi_ss(T_AXIS,ARG1)) THEN
+ IF (nbot .GE. arg_lo_ss(F_AXIS,ARG1) .AND.
+ . ntop .LE. arg_hi_ss(F_AXIS,ARG1)) THEN
- tbot = date_axis(lbot,1,1,1,1,1)
- ttop = date_axis(ltop,1,1,1,1,1)
- frac = (timepoint - tbot) / (ttop - tbot)
+ fbot = date_axis(nbot,1,1,1,1,1)
+ ftop = date_axis(ntop,1,1,1,1,1)
+ frac = (timepoint - fbot) / (ftop - fbot)
ENDIF
ENDIF
* Loop over all space and interpolate.
-
- n1 = arg_lo_ss(F_AXIS,ARG1)
- n2 = arg_lo_ss(F_AXIS,ARG2)
- n3 = arg_lo_ss(F_AXIS,ARG3)
- n4 = arg_lo_ss(F_AXIS,ARG4)
- n5 = arg_lo_ss(F_AXIS,ARG5)
- n6 = arg_lo_ss(F_AXIS,ARG6)
- n7 = arg_lo_ss(F_AXIS,ARG7)
- DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
m1 = arg_lo_ss(E_AXIS,ARG1)
m2 = arg_lo_ss(E_AXIS,ARG2)
@@ -460,6 +450,15 @@
m7 = arg_lo_ss(E_AXIS,ARG7)
DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ l2 = arg_lo_ss(T_AXIS,ARG2)
+ l3 = arg_lo_ss(T_AXIS,ARG3)
+ l4 = arg_lo_ss(T_AXIS,ARG4)
+ l5 = arg_lo_ss(T_AXIS,ARG5)
+ l6 = arg_lo_ss(T_AXIS,ARG6)
+ l7 = arg_lo_ss(T_AXIS,ARG7)
+ DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
k1 = arg_lo_ss(Z_AXIS,ARG1)
k2 = arg_lo_ss(Z_AXIS,ARG2)
k3 = arg_lo_ss(Z_AXIS,ARG3)
@@ -487,16 +486,16 @@
i7 = arg_lo_ss(X_AXIS, ARG7)
DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
- IF ( lbot .GE. arg_lo_ss(T_AXIS,ARG1) .AND.
- . ltop .LE. arg_hi_ss(T_AXIS,ARG1) ) THEN
- IF ( arg_1(i1,j1,k1,lbot,m1,n1)
+ IF ( nbot .GE. arg_lo_ss(F_AXIS,ARG1) .AND.
+ . ntop .LE. arg_hi_ss(F_AXIS,ARG1) ) THEN
+ IF ( arg_1(i1,j1,k1,l1,m1,nbot)
. .NE. bad_flag(ARG1) .AND.
- . arg_1(i1,j1,k1,ltop,m1,n1)
+ . arg_1(i1,j1,k1,l1,m1,ntop)
. .NE. bad_flag(ARG1) ) THEN
result(i,j,k,l,m,n) =
- . arg_1(i1,j1,k1,lbot,m1,n1) +
- . frac * ( arg_1(i1,j1,k1,ltop,m1,n1) -
- . arg_1(i1,j1,k1,lbot,m1,n1) )
+ . arg_1(i1,j1,k1,l1,m1,nbot) +
+ . frac * ( arg_1(i1,j1,k1,l1,m1,ntop) -
+ . arg_1(i1,j1,k1,l1,m1,nbot) )
ELSE
result(i,j,k,l,m,n) = bad_flag_result
ENDIF
@@ -531,6 +530,15 @@
k7 = k7 + arg_incr(Z_AXIS,ARG7)
300 CONTINUE
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ l2 = l2 + arg_incr(T_AXIS,ARG2)
+ l3 = l3 + arg_incr(T_AXIS,ARG3)
+ l4 = l4 + arg_incr(T_AXIS,ARG4)
+ l5 = l5 + arg_incr(T_AXIS,ARG5)
+ l6 = l6 + arg_incr(T_AXIS,ARG6)
+ l7 = l7 + arg_incr(T_AXIS,ARG7)
+ 400 CONTINUE
+
m1 = m1 + arg_incr(E_AXIS,ARG1)
m2 = m2 + arg_incr(E_AXIS,ARG2)
m3 = m3 + arg_incr(E_AXIS,ARG3)
@@ -540,30 +548,20 @@
m7 = m7 + arg_incr(E_AXIS,ARG7)
500 CONTINUE
- n1 = n1 + arg_incr(F_AXIS,ARG1)
- n2 = n2 + arg_incr(F_AXIS,ARG2)
- n3 = n3 + arg_incr(F_AXIS,ARG3)
- n4 = n4 + arg_incr(F_AXIS,ARG4)
- n5 = n5 + arg_incr(F_AXIS,ARG5)
- n6 = n6 + arg_incr(F_AXIS,ARG6)
- n7 = n7 + arg_incr(F_AXIS,ARG7)
- 600 CONTINUE
-
* End of loop over all space; go on to next specified time
- l2 = l2 + arg_incr(T_AXIS,ARG2)
- l2 = l2 + arg_incr(T_AXIS,ARG2)
- l3 = l3 + arg_incr(T_AXIS,ARG3)
- l4 = l4 + arg_incr(T_AXIS,ARG4)
- l5 = l5 + arg_incr(T_AXIS,ARG5)
- l6 = l6 + arg_incr(T_AXIS,ARG6)
- l7 = l7 + arg_incr(T_AXIS,ARG7)
- 400 CONTINUE
+ n2 = n2 + arg_incr(F_AXIS,ARG2)
+ n3 = n3 + arg_incr(F_AXIS,ARG3)
+ n4 = n4 + arg_incr(F_AXIS,ARG4)
+ n5 = n5 + arg_incr(F_AXIS,ARG5)
+ n6 = n6 + arg_incr(F_AXIS,ARG6)
+ n7 = n7 + arg_incr(F_AXIS,ARG7)
+ 600 CONTINUE
RETURN
900 WRITE (errtxt,*) 'error reading date buffer ',
- . l, datebuf(l1,1,1,1,1,1)
+ . n, datebuf(n1,1,1,1,1,1)
1000 CALL EF_BAIL_OUT(id, errtxt)
RETURN
END
diff --git a/fer/efi/samplet_date.F b/fer/efi/samplet_date.F
index 5e45d38..9b75ba5 100644
--- a/fer/efi/samplet_date.F
+++ b/fer/efi/samplet_date.F
@@ -98,7 +98,7 @@
WRITE (fcn_desc, 10)
10 FORMAT
. ('Returns data sampled by interpolating ',
- . 'to a set of times')
+ . 'to a set of times in T direction')
CALL ef_set_desc(id, fcn_desc)
CALL ef_set_num_args(id, 7)
@@ -368,7 +368,7 @@
. arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdat)
numtimes = arg_hi_ss(T_AXIS, ARG1) - arg_lo_ss(T_AXIS, ARG1) + 1
- CALL ef_get_axis_dates (id, ARG1, taxdat, numtimes, datebuf)
+ CALL ef_get_axis_dates (id, ARG1, taxdat, T_AXIS, numtimes, datebuf)
l1 = arg_lo_ss(T_AXIS,ARG1)
DO 60 l = 1, numtimes
@@ -552,7 +552,6 @@
* End of loop over all space; go on to next specified time
l2 = l2 + arg_incr(T_AXIS,ARG2)
- l2 = l2 + arg_incr(T_AXIS,ARG2)
l3 = l3 + arg_incr(T_AXIS,ARG3)
l4 = l4 + arg_incr(T_AXIS,ARG4)
l5 = l5 + arg_incr(T_AXIS,ARG5)
diff --git a/fer/efi/samplexyt_nrst.F b/fer/efi/samplexyt_nrst.F
index 3786704..2d85e59 100644
--- a/fer/efi/samplexyt_nrst.F
+++ b/fer/efi/samplexyt_nrst.F
@@ -40,7 +40,9 @@
* args 2, 3,4
* 1/18/08 Ansley Manke
* Result is abstract on the x axis, normal on the y and t axes,
-* and keeps the z axes of the input 4-d data.
+* and keeps the z axes of the input 4-d data
+* 5/15/08 Deal with sample indices outside the axis range of the grid
+* 6/15/08 When the x axis is modulo the above threw out data unnecessarily
*
*
* In this subroutine we provide information about
@@ -555,6 +557,9 @@ C variables for checking axis characteristics (modulo axes)
ELSE
l1 = lbot+1
ENDIF
+ IF (l1.LT.arg_lo_ss(T_AXIS,ARG1) .OR. l1.GT.arg_hi_ss(T_AXIS,ARG1)) THEN
+ l1 = ef_unspecified_int4
+ ENDIF
* Try to get xpt in range if the X-axis is modulo
IF ( modulo(1) ) THEN
@@ -618,7 +623,14 @@ C variables for checking axis characteristics (modulo axes)
ELSE
i1 = ibot+1
ENDIF
-
+ IF (i1.LT.arg_lo_ss(X_AXIS,ARG1) .OR. i1.GT.arg_hi_ss(X_AXIS,ARG1)) THEN
+ IF (modulo(1)) THEN
+ IF (i1.LT.arg_lo_ss(X_AXIS,ARG1)) i1 = arg_hi_ss(X_AXIS,ARG1)
+ IF (i1.GT.arg_hi_ss(X_AXIS,ARG1)) i1 = arg_lo_ss(X_AXIS,ARG1)
+ ELSE
+ i1 = ef_unspecified_int4
+ ENDIF
+ ENDIF
* Check if ypt is in the Y-axis range.
jbot = ef_unspecified_int4
@@ -663,6 +675,9 @@ C variables for checking axis characteristics (modulo axes)
ELSE
j1 = jbot+1
ENDIF
+ IF (j1.LT.arg_lo_ss(Y_AXIS,ARG1) .OR. j1.GT.arg_hi_ss(Y_AXIS,ARG1)) THEN
+ j1 = ef_unspecified_int4
+ ENDIF
* Loop through the Z/E/F axes, assigning results for this coordinate pair
n1 = arg_lo_ss(F_AXIS,ARG1)
diff --git a/fer/efi/scat2grid_bin_xyt.F b/fer/efi/scat2grid_bin_xyt.F
index 2d0c879..1f7f979 100644
--- a/fer/efi/scat2grid_bin_xyt.F
+++ b/fer/efi/scat2grid_bin_xyt.F
@@ -522,15 +522,15 @@ C Get coordinates of output axes.
l1 = 1
DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
- IF ( tt .GE. taxlo(l1) .AND. tt .LE. taxhi(l1) ) THEN
+ IF ( tt .GE. taxlo(l1) .AND. tt .LT. taxhi(l1) ) THEN
j1 = 1
DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
- IF ( yy .GE. yaxlo(j1) .AND. yy .LE. yaxhi(j1) ) THEN
+ IF ( yy .GE. yaxlo(j1) .AND. yy .LT. yaxhi(j1) ) THEN
i1 = 1
DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
- IF ( xx .GE. xaxlo(i1) .AND. xx .LE. xaxhi(i1) ) THEN
+ IF ( xx .GE. xaxlo(i1) .AND. xx .LT. xaxhi(i1) ) THEN
result(i,j,k,l,m,n) = result(i,j,k,l,m,n) + ff
counts(i1,j1,l1) = counts(i1,j1,l1) + 1.0
diff --git a/fer/efi/scat2grid_nbin_xyt.F b/fer/efi/scat2grid_nbin_xyt.F
index c6ef565..f7a5fc2 100644
--- a/fer/efi/scat2grid_nbin_xyt.F
+++ b/fer/efi/scat2grid_nbin_xyt.F
@@ -505,15 +505,15 @@ C Get coordinates of output axes.
l1 = 1
DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
- IF ( tt .GE. taxlo(l1) .AND. tt .LE. taxhi(l1) ) THEN
+ IF ( tt .GE. taxlo(l1) .AND. tt .LT. taxhi(l1) ) THEN
j1 = 1
DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
- IF ( yy .GE. yaxlo(j1) .AND. yy .LE. yaxhi(j1) ) THEN
+ IF ( yy .GE. yaxlo(j1) .AND. yy .LT. yaxhi(j1) ) THEN
i1 = 1
DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
- IF ( xx .GE. xaxlo(i1) .AND. xx .LE. xaxhi(i1) ) THEN
+ IF ( xx .GE. xaxlo(i1) .AND. xx .LT. xaxhi(i1) ) THEN
result(i,j,k,l,m,n) = result(i,j,k,l,m,n) + 1.0
* Location found and point assigned; go to the next scatter point
diff --git a/fer/efi/separate_str.F b/fer/efi/separate_str.F
new file mode 100644
index 0000000..c2509d7
--- /dev/null
+++ b/fer/efi/separate_str.F
@@ -0,0 +1,256 @@
+* separate_str.F
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+
+* Ansley Manke June 2013
+* Given a data variable and a ROWSIZE indicating trajectory length,
+* Insert a bad-value between trajectories.
+*
+*
+* In this subroutine we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+* CUSTOM - user defined axis
+* IMPLIED_BY_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+*
+*
+* For each argument we provide the following information:
+*
+* name Text name for an argument
+*
+* unit Text units for an argument
+*
+* desc Text description of an argument
+*
+* axis_influence Are this argument's axes the same as the result grid?
+* ( YES, NO )
+*
+* axis_extend How much does Ferret need to extend arg limits relative to result
+*
+
+
+ SUBROUTINE separate_str_init(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id, arg
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ CALL ef_set_desc(id,
+ . 'Insert a bad-value between features, string variable' )
+
+ CALL ef_set_num_args(id, 3)
+ CALL ef_set_has_vari_args(id, NO)
+ CALL ef_set_axis_inheritance_6d(id, ABSTRACT, NORMAL, NORMAL,
+ . NORMAL, NORMAL, NORMAL)
+ CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'A')
+ CALL ef_set_arg_desc(id, arg, 'variable to sample on I axis')
+ CALL ef_set_axis_influence_6d(id, arg, YES, NO, NO, NO, NO, NO)
+ CALL ef_set_arg_type (id, arg, STRING_ARG)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'Rowsize')
+ CALL ef_set_arg_desc(id, arg,
+ . 'array with per-feature row lengths')
+ CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+ arg = 3
+ CALL ef_set_arg_name(id, arg, 'FixLongitudes')
+ CALL ef_set_arg_desc(id, arg,
+ . 'ignored (included for parity with numeric fcn)')
+ CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+ CALL ef_set_result_type (id, STRING_RETURN)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+
+
+ SUBROUTINE separate_str_result_limits(id)
+
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+* Use utility functions to get context information about the arguments.
+* indices.
+
+
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS), arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr(6,EF_MAX_ARGS)
+
+ INTEGER nx, nr, lo_lim, hi_lim
+
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
+
+* will add a point for each row
+
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ nr = MAX( (arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1),
+ . (arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1) )
+
+ lo_lim = 1
+ hi_lim = nx + nr - 1
+ CALL ef_set_axis_limits(id, X_AXIS, lo_lim, hi_lim)
+
+
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+
+* In this subroutine we compute the result
+*
+ SUBROUTINE separate_str_compute(id, arg_1, arg_2, arg_3, result)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER id
+
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+ . mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+ REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+ . mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+ REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz,
+ . mem3lot:mem3hit, mem3loe:mem3hie, mem3lof:mem3hif)
+
+! We just know this is on the X axis and will be passed in and out correct.y.
+ REAL result(memreslox:memreshix)
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable's axes.
+
+ INTEGER res_lo_ss(6), res_hi_ss(6), res_incr (6)
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER i, i1, ir, k, m, slen
+ INTEGER nx, ne, msum, rend
+ REAL fixlon, tol, nothing
+ LOGICAL ifix
+ CHARACTER*512 buff
+
+ CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+ k = res_lo_ss(Z_AXIS) ! index for unused dimensions
+
+ nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
+ ne = arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss(E_AXIS, ARG2) + 1
+
+ CALL ef_get_one_val(id, arg3, fixlon)
+ ifix = (fixlon .GT. 0.8)
+ tol = 200.
+
+ i1 = 1
+ ir = 1
+ msum = 0
+ DO m = arg_lo_ss(E_AXIS,ARG2), arg_hi_ss(E_AXIS, ARG2)
+ rend = arg_2(k,k,k,k,m,k)
+ msum = msum + rend
+ IF (msum .GT. nx) msum = nx+1
+ DO i = i1, msum
+
+ CALL ef_get_string_arg_element_6d(id, ARG1, arg_1,
+ . i,k,k,k,k,k, slen,buff)
+ CALL ef_put_string (buff, slen, result(ir) )
+
+ ir = ir + 1
+ IF (ir .GT. res_hi_ss(X_AXIS)) GOTO 9000
+ ENDDO
+ i1 = msum+1
+ buff = ' '
+ slen = 1
+ CALL ef_put_string (buff, slen, result(ir) )
+ ir = ir + 1
+ IF (ir .GT. res_hi_ss(X_AXIS)) GOTO 9000
+ ENDDO
+
+ 9000 RETURN
+c 999 CALL EF_BAIL_OUT(id, errtxt)
+ RETURN
+
+ END
diff --git a/fer/efi/tax_datestring.F b/fer/efi/tax_datestring.F
index 60700b1..cf09887 100644
--- a/fer/efi/tax_datestring.F
+++ b/fer/efi/tax_datestring.F
@@ -1,12 +1,46 @@
*
* tax_datestring.F
*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
* Jing Y. Li
* May 2006
* 18-may-2006 ACM change to compare only the first 3 characters of the precision string.
* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
* 27-Feb-2013 ACM Fix ticket 2043: remove old code for handling single-
* precision values coming in from argument 1
+* v695 *acm 2/15 Return dates on an F axis or a T axis.
*
* Returns string of dates
*
@@ -51,7 +85,6 @@
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
CALL ef_set_result_type(id, STRING_RETURN)
- CALL ef_set_num_work_arrays(id, 1)
arg = 1
CALL ef_set_arg_name(id, arg, 'A')
@@ -85,60 +118,10 @@
END
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
- SUBROUTINE tax_datestring_work_size(id)
-
- IMPLICIT NONE
- INCLUDE 'EF_Util.cmn'
-
- INTEGER id
-
-* **********************************************************************
-* USER CONFIGURABLE PORTION |
-* |
-* V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-* xlo, ylo, zlo, tlo, elo, flo,
-* xhi, yhi, zhi, thi, ehi, fhi)
-*
-
- INTEGER arg_lo_ss(6,EF_MAX_ARGS),
- . arg_hi_ss(6,EF_MAX_ARGS),
- . arg_incr (6,EF_MAX_ARGS)
- INTEGER array_num, nt1, nt2
-
- CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-* Allocate double the length of the T axis of ARG2 for REAL*8 work array.
- nt1 = arg_lo_ss(T_AXIS,ARG2)
- nt2 = nt1 +
- . 2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
- array_num = 1
- CALL ef_set_work_array_dims_6d(id, array_num,
- . nt1, 1, 1, 1, 1, 1,
- . nt2, 1, 1, 1, 1, 1)
-
-* ^
-* |
-* USER CONFIGURABLE PORTION |
-* **********************************************************************
-
- RETURN
- END
-
-
* In this subroutine we compute the result
*
SUBROUTINE tax_datestring_compute(id, arg_1, arg_2, arg_3,
- . result, taxdat)
+ . result)
IMPLICIT NONE
INCLUDE 'EF_Util.cmn'
@@ -165,10 +148,6 @@
. memresloz:memreshiz, memreslot:memreshit,
. memresloe:memreshie, memreslof:memreshif)
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
- REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
* After initialization, the 'res_' arrays contain indexing information
* for the result axes. The 'arg_' arrays will contain the indexing
* information for each variable''s axes.
@@ -193,26 +172,30 @@
INTEGER slen
CHARACTER*20 datestring
CHARACTER*3 precistring
- INTEGER L2, LL
- LOGICAL TM_FPEQ, first
+ INTEGER L2, LL, dir
CHARACTER*255 err_msg
- REAL*8 ddate, d1, d2
+ REAL*8 ddate
* variables for checking axis characteristics (modulo axes)
CHARACTER ax_name(6)*16, ax_units(6)*16
LOGICAL backward(6), modulo(6), regular(6), tmodulo
-* Check to see if time axis of arg 2 is modulo
- CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
- . backward, modulo, regular)
- tmodulo = modulo(T_AXIS)
-
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
- CALL ef_get_coordinates(id, ARG2, T_AXIS,
- . arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+* Check to see if time axis of arg 2 is modulo
+ CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+ . backward, modulo, regular)
+* Get the direction of arg 2
+ IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = T_AXIS
+ tmodulo = modulo(T_AXIS)
+ ENDIF
+ IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = F_AXIS
+ tmodulo = modulo(F_AXIS)
+ ENDIF
* Get the precision for output (string)
i3 = arg_lo_ss(X_AXIS, ARG3)
@@ -231,116 +214,114 @@
m1 = arg_lo_ss(E_AXIS,ARG1)
DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
k1 = arg_lo_ss(Z_AXIS,ARG1)
DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
- j1 = arg_lo_ss(Y_AXIS,ARG1)
- DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
- i1 = arg_lo_ss(X_AXIS,ARG1)
- DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
- first = .TRUE.
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
- l1 = arg_lo_ss(T_AXIS,ARG1)
- DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
- ddate = arg_1(i1,j1,k1,l1,m1,n1)
- ddate = ddate
- IF ( ddate .NE. bad_flag(ARG1) ) THEN
+ ddate = arg_1(i1,j1,k1,l1,m1,n1)
+ ddate = ddate
+ IF ( ddate .NE. bad_flag(ARG1) ) THEN
* Get the date string corresponding to time ddate for the variable ARG2
- CALL EF_GET_AXIS_DATES(id, ARG2, ddate,
- . 1, datestring)
+ CALL EF_GET_AXIS_DATES
+ . (id, ARG2, ddate, dir, 1, datestring)
* Assign the appropriate substring to the result.
- IF ( .NOT. tmodulo ) THEN
- IF ( precistring .EQ. 'sec' ) THEN
- slen = 20
- CALL EF_PUT_STRING(datestring, slen,
- . result(1,i,j,k,l,m,n))
- ELSE IF ( precistring .EQ. 'min' ) THEN
- slen = 17
- CALL EF_PUT_STRING(datestring(1:17), slen,
- . result(1,i,j,k,l,m,n))
- ELSE IF ( precistring .EQ. 'hou' ) THEN
- slen = 14
- CALL EF_PUT_STRING(datestring(1:14), slen,
- . result(1,i,j,k,l,m,n))
- ELSE IF ( precistring .EQ. 'day' ) THEN
- slen = 11
- CALL EF_PUT_STRING(datestring(1:11), slen,
- . result(1,i,j,k,l,m,n))
- ELSE IF ( precistring .EQ. 'mon' ) THEN
- slen = 8
- CALL EF_PUT_STRING(datestring(4:11), slen,
- . result(1,i,j,k,l,m,n))
- ELSE IF ( precistring .EQ. 'yea' ) THEN
- slen = 4
- CALL EF_PUT_STRING(datestring(8:11), slen,
- . result(1,i,j,k,l,m,n))
- ELSE
- slen = 20
- CALL EF_PUT_STRING (datestring, slen,
- . result(1,i,j,k,l,m,n))
- ENDIF
-
- ELSE ! modulo time axis. Datestring looks like 15-FEB 02:54:36
-
- IF ( precistring .EQ. 'sec' ) THEN
- slen = 15
- CALL EF_PUT_STRING(datestring(1:15), slen,
- . result(1,i,j,k,l,m,n))
- ELSE IF ( precistring .EQ. 'min' ) THEN
- slen = 12
- CALL EF_PUT_STRING(datestring(1:12), slen,
- . result(1,i,j,k,l,m,n))
- ELSE IF ( precistring .EQ. 'hou' ) THEN
- slen = 9
- CALL EF_PUT_STRING(datestring(1:9), slen,
- . result(1,i,j,k,l,m,n))
- ELSE IF ( precistring .EQ. 'day' ) THEN
- slen = 6
- CALL EF_PUT_STRING(datestring(1:6), slen,
- . result(1,i,j,k,l,m,n))
- ELSE IF ( precistring .EQ. 'mon' ) THEN
- slen = 3
- CALL EF_PUT_STRING(datestring(4:6), slen,
- . result(1,i,j,k,l,m,n))
- ELSE IF ( precistring .EQ. 'yea' ) THEN
- datestring = '...'
- slen = 3
- CALL EF_PUT_STRING(datestring, slen,
- . result(1,i,j,k,l,m,n))
- ELSE
+ IF ( .NOT. tmodulo ) THEN
+ IF ( precistring .EQ. 'sec' ) THEN
+ slen = 20
+ CALL EF_PUT_STRING(datestring, slen,
+ . result(1,i,j,k,l,m,n))
+ ELSE IF ( precistring .EQ. 'min' ) THEN
+ slen = 17
+ CALL EF_PUT_STRING(datestring(1:17), slen,
+ . result(1,i,j,k,l,m,n))
+ ELSE IF ( precistring .EQ. 'hou' ) THEN
+ slen = 14
+ CALL EF_PUT_STRING(datestring(1:14), slen,
+ . result(1,i,j,k,l,m,n))
+ ELSE IF ( precistring .EQ. 'day' ) THEN
+ slen = 11
+ CALL EF_PUT_STRING(datestring(1:11), slen,
+ . result(1,i,j,k,l,m,n))
+ ELSE IF ( precistring .EQ. 'mon' ) THEN
+ slen = 8
+ CALL EF_PUT_STRING(datestring(4:11), slen,
+ . result(1,i,j,k,l,m,n))
+ ELSE IF ( precistring .EQ. 'yea' ) THEN
+ slen = 4
+ CALL EF_PUT_STRING(datestring(8:11), slen,
+ . result(1,i,j,k,l,m,n))
+ ELSE
+ slen = 20
+ CALL EF_PUT_STRING (datestring, slen,
+ . result(1,i,j,k,l,m,n))
+ ENDIF
+
+ ELSE ! modulo time axis. Datestring looks like 15-FEB 02:54:36
+
+ IF ( precistring .EQ. 'sec' ) THEN
+ slen = 15
+ CALL EF_PUT_STRING(datestring(1:15), slen,
+ . result(1,i,j,k,l,m,n))
+ ELSE IF ( precistring .EQ. 'min' ) THEN
+ slen = 12
+ CALL EF_PUT_STRING(datestring(1:12), slen,
+ . result(1,i,j,k,l,m,n))
+ ELSE IF ( precistring .EQ. 'hou' ) THEN
+ slen = 9
+ CALL EF_PUT_STRING(datestring(1:9), slen,
+ . result(1,i,j,k,l,m,n))
+ ELSE IF ( precistring .EQ. 'day' ) THEN
+ slen = 6
+ CALL EF_PUT_STRING(datestring(1:6), slen,
+ . result(1,i,j,k,l,m,n))
+ ELSE IF ( precistring .EQ. 'mon' ) THEN
+ slen = 3
+ CALL EF_PUT_STRING(datestring(4:6), slen,
+ . result(1,i,j,k,l,m,n))
+ ELSE IF ( precistring .EQ. 'yea' ) THEN
+ datestring = '...'
+ slen = 3
+ CALL EF_PUT_STRING(datestring, slen,
+ . result(1,i,j,k,l,m,n))
+ ELSE
slen = 15
CALL EF_PUT_STRING(datestring, slen,
. result(1,i,j,k,l,m,n))
- ENDIF
+ ENDIF
- ENDIF ! Modulo time
+ ENDIF ! Modulo time
- ELSE ! ddate .NE. bad_flag(ARG1)
+ ELSE ! ddate .NE. bad_flag(ARG1)
- datestring = '...'
- slen = 3
- CALL EF_PUT_STRING(datestring, slen,
+ datestring = '...'
+ slen = 3
+ CALL EF_PUT_STRING(datestring, slen,
. result(1,i,j,k,l,m,n))
- ENDIF
+ ENDIF
- l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400 CONTINUE
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100 CONTINUE
- i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100 CONTINUE
-
- j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200 CONTINUE
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200 CONTINUE
k1 = k1 + arg_incr(Z_AXIS,ARG1)
300 CONTINUE
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400 CONTINUE
+
m1 = m1 + arg_incr(E_AXIS,ARG1)
500 CONTINUE
diff --git a/fer/efi/tax_day.F b/fer/efi/tax_day.F
index a727fc5..d25e330 100644
--- a/fer/efi/tax_day.F
+++ b/fer/efi/tax_day.F
@@ -1,10 +1,45 @@
*
* tax_day.F
*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
* Jing Y. Li
* May 4th 2006
* 27-Feb-2013 ACM Fix ticket 2043: remove old code for handling single-
-* precision values coming in from argument 1
+* precision values coming in from argument
+* v695 *acm 2/15 Time axis may be an F axis or a T axis.
+
*
* This function returns day specified by the first argument (variable
* containing time values) from the second argument (variable from which time
@@ -67,7 +102,6 @@
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
- CALL ef_set_num_work_arrays(id, 1)
arg = 1
CALL ef_set_arg_name(id, arg, 'A')
@@ -91,60 +125,10 @@
RETURN
END
-
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
- SUBROUTINE tax_day_work_size(id)
-
- IMPLICIT NONE
- INCLUDE 'EF_Util.cmn'
-
- INTEGER id
-
-* **********************************************************************
-* USER CONFIGURABLE PORTION |
-* |
-* V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-* xlo, ylo, zlo, tlo, elo, flo,
-* xhi, yhi, zhi, thi, ehi, fhi)
-*
- INTEGER arg_lo_ss(6,EF_MAX_ARGS),
- . arg_hi_ss(6,EF_MAX_ARGS),
- . arg_incr (6,EF_MAX_ARGS)
- INTEGER array_num, nt1, nt2
-
- CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-* Allocate double the length of the T axis of ARG2 for REAL*8 work array.
- nt1 = arg_lo_ss(T_AXIS,ARG2)
- nt2 = nt1 +
- . 2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
- array_num = 1
- CALL ef_set_work_array_dims_6d(id, array_num,
- . nt1, 1, 1, 1, 1, 1,
- . nt2, 1, 1, 1, 1, 1)
-
-* ^
-* |
-* USER CONFIGURABLE PORTION |
-* **********************************************************************
-
- RETURN
- END
-
-
*
* In this subroutine we compute the result
*
- SUBROUTINE tax_day_compute(id, arg_1, arg_2, result, taxdat)
+ SUBROUTINE tax_day_compute(id, arg_1, arg_2, result)
IMPLICIT NONE
INCLUDE 'EF_Util.cmn'
@@ -161,10 +145,6 @@
. memresloz:memreshiz, memreslot:memreshit,
. memresloe:memreshie, memreslof:memreshif)
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
- REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
* After initialization, the 'res_' arrays contain indexing information
* for the result axes. The 'arg_' arrays will contain the indexing
* information for each variable''s axes.
@@ -186,10 +166,9 @@
CHARACTER*20 datebuf
INTEGER iyear, day_of_mon
CHARACTER*3 cmon
- INTEGER L2, LL
- LOGICAL TM_FPEQ, first
+ INTEGER L2, LL, dir
CHARACTER*255 err_msg
- REAL*8 ddate, d1, d2
+ REAL*8 ddate
INTEGER i,j,k,l, m, n
INTEGER i1, j1, k1, l1, m1, n1
@@ -197,17 +176,24 @@
CHARACTER ax_name(6)*16, ax_units(6)*16
LOGICAL backward(6), modulo(6), regular(6), tmodulo
-* Check to see if time axis of arg 2 is modulo
- CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
- . backward, modulo, regular)
- tmodulo = modulo(T_AXIS)
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
- CALL ef_get_coordinates(id, ARG2, T_AXIS,
- . arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+* Check to see if time axis of arg 2 is modulo
+ CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+ . backward, modulo, regular)
+
+* Get the direction of arg 2
+ IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = T_AXIS
+ tmodulo = modulo(T_AXIS)
+ ENDIF
+ IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = F_AXIS
+ tmodulo = modulo(F_AXIS)
+ ENDIF
n1 = arg_lo_ss(F_AXIS,ARG1)
DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -215,56 +201,54 @@
m1 = arg_lo_ss(E_AXIS,ARG1)
DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
k1 = arg_lo_ss(Z_AXIS,ARG1)
DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
- j1 = arg_lo_ss(Y_AXIS,ARG1)
- DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
- i1 = arg_lo_ss(X_AXIS,ARG1)
- DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
- first = .TRUE.
+ ddate = arg_1(i1,j1,k1,l1,m1,n1)
- l1 = arg_lo_ss(T_AXIS,ARG1)
- DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
- ddate = arg_1(i1,j1,k1,l1,m1,n1)
-
- IF ( ddate .NE. bad_flag(ARG1) ) THEN
+ IF ( ddate .NE. bad_flag(ARG1) ) THEN
* Get the date string corresponding to time ddate for the variable ARG2
- CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
-
- IF ( .NOT. tmodulo ) THEN
-* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
- READ (datebuf,420,err=900) day_of_mon, cmon, iyear
- 420 FORMAT (i2, 1x, a3, 1x, i4)
- ELSE
-* modulo: datebuf is in form "DD-MON HH:MM:SS". Read date.
- READ (datebuf,430,err=900) day_of_mon, cmon
- 430 FORMAT (i2, 1x, a3)
- ENDIF
- result(i,j,k,l,m,n) = day_of_mon
+ CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
- ELSE
+ IF ( .NOT. tmodulo ) THEN
+* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read day.
+ READ (datebuf,120,err=900) day_of_mon, cmon, iyear
+ 120 FORMAT (i2, 1x, a3, 1x, i4)
+ ELSE
+* modulo: datebuf is in form "DD-MON HH:MM:SS". Read day.
+ READ (datebuf,130,err=900) day_of_mon, cmon
+ 130 FORMAT (i2, 1x, a3)
+ ENDIF
+ result(i,j,k,l,m,n) = day_of_mon
- result(i,j,k,l,m,n) = bad_flag_result
+ ELSE
- ENDIF
+ result(i,j,k,l,m,n) = bad_flag_result
- l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400 CONTINUE
+ ENDIF
- i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100 CONTINUE
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100 CONTINUE
- j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200 CONTINUE
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200 CONTINUE
k1 = k1 + arg_incr(Z_AXIS,ARG1)
300 CONTINUE
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400 CONTINUE
+
m1 = m1 + arg_incr(E_AXIS,ARG1)
500 CONTINUE
diff --git a/fer/efi/tax_dayfrac.F b/fer/efi/tax_dayfrac.F
index 30edfa1..1ba0e10 100644
--- a/fer/efi/tax_dayfrac.F
+++ b/fer/efi/tax_dayfrac.F
@@ -1,10 +1,44 @@
*
* tax_dayfrac.F
*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
* Jing Y. Li
* May 4th 2006
* 27-Feb-2013 ACM Fix ticket 2043: remove old code for handling single-
* precision values coming in from argument 1
+* v695 *acm 2/15 Time axis may be an F axis or a T axis.
*
* This function returns day fraction ([0,1]) specified by the first argument
* (variable containing time values) from the second argument (variable from
@@ -67,7 +101,6 @@
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
- CALL ef_set_num_work_arrays(id, 1)
arg = 1
CALL ef_set_arg_name(id, arg, 'A')
@@ -91,61 +124,10 @@
RETURN
END
-
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
- SUBROUTINE tax_dayfrac_work_size(id)
-
- IMPLICIT NONE
- INCLUDE 'EF_Util.cmn'
-
- INTEGER id
-
-* **********************************************************************
-* USER CONFIGURABLE PORTION |
-* |
-* V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-* xlo, ylo, zlo, tlo, elo, flo,
-* xhi, yhi, zhi, thi, ehi, fhi)
-*
-
- INTEGER arg_lo_ss(6,EF_MAX_ARGS),
- . arg_hi_ss(6,EF_MAX_ARGS),
- . arg_incr (6,EF_MAX_ARGS)
- INTEGER array_num, nt1, nt2
-
- CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-* Allocate double the length of the T axis of ARG2 for REAL*8 work array.
- nt1 = arg_lo_ss(T_AXIS,ARG2)
- nt2 = nt1 +
- . 2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
- array_num = 1
- CALL ef_set_work_array_dims_6d(id, array_num,
- . nt1, 1, 1, 1, 1, 1,
- . nt2, 1, 1, 1, 1, 1)
-
-* ^
-* |
-* USER CONFIGURABLE PORTION |
-* **********************************************************************
-
- RETURN
- END
-
-
*
* In this subroutine we compute the result
*
- SUBROUTINE tax_dayfrac_compute(id, arg_1, arg_2, result, taxdat)
+ SUBROUTINE tax_dayfrac_compute(id, arg_1, arg_2, result)
IMPLICIT NONE
INCLUDE 'EF_Util.cmn'
@@ -162,10 +144,6 @@
. memresloz:memreshiz, memreslot:memreshit,
. memresloe:memreshie, memreslof:memreshif)
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
- REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
* After initialization, the 'res_' arrays contain indexing information
* for the result axes. The 'arg_' arrays will contain the indexing
* information for each variable''s axes.
@@ -188,10 +166,9 @@
INTEGER iyear, day_of_mon
INTEGER ihour, iminute, isec
CHARACTER*3 cmon
- INTEGER L2, LL
- LOGICAL TM_FPEQ, first
+ INTEGER L2, LL, dir
CHARACTER*255 err_msg
- REAL*8 ddate, d1, d2
+ REAL*8 ddate
INTEGER i, j, k, l, m, n
INTEGER i1, j1, k1, l1, m1, n1
@@ -199,17 +176,23 @@
CHARACTER ax_name(6)*16, ax_units(6)*16
LOGICAL backward(6), modulo(6), regular(6), tmodulo
-* Check to see if time axis of arg 2 is modulo
- CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
- . backward, modulo, regular)
- tmodulo = modulo(T_AXIS)
-
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
- CALL ef_get_coordinates(id, ARG2, T_AXIS,
- . arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+* Check to see if time axis of arg 2 is modulo
+ CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+ . backward, modulo, regular)
+
+* Get the direction of arg 2
+ IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = T_AXIS
+ tmodulo = modulo(T_AXIS)
+ ENDIF
+ IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = F_AXIS
+ tmodulo = modulo(F_AXIS)
+ ENDIF
n1 = arg_lo_ss(F_AXIS,ARG1)
DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -217,56 +200,54 @@
m1 = arg_lo_ss(E_AXIS,ARG1)
DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
k1 = arg_lo_ss(Z_AXIS,ARG1)
DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
- j1 = arg_lo_ss(Y_AXIS,ARG1)
- DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
- i1 = arg_lo_ss(X_AXIS,ARG1)
- DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
- first = .TRUE.
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
- l1 = arg_lo_ss(T_AXIS,ARG1)
- DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
- ddate = arg_1(i1,j1,k1,l1,m1,n1)
- IF ( ddate .NE. bad_flag(ARG1) ) THEN
+ ddate = arg_1(i1,j1,k1,l1,m1,n1)
+ IF ( ddate .NE. bad_flag(ARG1) ) THEN
* Get the date string corresponding to time ddate for the variable ARG2
- CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
-
- IF ( .NOT. tmodulo ) THEN
-* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read time.
- READ (datebuf,420,err=900) ihour, iminute, isec
- 420 FORMAT (11x, 3(1x,i2))
- ELSE
-* modulo: datebuf is in form "DD-MON HH:MM:SS". Read time.
- READ (datebuf,430,err=900) ihour, iminute, isec
- 430 FORMAT (6x, 3(1x,i2))
- ENDIF
- result(i,j,k,l,m,n) = ( (isec / 60. + iminute) / 60.
+ CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
+
+ IF ( .NOT. tmodulo ) THEN
+* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read time.
+ READ (datebuf,420,err=900) ihour, iminute, isec
+ 420 FORMAT (11x, 3(1x,i2))
+ ELSE
+* modulo: datebuf is in form "DD-MON HH:MM:SS". Read time.
+ READ (datebuf,430,err=900) ihour, iminute, isec
+ 430 FORMAT (6x, 3(1x,i2))
+ ENDIF
+ result(i,j,k,l,m,n) = ( (isec / 60. + iminute) / 60.
. + ihour ) / 24.
- ELSE
-
- result(i,j,k,l,m,n) = bad_flag_result
+ ELSE
- ENDIF
+ result(i,j,k,l,m,n) = bad_flag_result
- l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400 CONTINUE
+ ENDIF
- i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100 CONTINUE
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100 CONTINUE
- j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200 CONTINUE
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200 CONTINUE
k1 = k1 + arg_incr(Z_AXIS,ARG1)
300 CONTINUE
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400 CONTINUE
+
m1 = m1 + arg_incr(E_AXIS,ARG1)
500 CONTINUE
diff --git a/fer/efi/tax_jday.F b/fer/efi/tax_jday.F
index 34e808c..c0aa739 100644
--- a/fer/efi/tax_jday.F
+++ b/fer/efi/tax_jday.F
@@ -1,10 +1,44 @@
*
* tax_jday.F
*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
* Jing Y. Li
* May 4th 2006
* 27-Feb-2013 ACM Fix ticket 2043: remove old code for handling single-
* precision values coming in from argument 1
+* v695 *acm 2/15 Time axis may be an F axis or a T axis.
*
* This function returns day of current year specified by the first argument
* (variable containing time values) from the second argument (variable from
@@ -67,7 +101,6 @@
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
- CALL ef_set_num_work_arrays(id, 1)
arg = 1
CALL ef_set_arg_name(id, arg, 'A')
@@ -93,59 +126,9 @@
*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
- SUBROUTINE tax_jday_work_size(id)
-
- IMPLICIT NONE
- INCLUDE 'EF_Util.cmn'
-
- INTEGER id
-
-* **********************************************************************
-* USER CONFIGURABLE PORTION |
-* |
-* V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-* xlo, ylo, zlo, tlo, elo, flo,
-* xhi, yhi, zhi, thi, ehi, fhi)
-*
-
- INTEGER arg_lo_ss(6,EF_MAX_ARGS),
- . arg_hi_ss(6,EF_MAX_ARGS),
- . arg_incr (6,EF_MAX_ARGS)
- INTEGER array_num, nt1, nt2
-
- CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-* Allocate double the length of the T axis of ARG2 for REAL*8 work array.
- nt1 = arg_lo_ss(T_AXIS,ARG2)
- nt2 = nt1 +
- . 2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
- array_num = 1
- CALL ef_set_work_array_dims_6d(id, array_num,
- . nt1, 1, 1, 1, 1, 1,
- . nt2, 1, 1, 1, 1, 1)
-
-* ^
-* |
-* USER CONFIGURABLE PORTION |
-* **********************************************************************
-
- RETURN
- END
-
-
-*
* In this subroutine we compute the result
*
- SUBROUTINE tax_jday_compute(id, arg_1, arg_2, result, taxdat)
+ SUBROUTINE tax_jday_compute(id, arg_1, arg_2, result)
IMPLICIT NONE
INCLUDE 'EF_Util.cmn'
@@ -162,10 +145,6 @@
. memresloz:memreshiz, memreslot:memreshit,
. memresloe:memreshie, memreslof:memreshif)
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
- REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
* After initialization, the 'res_' arrays contain indexing information
* for the result axes. The 'arg_' arrays will contain the indexing
* information for each variable''s axes.
@@ -187,10 +166,9 @@
CHARACTER*20 datebuf
INTEGER iyear, day_of_mon, day_of_year, days_this_year
CHARACTER*3 cmon
- INTEGER L2, LL
- LOGICAL TM_FPEQ, first
+ INTEGER L2, LL, dir
CHARACTER*255 err_msg
- REAL*8 ddate, d1, d2
+ REAL*8 ddate
INTEGER i, j, k, l, m, n
INTEGER i1, j1, k1, l1, m1, n1
@@ -198,17 +176,23 @@
CHARACTER ax_name(6)*16, ax_units(6)*16
LOGICAL backward(6), modulo(6), regular(6), tmodulo
-* Check to see if time axis of arg 2 is modulo
- CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
- . backward, modulo, regular)
- tmodulo = modulo(T_AXIS)
-
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
- CALL ef_get_coordinates(id, ARG2, T_AXIS,
- . arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+* Check to see if time axis of arg 2 is modulo
+ CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+ . backward, modulo, regular)
+
+* Get the direction of arg 2
+ IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = T_AXIS
+ tmodulo = modulo(T_AXIS)
+ ENDIF
+ IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = F_AXIS
+ tmodulo = modulo(F_AXIS)
+ ENDIF
n1 = arg_lo_ss(F_AXIS,ARG1)
DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -216,59 +200,57 @@
m1 = arg_lo_ss(E_AXIS,ARG1)
DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
k1 = arg_lo_ss(Z_AXIS,ARG1)
DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
- j1 = arg_lo_ss(Y_AXIS,ARG1)
- DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
- i1 = arg_lo_ss(X_AXIS,ARG1)
- DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
- first = .TRUE.
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
- l1 = arg_lo_ss(T_AXIS,ARG1)
- DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
- ddate = arg_1(i1,j1,k1,l1,m1,n1)
- IF ( ddate .NE. bad_flag(ARG1) ) THEN
+ ddate = arg_1(i1,j1,k1,l1,m1,n1)
+ IF ( ddate .NE. bad_flag(ARG1) ) THEN
* Get the date string corresponding to time ddate for the variable ARG2
- CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
+ CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
- IF ( .NOT. tmodulo ) THEN
-* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
- READ (datebuf,420,err=900) day_of_mon, cmon, iyear
- 420 FORMAT (i2, 1x, a3, 1x, i4)
- ELSE
-* modulo: Datebuf is in form "DD-MON HH:MM:SS". Read date.
- READ (datebuf,430,err=900) day_of_mon, cmon
- 430 FORMAT (i2, 1x, a3)
- iyear = 1901 ! nominally non-leap year
- ENDIF
-
- CALL JULIAN_DAY_OF_YEAR(cmon, day_of_mon, iyear,
- . day_of_year, days_this_year)
- result(i,j,k,l,m,n) = day_of_year
+ IF ( .NOT. tmodulo ) THEN
+* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
+ READ (datebuf,420,err=900) day_of_mon, cmon, iyear
+ 420 FORMAT (i2, 1x, a3, 1x, i4)
+ ELSE
+* modulo: Datebuf is in form "DD-MON HH:MM:SS". Read date.
+ READ (datebuf,430,err=900) day_of_mon, cmon
+ 430 FORMAT (i2, 1x, a3)
+ iyear = 1901 ! nominally non-leap year
+ ENDIF
- ELSE
+ CALL JULIAN_DAY_OF_YEAR(cmon, day_of_mon, iyear,
+ . day_of_year, days_this_year)
+ result(i,j,k,l,m,n) = day_of_year
- result(i,j,k,l,m,n) = bad_flag_result
+ ELSE
- ENDIF
+ result(i,j,k,l,m,n) = bad_flag_result
- l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400 CONTINUE
+ ENDIF
- i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100 CONTINUE
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100 CONTINUE
- j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200 CONTINUE
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200 CONTINUE
k1 = k1 + arg_incr(Z_AXIS,ARG1)
300 CONTINUE
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400 CONTINUE
+
m1 = m1 + arg_incr(E_AXIS,ARG1)
500 CONTINUE
diff --git a/fer/efi/tax_jday1900.F b/fer/efi/tax_jday1900.F
index cadf019..a3e8785 100644
--- a/fer/efi/tax_jday1900.F
+++ b/fer/efi/tax_jday1900.F
@@ -1,10 +1,44 @@
*
* tax_jday1900.F
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
*
* Jing Y. Li
* May 4th 2006
* 27-Feb-2013 ACM Fix ticket 2043: remove old code for handling single-
* precision values coming in from argument 1
+* v695 *acm 2/15 Time axis may be an F axis or a T axis.
*
* This function returns day of current year specified by the first argument
* (variable containing time values) from the second argument (variable from
@@ -68,7 +102,6 @@
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
- CALL ef_set_num_work_arrays(id, 1)
arg = 1
CALL ef_set_arg_name(id, arg, 'A')
@@ -92,60 +125,10 @@
RETURN
END
-
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
- SUBROUTINE tax_jday1900_work_size(id)
-
- IMPLICIT NONE
- INCLUDE 'EF_Util.cmn'
-
- INTEGER id
-
-* **********************************************************************
-* USER CONFIGURABLE PORTION |
-* |
-* V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-* xlo, ylo, zlo, tlo, elo, flo,
-* xhi, yhi, zhi, thi, ehi, fhi)
-*
- INTEGER arg_lo_ss(6,EF_MAX_ARGS),
- . arg_hi_ss(6,EF_MAX_ARGS),
- . arg_incr (6,EF_MAX_ARGS)
- INTEGER array_num, nt1, nt2
-
- CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-* Allocate double the length of the T axis of ARG2 for REAL*8 work array.
- nt1 = arg_lo_ss(T_AXIS,ARG2)
- nt2 = nt1 +
- . 2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
- array_num = 1
- CALL ef_set_work_array_dims_6d(id, array_num,
- . nt1, 1, 1, 1, 1, 1,
- . nt2, 1, 1, 1, 1, 1)
-
-* ^
-* |
-* USER CONFIGURABLE PORTION |
-* **********************************************************************
-
- RETURN
- END
-
-
*
* In this subroutine we compute the result
*
- SUBROUTINE tax_jday1900_compute(id, arg_1, arg_2, result, taxdat)
+ SUBROUTINE tax_jday1900_compute(id, arg_1, arg_2, result)
IMPLICIT NONE
INCLUDE 'EF_Util.cmn'
@@ -162,10 +145,6 @@
. memresloz:memreshiz, memreslot:memreshit,
. memresloe:memreshie, memreslof:memreshif)
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
- REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
* After initialization, the 'res_' arrays contain indexing information
* for the result axes. The 'arg_' arrays will contain the indexing
* information for each variable''s axes.
@@ -187,10 +166,9 @@
CHARACTER*20 datebuf
INTEGER iyear, day_of_mon, day_since_1900
CHARACTER*3 cmon
- INTEGER L2, LL
- LOGICAL TM_FPEQ, first
+ INTEGER L2, LL, dir
CHARACTER*255 err_msg
- REAL*8 ddate, d1, d2
+ REAL*8 ddate
INTEGER i, j, k, l, m, n
INTEGER i1, j1, k1, l1, m1, n1
@@ -198,20 +176,29 @@
CHARACTER ax_name(6)*16, ax_units(6)*16
LOGICAL backward(6), modulo(6), regular(6)
-* Check to see if time axis of arg 2 is modulo
- CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
- . backward, modulo, regular)
- IF ( modulo(T_AXIS) ) THEN
- WRITE (err_msg, *) 'Function not valid for modulo time axis'
- GO TO 999
- ENDIF
-
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
- CALL ef_get_coordinates(id, ARG2, T_AXIS,
- . arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+* Check to see if time axis of arg 2 is modulo
+ CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+ . backward, modulo, regular)
+
+* Get the direction of arg 2
+ IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = T_AXIS
+ IF ( modulo(T_AXIS) ) THEN
+ WRITE (err_msg, *) 'Function not valid for modulo time axis'
+ GO TO 999
+ ENDIF
+ ENDIF
+ IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = F_AXIS
+ IF ( modulo(T_AXIS) ) THEN
+ WRITE (err_msg, *) 'Function not valid for modulo F axis'
+ GO TO 999
+ ENDIF
+ ENDIF
n1 = arg_lo_ss(F_AXIS,ARG1)
DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -219,52 +206,50 @@
m1 = arg_lo_ss(E_AXIS,ARG1)
DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
k1 = arg_lo_ss(Z_AXIS,ARG1)
DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
- j1 = arg_lo_ss(Y_AXIS,ARG1)
- DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
- i1 = arg_lo_ss(X_AXIS,ARG1)
- DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
- first = .TRUE.
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
- l1 = arg_lo_ss(T_AXIS,ARG1)
- DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
- ddate = arg_1(i1,j1,k1,l1,m1,n1)
- IF ( ddate .NE. bad_flag(ARG1) ) THEN
+ ddate = arg_1(i1,j1,k1,l1,m1,n1)
+ IF ( ddate .NE. bad_flag(ARG1) ) THEN
* Get the date string corresponding to time ddate for the variable ARG2
- CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
+ CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
-* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
- READ (datebuf, 420, err=900) day_of_mon, cmon, iyear
+* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
+ READ (datebuf, 420, err=900) day_of_mon, cmon, iyear
420 FORMAT (i2, 1x, a3, 1x, i4)
- CALL JULIAN_DAY_OF_YEAR1900(cmon, day_of_mon, iyear,
+ CALL JULIAN_DAY_OF_YEAR1900(cmon, day_of_mon, iyear,
. day_since_1900)
- result(i,j,k,l,m,n) = day_since_1900
-
- ELSE
+ result(i,j,k,l,m,n) = day_since_1900
- result(i,j,k,l,m,n) = bad_flag_result
+ ELSE
- ENDIF
+ result(i,j,k,l,m,n) = bad_flag_result
- l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400 CONTINUE
+ ENDIF
- i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100 CONTINUE
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100 CONTINUE
- j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200 CONTINUE
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200 CONTINUE
k1 = k1 + arg_incr(Z_AXIS,ARG1)
300 CONTINUE
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400 CONTINUE
+
m1 = m1 + arg_incr(E_AXIS,ARG1)
500 CONTINUE
diff --git a/fer/efi/tax_month.F b/fer/efi/tax_month.F
index f3ae201..c3261ff 100644
--- a/fer/efi/tax_month.F
+++ b/fer/efi/tax_month.F
@@ -1,10 +1,43 @@
*
* taxmonth.F
*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
* Jing Y. Li
* May 4th 2006
* 27-Feb-2013 ACM Fix ticket 2043: remove old code for handling single-
* precision values coming in from argument 1
+* v695 *acm 2/15 Time axis may be an F axis or a T axis.
*
* This function returns month specified by the first argument (variable
* containing time values) from the second argument (variable from which time
@@ -145,7 +178,7 @@
*
* In this subroutine we compute the result
*
- SUBROUTINE tax_month_compute(id, arg_1, arg_2, result, taxdat)
+ SUBROUTINE tax_month_compute(id, arg_1, arg_2, result)
IMPLICIT NONE
INCLUDE 'EF_Util.cmn'
@@ -162,10 +195,6 @@
. memresloz:memreshiz, memreslot:memreshit,
. memresloe:memreshie, memreslof:memreshif)
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
- REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
* After initialization, the 'res_' arrays contain indexing information
* for the result axes. The 'arg_' arrays will contain the indexing
* information for each variable''s axes.
@@ -187,10 +216,9 @@
CHARACTER*20 datebuf
INTEGER iyear, imon, day_of_mon, mm
CHARACTER*3 cmon
- INTEGER L2, LL
- LOGICAL TM_FPEQ, first
+ INTEGER L2, LL, dir
CHARACTER*255 err_msg
- REAL*8 ddate, d1, d2
+ REAL*8 ddate
INTEGER i, j, k, l, m, n
INTEGER i1, j1, k1, l1, m1, n1
@@ -202,17 +230,23 @@
DATA months/'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL',
. 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'/
-* Check to see if time axis of arg 2 is modulo
- CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
- . backward, modulo, regular)
- tmodulo = modulo(T_AXIS)
-
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
- CALL ef_get_coordinates(id, ARG2, T_AXIS,
- . arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+* Check to see if time axis of arg 2 is modulo
+ CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+ . backward, modulo, regular)
+
+* Get the direction of arg 2
+ IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = T_AXIS
+ tmodulo = modulo(T_AXIS)
+ ENDIF
+ IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = F_AXIS
+ tmodulo = modulo(F_AXIS)
+ ENDIF
n1 = arg_lo_ss(F_AXIS,ARG1)
DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -220,66 +254,65 @@
m1 = arg_lo_ss(E_AXIS,ARG1)
DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
k1 = arg_lo_ss(Z_AXIS,ARG1)
DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
- j1 = arg_lo_ss(Y_AXIS,ARG1)
- DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
- i1 = arg_lo_ss(X_AXIS,ARG1)
- DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
- first = .TRUE.
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
- l1 = arg_lo_ss(T_AXIS,ARG1)
- DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ ddate = arg_1(i1,j1,k1,l1,m1,n1)
- ddate = arg_1(i1,j1,k1,l1,m1,n1)
- IF ( ddate .NE. bad_flag(ARG1) ) THEN
+ IF ( ddate .NE. bad_flag(ARG1) ) THEN
* Get the date string corresponding to time ddate for the variable ARG2
- CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
-
- IF ( .NOT. tmodulo ) THEN
-* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
- READ (datebuf,420,err=900) day_of_mon, cmon, iyear
- 420 FORMAT (i2, 1x, a3, 1x, i4)
- ELSE
-* modulo: Datebuf is in form "DD-MON HH:MM:SS". Read date.
- READ (datebuf,430,err=900) day_of_mon, cmon
- 430 FORMAT (i2, 1x, a3)
- ENDIF
+ CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
- DO 440 imon = 1, 12
- IF ( cmon .EQ. months(imon) ) THEN
- result(i,j,k,l,m,n) = imon
- GOTO 450
- ENDIF
- 440 CONTINUE
+ IF ( .NOT. tmodulo ) THEN
+* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read day.
+ READ (datebuf,120,err=900) day_of_mon, cmon, iyear
+ 120 FORMAT (i2, 1x, a3, 1x, i4)
+ ELSE
+* modulo: datebuf is in form "DD-MON HH:MM:SS". Read day.
+ READ (datebuf,130,err=900) day_of_mon, cmon
+ 130 FORMAT (i2, 1x, a3)
+ ENDIF
-* month not matched
- result(i,j,k,l,m,n) = bad_flag_result
+ DO 440 imon = 1, 12
+ IF ( cmon .EQ. months(imon) ) THEN
+ result(i,j,k,l,m,n) = imon
+ GOTO 450
+ ENDIF
+ 440 CONTINUE
- 450 CONTINUE
+* month not matched
+ result(i,j,k,l,m,n) = bad_flag_result
- ELSE
+ 450 CONTINUE
- result(i,j,k,l,m,n) = bad_flag_result
+ ELSE
- ENDIF
+ result(i,j,k,l,m,n) = bad_flag_result
- l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400 CONTINUE
+ ENDIF
- i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100 CONTINUE
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100 CONTINUE
- j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200 CONTINUE
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200 CONTINUE
k1 = k1 + arg_incr(Z_AXIS,ARG1)
300 CONTINUE
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400 CONTINUE
+
m1 = m1 + arg_incr(E_AXIS,ARG1)
500 CONTINUE
diff --git a/fer/efi/tax_subs.F b/fer/efi/tax_subs.F
index cd6871c..2498a88 100644
--- a/fer/efi/tax_subs.F
+++ b/fer/efi/tax_subs.F
@@ -262,3 +262,54 @@ C Create a message saying arg1 values at index are duplicate
RETURN
END
+
+
+
+ SUBROUTINE TAX_REFORMAT_DATE (indate, outdate, dlen)
+
+* From tm_date_reformat, just the portion that calls TM_BREAK_FMT_DATE_C
+
+* If there is a T between the date and time (as in GRIB files) replace with a space.
+
+#include "gt_lib.parm"
+
+ CHARACTER*(*) indate, outdate
+ INTEGER dlen
+
+ CHARACTER*32 buff
+
+ INTEGER TM_BREAK_FMT_DATE_C, slen, year, month, day,
+ . hour, minute, second, status, outform
+ PARAMETER ( slen = 32)
+
+ REAL fsecond
+#ifdef sun
+ BYTE dhol(slen) !c-type Hollerith string buffers
+#else
+ INTEGER*1 dhol(slen) !c-type Hollerith string buffers
+#endif
+
+* If there is a T between the date and time (as in GRIB files) replace with a space.
+ buff = indate
+ IF (buff(11:11) .EQ. 'T') buff(11:11) = ' '
+ IF (buff(11:11) .EQ. 'Z') buff(11:11) = ' '
+
+* Break up into year, month, day, ...
+ CALL TM_FTOC_STRNG( buff(:slen), dhol, slen)
+ status = TM_BREAK_FMT_DATE_C(dhol, year, month,
+ . day, hour, minute, fsecond)
+ IF ( status .NE. 0 ) GOTO 5100
+
+ second = NINT(fsecond) ! information loss ...
+
+* and reassemble it into the desired output format
+ outform = pdate_vax
+
+ CALL TM_MAKE_FMT_DATE ( outform, outdate, year, month, day,
+ . hour, minute, second, dlen )
+
+ 5000 RETURN
+ 5100 outdate = 'xxx'
+ dlen = 3
+ GOTO 5000
+ END
diff --git a/fer/efi/tax_times.F b/fer/efi/tax_times.F
index 84f2bdf..5b8c5f3 100644
--- a/fer/efi/tax_times.F
+++ b/fer/efi/tax_times.F
@@ -1,6 +1,38 @@
*
* tax_times.F
*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
*
* In this subroutine we provide information about
* the function. The user configurable information
diff --git a/fer/efi/tax_tstep.F b/fer/efi/tax_tstep.F
index bbfe18a..6d27c6a 100644
--- a/fer/efi/tax_tstep.F
+++ b/fer/efi/tax_tstep.F
@@ -1,10 +1,43 @@
*
* tax_tsetp.F
*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
* Jing Y. Li
* May 31 2006
* Finished March 24, 2009, ACM
* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
+* v695 *acm 2/15 Time axis may be an F axis or a T axis.
*
* This function returns time step values
*
@@ -69,7 +102,8 @@
arg = 1
CALL ef_set_arg_name(id, arg, 'A')
CALL ef_set_arg_unit(id, arg, ' ')
- CALL ef_set_arg_desc(id, arg, 'variable with reference time axis')
+ CALL ef_set_arg_desc(id, arg,
+ . 'variable with reference time or forecast axis')
CALL ef_set_axis_influence_6d(id, arg,
. YES, YES, YES, YES, YES, YES)
@@ -121,10 +155,19 @@
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-* Allocate double the length of the axes for REAL*8 work array.
- mtl = arg_lo_ss(T_AXIS,ARG1)
- mth = mtl +
- . 2 * (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1) + 1)
+
+* Get the direction of arg 1: F or T
+ IF (arg_lo_ss(T_AXIS, ARG1) .NE. ef_unspecified_int4) THEN
+ mtl = arg_lo_ss(T_AXIS,ARG1)
+ mth = mtl +
+ . (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1))
+ ENDIF
+ IF (arg_lo_ss(F_AXIS, ARG1) .NE. ef_unspecified_int4) THEN
+ mtl = arg_lo_ss(F_AXIS,ARG1)
+ mth = mtl +
+ . (arg_hi_ss(F_AXIS,ARG1) - arg_lo_ss(F_AXIS,ARG1))
+ ENDIF
+
* taxdat
CALL ef_set_work_array_dims_6d(id, 1,
@@ -170,7 +213,7 @@
* Ignore the Y/Z/T/E/F dimensions in the work arrays since
* they are not used and Fortran is column major
- REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
+ REAL*8 taxdat(wrk1lox:wrk1hix)
* After initialization, the 'res_' arrays contain indexing information
* for the result axes. The 'arg_' arrays will contain the indexing
@@ -193,21 +236,19 @@
INTEGER STR_SAME
CHARACTER*20 datebuf
CHARACTER*20 instring, t0string
- INTEGER slen
+ INTEGER slen, dir
REAL*8 ddate
CHARACTER*16 axname(6), axunits(6)
LOGICAL bkw1(6), mod1(6), reg1(6)
CHARACTER*16 tunit
REAL timesincet0
INTEGER i, j, k, l, m, n
- INTEGER l1
+ INTEGER l1, n1
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
-
- CALL ef_get_coordinates(id, ARG1, T_AXIS,
- . arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdat)
+
* Get the new time origin (t0) string
i = arg_lo_ss(X_AXIS, ARG2)
@@ -229,39 +270,83 @@
t0string = instring
ENDIF
+
+* Get the direction of arg 1: F or T
+ IF (arg_lo_ss(T_AXIS, ARG1) .NE. ef_unspecified_int4) THEN
+ CALL ef_get_coordinates(id, ARG1, T_AXIS,
+ . arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdat)
+ dir = T_AXIS
+ ENDIF
+
+ IF (arg_lo_ss(F_AXIS, ARG1) .NE. ef_unspecified_int4) THEN
+ CALL ef_get_coordinates(id, ARG1, F_AXIS,
+ . arg_lo_ss(F_AXIS, ARG1), arg_hi_ss(F_AXIS, ARG1), taxdat)
+ dir = F_AXIS
+ ENDIF
+
* Get time axis unit
CALL ef_get_axis_info_6d(id, ARG1, axname, axunits,
. bkw1, mod1, reg1)
- tunit = axunits(T_AXIS)
-
- l1 = arg_lo_ss(T_AXIS,ARG1)
- DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
-* Get the time axis value for this step
- ddate = taxdat(l1)
-* Get the date string corresponding to time ddate
- CALL ef_get_axis_dates(id, ARG1, ddate, 1, datebuf)
-* Convert to time from the new origin
- CALL time_since_t0(t0string, datebuf, tunit, timesincet0)
-
-* Assign this time from the new origin to the results
- DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
- DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
- DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
- DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
- DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ tunit = axunits(dir)
+
+ IF (dir .EQ. T_AXIS) THEN
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+* Get the time axis value for this step
+ ddate = taxdat(l1)
+* Get the date string corresponding to time ddate
+ CALL ef_get_axis_dates(id, ARG1, ddate, dir, 1, datebuf)
+* Convert to time from the new origin
+ CALL time_since_t0(t0string, datebuf, tunit, timesincet0)
+
+* Assign this time from the new origin to the results
+ DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+ DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+ DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+ DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
result(i,j,k,l,m,n) = timesincet0
- 100 CONTINUE
- 200 CONTINUE
- 300 CONTINUE
- 500 CONTINUE
- 600 CONTINUE
-
- l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400 CONTINUE
-
+ 100 CONTINUE
+ 200 CONTINUE
+ 300 CONTINUE
+ 500 CONTINUE
+ 600 CONTINUE
+
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400 CONTINUE
+
+ ELSE IF (dir .EQ. F_AXIS) THEN
+ n1 = arg_lo_ss(F_AXIS,ARG1)
+ DO 650 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+* Get the F axis value for this step
+ ddate = taxdat(n1)
+* Get the date string corresponding to time ddate
+ CALL ef_get_axis_dates(id, ARG1, ddate, dir, 1, datebuf)
+* Convert to time from the new origin
+ CALL time_since_t0(t0string, datebuf, tunit, timesincet0)
+
+* Assign this time from the new origin to the results
+ DO 550 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ DO 450 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ DO 350 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+ DO 250 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+ DO 150 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+ result(i,j,k,l,m,n) = timesincet0
+
+ 150 CONTINUE
+ 250 CONTINUE
+ 350 CONTINUE
+ 450 CONTINUE
+ 550 CONTINUE
+
+ n1 = n1 + arg_incr(F_AXIS,ARG1)
+ 650 CONTINUE
+ ENDIF
* ^
* |
* USER CONFIGURABLE PORTION |
diff --git a/fer/efi/tax_units.F b/fer/efi/tax_units.F
index 72b5257..376a92c 100644
--- a/fer/efi/tax_units.F
+++ b/fer/efi/tax_units.F
@@ -1,8 +1,41 @@
*
* tax_units.F
*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
* Jing Y. Li
* May 4th 2006
+* v695 *acm 2/15 Time axis may be an F axis or a T axis.
*
* This function returns the time axis unit value in seconds.
*
@@ -117,7 +150,7 @@
* |
* V
INTEGER i, j, k, l, m, n
- INTEGER iun
+ INTEGER iun, dir
CHARACTER*16 axname(6), axunits(6)
LOGICAL bkw1(6), mod1(6), reg1(6)
CHARACTER*255 err_msg
@@ -126,6 +159,10 @@
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+* Get the direction of arg 1
+ IF (arg_lo_ss(T_AXIS, ARG1) .NE. ef_unspecified_int4) dir = T_AXIS
+ IF (arg_lo_ss(F_AXIS, ARG1) .NE. ef_unspecified_int4) dir = F_AXIS
+
i = res_lo_ss(X_AXIS)
j = res_lo_ss(Y_AXIS)
k = res_lo_ss(Z_AXIS)
@@ -136,18 +173,18 @@
* Get axis information
CALL ef_get_axis_info_6d(id, ARG1, axname, axunits,
. bkw1, mod1, reg1)
- CALL LOWER_CASE(axunits(T_AXIS))
+ CALL LOWER_CASE(axunits(dir))
DO 20 iun = pun_1st_time, pun_last_time
- IF ( (un_name(iun) .EQ. axunits(T_AXIS)) .OR.
- . (un_name(iun)(1:2) .EQ. axunits(T_AXIS)(1:2)) .OR.
+ IF ( (un_name(iun) .EQ. axunits(dir)) .OR.
+ . (un_name(iun)(1:2) .EQ. axunits(dir)(1:2)) .OR.
. ( (un_name(iun) .EQ. 'yr') .AND.
- . (axunits(T_AXIS) .EQ. 'year') ) ) THEN
+ . (axunits(dir) .EQ. 'year') ) ) THEN
result(i,j,k,l,m,n) = un_convert(iun)
RETURN
ENDIF
20 CONTINUE
- WRITE(err_msg,*) 'Unrecognized time axis unit ', axunits(T_AXIS)
+ WRITE(err_msg,*) 'Unrecognized time axis unit ', axunits(dir)
CALL ef_bail_out (id, err_msg)
* ^
diff --git a/fer/efi/tax_year.F b/fer/efi/tax_year.F
index d59b605..58b461f 100644
--- a/fer/efi/tax_year.F
+++ b/fer/efi/tax_year.F
@@ -1,11 +1,43 @@
*
* tax_year.F
*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
* Jing Y. Li
* May 4th 2006
* 27-Feb-2013 ACM Fix ticket 2043: remove old code for handling single-
* precision values coming in from argument 1
-
+* v695 *acm 2/15 Time axis may be an F axis or a T axis.
*
* This function returns year specified by the first argument (variable
* containing time values) from the second argument (variable from which time
@@ -67,7 +99,6 @@
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
- CALL ef_set_num_work_arrays(id, 1)
arg = 1
CALL ef_set_arg_name(id, arg, 'A')
@@ -91,61 +122,10 @@
RETURN
END
-
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
- SUBROUTINE tax_year_work_size(id)
-
- IMPLICIT NONE
- INCLUDE 'EF_Util.cmn'
-
- INTEGER id
-
-* **********************************************************************
-* USER CONFIGURABLE PORTION |
-* |
-* V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-* xlo, ylo, zlo, tlo, elo, flo,
-* xhi, yhi, zhi, thi, ehi, fhi)
-*
-
- INTEGER arg_lo_ss(6,EF_MAX_ARGS),
- . arg_hi_ss(6,EF_MAX_ARGS),
- . arg_incr (6,EF_MAX_ARGS)
- INTEGER array_num, nt1, nt2
-
- CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-* Allocate double the length of the T axis of ARG2 for REAL*8 work array.
- nt1 = arg_lo_ss(T_AXIS,ARG2)
- nt2 = nt1 +
- . 2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
- array_num = 1
- CALL ef_set_work_array_dims_6d(id, array_num,
- . nt1, 1, 1, 1, 1, 1,
- . nt2, 1, 1, 1, 1, 1)
-
-* ^
-* |
-* USER CONFIGURABLE PORTION |
-* **********************************************************************
-
- RETURN
- END
-
-
*
* In this subroutine we compute the result
*
- SUBROUTINE tax_year_compute(id, arg_1, arg_2, result, taxdat)
+ SUBROUTINE tax_year_compute(id, arg_1, arg_2, result)
IMPLICIT NONE
INCLUDE 'EF_Util.cmn'
@@ -187,81 +167,91 @@
CHARACTER*20 datebuf
INTEGER iyear, day_of_mon
CHARACTER*3 cmon
- INTEGER L2, LL
- LOGICAL TM_FPEQ, first
+ INTEGER L2, LL, dir
CHARACTER*255 err_msg
- REAL*8 ddate, d1, d2
+ REAL*8 ddate
INTEGER i, j, k, l, m, n
INTEGER i1, j1, k1, l1, m1, n1
* variables for checking axis characteristics (modulo axes)
CHARACTER ax_name(6)*16, ax_units(6)*16
LOGICAL backward(6), modulo(6), regular(6)
+
+
+ CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
* Check to see if time axis of arg 2 is modulo
CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
. backward, modulo, regular)
- IF ( modulo(T_AXIS) ) THEN
- WRITE (err_msg, *) 'Function not valid for modulo time axis'
- GO TO 999
- ENDIF
+* Get the direction of arg 2
+ IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = T_AXIS
+ IF ( modulo(T_AXIS) ) THEN
+ WRITE (err_msg, *) 'Function not valid for modulo time axis'
+ GO TO 999
+ ENDIF
+ ENDIF
+ IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = F_AXIS
+ IF ( modulo(T_AXIS) ) THEN
+ WRITE (err_msg, *) 'Function not valid for modulo F axis'
+ GO TO 999
+ ENDIF
+ ENDIF
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
- CALL ef_get_coordinates(id, ARG2, T_AXIS,
- . arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
-
n1 = arg_lo_ss(F_AXIS,ARG1)
DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
m1 = arg_lo_ss(E_AXIS,ARG1)
DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
k1 = arg_lo_ss(Z_AXIS,ARG1)
DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
- j1 = arg_lo_ss(Y_AXIS,ARG1)
- DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
- i1 = arg_lo_ss(X_AXIS,ARG1)
- DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
- first = .TRUE.
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
- l1 = arg_lo_ss(T_AXIS,ARG1)
- DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-
- ddate = arg_1(i1,j1,k1,l1,m1,n1)
- IF ( ddate .NE. bad_flag(ARG1) ) THEN
+ ddate = arg_1(i1,j1,k1,l1,m1,n1)
+ IF ( ddate .NE. bad_flag(ARG1) ) THEN
* Get the date string corresponding to time ddate for the variable ARG2
- CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
-
-* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
- READ (datebuf,420,err=900) day_of_mon, cmon, iyear
- 420 FORMAT (i2, 1x, a3, 1x, i4)
- result(i,j,k,l,m,n) = iyear
+ CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
- ELSE
+* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
+ READ (datebuf,420,err=900) day_of_mon, cmon, iyear
+ 420 FORMAT (i2, 1x, a3, 1x, i4)
+ result(i,j,k,l,m,n) = iyear
- result(i,j,k,l,m,n) = bad_flag_result
+ ELSE
- ENDIF
+ result(i,j,k,l,m,n) = bad_flag_result
- l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400 CONTINUE
+ ENDIF
- i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100 CONTINUE
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100 CONTINUE
- j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200 CONTINUE
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200 CONTINUE
k1 = k1 + arg_incr(Z_AXIS,ARG1)
300 CONTINUE
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400 CONTINUE
+
m1 = m1 + arg_incr(E_AXIS,ARG1)
500 CONTINUE
diff --git a/fer/efi/tax_yearfrac.F b/fer/efi/tax_yearfrac.F
index 096b1b7..8aee864 100644
--- a/fer/efi/tax_yearfrac.F
+++ b/fer/efi/tax_yearfrac.F
@@ -1,10 +1,44 @@
*
* tax_yearfrac.F
*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
* Jing Y. Li
* May 4th 2006
* 27-Feb-2013 ACM Fix ticket 2043: remove old code for handling single-
* precision values coming in from argument 1
+* v695 *acm 2/15 Time axis may be an F axis or a T axis.
*
* This function returns fraction of year specified by the first argument
* (variable containing time values) from the second argument (variable from
@@ -67,7 +101,6 @@
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
. IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
- CALL ef_set_num_work_arrays(id, 1)
arg = 1
CALL ef_set_arg_name(id, arg, 'A')
@@ -91,61 +124,10 @@
RETURN
END
-
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
- SUBROUTINE tax_yearfrac_work_size(id)
-
- IMPLICIT NONE
- INCLUDE 'EF_Util.cmn'
-
- INTEGER id
-
-* **********************************************************************
-* USER CONFIGURABLE PORTION |
-* |
-* V
-
-*
-* Set the work array X/Y/Z/T/E/F dimensions
-*
-* ef_set_work_array_dims_6d(id, array #,
-* xlo, ylo, zlo, tlo, elo, flo,
-* xhi, yhi, zhi, thi, ehi, fhi)
-*
-
- INTEGER arg_lo_ss(6,EF_MAX_ARGS),
- . arg_hi_ss(6,EF_MAX_ARGS),
- . arg_incr (6,EF_MAX_ARGS)
- INTEGER array_num, nt1, nt2
-
- CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-* Allocate double the length of the T axis of ARG2 for REAL*8 work array.
- nt1 = arg_lo_ss(T_AXIS,ARG2)
- nt2 = nt1 +
- . 2 * (arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2) + 1)
-
- array_num = 1
- CALL ef_set_work_array_dims_6d(id, array_num,
- . nt1, 1, 1, 1, 1, 1,
- . nt2, 1, 1, 1, 1, 1)
-
-* ^
-* |
-* USER CONFIGURABLE PORTION |
-* **********************************************************************
-
- RETURN
- END
-
-
*
* In this subroutine we compute the result
*
- SUBROUTINE tax_yearfrac_compute(id, arg_1, arg_2, result, taxdat)
+ SUBROUTINE tax_yearfrac_compute(id, arg_1, arg_2, result)
IMPLICIT NONE
INCLUDE 'EF_Util.cmn'
@@ -162,10 +144,6 @@
. memresloz:memreshiz, memreslot:memreshit,
. memresloe:memreshie, memreslof:memreshif)
-* Ignore the Y/Z/T/E/F dimensions in the work arrays since
-* they are not used and Fortran is column major
- REAL*8 taxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-
* After initialization, the 'res_' arrays contain indexing information
* for the result axes. The 'arg_' arrays will contain the indexing
* information for each variable''s axes.
@@ -187,10 +165,9 @@
CHARACTER*20 datebuf
INTEGER iyear, day_of_mon, day_of_year, days_this_year
CHARACTER*3 cmon
- INTEGER L2, LL
- LOGICAL TM_FPEQ, first
+ INTEGER L2, LL, dir
CHARACTER*255 err_msg
- REAL*8 ddate, d1, d2
+ REAL*8 ddate, hr, min, sec, dayfrac
INTEGER i, j, k, l, m, n
INTEGER i1, j1, k1, l1, m1, n1
@@ -198,17 +175,24 @@
CHARACTER ax_name(6)*16, ax_units(6)*16
LOGICAL backward(6), modulo(6), regular(6), tmodulo
-* Check to see if time axis of arg 2 is modulo
- CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
- . backward, modulo, regular)
- tmodulo = modulo(T_AXIS)
-
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
- CALL ef_get_coordinates(id, ARG2, T_AXIS,
- . arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2), taxdat)
+* Check to see if time axis of arg 2 is modulo
+ CALL ef_get_axis_info_6d(id, ARG2, ax_name, ax_units,
+ . backward, modulo, regular)
+
+* Get the direction of arg 2
+ IF (arg_lo_ss(T_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = T_AXIS
+ tmodulo = modulo(T_AXIS)
+ ENDIF
+ IF (arg_lo_ss(F_AXIS, ARG2) .NE. ef_unspecified_int4) THEN
+ dir = F_AXIS
+ tmodulo = modulo(F_AXIS)
+ ENDIF
+
n1 = arg_lo_ss(F_AXIS,ARG1)
DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
@@ -216,60 +200,61 @@
m1 = arg_lo_ss(E_AXIS,ARG1)
DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
k1 = arg_lo_ss(Z_AXIS,ARG1)
DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
- j1 = arg_lo_ss(Y_AXIS,ARG1)
- DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
- i1 = arg_lo_ss(X_AXIS,ARG1)
- DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
- first = .TRUE.
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
- l1 = arg_lo_ss(T_AXIS,ARG1)
- DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ ddate = arg_1(i1,j1,k1,l1,m1,n1)
- ddate = arg_1(i1,j1,k1,l1,m1,n1)
- IF ( ddate .NE. bad_flag(ARG1) ) THEN
+ IF ( ddate .NE. bad_flag(ARG1) ) THEN
* Get the date string corresponding to time ddate for the variable ARG2
- CALL EF_GET_AXIS_DATES(id, ARG2, ddate, 1, datebuf)
-
- IF ( .NOT. tmodulo ) THEN
-* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
- READ (datebuf,420,err=900) day_of_mon, cmon, iyear
- 420 FORMAT (i2, 1x, a3, 1x, i4)
- ELSE
-* modulo: Datebuf is in form "DD-MON HH:MM:SS". Read date.
- READ (datebuf,430,err=900) day_of_mon, cmon
- 430 FORMAT (i2, 1x, a3)
- iyear = 1901 ! nominally non-leap year
- ENDIF
+ CALL EF_GET_AXIS_DATES(id, ARG2, ddate, dir, 1, datebuf)
- CALL JULIAN_DAY_OF_YEAR(cmon, day_of_mon, iyear,
- . day_of_year, days_this_year)
- result(i,j,k,l,m,n) = REAL(day_of_year) /
- . REAL(days_this_year)
+ IF ( .NOT. tmodulo ) THEN
+* datebuf is in form "DD-MON-YEAR HH:MM:SS". Read date.
+ READ (datebuf,420,err=900) day_of_mon, cmon, iyear,
+ . hr, min, sec
+ 420 FORMAT (i2, 1x, a3, 1x, i4, 3(1x,f2.0))
+ ELSE
+* modulo: Datebuf is in form "DD-MON HH:MM:SS". Read date.
+ READ (datebuf,430,err=900) day_of_mon, cmon,
+ . hr, min, sec
+ 430 FORMAT (i2, 1x, a3, 3(1x,f2.0))
+ iyear = 1901 ! nominally non-leap year
+ ENDIF
- ELSE
+ CALL JULIAN_DAY_OF_YEAR(cmon, day_of_mon, iyear,
+ . day_of_year, days_this_year)
+ dayfrac = (hr + min/60 + sec/3600)/24.
+ result(i,j,k,l,m,n) = (REAL(day_of_year) + dayfrac) / REAL(days_this_year)
- result(i,j,k,l,m,n) = bad_flag_result
+ ELSE
- ENDIF
+ result(i,j,k,l,m,n) = bad_flag_result
- l1 = l1 + arg_incr(T_AXIS,ARG1)
- 400 CONTINUE
+ ENDIF
- i1 = i1 + arg_incr(X_AXIS,ARG1)
- 100 CONTINUE
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100 CONTINUE
- j1 = j1 + arg_incr(Y_AXIS,ARG1)
- 200 CONTINUE
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 200 CONTINUE
k1 = k1 + arg_incr(Z_AXIS,ARG1)
300 CONTINUE
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 400 CONTINUE
+
m1 = m1 + arg_incr(E_AXIS,ARG1)
500 CONTINUE
diff --git a/fer/efi/tax_units.F b/fer/efi/time_reformat.F
similarity index 55%
copy from fer/efi/tax_units.F
copy to fer/efi/time_reformat.F
index 72b5257..28586f7 100644
--- a/fer/efi/tax_units.F
+++ b/fer/efi/time_reformat.F
@@ -1,12 +1,10 @@
*
-* tax_units.F
+* time_reformat.F
*
-* Jing Y. Li
-* May 4th 2006
+* Jan 2015
*
-* This function returns the time axis unit value in seconds.
-*
-
+* Given a time string, translate it to a Ferret-formatted string
+* dd-Mon-YYYY hh:mm:ss
*
* In this subroutine we provide information about
* the function. The user configurable information
@@ -17,7 +15,7 @@
* num_args Required number of arguments
*
* axis_inheritance Type of axis for the result
-* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, time_reformat )
* CUSTOM - user defined axis
* IMPLIED_BY_ARGS - same axis as the incoming argument
* NORMAL - the result is normal to this axis
@@ -26,26 +24,10 @@
* piecemeal_ok For memory optimization:
* axes where calculation may be performed piecemeal
* ( YES, NO )
-*
-*
-* For each argument we provide the following information:
-*
-* name Text name for an argument
-*
-* unit Text units for an argument
-*
-* desc Text description of an argument
-*
-* axis_influence Are this argument's axes the same as the result grid?
-* ( YES, NO )
-*
-* axis_extend How much does Ferret need to extend arg limits relative to result
-*
-* 2006-05-11 It only works with the unit naming convention in xunits_data.F
- SUBROUTINE tax_units_init(id)
- IMPLICIT NONE
+ SUBROUTINE time_reformat_init(id)
+
INCLUDE 'EF_Util.cmn'
INTEGER id, arg
@@ -56,20 +38,24 @@
* V
CALL ef_set_desc(id,
- . 'Returns units of time axis coordinate values, in seconds')
+ . 'Returns date string(s) reformatted to Ferret time-string format' )
+
CALL ef_set_num_args(id, 1)
- CALL ef_set_axis_inheritance_6d(id,
- . NORMAL, NORMAL,
- . NORMAL, NORMAL,
- . NORMAL, NORMAL)
- CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+ CALL ef_set_axis_inheritance_6d(id,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+ CALL ef_set_result_type(id, STRING_RETURN)
arg = 1
+ CALL ef_set_arg_type (id, arg, STRING_ARG)
+
CALL ef_set_arg_name(id, arg, 'A')
CALL ef_set_arg_unit(id, arg, ' ')
- CALL ef_set_arg_desc(id, arg, 'variable with reference time axis')
- CALL ef_set_axis_influence_6d(id, arg,
- . NO, NO, NO, NO, NO, NO)
+
+ CALL ef_set_arg_desc(id, arg,
+ . 'Time string(s) to convert, e.g. 1992-04-23 12:30:01')
+ CALL ef_set_axis_influence_6d(id, arg, YES, YES, YES, YES, YES, YES)
* ^
* |
@@ -79,19 +65,16 @@
RETURN
END
-*
* In this subroutine we compute the result
*
- SUBROUTINE tax_units_compute(id, arg_1, result)
+ SUBROUTINE time_reformat_compute(id, arg_1, result)
- IMPLICIT NONE
INCLUDE 'EF_Util.cmn'
INCLUDE 'EF_mem_subsc.cmn'
- INCLUDE 'xunits.cmn_text'
- EXTERNAL xunits_data
INTEGER id
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
. mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
@@ -101,7 +84,7 @@
* After initialization, the 'res_' arrays contain indexing information
* for the result axes. The 'arg_' arrays will contain the indexing
-* information for each variable''s axes.
+* information for each variable's axes.
INTEGER res_lo_ss(6),
. res_hi_ss(6),
@@ -110,50 +93,81 @@
. arg_hi_ss(6,EF_MAX_ARGS),
. arg_incr (6,EF_MAX_ARGS)
- REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
* **********************************************************************
* USER CONFIGURABLE PORTION |
* |
* V
INTEGER i, j, k, l, m, n
- INTEGER iun
- CHARACTER*16 axname(6), axunits(6)
- LOGICAL bkw1(6), mod1(6), reg1(6)
- CHARACTER*255 err_msg
+ INTEGER i1, j1, k1, l1, m1, n1
+
+ INTEGER rtype, slen, status
+ CHARACTER*20 indate, outdate
+ CHARACTER*128 err_msg
+ INTEGER cal_id
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_result_type(id, rtype)
+
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
- i = res_lo_ss(X_AXIS)
- j = res_lo_ss(Y_AXIS)
- k = res_lo_ss(Z_AXIS)
- l = res_lo_ss(T_AXIS)
- m = res_lo_ss(E_AXIS)
- n = res_lo_ss(F_AXIS)
-
-* Get axis information
- CALL ef_get_axis_info_6d(id, ARG1, axname, axunits,
- . bkw1, mod1, reg1)
- CALL LOWER_CASE(axunits(T_AXIS))
- DO 20 iun = pun_1st_time, pun_last_time
- IF ( (un_name(iun) .EQ. axunits(T_AXIS)) .OR.
- . (un_name(iun)(1:2) .EQ. axunits(T_AXIS)(1:2)) .OR.
- . ( (un_name(iun) .EQ. 'yr') .AND.
- . (axunits(T_AXIS) .EQ. 'year') ) ) THEN
- result(i,j,k,l,m,n) = un_convert(iun)
- RETURN
- ENDIF
- 20 CONTINUE
-
- WRITE(err_msg,*) 'Unrecognized time axis unit ', axunits(T_AXIS)
- CALL ef_bail_out (id, err_msg)
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 600 i=res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 500 j=res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+ k1 = arg_lo_ss(Z_AXIS,ARG1)
+ DO 400 k=res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO 300 l=res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+ m1 = arg_lo_ss(E_AXIS,ARG1)
+ DO 200 m=res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+ n1 = arg_lo_ss(F_AXIS,ARG1)
+ DO 100 n=res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+C Reformat the date string and put into the result.
+ CALL ef_get_string_arg_element_6d(id, ARG1, arg_1,
+ . i1,j1,k1,l1,m1,n1,slen,indate)
+
+ CALL TAX_REFORMAT_DATE (indate, outdate, status)
+ IF (outdate(1:3) .EQ. 'xxx') GOTO 5000
+
+ slen = 20
+ CALL EF_PUT_STRING (outdate, slen,
+ . result(i,j,k,l,m,n))
+
+ n1 = n1 + arg_incr(F_AXIS,ARG1)
+ 100 CONTINUE
+
+ m1 = m1 + arg_incr(E_AXIS,ARG1)
+ 200 CONTINUE
+
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 300 CONTINUE
+
+ k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ 400 CONTINUE
+
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 500 CONTINUE
+
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 600 CONTINUE
+
* ^
* |
* USER CONFIGURABLE PORTION |
* **********************************************************************
- RETURN
+ RETURN
+ 5000 err_msg = 'Could not translate string to Ferret date format '// indate
+ CALL ef_bail_out (id, err_msg)
+
END
diff --git a/fer/efi/write_webrow_gwt.F b/fer/efi/write_webrow_gwt.F
new file mode 100644
index 0000000..89383d8
--- /dev/null
+++ b/fer/efi/write_webrow_gwt.F
@@ -0,0 +1,272 @@
+*
+* write_webrow_gwt.F
+*
+* Ansley Manke
+* April 2009
+*
+* This function writes a special webrowset file for LAS
+*
+*
+* In this subroutine we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+* CUSTOM - user defined axis
+* IMPLIED_BY_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+*
+*
+* For each argument we provide the following information:
+*
+* name Text name for an argument
+*
+* unit Text units for an argument
+*
+* desc Text description of an argument
+*
+* axis_influence Are this argument's axes the same as the result grid?
+* ( YES, NO )
+*
+* axis_extend How much does Ferret need to extend arg limits relative to result
+*
+
+
+ SUBROUTINE write_webrow_gwt_init(id)
+
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id, arg
+ CHARACTER*100 descrip
+
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ WRITE (descrip, 100)
+ CALL ef_set_desc(id, descrip)
+ 100 FORMAT (
+ . 'Write a webrowset file with cruise numbers and IDs (used by LAS)')
+
+ CALL ef_set_num_args(id, 4)
+ CALL ef_set_axis_inheritance(id, ABSTRACT,
+ . NORMAL, NORMAL, NORMAL)
+ CALL ef_set_piecemeal_ok(id, NO, NO, NO, NO)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'id')
+ CALL ef_set_arg_unit(id, arg, ' ')
+ CALL ef_set_arg_type (id, arg, STRING_ARG)
+ CALL ef_set_arg_desc(id, arg, 'Cruise IDs (string)')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'name')
+ CALL ef_set_arg_unit(id, arg, ' ')
+ CALL ef_set_arg_type (id, arg, STRING_ARG)
+ CALL ef_set_arg_desc(id, arg, 'Cruise name (string)')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 3
+ CALL ef_set_arg_name(id, arg, 'Cruise_Mask')
+ CALL ef_set_arg_unit(id, arg, ' ')
+ CALL ef_set_arg_desc(id, arg, 'Mask =1 at start of each cruise')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 4
+ CALL ef_set_arg_name(id, arg, 'filename')
+ CALL ef_set_arg_unit(id, arg, ' ')
+ CALL ef_set_arg_type (id, arg, STRING_ARG)
+ CALL ef_set_arg_desc(id, arg, 'Filename to write')
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+
+ SUBROUTINE write_webrow_gwt_result_limits(id)
+
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id
+ INTEGER arg_lo_ss(4,1:EF_MAX_ARGS), arg_hi_ss(4,1:EF_MAX_ARGS),
+ . arg_incr(4,1:EF_MAX_ARGS)
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER nx
+
+ nx = 1
+ call ef_set_axis_limits(id, X_AXIS, 1, nx)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+*
+* In this subroutine we compute the result
+*
+ SUBROUTINE write_webrow_gwt_compute(id, arg_1, arg_2, arg_3, arg_4, result)
+
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER id, arg
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+ REAL arg_1(2,mem1lox:mem1hix, mem1loy:mem1hiy,
+ . mem1loz:mem1hiz, mem1lot:mem1hit)
+ REAL arg_2(2,mem2lox:mem2hix, mem2loy:mem2hiy,
+ . mem2loz:mem2hiz, mem2lot:mem2hit)
+ REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy,
+ . mem3loz:mem3hiz, mem3lot:mem3hit)
+ REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy,
+ . mem4loz:mem4hiz, mem4lot:mem4hit)
+ REAL result(memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit)
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable's axes.
+
+ INTEGER res_lo_ss(4), res_hi_ss(4), res_incr(4)
+ INTEGER arg_lo_ss(4,1:EF_MAX_ARGS), arg_hi_ss(4,1:EF_MAX_ARGS),
+ . arg_incr(4,1:EF_MAX_ARGS)
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER i,j,k,l
+ INTEGER slen, blen, iunit, icruise, nd
+ INTEGER i1,j1,k1,l1, i2,j2,k2,l2
+ CHARACTER*512 fname
+ CHARACTER*100 errtxt
+ CHARACTER*512 buff, buff_cname
+
+ CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+C Get file name
+
+ arg = 4
+ CALL ef_get_arg_string(id, arg, fname)
+
+ iunit = 19
+
+ OPEN( UNIT = iunit,
+ . FILE = fname,
+ . FORM = 'FORMATTED',
+ . ACCESS = 'SEQUENTIAL',
+ . STATUS = 'REPLACE',
+ . ERR = 5010 )
+
+* Write webrowset header.
+
+ buff = "<?xml version='1.0'?>"
+ slen = 21
+ WRITE (iunit, 1000) buff(1:slen)
+ 1000 FORMAT(A)
+ buff = "<webRowSet>"
+ slen = 99
+ WRITE (iunit, 1000) buff(1:slen)
+
+ WRITE (iunit, *) '<data>'
+
+* Write cruise ids and numbers to the webrowset file...
+
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ k1 = arg_lo_ss(Z_AXIS,ARG1)
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ i = res_lo_ss(X_AXIS)
+
+* If the cruise_name is different from the cruise_id,
+* write the cruise_name in parentheses after the ID.
+
+ icruise = 0
+ DO 100 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
+ IF (arg_3(i1,j1,k1,l1) .NE. bad_flag(ARG3)) THEN
+ icruise = icruise + 1
+ IF (icruise .LT. 10)
+ . WRITE (iunit, 1010) icruise
+ IF (icruise .GE. 10 .AND. icruise .LT. 100)
+ . WRITE (iunit, 1012) icruise
+ IF (icruise .GE. 100)
+ . WRITE (iunit, 1014) icruise
+ IF (icruise .GE. 1000)
+ . WRITE (iunit, 1015) icruise
+
+ CALL EF_GET_STRING_ARG_ELEMENT(id, ARG1, arg_1,
+ . i1,j1,k1,l1, slen, buff)
+ CALL EF_GET_STRING_ARG_ELEMENT(id, ARG2, arg_2,
+ . i1,j1,k1,l1, blen, buff_cname)
+ IF (slen .EQ. blen) THEN
+ IF (buff(:slen) .EQ. buff_cname(:slen)) blen = 0
+ ENDIF
+ IF (blen .GT. 0) THEN
+ buff(slen+1:slen+2) = ' ('
+ slen = slen + 2
+ buff(slen+1:slen+blen) = buff_cname(:blen)
+ slen = slen + blen
+ buff(slen+1:slen+1) = ')'
+ slen = slen + 1
+ ENDIF
+
+ WRITE (iunit, 1020) buff(1:slen)
+ ENDIF
+ 100 CONTINUE
+
+1010 FORMAT('<currentRow>'/'<columnValue>'/I1/'</columnValue>')
+1012 FORMAT('<currentRow>'/'<columnValue>'/I2/'</columnValue>')
+1014 FORMAT('<currentRow>'/'<columnValue>'/I3/'</columnValue>')
+1015 FORMAT('<currentRow>'/'<columnValue>'/I4/'</columnValue>')
+1020 FORMAT('<columnValue>'/A/'</columnValue>'/'</currentRow>')
+
+* Write closing tag.
+ WRITE (iunit, 1030)
+1030 FORMAT ('</data>'/'</webRowSet>')
+
+ CLOSE (iunit, ERR = 5020 )
+ i = res_lo_ss(X_AXIS)
+ j = res_lo_ss(Y_AXIS)
+ k = res_lo_ss(Y_AXIS)
+ l = res_lo_ss(Y_AXIS)
+ result(i,j,k,l) = 1.
+
+ RETURN
+
+5010 CONTINUE
+ WRITE(errtxt,*) 'Error opening file ', fname
+ CALL EF_BAIL_OUT(id, errtxt)
+ RETURN
+5020 CONTINUE
+ WRITE(errtxt,*) 'Error closing file ', fname
+ CALL EF_BAIL_OUT(id, errtxt)
+ RETURN
+
+ END
diff --git a/fer/fmt/SOURCE_FILES b/fer/fmt/SOURCE_FILES
index fd7ca42..1596193 100644
--- a/fer/fmt/SOURCE_FILES
+++ b/fer/fmt/SOURCE_FILES
@@ -2,6 +2,7 @@ SRCS_F = \
alg_regrid_trans_titl.F\
alg_trans_titl.F\
ascii_limits.F\
+aux_var_units.F\
ax_title.F\
clean_coord_string.F\
compound_title.F\
diff --git a/fer/fmt/ascii_limits.F b/fer/fmt/ascii_limits.F
index fc57119..e32205d 100644
--- a/fer/fmt/ascii_limits.F
+++ b/fer/fmt/ascii_limits.F
@@ -57,6 +57,7 @@
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* *acm* 4/12 6D Ferret: time axis may be in t or f direction.
* v687 *acm* 3/14 Fix ticket 2149: TM_GET_CAL gets the calendar label from the T axis.
+* v690 *sh* 4/14 show regridding by "false 1 pt" curvilinear regrid
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -79,7 +80,8 @@
. grid, cal_id, len_cal
CHARACTER ALG_TRANS_TITL*20, LOHI_WORLD*44, LEFINT*4,
. TM_FMT*10, TM_GET_CAL*32, TM_GET_F_CAL*32,
- . trans_title*40, cal_name*32
+ . VAR_CODE*128,
+ . trans_title*128, cal_name*32
REAL trans_arg
* initialize
@@ -121,6 +123,22 @@
ENDIF
string = string(1:slen)//' ('//trans_title(:len_trans)//')'
slen = MIN( max_len, slen+len_trans+3 )
+ ELSEIF (cx_aux_stat(idim,cx) .EQ. paux_stat_false_1pt_regrid) THEN
+* ... add "averaged using DEPTH" or "interpolated using DEPTH"
+ IF (cx_regrid_trans(idim, cx) .EQ. pauxrgrd_linear ) THEN
+ trans_title = 'interpolated using'
+ ELSEIF (cx_regrid_trans(idim, cx) .EQ. pauxrgrd_pwlave ) THEN
+ trans_title = 'pc wise lin avgd using'
+ ELSE
+ trans_title = '??crptn??'
+ ENDIF
+ len_trans = TM_LENSTR( trans_title )
+* append name of auxiliary variable
+ trans_title(len_trans+2:) = VAR_CODE(cx_aux_cat(idim,cx),
+ . cx_aux_var(idim,cx) )
+ len_trans = TM_LENSTR( trans_title )
+ string = string(1:slen)//' ('//trans_title(:len_trans)//')'
+ slen = MIN( max_len, slen+len_trans+3 )
ENDIF
* calendar name requiring comment ?
diff --git a/fer/ctx/get_context_bad_flag.F b/fer/fmt/aux_var_units.F
similarity index 62%
copy from fer/ctx/get_context_bad_flag.F
copy to fer/fmt/aux_var_units.F
index 3ae952a..5aac023 100644
--- a/fer/ctx/get_context_bad_flag.F
+++ b/fer/fmt/aux_var_units.F
@@ -1,4 +1,4 @@
- SUBROUTINE GET_CONTEXT_BAD_FLAG ( cx )
+ CHARACTER*(*) FUNCTION AUX_VAR_UNITS( cx, idim )
*
*
@@ -35,47 +35,71 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* insert bad data flag into context for variable
+* return units text string for an auxiliary variable
* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
* written for VAX computer under VMS operating system
*
-* revision 0.0 - 4/1/87
-
-* V510 5/00 *sh* - user variables with settable bad flags
-* *acm* 3/12 cleanup ifdefs and unnecessary include files
-* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V698+ *sh* 5/15 - derived from var_units.F
include 'tmap_dims.parm'
include 'xdset_info.cmn_text'
external xdset_info_data
+ include 'xtm_grid.cmn_text'
+ external xgt_grid_data
include 'ferret.parm'
+ include 'errmsg.parm'
+ include 'xtext_info.cmn'
include 'xcontext.cmn'
- include 'xpyvar_info.cmn'
+ include 'xcalc_vars.cmn'
include 'xvariables.cmn'
- INTEGER cx
+* calling argument declarations
+ INTEGER cx, idim
+
+* internal variable declarations
+ LOGICAL UNIT_CHG_AX
+ INTEGER category, variable, status
+
+* initialize
+ category = cx_aux_cat( idim, cx )
+ variable = cx_aux_var( idim, cx )
+
+ IF (variable .EQ. unspecified_int4) THEN
+ AUX_VAR_UNITS = 'bad units'
+ CALL ERRMSG( ferr_internal, status, 'aux var cx err', *5000 )
+ ENDIF
+
+* select units by category of variable
+ IF ( category .EQ. cat_file_var .OR.
+ . category .EQ. cat_agg_e_var .OR.
+ . category .EQ. cat_agg_f_var) THEN
+ AUX_VAR_UNITS = ds_var_units( variable )
- IF ( cx_category( cx ) .EQ. cat_file_var .OR.
- . cx_category( cx ) .EQ. cat_aggregate_var ) THEN
+ ELSEIF ( category .EQ. cat_calc_var ) THEN
- cx_bad_data( cx ) = ds_bad_flag( cx_variable( cx ) )
+ AUX_VAR_UNITS = unit_text( cvar_unit_code(variable) )
- ELSEIF ( cx_category(cx) .EQ. cat_pystat_var ) THEN
+ ELSEIF ( category .EQ. cat_user_var ) THEN
- cx_bad_data( cx ) = pyvar_missing_flag( cx_variable( cx ) )
+ AUX_VAR_UNITS = uvar_units( variable )
- ELSEIF ( cx_category( cx ) .EQ. cat_user_var ) THEN
+ ELSEIF ( category .EQ. cat_pseudo_var
+ . .OR. category .EQ. cat_constant
+ . .OR. category .EQ. cat_string
+ . .OR. category .EQ. cat_const_var
+ . .OR. category .EQ. cat_counter_var
+ . .OR. category .EQ. cat_attrib_val ) THEN
- cx_bad_data( cx ) = uvar_bad_data( cx_variable( cx ) )
+ AUX_VAR_UNITS = ' '
ELSE
- cx_bad_data( cx ) = bad_val4
+ AUX_VAR_UNITS = 'unit_err'
ENDIF
- RETURN
+ 5000 RETURN
END
diff --git a/fer/fmt/ax_title.F b/fer/fmt/ax_title.F
index d9d7830..f1add64 100644
--- a/fer/fmt/ax_title.F
+++ b/fer/fmt/ax_title.F
@@ -45,6 +45,7 @@
* (kludge: use "m" for meters instead of exact unit string.
* This because of "METERS" in the old grid files around.)
* *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V695+ *sh* 3/15 - generate axis titles for TIME LAG axes in FMRC variables
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
@@ -58,6 +59,7 @@
LOGICAL GEOG_LABEL
* internal variable declarations:
+ LOGICAL ITS_FMRC
INTEGER TM_LENSTR1, i, line, ulen
CHARACTER*16 unit_name
@@ -69,7 +71,7 @@
IF ( GEOG_LABEL( idim, grid ) ) THEN
AX_TITLE = axis_title( idim )
len = axis_title_len( idim )
-! special options for vertical axes - 12/19/94
+* special formatting for vertical axes - 12/19/94
IF ( idim .EQ. z_dim ) THEN
IF ( line_unit_code(line) .EQ. pun_millibars
. .OR. line_direction( line ) .EQ. 'DU' ) THEN
@@ -86,6 +88,21 @@
len = len + 3 + ulen
ENDIF
+ ELSEIF ( ITS_FMRC(grid)
+ . .AND. (idim.EQ.t_dim .OR. idim.EQ.f_dim)) THEN
+* HACK: special formatting for FMRC T-F plane data 3/15
+ IF (idim .EQ. t_dim ) THEN
+ AX_TITLE = 'MODEL ELAPSED TIME'
+ len = 18
+ ELSE
+ AX_TITLE = 'FORECAST LEAD TIME'
+ len = 18
+ ENDIF
+ unit_name = line_units(line)
+ ulen = TM_LENSTR1( unit_name )
+ AX_TITLE = AX_TITLE(:len)//' ('//unit_name(:ulen)//')'
+ len = len + 3 + ulen
+
ELSE
AX_TITLE = ww_dim_name( idim )
len = 1
diff --git a/fer/fmt/var_title.F b/fer/fmt/var_title.F
index 9c9b0f9..a7b7447 100644
--- a/fer/fmt/var_title.F
+++ b/fer/fmt/var_title.F
@@ -100,7 +100,8 @@
cat = cx_category( cx )
IF ( cat .EQ. cat_file_var .OR.
- . cat .EQ. cat_aggregate_var) THEN
+ . cat .EQ. cat_agg_e_var .OR.
+ . cat .EQ. cat_agg_f_var) THEN
IF ( ds_var_title( var )(1:1) .NE. ' ' ) THEN
var_title = ds_var_title( var )
diff --git a/fer/fmt/var_title_mod.F b/fer/fmt/var_title_mod.F
index 9162cc0..8963967 100644
--- a/fer/fmt/var_title_mod.F
+++ b/fer/fmt/var_title_mod.F
@@ -67,6 +67,8 @@
* *acm* 3/12 cleanup ifdefs and unnecessary include files
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
* *acm* 4/12 6D Ferret: time axis may be in t or f direction.
+* V690 *sh* suppress comment about regridding for 1pt 'false regridding'
+* used on curvilinear variables. It will be documented in ASCII_LIMITS.
include 'tmap_dims.parm'
include 'xdset_info.cmn_text'
@@ -84,7 +86,7 @@
INTEGER cx
* internal variable declarations
- LOGICAL add_on, all_q, vcalc
+ LOGICAL add_on, all_q, vcalc, false_regrid
INTEGER TM_LENSTR, TM_LENSTR1, CX_DIM_LEN,
. var, categ, dset, cairt, cairt_dset,
. mlen, t_len, maxlen, idim, trans, slen, k_lo
@@ -278,7 +280,14 @@
100 CONTINUE
* re-gridded ?
- IF ( cx_unstand_grid(cx) ) THEN
+* ... check for 'false 1pt regrid'
+ false_regrid = .FALSE.
+ DO idim = 1, nferdims
+ IF (cx_aux_stat(idim,cx) .EQ. paux_stat_false_1pt_regrid)
+ . false_regrid = .TRUE.
+ ENDDO
+ IF ( cx_unstand_grid(cx)
+ . .AND. .NOT.false_regrid ) THEN
IF ( add_on ) THEN
var_title_mod = var_title_mod(:mlen) //' - '
mlen = MIN( maxlen, mlen + 3 )
diff --git a/fer/fmt/var_units.F b/fer/fmt/var_units.F
index 3b79c3f..8994228 100644
--- a/fer/fmt/var_units.F
+++ b/fer/fmt/var_units.F
@@ -82,7 +82,8 @@
* select units by category of variable
IF ( category .EQ. cat_file_var .OR.
- . category .EQ. cat_aggregate_var) THEN
+ . category .EQ. cat_agg_e_var .OR.
+ . category .EQ. cat_agg_f_var) THEN
VAR_UNITS = ds_var_units( variable )
diff --git a/fer/gnl/SOURCE_FILES b/fer/gnl/SOURCE_FILES
index 4a0bcf4..26ce775 100644
--- a/fer/gnl/SOURCE_FILES
+++ b/fer/gnl/SOURCE_FILES
@@ -103,6 +103,7 @@ show_line.F\
show_line_xml.F\
show_line_coords.F\
show_mem_vars.F\
+show_pytext_group.F\
show_region.F\
show_regrid_transforms.F\
show_transforms.F\
diff --git a/fer/gnl/all_1_arg.F b/fer/gnl/all_1_arg.F
index 254c833..aba0efd 100644
--- a/fer/gnl/all_1_arg.F
+++ b/fer/gnl/all_1_arg.F
@@ -47,6 +47,8 @@
* V300: 4/22/93
* *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V694 2/2015 *sh* - handle _DQ_ like double quote
+* *acm* 2/15 Prevent run-time errors in string length for _DQ_ handling
* calling argument declarations:
@@ -73,6 +75,19 @@
IF ( cmnd_buff(i:i) .EQ. '"' ) arg_end(1) = i
ENDIF
+* (2/15) kind of pathological cases, but what the heck ...
+* protect against lost _DQ_ from start of: message _DQ_hello_DQ_ _DQ_world_DQ_
+ i = arg_start(1) - 4
+ IF (i .GE. 4) THEN
+ IF ( cmnd_buff(i:i+3) .EQ. '_DQ_' ) arg_start(1) = i
+ ENDIF
+
+* protect against lost _DQ_ from end
+ i = arg_end(1) + 4
+ IF ( i .LE. len_cmnd ) THEN
+ IF ( cmnd_buff(i-3:i) .EQ. '_DQ_' ) arg_end(1) = i
+ ENDIF
+
num_args = 1
ENDIF
diff --git a/fer/gnl/atom_pos.F b/fer/gnl/atom_pos.F
index 00d568d..c3f76f9 100644
--- a/fer/gnl/atom_pos.F
+++ b/fer/gnl/atom_pos.F
@@ -45,6 +45,8 @@
* revision 0.0 - 10/23/86
* revision 0.1 - 3/23/88 - bypass embedded quotated strings during search
* *acm* 3/12 cleanup ifdefs and unnecessary include files
+* 2/15 *sh* add support for _DQ_
+* now ATOM_POS cannot be used to search for "_" unless modified
include 'ferret.parm'
@@ -53,7 +55,7 @@
CHARACTER*1 atom
* internal variable declarations:
- INTEGER pos, slen
+ INTEGER pos, slen, i
* initialize
slen = LEN( string )
@@ -71,6 +73,23 @@
ATOM_POS = atom_illegal_pos
RETURN
+* _DQ_ -quotated string ?
+ ELSEIF ( string(pos:pos) .EQ. '_'
+ . .AND. pos+3 .LE. slen ) THEN
+ IF ( string(pos:pos+3) .EQ. '_DQ_' ) THEN
+ DO i = pos+4, slen-3
+ IF ( string(i:i+3) .EQ. '_DQ_' ) THEN
+ pos = i + 3
+ GOTO 200
+ ENDIF
+ ENDDO
+ ELSE
+ GOTO 200 ! as-is this routine cannot be used to search for "_"
+ ENDIF
+* ... unclosed quotation mark - flag it as a syntax error
+ ATOM_POS = atom_illegal_pos
+ RETURN
+
* found it ?
ELSEIF ( string(pos:pos) .EQ. atom ) THEN
IF ( pos .EQ. slen ) THEN
diff --git a/fer/gnl/cancel_data_set.F b/fer/gnl/cancel_data_set.F
index 861f6e7..d4e9523 100644
--- a/fer/gnl/cancel_data_set.F
+++ b/fer/gnl/cancel_data_set.F
@@ -99,9 +99,22 @@
ENDIF
10 CONTINUE
15 CONTINUE
-
ENDIF
+* Will want to cancel the Forecast axis
+
+ IF (ds_type(cset) .EQ. 'FCT') THEN
+ agg_dim = 6
+ DO 11 nv = 1, maxvars
+ IF (ds_var_setnum(nv) .EQ. cset) THEN
+ igrid = ds_grid_number(nv)
+ ens_line = grid_line(agg_dim, igrid)
+ GOTO 16 ! only 1 ensemble axis per ens. dataset
+ ENDIF
+ 11 CONTINUE
+ 16 CONTINUE
+
+ ENDIF
* purge and delete any cat_pystat_var variables associated with this dataset
CALL DELETE_PYSTAT_DSET_VARS( iset )
@@ -118,7 +131,8 @@
* default for member datasets. Check on ens_line finds cases where
* an ensemeble datset was created but has no variables.
- IF (ds_type(cset).EQ.'ENS' .AND. ens_line.GT.0) THEN
+ IF ((ds_type(cset).EQ.'ENS' .OR. ds_type(cset).EQ.'FCT')
+ . .AND. ens_line.GT.0) THEN
* Get number of aggregation members
CALL CD_GET_AGG_DSET_INFO (cset, nmemb, status)
@@ -148,15 +162,16 @@
* Cancel the ensemble axis
IF ( ens_line .NE. 0) CALL DELETE_ONE_LINE (ens_line, status)
-* Was the original dataset to close a member of an aggregation? If so cancel
+* Was the original dataset to be closed a member of an aggregation? If so cancel
* the aggregation set. If we implement other aggregations, set agg_msg depending
* on the ds_type direction.
cset = iset
close_it = 0
DO 50 i = iens, maxdsets
- IF (ds_type(i) .EQ. 'ENS') THEN
+ IF ((ds_type(i).EQ.'ENS' .OR. ds_type(i).EQ.'FCT')) THEN
agg_msg = 'ensemble'
+ IF (ds_type(cset).EQ.'FCT') agg_msg = 'forecast aggregation'
mlen = TM_LENSTR1(agg_msg)
* Get number of aggregation members
diff --git a/fer/gnl/cdf_list.F b/fer/gnl/cdf_list.F
index 48631ac..934079d 100644
--- a/fer/gnl/cdf_list.F
+++ b/fer/gnl/cdf_list.F
@@ -1,7 +1,7 @@
SUBROUTINE CDF_LIST ( memory, fname, append, crecdim, nvars,
. mr_list, cx_list, title, enhead, mode,
. clobber, edges_flag, do_bounds,
- . keepax_flag, out_type, status )
+ . keepax_flag, out_type, quiet, status )
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -124,6 +124,9 @@
* user-defined variable.
* V687 3/14 *acm* Fix ticket 1750. Write Ferret-internal axis names to cdf files, unless
* the user has said /KEEP_AXISNAMES
+* V694 *acm* 3/15 Ticket 2240. Dont send scale, attribute, and bad-val to CD_WRITE_VAR. That
+* routine gets those attributes per variable from the dataset being written.
+* V695 *acm* 7/16 If they said LIST/QUIET, don't do all the warnings and NOTEs
#include "netcdf.inc"
include 'tmap_errors.parm'
@@ -144,7 +147,7 @@
include 'netcdf4_settings.cmn'
* calling argument declarations:
- LOGICAL append, enhead, clobber
+ LOGICAL append, enhead, clobber, quiet
INTEGER nvars, mr_list(nvars), cx_list(nvars), mode,
. edges_flag, keepax_flag, do_bounds, status
REAL memory( mem_blk_size, max_mem_blks )
@@ -152,10 +155,10 @@
CHARACTER*1 crecdim
* internal variable declarations:
- LOGICAL TM_LEGAL_NAME, MATCH_NAME,
+ LOGICAL TM_LEGAL_NAME, MATCH_NAME, TM_HAS_STRING,
. itsa_uvar, need_doc, new, formatted, flushed,
. itsa_string, output_units, output_title,
- . output_history, get_ds
+ . output_history, get_ds, its_nc
INTEGER TM_LENSTR1, ISUBSCR_CX, GET_MAX_C_STRING_LEN,
. MGRID_SIZE, STR_SAME,
. cx, mr, dset, grid, cdfid, ivar, nready,
@@ -239,7 +242,7 @@
flushed = .FALSE. ! on error, whether OK variables were written
final_status = ferr_ok ! innocent unless proven guilty
DODS_cache = mode .EQ. pcdf_mode_cache
- do_warn = .TRUE.
+ do_warn = .NOT.quiet
got_missing = .FALSE.
got_fill = .FALSE.
@@ -288,8 +291,8 @@
cx = cx_list(1)
dset = cx_data_set( cx )
IF (dset .GE. 1) THEN
- IF (ds_type(dset) .EQ. 'CDF' .OR. ds_type(dset) .EQ. ' MC'
- . .OR. ds_type(dset) .EQ. 'ENS')
+ IF (ds_type(dset).EQ.'CDF' .OR. ds_type(dset).EQ.' MC'
+ . .OR. ds_type(dset).EQ.'ENS' .OR. ds_type(dset).EQ.'FCT')
. CALL CDF_LIST_GLOBAL_ATTS (dset, cdfid, status)
ENDIF
dset_last = dset
@@ -308,7 +311,8 @@
IF (dset .GE. 1) THEN
IF (ds_type(dset) .EQ. 'CDF' .OR.
. ds_type(dset) .EQ. ' MC' .OR.
- . ds_type(dset) .EQ. 'ENS')
+ . ds_type(dset) .EQ. 'ENS' .OR.
+ . ds_type(dset) .EQ. 'FCT')
. CALL CDF_LIST_GLOBAL_ATTS (dset, cdfid, status)
ENDIF
dset_last = dset
@@ -333,7 +337,7 @@
* unless the user has requested otherwise.
itsa_uvar = cat .EQ. cat_user_var
- IF (itsa_uvar .OR. dset .EQ. pdset_irrelevant) dset = -1
+ IF (itsa_uvar .OR. dset .EQ. pdset_irrelevant) dset = pdset_uvars
CALL CD_GET_VAR_ID (dset, varcode, varid, status)
vartype = 0
@@ -344,7 +348,7 @@
. vdims, nvatts, coordvar, all_outflag, status)
varcode = varname
IF (mode_upcase_output) CALL STR_UPCASE( varcode, varname)
- IF (dset .EQ. -1) THEN !for user vars type not known in attrib structure
+ IF (dset .EQ. pdset_uvars) THEN !for user vars type not known in attrib structure
vartype = 6 ! netcdf nf_double
IF (itsa_string) vartype = 2
ENDIF
@@ -490,7 +494,7 @@
. make_lo(t_dim) .NE. unspecified_int4 .AND.
. make_lo(idim) .NE. unspecified_int4) THEN
crecdim = 'N'
- IF (.NOT.already_warned) CALL WARN (
+ IF (.NOT.already_warned .AND. do_warn) CALL WARN (
. 'Saving E or F axis with time axis uses /RIGID in time')
already_warned = .TRUE.
ENDIF
@@ -524,23 +528,26 @@
ELSEIF (cx_type(cx) .EQ. ptype_int1) THEN
type = nf_byte
ELSE
- CALL WARN('Internal err: unknown data type')
+ CALL WARN('Internal err: unknown data type, using FLOAT')
type = nf_float
ENDIF
IF (type .NE. 0 .AND. varid .GT. 0) type = outtype
- IF (dset .EQ. -1) type = outtype
+ IF (dset .EQ. pdset_uvars) type = outtype
IF (type .EQ. 0) outtype = vartype
* create the variable and its grid (coordinate output gets deferred)
* If this is a user var the axes are based on the defining dset (if any).
dset_num = dset
- IF (dset.EQ.-1 .AND. cx_data_set( cx ).GT.0)
+ IF (dset.EQ.pdset_uvars .AND. cx_data_set( cx ).GT.0)
. dset_num = cx_data_set( cx )
- IF (type .EQ. NF_CHAR) THEN
+* When its a netCDF/OPeNDAP file variable use the max string length from the originating dataset.
+ buff2 = " "
+ IF (type .EQ. NF_CHAR .AND. dset .GE. 1) THEN
buff2 = ""
- IF (dset_num .GE. 1 .AND.(.NOT.itsa_uvar)) THEN
+ its_nc = ( .NOT. TM_HAS_STRING(ds_type(dset),'EZ') )
+ IF (dset_num.GE.1 .AND.(.NOT.itsa_uvar) .AND.its_nc) THEN
CALL CD_GET_DS_DIMS (dset_num, vdims(1), buff2, len, status)
IF (maxstrlen .LE. len) maxstrlen = len
ENDIF
@@ -647,7 +654,7 @@
. (dset, varid, attname, do_warn, varcode, attlen,
. attoutflag, miss_in)
- IF (dset .EQ. -1) THEN
+ IF (dset .EQ. pdset_uvars) THEN
r_scale = 1./scalefac
r_off = -1.*addoff* r_scale
miss_in = miss_in* r_scale + r_off
@@ -688,7 +695,7 @@
IF (attype .NE. outtype .AND. istat .EQ. ferr_ok) THEN
alen = TM_LENSTR1(typnam(attype))
slen = TM_LENSTR1(typnam(outtype))
- IF (dset .GT. 0) CALL WARN (
+ IF (dset .GT. 0 .AND. do_warn) CALL WARN (
. 'Converting data type of missing_value '//
. typnam(attype)(1:alen)//
. ' to match output type of variable '//
@@ -705,7 +712,7 @@
IF (status .NE. ferr_ok) GOTO 5400
got_missing = .TRUE.
- IF (dset .EQ. -1) THEN
+ IF (dset .EQ. pdset_uvars) THEN
CALL CD_WRITE_ATTVAL_DP(
. cdfid, varcode, '_FillValue', dvals, attlen,
. attype, status )
@@ -784,7 +791,7 @@
. attlen .GT. 100) THEN
attlen = 100
alen = TM_LENSTR1(aname)
- CALL WARN
+ IF (do_warn) CALL WARN
. ('writing only first 100 elements of attribute'//
. aname(1:alen))
ENDIF
@@ -950,7 +957,7 @@
ENDIF
* data set of origin
- IF ( dset .NE. pdset_irrelevant .AND. dset.NE.-1) THEN
+ IF ( dset .NE. pdset_irrelevant .AND. dset.NE.pdset_uvars) THEN
* ..... unless the user has created a history attribute, or asked that writing
* it be turned off. See if there is a history attribute.
@@ -1019,7 +1026,7 @@
IF ( status .NE. merr_ok ) GOTO 5800
ELSEIF ( cx_data_set(cx) .NE. pdset_irrelevant .AND.
- . cx_data_set(cx) .NE. -1) THEN
+ . cx_data_set(cx) .NE. pdset_uvars) THEN
* Write history attribute containing the data set of origin for user variable,
* if the user has not created a history attribute for the variable.
@@ -1134,7 +1141,7 @@
itsa_uvar = cat .EQ. cat_user_var
CALL CD_GET_VAR_ID (dset, varcode, varid, status) ! is it in the linked-list for dset
IF (status .NE. ferr_ok .AND. itsa_uvar ) THEN
- dset = -1 ! is it a user var based on a var in dset
+ dset = pdset_uvars ! is it a user var based on a var in dset
CALL CD_GET_VAR_ID (dset, varcode, varid, status)
ENDIF
@@ -1167,8 +1174,8 @@
CALL CD_WRITE_VAR ( memory, cdfid, dset_num, varcode, grid,
. write_lo, write_hi, memory(1,mr_blk1(mr)),
- . edges_flag, do_bounds, scalefac, addoff,
- . bad, mode_upcase_output, keepax_flag, status )
+ . edges_flag, do_bounds, mode_upcase_output,
+ . keepax_flag, status )
IF ( status .NE. merr_ok ) GOTO 5800
500 CONTINUE
diff --git a/fer/gnl/cdf_list_global_atts.F b/fer/gnl/cdf_list_global_atts.F
index 3911248..85009d2 100644
--- a/fer/gnl/cdf_list_global_atts.F
+++ b/fer/gnl/cdf_list_global_atts.F
@@ -56,9 +56,9 @@
. bufflen
REAL vals(100)
CHARACTER*128 varname, attname, aname
- CHARACTER*2048 buff
+ CHARACTER*10240 buff
- bufflen = 2048
+ bufflen = 10240
varid = 0
do_warn = .TRUE.
@@ -81,7 +81,7 @@
. attype, attlen, attoutflag, status )
IF (attoutflag .EQ. 0) GOTO 80
- IF (attlen .GT. 100 .AND. attype .NE. ptype_char)
+ IF (attlen .GT. 100 .AND. attype .NE. NCCHAR)
. attlen = 100
got_it = NC_GET_ATTRIB ( dset, varid, aname, do_warn,
. varname, bufflen, attlen, attoutflag, buff, vals)
diff --git a/fer/gnl/check_member_sets.F b/fer/gnl/check_member_sets.F
index f3dcba9..a4f6cc7 100644
--- a/fer/gnl/check_member_sets.F
+++ b/fer/gnl/check_member_sets.F
@@ -37,6 +37,9 @@
*
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
* V685 *acm* 3/13 For Ensemble aggregations, call the ds_type 'ENS'
+* V695 *acm* 2/15 For Forecast aggregations, call the ds_type 'FCT'
+* V695+ *sh* 5/15 removed block of code from here to INIT_AGGREGATE_DSET
+* notably, the call to GET_AXIS_SPEED
include 'tmap_errors.parm'
#include "tmap_dset.parm"
@@ -104,7 +107,7 @@
IF ( dset .LT. 1
. .OR. dset .GT. maxdsets ) GOTO 5200
IF ( ds_name( dset ) .EQ. char_init1024) GOTO 5200
- IF ( ds_type( dset ) .EQ. 'ENS') GOTO 5200
+ IF (ds_type(dset).EQ.'ENS' .OR. ds_type(dset).EQ.'FCT') GOTO 5200
GOTO 750
ENDIF
@@ -118,17 +121,6 @@
IF ( status .NE. merr_no_action ) THEN ! merr_no_action = already init'ed
IF ( status .NE. ferr_ok ) GOTO 5300 ! error in file or url
-* interpret special parameters in the descriptor
- CALL GET_DSET_PARMS( dset, status )
- IF ( status .NE. ferr_ok ) GOTO 5300
-
-* determine relative access speeds along each axis
- CALL GET_AXIS_SPEED( dset )
-
-* build completed ( with time axis ) grids for computable variables
- CALL MAKE_CVAR_GRIDS( dset, status )
- IF ( status .NE. ferr_ok ) GOTO 5300
-
ENDIF
750 CONTINUE
diff --git a/fer/gnl/create_agg_axis.F b/fer/gnl/create_agg_axis.F
index 7f5b5c9..7086a28 100644
--- a/fer/gnl/create_agg_axis.F
+++ b/fer/gnl/create_agg_axis.F
@@ -32,8 +32,11 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-* Define an axis for the aggregation direction (Ensemble, for now). If more
-* than one ensemble axis is defined, make the names unique.
+* Define an axis for the aggregation direction (Ensemble or Forecast). If more
+* than one aggregation axis is defined, TM_NEW_LINE_NAME makes a unique name.
+
+* original: *acm*
+* V695+ *sh* 5/15 - set up calendar axis attributes from 1st member dset
IMPLICIT NONE
include 'tmap_errors.parm'
@@ -52,18 +55,25 @@
* local variable declarations:
INTEGER ALLO_MANAGED_AXIS
- CHARACTER*64 ename
+ CHARACTER*64 newname
-* create the ensemble axis
+* create the ensemble or forecast axis
status = ALLO_MANAGED_AXIS (iline )
IF ( status .NE. ferr_ok ) GOTO 5000
* save the line in memory - but don't catalog its name
- CALL TM_NEW_LINE_NAME ( 'ENSEMBLE', ename )
+ IF (line_dir .EQ. e_dim) THEN
+ CALL TM_NEW_LINE_NAME ( 'ENSEMBLE', newname )
+ line_direction( iline ) = 'EE'
+ ENDIF
+ IF (line_dir .EQ. f_dim) THEN
+ CALL TM_NEW_LINE_NAME ( 'RUN', newname )
+ line_direction( iline ) = 'FI'
+ ENDIF
- line_name ( iline ) = ename
- line_name_orig( iline ) = ename
+ line_name ( iline ) = newname
+ line_name_orig( iline ) = newname
line_start ( iline ) = 1.0D0
line_delta ( iline ) = 1.0D0
line_dim ( iline ) = len
@@ -94,7 +104,7 @@
line_name ( iline ) = 'FORECAST'
ENDIF
line_name_orig( iline ) = line_name ( iline )
-
+
5000 RETURN
5300 status = ferr_TMAP_error
RETURN
diff --git a/fer/gnl/create_agg_dset.F b/fer/gnl/create_agg_dset.F
index 2de0c90..6990d8a 100644
--- a/fer/gnl/create_agg_dset.F
+++ b/fer/gnl/create_agg_dset.F
@@ -1,4 +1,4 @@
- SUBROUTINE CREATE_AGG_DSET (agg_dset, dname, dtitle,
+ SUBROUTINE CREATE_AGG_DSET (agg_dset, dname, dtitle,
. nsets, agg_dim, iline, status)
*
* This software was developed by the Thermal Modeling and Analysis
@@ -38,6 +38,7 @@
*
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
* V685 *acm* 3/13 For Ensemble aggregations, call the ds_type 'ENS'
+* V695 *acm* 2/15 For Forecast aggregations, call the ds_type 'FCT'
IMPLICIT NONE
include 'tmap_errors.parm'
@@ -68,6 +69,7 @@
* Set the dataset type and title (can add other directions)
IF (agg_dim .EQ. e_dim ) ds_type(agg_dset) = 'ENS'
+ IF (agg_dim .EQ. f_dim ) ds_type(agg_dset) = 'FCT'
ds_name(agg_dset) = dname
ds_des_name(agg_dset) = dname
diff --git a/fer/gnl/define_aggregate_grid.F b/fer/gnl/define_aggregate_grid.F
index 06e0fc6..1ca4797 100644
--- a/fer/gnl/define_aggregate_grid.F
+++ b/fer/gnl/define_aggregate_grid.F
@@ -1,5 +1,5 @@
- SUBROUTINE DEFINE_AGGREGATE_GRID (agg_dset, nvars, vname,
- . fvar, iline, grid, agg_dim, member_sets, nsets)
+ SUBROUTINE DEFINE_AGGREGATE_GRID (agg_dset, tcoordname, nvars, vname,
+ . fvar, iline, tf_lag_t, grid, agg_dim, member_sets, nsets)
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,13 +33,14 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-* Define ensemble axis and grid using that axis. For uvars, grid is
-* set to unspecified_int4 when calling this. Will defer the grid check for later.
+* Define ensemble axis and grid using that axis. For uvars, grid is set to
+* unspecified_int4 when calling this. Will defer the grid check for later.
* Programmer Ansley Manke
* NOAA/PMEL, Seattle, WA - TMAP
*
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V695+ 4/15 *acm* and *sh* -- added support for forecast aggregations
IMPLICIT NONE
include 'tmap_errors.parm'
@@ -59,20 +60,25 @@
include 'netcdf.inc'
* calling argument declarations:
- INTEGER agg_dset, nvars, fvar, iline, grid,
+ INTEGER agg_dset, nvars, fvar, iline, tf_lag_t, grid,
. agg_dim, member_sets(*), nsets
- CHARACTER*(*) vname
+ CHARACTER*(*) vname, tcoordname
* local variable declarations:
- LOGICAL its_dynamic, itsa_uvar
- INTEGER STR_SAME,
- . big_cx, igrid, idim, gnum, nv, type,
- . ii, iset, slen, vtype, status
+ LOGICAL its_dynamic, itsa_uvar, has_edges
+ INTEGER STR_SAME, TM_LENSTR1,
+ . big_cx, igrid, idim, gnum, nv, type, ii, iset, slen,
+ . ndim, vtype, attype, attoutflag, i2, status,
+ . npts, nT, nF, ipt, iline2, gnum2, it2d,
+ . axcalt, axlagf, gg, ipt1, ipte, fax
+ REAL*8 TDEST_WORLD
-* Just for testing, get info back from the attribute-handling structure
- CHARACTER varname*128, name*128
- INTEGER vartype, nvdims, vdims(8), nvatts, all_outflag, varid
- LOGICAL coordvar
+* Getting info back from the attribute-handling structure
+ CHARACTER dimname*128, buff*128, name1*128
+ INTEGER varid, tline, g2d
+
+* initialize
+ tline = unspecified_int4
* Define aggregate grid
@@ -86,19 +92,22 @@
DO 700 idim = 1, nferdims
grid_line(idim, igrid) = grid_line(idim,grid)
700 CONTINUE
+ tline = grid_line(t_dim, igrid)
grid_line(agg_dim, igrid) = iline
-
+* for FMRC agg the shared T axis is a time lag
+ IF (tf_lag_t .NE. unspecified_int4)
+ . grid_line(t_dim, igrid) = tf_lag_t
+
* Make up a unique grid name for aggregate grid
- IF (agg_dim .EQ. 5) grid_name(igrid) = 'GEN'
- IF (agg_dim .EQ. 6) grid_name(igrid) = 'GFN'
- CALL TM_NEW_GRID_NAME( grid_name(igrid), name )
- grid_name(igrid) = name
+ IF (agg_dim .EQ. t_dim) grid_name(igrid) = 'GEN'
+ IF (agg_dim .EQ. f_dim) grid_name(igrid) = 'GFN'
+ CALL TM_NEW_GRID_NAME( grid_name(igrid), buff )
+ grid_name(igrid) = buff
- gnum = igrid
+ gnum = igrid
ENDIF
* ds_var slot, fill with aggregate variable in aggregate dataset.
-
itsa_uvar = .FALSE.
DO 720 nv = 1, maxvars
IF ( STR_SAME(ds_var_code(nv),char_init) .EQ. 0 ) GOTO 725
@@ -108,10 +117,10 @@
. ds_var_code(fvar), LEN(ds_var_code(fvar)))
ds_var_title(nv) = ds_var_title(fvar)
IF ( ds_var_title(nv) .EQ. char_init128)
- . ds_var_title(nv) = varname
+ . ds_var_title(nv) = ds_var_code(nv)
ds_var_titl_mod(nv) = ds_var_titl_mod(fvar)
- ds_var_units(nv) = ds_var_units(fvar)
ds_var_type(nv) = ds_var_type(fvar)
+ ds_var_units(nv) = ds_var_units(fvar)
ds_missing_flag(nv) = bad_val4
ds_bad_flag(nv) = bad_val4
cd_scale_factor(nv) = 1.
@@ -119,14 +128,17 @@
cd_scaled(nv) = .FALSE.
IF (grid .NE. unspecified_int4) THEN
+ ndim = 1
DO 730 idim = 1, nferdims
ds_grid_start(idim,nv)= ds_grid_start(idim,fvar)
ds_grid_end(idim,nv) = ds_grid_end(idim,fvar)
ds_ordering(idim,nv) = ds_ordering(idim,fvar)
+ IF (ds_ordering(ndim,fvar) .GT. 0) ndim = ndim + 1
730 CONTINUE
- ds_ordering(agg_dim,nv) = agg_dim
- ds_grid_start(agg_dim,nv) = 1
- ds_grid_end(agg_dim,nv) = nsets
+ ds_grid_start(agg_dim,nv)= 1
+ ds_grid_end(agg_dim,nv) = nsets
+ ds_ordering(ndim,nv) = agg_dim
+
ds_grid_number(nv) = gnum
ENDIF
@@ -140,9 +152,45 @@
CALL CD_ADD_VAR( agg_dset, vname, nvars,
. ds_var_title(nv), ds_var_units(nv), type,
. .FALSE., ds_bad_flag(nv), status)
+ IF (nvars .EQ. 1) name1 = vname
+
+* If this is a forecast aggregation, then the 2D time var has been defined (or
+* will be, just below). Add a coordinates attribute to variables in the FMRC
+* dataset which now have a 2D forecast-time coordinate variable.
+* Also add an attribute (name to be finalized), _ftime2dRef pointing to TIME2D
+
+ IF (agg_dim.EQ.f_dim .AND. grid_line(t_dim, gnum).NE.int4_init) THEN
+ buff = " "
+ slen = 0
+ DO 2200 idim = nferdims, 1, -1
+ IF (grid_line(idim, gnum) .NE. int4_init) THEN
+ dimname = line_name(grid_line(idim, gnum))
+ IF (idim .EQ. t_dim) dimname = tcoordname
+ IF (slen.EQ.0) THEN
+ buff = dimname(:TM_LENSTR1(dimname) )
+ ELSE
+ buff = buff(:slen)//' '//dimname(:TM_LENSTR1(dimname) )
+ ENDIF
+ slen = TM_LENSTR1(buff)
+ ENDIF
+ 2200 CONTINUE
+ CALL CD_GET_VAR_ID (agg_dset, vname, varid, status)
+ slen = TM_LENSTR1(buff)
+ attoutflag = 1
+ attype = NCCHAR
+ CALL CD_PUT_NEW_ATTR (agg_dset, varid, 'coordinates', attype,
+ . slen, attoutflag, buff, 0., status )
+
+ slen = TM_LENSTR1(tcoordname)
+ attoutflag = 1
+ attype = NCCHAR
+ CALL CD_PUT_NEW_ATTR (agg_dset, varid, '_ftime2dRef', attype,
+ . slen, attoutflag, tcoordname, 0., status )
+
+ ENDIF
-* Add aggregate-grid info to the lists in aggregate datset and aggregate-grid list.
-* Mark user-variables with a grid number of -999
+* Add aggregate-grid info to the lists in aggregate datset and
+* aggregate-grid list. Mark user-variables with a grid number of -999
DO 750 ii = 1, nsets
iset = member_sets(ii)
@@ -150,20 +198,224 @@
IF ( (ds_var_setnum(nv) .EQ. iset) .AND.
. (STR_SAME(ds_var_code(nv), vname) .EQ. 0) ) THEN
igrid = ds_grid_number(nv)
- vtype = 1 ! file var
+ vtype = cat_file_var ! file var
CALL CD_ADD_AGG_VAR_INFO (agg_dset, vname, ii, vtype,
. iset, igrid, iline, nv, status)
ENDIF
IF ( (uvar_dset(nv) .EQ. iset) .AND.
. (STR_SAME(uvar_name_code(nv), vname) .EQ. 0) ) THEN
igrid = unspecified_int4
- vtype = 3 ! user var
+ vtype = cat_user_var! user var
CALL CD_ADD_AGG_VAR_INFO (agg_dset, vname, ii, vtype,
. iset, igrid, iline, nv, status)
ENDIF
740 CONTINUE
750 CONTINUE
+
+************* FMRC setup **************************************************
+* Define 2D time variable and then the special axes needed for FMRC dataset
+* The code that follows should be executed only once for an FMRC aggregation
+* We use the test of whether the tcoordname variable is already defined
+* to bail out if the code has already been run
+* (cleaner code might be possible by removing the code below to a separate
+* subroutine that is called just once before processing the individual vars
+* of the aggregations)
+ IF (agg_dim.EQ.f_dim .AND. tline.NE.unspecified_int4) THEN
+
+ CALL CD_GET_VAR_ID (agg_dset, tcoordname, varid, status)
+ IF (status .EQ. ferr_ok) GOTO 5000 ! BAIL OUT -- already defined
+
+ igrid = 0
+ CALL TM_NEXT_TMP_GRID (igrid, 760)
+ 760 CALL TM_ALLO_TMP_GRID (igrid, status)
+ IF (status .NE. ferr_ok) GOTO 5000
+ CALL TM_NEW_GRID_NAME ( 'FTI', buff )
+ grid_name(igrid) = buff
+ g2d = igrid
+
+* ds_var slot, define TIME2D
+
+ DO 770 nv = 1, maxvars
+ IF ( STR_SAME(ds_var_code(nv),char_init) .EQ. 0 ) GOTO 775
+ 770 CONTINUE
+ 775 ds_var_setnum(nv) = agg_dset
+ CALL string_array_modify(ds_var_code_head, nv,
+ . tcoordname, LEN(tcoordname))
+ ds_var_title(nv) = 'Forecast time step matrix'
+ ds_var_titl_mod(nv) = ' '
+ ds_var_type(nv) = ptype_float
+ ds_missing_flag(nv) = bad_val4
+ ds_bad_flag(nv) = bad_val4
+ cd_scale_factor(nv) = 1.
+ cd_add_offset(nv) = 0.
+ cd_scaled(nv) = .FALSE.
+* ... re-assemble units = 'days since 15-jan-1982' from units and t0
+ slen = TM_LENSTR1(line_units(tline))
+ ds_var_units(nv) = line_units(tline)(:slen) // ' since '
+ . // line_t0(tline)
+
+ IF (g2d .NE. unspecified_int4) THEN
+ DO 780 idim = 1, nferdims
+ grid_line(idim, g2d) = 0
+ ds_grid_start(idim,nv) = 1
+ ds_grid_end(idim,nv) = 1
+ ds_ordering(idim,nv) = 0
+ 780 CONTINUE
+
+ grid_line(t_dim, g2d) = grid_line(t_dim,gnum)
+ grid_line(f_dim, g2d) = iline
+
+ ds_grid_start(t_dim,nv) = 1
+ ds_grid_end(t_dim,nv) = line_dim(tline)
+ ds_ordering(1,nv) = t_dim
+
+ ds_grid_start(f_dim,nv) = 1
+ ds_grid_end(f_dim,nv) = nsets
+ ds_ordering(2,nv) = agg_dim
+
+ ds_grid_number(nv) = g2d
+ ENDIF
+
+* ... save the sequence number of this variable, so we can cache it later
+ it2d = nv
+
+ type = NCFLOAT
+ nvars = nvars + 1
+
+ CALL CD_ADD_VAR( agg_dset, tcoordname, nvars,
+ . ds_var_title(nv), ds_var_units(nv), type,
+ . .FALSE., ds_bad_flag(nv), status)
+
+* Add the aggregate-grid info with CALL CD_ADD_AGG_VAR_INFO
+* save the grid of the member datasets so we can get back the
+* right time axis for each member, but set member dataset to 0
+* because the 2d Time variable is not in the member sets.
+
+ DO 790 ii = 1, nsets
+ iset = member_sets(ii)
+ DO 795 i2 = 1, maxvars
+ IF ( (ds_var_setnum(i2) .EQ. iset) .AND.
+ . (STR_SAME(ds_var_code(i2), name1) .EQ. 0) )
+ . igrid = ds_grid_number(i2)
+ 795 CONTINUE
+
+ iset = 0
+ vtype = cat_agg_f_var
+ CALL CD_ADD_AGG_VAR_INFO (agg_dset, tcoordname, ii, vtype,
+ . iset, igrid, iline, nv, status)
+ 790 CONTINUE
+
+* Give the time2D variable _CoordinateAxisType and calendar attributes
+
+ CALL CD_GET_VAR_ID (agg_dset, tcoordname, varid, status)
+ attype = NCCHAR
+ CALL CD_PUT_NEW_ATTR (agg_dset, varid, '_CoordinateAxisType',
+ . attype, 4, attoutflag, 'Time', 0., status )
+ slen = TM_LENSTR1(line_cal_name(tline))
+ attoutflag = 1
+ attype = NCCHAR
+ CALL CD_PUT_NEW_ATTR (agg_dset, varid, 'calendar', attype,
+ . slen, attoutflag, line_cal_name(tline), 0., status )
+
+* define two special axes needed for FMRC regridding:
+* the 1D verification time axis and the 1D forecast
+* lead time axis
+* Assemble the 2D time array in line_mem and call CD_MAKE_FMRC_AXES
+* Save it at the start of available line storage memory
+* Also save the time box edge positions in line_mem above the 2d array
+* line_mem contents will be: 2d_times, 2d_lo_lims, hi_lim_of_last_time
+ nT = line_dim(grid_line(t_dim,gnum))
+ nF = line_dim(grid_line(f_dim,gnum))
+ npts = nT * nF
+ ipt1 = next_line_mem_pos
+ ipt = ipt1
+ IF ((ipt+2*npts+1).GT.maxlinestore) GOTO 5100
+
+* ... loop over the member data sets, copying their time steps
+ DO ii = 1, nsets
+ CALL CD_GET_AGG_VAR_INFO (agg_dset, vname, ii,
+ . vtype, iset, gnum2, iline2, nv, status)
+ IF (status .NE. ferr_ok) GOTO 5200
+* ... iline2 should be equal to iline -- no importance
+* set up to translate all times to the T0 of the first member
+ CALL TDEST_WORLD_INIT (gnum2, grid, t_dim, status)
+ IF (status .NE. ferr_ok) RETURN
+ DO i2 = 1, nT
+ line_mem(ipt) = TDEST_WORLD(i2, gnum2, t_dim, box_middle)
+ line_mem(ipt+npts) =
+ . TDEST_WORLD(i2, gnum2, t_dim, box_lo_lim)
+ ipt = ipt + 1
+ ENDDO
+ ENDDO
+ line_mem(ipt1+2*npts) =
+ . TDEST_WORLD(nT, gnum2, t_dim, box_hi_lim)
+
+* save the 2D time step array in c memory cache
+* to be recovered as needed by FIND_MEM_VAR
+ CALL CACHE_FULL_ARRAY(line_mem(ipt1), npts,
+ . ds_var_c_cache_ptr(it2d))
+
+!***** TEST ****
+! CALL RECOVER_CACHED_ARRAY(line_mem(ipt1+72), npts,
+! . ds_var_c_cache_ptr(varid))
+
+
+* make the two special axes
+* (varid still holds the id of the tccordname 2d time array)
+ has_edges = .TRUE.
+ CALL CD_MAKE_FMRC_AXES (agg_dset, has_edges, varid, tcoordname,
+ . ds_var_type(nv), npts, nT, nF,
+ . axcalt, axlagf, status)
+ IF (status .NE. merr_ok) GOTO 5000
+
+* define the F calendar axis -- similar drill to above
+ ipt1 = next_line_mem_pos
+ IF ((ipt1+2*nF+1).GT.maxlinestore) GOTO 5100
+ ipt = ipt1
+
+* ... loop over the member data sets, copying the 1st time step of each
+ DO ii = 1, nsets
+ CALL CD_GET_AGG_VAR_INFO (agg_dset, vname, ii,
+ . vtype, iset, gnum2, iline2, nv, status)
+ IF (status .NE. ferr_ok) GOTO 5200
+ CALL TDEST_WORLD_INIT (gnum2, grid, t_dim, status)
+ IF (status .NE. ferr_ok) RETURN
+ line_mem(ipt) = TDEST_WORLD(1, gnum2, t_dim, box_middle )
+ line_mem(ipt+nF) = TDEST_WORLD(1, gnum2, t_dim, box_lo_lim )
+ ipt = ipt + 1
+ ENDDO
+ line_mem(ipt+nF) = TDEST_WORLD(1, gnum2, t_dim, box_hi_lim )
+
+* ... make the forecast calendar axis
+ CALL CD_MAKE_FMRC_FCAL_AXIS (agg_dset, iline,
+ . nF, axcalt, status)
+ IF (status .NE. merr_ok) GOTO 5000
+
+! *sh* code in SHOW_DATA_SET_VARS indicates that I do not understand how the
+! current code handles grids of aggregated datasets. This block of code
+! seems to be causing troubles ... causing SHOW DATA to display limits of
+! 0:-7777 for the F axis ... so I removed the block below
+
+!* as a precaution, a hack to correct any ds_start and ds_end
+!* values that may have been made using the old iline definition
+! DO nv = 1, maxvars
+! IF ( ds_var_setnum(nv) .EQ. agg_dset ) THEN
+! gg = ds_grid_number(nv)
+! fax = grid_line(f_dim,gg)
+! IF (fax .EQ. iline) THEN
+! ds_grid_start(f_dim,nv) = line_mem(ipt1)
+! ds_grid_end (f_dim,nv) = line_dim(ipte)
+! ENDIF
+! ENDIF
+! ENDDO
+
+ ENDIF ! Forecast aggregations speacial needs
+
+
+
5000 RETURN
-
+ 5100 CALL ERRMSG(ferr_insuff_memory,status,
+ . 'unable to define forecast aggregation', *5000)
+ 5200 CALL ERRMSG(ferr_internal, status, 'define_aggregate_grid!', *5000)
END
diff --git a/fer/gnl/dollar_arg.F b/fer/gnl/dollar_arg.F
index 9effc97..fb6e883 100644
--- a/fer/gnl/dollar_arg.F
+++ b/fer/gnl/dollar_arg.F
@@ -46,16 +46,16 @@
* 2/03 *kob* - g77 port - g77 won't allow intrinsic functions in PARAMETER
* statements. use an octal constant instead
* 11/04*acm* - fix bug 485: $0 should return the name of the script -
-* IF (karg.LE.0 .OR. karg.GE.100) should be IF(karg.LT.0 ...
-
+* IF (karg.LE.0 .OR. karg.GE.100) should be IF(karg.LT.0 ...
+* V693+ *sh 2/15 - added support for _DQ_-enclosedquotations
* calling argument declarations:
INTEGER lenarg, status
CHARACTER carg*2, goline*(*), arg*(*)
* internal variable declarations:
- LOGICAL quote, found_comma, bslash
- INTEGER TM_LENSTR1,lengo, iarg, goptr, start, end, karg,
+ LOGICAL quote, DQ_quote, found_comma, bslash, its_quote, its_DQ
+ INTEGER TM_LENSTR1,lengo, iarg, goptr, start, iend, karg,
. open_paren, open_brkt
CHARACTER c1*1
@@ -94,7 +94,7 @@
c1 = goline(start:start)
IF ( c1 .EQ. ',' ) THEN
IF ( found_comma ) THEN
- end = start-1
+ iend = start-1
goptr = start ! (start-1 hangs on double comma)
GOTO 500
ENDIF
@@ -111,24 +111,33 @@
* locate the end of the argument
* ignore commas inside of parentheses to protect "/LEV=(lo,hi,delta)"
* 10/95 ignore commas inside of sqr brackets to protect "VAR[x=1,y=2]"
- 110 quote = .FALSE.
- bslash = .FALSE.
+ 110 quote = .FALSE.
+ DQ_quote = .FALSE.
+ bslash = .FALSE.
open_paren = 0
open_brkt = 0
DO 200 goptr = start, lengo
c1 = goline(goptr:goptr)
+ its_quote = c1 .EQ. '"'
+ IF (c1 .EQ. '_' .AND. goptr+3.LE.lengo) THEN
+ its_DQ = goline(goptr:goptr+3) .EQ. "_DQ_"
+ ELSE
+ its_DQ = .FALSE.
+ ENDIF
IF (bslash) THEN
GOTO 190 ! bypass looking at this character
#ifdef NO_DOUBLE_ESCAPE_SLASH
- ELSEIF (c1 .EQ. '\' ) THEN
+ ELSEIF (c1 .EQ. '\' ) THEN ! ' char for emacs
#else
ELSEIF (c1 .EQ. '\\') THEN
#endif
bslash=.TRUE. ! bypass looking at next character
GOTO 200
- ELSEIF ( c1 .EQ. '"' ) THEN
+ ELSEIF ( its_quote .AND. .NOT.DQ_quote ) THEN
quote = .NOT.quote
- ELSEIF ( quote ) THEN
+ ELSEIF ( its_DQ .AND. .NOT.quote ) THEN
+ DQ_quote = .NOT.DQ_quote
+ ELSEIF ( quote .OR. DQ_quote ) THEN
CONTINUE ! skip over quoted text
ELSEIF ( c1 .EQ. '(' ) THEN
open_paren = open_paren + 1
@@ -141,34 +150,43 @@
ELSEIF ( c1 .EQ. ',' ) THEN
IF ( open_paren.EQ.0 .AND. open_brkt.EQ.0 ) THEN
found_comma = .TRUE.
- end = goptr - 1
+ iend = goptr - 1
GOTO 500
ENDIF
ELSEIF (c1.EQ.' ' .OR. c1.EQ.tab ) THEN
- end = goptr - 1
+ iend = goptr - 1
GOTO 500
ENDIF
190 bslash = .FALSE.
200 CONTINUE
- end = lengo ! end of buffer is end of arg
+ iend = lengo ! end of buffer is end of arg
500 CONTINUE
* return the requested argument string
- IF ( carg .EQ. ' *' .AND. end .NE. lengo ) THEN
- end = lengo
+ IF ( carg .EQ. ' *' .AND. iend .NE. lengo ) THEN
+ iend = lengo
ELSEIF ( goline(start:start) .EQ. '"'
- . .AND. goline(end:end) .EQ. '"' ) THEN
+ . .AND. goline(iend:iend) .EQ. '"' ) THEN
* ... do not pass enclosing quotation marks
- start = start+1
- end = end - 1
+ start = start + 1
+ iend = iend - 1
+ ELSEIF ( goline(start:start) .EQ. '_'
+ . .AND. goline(iend :iend ) .EQ. '_'
+ . .AND. iend-start .GE. 7 ) THEN
+* ... do not pass enclosing _DQ_ marks
+ IF (goline(start : start+3) .EQ. "_DQ_"
+ . .AND. goline(iend-3: iend ) .EQ. "_DQ_" ) THEN
+ start = start + 4
+ iend = iend - 4
+ ENDIF
ENDIF
- IF ( start .GT. end ) THEN ! beware empty quotes
+ IF ( start .GT. iend ) THEN ! beware empty quotes
arg = ' '
lenarg = 0
ELSE
- arg = goline(start:end)
-! lenarg = end - start + 1
+ arg = goline(start:iend)
+! lenarg = iend - start + 1
* ... remove one level of backslash escapes from the arg
CALL DE_ESCAPE_STRING(arg, lenarg)
ENDIF
diff --git a/fer/gnl/edit_attribute.F b/fer/gnl/edit_attribute.F
index f96c0c4..228d8f7 100644
--- a/fer/gnl/edit_attribute.F
+++ b/fer/gnl/edit_attribute.F
@@ -63,6 +63,7 @@
* V685 *acm* 3/13 For Ensemble aggregations, call the ds_type 'ENS'
* v686 *acm* 1/14 Fix ticket 2127: dont check file type if the variable not a file variable.
* v687 *acm* 3/14 Fix ticket 2161: editing long_name or units of var in ascii files
+* V695 *acm* 2/15 For Forecast aggregations, call the ds_type 'FCT'
* codes for data sets
INTEGER set_not_open,set_open,file_not_open
@@ -460,6 +461,7 @@
IF (dset .GT. 0) ncfile = (TM_HAS_STRING(ds_type(dset), 'CDF') .OR.
. TM_HAS_STRING(ds_type(dset), 'MC') .OR.
. TM_HAS_STRING(ds_type(dset), 'ENS') .OR.
+ . TM_HAS_STRING(ds_type(dset), 'FCT') .OR.
. TM_HAS_STRING(ds_type(dset), 'GT') )
* note on EZ vars:
diff --git a/fer/gnl/equal_permute.F b/fer/gnl/equal_permute.F
index 6137338..5cd1e94 100644
--- a/fer/gnl/equal_permute.F
+++ b/fer/gnl/equal_permute.F
@@ -1,5 +1,3 @@
-
-
SUBROUTINE EQUAL_PERMUTE(string,fill,v_ok,neg_ok,perm,status )
*
@@ -54,6 +52,7 @@
* 2/03 *kob* - g77 port - g77 won't allow intrinsic functions in PARAMETER
* statements. use an octal constant instead
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 2/15 - added support for _DQ_ quotations
IMPLICIT NONE
@@ -100,8 +99,19 @@
GOTO 5100
* remove quotation marks
- 100 IF ( string(pos:pos) .EQ. '"' ) pos = pos + 1
- IF ( string(slen:slen) .EQ. '"' ) slen = slen - 1
+ 100 IF ( string(pos :pos ) .EQ. '"'
+ . .AND. string(slen:slen ) .EQ. '"' ) THEN
+ pos = pos + 1
+ slen = slen - 1
+ ELSEIF (string(pos :pos ) .EQ. '_'
+ . .AND. string(slen:slen) .EQ. '_'
+ . .AND. slen-pos.GE.8 ) THEN
+ IF (string(pos:pos+3) .EQ. '_DQ_'
+ . .AND. string(slen-3:slen) .EQ. '_DQ_' ) THEN
+ pos = pos + 4
+ slen = slen - 4
+ ENDIF
+ ENDIF
* decode permutation string
ndim = 0
diff --git a/fer/gnl/equal_str_lc.F b/fer/gnl/equal_str_lc.F
index 76240b7..64045d9 100644
--- a/fer/gnl/equal_str_lc.F
+++ b/fer/gnl/equal_str_lc.F
@@ -45,6 +45,7 @@
*
* V200: revision 0.0 - 3/12/91 - for Unix/RISC port - based on EQUAL_SRING
* *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V693+ *sh* 2/15 - added support for _DQ_ quotations
* calling argument declarations
INTEGER status
@@ -74,8 +75,19 @@
STOP '=_str' ! cannot occur
* remove quotation marks
- 110 IF ( string(strt:strt) .EQ. '"' ) strt = strt + 1
- IF ( string(slen:slen) .EQ. '"' ) slen = slen - 1
+ 110 IF ( string(strt:strt) .EQ. '"'
+ . .AND. string(slen:slen) .EQ. '"' ) THEN
+ strt = strt + 1
+ slen = slen - 1
+ ELSEIF (string(strt:strt) .EQ. '_'
+ . .AND. string(slen:slen) .EQ. '_'
+ . .AND. slen-strt.GE.8 ) THEN
+ IF (string(strt:strt+3) .EQ. '_DQ_'
+ . .AND. string(slen-3:slen) .EQ. '_DQ_' ) THEN
+ strt = strt + 4
+ slen = slen - 4
+ ENDIF
+ ENDIF
IF ( strt .GT. slen ) THEN
val = ' '
diff --git a/fer/gnl/equal_string.F b/fer/gnl/equal_string.F
index 8518f1b..d7a7533 100644
--- a/fer/gnl/equal_string.F
+++ b/fer/gnl/equal_string.F
@@ -47,6 +47,7 @@
* V200: 7/7/89 - remove leading blanks, process quotation marks
* 9/22/89 - fixed bug for NAME="" (close quotes)
* *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V693+ *sh* 2/15 - added support for _DQ_ quotations
* calling argument declarations
INTEGER status
@@ -76,8 +77,19 @@
STOP '=_str' ! cannot occur
* remove quotation marks
- 110 IF ( string(strt:strt) .EQ. '"' ) strt = strt + 1
- IF ( string(slen:slen) .EQ. '"' ) slen = slen - 1
+ 110 IF ( string(strt:strt) .EQ. '"'
+ . .AND. string(slen:slen) .EQ. '"' ) THEN
+ strt = strt + 1
+ slen = slen - 1
+ ELSEIF (string(strt:strt) .EQ. '_'
+ . .AND. string(slen:slen) .EQ. '_'
+ . .AND. slen-strt.GE.8 ) THEN
+ IF (string(strt:strt+3) .EQ. '_DQ_'
+ . .AND. string(slen-3:slen) .EQ. '_DQ_' ) THEN
+ strt = strt + 4
+ slen = slen - 4
+ ENDIF
+ ENDIF
IF ( strt .GT. slen ) THEN
val = ' '
diff --git a/fer/gnl/float2string_for_xml.F b/fer/gnl/float2string_for_xml.F
index 49d1f2a..5d856b1 100644
--- a/fer/gnl/float2string_for_xml.F
+++ b/fer/gnl/float2string_for_xml.F
@@ -51,7 +51,7 @@
* Internal declarations
LOGICAL TM_FPEQ
CHARACTER TM_FMT*16
- INTEGER TM_LENSTR, ival
+ INTEGER TM_LENSTR, STR_SAME, ival
REAL test_val
888 FORMAT(i16.0)
@@ -60,6 +60,17 @@
strng = TM_FMT(val, 7,16,slen)
+* If it's NaN, we are done. See show_data_set_vars_xml. If the
+* attribute is the _FillValue or missing_value, it has already
+* been converted to Ferret's default missing value, to match what
+* Ferret will write into data varaibles.
+
+ IF (STR_SAME(strng, 'NaN') .EQ. 0) THEN
+ print *, ' ATTRIBUTE is NaN'
+ slen = 3
+ GOTO 5000
+ ENDIF
+
IF (attype .EQ. nf_float .OR. attype .EQ. nf_double) THEN
slen = TM_LENSTR(strng)
ELSE
@@ -86,6 +97,7 @@
ENDIF
ENDIF
+ 5000 CONTINUE
RETURN
END
diff --git a/fer/gnl/get_context_mods.F b/fer/gnl/get_context_mods.F
index 31d21a6..a3c82be 100644
--- a/fer/gnl/get_context_mods.F
+++ b/fer/gnl/get_context_mods.F
@@ -148,10 +148,16 @@
* temp[gz(depth)=zax at ave]
* including special interpretation of gz(depth)=100 (a point)
* ensure that the same axis region isn't set twice (line 200)
-* Detect 'sigma' and 'curvi' automation flags
+* Detect 'layerz' and 'curvi' automation flags
* Note that errors will be silent in dependency_tree_mode
* Set cx_g_eq_regrid logical (used to be local "regrid_dims")
* V6.91+ *acm* 8/14 Fix ticket 2189
+* V693+ *sh* 12/14 keep track of regridding using cx_vtree* for ticket #2195
+* also fix err693_undetected_regrid_dset.jnl
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+* V695+ *sh* 2/15 add support for _DQ_
+* V698+ *sh* 5/15 bug fix: allow blanks before aux varname e.g. "gz( depth)"
+* V698+ *sh* 6/15 bug fix: all axes to allow [g*(aux)=pt], not just z_dim
* specifiers may give coordinate in subscript units (/I,/J,/K,/L) or
* may give coordinate in "world" units (/X,/Y,/Z,/T)
@@ -239,7 +245,7 @@
. (region_qual(idim,2),idim=1,nferdims) / 'X','Y','Z','T','E','F' /
! . other_qual(1) / 'D' /, ! /DATA_SET=
! . other_qual(2) / 'G' / ! /GRID=
-! . other_qual(3) / 'S' / ! var[z=100,SIGMA]
+! . other_qual(3) / 'S' / ! var[z=100,LAYERZ]
! . other_qual(4) / 'C' / ! var[x=140e,Y=0,CURVILINEAR]
* local parameter declarations (as in xeq_define)
@@ -253,10 +259,11 @@
DO 10 idim = 1, nferdims
morph_gx_to_x(idim) = .FALSE.
set_implicitly(idim) = .FALSE.
- cx_g_eq_regrid(idim) = .FALSE.
+! cx_g_eq_regrid(idim) = .FALSE. ! initialize *inside* of 500 loop 6/2015
first_time(idim) = .TRUE.
10 CONTINUE
has_g_eq_unkn_uvar = .FALSE.
+ cx_vtree_regrid_ntarget = 0
* check in advance for the use of pre-specified ("/@") limits and D=
* (the results of D= may be relevant in G=var)
@@ -280,7 +287,7 @@
cx_hi_ww ( idim, mods_cx ) = cx_hi_ww ( idim, ict )
* kob 9/97 - set cx_calendar as well
IF (idim .EQ. t_dim .OR. idim .EQ. f_dim)
- . cx_calendar(mods_cx) = cx_calendar(ict)
+ . cx_calendar(idim,mods_cx) = cx_calendar(idim,ict)
cx_trans ( idim, mods_cx ) = cx_trans ( idim, ict )
cx_trans_arg(idim, mods_cx ) = cx_trans_arg(idim, ict )
cx_by_ss ( idim, mods_cx ) = cx_by_ss( idim, ict )
@@ -348,12 +355,17 @@
letter = UPPER_CASE(text_buff(istart:istart))! 8/92
has_auxvar = .FALSE. ! 12/13
+* ... 6/2015 initialize this inside of 500 loop to allow [gx(xaux)=xax,gy(yaux)=yax]
+ DO idim = 1, nferdims
+ cx_g_eq_regrid(idim) = .FALSE.
+ ENDDO
+
* ignore any region information that contains grave accents
IF ( INDEX(risc_buff,'`') .GT. 0 ) GOTO 500
-* identify 'SIGMA' and 'CURVI' qualifiers
+* identify 'LAYERZ' and 'CURVI' qualifiers
IF (MATCH4(risc_buff,len_rbuff,
- . 'SIGM', 4 ) ) THEN
+ . 'LAYE', 4 ) ) THEN
cx_aux_given(z_dim,mods_cx) = .TRUE.
GOTO 500
ELSEIF (MATCH4(risc_buff,len_rbuff,
@@ -394,11 +406,16 @@
100 IF ( letter.EQ.'D' ) GOTO 500 ! already done
IF ( letter.NE.'G' ) GOTO 190
-* only a single regridding specifier is allowed if auxvar regridding is used
- IF (cx_unstand_grid(mods_cx) .AND. cx_naux(mods_cx).NE. 0) THEN
- name = 'only a single regrid allowed when using'
- GOTO 5300
- ENDIF
+!* only T and F axes may be simultaneously used in auxvar regridding
+! IF (cx_unstand_grid(mods_cx) .AND. cx_naux(mods_cx).NE. 0) THEN
+! name = 'only T and F regrids may be combined when using'
+! IF (idim.NE.t_dim .AND. idim.NE.f_dim) GOTO 5300
+! DO rgdim = 1, nferdims
+! IF (cx_g_eq_regrid(rgdim)) THEN
+! IF (rgdim.NE.t_dim .AND. rgdim.NE.f_dim) GOTO 5300
+! ENDIF
+! ENDDO
+! ENDIF
* G= or G*= non-standard grid specifier ...
* full format is (e.g.) GX=SALT at AVE (atsin and beyond optional)
@@ -462,16 +479,18 @@ c next_char = istart + naxes - 1
* if auxiliary regridding variables have been given, parse em here
IF (has_auxvar) THEN
* ... first check for valid usage
- IF (naxes .GT. 1) THEN
- name =
- . 'this Ferret version doesnt support multi aux regrid args'
- GOTO 5300
- ENDIF
- IF (idim .NE. z_dim) THEN
- name =
- . 'only the Z axis can be used in'
- GOTO 5300
- ENDIF
+! IF (naxes .GT. 1) THEN
+! name =
+! . 'this Ferret version doesnt support multi aux regrid args'
+! GOTO 5300
+! ENDIF
+! IF (idim .NE. z_dim
+! . .AND. idim .NE. t_dim
+! . .AND. idim .NE. f_dim ) THEN
+! name =
+! . 'only the Z, T, and F axes can be used in'
+! GOTO 5300
+! ENDIF
aux_lparen_pos = i
aux_rparen_pos = INDEX(text_buff(i:equal_pos), ')' )
@@ -486,13 +505,20 @@ c next_char = istart + naxes - 1
* ... infer the aux argument count in the parens from the number of commas
aux_arg_count = 1
aux_arg_namlen = 0
-* ... argument order must match collating order of axes as in gyx(argx,argy)=
- DO rgdim = 1, nferdims
- IF (cx_g_eq_regrid(rgdim)) GOTO 704 ! too lazy to renumber
+ IF (idim.EQ.t_dim .OR. idim.EQ.f_dim) THEN
+ rgdim = idim
+ ELSE
+* ... x,y arguments must be in collating order as in gxy(argx,argy)=
+ DO rgdim = 1, nferdims
+ IF (cx_g_eq_regrid(rgdim)) GOTO 704 ! should use "EXIT"
+ ENDDO
+ ENDIF
+* (5/15) ... skip leading white space
+ 704 DO i = aux_lparen_pos+1, aux_rparen_pos
+ IF (text_buff(i:i) .NE. ' ') EXIT
ENDDO
- GOTO 5400 ! can never get here
- 704 cx_aux_arg_start(rgdim, mods_cx) = i+1
- cx_aux_arg_end (rgdim, mods_cx) = i
+ cx_aux_arg_start(rgdim, mods_cx) = i
+ cx_aux_arg_end (rgdim, mods_cx) = i-1
cx_aux_stat (rgdim, mods_cx) = paux_stat_used
DO 104 i = aux_lparen_pos+1, aux_rparen_pos-1
IF (text_buff(i:i) .EQ. ' ') GOTO 104
@@ -511,7 +537,8 @@ c next_char = istart + naxes - 1
* ... match this arg to its axis from the "gxy" syntax
DO rgdim = rgdim+1, nferdims
IF (cx_g_eq_regrid(rgdim)) THEN
- cx_aux_arg_start(rgdim, mods_cx) = i
+ cx_aux_arg_start(rgdim, mods_cx) = i+1
+ cx_aux_arg_end (rgdim, mods_cx) = i
GOTO 104
ENDIF
ENDDO
@@ -527,7 +554,7 @@ c next_char = istart + naxes - 1
name = 'no. of auxliary variables must match no. of axes in'
GOTO 5300
ENDIF
- cx_naux(mods_cx) = naxes
+ cx_naux(mods_cx) = cx_naux(mods_cx) + naxes
ENDIF
* initialize for next axis as in "GXY="
@@ -552,7 +579,10 @@ c next_char = istart + naxes - 1
* to confuse these two
* 3/98: for T axis with GT="1-JAN-1990" first character may be a quote
i = 1 ! 3/98
- IF ((idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. name(1:1) .EQ. '"') i = 2 ! 3/98
+ IF ((idim.EQ.t_dim .OR. idim.EQ.f_dim) ) THEN
+ IF (name(1:1) .EQ. '"' ) i = 2 ! 3/98
+ IF (name(1:4) .EQ. '_DQ_') i = 5 ! 2/15
+ ENDIF
IF ( TM_DIGIT(name(i:i)) .AND. .NOT.single_char ) THEN
IF (.NOT.first_time(idim) ) GOTO 5200
IF (naxes .GT. 1) GOTO 5205 ! cannot say GXY=lo:hi:delta
@@ -648,6 +678,7 @@ c next_char = istart + naxes - 1
dend = ii
gdset = FIND_DSET_NUMBER( name(dstart:dend) )
+ IF (gdset .EQ. unspecified_int4) GOTO 5058 ! added 1/201
gdset_included = .TRUE.
*33333333333333333
ELSE
@@ -662,6 +693,18 @@ c next_char = istart + naxes - 1
IF ( category .EQ. cat_pseudo_var ) GOTO 5055
*33333333333333333
IF ( variable .NE. munknown_var_name ) THEN
+ IF (dependency_tree_mode) THEN
+* ... bookkeeping for determining the dependency tree (VTREE)
+ cx_vtree_regrid_ntarget = cx_vtree_regrid_ntarget + 1
+ cx_vtree_unknown_grid(cx_vtree_regrid_ntarget)
+ . = .FALSE.
+ cx_vtree_var_or_start(cx_vtree_regrid_ntarget)
+ . = variable
+ cx_vtree_cat_or_end (cx_vtree_regrid_ntarget)
+ . = category
+ cx_vtree_regrid_dset (cx_vtree_regrid_ntarget)
+ . = gdset
+ ENDIF
grid = KNOWN_GRID(gdset,category,variable)
cx_grid_needs_dset = .NOT.cx_dset_gvn( mods_cx )
* ... 6/00 bug fix for syntax X[gx=var[d=dset]] -- look for [d=...]
@@ -711,14 +754,46 @@ c next_char = istart + naxes - 1
ENDIF
*33333333333333333
ELSEIF ( single_char ) THEN
- GOTO 5050 ! (G=axis_name not allowed)
+ IF (dependency_tree_mode) THEN
+ cx_vtree_regrid_ntarget = cx_vtree_regrid_ntarget + 1
+ cx_vtree_unknown_grid(cx_vtree_regrid_ntarget)
+ . = .TRUE.
+ cx_vtree_var_or_start(cx_vtree_regrid_ntarget)
+ . = equal_pos + 1
+ cx_vtree_cat_or_end (cx_vtree_regrid_ntarget)
+ . = equal_pos + name_end
+ cx_vtree_regrid_dset (cx_vtree_regrid_ntarget)
+ . = unspecified_int4
+ ELSE
+ GOTO 5050 ! (G=axis_name not allowed)
+ ENDIF
*33333333333333333
ELSE
* ... as a last resort maybe it is an axis name (9/95)
c axis = TM_GET_LINENUM( name(:nend) )
axis = TM_GET_LINENUM( name(:name_end) )
IF ( axis .EQ. unspecified_int4 ) THEN
- GOTO 5050 ! final defeat
+ IF (dependency_tree_mode) THEN
+* ... 12/14 hack to let an unknown grid error condition slip through if we
+* are merely evaluating the dependency tree.
+ cx_vtree_regrid_ntarget = cx_vtree_regrid_ntarget + 1
+ cx_vtree_unknown_grid(cx_vtree_regrid_ntarget)
+ . = .TRUE.
+ cx_vtree_var_or_start(cx_vtree_regrid_ntarget)
+ . = equal_pos + 1
+ cx_vtree_cat_or_end (cx_vtree_regrid_ntarget)
+ . = equal_pos + name_end
+ cx_vtree_regrid_dset (cx_vtree_regrid_ntarget)
+ . = unspecified_int4
+* It is normal for LET-defined variables
+* that the grid may remain unknown until the children grids
+* are determined, so hopefully it is OK here, too. If not then we
+* might try inserting an innocuous grid, such as
+! IF (cx_grid(mods_cx) .EQ. unspecified_int4)
+! . cx_grid(mods_cx) = EZ or ABSTRACT
+ ELSE
+ GOTO 5050 ! final defeat
+ ENDIF
ELSEIF ( TM_AXIS_DIRECTION(axis) .NE. idim
. .AND. TM_AXIS_DIRECTION(axis) .NE. 0 ) THEN ! 7/96
GOTO 5052
@@ -756,11 +831,11 @@ c axis = TM_GET_LINENUM( name(:nend) )
GOTO 5020 ! unknown regrid transform
* ... trap (temporary?) for use of "@AVE" on auxiliary regridding
182 IF (itrans .EQ. pauxrgrd_average) THEN
- CALL WARN_OCCASIONALLY(
- . 'Box-averaging not available for auxiliary variable '//
- . 'regridding.'//pCR//
- . ' Using @PLAVE instead, '//
- . 'e.g. gz(depth)=0:100 at plave', 10, 101)
+! CALL WARN_OCCASIONALLY(
+! . 'Box-averaging not available for auxiliary variable '//
+! . 'regridding.'//pCR//
+! . ' Using @PLAVE instead, '//
+! . 'e.g. gz(depth)=0:100 at plave', 10, 101)
itrans = pauxrgrd_pwlave
ENDIF
IF ( single_char ) THEN ! apply transform to all axes
@@ -876,16 +951,55 @@ c axis = TM_GET_LINENUM( name(:nend) )
* make allowances for quotation marks here and there (kludge!)
* watch for empty strings! (10/95)
- IF ( text_buff(lo_start:lo_start) .EQ. '"' ) lo_start = lo_start + 1
- IF ( text_buff(lo_end :lo_end ) .EQ. '"' ) lo_end = lo_end - 1
+* add _DQ_ support 2/15
+ IF ( text_buff(lo_start:lo_start) .EQ. '"' ) THEN
+ lo_start = lo_start + 1
+ ELSEIF ( text_buff(lo_start:lo_start) .EQ. '_'
+ . .AND.lo_start+3 .LE. iend ) THEN
+ IF ( text_buff(lo_start:lo_start+3) .EQ. '_DQ_' )
+ . lo_start = lo_start + 4
+ ENDIF
+ IF ( text_buff(lo_end :lo_end ) .EQ. '"' ) THEN
+ lo_end = lo_end - 1
+ ELSEIF ( text_buff(lo_end :lo_end ) .EQ. '_'
+ . .AND. lo_end-3 .GE. istart ) THEN
+ IF ( text_buff(lo_end-3:lo_end ) .EQ. '_DQ_' )
+ . lo_end = lo_end - 4
+ ENDIF
+
IF ( colon ) THEN
- IF ( text_buff(hi_start:hi_start) .EQ. '"' ) hi_start = hi_start + 1
- IF ( text_buff(hi_end :hi_end ) .EQ. '"' ) hi_end = hi_end - 1
+ IF ( text_buff(hi_start:hi_start) .EQ. '"' ) THEN
+ hi_start = hi_start + 1
+ ELSEIF ( text_buff(hi_start:hi_start) .EQ. '_'
+ . .AND. hi_start+3 .LE. iend ) THEN
+ IF ( text_buff(hi_start:hi_start+3) .EQ. '_DQ_' )
+ . hi_start = hi_start + 4
+ ENDIF
+ IF ( text_buff(hi_end :hi_end ) .EQ. '"' ) THEN
+ hi_end = hi_end - 1
+ ELSEIF ( text_buff(hi_end :hi_end ) .EQ. '_'
+ . .AND. hi_end-3 .GE. istart ) THEN
+ IF ( text_buff(hi_end-3:hi_end ) .EQ. '_DQ_' )
+ . hi_end = hi_end - 4
+ ENDIF
IF ( hi_start .GT. hi_end ) GOTO 5165
ENDIF
+
IF ( colon2 ) THEN
- IF (text_buff(del_start:del_start) .EQ. '"') del_start = del_start+1
- IF (text_buff(del_end :del_end ) .EQ. '"') del_end = del_end -1
+ IF ( text_buff(del_start:del_start ) .EQ. '"') THEN
+ del_start = del_start+1
+ ELSEIF (text_buff(del_start:del_start ) .EQ. '_'
+ . .AND. del_start+3 .LE. iend ) THEN
+ IF (text_buff(del_start:del_start+3) .EQ. '_DQ_')
+ . del_start = del_start+4
+ ENDIF
+ IF ( text_buff(del_end :del_end ) .EQ. '"' ) THEN
+ del_end = del_end - 1
+ ELSEIF (text_buff(del_end :del_end ) .EQ. '_'
+ . .AND. del_end-3 .GE. istart ) THEN
+ IF (text_buff(del_end-3:del_end ) .EQ. '_DQ_')
+ . del_end = del_end - 4
+ ENDIF
IF ( del_start .GT. del_end ) GOTO 5165
ENDIF
@@ -925,7 +1039,8 @@ c axis = TM_GET_LINENUM( name(:nend) )
* kob 8/97 - set cx_calender to true/false depending on whether date is
* a formated string or not
- IF (idim .EQ. t_dim .OR. idim .EQ. f_dim) cx_calendar(mods_cx) = fmat_lo
+ IF (idim .EQ. t_dim .OR. idim .EQ. f_dim)
+ . cx_calendar(idim,mods_cx) = fmat_lo
ENDIF
* is there a second value given ?
@@ -1020,13 +1135,12 @@ c axis = TM_GET_LINENUM( name(:nend) )
* ... identify the axis being regridding in this qualifier
DO rgdim = 1, nferdims
IF (cx_g_eq_regrid(rgdim)) THEN
- IF (rgdim .NE. z_dim) CYCLE ! ignore all axes but Z
* set up for dynamic axis by inserting a special cx_delta signal
- IF (cx_lo_ww(z_dim,mods_cx) .EQ. unspecified_val8) CYCLE
- IF (cx_delta(z_dim,mods_cx) .NE. unspecified_val8) CYCLE
- IF (cx_lo_ww(z_dim,mods_cx) .EQ. cx_hi_ww(z_dim,mods_cx)
- . .OR. cx_regrid_trans(z_dim,mods_cx) .EQ. pauxrgrd_pwlave)
- . cx_delta(z_dim,mods_cx) = pauto_1pt_ax
+ IF (cx_lo_ww(rgdim,mods_cx) .EQ. unspecified_val8) CYCLE
+ IF (cx_delta(rgdim,mods_cx) .NE. unspecified_val8) CYCLE
+ IF (cx_lo_ww(rgdim,mods_cx) .EQ. cx_hi_ww(rgdim,mods_cx)
+ . .OR. cx_regrid_trans(rgdim,mods_cx) .EQ. pauxrgrd_pwlave)
+ . cx_delta(rgdim,mods_cx) = pauto_1pt_ax
ENDIF
ENDDO
ENDIF
@@ -1040,7 +1154,7 @@ c axis = TM_GET_LINENUM( name(:nend) )
* repeat/i=3:1:1 executes the same as repeat/i=1:3:1 and
* list var[i=180:10:10] the same as list var[i=10:180:10]
- IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. cx_calendar(mods_cx) ) THEN
+ IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. cx_calendar(idim,mods_cx) ) THEN
IF ( cx_hi_ww(idim,mods_cx) .GT.
. cx_lo_ww(idim,mods_cx) ) THEN
temp = cx_lo_ww( idim, mods_cx )
@@ -1068,7 +1182,7 @@ c axis = TM_GET_LINENUM( name(:nend) )
cx_hi_ww( idim, mods_cx ) = unspecified_val8
* 9/97 *kob* cx_calendar must reflect these changes as well
IF (idim .EQ. t_dim .OR. idim .EQ. f_dim)
- . cx_calendar(mods_cx) = .FALSE.
+ . cx_calendar(idim,mods_cx) = .FALSE.
ENDIF
* SPECIAL CASES for individual axes
@@ -1087,8 +1201,9 @@ c axis = TM_GET_LINENUM( name(:nend) )
500 CONTINUE
* SPECIAL CASES for entire context
-* If a grid qualifiers wer given then a grid name from at least 1 was mandatory
+* If grid qualifiers were given then a grid name from at least 1 was mandatory
IF ( cx_unstand_grid(mods_cx)
+ . .AND. .NOT.dependency_tree_mode
. .AND. .NOT.cx_has_impl_grid(mods_cx)
. .AND. cx_grid(mods_cx) .EQ. unspecified_int4 ) GOTO 5024
@@ -1110,6 +1225,14 @@ c axis = TM_GET_LINENUM( name(:nend) )
600 CONTINUE
610 CONTINUE
+* TF regridding syntax may be gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F in which case
+* what appears as two distinct auxiliary variables is really only one
+ IF (cx_naux(mods_cx) .GT. 1) THEN
+ IF ( cx_aux_arg_start(t_dim,mods_cx) .NE. unspecified_int4
+ . .AND. cx_aux_arg_start(f_dim,mods_cx) .NE. unspecified_int4 )
+ . cx_naux(mods_cx) = cx_naux(mods_cx) - 1
+ ENDIF
+
* same is true for indefinite integrals but never been used yet ...
IF ( cx_trans(x_dim,mods_cx) .EQ. trans_integ_indef
. .AND. cx_trans(y_dim,mods_cx) .EQ. trans_integ_indef )
@@ -1153,6 +1276,8 @@ c axis = TM_GET_LINENUM( name(:nend) )
. ' --> g=user-or-pseudo-var not allowed', *5000 )
5056 CALL ERRMSG( ferr_syntax, status,
. 'invalid nested brackets: '//risc_buff(:len_rbuff),*5000)
+ 5058 CALL ERRMSG
+ . ( ferr_unknown_data_set, status, name(dstart:dend), *5000 )
5060 CALL ERRMSG( ferr_invalid_command, status,
. 'use @SHF only with IJK or L: '//risc_buff(:len_rbuff),*5000)
5100 CALL ERRMSG( ferr_syntax, status,
diff --git a/fer/gnl/get_fer_command.F b/fer/gnl/get_fer_command.F
index c03c359..db80204 100644
--- a/fer/gnl/get_fer_command.F
+++ b/fer/gnl/get_fer_command.F
@@ -95,6 +95,13 @@
* *acm* 3/12 cleanup ifdefs and unnecessary include files
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* V690 *sh* 2/14 initialize max_context, now a variable to support aux vars
+* V693+ *sh* 12/14 moved arg_start/end inits into PARSE_COMMAND (housekeeping)
+* Moved other house-keeping from PARSE_COMMAND here
+* 1) Trim leading "yes? " and "...? "
+* 2) Trim bang-comments off.
+* 3) Do not call PARSE_COMMAND for pure comments.
+* 4) Process continuation lines
+* Issue warning if GO file EOF found while in the midst of IF
#ifdef MIXING_NAG_F90_AND_C
USE F90_UNIX
@@ -106,17 +113,25 @@
CHARACTER*(*) called_string
* internal variable declarations:
- LOGICAL re_verify, do_verify, prefix_verify, arg1_quoted
+ LOGICAL re_verify, do_verify, arg1_quoted,
+ . pure_comment, appending_cmnd
INTEGER TM_LENSTR, TM_LENSTR1,
. iqual, ilist, cmnd_len, double_eof,
- . has_more, i
+ . has_more, i, cmnd_len_w_cmnt
+ CHARACTER prefix*5, raw_cmnd_buff*2048
- CHARACTER*1 backslash
+* local parameter declarations
+ CHARACTER*1 backslash, tab
+ CHARACTER*5 dprefix
+ PARAMETER ( dprefix = ' !-> ')
#ifdef NO_INTRINSIC_IN_PARAMETER
PARAMETER ( backslash = o'134' )
+ PARAMETER ( tab = o'011' )
#else
PARAMETER ( backslash = char(92) )
+ PARAMETER ( tab = CHAR(9) )
#endif
+
include 'tmap_dims.parm'
include 'errmsg.parm'
include 'ferret.parm'
@@ -132,16 +147,18 @@
gui_status = ferr_ok ! start w/ a clean bill o' health
double_eof = 0
max_context = max_noframe_context ! 2/2014
+ len_cmnd_copy = 0
+ appending_cmnd = .FALSE.
* if a command was given then execute it immediately
IF ( called_string .NE. ' ' ) THEN
cmnd_buff = called_string
- cmnd_len = TM_LENSTR( cmnd_buff )
+ cmnd_len_w_cmnt = TM_LENSTR( cmnd_buff )
IF ( mode_journal
. .AND. jrnl_lun .NE. unspecified_int4
- . .AND. cmnd_len .GT. 0
+ . .AND. cmnd_len_w_cmnt .GT. 0
. .AND. cmnd_buff(1:1) .NE. backslash ) then
- WRITE (jrnl_lun,'(A)') cmnd_buff(1:cmnd_len)
+ WRITE (jrnl_lun,'(A)') cmnd_buff(1:cmnd_len_w_cmnt)
* *kob* 5/99 - Flush buffer
CALL FLUSH(jrnl_lun)
@@ -161,14 +178,13 @@
GOTO (100,200,300) input_source
-
************** OPERATOR AS SOURCE OF COMMAND LINE ****************************
100 IF (mode_gui) THEN
* operator using mouse input device
CALL MOUSE_COMMAND (cmnd_buff)
- cmnd_len = TM_LENSTR( cmnd_buff )
+ cmnd_len_w_cmnt = TM_LENSTR( cmnd_buff )
ELSE
* operator sitting at his keyboard
@@ -176,19 +192,19 @@
! 3000 FORMAT (1X,A,$) ! vms
! 3000 FORMAT (A,$) ! unix
! READ ( ttin_lun,'(A)',END=2000 ) cmnd_buff
-! cmnd_len = TM_LENSTR( cmnd_buff )
+! cmnd_len_w_cmnt = TM_LENSTR( cmnd_buff )
! check for multiple ^D's from the keyboard (or EOF on stdin redirect)
double_eof = double_eof + 1
IF (double_eof .GT. 2) STOP ! 1/18/95
* ... gnu readline with a FORTRAN jacket
- IF ( has_continuation_cmnd ) THEN
+ IF ( appending_cmnd ) THEN
CALL TM_FRIENDLY_READ('...? ',cmnd_buff,*20)
ELSE
CALL TM_FRIENDLY_READ(prompt(:prompt_len),cmnd_buff,*20)
ENDIF
- cmnd_len = TM_LENSTR( cmnd_buff )
+ cmnd_len_w_cmnt = TM_LENSTR( cmnd_buff )
double_eof = 0 ! in case comment or blank line returns here
ENDIF
@@ -197,9 +213,9 @@
IF ( mode_journal
. .AND. jrnl_lun .NE. unspecified_int4
- . .AND. cmnd_len .GT. 0
+ . .AND. cmnd_len_w_cmnt .GT. 0
. .AND. cmnd_buff(1:1) .NE. backslash ) then
- WRITE (jrnl_lun,'(A)') cmnd_buff(1:cmnd_len)
+ WRITE (jrnl_lun,'(A)') cmnd_buff(1:cmnd_len_w_cmnt)
* *kob* 5/99 - Flush buffer
CALL FLUSH(jrnl_lun)
@@ -214,10 +230,11 @@
c 200 CALL my_readline(cmnd_lun,cmnd_buff,LEN(cmnd_buff),has_more)
c IF(has_more.NE.1) goto 210
- cmnd_len = TM_LENSTR1( cmnd_buff )
- IF (cmnd_buff(cmnd_len:cmnd_len) .EQ. pCR ) THEN
- cmnd_buff(cmnd_len:cmnd_len) = ' '
- IF (cmnd_len .GT. 1) cmnd_len = cmnd_len - 1
+ cmnd_len_w_cmnt = TM_LENSTR1( cmnd_buff )
+ IF (cmnd_buff(cmnd_len_w_cmnt:cmnd_len_w_cmnt) .EQ. pCR ) THEN
+ cmnd_buff(cmnd_len_w_cmnt:cmnd_len_w_cmnt) = ' '
+ IF (cmnd_len_w_cmnt .GT. 1) cmnd_len_w_cmnt =
+ . cmnd_len_w_cmnt - 1
ENDIF
IF ( cmnd_buff(1:1) .EQ. backslash ) THEN
cmnd_buff(1:1) = ' '
@@ -225,10 +242,15 @@ c IF(has_more.NE.1) goto 210
ELSE
do_verify = mode_verify
ENDIF
- prefix_verify = .FALSE.
+ prefix = ' '
GOTO 1000
* end of command file - return to next lower control stack level
- 210 CALL POP_CS
+* if we were in the midst of an open IF block, issue a warning
+ 210 IF (if_conditional) THEN
+ IF (csp .LE. if_cs(ifstk) ) CALL WARN(
+ . 'Unclosed IF statement ... assuming ENDIF')
+ ENDIF
+ CALL POP_CS
IF ( csp.EQ.0 .AND. mode_gui ) THEN ! GUI code ...
gui_status = ferr_ok ! a clean bill o' health at GO termination
RETURN 1
@@ -241,39 +263,118 @@ c IF(has_more.NE.1) goto 210
*************** COMMAND STACK AS SOURCE OF COMMAND LINE ***********************
300 CALL CS_COMMAND( cmnd_buff, *20 )
- cmnd_len = TM_LENSTR1( cmnd_buff )
+ cmnd_len_w_cmnt = TM_LENSTR1( cmnd_buff )
do_verify = mode_verify .AND. mode_arg(pmode_verify,1).GE.2
- prefix_verify = .TRUE.
+ prefix = dprefix
+
+
+*********** SAVE THE RAW COMMAND TO USE FOR ECHOING *************
+ 1000 raw_cmnd_buff = cmnd_buff
-*********** POSSIBLY SKIP COMMAND UNDER IF CONTROL (4/96) ********************
- 1000 IF (if_conditional) CALL PROCESS_IF(cmnd_buff, cmnd_len, *20)
+*********** TRIM "yes?" and "...?" FROM START OF LINE
+ DO WHILE (cmnd_buff(1:5) .EQ. 'yes? '
+ . .OR. cmnd_buff(1:5) .EQ. '...? ' )
+ IF ( cmnd_len_w_cmnt .LT. 6 ) THEN
+ cmnd_buff = ' '
+ cmnd_len_w_cmnt = 1
+ ELSE
+ cmnd_buff = cmnd_buff(6:cmnd_len_w_cmnt)
+ cmnd_len_w_cmnt = cmnd_len_w_cmnt - 5
+ ENDIF
+ ENDDO
+
+*********** TRIM COMMAND BUFF TO EXCLUDE BANG_COMMENTS ********************
+* find length of command line ("!" is a valid terminator to permit comments)
+ cmnd_len = cmnd_len_w_cmnt ! dflt len if no comment found
+ pure_comment = .FALSE.
+ IF (cmnd_buff(1:1) .EQ. '!'
+ . .OR. cmnd_buff(1:1) .EQ. '*'
+ . .OR. cmnd_buff(1:1) .EQ. ' ' .AND. cmnd_len .EQ. 1) THEN
+ pure_comment = .TRUE.
+ ELSE
+* ... search forward in the command string for the first non-escaped "!"
+ DO i = 2, cmnd_len_w_cmnt
+ IF ( cmnd_buff(i :i ) .EQ. '!'
+ . .AND. cmnd_buff(i-1:i-1) .NE. backslash ) GOTO 1005
+ ENDDO
+* ... no bang comment found
+ GOTO 1010
+* ... found "!". Now search backwards for the last non-white character
+ 1005 pure_comment = .TRUE. ! default until non-white char found
+ DO cmnd_len = i-1, 1, -1
+ IF ( cmnd_buff(cmnd_len:cmnd_len) .NE. ' '
+ . .AND. cmnd_buff(cmnd_len:cmnd_len) .NE. tab ) THEN
+ pure_comment = .FALSE.
+ GOTO 1010
+ ENDIF
+ ENDDO
+* ... nothing but blanks preceding the comment bang
+ pure_comment = .TRUE.
+ ENDIF
-*********** ECHO THE COMMAND ****************************
- IF (do_verify) THEN
- IF (prefix_verify) THEN
+*********** ECHO THE COMMAND WITH ITS COMMENTS ***********************
+ 1010 IF (.NOT.if_conditional .AND. do_verify ) THEN
+* ... echoing in IF blocks is handled by PROCESS_IF
+ IF (prefix .EQ. ' ') THEN
+* ... separate SPLIT_LIST call to avoid single char ' ' prefix
CALL SPLIT_LIST(pttmode_ops, ttout_lun,
- . ' !-> '//cmnd_buff, cmnd_len+5 )
+ . cmnd_buff, cmnd_len_w_cmnt)
ELSE
- CALL SPLIT_LIST(pttmode_ops, ttout_lun, cmnd_buff, cmnd_len)
+ CALL SPLIT_LIST(pttmode_ops, ttout_lun,
+ . prefix//cmnd_buff, cmnd_len_w_cmnt+5 )
ENDIF
ENDIF
-*********** LEFT JUSTIFY THE COMMAND ********************
- IF ( .NOT.has_continuation_cmnd ) THEN
+*********** IF WE ONLY HAVE A COMMENT GET A FRESH STRING *************
+ IF (pure_comment .AND. .NOT.appending_cmnd) GOTO 20
+
+*********** WIPE OUT COMMENT AND LEFT JUSTIFY ********************
+ IF (pure_comment) THEN
+ cmnd_buff = ' '
+ cmnd_len = 1
+ ELSEIF (cmnd_len_w_cmnt .GT. cmnd_len) THEN
+ cmnd_buff(cmnd_len+1:cmnd_len_w_cmnt) = ' '
+ ENDIF
+ IF ( .NOT.appending_cmnd ) THEN
CALL LEFT_JUST( cmnd_buff, cmnd_buff, cmnd_len )
- IF ( cmnd_buff(1:1) .EQ. '?' ) THEN ! should be an ALIAS!!
+ IF ( cmnd_buff(1:1) .EQ. '?' ) THEN ! "?" should be an ALIAS!!
cmnd_buff = 'HELP' ! 8/92
cmnd_len = 4
ENDIF
ENDIF
-*************** DECODE THE COMMAND LINE ***************************************
+********** INCOMPLETE (CONTINUED) CMND LINE -- MUST GET MORE ***************
+ IF (cmnd_buff(cmnd_len:cmnd_len) .EQ. backslash) THEN
+* ... save this line as a partial command
+ IF (appending_cmnd) THEN
+ cmnd_copy = cmnd_copy(:len_cmnd_copy) // cmnd_buff(:cmnd_len)
+ len_cmnd_copy = len_cmnd_copy + cmnd_len
+ ELSE
+ cmnd_copy = cmnd_buff(:cmnd_len)
+ len_cmnd_copy = cmnd_len
+ ENDIF
+* ... wipe out the backslash in the stored copy
+ cmnd_copy(len_cmnd_copy:len_cmnd_copy) = ' '
+ len_cmnd_copy = len_cmnd_copy - 1
+* ... go back for more
+ appending_cmnd = .TRUE.
+ GOTO 20
+ ENDIF
+
+*************** ASSEMBLE COMPLETED CONTINUATION LINES ********************
+ IF (appending_cmnd) THEN
+ IF ( len_cmnd_copy+cmnd_len .GE. cmnd_buff_len ) GOTO 5005
+ cmnd_buff = cmnd_copy(:len_cmnd_copy) // cmnd_buff(:cmnd_len)
+ cmnd_len = len_cmnd_copy + cmnd_len
+ appending_cmnd = .FALSE.
+ ENDIF
- DO 400 i = 1, max_arg_list
- arg_start(i) = 0
- arg_end(i) = 0
- 400 CONTINUE
+*********** WHEN WITHIN AN IF BLOCK, COMMANDS MAY BE SKIPPED ****************
+ IF (if_conditional) CALL PROCESS_IF(cmnd_buff, cmnd_len,
+ . do_verify, prefix, raw_cmnd_buff, *20)
+*************** PARSE THE COMMAND LINE ***************************************
+* 1/14 the command string now has no continuations and no comments
CALL PARSE_COMMAND ( memory, cmnd_buff,
. max_arg_list, max_qual_list,
. len_cmnd, cmnd_num, subcmnd_num,
@@ -295,12 +396,13 @@ c IF(has_more.NE.1) goto 210
*************** REORGANIZE LIST OF QUALIFIERS GIVEN TO INTERNAL ORDER ********
- DO 1010 iqual = 1, max_qual_list
- 1010 qual_given( iqual ) = 0
- DO 1020 ilist = 1, num_qualifiers
+ DO iqual = 1, max_qual_list
+ qual_given( iqual ) = 0
+ ENDDO
+ DO ilist = 1, num_qualifiers
IF ( cmnd_buff( qual_start(ilist):qual_start(ilist) ) .NE. '@' )
. qual_given( qualifier_list( ilist ) ) = ilist
- 1020 CONTINUE
+ ENDDO
*************** BREAK APART ITEMS SEPARATED BY COMMAS IN FIRST ARGUMENT ********
@@ -321,4 +423,11 @@ c IF(has_more.NE.1) goto 210
RETURN
+* error exits
+ 5005 CALL ERRMSG( ferr_syntax, status,
+ . 'command line too long -- exceeds 2048', *9000 )
+! 2048 must match cmnd_buff_len
+ 9000 RETURN 1
+
+
END
diff --git a/fer/gnl/get_fvars_list_by_attname_and_val.F b/fer/gnl/get_fvars_list_by_attname_and_val.F
index 17c5097..babea2a 100644
--- a/fer/gnl/get_fvars_list_by_attname_and_val.F
+++ b/fer/gnl/get_fvars_list_by_attname_and_val.F
@@ -39,10 +39,11 @@
*
* return a list of all file variables that have a particular given value for
* a given string attribute
-* intended usage: find variables that have _SIGMA_REF_'="DEPTH"
+* intended usage: find variables that have __LAYERZ_REF__'="DEPTH"
* Note: if the incoming string is unspecified_name4, then all attrib vals match
* V690: 2/14 *sh*
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
IMPLICIT NONE
#include "tmap_dset.parm"
@@ -79,7 +80,7 @@
CALL CD_GET_VAR_ID (dset, ds_var_code(ivar), varid, status)
- found_one = NC_GET_ATTRIB ( dset, varid, patnam_sigma,
+ found_one = NC_GET_ATTRIB ( dset, varid, patnam_layerz,
. .FALSE., ds_var_code(ivar), maxlen,
. attlen, attoutflag, retstring,
. attvals )
diff --git a/fer/gnl/get_uvars_list_by_attname_and_val.F b/fer/gnl/get_uvars_list_by_attname_and_val.F
index 63825c8..c635ec8 100644
--- a/fer/gnl/get_uvars_list_by_attname_and_val.F
+++ b/fer/gnl/get_uvars_list_by_attname_and_val.F
@@ -43,6 +43,7 @@
* Note: if the incoming string is unspecified_name4, then all attrib vals match
* V690: 2/14 *sh*
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
IMPLICIT NONE
#include "tmap_dset.parm"
@@ -81,7 +82,7 @@
DO ivar = 1, num_indices
CALL CD_GET_VAR_ID (dsetm1, uvar_name_code(ivar), varid, status)
- found_one = NC_GET_ATTRIB ( dsetm1, varid, patnam_sigma,
+ found_one = NC_GET_ATTRIB ( dsetm1, varid, patnam_layerz,
. .FALSE., uvar_name_code(ivar), maxlen,
. attlen, attoutflag, retstring,
. attvals )
@@ -96,7 +97,7 @@
IF (found_one) THEN
nfound = nfound + 1
id_list (nfound) = varid
- dset_list(nfound) = -1 ! needs to be uvar_dset(ivar) for LET/D
+ dset_list(nfound) = pdset_uvars ! needs to be uvar_dset(ivar) for LET/D
IF (nfound .EQ. maxlist) RETURN ! hacky but good enuf
ENDIF
ENDIF
diff --git a/fer/gnl/init_aggregate_dset.F b/fer/gnl/init_aggregate_dset.F
index 7d568b5..9e952a8 100644
--- a/fer/gnl/init_aggregate_dset.F
+++ b/fer/gnl/init_aggregate_dset.F
@@ -1,5 +1,5 @@
SUBROUTINE INIT_AGGREGATE_DSET (dname, dtitle, agg_dset,
- . agg_quiet, agg_hide, status )
+ . agg_quiet, agg_hide, agg_dim, status )
*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -40,8 +40,11 @@
* V685 4/13 *acm* Ability to define ensemble with /HIDDEN
* Get grid of user-vars, allow more combinations with user vars
* better error handling.
+* V695 2/15 *acm* Aggregation in either E or F direction, as defined by agg_dim
+* V695+ 5/15 *sh* Call GET_AXIS_SPEEDS (pulled out of CHECK_MEMBER_DSETS)
IMPLICIT NONE
+ include 'netcdf.inc'
include 'tmap_errors.parm'
#include "tmap_dset.parm"
include 'tmap_dims.parm'
@@ -49,6 +52,7 @@
include 'xdset_info.cmn_text'
external xdset_info_data
include 'xdset_info.cd_equiv'
+ include 'xunits.cmn_text'
include 'xprog_state.cmn'
include 'xtm_grid.cmn_text'
include 'errmsg.parm'
@@ -58,21 +62,27 @@
* calling argument declarations:
CHARACTER*(*) dname, dtitle
- INTEGER agg_dset, status
+ INTEGER agg_dset, agg_dim, status
LOGICAL agg_quiet, agg_hide
* local variable declarations:
- LOGICAL match, has_uvars
+ LOGICAL match, has_uvars, need_tf_lag_t
INTEGER TM_LENSTR, TM_LENSTR1, STR_SAME, NCF_DELETE_DSET,
. NCF_ADD_AGG_MEMBER, NCF_GET_AGG_MEMBER_INFO,
. KNOWN_GRID,
- . iset, dset, item, ii,
+ . iset, dset, item, ii, nT,
. perm(nferdims), nsets, member_sets(maxdsets),
. imatch, nv, grid, igrid, idim, ivar, nvars, iline,
. slen, memb_var, memb_dset, memb_grid, ugrid,
- . type, fvar
- CHARACTER vname*128
+ . type, fvar, ndims, ngatts, recdim, varid, attoutflag,
+ . tax_match, tf_lag_t, memb_tax, prev_line_start
+ CHARACTER vname*128, buff*64, tcoordname*16
CHARACTER TM_STRING*13
+ REAL*8 TM_WORLD, avg_lag
+
+* initialize
+ need_tf_lag_t = .TRUE.
+ tf_lag_t = unspecified_int4 ! lag time axis if FMRC
* check to see if this name matches an already-open dataset name.
* if so, thats an error
@@ -107,16 +117,47 @@
220 CONTINUE
* Create datset. Will delete it later if there are no aggregate variables found.
-
- CALL CREATE_AGG_DSET (agg_dset, dname, dtitle, nsets,
- . e_dim, iline, status)
+ CALL CREATE_AGG_DSET (agg_dset, dname, dtitle,
+ . nsets, agg_dim, iline, status)
IF (status .NE. ferr_ok) GOTO 5300
-* See what variables are shared by all the datsets
+* perform initializations needed on a new dataset
+!* interpret special parameters in the descriptor
+! CALL GET_DSET_PARMS( agg_dset, status )
+! IF ( status .NE. ferr_ok ) GOTO 5300XX
+* determine relative access speeds along each axis
+ CALL GET_AXIS_SPEED( agg_dset )
+
+!* build completed ( with time axis ) grids for computable variables
+! CALL MAKE_CVAR_GRIDS( dset, status )
+! IF ( status .NE. ferr_ok ) GOTO 5300XX
+
+* 1st member dset sets pattern for all to follow
dset = member_sets(1)
+
+* If this is a Forecast aggregation create name for the 2D time array
+* Make it unique as necessary by adding "_" chars
+ IF (agg_dim.EQ.f_dim) THEN
+ tcoordname = 'TF_TIMES'
+ slen = 8
+ 250 CONTINUE
+ DO ivar = 1, maxvars
+ IF (ds_var_setnum(ivar) .EQ. dset) THEN
+ IF ( STR_SAME(tcoordname,ds_var_code(ivar)) .EQ. 0 ) THEN
+ tcoordname = tcoordname(:slen)//'_'
+ slen = slen + 1
+ GOTO 250
+ ENDIF
+ ENDIF
+ ENDDO
+ ELSE
+ tcoordname = ' '
+ ENDIF
+
+********* top of variable loop ***************
+* See what variables are shared by all the datsets
nvars = 0
-
DO 800 ivar = 1, maxvars
IF ( ds_var_setnum(ivar) .NE. dset ) GOTO 800
vname = ds_var_code(ivar)
@@ -149,7 +190,7 @@
ENDIF
grid = ds_grid_number(ivar)
- IF (grid_line(e_dim, grid) .NE. 0) GOTO 5400
+ IF (grid_line(agg_dim, grid) .NE. 0) GOTO 5400
* Check that grids match for file variables.
* NOTE if the variables in the member datasets share the same grid, and
@@ -157,20 +198,32 @@
* grid_line and ds_grid_start, ds_grid_end will have the same contents.
* How to find that case? (check line_mem) Or just allow it?
+* For a FMRC aggregation, the time axes must be the same units and origin
+* and length but will in general NOT share time steps. The first time step
+* should increase from one set to the other. Not checking for this at the
+* moment.
+
imatch = 1
+ prev_line_start = 0
+ IF (grid_line(t_dim, grid) .NE. 0) prev_line_start =
+ . line_start(grid_line(t_dim, grid))
has_uvars = .FALSE.
+
DO 600 ii = 2, nsets
iset = member_sets(ii)
+ tax_match = 0
DO 500 nv = 1, maxvars
IF ( (ds_var_setnum(nv) .EQ. iset) .AND.
. (STR_SAME(ds_var_code(nv), vname) .EQ. 0) ) THEN
igrid = ds_grid_number(nv)
DO 550 idim = 1, nferdims
+ IF (agg_dim.EQ.f_dim .AND. idim.EQ.t_dim) GOTO 550
IF ( grid_line(idim, grid) .NE.
. grid_line(idim, igrid) ) GOTO 500
550 CONTINUE
imatch = imatch + 1
ENDIF
+
IF ( (uvar_dset(nv) .EQ. iset) .AND.
. (STR_SAME(uvar_name_code(nv), vname) .EQ. 0) ) THEN
@@ -180,16 +233,43 @@
IF (igrid .NE. grid) THEN
DO 555 idim = 1, nferdims
+ IF (agg_dim.EQ.f_dim .AND. idim.EQ.t_dim) GOTO 555
IF ( grid_line(idim, grid) .NE.
. grid_line(idim, igrid) ) GOTO 500
555 CONTINUE
ENDIF
+
imatch = imatch + 1
has_uvars = .TRUE.
ENDIF
+
+* For forecast-direction aggregations, the time axis of the aggregation
+* is not taken directly from the ensemble members. Instead it
+* is merely a lag axis -- number of time steps and lag per step
+ IF (agg_dim .EQ. f_dim .AND. need_tf_lag_t) THEN
+ memb_tax = grid_line(t_dim, grid)
+ nT = line_dim(memb_tax)
+ avg_lag = ( TM_WORLD(nT, grid, t_dim, box_middle )
+ . - TM_WORLD(1, grid, t_dim, box_middle ) )
+ . /(nT-1)
+ CALL TM_NEW_LINE_NAME ( 'TF_LAG_T', buff )
+ CALL TM_MAKE_BASIC_AXIS( buff, 0.0D0, avg_lag, nT,
+ . tf_lag_t, status )
+ line_unit_code(tf_lag_t) = line_unit_code(memb_tax)
+ line_units(tf_lag_t) =
+ . un_name(line_unit_code(tf_lag_t))
+! line_tunit(tf_lag_t) =
+! . un_convert(line_unit_code(tf_lag_t))
+ line_direction(tf_lag_t) = 'TT'
+ line_dattype (tf_lag_t) = nf_double
+ line_dim_only (tf_lag_t) = .FALSE. ! ?? why?
+ need_tf_lag_t = .FALSE.
+ ENDIF
+
500 CONTINUE
600 CONTINUE
+
* variable in all datsets but they dont have the same grid.
IF (imatch .NE. nsets) THEN
@@ -197,15 +277,21 @@
. CALL WARN('Exclude variable from aggregate. '//
. 'Grid differs in member datasets: '//
. vname)
+ IF (agg_dim.EQ.f_dim .AND. tax_match.NE.0) THEN
+ IF ( .NOT.agg_quiet )
+ . CALL WARN('FMRC Time axes do not share units or size;'//
+ . ' or starting times not increasing '//
+ . vname)
+ ENDIF
GOTO 800
ENDIF
* same grid for this variable in all datasets
nvars = nvars + 1
-c IF (has_uvars) grid = unspecified_int4
- CALL DEFINE_AGGREGATE_GRID (agg_dset, nvars, vname,
- . ivar, iline, grid, e_dim, member_sets, nsets)
+
+ CALL DEFINE_AGGREGATE_GRID (agg_dset, tcoordname, nvars, vname,
+ . ivar, iline, tf_lag_t, grid, agg_dim, member_sets, nsets)
IF (status .NE. ferr_ok) GOTO 5000
800 CONTINUE
@@ -258,17 +344,16 @@ c IF (has_uvars) grid = unspecified_int4
nvars = nvars + 1
-c grid = unspecified_int4
- CALL DEFINE_AGGREGATE_GRID (agg_dset, nvars, vname,
- . fvar, iline, grid, e_dim, member_sets, nsets)
+ CALL DEFINE_AGGREGATE_GRID (agg_dset, tcoordname, nvars, vname,
+ . fvar, iline, tf_lag_t, grid, agg_dim, member_sets, nsets)
IF (status .NE. ferr_ok) GOTO 5000
* Do not include variables that are entirely user-defined.
ELSE
IF ( .NOT.agg_quiet )
. CALL WARN('Exclude variable from aggregate. '//
- . 'Must be a file variable in at least one member dataset: '//
- . vname)
+ . 'Must be a file variable in at least '//
+ . 'one member dataset: '// vname)
ENDIF
@@ -319,7 +404,8 @@ c grid = unspecified_int4
agg_dset = unspecified_int4
GOTO 5000
- 5100 CALL ERRMSG( ferr_syntax,status,'dataset name already in use:'
+ 5100 CALL ERRMSG( ferr_invalid_command,status,
+ . 'dataset name already in use: '
. //dname(:TM_LENSTR1(dname)), *5000 )
5300 CALL ERRMSG( ferr_aggregate_error, status, ' ', *9950 )
diff --git a/fer/gnl/list_cmnd_data.F b/fer/gnl/list_cmnd_data.F
index ff387bb..abc440c 100644
--- a/fer/gnl/list_cmnd_data.F
+++ b/fer/gnl/list_cmnd_data.F
@@ -68,7 +68,7 @@
* V530: 3/01 *acm*- Put the calendar name in the heading if TIME not
* otherwise listed, and if non-gregorian calendar.
* V540: 11/01 *sh* - added LIST/WIDTH=
-* - expanded and reorganized the LIST heading
+* - expanded and reorganized the LIST headng
* V552 2/03 *acm*- Increase line_buff to 10000
* v553 9/03 *kob*- Increase GET_STRING_ELEMENT to 512
* V554 3/04 *acm*-For REPEAT/RANGE vars, add check for dset = unspecified_int4
@@ -120,7 +120,7 @@
CHARACTER*(*) dods_file
* local variable declarations:
- LOGICAL GEOG_LABEL, TM_DFPEQ,
+ LOGICAL GEOG_LABEL, TM_DFPEQ, ITS_FMRC,
. line_too_long, del_col_changed, all_bad,
. valid(nferdims), need_doc(nferdims), span(nferdims), do_unform,
. do_stream, do_comma_del, do_tab_del, itsa_string,
@@ -254,7 +254,7 @@
* ... DODS URL BASE or ABSOLUTE PATH
* *kob* v553 - CYGWIN paths are always preceded by '.'
#ifdef __CYGWIN__
- IF (i.GT.0 .AND. ds_des_name(dset)(2:2).EQ.'\')
+ IF (i.GT.0 .AND. ds_des_name(dset)(2:2).EQ.'\') ! ' for emacs
#else
IF (i.GT.0 .AND. ds_des_name(dset)(1:1).NE.'.')
#endif
@@ -342,6 +342,41 @@
ENDIF
60 CONTINUE
+* ... T-F plane coaching
+* If this variable is FMRC, then add annotations to disambiguate the 2 time axes
+* "Initialization time increases across row. Verification time increases down page."
+ IF ( ITS_FMRC(grid)
+ . .AND. (row_ax.EQ.t_dim .OR. row_ax .EQ. f_dim
+ . .OR. col_ax.EQ.t_dim .OR. col_ax .EQ. f_dim) ) THEN
+ line_buff = ' '
+ alen = 0
+ IF (row_ax.EQ.t_dim .OR. row_ax .EQ. f_dim) THEN
+ IF (row_ax.EQ.t_dim) THEN
+ line_buff = 'Verification'
+ alen = 14
+ ELSE
+ line_buff = 'Initialization'
+ alen = 16
+ ENDIF
+ line_buff(alen:) = "time increases across row."
+ alen = alen + 26
+ ENDIF
+ IF (col_ax.EQ.t_dim .OR. col_ax .EQ. f_dim) THEN
+ IF (alen .GT. 0) alen = alen + 1
+ IF (col_ax.EQ.t_dim) THEN
+ line_buff(alen+1:) = 'Verification'
+ alen = alen + 14
+ ELSE
+ line_buff(alen+1:) = 'Initialization'
+ alen = alen + 16
+ ENDIF
+ line_buff(alen:) = "time increases down page."
+ alen = alen + 25
+ ENDIF
+ CALL SPLIT_LIST(pttmode_explct,list_lun,
+ . ' '//line_buff,alen+13)
+ ENDIF
+
* * * * * DETERMINE LIST LIMITS * * *
200 DO 210 i = 1, nferdims
idim = perm(i)
@@ -425,6 +460,8 @@
WRITE ( list_lun, list_format ) (ax_buff(j),j=1,npts)
ENDIF
250 CONTINUE
+
+
* ... DATA:
CALL SPLIT_LIST(pttmode_explct, list_lun, 'DATA:', 5 )
ENDIF
@@ -769,8 +806,8 @@
. ' '//line_buff(:w0), w0+1 )
* . . . then subscript values ...
- WRITE ( col_head_format, 3020 ) cleft+1-(width-3)/2,
- . num_fields, width
+ llen = MAX(1, cleft+1-(width-3)/2)
+ WRITE ( col_head_format, 3020 ) llen, num_fields, width
WRITE ( line_buff, col_head_format ) ( i,i = lo1,hi1,del1 )
3020 FORMAT ( '(',I2,'X,',I5,'I',I2,')' ) ! eg. "( 8X, 10I 6)"
CALL SPLIT_LIST(pttmode_explct, list_lun, line_buff, 0 )
diff --git a/fer/gnl/list_multi_sub.F b/fer/gnl/list_multi_sub.F
index 6ab7852..9c4c49b 100644
--- a/fer/gnl/list_multi_sub.F
+++ b/fer/gnl/list_multi_sub.F
@@ -461,8 +461,8 @@
IF ( mr_type(mr_list(ivar)) .EQ. ptype_string ) THEN
width(ivar) = MIN(nleft+3, 1020) ! arbitrary 1020 char max
ELSEIF ( all_bad ) THEN
- width(ivar) = min_width
- WRITE ( bad_fmt(ivar), 3002 ) min_width
+ width(ivar) = MAX(min_width, 5)
+ WRITE ( bad_fmt(ivar), 3002 ) 5
3002 FORMAT ( '(A',I2,')' )
ELSE
CALL VAR_DATA_FMT( nleft, nright, prec_digits, min_width,
diff --git a/fer/gnl/parse_comma_list.F b/fer/gnl/parse_comma_list.F
index 4246042..aac5ba6 100644
--- a/fer/gnl/parse_comma_list.F
+++ b/fer/gnl/parse_comma_list.F
@@ -60,6 +60,8 @@
* V533: *sh* 7/01 - allow both single and double quoted strings
* 1/03 *kob* g77 port - Need to use risc_buff for arbitrary concatenations
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693 *sh* 12/14 added support for _DQ_ and _SQ_ style of quotation marks
+* changed unpaired [], {}, "", '', etc from error to acceptable
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -130,6 +132,7 @@
40 CONTINUE
GOTO 5020 ! unpaired
+
* ... ignore commas sandwiched between ( )
ELSEIF ( buffer(ip:ip) .EQ. '(' ) THEN
nest_level = -1 ! will be immediately incremented
@@ -167,6 +170,28 @@
ENDDO
GOTO 5020 ! unpaired
+* ... ignore commas sandwiched between _DQ_ or _SQ_ ! 12/14
+ ELSEIF ( buffer(ip:ip) .EQ. "_"
+ . .AND. ip+3 .LE. iend ) THEN
+ IF ( buffer(ip:ip+3) .EQ. p_DQ_quote ) THEN
+ DO i = ip+4, iend-3
+ IF ( buffer(i:i+3) .EQ. p_DQ_quote ) THEN
+ ip = i+3
+ GOTO 30
+ ENDIF
+ ENDDO
+ GOTO 5020 ! unpaired
+ ELSEIF ( buffer(ip:ip+3) .EQ. p_SQ_quote ) THEN
+ DO i = ip+4, iend-3
+ IF ( buffer(i:i+3) .EQ. p_SQ_quote ) THEN
+ ip = i+3
+ GOTO 30
+ ENDIF
+ ENDDO
+ GOTO 5020 ! unpaired
+ ENDIF
+ GOTO 30 ! just a harmless "_"
+
* ... comma as terminator
ELSEIF ( buffer(ip:ip) .EQ. ',' ) THEN
* ... search backwards for the last non-blank/tab
diff --git a/fer/gnl/parse_command.F b/fer/gnl/parse_command.F
index 9449c6a..c447163 100644
--- a/fer/gnl/parse_command.F
+++ b/fer/gnl/parse_command.F
@@ -115,6 +115,15 @@
* V68 *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* V68 *acm* 7/12 return 16 digits by default for grave-accent expressions
* V685+ *acm* 12/13 bounds checking: dont refer to parts of the string outside its bounds.
+* V693 *sh* 12/14 moved arg_start/end inits into PARSE_COMMAND (housekeeping)
+* Changes in GET_FERRET_CMND simplify this routine:
+* 1) comments are never passed into this routine
+* 2) nor "yes? " or "...? "
+* 3) continuation lines are assembled before getting here
+* Also added support for _DQ_ style of quotation marks
+* *acm* 2/15 Prevent run-time errors in string length for _DQ_ handling
+* V695 *acm* 3/15 Ticket 2245: if no arguments on a REPEAT command, exit gracefully.
+
* command, subcommand and qualifiers will be identified by number in
* COMMON/XCOMMAND. Arguments will be returned as positions in
@@ -159,13 +168,14 @@
*
**kob*12/97!!! NOTE:local_max_arg_list must match max_arg_list in xprog_state
INTEGER local_max_arg_list
- PARAMETER (local_max_arg_list = 256)
+ PARAMETER (local_max_arg_list = 128)
* modified def of MATCH4 from INTEGER to LOGICAL *kob* IBM port 8/94
LOGICAL TM_LEGAL_NAME, known_qualifier, atsin_qualifier,
- . surround_quote, doub_quote, subst, first_paren,
+ . doub_quote, DQ_quote,
+ . surround_quote, surround_DQ_, end_DQ_, subst, first_paren,
. itsa_qualifier(local_max_arg_list),
- . MATCH4, escape, apply_cx, ptrslash
+ . MATCH4, escape, apply_cx, ptrslash, i3_ok
INTEGER TM_LENSTR
INTEGER buff_len, bang_position, ptr, quote_end,
. word_num, look_ahead, look_back, isub_word, csgo,
@@ -200,96 +210,113 @@
cmnd_num = 0 ! in case of comment line
cmnd_buff (buff_len:buff_len) = ' ' ! always end with blank
+* inits moved into this code from get_ferret_command (housekeeping)
+ DO i = 1, local_max_arg_list
+ arg_start(i) = 0
+ arg_end(i) = 0
+ ENDDO
+
* full length of text
cmnd_len = TM_LENSTR (cmnd_buff)
-* ignore "yes?" at start of command
- 2 IF (cmnd_buff(1:5) .EQ. 'yes? '
- . .OR. cmnd_buff(1:5) .EQ. '...? ' ) THEN
- IF ( cmnd_len .LT. 6 ) THEN
- cmnd_buff = ' '
- cmnd_len = 0
- ELSE
- cmnd_buff = cmnd_buff(6:cmnd_len)
- cmnd_len = cmnd_len - 5
- GOTO 2 ! in case there are multiple "yes?"'s
- ENDIF
- ENDIF
-
-* comment line ?
- IF ( (cmnd_len .LE. 0
- . .OR. cmnd_buff(1:1) .EQ. '*'
- . .OR. cmnd_buff(1:1) .EQ. '!' )
- . .AND. .NOT.has_continuation_cmnd ) THEN
- RETURN
- ENDIF
- IF ( cmnd_buff(1:1) .EQ. '/'
- . .AND. .NOT.has_continuation_cmnd ) GOTO 5050
-
-* find length of command line ("!" is a valid terminator to permit comments)
- bang_position = INDEX ( cmnd_buff, '!' )
-* ... 11/95 allow "!" to be be "escaped"
- IF ( bang_position .GT. 1 ) THEN
-#ifdef NO_DOUBLE_ESCAPE_SLASH
- IF ( cmnd_buff(bang_position-1:bang_position) .EQ. '\!' ) THEN
-#else
- IF ( cmnd_buff(bang_position-1:bang_position) .EQ. '\\!' ) THEN
-#endif
-* ... ... this block of code could replace INDEX() but doesn't for performance
- DO 6 bang_position = bang_position+1, cmnd_len
-#ifdef NO_DOUBLE_ESCAPE_SLASH
- IF (cmnd_buff(bang_position:bang_position).EQ.'!'
- . .AND. cmnd_buff(bang_position-1:bang_position-1).NE.'\')
- . GOTO 8
-#else
- IF (cmnd_buff(bang_position:bang_position).EQ.'!'
- . .AND. cmnd_buff(bang_position-1:bang_position-1).NE.'\\')
- . GOTO 8
-#endif
- 6 CONTINUE
- bang_position = 0
- ENDIF
- ENDIF
- 8 IF ( bang_position .GT. 0 ) THEN
- DO 10 cmnd_len = bang_position-1, 1, -1
- IF ( cmnd_buff(cmnd_len:cmnd_len) .NE. ' '
- . .AND. cmnd_buff(cmnd_len:cmnd_len) .NE. tab ) GOTO 15
- 10 CONTINUE
- IF (.NOT.has_continuation_cmnd) RETURN ! no text before !
- ENDIF
-
-* prepend continuation from a previous line if any
- 15 IF ( has_continuation_cmnd ) THEN
- len_cmnd_copy = len_cmnd_copy - 1 ! final char is continuation
- IF (len_cmnd_copy .GT. 0) THEN
- IF ( cmnd_len .GT. 0) THEN
- cmnd_buff = cmnd_copy(:len_cmnd_copy) // cmnd_buff(:cmnd_len)
- ELSE
- cmnd_buff = cmnd_copy(:len_cmnd_copy)
- ENDIF
- ENDIF
- cmnd_len = len_cmnd_copy + cmnd_len
- IF ( cmnd_len .GE. 2048 ) GOTO 5005 ! must match cmnd_buff_len
- ENDIF
+! 12/14 handled in GET_FER_COMMAND
+!* ignore "yes?" at start of command
+! 2 IF (cmnd_buff(1:5) .EQ. 'yes? '
+! . .OR. cmnd_buff(1:5) .EQ. '...? ' ) THEN
+! IF ( cmnd_len .LT. 6 ) THEN
+! cmnd_buff = ' '
+! cmnd_len = 0
+! ELSE
+! cmnd_buff = cmnd_buff(6:cmnd_len)
+! cmnd_len = cmnd_len - 5
+! GOTO 2 ! in case there are multiple "yes?"'s
+! ENDIF
+! ENDIF
+
+! 12/14 handled in GET_FER_COMMAND
+!* comment line ?
+! IF ( (cmnd_len .LE. 0
+! . .OR. cmnd_buff(1:1) .EQ. '*'
+! . .OR. cmnd_buff(1:1) .EQ. '!' )
+! . .AND. .NOT.has_continuation_cmnd ) THEN
+! RETURN
+! ENDIF
+! IF ( cmnd_buff(1:1) .EQ. '/'
+! . .AND. .NOT.has_continuation_cmnd ) GOTO 5050
+
+!* find length of command line ("!" is a valid terminator to permit comments)
+!* 2/14 WILL NEVER GET HERE
+!* no comments should ever be sent into this routine.
+!* REMOVE THIS BLOCK
+! bang_position = INDEX ( cmnd_buff, '!' )
+!* ... 11/95 allow "!" to be be "escaped"
+! IF ( bang_position .GT. 1 ) THEN
+!#ifdef NO_DOUBLE_ESCAPE_SLASH
+! IF ( cmnd_buff(bang_position-1:bang_position) .EQ. '\!' ) THEN
+!#else
+! IF ( cmnd_buff(bang_position-1:bang_position) .EQ. '\\!' ) THEN
+!#endif
+! CALL WARN("PARSE_COMMAND SHOULD NEVER BE HERE - I")
+!* ... ... this block of code could replace INDEX() but doesn't for performance
+! DO 6 bang_position = bang_position+1, cmnd_len
+!#ifdef NO_DOUBLE_ESCAPE_SLASH
+! IF (cmnd_buff(bang_position:bang_position).EQ.'!'
+! . .AND. cmnd_buff(bang_position-1:bang_position-1).NE.'\')
+! . GOTO 8
+!#else
+! IF (cmnd_buff(bang_position:bang_position).EQ.'!'
+! . .AND. cmnd_buff(bang_position-1:bang_position-1).NE.'\\')
+! . GOTO 8
+!#endif
+! 6 CONTINUE
+! bang_position = 0
+! ENDIF
+! ENDIF
+! 8 IF ( bang_position .GT. 0 ) THEN
+! DO 10 cmnd_len = bang_position-1, 1, -1
+! IF ( cmnd_buff(cmnd_len:cmnd_len) .NE. ' '
+! . .AND. cmnd_buff(cmnd_len:cmnd_len) .NE. tab ) GOTO 15
+! 10 CONTINUE
+! IF (.NOT.has_continuation_cmnd) RETURN ! no text before !
+! ENDIF
+!
+!* prepend continuation from a previous line if any
+!* 12/14 -- WILL NEVER GET HERE
+!* continuations handled in get_fer_command
+!* REMOVE THIS BLOCK
+! 15 IF ( has_continuation_cmnd ) THEN
+! CALL WARN("PARSE_COMMAND SHOULD NEVER BE HERE - II")
+! len_cmnd_copy = len_cmnd_copy - 1 ! final char is continuation
+! IF (len_cmnd_copy .GT. 0) THEN
+! IF ( cmnd_len .GT. 0) THEN
+! cmnd_buff = cmnd_copy(:len_cmnd_copy) // cmnd_buff(:cmnd_len)
+! ELSE
+! cmnd_buff = cmnd_copy(:len_cmnd_copy)
+! ENDIF
+! ENDIF
+! cmnd_len = len_cmnd_copy + cmnd_len
+!! IF ( cmnd_len .GE. 2048 ) GOTO 5005 ! must match cmnd_buff_len
+! ENDIF
* save a copy of the command with untranslated symbols for use by REPEAT
-* and for building the complete command when continuation lines are used.
+!* and for building the complete command when continuation lines are used.
cmnd_copy = cmnd_buff
len_cmnd_copy = cmnd_len
-* is this an incomplete line requiring continuation (terminated w/ backslash)?
- has_continuation_cmnd =
-#ifdef NO_DOUBLE_ESCAPE_SLASH
- . cmnd_buff(cmnd_len:cmnd_len) .EQ. '\'
-#else
- . cmnd_buff(cmnd_len:cmnd_len) .EQ. '\\'
-#endif
- IF ( has_continuation_cmnd
- . .OR. cmnd_len .EQ. 0 ) THEN
- cmnd_num = 0
- RETURN
- ENDIF
+! 12/14 handled in GET_FER_COMMAND
+!* is this an incomplete line requiring continuation (terminated w/ backslash)?
+! has_continuation_cmnd =
+!#ifdef NO_DOUBLE_ESCAPE_SLASH
+! . cmnd_buff(cmnd_len:cmnd_len) .EQ. '\'
+!#else
+! . cmnd_buff(cmnd_len:cmnd_len) .EQ. '\\'
+!#endif
+! IF ( has_continuation_cmnd
+! . .OR. cmnd_len .EQ. 0 ) THEN
+! cmnd_num = 0
+! RETURN
+! ENDIF
* * * * * * * * *
* remove parens enclosing entire command or command group
@@ -328,14 +355,21 @@
* ... it is a command group if there is a ";" NOT enclosed in parens
nparen = 0
surround_quote = .FALSE.
+ surround_DQ_ = .FALSE.
DO 60 i = 1, cmnd_len
+ i3_ok = i+3 .LT. cmnd_len
c1 = cmnd_buff(i:i)
IF ( c1 .EQ. '(' ) THEN
nparen = nparen + 1
ELSEIF ( c1 .EQ. ')' ) THEN
nparen = nparen - 1
ELSEIF ( c1 .EQ. '"' ) THEN
- surround_quote = .NOT.surround_quote
+ IF (.NOT.surround_DQ_)
+ . surround_quote = .NOT.surround_quote
+ ELSEIF ( i3_ok
+ . .AND. cmnd_buff(i:i+3) .EQ. p_DQ_quote ) THEN
+ IF (.NOT.surround_quote)
+ . surround_DQ_ = .NOT.surround_DQ_
ELSEIF ( c1 .EQ. ';' ) THEN
escape = i.GT.1
#ifdef NO_DOUBLE_ESCAPE_SLASH
@@ -345,6 +379,7 @@
#endif
IF ( nparen.EQ.0
. .AND. .NOT.escape
+ . .AND. .NOT.surround_DQ_
. .AND. .NOT.surround_quote ) THEN
cmnd_num = cmnd_semicolon
GOTO 1000 ! successful exit
@@ -431,46 +466,87 @@
* we have found the start of a word - initialize variables
300 arg_start (word_num) = ptr
surround_quote = .FALSE.
+ surround_DQ_ = .FALSE.
-* start searching for the end of the word: blank,tab,"/" or ", if its a quote
- 400 CONTINUE
+* start searching for the end of the word: blank or tab
+* include as a block (i.e. skip over) quoted text
+ 400 CONTINUE ! ============= TOP OF LOOP
* Define a logical to stay away from cmnd_buff(ptr-1:ptr-1) when ptr = 1
- ptrslash = .FALSE.
- IF (ptr .GT. 1) THEN
+ ptrslash = .FALSE.
+ IF (ptr .GT. 1) THEN
#ifdef NO_DOUBLE_ESCAPE_SLASH
- IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\' ) ptrslash = .TRUE.
+ IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\' ) ptrslash = .TRUE.
+! ' closing single quote to make emacs happy
#else
- IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) ptrslash = .TRUE.
+ IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) ptrslash = .TRUE.
#endif
- ENDIF
+ ENDIF
IF (ptrslash) THEN
GOTO 410
-
- ELSEIF ( cmnd_buff(ptr:ptr) .EQ. '"'
- . .OR. cmnd_buff(ptr:ptr) .EQ. "'" ) THEN
-* ... quotation marks - skip past entire quotated string
- doub_quote = cmnd_buff(ptr:ptr) .EQ. '"'
- surround_quote = doub_quote
- . .AND. ptr .EQ. arg_start(word_num)
- DO 401 ptr = ptr+1, cmnd_len
+ ELSEIF ( cmnd_buff(ptr:ptr) .EQ. '"' ) THEN
+* ... double quote - skip past entire quotated string
+ surround_quote = ptr .EQ. arg_start(word_num)
+ DO i = ptr+1, cmnd_len
#ifdef NO_DOUBLE_ESCAPE_SLASH
- IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\' ) GOTO 401
+ IF ( cmnd_buff(i-1:i-1) .EQ. '\' ) CYCLE ! ' for emacs
#else
- IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) GOTO 401
+ IF ( cmnd_buff(i-1:i-1) .EQ. '\\' ) CYCLE
#endif
- IF (cmnd_buff(ptr:ptr).EQ.'"' .AND. doub_quote
- . .OR. cmnd_buff(ptr:ptr).EQ."'" .AND. .NOT.doub_quote) THEN
+ IF (cmnd_buff(i:i).EQ.'"' ) THEN
+ ptr = i
quote_end = ptr
GOTO 410
ENDIF
- 401 CONTINUE
- GOTO 5010
+ ENDDO
+ GOTO 5010
+ ELSEIF ( cmnd_buff(ptr:ptr) .EQ. "'" ) THEN
+* ... single quote - skip past entire quotated string
+ DO ptr = ptr+1, cmnd_len
+#ifdef NO_DOUBLE_ESCAPE_SLASH
+ IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\' ) CYCLE ! ' for emacs
+#else
+ IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) CYCLE
+#endif
+ IF (cmnd_buff(ptr:ptr).EQ."'" ) GOTO 410
+ ENDDO
+ GOTO 5010
+ ELSEIF ( cmnd_buff(ptr:ptr) .EQ. '_'
+ . .AND. ptr+3 .LE. cmnd_len ) THEN
+ IF (cmnd_buff(ptr:ptr+3) .EQ. p_DQ_quote) THEN
+* ... _DQ_ quote - skip past entire quotated string
+ surround_DQ_ = ptr .EQ. arg_start(word_num)
+ DO i = ptr+4, cmnd_len
+ IF (cmnd_buff(ptr:ptr).EQ.'_'
+ . .AND. i+3 .LE. cmnd_len ) THEN
+ IF (cmnd_buff(i:i+3) .EQ. p_DQ_quote) THEN
+ ptr = i + 3
+ quote_end = ptr
+ GOTO 410
+ ENDIF
+ ENDIF
+ ENDDO
+ GOTO 5010
+ ELSEIF (cmnd_buff(ptr:ptr+3) .EQ. p_SQ_quote) THEN
+* ... _SQ_ quote - skip past entire quotated string
+ DO i = ptr+4, cmnd_len
+ IF (cmnd_buff(ptr:ptr).EQ.'_'
+ . .AND. i+3 .LE. cmnd_len ) THEN
+ IF (cmnd_buff(i:i+3) .EQ. p_SQ_quote) THEN
+ ptr = i + 3
+ GOTO 410
+ ENDIF
+ ENDIF
+ ENDDO
+ GOTO 5010
+ ENDIF
+ GOTO 410 ! this underscore was not part of _DQ_ or _SQ_
ELSEIF ( cmnd_buff(ptr:ptr) .EQ. '`' ) THEN
* ... grave accent - skip past entire immediate mode expression
DO 402 ptr = ptr+1, cmnd_len
#ifdef NO_DOUBLE_ESCAPE_SLASH
IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\' ) GOTO 402
+! ' closing single quote to make emacs happy
#else
IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) GOTO 402
#endif
@@ -483,6 +559,7 @@
DO 403 ptr = ptr+1, cmnd_len
#ifdef NO_DOUBLE_ESCAPE_SLASH
IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\' ) GOTO 403
+! ' closing single quote to make emacs happy
#else
IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) GOTO 403
#endif
@@ -500,6 +577,7 @@
DO 404 ptr = ptr+1, cmnd_len
#ifdef NO_DOUBLE_ESCAPE_SLASH
IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\' ) GOTO 404
+! ' closing single quote to make emacs happy
#else
IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) GOTO 404
#endif
@@ -574,8 +652,12 @@
420 IF ( surround_quote ) THEN
arg_start(word_num) = arg_start(word_num) + 1
arg_end (word_num) = quote_end - 1
-cc IF ( arg_start(word_num) .GT. arg_end(word_num) ) GOTO 5015
-cc Allow it to be zero-length
+cc Allow zero-length null string in quotes
+ IF ( arg_start(word_num) .GT. arg_end(word_num)+1 ) GOTO 5015
+ ELSEIF ( surround_DQ_ ) THEN
+ arg_start(word_num) = arg_start(word_num) + 4
+ arg_end (word_num) = quote_end - 4
+cc Allow zero-length null string in quotes
IF ( arg_start(word_num) .GT. arg_end(word_num)+1 ) GOTO 5015
ELSE
arg_end (word_num) = ptr - 1
@@ -725,14 +807,29 @@ cc Allow it to be zero-length
* the nature of arg_start,end allows safe (??) decrement/increment
IF (num_args .GE. 1) THEN
arg1_quoted =
- . ( cmnd_buff(arg_start(1)-1:arg_start(1)-1) .EQ. '"'
- . .AND. cmnd_buff(arg_end(1) +1:arg_end(1) +1) .EQ. '"' )
- . .OR.( cmnd_buff(arg_start(1)-1:arg_start(1)-1) .EQ. "'"
- . .AND. cmnd_buff(arg_end(1) +1:arg_end(1) +1) .EQ. "'" )
+ . (cmnd_buff(arg_start(1)-1:arg_start(1)-1) .EQ. '"'
+ . .AND. cmnd_buff(arg_end (1)+1:arg_end (1)+1) .EQ. '"' )
+ . .OR.
+ . (cmnd_buff(arg_start(1)-1:arg_start(1)-1) .EQ. "'"
+ . .AND. cmnd_buff(arg_end (1)+1:arg_end (1)+1) .EQ. "'" )
+
+ IF (.NOT.arg1_quoted
+ . .AND. (cmnd_buff(arg_start(1)-1:arg_start(1)-1) .EQ. "_")
+ . .AND. (cmnd_buff(arg_end (1)+1:arg_end (1)+1) .EQ. "_")
+ . .AND. (arg_start(1)-4.GE.1)
+ . .AND. (arg_end (1)+4.LE.cmnd_len) )THEN
+ arg1_quoted =
+ . (cmnd_buff(arg_start(1)-4:arg_start(1)-1) .EQ. "_DQ_"
+ . .AND.cmnd_buff(arg_end (1)+1:arg_end (1)+4) .EQ. "_DQ_" )
+ . .OR.
+ . (cmnd_buff(arg_start(1)-4:arg_start(1)-1) .EQ. "_SQ_"
+ . .AND.cmnd_buff(arg_end (1)+1:arg_end (1)+4) .EQ. "_SQ_" )
+ ENDIF
ENDIF
* REPEAT loops postpone symbol substitutions in arguments -- all 1 arg for now
IF ( cmnd_num .EQ. cmnd_repeat ) THEN
+ IF (num_args .EQ. 0) GOTO 5070
IF ( cmnd_buff(arg_end(num_args):arg_end(num_args)) .EQ. ')'
. .AND. cmnd_buff(arg_start(1):arg_start(1)) .EQ. '(' ) THEN
* ... search backwards for left paren
@@ -876,14 +973,6 @@ cc Allow it to be zero-length
* error exits
5000 RETURN
-! 5005 risc_buff = cmnd_buff(cmnd_len-19:cmnd_len)
-! CALL ERRMSG( ferr_line_too_long, status,
-! . risc_buff(:20), *5000 )
-
- 5005 CALL ERRMSG( ferr_syntax, status,
- . 'command line too long -- exceeds 2048', *5000 )
-! 2048 must match cmnd_buff_len
-
5010 CALL ERRMSG( ferr_syntax, status,
. 'unpaired quotation marks, grave accent or brackets',
. *5000 )
@@ -907,5 +996,8 @@ cc Allow it to be zero-length
5060 CALL ERRMSG( ferr_syntax, status,
. 'Recursive aliases or GO argument definitions', *5000 )
+
+ 5070 CALL ERRMSG
+ . ( ferr_invalid_command, status, 'REPEAT what ?', *5000 )
END
diff --git a/fer/gnl/pop_cs.F b/fer/gnl/pop_cs.F
index dd183e9..aa74861 100644
--- a/fer/gnl/pop_cs.F
+++ b/fer/gnl/pop_cs.F
@@ -62,11 +62,15 @@
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* V687 3/14 *acm* for ticket 2044, write note ! Exit from <script>
* V687 3/14 *acm* for ticket 2044, write note ! Exit_GO only if SET REDIRECT is turned on.
+* V693+ 12/14 *sh* rolling back 4/99 change: an unclosed IF needs a warning
+* and handle nested unclosed IFs
+* v6932 12/14 *sh* unclosed IF warning moved to GET_FER_COMMAND
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
* internal variable declarations:
INTEGER LIB_FREE_LUN,TM_LENSTR1,stat,axis,ivar,cvar,csp_to,ll,
. slen, plen
- INTEGER j, num_indices
+ INTEGER i, j, num_indices
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -87,14 +91,21 @@
* we will issue a warning and then implicitly close the IF
IF (if_conditional) THEN
IF (csp .LE. if_cs(ifstk) ) THEN
-! no! 4/99 CALL WARN('Unclosed IF statement ... assuming ENDIF')
- ifstk = ifstk - 1
- IF (ifstk .EQ. 0 ) if_conditional = .FALSE.
+ ifstk_skipping = 0
+* ... set ifstk to the level it was at the previous csp
+ DO i = ifstk, 1, -1
+ IF (csp .GT. if_cs(i)) THEN
+ ifstk = i
+ GOTO 5 ! if_conditional remains true
+ ENDIF
+ ENDDO
+ ifstk = 0
+ if_conditional = .FALSE.
ENDIF
ENDIF
* clean up old level
- IF ( cs_cmnd_num( csp ) .EQ. cmnd_go ) THEN
+ 5 IF ( cs_cmnd_num( csp ) .EQ. cmnd_go ) THEN
* ... Write note with script name, only if SET REDIRECT is turned on.
IF (redirect_stdout_flags .NE. redirect_none) THEN
@@ -111,8 +122,8 @@
axis = cs_axis( csp )
cx_by_ss(axis,cx_last) = cs_save_by_ss( csp )
- IF (axis .eq. t_dim) THEN
- cx_calendar(cx_last) = .FALSE.
+ IF (axis .eq. t_dim .OR. axis .eq. f_dim) THEN
+ cx_calendar(axis,cx_last) = .FALSE.
cx_cal_id(cx_last) = unspecified_int4
ENDIF
diff --git a/fer/gnl/process_if.F b/fer/gnl/process_if.F
index 09e45e5..19af8ba 100644
--- a/fer/gnl/process_if.F
+++ b/fer/gnl/process_if.F
@@ -1,4 +1,5 @@
- SUBROUTINE PROCESS_IF( cmnd_string, slen, * )
+ SUBROUTINE PROCESS_IF( cmnd_string, slen,
+ . do_verify, prefix, raw_cmnd, * )
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -55,17 +56,24 @@
* V6.01 10/06 *acm* Fix bug 1446 in the loop DO 200 when testing for a tab character, the
* index should be i not ic1. The perils of cut-and-pasting text from elsewhere!
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* echoing of command lines is done here when inside of an IF block
+* To avoid the confusing output of "ENDIF" during a skipped IF block
+* count skipped nested IF statements using ifstk_skipping
+* Note that this routine has been pretty trashed by repeated edits
+* It should really be re-written, but seems risky (else I'd do it)
* calling argument declarations:
+ LOGICAL do_verify
INTEGER slen
- CHARACTER cmnd_string*(*)
+ CHARACTER cmnd_string*(*), prefix*5, raw_cmnd*(*)
* RETURN 1 - used when the current command should be **skipped**
* internal variable declarations:
INTEGER STR_CASE_BLIND_COMPARE, ic1,
. status ! not returned
- INTEGER STR_UPCASE, i, end_then, cmnd_len
- LOGICAL its_endif, its_else, its_elif, its_if, one_liner
+ INTEGER STR_UPCASE, i, cmnd_len
+ LOGICAL ITSA_1LINEIF,
+ . its_endif, its_else, its_elif, its_if, one_liner
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -76,6 +84,7 @@
include 'xrisc.cmn'
* internal parameter declarations:
+ INTEGER TM_LENSTR1
CHARACTER*1 tab
#ifdef NO_INTRINSIC_IN_PARAMETER
PARAMETER ( tab = o'011' )
@@ -109,7 +118,7 @@
cc IF (its_if .OR. its_endif) RETURN
IF ((its_if .OR. its_endif) .AND.
- . if_doing(ifstk) .EQ. pif_doing_clause) RETURN
+ . if_doing(ifstk) .EQ. pif_doing_clause) GOTO 1000
IF (if_conditional .AND. its_if ) THEN ! nested IF?
IF (if_doing(ifstk).NE.pif_doing_clause) THEN ! skipped IF?
@@ -119,89 +128,95 @@ cc IF (its_if .OR. its_endif) RETURN
* --- Check whether the current command is a one-line IF condition THEN command
* --- and if so skip it, otherwise bump the IF stack.
-
- one_liner = .FALSE.
IF (its_if) THEN
- end_then = INDEX(risc_buff(:slen), 'THEN') + 4
- cmnd_len = INDEX(risc_buff(:slen), '!') - 1 ! check for comment at end
- IF (cmnd_len .EQ. -1) cmnd_len = slen
-
-* See if there is a command after the THEN
- DO 200 i = end_then,cmnd_len
- IF (cmnd_string(i:i).NE. ' '
- . .AND. cmnd_string(i:i).NE. tab) one_liner = .TRUE.
- 200 CONTINUE
-
- ENDIF
-
- IF ( num_args .LE. 2 .AND. .NOT. one_liner) THEN ! multi-line nested IF?
-* ... bump the IF stack - set up to skip this entire IF clause
- IF ( ifstk .GE. max_ifstk ) GOTO 5400
- ifstk = ifstk + 1
-cc if_doing(ifstk) = if_doing(ifstk-1)
- if_doing(ifstk) = pif_skip_to_endif
- if_cs(ifstk) = if_cs(ifstk-1)
- RETURN 1
+ one_liner = ITSA_1LINEIF(risc_buff(:slen),slen)
+ ELSE
+ one_liner = .FALSE.
+ ENDIF
+
+ IF ( num_args .LE. 2 .AND. .NOT. one_liner) THEN ! multi-line nested IF?
+* ... bump the nested IF counting stack
+ ifstk_skipping = ifstk_skipping + 1
+ RETURN 1 ! skip this command
ENDIF
ENDIF
ENDIF
-* Skipped if inside a repeat? will have a ; or a ) after it.
-* One more fix: if the ; or ) follows a ! then ignore.
-
IF (if_conditional .AND. its_endif ) THEN ! nested IF?
IF (if_doing(ifstk).NE.pif_doing_clause) THEN ! skipped IF?
- IF (INDEX(risc_buff, ')') .GT. INDEX(risc_buff,'ENDIF'))THEN
- IF (INDEX(risc_buff, '!') .GT. 0) THEN
- IF (INDEX(risc_buff, ')') .LT. INDEX(risc_buff,'!'))
- . its_endif = .FALSE.
- ELSE
- its_endif = .FALSE.
- ENDIF
- ENDIF
-
- IF (INDEX(risc_buff, ';') .GT. INDEX(risc_buff,'ENDIF'))THEN
- IF (INDEX(risc_buff, '!') .GT. 0) THEN
- IF (INDEX(risc_buff, ';') .LT. INDEX(risc_buff,'!'))
- . its_endif = .FALSE.
- ELSE
- its_endif = .FALSE.
- ENDIF
+ IF (ifstk_skipping .GT. 0) THEN
+ ifstk_skipping = ifstk_skipping - 1 ! decrement nest level
+ RETURN 1 ! skip this ENDIF command
+ ENDIF
+! commented out this code 12/14 -- is it needed?
+* Skipped if inside a repeat? will have a ; or a ) after it.
+* One more fix: if the ; or ) follows a ! then ignore.
+! IF (INDEX(risc_buff, ')') .GT. INDEX(risc_buff,'ENDIF'))THEN
+! IF (INDEX(risc_buff, '!') .GT. 0) THEN
+! IF (INDEX(risc_buff, ')') .LT. INDEX(risc_buff,'!'))
+! . its_endif = .FALSE.
+! ELSE
+! its_endif = .FALSE.
+! ENDIF
+! ENDIF
+!
+! IF (INDEX(risc_buff, ';') .GT. INDEX(risc_buff,'ENDIF'))THEN
+! IF (INDEX(risc_buff, '!') .GT. 0) THEN
+! IF (INDEX(risc_buff, ';') .LT. INDEX(risc_buff,'!'))
+! . its_endif = .FALSE.
+! ELSE
+! its_endif = .FALSE.
+! ENDIF
ENDIF
ENDIF
- ENDIF
-
- IF (its_endif) RETURN ! process the endif, always
+ IF (its_endif) GOTO 1000 ! process any ENDIF not being skipped
* now check each of the possible IF execution states
IF ( if_doing(ifstk) .EQ. pif_skip_to_endif ) THEN
* skip everything until ENDIF is encountered
- RETURN 1
+ RETURN 1 ! skip this command
ELSEIF ( if_doing(ifstk) .EQ. pif_doing_clause ) THEN
* execute everything cuz we're "doing" the clause
- RETURN
+ GOTO 1000
ELSEIF ( if_doing(ifstk) .EQ. pif_skip_to_clause ) THEN
-* check for ELSE or ELIF
+
+* check for ELSE or ELIF at the level from which skipping was initiated
its_else =
. STR_CASE_BLIND_COMPARE(cmnd_string(ic1:ic1+3),'ELSE')
. .EQ. vms_str_success
its_elif =
. STR_CASE_BLIND_COMPARE(cmnd_string(ic1:ic1+3),'ELIF')
. .EQ. vms_str_success
- IF (its_else .OR. its_elif) RETURN
+ IF ((its_else .OR. its_elif)
+ . . AND. ifstk_skipping .EQ. 0 ) GOTO 1000
+
* nope - just an ordinary command ... keep skipping
- RETURN 1
+ RETURN 1 ! skip this command
ELSE
* unknown if condition
GOTO 5000
ENDIF
- 1000 RETURN
+
+* this command needs to be executed
+* echo it if requested to do so
+ 1000 IF (do_verify) THEN
+ slen = TM_LENSTR1(raw_cmnd)
+ IF (prefix .EQ. ' ') THEN
+* ... separate SPLIT_LIST call to avoid single char ' ' prefix
+ CALL SPLIT_LIST(pttmode_ops, ttout_lun,
+ . raw_cmnd, slen )
+ ELSE
+ CALL SPLIT_LIST(pttmode_ops, ttout_lun,
+ . prefix//raw_cmnd, slen+5 )
+ ENDIF
+ ENDIF
+ RETURN
5000 CALL ERRMSG(ferr_internal, status, 'ifstk!!', *1000)
diff --git a/fer/gnl/redefine_ax_att.F b/fer/gnl/redefine_ax_att.F
index cc1eb9d..423fc85 100644
--- a/fer/gnl/redefine_ax_att.F
+++ b/fer/gnl/redefine_ax_att.F
@@ -85,12 +85,12 @@
maxlen = 128
c... loop over datasets
-c Dataset -2 is the pseudo-dataset containing user-defined axes.
-c see if name exists as an axis name.
+c Dataset pdset_coordvars (value -2) is the pseudo-dataset containing
+c user-defined axes. See if name exists as an axis name.
- DO 100 dset = -2, maxdsets
- IF (dset .EQ. -1) GOTO 100
- IF (dset .EQ. 0) GOTO 100
+ DO 100 dset = pdset_coordvars, maxdsets
+ IF (dset .EQ. pdset_uvars) GOTO 100
+ IF (dset .EQ. pdset_irrelevant) GOTO 100
IF (dset .GT. 0) THEN
IF ( ds_name(dset) .EQ. char_init1024) GOTO 100
diff --git a/fer/gnl/repl_exprns.F b/fer/gnl/repl_exprns.F
index d26b022..bfb92f3 100644
--- a/fer/gnl/repl_exprns.F
+++ b/fer/gnl/repl_exprns.F
@@ -109,6 +109,13 @@
* flag dependency_tree_mode to turn regular error reporting back on.
* V69+ *acm* 9/14 Ticket 981. If the variable is a constant-array, evaluate it to get
* the grid size rather than returning the nominal length.
+* V695 *acm* 2/15 RETURN=F0 for calendar formatted F axis
+* V695+ *sh* 2/15 add support for _DQ_ style of quotations
+* V694 *acm* 5/15 fix bug 2213
+* V695 *acm* 6/15 Add return=defined (ticket 2293)
+* v695 *acm* 9/15 Ticket 2313: For `return=`, if the return request is for an attribute
+* not related to the grid or other characteristics that need evaluation,
+* do not evaluate the expression.
#include "netcdf.inc"
include 'tmap_dims.parm'
@@ -130,7 +137,7 @@
REAL memory( mem_blk_size, max_mem_blks )
CHARACTER cmnd*(*)
-* local parameter declarations
+* local parameter declarations
INTEGER max_len
PARAMETER (max_len = 2048)
! INTEGER fmt_lenH
@@ -138,21 +145,23 @@
* internal variable declarations:
LOGICAL need_formatting, zero_fill, coordvar,
- . do_err, do_eval, get_ready, was_dep, const_arr_var
+ . do_err, do_eval, get_ready, was_dep, const_arr_var,
+ . dqote, DQ
INTEGER CGRID_SIZE, CGRID_AXIS, TM_LENSTR1, CX_DIM_LEN,
- . FIND_DSET_NUMBER, str_len, lenbuff, iend, itmp, axis,
+ . FIND_DSET_NUMBER, GET_ABSTRACT_LINE,
+ . str_len, lenbuff, iend, itmp, axis,
. mr, cx, mr_temp, i, i2, use_digits, true_end,
. qual_end, brkt, idim, use_width, dset, varid,
. vartype, nvdims, vdims(8), nvatts, ist, ind,
. attype, attlen, inxt, attoutflag,outflag, fertype,
- . attid, ieq, dqote, base_isp, base_cx, cat, var
+ . attid, ieq, base_isp, base_cx, cat, var
REAL result, val
REAL*8 TM_WORLD, TM_WW_AXLEN, ww
- CHARACTER TM_FMT*18, LEFINT*16, VAR_TITLE*(max_len),
+ CHARACTER TM_FMT*28, LEFINT*16, VAR_TITLE*(max_len),
+c CHARACTER TM_FMT*18, LEFINT*16, VAR_TITLE*(max_len),
. VAR_UNITS*(max_len), GET_STRING_ELEMENT*(max_len),
. repl*(max_len), bad_str*(max_len), return_errmsg*256,
. buff*128, varname*512, attname*128, aname*128
-! CHARACTER fmt*(max_len)
CHARACTER*6 typstring(0:6)
* local parameter declarations
@@ -177,6 +186,7 @@
info_query = .FALSE.
coordvar = .FALSE.
apply_cx = .FALSE.
+ str_len = 0
* do_err: issue error message if attrib does not exist on varname.attname
do_err = .TRUE.
@@ -191,7 +201,7 @@
istart = istart + itmp
#ifdef NO_DOUBLE_ESCAPE_SLASH
IF ( istart .GT. 2 ) THEN
- IF (cmnd(istart-2:istart-2) .EQ. '\') GOTO 10
+ IF (cmnd(istart-2:istart-2) .EQ. '\') GOTO 10 ! ' for emacs
ENDIF
#else
IF ( istart .GT. 2 ) THEN
@@ -247,14 +257,24 @@
* ... see if the equals sign is just part of some string within the grave accents
* This fixes bug 1469 (and its duplicate 1690)
- dqote = 0
- DO 198 i = istart, iend
- IF (cmnd(i:i).EQ.'"') THEN
- dqote = dqote + 1
- ELSEIF (cmnd(i:i).EQ.'=' .AND. dqote.GT.0) THEN
- IF (INDEX(cmnd(i:iend), '"') .GT. 0) GOTO 149 ! = inside a string
+* *sh* add support for _DQ_ style of quotations
+ dqote = .FALSE.
+ DQ = .FALSE.
+ DO i = istart, iend
+ IF (cmnd(i:i).EQ.'"' .AND. .NOT.DQ) THEN
+ dqote = .NOT.dqote
+ ELSEIF (cmnd(i:i).EQ.'_'
+ . .AND. i+3 .LE. iend ) THEN
+ IF ( cmnd(i:i+3).EQ.'_DQ_' ) DQ = .NOT.DQ
+ ELSEIF (cmnd(i:i).EQ.'=' ) THEN
+* ... does the "=" lie between quotation marks?
+ IF (dqote) THEN
+ IF (INDEX(cmnd(i:iend), '"' ) .GT. 0) GOTO 149
+ ELSEIF (DQ) THEN
+ IF (INDEX(cmnd(i:iend), '_DQ_') .GT. 0) GOTO 149
+ ENDIF
ENDIF
-198 CONTINUE
+ ENDDO
* ... hunt for the next equal sign
DO 93 i = ieq, iend
@@ -360,10 +380,25 @@
ENDIF
GOTO 500
ENDIF
+
+
+* 11/2013
+* return=DEFINED needs only to check whether the user-variable is defined
+
+* ... RETURN=DEFINED
+ IF ( repl(1:3) .EQ. "DEF" ) THEN
+ str_len = 1
+ repl = '0' ! default, pos=up, or not-depth.
+ CALL FIND_VAR_NAME ( pdset_irrelevant, cmnd(istart:iend), cat, var )
+ IF ( var .NE. munknown_var_name) repl = '1'
+ GOTO 500
+ ENDIF
* ... evaluate the context without computing the expression
* this is a major performance consideration, but not 100% reliable
+
has_uvar_gc = .FALSE.
+ is_uvar_const = .FALSE.
CALL GET_NEW_CX( cx_last, cx_cmnd, apply_cx, status )
IF ( status .NE. ferr_ok ) GOTO 5000
ist = istart
@@ -383,17 +418,300 @@
cx = is_cx(1) ! always comes back as the first context
+ cat = cx_category(cx)
+
+* ... Returns that can be made without evaluating the expression. If success
+* is not verified, will continue and try again after evaluation.
+
+ IF (cx.EQ.unspecified_int4 .OR. cx.EQ.0) GOTO 4000 ! context not set
+
+* ... RETURN=UNITS
+ IF ( repl(1:4) .EQ. "UNIT" ) THEN ! or "=UNITS"
+ repl = VAR_UNITS( cx )
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+* ... RETURN=TITLE
+ ELSEIF ( repl .EQ. "TITLE" ) THEN
+ repl = VAR_TITLE( cx )
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+* ... RETURN=BAD
+ ELSEIF ( repl .EQ. "BAD" ) THEN
+ result = cx_bad_data ( cx )
+ repl = TM_FMT( result, use_digits, max_len, str_len )
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+* ... RETURN=T0
+ ELSEIF ( repl .EQ. "T0" .AND. cat.EQ.cat_file_var) THEN
+ repl = ' ' ! default
+ idim = T_DIM
+ axis = CGRID_AXIS ( idim, cx )
+ IF ( axis.NE.mnormal) THEN
+ IF (line_direction(axis) .EQ. 'TI') THEN
+ repl = line_T0(axis)
+ IF (line_shift_origin(axis))
+ . repl = '01-JAN-0001 00:00:00'
+ ELSE
+ GOTO 4000
+ ENDIF
+ ENDIF
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+* ... RETURN=F0
+ ELSEIF ( repl .EQ. "F0" .AND. cat.EQ.cat_file_var) THEN
+ repl = ' ' ! default
+ idim = F_DIM
+ axis = CGRID_AXIS ( idim, cx )
+ IF ( axis.NE.mnormal) THEN
+ IF (line_direction(axis) .EQ. 'FI') THEN
+ repl = line_T0(axis)
+ IF (line_shift_origin(axis))
+ . repl = '01-JAN-0001 00:00:00'
+ ELSE
+ GOTO 4000
+ ENDIF
+ ENDIF
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+* ... RETURN=CALENDAR
+ ELSEIF ( repl(1:3) .EQ. "CAL" .AND. cat.EQ.cat_file_var) THEN
+ repl = ' ' ! default
+ axis = CGRID_AXIS ( T_dim, cx )
+ IF ( axis.NE.mnormal) THEN
+ IF (line_direction(axis) .EQ. 'TI' .OR.
+ . line_direction(axis) .EQ. 'TT')
+ . repl = line_cal_name(axis)
+ ELSE
+ GOTO 4000
+ ENDIF
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+
+* ... RETURN=DSET, DSETNUM, DSETPATH, DSETTITLE
+ ELSEIF ( repl(1:4) .EQ. "DSET" .AND. cat.EQ.cat_file_var) THEN
+ i2 = cx_data_set(cx)
+ IF ( i2 .EQ. pdset_irrelevant
+ . .OR. i2 .EQ. unspecified_int4 ) THEN
+ GOTO 4000
+ ELSE
+ IF ( repl .EQ. "DSETNUM") THEN
+ repl = LEFINT(i2, str_len)
+ ELSEIF ( repl .EQ. "DSETPATH" ) THEN
+ CALL GET_DSET_NAME(i2, repl, str_len)
+ ELSEIF ( repl .EQ. "DSET" ) THEN
+ CALL GET_SHORT_DSET_NAME(i2, repl, str_len)
+ ELSEIF ( repl .EQ. "DSETTITLE" ) THEN
+ CALL GET_DSET_TITLE(i2, repl, str_len)
+ ELSE
+ GOTO 4000
+ ENDIF
+ ENDIF
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+* ... RETURN=nc_scale, nc_offset
+ ELSEIF ( repl(1:3) .EQ. "NC_" .AND. cat.EQ.cat_file_var) THEN
+ IF ( repl .EQ. "NC_SCALE" ) THEN
+ CALL GET_NC_SCALE (cx, result)
+ ELSEIF ( repl(1:6) .EQ. "NC_OFF" ) THEN
+ CALL GET_NC_OFFSET (cx, result)
+ ELSE
+ GOTO 4000
+ ENDIF
+ repl = TM_FMT( result, use_digits, max_len, str_len )
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+* ... RETURN=user_scale, user_offset
+ ELSEIF ( repl(1:5) .EQ. "USER_" ) THEN
+ IF ( repl .EQ. "USER_SCALE" ) THEN
+ CALL GET_USER_SCALE (cx, result)
+ ELSEIF ( repl(1:8) .EQ. "USER_OFF" ) THEN
+ CALL GET_USER_OFFSET (cx, result)
+ ELSE
+ GOTO 4000
+ ENDIF
+ repl = TM_FMT( result, use_digits, max_len, str_len )
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+* ... RETURN=dtype if it is available in the context at this point. For user-
+* defined variables the type is not yet determined.
+
+ ELSEIF ( repl .EQ. "DTYPE" .AND. cat.EQ.cat_file_var
+ . .AND. INDEX(cmnd(istart:iend),'.') .EQ. 0) THEN
+ dset = cx_data_set(cx)
+ IF (dset .EQ. pdset_irrelevant .OR.
+ . dset .EQ. unspecified_int4) dset = pdset_uvars ! try user vars
+
+ varid = 0
+ vartype = 0
+
+ CALL CD_GET_VAR_ID(dset, cmnd(istart:iend), varid, status)
+
+ IF (status .EQ. ferr_ok)
+ . CALL CD_GET_VAR_INFO (dset, varid, cmnd(istart:iend),
+ . vartype, nvdims, vdims, nvatts,
+ . coordvar, outflag, status )
+
+ IF (vartype.EQ.0 ) GOTO 4000
+
+ IF (status .EQ. ferr_ok) THEN
+ repl = typstring(vartype)
+ ELSE
+ GOTO 4000
+ ENDIF
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+* ... varname.atttnum,RETURN=dtype or varname.attname, RETURN=dtype
+
+ ELSEIF ( repl .EQ. "DTYPE" .AND. cat.EQ.cat_file_var
+ . .AND. INDEX(cmnd(istart:iend),'.') .GT. 0) THEN
+ attype = 0
+ dset = cx_data_set(cx)
+ IF (cx_data_set(cx) .EQ. pdset_irrelevant) dset = pdset_uvars ! user vars
+ CALL BREAK_VARATTNAME( cmnd(istart:iend), dset,
+ . varname, attname, varid, do_err, status )
+ CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid,
+ . status)
+ IF (attid .GT. 0) CALL CD_GET_VAR_ATT_INFO (dset, varid,
+ . attid, aname, attype, attlen, attoutflag, status )
+
+ IF (status .EQ. ferr_ok) THEN
+ repl = typstring(attype)
+ ELSE
+ GOTO 4000
+ ENDIF
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+* ... varname.atttnum,RETURN=size or varname.attname, RETURN=size
+
+ ELSEIF ( repl .EQ. "SIZE" .AND. cat.EQ.cat_file_var
+ . .AND. INDEX(cmnd(istart:iend),'.') .GT. 0) THEN
+ IF (.NOT. coordvar) dset = cx_data_set(cx)
+ IF (dset .GE. 1) THEN
+ IF (coordvar) THEN
+
+ IF (INDEX(buff,'.') .GT. 0)
+ . CALL BREAK_VARATTNAME( cmnd(istart:iend), dset, varname,
+ . attname, varid, do_err, status )
+
+ ELSE
+ CALL CD_GET_VAR_ID (dset, cmnd(istart:iend), varid,
+ . status)
+
+ IF (status .NE. ferr_ok .AND.
+ . INDEX(cmnd(istart:iend),'.') .GT. 0) THEN
+ CALL BREAK_VARATTNAME( cmnd(istart:iend), dset,
+ . varname, attname, varid, do_err, status )
+ ELSE
+ i2 = CGRID_SIZE ( cx )
+ repl = LEFINT(i2, str_len)
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+ ENDIF
+
+ ENDIF
+
+ CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid,
+ . status)
+ IF (attid .GT. 0) CALL CD_GET_VAR_ATT_INFO (dset, varid,
+ . attid, aname, attype, attlen, attoutflag, status )
+
+ IF (status .EQ. ferr_ok) THEN
+ IF (attlen .GT. 0) THEN
+ result = attlen
+ repl = TM_FMT( result, use_digits, max_len, str_len )
+ ENDIF
+ ELSE
+ GOTO 4000
+ ENDIF
+ ENDIF
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+* ... RETURN=XMOD
+
+ ELSEIF ( repl .EQ. "XMOD" .AND. cat.EQ.cat_file_var) THEN
+ repl = ' ' ! default
+ axis = CGRID_AXIS ( X_dim, cx )
+ IF ( axis.NE.mnormal) THEN
+ IF (line_modulo(axis)) THEN
+ result = line_modulo_len(axis)
+
+! If axis has modulo=" ", and units are not degrees, mod len = axis len.
+#ifdef double_p
+ IF (result .EQ. 0) result = (TM_WW_AXLEN(axis))
+#else
+ IF (result .EQ. 0) result = SNGL(TM_WW_AXLEN(axis))
+#endif
+ repl = TM_FMT( result, use_digits, max_len, str_len)
+ ENDIF
+ ENDIF
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+* ... RETURN=TMOD
+
+ ELSEIF ( repl .EQ. "TMOD" .AND. cat.EQ.cat_file_var) THEN
+ repl = ' ' ! default
+ axis = CGRID_AXIS ( T_dim, cx )
+ IF ( axis.NE.mnormal) THEN
+ IF (line_modulo(axis)) THEN
+ result = line_modulo_len(axis)
+
+! If axis has modulo=" ", mod len = axis len.
+#ifdef double_p
+ IF (result .EQ. 0) result = (TM_WW_AXLEN(axis))
+#else
+ IF (result .EQ. 0) result = SNGL(TM_WW_AXLEN(axis))
+#endif
+ repl = TM_FMT( result, use_digits, max_len, str_len)
+
+ ENDIF
+ ENDIF
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+* ... RETURN=ISDEPTH
+
+ ELSEIF ( repl(1:3) .EQ. "ISD" .AND. cat.EQ.cat_file_var) THEN
+ axis = CGRID_AXIS ( Z_dim, cx )
+ IF ( axis.NE.mnormal) THEN
+ repl = '0'
+ IF (line_direction(axis) .EQ. "UD") repl = '1'
+ ELSE
+ repl = '0'
+ ENDIF
+ str_len = TM_LENSTR1(repl)
+ GOTO 500
+
+ ENDIF ! trying to return results based on context only
+
+ 4000 CONTINUE
* ... if the result has any axes with unknown limits then we have to do a
* full evaluation. This happens (only?) from grid-changing fcns that
* return ABSTRACT axes, on which limits may depend on data values
* NOTE THE POTENTIAL FOR WRONG RESULTS WITH OPERATIONS SUCH AS MATRIX
* TRANSPOSE - ALL "IMPOSED" AXES PRESENT THE RISK OF WRONG RESULTS
+* Just checking for the abstract axis to fix bug 2213.
+
DO 190 idim = 1, nferdims
do_eval = ( cx_hi_ww(idim, cx) .EQ. unspecified_val8
. .AND. CGRID_AXIS(idim, cx) .NE. mnormal )
- IF ( do_eval .OR. has_uvar_gc) THEN
+ do_eval = (do_eval .OR.
+ . CGRID_AXIS(idim, cx) .EQ. GET_ABSTRACT_LINE(idim) )
+ IF ( do_eval .OR. has_uvar_gc .OR. is_uvar_const) THEN
CALL EVAL_EXPR ( memory, cx_last,
. cmnd(istart:iend), apply_cx, status )
IF ( status .NE. ferr_ok ) GOTO 5000
@@ -415,10 +733,10 @@
* Add to this error string when adding new arguments:
WRITE (return_errmsg,*)
- . 'use RETURN= shape,size,grid,title,bad,t0,units,dset, '//pCR//
+ . 'use RETURN= shape,size,grid,title,bad,t0,f0,units,dset, '//pCR//
. ' dsetnum,dsetpath,dsettitle,*size,*start,*end,'//pCR//
. ' *units,*axis,nc_scale,nc_offset,user_scale,user_offset,'//pCR//
- . ' calendar,dtype,xmod,tmod,status,isDepth,isReady'
+ . ' calendar,dtype,xmod,tmod,status,isDepth,isReady,defined'
! . ' calendar,dtype,xmod,tmod,status,isDepth,isReady,isLoaded' ! w isLoaded
* ... RETURN=SHAPE
@@ -440,7 +758,8 @@
* ... RETURN=T0
ELSEIF ( repl .EQ. "T0" ) THEN
repl = ' ' ! default
- axis = CGRID_AXIS ( T_dim, cx )
+ idim = T_DIM
+ axis = CGRID_AXIS ( idim, cx )
IF ( axis.NE.mnormal) THEN
IF (line_direction(axis) .EQ. 'TI') THEN
repl = line_T0(axis)
@@ -448,6 +767,19 @@
. repl = '01-JAN-0001 00:00:00'
ENDIF
ENDIF
+
+* ... RETURN=F0
+ ELSEIF ( repl .EQ. "F0" ) THEN
+ repl = ' ' ! default
+ idim = F_DIM
+ axis = CGRID_AXIS ( idim, cx )
+ IF ( axis.NE.mnormal) THEN
+ IF (line_direction(axis) .EQ. 'FI') THEN
+ repl = line_T0(axis)
+ IF (line_shift_origin(axis))
+ . repl = '01-JAN-0001 00:00:00'
+ ENDIF
+ ENDIF
* ... RETURN=CALENDAR
ELSEIF ( repl(1:3) .EQ. "CAL" ) THEN
@@ -529,7 +861,7 @@
. INDEX(cmnd(istart:iend),'.') .EQ. 0) THEN
dset = cx_data_set(cx)
IF (dset .EQ. pdset_irrelevant .OR.
- . dset .EQ. unspecified_int4) dset = -1 ! try user vars
+ . dset .EQ. unspecified_int4) dset = pdset_uvars ! try user vars
varid = 0
vartype = 0
@@ -577,7 +909,7 @@
. INDEX(cmnd(istart:iend),'.') .GT. 0) THEN
attype = 0
dset = cx_data_set(cx)
- IF (cx_data_set(cx) .EQ. pdset_irrelevant) dset = -1 ! user vars
+ IF (cx_data_set(cx) .EQ. pdset_irrelevant) dset = pdset_uvars ! user vars
CALL BREAK_VARATTNAME( cmnd(istart:iend), dset,
. varname, attname, varid, do_err, status )
CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid,
diff --git a/fer/gnl/reset_ax_att.F b/fer/gnl/reset_ax_att.F
index e974fcb..dace462 100644
--- a/fer/gnl/reset_ax_att.F
+++ b/fer/gnl/reset_ax_att.F
@@ -79,10 +79,11 @@
maxlen = 128
c... loop over datasets
-c see if name exists as an axis name.
+c Dataset pdset_coordvars (value -2) is the pseudo-dataset containing
+c user-defined axes. See if name exists as an axis name.
- DO 100 dset = -2, maxdsets
- IF (dset .EQ. -1 .OR. dset .EQ. 0) GOTO 100
+ DO 100 dset = pdset_coordvars, maxdsets
+ IF (dset.EQ.pdset_uvars .OR. dset.EQ.pdset_irrelevant) GOTO 100
IF (dset .GT. 0) THEN
IF ( ds_name(dset) .EQ. char_init256) GOTO 100
diff --git a/fer/gnl/set_var.F b/fer/gnl/set_var.F
index 9e1bddd..2c8e0d0 100644
--- a/fer/gnl/set_var.F
+++ b/fer/gnl/set_var.F
@@ -83,6 +83,8 @@
* V685 *acm* 3/13 For Ensemble aggregations, call the ds_type 'ENS'
* V690 *sh* 1/14 Added SET VARIABLE/SIGMA=varname
* V690 *acm* 3/14 Fix ticket 2152, error messages on illegal SET VAR/NAME
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V695 *acm* 2/15 For Forecast aggregations, call the ds_type 'FCT'
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -114,7 +116,7 @@
CHARACTER grid_name*64, title*128, units*128, newname*128,
. is_nan*3, flag*10, typflag*10, varattname*512,
. varname*128, attname*128, buf*2, newname_lc*128,
- . sigma_ref*128
+ . layerz_ref*128
* Initialize
@@ -130,7 +132,7 @@
title = char_init128
units = char_init64
grid_name = char_init16
- sigma_ref = char_init128
+ layerz_ref= char_init128
* note: this routine manages
@@ -200,6 +202,7 @@
ncfile = (TM_HAS_STRING(ds_type(dset), 'CDF') .OR.
. TM_HAS_STRING(ds_type(dset), 'MC') .OR.
. TM_HAS_STRING(ds_type(dset), 'ENS') .OR.
+ . TM_HAS_STRING(ds_type(dset), 'FCT') .OR.
. TM_HAS_STRING(ds_type(dset), 'GT') )
IF ( .NOT. ncfile ) GOTO 5700
@@ -220,6 +223,7 @@
ncfile = (TM_HAS_STRING(ds_type(dset), 'CDF') .OR.
. TM_HAS_STRING(ds_type(dset), 'MC') .OR.
. TM_HAS_STRING(ds_type(dset), 'ENS') .OR.
+ . TM_HAS_STRING(ds_type(dset), 'FCT') .OR.
. TM_HAS_STRING(ds_type(dset), 'GT') )
IF ( .NOT. ncfile ) GOTO 5800
@@ -291,16 +295,16 @@
bad = real4_init
ENDIF
-* SET VAR/SIGMA=
-* creates an attribute __sigma_ref_ that contains the desired auxiliary variable name
- loc = qual_given( slash_set_var_sigma )
+* SET VAR/LAYERZ=
+* creates an attribute __layerz_ref_ that contains the desired auxiliary variable name
+ loc = qual_given( slash_set_var_layerz )
IF ( loc .GT. 0 ) THEN
have_mods = .TRUE.
CALL EQUAL_STRING (cmnd_buff(qual_start(loc):qual_end(loc)),
- . sigma_ref, status)
+ . layerz_ref, status)
IF ( status .NE. ferr_ok ) RETURN
- IF (sigma_ref .EQ. ' ') GOTO 5550
- IF ( .NOT.TM_LEGAL_NAME(sigma_ref) ) GOTO 5560
+ IF (layerz_ref .EQ. ' ') GOTO 5550
+ IF ( .NOT.TM_LEGAL_NAME(layerz_ref) ) GOTO 5560
ENDIF
* SET VAR/OUTTYPE= INTYPE, FLOAT, INT, SHORT
@@ -335,7 +339,7 @@
IF (dset .EQ. unspecified_int4) THEN
IF (cat .EQ. cat_user_var) THEN
- dset = -1
+ dset = pdset_uvars
ELSE
CALL GET_NEW_CX( cx_last, cx_cmnd, .TRUE., status )
@@ -360,7 +364,7 @@
CALL CD_GET_VAR_ID (dset, vname, varid, status)
IF (cat .EQ. cat_user_var) THEN
- dset = -1
+ dset = pdset_uvars
CALL CD_GET_VAR_ID (dset, vname, varid, status)
ENDIF
@@ -379,7 +383,7 @@
* Apply the changes in Ferret structures, and in the linked-list structure.
- IF (dset .EQ. unspecified_int4) dset = -1 ! user variable
+ IF (dset .EQ. unspecified_int4) dset = pdset_uvars ! user variable
CALL CD_GET_VAR_ID (dset, vname, varid, status)
@@ -393,26 +397,26 @@
IF ( ez ) THEN
IF ( have_mods ) THEN
-* The following block of code -- setting the sigma reference -- appears identically
+* The following block of code -- setting the layerz reference -- appears identically
* in 3 places. Similar duplication of code for the other attributes.
* The reason is that the management of dset and varid is context dependent.
* CD_GET_VAR_ID is for example called 3 times immediately preceding this block
* Cleanup would be desirable: a single, reliable routine that returns varid;
* called just once; and then factor out the duplicated code
- IF ( sigma_ref .NE. char_init128 ) THEN
- attlen = TM_LENSTR1(sigma_ref)
- attname = patnam_sigma
+ IF ( layerz_ref .NE. char_init128 ) THEN
+ attlen = TM_LENSTR1(layerz_ref)
+ attname = patnam_layerz
CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid, status)
IF (attid .GT. 0) THEN
CALL CD_GET_VAR_ATT_INFO (dset, varid, attid,
. attname, attype, attlen, attoutflag, status )
CALL CD_REPLACE_ATTR (dset, varid, attname, attype, attlen,
- . sigma_ref, dummy, status)
+ . layerz_ref, dummy, status)
ELSE
attype = NCCHAR
attoutflag = 1
CALL CD_PUT_NEW_ATTR (dset, varid, attname, attype,
- . attlen, attoutflag, sigma_ref, dummy, status )
+ . attlen, attoutflag, layerz_ref, dummy, status )
ENDIF
ENDIF
@@ -497,20 +501,20 @@
ENDIF
ENDIF
- IF ( sigma_ref .NE. char_init128 ) THEN
- attlen = TM_LENSTR1(sigma_ref)
- attname = patnam_sigma
+ IF ( layerz_ref .NE. char_init128 ) THEN
+ attlen = TM_LENSTR1(layerz_ref)
+ attname = patnam_layerz
CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid, status)
IF (attid .GT. 0) THEN
CALL CD_GET_VAR_ATT_INFO (dset, varid, attid,
. attname, attype, attlen, attoutflag, status )
CALL CD_REPLACE_ATTR (dset, varid, attname, attype, attlen,
- . sigma_ref, dummy, status)
+ . layerz_ref, dummy, status)
ELSE
attype = NCCHAR
attoutflag = 1
CALL CD_PUT_NEW_ATTR (dset, varid, attname, attype,
- . attlen, attoutflag, sigma_ref, dummy, status )
+ . attlen, attoutflag, layerz_ref, dummy, status )
ENDIF
CALL PURGE_ALL_UVARS ! delete (possibly dependent) uvars
ENDIF
@@ -538,7 +542,7 @@
. newname,
. LEN(newname))
- dset = -1 ! user variables
+ dset = pdset_uvars ! user variables
CALL CD_GET_VAR_ID (dset, vname, varid, status)
IF ( units .NE. char_init16 ) THEN
@@ -579,20 +583,20 @@
ENDIF
ENDIF
- IF ( sigma_ref .NE. char_init128 ) THEN
- attlen = TM_LENSTR1(sigma_ref)
- attname = patnam_sigma
+ IF ( layerz_ref .NE. char_init128 ) THEN
+ attlen = TM_LENSTR1(layerz_ref)
+ attname = patnam_layerz
CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid, status)
IF (attid .GT. 0) THEN
CALL CD_GET_VAR_ATT_INFO (dset, varid, attid,
. attname, attype, attlen, attoutflag, status )
CALL CD_REPLACE_ATTR (dset, varid, attname, attype, attlen,
- . sigma_ref, dummy, status)
+ . layerz_ref, dummy, status)
ELSE
attype = NCCHAR
attoutflag = 1
CALL CD_PUT_NEW_ATTR (dset, varid, attname, attype,
- . attlen, attoutflag, sigma_ref, dummy, status )
+ . attlen, attoutflag, layerz_ref, dummy, status )
ENDIF
CALL PURGE_ALL_UVARS ! delete (possibly dependent) uvars
ENDIF
diff --git a/fer/gnl/show_data.F b/fer/gnl/show_data.F
index c4bce01..023d5dd 100644
--- a/fer/gnl/show_data.F
+++ b/fer/gnl/show_data.F
@@ -40,6 +40,8 @@
* various SHOW commnands will not list info for E,F dimensions.
* V685 4/13 *acm* Ability to define ensemble with /HIDDEN
* V691+ 8/14 *acm* Fix ticket 2194: SHOW with /OUTFILE
+* V695 *acm* 2/15 For Forecast aggregations, call the ds_type 'FCT'
+* V695 *acm* 9/15 Fix #2317: length of name sent to FIND_DSET_NUMBER
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -66,7 +68,7 @@
. slash_file,
. slash_attr,
. slash_xml
- CHARACTER name*32, default*50, outstring*2048
+ CHARACTER default*60, outstring*2048
PARAMETER ( slash_brief = 1 + 1,
. slash_full = 1 + 2,
@@ -106,8 +108,7 @@
only_1 = num_args .GT. 0
IF ( only_1 ) THEN
- name = cmnd_buff(arg_start(1):arg_end(1))
- dset = FIND_DSET_NUMBER( name )
+ dset = FIND_DSET_NUMBER( cmnd_buff(arg_start(1):arg_end(1)) )
IF ( dset .EQ. unspecified_int4 ) GOTO 5000
un_hide = .TRUE.
ENDIF
@@ -142,7 +143,11 @@
ENDIF
IF (dset.NE.unspecified_int4 .AND. dset.NE.pdset_irrelevant) THEN
IF ( TM_HAS_STRING(ds_type(iset), 'ENS') ) THEN
- default = default(:len0)//' Ferret-defined Ensemble dataset'
+ default = default(:len0)//' Ferret-defined Ensemble aggregation'
+ len0 = TM_LENSTR1( default )
+ ENDIF
+ IF ( TM_HAS_STRING(ds_type(iset), 'FCT') ) THEN
+ default = default(:len0)//' Ferret-defined Forecast aggregation'
len0 = TM_LENSTR1( default )
ENDIF
ENDIF
diff --git a/fer/gnl/show_data_files.F b/fer/gnl/show_data_files.F
index 98663f7..53a6124 100644
--- a/fer/gnl/show_data_files.F
+++ b/fer/gnl/show_data_files.F
@@ -53,6 +53,7 @@
* *acm* 3/12 cleanup ifdefs and unnecessary include files
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
* V685 *acm* 3/13 For Ensemble aggregations, call the ds_type 'ENS'
+* V695 *acm* 2/15 For Forecast aggregations, call the ds_type 'FCT'
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -90,6 +91,7 @@
* nothing to show for netCDF files (4/94)
ELSEIF (ds_type(dset) .EQ. 'CDF'
. .OR. ds_type(dset) .EQ. 'ENS'
+ . .OR. ds_type(dset) .EQ. 'FCT'
. .OR. ds_type(dset) .EQ. 'ECDF') THEN
RETURN
ENDIF
diff --git a/fer/gnl/show_data_set_attrs.F b/fer/gnl/show_data_set_attrs.F
index 0b8f8d6..46ccff5 100644
--- a/fer/gnl/show_data_set_attrs.F
+++ b/fer/gnl/show_data_set_attrs.F
@@ -76,12 +76,12 @@
. nvars, ngatts, recdim, iatt, attype, attlen,
. slen, llen, vlen, vtype, nvdims,
. vdims(8), nvatts, status, blen, i, len_attbuff,
- . attoutflag, all_outflag, attid
- REAL vals(10)
+ . max_vals, attoutflag, all_outflag, attid
+ REAL vals(1000)
CHARACTER TM_FMT*14, varname*512, attname*128,
- . buff*14, attbuff*2048, oflag*1
+ . buff*14, attbuff*10240, oflag*1
CHARACTER*6 typ(0:7)
- PARAMETER (len_attbuff = 2048)
+ PARAMETER (len_attbuff = 10240, max_vals=1000)
* See netcdf.h for the data types
DATA typ/'NaN', ! NAT = 'Not A Type' (c.f. NaN)
@@ -133,6 +133,7 @@
. attype, attlen, attoutflag, status )
blen = len_attbuff
+ IF (attype .NE. NCCHAR) attlen = MIN(attlen, max_vals)
got_it = NC_GET_ATTRIB (dset, varid, attname,
. .TRUE., varname, blen, attlen,
. attoutflag, attbuff, vals)
diff --git a/fer/gnl/show_data_set_vars.F b/fer/gnl/show_data_set_vars.F
index fcd88fe..cf6f2fb 100644
--- a/fer/gnl/show_data_set_vars.F
+++ b/fer/gnl/show_data_set_vars.F
@@ -76,6 +76,8 @@
* various SHOW commnands will not list info for E,F dimensions.
* v6.85 *acm* 4/13 Can show grid for variables in an ensemble aggregated dataset.
* v6.85 *acm* 10/13 See ticket 1098, extraneous lines when error getting grid.
+* V695 *acm* 2/15 For Forecast aggregations, call the ds_type 'FCT'
+* v695 *acm* 4/15 Bug fix: output written in loop 300 was cut off
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -164,7 +166,8 @@
* GRID_FROM_NAME increments the use count for the grid, so call
* DEALLO_DYN_GRID to restore the count where it should be.
- IF (is_undetermined .AND. ds_type(dset).EQ.'ENS') THEN
+ IF (is_undetermined .AND.
+ . (ds_type(dset).EQ.'ENS' .OR. ds_type(dset).EQ.'FCT')) THEN
igrid = GRID_FROM_NAME(ds_var_code(ivar), cx_last, status)
IF (status .NE. ferr_ok) GOTO 5000
CALL TM_DEALLO_DYN_GRID (igrid)
@@ -357,7 +360,7 @@
#endif
. LOHI_STRING( lo,hi,i,grid,':',ax_dec_pt(i),dlen )
. // ' '
- len = MIN( 64, len+4+dlen ) ! ??
+ len = MIN( 128, len+4+dlen )
ENDIF ! Skip time dim
ENDIF
diff --git a/fer/gnl/show_data_set_vars_xml.F b/fer/gnl/show_data_set_vars_xml.F
index f1b0824..85e1da0 100644
--- a/fer/gnl/show_data_set_vars_xml.F
+++ b/fer/gnl/show_data_set_vars_xml.F
@@ -93,6 +93,8 @@
LOGICAL NC_GET_ATTRIB, got_it, coordvar, newatt, have_units,
. have_title, have_dims
+
+ CHARACTER TM_FMT*16
CHARACTER show_str*128
CHARACTER uvarname*150, attname*128, attbuff*2048, buff*128,
. outstring*2048, aname*128, atype*10
@@ -198,6 +200,13 @@ C Write statement that uses number 2075 when we change to using these.)
. attoutflag, attbuff, vals)
* For double-prec Ferret, check whether we need more precision to write the value
+* If the _FillValue or missing_value are NaN on input, change them to Ferret's
+* default missing value as Ferret does when writing data.
+
+ show_str = TM_FMT(vals(1), 7,16,slen)
+ IF (STR_SAME(show_str, 'NaN') .EQ. 0) THEN
+ vals(1) = bad_val4
+ ENDIF
CALL FLOAT2STRING_FOR_XML (vals(1), attype, show_str, slen)
@@ -220,6 +229,11 @@ C Write statement that uses number 2075 when we change to using these.)
. .TRUE., uvarname, blen, attlen,
. attoutflag, attbuff, vals)
+ show_str = TM_FMT(vals(1), 7,16,slen)
+ IF (STR_SAME(show_str, 'NaN') .EQ. 0) THEN
+ vals(1) = bad_val4
+ ENDIF
+
CALL FLOAT2STRING_FOR_XML (vals(1), attype, show_str, slen)
CALL ESCAPE_FOR_XML (show_str, outstring, slen)
diff --git a/fer/gnl/show_line.F b/fer/gnl/show_line.F
index 2481346..9e90840 100644
--- a/fer/gnl/show_line.F
+++ b/fer/gnl/show_line.F
@@ -50,6 +50,7 @@
* V650 Write to show_lun which may be set to a file unit number rather than std out
* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V695+ *sh* 5/15 show T0 for forecast calendar axes, too
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
@@ -119,7 +120,8 @@
IF ( brief ) RETURN
* report /T0= for formatted time axis
- IF ( line_direction(line) .EQ. 'TI' ) THEN
+ IF ( line_direction(line) .EQ. 'TI'
+ . .OR. line_direction(line) .EQ. 'FI' ) THEN
IF (line_shift_origin(line)) THEN
buff20 = '01-JAN-0001 00:00:00'
ELSE
diff --git a/fer/gnl/show_line_coords.F b/fer/gnl/show_line_coords.F
index a83e20d..ff89e4c 100644
--- a/fer/gnl/show_line_coords.F
+++ b/fer/gnl/show_line_coords.F
@@ -56,6 +56,7 @@
* *acm* 4/12 6D Ferret: time axis may be in t or f direction. The time
* dimension is now an arg to SECS_TO_TSTEP.
* V683 *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -129,7 +130,7 @@
* cx_lo_ww was set without knowledge of the axis, so if this is a non-std calendar
* need to reset according to the actual calendar type
- IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. cx_calendar(cx) ) THEN
+ IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. cx_calendar(idim,cx) ) THEN
axis = grid_line(idim, grid)
IF (line_t0(axis) .EQ. char_init20) GOTO 110 ! Not a calendar ax (e.g. f axis)
@@ -168,7 +169,7 @@
* reset cx_calendar now that cx_lo/hi_ww have been converted
- cx_calendar(cx) = .FALSE.
+ cx_calendar(idim,cx) = .FALSE.
ENDIF
110 CONTINUE
lo = ISUBSCR_CX( cx_lo_ww(idim,cx),
diff --git a/fer/gnl/create_agg_dset.F b/fer/gnl/show_pytext_group.F
similarity index 51%
copy from fer/gnl/create_agg_dset.F
copy to fer/gnl/show_pytext_group.F
index 2de0c90..f6aa312 100644
--- a/fer/gnl/create_agg_dset.F
+++ b/fer/gnl/show_pytext_group.F
@@ -1,5 +1,4 @@
- SUBROUTINE CREATE_AGG_DSET (agg_dset, dname, dtitle,
- . nsets, agg_dim, iline, status)
+ SUBROUTINE SHOW_PYTEXT_GROUP (igrp)
*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,60 +32,75 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-* Programmer Ansley Manke
-* NOAA/PMEL, Seattle, WA - TMAP
-*
-* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
-* V685 *acm* 3/13 For Ensemble aggregations, call the ds_type 'ENS'
-
- IMPLICIT NONE
- include 'tmap_errors.parm'
-#include "tmap_dset.parm"
include 'tmap_dims.parm'
- include 'ferret.parm'
- include 'xdset_info.cmn_text'
- external xdset_info_data
- include 'xdset_info.cd_equiv'
+ include 'ferret.parm'
include 'xprog_state.cmn'
- include 'xtm_grid.cmn_text'
- include 'errmsg.parm'
- include 'netcdf.inc'
- include 'xvariables.cmn'
-
-* calling argument declarations:
- CHARACTER*(*) dname, dtitle
- INTEGER agg_dset, nsets, agg_dim, iline, status
+ include 'xrisc.cmn'
+ include 'pyfonts.cmn'
-* local variable declarations:
- INTEGER TM_LENSTR, TM_LENSTR1, ALLO_MANAGED_AXIS,
- . type, coordvar, varid, big_cx
- REAL bad_flag
+ INTEGER igrp
- CALL CD_INIT_AGG_DSET (agg_dset, dname, status)
+ INTEGER TM_LENSTR1, len, len0
+ REAL v1, v2, v3
+ CHARACTER name*12
- IF (status .NE. ferr_ok) GOTO 5300
+* List the PyFerret text settings for a text group: TICS, TITLE, LOGO, HLAB, VLAB, CONTOUR, CBAR
-* Set the dataset type and title (can add other directions)
- IF (agg_dim .EQ. e_dim ) ds_type(agg_dset) = 'ENS'
+ IF (ititl.LT.ititl .OR. igrp.GT.icbar) RETURN
+ len = TM_LENSTR1(pyf_group_names(igrp))
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . ' '//pyf_group_names(igrp)(:len), 0)
- ds_name(agg_dset) = dname
- ds_des_name(agg_dset) = dname
+c* ... Font
+ IF (pyf_fontname(igrp) .NE. pyfnt_fontname) THEN
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . ' /FONT='//pyf_fontname(igrp), 0)
+ ENDIF
+* ... Color
+
+* Convert rgb back to % values
- IF (dtitle(1:2).EQ.char_init .OR. TM_LENSTR(dtitle).EQ.0) THEN
- ds_title(agg_dset) = cmnd_buff(item_start(1):item_end(num_items))
- ELSE
- ds_title(agg_dset) = dtitle(:TM_LENSTR1(dname))
+ IF ( pyf_red(igrp).NE.pyfnt_red .OR. pyf_grn(igrp).NE.pyfnt_grn
+ . .OR. pyf_blu(igrp).NE.pyfnt_blu ) THEN
+ v1 = pyf_red(igrp)*100.
+ v2 = pyf_grn(igrp)*100.
+ v3 = pyf_blu(igrp)*100.
+ WRITE (risc_buff, 2201) v1, v2, v3
+ 2201 FORMAT (' /COLOR= (', 2(f4.1,','), f4.1,') (%RGB)')
+ len = TM_LENSTR1(risc_buff)
+ CALL GET_COLOR_NAME (v1, v2, v3, name, len0)
+ IF (len0 .GT. 0) risc_buff = ' /COLOR="'//name(:len0)//'"'
+ CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
ENDIF
-* create the aggregate axis
+* ... Italic, Bold
- CALL CREATE_AGG_AXIS (nsets, agg_dim, iline, status)
- IF (status .NE. ferr_ok) GOTO 5300
+ IF (pyf_italic(igrp) .NE. pyfnt_italic) THEN
+ IF (pyf_italic(igrp) .EQ. 1) THEN
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . ' /ITALIC=ON', 0)
+ ELSE
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . ' /ITALIC=OFF', 0)
+ ENDIF
+ ENDIF
- RETURN
+ IF (pyf_bold(igrp) .NE. pyfnt_bold) THEN
+ IF (pyf_bold(igrp) .EQ. 1) THEN
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . ' /BOLD=ON', 0)
+ ELSE
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . ' /BOLD=OFF', 0)
+ ENDIF
+ ENDIF
- 5000 RETURN
- 5300 status = ferr_TMAP_error
- RETURN
+ IF (pyf_isiz(igrp) .NE. pyfnt_isiz) THEN
+ WRITE (risc_buff, 2202) pyf_isiz(igrp)
+ 2202 FORMAT (' /ISIZ=',i2)
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . risc_buff, 0)
+ ENDIF
+ RETURN
END
diff --git a/fer/gnl/translate_limit.F b/fer/gnl/translate_limit.F
index bfd4955..efbfce6 100644
--- a/fer/gnl/translate_limit.F
+++ b/fer/gnl/translate_limit.F
@@ -66,6 +66,7 @@
* statements. use an octal constant instead
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* *acm* 4/12 6D Ferret: time axis may be in t or f direction.
+* V693+ *sh* 2/15 - added support for _DQ_ quotations
* possible formats:
* for subscript values ( subscript .EQ. .TRUE. ) :
@@ -125,6 +126,12 @@
IF (string(i:i) .EQ. '"') THEN
start_pos = i + 1
GOTO 6
+ ELSEIF ( string(i:i) .EQ. '_'
+ . .AND. i+3 .LT. len_rbuff ) THEN
+ IF (string(i:i+3) .EQ. "_DQ_") THEN
+ start_pos = i + 4
+ GOTO 6
+ ENDIF
ENDIF
4 CONTINUE
start_pos = 1
@@ -133,6 +140,12 @@
IF (string(i:i) .EQ. '"') THEN
end_pos = i - 1
GOTO 9
+ ELSEIF ( string(i:i) .EQ. '_'
+ . .AND. i+3 .LE. len_rbuff ) THEN
+ IF (string(i:i+3) .EQ. "_DQ_") THEN
+ end_pos = i - 1
+ GOTO 9
+ ENDIF
ENDIF
8 CONTINUE
ENDIF
diff --git a/fer/gnl/var_stat.F b/fer/gnl/var_stat.F
index 31da1ee..dc4569e 100644
--- a/fer/gnl/var_stat.F
+++ b/fer/gnl/var_stat.F
@@ -71,6 +71,8 @@
* V6.8 acm 6/12 Implement mode_6d_lab, set by default. If canceled, the
* various SHOW commnands will not list info for E,F dimensions.
* V6.68 acm 3/14 ticket 2148: fix truncated ntot or nbad in stat listing
+* v6.931 acm 11/14 Delete ALL the stat* symbols that may be left over from
+* a previous evaluation. STAT/BRIEF does not reset them all.
include 'tmap_dims.parm'
include 'errmsg.parm'
@@ -93,12 +95,13 @@
* internal variable declarations:
INTEGER TM_LENSTR1, CGRID_SIZE, GET_MAX_STRING_LEN,
. i, j, k, l, m, n, nbad, ngood, ntot, idim,
- . len_line, len_set_name, grid, slen, i1, i2, nok, listdims
+ . len_line, len_set_name, grid, slen, i1, i2, nok,
+ . listdims, nfig
REAL datum, bad, std_dev, large, small, mean, sumsq_dev, dev
- REAL*8 sum, sum2, xmean, zmean, x, xdelta, variance_c
+ REAL*8 sum, sum2, xmean, zmean, x, xdelta, variance_c, diff
CHARACTER*255 VAR_TITLE, VAR_TITLE_MOD, vname_buff
- CHARACTER TM_FMT*12, LEFINT*16, AX_TITLE*32, CX_SIZE_STR*24,
+ CHARACTER TM_FMT*20, LEFINT*20, AX_TITLE*32, CX_SIZE_STR*24,
. line_buff*130, title*32, bl13*13, symbuff*30
PARAMETER (bl13 = ' ' )
@@ -285,13 +288,27 @@
CALL SPLIT_LIST(pttmode_explct, lun,
. ' # flagged as bad data: '//rbuff(1),0)
IF ( ngood .GT. 0 ) THEN
+ nfig = 0
rbuff(1) = TM_FMT(small, sig_fig, 12, slen)
rbuff(2) = TM_FMT(large, sig_fig, 12, slen)
+ diff = (large-small)/MAX( ABS(large), ABS(small) )
+ IF (diff.LT.0.01 .AND. ngood.GT.1) THEN
+ nfig = 4
+ rbuff(1) = TM_FMT(small, sig_fig+nfig, 20, slen)
+ rbuff(2) = TM_FMT(large, sig_fig+nfig, 20, slen)
+ diff = (large-small)/MAX( ABS(large), ABS(small) )
+ IF (diff .LT. 1.e-7) THEN
+ nfig = 16-sig_fig
+ rbuff(1) = TM_FMT(small, sig_fig+nfig, 20, slen)
+ rbuff(2) = TM_FMT(large, sig_fig+nfig, 20, slen)
+ ENDIF
+ ENDIF
+
IF ( ABS(sum) .GE. 3.D35 ) THEN
rbuff(3) = '**too big**'
slen = 11
ELSE
- rbuff(3) = TM_FMT(mean , sig_fig, 12, slen)
+ rbuff(3) = TM_FMT(mean , sig_fig+nfig, 20, slen)
ENDIF
CALL SPLIT_LIST(pttmode_explct, lun,
. ' Minimum value: '//rbuff(1), 0)
@@ -308,20 +325,43 @@
rbuff(2) = 'bad'
rbuff(3) = 'bad'
ENDIF
+
+! First delete all the STAT* symbols that may be set
+! Leave none left over from a previous evaluation
+
+ symbuff = 'STAT_MIN'
+ CALL GETSYM( symbuff, title, i2, i1 )
+ IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
+
+ symbuff = 'STAT_MAX'
+ CALL GETSYM( symbuff, title, i2, i1 )
+ IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
+
+ symbuff = 'STAT_MEAN'
+ CALL GETSYM( symbuff, title, i2, i1 )
+ IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
+
+ symbuff = 'STAT_STD'
+ CALL GETSYM( symbuff, title, i2, i1 )
+ IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
+
+ symbuff = 'STAT_NGOOD'
+ CALL GETSYM( symbuff, title, i2, i1 )
+ IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
+
+ symbuff = 'STAT_NBAD'
+ CALL GETSYM( symbuff, title, i2, i1 )
+ IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
+
+
IF ( mr_type(mv) .NE. ptype_string ) THEN
symbuff = 'STAT_MIN'
- CALL GETSYM( symbuff, title, i2, i1 )
- IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
slen = TM_LENSTR1(rbuff(1))
CALL PUTSYM( symbuff, rbuff(1), slen, i2)
symbuff = 'STAT_MAX'
- CALL GETSYM( symbuff, title, i2, i1 )
- IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
slen = TM_LENSTR1(rbuff(2))
CALL PUTSYM( symbuff, rbuff(2), slen, i2)
symbuff = 'STAT_MEAN'
- CALL GETSYM( symbuff, title, i2, i1 )
- IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
slen = TM_LENSTR1(rbuff(3))
CALL PUTSYM( symbuff, rbuff(3), slen, i2)
ENDIF
@@ -339,8 +379,6 @@
! Define Ferret symbols with std
IF ( mr_type(mv) .NE. ptype_string ) THEN
symbuff = 'STAT_STD'
- CALL GETSYM( symbuff, title, i2, i1 )
- IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
slen = TM_LENSTR1(rbuff(1))
CALL PUTSYM( symbuff, rbuff(1), slen, i2)
@@ -350,28 +388,19 @@
IF ( full .AND. ngood.LE.1 .AND.
. mr_type(mv) .NE. ptype_string) THEN
symbuff = 'STAT_STD'
- CALL GETSYM( symbuff, title, i2, i1 )
- IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
slen = 3
CALL PUTSYM( symbuff, 'bad', slen, i2)
ENDIF
! Define Ferret symbols with ngood and nbad
IF ( full .AND. mr_type(mv) .NE. ptype_string ) THEN
-
symbuff = 'STAT_NGOOD'
- CALL GETSYM( symbuff, title, i2, i1 )
- IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
- datum = ngood
- rbuff(1) = TM_FMT(datum , sig_fig, 12, slen)
+ rbuff(1) = LEFINT(ngood, slen)
slen = TM_LENSTR1(rbuff(1))
CALL PUTSYM( symbuff, rbuff(1), slen, i2)
symbuff = 'STAT_NBAD'
- CALL GETSYM( symbuff, title, i2, i1 )
- IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
- datum = nbad
- rbuff(1) = TM_FMT(datum , sig_fig, 12, slen)
+ rbuff(1) = LEFINT(nbad, slen)
slen = TM_LENSTR1(rbuff(1))
CALL PUTSYM( symbuff, rbuff(1), slen, i2)
ENDIF
diff --git a/fer/grdel/draw.c b/fer/grdel/draw.c
index 8eeaf8d..33b678a 100644
--- a/fer/grdel/draw.c
+++ b/fer/grdel/draw.c
@@ -9,45 +9,6 @@
#include "pyferret.h"
/*
- * Assigns the transformation values my, sx, sy, dx, and dy used
- * to convert user coordinate (userx, usery) to device coordinate
- * (devx, devy) using the formulae:
- * devx = userx * sx + dx
- * devy = (my - usery) * sy + dy
- */
-static void getTransformValues(double *my, double *sx, double *sy,
- double *dx, double *dy)
-{
- float lftfrc, rgtfrc, btmfrc, topfrc;
- float lftcrd, rgtcrd, btmcrd, topcrd;
- float winwidth, winheight;
- double devlft, devtop, devwidth, devheight;
- double usrlft, usrtop, usrwidth, usrheight;
-
- fgd_get_view_limits_(&lftfrc, &rgtfrc, &btmfrc, &topfrc,
- &lftcrd, &rgtcrd, &btmcrd, &topcrd);
- fgd_get_window_size_(&winwidth, &winheight);
-
- devlft = (double) lftfrc * (double) winwidth;
- devwidth = (double) rgtfrc * (double) winwidth;
- devwidth -= devlft;
- devtop = (1.0 - (double) topfrc) * (double) winheight;
- devheight = (1.0 - (double) btmfrc) * (double) winheight;
- devheight -= devtop;
-
- usrlft = (double) lftcrd;
- usrwidth = (double) rgtcrd - usrlft;
- usrtop = 0.0;
- usrheight = (double) topcrd - (double) btmcrd;
-
- *my = (double) topcrd;
- *sx = devwidth / usrwidth;
- *sy = devheight / usrheight;
- *dx = devlft - (*sx) * usrlft;
- *dy = devtop - (*sy) * usrtop;
-}
-
-/*
* Draws connected line segments.
*
* Arguments:
@@ -100,7 +61,7 @@ grdelBool grdelDrawMultiline(grdelType window, const float ptsx[],
}
/* Get the transform values for converting user to device coordinates */
- getTransformValues(&my, &sx, &sy, &dx, &dy);
+ grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
if ( bindings->cferbind != NULL ) {
xvals = (double *) PyMem_Malloc(2 * numpts * sizeof(double));
@@ -252,7 +213,7 @@ grdelBool grdelDrawPoints(grdelType window, const float ptsx[],
}
/* Get the transform values for converting user to device coordinates */
- getTransformValues(&my, &sx, &sy, &dx, &dy);
+ grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
if ( bindings->cferbind != NULL ) {
xvals = (double *) PyMem_Malloc(2 * numpts * sizeof(double));
@@ -420,7 +381,7 @@ grdelBool grdelDrawPolygon(grdelType window, const float ptsx[],
}
/* Get the transform values for converting user to device coordinates */
- getTransformValues(&my, &sx, &sy, &dx, &dy);
+ grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
if ( bindings->cferbind != NULL ) {
xvals = (double *) PyMem_Malloc(2 * numpts * sizeof(double));
@@ -581,7 +542,7 @@ grdelBool grdelDrawRectangle(grdelType window, float left, float bottom,
penobj = NULL;
/* Get the transform values for converting user to device coordinates */
- getTransformValues(&my, &sx, &sy, &dx, &dy);
+ grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
trlft = (double) left * sx + dx;
trrgt = (double) right * sx + dx;
trtop = (my - (double) top) * sy + dy;
@@ -623,6 +584,99 @@ grdelBool grdelDrawRectangle(grdelType window, float left, float bottom,
return 1;
}
+
+/*
+ * Returns the size of given text if drawn with a given font.
+ * The width is such that continuing text should be positioned
+ * at the start of this text plus this width. The height will
+ * always be the ascent plus descent for the font and is
+ * independent of the text.
+ *
+ * Input Arguments:
+ * window: Window to use
+ * text: text string to use
+ * textlen: actual length of the text string
+ * font: font to use
+ * Output Arguments:
+ * fltwidthptr: assigned the width of the text, in user
+ * coordinates, if drawn in the given font
+ * fltheightptr: assigned the height of the text, in user
+ * coordinates, if drawn in the given font
+ *
+ * Returns success or failure. If failure, grdelerrmsg contains
+ * an explanatory message.
+ */
+grdelBool grdelTextSize(grdelType window, const char *text, int textlen,
+ grdelType font, float *fltwidthptr, float *fltheightptr)
+{
+ const BindObj *bindings;
+ grdelType fontobj;
+ grdelBool success;
+ double width, height;
+ PyObject *result;
+ double my, sx, sy, dx, dy;
+
+#ifdef VERBOSEDEBUG
+ fprintf(debuglogfile, "grdelDrawText called: "
+ "window = %p, font = %p\n", window, font);
+ fflush(debuglogfile);
+#endif
+
+ bindings = grdelWindowVerify(window);
+ if ( bindings == NULL ) {
+ strcpy(grdelerrmsg, "grdelTextSize: window argument is not "
+ "a grdel Window");
+ return 0;
+ }
+ fontobj = grdelFontVerify(font, window);
+ if ( fontobj == NULL ) {
+ strcpy(grdelerrmsg, "grdelTextSize: font argument is not "
+ "a valid grdel Font for the window");
+ return 0;
+ }
+
+ if ( bindings->cferbind != NULL ) {
+ success = bindings->cferbind->textSize(bindings->cferbind,
+ text, textlen, fontobj, &width, &height);
+ if ( success == 0 ) {
+ /* grdelerrmsg already assigned */
+ return 0;
+ }
+ }
+ else if ( bindings->pyobject != NULL ) {
+ /* Call the textSize method of the bindings instance. */
+ result = PyObject_CallMethod(bindings->pyobject, "textSize",
+ "s#O", text, textlen, (PyObject *) fontobj);
+ if ( result == NULL ) {
+ sprintf(grdelerrmsg, "grdelTextSize: Error when calling the Python "
+ "binding's textSize method: %s", pyefcn_get_error());
+ return 0;
+ }
+ if ( ! PyArg_ParseTuple(result, "dd", &width, &height) ) {
+ Py_DECREF(result);
+ sprintf(grdelerrmsg, "grdelTextSize: Error when parsing the Python "
+ "binding's textSize return value: %s", pyefcn_get_error());
+ return 0;
+ }
+ Py_DECREF(result);
+ }
+ else {
+ strcpy(grdelerrmsg, "grdelTextSize: unexpected error, "
+ "no bindings associated with this Window");
+ return 0;
+ }
+
+ /* Get the transform values for converting user to device coordinates */
+ grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
+
+ /* Convert the width and height back to user coordinates - just scaling, no offset */
+ *fltwidthptr = (float) (width / sx);
+ *fltheightptr = (float) (height / sy);
+
+ return 1;
+}
+
+
/*
* Draws text.
*
@@ -630,10 +684,8 @@ grdelBool grdelDrawRectangle(grdelType window, float left, float bottom,
* window: Window with an active View to draw in
* text: text string to draw
* textlen: actual length of the text string
- * startx: user X-coordinate of the beginning
- * of the text baseline
- * starty: user Y-coordinate of the beginning
- * of the text baseline
+ * startx: user X-coordinate of the beginning of the text baseline
+ * starty: user Y-coordinate of the beginning of the text baseline
* font: font to use
* color: color to use (as a solid brush or pen)
* rotate: angle of the text baseline in degrees
@@ -680,7 +732,7 @@ grdelBool grdelDrawText(grdelType window, const char *text, int textlen,
}
/* Get the transform values for converting user to device coordinates */
- getTransformValues(&my, &sx, &sy, &dx, &dy);
+ grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
trstx = (double) startx * sx + dx;
trsty = (my - (double) starty) * sy + dy;
@@ -707,7 +759,7 @@ grdelBool grdelDrawText(grdelType window, const char *text, int textlen,
Py_DECREF(result);
}
else {
- strcpy(grdelerrmsg, "grdeldrawText: unexpected error, "
+ strcpy(grdelerrmsg, "grdelDrawText: unexpected error, "
"no bindings associated with this Window");
return 0;
}
@@ -816,6 +868,36 @@ void fgddrawrect_(int *success, void **window, float *left, float *bottom,
}
/*
+ * Returns the size of given text if drawn with a given font.
+ * The width is such that continuing text should be positioned
+ * at the text start plus this width. The height will always
+ * be the ascent plus descent for the font and is independent
+ * of the text.
+ *
+ * Input Arguments:
+ * window: Window to use
+ * text: text string to use
+ * textlen: actual length of the text string
+ * font: font to use
+ *
+ * Output Arguments:
+ * width: width of the text, in user coordinates,
+ * if drawn in the given font
+ * height: height of the text, in user coordinates,
+ * if drawn in the given font
+ * success: non-zero if successful; zero if an error occurred.
+ * Use fgderrmsg_ to retrieve the error message.
+ */
+void fgdtextsize_(int *success, void **window, char *text, int *textlen,
+ void **font, float *width, float *height)
+{
+ grdelBool result;
+
+ result = grdelTextSize(*window, text, *textlen, *font, width, height);
+ *success = result;
+}
+
+/*
* Draws text.
*
* Input Arguments:
diff --git a/fer/grdel/ferdrawtext.F b/fer/grdel/ferdrawtext.F
new file mode 100644
index 0000000..0a91c3f
--- /dev/null
+++ b/fer/grdel/ferdrawtext.F
@@ -0,0 +1,107 @@
+C
+C Draws text in a window.
+C
+C fontsize In user coordinates
+C redfrac
+C greenfrac RGB in percent
+C bluefrac
+C opaqfrac opacity in percent
+C startx position in thousandths of an inch from bottom left
+C starty
+C rotate rotation in degrees clockwise from horizontal
+C italic
+C bold lettering linestyle flags: 0=false, 1=true
+C under
+
+
+ SUBROUTINE FERDRAWTEXT(text, fontname, fontsize,
+ . redfrac, greenfrac, bluefrac, opaqfrac,
+ . startx, starty, rotate,
+ . italic, bold, under, success)
+
+ IMPLICIT NONE
+ INCLUDE 'ferret.parm'
+ INCLUDE 'tmap_dims.parm'
+ INCLUDE 'xprog_state.cmn'
+ INCLUDE 'fgrdel.cmn'
+
+ CHARACTER*(*) text, fontname
+ REAL*4 fontsize
+ REAL*4 redfrac, greenfrac, bluefrac, opaqfrac
+ REAL*4 startx, starty, rotate
+ INTEGER italic, bold, under
+ INTEGER success
+
+ INTEGER TM_LENSTR
+
+ CHARACTER*256 errmsg
+ INTEGER errmsglen
+ INTEGER mywindowid
+ REAL*8 mywindow
+ INTEGER fontnamelen
+ REAL*8 myfont
+ REAL*8 mycolor
+ INTEGER textlen
+
+C Draw to the currently active window -
+ mywindowid = ACTIVEWINDOW
+C Some sanity checks on the window ID and window
+ IF ( (mywindowid .LT. 1) .OR.
+ . (mywindowid .GT. MAXWINDOWOBJS) ) THEN
+ STOP 'FERDRAWTEXT: not an valid window ID'
+ ENDIF
+ mywindow = WINDOWOBJS(mywindowid)
+ IF ( mywindow .EQ. NULLOBJ ) THEN
+ STOP 'FERDRAWTEXT: not a valid window'
+ ENDIF
+
+C Create the font to use for the string -
+ fontnamelen = TM_LENSTR(fontname)
+ CALL FGDFONT(myfont, mywindow, fontname, fontnamelen,
+ . fontsize, italic, bold, under)
+ IF ( myfont .EQ. NULLOBJ ) THEN
+ errmsg = ' '
+ CALL FGDERRMSG(errmsg, errmsglen)
+ CALL SPLIT_LIST(pttmode_help, err_lun, errmsg, errmsglen)
+ success = 0
+ RETURN
+ ENDIF
+
+C Create a color for the text with red, green, blue fractions -
+C or could use one of the standard colors for the window;
+C e.g., colorobjs(2,activewindow)
+
+ CALL FGDCOLOR(mycolor, mywindow,
+ . redfrac, greenfrac, bluefrac, opaqfrac)
+ IF ( mycolor .EQ. NULLOBJ ) THEN
+ errmsg = ' '
+ CALL FGDERRMSG(errmsg, errmsglen)
+ CALL SPLIT_LIST(pttmode_help, err_lun, errmsg, errmsglen)
+ CALL FGDFONTDEL(success, myfont)
+ success = 0
+ RETURN
+ ENDIF
+
+C Draw the text
+ textlen = TM_LENSTR(text)
+ CALL FGDDRAWTEXT(success, mywindow, text, textlen,
+ . startx, starty, myfont, mycolor, rotate)
+ IF ( success .EQ. 0 ) THEN
+ errmsg = ' '
+ CALL FGDERRMSG(errmsg, errmsglen)
+ CALL SPLIT_LIST(pttmode_help, err_lun, errmsg, errmsglen)
+ CALL FGDCOLORDEL(success, myfont)
+ CALL FGDFONTDEL(success, myfont)
+ success = 0
+ RETURN
+ ENDIF
+
+C Delete the color created above
+ CALL FGDCOLORDEL(success, mycolor)
+
+C Delete the font created above
+ CALL FGDFONTDEL(success, myfont)
+
+ success = 1
+ RETURN
+ END
diff --git a/fer/grdel/fertextsize.F b/fer/grdel/fertextsize.F
new file mode 100644
index 0000000..2d5451c
--- /dev/null
+++ b/fer/grdel/fertextsize.F
@@ -0,0 +1,80 @@
+C
+C Returns the size of given text if drawn with a given font.
+C The width is such that continuing text should be positioned
+C at the text start plus this width. The height will always
+C be the ascent plus descent for the font and is independent
+C of the text. The fontsize is in user coordinates.
+C
+C
+ SUBROUTINE FERTEXTSIZE(text, fontname, fontsize,
+ . italic, bold, under, retwidth, retheight, success)
+
+ IMPLICIT NONE
+ INCLUDE 'ferret.parm'
+ INCLUDE 'tmap_dims.parm'
+ INCLUDE 'xprog_state.cmn'
+ INCLUDE 'fgrdel.cmn'
+
+ CHARACTER*(*) text, fontname
+ REAL*4 fontsize
+ INTEGER italic, bold, under
+ REAL*4 retwidth, retheight
+ INTEGER success
+
+ INTEGER TM_LENSTR
+
+ CHARACTER*256 errmsg
+ INTEGER errmsglen
+ INTEGER mywindowid
+ REAL*8 mywindow
+ INTEGER fontnamelen
+ REAL*8 myfont
+ INTEGER textlen
+
+C Use the currently active window -
+C probably just leave this as-is
+ mywindowid = ACTIVEWINDOW
+C Some sanity checks on the window ID and window
+ IF ( (mywindowid .LT. 1) .OR.
+ . (mywindowid .GT. MAXWINDOWOBJS) ) THEN
+ STOP 'FERTEXTSIZE: not an valid window ID'
+ ENDIF
+ mywindow = WINDOWOBJS(mywindowid)
+ IF ( mywindow .EQ. NULLOBJ ) THEN
+ STOP 'FERTEXTSIZE: not a valid window'
+ ENDIF
+
+C Create a font to use for the string -
+C No underline support is provided by Cairo,
+C so under is ignored at this time
+ fontnamelen = TM_LENSTR(fontname)
+ CALL FGDFONT(myfont, mywindow, fontname, fontnamelen,
+ . fontsize, italic, bold, under)
+ IF ( myfont .EQ. NULLOBJ ) THEN
+ errmsg = ' '
+ CALL FGDERRMSG(errmsg, errmsglen)
+ CALL SPLIT_LIST(pttmode_help, err_lun, errmsg, errmsglen)
+ success = 0
+ RETURN
+ ENDIF
+
+C Text to use
+ textlen = TM_LENSTR(text)
+C Measure the text
+ CALL FGDTEXTSIZE(success, mywindow, text, textlen,
+ . myfont, retwidth, retheight)
+ IF ( success .EQ. 0 ) THEN
+ errmsg = ' '
+ CALL FGDERRMSG(errmsg, errmsglen)
+ CALL SPLIT_LIST(pttmode_help, err_lun, errmsg, errmsglen)
+ CALL FGDFONTDEL(success, myfont)
+ success = 0
+ RETURN
+ ENDIF
+
+C Delete the font created above
+ CALL FGDFONTDEL(success, myfont)
+
+ success = 1
+ RETURN
+ END
diff --git a/fer/grdel/fgd_engine_match.F b/fer/grdel/fgd_engine_match.F
index f0ed21b..08783cd 100644
--- a/fer/grdel/fgd_engine_match.F
+++ b/fer/grdel/fgd_engine_match.F
@@ -6,7 +6,7 @@
* windowid - window number to use
* engname - name (or partial name) of the engine;
* standard recognized names are Cairo,
-* PipedViewerPQ, or PipedImager
+* PipedViewerPQ, PipedImager, and NoDisplayPQ
* Returns
* .TRUE. if the window uses the indicated engine;
* otherwise .FALSE.
@@ -61,6 +61,13 @@
RETURN
ENDIF
+ idx = INDEX('NoDisplayPQ', engname(1:slen))
+ IF ( idx .EQ. 1 ) THEN
+ FGD_ENGINE_MATCH =
+ . enginename(windowid) .EQ. 'NoDisplayPQ'
+ RETURN
+ ENDIF
+
IF ( slen .LE. 64 ) THEN
FGD_ENGINE_MATCH = enginename(windowid) .EQ. engname
RETURN
diff --git a/fer/grdel/fgd_gfa.F b/fer/grdel/fgd_gfa.F
index 00253c5..3cc5f59 100644
--- a/fer/grdel/fgd_gfa.F
+++ b/fer/grdel/fgd_gfa.F
@@ -15,10 +15,11 @@
INCLUDE 'xprog_state.cmn'
INCLUDE 'fgrdel.cmn'
- INTEGER k, success, errmsglen
+ INTEGER k, success, errmsglen, stylen, cstylen, jstylen
+ CHARACTER*64 style, capstyle, joinstyle
CHARACTER*2048 errmsg
- REAL*8 tempbrush, fillbrush
- REAL*4 left, bottom, right, top
+ REAL*8 brushcolorobj, tempbrush, fillbrush, outlinepen
+ REAL*4 left, bottom, right, top, linewidth
LOGICAL rectdrawn;
* Sanity checks
@@ -37,6 +38,15 @@
IF ( fillbrush .EQ. nullobj ) THEN
STOP 'FGD_GFA: null activebrush'
ENDIF
+* Get the color object used by this brush in case we need it
+ k = brushcolor(activebrush, activewindow)
+ IF ( (k .LT. 1) .OR. (k .GT. maxcolorobjs) ) THEN
+ STOP 'FGD_GFA: invalid brushcolor for active brush'
+ ENDIF
+ brushcolorobj = colorobjs(k,activewindow)
+ IF ( brushcolorobj .EQ. nullobj ) THEN
+ STOP 'FGD_GFA: null brushcolor for active brush'
+ ENDIF
tempbrush = nullobj
ELSE
* Create a temporary brush to use
@@ -44,13 +54,12 @@
. (lastbrushcolor .GT. maxcolorobjs) ) THEN
STOP 'FGD_GFA: invalid lastbrushcolor'
ENDIF
- IF ( colorobjs(lastbrushcolor, activewindow)
- . .EQ. nullobj ) THEN
+ brushcolorobj = colorobjs(lastbrushcolor, activewindow)
+ IF ( brushcolorobj .EQ. nullobj ) THEN
STOP 'FGD_GFA: null lastbrushcolor'
ENDIF
CALL FGDBRUSH(tempbrush, windowobjs(activewindow),
- . colorobjs(lastbrushcolor, activewindow),
- . lastbrushstyle, lastbstylen)
+ . brushcolorobj, lastbrushstyle, lastbstylen)
IF ( tempbrush .EQ. nullobj ) THEN
errmsg = ' '
CALL FGDERRMSG(errmsg, errmsglen)
@@ -61,6 +70,23 @@
fillbrush = tempbrush
ENDIF
+ IF ( outlinewidth(activewindow) .GT. 0.0 ) THEN
+ linewidth = outlinewidth(activewindow) *
+ . thickfactor(activewindow)
+ style = "solid"
+ stylen = 5
+ capstyle = 'square'
+ cstylen = 6
+* Use a miter join instead of a bevel join for this outline
+ joinstyle = 'miter'
+ jstylen = 5
+ CALL FGDPEN(outlinepen, windowobjs(activewindow),
+ . brushcolorobj, linewidth, style, stylen,
+ . capstyle, cstylen, joinstyle, jstylen)
+ ELSE
+ outlinepen = nullobj
+ ENDIF
+
* Quick check for a rectangle as specified by Ferret
* (Drawing rectangles much faster than generic polygons.)
rectdrawn = .FALSE.
@@ -85,14 +111,14 @@
ENDIF
* Fill rectangle area (no outline)
CALL FGDDRAWRECT(success, windowobjs(activewindow),
- . left, bottom, right, top, fillbrush, nullobj)
+ . left, bottom, right, top, fillbrush, outlinepen)
rectdrawn = .TRUE.
ENDIF
ENDIF
IF ( .NOT. rectdrawn ) THEN
* Fill generic polygon area (no outline)
CALL FGDDRAWPOLYGON(success, windowobjs(activewindow),
- . ptsx, ptsy, npts, fillbrush, nullobj)
+ . ptsx, ptsy, npts, fillbrush, outlinepen)
ENDIF
IF ( success .EQ. 0 ) THEN
errmsg = ' '
@@ -101,6 +127,17 @@
ENDIF
somethingdrawn = .TRUE.
+* If an outline pen was created, delete it
+ IF ( outlinepen .NE. nullobj ) THEN
+ CALL FGDPENDEL(success, outlinepen)
+ IF ( success .EQ. 0 ) THEN
+ errmsg = ' '
+ CALL FGDERRMSG(errmsg, errmsglen)
+ CALL SPLIT_LIST(pttmode_help, err_lun,
+ . errmsg, errmsglen)
+ ENDIF
+ ENDIF
+
* If a temporary brush was created, delete it
IF ( tempbrush .NE. nullobj ) THEN
CALL FGDBRUSHDEL(success, tempbrush)
diff --git a/fer/grdel/fgd_gopwk.F b/fer/grdel/fgd_gopwk.F
index 2a15aa5..64c082d 100644
--- a/fer/grdel/fgd_gopwk.F
+++ b/fer/grdel/fgd_gopwk.F
@@ -27,7 +27,7 @@
INTEGER TM_LENSTR
INTEGER engnamelen, wintitlelen, showit,
- . success, errmsglen, aaint
+ . noalpha, success, errmsglen, aaint
CHARACTER*2048 errmsg
REAL*4 redf, greenf, bluef, opaquef
@@ -44,9 +44,11 @@
engnamelen = TM_LENSTR(enginename(windowid))
wintitlelen = TM_LENSTR(windowtitle)
showit = 1
+* ignoring alpha in colors ?
+ noalpha = 0
CALL FGDWINCREATE(windowobjs(windowid),
. enginename(windowid), engnamelen,
- . windowtitle, wintitlelen, showit)
+ . windowtitle, wintitlelen, showit, noalpha)
IF ( windowobjs(windowid) .EQ. nullobj ) THEN
errmsg = ' '
CALL FGDERRMSG(errmsg, errmsglen)
diff --git a/fer/grdel/fgd_set_engine.F b/fer/grdel/fgd_set_engine.F
index 897bd1b..88874f5 100644
--- a/fer/grdel/fgd_set_engine.F
+++ b/fer/grdel/fgd_set_engine.F
@@ -7,7 +7,8 @@
* newname - name (or partial name) of the engine;
* standard recognized names are Cairo,
* CAIRO, PipedViewerPQ, PIPEDVIEWERPQ,
-* PipedImager, and PIPEDIMAGER
+* PipedImager, PIPEDIMAGER, NoDisplayPQ,
+* an NODISPLAYPQ
* Need all-uppercase for /ENGINE="..."
* forceit - change the engine name regardless of
* no-display command-line options?
@@ -101,6 +102,17 @@
RETURN
ENDIF
+ idx = INDEX('NoDisplayPQ', newname(1:slen))
+ IF ( idx .NE. 1 ) THEN
+ idx = INDEX('NODISPLAYPQ', newname(1:slen))
+ ENDIF
+ IF ( idx .EQ. 1 ) THEN
+ enginename(windowid) = 'NoDisplayPQ'
+ antialias(windowid) = .TRUE.
+ sts = FERR_OK
+ RETURN
+ ENDIF
+
IF ( slen .LE. 64 ) THEN
warnmsg = 'Non-standard graphics engine "'
. // newname(1:slen) // '"'
diff --git a/fer/grdel/fgd_set_outline_width.F b/fer/grdel/fgd_set_outline_width.F
new file mode 100644
index 0000000..0f670be
--- /dev/null
+++ b/fer/grdel/fgd_set_outline_width.F
@@ -0,0 +1,30 @@
+*
+* Assigns the width of outlines for rectangles and other polygons
+* in the specified window
+*
+* Input Arguments:
+* windowid - number of the window to use
+* linewidth - width of outlines; can be zero for no outlines
+*
+ SUBROUTINE FGD_SET_OUTLINE_WIDTH(windowid, linewidth)
+
+ IMPLICIT NONE
+ INTEGER windowid
+ REAL*4 linewidth
+
+ INCLUDE 'fgrdel.cmn'
+
+ IF ( (windowid .LT. 1) .OR.
+ . (windowid .GT. maxwindowobjs) ) THEN
+ STOP 'FGD_SET_OUTLINE_WIDTH: Invalid windowid value'
+ ENDIF
+ IF ( linewidth .LT. 0.0 ) THEN
+ STOP 'FGD_SET_OUTLINE_WIDTH: Invalid linewidth value'
+ ENDIF
+
+* Record the outline width for this window
+ outlinewidth(windowid) = linewidth
+
+ RETURN
+ END
+
diff --git a/fer/grdel/fgd_set_window_dpi.F b/fer/grdel/fgd_set_window_dpi.F
new file mode 100644
index 0000000..bb0946c
--- /dev/null
+++ b/fer/grdel/fgd_set_window_dpi.F
@@ -0,0 +1,36 @@
+*
+*
+
+ SUBROUTINE FGD_SET_WINDOW_DPI(success, windowid, newdpi)
+
+ IMPLICIT NONE
+
+ INCLUDE 'ferret.parm'
+ INCLUDE 'tmap_dims.parm'
+ INCLUDE 'xprog_state.cmn'
+ INCLUDE 'fgrdel.cmn'
+
+ INTEGER success, windowid
+ REAL*4 newdpi
+
+ INTEGER errmsglen
+ CHARACTER*2048 errmsg
+
+* Sanity checks
+ IF ( (windowid .LT. 1) .OR.
+ . (windowid .GT. maxwindowobjs) ) THEN
+ STOP 'FGD_SET_WINDOW_DPI: Invalid windowid value'
+ ENDIF
+ IF ( windowobjs(windowid) .EQ. nullobj ) THEN
+ STOP 'FGD_SET_WINDOW_DPI: null windowobj'
+ ENDIF
+
+ CALL FGDWINSETDPI(success, windowobjs(windowid), newdpi)
+ IF ( success .EQ. 0 ) THEN
+ errmsg = ' '
+ CALL FGDERRMSG(errmsg, errmsglen)
+ CALL SPLIT_LIST(pttmode_help, err_lun, errmsg, errmsglen)
+ ENDIF
+
+ RETURN
+ END
diff --git a/fer/grdel/font.c b/fer/grdel/font.c
index 9c1f41e..57a0459 100644
--- a/fer/grdel/font.c
+++ b/fer/grdel/font.c
@@ -5,6 +5,7 @@
#include <Python.h> /* make sure Python.h is first */
#include <string.h>
+#include <math.h>
#include "grdel.h"
#include "cferbind.h"
#include "pyferret.h"
@@ -43,6 +44,7 @@ grdelType grdelFont(grdelType window, const char *familyname,
PyObject *boldbool;
PyObject *underlinedbool;
GDFont *font;
+ double my, sx, sy, dx, dy, fs;
bindings = grdelWindowVerify(window);
if ( bindings == NULL ) {
@@ -57,11 +59,19 @@ grdelType grdelFont(grdelType window, const char *familyname,
return NULL;
}
+ grdelGetTransformValues(&my, &sx, &sy, &dx, &dy);
+ /*
+ * The first value is just some unknown magic factor.
+ * 72.0 converts inches to points.
+ * sqrt(sx * sy) scales by the viewport size.
+ */
+ fs = 17.5 * 72.0 * sqrt(sx * sy) * (double) fontsize;
+
font->id = grdelfontid;
font->window = window;
if ( bindings->cferbind != NULL ) {
font->object = bindings->cferbind->createFont(bindings->cferbind,
- familyname, familynamelen, (double) fontsize,
+ familyname, familynamelen, fs,
italic, bold, underlined);
if ( font->object == NULL ) {
/* grdelerrmsg already assigned */
@@ -83,9 +93,8 @@ grdelType grdelFont(grdelType window, const char *familyname,
else
underlinedbool = Py_False;
font->object = PyObject_CallMethod(bindings->pyobject, "createFont",
- "s#dOOO", familyname, familynamelen,
- (double) fontsize, italicbool, boldbool,
- underlinedbool);
+ "s#dOOO", familyname, familynamelen, fs,
+ italicbool, boldbool, underlinedbool);
if ( font->object == NULL ) {
sprintf(grdelerrmsg, "grdelFont: error when calling the Python "
"binding's createFont method: %s", pyefcn_get_error());
@@ -202,7 +211,7 @@ grdelBool grdelFontDelete(grdelType font)
* familyname: name of the font family (e.g., "Helvetica", "Times");
* an empty string uses the default font
* namelen: actual length of the font family name
- * fontsize: desired size of the font View units
+ * fontsize: desired size of the font in View units
* italic: use the italic version of the font? non-zero yes, zero no.
* bold: use the bold version of the font? non-zero yes, zero no.
* underlined: use the underlined version of the font? non-zero yes, zero no.
diff --git a/fer/grdel/getTransformValues.c b/fer/grdel/getTransformValues.c
new file mode 100644
index 0000000..db58d34
--- /dev/null
+++ b/fer/grdel/getTransformValues.c
@@ -0,0 +1,46 @@
+/*
+ * Drawing commands
+ */
+#include <Python.h> /* make sure Python.h is first */
+#include "grdel.h"
+#include "cferbind.h"
+
+/*
+ * Assigns the transformation values my, sx, sy, dx, and dy used
+ * to convert user coordinate (userx, usery) to device coordinate
+ * (devx, devy) using the formulae:
+ * devx = userx * sx + dx
+ * devy = (my - usery) * sy + dy
+ */
+void grdelGetTransformValues(double *my, double *sx, double *sy,
+ double *dx, double *dy)
+{
+ float lftfrc, rgtfrc, btmfrc, topfrc;
+ float lftcrd, rgtcrd, btmcrd, topcrd;
+ float winwidth, winheight;
+ double devlft, devtop, devwidth, devheight;
+ double usrlft, usrtop, usrwidth, usrheight;
+
+ fgd_get_view_limits_(&lftfrc, &rgtfrc, &btmfrc, &topfrc,
+ &lftcrd, &rgtcrd, &btmcrd, &topcrd);
+ fgd_get_window_size_(&winwidth, &winheight);
+
+ devlft = (double) lftfrc * (double) winwidth;
+ devwidth = (double) rgtfrc * (double) winwidth;
+ devwidth -= devlft;
+ devtop = (1.0 - (double) topfrc) * (double) winheight;
+ devheight = (1.0 - (double) btmfrc) * (double) winheight;
+ devheight -= devtop;
+
+ usrlft = (double) lftcrd;
+ usrwidth = (double) rgtcrd - usrlft;
+ usrtop = 0.0;
+ usrheight = (double) topcrd - (double) btmcrd;
+
+ *my = (double) topcrd;
+ *sx = devwidth / usrwidth;
+ *sy = devheight / usrheight;
+ *dx = devlft - (*sx) * usrlft;
+ *dy = devtop - (*sy) * usrtop;
+}
+
diff --git a/fer/grdel/grdel.h b/fer/grdel/grdel.h
index 4c05bec..ebbcbc6 100644
--- a/fer/grdel/grdel.h
+++ b/fer/grdel/grdel.h
@@ -86,7 +86,8 @@ void fgd_getanimate_(int *inanimation);
*/
grdelType grdelWindowCreate(const char *engine, int enginelen,
- const char *title, int titlelen, grdelBool visible);
+ const char *title, int titlelen,
+ grdelBool visible, grdelBool noalpha);
const BindObj *grdelWindowVerify(grdelType window);
grdelBool grdelWindowDelete(grdelType window);
grdelBool grdelWindowClear(grdelType window, grdelType fillcolor);
@@ -112,7 +113,7 @@ grdelBool grdelWindowSetWidthFactor(grdelType window, float widthfactor);
* Fortran interfaces for the Window functions.
*/
void fgdwincreate_(void **window, char *engine, int *enginelen,
- char *title, int *titlelen, int *visible);
+ char *title, int *titlelen, int *visible, int *noalpha);
void fgdwindelete_(int *success, void **window);
void fgdwinclear_(int *success, void **window, void **fillcolor);
void fgdwinredraw_(int *success, void **window, void **fillcolor);
@@ -173,6 +174,9 @@ void fgdsegbegin_(int *success, void **window, int *segid);
void fgdsegend_(int *success, void **window);
void fgdsegdelete_(int *success, void **window, int *segid);
+void grdelGetTransformValues(double *my, double *sx, double *sy,
+ double *dx, double *dy);
+
/*
* All Color, Font, Pens, Brush, or Symbol objects can only be used
* in the Window from which they were created.
diff --git a/fer/grdel/window.c b/fer/grdel/window.c
index ca72edc..b5d605d 100644
--- a/fer/grdel/window.c
+++ b/fer/grdel/window.c
@@ -87,16 +87,19 @@ void fgderrmsg_(char *errmsg, int *errmsglen)
* title: display title for the Window
* titlelen: actual length of the title
* visible: display Window on start-up?
+ * noalpha: do not use the alpha channel (opacity) in colors
*
* Returns a pointer to the window object created.
* If an error occurs, NULL is returned and
* grdelerrmsg contains an explanatory message.
*/
grdelType grdelWindowCreate(const char *engine, int enginelen,
- const char *title, int titlelen, grdelBool visible)
+ const char *title, int titlelen,
+ grdelBool visible, grdelBool noalpha)
{
GDWindow *window;
PyObject *visiblebool;
+ PyObject *noalphabool;
/* Allocate memory for this GDWindow */
window = (GDWindow *) PyMem_Malloc(sizeof(GDWindow));
@@ -115,7 +118,7 @@ grdelType grdelWindowCreate(const char *engine, int enginelen,
* This will fail if it is a Python-based engine.
*/
window->bindings.cferbind = cferbind_createWindow(engine, enginelen,
- title, titlelen, visible);
+ title, titlelen, visible, noalpha);
if ( window->bindings.cferbind != NULL ) {
/* Success - engine found; done */
#ifdef VERBOSEDEBUG
@@ -144,10 +147,14 @@ grdelType grdelWindowCreate(const char *engine, int enginelen,
visiblebool = Py_True;
else
visiblebool = Py_False;
+ if ( noalpha )
+ noalphabool = Py_True;
+ else
+ noalphabool = Py_False;
window->bindings.pyobject =
PyObject_CallMethod(pyferret_graphbind_module_pyobject,
- "createWindow", "s#s#O", engine, enginelen,
- title, titlelen, visiblebool);
+ "createWindow", "s#s#OO", engine, enginelen,
+ title, titlelen, visiblebool, noalphabool);
if ( window->bindings.pyobject == NULL ) {
sprintf(grdelerrmsg, "grdelWindowCreate: error when calling createWindow "
"in pyferret.graphbind: %s", pyefcn_get_error());
@@ -950,6 +957,52 @@ grdelBool grdelWindowScreenInfo(grdelType window, float *dpix, float *dpiy,
return 1;
}
+
+/*
+ * Assign the window DPI.
+ * Will only be successful if the window is not associated with a display.
+ *
+ * Input Arguments:
+ * window: Window to use
+ * newdpi: the number of dots per inch to assign
+ *
+ * Output Arguments:
+ * success: one if successful,
+ * zero if an error occurred,
+ * negative one if the window is associated with a display
+ */
+int grdelWindowSetDpi(grdelType window, float newdpi)
+{
+ GDWindow *mywindow;
+
+#ifdef VERBOSEDEBUG
+ fprintf(debuglogfile, "grdelWindowSetDpi called: "
+ "window = %p, newdpi = %f\n", window, newdpi);
+ fflush(debuglogfile);
+#endif
+
+ if ( grdelWindowVerify(window) == NULL ) {
+ strcpy(grdelerrmsg, "grdelWindowSetDpi: "
+ "window argument is not a grdel Window");
+ return 0;
+ }
+ mywindow = (GDWindow *) window;
+
+ if ( mywindow->bindings.pyobject != NULL ) {
+ /* anything with Python bindings has a display associated with it */
+ return -1;
+ }
+ if ( mywindow->bindings.cferbind == NULL ) {
+ strcpy(grdelerrmsg, "grdelWindowSetDpi: unexpected error, "
+ "no bindings associated with this Window");
+ return 0;
+ }
+ /* (at this time) anything with only C bindings has no display associated with it */
+ mywindow->bindings.cferbind->setWindowDpi(mywindow->bindings.cferbind, (double) newdpi);
+ return 1;
+}
+
+
/*
* Set the scaling factor for pen widths, symbol sizes, and font sizes.
*
@@ -1016,17 +1069,18 @@ grdelBool grdelWindowSetWidthFactor(grdelType window, float widthfactor)
* title: display title for the Window
* titlelen: actual length of the title
* visible: display Window on start-up? If zero, no; if non-zero, yes.
+ * noalpha: do not use the alpha channel (opacity) in colors ?
* Output Arguments:
* window: the window object created, or zero if failure.
* Use fgderrmsg_ to retreive the error message.
*/
void fgdwincreate_(void **window, char *engine, int *enginelen,
- char *title, int *titlelen, int *visible)
+ char *title, int *titlelen, int *visible, int *noalpha)
{
grdelType mywindow;
- mywindow = grdelWindowCreate(engine, *enginelen,
- title, *titlelen, *visible);
+ mywindow = grdelWindowCreate(engine, *enginelen, title,
+ *titlelen, *visible, *noalpha);
*window = mywindow;
}
@@ -1276,6 +1330,28 @@ void fgdwinscreeninfo_(int *success, void **window, float *dpix, float *dpiy,
/*
+ * Assign the window DPI.
+ * Will only be successful if the window is not associated with a display.
+ *
+ * Input Arguments:
+ * window: Window to use
+ * newdpi: the number of dots per inch to assign
+ *
+ * Output Arguments:
+ * success: one if successful,
+ * zero if an error occurred (use fgderrmsg_ to retrieve the error message),
+ * negative one if the window is associated with a display
+ */
+void fgdwinsetdpi_(int *success, void **window, float *newdpi)
+{
+ int result;
+
+ result = grdelWindowSetDpi(*window, *newdpi);
+ *success = result;
+}
+
+
+/*
* Assign the scaling factor for line widths, symbol sizes, and font sizes.
*
* Input Arguments:
diff --git a/fer/ino/cdf_prep_cache.F b/fer/ino/cdf_prep_cache.F
index 896b217..758203c 100644
--- a/fer/ino/cdf_prep_cache.F
+++ b/fer/ino/cdf_prep_cache.F
@@ -48,6 +48,7 @@
* *acm* 3/12 cleanup old VMS ifdef
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
* V685 *acm* 3/13 For Ensemble aggregations, call the ds_type 'ENS'
+* V695 *acm* 2/15 For Forecast aggregations, call the ds_type 'FCT'
include 'tmap_errors.parm'
include 'tmap_dims.parm'
@@ -67,7 +68,7 @@
CHARACTER TM_INQ_PATH*2048, filename*(*)
* local variable declarations
- LOGICAL TM_HAS_STRING, fexist
+ LOGICAL TM_HAS_STRING, fexist, ok_cache
INTEGER TM_LENSTR1,
. qfile, dset, cx0, cx, ivar, idim, flen, dlen,
. iin, iout
@@ -82,10 +83,11 @@
IF ( status .NE. ferr_ok ) GOTO 5000
dset = cx_data_set(cx_cmnd)
IF ( dset .EQ. unspecified_int4 ) GOTO 5100
- IF ( ds_type(dset) .NE. 'CDF' ) GOTO 5200
- IF ( ds_type(dset) .NE. 'ENS' ) GOTO 5200
- IF ( .NOT.TM_HAS_STRING(ds_des_name(dset)(:8), 'http://') )
- . GOTO 5200
+ ok_cache = ( TM_HAS_STRING(ds_type(dset),'CDF') .OR.
+ . TM_HAS_STRING(ds_type(dset),'ENS') .OR.
+ . TM_HAS_STRING(ds_type(dset),'FCT') .OR.
+ . TM_HAS_STRING(ds_des_name(dset)(:8), 'http://') )
+ IF (.NOT. ok_cache) GOTO 5200
* determine the directory to receive the cached file
qfile = qual_given( slash_file )
diff --git a/fer/ino/find_dset_number.F b/fer/ino/find_dset_number.F
index 6d0b4f2..30e3e59 100644
--- a/fer/ino/find_dset_number.F
+++ b/fer/ino/find_dset_number.F
@@ -65,6 +65,7 @@
* v604 *acm* 7/07 increase length of ds_name
* V680 6/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
* V685 *acm* 3/13 For Ensemble aggregations, call the ds_type 'ENS'
+* V695 *acm* 2/15 For Forecast aggregations, call the ds_type 'FCT'
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -156,7 +157,8 @@ c *kob* 4/97
** what about aggregate datasets?
IF ( TM_HAS_STRING(ds_type(dset),'CDF') .OR.
- . TM_HAS_STRING(ds_type(dset),'ENS') ) THEN
+ . TM_HAS_STRING(ds_type(dset),'ENS') .OR.
+ . TM_HAS_STRING(ds_type(dset),'FCT') ) THEN
vax_code = STR_CASE_BLIND_COMPARE( ds_name(dset),
. dname(1:short_len) )
IF ( vax_code .EQ. vms_str_success
diff --git a/fer/ino/var_ss_lims.F b/fer/ino/var_ss_lims.F
index 84a5ebc..b469c52 100644
--- a/fer/ino/var_ss_lims.F
+++ b/fer/ino/var_ss_lims.F
@@ -88,9 +88,10 @@
* ... end of 10/93 additions
* cannot return answer under several conditions
- is_file_var = cat .EQ. cat_file_var .OR.
- . cat .EQ. cat_aggregate_var .OR.
- . cat .EQ. cat_pystat_var
+ is_file_var = cat .EQ. cat_file_var .OR.
+ . cat .EQ. cat_agg_e_var .OR.
+ . cat .EQ. cat_agg_f_var .OR.
+ . cat .EQ. cat_pystat_var
IF ( (.NOT.is_file_var)
. .OR. dset .EQ. unspecified_int4
. .OR. line .EQ. mnormal
diff --git a/fer/mem/SOURCE_FILES b/fer/mem/SOURCE_FILES
index bcf45dd..7faaada 100644
--- a/fer/mem/SOURCE_FILES
+++ b/fer/mem/SOURCE_FILES
@@ -4,6 +4,7 @@ assign_mr_cx.F\
assign_temp_var.F\
assign_variable.F\
cgrid_size_delta.F\
+create_full_range_context.F\
create_mem_var.F\
create_permutation.F\
create_temp_mem_var.F\
@@ -19,6 +20,7 @@ delete_variable.F\
erase_dset.F\
fill_memory.F\
find_mem_var.F\
+find_mem_var_incl_c_cache.F\
find_mr_slot.F\
find_var_name.F\
free_memory.F\
diff --git a/fer/ctx/del_cx_dim.F b/fer/mem/create_full_range_context.F
similarity index 72%
copy from fer/ctx/del_cx_dim.F
copy to fer/mem/create_full_range_context.F
index d176ba6..c2ae558 100644
--- a/fer/ctx/del_cx_dim.F
+++ b/fer/mem/create_full_range_context.F
@@ -1,4 +1,4 @@
- SUBROUTINE DEL_CX_DIM( idim, cx )
+ SUBROUTINE CREATE_FULL_RANGE_CONTEXT ( source, dest, status )
*
*
@@ -35,32 +35,48 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* eliminate all data specifying an axis in a context
+* transfer space/time/data_set/variable context from one context buffer to
+* another and then expand it to be the full grid range of that variable
* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
* written for VAX computer under VMS operating system
*
-* revision 0.0 - 9/23/87
-* V200: 5/19/89 - reordered _ss dims
-* 9/97 *kob* - eliminate newly create cx_calendar
-* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V695+ 5/15 *sh*
+
+ IMPLICIT NONE
include 'tmap_dims.parm'
include 'ferret.parm'
+ include 'errmsg.parm'
include 'xcontext.cmn'
* calling argument declarations
- INTEGER cx, idim
+ INTEGER source, dest, status
+
+* internal variable declarations
+ INTEGER CX_DIM_LEN_ZERO, idim, n
+
+* initialize
+ status = ferr_ok
- cx_lo_ss ( cx, idim ) = unspecified_int4
- cx_hi_ss ( cx, idim ) = unspecified_int4
- cx_lo_ww ( idim, cx ) = unspecified_val8
- cx_hi_ww ( idim, cx ) = unspecified_val8
- cx_trans ( idim, cx ) = trans_no_transform
- cx_trans_arg( idim, cx ) = bad_val4
- if (idim .EQ. t_dim)
- . cx_calendar(cx) = .FALSE.
+ CALL TRANSFER_CONTEXT(source, dest)
+
+* expand context to full grid range
+ DO idim = 1, nferdims
+ cx_trans(idim,dest) = trans_no_transform
+ n = CX_DIM_LEN_ZERO(idim, dest)
+ IF ( n .GT. 0 ) THEN
+ cx_lo_ss(dest, idim) = 1
+ cx_hi_ss(dest, idim) = n
+ cx_by_ss(idim, dest) = .TRUE.
+ CALL FLESH_OUT_AXIS(idim, dest, status )
+ IF (status .NE. ferr_ok) GOTO 5000
+ ENDIF
+ ENDDO
RETURN
+
+* error exit
+ 5000 RETURN
END
diff --git a/fer/mem/delete_user_var_sub.F b/fer/mem/delete_user_var_sub.F
index cc0b022..2ca0401 100644
--- a/fer/mem/delete_user_var_sub.F
+++ b/fer/mem/delete_user_var_sub.F
@@ -65,6 +65,8 @@
* V602 12/06 *acm* - When removeing var from the user-variables dataset in
* linked-list structure, no need to check for EX# expressions
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V695+ 5/15 *sh* - free cached c array, if any
+* V695 7/15 *acm - reinitialize value of uvar_aux_stat to zero
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -147,6 +149,11 @@
* if this user variable is associated with any dynamic grids release them
CALL DEALLO_UVAR_GRIDS(uvar)
+* if there is a c cache of the full range variable, free it
+* note: this addition remained untested at the time it was entered
+ IF (uvar_c_cache_ptr(uvar) .NE. 0.0) CALL FREE_CACHED_FULL_ARRAY
+ . (uvar_c_cache_ptr(uvar))
+
* eliminate the named variable from the list of uvars
* uvar_num_items( uvar ) = uvar_deleted
CALL deleted_list_modify(uvar_num_items_head,uvar,uvar_deleted)
@@ -159,7 +166,7 @@
slen = TM_LENSTR1( uvar_name_code(uvar) )
CALL TM_FTOC_STRNG( uvar_name_code(uvar)(1:slen), fhol, flen )
- dset_uvars = -1
+ dset_uvars = pdset_uvars
CALL NCF_DELETE_VAR (dset_uvars, fhol )
ENDIF
@@ -175,6 +182,11 @@
rvar_uvar (uvar) = 0
uvar_remote (uvar) = .FALSE.
ENDIF
-
+
+* Reinitialize any aux_uvar settings
+ DO 400 i = 1, nferdims
+ 400 uvar_aux_stat(uvar,i) = paux_stat_init
+
+
RETURN
END
diff --git a/fer/mem/erase_dset.F b/fer/mem/erase_dset.F
index 88d4050..044ede8 100644
--- a/fer/mem/erase_dset.F
+++ b/fer/mem/erase_dset.F
@@ -49,12 +49,13 @@
* V601 11/06 - Also need to delete LET/D= variables from the linked-
* list attribute structure.
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V695+ *sh* 5/15 - free any c-cached arrays owned by the dataset
include 'tmap_dims.parm'
include 'ferret.parm'
include 'xvariables.cmn'
include 'xcontext.cmn'
-
+ include 'xdset_info.cmn_text'
* calling argument declarations:
INTEGER dset
@@ -72,6 +73,14 @@
* eliminate memory resident data
CALL PURGE_DSET( dset )
+* free any c-cached variables owned by this dataset
+ DO ii = 1, maxvars
+ IF (ds_var_setnum(ii) .EQ. dset) THEN
+ IF (ds_var_c_cache_ptr(ii).NE.0.0) CALL FREE_CACHED_FULL_ARRAY
+ . (ds_var_c_cache_ptr(ii))
+ ENDIF
+ ENDDO
+
* delete LET-defined variables that belong to this data set
DO 100 ii = 1, max_uvar
* IF (uvar_dset(ii) .EQ. dset) uvar_num_items(ii) =
@@ -87,7 +96,7 @@
IF (slen .GT. 0 .AND. uvar_name_code(ii)(1:3) .NE. 'EX#') THEN
CALL TM_FTOC_STRNG( uvar_name_code(ii)(1:slen), fhol, flen )
- dset_uvars = -1
+ dset_uvars = pdset_uvars
CALL NCF_DELETE_VAR (dset_uvars, fhol )
ENDIF
diff --git a/fer/mem/find_mem_var.F b/fer/mem/find_mem_var.F
index 4e6aa35..2ab99da 100644
--- a/fer/mem/find_mem_var.F
+++ b/fer/mem/find_mem_var.F
@@ -1,4 +1,4 @@
- SUBROUTINE FIND_MEM_VAR( cx, mr, by_value )
+ SUBROUTINE FIND_MEM_VAR( cx, mr, by_value, valid_search )
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -75,6 +75,7 @@
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
* V685 4/13-3/14 *sh* support for auxiliary variables used in regridding
* V692 7/14 *acm* ticket 2183: handle @WGT transform as for integrals
+* V695+ 5/15 *sh* added valid_search argument, to support c cache hits
* (V510) How on cache hits on external functions (EFs) work:
* uvar_given is used to encapsulate information about cache reuse for EF
@@ -112,14 +113,18 @@
* calling argument declarations:
INTEGER cx, mr
- LOGICAL by_value
+ LOGICAL by_value, valid_search
* internal variable declarations:
LOGICAL has_trans, itsa_uvar,
. normal(nferdims), non_modulo(nferdims)
INTEGER HASH_CX, line,
. mv, defining_grid, idim, var
- REAL*8 TM_WORLD, ww_hi_bound
+ REAL*8 TM_WORLD, ww_hi_bound, c_cache_ptr
+
+
+* initialize
+ valid_search = .TRUE.
* in "STUPID" mode the program cannot find anything in memory
* (4/99) if mode_arg is 1 we are are using "weak_cache", so do not skip out
@@ -172,7 +177,7 @@
100 mv = mv_flink( mv )
IF ( mv .LT. 0 ) THEN
mr = mr_nonexist
- RETURN
+ RETURN ! not found in normal Ferret cache
ENDIF
* right variable ?
@@ -359,5 +364,6 @@
* failure exit
5000 mr = mr_nonexist
+ valid_search = .FALSE.
RETURN
END
diff --git a/fer/doo/do_stddev.F b/fer/mem/find_mem_var_incl_c_cache.F
old mode 100755
new mode 100644
similarity index 55%
copy from fer/doo/do_stddev.F
copy to fer/mem/find_mem_var_incl_c_cache.F
index 0e4724d..158c0a4
--- a/fer/doo/do_stddev.F
+++ b/fer/mem/find_mem_var_incl_c_cache.F
@@ -1,10 +1,5 @@
- INTEGER FUNCTION DO_STDDEV ( idim, arg,
- . com, com_mr, com_cx,
- . res, res_mr, res_cx,
- . box )
+ SUBROUTINE FIND_MEM_VAR_INCL_C_CACHE( cx, mr, by_value, memory )
-*
-*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -38,43 +33,71 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* determine the variance of the given field along the indicated axis
+* try a traditional Ferret memory cache search.
+* If it fails, as a last ditch, look to see if the full range variable
+* is available in c cache (normally used for CF auxiliary variables)
* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
* written for VAX computer under VMS operating system
*
-* V230: 3/2/92
-* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V695+ 5/15 *sh*
IMPLICIT NONE
include 'tmap_dims.parm'
- include 'ferret.parm'
- include 'errmsg.parm'
- include 'interp_stack.parm'
- include 'xcontext.cmn'
- include 'xprog_state.cmn'
+ include 'ferret.parm'
+ include 'errmsg.parm'
+ include 'xtm_grid.cmn_text'
+ external xgt_grid_data
+ include 'xvariables.cmn'
+ include 'xcontext.cmn'
+ include 'xprog_state.cmn'
+ include 'xdset_info.cmn_text'
* calling argument declarations:
- INTEGER idim, com_mr, com_cx, res_mr, res_cx
- REAL arg, com(*), res(*), box(*)
+ INTEGER cx, mr
+ LOGICAL by_value
+ REAL memory( mem_blk_size, max_mem_blks )
* internal variable declarations:
- LOGICAL stddev
-
- stddev = .TRUE.
+ LOGICAL valid_search
+ INTEGER CGRID_SIZE, var, cat, npts, status
+ REAL*8 c_cache_ptr
-* diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
- IF ( mode_diagnostic ) CALL DIAG_OP
- . ( 'doing', isact_class_trans, res_cx, idim )
+* first try a normal cache search
+ CALL FIND_MEM_VAR( cx, mr, search_by_value, valid_search )
+ IF (.NOT.valid_search .OR. mr.NE.mr_nonexist) RETURN
- CALL DO_VAR_SUB( idim,
- . cx_lo_ss(com_cx,idim), cx_hi_ss(com_cx,idim),
- . com, com_mr, com_cx,
- . res, res_mr, res_cx,
- . box, stddev )
+* initialize
+ var = cx_variable(cx)
+ cat = cx_category(cx)
+* ... aggegated vars always map to file var of same cx_variable number
+ IF (cat .EQ. cat_agg_f_var) cat = cat_file_var
- DO_STDDEV = ferr_ok
+* last ditch attempt -- is this variable available in c memory cache
+* (used to speed recall of CF auxiliary variables)
+* NOTE: error conditions are not properly trapped
+ IF ( cat .EQ. cat_file_var ) THEN
+ c_cache_ptr = ds_var_c_cache_ptr(var)
+ ELSEIF ( cat .EQ. cat_user_var ) THEN
+ c_cache_ptr = uvar_c_cache_ptr(var)
+ ELSE
+ c_cache_ptr = 0.0
+ ENDIF
+ IF (c_cache_ptr .NE. 0.0) THEN
+ CALL CREATE_FULL_RANGE_CONTEXT ( cx, cx_buff, status )
+ IF (status .NE. ferr_ok) GOTO 5000
+ CALL CREATE_MEM_VAR( cx_buff, mr, status )
+ IF (status .NE. ferr_ok) GOTO 5000
+ npts = CGRID_SIZE(cx_buff)
+ CALL RECOVER_CACHED_FULL_ARRAY(memory(1,mr_blk1(mr)),
+ . npts, c_cache_ptr)
+ IF (mode_diagnostic) CALL DIAGNOSTIC_OUT('c-found',mr,point_to_mr)
+ RETURN ! YAHOO! Made a last didch cache hit.
+ ENDIF
+
+* failure exit
+ 5000 mr = mr_nonexist
RETURN
END
diff --git a/fer/mem/find_var_name.F b/fer/mem/find_var_name.F
index be6fa7d..9c3b54c 100644
--- a/fer/mem/find_var_name.F
+++ b/fer/mem/find_var_name.F
@@ -71,7 +71,11 @@
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
* V685 *acm* 3/13 For Ensemble aggregations, call the ds_type 'ENS'
* V685+ *acm* 3/13 For Ensemble ds_type, check datset number before testing its type
-
+* v694 *acm* 12/14 Fix ticket 2050: case of variables in quotes
+* *sh* 12/14 Allow _SQ_ as an acceptable equivalent to single quotes
+* *acm* 2/15 Prevent run-time errors in string length for _SQ_ handling
+* V695 *acm* 2/15 For Forecast aggregations, call the ds_type 'FCT'
+*
IMPLICIT NONE
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -306,6 +310,9 @@
170 CONTINUE
* check file variables from this data set
+* Quoted variable may have been saved in the data structure uppercased:
+* Look first with the spelling given, then if not found use case-blind search.
+*
* DO 200 ivar = 1, maxvars
* IF ( single_dset .AND. ds_var_setnum( ivar ) .NE. dset ) GOTO 200
* len_mchars = TM_LENSTR(ds_var_code(ivar))
@@ -323,12 +330,41 @@
. string_array_result(1),
. max_uvar,
. num_indices)
+* NOTE: (*sh* 12/2014): The routine string_array_find_quoted includes a case-blind
+* array scan if the test_name string has no enclosing qquotation marks.
+* So are these next lines of code redundant/unnecessary?
+ IF (len_test.GT.0) THEN
+* ... case-blind search for name enclosed in "'"
+ IF (num_indices.EQ.0 .AND. test_name(1:1).EQ."'") THEN
+! len_test = TM_LENSTR(test_name) ! 12/14 *sh* is this needed?
+ varname = test_name(2:len_test-1)
+ CALL string_array_find_caseblind(ds_var_code_head,
+ . varname,
+ . len_test-2,
+ . string_array_result(1),
+ . max_uvar,
+ . num_indices)
+* ... case-blind search for name enclosed in _SQ_
+ ELSEIF (len_test.GT.8) THEN
+ IF (num_indices.EQ.0 .AND. test_name(1:4).EQ.p_SQ_quote) THEN
+ varname = test_name(5:len_test-4)
+ CALL string_array_find_caseblind(ds_var_code_head,
+ . varname,
+ . len_test-8,
+ . string_array_result(1),
+ . max_uvar,
+ . num_indices)
+ ENDIF
+ ENDIF
+ ENDIF
+
DO 200 j = 1, num_indices
ivar = string_array_result(j)
IF ( single_dset .AND. ds_var_setnum( ivar ) .NE. dset ) GOTO 200
category = cat_file_var
IF (dset.NE.unspecified_int4) THEN
- IF (ds_type(dset) .EQ. 'ENS') category = cat_aggregate_var
+ IF (ds_type(dset).EQ.'ENS') category = cat_agg_e_var
+ IF (ds_type(dset).EQ.'FCT') category = cat_agg_f_var
ENDIF
variable = ivar
test_name = buff
diff --git a/fer/mem/purge_mr_axis.F b/fer/mem/purge_mr_axis.F
index 69ac464..7f41141 100644
--- a/fer/mem/purge_mr_axis.F
+++ b/fer/mem/purge_mr_axis.F
@@ -51,6 +51,8 @@
* V541 6/02 *acm* call PACK_LINE_STORAGE to recover line_mem storage when irregular
* axis is cancelled.
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* v695 4/15 *acm* Fix ticket 2271: If the record axis was redefined, we need
+* to store that info in the record-axis storage
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -60,12 +62,14 @@
include 'tmap_errors.parm'
include 'xtm_grid.cmn_text'
external xgt_grid_data
+ include 'xdset_info.cmn_text'
+
* calling argument declaration:
INTEGER old_axis, new_axis, status
* internal variable declarations:
- INTEGER TM_GET_LINENUM, grid, idim, num_protected_axes
+ INTEGER TM_GET_LINENUM, grid, idim, num_protected_axes, iset
CHARACTER I6*6
* the lowest axes are protected
@@ -105,6 +109,11 @@
250 CONTINUE
line_use_cnt(new_axis) = line_use_cnt(old_axis)
+* check for the axis in the list of record axes; replace the old with the new
+ DO 300 iset = 1, maxdsets
+ IF (ds_time_axis(iset) .EQ. old_axis) ds_time_axis(iset) = new_axis
+ 300 CONTINUE
+
* delete the old axis
IF ( .NOT.line_regular(old_axis) ) THEN
CALL PACK_LINE_STORAGE(old_axis)
diff --git a/fer/mem/purge_mr_grid.F b/fer/mem/purge_mr_grid.F
index f99a03f..6c6cb7f 100644
--- a/fer/mem/purge_mr_grid.F
+++ b/fer/mem/purge_mr_grid.F
@@ -52,6 +52,7 @@
* v540 *acm* 10/01 remove VMS include statements
* v604 *acm* 7/07 increase length of ds_name
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V695+ *sh 3/15 - bug fix. Grid name was not displayed with warnings
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -72,7 +73,8 @@
INTEGER grid, status
* internal variable declarations:
- INTEGER mr, ivar, dset, glen, done_dset
+ INTEGER TM_LENSTR1,
+ . mr, ivar, dset, glen, done_dset
! INTEGER TM_LENSTR1, mr, ivar, cvar, dset, glen, done_dset
* the lowest grids are protected
@@ -87,6 +89,7 @@
IF ( dset .EQ. set_not_open ) GOTO 10
IF ( ds_grid_number(ivar) .EQ. grid
. .AND. dset .NE. done_dset ) THEN
+ glen = TM_LENSTR1(grid_name(grid))
CALL WARN('grid '//grid_name(grid)(:glen)//
. ' used by data set '//ds_name(dset))
CALL WARN
diff --git a/fer/mem/var_code.F b/fer/mem/var_code.F
index 648319a..80fc345 100644
--- a/fer/mem/var_code.F
+++ b/fer/mem/var_code.F
@@ -54,6 +54,7 @@
* 1/99 *sh8 ... and cat_string
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V694 5/15 *acm* when evaluating attributes, show the code attr
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -73,7 +74,8 @@
IF ( category .EQ. cat_file_var
. .OR. category .EQ. cat_file_rev
- . .OR. category .EQ. cat_aggregate_var ) THEN
+ . .OR. category .EQ. cat_agg_e_var
+ . .OR. category .EQ. cat_agg_f_var ) THEN
VAR_CODE = ds_var_code( variable )
@@ -117,6 +119,10 @@
VAR_CODE = 'str'
+ ELSEIF ( category .EQ. cat_attrib_val ) THEN
+
+ VAR_CODE = 'attr'
+
ELSE
VAR_CODE = 'bad*'
diff --git a/fer/plt/SOURCE_FILES b/fer/plt/SOURCE_FILES
index 9e17734..9ff8410 100644
--- a/fer/plt/SOURCE_FILES
+++ b/fer/plt/SOURCE_FILES
@@ -6,6 +6,7 @@ axis_end_syms.F\
axis_format.F\
ax_on_off.F\
box_label.F\
+cancel_pytext_group.F\
cancel_window.F\
check_graphics.F\
choose_cx_ww.F\
@@ -28,6 +29,8 @@ equal_range_t.F\
equal_thick.F\
flow_set_up.F\
get_axis_format.F\
+get_color_name.F\
+get_color_rgb.F\
get_frame_size.F\
get_view_size.F\
get_window_pixels.F\
@@ -46,6 +49,7 @@ line_style.F\
load_curvilinear.F\
merged_whoi_date.F\
parse_color_tuple.F\
+parse_pyfont_color.F\
plot_set_up.F\
polygon_set_up.F\
pos_lab.F\
@@ -56,6 +60,7 @@ ppl_dash_restore.F\
ppl_patset.F\
ppl_shaset.F\
ppl_time.F\
+put_annotation.F\
put_cmnd_key.F\
put_key.F\
put_label.F\
@@ -65,10 +70,12 @@ save_ppl_values.F\
seg_off.F\
seg_on.F\
send_pltype.F\
+set_annotation.F\
set_ax_sizes.F\
set_graticules.F\
set_plot_size.F\
set_ppl_values.F\
+set_pytext_group.F\
set_text_sizes.F\
set_viewport.F\
set_vp_symbols.F\
diff --git a/fer/plt/axis_end_syms.F b/fer/plt/axis_end_syms.F
index 4842c71..a092bf2 100644
--- a/fer/plt/axis_end_syms.F
+++ b/fer/plt/axis_end_syms.F
@@ -55,11 +55,12 @@
CHARACTER*16 val_buff
* Define symbols identifying axis limits
- WRITE ( val_buff, '(1PG15.8)' ) first
+* This is enough precision to list seconds since 1900 (at least)
+ WRITE ( val_buff, '(1PG16.9)' ) first
CALL PPLCMD ( from, line, 0,
. 'SET '//plot_ax//'AXIS_MIN '//val_buff , 1, 1 )
- WRITE ( val_buff, '(1PG15.7)' ) last
+ WRITE ( val_buff, '(1PG16.9)' ) last
CALL PPLCMD ( from, line, 0,
. 'SET '//plot_ax//'AXIS_MAX '//val_buff , 1, 1 )
diff --git a/fer/plt/axis_ends.F b/fer/plt/axis_ends.F
index c0556cc..4607dc5 100644
--- a/fer/plt/axis_ends.F
+++ b/fer/plt/axis_ends.F
@@ -54,7 +54,8 @@
* character too short. this only showed up under Linux
* *acm* 6/01 - add logical IS_LOG for log axis
* V580 *acm* 12/04 Fix bug 1129; send back correct value of delta if computed here
-* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus.
+* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus.
+* V695+ *sh* 4/15 format long longitude axes using a delta based upon 15 deg
include 'ferret.parm'
include 'plot_setup.parm'
@@ -70,12 +71,12 @@
REAL*8 first, last, delta
* internal variable declarations:
- LOGICAL BKWD_AXIS
+ LOGICAL BKWD_AXIS, GEOG_LABEL
CHARACTER val_buff*45
INTEGER axtp, status
REAL*4 x1, x2, uminr, umaxr, dint
- REAL*8 firstl, lastl, epsilon, eps2
- PARAMETER (epsilon=1.e-35)
+ REAL*8 firstl, lastl, epsilon, eps2, span
+ PARAMETER (epsilon=1.e-45)
STATUS = ferr_ok
@@ -107,6 +108,7 @@
IF (ABS(firstl - first) .GT. eps2) first = first + 1.
ENDIF
ENDIF
+ span = ABS(last-first)
* Convert to single precision and reverse order if a depth plot on Y axis
@@ -130,8 +132,20 @@
* use Denbo's PPLUS routine to calculate the tic interval, dint
IF ( delta .EQ. unspecified_val8 ) THEN
- CALL RANGE( x1, x2, 10, uminr, umaxr, dint )
- delta = dint
+ IF (dat_ax .EQ. x_dim
+ . .AND. GEOG_LABEL(x_dim,grid)
+ . .AND. span .GT. 75. ) THEN
+* ... use 15-degree delta for long longitude axes
+ IF (span .GT. 180.) THEN
+ delta = 30.
+ ELSE
+ delta = 15.
+ ENDIF
+ dint = delta
+ ELSE
+ CALL RANGE( x1, x2, 10, uminr, umaxr, dint )
+ delta = dint
+ ENDIF
ELSE
dint = delta
ENDIF
diff --git a/fer/plt/axis_format.F b/fer/plt/axis_format.F
index 690f640..b861784 100644
--- a/fer/plt/axis_format.F
+++ b/fer/plt/axis_format.F
@@ -1,6 +1,7 @@
SUBROUTINE AXIS_FORMAT( x_or_y, idim, grid, lo_val, hi_val,
. del_val, curvilinear, cx_curv,
- . its_calendar, tstyle, no_labels )
+ . its_calendar, calendar_both,
+ . tstyle, no_labels, imposed_lab )
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -80,6 +81,10 @@
* A time axis may be a T axis or F axis, so idim is
* now an arg to TSTEP_TO_SECS, TSTEP_TO_DATE
* PyFr *kms* 7/13 Use hxlab and hylab from PPL with PUT_LABEL for axis titles
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
+* V695+ *sh* 3/15 Added argument "imposed_lab" to disambiguate F and T axes
+* V695 *acm* 9/15 Do not plot the labell TIME - on vertical axes with HH:MM
+* labeling; it interferes with the time/date labels
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -92,15 +97,19 @@
include 'xplot_state.cmn'
INCLUDE 'labcom_inc.decl'
INCLUDE 'LABCOM.INC' ! hxlab, hylab
+* needed to position the imposed labels
+ include 'axis_inc.decl' ! axis lengths
+ include 'AXIS.INC' ! axis lengths
* special equivalence needed only with risc compiler: bug fix
include 'xrisc.cmn' ! for f77 bug
CHARACTER rbuff(4)*14
EQUIVALENCE ( rbuff, risc_buff )
* calling argument declarations:
- LOGICAL its_calendar, curvilinear, no_labels
+ LOGICAL its_calendar, calendar_both, curvilinear, no_labels
INTEGER idim, grid, cx_curv
CHARACTER x_or_y*1, tstyle*3
+ CHARACTER*(*) imposed_lab
REAL*8 lo_val, hi_val, del_val
* parameter definitions:
@@ -109,10 +118,10 @@
* internal variable declarations:
LOGICAL GEOG_LABEL, GEOG_VAR, use_nice, special
- INTEGER TM_LENSTR1, dlen, places, ndec, dummy
+ INTEGER TM_LENSTR1, TM_LENSTR, dlen, places, ndec, dummy
CHARACTER AX_TITLE*32, WHOI_DATE*14, VAR_TITLE*128,
. INTERNAL_WHOI_DATE*14,
- . fmt*4, buff*200
+ . fmt*4, buff*200, tsetting*2
REAL res_del, dt_min, time_unit, labelht
REAL*8 TSTEP_TO_SECS
INTEGER n_res
@@ -174,14 +183,16 @@
dt_min = time_unit / 60.
* ... TAXIS command
+ tsetting = 'ON'
+ IF (calendar_both) tsetting = 'BO'
IF ( x_or_y .EQ. 'Y' ) THEN
- WRITE ( ppl_buff, 3010 ) dt_min
+ WRITE ( ppl_buff, 3010 ) dt_min, tsetting
ELSE
- WRITE ( ppl_buff, 3012 ) dt_min
+ WRITE ( ppl_buff, 3012 ) dt_min, tsetting
ENDIF
CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
- 3010 FORMAT ('TAXIS/YAXIS ',G13.5,',ON')
- 3012 FORMAT ('TAXIS ',G13.5,',ON')
+ 3010 FORMAT ('TAXIS/YAXIS ',G13.5,',',A2)
+ 3012 FORMAT ('TAXIS ',G13.5,',',A2)
* ... TIME command (time axis limits)
rbuff(1) = WHOI_DATE(grid, idim, lo_val ) ! f77 bug
@@ -196,8 +207,14 @@
saved_dt_min = dt_min
saved_t1_date = INTERNAL_WHOI_DATE(grid, idim, 1.0D0 )
* ... TXTYPE and TXLINT commands (time axis style)
+ IF (no_labels) THEN
+ buff = ' '
+ ELSE
+ buff = imposed_lab
+ ENDIF
CALL TAXIS_STYLE( x_or_y, TSTEP_TO_SECS( grid, idim, lo_val ),
- . TSTEP_TO_SECS( grid, idim, hi_val ), tstyle )
+ . TSTEP_TO_SECS( grid, idim, hi_val ),
+ . tstyle, buff )
ELSEIF ( idim .EQ. x_dim .AND. use_nice) THEN
* longitude format for axis tic labling
@@ -214,11 +231,16 @@
* lat/long or x/y axis label
IF ( no_labels ) RETURN
- IF ( curvilinear ) THEN
+ IF (curvilinear ) THEN
buff = VAR_TITLE( cx_curv)
dlen = TM_LENSTR1(buff)
ELSE
- buff = AX_TITLE( idim, grid, dlen ) ! risc_buff as of 6/95
+ IF (its_calendar.AND. TM_LENSTR(imposed_lab) .EQ.0) THEN ! skip label of TIME
+ buff = ' '
+ dlen = 1
+ ELSE
+ buff = AX_TITLE( idim, grid, dlen ) ! risc_buff as of 6/95
+ ENDIF
ENDIF
IF ( x_or_y .EQ. 'X' ) THEN
labelht = hxlab
@@ -229,5 +251,6 @@
CALL PUT_LABEL( ppl_ylab, dummy, dummy, dummy,
. labelht, buff(:dlen), dummy, dummy )
ENDIF
+
RETURN
END
diff --git a/fer/plt/box_label.F b/fer/plt/box_label.F
index 6ef25e0..51fa9c0 100644
--- a/fer/plt/box_label.F
+++ b/fer/plt/box_label.F
@@ -56,12 +56,14 @@
* instead of creating multiple moveable labels.
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus.
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V6.95 *acm* 3/15 Changes for PyFerret fonts.
include 'tmap_dims.parm'
include 'ferret.parm'
include 'plot_setup.parm'
include 'xprog_state.cmn'
include 'xrisc.cmn'
+ include 'pyfonts.cmn'
* calling argument declarations
INTEGER lab_type, justify, xaxrel, yaxrel, k, numlines
@@ -70,7 +72,7 @@
* internal variable declarations
INTEGER lnbeg(250), lnend(250)
- INTEGER TM_LENSTR1, slen, nfont, brk_pt, nex_brk_pt,
+ INTEGER TM_LENSTR1, TM_LENSTR, slen, nfont, brk_pt, nex_brk_pt,
. las_brk_pt, nlines
REAL ymid, width, ht, frac, frac_width, las_frac, xend,
. htsave
@@ -82,6 +84,12 @@
ht = MIN( lab_ht, ysize )
slen = TM_LENSTR1( string )
+* blank string
+ IF (TM_LENSTR(string) .EQ. 0) THEN
+ slen = 1
+ GOTO 500
+ ENDIF
+
* Choose the break character. If there are commas use them. If there
* are any slashes, use that. Else use underscore or dash.
@@ -110,23 +118,27 @@
* select PLOT+ font
nfont = 0
-
- IF ( .NOT.mode_font_ascii ) THEN
- font = ' '
- ELSEIF ( lab_type .EQ. ppl_title ) THEN
- font = '@AC'
- nfont = 3
- ELSE
- font = '@AS'
- nfont = 3
- ENDIF
+ font = ' '
+
+ IF (.NOT.pyfont) THEN
+ IF ( .NOT.mode_font_ascii) THEN
+ font = ' '
+ ELSEIF ( lab_type .EQ. ppl_title ) THEN
+ font = '@AC'
+ nfont = 3
+ ELSE
+ font = '@AS'
+ nfont = 3
+ ENDIF
* Let user select the font if they want
- IF (string(1:1) .EQ. "@") THEN
- font = ' '
- nfont = 0
- ENDIF
+ IF (string(1:1) .EQ. "@") THEN
+ font = ' '
+ nfont = 0
+ ENDIF
+
+ ENDIF ! pyfont or Classic Hershey
width = 0.
rht = ht
@@ -167,7 +179,7 @@
* it's too big - we will try to write it as 2 lines
* ... break into pieces as close to halves as possible
las_frac = 999.0
- 100 IF ( .NOT.mode_font_ascii ) THEN
+ 100 IF ( .NOT.mode_font_ascii .OR. .NOT.pyfont) THEN
rht = ht
frac_width = DBLE(SYMWID(rht,brk_pt,string(:brk_pt) ))
ELSEIF ( lab_type .EQ. ppl_title ) THEN
diff --git a/fer/plt/cancel_pytext_group.F b/fer/plt/cancel_pytext_group.F
new file mode 100644
index 0000000..19c477a
--- /dev/null
+++ b/fer/plt/cancel_pytext_group.F
@@ -0,0 +1,176 @@
+ SUBROUTINE CANCEL_PYTEXT_GROUP (igrp)
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+
+* V695 *acm* 5/15 on canceling group settings, restore to the current global setting
+
+ include 'tmap_dims.parm'
+ include 'slash.parm'
+ include 'xprog_state.cmn'
+ include 'pyfonts.cmn'
+
+ INTEGER igrp
+
+ INTEGER i
+ LOGICAL iall, is_set
+
+* Restore default settings
+
+* Should the logo pyf_set be set to .TRUE.? Should it be set to the overall text font,
+* or its own text font?
+
+ IF (igrp .EQ. fnt_all) THEN
+ IF ( qual_given( slash_canc_text_all ) .GT. 0) iall = .TRUE.
+
+ IF (num_qualifiers .EQ. 0) iall = .TRUE.
+
+c* ... CANCEL TEXT/FONT
+ IF (iall .OR. qual_given( slash_canc_text_font ) .GT. 0) THEN
+ pyfnt_fontname = pyfnt_font_dflt
+
+ DO 1010 i = 1, ngp
+ pyf_fontname(i) = pyf_font_dflt(i)
+ 1010 CONTINUE
+ ENDIF
+
+* ... CANCEL TEXT/COLOR
+* Restore to black
+
+ IF (iall .OR. qual_given( slash_canc_text_color ) .GT. 0) THEN
+ pyfnt_red = 0.
+ pyfnt_grn = 0.
+ pyfnt_blu = 0.
+ DO 1020 i = 1, ngp
+ pyf_red(i) = pyfnt_red
+ pyf_grn(i) = pyfnt_grn
+ pyf_blu(i) = pyfnt_blu
+ 1020 CONTINUE
+ ENDIF
+
+* ... CANCEL TEXT/ITALIC
+
+ IF (iall .OR. qual_given( slash_canc_text_italic ) .GT. 0) THEN
+ pyfnt_italic = 0
+ DO 1030 i = 1, ngp
+ pyf_italic(i) = pyfnt_italic
+ 1030 CONTINUE
+ ENDIF
+
+* ... CANCEL TEXT/BOLD
+
+ IF (iall .OR. qual_given( slash_canc_text_bold) .GT. 0) THEN
+ pyfnt_bold = 0
+ DO 1040 i = 1, ngp
+ pyf_bold(i) = pyfnt_bold
+ 1040 CONTINUE
+ ENDIF
+
+* ... CANCEL TEXT/ISIZ
+
+ IF (iall .OR. qual_given( slash_canc_text_isiz) .GT. 0) THEN
+ pyfnt_isiz = 0
+ DO 1050 i = 1, ngp
+ pyf_isiz(i) = pyfnt_isiz
+ 1050 CONTINUE
+ ENDIF
+
+* ... Mark all groups as unset
+
+ DO 1060 i = 1, ngp
+ pyf_set(i) = .FALSE.
+ 1060 CONTINUE
+
+
+* PyFont text groupings. Restore group to the current global settings.
+* Compare with global settings. If they match the global settings,
+* unset pyfer_set
+
+ ELSE
+
+ IF (num_qualifiers .EQ. 0) iall = .TRUE.
+
+c* ... CANCEL TEXT/FONT
+ IF (qual_given( slash_canc_text_font ).GT.0 .OR. iall) THEN
+ pyf_fontname(igrp) = pyfnt_fontname
+ ENDIF
+
+* ... CANCEL TEXT/COLOR
+* Restore to black
+
+ IF (qual_given( slash_canc_text_color ).GT.0 .OR. iall) THEN
+ pyf_red(igrp) = pyfnt_red
+ pyf_grn(igrp) = pyfnt_grn
+ pyf_blu(igrp) = pyfnt_blu
+ ENDIF
+
+* ... CANCEL TEXT/ITALIC
+
+ IF (qual_given( slash_canc_text_italic ).GT.0 .OR. iall) THEN
+ pyf_italic(igrp) = pyfnt_italic
+ ENDIF
+
+* ... CANCEL TEXT/BOLD
+
+ IF (qual_given( slash_canc_text_bold).GT.0 .OR. iall) THEN
+ pyf_bold(igrp) = pyfnt_bold
+ ENDIF
+
+* ... CANCEL TEXT/ISIZ
+
+ IF (qual_given( slash_canc_text_isiz).GT.0 .OR. iall) THEN
+ pyf_isiz(igrp) = pyfnt_isiz
+ ENDIF
+
+* Do all the group settings match the current gloabl ones? If so
+* set pyf_set accordingly
+
+ IF (iall) THEN
+ pyf_set(igrp) = .FALSE.
+ ELSE
+ is_set = .FALSE.
+ IF (pyf_fontname(igrp) .NE. pyfnt_fontname) is_set = .TRUE.
+ IF (pyf_red(igrp) .NE. pyfnt_red) is_set = .TRUE.
+ IF (pyf_grn(igrp) .NE. pyfnt_grn) is_set = .TRUE.
+ IF (pyf_blu(igrp) .NE. pyfnt_blu) is_set = .TRUE.
+ IF (pyf_italic(igrp) .NE. pyfnt_italic) is_set = .TRUE.
+ IF (pyf_bold(igrp) .NE. pyfnt_bold) is_set = .TRUE.
+ IF (pyf_isiz(igrp) .NE. pyfnt_isiz) is_set = .TRUE.
+ pyf_set(igrp) = is_set
+ ENDIF
+
+ ENDIF
+
+ RETURN
+ END
+
\ No newline at end of file
diff --git a/fer/plt/choose_cx_ww.F b/fer/plt/choose_cx_ww.F
index 6ee1ceb..7d0838e 100644
--- a/fer/plt/choose_cx_ww.F
+++ b/fer/plt/choose_cx_ww.F
@@ -55,6 +55,7 @@
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* *acm* 4/12 6D Ferret: time axis may be in t or f direction. The time
* dimension is now an arg to SECS_TO_TSTEP.
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -118,7 +119,7 @@
ww_low = cx_lo_ww( idim, exp_cx )
ww_hiw = cx_hi_ww( idim, exp_cx )
IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND.
- . cx_calendar(exp_cx) ) THEN
+ . cx_calendar(idim,exp_cx) ) THEN
ww_low = SECS_TO_TSTEP( grid, idim, -ww_low )
ww_hiw = SECS_TO_TSTEP( grid, idim, -ww_hiw )
ENDIF
diff --git a/fer/plt/disp_init.F b/fer/plt/disp_init.F
index 3032620..81fc72c 100644
--- a/fer/plt/disp_init.F
+++ b/fer/plt/disp_init.F
@@ -87,7 +87,8 @@
* PyFr *kms* 7/13 Scale default lengths by pplscale;
* do not reset minor tic size (not scaled!)
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
-* V686 *acm* 12 13 set up the label symbols LABNUM_E and LABNUM_F
+* V686 *acm* 12/13 set up the label symbols LABNUM_E and LABNUM_F
+* V695+ *sh* 3/15 remove movable label rotations (left behind by FMRC annotations)
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -98,14 +99,15 @@
include 'xrevision.cmn'
include 'axis_inc.decl' ! with iaxset
include 'AXIS.INC'
+ include 'pyfonts.cmn'
* calling argument declarations:
LOGICAL no_labels
INTEGER ncx, cx_list(ncx)
* internal variable declarations:
- CHARACTER TM_FMT*12, buffer*40, buffsym*30, show_str*12
- INTEGER idim, ier, nc, slen
+ CHARACTER TM_FMT*12, LEFINT*4, buffer*40, buffsym*30, show_str*12
+ INTEGER i, idim, ier, nc, slen
REAL logoht
* open metafile for this new plot
@@ -136,6 +138,16 @@
iaxset = 0
ENDIF
+* Label numbers for the Ferret logo (if drawn) for pyFerret text settings
+
+ DO i = 1, 3
+ logolab(i) = 0
+ ENDDO
+
+* clear rotations from first 10 moveable labels
+ DO i = 1, 10
+ CALL PPLCMD ( from, line, 0, 'RLABS '//LEFINT(i,slen) , 1, 1)
+ ENDDO
* if the axis min and max symbols already exist then delete them
@@ -254,18 +266,21 @@
. ppl_centered, logoht,
. buffer(:len_program_name+len_progname_mod+11),
. lab_loc_axlen_plus, lab_loc_axlen_plus )
+ logolab(1) = nlabs_on
* ... "NOAA/PMEL TMAP"
CALL PUT_LABEL( ppl_movlab,
. 0.0, 1.0*pplscale + 1.8*logoht,
. ppl_centered, logoht,
. 'NOAA/PMEL TMAP',
. lab_loc_axlen_plus, lab_loc_axlen_plus )
+ logolab(2) = nlabs_on
* ... "8-SEP-1988 11:05"
CALL PUT_LABEL( ppl_movlab,
. 0.0, 1.0*pplscale,
. ppl_centered, logoht,
. '''date'' ''time''',
. lab_loc_axlen_plus, lab_loc_axlen_plus )
+ logolab(3) = nlabs_on
ENDIF ! mode_logo
RETURN
diff --git a/fer/plt/disp_labels.F b/fer/plt/disp_labels.F
index fb2d6f0..07f3724 100644
--- a/fer/plt/disp_labels.F
+++ b/fer/plt/disp_labels.F
@@ -73,6 +73,7 @@
* ul_xorigin, and ul_yorigin to plot_setup.parm,
* since they are used as parameters, and prefixed with
* dflt_ those that need to be scaled by pplscale or textscale.
+* V6.95 *acm* 3/15 Changes for PyFerret fonts.
include 'tmap_dims.parm'
include 'xdset_info.cmn_text'
@@ -192,7 +193,8 @@
* ... title of data set
CALL GET_DSET_TITLE( dset_num, line_buff, lablen )
- CALL BOX_LABEL( ppl_movlab-ppl_datitl, line_buff(:lablen),
+ IF (TM_LENSTR(line_buff) .GT. 0)
+ . CALL BOX_LABEL( ppl_movlab-ppl_datitl, line_buff(:lablen),
. 0.5, 0.3*pplscale,
. 0.8*xlen, 1.5*dflt_letsize_label*textscale,
. dflt_letsize_label*textscale, ppl_centered,
diff --git a/fer/plt/disp_prep.F b/fer/plt/disp_prep.F
index b54de28..d1b5f52 100644
--- a/fer/plt/disp_prep.F
+++ b/fer/plt/disp_prep.F
@@ -68,6 +68,10 @@
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus.
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* V685+ 12/13 - *acm* bounds checking; dont refer to parts of the string outside its bounds.
+* V694 5/15 - *acm* Ticket 2285: need to initialize iautoc to = 1 so overlay with /LEV=20V works.
+* V695 *acm* 9/15 ticket 2311: variance-based levels on constant variables
+* V695 *acm* 9/15 (not fully implemented) INT option for levels
+
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -90,8 +94,8 @@
* internal variable declarations:
LOGICAL TM_DIGIT, lev_given, len_given,
. is_delta, is_std, is_mean, is_min, is_max, is_hist,
- . is_centered, is_openlev, is_cv, get_more,
- . has_std , has_mean, has_min, has_max
+ . is_centered, is_openlev, is_int, is_cv, get_more,
+ . has_std , has_mean, has_min, has_max, has_int
INTEGER TM_LENSTR1,TM_LENSTR, lev_loc, len_loc, str_1, str_len,
. ii, ilen, ier, ist, nc, set_default_levs
REAL val
@@ -152,6 +156,9 @@
contour_fewer = 1
need_std = .FALSE.
+
+ intlev = 0
+
IF ( lev_given ) THEN
contour_fewer = 0
CALL EQUAL_STRING(
@@ -192,10 +199,13 @@
is_mean = .FALSE.
is_min = .FALSE.
is_max = .FALSE.
+ is_int = .FALSE.
is_hist = .FALSE.
is_delta = .FALSE.
is_cv = .FALSE.
+ iautoc = 1
+
val = bad_val4
is_centered = str_buff(str_len:str_len) .EQ. 'C'
@@ -237,6 +247,10 @@
has_max = str_buff(str_len-2:str_len) .EQ. 'MAX'
ENDIF
+ has_int = .FALSE.
+ IF (str_len .GE. 3) THEN
+ has_int = str_buff(str_len-2:str_len) .EQ. 'INT'
+ ENDIF
IF ( str_len .GT. 0 ) THEN
set_delta = str_buff(str_len:str_len) .EQ. 'D'
@@ -284,6 +298,13 @@
qual_end(lev_loc) = qual_end(lev_loc) - 3
ENDIF
+ IF (has_int) THEN
+ is_int = .TRUE.
+ intlev = 1
+ str_len = str_len - 3
+ qual_end(lev_loc) = qual_end(lev_loc) - 3
+ ENDIF
+
IF (str_buff(str_len:str_len) .EQ. 'H') THEN ! histogram
is_hist = .TRUE.
str_len = str_len - 1
@@ -343,6 +364,9 @@
lev_min = val
ELSEIF ( is_max) THEN
lev_max = val
+ ELSEIF ( is_int) THEN
+ val = 0
+ intlev = 1
ELSEIF ( is_hist) THEN
lev_hist = val
need_histo = .TRUE.
@@ -353,8 +377,8 @@
ELSEIF ( is_cv) THEN
IF (val .NE. bad_val4) THEN
nlev = val
+ iautoc = 1
IF (val.LE.0. .OR. val.GT.250.) GOTO 5150
- IF (.NOT. openlev) iautoc = 1
ENDIF
ELSE
@@ -389,11 +413,18 @@
set_mean = .TRUE.
ENDIF
+ IF (is_int) THEN
+ openlev = .FALSE.
+ need_histo = .FALSE.
+ IF (set_min) lev_min = FLOOR(lev_min)
+ IF (set_max) lev_max = CEILING(lev_max)
+ ENDIF
+
* The processing always gets the data max/min.
* Flag to indicate whether we need to get mean/std from the data.
need_std = .FALSE.
- IF (OPENLEV .AND.
+ IF (openlev .AND.
. ( LEV_STD.EQ.rbad_val4 .OR. LEV_MEAN.EQ.rbad_val4) )
. need_std = .TRUE.
diff --git a/fer/plt/disp_reset.F b/fer/plt/disp_reset.F
index b9f9ca9..d5a5104 100644
--- a/fer/plt/disp_reset.F
+++ b/fer/plt/disp_reset.F
@@ -52,6 +52,8 @@
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus.
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* PyFr *kms* 7/13 reset to scaled lengths and sizes using SET_PPL_VALUES
+* v696 *acm* 6/15 PLOT/VS/GAPLOC to define seperate line segments on
+* PLOT/VS plots (LAS ticket 1597 and others)
IMPLICIT NONE
@@ -110,6 +112,7 @@ c CALL PPLCMD ( from, line, 0, 'TXNMTC 0', 1, 1 )
CALL PPLCMD ( from, line, 0, 'AXLINT 2,2', 1, 1 )
CALL PPLCMD ( from, line, 0, 'CONPRE ', 1, 1 )
CALL PPLCMD ( from, line, 0, 'CONPST ', 1, 1 )
+ CALL PPLCMD ( from, line, 0, 'GAPLOC 0', 1, 1 )
* remove viewports and clear window, restore axis sizes, update window
CALL SET_VIEWPORT( mvp_dflt )
diff --git a/fer/plt/disp_set_up.F b/fer/plt/disp_set_up.F
index 69020c4..516c27e 100644
--- a/fer/plt/disp_set_up.F
+++ b/fer/plt/disp_set_up.F
@@ -157,6 +157,9 @@
* return an error message.
* V686 *acm* 12/13 Symbokls AX_HORIZ and AX_VERT may be x,y,z,t,e,f
* V691 *acm* 5/14 Clean up temp memory used for computing histogram levels
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
+* V695+ *sh* 3/15 if an FMRC dataset disambiguate T and F axes with labels
+* V695 *acm* 5/15 Ticket 2279: PyFerret don't redraw labels on an overlay
C replace includes with those from plot_set_up,
C plus those starting w/ xbox_bounds:
@@ -189,6 +192,7 @@ C plus those starting w/ xbox_bounds:
include 'command.parm'
include 'xcommand.cmn'
include 'xpplus.cmn'
+ include 'pyfonts.cmn'
*kob 1/97
@@ -209,11 +213,12 @@ C plus those starting w/ xbox_bounds:
. xstyle*3, ystyle*3, cmnd_name*8, year*4, buff*8,
. letter*1, buff1*16, buff2*16, buff30*30,
. TM_GET_CALENDAR_NAME*32, cal_name_1*32,
- . cal_name_2*32, err_string*128
+ . cal_name_2*32, err_string*128,
+ . xtra_xlab*24, xtra_ylab*24
CHARACTER*1 axdir(6)
- LOGICAL NO_GRID_RANGE, GEOG_LABEL, TM_FPEQ,
- . user_title, time_axis,
+ LOGICAL NO_GRID_RANGE, GEOG_LABEL, TM_FPEQ, ITS_FMRC,
+ . user_title, time_axis, time_axis_dim1, timeax_both,
. regrid_1, regrid_2, no_y_rng, edges_ok,
. REGULARLY_SPACED,
. irregular
@@ -229,13 +234,13 @@ C plus those starting w/ xbox_bounds:
. phlim, pvlim, slen2, cal_id, tax,
. x_axtyp, y_axtyp, iscl, siz, nsiz,
. TM_GET_CALENDAR_ID, mode_num, axis1, axis2,
- . hblk1, mvh_temp
+ . hblk1, mvh_temp, i
REAL s, w1_lo, w1_hi, w2_lo, w2_hi, valy1,
. d1_regrid, d2_regrid, bad_x, bad_y, rlo, rhi,
. xkeypos, ykeypos, xkeysize, ykeysize, lab_ht,
. first, last, labelht
REAL*8 xaxlo, xaxhi, yaxlo, yaxhi, delta
- REAL*4 rw1lo, rw2lo
+ REAL*4 rw1lo, rw2lo, rbad
DATA axdir / 'X', 'Y', 'Z', 'T', 'E', 'F' /
@@ -280,6 +285,7 @@ C plus those starting w/ xbox_bounds:
size2 = CX_DIM_LEN( dim2, ctx )
size = size1 * size2
+
* determine PLOT+ memory required
plot_mem_used = CGRID_SIZE( cx_list(1) ) + size1 + size2
@@ -310,7 +316,7 @@ C set up memory for the flag grid
* save axis pointers so PLOT+ can get box boundaries
bb_grid = grid
-* On a plot/set, the intervening commads may change the default grid.
+* On a plot/set, the intervening commands may change the default grid.
* Increment the grid. It will be decremented at the end of xeq_pplus
bb_grid_inccount = 0
@@ -429,6 +435,25 @@ C set up memory for the flag grid
size1 = hi1 - lo1 + 1
size2 = hi2 - lo2 + 1
+* define special axis labels to disambiguate T and F axes
+ xtra_xlab = ' '
+ xtra_ylab = ' '
+ IF ( ITS_FMRC(grid) ) THEN
+* ... add these labels only if the plot has two calendar axes
+ IF ( GEOG_LABEL(t_dim,grid)
+ . .AND. GEOG_LABEL(f_dim,grid)
+ . .AND. (dim1.EQ.t_dim .OR. dim1.EQ.f_dim)
+ . .AND. (dim2.EQ.t_dim .OR. dim2.EQ.f_dim) ) THEN
+ IF (dim1 .EQ. t_dim) THEN
+ xtra_xlab = 'Verification Time ==>'
+ xtra_ylab = 'Initialization Time ==>'
+ ELSE
+ xtra_xlab = 'Initialization Time ==>'
+ xtra_ylab = 'Verification Time ==>'
+ ENDIF
+ ENDIF
+ ENDIF
+
* Define symbols AX_HORIZ and AX_VERT with the x,y,z,t direction
* of the axes as they will appear on the plot.
@@ -579,9 +604,15 @@ C set up memory for the flag grid
GOTO 5700
ENDIF
+ timeax_both = .FALSE.
CALL AXIS_FORMAT( 'X', dim1, grid, xaxlo, xaxhi, delta,
- . curvilinear, cx_xpos,
- . time_axis,xstyle,no_labels)
+ . curvilinear, cx_xpos,
+ . time_axis,timeax_both,xstyle,
+ . no_labels, xtra_xlab)
+
+ time_axis_dim1 = time_axis
+
+* second axis
time_axis = GEOG_LABEL( dim2, grid ) .AND.
. (dim2.EQ.t_dim .OR. dim2.EQ.f_dim)
@@ -642,9 +673,11 @@ C ACM added 8/2001 save cal id if vertical time axis
last = xaxhi
GOTO 5700
ENDIF
+ timeax_both = (time_axis .AND. time_axis_dim1)
CALL AXIS_FORMAT( 'Y', dim2, grid, yaxlo, yaxhi, delta,
- . curvilinear, cx_ypos,
- . time_axis,ystyle,no_labels)
+ . curvilinear, cx_ypos,
+ . time_axis,timeax_both,ystyle,
+ . no_labels, xtra_ylab)
* When not an overlay, set the axis type to log or reverse log
IF (is_logx .OR. is_logy) THEN
@@ -696,14 +729,13 @@ C ACM added 8/2001 save cal id if vertical time axis
* in common. If the user set a std to use, store that.
nsiz = size1* size2
+ rbad = bad_val4
CALL compute_mnstd (memory(1, xblk1), bad_x, need_std,
- . nsiz, status)
+ . nsiz, rbad, status)
IF (status .NE. ferr_ok) THEN
* ... set up for automatic levels
CALL PPLCMD ( from, line, 0, 'LEV,()', 1, 1 )
CALL USE_LINEAR_LEVELS
- CALL WARN(
- . 'Data too large to compute Std Dev. Using linear levels instead.')
ENDIF
* If histogram-based levels are requested, compute the
@@ -740,7 +772,10 @@ C ACM added 8/2001 save cal id if vertical time axis
CALL DELETE_VARIABLE( mvy_temp )
ENDIF
- IF ( no_labels ) RETURN
+ IF ( no_labels ) THEN
+ CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )
+ RETURN
+ ENDIF
! ====================== LABELS ========================
@@ -756,6 +791,14 @@ C ACM added 8/2001 save cal id if vertical time axis
IF ( overlay ) THEN
* ... cook up a key label for this variable only (or pair for VECTOR)
* If no valid data (no_x_rng) add this info to the label.
+
+* do not re-draw the main label, logo, other labels from the underlay plot
+ nlabs_on = 0
+ CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )
+ DO i = 1, 3
+ logolab(i) = 0
+ ENDDO
+
use_keys = .TRUE.
IF ( .NOT.user_title ) THEN
CALL OV_GRP_CX_DOC( cx_list, nmv, cx_xtra_doc )
diff --git a/fer/plt/equal_color.F b/fer/plt/equal_color.F
index d16265a..5e4334b 100644
--- a/fer/plt/equal_color.F
+++ b/fer/plt/equal_color.F
@@ -47,7 +47,8 @@
* V520 6/00 *sh* - introduced "white" as color 19 (only thin available)
*
* 1/03 *kob* g77 port - requires use of risc_buff for concats
-*
+* V693+ *sh* 2/15 - added support for _DQ_ quotations
+
* PyFr *kms* 6/13 - add support for (R,G,B) and (R,G,B,A)
*
* PyFr *kms* 7/13 - add support for R,G,B and R,G,B,A (no parentheses);
@@ -110,8 +111,19 @@
STOP '=_str' ! cannot occur
* remove quotation marks
- 110 IF ( string(strt:strt) .EQ. '"' ) strt = strt + 1
- IF ( string(slen:slen) .EQ. '"' ) slen = slen - 1
+ 110 IF ( string(strt:strt) .EQ. '"'
+ . .AND. string(slen:slen) .EQ. '"' ) THEN
+ strt = strt + 1
+ slen = slen - 1
+ ELSEIF (string(strt:strt) .EQ. '_'
+ . .AND. string(slen:slen) .EQ. '_'
+ . .AND. slen-strt.GE.8 ) THEN
+ IF (string(strt:strt+3) .EQ. '_DQ_'
+ . .AND. string(slen-3:slen) .EQ. '_DQ_' ) THEN
+ strt = strt + 4
+ slen = slen - 4
+ ENDIF
+ ENDIF
IF ( strt .GT. slen ) THEN
str = ' '
@@ -143,11 +155,11 @@
* Pen is thin with the color ID same as pen ID
CONTINUE
ELSE IF ( icolor .LE. 2 * ncolors ) THEN
-* Pen is medium thickness with color ID 1 - ncolors
+* Pen is medium thickness with color ID - ncolors
icolor = icolor - ncolors
dfltthick = 2.0
ELSE IF ( icolor .LE. 3 * ncolors ) THEN
-* Pen is thick with color ID 1 - ncolors
+* Pen is thick with color ID - 2 * ncolors
icolor = icolor - 2 * ncolors
dfltthick = 3.0
ENDIF
diff --git a/fer/plt/equal_range.F b/fer/plt/equal_range.F
index 83c3e5b..9b1c605 100644
--- a/fer/plt/equal_range.F
+++ b/fer/plt/equal_range.F
@@ -52,6 +52,8 @@
* V530 *acm* - send cal_id to TRANSLATE_LIMIT
* *acm* 3/12 cleanup ifdefs and unnecessary include files
* *acm* 4/12 6D Ferret: time axis may be in t or f direction.
+* V693+ *sh* 2/15 - added support for _DQ_ quotations
+* mixing double quote marks and _DQ_ may lead to a bad place
* calling argument declarations
LOGICAL formatted, range_rqd
@@ -60,7 +62,7 @@
CHARACTER*(*) string
* internal variable declarations
- LOGICAL has_delta, ldummy, not_by_ss, in_quote
+ LOGICAL has_delta, ldummy, not_by_ss, in_quote, in_DQ
PARAMETER (not_by_ss = .FALSE.)
INTEGER equal_pos, colon1, colon2, end2, slen, i
REAL*8 tmp
@@ -91,30 +93,45 @@
* lo:hi:delta parsing and syntax checking
colon1 = 0
in_quote = .FALSE.
- DO 100 i = equal_pos+1, SLEN
+ in_DQ = .FALSE.
+ i = equal_pos
+ DO WHILE (i .LT. slen)
+ i = i + 1
IF (string(i:i) .EQ. '"') THEN
in_quote = .NOT.in_quote
- ELSEIF (in_quote) THEN
+ ELSEIF (string(i:i) .EQ. '_' .AND. i+3 .LE. slen ) THEN
+ IF (string(i:i+3) .EQ. "_DQ_" ) THEN
+ in_DQ = .NOT.in_DQ
+ i = i + 3
+ ENDIF
+ ELSEIF (in_quote .OR. in_DQ) THEN
CONTINUE ! skip text inside of quotation
ELSEIF (string(i:i) .EQ. ':') THEN
colon1 = i
GOTO 110
ENDIF
- 100 CONTINUE
- IF ( in_quote ) GOTO 5000
+ ENDDO
+ IF ( in_quote .OR. in_DQ) GOTO 5000
IF (colon1 .EQ. 0 ) GOTO 5000
110 colon2 = colon1
- DO 200 i = colon1+1, slen
+ i = colon1
+ DO WHILE (i .LT. slen)
+ i = i + 1
IF (string(i:i) .EQ. '"') THEN
in_quote = .NOT.in_quote
- ELSEIF (in_quote) THEN
+ ELSEIF (string(i:i) .EQ. '_' .AND. i+3 .LE. slen ) THEN
+ IF (string(i:i+3) .EQ. "_DQ_" ) THEN
+ in_DQ = .NOT.in_DQ
+ i = i + 3
+ ENDIF
+ ELSEIF (in_quote .OR. in_DQ) THEN
CONTINUE ! skip text inside of quotation
ELSEIF (string(i:i) .EQ. ':') THEN
colon2 = i
GOTO 210
ENDIF
- 200 CONTINUE
+ ENDDO
IF ( in_quote ) GOTO 5000
210 has_delta = colon2 .GT. colon1
IF ( has_delta ) THEN
diff --git a/fmt/src/tm_ww_axlims.F b/fer/plt/get_color_name.F
similarity index 70%
copy from fmt/src/tm_ww_axlims.F
copy to fer/plt/get_color_name.F
index f2b5a7f..6f37848 100644
--- a/fmt/src/tm_ww_axlims.F
+++ b/fer/plt/get_color_name.F
@@ -1,4 +1,4 @@
- SUBROUTINE TM_WW_AXLIMS (axis, lo, hi)
+ SUBROUTINE GET_COLOR_NAME (rd,gr,bl, cname, len)
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -32,36 +32,25 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
+* Ansley Manke 4/2015
*
-* Return the lowest and highest points along the span of an axis
-* For a regular axis this will be 1/2 delta below/above the 1st/Nth coordinates
-* Modulo is ignored in this calculation
+* return the name of color of the default pen # that corresponds
+* to the given red, green, blue, only if they match the color setting.
-* V541 *sh* 2/02
+ INTEGER TM_LENSTR, len
+ CHARACTER*(*) cname
+ REAL rd, gr, bl
- include 'tmap_dims.parm'
-#include "gt_lib.parm"
- include 'xtm_grid.cmn_text'
+ cname = ' '
+ IF (rd.EQ. 0. .AND. gr.EQ. 0. AND. bl.EQ. 0.) cname = 'black'
+ IF (rd.EQ. 100. .AND. gr.EQ. 0. AND. bl.EQ. 0.) cname = 'red'
+ IF (rd.EQ. 0. .AND. gr.EQ. 100. AND. bl.EQ. 0.) cname = 'green'
+ IF (rd.EQ. 0. .AND. gr.EQ. 0. AND. bl.EQ. 100.) cname = 'blue'
+ IF (rd.EQ. 0. .AND. gr.EQ. 100. AND. bl.EQ. 100.) cname = 'lightblue'
+ IF (rd.EQ. 100. .AND. gr.EQ. 100. AND. bl.EQ. 0.) cname = 'purple'
+ IF (rd.EQ. 100. .AND. gr.EQ. 100. AND. bl.EQ. 100.) cname = 'white'
-* calling argument declarations
- INTEGER axis
- REAL*8 lo, hi
+ len = TM_LENSTR(cname)
-* internal variable declarations
- INTEGER isub1, llen
-
- IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
- lo = unspecified_val8
- hi = unspecified_val8
- ELSEIF ( line_regular(axis) ) THEN
- lo = line_start(axis) - 0.5D0*line_delta(axis)
- hi = lo + line_dim(axis)*line_delta(axis)
- ELSE
- isub1 = line_subsc1(axis)
- llen = line_dim(axis)
- hi = line_mem(isub1 + 2*llen)
- lo = line_mem(isub1 + llen)
- ENDIF
-
- RETURN
END
+
diff --git a/fmt/src/tm_ww_ax_1_n.F b/fer/plt/get_color_rgb.F
similarity index 72%
copy from fmt/src/tm_ww_ax_1_n.F
copy to fer/plt/get_color_rgb.F
index 129235e..21176ae 100644
--- a/fmt/src/tm_ww_ax_1_n.F
+++ b/fer/plt/get_color_rgb.F
@@ -1,4 +1,4 @@
- SUBROUTINE TM_WW_AX_1_N (axis, lo, hi)
+ SUBROUTINE GET_COLOR_RGB (icolor, v1,v2,v3, status)
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -32,35 +32,49 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
+* Ansley Manke 4/2015
*
-* Return the coordinates of the first and Nth coordinate points of an axis
-* Modulo is ignored in this calculation
+* return the name of color corresponding to the default pen # icolor
-* V541 *sh* 2/02
+* V6.95 *acm* 3/15 Changes for PyFerret fonts.
- include 'tmap_dims.parm'
-#include "gt_lib.parm"
- include 'xtm_grid.cmn_text'
-* calling argument declarations
- INTEGER axis
- REAL*8 lo, hi
+ INTEGER icolor, status
+ REAL v1, v2, v3
-* internal variable declarations
- INTEGER isub1, llen
+ include 'errmsg.parm'
- IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
- lo = unspecified_val8
- hi = unspecified_val8
- ELSEIF ( line_regular(axis) ) THEN
- lo = line_start(axis)
- hi = line_start(axis) + (line_dim(axis)-1)*line_delta(axis)
- ELSE
- isub1 = line_subsc1(axis)
- llen = line_dim(axis)
- lo = line_mem(isub1)
- hi = line_mem(isub1 + llen - 1)
+! Default to black
+ v1 = 0.
+ v2 = 0.
+ v3 = 0.
+
+ IF (icolor .LT. 1 .OR. icolor.GT.7) GOTO 5100
+
+ IF (icolor .EQ. 2) v1 = 100. ! red
+
+ IF (icolor .EQ. 3) v2 = 100. ! green
+
+ IF (icolor .EQ. 4) v3 = 100. ! blue
+
+ IF (icolor .EQ. 5) THEN ! cyan
+ v2 = 100.
+ v3 = 100.
ENDIF
- RETURN
+ IF (icolor .EQ. 6) THEN ! purple
+ v1 = 100.
+ v3 = 100.
+ ENDIF
+
+ IF (icolor .EQ. 7) THEN ! white
+ v1 = 100.
+ v2 = 100.
+ v3 = 100.
+ ENDIF
+
+ 5000 RETURN
+ 5100 status = ferr_invalid_command
+ GOTO 5000
END
+
diff --git a/fer/plt/itsa_modulo_curvi_axis.F b/fer/plt/itsa_modulo_curvi_axis.F
index 87e1912..0223b89 100644
--- a/fer/plt/itsa_modulo_curvi_axis.F
+++ b/fer/plt/itsa_modulo_curvi_axis.F
@@ -45,7 +45,8 @@
* V420: 04/97
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* V687 *acm* 3/14 Ticket 2151: The coordinate variables may be in other dimensions
-* than XY, e.g. XZ or YZ for a sigma-coordinate vertical axis.
+* than XY, e.g. XZ or YZ for a layerz-coordinate vertical axis.
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
include 'tmap_dims.parm'
include 'ferret.parm'
diff --git a/fer/plt/key_loc.F b/fer/plt/key_loc.F
index 4233393..c488b96 100644
--- a/fer/plt/key_loc.F
+++ b/fer/plt/key_loc.F
@@ -53,6 +53,7 @@
* ul_xorigin, and ul_yorigin to plot_setup.parm,
* since they are used as parameters, and prefixed with
* dflt_ those that need to be scaled by pplscale or textscale.
+* V695 *acm* 5/15 PyFerret, label for overlay was too close to the plot edge.
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -112,7 +113,7 @@ c ypos = ovkey_yorigin - novkeys_on*ovkey_yspace
ELSE
* ... yes - it will fit at the lower left
xsize = dflt_ovkey_xspace*pplscale
- xpos = dflt_ovkey_xorigin*pplscale
+ xpos = 0.95*dflt_ovkey_xorigin*pplscale
lab_ht = dflt_ovkey_labht*textscale
ENDIF
novkeys_on = novkeys_on + numlines
diff --git a/fer/plt/merged_whoi_date.F b/fer/plt/merged_whoi_date.F
index cbcd544..356fb23 100644
--- a/fer/plt/merged_whoi_date.F
+++ b/fer/plt/merged_whoi_date.F
@@ -1,4 +1,4 @@
- CHARACTER*14 FUNCTION MERGED_WHOI_DATE( cx_list, idim, ncx )
+ CHARACTER*14 FUNCTION MERGED_WHOI_DATE( cx_list, idim, ncx, dayflag )
*
*
@@ -45,7 +45,9 @@
* V530: 1/01 *acm* cal_id for alternative calendar axis types
* *acm* 3/12 cleanup ifdefs and unnecessary include files
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
-* A time axis may be a T axis or F axis.
+* A time axis may be a T axis or F axis
+* V695 *acm* 9/15 Changes for HH:MM labeling when plotting short time range.
+* For these axes reset the start time by only a day.
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
@@ -55,6 +57,7 @@
* calling argument declarations
INTEGER ncx, cx_list(ncx), idim
+ LOGICAL dayflag
* internal variable declarations
INTEGER yr100, yr, mon, day, hr, mn, sec,
@@ -66,6 +69,8 @@
* internal parameter declarations
REAL*8 yrofsecs
PARAMETER ( yrofsecs = 60.*60.*24.*365. )
+ REAL*8 dayofsecs
+ PARAMETER ( dayofsecs = 60.*60.*24. )
* determne the earliest date to be plotted
DO 100 i = 1, ncx
@@ -83,7 +88,14 @@
cal_id = TM_GET_CALENDAR_ID(line_cal_name(axis) )
* arbitrarily subtract a year -- needed cuz PLOT* rounds down the "tmin" value
- bcsecs = MAX( 0.0D0, bcsecs - yrofsecs )
+* OR, subtract a day when plotting short time ranges. This gives us
+* more precision to work with in time data (origin, scaling on the page).
+
+ IF (dayflag) THEN
+ bcsecs = MAX( 0.0D0, bcsecs - dayofsecs )
+ ELSE
+ bcsecs = MAX( 0.0D0, bcsecs - yrofsecs )
+ ENDIF
date = TM_SECS_TO_DATE(bcsecs, cal_id)
100 CONTINUE
diff --git a/fer/plt/parse_pyfont_color.F b/fer/plt/parse_pyfont_color.F
new file mode 100644
index 0000000..dfcd8c3
--- /dev/null
+++ b/fer/plt/parse_pyfont_color.F
@@ -0,0 +1,118 @@
+ SUBROUTINE PARSE_PYFONT_COLOR (buff, red, grn, blu, status)
+
+
+ include 'tmap_dims.parm'
+ include 'ferret.parm'
+ include 'errmsg.parm'
+ include 'pyfonts.cmn'
+
+* Argument declarations
+ CHARACTER*(*) buff
+ REAL*4 red, grn, blu
+ INTEGER status
+
+* Internal declarations
+
+ LOGICAL TM_DIGIT, MATCH4
+ INTEGER TM_LENSTR1, TM_LENSTR, slen, s1, s2, icolor, nparm,
+ . num_it, it_start(3), it_end(3), ncolor_string,
+ . len_mchars, llen
+ REAL v1, v2, v3
+ CHARACTER*20 errstrng
+
+ PARAMETER (ncolor_string = 7)
+ CHARACTER*12 colornames(ncolor_string)
+
+* internal data declarations
+ DATA colornames/'BLACK','RED','GREEN',
+ . 'BLUE','LIGHTBLUE','PURPLE','WHITE'/
+
+ status = ferr_ok
+ v1 = 0.
+ v2 = 0.
+ v3 = 0.
+
+* Check for optional parentheses.
+
+ slen = TM_LENSTR1(buff)
+ s1 = 1
+ s2 = slen
+ IF (buff(1:1) .EQ. '(' )THEN
+ s1 = 2
+ s2 = slen-1
+ IF ( buff(slen:slen) .NE. ')' ) GOTO 5420
+ ENDIF
+
+ icolor = -1
+ IF ( TM_DIGIT(buff(s1:s1) ) ) THEN
+
+* Read % values, convert to pen number or fraction.
+ nparm = 3
+ CALL parse_comma_list ( buff, s1, s2, nparm, num_it,
+ . it_start, it_end, status)
+ IF (status .EQ. ferr_ok .AND. it_start(1) .GT. it_end(1)) THEN
+ nparm = 3 ! do nothing
+ ELSE IF (status .NE. ferr_ok .OR.
+ . num_it .LT. nparm) THEN
+
+* Single color number? convert to pen # (needs to go get this from pplus iline bundle)
+ IF (num_it .EQ. 1) THEN ! single color-number?
+ READ (buff(it_start(1):it_end(1)), *) v1
+ icolor = v1
+ ELSE
+ GOTO 5420
+ ENDIF
+ ELSE
+
+* 3 values, % rgb
+ READ (buff(it_start(1):it_end(1)), *) v1
+ IF (v1 .LT. 0. .OR. v1 .GT. 100) GOTO 5430
+ red = v1/100.
+ READ (buff(it_start(2):it_end(2)), *) v2
+ IF (v2 .LT. 0. .OR. v2 .GT. 100) GOTO 5430
+ grn = v2/100.
+ READ (buff(it_start(3):it_end(3)), *) v3
+ IF (v3 .LT. 0. .OR. v3 .GT. 100) GOTO 5430
+ blu = v3/100.
+ ENDIF
+
+ ELSE ! not a digit. Is it a color name?
+
+* name, compare with set list of colors
+ llen = TM_LENSTR(buff(s1:s2))
+ DO 1810 icolor = 1, ncolor_string
+ len_mchars = TM_LENSTR(colornames(icolor)(:4))
+ IF ( MATCH4(buff(s1:s2), llen,
+ . colornames(icolor),len_mchars ) ) GOTO 1820
+ 1810 CONTINUE
+ GOTO 5420 ! unknown color
+ 1820 CONTINUE
+ ENDIF
+
+* A color number. Get the current definition of color number icolor
+ IF (icolor .GT. 0) THEN
+ CALL GET_COLOR_RGB (icolor, v1,v2,v3, status)
+ IF (status .NE. ferr_ok) GOTO 5420
+ red = v1/100.
+ grn = v2/100.
+ blu = v3/100.
+ ENDIF
+
+ 5000 RETURN
+
+5420 errstrng = 'SET TEXT'
+ slen = TM_LENSTR1(errstrng)
+ llen = TM_LENSTR1(buff)
+ CALL ERRMSG( ferr_syntax, status,
+ . buff(:llen)//pCR//
+ . errstrng(:slen)//'/COLOR=(R,G,B) takes 3 arguments, '//
+ . 'or valid color name or number', *5000 )
+
+5430 errstrng = 'SET TEXT'
+ slen = TM_LENSTR1(errstrng)
+ llen = TM_LENSTR1(buff)
+ CALL ERRMSG( ferr_out_of_range, status,
+ . buff(:llen)//pCR//
+ . errstrng(:slen)//'/COLOR=(R,G,B) arguments must be between 0 and 100',
+ . *5000 )
+ END
diff --git a/fer/plt/plot_set_up.F b/fer/plt/plot_set_up.F
index 9220f5b..eaee8c9 100644
--- a/fer/plt/plot_set_up.F
+++ b/fer/plt/plot_set_up.F
@@ -2,7 +2,7 @@
. overlay, transpz, versus, no_labels,
. symbol, sym_size, color, color1, use_line,
. step_inc, do_dash, dashstyle,
- . is_logx, is_logy, nokey,
+ . is_logx, is_logy, nokey, addgaps,
. all_1_dep, only_val, mv_list, cx_list,
. nmv, indep_dat, dep_dat, status )
@@ -154,6 +154,16 @@
* V691 *acm* 7/14 Fix ticket 2187: axis labels for PLOT/VS plots.
* V693 *acm* 10/14 Fix 2122: Check for a valid axis if they've asked for a
* log axis before proceeding with vlimits or hlimits
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
+* V695+ *sh* 3/15 if an FMRC dataset disambiguate T and F axes with labels
+* V695 *acm* 5/15 Ticket 2279: PyFerret don't redraw labels on an overlay
+* V694 *acm* 5/15 Fix ticket 2282: setting up axis for ribbon plots
+* v696 *acm* 6/15 PLOT/VS/GAPLOC to define seperate line segments on
+* PLOT/VS plots (LAS ticket 1597 and others)
+* V695 *acm* 9/15 send REAL*4 rbad to compare with lev_max, lev_min inside compute_mnstd
+* V695 *acm* 9/15 Changes for HH:MM labeling when plotting short time range.
+* For these axes reset the start time by only a day.
+* V695 *acm* 9/15 Tweak to above - dont reset tref for overlay plots.
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
@@ -173,10 +183,11 @@
include 'PPLDAT.INC'
include 'switch_inc.decl'
include 'SWITCH.INC'
+ include 'pyfonts.cmn'
* calling argument declarations:
LOGICAL overlay, transpz, versus, no_labels, use_line,
- . is_logx, is_logy, nokey, all_1_dep
+ . is_logx, is_logy, nokey, all_1_dep, addgaps
INTEGER symbol, color, color1, step_inc, do_dash,
. nmv, mv_list( nmv ), cx_list( nmv ), status
REAL memory( mem_blk_size, max_mem_blks ), sym_size,
@@ -185,16 +196,16 @@
* V500 *kob* 3/99- up VAR_CODE and VAR_UNITS to 64 chars
* internal variable declarations:
- LOGICAL NO_LINE_RANGE, GEOG_LABEL, TM_HAS_STRING,
+ LOGICAL NO_LINE_RANGE, GEOG_LABEL, TM_HAS_STRING, ITS_FMRC,
. flip, time_axis,
. all_1_ind, formatted,
. indep_is_log, dep_is_log, use_nice,
- . this_no_range(50), set_axis
+ . this_no_range(50), set_axis, timeax_both
CHARACTER*2040 FULL_VAR_TITLE, KEY_STRING, plot_title
CHARACTER INTERNAL_WHOI_DATE*14, VAR_UNITS*64,
. SECS_TO_DATE*20, LEFINT*8, MERGED_WHOI_DATE*14,
. LEFT_REAL*16, TM_GET_CALENDAR_NAME*32,
- . indep_ax*1, dep_ax*1, tstyle*3,
+ . indep_ax*1, dep_ax*1, tstyle*3, xtra_lab*24,
. buff1*16, buff2*16, buff3*8, t1_date*14, tref*14,
. cal_name*32, cal_name_new*32, val_buff*32, fmt*4
@@ -205,7 +216,7 @@
. slen2, slen3, tax, plot_mem_used, nload, i,
. pxlim, pylim, phlim, pvlim,pindeplim, pdeplim,
. dep_axtyp, indep_axtyp, the_taxis, ribbon_var,
- . junits, iaxis, hblk1, mvh_temp
+ . gap_var, junits, iaxis, hblk1, mvh_temp
INTEGER TM_GET_CALENDAR_ID, cal_id_1, cal_id_2,
. cal_id_old, cal_id_new
@@ -213,9 +224,10 @@
CHARACTER*1 axdir(6), ax1
REAL val1, dt_min, lo, hi, dep_len,
- . ind_len, first, last, hlen
+ . ind_len, first, last, hlen, hrs
REAL*8 TSTEP_TO_SECS, SECS_TO_TSTEP,
. ind_min, ind_max, dep_min, dep_max, delta, tmp
+ REAL*4 rbad
* local parameter declarations:
LOGICAL main, norm_labs, pnot_curv, range_rqd
@@ -251,6 +263,7 @@
mod_vs_x = .FALSE.
mod_vs_y = .FALSE.
cx_x = cx_list(1)
+ xtra_lab = ' '
* determine PLOT+ memory required
plot_mem_used = 0
@@ -279,6 +292,16 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
npts = CX_DIM_LEN ( indep_dim, cx )
ENDIF
+* Mark the gap-variable, for PLOT/VS only
+ IF (versus .AND. addgaps) THEN
+ IF (ribbon_plot) THEN
+ gap_var = 4
+ ELSE
+ IF (num_uvars_in_cmnd .GT. 3) GOTO 5190
+ gap_var = 3
+ ENDIF
+ ENDIF
+
* set flag indicating a 1D plot is on the screen
IF (.NOT.overlay) onedee_on = .TRUE.
@@ -335,6 +358,18 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
ENDIF
ENDIF
+
+* do not re-draw the main label, logo, other labels from the underlay plot
+ IF (overlay) THEN
+ nlabs_on = 0
+ CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )
+ DO i = 1, 3
+ logolab(i) = 0
+ ENDDO
+ ENDIF
+
+ IF ( no_labels ) CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )
+
* * * * * * * - - - INDEPENDENT AXIS DATA - - - * * * * * * * * *
IF ( versus ) THEN
time_axis = .FALSE.
@@ -347,7 +382,7 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
. npts,
. status )
IF ( status .NE. ferr_ok ) GOTO 5000
- var1 = 2 ! since first var is independent axis
+ var1 = 2 ! since first var is independent axis
ndv = nmv - 1 ! # of dependent variables
use_keys = .FALSE.
plot_title = FULL_VAR_TITLE( cx_list(1), slen )
@@ -478,6 +513,18 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
ENDIF
ELSE ! (not VERSUS)
+
+* define special axis labels to disambiguate T and F calendar axes
+ IF ( ITS_FMRC(grid1) ) THEN
+ IF (GEOG_LABEL(indep_dim,grid1)) THEN
+ IF (indep_dim .EQ. t_dim) THEN
+ xtra_lab = 'Verification Time ==>'
+ ELSEIF (indep_dim .EQ. f_dim) THEN
+ xtra_lab = 'Initialization Time ==>'
+ ENDIF
+ ENDIF
+ ENDIF
+
var1 = 1
ndv = nmv
ito = 0
@@ -537,10 +584,20 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
ENDIF
3005 FORMAT ( 'LIMITS ',G15.8,1X,A1,'EQ' )
+* Send info about gap var for PLOT/VS/GAPLOC
+
+ CALL PPLCMD ( from, line, 0, 'GAPLOC 0', 1, 1)
+ IF (addgaps) THEN
+ ppl_buff = ' '
+ WRITE ( ppl_buff, 3007 ) gap_var
+ CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1)
+ ENDIF
+ 3007 FORMAT ( 'GAPLOC ',I5 )
+
* * * * * * * - - - LOAD DATA - - - * * * * * * * * *
* 11/95: determine T0 reference time for time axis
IF ( time_axis .AND. .NOT.overlay ) THEN
- tref = MERGED_WHOI_DATE( cx_list(var1), the_taxis, nmv )
+ tref = MERGED_WHOI_DATE( cx_list(var1), the_taxis, nmv, .FALSE. )
ELSE
tref = ' ' ! overlays reuse previous tref
ENDIF
@@ -564,15 +621,6 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
. npts2,
. status )
iaxis = CGRID_AXIS(dep_dim,cx)
-
- IF (.NOT.overlay .AND. (ipl.EQ.var1 .AND. ribbon_plot)) THEN
- CALL MINMAX( dep_dat, npts, mr_bad_data(mv), lo, hi )
- dep_min = DBLE( lo )
- dep_max = DBLE( hi )
- delta = unspecified_val8
- CALL AXIS_ENDS(dep_ax,dep_dim,grid1,dep_min,dep_max,
- . delta, dep_is_log, dep_axtyp, status)
- ENDIF
IF ( status .NE. ferr_ok ) GOTO 5000
* ... replicate points to create a "step" plot if requested (1/01)
@@ -599,7 +647,7 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
* Set up the dependent axis.
set_axis = .TRUE.
- IF (ribbon_plot) set_axis = (ipl .EQ. var1)
+ IF (ribbon_plot .OR. addgaps) set_axis = (ipl .EQ. var1)
IF (versus .AND. set_axis .AND. .NOT.overlay) THEN
CALL MINMAX( dep_dat, npts, mr_bad_data(mv), lo, hi )
dep_min = DBLE( lo )
@@ -641,6 +689,14 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
. TSTEP_TO_SECS(grid, the_taxis, DBLE(indep_dat(1)) ))
ind_max = MAX( ind_max,
. TSTEP_TO_SECS(grid, the_taxis, DBLE(indep_dat(nload)) ))
+
+* Plotting short time range? If so recompute tref
+* axis length in hours from time since BC in seconds
+ IF (.NOT.overlay) THEN
+ hrs = ( ind_max - ind_min ) / 3600.
+ IF (hrs.LT.24)
+ . tref = MERGED_WHOI_DATE( cx_list(var1), the_taxis, nmv, .TRUE. )
+ ENDIF
ELSE
ind_min = MIN( ind_min, DBLE(indep_dat(1)) )
ind_max = MAX( ind_max, DBLE(indep_dat(nload)) )
@@ -656,6 +712,8 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
* needed for computing color levels. Results stored in PPLUS common.
* If histogram-based levels are requested, compute the
* histogram bins.
+* send REAL*4 rbad to compare with lev_max, lev_min inside compute_mnstd
+
IF (ribbon_plot .AND. ipl.EQ.ribbon_var) THEN
@@ -672,34 +730,36 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
* ... clean up temporary variable
CALL DELETE_VARIABLE( mvh_temp )
ELSE
- CALL COMPUTE_MNSTD (dep_dat, mr_bad_data(mv), need_std, npts, status)
+ rbad = bad_val4
+ CALL COMPUTE_MNSTD (dep_dat, mr_bad_data(mv), need_std, npts, rbad, status)
ENDIF
ENDIF
* ... check that there is a range of dependent data for PLOT+ auto-scaling
-* ... when all the variables are considered together
-
- this_no_range(ipl) = .FALSE.
- IF (set_axis) this_no_range(ipl) = NO_LINE_RANGE(
- . dep_dat, nload, mr_bad_data(mv), val1 )
- all_1_dep = all_1_dep .AND. this_no_range(ipl)
- IF (this_no_range(ipl) .AND. val1.NE.mr_bad_data(mv) )
+* ... when all the variables are considered together (but not the ribbon var)
+
+ IF (addgaps .AND. ipl.EQ.gap_var) GOTO 199
+
+ IF (.NOT.ribbon_plot .OR. (ribbon_plot .AND. ipl.LT.ribbon_var)) THEN
+ this_no_range(ipl) = .FALSE.
+ IF (set_axis) this_no_range(ipl) = NO_LINE_RANGE(
+ . dep_dat, nload, mr_bad_data(mv), val1 )
+ all_1_dep = all_1_dep .AND. this_no_range(ipl)
+ IF (this_no_range(ipl) .AND. val1.NE.mr_bad_data(mv) )
. this_no_range(ipl) = .FALSE. ! Keep the value for putting NO VALID on labels
-! 10/99 IF ( val1 .EQ. mr_bad_data(mv) ) CALL ERRMSG( ferr_no_range, status,
-! . 'all data points are bad: '//VAR_CODE(mr_category(mv),
-! . mr_variable(mv) ),*5000)
- IF ( all_1_dep ) THEN
- IF ( only_val .EQ. bad_val4 ) THEN
- IF ( val1 .NE. mr_bad_data(mv) ) only_val = val1
- ELSE
- all_1_dep = all_1_dep .AND. only_val .EQ. val1
- ENDIF
-! ELSE ! commented out 10/93 - PLOT+ auto scaling used
-! CALL MINMAX( dep_dat, npts, mr_bad_data(mv), lo, hi )
-! IF ( lo .LT. dep_min ) dep_min = lo
-! IF ( hi .GT. dep_max ) dep_max = hi
- ENDIF
+
+ IF ( all_1_dep ) THEN
+ IF ( only_val .EQ. bad_val4 ) THEN
+ IF ( val1 .NE. mr_bad_data(mv) ) only_val = val1
+ ELSE
+ all_1_dep = all_1_dep .AND. only_val .EQ. val1
+ ENDIF
+
+ ENDIF
+ ENDIF ! checking range when not ribbon variable
+
+ 199 CONTINUE ! checking range when not gap variable
* pass the data to PLOT+
@@ -743,7 +803,7 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
ENDIF
ENDIF
- ! put colorvar in the right place
+! put colorvar in the right place
IF (ribbon_plot .AND. ipl.EQ.ribbon_var) THEN
flip = .FALSE.
IF (indep_dim .EQ. z_dim) THEN
@@ -752,6 +812,15 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
ENDIF
ENDIF
+! put gap-var in the right place
+ IF (ipl .EQ. gap_var) THEN
+ flip = .FALSE.
+ IF (indep_dim .EQ. z_dim) THEN
+ WRITE ( ppl_buff, 3005 ) mr_bad_data( mv ), indep_ax
+ CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
+ ENDIF
+ ENDIF
+
IF ( flip ) THEN
CALL PPLLDX_envelope(0,dep_dat,indep_dat,nload,
. t1_date, tref, dt_min, plot_mem_used)
@@ -819,7 +888,7 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
IF ( time_axis ) THEN
IF ( pindeplim .GT. 0 ) CALL PPL_TIME( ind_min,ind_max,
. cal_id_1)
- CALL TAXIS_STYLE( indep_ax, ind_min, ind_max, tstyle )
+ CALL TAXIS_STYLE( indep_ax, ind_min, ind_max, tstyle, xtra_lab )
* (6/99) Note: The time axis extrema symbols are only approximately correct
* since PLOT+ rounds out the time ranges ...
CALL AXIS_END_SYMS( indep_ax,
@@ -834,11 +903,13 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
last = ind_max
GOTO 5170
ENDIF
-
+
+ timeax_both = .FALSE.
CALL AXIS_FORMAT( indep_ax, indep_dim, grid1,
. ind_min, ind_max, delta,
. pnot_curv, 0,
- . time_axis, tstyle, no_labels )
+ . time_axis, timeax_both, tstyle,
+ . no_labels, xtra_lab )
ENDIF
ENDIF
* ... dependent axis scaling
@@ -997,4 +1068,7 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
. 'One-point independent axis: Requires a '//
. '/HLIMIT or /VLIMIT specification', *5000 )
+ 5190 CALL ERRMSG( ferr_syntax, status,
+ . 'PLOT/VS/GAPLOC only for a single dependent variable', *5000 )
+
END
diff --git a/fer/plt/polygon_set_up.F b/fer/plt/polygon_set_up.F
index 5a37449..f95971a 100644
--- a/fer/plt/polygon_set_up.F
+++ b/fer/plt/polygon_set_up.F
@@ -132,6 +132,8 @@
* argument for all-color line plot
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
* V691 *acm* 5/14 Clean up temp memory used for computing histogram levels
+* V695 *acm* 5/15 Ticket 2279: PyFerret don't redraw labels on an overlay
+* V695 *acm* 9/15 send REAL*4 rbad to compare with lev_max, lev_min inside compute_mnstd
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
@@ -158,6 +160,7 @@
include 'PLTL.INC'
include 'vector_inc.decl' ! with TRANSPZ
include 'VECTOR.INC'
+ include 'pyfonts.cmn'
* calling argument declarations:
@@ -203,13 +206,13 @@
REAL*8 vmin, vmax, delta, ind_min, ind_max, dep_min,
. dep_max
+ REAL*4 rbad
* local parameter declarations:
LOGICAL range_rqd
PARAMETER ( range_rqd = .TRUE. )
PARAMETER ( epsilon = 1.E-35 )
-
* signal that plot set-up has begun
IF ( mode_diagnostic ) CALL SPLIT_LIST(pttmode_ops, ttout_lun,
. 'setting up polygons', 19)
@@ -758,9 +761,16 @@ c IF ( npoly .GE. NPOLYGON ) GOTO 5160
* If needed for the levels setting, compute data mean and std, store
* in common. If the user set a std to use, store that.
+* send REAL*4 rbad to compare with lev_max, lev_min inside compute_mnstd
+ rbad = bad_val4
CALL compute_mnstd (x_dat, mr_bad_data(mr_color), need_std,
- . ncolor, status)
+ . ncolor, rbad, status)
+ IF (status .NE. ferr_ok) THEN
+* ... set up for automatic levels
+ CALL PPLCMD ( from, line, 0, 'LEV,()', 1, 1 )
+ CALL USE_LINEAR_LEVELS
+ ENDIF
* If histogram-based levels are requested, compute the
* histogram bins.
@@ -1108,7 +1118,10 @@ c IF ( npoly .GE. NPOLYGON ) GOTO 5160
ELSE
ENDIF
- IF ( no_labels ) RETURN
+ IF ( no_labels ) THEN
+ CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )
+ RETURN
+ ENDIF
* * * * * * * - - - LABELS - - - * * * * * * * * *
* if we are starting from a blank screen each axis is labelled with the units
@@ -1117,6 +1130,14 @@ c IF ( npoly .GE. NPOLYGON ) GOTO 5160
* by the /TITLE qualifier) and it is placed in a key for overlays or as a
* title for a fresh plot.
IF ( overlay ) THEN
+
+* do not re-draw the main label, logo, other labels from the underlay plot
+ nlabs_on = 0
+ CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )
+ DO i = 1, 3
+ logolab(i) = 0
+ ENDDO
+
CALL OV_GRP_CX_DOC( cx_color, 1, cx_xtra_doc )
IF ( user_title ) THEN
CALL EQUAL_STR_LC(
diff --git a/fer/gnl/create_agg_dset.F b/fer/plt/put_annotation.F
similarity index 54%
copy from fer/gnl/create_agg_dset.F
copy to fer/plt/put_annotation.F
index 2de0c90..ee6f4b2 100644
--- a/fer/gnl/create_agg_dset.F
+++ b/fer/plt/put_annotation.F
@@ -1,6 +1,7 @@
- SUBROUTINE CREATE_AGG_DSET (agg_dset, dname, dtitle,
- . nsets, agg_dim, iline, status)
-*
+ SUBROUTINE PUT_ANNOTATION (user, nouser, norm, xloc, yloc,
+ . halign, angle, size, nlab, labtxt, status)
+
+
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -33,60 +34,64 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-* Programmer Ansley Manke
-* NOAA/PMEL, Seattle, WA - TMAP
-*
-* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
-* V685 *acm* 3/13 For Ensemble aggregations, call the ds_type 'ENS'
+* Make calls to PPLUS to set up the size angle and label for the DEFINE ANNOTATION
+* command. If the user has not set a label number, increment the count that is in
+* place for other moveable labels added by Ferret.
- IMPLICIT NONE
- include 'tmap_errors.parm'
-#include "tmap_dset.parm"
- include 'tmap_dims.parm'
- include 'ferret.parm'
- include 'xdset_info.cmn_text'
- external xdset_info_data
- include 'xdset_info.cd_equiv'
- include 'xprog_state.cmn'
- include 'xtm_grid.cmn_text'
- include 'errmsg.parm'
- include 'netcdf.inc'
- include 'xvariables.cmn'
+ include 'tmap_dims.parm'
+ include 'plot_setup.parm'
+ include 'xplot_setup.cmn'
-* calling argument declarations:
- CHARACTER*(*) dname, dtitle
- INTEGER agg_dset, nsets, agg_dim, iline, status
+ LOGICAL user, norm, nouser
+ INTEGER nlab, status
+ REAL xloc, yloc, halign, angle, size
+ CHARACTER*(*) labtxt
* local variable declarations:
- INTEGER TM_LENSTR, TM_LENSTR1, ALLO_MANAGED_AXIS,
- . type, coordvar, varid, big_cx
- REAL bad_flag
+ INTEGER TM_LENSTR1, rlen, nchar
+ CHARACTER TM_FMT*14, buff*20
+
+* Count of (PLOT+ movable labels) or use the nlab given by the user
+ IF (nlab .EQ. 0) THEN
+ nlabs_on = nlabs_on + 1
+ nlab = nlabs_on
+ ENDIF
- CALL CD_INIT_AGG_DSET (agg_dset, dname, status)
+* Send label size to pplus
+ WRITE ( ppl_buff, 3000 ) nlab, size
+ CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
- IF (status .NE. ferr_ok) GOTO 5300
+* Send rotation angle to pplus
+ IF (angle .NE. 0.) THEN
+ WRITE ( ppl_buff, 3100 ) nlab, angle
+ CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
+ ENDIF
-* Set the dataset type and title (can add other directions)
- IF (agg_dim .EQ. e_dim ) ds_type(agg_dset) = 'ENS'
+* Send LABS command with qualifier, position, justify setting, and label
- ds_name(agg_dset) = dname
- ds_des_name(agg_dset) = dname
+ WRITE ( ppl_buff, 3200 ) nlab
+ IF (user) WRITE ( ppl_buff, 3300 ) nlab
+ rlen = TM_LENSTR1(ppl_buff)
- IF (dtitle(1:2).EQ.char_init .OR. TM_LENSTR(dtitle).EQ.0) THEN
- ds_title(agg_dset) = cmnd_buff(item_start(1):item_end(num_items))
- ELSE
- ds_title(agg_dset) = dtitle(:TM_LENSTR1(dname))
- ENDIF
+ ppl_buff = ppl_buff(:rlen)//','//TM_FMT(xloc, 14, 16, nchar)
+ rlen = TM_LENSTR1(ppl_buff)
+
+ ppl_buff = ppl_buff(:rlen)//','//TM_FMT(yloc, 14, 16, nchar)
+ rlen = TM_LENSTR1(ppl_buff)
-* create the aggregate axis
+ ppl_buff = ppl_buff(:rlen)//','//TM_FMT(halign, 14, 16, nchar)
+ rlen = TM_LENSTR1(ppl_buff)
- CALL CREATE_AGG_AXIS (nsets, agg_dim, iline, status)
- IF (status .NE. ferr_ok) GOTO 5300
+ ppl_buff = ppl_buff(:rlen)//', '//labtxt
+ rlen = TM_LENSTR1(ppl_buff)
+
+ CALL PPLCMD ( from, line, 0, ppl_buff(:rlen), 1, 1 )
RETURN
- 5000 RETURN
- 5300 status = ferr_TMAP_error
- RETURN
+ 3000 FORMAT('HLABS ',I3,1X,F6.3 )
+ 3100 FORMAT ('RLABS ',I4, ',', F8.3)
+ 3200 FORMAT('LABS/NOUSER ', I3)
+ 3300 FORMAT('LABS/USER ', I3)
- END
+ END
\ No newline at end of file
diff --git a/fer/plt/put_label.F b/fer/plt/put_label.F
index fb5a181..c914670 100644
--- a/fer/plt/put_label.F
+++ b/fer/plt/put_label.F
@@ -77,6 +77,7 @@
* (SNGL must have a double-precision or complex argument)
* V68 *acm* 5/12 Dont write the font to xlab, ylab if they are blank strings.
* V686 *acm* 12 13 set up the label symbols LABNUM_E and LABNUM_F
+* V6.95 *acm* 3/15 Changes for PyFerret fonts.
include 'tmap_dims.parm'
include 'plot_setup.parm'
@@ -86,6 +87,7 @@
include 'axis_inc.decl' ! axis lengths
include 'AXIS.INC' ! axis lengths
include 'xrisc.cmn' ! to fix RISC FORTRAN bug
+ include 'pyfonts.cmn'
* PLOT+ parameter fom PPLV11INC:PARAMPL5.DAT
INTEGER nlabs
@@ -121,7 +123,6 @@
. labname(ppl_dodsurl)/'DODS'/,
. labname(ppl_calendar)/'CALEND'/
-
* if label has single tic marks double them so PLOT+ doesnt interpret symbols
IF ( INDEX(string,"'date'") .GT. 0 ) THEN
* ... hack to let PLOT+ date time symbols be evaluated (using single tics)
@@ -169,6 +170,8 @@
font = '@AS'
ENDIF
+ IF (pyfont) font = ' '
+
* Let user select the font if they want
IF (string(1:1) .EQ. "@") THEN
diff --git a/fer/plt/set_annotation.F b/fer/plt/set_annotation.F
new file mode 100644
index 0000000..c9ec7c1
--- /dev/null
+++ b/fer/plt/set_annotation.F
@@ -0,0 +1,333 @@
+ SUBROUTINE SET_ANNOTATION (user, nouser, norm, xloc, yloc,
+ . halign, angle, size, status)
+
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+* Parse qualifiers for ANNOTATE and DEFINE ANNOTATION command, converting
+* locations to the correct ones for /USER, /NOUSER, or /NORMalized specification.
+
+ include 'tmap_dims.parm'
+ include 'ferret.parm'
+ include 'errmsg.parm'
+ include 'slash.parm'
+ include 'xplot_state.cmn'
+ include 'xcontext.cmn'
+ include 'xvariables.cmn'
+ include 'xprog_state.cmn'
+ include 'plot_setup.parm'
+ include 'xplot_setup.cmn'
+
+ LOGICAL user, norm, nouser
+ INTEGER status
+ REAL xloc, yloc, halign, angle, size
+
+* local variable declarations:
+
+ INTEGER TM_LENSTR1,
+ . loc, rlen, item, itype, nchar, ierr
+ REAL val, xpos, ypos, valign, deg_to_rad, cos_ang, sin_ang,
+ . a_dx, a_dy, hloc, xaxlen, yaxlen, rev, xrev, yrev,
+ . xaxmin, xaxmax, yaxmin, yaxmax, xscale, yscale
+
+ CHARACTER buff*20, symbuff*30
+
+* plotting must already be turned on
+
+ IF ( .NOT.pplus_started ) GOTO 5100
+
+* initialize (size initialized in the calling routine)
+
+ xpos = 0.
+ ypos = 0.
+ valign = -1.
+ halign = -1.
+ angle = 0.
+ status = ferr_ok
+
+* Get settings
+
+* /USER /NOUSER or /NORM. Default is /USER
+ user = qual_given( slash_annotate_user ) .GT. 0
+ nouser = qual_given( slash_annotate_nouser) .GT. 0
+ norm = qual_given( slash_annotate_norm ) .GT. 0
+
+ itype = 0
+ IF (user) itype = itype+1
+ IF (nouser) itype = itype+1
+ IF (norm) itype = itype+1
+ IF (itype .EQ. 0) user = .TRUE.
+ IF (itype .GT. 1) GOTO 5200
+
+* ... ANNOTATE/HALIGN=float
+ loc = qual_given( slash_annotate_halign )
+ IF ( loc .GT. 0 ) THEN
+ CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+ . val, status )
+ buff = 'HALIGN'
+ IF ( status .NE. ferr_ok ) GOTO 5000
+ IF ( val .NE. unspecified_val4 ) halign = val
+ ENDIF
+
+* valign and halign will modify the location settings if /NORM
+* ... ANNOTATE/VALIGN=float
+
+ loc = qual_given( slash_annotate_valign )
+ IF ( loc .GT. 0 ) THEN
+ CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+ . val, status )
+ buff = 'VALIGN'
+ IF ( status .NE. ferr_ok ) GOTO 5000
+ IF ( val .NE. unspecified_val4 ) valign = val
+ ENDIF
+
+* ... ANNOTATE/XPOS=float
+
+ loc = qual_given( slash_annotate_xpos )
+ IF ( loc .GT. 0 ) THEN
+ CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+ . val, status )
+ buff = 'XPOS'
+ IF ( status .NE. ferr_ok ) GOTO 5000
+ IF ( val .NE. unspecified_val4 ) xpos = val
+ ELSE
+ GOTO 5300
+ ENDIF
+
+* ... ANNOTATE/YPOS=float
+ loc = qual_given( slash_annotate_ypos )
+ IF ( loc .GT. 0 ) THEN
+ CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+ . val, status )
+ buff = 'YPOS'
+ IF ( status .NE. ferr_ok ) GOTO 5000
+ IF ( val .NE. unspecified_val4 ) ypos = val
+ ELSE
+ GOTO 5300
+ ENDIF
+
+* ... ANNOTATE/ANGLE=float
+
+ angle = 0.
+ loc = qual_given( slash_annotate_angle )
+ IF ( loc .GT. 0 ) THEN
+ CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+ . val, status )
+ buff = 'ANGLE'
+ IF ( status .NE. ferr_ok ) GOTO 5000
+ IF ( val .NE. unspecified_val4 ) angle = val
+ ENDIF
+
+* ... ANNOTATE/SIZE=float
+ loc = qual_given( slash_annotate_size )
+ IF ( loc .GT. 0 ) THEN
+ CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+ . val, status )
+ buff = 'SIZE'
+ IF ( status .NE. ferr_ok ) GOTO 5000
+ IF ( val .NE. unspecified_val4 ) size = val
+ ENDIF
+
+* Compute arguments to send to the PPL %LABEL command
+
+* .../USER
+ IF (user) THEN
+
+* Get axis scaling. For line plots and PLOT/SET the AXIS_MIN
+* and AXIS_MAX symbols may not be set.
+
+ symbuff = 'XAXIS_MIN'
+ CALL GETSYM( symbuff, buff, nchar, ierr)
+ IF (nchar.EQ.0 .OR. ierr.EQ.1) THEN
+ symbuff = 'PPL$YMIN1'
+ CALL GETSYM( symbuff, buff, nchar, ierr)
+ IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+ ENDIF
+ READ(buff,*) xaxmin
+
+ symbuff = 'XAXIS_MAX'
+ CALL GETSYM( symbuff, buff, nchar, ierr)
+ IF (nchar.EQ.0 .OR. ierr.EQ.1) THEN
+ symbuff = 'PPL$XMAX1'
+ CALL GETSYM( symbuff, buff, nchar, ierr)
+ IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+ ENDIF
+ READ(buff,*) xaxmax
+
+ symbuff = 'PPL$XLEN'
+ CALL GETSYM( symbuff, buff, nchar, ierr)
+ IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+ READ(buff,*) xaxlen
+
+ symbuff = 'YAXIS_MIN'
+ CALL GETSYM( symbuff, buff, nchar, ierr)
+ IF (nchar.EQ.0 .OR. ierr.EQ.1) THEN
+ symbuff = 'PPL$YMIN1'
+ CALL GETSYM( symbuff, buff, nchar, ierr)
+ IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+ ENDIF
+ READ(buff,*) yaxmin
+
+ symbuff = 'YAXIS_MAX'
+ CALL GETSYM( symbuff, buff, nchar, ierr)
+ IF (nchar.EQ.0 .OR. ierr.EQ.1) THEN
+ symbuff = 'PPL$YMAX1'
+ CALL GETSYM( symbuff, buff, nchar, ierr)
+ IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+ ENDIF
+ READ(buff,*) yaxmax
+
+ symbuff = 'PPL$YLEN'
+ CALL GETSYM( symbuff, buff, nchar, ierr)
+ IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+ READ(buff,*) yaxlen
+
+* is the axis reversed?
+
+c symbuff = 'XAXIS_REVERSED'
+c CALL GETSYM( symbuff, buff, nchar, ierr)
+c IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+c READ(buff,*) rev
+c IF (rev.EQ.0) xrev = 1
+c IF (rev.EQ.1) xrev = -1
+
+c symbuff = 'YAXIS_REVERSED'
+c CALL GETSYM( symbuff, buff, nchar, ierr)
+c IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+c READ(buff,*) rev
+c IF (rev.EQ.0) yrev = 1
+c IF (rev.EQ.1) yrev = -1
+
+ xrev = 1
+ yrev = 1
+ xscale = xrev*xaxlen/(xaxmax-xaxmin)
+ yscale = yrev*yaxlen/(yaxmax-yaxmin)
+
+ IF (halign .LE. -1) THEN
+ hloc = -1.
+ ELSEIF (halign .GE. 1) THEN
+ hloc = 1.
+ ELSE
+ hloc = 0.
+ ENDIF
+
+ deg_to_rad = 0.017453292
+ cos_ang = cos(angle*deg_to_rad)
+ sin_ang = sin(angle*deg_to_rad)
+ a_dx = ((hloc-halign)/2 * cos_ang + (1+valign)/2 * sin_ang) * size / xscale
+ a_dy = ((hloc-halign)/2 * sin_ang - (1+valign)/2 * cos_ang) * size / yscale
+
+ xloc = xpos + a_dx
+ yloc = ypos + a_dy
+
+ buff = 'USER'
+ ENDIF
+
+* .../NOUSER
+ IF (nouser) THEN
+
+ IF (halign .LE. -1) THEN
+ hloc = -1.
+ ELSEIF (halign .GE. 1) THEN
+ hloc = 1.
+ ELSE
+ hloc = 0.
+ ENDIF
+
+ deg_to_rad = 0.017453292
+ cos_ang = cos(angle*deg_to_rad)
+ sin_ang = sin(angle*deg_to_rad)
+ a_dx = ((hloc-halign)/2 * cos_ang + (1+valign)/2 * sin_ang) * size
+ a_dy = ((hloc-halign)/2 * sin_ang - (1+valign)/2 * cos_ang) * size
+
+ xloc = xpos + a_dx
+ yloc = ypos + a_dy
+
+ buff = 'NOUSER'
+ ENDIF
+
+* .../NORM
+ IF (norm) THEN
+
+* Get axis lengths.
+ symbuff = 'PPL$XLEN'
+ CALL GETSYM( symbuff, buff, nchar, ierr)
+ IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+ READ(buff,*) xaxlen
+
+ symbuff = 'PPL$YLEN'
+ CALL GETSYM( symbuff, buff, nchar, ierr)
+ IF (nchar.EQ.0 .OR. ierr.EQ.1) GOTO 5400
+ READ(buff,*) yaxlen
+
+ IF (halign .LE. -1) THEN
+ hloc = -1.
+ ELSEIF (halign .GE. 1) THEN
+ hloc = 1.
+ ELSE
+ hloc = 0.
+ ENDIF
+
+ deg_to_rad = 0.017453292
+ cos_ang = cos(angle*deg_to_rad)
+ sin_ang = sin(angle*deg_to_rad)
+ a_dx = ((hloc-halign)/2 * cos_ang + (1+valign)/2 * sin_ang) * size
+ a_dy = ((hloc-halign)/2 * sin_ang - (1+valign)/2 * cos_ang) * size
+
+ xloc = xpos*xaxlen + a_dx
+ yloc = ypos*yaxlen + a_dy
+
+ ENDIF
+
+ IF (halign .LE. -1) THEN
+ halign = -1.
+ ELSEIF (halign .GE. 1) THEN
+ halign = 1.
+ ELSE
+ halign = 0.
+ ENDIF
+
+ 5000 RETURN
+
+ 5100 CALL ERRMSG (ferr_invalid_command, status,
+ . 'ANNOTATE: Plotting has not been started', *5000)
+
+ 5200 CALL ERRMSG( ferr_invalid_command, status,
+ . 'Specify only one of /USER /NOUSER /NORM', *5000 )
+
+ 5300 CALL ERRMSG( ferr_invalid_command, status,
+ . '/XPOS and /YPOS are required for ANNOTATE', *5000 )
+
+ 5400 CALL ERRMSG (ferr_invalid_command, status,
+ . 'Could not get axis lengths for label positioning', *5000)
+
+ END
diff --git a/fer/plt/set_pytext_group.F b/fer/plt/set_pytext_group.F
new file mode 100644
index 0000000..31f6c0f
--- /dev/null
+++ b/fer/plt/set_pytext_group.F
@@ -0,0 +1,212 @@
+ SUBROUTINE SET_PYTEXT_GROUP (igrp, buff1, status)
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+ include 'tmap_dims.parm'
+ include 'ferret.parm'
+ include 'errmsg.parm'
+ include 'slash.parm'
+ include 'xprog_state.cmn'
+ include 'pyfonts.cmn'
+
+ INTEGER igrp, status
+ CHARACTER*(*) buff1
+
+ INTEGER TM_LENSTR1, STR_SAME, llen, slen, ii, loc
+ REAL val_buf
+ CHARACTER arg*24, errstrng*20
+
+* Settings for all text
+
+ IF (igrp .EQ. fnt_all) THEN
+
+c* ... SET TEXT/FONT
+ IF ( qual_given( slash_set_text_font ) .GT. 0 ) THEN
+ loc = qual_given( slash_set_text_font )
+ IF ( loc.GT. 0 ) THEN
+ CALL EQUAL_STR_LC( cmnd_buff(qual_start(loc):qual_end(loc)),
+ . buff1, status )
+ IF ( status .NE. ferr_ok ) RETURN
+ IF ( buff1 .EQ. ' ' ) GOTO 5440
+ pyfnt_fontname = buff1
+ ENDIF
+ ENDIF
+
+* ... SET TEXT/COLOR
+* % rgb or color names black,red,green,blue,lightblue,purple,white or color #
+
+ IF ( qual_given( slash_set_text_color ) .GT. 0 ) THEN
+ loc= qual_given( slash_set_text_color )
+
+ CALL EQUAL_STR_LC( cmnd_buff(qual_start(loc):qual_end(loc)),
+ . buff1, status )
+ IF ( status .NE. ferr_ok ) GOTO 5100
+ CALL PARSE_PYFONT_COLOR (buff1, pyfnt_red,
+ . pyfnt_grn, pyfnt_blu, status)
+ IF ( status .NE. ferr_ok ) GOTO 5100
+ ENDIF
+
+* ... SET TEXT/ITALIC
+ IF ( qual_given( slash_set_text_italic ) .GT. 0 ) THEN
+ pyfnt_italic = 1
+ ENDIF
+
+* ... SET TEXT/BOLD
+ IF ( qual_given( slash_set_text_bold ) .GT. 0 ) THEN
+ pyfnt_bold = 1
+ ENDIF
+
+* ... SET TEXT/ISIZ
+ IF ( qual_given( slash_set_text_isiz ) .GT. 0 ) THEN
+ loc = qual_given(slash_set_text_isiz)
+
+* Get the isize value
+ CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+ . val_buf, status )
+ IF ( status .NE. ferr_ok ) GOTO 5450
+
+ ii = INT(val_buf)
+ IF (ii.LT.-4 .OR. ii.GT.4) GOTO 5460
+ pyfnt_isiz = ii
+ ENDIF
+
+* Set the group settings to the default values and unset pyf_set
+* Then the groups will follow the global setting.
+
+ DO 1000 ii = 1, ngp
+ pyf_italic(ii) = 0
+ pyf_bold(ii) = 0
+ pyf_isiz(ii) = 0
+ pyf_red(ii) = 0
+ pyf_grn(ii) = 0
+ pyf_blu(ii) = 0
+ pyf_fontname(ii) = pyf_font_dflt(ii)
+ pyf_set(ii) = .FALSE.
+ 1000 CONTINUE
+
+ ELSE ! group settings
+
+* If there were not previous settings on this group, first apply the
+* current global settings to this group
+
+ IF (.NOT. pyf_set(igrp)) THEN
+ pyf_italic(igrp) = pyfnt_italic
+ pyf_bold(igrp) = pyfnt_bold
+ pyf_isiz(igrp) = pyfnt_isiz
+ pyf_red(igrp) = pyfnt_red
+ pyf_grn(igrp) = pyfnt_grn
+ pyf_blu(igrp) = pyfnt_blu
+ pyf_fontname(igrp) = pyfnt_fontname
+ ENDIF
+
+* Read arguments for /COLOR=, /FONT=, and /ISIZE=
+
+c* ... SET TEXT/FONT
+ IF ( qual_given( slash_set_text_font ) .GT. 0 ) THEN
+ loc= qual_given( slash_set_text_font )
+ IF ( loc.GT. 0 ) THEN
+ CALL EQUAL_STR_LC( cmnd_buff(qual_start(loc):qual_end(loc)),
+ . buff1, status )
+ IF ( status .NE. ferr_ok ) RETURN
+ IF ( buff1 .EQ. ' ' ) GOTO 5440
+ pyf_fontname(igrp) = buff1
+ ENDIF
+ ENDIF
+
+* ... SET TEXT/COLOR
+* % rgb or color names black,red,green,blue,lightblue,purple,white or color #
+
+ IF ( qual_given( slash_set_text_color ) .GT. 0 ) THEN
+ loc= qual_given( slash_set_text_color )
+
+ CALL EQUAL_STR_LC( cmnd_buff(qual_start(loc):qual_end(loc)),
+ . buff1, status )
+ IF ( status .NE. ferr_ok ) GOTO 5100
+ CALL PARSE_PYFONT_COLOR (buff1, pyf_red(igrp),
+ . pyf_grn(igrp), pyf_blu(igrp), status)
+ IF ( status .NE. ferr_ok ) GOTO 5100
+ ENDIF
+
+
+* ... SET TEXT/ITALIC
+ IF ( qual_given( slash_set_text_italic ) .GT. 0 ) THEN
+ pyf_italic(igrp) = 1
+ ENDIF
+
+* ... SET TEXT/BOLD
+ IF ( qual_given( slash_set_text_bold ) .GT. 0 ) THEN
+ pyf_bold(igrp) = 1
+ ENDIF
+
+* ... SET TEXT/ISIZ
+ IF ( qual_given( slash_set_text_isiz ) .GT. 0 ) THEN
+ loc = qual_given(slash_set_text_isiz)
+
+* Get the isize value
+ CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+ . val_buf, status )
+ IF ( status .NE. ferr_ok ) GOTO 5450
+
+ ii = INT(val_buf)
+ IF (ii.LT.-4 .OR. ii.GT.4) GOTO 5460
+ pyf_isiz(igrp) = ii
+ ENDIF
+
+ pyf_set(igrp) = .TRUE.
+
+ ENDIF ! group vs global settings
+
+ 5000 CONTINUE
+
+ RETURN
+
+* If there were errors, cancel any settings made above
+ 5100 CALL CANCEL_PYTEXT_GROUP (igrp)
+ pyf_set(igrp) = .FALSE.
+ RETURN
+
+ 5440 CALL ERRMSG( ferr_invalid_command, status,
+ . 'SET TEXT/FONT=what? See Unix system fonts ', *5000 )
+ 5450 errstrng = 'SET TEXT'
+ slen = TM_LENSTR1(errstrng)
+ llen = TM_LENSTR1(buff1)
+ CALL ERRMSG( ferr_invalid_command, status,
+ . errstrng(:slen)//'=what? ', *5100 )
+ 5460 errstrng = 'SET TEXT'
+ slen = TM_LENSTR1(errstrng)
+ llen = TM_LENSTR1(buff1)
+ CALL ERRMSG( ferr_out_of_range, status,
+ . buff1(:llen)//pCR//errstrng//
+ . ' argument must be between -4 and 4',
+ . *5100 )
+ END
diff --git a/fer/plt/set_window.F b/fer/plt/set_window.F
index 4481c67..af3f695 100644
--- a/fer/plt/set_window.F
+++ b/fer/plt/set_window.F
@@ -96,6 +96,7 @@
* PyFr *kms* 7/13 Call SET_PPL_VALUES to set scaled lengths and label sizes;
* set physical_chg to .TRUE. if START_PPLUS called or
* if the engine changes
+* V69x *sh* 21/1/15 clarify data type of arguments sent to QUERY_DISPLAY_SIZE
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -117,23 +118,22 @@
include 'fgrdel.cmn' ! with windowdpix and windowdpiy
* calling argument declarations:
- INTEGER status
+ INTEGER status
* internal variable declarations:
- LOGICAL TM_DIGIT, MATCH4, FGD_ENGINE_MATCH,
- . physical_chg, relocate, chg_window, axis_ref
- INTEGER TM_LENSTR1, ier, id, itype, imeter, irx, iry,
- . wn, n, qp, ivp, colon_pos, slen, tlen, i, s1,
- . idone, bkgcolor, xpixels, ypixels
- REAL dmaxx, dmaxy, xln, yln, xmn, xmx, ymn, ymx,
- . scale, xstretch, ystretch, aspect, ref_len,
- . xsc, ysc
- REAL*4 rzero, rone, fcty, fctx,
- . xwlo, ywlo, xwhi, ywhi, dfltthick,
- . redfrac, grnfrac, bluefrac, opaqfrac,
- . xinches, yinches, sc
- CHARACTER UPPER_CASE*1, GKS_X_CONID*16, warnmsg*80,
- . arg1*1, buffer*24, xwind_id*80, short_buff*24
+ LOGICAL TM_DIGIT, MATCH4, FGD_ENGINE_MATCH,
+ . physical_chg, relocate, chg_window, axis_ref
+ INTEGER TM_LENSTR1, ier, id, itype, imeter, irx, iry,
+ . wn, n, qp, ivp, colon_pos, slen, tlen, i, s1,
+ . bkgcolor, xpixels, ypixels
+ REAL xln, yln, xmn, xmx, ymn, ymx, scl,
+ . xstretch, ystretch, aspect, ref_len, xsc, ysc
+ REAL*4 rzero, rone, fcty, fctx,
+ . xwlo, ywlo, xwhi, ywhi, dfltthick,
+ . redfrac, grnfrac, bluefrac, opaqfrac,
+ . xinches, yinches, sc, owd
+ CHARACTER UPPER_CASE*1, GKS_X_CONID*16, warnmsg*80,
+ . arg1*1, buffer*24, xwind_id*80, short_buff*24
* local parameter declarations:
INTEGER slash_new,
@@ -146,7 +146,8 @@
. slash_color,
. slash_opacity,
. slash_thicken,
- . slash_textprom
+ . slash_textprom,
+ . slash_outline
PARAMETER ( slash_new = 1+1,
. slash_clear = 4+1,
. slash_title = 5+1,
@@ -157,7 +158,8 @@
. slash_color = 10+1,
. slash_opacity = 11+1,
. slash_thicken = 12+1,
- . slash_textprom = 17+1 )
+ . slash_textprom = 17+1,
+ . slash_outline = 18+1 )
rzero = 0.0
rone = 1.0
@@ -440,10 +442,10 @@ c 75 CONTINUE
qp = qual_given(slash_thicken)
IF ( qp .GT. 0 ) THEN
CALL EQUAL_VAL(cmnd_buff(qual_start(qp):qual_end(qp)),
- . scale, status)
+ . scl, status)
IF ( status .NE. ferr_ok ) RETURN
- IF ( scale .LE. 0.0 ) GOTO 5070
- dfltthick = scale
+ IF ( scl .LE. 0.0 ) GOTO 5070
+ dfltthick = scl
CALL FGD_SET_THICK_FACTOR(n, dfltthick)
ENDIF
@@ -451,14 +453,25 @@ c 75 CONTINUE
qp = qual_given(slash_textprom)
IF ( qp .GT. 0 ) THEN
CALL EQUAL_VAL(cmnd_buff(qual_start(qp):qual_end(qp)),
- . scale, status)
+ . scl, status)
IF ( status .NE. ferr_ok ) RETURN
- IF ( scale .LE. 0.0 ) GOTO 5090
+ IF ( scl .LE. 0.0 ) GOTO 5090
* Note: scale text by this factor as well as by pplscale
- CALL SET_TEXT_SIZES(n, scale)
+ CALL SET_TEXT_SIZES(n, scl)
ENDIF
-* background color is always color zero
+* set polygon/rectangle outline width?
+ qp = qual_given(slash_outline)
+ IF ( qp .GT. 0 ) THEN
+ CALL EQUAL_VAL(cmnd_buff(qual_start(qp):qual_end(qp)),
+ . scl, status)
+ IF ( status .NE. ferr_ok ) RETURN
+ IF ( scl .LT. 0.0 ) GOTO 5100
+ owd = scl
+ CALL FGD_SET_OUTLINE_WIDTH(n, owd)
+ ENDIF
+
+* background color will always use color number zero
bkgcolor = 0
* background color specified?
qp = qual_given(slash_color)
@@ -473,10 +486,10 @@ c 75 CONTINUE
qp = qual_given(slash_opacity)
IF ( qp .GT. 0 ) THEN
CALL EQUAL_VAL(cmnd_buff(qual_start(qp):qual_end(qp)),
- . scale, status)
+ . scl, status)
IF ( status .NE. ferr_ok ) RETURN
- IF ( (scale .LT. 0.0) .OR. (scale .GT. 100.0) ) GOTO 5080
- opaqfrac = scale / 100.0
+ IF ( (scl .LT. 0.0) .OR. (scl .GT. 100.0) ) GOTO 5080
+ opaqfrac = scl / 100.0
* create a temporary color with the new opacity for the active window
CALL DUP_COLOR_SET_OPACITY(n, bkgcolor, opaqfrac)
ENDIF
@@ -511,5 +524,8 @@ c 75 CONTINUE
5090 CALL ERRMSG( ferr_out_of_range, status,
. 'Invalid text prominence specification; '//
. 'a positive number must be given', *5000)
+ 5100 CALL ERRMSG( ferr_out_of_range, status,
+ . 'Invalid outline width specification; '//
+ . 'a non-negative number must be given', *5000)
END
diff --git a/fer/plt/taxis_style.F b/fer/plt/taxis_style.F
index d3aa86b..102114f 100644
--- a/fer/plt/taxis_style.F
+++ b/fer/plt/taxis_style.F
@@ -1,4 +1,4 @@
- SUBROUTINE TAXIS_STYLE( x_or_y, lo_bc, hi_bc, tstyle )
+ SUBROUTINE TAXIS_STYLE( x_or_y, lo_bc, hi_bc, tstyle, imposed_lab )
*
*
@@ -55,16 +55,20 @@
* V66 7/10 *kms* - undiscovered bug fixed: 'TXTYPE_SETTING' was used
* directly instead of buff30 in call to GETSYM
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
-
+* V695+ *sh* 3/15 Added argument "imposed_lab" to disambiguate F and T axes
+* V695 *acm* 9/15 Changes for hour:min labeling on time axes
include 'ferret.parm'
include 'plot_setup.parm'
+ include 'tmap_dims.parm'
+ include 'xplot_setup.cmn'
include 'axis_inc.decl' ! with axis lengths
include 'AXIS.INC' ! with axis lengths
* calling argument declarations:
CHARACTER x_or_y*1, tstyle*3
+ CHARACTER*(*) imposed_lab
REAL*8 lo_bc, hi_bc
* parameter definitions:
@@ -77,7 +81,7 @@
LOGICAL climatology, its_x
INTEGER TM_LENSTR1, itax, hi_int, slen, i1, i2
CHARACTER ppl_cmnd*128, tstyle_long*10, buff30*30, buff*10
- REAL hrs, hrsper8, axlen
+ REAL hrs, hrsper8, axlen, labsize
* time axis style table
INTEGER tax_loint( pmax_tax ), ! PPL TXLINT lo,...
@@ -85,9 +89,9 @@
REAL tax_hours( pmax_tax ) ! bounds: range-->style
CHARACTER*10 tax_style( pmax_tax ) ! PPL TXTYPE value
- DATA tax_hours(1) / 24. /, ! 0-24 hour long axis
- . tax_style(1) / 'DAY' /,
- . tax_loint(1) / 1 /,
+ DATA tax_hours(1) / 12. /, ! < 24 hour long axis with partial days, see label 510 for HR type
+ . tax_style(1) / 'HR'/,
+ . tax_loint(1) / 3 /,
. tax_hiint(1) / 1 /
DATA tax_hours(2) / 144. /, ! 24 hour to 6 day long axis
. tax_style(2) / 'DAY' /,
@@ -178,8 +182,11 @@
500 CONTINUE
itax = pmax_tax
+
* TXTYPE and TXLINT commands (time axis style)
510 tstyle_long = tax_style( itax )
+ IF (hrs .LE. 12) tstyle_long = 'HR'
+ IF (hrs .LE. 2) tstyle_long = 'MIN'
tstyle = tstyle_long ! 3 character, only
CALL PPLCMD ( from, line, 0, 'TXTYPE '//tstyle_long, 1, 1 )
@@ -214,5 +221,31 @@
! ENDIF
! ENDIF
+* special "imposed" labels (used to disambiguate T and F axes)
+ IF (imposed_lab .NE. ' ') THEN
+ slen = TM_LENSTR1(imposed_lab)
+ labsize = dflt_letsize_label * textscale
+ IF ( its_x ) THEN
+* ... lower left corner along the horizontal page edge
+ CALL PUT_LABEL( ppl_movlab,
+ . 0.5-xorg, labsize-yorg,
+ . ppl_left_just, labsize,
+ . '@AS'//imposed_lab(:slen),
+ . lab_loc_absolute, lab_loc_absolute )
+ ELSE
+* ... lower left corner, rotated along the vertical page edge
+ CALL PUT_LABEL( ppl_movlab,
+ . 2*labsize-xorg, 0.5-yorg,
+ . ppl_left_just, labsize,
+ . '@AS'//imposed_lab(:slen),
+ . lab_loc_absolute, lab_loc_absolute )
+
+* ... rotate it
+ WRITE ( buff30, 3100 ) nlabs_on
+ 3100 FORMAT ('RLABS ',I4, ',90')
+ CALL PPLCMD ( from, line, 0, buff30, 1, 1 )
+ ENDIF
+ ENDIF
+
RETURN
END
diff --git a/fer/plt/trim_axis_ends.F b/fer/plt/trim_axis_ends.F
index ba8612b..dfda2c0 100644
--- a/fer/plt/trim_axis_ends.F
+++ b/fer/plt/trim_axis_ends.F
@@ -45,6 +45,7 @@
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* *acm* 4/12 6D Ferret: time axis may be in t or f direction. The time
* dimension is now an arg to SECS_TO_TSTEP.
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -105,7 +106,8 @@
* 8/97 *kob* - check cx_calender for a date time rather than ww_low
ww_low = cx_lo_ww( idim, exp_cx )
ww_hiw = cx_hi_ww( idim, exp_cx )
- IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. cx_calendar(exp_cx) ) THEN
+ IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND.
+ . cx_calendar(idim,exp_cx) ) THEN
ww_low = SECS_TO_TSTEP( grid, idim, -ww_low )
ww_hiw = SECS_TO_TSTEP( grid, idim, -ww_hiw )
ENDIF
diff --git a/fer/plt/window_size_from_opts.F b/fer/plt/window_size_from_opts.F
index 1795163..036c74a 100644
--- a/fer/plt/window_size_from_opts.F
+++ b/fer/plt/window_size_from_opts.F
@@ -82,7 +82,7 @@
. xinches_gvn, yinches_gvn
INTEGER qp, colon_pos, dspunit, imaxx, imaxy
REAL val, aspect, xtmp, ytmp
- REAL*4 dmaxx, dmaxy
+ REAL*4 dmaxx, dmaxy, newdpi
CHARACTER buffer*80, numbuff*24, asp_ref*1
* No size changes during animation
@@ -124,10 +124,6 @@
xpixels = -1
ypixels = -1
-* make sure we have the correct dpi's for this window
- CALL FGD_GQDSP(windid, istat, dspunit,
- . dmaxx, dmaxy, imaxx, imaxy)
-
* Default to edges for the aspect
asp_ref = 'E'
IF ( aspect_gvn ) THEN
@@ -277,12 +273,27 @@
val = dflt_imgscale
ENDIF
+* make sure we have the correct dpi's for this window
+ CALL FGD_GQDSP(windid, istat, dspunit,
+ . dmaxx, dmaxy, imaxx, imaxy)
+
IF ( .NOT. (xpixels_gvn .OR. ypixels_gvn) ) THEN
* Pixel size not specified; use the (possibly default)
* page size at the window DPI, and scale by any /size value
xpixels = NINT(windowdpix(windid) * xinches * SQRT(val))
ypixels = NINT(windowdpiy(windid) * yinches * SQRT(val))
IF ( (xpixels .LT. 128) .OR. (ypixels .LT. 128) ) GOTO 5090
+ ELSE
+* If there is no display (cairo) associated with this window,
+* set the window DPI from these values. If there is a display
+* associated with this window, this call does nothing and
+* negative one is returned in istat.
+ newdpi = DBLE(xpixels) / DBLE(xinches)
+ CALL FGD_SET_WINDOW_DPI(istat, windid, newdpi)
+ IF ( istat .GT. 0 ) THEN
+ windowdpix(windid) = newdpi
+ windowdpiy(windid) = newdpi
+ ENDIF
ENDIF
* successful completion
diff --git a/fer/pyf/get_data_array_time_coords.F b/fer/pyf/get_data_array_time_coords.F
index cd6f86f..e2b69e7 100644
--- a/fer/pyf/get_data_array_time_coords.F
+++ b/fer/pyf/get_data_array_time_coords.F
@@ -100,7 +100,7 @@
ENDIF
DO 100 k = ss_low,ss_high
worldsecs = TM_WORLD(k, grid, axnum, box_middle)
- CALL TSTEP_TO_DATE_OLD(grid, worldsecs, 6, timestr)
+ CALL TSTEP_TO_DATE(grid, axnum, worldsecs, 6, timestr)
* Try to read as DD-MTH-YYYY HH:MM:SS
* If fails, try another format
READ(timestr, FMT=110, ERR=20) day, monthstr, year,
diff --git a/fer/rpn/alg_break_up.F b/fer/rpn/alg_break_up.F
index ce279ed..0c28d1a 100644
--- a/fer/rpn/alg_break_up.F
+++ b/fer/rpn/alg_break_up.F
@@ -57,6 +57,10 @@
* change next_stat(10,4) to 4 --
* V685: 7/13 *acm* Bug 2084. If a string starts with . and is not numeric, make an atom.
* It'll generally be an error.
+* V693+ 12/14 *sh* allow _QD_ and _SQ_ for quotation alternatives
+* Filled in state=13 (interpreting exponent) DATA inits
+* Hoping I did so correctly ...
+* v694 6/15 *acm* fixes for 2296 -- quotes and curly braces {"{a}"}
include 'ferret.parm'
include 'errmsg.parm'
@@ -71,9 +75,11 @@
. requires_closure(num_state),
. have_exp_digits
INTEGER ALG_CLASS, TM_LENSTR1,
- . tlen, p, state, last_state, class,
+ . tlen, p, state, last_state, last_last_state, class,
. i, next_state(num_class,num_state),
- . brkt_nest_level, pn
+ . brkt_nest_level, pn,
+ . curly_brace_nest, q_in_curly_brace
+
* possible states of lexical analysis
* S1 - looking for start of atom
@@ -89,6 +95,10 @@
* S11- ignoring characters inside {}
* S12- inside of double quote pair
* S13- interpreting exponent, found exponential value
+* S14- interpreting "_" as a possible quote signal
+* S15- inside of _DQ_ (alt double quote) pair
+* S16- inside of _SQ_ (alt single quote) pair
+
* -1 ==> Syntax Error
* -2 ==> Illegal Character
@@ -97,7 +107,7 @@
* classes of characters
* C1 - + -
* C2 - digits
-* C3 - letters _ _
+* C3 - letters
* C4 - [
* C5 - ]
* C6 - * / ^ , (
@@ -109,34 +119,43 @@
* C12- {
* C13- }
* C14- "
-* C15- all others
+* C15- _
+* C16- all others
* ... CHARACTER CLASS: next_state(class, last_state) ...
-* C1 C2 C3 C4 C5 C6 C7 C8 C9 C10C11C12C13C14C15
+* C1 C2 C3 C4 C5 C6 C7 C8 C9 C10C11C12C13C14C15C16
DATA (next_state(i,1),i=1,num_class)
- . / 2, 3, 4,-1,-1, 5, 5, 1, 4, 3,10,11,-1,12,-2/
+ . / 2, 3, 4,-1,-1, 5, 5, 1, 4, 3,10,11,-1,12,14,-2/
DATA (next_state(i,2),i=1,num_class)
- . / 7, 3, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 7,-2/
+ . / 7, 3, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 7,14,-2/
DATA (next_state(i,3),i=1,num_class)
- . / 7, 3,3,-1,-1, 7, 7, 7, 8, 3, 7,-1,-1, 7,-2/
+ . / 7, 3, 3,-1,-1, 7, 7, 7, 8, 3, 7,-1,-1, 7,14,-2/
DATA (next_state(i,4),i=1,num_class)
- . / 7, 4, 4, 6,-1, 7, 7, 7, 4, 4, 7,-1,-1, 7,-2/
+ . / 7, 4, 4, 6,-1, 7, 7, 7, 4, 4, 7,-1,-1, 7,14,-2/
DATA (next_state(i,5),i=1,num_class)
- . /-9,-9,-9,-9,-9,-9,-9,-9,-9, -9,-9,-9,-9,-9,-2/
+ . /-9,-9,-9,-9,-9,-9,-9,-9,-9, -9,-9,-9,-9,-9,14,-2/
DATA (next_state(i,6),i=1,num_class)
- . / 6, 6, 6, 9, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6/
+ . / 6, 6, 6, 9, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6,14, 6/
DATA (next_state(i,7),i=1,num_class)
- . /-9,-9,-9,-9,-9,-9,-9,-9,-9, -9,-9,-9,-9,-9,-2/
+ . /-9,-9,-9,-9,-9,-9,-9,-9,-9, -9,-9,-9,-9,-9,14,-2/
DATA (next_state(i,8),i=1,num_class)
- . / 8, 13, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,-2/
+ . / 8,13, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,14,-2/
DATA (next_state(i,9),i=1,num_class)
- . / 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9/
+ . / 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9/
DATA (next_state(i,10),i=1,num_class)
- . / 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10/
+ . /10,10,10,10,10,10,10,10,10, 10,10,10,10,10,10,10/
DATA (next_state(i,11),i=1,num_class)
- . /11,11,11,11,11,11,11,11,11, 11,11,11, 5,11,11/
+ . /11,11,11,11,11,11,11,11,11, 11,11,11, 5,11,11,11/
DATA (next_state(i,12),i=1,num_class)
- . / 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12/
+ . /12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12/
+ DATA (next_state(i,13),i=1,num_class)
+ . /-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1/
+ DATA (next_state(i,14),i=1,num_class)
+ . /14,14,14,14,14,14,14,14,14, 14,14,14,14,14,14,14/
+ DATA (next_state(i,15),i=1,num_class)
+ . /15,15,15,15,15,15,15,15,15, 15,15,15,15,15,14,15/
+ DATA (next_state(i,16),i=1,num_class)
+ . /16,16,16,16,16,16,16,16,16, 16,16,16,16,16,14,16/
* which states are not valid on exit (e.g. unclosed braces)
@@ -152,6 +171,9 @@
DATA requires_closure(10)/.TRUE. / !S10- inside of single quote pair
DATA requires_closure(11)/.TRUE. / !S11- ignoring characters inside {}
DATA requires_closure(12)/.TRUE. / !S12- inside of double quote pair
+ DATA requires_closure(13)/.FALSE./ !S13- interpreting exponent
+ DATA requires_closure(14)/.TRUE. / !S14- inside of _QD_ quote pair
+ DATA requires_closure(15)/.TRUE. / !S15- inside of _SQ_ quote pair
* initialize
* "was_operand" flags the character of the previous atom to distinguish the
@@ -160,10 +182,13 @@
natom = 0
p = 0
state = 1
+ last_state = 1
was_operand = .FALSE.
atom_open = .FALSE.
have_exp_digits = .FALSE.
brkt_nest_level = 0
+ curly_brace_nest = 0
+ q_in_curly_brace = 0
* advance to next character
5 p = p + 1
@@ -177,11 +202,13 @@
ENDIF
* check next character
- 10 last_state = state
+ 10 last_last_state = last_state ! so "_" can morph to a letter
+ last_state = state
class = ALG_CLASS( text(p:p) )
* determine lexical analysis state to determine next action
50 state = next_state( class, last_state )
+
IF ( state .EQ. -2 ) GOTO 5100
IF ( state .EQ. -1 ) GOTO 5200
IF ( state .EQ. -9 ) GOTO 5900
@@ -228,9 +255,14 @@
ENDIF
ENDIF
+* Curly braces inside quotes inside curly braces
+* Hack to work around the case in ticket 2296
+
+ IF (class.EQ.13 .AND. state.EQ.5 .AND. curly_brace_nest.GT.0) state = 11
+
* take appropriate action
-* S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13
- GOTO (9999,100,100,100,500,100,700,100, 900,1000,100,1100,1300)
+* S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16
+ GOTO (9999,100,100,100,500,100,700,100, 900,1000,1100,1200,1300,1400,100,100)
. state
* continue to next character
@@ -239,6 +271,11 @@
* flag the last character of an atom - begin search for next atom
500 at_end(natom) = p
state = 1
+
+* reset - previous atoms may have had a quote not a pair of quotes inside curly braces
+ curly_brace_nest = 0
+ q_in_curly_brace = 0
+
atom_open = .FALSE.
GOTO 5
@@ -278,12 +315,30 @@
ENDIF
GOTO 5
+* Curly braces inside quotes inside curly braces
+* Hack to work around the case in ticket 2296
+ 1100 IF (class .EQ. 14 .AND. q_in_curly_brace.EQ.0) ! quote inside curly braces
+ . q_in_curly_brace = q_in_curly_brace + 1
+
+ IF (class.EQ.12 .AND. q_in_curly_brace.GT.0) ! further curly brace start found
+ . curly_brace_nest = curly_brace_nest + 1
+
+ IF (class.EQ.13 .AND. curly_brace_nest.GT.0) THEN ! curly brace end found
+ curly_brace_nest = curly_brace_nest - 1
+ state = 11
+ ENDIF
+ GOTO 5
+
* double-quoted strings (mod 1/99)
* this probably violates the theoretical underpinnings of the finite state
* engine but ... what the heck, it's an easy hack
* stay in this state until the matching \" is found
* Note: this crude code cannot deal with nested quotations or escaped quotes
- 1100 IF (class .EQ. 14) THEN ! quote found
+ 1200 IF (class .EQ. 14) THEN ! quote found
+ IF (last_state .EQ. 11 .AND. q_in_curly_brace.GT.0) THEN
+ state = 11
+ q_in_curly_brace = q_in_curly_brace - 1
+ ENDIF
IF (last_state .EQ. 12) THEN
GOTO 500 ! closing quote found
* ... note that we may still be interpreting names like 'X'[stuff]
@@ -299,6 +354,45 @@
1300 state = 3
GOTO 5
+* "_" underscore -- possible indicator of _DQ_ or _SQ_
+ 1400 IF ( p .GT. tlen-3 ) THEN
+ GOTO 1410 ! cant be _DQ_ or _SQ_
+ ELSEIF (text(p:p+3) .EQ. p_DQ_quote) THEN
+ IF (atom_open. AND. p.EQ.at_start(natom)) THEN
+* ... start of _DQ_ enclosed string
+ p = p+3
+ state = 15
+ GOTO 5
+ ELSEIF (last_state .EQ. 15) THEN
+* ... this is a closing quote. We have been inside of _DQ_ enclosed string
+ p = p+3
+ GOTO 500
+ ELSE
+* ... the characters "_DQ_", but not start or end of string
+ GOTO 1410
+ ENDIF
+ ELSEIF (text(p:p+3) .EQ. p_SQ_quote) THEN
+ IF (atom_open. AND. at_start(natom) .EQ. p) THEN
+* ... start of _SQ_ enclosed string
+ p = p+3
+ state = 16
+ GOTO 5
+ ELSEIF (last_state .EQ. 16) THEN
+* ... this is a closing quote. We have been inside of _SQ_ enclosed string
+ p = p+3
+ state = 4 ! we may have _SQ_X_SQ_[stuff]
+ GOTO 5
+ ELSE
+* ... the characters "_SQ_", but not start or end of string
+ GOTO 1410
+ ENDIF
+ ENDIF
+
+* ... go back and try again, treating this underscore like any other letter
+ 1410 last_state = last_last_state ! needed? playing it safe ...
+ class = 3 ! a letter
+ GOTO 50
+
* error exits
5000 status = ferr_syntax
diff --git a/fer/rpn/alg_class.F b/fer/rpn/alg_class.F
index c5d8881..fc8ce32 100644
--- a/fer/rpn/alg_class.F
+++ b/fer/rpn/alg_class.F
@@ -53,6 +53,7 @@
* 2/03 *kob* - g77 port - g77 won't allow intrinsic functions in PARAMETER
* statements. use an octal constant instead
* *acm* 3/12 cleanup ifdefs and unnecessary include files
+* 12/14 *sh* "_" is a separate character class needed for _DQ_ and _SQ_
include 'ferret.parm'
@@ -70,7 +71,7 @@
* classes of characters
* C1 - + -
* C2 - digits
-* C3 - letters _ _
+* C3 - letters
* C4 - [
* C5 - ]
* C6 - * / ^ , (
@@ -82,6 +83,7 @@
* C12- {
* C13- }
* C14- "
+* C15- _
* C15- all others
IF ( ctr.EQ.'+' .OR. ctr.EQ.'-' ) THEN
@@ -91,8 +93,7 @@
ELSEIF ( ctr.EQ.'E' .OR. ctr.EQ.'e' ) THEN
ALG_CLASS = 9
ELSEIF ( ( ctr.GE.'A' .AND. ctr.LE.'Z' )
- . .OR. ( ctr.GE.'a' .AND. ctr.LE.'z' )
- . .OR. ( ctr.EQ.'_' .OR. ctr.EQ.'_' ) ) THEN
+ . .OR. ( ctr.GE.'a' .AND. ctr.LE.'z' ) ) THEN
ALG_CLASS = 3
ELSEIF ( ctr.EQ.'[' ) THEN
ALG_CLASS = 4
@@ -115,8 +116,10 @@
ALG_CLASS = 13
ELSEIF ( ctr.EQ.'"' ) THEN
ALG_CLASS = 14
- ELSE
+ ELSEIF ( ctr.EQ.'_' ) THEN
ALG_CLASS = 15
+ ELSE
+ ALG_CLASS = 16
ENDIF
RETURN
diff --git a/fer/rpn/alg_id.F b/fer/rpn/alg_id.F
index ba5c136..780d456 100644
--- a/fer/rpn/alg_id.F
+++ b/fer/rpn/alg_id.F
@@ -65,6 +65,7 @@
* zero as valid.
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* V685+ 12/13 *acm* bounds checking: tm_digit needs more care in the argument sent in.
+* V693+ 12/14 *sh* allow _QD_ and _SQ_ for quotation alternatives
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -80,7 +81,7 @@
CHARACTER*(*) text
* internal variable declarations:
- LOGICAL TM_DIGIT, TM_LEGAL_NAME, is_digit
+ LOGICAL TM_DIGIT, TM_LEGAL_NAME, is_digit, single_quoted
INTEGER STR_MATCH, GCF_FIND_FCN, TM_LENSTR1,
. imatch, i, i2, j, brac_pos, aend,
. num_indices, dot, new_nat, first, second, slen
@@ -202,6 +203,19 @@
GOTO 100
ENDIF
+* string in _DQ_ style double quotes?
+ IF (at_end(i)-at_start(i)+1 .GE. 8) THEN
+ IF ( text(at_start(i):at_start(i)+3).EQ.p_DQ_quote
+ . .AND. text(at_end(i)-3:at_end (i) ).EQ.p_DQ_quote ) THEN
+ at_type(i) = alg_string
+!* ... trim string to have only a simple enclosing "_"
+! at_start(i) = at_start(i) + 3
+! at_end (i) = at_end (i) - 3
+ at_id(i) = unspecified_int4
+ GOTO 100
+ ENDIF
+ ENDIF
+
* attribute value variable.attname (will check later whether the
* variable is in a netCDF dataset and whether the attribute exists)
@@ -243,6 +257,14 @@ c . at_end(i) - at_start(i)+1 ) THEN
IF (first .GT. 0 .AND. second .GT. 0 .AND.
. dot .GT. first .AND. dot .LT. second) GOTO 99
+* identical logic to the previous check, but now looking for _SQ_-enclosed name
+ first = INDEX(varname, p_SQ_quote)
+ second = 0
+ IF (slen .GT. 4) second = INDEX(varname(5:at_end(i)), p_SQ_quote )
+
+ IF (first .GT. 0 .AND. second .GT. 0 .AND.
+ . dot .GT. first .AND. dot .LT. second) GOTO 99
+
* Otherwise this is a varname.attname
at_type(i) = alg_attrib_val
at_id(i) = unspecified_int4
@@ -277,8 +299,11 @@ c . at_end(i) - at_start(i)+1 ) THEN
ENDIF
* cant identify it - we will call it an variable for now
- 99 IF (text(at_start(i):at_start(i)) .NE. "'" ) THEN
-* (7/98) only check name if it is not in quotation marks
+* check for legal name not enclosed in quotation marks or _SQ_
+ 99 single_quoted = text(at_start(i):at_start(i)) .EQ. "'"
+ IF (.NOT.single_quoted .AND. at_end(i)-at_start(i).GE.7)
+ . single_quoted = text(at_start(i):at_start(i)+3) .EQ. p_SQ_quote
+ IF (.NOT.single_quoted) THEN
IF ( .NOT.TM_LEGAL_NAME(text(at_start(i):aend)) ) GOTO 5100
ENDIF
at_type(i) = alg_variable
diff --git a/fer/rpn/break_varattname.F b/fer/rpn/break_varattname.F
index 62b68e4..1c0814f 100644
--- a/fer/rpn/break_varattname.F
+++ b/fer/rpn/break_varattname.F
@@ -83,7 +83,7 @@
* Break text at dot: varname.attname
dset = dset_in
- IF (dset .EQ. unspecified_int4) dset = -1 ! try user variables.
+ IF (dset .EQ. unspecified_int4) dset = pdset_uvars ! try user variables.
tlen = TM_LENSTR(text)
@@ -225,9 +225,9 @@
* which just depends on that data set
IF (status .NE. ferr_ok) THEN
- dset = -1
+ dset = pdset_uvars
CALL CD_GET_VAR_ID (dset, varname, varid, status)
- IF (status .EQ. ferr_ok) dset = -1
+ IF (status .EQ. ferr_ok) dset = pdset_uvars
ENDIF
IF (status .NE. ferr_ok .AND.
diff --git a/fer/rpn/break_varname.F b/fer/rpn/break_varname.F
index d8de0f9..63e5d14 100644
--- a/fer/rpn/break_varname.F
+++ b/fer/rpn/break_varname.F
@@ -48,6 +48,7 @@
* it may be a user var(as in break_varattname, where the bug
* occurred, but make the same change here.)
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V6.94 3/15 *acm* Fix ticket 2249: attribute handling for user-defined variables
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -139,6 +140,7 @@
dset_try = -1
CALL CD_GET_VAR_ID (dset_try, varname, varid, status)
IF (status .EQ. ferr_ok) dset_in = -1
+ IF (status .EQ. ferr_ok) dset = -1
ENDIF
diff --git a/fer/rpn/init_uvar.F b/fer/rpn/init_uvar.F
index 6768e1e..65ca93f 100644
--- a/fer/rpn/init_uvar.F
+++ b/fer/rpn/init_uvar.F
@@ -93,6 +93,8 @@
* use when writing out user-defined variables when MODE UPCASE_OUTPUT
* is cancelled.
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V694 *acm* 1214 Fixing ticket 2220: a variablename.attname argument to a function
+* needs to be added as a child variable
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -206,6 +208,14 @@
* ...(10/99)also treat sst[y=5s:5n:1] as a "complex" argument (has impl grid)
istart = at_start (gc_arg_start)
iend = at_end (gc_arg_start)
+
+ IF ( at_type(gc_arg_start) .EQ. alg_attrib_val) THEN
+* ... make a varname.attname argument into a separate child variable
+ child_start = gc_arg_start
+ child_end = iat - 1
+ GOTO 800
+ ENDIF
+
IF ( (at_type(gc_arg_start) .EQ. alg_child_var)
. .OR. ( (iat .EQ. gc_arg_start+1)
. .AND. (at_type(gc_arg_start) .NE. alg_constant)
diff --git a/fer/rpn/init_uvar_sub.F b/fer/rpn/init_uvar_sub.F
index 944b51e..6a7029d 100644
--- a/fer/rpn/init_uvar_sub.F
+++ b/fer/rpn/init_uvar_sub.F
@@ -63,7 +63,7 @@
* 1/03 *kob* g77 port - requires use of risc_buff for concats
* bug fix - reference to uvar_text was missing uvar reference
* V600 4/06 *acm* - additional declarations found by Solaris compiler
-* V601 11/06 *acm* - add user variables always to dataset -1. Previously
+* V601 11/06 *acm* - add user variables always to dataset pdset_uvars. Previously
* variables defined with LET/D= were added to that dataset.
* V602 2/07 *acm* Fix bug 1492, changing attributes of coordinate variables
* V62 2/09 *acm* Pass the original upper/lowercase spelling of user-defined variable
@@ -74,6 +74,8 @@
* V671 7/11 *acm* Ticket 1868 IFV - masking expressions with ifValid, treating
* zero as valid.
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V693+ *sh* 12/14 add support for _DQ_ and _SQ_ as qutation delimiters
+* *acm* 2/15 Prevent run-time errors in string length for _DQ_ handling
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -99,9 +101,11 @@
CHARACTER err_string*255, c*1, attname*128
* internal parameter declarations
- INTEGER p_single_quote, p_double_quote
+ INTEGER p_single_quote, p_double_quote, p__DQ_, p__SQ_
PARAMETER ( p_single_quote = 1,
- . p_double_quote = 2 )
+ . p_double_quote = 2,
+ . p__DQ_ = 3,
+ . p__SQ_ = 4 )
* kob 9/30/98 This needed for 7/7/98 code addition
#ifdef FORTRAN_90
@@ -136,7 +140,9 @@
uvar_text(uvar) = ' '
i2 = 0
inquote = .FALSE.
- DO 100 i = txstart, txend
+ i = txstart - 1
+ DO WHILE (i .LT. txend)
+ i = i + 1
i2 = i2 + 1
c = text(i:i)
IF ( c .EQ. "'" ) THEN
@@ -155,6 +161,31 @@
inquote = .TRUE.
quote_type = p_double_quote
ENDIF
+ ELSEIF ( txend-txstart .GT. 7 .AND. i.LE.txend-3 ) THEN
+ iat = 1
+ IF (text(i:i+3) .EQ. p_DQ_quote) THEN
+* ... found "_DQ_" -- start or end of string?
+ IF (inquote) THEN
+ IF (quote_type.EQ.p__DQ_) inquote = .FALSE.
+ ELSE
+ inquote = .TRUE.
+ quote_type = p__DQ_
+ ENDIF
+ uvar_text(uvar)(i2:i2+2) = text(i:i+2)
+ i = i + 3
+ i2 = i2 + 3
+ ELSEIF (text(i:i+3) .EQ. p_SQ_quote) THEN
+* ... found "_SQ_" -- start or end of string?
+ IF (inquote) THEN
+ IF (quote_type.EQ.p__SQ_) inquote = .FALSE.
+ ELSE
+ inquote = .TRUE.
+ quote_type = p__SQ_
+ ENDIF
+ uvar_text(uvar)(i2:i2+2) = text(i:i+2)
+ i = i + 3
+ i2 = i2 + 3
+ ENDIF
ENDIF
IF ( inquote .OR. (c .LT. 'a' .OR. c .GT. 'z' ) ) THEN
uvar_text(uvar)(i2:i2) = c ! preserve case
@@ -174,7 +205,7 @@
# endif
#endif
ENDIF
- 100 CONTINUE
+ ENDDO
* (7/98) end of quote-sensitive case changing loop
c* copy title, units, dset, and missing flag into buffers
@@ -193,7 +224,7 @@ c* copy title, units, dset, and missing flag into buffers
type = 0
coordvar = 0
IF (name(1:3) .NE. 'EX#' .AND. .NOT.child) THEN
- dset_to_add = -1 ! user-variable dataset.
+ dset_to_add = pdset_uvars ! user-variable dataset.
err_string = title ! save the value and restore below
IF (TM_LENSTR(title) .LT. 1) title = uvar_text(uvar)
diff --git a/fer/special/ferret_dispatch.F b/fer/special/ferret_dispatch.F
index 6a03daf..1c95fd7 100644
--- a/fer/special/ferret_dispatch.F
+++ b/fer/special/ferret_dispatch.F
@@ -117,7 +117,8 @@
* V664 *kms* 8/10 Add second alternate return from XEQ_EXIT to exit the dispatch
* loop but just re-enter the loop if not under pyferret
* *acm* 3/12 removing use USER command
-*V685 *acm* 11/13 Issue an ERROR not a NOTE if USER command is tried.
+* V685 *acm* 11/13 Issue an ERROR not a NOTE if USER command is tried.
+* V695 *acm* 6/16 New ANNOTATE command.
include 'tmap_dims.parm'
include 'xalt_messages.cmn_text'
@@ -196,7 +197,7 @@ c DO 2 i = 1, 200
GOTO ( 10, 20, 30, 40, 50, 60, 70, 80, 90,100,
. 110,120,130,140,150,160,170,180,190,200,
- . 210,220,230,240,250,260,270 ) cmnd_num
+ . 210,220,230,240,250,260,270,280 ) cmnd_num
10 CALL XEQ_SET( memory, reconfig )
IF ( reconfig .NE. 0 ) GOTO 400
@@ -254,6 +255,8 @@ c DO 2 i = 1, 200
GOTO 300
270 CALL XEQ_POLYGON( memory )
GOTO 300
+ 280 CALL XEQ_ANNOTATE
+ GOTO 300
* finished a single command
300 gui_action = factn_no_action ! default
diff --git a/fer/stk/SOURCE_FILES b/fer/stk/SOURCE_FILES
index ffeb4e0..060104d 100644
--- a/fer/stk/SOURCE_FILES
+++ b/fer/stk/SOURCE_FILES
@@ -1,6 +1,8 @@
SRCS_F = \
aux_regrid_lims.F\
aux_regrid_lims_1d.F\
+aux_regrid_lims_1d_t.F\
+aux_regrid_lims_2d_tf.F\
bad_edges.F\
bad_edges_sub.F\
bad_ptr_edges_sub.F\
diff --git a/fer/stk/aux_regrid_lims.F b/fer/stk/aux_regrid_lims.F
index 5356716..42311f6 100644
--- a/fer/stk/aux_regrid_lims.F
+++ b/fer/stk/aux_regrid_lims.F
@@ -49,27 +49,56 @@
* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-*V685 4/13 *sh*
+*V685 4/13 *sh*
+*V689+ 3/15 *sh* added T-axis F-T orthoganalization
+* 5/15 *sh* generalize to allow 1D aux vars on all axes
- IMPLICIT NONE
+ include 'tmap_dims.parm'
+ include 'implicit.parm'
+ include 'ferret.parm'
include 'errmsg.parm'
+ include 'xcontext.cmn'
+ include 'xvariables.cmn'
* calling argument declarations:
INTEGER src_cx, axis, dst_cx, naxis, axis_list(*), status,
. mr1, cx1, mr2, cx2, mr3, cx3
REAL*8 aux1(*), aux2(*), aux3(*)
+* internal variable declarations
+ INTEGER axis1, axis2
+
* this is just a dispatch routine that fans out to routines
* based upon the number of dimensions in the regridding
-
+ axis1 = axis_list(1)
+ axis2 = axis_list(2)
IF ( naxis .EQ. 1 ) THEN
- CALL AUX_REGRID_LIMS_1D( dst_cx, src_cx, axis_list, naxis,
- . aux1, mr1, cx1, status )
+ IF ( axis1 .EQ. t_dim
+ . .AND. cx_regrid_trans(axis1,dst_cx) .EQ. pauxrgrd_fmrc) THEN
+ CALL AUX_REGRID_LIMS_1D_T( dst_cx, src_cx, axis1, naxis,
+ . aux1, mr1, cx1, status )
+ ELSE
+ CALL AUX_REGRID_LIMS_1D( dst_cx, src_cx, axis1,
+ . mr_lo_ss(mr1,axis1), mr_hi_ss(mr1,axis1),
+ . aux1, mr1, cx1, status )
+ ENDIF
IF (status .NE. ferr_ok) GOTO 5000
+
+ ELSEIF (naxis .EQ. 2) THEN
+ IF ( axis1.EQ.t_dim .AND. axis2.EQ.f_dim) THEN
+ CALL AUX_REGRID_LIMS_2D_TF( dst_cx, src_cx, axis_list, naxis,
+ . aux1, mr1, cx1, status )
+ ELSE
+ CALL ERRMSG(ferr_too_many_args, status,
+ . 'only 1D auxiliary variable regridding available at this time',
+ . *5000 )
+ ENDIF
+
ELSE
-* TEMPORARY: insert routine to get 2D curvilinear index bounds here
- CALL ERRMSG(ferr_internal, status, 'aux_regrid_lims', *5000 )
+ CALL ERRMSG(ferr_too_many_args, status,
+ . 'only 1D auxiliary variable regridding available at this time',
+ . *5000 )
ENDIF
* success
@@ -78,4 +107,7 @@
* error exit
5000 RETURN
+! 5100 CALL ERRMSG( ferr_invalid_command, status,
+! . '1-dim auxiliary variable regrid allowed'//
+! . ' on Z and T axes only', *5000)
END
diff --git a/fer/stk/aux_regrid_lims_1d.F b/fer/stk/aux_regrid_lims_1d.F
index 9340576..747cbb7 100644
--- a/fer/stk/aux_regrid_lims_1d.F
+++ b/fer/stk/aux_regrid_lims_1d.F
@@ -1,5 +1,6 @@
- SUBROUTINE AUX_REGRID_LIMS_1D( dst_cx, src_cx, axis_list, naxis,
- . aux1, mr1, cx1, status )
+ SUBROUTINE AUX_REGRID_LIMS_1D( dst_cx, src_cx,
+ . the_axis, axloss, axhiss,
+ . aux, aux_mr, aux_cx, status )
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -46,7 +47,7 @@
* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-*V690 3/13-1/14 *sh*
+*v695+ 3/15 *sh* from AUX_REGRID_LIMS_1D_Z
IMPLICIT NONE
@@ -59,23 +60,37 @@
include 'xmem_subsc.cmn'
* calling argument declarations:
- INTEGER src_cx, axis, dst_cx, naxis, axis_list(naxis), status,
- . mr1, cx1, mr2, cx2, mr3, cx3
- REAL*8 aux1(m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
- . m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+ INTEGER src_cx, axis, dst_cx, the_axis, axloss, axhiss, status,
+ . aux_mr, aux_cx
+ REAL*8 aux(m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+ . m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+ REAL*8 line(axloss:axhiss)
* internal variable declarations:
- LOGICAL increasing, increasing_here, looking_for_first
+ LOGICAL increasing, looking_for_first
INTEGER KNOWN_GRID,
. idim, src_grid, i, j, k, l, m, n, trans,
- . kdstmin, kdstmax, kkmin, kkmax, klo, khi, kdel
+ . kdstmin, kdstmax, ss, ssmin, ssmax, klo, khi, kdel,
+ . ss_lo(nferdims), ss_hi(nferdims), n_incr, n_decr
REAL*8 TM_WORLD, axmax, axmin, v, v1, bad_aux
* initialize
- bad_aux = mr_bad_data( mr1 )
+ bad_aux = mr_bad_data( aux_mr )
+ trans = cx_regrid_trans(the_axis,src_cx)
+
+* capture the data range and modify the target axis to a single point
+ DO idim = 1, nferdims
+ ss_lo(idim) = cx_lo_ss(aux_cx, idim)
+ ss_hi(idim) = cx_hi_ss(aux_cx, idim)
+ ENDDO
+ axloss = ss_lo(the_axis)
+ axhiss = ss_hi(the_axis)
+* ... a dummy loop on the designated axis
+ ss_lo(the_axis) = 1
+ ss_hi(the_axis) = 1
* insert source grid (the defining grid for this variable)
-* TEMPORARY -- ?move this block of code to AUX_VAR_REGRID when 2D curv is added?
+* XXXX TEMPORARY -- ?move this block of code to AUX_VAR_REGRID when 2D curv is added?
src_grid = KNOWN_GRID( cx_data_set(src_cx),
. cx_category(src_cx),
. cx_variable(src_cx) )
@@ -83,78 +98,75 @@
cx_unstand_grid( src_cx ) = .FALSE.
is_phase( isp ) = prgrd_from_source
cx_naux( src_cx ) = 0
- DO 100 idim = 1, nferdims
+ DO idim = 1, nferdims
cx_aux_var (idim, src_cx) = unspecified_int4
cx_aux_cat (idim, src_cx) = unspecified_int4
cx_aux_stat (idim, src_cx) = paux_stat_na
- 100 CONTINUE
- trans = cx_regrid_trans(z_dim,src_cx) ! TEMPORARY: z_dim HARD CODED!!!
+ ENDDO
-* increasing or decreasing? determine by finding and examining
-* the first two valid values encountered in any column of the indicated axis
- DO 110 n = cx_lo_s6(cx1), cx_hi_s6(cx1)
- DO 110 m = cx_lo_s5(cx1), cx_hi_s5(cx1)
- DO 110 l = cx_lo_s4(cx1), cx_hi_s4(cx1)
- DO 110 j = cx_lo_s2(cx1), cx_hi_s2(cx1)
- DO 110 i = cx_lo_s1(cx1), cx_hi_s1(cx1)
- looking_for_first = .TRUE.
- DO 105 k = cx_lo_s3(cx1), cx_hi_s3(cx1)
- v = aux1(i,j,k,l,m,n)
- IF (v .EQ. bad_aux) THEN
- GO TO 105
- ELSEIF (looking_for_first) THEN
- v1 = v
- looking_for_first = .FALSE.
- ELSE
- increasing = v .GT. v1
- GOTO 112
- ENDIF
- 105 CONTINUE
- 110 CONTINUE
-* ... no line of this data had 2 valid values! But continue anyway
+* Weak test to determine increasing or decreasing by finding the first column
+* that has a clear order. NOTE: This test can give wrong answers on
+* pathological fields with differing order columns
+
+ DO 110 n = ss_lo(6),ss_hi(6)
+ DO 110 m = ss_lo(5),ss_hi(5)
+ DO 110 l = ss_lo(4),ss_hi(4)
+ DO 110 k = ss_lo(3),ss_hi(3)
+ DO 110 j = ss_lo(2),ss_hi(2)
+ DO 110 i = ss_lo(1),ss_hi(1)
-* make sure that the auxiliary variable is monotonic
-* note: missing values in the array are allowed, but only at the edges
-* If a missing value is encountered in the body of the auxiliary var
-* regridding will not proceed beyong that subscript in the regrid line
- 112 DO 120 n = cx_lo_s6(cx1), cx_hi_s6(cx1)
- DO 120 m = cx_lo_s5(cx1), cx_hi_s5(cx1)
- DO 120 l = cx_lo_s4(cx1), cx_hi_s4(cx1)
- DO 120 j = cx_lo_s2(cx1), cx_hi_s2(cx1)
- DO 120 i = cx_lo_s1(cx1), cx_hi_s1(cx1)
+* ... get a column of data
+ CALL EXTRACT_ARG1_LINE( aux, the_axis, axloss, axhiss,
+ . i, j, k, l, m, n, line )
+
+ n_incr = 0
+ n_decr = 0
looking_for_first = .TRUE.
- DO 115 k = cx_lo_s3(cx1), cx_hi_s3(cx1)
- v = aux1(i,j,k,l,m,n)
+ DO ss = axloss, axhiss
+ v = line(ss)
IF (v .EQ. bad_aux) THEN
- IF (looking_for_first) GOTO 115
+ GO TO 110
ELSEIF (looking_for_first) THEN
v1 = v
looking_for_first = .FALSE.
ELSE
- increasing_here = v .GT. v1
- IF (increasing .NEQV. increasing_here) GOTO 5100 ! not monot.
+ IF (v .GT. v1) THEN
+ n_incr = n_incr + 1
+ ELSE
+ n_decr = n_decr + 1
+ ENDIF
v1 = v
ENDIF
- 115 CONTINUE
- 120 CONTINUE
+ ENDDO
+
+* ... is there a clear ordering to this column of auxilinary coordinates?
+ IF ((n_incr.GE.1 .OR. n_decr.GE.1)
+ . .AND. (n_incr .NE. n_decr ) ) THEN
+ increasing = n_incr .GE. n_decr
+ GOTO 130
+ ENDIF
+ 110 CONTINUE
***** determine the minimal index limits needed to do the regrid *****
* SINGLE AXIS CODE ONLY (GET_CONTEXT_MODS setup to dis-allow multiple args for now)
* ... what are the desired world coordinate limts?
- 130 idim = axis_list(1) ! since this is 1D regridding
- kdstmin = cx_lo_ss ( dst_cx, idim )
- kdstmax = cx_hi_ss ( dst_cx, idim )
- IF (trans .EQ. pauxrgrd_linear
- . .OR. trans .EQ. unspecified_int4 ) THEN
-* ... linear interp requires source data below/above target grid point coordinate
+ 130 kdstmin = cx_lo_ss ( dst_cx, the_axis )
+ kdstmax = cx_hi_ss ( dst_cx, the_axis )
+ IF (cx_aux_stat(the_axis,dst_cx) .EQ. paux_stat_false_1pt_regrid) THEN
+* ... false 1pt regridding (no target axis ... just a single point value)
+ axmin = cx_lo_ww(the_axis, dst_cx)
+ axmax = cx_hi_ww(the_axis, dst_cx)
+ ELSEIF (trans .EQ. pauxrgrd_linear
+ . .OR. trans .EQ. unspecified_int4 ) THEN
+* ... linear interp requires source data below/above target grid point coord
* ... trans.EQ.unspec is for 3-argument plotting
- axmin = TM_WORLD(kdstmin, cx_grid(dst_cx), idim, box_middle)
- axmax = TM_WORLD(kdstmax, cx_grid(dst_cx), idim, box_middle)
+ axmin = TM_WORLD(kdstmin, cx_grid(dst_cx), the_axis, box_middle)
+ axmax = TM_WORLD(kdstmax, cx_grid(dst_cx), the_axis, box_middle)
ELSEIF (trans .EQ. pauxrgrd_pwlave ) THEN
* ... averaging over cell requires source data over entire cell (larger region)
- axmin = TM_WORLD(kdstmin, cx_grid(dst_cx), idim, box_lo_lim)
- axmax = TM_WORLD(kdstmax, cx_grid(dst_cx), idim, box_hi_lim)
+ axmin = TM_WORLD(kdstmin, cx_grid(dst_cx), the_axis, box_lo_lim)
+ axmax = TM_WORLD(kdstmax, cx_grid(dst_cx), the_axis, box_hi_lim)
ELSE
CALL ERRMSG( ferr_internal, status, 'unkwn rgrd trans', *5000)
ENDIF
@@ -162,87 +174,90 @@
* reverse the direction of traversing the array for decreasing-ordered data
* for a decreasing aux array min>max, lo>hi at this stage
IF (increasing) THEN
- klo = cx_lo_s3(cx1)
- khi = cx_hi_s3(cx1)
+ klo = cx_lo_ss(aux_cx,the_axis)
+ khi = cx_hi_ss(aux_cx,the_axis)
kdel = 1
ELSE
- khi = cx_lo_s3(cx1)
- klo = cx_hi_s3(cx1)
+ khi = cx_lo_ss(aux_cx,the_axis)
+ klo = cx_hi_ss(aux_cx,the_axis)
kdel = -1
ENDIF
- kkmin = khi
- kkmax = klo
+ ssmin = khi
+ ssmax = klo
* find the smallest index range in the aux array that contains all of the aux
* values lying within the axmin to axmax value range on the destination axis
-* ==> CODE ONLY WORKS FOR Z AXIS AT THIS STAGE !!!
+ DO 290 n = ss_lo(6),ss_hi(6)
+ DO 290 m = ss_lo(5),ss_hi(5)
+ DO 290 l = ss_lo(4),ss_hi(4)
+ DO 290 k = ss_lo(3),ss_hi(3)
+ DO 290 j = ss_lo(2),ss_hi(2)
+ DO 290 i = ss_lo(1),ss_hi(1)
- DO 290 n = cx_lo_s6(cx1), cx_hi_s6(cx1)
- DO 290 m = cx_lo_s5(cx1), cx_hi_s5(cx1)
- DO 290 l = cx_lo_s4(cx1), cx_hi_s4(cx1)
- DO 290 j = cx_lo_s2(cx1), cx_hi_s2(cx1)
- DO 290 i = cx_lo_s1(cx1), cx_hi_s1(cx1)
+* get a column of data
+ CALL EXTRACT_ARG1_LINE( aux, the_axis, axloss, axhiss,
+ . i, j, k, l, m, n, line )
* ... search from low values to high for the upper index limit
- DO 210 k = klo, khi, kdel
- v = aux1(i,j,k,l,m,n)
+ DO ss = klo, khi, kdel
+ v = line(ss)
IF ( v .EQ. bad_aux ) THEN
- GOTO 210
+ CYCLE
ELSEIF (v .LT. axmax) THEN
IF ( increasing ) THEN
- IF (kkmax .LT. k) kkmax = k
+ IF (ssmax .LT. ss) ssmax = ss
ELSE
- IF (kkmax .GT. k) kkmax = k
+ IF (ssmax .GT. ss) ssmax = ss
ENDIF
ELSE
- GOTO 220
+ EXIT
ENDIF
- 210 CONTINUE
+ ENDDO
* ... search from high values to low for the lower index limit
- 220 DO 230 k = khi, klo, -1*kdel
- v = aux1(i,j,k,l,m,n)
+ DO ss = khi, klo, -1*kdel
+ v = line(ss)
IF ( v .EQ. bad_aux ) THEN
- GOTO 230
+ CYCLE
ELSEIF (v .GT. axmin) THEN
IF (increasing) THEN
- IF (kkmin .GT. k) kkmin = k
+ IF (ssmin .GT. ss) ssmin = ss
ELSE
- IF (kkmin .LT. k) kkmin = k
+ IF (ssmin .LT. ss) ssmin = ss
ENDIF
ELSE
GOTO 290
ENDIF
- 230 CONTINUE
+ ENDDO
290 CONTINUE
* for decreasing-ordered aux array swap the lo/hi limits just found
IF (.NOT.increasing) THEN
- k = kkmin
- kkmin = kkmax
- kkmax = k
+ ss = ssmin
+ ssmin = ssmax
+ ssmax = ss
ENDIF
* round out, so that regridding interpolations will be possible at the edges
* (the value tests above were based on strict inequality so we always do this)
- IF (kkmin .GT. cx_lo_ss(cx1,idim) ) kkmin = kkmin - 1
- IF (kkmax .LT. cx_hi_ss(cx1,idim) ) kkmax = kkmax + 1
+ IF (ssmin .GT. cx_lo_ss(aux_cx,the_axis) ) ssmin = ssmin - 1
+ IF (ssmax .LT. cx_hi_ss(aux_cx,the_axis) ) ssmax = ssmax + 1
- cx_lo_ss ( src_cx, idim ) = kkmin
- cx_hi_ss ( src_cx, idim ) = kkmax
- cx_by_ss ( idim, src_cx ) = .TRUE.
+ cx_lo_ss ( src_cx, the_axis ) = ssmin
+ cx_hi_ss ( src_cx, the_axis ) = ssmax
+ cx_by_ss ( the_axis, src_cx ) = .TRUE.
- cx_lo_ww ( idim, src_cx ) = unspecified_val8
- cx_hi_ww ( idim, src_cx ) = unspecified_val8
- cx_delta ( idim, src_cx ) = unspecified_val8
- cx_trans ( idim, src_cx ) = trans_no_transform
- cx_trans_arg(idim,src_cx) = bad_val4
- cx_given( idim, src_cx ) = .FALSE.
- cx_regrid_trans(idim,src_cx) = unspecified_int4
- cx_formatted( idim ) = .FALSE.
+ cx_lo_ww ( the_axis, src_cx ) = unspecified_val8
+ cx_hi_ww ( the_axis, src_cx ) = unspecified_val8
+ cx_delta ( the_axis, src_cx ) = unspecified_val8
+ cx_trans ( the_axis, src_cx ) = trans_no_transform
+ cx_trans_arg(the_axis,src_cx) = bad_val4
+ cx_given( the_axis, src_cx ) = .FALSE.
+ cx_regrid_trans(the_axis,src_cx) = unspecified_int4
+ cx_formatted( the_axis ) = .FALSE.
- CALL FLESH_OUT_AXIS( idim, src_cx, status )
+ CALL FLESH_OUT_AXIS( the_axis, src_cx, status )
IF ( status .NE. ferr_ok ) GOTO 5000
* success
@@ -251,9 +266,7 @@
* error exit
5000 RETURN
- 5100 CALL ERRMSG( ferr_invalid_command, status,
- . 'auxiliary regridding coordinates are not monotonic', *5000)
- 5200 CALL ERRMSG( ferr_invalid_command, status,
- . 'auxiliary regridding coordinate field includes '//
- . 'missing value(s)', *5000)
+! 5100 CALL ERRMSG( ferr_invalid_command, status,
+! . 'auxiliary regridding coordinates are too disordered'
+! . //pCR//'Need 2:1 ratio ordered:disordered', *5000)
END
diff --git a/fer/stk/aux_regrid_lims_1d_t.F b/fer/stk/aux_regrid_lims_1d_t.F
new file mode 100644
index 0000000..3dc0473
--- /dev/null
+++ b/fer/stk/aux_regrid_lims_1d_t.F
@@ -0,0 +1,333 @@
+ SUBROUTINE AUX_REGRID_LIMS_1D_T( dst_cx, src_cx, axis_list, naxis,
+ . aux1, mr1, cx1, status )
+
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
+* This routine handles the special case of forecast model aggregations
+* It determines the range of souce data on the T axis that is needed to
+* regrid (reorganize) the 2D time array into a 1D time
+* (orthogonal F and T axes) form
+
+* In generic terms, the descript of the routine is this:
+* Given a context describing data to be regridded to a destination grid
+* create the description of the needed source data in the source context
+* Use the auxiliary variables to determine the index range of data needed
+
+* The 2D time field is the auxiliary regrid control variable. It contains
+* times that are partially duplicated from one forecat index to the next
+* The orthoganalization process removes the duplication by shifting the start
+* time index of each successive forcast, so that all forecasts lie on the
+* same-single time axis
+
+* When called the source context should be a copy of the destination context
+
+* programmer - steve hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+
+*v695+ 3/15 *sh* patterned after AUX_REGRID_LIMS_1D_Z
+
+ IMPLICIT NONE
+
+ include 'tmap_dims.parm'
+ include 'implicit.parm'
+ include 'ferret.parm'
+ include 'errmsg.parm'
+ include 'xcontext.cmn'
+ include 'xvariables.cmn'
+ include 'xmem_subsc.cmn'
+ include 'xtm_grid.cmn_text' ! to sanity check T axis
+
+
+* calling argument declarations:
+ INTEGER src_cx, axis, dst_cx, naxis, axis_list(naxis), status,
+ . mr1, cx1, mr2, cx2, mr3, cx3
+ REAL*8 aux1(m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+ . m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+
+* internal variable declarations:
+ INTEGER KNOWN_GRID, CGRID_AXIS,
+ . idim, src_grid, i, j, k, l, m, n, trans,
+ . ndim, dim(nferdims), t_axis,
+ . ldstmin, ldstmax, llmin, llmax, llo, lhi, ldel,
+ . nlo, nhi, nmin, nmax, looking_for_first
+ REAL*8 TM_WORLD, axmax, axmin, bad_aux, t, t1, delta,
+ . tdstrt, tdend, tstepmin, tstepmax
+
+* initialize
+ bad_aux = mr_bad_data( mr1 )
+! idim = axis_list(1)
+ llo = cx_lo_s4(cx1) ! 2d time array limit - should always be 1
+ lhi = cx_hi_s4(cx1) ! should always be N
+ nlo = cx_lo_s6(cx1) ! lowest forecast index - specified by user
+ nhi = cx_hi_s6(cx1) ! highest forecast index - specified by user
+ i = cx_lo_s1(cx1) ! fixed index since aux field is 2d
+ j = cx_lo_s2(cx1)
+ k = cx_lo_s3(cx1)
+ m = cx_lo_s5(cx1)
+ tstepmin = aux1(i,j,k,llo,m,nlo) ! low-left corner of 2d time array
+ tstepmax = aux1(i,j,k,lhi,m,nhi) ! upper right
+ tdstrt = TM_WORLD(cx_lo_s4(dst_cx), cx_grid(dst_cx),
+ . t_dim, box_middle) ! 'd' for destination start time
+ tdend = TM_WORLD(cx_hi_s4(dst_cx), cx_grid(dst_cx),
+ . t_dim, box_middle)
+ llmin = llo ! initial default
+ llmax = lhi
+ nmin = nlo
+ nmax = nhi
+
+* insert source grid (the defining grid for this variable)
+* XXXX TEMPORARY -- ?move this block of code to AUX_VAR_REGRID when 2D curv is added?
+ src_grid = KNOWN_GRID( cx_data_set(src_cx),
+ . cx_category(src_cx),
+ . cx_variable(src_cx) )
+ cx_grid( src_cx ) = src_grid
+ cx_unstand_grid( src_cx ) = .FALSE.
+ is_phase( isp ) = prgrd_from_source
+ cx_naux( src_cx ) = 0
+ DO 100 idim = 1, nferdims
+ cx_aux_var (idim, src_cx) = unspecified_int4
+ cx_aux_cat (idim, src_cx) = unspecified_int4
+ cx_aux_stat (idim, src_cx) = paux_stat_na
+ 100 CONTINUE
+
+* to support monthly times, the target axis may be irregular
+!* sanity check the target T axis
+! t_axis = CGRID_AXIS(t_dim,dst_cx)
+! IF (.NOT. line_regular(t_axis)) GOTO 5050
+! IF (lhi .GT. llo) THEN
+! IF ( line_delta(t_axis)
+! . .NE.(aux1(i,j,k,llo+1,m,nlo)-aux1(i,j,k,llo,m,nlo))) GOTO 5060
+! ENDIF
+
+* ideally we should check that the units of the 2D time field are the same as the units of the
+* 1D time axis, but since typically Ferret code is creating the 1d time, we'll allow laziness
+
+* this routine only for t_dim -- index-based remapping of time locations
+ trans = cx_regrid_trans(t_dim,src_cx)
+ IF (trans .NE. pauxrgrd_fmrc)
+ . CALL ERRMSG( ferr_internal, status, 'unkwn rgrd trans', *5000)
+
+* make sure that the auxiliary variable is monotonic spaced
+* The 2D time array can never theoretically be non-monotonic
+* but FT aggregations are new and unreliable
+ DO n = nlo, nhi
+ looking_for_first = 0
+ DO l = llo, lhi
+ t = aux1(i,j,k,l,m,n)
+ IF (t .EQ. bad_aux) THEN
+ GOTO 5150
+ ELSEIF (looking_for_first.EQ.0) THEN
+ t1 = t
+ looking_for_first = 1
+ ELSE
+ IF (looking_for_first.EQ.1) THEN
+! delta = t-t1
+! IF (delta .LT. 0.0) GOTO 5100
+ IF (t .LE. t1) GOTO 5100
+ looking_for_first = 2
+ ENDIF
+! IF (delta .NE. (t-t1)) GOTO 5100
+ t1 = t
+ ENDIF
+ ENDDO
+ ENDDO
+
+* the relationship between the time steps in the 2D aux time field (cx1)
+* and the same times in the destination field looks something
+* like this over 3 forecast cycles
+
+* ** 2d aux times ** ** orthoganalized T-F field **
+* 115
+* 1013 114
+* 1012 1012 113
+* 1011 1011 112
+* >1010 1010 111
+* 1009 1009 110
+* 18 1008 1012 1016 1008 1008 1008 109
+* 17 1007 1011 1015 1007 1007 108
+* 16 1006 >1010 1014 1006 1006 107
+* 15 1005 1009 1013 1005 >1005 106
+* 14 1004 1008 1012 1004 1004 105
+* 13 1003 1007 1011 1003 104
+* 12 1002 1006 1010 1002 103
+* 11 1001 >1005 1009 1001 102
+* 10 1000 1004 1008 1000 101
+* | |
+* l in src_cx l in dst_cx
+
+* say that the requested time range is T=1005:1010
+* The lowest L index of source data needed is the index at which the START time
+* is first encountered as we loop down the forecasts searching lo to hi
+* The highest L index of source data needed is the index at which the END time
+* is first encountered as we loop up the forecasts searching hi to lo
+
+
+* This commented out block of code increases efficiency by requesting only
+* only the F-range that contains data relevant to the requested T-range.
+* However, doing so causes the regrid operation to alter the N range.
+* Since this is a 1D T regrid operation, "var[GT(time2d)=t1d]", it is not
+* appropriate to alter the F range. The efficiency loss effects only a minor
+* situation in which for whatever reason the user has requested N-indices of
+* pure missing data.
+!* bail out if the requested min exceeds the available range or similar max
+! IF (tdstrt .GT. tstepmax
+! . .OR. tdend .LT. tstepmin ) THEN
+!* ... no regridding is possible - result will be a field of missing data
+!* ... provide a nominal data region that is not trouble to get
+! llmax = llmin ! request a single point region only of source data
+! nmax = nmin
+! GOTO 500
+! ENDIF
+!
+!* determine the minimal forecast index range (i.e. with relevant timesteps)
+! DO n = nlo, nhi
+! t = aux1(i,j,k,llo,m,n)
+! t1 = aux1(i,j,k,lhi,m,n)
+! IF (t1 .GE. tdstrt
+! . .AND. t .LE. tdend ) THEN
+!* ... found first forecast with relevant time steps
+! nmin = n
+! EXIT
+! ENDIF
+! ENDDO
+! DO n = nhi, nlo, -1
+! t = aux1(i,j,k,llo,m,n)
+! t1 = aux1(i,j,k,lhi,m,n)
+! IF (t1 .GE. tdstrt
+! . .AND. t .LE. tdend ) THEN
+!* ... found last forecast with relevant time steps
+! nmax = n
+! EXIT
+! ENDIF
+! ENDDO
+! IF (nmin .GT. nmax) nmax = nmin
+
+
+***** determine the minimal src time index range needed to do the regrid *****
+
+* find the lowest index of source data that needs to be requested
+ IF (tdstrt .LT. tstepmin) THEN
+ CONTINUE ! keep llmin
+ ELSE
+* ... search aux times from low values to high n index for the start time
+ n = nmax + 1
+ DO WHILE (n > nmin)
+ n = n - 1 ! loop *down* F indices
+ DO l = llo, lhi ! loop *up* T indices
+ t = aux1(i,j,k,l,m,n)
+ IF (t .GT. tdstrt) THEN
+ EXIT ! continue search at next lower forcast
+ ELSEIF (t .EQ. tdstrt) THEN
+ llmin = l
+ n = nlo ! signal termination of F loop
+ EXIT
+ ENDIF
+ ENDDO
+ ENDDO
+ ENDIF
+
+* find the highest index of source data that needs to be requested
+ IF (tdend .GT. tstepmax) THEN
+ CONTINUE ! keep llmax
+ ELSE
+
+* ... search aux times from high values to low for the end time
+ n = nmin-1
+ DO WHILE (n < nmax)
+ n = n + 1 ! loop *up* F indices
+ DO l = lhi, llo, -1 ! loop *down* T indices
+ t = aux1(i,j,k,l,m,n)
+ IF (t .LT. tdend) THEN
+ EXIT ! continue search at next higher forcast
+ ELSEIF (t .EQ. tdend) THEN
+ llmax = l
+ n = nhi ! signal termination of F loop
+ EXIT
+ ENDIF
+ ENDDO
+ ENDDO
+ ENDIF
+
+* apply the T limits that have been determined
+ 500 idim = t_dim
+ IF (llmin .GT. llmax) llmax = llmin ! may not be needed?
+ cx_lo_ss ( src_cx, idim ) = llmin
+ cx_hi_ss ( src_cx, idim ) = llmax
+ cx_by_ss ( idim, src_cx ) = .TRUE.
+
+ cx_lo_ww ( idim, src_cx ) = unspecified_val8
+ cx_hi_ww ( idim, src_cx ) = unspecified_val8
+ cx_delta ( idim, src_cx ) = unspecified_val8
+ cx_trans ( idim, src_cx ) = trans_no_transform
+ cx_trans_arg(idim,src_cx) = bad_val4
+ cx_given( idim, src_cx ) = .FALSE.
+ cx_regrid_trans(idim,src_cx) = unspecified_int4
+ cx_formatted( idim ) = .FALSE.
+
+ CALL FLESH_OUT_AXIS( idim, src_cx, status )
+ IF ( status .NE. ferr_ok ) GOTO 5000
+
+* apply the F limits that have been determined
+ idim = f_dim
+ cx_lo_ss ( src_cx, idim ) = nmin
+ cx_hi_ss ( src_cx, idim ) = nmax
+ cx_by_ss ( idim, src_cx ) = .TRUE.
+
+ cx_lo_ww ( idim, src_cx ) = unspecified_val8
+ cx_hi_ww ( idim, src_cx ) = unspecified_val8
+ cx_delta ( idim, src_cx ) = unspecified_val8
+ cx_trans ( idim, src_cx ) = trans_no_transform
+ cx_trans_arg(idim,src_cx) = bad_val4
+ cx_given( idim, src_cx ) = .FALSE.
+ cx_regrid_trans(idim,src_cx) = unspecified_int4
+ cx_formatted( idim ) = .FALSE.
+
+ CALL FLESH_OUT_AXIS( idim, src_cx, status )
+ IF ( status .NE. ferr_ok ) GOTO 5000
+
+* success
+ status = ferr_ok
+ RETURN
+
+* error exit
+ 5000 RETURN
+! 5050 CALL ERRMSG( ferr_invalid_command, status,
+! . 'target 1D time axis is not regular', *5000)
+! 5060 CALL ERRMSG( ferr_invalid_command, status,
+! . 'delta T of target 1D time axis doesnt match the data', *5000)
+ 5100 CALL ERRMSG( ferr_invalid_command, status,
+ . '2D T-F times are not strictly increasing on T', *5000)
+ 5150 CALL ERRMSG( ferr_invalid_command, status,
+ . '2D T-F times include missing value', *5000)
+ END
diff --git a/fer/stk/aux_regrid_lims_2d_tf.F b/fer/stk/aux_regrid_lims_2d_tf.F
new file mode 100644
index 0000000..454b8f7
--- /dev/null
+++ b/fer/stk/aux_regrid_lims_2d_tf.F
@@ -0,0 +1,318 @@
+ SUBROUTINE AUX_REGRID_LIMS_2D_TF( dst_cx, src_cx, axis_list, naxis,
+ . aux1, mr1, cx1, status )
+
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
+* This routine handles the special case of forecast model aggregations
+* It determines the range of souce data on the F and T axes in the 2D time
+* form that is needed to create calendar-time x lag-forecast form
+
+* In generic terms, the descript of the routine is this:
+* Given a context describing data to be regridded to a destination grid
+* create the description of the needed source data in the source context
+* Use the auxiliary variables to determine the index range of data needed
+
+* The 2D time field is the auxiliary regrid control variable. It contains
+* times that are partially duplicated from one forecat index to the next
+* The orthoganalization process removes the duplication by shifting the start
+* time index of each successive forcast, so that all forecasts lie on the
+* same-single time axis
+
+* When called the source context should be a copy of the destination context
+* This routine is almost a copy of AUX_REGRID_LIMS_1D_T. The difference is
+* that the user cannot limit the N range of source data needed through the /N
+* or /F qualifier. Instead this code determines the N range needed to fullfill
+* the requested time range
+
+* programmer - steve hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+
+*v695+ 3/15 *sh* almost a copy of AUX_REGRID_LIMS_1D_T
+
+ IMPLICIT NONE
+
+ include 'tmap_dims.parm'
+ include 'implicit.parm'
+ include 'ferret.parm'
+ include 'errmsg.parm'
+ include 'xcontext.cmn'
+ include 'xvariables.cmn'
+ include 'xmem_subsc.cmn'
+ include 'xtm_grid.cmn_text' ! for line_delta and line_regular
+
+* calling argument declarations:
+ INTEGER src_cx, dst_cx, naxis, axis_list(naxis), status,
+ . mr1, cx1, mr2, cx2, mr3, cx3
+ REAL*8 aux1(m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+ . m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+
+* internal variable declarations:
+ INTEGER KNOWN_GRID, CGRID_AXIS,
+ . idim, src_grid, i, j, k, l, m, n, trans,
+ . ndim, dim(nferdims), looking_for_first,
+ . ldstmin, ldstmax, llmin, llmax, llo, lhi, ldel,
+ . nlo, nhi, nmin, nmax, axis
+ REAL*8 TM_WORLD, axmax, axmin, bad_aux, t, t1, steps,
+ . tdstrt, tdend, tstepmin, tstepmax
+!, f_delta, t_delta
+
+* initialize
+ bad_aux = mr_bad_data( mr1 )
+! idim = axis_list(1)
+ llo = cx_lo_s4(cx1) ! 2d time array limit - should always be 1
+ lhi = cx_hi_s4(cx1) ! should always be N
+ nlo = m1lof ! should always be 1
+ nhi = m1hif ! should always be dimension size of F
+ i = cx_lo_s1(cx1) ! fixed index since aux field is 2d
+ j = cx_lo_s2(cx1)
+ k = cx_lo_s3(cx1)
+ m = cx_lo_s5(cx1)
+ tstepmin = aux1(i,j,k,llo,m,nlo) ! low-left corner of 2d time array
+ tstepmax = aux1(i,j,k,lhi,m,nhi) ! upper right
+ tdstrt = TM_WORLD(cx_lo_s4(dst_cx), cx_grid(dst_cx),
+ . t_dim, box_middle) ! 'd' for destination start time
+ tdend = TM_WORLD(cx_hi_s4(dst_cx), cx_grid(dst_cx),
+ . t_dim, box_middle)
+ llmin = llo ! initial default
+ llmax = lhi
+ nmin = nlo
+ nmax = nhi
+
+* insert source grid (the defining grid for this variable)
+* XXXX TEMPORARY -- ?move this block of code to AUX_VAR_REGRID when 2D curv is added?
+ src_grid = KNOWN_GRID( cx_data_set(src_cx),
+ . cx_category(src_cx),
+ . cx_variable(src_cx) )
+ cx_grid( src_cx ) = src_grid
+ cx_unstand_grid( src_cx ) = .FALSE.
+ is_phase( isp ) = prgrd_from_source
+ cx_naux( src_cx ) = 0
+ DO 100 idim = 1, nferdims
+ cx_aux_var (idim, src_cx) = unspecified_int4
+ cx_aux_cat (idim, src_cx) = unspecified_int4
+ cx_aux_stat (idim, src_cx) = paux_stat_na
+ 100 CONTINUE
+
+* commented out these checks for regular time steps, because of monthly axes
+!* sanity check the target T axis
+! axis = CGRID_AXIS(t_dim,dst_cx)
+! IF (.NOT. line_regular(axis)) GOTO 5050
+! IF (lhi .GT. llo) THEN
+! IF (line_delta(axis)
+! . .NE.(aux1(i,j,k,llo+1,m,nlo)-aux1(i,j,k,llo,m,nlo))) GOTO 5055
+! ENDIF
+!
+* sanity check the target F axis
+ axis = CGRID_AXIS(f_dim,dst_cx)
+ IF (.NOT. line_regular(axis)) GOTO 5060
+! IF (nhi .GT. nlo) THEN
+! f_delta = line_delta(axis)
+! IF ( f_delta
+! . .NE.(aux1(i,j,k,llo,m,nlo+1)-aux1(i,j,k,llo,m,nlo))) GOTO 5065
+! ENDIF
+
+
+* ideally we should check that the units of the 2D time field are the same as the units of the
+* 1D time axis, but since typically Ferret code is creating the 1d time, we'll allow laziness
+
+* this routine only for t_dim -- index-based remapping of time locations
+ trans = cx_regrid_trans(t_dim,src_cx)
+ IF (trans .NE. pauxrgrd_fmrc)
+ . CALL ERRMSG( ferr_internal, status, 'unkwn rgrd trans', *5000)
+
+* make sure that the auxiliary variable is monotonic
+* (not regularly spaced cuz we havvvvvvvvvve to support monthly data)
+* The 2D time array can never theoretically be non-monotonic
+* FT aggregations are new and unreliable
+ DO n = nlo, nhi
+ looking_for_first = 0
+ DO l = llo, lhi
+ t = aux1(i,j,k,l,m,n)
+ IF (t .EQ. bad_aux) THEN
+ GOTO 5150
+ ELSEIF (looking_for_first .EQ. 0) THEN
+ t1 = t
+ looking_for_first = 1
+ ELSE
+ IF (looking_for_first .EQ. 1) THEN
+! t_delta = t-t1
+! IF (t_delta .LE.0.0) GOTO 5100
+ IF (t .LE. t1) GOTO 5100
+ ENDIF
+! IF ((t-t1) .NE. t_delta) GOTO 5100 ! need not be regular
+ t1 = t
+ ENDIF
+ ENDDO
+ ENDDO
+
+!* the delta in F must be an integer multiple of the delta in T
+! steps = f_delta / t_delta
+! IF (steps .NE. INT(steps)) GOTO 5200
+
+* the relationship between the time steps in the 2D aux time field (cx1)
+* and the same times in the destination field looks something
+* like this
+
+* ** 2d aux times ** ==> ** cal-T x lag-F field **
+
+* 12 1011(0) 1015(1) 1019(2) 1019(2) 1019(3) 1019(4) 20
+* 11 1010(0) 1014(1) 1018(2) 1018(2) 1018(3) 1018(4) 19
+* 10 1009(0) 1013(1) 1017(2) 1017(2) 1017(3) 1017(4) 18
+* 9 1008(0) 1012(1) 1016(2) 1016(2) 1016(3) 1016(4) 17
+* 8 1007(0) 1011(1) 1015(2) 1015(1) 1015(2) 1015(3) 16
+* 7 1006(0) >1010(1) 1014(2) 1014(1) 1014(2) 1014(3) 15
+* 6 1005(0) 1009(1) 1013(2) 1013(1) 1013(2) 1013(3) 14
+* 5 1004(0) 1008(1) 1012(2) 1012(1) 1012(2) 1012(3) 13
+* 4 1003(0) 1007(1) 1011(2) 1011(0) 1011(1) 1011(2) 12
+* 3 1002(0) 1006(1) 1010(2) 1010(0) 1010(1) 1010(2) 11
+* 2 1001(0) >1005(1) 1009(2) 1009(0) 1009(1) 1009(2) 10
+* 1 1000(0) 1004(1) 1008(2) 1008(0) 1008(1) 1008(2) 9
+* ^ ^
+* | |
+* l in src_cx l in dst_cx
+
+* say that the requested time range is T=1005:1010 (marked above)
+* The lowest L index of source data needed is the index at which the START time
+* is first encountered as we loop down the forecasts searching lo to hi
+* The highest L index of source data needed is the index at which the END time
+* is first encountered as we loop up the forecasts searching hi to lo
+
+*************************************************************************
+*!!! >>> EFFICIENCY NOTE <<< !!!
+* In some important situations this is a very inefficient way to appproach
+* the FT re-organization that is performed here. The most important example
+* is when the user requests the "best time series" -- i.e. N=1 only, which
+* gives a time series of the initial time steps of the model following each
+* initialization. In that case the efficient approach is to individually
+* request the sequence of time series fragments and concatenate them.
+* (Visualize how to obtain first column of the right hand block above)
+* Instead this code requests the full 2D block of data. Inefficient!
+*************************************************************************
+
+* bail out if the requested min exceeds the available range or similar max
+ IF (tdstrt .GT. tstepmax
+ . .OR. tdend .LT. tstepmin ) THEN
+* ... no regridding is possible - result will be a field of missing data
+* ... provide a nominal data region that is not trouble to get
+ llmax = llmin ! request a single point region only of source data
+ nmax = nmin
+ GOTO 500
+ ENDIF
+
+* determine the minimal forecast index range (i.e. with relevant timesteps)
+ DO n = nlo, nhi
+ t = aux1(i,j,k,llo,m,n)
+ t1 = aux1(i,j,k,lhi,m,n)
+ IF (t1 .GE. tdstrt
+ . .AND. t .LE. tdend ) THEN
+* ... found first forecast with relevant time steps
+ nmin = n
+ EXIT
+ ENDIF
+ ENDDO
+ DO n = nhi, nlo, -1
+ t = aux1(i,j,k,llo,m,n)
+ t1 = aux1(i,j,k,lhi,m,n)
+ IF (t1 .GE. tdstrt
+ . .AND. t .LE. tdend ) THEN
+* ... found last forecast with relevant time steps
+ nmax = n
+ EXIT
+ ENDIF
+ ENDDO
+ IF (nmin .GT. nmax) nmax = nmin
+
+* always request the full source time range (entire forecasts)
+ llmin = cx_lo_s4(cx1)
+ llmax = cx_hi_s4(cx1)
+
+* apply the T limits that have been determined
+ 500 idim = t_dim
+ IF (llmin .GT. llmax) llmax = llmin ! may not be needed?
+ cx_lo_ss ( src_cx, idim ) = llmin
+ cx_hi_ss ( src_cx, idim ) = llmax
+ cx_by_ss ( idim, src_cx ) = .TRUE.
+
+ cx_lo_ww ( idim, src_cx ) = unspecified_val8
+ cx_hi_ww ( idim, src_cx ) = unspecified_val8
+ cx_delta ( idim, src_cx ) = unspecified_val8
+ cx_trans ( idim, src_cx ) = trans_no_transform
+ cx_trans_arg(idim,src_cx) = bad_val4
+ cx_given( idim, src_cx ) = .FALSE.
+ cx_regrid_trans(idim,src_cx) = unspecified_int4
+ cx_formatted( idim ) = .FALSE.
+
+ CALL FLESH_OUT_AXIS( idim, src_cx, status )
+ IF ( status .NE. ferr_ok ) GOTO 5000
+
+* apply the F limits that have been determined
+ idim = f_dim
+ cx_lo_ss ( src_cx, idim ) = nmin
+ cx_hi_ss ( src_cx, idim ) = nmax
+ cx_by_ss ( idim, src_cx ) = .TRUE.
+
+ cx_lo_ww ( idim, src_cx ) = unspecified_val8
+ cx_hi_ww ( idim, src_cx ) = unspecified_val8
+ cx_delta ( idim, src_cx ) = unspecified_val8
+ cx_trans ( idim, src_cx ) = trans_no_transform
+ cx_trans_arg(idim,src_cx) = bad_val4
+ cx_given( idim, src_cx ) = .FALSE.
+ cx_regrid_trans(idim,src_cx) = unspecified_int4
+ cx_formatted( idim ) = .FALSE.
+
+ CALL FLESH_OUT_AXIS( idim, src_cx, status )
+ IF ( status .NE. ferr_ok ) GOTO 5000
+
+* success
+ status = ferr_ok
+ RETURN
+
+* error exit
+ 5000 RETURN
+! 5050 CALL ERRMSG( ferr_invalid_command, status,
+! . 'target 1D time axis is not regular', *5000)
+! 5055 CALL ERRMSG( ferr_invalid_command, status,
+! . 'delta T of target 1D time axis doesnt match the data', *5000)
+ 5060 CALL ERRMSG( ferr_invalid_command, status,
+ . 'target forecast lag time axis is not regular', *5000)
+! 5065 CALL ERRMSG( ferr_invalid_command, status,
+! . 'delta T of forecast lag axis doesnt match the data', *5000)
+ 5100 CALL ERRMSG( ferr_invalid_command, status,
+ . '2D T-F times are not strictly increasing on T and F', *5000)
+ 5150 CALL ERRMSG( ferr_invalid_command, status,
+ . '2D T-F times include missing value', *5000)
+! 5200 CALL ERRMSG( ferr_invalid_command, status,
+! . 'Lag axis of F axis is not an integer number of time steps',
+! . *5000)
+ END
diff --git a/fer/stk/const_var_context.F b/fer/stk/const_var_context.F
index 8d43f8e..78ae441 100644
--- a/fer/stk/const_var_context.F
+++ b/fer/stk/const_var_context.F
@@ -16,6 +16,7 @@
* V530: 8/00 *sh* - allow constant arrays of strings
* V533: 7/01 *sh* - allow single quoted strings
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 2/15 - added support for quotation with _DQ_ and _SQ_
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -41,8 +42,10 @@
cx_grid ( const_cx ) = mgrid_xabstract
* identify a constant array of strings by the presence of a quotation mark
- IF ( INDEX(text,'"') .GT. 0
- . .OR. INDEX(text,"'") .GT. 0 ) THEN
+ IF ( INDEX(text,'"') .GT. 0
+ . .OR. INDEX(text,"'") .GT. 0
+ . .OR. INDEX(text,"_DQ_") .GT. 0
+ . .OR. INDEX(text,"_SQ_") .GT. 0 ) THEN
cx_type(const_cx) = ptype_string
ELSE
cx_type(const_cx) = ptype_float
diff --git a/fer/stk/get_axis_speed.F b/fer/stk/get_axis_speed.F
index 264bea0..1f12cc6 100644
--- a/fer/stk/get_axis_speed.F
+++ b/fer/stk/get_axis_speed.F
@@ -53,6 +53,7 @@
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
* V685 *acm* 3/13 For Ensemble aggregations, call the ds_type 'ENS'
+* V695 *acm* 2/15 For Forecast aggregations, call the ds_type 'FCT'
* calling argument declarations:
INTEGER dset
@@ -73,7 +74,8 @@
* netCDF
IF( ds_type(dset) .EQ. 'CDF' .OR.
- . ds_type(dset) .EQ. 'ENS') THEN
+ . ds_type(dset) .EQ. 'ENS'.OR.
+ . ds_type(dset) .EQ. 'FCT') THEN
* ... "record" axis is slowest (stored in ds_time_axis)
* ... locate it in a grid to see what role it plays
IF (ds_time_axis(dset) .EQ. unspecified_int4) RETURN
diff --git a/fer/stk/get_prot_cmnd_data.F b/fer/stk/get_prot_cmnd_data.F
index 7838817..9ea3d44 100644
--- a/fer/stk/get_prot_cmnd_data.F
+++ b/fer/stk/get_prot_cmnd_data.F
@@ -91,6 +91,8 @@
* V600 *acm* 3/06 fixing bugs 439&1390, new arg to get_new_cx.
* V690 *sh* 12/13 manage auto-curvilinear mode
* aux vars returned on the ISP stack in frame above is_aux_ptr
+* V693+ *sh* 2/15 eliminate inconsistent treatment of surrounding quotes
+* as seen in err694_inconsistent_quotes.jnl
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -129,7 +131,7 @@
* consolidate arguments broken up by command parser back into a single arg
* ... correct mis-handling of surrounding quotation marks
- CALL ALL_1_ARG
+ CALL ALL_1_ARG_EXPR
* * * * BREAK FULL EXPRESSION INTO SUB_EXPRESSIONS * * *
* ... and store them in the uvar list names as "EX#n"
diff --git a/fer/stk/interp_stack.F b/fer/stk/interp_stack.F
index 7c93dc0..50ae574 100644
--- a/fer/stk/interp_stack.F
+++ b/fer/stk/interp_stack.F
@@ -97,6 +97,12 @@
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
* V690 9/13-2/14 *sh* add support for aux var regridding: temp[gz(depth)=zax]
+* V694 3/15 *acm* Fix ticket 2241: as for modulo replications, don't do the
+* creation of virtual "void" point on subspan modulo axes for
+* user-variables that have compressed result.
+* V695+ 5/15 *sh* FIND_MEM_VAR ==> FIND_MEM_VAR_INCL_C_CACHE
+* delay stripping gather until after stripping regrids
+* V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -135,7 +141,8 @@
. DO_NEAREST_DIST_ABOVE, DO_NEAREST_DIST_BELOW,
. DO_NEAREST_INDEX_ABOVE,DO_NEAREST_INDEX_BELOW,
. DO_EVENT, DO_SMTH_MEDIAN, DO_SMTH_MIN, DO_SMTH_MAX,
- . DO_STDDEV, DO_AVG_WGT, DO_4D_AVE_WGT
+ . DO_STDDEV, DO_AVG_WGT, DO_4D_AVE_WGT, DO_SMTH_BOX_P,
+ . DO_4D_STD
* calling arguments:
* in isp_base - stack level at which to begin calculations
@@ -306,7 +313,7 @@
CALL COMPLETE_MISSING_LIMITS( cx )
* check in memory to see if we already have the data
- CALL FIND_MEM_VAR( cx, mr, search_by_value )
+ CALL FIND_MEM_VAR_INCL_C_CACHE( cx, mr, search_by_value, memory )
IF ( mr .GT. mr_nonexist ) THEN
* ... yes - already in memory
is_mr( isp ) = mr
@@ -377,6 +384,13 @@
DO 255 idim = 1, nferdims
IF ( modulo_axes(idim)
. .AND. cx_lo_ss(cx,idim) .NE. unspecified_int4 ) THEN
+
+ IF ( cat .EQ. cat_user_var ) THEN
+* ... cannot modulo an average (or other compressed result)
+ IF ( uvar_given(idim,var) .EQ. uvlim_gvn_xact
+ . .OR. uvar_given(idim,var) .EQ. uvlim_need_xact ) GOTO 255
+ ENDIF
+
IF (TM_ITS_SUBSPAN_MODULO(CGRID_AXIS(idim, cx))) THEN
IF (cx_hi_ss(cx,idim) .EQ. CAXIS_MODLEN(idim, cx)) THEN
CALL IS_STRIP(isact_class_subspan_fill,idim,*10,status)
@@ -386,12 +400,6 @@
ENDIF
255 CONTINUE
-* ... strip off need to gather aggregate components together ?
- IF ( cat .EQ. cat_aggregate_var ) THEN
- CALL IS_STRIP( isact_class_aggregate_gather, e_dim, *10, status )
- GOTO 5000
- ENDIF
-
* ... strip off need for regridding data ?
260 IF ( cx_unstand_grid( cx ) ) THEN
CALL IS_STRIP( isact_class_regrid, no_dim, *10, status )
@@ -406,6 +414,18 @@
GOTO 5000
ENDIF
+* ... strip off need to gather aggregate components together ?
+* do this *after* all xforms and regridding, so those operations are performed
+* on the aggregated result
+ IF ( cat .EQ. cat_agg_e_var ) THEN
+ CALL IS_STRIP( isact_class_aggregate_gather, e_dim, *10, status )
+ GOTO 5000
+ ENDIF
+ IF ( cat .EQ. cat_agg_f_var ) THEN
+ CALL IS_STRIP( isact_class_aggregate_gather, f_dim, *10, status )
+ GOTO 5000
+ ENDIF
+
* ... reduce algebraic expression to its components ?
IF ( cat .EQ. cat_user_var ) THEN
@@ -445,7 +465,8 @@
300 CONTINUE
IF ( look_again ) THEN
* ... check again in memory - maybe we already have it after all
- CALL FIND_MEM_VAR( cx, mr, search_by_value )
+ CALL FIND_MEM_VAR_INCL_C_CACHE( cx, mr,
+ . search_by_value, memory )
IF ( mr .GT. mr_nonexist ) THEN
* ... yes - already in memory ... worth the trouble
is_mr( isp ) = mr
@@ -580,6 +601,8 @@ c GOTO 5000
CALL IS_TRANS( memory, DO_SHIFT, *2500, status )
ELSEIF ( act .EQ. isact_smth_box ) THEN
CALL IS_TRANS( memory, DO_SMTH_BOX, *2500, status )
+ ELSEIF ( act .EQ. isact_smth_box_p ) THEN
+ CALL IS_TRANS( memory, DO_SMTH_BOX_P, *2500, status )
ELSEIF ( act .EQ. isact_smth_binml ) THEN
CALL IS_TRANS( memory, DO_SMTH_BINML, *2500, status )
ELSEIF ( act .EQ. isact_smth_hanng ) THEN
@@ -643,6 +666,8 @@ c GOTO 5000
CALL IS_TRANS( memory, DO_4D_NBD, *2500, status )
ELSEIF ( act .EQ. isact_4d_sum ) THEN ! 11/10
CALL IS_TRANS( memory, DO_4D_SUM, *2500, status )
+ ELSEIF ( act .EQ. isact_std_4d ) THEN
+ CALL IS_TRANS( memory, DO_4D_STD, *2500, status )
ELSEIF ( act .EQ. isact_nrst_dist_abv ) THEN ! 9/97
CALL IS_TRANS( memory, DO_NEAREST_DIST_ABOVE, *2500, status )
ELSEIF ( act .EQ. isact_nrst_dist_blw ) THEN ! 9/97
diff --git a/fer/stk/is_aggregate_gather.F b/fer/stk/is_aggregate_gather.F
index e3bae72..5181755 100644
--- a/fer/stk/is_aggregate_gather.F
+++ b/fer/stk/is_aggregate_gather.F
@@ -43,6 +43,7 @@
*
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
* V69+ 5/14 *acm* Fixes for ticket 2177: datasets with _FillValue, no missing_value
+* V695 2/15 *acm* 6D add aggregation in forecast direction
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -65,14 +66,14 @@
* isp <-- current stack level (for gathering )
* internal variable declarations:
- LOGICAL NC_GET_ATTRIB, attoutflag, got_it
- INTEGER NCF_GET_ATTR_FROM_ID,
+ LOGICAL NC_GET_ATTRIB, NC_GET_ATTRIB_STRING, attoutflag, got_it
+ INTEGER NCF_GET_ATTR_FROM_ID, TM_LENSTR1, STR_SAME,
. com_mr, res_mr, com_cx, res_cx, dflt_cx, com_isp, res_isp,
- . frag, idim, top, imemb, memb_dset, len, igrid, iline,
- . varid, attlen, maxlen, fer_uvar, nv, is_phas_keep
+ . frag, agg_dim, top, imemb, memb_dset, len, igrid, iline,
+ . varid, attlen, maxlen, fer_uvar, nv, is_phas_keep, agg_dset
+
REAL vbad, cx_bad_pre
- CHARACTER*128 VAR_CODE, vname
- CHARACTER*10 buff
+ CHARACTER*128 VAR_CODE, vname, buff
* --- end of introductory code ---
@@ -84,20 +85,20 @@
res_cx = is_cx( res_isp )
com_cx = is_cx( com_isp )
dflt_cx = is_big_cx( res_isp )
- idim = is_axis( res_isp )
+ agg_dim = is_axis( res_isp )
frag = is_sum ( res_isp )
cx_bad_pre = cx_bad_data(com_cx)
* diagnostic mode output: " doing aggregate gather VAR_NAME[x=lo:hi at TRN:n,D=#]"
-* Put in the M index value just for this output
+* Put in the agg- index value just for this output
IF ( mode_diagnostic ) THEN
- cx_lo_ss( com_cx,idim ) = is_phase(isp)
- cx_hi_ss( com_cx,idim ) = is_phase(isp)
+ cx_lo_ss( com_cx,agg_dim ) = is_phase(isp)
+ cx_hi_ss( com_cx,agg_dim ) = is_phase(isp)
CALL DIAG_OP
- . ( 'doing',isact_class_aggregate_gather, com_cx, idim )
- cx_lo_ss( com_cx,idim ) = unspecified_int4
- cx_hi_ss( com_cx,idim ) = unspecified_int4
+ . ( 'doing',isact_class_aggregate_gather, com_cx, agg_dim )
+ cx_lo_ss( com_cx,agg_dim ) = unspecified_int4
+ cx_hi_ss( com_cx,agg_dim ) = unspecified_int4
ENDIF
* create context and mem. res. space if this is the first component recieved
@@ -107,7 +108,7 @@
* ... (since all else may be altered during evaluation if its a user var)
CALL TRANSFER_CONTEXT( com_cx, res_cx )
- CALL TRANSFER_AXIS( idim, dflt_cx, res_cx )
+ CALL TRANSFER_AXIS( agg_dim, dflt_cx, res_cx )
cx_grid(res_cx) = cx_grid(dflt_cx)
cx_data_set(res_cx) = cx_data_set(dflt_cx)
cx_bad_data(res_cx) = cx_bad_data(dflt_cx)
@@ -120,7 +121,7 @@
* copy data just received into the result
is_phas_keep = is_phase(isp)
- CALL COPY_AGG_INTO( memory(1,mr_blk1(com_mr)), com_mr, com_cx,
+ CALL COPY_AGG_INTO( memory(1,mr_blk1(com_mr)), com_mr, com_cx, agg_dim,
. memory(1,mr_blk1(res_mr)), res_mr, is_phase(isp) )
* ... remove the component protection that signaled we needed it here
@@ -139,19 +140,51 @@
* no - set up com_cx to get the next aggregate member
is_phase(res_isp) = is_phase(res_isp) + 1
CALL TRANSFER_CONTEXT( dflt_cx, com_cx )
-* Set limits on e-direction to be unspecified
+* Set limits on agg-direction to be unspecified
- cx_lo_ss( com_cx,idim ) = unspecified_int4
- cx_hi_ss( com_cx,idim ) = unspecified_int4
- cx_by_ss( idim,com_cx) = .TRUE.
+ cx_lo_ss( com_cx,agg_dim ) = unspecified_int4
+ cx_hi_ss( com_cx,agg_dim ) = unspecified_int4
+ cx_by_ss( agg_dim,com_cx) = .TRUE.
* Set the grid to the grid of the next aggregate component...
imemb = is_phase(res_isp)
vname = VAR_CODE (cat_file_var, cx_variable(com_cx))
- CALL CD_GET_AGG_VAR_INFO (cx_data_set(com_cx), vname, imemb,
+ agg_dset = cx_data_set(com_cx)
+ CALL CD_GET_AGG_VAR_INFO (agg_dset, vname, imemb,
. fer_uvar, memb_dset, igrid, iline, nv, status)
+
+* Is it the 2D Time variable for a Forecast-aggregation? If so then
+* the information is contained only in the grids not variables of member sets.
+
+ IF (memb_dset .EQ. 0) THEN ! pseudo-variable, not in member datasets.
+ CALL CD_GET_VAR_ID (agg_dset, vname, varid, status)
+
+ maxlen = 128
+ got_it = NC_GET_ATTRIB_STRING ( agg_dset, varid, '_CoordinateAxisType',
+ . .FALSE., vname, maxlen,
+ . attlen, attoutflag, buff)
+ IF (got_it .AND. STR_SAME(buff, 'Time') .EQ. 0) THEN
+
+ cx_category(com_cx) = cat_pseudo_var
+ cx_variable(com_cx) = 10 ! (hack) will load t[gt=var] coordinates
+ cx_variable(res_cx) = nv ! (un-hack)
+
+ cx_grid( com_cx ) = igrid
+
+ CALL CD_GET_AGG_DSET_MEMBER (agg_dset, imemb, memb_dset, status)
+ cx_data_set(com_cx) = memb_dset
+ cx_data_set(res_cx) = agg_dset
+
+ maxlen = 1
+ got_it = NC_GET_ATTRIB( agg_dset, varid, 'missing_value',
+ . .FALSE., vname, maxlen, attlen,
+ . attoutflag, buff, vbad )
+
+ cx_bad_data(com_cx) = vbad
+ ENDIF
+ ELSE
* Grid wasnt stored for this variable if its a LET/D variable in member dset
* Let it be the agg grid ?? (or could set the grid to a number less than
@@ -188,7 +221,7 @@
ENDIF
- CALL FLESH_OUT_AXIS( idim, com_cx, status )
+ CALL FLESH_OUT_AXIS( agg_dim, com_cx, status )
IF ( status .NE. ferr_ok ) GOTO 5000
* updated value for bad? If so update the data in the result
@@ -197,14 +230,14 @@
IF (vbad .NE. cx_bad_pre) THEN
cx_bad_data(res_cx) = cx_bad_data(dflt_cx)
CALL COPY_AGG_INTO( memory(1,mr_blk1(com_mr)), com_mr, com_cx,
- . memory(1,mr_blk1(res_mr)), res_mr, is_phas_keep )
+ . agg_dim, memory(1,mr_blk1(res_mr)), res_mr, is_phas_keep )
ENDIF
-
ENDIF ! or end this above flesh_out??
-
is_uvar(com_isp) = cx_variable(com_cx)
+
+ ENDIF ! pseudo-variable, not in member datasets.
* push the interpretation stack and go get it
isp = com_isp
diff --git a/fer/stk/is_aggregate_grid.F b/fer/stk/is_aggregate_grid.F
index 26c4b52..28a7a0a 100644
--- a/fer/stk/is_aggregate_grid.F
+++ b/fer/stk/is_aggregate_grid.F
@@ -91,7 +91,9 @@
* initialize
- agg_dim = e_dim
+ IF (ds_type(dset) .EQ. 'ENS') agg_dim = e_dim
+ IF (ds_type(dset) .EQ. 'FCT') agg_dim = f_dim
+
test_grid = unspecified_int4
agg_dset = dset
@@ -124,7 +126,7 @@
DO 90 imemb = 1, agg_len
-* See if the previous two members have matching grids (except for ensemble direction)
+* See if the previous two members have matching grids (except for aggretage direction)
IF (test_grid.NE.unspecified_int4 .AND. test_grid.NE.this_grid) THEN
DO 80 idim = 1, nferdims
IF ( (idim .NE. agg_dim) .AND.
@@ -225,7 +227,8 @@
cx_grid(agg_cx) = gnum
cx_data_set(agg_cx) = agg_dset
- cx_category(agg_cx) = cat_aggregate_var
+ IF (agg_dim .EQ. e_dim) cx_category(agg_cx) = cat_agg_e_var
+ IF (agg_dim .EQ. f_dim) cx_category(agg_cx) = cat_agg_f_var
uvar_grid( uvar, dset ) = gnum
uvar_dset( uvar ) = dset
diff --git a/fer/stk/is_algebra.F b/fer/stk/is_algebra.F
index 557278c..e6dc77a 100644
--- a/fer/stk/is_algebra.F
+++ b/fer/stk/is_algebra.F
@@ -95,6 +95,11 @@
* V671 7/11 *acm* Ticket 1868 IFV - masking expressions with ifValid, treating
* zero as valid.
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V694 1/15 *acm* as part of changes for ticket 2227 (handling of dimensions
+* that are not also 1-D coordinate variables), when returning
+* ..dimnames, now list of all dimensions in the dataset.
+* V694 5/15 *acm* Fix ticket 2291. When merging, handle variables from attribute
+* as temp variables.
include 'tmap_dims.parm'
#include "netcdf.inc"
@@ -130,6 +135,7 @@
. nvdims, vdims(8), nvatts, nv, iatt, all_outflag, dot,
. attid, slen
REAL counter_const, val
+*
CHARACTER TM_FMT*150, name*150, attname*128, aname*128, buff*10
@@ -521,7 +527,7 @@
IF (dot .GT. 0) name = uvar_text(uvar)(1:dot-1)
CALL FIND_VAR_NAME(pdset_irrelevant, name, cat, ivar)
IF ( ivar .NE. munknown_var_name .AND.
- . cat .EQ. cat_user_var) dset = -1
+ . cat .EQ. cat_user_var) dset = pdset_uvars
IF (dset .NE. unspecified_int4 .AND.
. dset .NE. pdset_irrelevant) THEN
@@ -678,16 +684,7 @@
ELSE IF (STR_SAME(attname, 'dimnames') .EQ. 0 ) THEN
cx_type(hi_cx) = ptype_string
-
-* Count number of coordinate variables. (file may list more dimensions than
-* coordinates, e.g. a dimension for the grid definition, which is not a coord.)
- nv = 0
- DO 770 ivar = 1, nvars
- CALL CD_GET_VAR_INFO (dset, ivar, name, vartype,
- . nvdims, vdims, nvatts, coordvar, all_outflag,
- . status)
- IF (coordvar) nv = nv + 1
- 770 CONTINUE
+ nv = ndims
IF (reset_ss) THEN
cx_lo_ss(hi_cx, x_dim) = 1
@@ -763,7 +760,7 @@
IF ( status .NE. ferr_ok ) RETURN
is_cx ( isp ) = hi_cx
is_obj( isp ) = lo_isp ! claimed by this level
- IF ( cx_category(hi_cx) .EQ. cat_user_var ) THEN
+ IF ( cx_category(hi_cx) .EQ. cat_attrib_val ) THEN
* ... special action if this component variable is user-defined (uvar)
is_uvar( isp ) = cx_variable( hi_cx )
ENDIF
@@ -858,7 +855,10 @@
* ... to be deleted as soon as used (e.g. "LIST X")
* implicit uvars that are single variables (e.g. "LIST U") need their "in-use"
* flags removed (otherwise done when they're used as operands)
- IF ( mr_category( hi_mr ) .EQ. cat_temp_var ) THEN
+* (ticket 2291) Handle variables from attribute information the same way.
+
+ IF ( mr_category( hi_mr ) .EQ. cat_temp_var .OR.
+ . mr_category(hi_mr) .EQ. cat_attrib_val) THEN
* ... result of algebraic computation
* ... if user set the missing value flag make sure it is used
IF ( cx_bad_data(big_cx) .NE. mr_bad_data(hi_mr) ) THEN
@@ -867,15 +867,16 @@
. memory(1,mr_blk1(hi_mr)), size,
. cx_bad_data(big_cx) )
ENDIF
+
+c Tentative fix for ticket 2234
+ cx_type(big_cx) = cx_type(hi_cx)
CALL RE_ASSIGN_VARIABLE( hi_mr, big_cx )
+
CALL PASS_AMBIG_LIMS( lo_cx, hi_mr, status )
IF ( status .NE. ferr_ok ) GOTO 5000
! ELSEIF (mr_category(hi_mr) .EQ. cat_string) THEN
!! ... string variables not yet implemented 1/99 *sh*
! GOTO 5100
- ELSEIF (mr_category(hi_mr) .EQ. cat_attrib_val) THEN ! like the final ELSE below
- CALL MR_NOT_IN_USE(hi_mr)
- CALL TRANSFER_CONTEXT( big_cx, lo_cx )
ELSEIF ( EXPLICIT_UVAR(uvar) ) THEN
* ... result of a simple definition like DEFINE VARIABLE UAVE=U[K=@AVE]
* or DEFINE VARIABLE NEW=X
@@ -917,6 +918,7 @@
. memory(1,mr_blk1(new_mr)), size,
. cx_bad_data(lo_cx) )
mr_bad_data(new_mr) = cx_bad_data(lo_cx)
+
ELSE
new_mr = is_mr(lo_isp)
size = MGRID_SIZE( new_mr )
@@ -927,10 +929,6 @@
* pop off context for the last component received and "big" (merged) context
-* This diag condition not true when constructing the data with DEFINE DATA/AGG
-c IF ( big_cx .NE. cx_stack_ptr-1
-c . .OR. big_cx .NE. lo_cx+1 ) WRITE (6, *) 'is_alg_2' ! temp diag
-
cx_stack_ptr = cx_stack_ptr - 2
RETURN 2
diff --git a/fer/stk/is_attrib_val.F b/fer/stk/is_attrib_val.F
index 07234d5..83c85ae 100644
--- a/fer/stk/is_attrib_val.F
+++ b/fer/stk/is_attrib_val.F
@@ -46,8 +46,13 @@
* V600 8/18/05
* V600 4/06 *acm* - additional declarations found by Solaris compiler
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V694 1/15 *acm* as part of changes for ticket 2227 (handling of dimensions
+* that are not also 1-D coordinate variables), when returning
+* ..dimnames, now list of all dimensions in the dataset.
include 'tmap_dims.parm'
+# include "tmap_dset.parm"
+ include 'xdset_info.cmn_text'
#include "netcdf.inc"
include 'ferret.parm'
include 'errmsg.parm'
@@ -69,9 +74,9 @@
. mr, cx, size, uvar, n, dset,
. varid, attype, attlen, ndims, nvars,
. ngatts, recdim, ivar, vartype, nvdims,
- . vdims(8), iatt, nvatts, idim, nd, vd, na,
+ . vdims(8), dsdims(200), iatt, nvatts, idim, nd, vd, na,
. attoutflag, all_outflag, xdim, i1, i2, slen,
- . i, indx, nv, dot, cat, attid
+ . i, indx, nv, dot, cat, attid, npts, dimid, nddims
* --- end of introductory code ---
* initialize
@@ -86,9 +91,15 @@
IF (i2 .LT. i1) GOTO 5100
- IF (dset .LT. -1 .OR. (.NOT.cx_dset_gvn(cx) ))
+ IF (dset .LT. pdset_uvars .OR. (.NOT.cx_dset_gvn(cx) ))
. dset = cx_data_set( is_cx(isp-1) )
+ CALL CD_GET_DS_INFO (dset, nddims, nvars, ngatts,
+ . recdim, status)
+ DO 100 idim = 1, nddims
+ dsdims(idim) = idim
+ 100 CONTINUE
+
* reserve and catalog space for the result
CALL CREATE_TEMP_MEM_VAR( cx, mr, status )
@@ -108,7 +119,7 @@
IF (dot .GT. 0) varname = uvar_text(uvar)(1:dot-1)
CALL FIND_VAR_NAME(pdset_irrelevant, varname, cat, ivar)
IF ( ivar .NE. munknown_var_name .AND.
- . cat .EQ. cat_user_var) dset = -1
+ . cat .EQ. cat_user_var) dset = pdset_uvars
* do_err: issue error message if attrib does not exist on varname.attname
do_err = .TRUE.
@@ -147,28 +158,31 @@
got_it = .TRUE.
ELSE IF (STR_SAME(attname, 'dimnames') .EQ. 0 ) THEN
+
-* Get and store the coordinate variable names.
+* Get and store the dimension names.
n = i2 - i1 + 1
CALL INIT_C_STRING_ARRAY( n,
. memory(1,mr_blk1(mr)),
. mr_c_pointer(mr) )
+ IF (ds_type(dset) .NE. 'CDF') GOTO 5200
+
+* All the dimensions from the dataset
+
n = 0
nv = 0
- DO 220 i = 1, nvars
+ nvdims = nddims
+
+ DO 220 idim = 1, nvdims
name = ' '
- CALL CD_GET_VAR_INFO (dset, i, name, vartype,
- . nvdims, vdims, nvatts, coordvar, all_outflag,
- . status)
- IF (coordvar) THEN
- nv = nv + 1
- IF (nv .GE. i1 .AND. nv .LE. i2) THEN
- slen = TM_LENSTR1(name)
- CALL STORE_STRING(name(1:slen), mr, n, status)
- n = n + 1
- ENDIF
- ENDIF
+ CALL CD_GET_DS_DIMS (dset, dsdims(idim), name, npts, status)
+ nv = nv + 1
+ IF (nv .GE. i1 .AND. nv .LE. i2) THEN
+ slen = TM_LENSTR1(name)
+ CALL STORE_STRING(name(1:slen), mr, n, status)
+ n = n + 1
+ ENDIF
220 CONTINUE
got_it = .TRUE.
@@ -191,6 +205,8 @@
got_it = .TRUE.
ELSE IF (STR_SAME(attname, 'ndims') .EQ. 0 ) THEN
+ IF (ds_type(dset) .NE. 'CDF') GOTO 5200
+
memory( 1, mr_blk1(mr)) = ndims
got_it = .TRUE.
@@ -295,16 +311,20 @@
got_it = .TRUE.
ELSE IF (STR_SAME(attname, 'dimnames') .EQ. 0 ) THEN
+
+* Get the datset dimension names - not all dimensions are a coordinate variable.
+
IF (nvdims .GT. 0) THEN
CALL INIT_C_STRING_ARRAY( nvdims,
. memory(1,mr_blk1(mr)),
. mr_c_pointer(mr) )
+ IF (ds_type(dset) .NE. 'CDF') GOTO 5200
+
n = 0
DO 700 idim = i1, i2
- CALL CD_GET_VAR_INFO (dset, vdims(idim), dname,
- . vartype, nd, vd, na, coordvar, all_outflag,
- . status)
+ CALL CD_GET_DS_DIMS (dset, dsdims(vdims(idim)),
+ . dname, npts, status)
slen = TM_LENSTR1(dname)
CALL STORE_STRING(dname(1:slen), mr, n, status)
n = n + 1
@@ -313,10 +333,13 @@
got_it = .TRUE.
ELSE IF (STR_SAME(attname, 'ndims') .EQ. 0 ) THEN
+ IF (ds_type(dset) .NE. 'CDF') GOTO 5200
+
memory( 1, mr_blk1(mr)) = nvdims
got_it = .TRUE.
ELSE IF (STR_SAME(attname, 'nctype') .EQ. 0 ) THEN
+
memory( 1, mr_blk1(mr)) = vartype
got_it = .TRUE.
@@ -390,5 +413,8 @@
5100 status = ferr_out_of_range
err_string = "invalid dataset attribute index"
CALL ERRMSG( status, status, err_string, *5000 )
+ 5200 status = ferr_invalid_command
+ err_string = "implemented only for netCDF/OPeNDAP datasets"
+ CALL ERRMSG( status, status, err_string, *5000 )
END
diff --git a/fer/stk/is_auxvar_regrid.F b/fer/stk/is_auxvar_regrid.F
index b4e7870..ad60fa2 100644
--- a/fer/stk/is_auxvar_regrid.F
+++ b/fer/stk/is_auxvar_regrid.F
@@ -50,6 +50,7 @@
*
* revision 0.0 - 9/2013 based upon IS_REGRID
* for Ferret v685+
+* v695+ *sh* 3/15 - support for TF (FMRC) regridding added
IMPLICIT NONE
@@ -76,10 +77,13 @@
. aux_mr_list(nferdims), mr1, mr2, mr3,
. aux_cx_list(nferdims), cx1, cx2, cx3,
. isp_ptr, axis_list(nferdims),
- . dst_cx, src_cx, com_cx, dst_mr, src_mr, frame_bottom, impl_grid,
- . slen, s1, sn, naux, ptr
+ . dst_cx, src_cx, com_cx, dst_mr, src_mr, frame_bottom,
+ . impl_grid, slen, s1, sn, naux, ptr
CHARACTER*128 VAR_CODE, src_name, com_name
+!* temporary cuz totalview doesn't see equiv vars
+! INTEGER im1, im2, im3, ic1, ic2, ic3
+
EQUIVALENCE
. ( aux_mr_list(1), mr1 ),
. ( aux_mr_list(2), mr2 ),
@@ -124,7 +128,7 @@
lo_isp = is_obj(isp) ! the isp level of the regrid operation
ENDIF
lo_cx = is_cx(lo_isp)
- naxis = cx_naux( lo_cx )
+ naux = cx_naux( lo_cx )
IF (cx_type(lo_cx) .EQ. ptype_string) GOTO 5010
* set pointers to the auxiliary variables
@@ -134,23 +138,50 @@
aux_mr_list(i) = dummy_mr
aux_cx_list(i) = unspecified_int4
5 CONTINUE
+!**************
+!* remove these lines
+! im1 = mr1
+! im2 = mr2
+! im3 = mr3
+! ic1 = cx1
+! ic2 = cx2
+! ic3 = cx3
+!**************
i = 0
- DO 10 idim = 1, nferdims
+ DO idim = 1, nferdims
IF (cx_aux_var(idim,lo_cx) .NE. unspecified_int4) THEN
i = i + 1
isp_ptr = lo_isp + i
axis_list(i) = idim
- aux_mr_list(i) = is_mr(isp_ptr) ! see equivs
- aux_cx_list(i) = is_cx(isp_ptr) ! see equivs
+ IF (idim .EQ. f_dim
+ . .AND. cx_aux_var(t_dim,lo_cx) .NE. unspecified_int4) THEN
+* ... note that with TF regridding there are 2 dimensions with cx_aux_var but
+* only one auxiliary variable, TIME2D, so both axes point to same aux var
+ aux_mr_list(i) = aux_mr_list(1)
+ aux_cx_list(i) = aux_cx_list(1)
+ ELSE
+ aux_mr_list(i) = is_mr(isp_ptr) ! see equivs
+ aux_cx_list(i) = is_cx(isp_ptr) ! see equivs
+ ENDIF
ENDIF
- 10 CONTINUE
-* naxis should equal i at this point, but no need to confirm
-
-* sanity check
- IF (naxis.GT.1) CALL ERRMSG(ferr_prog_limit, status,
- . 'for now only 1 aux var supported', *5000)
-*! IF (naxis.GT.3) CALL ERRMSG(ferr_prog_limit, status,
-*! . 'more than 3 auxiliary regrid vars', *5000)
+ ENDDO
+!**************
+!* remove these lines
+! im1 = mr1
+! im2 = mr2
+! im3 = mr3
+! ic1 = cx1
+! ic2 = cx2
+! ic3 = cx3
+!**************
+* ... TF-regridding (FMRC) introduces the idea that the number of axes being
+* regridded (T&F) may differ from the number of aux variables (time2d)
+ naxis = i
+
+* sanity checks
+! IF ( naux.GT.1 )
+! . CALL ERRMSG(ferr_prog_limit, status,
+! . 'for now TF is the only 2 aux var regrid supported', *5000)
IF ( is_phase(lo_isp) .EQ. isphase_get_aux_var ) THEN
@@ -160,20 +191,30 @@
* put isp up one so that the component just received stays on the stack
isp = isp + 1
- IF (is_sum(lo_isp) .LT. naxis ) THEN
+ IF (is_sum(lo_isp) .LT. naux ) THEN
* *** SET UP TO GET THE NEXT AUXILIARY VARIABLE ***
is_sum(lo_isp) = is_sum(lo_isp) + 1 ! the next auxvar
CALL GET_AUX_VAR_CONTEXT( lo_cx, hi_cx, is_sum(lo_isp),
. status )
IF ( status .NE. ferr_ok ) GOTO 5000
- is_axis(lo_isp) = AUX_AXIS_FROM_ARG(lo_cx, is_sum(lo_isp))
+ is_axis(lo_isp) = AUX_AXIS_FROM_ARG(lo_cx, is_sum(lo_isp) )
ELSE
* *** SET UP TO GET THE SOURCE DATA ***
is_phase(lo_isp) = isphase_get_source_var
* set up 4D array limits as unsubscripted variables in COMMON
- CALL NON_ARRAY_SUBSC( aux_mr_list, naxis )
+ CALL NON_ARRAY_SUBSC( aux_mr_list, naux )
+
+!**************
+!* remove these lines
+! im1 = mr1
+! im2 = mr2
+! im3 = mr3
+! ic1 = cx1
+! ic2 = cx2
+! ic3 = cx3
+!**************
* create the context for the source data needed to perform the regrid
CALL AUX_REGRID_LIMS( lo_cx, hi_cx, axis_list, naxis,
@@ -302,8 +343,9 @@
cx_impl_grid ( cx_buff ) = cx_impl_grid ( dst_cx )
cx_naux ( cx_buff ) = cx_naux ( dst_cx )
DO 310 idim = 1, nferdims
- cx_aux_var(idim, cx_buff) = cx_aux_var(idim, dst_cx)
- cx_aux_cat(idim, cx_buff) = cx_aux_cat(idim, dst_cx)
+ cx_aux_var (idim, cx_buff) = cx_aux_var (idim, dst_cx)
+ cx_aux_cat (idim, cx_buff) = cx_aux_cat (idim, dst_cx)
+ cx_aux_stat(idim, cx_buff) = cx_aux_stat(idim, dst_cx)
310 CONTINUE
CALL TRANSFER_CONTEXT( cx_buff, dst_cx ) ! (nervous. is it ok to clobber this?)
diff --git a/fer/stk/is_const_var.F b/fer/stk/is_const_var.F
index 86610f2..258830d 100644
--- a/fer/stk/is_const_var.F
+++ b/fer/stk/is_const_var.F
@@ -9,6 +9,7 @@
* V530: 8/00 *sh* - allow lists of strings
* V533: 7/01 *sh* - allow single quoted strings
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 2/15 - support for _DQ_ and _SQ_ as quotation indicators
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -50,8 +51,10 @@
start = uvar_item_start( item, uvar )
end = uvar_item_end ( item, uvar )
- IF ( INDEX(uvar_text(uvar)(start:end), '"') .GT. 0
- . .OR. INDEX(uvar_text(uvar)(start:end), "'") .GT. 0 ) THEN
+ IF ( INDEX(uvar_text(uvar)(start:end), '"') .GT. 0
+ . .OR. INDEX(uvar_text(uvar)(start:end), "'") .GT. 0
+ . .OR. INDEX(uvar_text(uvar)(start:end), "_DQ_") .GT. 0
+ . .OR. INDEX(uvar_text(uvar)(start:end), "_SQ_") .GT. 0 ) THEN
* ... set up FORTRAN-independent pointer
CALL INIT_C_STRING_ARRAY( size,
. memory(1,mr_blk1(mr)),
diff --git a/fer/stk/is_counter_var.F b/fer/stk/is_counter_var.F
index 0a5dd9b..07380fc 100644
--- a/fer/stk/is_counter_var.F
+++ b/fer/stk/is_counter_var.F
@@ -42,6 +42,7 @@
* *acm* 4/12 6D Ferret: time axis may be in t or f direction.
* V683 *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
* V69+ *acm*10/14 Bug 2200: assign mr subscripts correctly
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -90,8 +91,8 @@
cx_trans ( idim, cx ) = trans_no_transform
cx_trans_arg( idim, cx ) = bad_val4
- if (idim .EQ. t_dim )
- . cx_calendar(cx) = .FALSE.
+ if (idim .EQ. t_dim .OR. idim .EQ. f_dim)
+ . cx_calendar(idim,cx) = .FALSE.
* diagnostic output
diff --git a/fer/stk/is_dependencies.F b/fer/stk/is_dependencies.F
index f570f48..44291db 100644
--- a/fer/stk/is_dependencies.F
+++ b/fer/stk/is_dependencies.F
@@ -45,7 +45,10 @@
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
*
* V690 9/13 *sh* -- with provisions for aux variables tested and refined
-* V693 10/14*acm* -- Fix tickets 2201, 2215
+* V693+ 12/14 *sh* - repair improper handling of dynamic grids
+* later same month: tweak the repair to fix bug #2225
+* and always report TWO (or more) dependency lines when regridding occurs
+* V695+ 2/15 *sh* - report target of regrid even if auxvar is involved
* calling argument declarations:
INTEGER status
@@ -164,7 +167,7 @@
IF ( status .NE. ferr_ok ) GOTO 5000
memb_cx = cx_stack_ptr
CALL TRANSFER_CONTEXT(lo_cx, memb_cx)
- varcode = VAR_CODE(cat_aggregate_var, var)
+ varcode = VAR_CODE(cx_category(hi_cx), var)
CALL CD_GET_AGG_VAR_INFO (agg_dset, varcode, imemb,
. fer_uvar, memb_dset, memb_grid, iline, nv, status)
cx_category(memb_cx) = fer_uvar
@@ -241,15 +244,16 @@
. hi_cx,
. var_status )
-* Ticket 2201:
-* get_var_context increments line_use_cnt, and defines a grid. Store
-* the uvar_grid so that the axes may be canceled later.
-* Ticket 2115: If it's a grid as defined in get_context where we've
-* encoded the start/end limits of the uvar name into the grid (see
-* get_context_mods) do not store that grid number.
-
- IF (cx_category(hi_cx) .EQ. cat_user_var) THEN
- IF (cx_grid(hi_cx) .GE. unspecified_int4) uvar_grid(uvar,dset) = cx_grid(hi_cx)
+* some house-keeping if a regridding dependency was detected
+ IF ( cx_unstand_grid(hi_cx)
+ . .AND. dependency_tree_mode ) THEN
+ DO i = 1, cx_vtree_regrid_ntarget
+ IF (cx_vtree_unknown_grid(i)) THEN
+* ... point to character position of "[]" relative to full uvar_text
+ cx_vtree_var_or_start(i) = cx_vtree_var_or_start(i) + start - 1
+ cx_vtree_cat_or_end (i) = cx_vtree_cat_or_end (i) + start - 1
+ ENDIF
+ ENDDO
ENDIF
* have we returned here after reporting auxvar dependencies?
@@ -265,6 +269,10 @@
IF ( var_status .NE. ferr_unknown_auxvar ) THEN
CALL REPORT_DEPENDENCY( hi_cx, isp, uvar, item,
. work, var_status, desist )
+* ... a special lines to report regridding dependency
+ IF (cx_unstand_grid(hi_cx) )
+ . CALL REPORT_DEPENDENCY( hi_cx, isp+1, uvar, item,
+ . work, pcx_vtree_regrid_report, desist )
ENDIF
* if the variable used auxiliary variables for regridding set up new isp
@@ -300,7 +308,8 @@
* if the variable is an aggregation from multiple datasets set up new isp
* level and report the ensemble members
ELSEIF ( .NOT.desist
- . .AND. cx_category(hi_cx) .EQ. cat_aggregate_var ) THEN
+ . .AND. (cx_category(hi_cx) .EQ. cat_agg_e_var .OR.
+ . cx_category(hi_cx) .EQ. cat_agg_f_var) ) THEN
CALL PUSH_INTERP_STACK( isp, status )
IF ( status .NE. ferr_ok ) RETURN
is_phase( isp ) = 0
@@ -333,6 +342,21 @@
* clean up: release context and isp stack space
1000 CONTINUE
+! this is in effect a precautionary "assert"
+ IF (cx_has_impl_grid(cx_stack_ptr)) THEN
+ CALL WARN('crptn_is_dependencies')
+ CALL DEALLO_GRID(i)
+ ENDIF
+! commented out (removed) 12/31 in favor of related code in GET_VAR_CONTEXT
+!* ... if a dynamic grid was created for this variable release it
+!* Note that this fix is not fully understood. In IS_DEPENDENCIES
+!* we don't actually care about grid allocations and use counts, however
+!* dynamic grids get created by GET_VAR_CONTEXT, etc. so we have to clean up
+! IF ( cx_has_impl_grid(cx_stack_ptr)
+! . .AND. cx_grid(cx_stack_ptr).NE. unspecified_int4 ) THEN
+! CALL DEALLO_DYN_GRID(cx_grid(cx_stack_ptr))
+! cx_has_impl_grid(cx_stack_ptr) = .FALSE.
+! ENDIF
cx_stack_ptr = cx_stack_ptr - 1
isp = isp - 1
diff --git a/fer/stk/is_do_gc_fcn.F b/fer/stk/is_do_gc_fcn.F
index 6149c4a..7285bd4 100644
--- a/fer/stk/is_do_gc_fcn.F
+++ b/fer/stk/is_do_gc_fcn.F
@@ -58,6 +58,7 @@
* V68 3/12 *KMS/ACM* see 6D branch: working on string bugs. Remove overloading
* of argument/return-type variable and predimensional (data size)
* array parameter (pointer size to one in double-precision Ferret).
+* V694 *acm* 1214 Fixing ticket 2220: varname.attname in a function argument
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -71,7 +72,7 @@
include 'xtext_info.cmn'
include 'xfr_grid.cmn' ! w/ mgrid_abstract
include 'xgrid_chg_fcns.cmn'
- include 'xrisc_buff.cmn'
+ include 'xrisc_buff.cmn'
* calling arguments
INTEGER uvar, lo_isp, status
@@ -87,7 +88,7 @@
. typ1, typ2, typ3, typ4, typ5, typ6, typ7, typ8, typ9,
. typr, pdim1, pdim2, pdim3, pdim4, pdim5, pdim6, pdim7,
. pdim8, pdim9, pdimr, frame_bottom, com_cx, res_mr,
- . itype, arg_first_mismatch, slen
+ . itype, arg_first_mismatch, slen, iset
CHARACTER*40 TM_FMT, alt_name
* convenience equivalences
@@ -229,7 +230,10 @@
ELSE
STOP 'IS_DO_GC_FCN typr is neither pfcn_rtn_string nor pfcn_rtn_float'
ENDIF
- uvar_data_type(uvar, cx_data_set(res_cx)) = cx_type(res_cx)
+
+ iset = cx_data_set(res_cx)
+ IF (iset .EQ. unspecified_int4) iset = pdset_irrelevant
+ uvar_data_type(uvar, iset) = cx_type(res_cx)
ENDIF
* need to fill in those axes that the function "imposes"
diff --git a/fer/stk/is_do_op.F b/fer/stk/is_do_op.F
index 0d9a9ac..0275af1 100644
--- a/fer/stk/is_do_op.F
+++ b/fer/stk/is_do_op.F
@@ -79,6 +79,9 @@
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* V68 3/12 *acm* The string operations EQ, NE, LT, etc return a float-type result.
* Reset mr_type; it has already been set to string elsewhere.
+* V694 5/14 *acm* Ticket 2234: Issue an error instead of returning missing results on
+* inappropriate use of string arguments in numeric expressions or mixed
+* string/numeric expressions with logic operators. See bn_strings.jnl
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -242,13 +245,19 @@
. .OR. (op_num.GT.offset_logic_struc) )
* perform the operation
- IF (.NOT.arg_types_matched
- . .OR. (arg_type.EQ.ptype_string .AND. numerical_op) ) THEN
-* ... inappropriate use of string arguments
- CALL FILL_MEMORY ( memory, mr_blk1 (res_mr),
+
+ IF (.NOT.arg_types_matched ) THEN
+* ... allow mix of float and string arguments (lets us use symbols as numbers)
+ CALL FILL_MEMORY ( memory, mr_blk1 (res_mr),
. mr_nblks(res_mr),
. mr_bad_data(res_mr) )
+ ELSEIF ( arg_type.EQ.ptype_string .AND. numerical_op ) THEN
+* ... inappropriate use of string arguments
+* Issue an error instead of returning missing results on
+* inappropriate use of string arguments
+ GOTO 5200
+
ELSEIF (arg_type.EQ.ptype_string) THEN
IF (op_num .EQ. 1 ) THEN ! "+"
CALL STRING_CONCATENATE
@@ -340,6 +349,8 @@
* error exit
5000 RETURN
-! 5100 CALL ERRMSG( ferr_invalid_command, status,
-! . 'cannot use a string as an argument to: '//alg_text, *5000 )
+ 5100 CALL ERRMSG( ferr_invalid_command, status,
+ . 'cannot use a string as an argument to: '//alg_text, *5000 )
+ 5200 CALL ERRMSG( ferr_invalid_command, status,
+ . 'cannot use strings in numerical expression', *5000 )
END
diff --git a/fer/stk/is_grid_mode.F b/fer/stk/is_grid_mode.F
index bb26e3e..4f51836 100644
--- a/fer/stk/is_grid_mode.F
+++ b/fer/stk/is_grid_mode.F
@@ -47,6 +47,7 @@
* V510: *sh* 4/00 - initialize the grid that is allocated to
* V600 4/06 *acm* - misspelled variable found by Solaris compiler
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
* calling argument declarations:
INTEGER status
@@ -75,8 +76,8 @@
cx_lo_ww(idim,cx) = unspecified_val8
cx_hi_ww(idim,cx) = unspecified_val8
cx_delta(idim,cx) = unspecified_val8
+ cx_calendar(idim,cx) = .FALSE.
100 CONTINUE
- cx_calendar(cx) = .FALSE.
cx_cal_id(cx) = unspecified_int4
* diagnostic alert
diff --git a/fer/stk/is_pseudo.F b/fer/stk/is_pseudo.F
index 5c696e1..e9529fa 100644
--- a/fer/stk/is_pseudo.F
+++ b/fer/stk/is_pseudo.F
@@ -86,7 +86,7 @@
* Get the direction of the pseudo-variable.
- idim = MOD( cx_variable(cx)-1, 6 ) + 1
+ idim = MOD( cx_variable(cx)-1, nferdims ) + 1
CALL MAKE_PSEUDO_VAR( cx, idim, memory(1, mr_blk1(mr)), mr,
. mr_lo_ss(mr,idim), mr_hi_ss(mr,idim) )
diff --git a/fer/stk/is_regrid.F b/fer/stk/is_regrid.F
index 46cab66..f979b4b 100644
--- a/fer/stk/is_regrid.F
+++ b/fer/stk/is_regrid.F
@@ -85,6 +85,7 @@
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
* V68+ 4/12 *acm* Fix ticket 1931: the work space for XY linear regridding
* was computed incorrectly.
+* V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -315,6 +316,13 @@ c . .AND. cx_has_impl_grid(dst_cx)
. memory(1,mr_blk1(src_mr)), src_mr,
. memory(1,mr_blk1(dst_mr)), dst_mr,
. memory(1, blk1), wk_size+1, 2*wk_size )
+ ELSEIF ( rgrd_trans .EQ. prgrd_bin
+ . .OR. rgrd_trans .EQ. prgrd_nbin ) THEN
+ CALL DO_BIN_REGRID( cx_valid, axis, rgrd_trans,
+ . memory(1,mr_blk1(src_mr)), src_mr,
+ . memory(1,mr_blk1(dst_mr)), dst_mr,
+ . memory(1, blk1), src_cx, dst_cx,
+ . wk_size+1 )
* modulo regridding
ELSE
IF ( itsa_string ) GOTO 5010
diff --git a/fer/stk/is_string.F b/fer/stk/is_string.F
index 54a77ed..346e532 100644
--- a/fer/stk/is_string.F
+++ b/fer/stk/is_string.F
@@ -8,6 +8,7 @@
* V500: 1/99 - based on IS_CONST_VAR
* V530: 8/00 *sh* - support for string arrays -- use dynamic memory alloc
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 12/14 support for _DQ_ and _SQ_ string delimiters
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -52,8 +53,20 @@
* determine the string to be stored
uvar = cx_variable(cx)/1000
item = cx_variable(cx) - 1000*uvar
- start = uvar_item_start( item, uvar ) + 1 ! +1 skip quote
- end = uvar_item_end ( item, uvar ) - 1 ! -1 skip quote
+ start = uvar_item_start( item, uvar )
+ end = uvar_item_end ( item, uvar )
+
+* trim off surrounding quotation marks
+ IF (uvar_text(uvar)(start:start) .EQ. '"'
+ . .OR. uvar_text(uvar)(start:start) .EQ. "'" ) THEN
+! trim off single or double quotes
+ start = start + 1
+ end = end - 1
+ ELSEIF (end-start .GT. 7) THEN ! should always be true if here
+! trim off "_DQ_" or "_SQ_"
+ start = start + 4
+ end = end - 4
+ ENDIF
* save the string in dynamic memory
CALL STORE_STRING(uvar_text(uvar)(start:end),
diff --git a/fer/stk/is_strip.F b/fer/stk/is_strip.F
index ba13cde..7f50aec 100644
--- a/fer/stk/is_strip.F
+++ b/fer/stk/is_strip.F
@@ -90,10 +90,13 @@
* internal variable declarations:
LOGICAL ITSA_MODULO_REGRID, TM_ITS_SUBSPAN_MODULO, NC_GET_ATTRIB,
- . itsa_uvar, modulo_dest_regrid, allatonce, attoutflag, got_it
+ . NC_GET_ATTRIB_STRING, ITSA_MODULO_AXIS,
+ . itsa_uvar, modulo_dest_regrid, allatonce, attoutflag,
+ . got_it
INTEGER CGRID_SIZE_MAX, CAXIS_LEN, CAXIS_MODLEN, CX_DIM_LEN,
- . AUX_AXIS_FROM_ARG, CGRID_AXIS, POTENT_SIZE,
+ . AUX_AXIS_FROM_ARG, CGRID_AXIS, POTENT_SIZE,
. ISUBSCR_CX, TM_AXES_REVERSED, CGRID_SIZE, MODULO_PARITY,
+ . STR_SAME, TM_LENSTR1,
. nrev, reversed(nferdims), idel,
. trans, grid, dset, lo_off, hi_off, aclass,
. lo_cx, hi_cx, big_cx, lo_isp, i, axis,
@@ -104,7 +107,8 @@
REAL ax_frac, vbad
REAL*8 TM_WORLD, ww_given, ww_nrst
CHARACTER*128 VAR_CODE, vname
- CHARACTER*10 buff
+ CHARACTER*128 buff
+
* --- end of introductory code ---
* initiailize - ! temp:always called at bottom of stack frame for transform
@@ -139,19 +143,13 @@
* cancel result pointer to indicate no result yet
is_mr( lo_isp ) = unspecified_int4
-* Set up context (hi_cx) to get the first requested aggregate member of M
+* Set up context (hi_cx) to get the first requested aggregate member
is_sum( lo_isp ) = cx_hi_ss(lo_cx, idim)
is_phase( lo_isp ) = cx_lo_ss(lo_cx, idim)
CALL TRANSFER_CONTEXT( big_cx, hi_cx )
-* Set limits on e-direction to be unspecified
-
- cx_lo_ss( hi_cx,e_dim ) = unspecified_int4
- cx_hi_ss( hi_cx,e_dim ) = unspecified_int4
- cx_by_ss( e_dim,hi_cx) = .TRUE.
-
* Set the grid to the grid of the first aggregate component...
imemb = is_phase( lo_isp )
@@ -159,34 +157,85 @@
CALL CD_GET_AGG_VAR_INFO (dset, vname, imemb, fer_uvar,
. memb_dset, igrid, iline, nv, status)
+ IF (status .NE. ferr_ok) THEN
+ CALL CD_GET_VAR_ID (dset, vname, varid, status)
+ IF (status .NE. ferr_ok)
+ . CALL ERRMSG(ferr_aggregate_error, status, 'variable '//
+ . vname(:TM_LENSTR1(vname))//' not found in aggregate dataset', *5000)
+ ENDIF
+
+* Is it the 2D Time variable for a Forecast-aggregation? If so then
+* the information is contained only in the grids not variables of member sets.
+
+ IF (memb_dset .EQ. 0) THEN
+ CALL CD_GET_VAR_ID (dset, vname, varid, status)
+
+ maxlen = 128
+ got_it = NC_GET_ATTRIB_STRING ( dset, varid, '_CoordinateAxisType',
+ . .FALSE., vname, maxlen,
+ . attlen, attoutflag, buff)
+ IF (got_it .AND. STR_SAME(buff, 'Time') .EQ. 0) THEN
+
+ cx_category(hi_cx) = cat_pseudo_var
+ cx_variable(hi_cx) = 10 ! (hack) will load t[gt=var] coordinates
+
+ cx_grid( hi_cx ) = igrid
+ cx_data_set(hi_cx) = dset
+
+* since it is a pseudo-variable, all dimensions are normal except its axis
+ DO i = 1, nferdims
+ IF (i .EQ. t_dim) CYCLE
+ cx_lo_ss( hi_cx,i ) = unspecified_int4
+ cx_hi_ss( hi_cx,i ) = unspecified_int4
+ cx_by_ss( i,hi_cx ) = .TRUE.
+ cx_lo_ww( i,hi_cx ) = unspecified_val8
+ cx_hi_ww( i,hi_cx ) = unspecified_val8
+ ENDDO
+
+ maxlen = 1
+ got_it = NC_GET_ATTRIB( dset, varid, 'missing_value',
+ . .FALSE., vname, maxlen, attlen,
+ . attoutflag, buff, vbad )
+
+ cx_bad_data(hi_cx) = vbad
+ ENDIF
+ ELSE
+
+* Set limits on agg-direction to be unspecified
+
+ cx_lo_ss( hi_cx,idim ) = unspecified_int4
+ cx_hi_ss( hi_cx,idim ) = unspecified_int4
+ cx_by_ss( idim,hi_cx) = .TRUE.
+
* Grid wasnt stored for this variable if its a LET/D variable in member dset
* Let it be the agg grid ?? (or could set the grid to a number less than
* unspecified_int4 to call get_uvar_grid for this LET/D member var)
- IF (igrid .EQ. unspecified_int4) THEN
- cx_data_set(hi_cx) = memb_dset
- cx_category(hi_cx) = cat_user_var
- cx_variable(hi_cx) = nv
- ELSE
+ IF (igrid .EQ. unspecified_int4) THEN
+ cx_data_set(hi_cx) = memb_dset
+ cx_category(hi_cx) = cat_user_var
+ cx_variable(hi_cx) = nv
+ ELSE
- CALL CD_GET_VAR_ID (memb_dset, vname, varid, status)
- maxlen = 1
- got_it = NC_GET_ATTRIB( memb_dset, varid, 'missing_value',
+ CALL CD_GET_VAR_ID (memb_dset, vname, varid, status)
+ maxlen = 1
+ got_it = NC_GET_ATTRIB( memb_dset, varid, 'missing_value',
. .FALSE., vname, maxlen, attlen,
. attoutflag, buff, vbad )
+ cx_grid( hi_cx ) = igrid
+ cx_data_set(hi_cx) = memb_dset
- cx_grid( hi_cx ) = igrid
- cx_data_set(hi_cx) = memb_dset
-
- IF (fer_uvar .EQ. 3) THEN
- cx_category(hi_cx) = cat_user_var
- ELSE
- cx_category(hi_cx) = cat_file_var
- cx_bad_data(hi_cx) = vbad
+ IF (fer_uvar .EQ. 3) THEN
+ cx_category(hi_cx) = cat_user_var
+ ELSE
+ cx_category(hi_cx) = cat_file_var
+ cx_bad_data(hi_cx) = vbad
+ ENDIF
ENDIF
- ENDIF
- is_uvar(lo_isp) = cx_variable(hi_cx)
+ is_uvar(lo_isp) = cx_variable(hi_cx)
+
+ ENDIF ! member datset
ELSEIF ( aclass .EQ. isact_class_trans) THEN
@@ -201,12 +250,25 @@
. .AND. trans .NE. trans_interpolate ) GOTO 200 ! 2/90
* possibly need different limits for component than for result
+
IF ( grid .NE. unspecified_int4 ) THEN
IF ( trans .LT. trans_compress_code ) THEN
CALL OFFSET_SS( axis, lo_cx, lo_off, hi_off, status )
IF ( status .NE. ferr_ok ) GOTO 5000
cx_lo_ss(hi_cx,axis) = cx_lo_ss(hi_cx,axis) + lo_off
cx_hi_ss(hi_cx,axis) = cx_hi_ss(hi_cx,axis) + hi_off
+
+* Ticket 2301: If the requested region is at the end of an axis, so the offset
+* takes the high subscript below the axis start or the low subscript above the
+* axis end, definition, move the index limit(s) to the axis end.
+* (similar change in is_trans)
+
+ IF ( .NOT. ITSA_MODULO_AXIS(hi_cx, idim) ) THEN
+ IF (cx_hi_ss(hi_cx,axis) .LT.1) cx_hi_ss(hi_cx,axis) = 1
+ IF (cx_lo_ss(hi_cx,axis) .GT. CAXIS_LEN(axis,hi_cx))
+ . cx_lo_ss(hi_cx,axis) = CAXIS_LEN(axis,hi_cx)
+ ENDIF
+
cx_by_ss(axis,hi_cx) = .TRUE.
CALL CONFINE_AXIS( axis, hi_cx, status )
IF ( status .NE. ferr_ok ) GOTO 5000
diff --git a/fer/stk/is_trans.F b/fer/stk/is_trans.F
index 3426fd7..8e11b75 100644
--- a/fer/stk/is_trans.F
+++ b/fer/stk/is_trans.F
@@ -87,6 +87,7 @@
include 'xvariables.cmn'
include 'xtext_info.cmn'
include 'xalgebra.cmn'
+ include 'xfr_grid.cmn'
* calling argument declarations:
INTEGER status
@@ -98,8 +99,8 @@
* internal variable declarations:
* ... "res"="result" , "com"="component"
- LOGICAL ITSA_FILL_TRANS, its_4d, string_bad_good, string_com
- INTEGER CX_DIM_LEN, MGRID_SIZE_DELTA, DO_4D_STRING_TRANS,
+ LOGICAL ITSA_FILL_TRANS, ITSA_MODULO_AXIS, its_4d, string_bad_good, string_com
+ INTEGER CX_DIM_LEN, MGRID_SIZE_DELTA, DO_4D_STRING_TRANS, CAXIS_LEN,
. slen, cx_valid,
. res_isp, com_isp, res_cx, com_cx, com_mr, res_mr, idim,
. trans, grid, lo_off, hi_off, ss_lo, ss_hi, wksiz, wkblk,
@@ -182,6 +183,17 @@
DO 300 i = 1, ndim
idim = axes(i)
* ... if the requested region was unknown use the component region
+
+* ... abstract grid ignore a set region that may be in the res_cx.
+
+ IF ( cx_lo_ss(res_cx,idim).EQ.unspecified_int4
+ . .AND.cx_lo_ww(idim,res_cx).NE.unspecified_val8 ) THEN
+ IF (cx_grid(com_cx) .GE. mgrid_abstract .AND. cx_grid(com_cx) .LE. mgrid_fabstract ) THEN
+ cx_lo_ss( res_cx, idim ) = cx_lo_ss(com_cx,idim)
+ cx_hi_ss( res_cx, idim ) = cx_hi_ss(com_cx,idim)
+ ENDIF
+ ENDIF
+
IF ( cx_lo_ss(res_cx,idim).EQ.unspecified_int4
. .AND.cx_lo_ww(idim,res_cx).EQ.unspecified_val8 ) THEN
* 11/95 - FLESH_OUT_AXIS cannot be trusted to flesh this out.
@@ -278,8 +290,23 @@
* Note (8/92): when the requested limites are unknown the com_cx will be
* full-width along idim so subtracting the offset limits leaves
* cx_valid as beyond the possible range but no known crash results
+
cx_lo_ss( cx_valid, idim ) = cx_lo_ss( com_cx, idim ) - lo_off
cx_hi_ss( cx_valid, idim ) = cx_hi_ss( com_cx, idim ) - hi_off
+
+* Ticket 2301: If the requested region is at the end of an axis, so the offset
+* takes the high subscript below the axis start or the low subscript above the
+* axis end, move the index limit(s) to the axis end.
+* (similar change in is_strip)
+* Ticket 2314, tweak this logic
+
+ IF ( .NOT. ITSA_MODULO_AXIS(com_cx, idim) ) THEN
+ cx_lo_ss( cx_valid, idim ) = MAX(1,cx_lo_ss( cx_valid, idim ))
+ cx_hi_ss( cx_valid, idim ) = MAX(1,cx_hi_ss( cx_valid, idim ))
+ cx_lo_ss( cx_valid, idim ) = MIN(CAXIS_LEN(idim,com_cx), cx_lo_ss( cx_valid, idim ))
+ cx_hi_ss( cx_valid, idim ) = MIN(CAXIS_LEN(idim,com_cx), cx_hi_ss( cx_valid, idim ))
+ ENDIF
+
IF ( cx_lo_ss(cx_valid,idim) .GT. cx_hi_ss(cx_valid,idim) ) THEN
* ... insufficient component data to compute anything
IF ( mr_type(res_mr) .EQ. ptype_string ) THEN
diff --git a/fer/stk/is_uvar_grid.F b/fer/stk/is_uvar_grid.F
index d431c12..8d59366 100644
--- a/fer/stk/is_uvar_grid.F
+++ b/fer/stk/is_uvar_grid.F
@@ -106,6 +106,8 @@
* non-ferr_ok to exit properly from the command.
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
* V690 9/13-2/14 *sh* support for auxiliary var regridding: temp[gz(depth)=zax]
+* V694 *acm* 1214 Fixing ticket 2220
+* V694 *acm* 5/15 Fix ticket 2213
* calling argument declarations:
INTEGER status
@@ -114,9 +116,9 @@
* exit #2 is to signal that the grid has been obtained and stored in uvar_grid
* internal variable declarations:
- LOGICAL ITSA_GCVAR, its_dynamic, its_gc, need_another_pass,
+ LOGICAL ITSA_GCVAR, ITSA_CONST_VAR, its_dynamic, its_gc, need_another_pass,
. saved_ifthen_type, do_err, agg_has_uvar, ok_remote,
- . getting_aux_var
+ . getting_aux_var, its_const_var
INTEGER KNOWN_GRID, STR_SAME,
. TM_LENSTR1, GCF_PARENT_UVAR, GCF_PARENT_CHAR,
. NCF_GET_AGG_COUNT, iaux,
@@ -160,8 +162,8 @@
dset = cx_data_set( lo_cx )
nitem = uvar_num_items( uvar )
its_gc = ITSA_GCVAR(uvar)
- its_gc = ITSA_GCVAR(uvar)
has_uvar_gc = has_uvar_gc .OR. its_gc ! for repl_exprns fixing bug 1523
+ is_uvar_const = ITSA_CONST_VAR(uvar) ! for repl_exprns fixing bug 2213
* ... initialization to support 2/99 pass-2 changes
pass_number = 1
! 4/99
@@ -308,13 +310,16 @@
C What other cx info do we have here? Is the dataset the agg_dataset? Should be able to get the
C lo and hi of the ensemble axis if so, and get all the grids.
- ELSEIF ( cx_category(hi_cx).EQ. cat_aggregate_var ) THEN
+
+ ELSEIF ( cx_category(hi_cx).EQ.cat_agg_e_var .OR.
+ . cx_category(hi_cx).EQ.cat_agg_e_var ) THEN
agg_dset = dset
status = NCF_GET_AGG_COUNT (agg_dset, agg_len)
var = cx_variable(hi_cx)
- uv_grd = KNOWN_GRID( agg_dset, cat_aggregate_var, var )
+
+ uv_grd = KNOWN_GRID( agg_dset, cx_category(hi_cx), var )
IF ( uv_grd .NE. unspecified_int4 ) THEN
uvar_dset(uvar) = 0 ! now its a datset variable not user var
GOTO 500 ! uvar grid known --> merge it
@@ -394,10 +399,6 @@ C lo and hi of the ensemble axis if so, and get all the grids.
. attname, varid, do_err, status )
IF ( status .NE. ferr_ok ) GOTO 5000
- uvar_text(uvar) = name
- uvar_item_start( item, uvar ) = 1
- uvar_item_end ( item, uvar ) = len_name
-
* Get attribute type and length
* See if it is a pseudo-attribute attnames, ndims, etc.
diff --git a/fer/stk/known_grid.F b/fer/stk/known_grid.F
index db78df2..62b0b23 100644
--- a/fer/stk/known_grid.F
+++ b/fer/stk/known_grid.F
@@ -68,7 +68,7 @@
KNOWN_GRID = ds_grid_number( variable )
- ELSEIF ( category .EQ. cat_aggregate_var ) THEN
+ ELSEIF ( category.EQ.cat_agg_e_var .OR. category.EQ.cat_agg_f_var ) THEN
KNOWN_GRID = ds_grid_number( variable )
IF (ds_grid_number( variable ) .EQ. int4_init)
diff --git a/fer/stk/offset_ss.F b/fer/stk/offset_ss.F
index 4946d49..191f1a7 100644
--- a/fer/stk/offset_ss.F
+++ b/fer/stk/offset_ss.F
@@ -174,7 +174,11 @@
.
. offset_lo ( trans_4d_avg_wgt ) / 0 /,
. offset_hi ( trans_4d_avg_wgt ) / 0 /,
- . offset_supplied ( trans_4d_avg_wgt ) / .FALSE. /
+ . offset_supplied ( trans_4d_avg_wgt ) / .FALSE. /,
+ .
+ . offset_lo ( trans_smth_box_p ) / -1 /,
+ . offset_hi ( trans_smth_box_p ) / +1 /,
+ . offset_supplied ( trans_smth_box_p ) / .TRUE. /
* --- end of introductory code ---
* initiailize
@@ -186,6 +190,7 @@
* offset given explicitly by user (eg @SHF:-1)
ioff = INT( arg )
IF ( trans .EQ. trans_smth_box
+ . . OR. trans .EQ. trans_smth_box_p
. . OR. trans .EQ. trans_smth_binml
. . OR. trans .EQ. trans_smth_hanng
. . OR. trans .EQ. trans_smth_max
diff --git a/fer/stk/pass_ambig_lims.F b/fer/stk/pass_ambig_lims.F
index 7d18981..a93730f 100644
--- a/fer/stk/pass_ambig_lims.F
+++ b/fer/stk/pass_ambig_lims.F
@@ -93,6 +93,7 @@
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* *acm* 4/12 6D Ferret: time axis may be in t or f direction.
* V683 *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -180,8 +181,8 @@
cx_lo_ww(idim,cx) = unspecified_val8
cx_hi_ww(idim,cx) = unspecified_val8
* 9/97 *kob* cx_calendar must reflect these changes as well
- IF (idim .EQ. t_dim)
- . cx_calendar(cx) = .FALSE.
+ IF (idim .EQ. t_dim .OR. idim .EQ. f_dim)
+ . cx_calendar(idim,cx) = .FALSE.
* context limits unspecified but untransformed data limits available anyway
ELSEIF ( cx_lo_ss(cx,idim) .EQ. unspecified_int4 ) THEN
diff --git a/fer/stk/push_interp_stack.F b/fer/stk/push_interp_stack.F
index dd9255e..7d7a7a8 100644
--- a/fer/stk/push_interp_stack.F
+++ b/fer/stk/push_interp_stack.F
@@ -44,7 +44,8 @@
*
* revision 0.0 - 2/19/87
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
-* v690 2/2014 *sh* stack max limited to max_usable_intrp to fit aux frames at top
+* v690 2/2014 *sh* stack max limited to max_usable_intrp to fit aux frames at top
+* v698+ 6/2015 *sh* is_sum changed from REAL to INTEGER
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -76,7 +77,7 @@
is_phase ( isp ) = unspecified_int4
is_axis ( isp ) = unspecified_int4
is_mr ( isp ) = unspecified_int4
- is_sum ( isp ) = -777.
+ is_sum ( isp ) = -777
RETURN
END
diff --git a/fer/stk/rcvd_regrid.F b/fer/stk/rcvd_regrid.F
index 4f863e2..3b667f5 100644
--- a/fer/stk/rcvd_regrid.F
+++ b/fer/stk/rcvd_regrid.F
@@ -76,6 +76,7 @@
* *acm* 4/12 6D Ferret: time axis may be in t or f direction. The time
* dimension is now an arg to SECS_TO_TSTEP. Note the input
* argument "axis" in this routine is a dimension, 1, 2, ...
+* V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
* calling argument declarations:
INTEGER src_cx, dst_cx, axis, work, ok_min, ok_max, status
@@ -135,6 +136,7 @@
* for "window"ing we need source area containing the destination area
* for exact match we need source points aligning w/ the destination points
* for nrst match do as for averaging
+* for binning do as for averaging
IF ( rgrd_trans .EQ. prgrd_linear_interp
. .OR. rgrd_trans .EQ. prgrd_xy_lin ) THEN
dst_where_loest = box_middle
@@ -154,7 +156,9 @@
. .OR. rgrd_trans .EQ. prgrd_sum
. .OR. rgrd_trans .EQ. prgrd_good_pt
. .OR. rgrd_trans .EQ. prgrd_average
- . .OR. rgrd_trans .EQ. prgrd_nearest ) THEN
+ . .OR. rgrd_trans .EQ. prgrd_nearest
+ . .OR. rgrd_trans .EQ. prgrd_bin
+ . .OR. rgrd_trans .EQ. prgrd_nbin ) THEN
dst_where_loest = box_lo_lim
dst_where_hiest = box_hi_lim
src_where_loest = box_lo_lim
diff --git a/fer/stk/rqst_regrid.F b/fer/stk/rqst_regrid.F
index d8129cc..a691a10 100644
--- a/fer/stk/rqst_regrid.F
+++ b/fer/stk/rqst_regrid.F
@@ -72,6 +72,8 @@
* *acm* 4/12 6D Ferret: time axis may be in t or f direction. The time
* dimension is now an arg to SECS_TO_TSTEP. Note the input
* argument "axis" in this routine is a dimension, 1, 2, ...
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+* V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
@@ -165,7 +167,9 @@
. .OR. rgrd_trans .EQ. prgrd_variance
. .OR. rgrd_trans .EQ. prgrd_sum
. .OR. rgrd_trans .EQ. prgrd_good_pt
- . .OR. rgrd_trans .EQ. prgrd_average ) THEN
+ . .OR. rgrd_trans .EQ. prgrd_average
+ . .OR. rgrd_trans .EQ. prgrd_bin
+ . .OR. rgrd_trans .EQ. prgrd_nbin ) THEN
where_loest = box_lo_lim
where_hiest = box_hi_lim
ELSEIF ( rgrd_trans .EQ. prgrd_associate ) THEN
@@ -334,7 +338,7 @@
cx_given( axis, src_cx ) = .FALSE.
* 9/97 *kob* - cx_calendar needs to also reflect these changes
IF (axis .eq. t_dim .OR. axis .eq. f_dim) THEN
- cx_calendar(src_cx) = .FALSE.
+ cx_calendar(axis,src_cx) = .FALSE.
cx_cal_id(src_cx) = unspecified_int4
ENDIF
diff --git a/fer/utl/SOURCE_FILES b/fer/utl/SOURCE_FILES
index b760df6..74f1412 100644
--- a/fer/utl/SOURCE_FILES
+++ b/fer/utl/SOURCE_FILES
@@ -3,6 +3,7 @@ add_2_grids.F\
add_2_grids_sub.F\
add_c_2_grid.F\
adjust_copy_limits.F\
+all_1_arg_expr.F\
allo_grid.F\
allo_managed_axis.F\
allo_managed_grid.F\
@@ -53,10 +54,13 @@ display_dependency_sub.F\
extract_dp_line.F\
extract_dp_line2.F\
extract_line.F\
+extract_arg1_line.F\
+extract_arg4_line.F\
extract_line_sub.F\
extract_z_line.F\
field_minmax.F\
field_minmax_sub.F\
+full_scan_indices.F\
gcf_arg_type.F\
gcf_child_var_name.F\
gcf_find_fcn.F\
@@ -73,6 +77,7 @@ gcf_parent_char.F\
gcf_parent_uvar.F\
gcf_rtn_type.F\
geog_var.F\
+get_abstract_line.F\
get_ave_lims.F\
get_dependency_status.F\
get_max_string_len.F\
@@ -90,7 +95,6 @@ grid_subscript_extremes_no_mod.F\
grid_world_extremes.F\
heap2.F\
heap2_v.F\
-hunt_indices.F\
hunt_r4.F\
igrid.F\
inherit_attrs.F\
@@ -98,6 +102,9 @@ invalid_r8_to_i4.F\
is_template.F\
isubscr_cx.F\
isubscript.F\
+its_fmrc.F\
+itsa_1lineif.F\
+itsa_const_var.F\
itsa_fill_trans.F\
itsa_gcvar.F\
itsa_modulo_axis.F\
@@ -125,6 +132,7 @@ parse_string_list.F\
permute.F\
permute_ptr_sub.F\
permute_sub.F\
+put_arg5_line.F\
region_number.F\
regularly_spaced.F\
report_aux_dependency.F\
diff --git a/fer/gnl/all_1_arg.F b/fer/utl/all_1_arg_expr.F
similarity index 72%
copy from fer/gnl/all_1_arg.F
copy to fer/utl/all_1_arg_expr.F
index 254c833..831b43f 100644
--- a/fer/gnl/all_1_arg.F
+++ b/fer/utl/all_1_arg_expr.F
@@ -1,4 +1,4 @@
- SUBROUTINE ALL_1_ARG
+ SUBROUTINE ALL_1_ARG_EXPR
*
*
@@ -36,17 +36,17 @@
*
*
* treat all the arguments identified by PARSE_COMMAND as a single argument
-* example cases that this has to address:
-* message "hello world"
-* message "hello" "world"
-* message " "hello" "world" " - unclear what to do ...
+
+* This routine is a clone of ALL_1_ARG, but altered so that if there are
+* overall surrounding quotation marks, they *are* passed on, so
+* yes? LIST "myvar"
+* is seen as the string "myvar", rather than the value of the variable myvar
* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
* written for VAX computer under VMS operating system
-* V300: 4/22/93
-* *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V694: 2/2/2015
* calling argument declarations:
@@ -58,23 +58,32 @@
include 'xprog_state.cmn'
* reset the command common to look like a single big argument
+* unlike ALL_1_ARG, do this even if there is only a single arg
+ IF (num_args .EQ. 0) RETURN
- IF ( num_args .GT. 1 ) THEN
-
- arg_end(1) = arg_end(num_args)
+ arg_end(1) = arg_end(num_args)
+ num_args = 1
-* protect against lost " from start of: message "hello" "world"
- i = arg_start(1) - 1
- IF ( cmnd_buff(i:i) .EQ. '"' ) arg_start(1) = i
+* protect against lost " from start
+ i = arg_start(1) - 1
+ IF ( cmnd_buff(i:i) .EQ. '"' ) arg_start(1) = i
-* protect against lost " from end of: message "hello" "world"
- i = arg_end(1) + 1
- IF ( i .LE. len_cmnd ) THEN
- IF ( cmnd_buff(i:i) .EQ. '"' ) arg_end(1) = i
- ENDIF
+* protect against lost " from end
+ i = arg_end(1) + 1
+ IF ( i .LE. len_cmnd ) THEN
+ IF ( cmnd_buff(i:i) .EQ. '"' ) arg_end(1) = i
+ ENDIF
- num_args = 1
+* protect against lost _DQ_ from start
+ i = arg_start(1) - 4
+ IF (i .GE. 1) THEN
+ IF ( cmnd_buff(i:i+3) .EQ. '_DQ_' ) arg_start(1) = i
+ ENDIF
+* protect against lost _DQ_ from end
+ i = arg_end(1) + 4
+ IF ( i .LE. len_cmnd ) THEN
+ IF ( cmnd_buff(i-3:i) .EQ. '_DQ_' ) arg_end(1) = i
ENDIF
RETURN
diff --git a/fer/utl/calendar_axis.F b/fer/utl/calendar_axis.F
index 087f1ef..eb6d067 100644
--- a/fer/utl/calendar_axis.F
+++ b/fer/utl/calendar_axis.F
@@ -72,7 +72,7 @@
IF (istat .NE. ferr_ok) GO TO 4000
prev_cal_id = cx_cal_id(cx)
- IF (prev_cal_id .NE. cal_id) THEN
+ IF (prev_cal_id.NE.cal_id .AND. prev_cal_id.NE.unspecified_int4) THEN
CALL reset_secs_from_bc (-cx_lo_ww(idim,cx),
. new_lo_ww, prev_cal_id, cal_id, istat)
diff --git a/fer/utl/confine_axis.F b/fer/utl/confine_axis.F
index cf88464..00fb501 100644
--- a/fer/utl/confine_axis.F
+++ b/fer/utl/confine_axis.F
@@ -76,7 +76,7 @@
* *acm* 4/12 6D Ferret: time axis may be in t or f direction.
* V680 *acm* 612 6D Ferret: Pull the calendar correction into a separate routine.
* V683 *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
-
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
@@ -124,17 +124,6 @@
* axis for this dimension
axis = grid_line( idim, grid )
-! 11/95: increased restrictions that limits must be within valid bounds
-! even redundant limits must be fleshed out since they may be used at
-! higher levels to "reconcile" results
-!* check for special actions needed on user-defined variables
-!* ( e.g. how to handle U[K=5] - U[K=1:10] or PI=3.1415)
-! IF ( cat .EQ. cat_user_var ) THEN
-! lim_redundant = uvar_given( idim, var ) .LE. uvlim_gvn_xact
-! ELSE
-! lim_redundant = .FALSE.
-! ENDIF
-
* check for internal error left over from old TMAP library
IF ( axis .EQ. munknown ) THEN
status = ferr_grid_definition
@@ -179,18 +168,15 @@
*11/04 *acm* reset time step only if axis is a different calendar than
* the calendar originally used to compute world coordinates
- IF ( (idim .EQ. t_dim .OR. idim .EQ. f_dim) .AND.cx_calendar(cx) ) THEN
+ IF ( (idim .EQ. t_dim .OR. idim .EQ. f_dim) .AND.cx_calendar(idim,cx) ) THEN
CALL CALENDAR_AXIS (idim, grid, cx, istat)
IF (istat .NE. 2) THEN
IF (istat .EQ. -1) GOTO 5000
- IF (idim .EQ. t_dim .AND. grid_line(f_dim,grid) .NE. mnormal)THEN
- CALL CALENDAR_AXIS(f_dim, grid, cx, istat)
- IF (istat .EQ. -1) GOTO 5000
- ENDIF
+
ENDIF
- cx_calendar(cx) = .FALSE.
+ cx_calendar(idim,cx) = .FALSE.
ENDIF
* ... confine values to the limits of the defining grid
@@ -200,12 +186,6 @@
* ... check for error in limits and possibly remove transformation
IF ( lo_ww .GT. hi_ww ) THEN
GOTO 5010
-! commented out 11/95 -- allow user's "@ITP" to pass through
-! ELSEIF ( lo_ww .EQ. hi_ww
-! . .AND. cx_trans(idim,cx) .EQ. trans_interpolate ) THEN
-!! ... B4 8/92 was: .AND. cx_trans(idim,cx) .GT. trans_compress_code ) THEN
-!* ... remove transformation if irrevelent
-! cx_trans( idim, cx ) = trans_no_transform
ENDIF
* ... success
cx_lo_ww( idim, cx ) = lo_ww
diff --git a/fer/utl/copy_agg_into.F b/fer/utl/copy_agg_into.F
index 484c209..db392ea 100644
--- a/fer/utl/copy_agg_into.F
+++ b/fer/utl/copy_agg_into.F
@@ -1,4 +1,4 @@
- SUBROUTINE COPY_AGG_INTO ( src, msrc, cxs, dst, mdst, mloc )
+ SUBROUTINE COPY_AGG_INTO ( src, msrc, cxs, agg_dim, dst, mdst, aloc )
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -35,14 +35,15 @@
*
* copy data from source grid into dstination grid using limits of source
* context (i.e. destination grid is ASSUMED) big enough to hold data.
-* The source grid does not have an ensemble axis (dimension 5) but the
-* destination axis does. Copy the ensemble member into e-axis location
-* pointed to by index mloc.
+* The source grid does not have an ensemble/forecast axis (dimension 5 or 6)
+* but the destination axis does. Copy the aggregation member into the e- or
+* f-axis location pointed to by index aloc.
*
* programmer - Ansley Manke
* NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
*
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V695 2/15 *acm* 6D add aggregation in forecast direction
*
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -50,7 +51,7 @@
include 'xvariables.cmn'
* calling argument declarations:
- INTEGER msrc, cxs, mdst, dcx, mloc
+ INTEGER msrc, cxs, mdst, dcx, aloc, agg_dim
REAL src( * ), dst( * )
* internal variable declarations
@@ -96,7 +97,7 @@
ENDDO
IF (mr_type(msrc) .EQ. ptype_string ) THEN
- CALL COPY_AGG_PTR_INTO_SUB( mloc, cxlo, cxhi,
+ CALL COPY_AGG_PTR_INTO_SUB( aloc, cxlo, cxhi, agg_dim,
. src, smlo(1), smhi(1),
. smlo(2), smhi(2),
. smlo(3), smhi(3),
@@ -110,7 +111,7 @@
. dmlo(5), dmhi(5),
. dmlo(6), dmhi(6) )
ELSE
- CALL COPY_AGG_INTO_SUB( mloc, cxlo, cxhi,
+ CALL COPY_AGG_INTO_SUB( aloc, cxlo, cxhi, agg_dim,
. src, smlo(1), smhi(1),
. smlo(2), smhi(2),
. smlo(3), smhi(3),
diff --git a/fer/utl/copy_agg_into_sub.F b/fer/utl/copy_agg_into_sub.F
index 47d61c9..6f7441d 100644
--- a/fer/utl/copy_agg_into_sub.F
+++ b/fer/utl/copy_agg_into_sub.F
@@ -1,4 +1,4 @@
- SUBROUTINE COPY_AGG_INTO_SUB( mloc, cxlo, cxhi,
+ SUBROUTINE COPY_AGG_INTO_SUB( aloc, cxlo, cxhi, agg_dim,
. src, slox, shix, sloy, shiy, sloz, shiz,
. slot, shit, sloe, shie, slof, shif,
. dst, dlox, dhix, dloy, dhiy, dloz, dhiz,
@@ -43,15 +43,18 @@
* copy data from source grid into dstination grid using limits of source
* context (i.e. dstination grid is ASSUMED) big enough to hold data.
* Copy the ensemble member into e-axis location pointed to
-* by index mloc.
+* by index aloc.
*
* programmer - Ansley Manke
* NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
*
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V695 2/15 *acm* 6D add aggregation in forecast direction
*
+ include 'ferret.parm'
+
* calling argument declarations:
- INTEGER mloc, cxlo(*), cxhi(*),
+ INTEGER aloc, cxlo(*), cxhi(*), agg_dim,
. slox, shix, sloy, shiy, sloz, shiz,
. slot, shit, sloe, shie, slof, shif,
. dlox, dhix, dloy, dhiy, dloz, dhiz,
@@ -67,20 +70,39 @@
* --- end of introductory code ---
- m = cxlo(5)
- DO 100 n = cxlo(6), cxhi(6)
- DO 100 l = cxlo(4), cxhi(4)
- DO 100 k = cxlo(3), cxhi(3)
- DO 100 j = cxlo(2), cxhi(2)
- DO 100 i = cxlo(1), cxhi(1)
+ IF (agg_dim .EQ. e_dim) THEN
+ m = cxlo(e_dim)
+ DO 100 n = cxlo(6), cxhi(6)
+ DO 100 l = cxlo(4), cxhi(4)
+ DO 100 k = cxlo(3), cxhi(3)
+ DO 100 j = cxlo(2), cxhi(2)
+ DO 100 i = cxlo(1), cxhi(1)
+
+ IF (src(i,j,k,l,m,n) .NE. bad_src) THEN
+ dst(i,j,k,l,aloc,n) = src(i,j,k,l,m,n)
+ ELSE
+ dst(i,j,k,l,aloc,n) = bad_dst
+ ENDIF
+
+ 100 CONTINUE
+ ENDIF
+
+ IF (agg_dim .EQ. f_dim) THEN
+ n = cxlo(f_dim)
+ DO 200 m = cxlo(5), cxhi(5)
+ DO 200 l = cxlo(4), cxhi(4)
+ DO 200 k = cxlo(3), cxhi(3)
+ DO 200 j = cxlo(2), cxhi(2)
+ DO 200 i = cxlo(1), cxhi(1)
- IF (src(i,j,k,l,m,n) .NE. bad_src) THEN
- dst(i,j,k,l,mloc,n) = src(i,j,k,l,m,n)
- ELSE
- dst(i,j,k,l,mloc,n) = bad_dst
- ENDIF
+ IF (src(i,j,k,l,m,n) .NE. bad_src) THEN
+ dst(i,j,k,l,m,aloc) = src(i,j,k,l,m,n)
+ ELSE
+ dst(i,j,k,l,m,aloc) = bad_dst
+ ENDIF
- 100 CONTINUE
+ 200 CONTINUE
+ ENDIF
RETURN
END
diff --git a/fer/utl/copy_agg_ptr_into_sub.F b/fer/utl/copy_agg_ptr_into_sub.F
index 7969df5..1897819 100644
--- a/fer/utl/copy_agg_ptr_into_sub.F
+++ b/fer/utl/copy_agg_ptr_into_sub.F
@@ -1,4 +1,4 @@
- SUBROUTINE COPY_AGG_PTR_INTO_SUB( mloc, cxlo, cxhi,
+ SUBROUTINE COPY_AGG_PTR_INTO_SUB( aloc, cxlo, cxhi, agg_dim,
. src, slox, shix, sloy, shiy, sloz, shiz,
. slot, shit, sloe, shie, slof, shif,
. dst, dlox, dhix, dloy, dhiy, dloz, dhiz,
@@ -39,16 +39,19 @@
*
* copy data from source grid into dstination grid using limits of source
* context (i.e. destination grid is ASSUMED) big enough to hold data
-* Copy the aggregate member into e-axis location pointed to
-* by index mloc.
+* Copy the aggregate member into Aggregate-axis location pointed to
+* by index aloc.
*
* programmer - Ansley Manke
* NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
*
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V695 2/15 *acm* 6D add aggregation in forecast direction
*
+ include 'ferret.parm'
+
* calling argument declarations:
- INTEGER mloc, cxlo(*), cxhi(*),
+ INTEGER aloc, cxlo(*), cxhi(*), agg_dim,
. slox, shix, sloy, shiy, sloz, shiz,
. slot, shit, sloe, shie, slof, shif,
. dlox, dhix, dloy, dhiy, dloz, dhiz,
@@ -61,16 +64,31 @@
* --- end of introductory code ---
- m = cxlo(5)
- DO 100 n = cxlo(6), cxhi(6)
- DO 100 l = cxlo(4), cxhi(4)
- DO 100 k = cxlo(3), cxhi(3)
- DO 100 j = cxlo(2), cxhi(2)
- DO 100 i = cxlo(1), cxhi(1)
+ IF (agg_dim .EQ. e_dim) THEN
+ m = cxlo(agg_dim)
+ DO 100 n = cxlo(6), cxhi(6)
+ DO 100 l = cxlo(4), cxhi(4)
+ DO 100 k = cxlo(3), cxhi(3)
+ DO 100 j = cxlo(2), cxhi(2)
+ DO 100 i = cxlo(1), cxhi(1)
+
+ CALL COPY_C_STRING( src(i,j,k,l,m,n), dst(i,j,k,l,aloc,n) )
+
+ 100 CONTINUE
+ ENDIF
+
+ IF (agg_dim .EQ. f_dim) THEN
+ n = cxlo(agg_dim)
+ DO 200 m = cxlo(5), cxhi(5)
+ DO 200 l = cxlo(4), cxhi(4)
+ DO 200 k = cxlo(3), cxhi(3)
+ DO 200 j = cxlo(2), cxhi(2)
+ DO 200 i = cxlo(1), cxhi(1)
- CALL COPY_C_STRING( src(i,j,k,l,m,n), dst(i,j,k,l,mloc,n) )
+ CALL COPY_C_STRING( src(i,j,k,l,m,n), dst(i,j,k,l,m,aloc) )
- 100 CONTINUE
+ 200 CONTINUE
+ ENDIF
RETURN
END
diff --git a/fer/utl/count_number_list.F b/fer/utl/count_number_list.F
index f9182d2..3e3ef95 100644
--- a/fer/utl/count_number_list.F
+++ b/fer/utl/count_number_list.F
@@ -44,13 +44,16 @@
* V530: 7/01 *sh* - allow single quoted strings
* V540: 9/01 *sh* - change "SYSTEM:" to "SPAWN:"
* *acm* 3/12 add disclaimer
+* V693+ *sh* 2/15 - add support for _DQ_ and _SQ_ quotations
* calling argument declarations
INTEGER n
CHARACTER*(*) string
* internal variable declarations
- LOGICAL in_quote, doub_quote, no_chars_yet
+ LOGICAL in_quote, no_chars_yet,
+ . doub_quote, sing_quote, DQ_quote, SQ_quote,
+ . doub_atom, sing_atom, DQ_atom, SQ_atom
INTEGER TM_LENSTR1, STR_CASE_BLIND_COMPARE,
. i, start, slen, vax_code
CHARACTER*1 c
@@ -68,6 +71,10 @@
slen = TM_LENSTR1( string )
start = 1
no_chars_yet = .TRUE.
+ doub_quote = .FALSE.
+ sing_quote = .FALSE.
+ DQ_quote = .FALSE.
+ SQ_quote = .FALSE.
* trim around the enclosing "{}" brackets
IF ( string(slen:slen) .EQ. '}' ) slen = slen - 1
@@ -80,26 +87,50 @@
i = start - 1
100 i = i + 1
c = string(i:i)
+
+* ... identify quotation atoms
+ doub_atom = c.EQ.'"'
+ sing_atom = c.EQ."'"
+ IF (i+3 .LE. slen) THEN
+ DQ_atom = string(i:i+3) .EQ. "_DQ_"
+ SQ_atom = string(i:i+3) .EQ. "_SQ_"
+ ELSE
+ DQ_atom = .FALSE.
+ SQ_atom = .FALSE.
+ ENDIF
+
IF (in_quote) THEN
#ifdef NO_DOUBLE_ESCAPE_SLASH
- IF (c .EQ. '\') THEN
+ IF (c .EQ. '\') THEN ! ' char for emacs
#else
IF (c .EQ. '\\') THEN
#endif
i = i + 1 ! skip processing of next character
- ELSEIF ( doub_quote .AND. c.EQ.'"'
- . .OR. .NOT.doub_quote .AND. c.EQ."'" ) THEN
- in_quote = .FALSE.
+ ELSEIF ( doub_quote .AND. doub_atom
+ . .OR. sing_quote .AND. sing_atom
+ . .OR. DQ_quote .AND. DQ_atom
+ . .OR. SQ_quote .AND. SQ_atom ) THEN
+ in_quote = .FALSE.
+ doub_quote = .FALSE.
+ sing_quote = .FALSE.
+ DQ_quote = .FALSE.
+ SQ_quote = .FALSE.
ELSE
CONTINUE ! skip over anything inside of quotations
ENDIF
- ELSEIF (c .EQ. '"') THEN
- in_quote = .TRUE.
+ ELSEIF (doub_atom) THEN
+ in_quote = .TRUE.
doub_quote = .TRUE.
- ELSEIF (c .EQ. "'") THEN
- in_quote = .TRUE.
- doub_quote = .FALSE.
+ ELSEIF (sing_atom) THEN
+ in_quote = .TRUE.
+ sing_quote = .TRUE.
+ ELSEIF (DQ_atom ) THEN
+ in_quote = .TRUE.
+ DQ_quote = .TRUE.
+ ELSEIF (SQ_atom ) THEN
+ in_quote = .TRUE.
+ SQ_quote = .TRUE.
ELSEIF (c .EQ. ',') THEN
n = n+1
ELSEIF (c.EQ.'s' .OR. c.EQ.'S' ) THEN
diff --git a/fer/utl/decrement_plot_grid.F b/fer/utl/decrement_plot_grid.F
old mode 100755
new mode 100644
diff --git a/fer/utl/display_dependency_sub.F b/fer/utl/display_dependency_sub.F
index dd9b79d..457b383 100644
--- a/fer/utl/display_dependency_sub.F
+++ b/fer/utl/display_dependency_sub.F
@@ -41,7 +41,9 @@
* written for VAX computer under VMS operating system
* V685 *sh* 11/13
-* V690 *sh* 11/13 - minor adjustments to support auxiliary regridding variables
+* V690 *sh* 11/13 - minor adjustments to support aux regridding variables
+* V693+ *sh* 12/14 - display regridding dependency on a separate line
+* 01/15 - each regrid target gets separate line
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -128,7 +130,7 @@
* initialize this record
tree_level = level(rec)
- var = var_or_start(rec)
+ var = var_or_start(rec)
cat = cat_or_end (rec)
dset = dataset(rec)
uvar = parent_uv(rec)
@@ -142,10 +144,16 @@
IF ( tell_dset ) THEN
dsetname = '[d='
dsetname(4:) = GET_UNIQUE_DSET_NAME( dset )
- dnamlen = TM_LENSTR1(dsetname)
+ dnamlen = TM_LENSTR1(dsetname) + 1
dsetname(dnamlen:dnamlen) = ']'
ENDIF
+* document regridding dependencies as special, prefixed by "regrid to "
+ IF ( item .EQ. pcx_vtree_regrid_report ) THEN
+ line_buff(blanks+1:) = 'regrid to '
+ blanks = blanks + 10
+ ENDIF
+
* document this variable
IF ( flag(rec) .EQ. df_unknown_var ) THEN
istart = uvar_item_start(item, uvar)
@@ -157,7 +165,7 @@
llen = llen + dnamlen
ENDIF
line_buff(llen+1:) =
- . ' ?? <== UNKNOWN VARIABLE ******'
+ . ' ?? <== UNKNOWN VARIABLE ******'
ELSEIF ( flag(rec) .EQ. df_unknown_dataset ) THEN
istart = uvar_item_start(item, uvar)
iend = uvar_item_end (item, uvar)
@@ -168,17 +176,23 @@
llen = llen + dnamlen
ENDIF
line_buff(llen+1:) =
- . ' ?? <== UNKNOWN DATASET ******'
+ . ' ?? <== UNKNOWN DATASET ******'
ELSEIF ( flag(rec) .EQ. df_unknown_grid ) THEN
- istart = uvar_item_start(item, uvar)
- iend = uvar_item_end (item, uvar)
+ IF ( item .EQ. pcx_vtree_regrid_report ) THEN
+ istart = var
+ iend = cat
+ ELSE
+ istart = uvar_item_start(item, uvar)
+ iend = uvar_item_end (item, uvar)
+ ENDIF
line_buff(blanks+1:) = uvar_text(uvar)(istart:iend)
llen = (iend-istart+1) + blanks
IF (tell_dset) THEN
line_buff(llen+1:) = dsetname
llen = llen + dnamlen
ENDIF
- line_buff(llen+1:) = ' (unknown grid)'
+ line_buff(llen+1:) =
+ . ' ?? <== UNKNOWN GRID ******'
ELSEIF ( flag(rec) .EQ. df_syntax_error ) THEN
istart = uvar_item_start(item, uvar)
iend = uvar_item_end (item, uvar)
@@ -224,7 +238,7 @@
llen = llen + dnamlen
ENDIF
line_buff(llen+1:) = ' = ' //uvar_text(var)
- ELSEIF (cat .EQ. cat_aggregate_var ) THEN
+ ELSEIF (cat .EQ. cat_agg_e_var .OR. cat .EQ. cat_agg_f_var) THEN
IF (.NOT. dependency_tree_show_uvars) GOTO 500
line_buff(blanks+1:) = VAR_CODE(cat, var)
llen = TM_LENSTR1(line_buff)
@@ -285,6 +299,14 @@
valid_var = flag(rec) .EQ. df_valid_var
. .OR. flag(rec) .EQ. df_valid_aux_var
+ IF ( item .EQ. pcx_vtree_regrid_report ) THEN
+* ... special prefix for regridding lines
+ line_buff = 'regrid to '
+ llen = 10
+ ELSE
+ llen = 0
+ ENDIF
+
* format one record
IF ( valid_var
. .AND. cat .EQ. cat_user_var ) THEN
@@ -304,7 +326,7 @@
. .AND. cat_or_end (i) .EQ. cat_or_end (rec)
IF (dup) GOTO 2100
2050 CONTINUE
- line_buff = VAR_CODE(cat,var) ! valid file variable
+ line_buff(llen+1:) = VAR_CODE(cat,var) ! valid file variable
llen = TM_LENSTR1(line_buff)
dsetname = '[d='
dsetname(4:) = GET_UNIQUE_DSET_NAME( dset )
@@ -314,23 +336,33 @@
ELSEIF ( flag(rec) .EQ. df_unknown_var ) THEN
istart = uvar_item_start(item, uvar)
iend = uvar_item_end (item, uvar)
- line_buff = uvar_text(uvar)(istart:iend)//' (unknown variable)'
+ line_buff = '*unknown variable: '//
+ . uvar_text(uvar)(istart:iend)
ELSEIF ( flag(rec) .EQ. df_unknown_dataset ) THEN
istart = uvar_item_start(item, uvar)
iend = uvar_item_end (item, uvar)
- line_buff = uvar_text(uvar)(istart:iend)//' (unknown dataset)'
+ line_buff = '*unknown dataset: '//
+ . uvar_text(uvar)(istart:iend)
ELSEIF ( flag(rec) .EQ. df_unknown_grid ) THEN
- istart = uvar_item_start(item, uvar)
- iend = uvar_item_end (item, uvar)
- line_buff = uvar_text(uvar)(istart:iend)//' (unknown grid)'
+ IF ( item .EQ. pcx_vtree_regrid_report ) THEN
+ istart = var
+ iend = cat
+ ELSE
+ istart = uvar_item_start(item, uvar)
+ iend = uvar_item_end (item, uvar)
+ ENDIF
+ line_buff = '*unknown grid: '//
+ . uvar_text(uvar)(istart:iend)
ELSEIF ( flag(rec) .EQ. df_syntax_error ) THEN
istart = uvar_item_start(item, uvar)
iend = uvar_item_end (item, uvar)
- line_buff = uvar_text(uvar)(istart:iend)//' *** WARNING: SYNTAX ERROR'
+ line_buff = ' *WARNING: syntax error: '//
+ . uvar_text(uvar)(istart:iend)
ELSEIF ( flag(rec) .EQ. df_unknown_auxvar ) THEN
istart = uvar_item_start(item, uvar) + var - 1
iend = uvar_item_start(item, uvar) + cat - 1
- line_buff = uvar_text(uvar)(istart:iend)//' (unknown auxiliary variable)'
+ line_buff = '*unknown auxiliary variable: '//
+ . uvar_text(uvar)(istart:iend)
ENDIF
CALL SPLIT_LIST( pttmode_explct, show_lun, ' '//line_buff, 0)
diff --git a/fer/utl/extract_dp_line.F b/fer/utl/extract_arg1_line.F
similarity index 66%
copy from fer/utl/extract_dp_line.F
copy to fer/utl/extract_arg1_line.F
index aa41198..50f74bf 100644
--- a/fer/utl/extract_dp_line.F
+++ b/fer/utl/extract_arg1_line.F
@@ -1,7 +1,6 @@
- SUBROUTINE EXTRACT_DP_LINE( cx, grid_data, dp_line, idim, nout )
+ SUBROUTINE EXTRACT_ARG1_LINE( src, axis, axmin, axmax,
+ . i, j, k, l, m, n, line )
-*
-*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -35,44 +34,55 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* extract a single line of data from a memory variable grid along axis idim
-* no error checking is done
+* extract a single line of data along requested axis from a memory variable
+* Note that whatever the axis orientation, the corresponging index position
+* from the i,j,k,l,m,n arguments is irrelevant
* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
* written for VAX computer under VMS operating system
*
-* V200: 9/20/89 - 4D symmetrical
-* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698+ *sh* 5/15
include 'tmap_dims.parm'
include 'ferret.parm'
- include 'errmsg.parm'
- include 'xvariables.cmn'
- include 'xcontext.cmn'
- include 'xmem_subsc.cmn'
+ include 'xmem_subsc.cmn'
* calling argument declarations:
- INTEGER cx, mv, idim, nout
- REAL grid_data( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
- REAL*8 dp_line(nout)
+ INTEGER axis, axmin, axmax, i, j, k, l, m, n
+ REAL src(m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+ . m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
+ REAL line(axmin:axmax)
* internal variable declarations:
- INTEGER iout, i, j, k, l, m, n
+ INTEGER ss
* extract the line
- iout = 0
- DO 200 n = cx_lo_s6(cx), cx_hi_s6(cx)
- DO 200 m = cx_lo_s5(cx), cx_hi_s5(cx)
- DO 200 l = cx_lo_s4(cx), cx_hi_s4(cx)
- DO 200 k = cx_lo_s3(cx), cx_hi_s3(cx)
- DO 200 j = cx_lo_s2(cx), cx_hi_s2(cx)
- DO 200 i = cx_lo_s1(cx), cx_hi_s1(cx)
-
- iout = iout + 1
- dp_line( iout ) = grid_data( i,j,k,l,m,n )
-
- 200 CONTINUE
+ IF (axis .EQ. x_dim) THEN
+ DO ss = axmin, axmax
+ line(ss) = src(ss, j, k, l, m, n)
+ ENDDO
+ ELSEIF (axis .EQ. y_dim) THEN
+ DO ss = axmin, axmax
+ line(ss) = src(i, ss, k, l, m, n)
+ ENDDO
+ ELSEIF (axis .EQ. z_dim) THEN
+ DO ss = axmin, axmax
+ line(ss) = src(i, j, ss, l, m, n)
+ ENDDO
+ ELSEIF (axis .EQ. t_dim) THEN
+ DO ss = axmin, axmax
+ line(ss) = src(i, j, k, ss, m, n)
+ ENDDO
+ ELSEIF (axis .EQ. e_dim) THEN
+ DO ss = axmin, axmax
+ line(ss) = src(i, j, k, l, ss, n)
+ ENDDO
+ ELSE ! f_dim
+ DO ss = axmin, axmax
+ line(ss) = src(i, j, k, l, m, ss)
+ ENDDO
+ ENDIF
RETURN
END
diff --git a/fer/utl/extract_dp_line.F b/fer/utl/extract_arg4_line.F
similarity index 66%
copy from fer/utl/extract_dp_line.F
copy to fer/utl/extract_arg4_line.F
index aa41198..d00cd88 100644
--- a/fer/utl/extract_dp_line.F
+++ b/fer/utl/extract_arg4_line.F
@@ -1,7 +1,6 @@
- SUBROUTINE EXTRACT_DP_LINE( cx, grid_data, dp_line, idim, nout )
+ SUBROUTINE EXTRACT_ARG4_LINE( src, axis, axmin, axmax,
+ . i, j, k, l, m, n, line )
-*
-*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -35,44 +34,55 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* extract a single line of data from a memory variable grid along axis idim
-* no error checking is done
+* extract a single line of data along requested axis from a memory variable
+* Note that whatever the axis orientation, the corresponging index position
+* from the i,j,k,l,m,n arguments is irrelevant
* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
* written for VAX computer under VMS operating system
*
-* V200: 9/20/89 - 4D symmetrical
-* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698+ *sh* 5/15
include 'tmap_dims.parm'
include 'ferret.parm'
- include 'errmsg.parm'
- include 'xvariables.cmn'
- include 'xcontext.cmn'
- include 'xmem_subsc.cmn'
+ include 'xmem_subsc.cmn'
* calling argument declarations:
- INTEGER cx, mv, idim, nout
- REAL grid_data( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
- REAL*8 dp_line(nout)
+ INTEGER axis, axmin, axmax, i, j, k, l, m, n
+ REAL src(m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,
+ . m4lot:m4hit,m4loe:m4hie,m4lof:m4hif )
+ REAL line(axmin:axmax)
* internal variable declarations:
- INTEGER iout, i, j, k, l, m, n
+ INTEGER ss
* extract the line
- iout = 0
- DO 200 n = cx_lo_s6(cx), cx_hi_s6(cx)
- DO 200 m = cx_lo_s5(cx), cx_hi_s5(cx)
- DO 200 l = cx_lo_s4(cx), cx_hi_s4(cx)
- DO 200 k = cx_lo_s3(cx), cx_hi_s3(cx)
- DO 200 j = cx_lo_s2(cx), cx_hi_s2(cx)
- DO 200 i = cx_lo_s1(cx), cx_hi_s1(cx)
-
- iout = iout + 1
- dp_line( iout ) = grid_data( i,j,k,l,m,n )
-
- 200 CONTINUE
+ IF (axis .EQ. x_dim) THEN
+ DO ss = axmin, axmax
+ line(ss) = src(ss, j, k, l, m, n)
+ ENDDO
+ ELSEIF (axis .EQ. y_dim) THEN
+ DO ss = axmin, axmax
+ line(ss) = src(i, ss, k, l, m, n)
+ ENDDO
+ ELSEIF (axis .EQ. z_dim) THEN
+ DO ss = axmin, axmax
+ line(ss) = src(i, j, ss, l, m, n)
+ ENDDO
+ ELSEIF (axis .EQ. t_dim) THEN
+ DO ss = axmin, axmax
+ line(ss) = src(i, j, k, ss, m, n)
+ ENDDO
+ ELSEIF (axis .EQ. e_dim) THEN
+ DO ss = axmin, axmax
+ line(ss) = src(i, j, k, l, ss, n)
+ ENDDO
+ ELSE ! f_dim
+ DO ss = axmin, axmax
+ line(ss) = src(i, j, k, l, m, ss)
+ ENDDO
+ ENDIF
RETURN
END
diff --git a/fer/utl/extract_dp_line.F b/fer/utl/extract_dp_line.F
index aa41198..d4436ca 100644
--- a/fer/utl/extract_dp_line.F
+++ b/fer/utl/extract_dp_line.F
@@ -45,6 +45,9 @@
* V200: 9/20/89 - 4D symmetrical
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* 5/15 NOTE: the newer routine EXTRACT_ARG1_LINE can probably replace this
+* and is more appropriately sensitive to argument idim
+
include 'tmap_dims.parm'
include 'ferret.parm'
include 'errmsg.parm'
diff --git a/fer/utl/extract_dp_line2.F b/fer/utl/extract_dp_line2.F
index a20d9d9..bbcc019 100644
--- a/fer/utl/extract_dp_line2.F
+++ b/fer/utl/extract_dp_line2.F
@@ -45,6 +45,10 @@
* V570 - reading 2nd line for bounds on a DEFINE AXIS/BOUNDS
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* 5/15 NOTE: the newer routine EXTRACT_ARG2_LINE can probably replace this
+* and is more appropriately sensitive to argument idim
+
+
include 'tmap_dims.parm'
include 'ferret.parm'
include 'errmsg.parm'
diff --git a/fer/utl/full_scan_indices.F b/fer/utl/full_scan_indices.F
new file mode 100644
index 0000000..bf9ef6f
--- /dev/null
+++ b/fer/utl/full_scan_indices.F
@@ -0,0 +1,142 @@
+ SUBROUTINE FULL_SCAN_INDICES (src, ksmin, ksmax,
+ . ks_start, ks_end,
+ . bad_src, targ,
+ . indices, coefs, kdmin, kdmax,
+ . ascnd, has_valid )
+
+*
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
+* Routine to determine nearest neighbor index (lower index)
+* on GRID1 for points on GRID2.
+
+* Code is a delta on HUNT_INDICES. That routine assumes src array
+* is sorted, so it can use a binary search. This routine uses a
+* full scan to find nearest indices, and then continues the scan to make
+* sure the result is not multiple-valued (a result of non-monotonic src)
+
+* Note that the TARG array is always ascending
+
+* variable naming:
+* 's' refers to the source array -- the incoming list of values
+* 'd' refers to the destination arrays -- the outgoing indices and coefs
+* min/max refer to the dimensioned limits of arrays
+* _ok refers to to limits within which the arrays contain valid values
+
+
+* V698 *sh* 5/15 derived from Ferret source routine HUNT_INDICES
+
+ include 'ferret.parm'
+
+* calling argument declarations
+ LOGICAL ascnd, has_valid
+ INTEGER ksmin, ksmax, ks_start, ks_end, kdmin, kdmax,
+ . indices(kdmin:kdmax)
+ REAL src(ksmin:ksmax),
+ . targ(kdmin:kdmax), coefs(kdmin:kdmax),
+ . bad_src
+
+* internal variable declarations
+ INTEGER ks, kd, slo, shi, sincr, nfound, ksfound, ksprev
+ REAL vt, v0, v1
+
+********************************************
+* initialize
+ has_valid = .FALSE.
+ ksfound = ks_start ! any valid index may go with coef=bad_val4
+
+* initialize loop direction
+ IF (ascnd) THEN
+ sincr = 1
+ slo = ks_start
+ shi = ks_end
+ ELSE
+ sincr = -1
+ slo = ks_end
+ shi = ks_start
+ ENDIF
+
+* outer loop - target axis points
+ DO kd = kdmin, kdmax
+
+* inner loop - a column of non-monotonic (semi-ordered) auxiliary coordinates
+ vt = targ(kd)
+ nfound = 0
+ v0 = src(slo)
+ DO ks = slo, shi, sincr
+
+ IF (ks .NE. slo) v0 = v1 ! preceding test point
+ v1 = src(ks) ! new test point
+
+* does our target exactly match this src value?
+ IF (vt .EQ. v1) THEN
+ ksfound = ks
+ nfound = nfound + 1
+ CYCLE
+ ENDIF
+
+* does our target value lie between two valid src values?
+ IF (v0 .NE. bad_src
+ . .AND. v1 .NE. bad_src ) THEN
+* ... target lies between if sign of diff product is non-negative
+ IF ( ((vt-v0)*(v1-vt)) .GT. 0.0) THEN
+ ksfound = ks
+ nfound = nfound + 1
+ ENDIF
+ ENDIF
+ ENDDO
+
+* save result
+ indices(kd) = ksfound
+ coefs(kd) = bad_val4
+
+ IF (nfound .EQ. 1) THEN
+ ksprev = ksfound-sincr
+ IF (vt .EQ. src(ksfound) ) THEN
+! indices(kd) = ksfound
+ coefs(kd) = 1.0
+ has_valid = .TRUE.
+ ELSEIF (src(ksfound) .GT. src(ksprev) ) THEN ! only ordered ok
+ indices(kd) = ksprev
+ coefs(kd) = (src(ksfound)-vt) / (src(ksfound)-src(ksprev))
+ has_valid = .TRUE.
+ ENDIF
+ ENDIF
+
+ ENDDO ! end outer loop
+
+ RETURN
+ END
+
diff --git a/fer/utl/gcf_impose_arg_lim_dflts.F b/fer/utl/gcf_impose_arg_lim_dflts.F
index 58cdae5..392654e 100644
--- a/fer/utl/gcf_impose_arg_lim_dflts.F
+++ b/fer/utl/gcf_impose_arg_lim_dflts.F
@@ -124,8 +124,8 @@
cx_cal_id(cx_out) = unspecified_int4
! cx_trans (idim,cx_out) = trans_no_transform
! cx_trans_arg(idim,cx_out) = bad_val4
- IF (idim .EQ. t_dim)
- . cx_calendar(cx_out) = .FALSE.
+ IF (idim .EQ. t_dim .OR. idim .EQ. f_dim)
+ . cx_calendar(idim,cx_out) = .FALSE.
ELSEIF (lo_off(idim).NE.0 .OR. hi_off(idim).NE.0) THEN
* pass along the axis limits
diff --git a/fer/utl/decrement_plot_grid.F b/fer/utl/get_abstract_line.F
old mode 100755
new mode 100644
similarity index 84%
copy from fer/utl/decrement_plot_grid.F
copy to fer/utl/get_abstract_line.F
index aa6c503..7aab070
--- a/fer/utl/decrement_plot_grid.F
+++ b/fer/utl/get_abstract_line.F
@@ -1,6 +1,7 @@
- SUBROUTINE DECREMENT_PLOT_GRID
+ INTEGER FUNCTION GET_ABSTRACT_LINE(idim)
*
+*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -33,19 +34,20 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
*
-* Decrement the grid use count which was bumped up, saving the grid used
-* in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
+* return the abstract axis in the given direction
+
+* V694
+ include 'tmap_dims.parm'
+ include 'xtm_grid.cmn_text'
+ include 'xfr_grid.cmn' ! w/ mgrid_abstract
- include 'xbox_bounds.cmn'
+* calling argument declarations
+ INTEGER idim
- INTEGER grid
+* Get the axis
- grid = bb_grid
- IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
- bb_grid_inccount = 0
+ GET_ABSTRACT_LINE = grid_line( idim, mgrid_abstract )
RETURN
END
diff --git a/fer/utl/hunt_indices.F b/fer/utl/hunt_indices.F
deleted file mode 100644
index df6494f..0000000
--- a/fer/utl/hunt_indices.F
+++ /dev/null
@@ -1,217 +0,0 @@
- SUBROUTINE HUNT_INDICES (src, ksmin, ksmax,
- . bad_src, targ,
- . indices, coefs, kdmin, kdmax,
- . kdlo_ok, kdhi_ok, ascnd )
-
-*
-*
-* This software was developed by the Thermal Modeling and Analysis
-* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
-* hereafter referred to as NOAA/PMEL/TMAP.
-*
-* Access and use of this software shall impose the following
-* obligations and understandings on the user. The user is granted the
-* right, without any fee or cost, to use, copy, modify, alter, enhance
-* and distribute this software, and any derivative works thereof, and
-* its supporting documentation for any purpose whatsoever, provided
-* that this entire notice appears in all copies of the software,
-* derivative works and supporting documentation. Further, the user
-* agrees to credit NOAA/PMEL/TMAP in any publications that result from
-* the use of this software or in any product that includes this
-* software. The names TMAP, NOAA and/or PMEL, however, may not be used
-* in any advertising or publicity to endorse or promote any products
-* or commercial entity unless specific written permission is obtained
-* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
-* is not obligated to provide the user with any support, consulting,
-* training or assistance of any kind with regard to the use, operation
-* and performance of this software nor to provide the user with any
-* updates, revisions, new versions or "bug fixes".
-*
-* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
-* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
-* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
-*
-*
-* Routine to determine nearest neighbor index (lower index)
-* on GRID1 for points on GRID2.
-
-* Taken from Numerical Recipes, Chapter 3, Section "Search With
-* Correlated Values"
-
-* Note that the SRC array may be either ascending or descending order
-* but the TARG array is always ascending
-
-* variable naming:
-* 's' refers to the source array -- the incoming list of values
-* 'd' refers to the destination arrays -- the outgoing indices and coefs
-* min/max refer to the dimensioned limits of arrays
-* _ok refers to to limits within which the arrays contain valid values
-
-* V690 *sh* 12/13 - derived from Ferret source routine HUNT_R4
-* compute an entire array of indices and coefficient (frac)
-* in a single call. If exact match, insist on frac=1.0 case.
-* IF reversed (.not.ascnd) return the index and coef for the
-* lower *coordinate value* point, not the lower index as before
-
- include 'ferret.parm'
-
- integer ksmin, ksmax, kdmin, kdmax, indices(kdmin:kdmax),
- . kslo_ok,kshi_ok,ndx_lo,ndx_mid,ndx_hi,inc, k,
- . kdlo_ok, kdhi_ok
-
- real src(ksmin:ksmax),
- . targ(kdmin:kdmax), coefs(kdmin:kdmax),
- . bad_src, frac
-
- logical find_1st_ok, ascnd
-
-*******************************************************************************
-* initialize
- kdlo_ok = kdmin
- kdhi_ok = kdmax
-
-* FIND A CONTIGUOUS BLOCK OF VALID VALUES IN THE src ARRAY
- find_1st_ok = .TRUE. ! here refers to the input values src
- DO 50 k = ksmin, ksmax
-* ... skip invalid values at start of line
- IF ( find_1st_ok ) THEN
- IF (src(k) .EQ. bad_src) GOTO 50
- find_1st_ok = .FALSE.
- kslo_ok = k
-* ... terminate if invalid point encountered after valid points
- ELSEIF ( src(k) .EQ. bad_src ) THEN
- kshi_ok = k-1
- GOTO 60
- ENDIF
- 50 CONTINUE
- IF (find_1st_ok) THEN
- kdlo_ok = unspecified_int4 ! no input values to hunt among
- kdhi_ok = unspecified_int4
- RETURN
- ELSE
- kshi_ok = ksmax
- ENDIF
-
-* DEGENERATE CASE? (ONLY A SINGLE POINT TO 'hunt' AMONG)
- 60 IF (kshi_ok .EQ. kslo_ok) THEN
- DO 100 k = kdmin, kdmax
- indices(k) = kslo_ok
- IF (targ(k) .eq. src(kslo_ok)) THEN
- coefs (k) = 1.0
- kdlo_ok = k
- kdhi_ok = k
- ELSE
- coefs (k) = bad_val4
- ENDIF
- 100 CONTINUE
- RETURN
- ENDIF
-
-* TRUE IF ASCENDING GRID COORDINATES, FALSE OTHERWISE
- ascnd = src(kshi_ok) .gt. src(kslo_ok)
-
-* set initial guess for index from array src
- ndx_lo = kslo_ok
- find_1st_ok = .TRUE. ! now refers to the output coefs
-
- DO 1000 k = kdmin, kdmax
-
-! this should never happen, givin the initialization value
-!* IF INITIAL GUESS IS NO GOOD, GO IMMEDIATELY TO BISECTION
-! if (ndx_lo .lt. kslo_ok .or. ndx_lo .gt. kshi_ok) then
-! ndx_lo = kslo_ok - 1
-! ndx_hi = kshi_ok + 1
-! goto 3
-! end if
-
- inc = 1
-
-* QUICKLY GET A GOOD ESTIMATE FOR LOCATION IN GRID1
- if (targ(k) .ge. src(ndx_lo) .eqv. ascnd) then
-* HUNT UP FOR PLACEMENT IN GRID
-1 ndx_hi = ndx_lo + inc
-
- if (ndx_hi .gt. kshi_ok) then
-* HUNT OVER -- OFF HIGH END OF GRID
- ndx_hi = kshi_ok + 1
- else if (targ(k) .gt. src(ndx_hi) .eqv. ascnd) then
- ndx_lo = ndx_hi
- inc = inc + inc
- goto 1
- end if
- else
-* HUNT DOWN FOR PLACEMENT
- ndx_hi = ndx_lo
-2 ndx_lo = ndx_hi - inc
-
- if (ndx_lo .lt. kslo_ok) then
-* FALL OFF LOW END OF GRID -- HUNT IS OVER
- ndx_lo = kslo_ok - 1
- else if (targ(k) .lt. src(ndx_lo) .eqv. ascnd) then
- ndx_hi = ndx_lo
- inc = inc + inc
- goto 2
- end if
- end if
-
-* USE BISECTION TO DETERMINE EXACT LOCATION IN GRID
-3 IF (ndx_hi - ndx_lo .eq. 1) THEN
-
-* return result -- including interpolation fraction
-
- IF (ndx_lo.GE.kslo_ok .AND. ndx_lo.LT.kshi_ok) THEN
- IF (targ(k) .EQ. src(ndx_lo)) THEN
- frac = 1.0
- ELSEIF (targ(k) .EQ. src(ndx_hi)) THEN
- ndx_lo = ndx_hi ! 11/13 addition
- frac = 1.0
- ELSEIF (.NOT.ascnd) THEN ! 12/13 adtn - reverse-ordered
- frac = (src(ndx_lo)-targ(k)) / (src(ndx_lo)-src(ndx_hi))
- ndx_lo = ndx_hi ! hi index is lo position
- ELSE
- frac = (src(ndx_hi)-targ(k)) / (src(ndx_hi)-src(ndx_lo))
- ENDIF
- find_1st_ok = .FALSE.
- ELSE
- frac = bad_val4
-* ... the "ok" limits can include only valid coefficient values
- IF (find_1st_ok) THEN
- kdlo_ok = k + 1
- ELSE
- IF (k .LE. kdhi_ok) kdhi_ok = k - 1
- ENDIF
- ENDIF
-
-* store the result just found
- indices(k) = ndx_lo
- coefs(k) = frac
-
- GOTO 900
- ENDIF
-
- ndx_mid = (ndx_hi + ndx_lo)/2
- if (targ(k) .gt. src(ndx_mid) .eqv. ascnd) then
- ndx_lo = ndx_mid
- else
- ndx_hi = ndx_mid
- end if
-
- goto 3
-
-* prepare for next hunt
- 900 IF (ndx_lo .LT. kslo_ok) THEN
- ndx_lo = kslo_ok
- ELSEIF (ndx_lo .GT. kshi_ok) THEN
- ndx_lo = kshi_ok
- ENDIF
-
- 1000 CONTINUE
-
- RETURN
- end
diff --git a/fer/utl/inherit_attrs.F b/fer/utl/inherit_attrs.F
index 8174281..a06b9e1 100644
--- a/fer/utl/inherit_attrs.F
+++ b/fer/utl/inherit_attrs.F
@@ -98,7 +98,7 @@
IF (dset1 .EQ. pdset_irrelevant) dset1 = cx_data_set(cx_last)
cat = cx_category(cx)
- IF (cat .EQ. cat_user_var) dset1 = -1
+ IF (cat .EQ. cat_user_var) dset1 = pdset_uvars
CALL GET_NEW_CX( cx_last, cx_cmnd, .TRUE., status )
IF ( status .NE. ferr_ok ) GOTO 5000
@@ -113,7 +113,7 @@
IF (dset2 .EQ. pdset_irrelevant) dset2 = cx_data_set(cx_last)
cat = cx_category(cx)
- IF (cat .EQ. cat_user_var) dset2 = -1
+ IF (cat .EQ. cat_user_var) dset2 = pdset_uvars
* Get varid for each variable.
CALL CD_GET_VAR_ID (dset1, varname1, varid1, status)
diff --git a/fer/utl/isubscr_cx.F b/fer/utl/isubscr_cx.F
index 4fd7f64..f86e76f 100644
--- a/fer/utl/isubscr_cx.F
+++ b/fer/utl/isubscr_cx.F
@@ -59,6 +59,7 @@
* of the grid cell, precicision could cause the wrong index
* to be returned.
* V683 *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -99,7 +100,7 @@
ENDIF
* time expressed as seconds since BC ?
- calendar = (idim .EQ. t_dim .OR. idim .EQ. f_dim) .AND. cx_calendar(cx)
+ calendar = (idim .EQ. t_dim .OR. idim .EQ. f_dim) .AND. cx_calendar(idim,cx)
IF (idim.EQ.f_dim .AND. (line_t0(axis) .EQ. char_init20)) calendar = .FALSE.
IF ( calendar ) THEN
diff --git a/fmt/src/tm_ww_ax_1_n.F b/fer/utl/its_fmrc.F
similarity index 74%
copy from fmt/src/tm_ww_ax_1_n.F
copy to fer/utl/its_fmrc.F
index 129235e..e9daace 100644
--- a/fmt/src/tm_ww_ax_1_n.F
+++ b/fer/utl/its_fmrc.F
@@ -1,4 +1,4 @@
- SUBROUTINE TM_WW_AX_1_N (axis, lo, hi)
+ LOGICAL FUNCTION ITS_FMRC( grid )
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,34 +33,37 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* Return the coordinates of the first and Nth coordinate points of an axis
-* Modulo is ignored in this calculation
+* is the grid indicative of an FMRC variable
+* True if both the T and F axes exist and have units of time
-* V541 *sh* 2/02
- include 'tmap_dims.parm'
-#include "gt_lib.parm"
- include 'xtm_grid.cmn_text'
+
+* V695+ *sh* 4/15
* calling argument declarations
- INTEGER axis
- REAL*8 lo, hi
+ INTEGER grid
* internal variable declarations
- INTEGER isub1, llen
+ INTEGER tline, fline
+* none
+
+ include 'tmap_dims.parm'
+ include 'ferret.parm'
+ include 'xtm_grid.cmn_text'
+
+
+ tline = grid_line(t_dim, grid)
+ fline = grid_line(f_dim, grid)
- IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
- lo = unspecified_val8
- hi = unspecified_val8
- ELSEIF ( line_regular(axis) ) THEN
- lo = line_start(axis)
- hi = line_start(axis) + (line_dim(axis)-1)*line_delta(axis)
- ELSE
- isub1 = line_subsc1(axis)
- llen = line_dim(axis)
- lo = line_mem(isub1)
- hi = line_mem(isub1 + llen - 1)
- ENDIF
+ ITS_FMRC =
+ . tline .NE. mnormal
+ . .AND. fline .NE. mnormal
+ . .AND. line_name(tline) .NE. 'ABSTRACT'
+ . .AND. line_name(fline) .NE. 'ABSTRACT'
+ . .AND. line_unit_code(tline) .LT. 0
+ . .AND. line_unit_code(fline) .LT. 0
+ . .AND. line_direction(tline)(1:1) .EQ. 'T'
+ . .AND. line_direction(fline)(1:1) .EQ. 'F'
RETURN
END
diff --git a/fer/ctx/del_cx_dim.F b/fer/utl/itsa_1lineif.F
similarity index 65%
copy from fer/ctx/del_cx_dim.F
copy to fer/utl/itsa_1lineif.F
index d176ba6..4336268 100644
--- a/fer/ctx/del_cx_dim.F
+++ b/fer/utl/itsa_1lineif.F
@@ -1,4 +1,4 @@
- SUBROUTINE DEL_CX_DIM( idim, cx )
+ LOGICAL FUNCTION ITSA_1LINEIF( cmnd, slen )
*
*
@@ -35,32 +35,52 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* eliminate all data specifying an axis in a context
+* determine whether the given command string is a one-line IF command of the
+* form
+* IF 0_or_1 THEN command_which_include_ELSE [ENDIF optional]
* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 9/23/87
-* V200: 5/19/89 - reordered _ss dims
-* 9/97 *kob* - eliminate newly create cx_calendar
-* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
- include 'tmap_dims.parm'
- include 'ferret.parm'
- include 'xcontext.cmn'
+* V693+ *sh* 12/14 (borrowing code from PROCESS_IF.F
* calling argument declarations
- INTEGER cx, idim
+ CHARACTER*(*) cmnd
+ INTEGER slen
+
+* local variable declarations
+ INTEGER i, pos_then
+
+ CHARACTER*1 tab
+#ifdef NO_INTRINSIC_IN_PARAMETER
+ PARAMETER ( tab = o'011' )
+#else
+ PARAMETER ( tab = CHAR(9))
+#endif
+
+
+* NOTE: this code **ASSUMES*
+* 1) that the starting characters of the command string are "IF "
+* 2) that there is no bang-comment string
+* 3) that the string is already up-cased
- cx_lo_ss ( cx, idim ) = unspecified_int4
- cx_hi_ss ( cx, idim ) = unspecified_int4
- cx_lo_ww ( idim, cx ) = unspecified_val8
- cx_hi_ww ( idim, cx ) = unspecified_val8
- cx_trans ( idim, cx ) = trans_no_transform
- cx_trans_arg( idim, cx ) = bad_val4
- if (idim .EQ. t_dim)
- . cx_calendar(cx) = .FALSE.
+* the test is simply that the command contains "THEN" and there is further
+* text found after it
+
+ pos_then = INDEX(cmnd(:slen), 'THEN')
+ IF ( pos_then .GT. 0 ) THEN
+ DO i = pos_then+4, slen
+ IF (cmnd(i:i).NE. ' ' .AND. cmnd(i:i).NE. tab) GOTO 100
+ ENDDO
+* ... no characters found after THEN -- this is not a one-liner
+ ENDIF
+
+ ITSA_1LINEIF = .FALSE.
RETURN
+
+* we found a "THEN" and we also found more text after it
+ 100 ITSA_1LINEIF = .TRUE.
+ RETURN
+
END
diff --git a/fer/utl/decrement_plot_grid.F b/fer/utl/itsa_const_var.F
old mode 100755
new mode 100644
similarity index 81%
copy from fer/utl/decrement_plot_grid.F
copy to fer/utl/itsa_const_var.F
index aa6c503..eba1a0b
--- a/fer/utl/decrement_plot_grid.F
+++ b/fer/utl/itsa_const_var.F
@@ -1,6 +1,7 @@
- SUBROUTINE DECREMENT_PLOT_GRID
+ LOGICAL FUNCTION ITSA_CONST_VAR( uvar )
*
+*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -33,19 +34,26 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
*
-* Decrement the grid use count which was bumped up, saving the grid used
-* in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
+* is the indicated variable a constant-variable?
+
+* V695 acm 6/15
+
+* calling argument declarations
+ INTEGER uvar
+
+* internal variable declarations
+
+ include 'tmap_dims.parm'
+ include 'ferret.parm'
+ include 'xvariables.cmn'
- include 'xbox_bounds.cmn'
- INTEGER grid
+* in reverse Polish order the final item of a constant variable will
+* be a constant variable
- grid = bb_grid
- IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
- bb_grid_inccount = 0
+ ITSA_CONST_VAR = uvar_item_type( uvar_num_items(uvar), uvar )
+ . .EQ. alg_const_var
RETURN
END
diff --git a/fer/utl/match4.F b/fer/utl/match4.F
index e37a075..80794c7 100644
--- a/fer/utl/match4.F
+++ b/fer/utl/match4.F
@@ -47,11 +47,14 @@
* V5.80 *acm* 7/6/04 If either string is a single blank character, then
* len_to_test = 0 and MATCH4 was set true for all values
* of the other string. Check for lengths of zero.
+* V6.96 *acm* 11/18/15 Declare model_string as *(*) to fix run-time error Ubuntu: Fortran runtime error:
+* Actual string length is shorter than the declared one for dummy argument 'model_string' (2/4)
+
INTEGER TM_LENSTR, len_model, len_test, len_to_test, i
CHARACTER*1 UPPER_CASE
- CHARACTER*4 model_string
+ CHARACTER*(*) model_string
CHARACTER*(*) test_string
LOGICAL result
diff --git a/fer/utl/match_quoted_name.F b/fer/utl/match_quoted_name.F
index 5bcabc8..a0adbec 100644
--- a/fer/utl/match_quoted_name.F
+++ b/fer/utl/match_quoted_name.F
@@ -51,6 +51,7 @@
* before calling this function, make sure
* len_test = TM_LENSTR(test_string)
* len_model_chars = TM_LENSTR(model_string)
+* 2/15 *sh* added support for _SQ_
* calling argument declarations:
CHARACTER*(*) model_string
@@ -59,7 +60,7 @@
INTEGER len_model_chars
* internal variable declarations:
- LOGICAL is_quoted
+ LOGICAL is_quoted, is_SQ
INTEGER len_model, i, len_test1
LOGICAL result
@@ -75,15 +76,30 @@
len_test1 = len_test
ENDIF
+* _SQ_ as a possible substitute for "'"
+ is_SQ = .FALSE.
+ IF ( test_string(1:1) .EQ. "_"
+ . .AND. len_test .GE. 8 ) THEN
+ is_SQ = test_string(1:4) .EQ. "_SQ_"
+ IF (is_SQ) is_quoted = test_string(len_test-3:len_test)
+ . .EQ. "_SQ_"
+ IF (is_SQ) len_test1 = len_test - 8
+ ENDIF
+
* test string cannot be shorter than model or longer than fully terminated model
- IF ( len_test1 .LT. len_model_chars
+ IF ( len_test1 .LT. len_model_chars
. .OR.( len_model_chars .LT. len_model ! fully terminated ?
. .AND. len_test1 .GT. len_model_chars ) ) GOTO 200
IF (is_quoted) THEN
- IF (model_string(1:len_model_chars) .NE. test_string(2:len_model_chars+1)) GOTO 200
+ IF (model_string(1:len_model_chars)
+ . .NE. test_string (2:len_model_chars+1)) GOTO 200
+ ELSEIF (is_SQ) THEN
+ IF (model_string(1:len_model_chars)
+ . .NE. test_string (5:len_model_chars+4)) GOTO 200
ELSE
+! sic - "tm_match_captial_name" is found in file tm_match_capital_name.c
CALL tm_match_captial_name(test_string, model_string,
. len_model_chars, result)
IF(.NOT.result) GOTO 200
diff --git a/fer/utl/parse_string_list.F b/fer/utl/parse_string_list.F
index 3970bd1..ce2c559 100644
--- a/fer/utl/parse_string_list.F
+++ b/fer/utl/parse_string_list.F
@@ -46,13 +46,16 @@
* statements. use an octal constant instead
* 2/07 *acm* - fix bug 1488; if the last item is a missing string, save that.
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* 2/15 *sh* added support for _DQ_ and _SQ_
* calling argument declarations
INTEGER cx, mr, status
CHARACTER*(*) string
* internal variable declarations
- LOGICAL stored, in_quote, doub_quote, do_system_cmnd
+ LOGICAL stored, in_quote, do_system_cmnd,
+ . doub_atom, sing_atom, DQ_atom, SQ_atom,
+ . doub_quote, sing_quote, DQ_quote, SQ_quote
INTEGER TM_LENSTR1, STR_CASE_BLIND_COMPARE,
. i, n, nnew, spos, slen, str_start, vax_code, istat
CHARACTER c*1
@@ -93,21 +96,35 @@
IF ( spos .GE. slen ) GOTO 5000
* loop through the text counting commas
-* (poor man's FORTRAN DO-WHILE loop)
i = spos - 1
- 100 i = i + 1
+ DO WHILE ( i .LT. slen )
+ i = i + 1
c = string(i:i)
+
+* ... identify quotation atoms
+ doub_atom = c.EQ.'"'
+ sing_atom = c.EQ."'"
+ IF (i+3 .LE. slen) THEN
+ DQ_atom = string(i:i+3) .EQ. "_DQ_"
+ SQ_atom = string(i:i+3) .EQ. "_SQ_"
+ ELSE
+ DQ_atom = .FALSE.
+ SQ_atom = .FALSE.
+ ENDIF
+
IF (in_quote) THEN
+* ... possibly escape the next character
#ifdef NO_DOUBLE_ESCAPE_SLASH
- IF (c .EQ. '\') THEN
+ IF (c .EQ. '\') THEN ! ' sing quote char for emacs sanity
#else
IF (c .EQ. '\\') THEN
#endif
i = i + 1 ! skip processing of next character
- ELSEIF (c .EQ. '"' .AND. doub_quote
- . .OR. c .EQ. "'" .AND. .NOT.doub_quote ) THEN
-* ... end of quotated string -- save the string
- in_quote = .FALSE.
+ ELSEIF (doub_atom .AND. doub_quote
+ . .OR. sing_atom .AND. sing_quote
+ . .OR. DQ_atom .AND. DQ_quote
+ . .OR. SQ_atom .AND. SQ_quote ) THEN
+* ... close of paired-quote string -- save the string
IF (str_start .LT. i) THEN
IF ( do_system_cmnd ) THEN
CALL STORE_SYS_STRINGS(string(str_start:i-1),
@@ -123,14 +140,23 @@
IF (status .NE. ferr_ok) GOTO 5000
stored = .TRUE.
do_system_cmnd = .FALSE.
- ELSE
- CONTINUE ! skip over anything inside of quotations
+ in_quote = .FALSE.
+ IF (DQ_atom .OR. SQ_atom) i = i + 3
ENDIF
- ELSEIF (c.EQ.'"' .OR. c.EQ."'") THEN
+
+ ELSEIF (doub_atom.OR.sing_atom.OR.DQ_atom.OR.SQ_atom) THEN
+* ... opening a paired-quote string
+ doub_quote = doub_atom
+ sing_quote = sing_atom
+ DQ_quote = DQ_atom
+ SQ_quote = SQ_atom
IF (stored) GOTO 5000
in_quote = .TRUE.
- doub_quote = c.EQ.'"'
- str_start = i + 1
+ IF (DQ_quote .OR. SQ_quote ) THEN
+ str_start = i + 4
+ ELSE
+ str_start = i + 1
+ ENDIF
ELSEIF (c .EQ. ',') THEN
IF (.NOT.stored) THEN
CALL SAVE_C_STRING(0,0,mr_c_pointer(mr),n-1,istat) ! NULL
@@ -151,7 +177,7 @@
IF (c .NE. ' '
. .AND. c .NE. tab ) GOTO 5000
ENDIF
- IF ( i .LT. slen ) GOTO 100
+ ENDDO
IF (in_quote) GOTO 5000
* success
diff --git a/fer/utl/extract_dp_line.F b/fer/utl/put_arg5_line.F
similarity index 62%
copy from fer/utl/extract_dp_line.F
copy to fer/utl/put_arg5_line.F
index aa41198..b276206 100644
--- a/fer/utl/extract_dp_line.F
+++ b/fer/utl/put_arg5_line.F
@@ -1,7 +1,6 @@
- SUBROUTINE EXTRACT_DP_LINE( cx, grid_data, dp_line, idim, nout )
+ SUBROUTINE PUT_ARG5_LINE( src, axis, axmin, axmax, offset,
+ . i, j, k, l, m, n, line )
-*
-*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -35,44 +34,57 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* extract a single line of data from a memory variable grid along axis idim
-* no error checking is done
+* put a single line of data along designateded axis into a memory variable
+* Note that whatever the axis orientation, the corresponging index position
+* from the i,j,k,l,m,n arguments is irrelevant
+* The offset arg is a hack to allow the index limits on thesrc and line to
+* be offset from one another by a constant
* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
* written for VAX computer under VMS operating system
*
-* V200: 9/20/89 - 4D symmetrical
-* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698+ *sh* 5/15 -- derived from EXTRACT_ARG1_LINE
include 'tmap_dims.parm'
include 'ferret.parm'
- include 'errmsg.parm'
- include 'xvariables.cmn'
- include 'xcontext.cmn'
- include 'xmem_subsc.cmn'
+ include 'xmem_subsc.cmn'
* calling argument declarations:
- INTEGER cx, mv, idim, nout
- REAL grid_data( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
- REAL*8 dp_line(nout)
+ INTEGER axis, axmin, axmax, offset, i, j, k, l, m, n
+ REAL src(m5lox:m5hix,m5loy:m5hiy,m5loz:m5hiz,
+ . m5lot:m5hit,m5loe:m5hie,m5lof:m5hif )
+ REAL line(axmin:axmax)
* internal variable declarations:
- INTEGER iout, i, j, k, l, m, n
+ INTEGER ss
* extract the line
- iout = 0
- DO 200 n = cx_lo_s6(cx), cx_hi_s6(cx)
- DO 200 m = cx_lo_s5(cx), cx_hi_s5(cx)
- DO 200 l = cx_lo_s4(cx), cx_hi_s4(cx)
- DO 200 k = cx_lo_s3(cx), cx_hi_s3(cx)
- DO 200 j = cx_lo_s2(cx), cx_hi_s2(cx)
- DO 200 i = cx_lo_s1(cx), cx_hi_s1(cx)
-
- iout = iout + 1
- dp_line( iout ) = grid_data( i,j,k,l,m,n )
-
- 200 CONTINUE
+ IF (axis .EQ. x_dim) THEN
+ DO ss = axmin, axmax
+ src(ss-offset, j, k, l, m, n) = line(ss)
+ ENDDO
+ ELSEIF (axis .EQ. y_dim) THEN
+ DO ss = axmin, axmax
+ src(i, ss-offset, k, l, m, n) = line(ss)
+ ENDDO
+ ELSEIF (axis .EQ. z_dim) THEN
+ DO ss = axmin, axmax
+ src(i, j, ss-offset, l, m, n) = line(ss)
+ ENDDO
+ ELSEIF (axis .EQ. t_dim) THEN
+ DO ss = axmin, axmax
+ src(i, j, k, ss-offset, m, n) = line(ss)
+ ENDDO
+ ELSEIF (axis .EQ. e_dim) THEN
+ DO ss = axmin, axmax
+ src(i, j, k, l, ss-offset, n) = line(ss)
+ ENDDO
+ ELSE ! f_dim
+ DO ss = axmin, axmax
+ src(i, j, k, l, m, ss-offset) = line(ss)
+ ENDDO
+ ENDIF
RETURN
END
diff --git a/fer/utl/report_dependency.F b/fer/utl/report_dependency.F
index a59d937..bf96edd 100644
--- a/fer/utl/report_dependency.F
+++ b/fer/utl/report_dependency.F
@@ -140,7 +140,8 @@
ENDIF
line_buff(llen+1:) = ' = ' //uvar_text(var)
ELSEIF (cat .EQ. cat_file_var
- . .OR. cat .EQ. cat_aggregate_var ) THEN
+ . .OR. cat .EQ. cat_agg_e_var
+ . .OR. cat .EQ. cat_agg_f_var ) THEN
line_buff(blanks+1:) = VAR_CODE(cat, var)
llen = TM_LENSTR1(line_buff)
IF (tell_dset) THEN
diff --git a/fer/utl/set_auto_curvi_modes.F b/fer/utl/set_auto_curvi_modes.F
index d40ae54..f00f920 100644
--- a/fer/utl/set_auto_curvi_modes.F
+++ b/fer/utl/set_auto_curvi_modes.F
@@ -38,6 +38,7 @@
* process /CURVILINEAR qualifiers from all commands
* *sh* 12/13
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -58,15 +59,15 @@
. .OR. ( (cmnd_num .EQ. cmnd_list)
. .AND. qual_given(slash_list_curvi).GT.0 )
- mode_auto_sigma_last = mode_auto_sigma
- mode_auto_sigma = mode_state(pmode_sigma,1)
+ mode_auto_layerz_last = mode_auto_layerz
+ mode_auto_layerz = mode_state(pmode_layerz,1)
. .OR. ( (cmnd_num .EQ. cmnd_list)
- . .AND. qual_given(slash_list_sigma).GT.0 )
+ . .AND. qual_given(slash_list_layerz).GT.0 )
auto_auxvar_changed =
- . mode_auto_curvi .NEQV. mode_auto_curvi_last
- . .OR. mode_auto_sigma .NEQV. mode_auto_sigma_last
+ . mode_auto_curvi .NEQV. mode_auto_curvi_last
+ . .OR. mode_auto_layerz .NEQV. mode_auto_layerz_last
RETURN
diff --git a/fer/utl/store_dependency.F b/fer/utl/store_dependency.F
index 1add054..af5ed43 100644
--- a/fer/utl/store_dependency.F
+++ b/fer/utl/store_dependency.F
@@ -48,10 +48,12 @@
* V685 *sh* 10/13
* V690 *sh* 11/13 - fixed problem in aux regridding variable dependencies
* by adding a new calling arg
+* V693+ *sh* 1/21/15 - store regridding dependency lines
include 'tmap_dims.parm'
include 'ferret.parm'
include 'errmsg.parm'
+ include 'gfdl_vms.parm' ! for vms_str_success
include 'xcontext.cmn'
include 'xvariables.cmn'
include 'xdependency_tree.cmn'
@@ -81,30 +83,48 @@
* internal variable declarations:
- LOGICAL known_var, dup, in_target_defn, direct_parentage, aux_broken_chain
+ LOGICAL known_var, dup, in_target_defn, direct_parentage,
+ . aux_broken_chain
INTEGER var, cat, dset, df_flag, row, current_lev, i,
- . this_flag
+ . this_flag, nrg
+ INTEGER STR_CASE_BLIND_COMPARE, vax_code
* initialize
cat = cx_category(cx)
var = cx_variable(cx)
dset = cx_data_set(cx)
- IF (dset .EQ. unspecified_int4) dset = pdset_irrelevant
desist = .FALSE.
known_var = cx_status .EQ. ferr_ok
+ . .OR. cx_status .EQ. pcx_vtree_regrid_report
! . .OR. cx_status .EQ. ferr_unknown_auxvar ! ???
+* set up regrid target reports
+ IF ( cx_status .EQ. pcx_vtree_regrid_report ) THEN
+ IF (cx_vtree_regrid_ntarget .EQ. 0 ) RETURN ! ?for SST[G=SST] case?
+ nrg = 1
+ ENDIF
+
* increment pointer to the next item to be stored
- row = dependency_nrows + 1
+ 10 row = dependency_nrows + 1
dependency_nrows = row
-* store the things that are always valid
- next (row) = 0 ! for clean housekeeping, not used
- level(row) = tree_lev
- dataset (row) = dset
-
* determine flag to save
- IF ( cx_status .EQ. ferr_unknown_variable ) THEN
+ IF ( cx_status .EQ. pcx_vtree_regrid_report ) THEN
+* ... special treatment for regridding report (12/14)
+* cx_vtree_unknown_grid tells if this is an unknown target error report
+* if its an error then cx_vtree_var_or_start / _cat_or_end hold "[]" posn
+* if not an error then cx_vtree_var_or_start / _cat_or_end hold
+* var & cat if the regrid points to a target variable
+* or unspecified_int4 if the regrid points to a named grid or axis
+* we do not report named grid or axis regridding. Not a dependency.
+* Multiple target regrid variables get recorded in cx_vtree_regrid_ntarget
+ dset = cx_vtree_regrid_dset(nrg)
+ IF ( cx_vtree_unknown_grid(nrg) ) THEN
+ this_flag = df_unknown_grid
+ ELSE
+ this_flag = df_valid_var
+ ENDIF
+ ELSEIF ( cx_status .EQ. ferr_unknown_variable ) THEN
this_flag = df_unknown_var
ELSEIF ( cx_status .EQ. ferr_unknown_data_set ) THEN
this_flag = df_unknown_dataset
@@ -119,8 +139,14 @@
ELSE
this_flag = df_valid_var
ENDIF
- flag(row) = this_flag
+* store the things that are always valid
+ IF (dset .EQ. unspecified_int4) dset = pdset_irrelevant
+ next (row) = 0 ! for clean housekeeping, not used
+ level(row) = tree_lev
+ dataset (row) = dset
+ flag(row) = this_flag
+
* store things differently depending upon whether variable is known
IF ( cx_status .EQ. ferr_unknown_auxvar ) THEN
var_or_start(row) = uvar_item_start(item, uvar)
@@ -129,6 +155,11 @@
. + cat - 1
parent_uv (row) = uvar
uv_item (row) = item
+ ELSEIF ( cx_status .EQ. pcx_vtree_regrid_report ) THEN
+ var_or_start(row) = cx_vtree_var_or_start(nrg)
+ cat_or_end (row) = cx_vtree_cat_or_end(nrg)
+ parent_uv (row) = uvar
+ uv_item (row) = pcx_vtree_regrid_report
ELSEIF ( cx_status .NE. ferr_ok ) THEN
var_or_start(row) = uvar_item_start(item, uvar)
cat_or_end (row) = uvar_item_end (item, uvar)
@@ -178,10 +209,23 @@
* ... flag cannot be used in the dup test because it gets reset for df_defined_earlier
* since parent_uv is set to unspecified_int4 only for df_valid_var it serves
* as a signal that the flag had been valid before it was reset to defined_earlier
- dup = parent_uv(i) .EQ. parent_uv(row)
- . .AND. dataset(i) .EQ. dataset(row)
- . .AND. var_or_start(i) .EQ. var_or_start(row)
- . .AND. cat_or_end (i) .EQ. cat_or_end (row)
+ IF ( cx_status .EQ. pcx_vtree_regrid_report
+ . .AND. flag(row) .EQ. df_unknown_grid ) THEN
+* ... ugly case of duplicate unknown grid target: "myvar[gx=mybad,gy=mybad]"
+ dup = parent_uv(i) .EQ. parent_uv(row)
+ . .AND. flag(i) .EQ. flag(row)
+ IF (dup) THEN
+ vax_code = STR_CASE_BLIND_COMPARE(
+ . uvar_text(uvar)(var_or_start( i ):cat_or_end( i )),
+ . uvar_text(uvar)(var_or_start(row):cat_or_end(row)) )
+ dup = vax_code .EQ. vms_str_success
+ ENDIF
+ ELSE
+ dup = parent_uv(i) .EQ. parent_uv(row)
+ . .AND. dataset(i) .EQ. dataset(row)
+ . .AND. var_or_start(i) .EQ. var_or_start(row)
+ . .AND. cat_or_end (i) .EQ. cat_or_end (row)
+ ENDIF
IF (dup) THEN
* ... found a twin -- do not report it
desist = .TRUE.
@@ -250,5 +294,12 @@
dependency_status_rec = row
ENDIF
+* if more regridding dependencies to report, loop back
+ IF ( cx_status .EQ. pcx_vtree_regrid_report
+ . .AND. nrg .LT. cx_vtree_regrid_ntarget ) THEN
+ nrg = nrg + 1
+ GOTO 10
+ ENDIF
+
RETURN
END
diff --git a/fmt/src/tm_note.F b/fer/utl/sys_ls.F
similarity index 69%
copy from fmt/src/tm_note.F
copy to fer/utl/sys_ls.F
index 638c9e6..5f39dca 100644
--- a/fmt/src/tm_note.F
+++ b/fer/utl/sys_ls.F
@@ -1,7 +1,5 @@
- SUBROUTINE TM_NOTE ( string, lunit )
+ SUBROUTINE SYS_LS( cmnd_text, sysout_ptr, nlines, status )
-*
-*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -33,45 +31,48 @@
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
-*
-*
-* display a warning message to the operator
+
+* Execute an "ls -1" shell command and return the resulting strings
+
+* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-* revision 0.0 2/92 for TMAP library (from FERRET rouitine "WARN")
-* *sh* 2/28/95 - allow message to be sent to alternative location
-* *js* 12.12.97- changed to use tm_split_list
-* 1/03 - *kob* g77 port - Need to use risc_buff for arbitrary concatenations
+* V695+: 5/15 *sh* - based upon store_sys_strings.F
+ include 'tmap_dims.parm'
+ include 'xrisc.cmn'
* calling argument declarations:
- INTEGER lunit
- CHARACTER*(*) string
+ INTEGER nlines, status
+ REAL*8 sysout_ptr
+ CHARACTER*(*) cmnd_text, ls_out
* internal variable declarations:
- INTEGER TM_LENSTR1, slen
+ INTEGER istat
-#ifdef unix
- include 'xalt_messages.cmn_text'
- include 'xrisc_buff.cmn'
-#else
- INCLUDE 'TMAP_FORMAT:XALT_MESSAGES.CMN'
-#endif
+ CALL WARN('Unix ls NEEDS SECURITY CHECKS')
-* string length
- slen = TM_LENSTR1( string )
+* create the ls command as a null-terminated C string
+ CALL TM_FTOC_STRNG ('ls -1 '//cmnd_text,
+ . risc_buff, size_rbuff )
-* do it
- IF ( alt_messages ) THEN
- CALL TM_ALTERNATE_NOTE( string, lunit )
+* execute the shell command
+ CALL GET_SYS_CMND(sysout_ptr, nlines, risc_buff, istat)
+ IF (istat .NE. 0) THEN
+ CALL ERRMSG(ferr_insuff_memory, status,
+ . 'dynamic memory for string', *5000)
ELSE
-c WRITE ( lunit, 3000 ) string(:slen)
-c 3000 FORMAT ( ' *** NOTE: ',A )
- risc_buff = string
- call tm_split_message(lunit, ' *** NOTE: '//risc_buff)
+ status = ferr_ok
ENDIF
- RETURN
- END
+
+* transfer the strings into this mr (and free the pointer)
+XXX CALL XFER_C_PTRS(sysout_ptr,0,0,mr_c_pointer(mr),1,pos-1,nlines)
+
+
+* success
+ status = ferr_ok
+
+ 5000 RETURN
+ END
diff --git a/fer/utl/tdest_world_init.F b/fer/utl/tdest_world_init.F
index ce51592..fcf9d55 100644
--- a/fer/utl/tdest_world_init.F
+++ b/fer/utl/tdest_world_init.F
@@ -47,8 +47,9 @@
* V530: *acm* 12/00 alternative calendar types; cal_id
* return source and dest cal_ids for get_linear_coef
* V673: *acm* 2/12 see ticket 1915. All computations of these factors need
-* to be done in DOUBLE prcision.
+* to be done in DOUBLE precision.
* *acm* 4/12 6D Ferret: time axis may be in t or f direction.
+* V695+ *sh* 5/15 calendar factor adjustments only if src/dst calendars differ
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
@@ -108,16 +109,20 @@
at0dst = SECS_FROM_BC( line_t0(dst_line), dst_cal_id, status )
IF ( status .NE. ferr_ok ) RETURN
- IF (dst_cal_id .NE. 1) THEN
- factor = CAL_FACTR (dst_cal_id)
- udst = udst* factor
- at0dst = at0dst* factor
- ENDIF
-
- IF (src_cal_id .NE. 1) THEN
- factor = CAL_FACTR (src_cal_id)
- usrc = usrc* factor
- at0src = at0src* factor
+ IF (dst_cal_id .NE. src_cal_id) THEN
+* ... make non-Gregorian calendar adjustments only if calendars differ
+* to avoid small roundoff issues
+ IF (dst_cal_id .NE. 1) THEN
+ factor = CAL_FACTR (dst_cal_id)
+ udst = udst* factor
+ at0dst = at0dst* factor
+ ENDIF
+
+ IF (src_cal_id .NE. 1) THEN
+ factor = CAL_FACTR (src_cal_id)
+ usrc = usrc* factor
+ at0src = at0src* factor
+ ENDIF
ENDIF
* determine the slope and intercept to be used in TDST_WORLD regridding
diff --git a/fer/utl/transfer_axis.F b/fer/utl/transfer_axis.F
index 91ef2dc..88f6e19 100644
--- a/fer/utl/transfer_axis.F
+++ b/fer/utl/transfer_axis.F
@@ -43,13 +43,14 @@
* written for VAX computer under VMS operating system
*
* V200: 5/31/89 - extracted from TRANSFER_CONTEXT
-* $Id: transfer_axis.F 15054 2012-10-22 20:21:29Z ksmith $
+* $Id: transfer_axis.F 19203 2015-02-20 19:56:38Z ksmith $
* - *kob* need to now copy cx_calender as well
* v580 *acm* 11/04 transfer cx_cal_id, the calendar ID used when
* computing world coordinates
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* *acm* 4/12 6D Ferret: time axis may be in t or f direction.
* V683 *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -66,8 +67,8 @@
cx_given ( idim, dest ) = cx_given ( idim, source )
cx_trans_arg(idim, dest) = cx_trans_arg(idim, source)
* 8/97 *kob*
- IF (idim .EQ. t_dim) THEN
- cx_calendar(dest) = cx_calendar(source)
+ IF (idim .EQ. t_dim .OR. idim .EQ. f_dim) THEN
+ cx_calendar(idim,dest) = cx_calendar(idim,source)
cx_cal_id(dest) = cx_cal_id(source)
ENDIF
diff --git a/fer/utl/update_attributes.F b/fer/utl/update_attributes.F
index 280e349..aaeede4 100644
--- a/fer/utl/update_attributes.F
+++ b/fer/utl/update_attributes.F
@@ -70,7 +70,7 @@
CHARACTER*128 vname, buff
varid = cd_varid(uvar)
- IF (dset .EQ. -1) varid = uvar
+ IF (dset .EQ. pdset_uvars) varid = uvar
* get the vital statistics for this variable
@@ -106,7 +106,7 @@
* For user variable update these in uvar_title, etc.
- ELSE IF (dset .EQ. -1) THEN
+ ELSE IF (dset .EQ. pdset_uvars) THEN
maxlen = 128
got_it = NC_GET_ATTRIB( dset, varid, 'long_name',
. .NOT.do_warn, vname(:vlen), maxlen, attlen,
diff --git a/fer/xeq/SOURCE_FILES b/fer/xeq/SOURCE_FILES
index 1419a17..097fe20 100644
--- a/fer/xeq/SOURCE_FILES
+++ b/fer/xeq/SOURCE_FILES
@@ -1,4 +1,5 @@
SRCS_F = \
+xeq_annotate.F\
xeq_cancel.F\
xeq_contour.F\
xeq_define.F\
diff --git a/fer/xeq/xeq_else.F b/fer/xeq/xeq_annotate.F
similarity index 55%
copy from fer/xeq/xeq_else.F
copy to fer/xeq/xeq_annotate.F
index b26d33f..0e3d2f9 100644
--- a/fer/xeq/xeq_else.F
+++ b/fer/xeq/xeq_annotate.F
@@ -1,4 +1,4 @@
- SUBROUTINE XEQ_ELSE
+ SUBROUTINE XEQ_ANNOTATE
*
*
@@ -35,50 +35,83 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* Process the ELSE in a multi-line IF compound statement
+* Put an annotation (moveable label) onto an existing plot
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA - TMAP/SDIG
*
-* V420: 4/96
-* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* revision 0.0 - 4/6/2015
include 'tmap_dims.parm'
include 'ferret.parm'
include 'errmsg.parm'
+ include 'slash.parm'
+ include 'xplot_state.cmn'
+ include 'xcontext.cmn'
+ include 'xvariables.cmn'
include 'xprog_state.cmn'
+ include 'plot_setup.parm'
+ include 'xplot_setup.cmn'
+
+* local variable declarations:
+ LOGICAL user, norm, nouser
+ INTEGER TM_LENSTR1,
+ . rlen, item, nchar, status
+ REAL xloc, yloc, halign, angle, size
+
+ CHARACTER TM_FMT*16, buff*20, labtxt*2048
-* local variable declarations
- INTEGER status
+* initialize
-* initial sanity checks
- IF ( .NOT.if_conditional ) GOTO 5010
+ size = 0.2
-* check that something was given to "if" on
- IF ( num_args .GE. 1 ) GOTO 5100
+* Get the text
+ IF (num_items .NE. 1) GOTO 5500
+ item = 1
+ labtxt = cmnd_buff(item_start(item):item_end(item))
-* is this the end of the clause that has been executing?
- IF ( if_doing(ifstk) .EQ. pif_doing_clause ) THEN
- if_doing(ifstk) = pif_skip_to_endif
+* Get settings
-* or the start of the clause to execute
- ELSEIF ( if_doing(ifstk) .EQ. pif_skip_to_clause ) THEN
- if_doing(ifstk) = pif_doing_clause
+ CALL SET_ANNOTATION (user, nouser, norm, xloc, yloc, halign,
+ . angle, size, status)
+ IF (status .NE. ferr_ok) GOTO 5000
-* anything else is an internal error
+ IF (nouser .OR. norm) THEN
+ buff = 'NOUSER'
ELSE
- GOTO 5200
+ buff = 'USER'
ENDIF
- RETURN
-
-* error exit
-* ... control stack pointer, CSP, corrected in GFD_ERROR_HANDLER
+* Create the %LABEL command
+
+ ppl_buff = '%LABEL/'//buff
+ rlen = TM_LENSTR1(ppl_buff)
+
+ ppl_buff = ppl_buff(:rlen)//' '//TM_FMT(xloc, 12, 16, nchar)
+ rlen = TM_LENSTR1(ppl_buff)
+
+ ppl_buff = ppl_buff(:rlen)//','//TM_FMT(yloc, 12, 16, nchar)
+ rlen = TM_LENSTR1(ppl_buff)
+
+ ppl_buff = ppl_buff(:rlen)//','//TM_FMT(halign, 12, 16, nchar)
+ rlen = TM_LENSTR1(ppl_buff)
+
+ ppl_buff = ppl_buff(:rlen)//','//TM_FMT(angle, 12, 16, nchar)
+ rlen = TM_LENSTR1(ppl_buff)
+
+ ppl_buff = ppl_buff(:rlen)//','//TM_FMT(size, 12, 16, nchar)
+ rlen = TM_LENSTR1(ppl_buff)
+
+ ppl_buff = ppl_buff(:rlen)//', '//labtxt
+ rlen = TM_LENSTR1(ppl_buff)
+
+* ... pass a the command to PPLUS
+
+c print *, ppl_buff(:rlen)
+ CALL PPLCMD (' ',' ',0,ppl_buff(:rlen),1,1)
+
5000 RETURN
- 5010 CALL ERRMSG( ferr_invalid_command, status,
- . 'ELSE can only be used between IF and ENDIF', *5000)
- 5100 CALL ERRMSG( ferr_syntax, status,
- . 'ELSE statement stands alone. Continue on next line"'//
- . pCR//cmnd_buff(:len_cmnd), *5000 )
- 5200 CALL ERRMSG( ferr_internal, status, 'IF-ELSE', *5000)
+ 5500 CALL ERRMSG( ferr_invalid_command, status,
+ . 'ANNOTATE command missing text for the annotation', *5000 )
+
END
diff --git a/fer/xeq/xeq_cancel.F b/fer/xeq/xeq_cancel.F
index 74607b8..ad0d242 100644
--- a/fer/xeq/xeq_cancel.F
+++ b/fer/xeq/xeq_cancel.F
@@ -142,7 +142,10 @@
* V685 *acm* 4/13 Changes for ensemble datasets, correctly handle flag for hiding
* ensemble members
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
-* V690 *sh* 1/14 add CAN VAR/SIGMA
+* V690 *sh* 1/14 add CAN VAR/LAYERZ
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V695 *acm* 4/15 Changes for PyFerret fonts. Add CANCEL TEXT
+* V695 *acm* 9/15 Fix #2317: length of name sent to FIND_DSET_NUMBER
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -172,6 +175,7 @@
include 'SWITCH.INC' ! with deflts
include 'LUNITS.INC' ! with lttout
include 'lunits_inc.decl'
+ include 'pyfonts.cmn'
* calling argument declarations:
REAL memory( mem_blk_size, max_mem_blks )
@@ -197,7 +201,7 @@
. redir_cancel_stdout, redir_cancel_stderr
CHARACTER arg*4, buff*512, argsym*120, varname*512,
- . attname*128, show_str*12, buff2*3, DUMMY*512
+ . attname*128, show_str*512, buff2*3, DUMMY*512
* local parameter declarations:
INTEGER slash_del_temp, slash_del_perm
@@ -216,7 +220,7 @@
* select subcommand
GOTO ( 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000,
- . 1100,1200,1300,1400,1500,1600,1700, 1800, 1900 )
+ . 1100,1200,1300,1400,1500,1600,1700, 1800, 1900, 2000 )
. subcmnd_num
* CANCEL ' '
@@ -391,7 +395,7 @@
* First cancel any ensemble sets
DO 718 iset = 1, maxdsets
IF ( ds_name(iset) .EQ. char_init1024) GOTO 718
- IF ( ds_type(iset) .EQ. 'ENS')
+ IF ( ds_type(iset) .EQ. 'ENS' .OR. ds_type(iset) .EQ. 'FCT')
. CALL CANCEL_DATA_SET( iset, slash_all, status )
718 CONTINUE
* Now any others.
@@ -471,8 +475,8 @@
mode_arg( mode,1 ) = num_linecolors
mode_state( mode,1 ) = .TRUE.
- WRITE (show_str, 2000) mode_arg(pmode_linecolors, 1)
- 2000 FORMAT (I3)
+ WRITE (show_str, 880) mode_arg(pmode_linecolors, 1)
+ 880 FORMAT (I3)
IF (no_plot_yet) THEN
CALL START_PPLUS(.FALSE.)
CALL PPLCMD (from, line, 0,
@@ -552,9 +556,9 @@
iset = unspecified_int4
ENDIF
-* /SIGMA
- IF (qual_given(slash_canc_var_sigma) .GT. 0) THEN
- IF (slash_all) CALL TM_NOTE('/ALL ignored when /SIGMA is specified.',
+* /LAYERZ
+ IF (qual_given(slash_canc_var_layerz) .GT. 0) THEN
+ IF (slash_all) CALL TM_NOTE('/ALL ignored when /LAYERZ is specified.',
. err_lun)
IF (num_args .EQ. 0) GOTO 5010
DO item = 1, num_args
@@ -568,12 +572,15 @@
* ... not sure ... how are LET/D vars found?
IF (category .EQ. cat_user_var) dset = -1 ! signals a uvar ??
CALL CD_GET_VAR_ID (dset, buff, varid, status)
- CALL CD_DELETE_ATTRIBUTE (dset, varid, patnam_sigma, status )
+ CALL CD_DELETE_ATTRIBUTE (dset, varid, patnam_layerz, status )
CALL PURGE_ALL_UVARS
ENDDO
RETURN
ENDIF
+* /NOERROR
+ report_error = qual_given(slash_canc_var_noerr) .LE. 0
+
* /ALL
IF ( slash_all
. .OR. (num_items.EQ.0 .AND. iset.NE.unspecified_int4) ) THEN
@@ -611,8 +618,13 @@
CALL PARSE_NAM_DSET( buff, cx_last, iset,
. category, variable, mod_cx, status )
IF ( status .NE. ferr_ok ) RETURN
- IF ( variable .EQ. munknown_var_name ) GOTO 5110
- IF ( category .NE. cat_user_var ) GOTO 5120
+ IF (report_error) THEN
+ IF ( variable .EQ. munknown_var_name ) GOTO 5110
+ IF ( category .NE. cat_user_var ) GOTO 5120
+ ELSE
+ IF ( variable .EQ. munknown_var_name .OR.
+ . category .NE. cat_user_var ) GOTO 1120
+ ENDIF
CALL PURGE_ALL_UVARS
CALL DELETE_USER_VAR(variable) ! 7/97
ENDIF
@@ -1191,6 +1203,50 @@ c ENDIF
1920 CONTINUE
ENDIF
RETURN
+
+* CANCEL TEXT
+* /FONT /BOLD /ITALIC /COLOR /ISIZ
+ 2000 CONTINUE
+
+* No arguments, or argument ALL, cancel the global and group settings
+* Look for argument ALL
+
+ i1 = 0
+ IF (num_items .GT. 0) THEN
+ DO 2010 item = 1, num_items
+ buff2 = cmnd_buff(item_start(item):item_end(item))
+ IF ( STR_SAME( buff2(1:3), "ALL") .EQ. 0) i1 = 1
+ 2010 CONTINUE
+ ENDIF
+
+ IF (num_items.EQ.0 .OR. i1.GT.0) THEN
+ igroup = fnt_all
+ CALL CANCEL_PYTEXT_GROUP (fnt_all)
+ ELSE
+
+* CANCEL TEXT with argument(s) cancel settings on individual text groups
+
+ DO 2040 item = 1, num_items
+
+ arg = cmnd_buff(item_start(item):item_end(item))
+ len_test = TM_LENSTR(arg)
+
+ DO 2030 i = 1, ngp
+ len_mchars = TM_LENSTR(pyf_group_names(i)(:4))
+ IF ( MATCH4( arg, len_test,
+ . pyf_group_names( i ),len_mchars) )
+ . CALL CANCEL_PYTEXT_GROUP (i)
+ 2030 CONTINUE
+
+ 2040 CONTINUE
+
+ ENDIF ! CANCEL TEXT arguments
+
+* Flag for PyFont vs Hershey fonts
+
+ pyfont = (STR_SAME(pyfnt_fontname, 'Hershey') .NE. 0 )
+
+ RETURN
* error exits
diff --git a/fer/xeq/xeq_contour.F b/fer/xeq/xeq_contour.F
index 8694af8..f53aee1 100644
--- a/fer/xeq/xeq_contour.F
+++ b/fer/xeq/xeq_contour.F
@@ -121,6 +121,8 @@
* use scaled label heights and spacings instead of
* hard-coded values.
* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
+* v695 *acm* 5/16 When running PyFerret do not draw axes on an overlay unless they
+* ask for it with /AXES or a ppl axis command
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -184,10 +186,12 @@
fill = qual_given( slash_cont_fill ).GT.0
noaxes = qual_given( slash_noaxes ).GT.0
axes = qual_given( slash_cont_axes ).GT.0
+
IF (overlay) THEN
noaxes = .FALSE.
axes = .FALSE.
ENDIF
+
is_logh = .FALSE.
is_logv = .FALSE.
sp = qual_given( slash_cont_spectrum )
diff --git a/fer/xeq/xeq_define.F b/fer/xeq/xeq_define.F
index 78e26f7..86a21b7 100644
--- a/fer/xeq/xeq_define.F
+++ b/fer/xeq/xeq_define.F
@@ -225,6 +225,13 @@
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
* V687 *acm* 1/14 Fixing ticket 2135; grid_use_cnt on DEFINE DATA/AGG datasets
* V690 *sh* 1/14 Formatting improvement to DEFINE ATTRIB error message
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* prevent IF, ELIF, ELSE, and ENDIF from being aliased
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+* V695+ *sh* 4/15 error msgs from INIT_AGGREGATE_SET already given. Remove.
+* V695 *acm* 6/15 Change the error message when coordinates are decreasing.
+* V695 *acm* 6/16 New subcommand DEFINE ANNOTATION
+* V695 *acm* 9/15 Fix #2317: length of name sent to FIND_DSET_NUMBER
include 'tmap_errors.parm'
# include "tmap_dset.parm"
@@ -249,6 +256,8 @@
include 'netcdf.inc'
include 'gkscm1_inc.decl'
include 'GKSCM1.INC' ! wsid
+ include 'xrisc.cmn'
+
* local parameter declarations:
INTEGER slash_dflt,
@@ -289,7 +298,8 @@
. slash_def_agg_quiet,
. slash_def_agg_e,
. slash_def_agg_f,
- . slash_def_agg_hide
+ . slash_def_agg_hide,
+ . slash_def_annot_nlab
LOGICAL explct_defn
PARAMETER ( slash_dflt = 1 + 12,
@@ -331,6 +341,7 @@
. slash_def_agg_title = 1 + 7,
. slash_def_agg_quiet = 1 + 8,
. slash_def_agg_hide = 1 + 9,
+ . slash_def_annot_nlab = 10, ! must be slash_annotate_siz+1
. explct_defn = .FALSE. )
* calling argument declarations:
@@ -340,10 +351,12 @@
LOGICAL TM_DIGIT, TM_LEGAL_NAME, TM_LINE_MATCH, TM_GRID_MATCH,
. TM_FPEQ, TM_DFPEQ, TM_CHECK_BNDS, MATCH_NAME,
. NC_GET_ATTRIB, TM_LENSTR, TM_LEGAL_NAME_OP, TM_HAS_STRING,
+ . ITSA_1LINEIF, MATCH4,
. dup_name, delta_given, create, irreg, its_reg, its_edges,
. its_calendar, its_modulo, has_repeated, has_bounds,
- . new_att, new_att_modulo, got_it, orient_t, agg_quiet, agg_e,
- . letdset, its_remote, agg_hide, def_att_quiet, purge_all
+ . new_att, new_att_modulo, got_it, orient_t, agg_quiet,
+ . letdset, its_remote, agg_hide, def_att_quiet, purge_all,
+ . user, norm, nouser
INTEGER REGION_NUMBER, GRID_FROM_NAME, VIEWPORT_NUMBER, STR_UPCASE,
. CX_DIM_LEN, ALIAS_ID, EFCN_SCAN,
. TM_GET_LINENUM, TM_LENSTR1,
@@ -362,10 +375,10 @@
. prev_cal_id, j, num_indices, varid, attype_spec,
. attoutflag, attlen, coordvar,
. dset_to_add, dir, type, attype, attid, ibuff, i0,
- . agg_dim, ivar
+ . agg_dim, ivar, item,nlab
REAL rbuff, bad_flag, yeardays,
- . val, dummy, val_buf
+ . val, dummy, val_buf, xloc, yloc, halign, angle, size
REAL*4 r4_unspec, scale, xlovp, ylovp, xhivp, yhivp,
. xoei, yoei, xcei, ycei
@@ -374,13 +387,13 @@
. micro_adj, axwwlen, rmod_len, secsperyear, small,
. new_att_modulo_len, madj
CHARACTER TM_FMT*16,
- . reg_name*24, buff1*128, buff2*128, buff3*128,
+ . reg_name*24, buff1*128, buff2*512, buff3*512,
. buffsym*120, cal_name*32, buff*512,
. basic_orients(nferdims)*2, err_string*2048, replmsg*24,
. mon_names(12)*3, varname*512, attname*128, t2*2,
. new_att_units*128, new_att_calendar*128,
. new_att_t0*128, dcode*2, axdir*1, t0string*128,
- . ustring*128
+ . ustring*128, reserved_flow_name(3)*4
CHARACTER*1 tab
#ifdef NO_INTRINSIC_IN_PARAMETER
@@ -391,13 +404,15 @@
DATA basic_orients / 'WE','SN','UD','TI','E','F' /,
. replmsg/'Replacing definition of '/
+ DATA reserved_flow_name / 'ELIF','ELSE','ENDI' /
+
* statement function - value between 0 and 1
REAL x, vx, vy
LOGICAL OUTSIDE_0_1
OUTSIDE_0_1( x ) = x.LT.0.0 .OR. x.GT.1.0
* select subcommand
- GOTO ( 100,200,300,400,500,600,700,800,900,1000,1100 ) subcmnd_num
+ GOTO ( 100,200,300,400,500,600,700,800,900,1000,1100,1200 ) subcmnd_num
* DEFINE ' ' - (no action)
* arrival at this point usually means an illegal subcommand was given
@@ -729,12 +744,12 @@
* if this name is used as the target of an aux (curvilinear) coordinate var
* (re)defining it may invalidate cached results
CALL GET_FVARS_LIST_BY_ATTNAME_AND_VAL
- . (patnam_sigma, buff1, max_uvar,
+ . (patnam_layerz, buff1, max_uvar,
. string_array_result, deleted_list_result, num_indices)
purge_all = purge_all .OR. (num_indices .GT. 0)
IF (.NOT.purge_all) THEN
CALL GET_UVARS_LIST_BY_ATTNAME_AND_VAL
- . (patnam_sigma, buff1, max_uvar,
+ . (patnam_layerz, buff1, max_uvar,
. string_array_result, deleted_list_result, num_indices)
purge_all = purge_all .OR. (num_indices .GT. 0)
ENDIF
@@ -786,9 +801,8 @@
IF ( pos .GT. 0 ) THEN
* consolidate arguments broken up by command parser back into a single arg
-
IF (cmnd_buff(pos:pos) .EQ. '{') THEN
- CALL all_1_arg
+ CALL ALL_1_ARG
num_args = 1 ! used by GET_CMND_DATA
ENDIF
arg_start(1) = pos ! skip over "name ="
@@ -869,7 +883,7 @@ c IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
* if orientation is unclear then assume it is X
IF ( orient .EQ. unspecified_int4 ) THEN
CALL WARN (
- . "Orientation not specified via /X,/Y,/Z,/T,/E, or /F. X assumed.")
+ . "Orientation not specified via /X,/Y,/Z,.... X assumed.")
orient = x_dim
ENDIF
orient_t = orient.EQ.t_dim .OR. orient.EQ.f_dim
@@ -901,14 +915,14 @@ c IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
ELSEIF ( orient_t
* 8/97 *kob* use cx_calender to check if time is date rather than time step
. .AND. ( qual_given(slash_T0) .GT. 0
- . .OR. cx_calendar(mods_cx))) THEN
+ . .OR. cx_calendar(orient,mods_cx))) THEN
buff1 = 'HOURS'
ELSE
buff1 = 'NONE'
ENDIF
* is it a calendar axis definition?
- its_calendar = orient_t .AND. cx_calendar(mods_cx)
+ its_calendar = orient_t .AND. cx_calendar(orient,mods_cx)
* *acm* other calendar names* /CALENDAR = GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
* Gregorian is the default, also may be called STANDARD.
@@ -924,9 +938,9 @@ c IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
. cal_name, status )
IF ( status .NE. ferr_ok ) RETURN
new_att_calendar = cal_name
- ELSEIF ( orient .EQ. t_dim .AND.
+ ELSEIF ( orient_t .AND.
. ( qual_given(slash_T0) .GT. 0 .OR.
- . cx_calendar(mods_cx)) ) THEN
+ . cx_calendar(orient,mods_cx)) ) THEN
cal_name = 'GREGORIAN'
ENDIF
@@ -1257,7 +1271,7 @@ C /units=months is 1/12 of the length of the year
* Check that bounds enclose points, and that they are contiguous
line_subsc1 ( iline ) = frst_pt
line_dim ( iline ) = npoints
- IF (.NOT. TM_CHECK_BNDS (iline, n2, buff3) ) GO TO 5750
+ IF (.NOT. TM_CHECK_BNDS (iline, n2, .TRUE., buff3) ) GO TO 5750
ELSE
@@ -1556,7 +1570,7 @@ C /units=months is 1/12 of the length of the year
* add newly defined axis to the user-variable dset of the linked-list strucure
- dset_to_add = -2 ! user-defined coordinate variable dataset.
+ dset_to_add = pdset_coordvars ! user-defined coordinate variable dataset.
err_string = buff3
type = NCDOUBLE
@@ -1876,6 +1890,29 @@ C /units=months is 1/12 of the length of the year
IF ( pos .EQ. 0 ) GOTO 5400
IF ( .NOT.TM_LEGAL_NAME(buff1) ) GOTO 5410
+* determine the name of the command being aliased
+ DO i1 = pos, arg_end(num_args)
+ IF (cmnd_buff(i1:i1) .EQ. ' '
+ . .OR. cmnd_buff(i1:i1) .EQ. tab ) THEN
+ i2 = i1 - 1 ! last char of command being aliased
+ GOTO 705
+ ENDIF
+ ENDDO
+ i2 = arg_end(num_args)
+
+* prevent IF, ELIF, ELSE and ENDIF from being aliased, as this would mess
+* up flow control in PROCESS_IF and elsewhere
+* ... special test for IF command, cuz 1-line IFs are OK to alias
+ 705 IF ( MATCH4(cmnd_buff(pos:i2),i2-pos+1,'IF',2) ) THEN
+ i1 = STR_UPCASE (risc_buff, cmnd_buff)
+ IF (.NOT.ITSA_1LINEIF(risc_buff(pos:arg_end(num_args)),
+ . arg_end(num_args)-pos+1)) GOTO 5200
+ ENDIF
+ DO i1 = 1, 3
+ IF (MATCH4(cmnd_buff(pos:i2),i2-pos+1,
+ . reserved_flow_name(i1),4 )) GOTO 5200
+ ENDDO
+
* find a slot to save this alias
i1 = ALIAS_ID( buff1 )
IF ( i1 .EQ. unspecified_int4 ) THEN
@@ -1985,7 +2022,8 @@ C /units=months is 1/12 of the length of the year
!! ?? get dataset from varname.attname
* ... evaluate the context without computing the expression to get the dataset
- buff = cmnd_buff(item_start(1):item_end(1)) ! same as buff1?
+ item = 1
+ buff = cmnd_buff(item_start(item):item_end(item)) ! same as buff1?
CALL GET_NEW_CX( cx_last, cx_cmnd, .TRUE., status )
IF ( status .NE. ferr_ok ) GOTO 5000
@@ -1994,7 +2032,7 @@ C /units=months is 1/12 of the length of the year
dset = cx_data_set(cx_cmnd) ! initial value to try; will return dset
CALL ISIT_COORD_VAR ( buff, dset, varname, coordvar, status )
IF ( status .NE. ferr_ok ) THEN
- dset = -2 ! a user-defined axis (coordinate variable)
+ dset = pdset_coordvars ! a user-defined axis (coordinate variable)
CALL ISIT_COORD_VAR ( buff, dset, varname,
. coordvar, status )
IF ( status .NE. ferr_ok ) THEN
@@ -2026,7 +2064,7 @@ C /units=months is 1/12 of the length of the year
CALL FIND_VAR_NAME(pdset_irrelevant, varname, cat, var)
IF ( var .NE. munknown_var_name .AND.
. cat .EQ. cat_user_var) THEN
- dset = -1
+ dset = pdset_uvars
ELSE
dset = cx_data_set(cx_cmnd)
ENDIF
@@ -2192,10 +2230,12 @@ C /units=months is 1/12 of the length of the year
IF ( status .NE. ferr_ok ) RETURN
ENDIF
-* Is there a /E ? (later other directions)
-* This is NOT YET passed around to routines that need it.
- agg_e = qual_given( slash_def_agg_e ) .GT. 0
- IF (agg_e) agg_dim = 5
+* Is there a /E ?
+ agg_dim = e_dim
+ IF (qual_given( slash_def_agg_e ) .GT. 0) agg_dim = e_dim
+
+* Is there a /F
+ IF (qual_given( slash_def_agg_f ) .GT. 0) agg_dim = f_dim
* define data/hide
@@ -2210,19 +2250,64 @@ C /units=months is 1/12 of the length of the year
IF ( .NOT.TM_LEGAL_NAME_OP(buff1) ) GOTO 5430
IF ( TM_LENSTR1(buff1) .GT. 128 ) GOTO 5410
- CALL INIT_AGGREGATE_DSET (buff1, buff2, dset, agg_quiet, agg_hide, status)
+ CALL INIT_AGGREGATE_DSET (buff1, buff2, dset, agg_quiet, agg_hide,
+ . agg_dim, status)
- IF (status .NE. ferr_ok) GOTO 6110
+ IF (status .NE. ferr_ok) GOTO 5000
* Make this the current dataset
cx_data_set( cx_last ) = dset
RETURN
+
+
+**************************************************************************
+* DEFINE ANNOTATION /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB label_text
+* qualifiers in the same order as ANNOTATE/USER/...
+*
+* Find label text
+
+1200 IF ( num_args .LT. 1 ) GOTO 6200
+
+ item = 1
+ buff1 = cmnd_buff(item_start(item):item_end(item))
+
+* ...DEFINE ANNOTATION/NLAB
+c ?? if nlab=0, use next avail slot?
+ iqual = qual_given( slash_def_annot_nlab )
+ IF ( iqual .GT. 0 ) THEN
+ CALL EQUAL_VAL( cmnd_buff(qual_start(iqual):qual_end(iqual)),
+ . val, status )
+ buff2 = 'NLAB'
+ IF ( status .NE. ferr_ok ) GOTO 6300
+ IF ( val.EQ.unspecified_val4 .OR. val.LT.0) GOTO 6300
+ nlab = INT(val)
+ ELSE
+ nlab = 0
+ ENDIF
+
+* initialize
+
+ size = 0.12
+
+* Get settings
+
+ CALL SET_ANNOTATION (user, nouser, norm, xloc, yloc, halign,
+ . angle, size, status)
+ IF (status .NE. ferr_ok) GOTO 5000
+
+ CALL PUT_ANNOTATION (user, nouser, norm, xloc, yloc, halign,
+ . angle, size, nlab, buff1, status)
+ IF (status .NE. ferr_ok) GOTO 5000
+
+ RETURN
**************************************************************************
* error exit
5000 RETURN
5100 CALL ERRMSG( ferr_syntax,status,'illegal name: '//buff3,*5000 )
+ 5200 CALL ERRMSG( ferr_invalid_command ,status,
+ . 'cannot alias IF, ELIF, ELSE and ENDIF',*5000 )
5300 CALL ERRMSG( ferr_invalid_command, status,
. 'DEFINE what name?', *5000 )
5305 CALL ERRMSG( ferr_TMAP_error, status, ' ', *5000 )
@@ -2266,7 +2351,7 @@ C /units=months is 1/12 of the length of the year
. 'unrepairable repeated axis coords', *5000 )
5570 buff1 = TM_FMT(FLOAT(i1-frst_pt+1), 14, 16, slen)
CALL ERRMSG( ferr_grid_definition, status,
- . 'data for DEFINE AXIS/FROM_VARIABLE is not monotonic at index '
+ . 'data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index '
. //buff1(:slen), *5000 )
5580 CALL ERRMSG( ferr_grid_definition, status,
. 'data for DEFINE AXIS/FROM_VARIABLE is ambiguous', *5000 )
@@ -2374,7 +2459,13 @@ C /units=months is 1/12 of the length of the year
6100 CALL ERRMSG(ferr_syntax, status,
. 'DEFINE DATA valid only with /AGGREGATE: ', *5000)
- 6110 CALL ERRMSG(ferr_aggregate_error, status,
- . 'Aggregate dataset not defined', *5000)
+! 6110 CALL ERRMSG(ferr_aggregate_error, status,
+! . 'Aggregate dataset not defined', *5000)
+
+ 6200 CALL ERRMSG( ferr_invalid_command, status,
+ . 'No text given for DEFINE ANNOTATION', *5000 )
+
+ 6300 CALL ERRMSG( ferr_invalid_command, status,
+ . '/NLAB missing or invalid value', *5000 )
END
diff --git a/fer/xeq/xeq_elif.F b/fer/xeq/xeq_elif.F
index 9b75250..dae1a8e 100644
--- a/fer/xeq/xeq_elif.F
+++ b/fer/xeq/xeq_elif.F
@@ -44,6 +44,7 @@
* V420: 4/96
* *acm* 3/12 cleanup ifdefs and unnecessary include files
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 12/14 Simplified blocks skipped by IF using ifstk_skipping
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -65,6 +66,7 @@
* is this the end of the clause that has been executing?
IF ( if_doing(ifstk) .EQ. pif_doing_clause ) THEN
if_doing(ifstk) = pif_skip_to_endif
+ ifstk_skipping = 0 ! skipping is controlled by this IF-nest level
RETURN
ENDIF
diff --git a/fer/xeq/xeq_else.F b/fer/xeq/xeq_else.F
index b26d33f..85c52f8 100644
--- a/fer/xeq/xeq_else.F
+++ b/fer/xeq/xeq_else.F
@@ -42,6 +42,7 @@
*
* V420: 4/96
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 12/14 Simplified blocks skipped by IF using ifstk_skipping
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -60,6 +61,7 @@
* is this the end of the clause that has been executing?
IF ( if_doing(ifstk) .EQ. pif_doing_clause ) THEN
if_doing(ifstk) = pif_skip_to_endif
+ ifstk_skipping = 0 ! skipping is controlled by this IF-nest level
* or the start of the clause to execute
ELSEIF ( if_doing(ifstk) .EQ. pif_skip_to_clause ) THEN
diff --git a/fer/xeq/xeq_exit.F b/fer/xeq/xeq_exit.F
index d07b15b..95277ff 100644
--- a/fer/xeq/xeq_exit.F
+++ b/fer/xeq/xeq_exit.F
@@ -71,6 +71,8 @@
* V664 *kms* 8/10 - Add EXIT/TOPYTHON and second alternate return to exit the
* ferret_dispatch loop but just re-enter the loop if not under pyferret
* V685+ 12/13 - *acm* bounds checking; dont refer to cs_cmnd_num(csp) if csp = 0
+* V694 *acm* 12/14 Fix ticket 2221. When in -script mode exit/prompt should just exit
+* all the way out of Ferret.
include 'tmap_dims.parm'
include 'command.parm'
@@ -88,6 +90,15 @@
IF ( num_args .GT. 0 ) CALL ERRMSG( ferr_invalid_subcmnd,
. status, cmnd_buff(arg_start(1):len_cmnd), *5000 )
+* When in -script mode exit-to-prompt should just exit. (ticket 2221).
+
+ IF ( qual_given(slash_exit_prompt) .GT. 0) THEN
+ IF (its_script) THEN
+ qual_given(slash_exit_prompt) = 0
+ qual_given(slash_exit_program) = 1
+ ENDIF
+ ENDIF
+
IF (qual_given(slash_exit_cycle) .GT. 0) THEN
* Skip to end of current repeat loop
pop=0
diff --git a/fer/xeq/xeq_frame.F b/fer/xeq/xeq_frame.F
index 2c0bf23..f7d79f2 100644
--- a/fer/xeq/xeq_frame.F
+++ b/fer/xeq/xeq_frame.F
@@ -63,6 +63,8 @@
* PyFr *kms* 7/13 Add /XPIXELS, /YPIXELS, /XINCHES, /YINCHES to FRAME
* PyFr *kms* 8/13 Add /ANNOTATE to FRAME; declare memory argument
* now needed for SAVE_FRAME
+* The following changes were not applied to PyFerret:
+* V6.95 *acm* 4/15 Haven't used HDF images for a long time: require GIF only.
IMPLICIT NONE
include 'tmap_dims.parm'
diff --git a/fer/xeq/xeq_if.F b/fer/xeq/xeq_if.F
index f4a1578..9a4e404 100644
--- a/fer/xeq/xeq_if.F
+++ b/fer/xeq/xeq_if.F
@@ -55,6 +55,11 @@
* V500: 6/99 - bug fix for final quote in IF 1 THEN SAY "I is too big" ENDIF
* *acm* 3/12 cleanup ifdefs and unnecessary include files
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V693+ *sh* 12/14 1- init ifstk_skipping to count nested IFs while skipping
+* 2- screen for ELIF used in a single line syntax
+* 3- on error csp drop must occur before call to ERRMSG
+* 4- improved error message for "IF some expression THEN ..."
+* V695+ *sh* 2/15 - added support for _DQ_
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -71,7 +76,7 @@
INTEGER STR_CASE_BLIND_COMPARE, STR_UPCASE,
. vax_code, if_type, iarg,
. true_clause_start, true_clause_end, false_clause_start,
- . false_clause_end, status, csp1, tmp_stat, end
+ . false_clause_end, status, csp1, tmp_stat, iend
* 6/96: Are we really going to process this IF or merely register that
* a (skipped) IF clause has been opened?
@@ -91,6 +96,7 @@
ifstk = ifstk + 1
if_doing(ifstk) = pif_skip_to_endif
if_cs(ifstk) = if_cs(ifstk-1)
+ ifstk_skipping = 0 ! counts nested IFs while skipping
ENDIF
RETURN
ENDIF
@@ -105,10 +111,17 @@
IF ( status .NE. ferr_ok ) GOTO 5000
* whether single line or multi the second argument should be "THEN"
- vax_code = STR_CASE_BLIND_COMPARE(
- . cmnd_buff(arg_start(2):arg_end(2)),
+* a common user error is to use arithmetic expression for the conditional
+* without grave accents. In this case the THEN exists, but is not argument 2
+ DO iarg = 2, num_args
+ vax_code = STR_CASE_BLIND_COMPARE(
+ . cmnd_buff(arg_start(iarg):arg_end(iarg)),
. 'THEN' )
- IF (vax_code .NE. vms_str_success) GOTO 5200
+ IF (vax_code .EQ. vms_str_success) GOTO 100
+ ENDDO
+* ... no THEN was provided
+ GOTO 5200
+ 100 IF (iarg .GT. 2) GOTO 5210
* determine the nature of the IF clause -- single line or multi
IF ( num_args .GT. 2 ) THEN
@@ -128,7 +141,7 @@
* pattern: *** IF condition THEN true_clause ELSE false_clause (ENDIF) ***
true_clause_start = 3
* try to find "ELSE"
- DO 100 iarg = 3, num_args
+ DO iarg = 3, num_args
IF (cs_text(csp)(arg_start(iarg):arg_end(iarg))
. .EQ. 'ELSE' ) THEN
has_false_clause = .TRUE.
@@ -136,14 +149,29 @@
false_clause_start = iarg + 1
GOTO 200
ENDIF
- 100 CONTINUE
+ ENDDO
has_false_clause = .FALSE.
+* check for ELIF used in a single line syntax -- trap as a syntax error
+* (just out of laziness. In 15 years no one has asked for this.)
+ 200 DO iarg = 3, num_args
+ IF (cs_text(csp)(arg_start(iarg):arg_end(iarg))
+ . .EQ. 'ELIF' ) THEN
+ CALL STACK_PTR_DN( csp, 0, tmp_stat )
+ GOTO 5250
+ ENDIF
+ ENDDO
+
* is there an implicit or an explicit "ENDIF"?
- 200 DO 300 iarg = num_args, 3, -1
+ DO 300 iarg = num_args, 3, -1
IF (cs_text(csp)(arg_start(iarg):arg_end(iarg))
- . .EQ. 'ENDIF' ) THEN
- IF (iarg .NE. num_args ) GOTO 5300
+ . .EQ. 'ENDIF'
+ . .OR. cs_text(csp)(arg_start(iarg):arg_end(iarg))
+ . .EQ. 'ENDI' ) THEN
+ IF (iarg .NE. num_args ) THEN
+ CALL STACK_PTR_DN( csp, 0, tmp_stat )
+ GOTO 5300
+ ENDIF
IF (has_false_clause) THEN
false_clause_end = num_args - 1
ELSE
@@ -164,22 +192,28 @@
* ... 6/99 bug fix (hack) -- final quotation mark missed in
* IF 1 THEN SAY "I is too big" ENDIF
* because arg_start/arg_end are pre-trimmed wrt enclosing quotes
- end = arg_end(true_clause_end)
- IF (end .LT. len_cmnd) THEN
- IF (cmnd_buff(end+1:end+1).EQ.'"') end = end + 1
+ iend = arg_end(true_clause_end)
+ IF (iend+1 .LE. len_cmnd) THEN
+ IF (cmnd_buff(iend+1:iend+1).EQ.'"') iend = iend + 1
+ IF (iend+4 .LE. len_cmnd) THEN
+ IF (cmnd_buff(iend+1:iend+4).EQ.'_DQ_') iend = iend + 4
+ ENDIF
ENDIF
cs_text(csp) = cmnd_buff(arg_start(true_clause_start):
- . end)
+ . iend)
ELSEIF ( has_false_clause ) THEN
* ... 6/99 bug fix (hack) -- final quotation mark missed in
* IF 1 THEN SAY "I is too big" ENDIF
* because arg_start/arg_end are pre-trimmed wrt enclosing quotes
- end = arg_end(false_clause_end)
- IF (end .LT. len_cmnd) THEN
- IF (cmnd_buff(end+1:end+1).EQ.'"') end = end + 1
+ iend = arg_end(false_clause_end)
+ IF (iend+1 .LE. len_cmnd) THEN
+ IF (cmnd_buff(iend+1:iend+1).EQ.'"' ) iend = iend + 1
+ IF (iend+4 .LE. len_cmnd) THEN
+ IF (cmnd_buff(iend+1:iend+4).EQ.'_DQ_') iend = iend + 4
+ ENDIF
ENDIF
cs_text(csp) = cmnd_buff(arg_start(false_clause_start):
- . end)
+ . iend)
ELSE
* ... false condition and no ELSE clause
CALL STACK_PTR_DN( csp, 0, tmp_stat )
@@ -219,14 +253,18 @@
* error exit
* ... control stack pointer, CSP, corrected in GFD_ERROR_HANDLER
- 4999 CALL STACK_PTR_DN( csp, 0, tmp_stat )
5000 RETURN
5100 CALL ERRMSG( ferr_syntax, status, 'IF what ?', *5000)
-* ... need to pop stack for errors below here
5200 CALL ERRMSG( ferr_syntax, status, 'IF without THEN'//
- . pCR//cmnd_buff(:len_cmnd), *4999 )
+ . pCR//cmnd_buff(:len_cmnd), *5000 )
+ 5210 CALL ERRMSG( ferr_syntax, status,
+ . '"IF condition THEN" requires a simple 0 or 1 (or True or False)'//
+ . pCR//cmnd_buff(:len_cmnd), *5000 )
+ 5250 CALL ERRMSG( ferr_syntax, status,
+ . 'ELIF cannot be used in single line IF'//
+ . pCR//cmnd_buff(:len_cmnd), *5000 )
5300 CALL ERRMSG( ferr_syntax, status, 'Trash after ENDIF'//
- . pCR//cmnd_buff(:len_cmnd), *4999 )
+ . pCR//cmnd_buff(:len_cmnd), *5000 )
5400 CALL ERRMSG( ferr_invalid_command, status, 'IFs nested too deep',
. *5000 )
END
diff --git a/fer/xeq/xeq_list.F b/fer/xeq/xeq_list.F
index 7b84980..e21f878 100644
--- a/fer/xeq/xeq_list.F
+++ b/fer/xeq/xeq_list.F
@@ -149,6 +149,7 @@
* V685 *acm* 6/13 new qualifier SAVE/NOBOUNDS
* V685 *acm* 6/13 Dont add SAVE/NOCOORDS
* V690 *sh* 1/14 Automated 3-argument auxiliary (curvilinear) plotting
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
include 'tmap_dims.parm'
include 'tmap_errors.parm'
@@ -350,7 +351,7 @@ c . .AND. .NOT.do_comma_del
IF ( ITS_AUTO_CURVI(i,curvi_axes) ) THEN
* TEMPORARY: need to ensure that 'coordinates' attributes are written to point
* variables to their auxiliary variables
-* For uvars there may be no __SigmaRef_. Just uvar_aux_cat/var
+* For uvars there may be no __LayerzRef_. Just uvar_aux_cat/var
DO idim = 1, nferdims
IF (curvi_axes(idim)) THEN
inext = inext + 1
@@ -658,7 +659,7 @@ c IF (.NOT.permute) CALL GET_CX_DIMS(cx,ndim, perm )
. list_at_eof, cdf_recax, nvars2list,
. mr_perm, my_cx, buff, head_enh,
. pcdf_mode_normal, clobber, edges_flag, do_bounds,
- . keepax_flag, out_type, status )
+ . keepax_flag, out_type, quiet, status )
ELSEIF( all_at_once ) THEN
CALL LIST_MULTI( memory, mr_perm, my_cx, heading, perm,
diff --git a/fer/xeq/xeq_plot.F b/fer/xeq/xeq_plot.F
index 2483d95..483cbca 100644
--- a/fer/xeq/xeq_plot.F
+++ b/fer/xeq/xeq_plot.F
@@ -106,9 +106,13 @@
* http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2013/msg00536.html
* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
+* V6.94 *acm* 2/15 Ticket 2231: New /key option for multiple plot lines: /key=titles
+* v696 *acm* 6/15 PLOT/VS/GAPLOC to define seperate line segments on
+* PLOT/VS/RIBBON plots (LAS ticket 1597 and others). Could implement
+* this later for other PLOT/VS plots.
include 'tmap_dims.parm'
- include 'ferret.parm'
+ include 'ferret.parm'
include 'errmsg.parm'
include 'plot_setup.parm'
include 'slash.parm'
@@ -130,7 +134,7 @@
include 'GKSCM1.INC' ! wsid
include 'cont_inc.decl' ! with iautoc and nlev
include 'CONT.INC'
-
+
* calling argument declarations:
REAL memory( mem_blk_size, max_mem_blks )
@@ -139,7 +143,7 @@
. overlay, transpz, versus,
. no_labels, set_up, noaxes, axes, use_line,
. is_logh, is_logv, nokey, no_data, no_range,
- . changed_key, do_key, spectrum
+ . changed_key, do_key, spectrum, addgaps
INTEGER TM_LENSTR1, TM_LENSTR, STR_UPCASE, STR_SAME,
. symbol, icolor, ipen, icolor1, ipen1, status,
. loc, limit, slen, thick, step_inc,
@@ -147,7 +151,7 @@
. ax2_blks, ax2_start,
. do_dash, s1, s2, it_start(4), it_end(4),
. nparm, dot_sym, num_it, i, iax(4), i1,
- . loch, locv
+ . loch, locv, nvs
REAL val, sym_size, dashstyle(4), only_val
REAL*4 thickness, opacity
CHARACTER LEFINT*4, buff*128
@@ -188,10 +192,12 @@ CC => Set values here instead.
set_up = qual_given( slash_plot_set_up ).GT.0
noaxes = qual_given( slash_noaxes ).GT.0
axes = qual_given( slash_plot_axes ).GT.0
+
IF (overlay) THEN
noaxes = .FALSE.
axes = .FALSE.
ENDIF
+
is_logh = qual_given( slash_is_logh ).GT.0
is_logv = qual_given( slash_is_logv ).GT.0
@@ -270,7 +276,7 @@ CC => Set values here instead.
CALL EQUAL_COLOR( cmnd_buff(qual_start(loc):qual_end(loc)),
. icolor, thickness, status )
IF ( status .NE. ferr_ok ) GOTO 5000
- s1 = INDEX( cmnd_buff(qual_start(loc):qual_end(loc)), '=' )
+ s1 = INDEX( cmnd_buff(qual_start(loc):qual_end(loc)), '=' )
IF ( s1 .EQ. 0 ) THEN
icolor = icolor1
icolor1 = 2
@@ -321,7 +327,7 @@ CC => Set values here instead.
. val, status ) ! syntax check
IF ( status .NE. ferr_ok ) GOTO 5000
IF ( val .NE. unspecified_val4 ) THEN
- limit = 3*mode_arg(pmode_linecolors,1)
+ limit = 3*mode_arg(pmode_linecolors,1)
ipen = NINT( val ) ! user-specified line style
IF ( ipen .LT. 1 .OR. ipen .GT. limit ) GOTO 5200
IF ( opacity .GE. 0.0 )
@@ -334,19 +340,41 @@ CC => Set values here instead.
. symbol = qual_off
ENDIF
-* ... PLOT/RIBBON for multi-colored "ribbon" line
-* 3-agument plot/vs/lev xpts, ypts, var
+* ... /KEY[=title] for control over labeling the multi-line legend
- ribbon_plot = .FALSE.
- loc = qual_given( slash_plot_ribbon )
- IF ( loc .GT. 0 ) THEN
-c IF (.NOT.versus) GOTO 5470
+ loc = qual_given( slash_plot_key )
+
+ IF ( loc .GT. 0) THEN
+ CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
+ . buff, status )
+ IF ( status .NE. ferr_ok ) GOTO 5000
+ IF (TM_LENSTR(buff) .GT. 0) THEN
+ IF ( TM_HAS_STRING(buff, 'TIT') ) use_keys = .FALSE.
+ ENDIF
+ ENDIF
+
+* PLOT/RIBBON for multi-colored "ribbon" line
+ ribbon_plot = qual_given(slash_plot_ribbon) .GT. 0
+
+* A "gaps" variable specifies the end of line segments to draw.
+* Implemented only for PLOT/VS/RIBBON
+ addgaps = qual_given( slash_plot_gap ).GT.0
+ IF (addgaps .AND. .NOT.ribbon_plot) GOTO 5600
+
+* 3-argument plot/vs/lev xpts, ypts, var
+* or 4-argument plot/vs/lev xpts, ypts, var, gap
+
+ IF ( ribbon_plot ) THEN
IF (versus) THEN
- IF (num_uvars_in_cmnd .LT. 3) GOTO 5480
- IF (num_uvars_in_cmnd .GT. 3)
- . CALL WARN (
- . 'PLOT/RIBBON/VS uses just 3 variables. Ignoring extra variables.')
+ nvs = 3
+ IF (addgaps) nvs = 4
+ IF (num_uvars_in_cmnd .LT. nvs) GOTO 5480
+ IF (num_uvars_in_cmnd .GT. nvs) THEN
+ buff = 'PLOT/RIBBON/VS uses just 3 variables. Ignoring extra variables.'
+ IF (addgaps) buff = 'PLOT/RIBBON/VS/GAPLOC uses 4 variables. Ignoring extra variables.'
+ CALL WARN (buff)
+ ENDIF
ELSE
IF (num_uvars_in_cmnd .LT. 2) GOTO 5480
IF (num_uvars_in_cmnd .GT. 2)
@@ -378,6 +406,11 @@ c IF (.NOT.versus) GOTO 5470
ribbon_plot = .TRUE.
ENDIF
+* A "gaps" variable specifies the end of line segments to draw for PLOT/VS/RIBBON.
+* Issue notes for cases not already handled.
+
+ IF (addgaps .AND. .NOT.versus ) GOTO 5600
+
* Style: fast for one-color per point, default is to interpolate
* colors between points
@@ -448,34 +481,34 @@ c IF (.NOT.versus) GOTO 5470
IF (qual_given(slash_plot_nokey) .gt. 0) do_key = .FALSE.
IF ( do_key ) THEN
CALL PPLCMD ( from, line, 0, 'SHAKEY 1,1', 1, 1 )
-
-
-* ... /KEY[=continuous,horizontal,centerlabel ?
-
+* ... /KEY[=continuous,horizontal,centerlabel] ?
+* /KEY=title is a legal option, but ignored for ribbon plot.
loc = qual_given( slash_plot_key )
-
IF ( loc .GT. 0) THEN
- CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
+ CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
. buff, status )
IF ( status .NE. ferr_ok ) GOTO 5000
- IF (TM_LENSTR(buff) .GT. 0) THEN
- changed_key = .FALSE.
- IF ( TM_HAS_STRING(buff, 'CON') ) THEN
- changed_key = .TRUE.
- CALL PPLCMD (from, line, 0, 'S_KEY 1', 1, 1 )
- ENDIF
- IF ( TM_HAS_STRING(buff, 'CEN') ) THEN
- changed_key = .TRUE.
- CALL PPLCMD (from, line, 0, 'S_KEY 2', 1, 1 )
- ENDIF
- IF ( TM_HAS_STRING(buff, 'HOR') ) THEN
- changed_key = .TRUE.
- CALL PPLCMD (from, line, 0, 'S_KEY 3', 1, 1 )
- ENDIF
- IF (.NOT. changed_key) GOTO 5520
+ IF (TM_LENSTR(buff) .GT. 0) THEN
+ changed_key = .FALSE.
+ IF ( TM_HAS_STRING(buff, 'CON') ) THEN
+ changed_key = .TRUE.
+ CALL PPLCMD (from, line, 0, 'S_KEY 1', 1, 1 )
+ ENDIF
+ IF ( TM_HAS_STRING(buff, 'CEN') ) THEN
+ changed_key = .TRUE.
+ CALL PPLCMD (from, line, 0, 'S_KEY 2', 1, 1 )
+ ENDIF
+ IF ( TM_HAS_STRING(buff, 'HOR') ) THEN
+ changed_key = .TRUE.
+ CALL PPLCMD (from, line, 0, 'S_KEY 3', 1, 1 )
+ ENDIF
+ IF ( TM_HAS_STRING(buff, 'TIT') ) THEN
+ changed_key = .TRUE.
+ use_keys = .FALSE.
+ ENDIF
+ IF (.NOT. changed_key) GOTO 5520
ENDIF
ENDIF
-
ELSE
CALL PPLCMD ( from, line, 0, 'SHAKEY 0,1', 1, 1 )
ENDIF
@@ -491,19 +524,18 @@ c IF (.NOT.versus) GOTO 5470
. buff, status )
IF ( status .NE. ferr_ok ) GOTO 5000
IF ( buff(1:3) .EQ. 'CON' ) THEN
- step_inc = 2
+ step_inc = 2
ELSEIF ( buff(1:3) .EQ. ' ' ) THEN
step_inc = 3
ELSE
GOTO 5220
ENDIF
- ENDIF
+ ENDIF
* ... PLOT/DASH=(dn1,up1,dn2,up2)
* 3/02 No reason we can't do PLOT/VS/DASH
loc = qual_given( slash_plot_dash )
-c IF ( loc .GT. 0 .AND. .NOT.versus ) THEN
IF ( loc .GT. 0 ) THEN
CALL EQUAL_STR_LC( cmnd_buff(qual_start(loc):qual_end(loc)),
. buff, status )
@@ -543,7 +575,7 @@ c IF ( loc .GT. 0 .AND. .NOT.versus ) THEN
ENDIF
ENDIF
- ENDIF
+ ENDIF
* ... PLOT/hgrat[=dash or line, color=, JF[=] ] default is line
@@ -584,7 +616,8 @@ c IF ( loc .GT. 0 .AND. .NOT.versus ) THEN
. dashstyle,
. is_logh,
. is_logv,
- . nokey,
+ . nokey,
+ . addgaps,
. no_range,
. only_val,
. is_mr,
@@ -752,17 +785,24 @@ c IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
5450 CALL ERRMSG( ferr_out_of_range, status,
. cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
. 'AXES arguments must be 0 or 1', *1000 )
+ 5460 CALL ERRMSG( ferr_out_of_range, status,
+ . cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
+ . '/COLOR=WHITE only available with /THICK=1', *1000 )
5470 CALL ERRMSG( ferr_syntax, status,
. cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
. 'Ribbon plot PLOT/LEVELS valid only with /VS', *1000 )
- 5480 IF (versus) THEN
+ 5480 IF (versus .AND. addgaps .AND. ribbon_plot) THEN
CALL ERRMSG( ferr_syntax, status,
- . cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
- . 'PLOT/VS/LEVELS ribbon plot needs 3 arguments', *1000 )
+ . 'PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments', *1000 )
+ ELSEIF (versus .AND. addgaps) THEN
+ CALL ERRMSG( ferr_syntax, status,
+ . 'PLOT/VS/GAPLOC implemented only for RIBBON plots', *1000)
+ ELSEIF (versus) THEN
+ CALL ERRMSG(ferr_syntax, status,
+ . 'PLOT/VS/RIBBON plot needs 3 arguments', *1000 )
ELSE
CALL ERRMSG( ferr_syntax, status,
- . cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
- . 'PLOT/LEVELS ribbon plot needs 2 arguments', *1000 )
+ . 'RIBBON plot needs 2 arguments', *1000 )
ENDIF
5490 CALL ERRMSG( ferr_syntax, status,
. cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
@@ -770,6 +810,9 @@ c IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
5500 CALL ERRMSG( ferr_out_of_range, status,
. cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
. 'Value from 0 to 100 must be given', *1000 )
+ 5600 CALL ERRMSG( ferr_syntax, status,
+ . 'PLOT/GAPLOC applies only to PLOT/VS/RIBBON', *1000 )
+
5510 CALL ERRMSG( ferr_syntax, status,
. cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
. '/COLOR must have an argument for PLOT/OVERLAY', *1000 )
diff --git a/fer/xeq/xeq_polygon.F b/fer/xeq/xeq_polygon.F
index 770a9d4..0fecfd2 100644
--- a/fer/xeq/xeq_polygon.F
+++ b/fer/xeq/xeq_polygon.F
@@ -72,6 +72,9 @@
* returns a pen ID from a color ID and a thickness.
* PyFr *kms* 7/13 Added /OPACITY
* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
+* V695 *acm* 5/15 Ticket 2279: PyFerret don't redraw lines
+* Do not draw axes on an overlay unless they
+* ask for it with /AXES or a ppl axis command
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -151,10 +154,12 @@ CC => Set values here instead.
set_up = qual_given( slash_shad_set_up ).GT.0
noaxes = qual_given( slash_noaxes ).GT.0
axes = qual_given( slash_polygon_axes ).GT.0
+
IF (overlay) THEN
noaxes = .FALSE.
axes = .FALSE.
ENDIF
+
coord_ax = qual_given( slash_polygon_coord ) ! integer
is_logh = qual_given( slash_is_logh ).GT.0
is_logv = qual_given( slash_is_logv ).GT.0
diff --git a/fer/xeq/xeq_repeat.F b/fer/xeq/xeq_repeat.F
index be4e6f2..4c09034 100644
--- a/fer/xeq/xeq_repeat.F
+++ b/fer/xeq/xeq_repeat.F
@@ -62,6 +62,8 @@
* V57 6/04 *acm* - clean up declarations
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
* *acm* 4/12 6D Ferret: time axis may be in t or f direction.
+* V695 *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+* Likewise cs_calendar_f for the F information in the command stack
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -352,11 +354,12 @@
* 12/97 *kob* set new logical cs_is_calendar now as well
by_date = ( idim .EQ. t_dim .OR. idim .EQ. f_dim )
. .AND. ( .NOT.cx_by_ss(idim,limits_cx) )
- . .AND. ( cx_calendar(limits_cx) )
+ . .AND. ( cx_calendar(idim,limits_cx) )
* ... delta value in hours: hours-->seconds (to add to secs from BC)
IF ( by_date ) THEN
cs_delta(csp1) = -3600. * cs_delta(csp1)
- cs_is_calendar(csp1) = .TRUE.
+ IF ( idim .EQ. t_dim) cs_is_calendar_t(csp1) = .TRUE.
+ IF ( idim .EQ. f_dim) cs_is_calendar_f(csp1) = .TRUE.
cs_cal_id(csp1) = 1
ENDIF
diff --git a/fer/xeq/xeq_set.F b/fer/xeq/xeq_set.F
index d83acde..705bdf1 100644
--- a/fer/xeq/xeq_set.F
+++ b/fer/xeq/xeq_set.F
@@ -184,6 +184,9 @@
* V685 *acm* 7/13 Added FILE/FORMAT=descriptor
* V686 *acm* 1/14 Fix ticket 2126: set axis was messing up line_name storage
* V687 *acm* 3/14 New SET AXIS/NAME=
+* V694 11/14 *acm* Ticket 2217: permuted ASCII reading in 6D (fix to an error message)
+* V694 *acm* 2/15 ticket 2050: preserve case on var names for SET ATT/LIKE=var1 var2
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. New SET TEXT/
include 'tmap_dims.parm'
include 'tmap_errors.parm'
@@ -222,6 +225,8 @@
include 'calendar.decl'
include 'calendar.cmn'
include 'netcdf.inc' ! with NCCHAR
+ include 'pyfonts.cmn'
+
* calling argument declarations:
INTEGER reconfig
@@ -242,10 +247,11 @@
. offset, attid, attype, attoutflag, attlen, i1,
. dset, istat, cache_size, cache_nelems,
. cache_preemption, numpts, redir_file_lun,
- . iline, iset
+ . iline, iset, s1, s2, nparm, num_it,
+ . it_start(3), it_end(3), igrp
REAL*8 TM_WW_AXLEN, axwwlen, new_att_modulo_len
REAL*8 delta, dlo, dhi, firstval, lastval
- REAL val_buf, cache_size_mb
+ REAL val_buf, cache_size_mb, v1
CHARACTER TM_FMT*12, title*1024, subtitle*64, arg*24,
. buff1*512, buff2*512, data_form*3, show_str*12,
. varname*512, attname*128, new_att_calendar*10,
@@ -263,6 +269,7 @@
. redir_journal, redir_append, redir_clobber,
. fexist, use_strict, is_nc, have_outtype, set_att_quiet
+
* local parameter declarations:
INTEGER slash_set_last
PARAMETER ( slash_set_last = 1 )
@@ -275,7 +282,7 @@
* select subcommand
GOTO ( 100,200,300,400,500,600,700,800,900,1000,
- . 1100,1200,1300,1400,1500,1600,1700 ) subcmnd_num
+ . 1100,1200,1300,1400,1500,1600,1700,1800 ) subcmnd_num
* SET ' '
* arrival at this point usually means an illegal subcommand was given
@@ -1010,7 +1017,7 @@ c *kob* 4/97
* Replace the name in the linked-list structure.
- iset = -2 ! stored info on user-defined axes
+ iset = pdset_coordvars ! stored info on user-defined axes
CALL CD_GET_VAR_ID (iset, line_name(axis), varid, status )
IF (varid .GT. 0) CALL CD_RENAME_VAR(iset, varid, buff1, status)
@@ -1235,7 +1242,8 @@ c *kob* 4/97
* jli: is there a function to get the line orientation idim ?
- igrd=0
+ igrd=0
+ idim = 0
6300 CALL TM_NEXT_DYN_GRID( igrd, *6399)
DO 6301 i=1, nferdims
IF ( grid_line(i, igrd) .EQ. axis ) THEN
@@ -1245,6 +1253,12 @@ c *kob* 4/97
GOTO 6300
6399 CONTINUE
+ IF (idim .EQ. 0) THEN
+ CALL WARN(
+ . 'Axis not found in defined grids. Stride not applied')
+ RETURN
+ ENDIF
+
* ... Check that this native axis is used only for variables from
* netCDF datasets (II.3)
@@ -1257,7 +1271,8 @@ c *kob* 4/97
DO 6010 i = 1, maxvars
IF (ds_grid_number(i) .EQ. igrd) THEN
is_nc = (ds_type(ds_var_setnum(i)).EQ.'CDF') .OR.
- . (ds_type(ds_var_setnum(i)).EQ.'ENS')
+ . (ds_type(ds_var_setnum(i)).EQ.'ENS') .OR.
+ . (ds_type(ds_var_setnum(i)).EQ.'FCT')
IF (.NOT. is_nc)
. GOTO 6088
ENDIF
@@ -1389,7 +1404,7 @@ c *kob* 4/97
* ... SET ATT/LIKE=var1 var2
loc = qual_given( slash_set_attr_like )
IF ( loc .GT. 0 ) THEN
- CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
+ CALL EQUAL_STR_LC ( cmnd_buff(qual_start(loc):qual_end(loc)),
. buff2, status )
CALL INHERIT_ATTRS (buff2, buff1, status)
@@ -1490,7 +1505,7 @@ c *kob* 4/97
. varname, coordvar, status )
IF ( status .NE. ferr_ok ) THEN
- dset_num = -2 ! a user-defined axis (coordinate variable)
+ dset_num = pdset_coordvars ! a user-defined axis (coordinate variable)
CALL ISIT_COORD_VAR ( buff1, dset_num, varname,
. coordvar, status )
IF ( status .NE. ferr_ok ) THEN
@@ -1511,7 +1526,7 @@ c *kob* 4/97
CALL FIND_VAR_NAME(pdset_irrelevant, varname, cat, ivar)
IF ( ivar .NE. munknown_var_name .AND.
. cat .EQ. cat_user_var) THEN
- dset_num = -1
+ dset_num = pdset_uvars
ENDIF
IF (dset_num .EQ. pdset_irrelevant .OR.
@@ -1531,7 +1546,7 @@ c *kob* 4/97
cx = cx_last
ENDIF
- IF (dset_num .EQ. unspecified_int4) dset_num = -1 ! user variables
+ IF (dset_num .EQ. unspecified_int4) dset_num = pdset_uvars ! user variables
* change an existing attribute output flag and/or value of the attr
@@ -1926,6 +1941,44 @@ c *kob* 4/97
mode_metafile = .TRUE.
RETURN
+
+* SET TEXT /FONT /COLOR /ITALIC /BOLD /ISIZ GROUP
+
+ 1800 CONTINUE
+
+ IF (num_items .EQ. 0) THEN
+ igroup = fnt_all
+ CALL SET_PYTEXT_GROUP (fnt_all, buff1, status)
+
+ ELSE
+
+ DO 1820 item = 1, num_items
+
+ buff2 = cmnd_buff(item_start(item):item_end(item))
+
+ len_test = TM_LENSTR(buff2)
+ DO 1810 igrp = 1, ngp
+ len_mchars = TM_LENSTR(pyf_group_names(igrp)(:4))
+ IF ( MATCH4( buff2, len_test,
+ . pyf_group_names( igrp ),len_mchars) )
+ . CALL SET_PYTEXT_GROUP (igrp, buff1, status)
+ IF ( STR_SAME( buff2(1:3), "ALL") .EQ. 0)
+ . CALL SET_PYTEXT_GROUP (fnt_all, buff1, status)
+
+ 1810 CONTINUE
+ 1820 CONTINUE
+
+ ENDIF ! SET TEXT arguments
+
+* SET TEXT with no qualifiers is an error
+ IF (num_qualifiers .EQ. 0) THEN
+ GOTO 5470
+ ENDIF
+
+* Set logical flag
+ pyfont = (STR_SAME(pyfnt_fontname, 'Hershey') .NE. 0 )
+ RETURN
+
* error exits
5000 RETURN
5010 CALL ERRMSG( ferr_syntax, status,
@@ -1964,6 +2017,8 @@ c *kob* 4/97
5320 CALL ERRMSG( ferr_invalid_command, status,
. 'delta value not permitted on SET REGION'//
. pCR//'check '//ww_dim_name(idim)//' axis', *5000 )
+ 5470 CALL ERRMSG( ferr_invalid_command, status,
+ . 'SET TEXT what? /FONT/COLOR/BOLD/ITALIC/ISIZ', *5000 )
5700 CALL ERRMSG( ferr_invalid_command, status,
. 'qualifier(s) valid only with SET DATA/EZ command',
. *5000 )
@@ -1971,7 +2026,7 @@ c *kob* 4/97
. 'illegal qualifier or argument'//pCR//cmnd_buff(:len_cmnd),
. *5000 )
5720 CALL ERRMSG( ferr_invalid_command, status,
- . '/ORDER must be permutation of XYZT (with minus signs)'//
+ . '/ORDER must be permutation of XYZTEF (with minus signs)'//
. pCR//cmnd_buff(:len_cmnd), *5000 )
5800 CALL ERRMSG( ferr_syntax, status,
. 'To reconfigure use SET MEMORY/SIZE=megawords'
@@ -2090,7 +2145,7 @@ c *kob* 4/97
6810 CALL ERRMSG( ferr_invalid_command, status,
. 'Unrecognized option/'//
. cmnd_buff(qual_start(i):qual_end(i)) //pCR//
- . ' Valid options are /OUTTYPE=DOUBLE,FLOAT,INT,SHORT,or BYTE', *1000 )
+ . ' Valid options are /OUTTYPE=DOUBLE,FLOAT,INT,SHORT,or BYTE', *5000 )
6900 CALL ERRMSG( ferr_unknown_arg, status,
.'Can SET AXIS/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE, or NONE',
diff --git a/fer/xeq/xeq_shade.F b/fer/xeq/xeq_shade.F
index 30acf87..f6d7691 100644
--- a/fer/xeq/xeq_shade.F
+++ b/fer/xeq/xeq_shade.F
@@ -105,6 +105,9 @@
* PyFr *kms* 6/13 Added /OPACITY
* PyFr *kms* 7/13 Scale default lettering sizes by textscale
* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
+* V695 *acm* 5/15 Ticket 2279: PyFerret don't redraw lines
+* Do not draw axes on an overlay unless they
+* ask for it with /AXES or a ppl axis command
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -163,10 +166,12 @@
set_up = qual_given( slash_shad_set_up ).GT.0
noaxes = qual_given( slash_noaxes ).GT.0
axes = qual_given( slash_shad_axes ).GT.0
+
IF (overlay) THEN
noaxes = .FALSE.
axes = .FALSE.
ENDIF
+
is_logh = .FALSE.
is_logv = .FALSE.
spectrum = sp .GT. 0
diff --git a/fer/xeq/xeq_show.F b/fer/xeq/xeq_show.F
index 27f8c29..c9ce966 100644
--- a/fer/xeq/xeq_show.F
+++ b/fer/xeq/xeq_show.F
@@ -183,10 +183,15 @@
* V685 *sh* 9/13 Added SHOW VARIABLE/TREE (a.k.a. /DEPENDENCIES)
* V690 *sh* 12/13 Added SHOW TRANSFORMS of auxiliary variable regridding
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
-* V690 *sh* 1/14 Add SHOW VAR/SIGMA
+* V690 *sh* 1/14 Add SHOW VAR/LAYERZ (formerly /SIGMA)
* V691+*acm* 8/14 Fix ticket 2188: SHOW MEMORY should say memory words are 8 bytes.
* V691+ 8/14 *acm* Fix ticket 2194: SHOW with /OUTFILE and not /XML.
* V69+ *acm* 9/14 Ticket 1758. Memory request uses number of blocks not words
+* V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* 2/15 *sh* attempted but rejected hack to deal with left-over dset=-1
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. New SHOW TEXT
+* V6796 11/15 *acm* Ticket 2322: report dataset name or number in error msg,
+* on SHOW DATA when datset not open
IMPLICIT NONE
@@ -219,6 +224,7 @@
include 'EF_Util.cmn'
include 'netcdf.inc'
INCLUDE 'fgrdel.cmn'
+ include 'pyfonts.cmn'
* local parameter declarations:
LOGICAL brief
@@ -291,14 +297,15 @@
. base_cx, base_isp, grid_blocks
INTEGER saved_num_indices, saved_index_list(max_uvar),
. arr_buff(max_uvar)
- REAL xtemp, ytemp, attvals(100), cache_mb, cache_n, cache_p, rsize
+ REAL xtemp, ytemp, attvals(100), cache_mb, cache_n, cache_p, rsize,
+ . v1, v2, v3
CHARACTER EXPR_NAME*8, TM_FMT*12, VAR_CODE*128,
. default*10, show_str*2048, arg*128, name*128, argsym*120
CHARACTER varatt*641, varname*512, attname*128,
. efname*40, upname*40, aname*128, outstring*2048,
. dname*128, actstr*1, aastr*3, qualstr*6,
. dispstr*3
-
+
* 10/01 *kob* had to change decl of axesOrCorner for picky f95
CHARACTER*6 axesOrCorner(2)
@@ -320,6 +327,7 @@
* initialize
show_lun = ttout_lun
sxml = .FALSE.
+! IF (dset .EQ. -1) dset = unspecified_int4 ! 2/15: avoid left over -1
* command given with /ALL ?
risc_buff = ' '
@@ -336,7 +344,7 @@
* select subcommand
GOTO ( 100, 200, 300, 400, 500, 600, 700, 800, 900,1000,
. 1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,
- . 2100,2200 )
+ . 2100,2200,2300 )
. subcmnd_num
* SHOW ' ' - (no action)
@@ -375,6 +383,9 @@
ELSEIF ( enginename(i) .EQ. 'PipedImager' ) THEN
qualstr = ' DRAFT'
dispstr = 'YES'
+ ELSEIF ( enginename(i) .EQ. 'NoDisplayPQ' ) THEN
+ qualstr = ' HIGH'
+ dispstr = ' NO'
ELSE
qualstr = 'CUSTOM'
dispstr = ' ? '
@@ -676,6 +687,7 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
* SHOW DATA_SET
700 CALL SHOW_DATA(dset, status)
+
IF (status .NE. ferr_ok) GOTO 5000
IF ( dset .EQ. unspecified_int4 ) GOTO 5071
@@ -786,15 +798,15 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
ENDIF
ENDIF
-* ... SHOW VARIABLE/SIGMA varname [,varname2, ...]
- IF (qual_given(slash_show_var_sigma) .GT. 0) THEN
+* ... SHOW VARIABLE/LAYERZ varname [,varname2, ...]
+ IF (qual_given(slash_show_var_layerz) .GT. 0) THEN
IF (slash_all .OR. num_args.EQ.0) THEN
-* ... get list of varIDs of all variables that have __SigmaRef_ attribute
+* ... get list of varIDs of all variables that have __LayerzRef_ attribute
CALL GET_FVARS_LIST_BY_ATTNAME_AND_VAL
- . (patnam_sigma, unspecified_name4, max_uvar,
+ . (patnam_layerz, unspecified_name4, max_uvar,
. arr_buff, saved_index_list, num_indices)
CALL GET_UVARS_LIST_BY_ATTNAME_AND_VAL
- . (patnam_sigma, unspecified_name4, max_uvar-num_indices,
+ . (patnam_layerz, unspecified_name4, max_uvar-num_indices,
. arr_buff(num_indices+1),
. saved_index_list(num_indices+1), n )
num_indices = num_indices + n
@@ -814,22 +826,22 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
arg = varname
GOTO 5100 ! unknown variable
ENDIF
-* get the variable ID in the linked list (user vars stored under dset=-1?)
+* get the variable ID in the linked list (user vars stored under dset=pdset_uvars?)
IF (cat .EQ. cat_user_var) THEN
- rqst_dset = -1 ! signals a uvar in linked list calls?
+ rqst_dset = pdset_uvars
ELSE
rqst_dset = dset
ENDIF
-* NOTE: if dset=-1 signals uvar, it would seem that we'll see a bug if
+* NOTE: if dset=pdset_uvars signals uvar, it would seem that we'll see a bug if
* the same varname is used for LET/D definitions in two datasets
CALL CD_GET_VAR_ID (rqst_dset, varname, varid, status)!status?
arr_buff(i1) = varid
saved_index_list(i1) = rqst_dset
ENDDO
ENDIF
-* loop through the requested variables displaying sigma info
+* loop through the requested variables displaying layerz info
DO i1 = 1, num_indices
-* get the attribute value of '__SigmaRef_' (patnam_sigma)
+* get the attribute value of '__LayerzRef_' (patnam_layerz)
varid = arr_buff(i1)
dset = saved_index_list(i1)
maxlen = size_rbuff
@@ -837,49 +849,49 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
. nvdims, vdims, nvatts, coordvar,
. all_outflag, status)
len = TM_LENSTR1(varname)
- got_it = NC_GET_ATTRIB ( dset, varid, patnam_sigma,
+ got_it = NC_GET_ATTRIB ( dset, varid, patnam_layerz,
. .TRUE., varname, maxlen,
. attlen, attoutflag, risc_buff,
. attvals )
IF (.NOT.got_it) THEN
* ... we only arrive here if request was for named vars: SH VAR/SIG a, b, c
-* ... no explicit sigma reference defined for this variable
+* ... no explicit layerz reference defined for this variable
show_str =
- . ' No variable holds vertical (sigma) coordinates of '
+ . ' No variable holds vertical (layerz) coordinates of '
. // varname(:len)
-* look for inherited sigma dependencies
+* look for inherited layerz dependencies
dset = unspecified_int4 ! to be determined during parse
CALL PARSE_NAM_DSET( varname, cx_last, dset,
. cat, var, mods_cx, status )
IF (cat .EQ. cat_user_var) THEN
-* ... trigger grid-getting, which also gets sigma associations
+* ... trigger grid-getting, which also gets layerz associations
grid = GRID_FROM_NAME
. (cmnd_buff(item_start(i1):item_end(i1)),
. cx_last, status )
IF (uvar_aux_stat(var, z_dim).EQ.paux_stat_conflict) THEN
show_str = ' Components in the definition of ' //
. varname(:len) //
- . ' have conflicting SIGMA references'
+ . ' have conflicting LAYERZ references'
ELSEIF (uvar_aux_stat(var,z_dim).EQ.paux_stat_passed
. .OR. uvar_aux_stat(var,z_dim).EQ.paux_stat_needed) THEN
risc_buff = VAR_CODE(uvar_aux_cat(var,z_dim,dset),
. uvar_aux_var(var,z_dim,dset))
attlen = TM_LENSTR1(risc_buff)
show_str = ' ' // risc_buff(:attlen) //
- . ' holds the vertical (sigma) coordinates of ' //
+ . ' holds the vertical (layerz) coordinates of ' //
. varname(:len)
ELSEIF (uvar_aux_stat(var,z_dim).EQ.paux_stat_used) THEN
show_str = ' The definition of ' //
. varname(:len) //
. ' contains explicit regrids of'//
- . ' its SIGMA coordinates'
+ . ' its LAYERZ coordinates'
ENDIF
ENDIF
ELSE
-* ... show the explicit __sigma_ref_ attribute value
+* ... show the explicit __layerz_ref_ attribute value
show_str = ' ' // risc_buff(:attlen) //
- . ' holds the designated vertical (sigma) coordinates of ' //
+ . ' holds the designated vertical (layerz) coordinates of ' //
. varname(:len)
ENDIF
CALL SPLIT_LIST(pttmode_explct, show_lun, show_str, 0)
@@ -1390,11 +1402,16 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
CALL SHOW_GRID_XML(show_lun, grid, unspecified_int4 )
ELSE
WRITE ( risc_buff, 4210 ) grid_name( grid )
- IF (dset.NE.unspecified_int4 .AND. dset.NE.pdset_irrelevant) THEN
+ IF (dset.NE.unspecified_int4 .AND. dset.NE.pdset_irrelevant
+ . .AND. dset.NE.pdset_uvars .AND. dset.NE.pdset_coordvars) THEN
IF ( TM_HAS_STRING(ds_type(dset), 'ENS') ) THEN
dlen = TM_LENSTR1(grid_name(grid) )
WRITE ( risc_buff, 4211) grid_name(grid)(:dlen)
ENDIF
+ IF ( TM_HAS_STRING(ds_type(dset), 'FCT') ) THEN
+ dlen = TM_LENSTR1(grid_name(grid) )
+ WRITE ( risc_buff, 4212) grid_name(grid)(:dlen)
+ ENDIF
ENDIF
CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
@@ -1406,6 +1423,7 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
1350 CONTINUE
4210 FORMAT ( 4X,'GRID ',A)
4211 FORMAT ( 4X,'GRID ',A, ' Ferret-defined Ensemble Grid')
+ 4212 FORMAT ( 4X,'GRID ',A, ' Ferret-defined FMRC Grid')
ELSEIF( qual_given(slash_grid_dyn) .GT. 0 ) THEN
CALL SHOW_DYN_GRIDS(mods_cx)
@@ -1677,7 +1695,7 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
. varname, coordvar, status )
IF ( status .NE. ferr_ok ) THEN
- dset = -2 ! a user-defined axis (coordinate variable)
+ dset = pdset_coordvars ! a user-defined axis (coordinate variable)
CALL ISIT_COORD_VAR ( show_str, dset,
. varname, coordvar, status )
IF ( status .NE. ferr_ok ) THEN
@@ -1711,7 +1729,7 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
IF (dot .GT. 0) varname = show_str(1:dot-1)
CALL FIND_VAR_NAME(dset, varname, cat, var)
IF ( var .NE. munknown_var_name .AND.
- . cat .EQ. cat_user_var) dset = -1
+ . cat .EQ. cat_user_var) dset = pdset_uvars
* Or use command context to get data set
@@ -1763,10 +1781,10 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
IF (.NOT. sxml) THEN
IF (dset .NE. dset_last ) THEN
- IF (dset .EQ. -1) THEN
+ IF (dset .EQ. pdset_uvars) THEN
risc_buff =
. ' attributes for user-defined variables'
- ELSE IF (dset .EQ. -2) THEN
+ ELSE IF (dset .EQ. pdset_coordvars) THEN
risc_buff =
. ' attributes for coordinate axis'
ELSE
@@ -2028,19 +2046,85 @@ c . sbrief, sdetail, i2)
ENDIF
IF ( limited_show ) RETURN
-* SHOW QUERIES
+* SHOW TEXT
2200 CONTINUE
- DO 2210 i = 1, max_queries
+ IF (.NOT.pyfont) THEN
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . 'Hershey fonts as in classic Ferret ', 0)
+
+ ELSE
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . 'default ', 0)
+
+c* ... Font
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . ' /FONT='//pyfnt_fontname, 0)
+* ... Color
+
+* Convert rgb back to % values
+ v1 = pyfnt_red*100.
+ v2 = pyfnt_grn*100.
+ v3 = pyfnt_blu*100.
+ WRITE (risc_buff, 2201) v1, v2, v3
+ 2201 FORMAT (' /COLOR= (', 2(f4.1,','), f4.1,') (%RGB)')
+
+ len = TM_LENSTR1(risc_buff)
+ CALL GET_COLOR_NAME (v1, v2, v3, name, len0)
+ IF (len0 .GT. 0) risc_buff = ' /COLOR="'//name(:len0)//'"'
+ CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
+
+* ... Italic, Bold
+ IF (pyfnt_italic .EQ. 1) THEN
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . ' /ITALIC=ON', 0)
+
+ ELSE
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . ' /ITALIC=OFF', 0)
+
+ ENDIF
+
+ IF (pyfnt_bold .EQ. 1) THEN
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . ' /BOLD=ON', 0)
+
+ ELSE
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . ' /BOLD=OFF', 0)
+ ENDIF
+
+ WRITE (risc_buff, 2202) pyfnt_isiz
+ 2202 FORMAT (' /ISIZ=',i2)
+ CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . risc_buff, 0)
+
+* Text groups: TITLE LOGO, etc. List settings for any that are
+* different from the overall defaults.
+
+ DO 2210 i1 = ititl, icbar
+ IF (pyf_set(i1)) THEN
+ CALL SHOW_PYTEXT_GROUP(i1)
+ ENDIF
+ 2210 CONTINUE
+
+ ENDIF ! classic-Hershey or not
+
+ IF ( limited_show ) RETURN
+
+* SHOW QUERIES
+ 2300 CONTINUE
+ DO 2310 i = 1, max_queries
IF ( queries(i) .NE. unspecified_name4 )CALL SPLIT_LIST
. (pttmode_explct, show_lun, queries(i), 0)
- 2210 CONTINUE
+ 2310 CONTINUE
IF ( limited_show ) RETURN
* error exit
5050 CALL RELEASE_WORK_SPC
5000 RETURN
- 5071 CALL ERRMSG( ferr_unknown_data_set, status,
+ 5071 name = cmnd_buff(arg_start(1):arg_end(1))
+ CALL ERRMSG( ferr_unknown_data_set, status,
. name(:TM_LENSTR1(name)), *5000 )
5072 CALL ERRMSG( ferr_invalid_command, status,
. 'dataset not found for varname.attname '//
diff --git a/fer/xeq/xeq_vector.F b/fer/xeq/xeq_vector.F
index 056b7c1..186d94c 100644
--- a/fer/xeq/xeq_vector.F
+++ b/fer/xeq/xeq_vector.F
@@ -108,7 +108,9 @@
* returns a pen ID from a color ID and a thickness.
* PyFr *kms* 6/13 Added /OPACITY
* PyFr *kms* 7/13 Scale default lettering sizes by textscale
-
+* V695 *acm* 5/15 Ticket 2279: PyFerret don't redraw lines
+* Do not draw axes on an overlay unless they
+* ask for it with /AXES or a ppl axis command
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -126,7 +128,7 @@
include 'xrisc.cmn' ! 12/94 SPLIT_LIST buffer
include 'gkscm1_inc.decl'
include 'GKSCM1.INC' ! wsid
-
+ include 'xrevision.cmn'
* calling argument declarations:
REAL memory( mem_blk_size, max_mem_blks )
@@ -175,10 +177,12 @@
set_up = qual_given( slash_shad_set_up ).GT.0
noaxes = qual_given( slash_noaxes ).GT.0
axes = qual_given( slash_vect_axes ).GT.0
+
IF (overlay) THEN
noaxes = .FALSE.
axes = .FALSE.
ENDIF
+
flows = qual_given( slash_vect_flowline ).GT.0
is_logh = .FALSE. ! Not valid quals
is_logv = .FALSE. ! for vector
diff --git a/fmt/cmn/xdset_info.cmn_text b/fmt/cmn/xdset_info.cmn_text
index aa5ea92..b808de3 100644
--- a/fmt/cmn/xdset_info.cmn_text
+++ b/fmt/cmn/xdset_info.cmn_text
@@ -24,11 +24,14 @@
* V68 *acm* 1/12 Real variables should be declared REAL (conversion to double prec.)
* V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
* need tmap_dims.param with the definition of nferdims.
+* V695+ 4/15 *sh* added ds_its_aux_coord for auxiliary coordinate support
+* V695+ 5/15 *sh* added ds_var_c_cache_ptr - ptr to cached var (typ aux var)
COMMON/XDSET_INFO/
. ds_1step(maxdsets),ds_lastep(maxdsets),
. ds_delstep(maxdsets),
. ds_file_info_ptr(maxdsets),
+ . ds_var_c_cache_ptr(maxvars),
. ds_type(maxdsets),ds_format(maxdsets),
. ds_source_class(maxdsets),ds_source(maxdsets),
. ds_subsource(maxdsets),ds_prog_rev(maxdsets),
@@ -57,11 +60,11 @@
. ds_var_scale(maxvars), ds_var_off(maxvars),
. ds_bad_flag(maxvars),ds_ordering(nferdims,maxvars),
. ds_grid_start(nferdims,maxvars),ds_grid_end(nferdims,maxvars),
- . ds_var_type(maxvars),
+ . ds_var_type(maxvars),
. ds_precision(maxvars),
**************************************************************************
. ds_aux_set_num(maxvars), ds_var_scaleit(maxvars),
- . is_mc,
+ . ds_its_aux_coord(maxvars), is_mc,
**************************************************************************
. min_ds_tstart,max_ds_tend,ds_tdelta,
**************************************************************************
@@ -118,7 +121,7 @@
CHARACTER*2048 ds_name
CHARACTER*2048 ds_des_name
INTEGER*4 ds_open,ds_basic_axes,ds_time_axis
- LOGICAL ds_regsteps, ds_var_scaleit, is_mc,
+ LOGICAL ds_regsteps, ds_var_scaleit, ds_its_aux_coord, is_mc,
. ds_accepts_remote, ds_hide
REAL*8 ds_1step,ds_lastep,ds_delstep,
. ds_file_info_ptr
@@ -129,3 +132,4 @@
INTEGER*4 ds_ndataperrec,ds_nrecpervar,ds_nrecb4var,
. ds_var_setnum
INTEGER*2 ds_npospervar
+ REAL*8 ds_var_c_cache_ptr
diff --git a/fmt/cmn/xrisc_buff.cmn b/fmt/cmn/xrisc_buff.cmn
index cb9bf8b..64c00c0 100644
--- a/fmt/cmn/xrisc_buff.cmn
+++ b/fmt/cmn/xrisc_buff.cmn
@@ -3,10 +3,12 @@
* character string concatenations ("//")
* this common declares a buffer with a fixed length string in which to copy
* the CHAR*(*) string
+* 1/2015 Increase size of rbuff
+
+* *** Note that there is also a risc_buff defined in fer/common/xrisc.cmn ***
INTEGER size_rbuff
-* PARAMETER ( size_rbuff = 256 )
- PARAMETER ( size_rbuff = 2048 ) ! Increased ferret 6.01 8/2006
+ PARAMETER ( size_rbuff = 10240)
COMMON/ XRISC_BUFF / len_rbuff, risc_buff
CHARACTER risc_buff*(size_rbuff)
diff --git a/fmt/cmn/xtm_grid.cmn_text b/fmt/cmn/xtm_grid.cmn_text
index 896a08b..408b4e3 100644
--- a/fmt/cmn/xtm_grid.cmn_text
+++ b/fmt/cmn/xtm_grid.cmn_text
@@ -30,6 +30,9 @@
* for use on output of user-defined variables when MODE UPCASE_OUTPUT is cancelled.
* V64 10/09 *acm* longer string length for grid_name
* v685 3/13 *acm* new line_write for writing axes to xml
+* v694 1/15 *acm* for ticket 2227: if a dimension from a nc file is not also a
+* 1-D coordinate var, don't write the axis Ferret creates. New flag
+* line_dim_only marking axes that are defined from a dimension only
CHARACTER*128 grid_filename
CHARACTER*20 line_t0
@@ -44,8 +47,8 @@
. line_class, line_free_ptr, max_line_used,
. pline_mem_init, line_offset, line_dattype
LOGICAL grid_out_prod, line_regular, line_modulo, line_reversed,
-! . line_has_edges, line_keep_flag,
- . line_keep_flag, line_shift_origin, line_fixname, line_write
+ . line_keep_flag, line_shift_origin, line_fixname, line_write,
+ . line_dim_only
REAL line_tunit, grid_rotation
REAL*8 line_start, line_delta, line_mem, line_modulo_len
@@ -78,6 +81,7 @@
. line_fixname ( 0:line_ceiling ),
. line_shift_origin( 0:line_ceiling ),
. line_write ( 0:line_ceiling ),
+ . line_dim_only ( 0:line_ceiling ),
. line_free_ptr,
. max_line_used,
. line_cal_name ( 0:line_ceiling ),
diff --git a/fmt/src/NCF_Util.c b/fmt/src/NCF_Util.c
index 3e146a8..b47545b 100644
--- a/fmt/src/NCF_Util.c
+++ b/fmt/src/NCF_Util.c
@@ -36,55 +36,59 @@
*/
/* NCF_Util.c
- *
- * Ansley Manke
- * Ferret V600 April 26, 2005
- * V5600 *acm* fix declarations of fillc and my_len as required by solaris compiler
- *
- * This file contains all the utility functions which Ferret
- * needs in order to do attribute handling. Based on code for EF's.
- * calls are made to nc_ routines from netcdf library.
- *
- *
- * *acm 9/06 v600 - add stdlib.h wherever there is stdio.h for altix build
- * *acm 10/06 v601 - Fix by Remik for bug 1455, altix. For string attributes,
- * allocate one more than the att.len, presumably for the null
- * terminator for the string. Also double check the string length
- * that is returned from the call to nc_inq_att, and make sure
- * we allocate the correct amount of memory for the string.
- *
- * *acm 11/06 v601 - ncf_delete_var_att didnt reset the attribute id's. Fix this.
- *
- * *acm 11/06 v601 - new routine ncf_add_var_num_att_dp
- * *acm 11/06 v601 - new routine ncf_repl_var_att_dp
- * *acm 11/06 v601 - in ncf_init_other_dset, set the name of the global attribute
- * to history, and define its attribute type and outflag.
- * *acm 11/06 v601 - new routine ncf_rename_var, for fix of bug 1471
- * *acm 11/06 v601 - in ncf_delete_var_att, renumber the attid for the remaining attributes.
- * *acm* 12/06 v602 - new attribute assigned to coordinate vars on input, orig_file_axname
- * *acm* 2/07 V602 - Fix bug 1492, changing attributes of coordinate variables; use pseudo-dataset
- * of user-defined axes to keep track of attributes.
- * *acm* 10 07 - Patches for memory-leak fixes from Remiz Ziemlinski
- * *acm* 10/07 - Further fixes by Remik, initializing att.vals, att.string to NULL,
- * set var.ndims = 0 in ncf_init_other_dset
- * *acm* 3/08 - Fix bug 1534; needed to initialize attribute output flag for
- * the bounds attribute on coordinate axes.
- * *acm* 1/09 - If adding a new global attribute, also increment ngatts.
- * *acm* 1/09 - Fix bug 1620; In ncf_add_var, which is used when defining user
- * variables, and also for reading in EZ datasets, I had the default
- * attribute type for missing_value attribute set to NC_DOUBLE. There's no
- * reason for this as these variables are always single precision.
- * *acm* 5/09 - Fix bug 1664. For user variables, varid matches the uvar from Ferret.
- * therefore it may be larger than nc_ptr->nvars
- * *acm* 3/11 - Fix bug 1825. Routine ncf_get_var_seq no longer called
- * *acm* 1/12 - Ferret 6.8 ifdef double_p for double-precision ferret, see the
- * definition of macro DFTYPE in ferretmacros.h.
- * *acm* 5/12 V6.8 - Additions for creating aggregate datasets
- * *acm* 8/13 Fix bug 2089. Mark the scale_factor and add_offset attributes
- * to-be-output when writing variables.
- * *acm* 8/13 Fix bug 2091. If a string variable has the same name as a dimension,
- * DO NOT mark it as an axis.
- */
+*
+* Ansley Manke
+* Ferret V600 April 26, 2005
+* V5600 *acm* fix declarations of fillc and my_len as required by solaris compiler
+*
+* This file contains all the utility functions which Ferret
+* needs in order to do attribute handling. Based on code for EF's.
+* calls are made to nc_ routines from netcdf library.
+*
+*
+* *acm 9/06 v600 - add stdlib.h wherever there is stdio.h for altix build
+* *acm 10/06 v601 - Fix by Remik for bug 1455, altix. For string attributes,
+* allocate one more than the att.len, presumably for the null
+* terminator for the string. Also double check the string length
+* that is returned from the call to nc_inq_att, and make sure
+* we allocate the correct amount of memory for the string.
+*
+* *acm 11/06 v601 - ncf_delete_var_att didnt reset the attribute id's. Fix this.
+*
+* *acm 11/06 v601 - new routine ncf_add_var_num_att_dp
+* *acm 11/06 v601 - new routine ncf_repl_var_att_dp
+* *acm 11/06 v601 - in ncf_init_other_dset, set the name of the global attribute
+* to history, and define its attribute type and outflag.
+* *acm 11/06 v601 - new routine ncf_rename_var, for fix of bug 1471
+* *acm 11/06 v601 - in ncf_delete_var_att, renumber the attid for the remaining attributes.
+* *acm* 12/06 v602 - new attribute assigned to coordinate vars on input, orig_file_axname
+* *acm* 2/07 V602 - Fix bug 1492, changing attributes of coordinate variables; use pseudo-dataset
+* of user-defined axes to keep track of attributes.
+* *acm* 10 07 - Patches for memory-leak fixes from Remiz Ziemlinski
+* *acm* 10/07 - Further fixes by Remik, initializing att.vals, att.string to NULL,
+* set var.ndims = 0 in ncf_init_other_dset
+* *acm* 3/08 - Fix bug 1534; needed to initialize attribute output flag for
+* the bounds attribute on coordinate axes.
+* *acm* 1/09 - If adding a new global attribute, also increment ngatts.
+* *acm* 1/09 - Fix bug 1620; In ncf_add_var, which is used when defining user
+* variables, and also for reading in EZ datasets, I had the default
+* attribute type for missing_value attribute set to NC_DOUBLE. There's no
+* reason for this as these variables are always single precision.
+* *acm* 5/09 - Fix bug 1664. For user variables, varid matches the uvar from Ferret.
+* therefore it may be larger than nc_ptr->nvars
+* *acm* 3/11 - Fix bug 1825. Routine ncf_get_var_seq no longer called
+* *acm* 1/12 - Ferret 6.8 ifdef double_p for double-precision ferret, see the
+* definition of macro DFTYPE in ferretmacros.h.
+* *acm* 5/12 V6.8 - Additions for creating aggregate datasets
+* *acm* 8/13 Fix bug 2089. Mark the scale_factor and add_offset attributes
+* to-be-output when writing variables.
+* *acm* 8/13 Fix bug 2091. If a string variable has the same name as a dimension,
+* DO NOT mark it as an axis.
+* *acm* v694 1/15 For ticket 2227: if a dimension from a nc file is not also a
+* 1-D coordinate var, don't write the axis Ferret creates. Do report
+* in dimnames outputs the dimension names as used by Ferret e.g. a
+* renamed axis TIME -> TIME1
+*/
#include <Python.h> /* make sure Python.h is first */
#include "ferretmacros.h"
@@ -162,6 +166,8 @@ int FORTRAN(ncf_add_var_num_att_dp)( int *, int *, char *, int *, int *, int *,
int FORTRAN(ncf_add_var_str_att)( int *, int *, char *, int *, int *, int *, char *);
int FORTRAN(ncf_rename_var)( int *, int *, char *);
+int FORTRAN(ncf_rename_dim)( int *, int *, char *);
+
int FORTRAN(ncf_repl_var_att)( int *, int *, char *, int *, int *, DFTYPE *, char *);
int FORTRAN(ncf_repl_var_att_dp)( int *, int *, char *, int *, int *, double *, char *);
int FORTRAN(ncf_set_att_flag)( int *, int *, char *, int *);
@@ -1150,6 +1156,8 @@ int FORTRAN(ncf_add_dset)(int *ncid, int *setnum, char name[], char path[])
if (nc_status != NC_NOERR) return nc_status;
strcpy (nc.dims[i].name, fdims.name);
nc.dims[i].size = fdims.size;
+/* strcpy (nc.dimname[i], fdims.name);
+ nc.dimsize = fdims.size; */
}
}
@@ -1273,7 +1281,8 @@ int FORTRAN(ncf_add_dset)(int *ncid, int *setnum, char name[], char path[])
if (var.type == NC_CHAR) var.outtype = NC_CHAR;
var.outtype = var.type; /* ?? */
- /* is this a coordinate variable? If not a string, set the flag.
+ /* Is this a coordinate variable? If not a string, set the flag.
+ /* A multi-dimensional variable that shares a dimension name is not a coord. var.
*/
if (nc.ndims > 0) {
var.is_axis = FALSE;
@@ -1282,6 +1291,7 @@ int FORTRAN(ncf_add_dset)(int *ncid, int *setnum, char name[], char path[])
while (i < nc.ndims && var.is_axis == FALSE) {
if (strcasecmp(var.name, nc.dims[i].name) == 0) var.is_axis = TRUE;
if (var.type == NC_CHAR) var.is_axis = FALSE;
+ if (var.ndims > 1) var.is_axis = FALSE;
i = i + 1;
}
}
@@ -2403,6 +2413,36 @@ int FORTRAN(ncf_rename_var)( int *dset, int *varid, char newvarname[])
return return_val;
}
+
+/* ----
+ * Find a dimension in the datset using dataset ID
+ * Replace the dimension name with the new one passed in.
+ */
+
+int FORTRAN(ncf_rename_dim)( int *dset, int *dimid, char newdimname[])
+
+{
+ ncdset *nc_ptr=NULL;
+ int status=LIST_OK;
+ int return_val;
+
+ /*
+ * Get the dataset pointer.
+ */
+ return_val = ATOM_NOT_FOUND;
+ if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL ) return return_val;
+
+ /* Insert the new name. */
+
+ strcpy (nc_ptr->dims[*dimid-1].name, newdimname);
+
+/* just return for now. */
+ return_val = FERR_OK;
+ return return_val;
+}
+
+
+
/* ----
* Find an attribute based on its variable ID and dataset ID
* Replace the type, length, and/or value(s).
diff --git a/fmt/src/SOURCE_FILES b/fmt/src/SOURCE_FILES
index 641aa8e..198892e 100644
--- a/fmt/src/SOURCE_FILES
+++ b/fmt/src/SOURCE_FILES
@@ -1,4 +1,5 @@
SRCS_F = \
+cd_1d_line_from_2d.F\
cd_abort_grids.F\
cd_add_coord_var.F\
cd_add_agg_var_info.F\
@@ -27,6 +28,7 @@ cd_get_attval.F\
cd_get_attvalc.F\
cd_get_attval_l.F\
cd_get_bounds.F\
+cd_get_calendar_name.F\
cd_get_chunk_cache.F\
cd_get_dim_id.F\
cd_get_ds_dims.F\
@@ -52,6 +54,8 @@ cd_isit_another_dset.F\
cd_isit_epic.F\
cd_isit_recdim.F\
cd_load_dset_attrs.F\
+cd_make_fmrc_axes.F\
+cd_make_fmrc_fcal_axis.F\
cd_make_var.F\
cd_ncclose.F\
cd_ncopen.F\
@@ -73,9 +77,11 @@ cd_rd_ymd_arr.F\
cd_read.F\
cd_read_remote.F\
cd_rec_synch.F\
+cd_rename_dim.F\
cd_rename_var.F\
cd_replace_attr.F\
cd_replace_attr_dp.F\
+cd_scan_aux_coords.F\
cd_scan_vars.F\
cd_set_att_axdir.F\
cd_set_att_flag.F\
diff --git a/fmt/src/tm_make_basic_axis.F b/fmt/src/cd_1d_line_from_2d.F
similarity index 52%
copy from fmt/src/tm_make_basic_axis.F
copy to fmt/src/cd_1d_line_from_2d.F
index d077ec2..2544d79 100644
--- a/fmt/src/tm_make_basic_axis.F
+++ b/fmt/src/cd_1d_line_from_2d.F
@@ -1,13 +1,11 @@
- SUBROUTINE TM_MAKE_BASIC_AXIS( name, start,
- . delta, npts, iaxis, status )
+ SUBROUTINE CD_1D_LINE_FROM_2D (dset, cdfid, varid, vname,
+ . axcalt, axlagf, status)
-*
-*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
-*
+*.
* Access and use of this software shall impose the following
* obligations and understandings on the user. The user is granted the
* right, without any fee or cost, to use, copy, modify, alter, enhance
@@ -35,69 +33,74 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-*
-* Create a very basic 1 to n axis with no frills
-* Programmer Steve Hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+* this routine gets the 2D FMRC time array into memory and calls
+* CD_MAKE_FMRC_AXES to synthesize the T calendar time and F lead time
+* axes that are needed to support FMRC visualization and analysis
-* revision 0.0 - 2/92
-* V510 *sh* 3/00 - convert to dynamic grids and axes for netCDF files
-* V550 *sh* 11/02 - initialize line_modulo_len (just for good house keeping)
-* V581 *acm* 6/05 - For fix to bug 1271, add flag line_shift_origin
-* V63 *acm* 9/09 - Fix bug 1686: set line_name_orig
-
-* argument definitions:
-* name - name for axis
-* start - starting value
-* delta - delta value
-* npts - number of points
-* iaxis - returned axis pointer in TMAP common
-* status - return status
+* V695+ *acm* and *sh*
* include files
+ include 'netcdf.inc'
include 'tmap_errors.parm'
+#include "gt_lib.parm"
include 'tmap_dims.parm'
#include "tmap_dset.parm"
-#include "gt_lib.parm"
- include 'xdset_info.cmn_text'
- external xdset_info_data
+
include 'xtm_grid.cmn_text'
external xgt_grid_data
-* argument declarations
- INTEGER npts, iaxis, status
- REAL*8 start, delta
- CHARACTER*(*) name
-
-* local variable declarations:
- INTEGER STR_UPCASE,
- . istat
-
-* allocate a temporary slot for the axis
- CALL TM_ALLO_TMP_LINE(iaxis, status)
- IF (status .NE. merr_ok) GOTO 5900
-
-* build axis
- istat = STR_UPCASE( line_name(iaxis), name )
- line_name_orig(iaxis) = name
- line_dim( iaxis) = npts
- line_start(iaxis) = start
- line_delta(iaxis) = delta
- line_regular(iaxis) = .TRUE.
- line_units(iaxis) = ' '
- line_unit_code(iaxis) = 0
- line_modulo(iaxis) = .FALSE.
- line_modulo_len(iaxis)= 0.0D0
- line_t0(iaxis) = char_init20
- line_shift_origin(iaxis) = .FALSE.
- line_tunit(iaxis) = real4_init
- line_direction(iaxis) = 'NA'
+* calling argument declarations
+ INTEGER dset, cdfid, varid, axcalt, axlagf, status
+ CHARACTER*(*) vname
+
+* internal variable declarations
+ LOGICAL coordvar, has_edges
+ INTEGER cdfstat, i, outflag, nvatts, vartype,
+ . start(nferdims),count(nferdims), zero(nferdims),
+ . npts, nT, nF, npts_cdf, vdims(8), nvdim
+ CHARACTER TM_STRING*13, buff*256
+
+
+* start out by getting an overview of the 2D time variable
+ CALL CD_GET_VAR_INFO (dset, varid, vname, vartype,
+ . nvdim, vdims, nvatts, coordvar, outflag, status)
+
+* Read the 2d time coordinate array from the netCDF dataset
+* Save it at the start of available line storage memory
+
+ npts = 1
+ DO i = 1, nvdim
+ CALL CD_GET_DS_DIMS (dset, vdims(i), buff, npts_cdf, status)
+ start(i) = 1
+ count(i) = npts_cdf
+ zero(i) = 0
+ npts = npts* npts_cdf
+ ENDDO
+ nT = count(1) ! number of time steps per forecast
+ nF = count(2) ! number of forecasts in collection
+
+ IF ((next_line_mem_pos+ npts+1).GT.maxlinestore) GOTO 5300
+ CALL CD_READ_SUB(cdfid, varid, nvdim, start, count, zero, zero,
+ . line_mem(next_line_mem_pos), 0, 0, cdfstat)
+ IF ( cdfstat .NE. NF_NOERR ) GOTO 5000
+
+* make the axes needed by the FMRC dataset
+ has_edges = .FALSE.
+ CALL CD_MAKE_FMRC_AXES (dset, has_edges, varid, vname, vartype,
+ . npts, nT, nF, axcalt, axlagf, status)
+ IF (status .NE. merr_ok) GOTO 5000
* successful completion
- status = merr_ok
+ status = merr_ok
+ RETURN
- 5900 RETURN
+* error exit
+ 5000 RETURN
+ 5300 CALL TM_ERRMSG (merr_linstorlim, status, 'CD_1D_LINE_FROM_2D',
+ . no_descfile, no_stepfile,
+ . 'MAX='//TM_STRING(DBLE(maxlinestore)),
+ . no_errstring, *5000)
END
diff --git a/fmt/src/cd_add_var.F b/fmt/src/cd_add_var.F
index 7ed9cc1..1e4fc25 100644
--- a/fmt/src/cd_add_var.F
+++ b/fmt/src/cd_add_var.F
@@ -34,8 +34,9 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* Add a variable to the linked list structure. dset = -1 will be the
-* pseudo-dset containing attribute info for user variables.
+* Add a variable to the linked list structure. dset = -1 (pdset_uvars
+* in ferret.parm) will be the pseudo-dset containing attribute info for
+* user variables.
* Programmer Ansley Manke
* NOAA/PMEL, Seattle, WA - TMAP
diff --git a/fmt/src/cd_clean_grids.F b/fmt/src/cd_clean_grids.F
index 6768434..40920dd 100644
--- a/fmt/src/cd_clean_grids.F
+++ b/fmt/src/cd_clean_grids.F
@@ -65,6 +65,8 @@
* V65 *acm* 1/10 Change all netcdf2-style calls and parameter names to
* netcdf3-style calls, which are also consistent with netcdf4.
* V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
+* v694 1/15 *acm* for ticket 2227: if a dimension from a nc file is not also a
+* 1-D coordinate var, don't write the axis Ferret creates
* argument definitions:
* dset - pointer to TMAP data set
@@ -95,16 +97,18 @@
* local variable declarations:
LOGICAL TM_SAME_GRID_DEF,
- . dup_name, dup_guts
+ . dup_name, dup_guts, coordvar
INTEGER TM_GET_LINEMATCH, TM_GET_LINENUM, TM_GET_GRIDNUM,
. TM_LENSTR1, STR_SAME,
. igrid, iaxis, count, idim, i_dup, ivar,
. npts, istat, reused(max_lines:line_ceiling),
- . varid, attid, attype, attlen, attoutflag, len
+ . varid, attid, attype, attlen, attoutflag, len,
+ . vartype, nvdims, nvatts, outflag, dimid
* upped vname to 64 - also removed the *24 from the CHARACTER
* upped vname to 128
CHARACTER vname*128, buff*128, attname*128
- REAL dummy
+ REAL dummy, vdims(8)
+
***** AXES ******
* check for duplicate name / guts of axes
@@ -195,11 +199,17 @@
* attribute of the coordinate variable in the linked-list attribute structure,
* and change the axis name itself.
+*** Here if the name is a dimension not a coordinate variable in the original
+*** dataset, we want to do a CD_RENAME_DIM, so that we rename in the dset structure
+*** the dimension but not (for example) the 2-D variable with the same name.
+
301 iaxis = 0 ! to get start of linked list
400 CALL TM_NEXT_TMP_LINE( iaxis, *402)
vname = line_name(iaxis)
len = TM_LENSTR1(vname)
CALL CD_GET_VAR_ID (dset, vname, varid, status)
+ CALL CD_GET_VAR_INFO (dset, varid, vname, vartype,
+ . nvdims, vdims, nvatts, coordvar, outflag, status)
IF ( reused(iaxis) .NE. unspecified_int4 ) THEN
line_name(iaxis) = char_init16 ! destroy new duplicate defn
@@ -209,7 +219,10 @@
IF (status .EQ. merr_ok .AND.
. STR_SAME(vname, buff) .NE. 0) THEN
- CALL CD_RENAME_VAR (dset, varid, buff, status)
+
+ CALL CD_GET_DIM_ID (dset, vname, dimid)
+ CALL CD_RENAME_DIM (dset, dimid, buff, status)
+ IF (nvdims.EQ.1) CALL CD_RENAME_VAR (dset, varid, buff, status)
* Replace or add the orig_file_axname attribute
attname = 'orig_file_axname'
@@ -232,7 +245,10 @@
IF (status .EQ. merr_ok .AND.
. STR_SAME(vname, buff) .NE. 0) THEN
- CALL CD_RENAME_VAR (dset, varid, buff, status)
+
+ CALL CD_GET_DIM_ID (dset, vname, dimid)
+ CALL CD_RENAME_DIM (dset, dimid, buff, status)
+ IF (nvdims.EQ.1) CALL CD_RENAME_VAR (dset, varid, buff, status)
* Replace or add the orig_file_axname attribute
attname = 'orig_file_axname'
diff --git a/fmt/src/cd_dim_only.F b/fmt/src/cd_dim_only.F
old mode 100755
new mode 100644
diff --git a/fmt/src/cd_get_1_axis.F b/fmt/src/cd_get_1_axis.F
index 9402482..cd2dec5 100644
--- a/fmt/src/cd_get_1_axis.F
+++ b/fmt/src/cd_get_1_axis.F
@@ -178,9 +178,11 @@
* V685 *acm* 11/13 REALLY make the check for axis length in single precision when the
* coordinate variable came in as a single-precision variable.
* V6.87 4/14 *acm* ticket 2146: if invalid bounds, make the bounds a dependent variale.
-* V691 4/41 *acm* Ticket 2170: bub with invalid bounds when point-spacing=true attribute.
+* V691 4/15 *acm* Ticket 2170: bub with invalid bounds when point-spacing=true attribute.
* Ticket 2172: If the axis is actually too long, reset the modulo flags
* so it is treated as not modulo.
+* V694 5/15 *acm* Match precision for bounds checks (as is done for coords).
+* V695+ 5/15 *sh* allow "units='none'" as ignorable units string (for Andrew)
* argument definitions:
* cdfid - netCDF id number for already opened CDF file (to go away with new attr. hanling)
@@ -232,17 +234,17 @@
. got_mod, mod_tf, setmodfalse, ok_cal, ok,
. got_edges, got_bnds, coordvar, its_irregular,
. do_scale, do_offset, scale_is_dp,
- . has_repeated, misordered
+ . has_repeated, misordered, is_double
INTEGER TM_UNIT_ID, TM_LENSTR1,TM_GET_CALENDAR_ID,
- . STR_CASE_BLIND_COMPARE, STR_UPCASE,
+ . STR_CASE_BLIND_COMPARE, STR_UPCASE, STR_SAME,
. soft_err,
. ipt1, ipte, vartype, vback, npts, vlen, cdfstat, istat,
. nvdims, vdims(8), nvatts, i, units, npts_cdf, elen,
. edgid, spacing_atlen, epic_t2var, since_T0,
- . cal_id, year, month, day, hour, minute, second, slen, nc,
+ . cal_id, year, month, day, hour, minute, second, slen,
. blen, bndid, startpts(2), numpts(2), next_line_storage,
- . d1s, d1e, d2s, d2e, len_cal, attoutflag, maxlen,
+ . d1s, d1e, d2s, d2e, attoutflag, maxlen,
. all_outflag, dir, attlen, itop, irev, attype, iatt, ibx1,
. i1, i2, i3, i0
@@ -256,7 +258,6 @@
. spacing_attr*14, bname*128
CHARACTER*13 TM_STRING
CHARACTER*1 axis_dir
- CHARACTER*50 allcals
CHARACTER*3 dbuf
CHARACTER*2 dcode
@@ -411,6 +412,14 @@
. do_warn, vname(:vlen), maxlen,
. attlen, attoutflag, ename, val)
+* Cannot have both "edges" and "bounds" atrtributes
+ IF ( got_bnds .AND. got_edges )THEN
+ CALL TM_NOTE(
+ . 'Axis has both edges and bounds attributes: '//
+ . vname(:vlen)//' - edges definition ignored', tt )
+ GOTO 500
+ ENDIF
+
* We will be checking bounds or edges. Read the coords too
* in case we are going to mark the axis as irregular.
@@ -442,35 +451,14 @@
. vname(:vlen), maxlen, attlen, attoutflag,
. buff, val)
IF (got_it) then
- istat = STR_UPCASE (buff, buff)
-
- IF (buff(1:3) .EQ. '360') buff = '360_DAY'
- IF (buff .EQ. 'STANDARD') buff = 'GREGORIAN'
- IF (buff .EQ. 'PROLEPTIC_GREGORIAN') buff = 'GREGORIAN'
- IF (buff(1:6) .EQ. 'COMMON') buff = 'NOLEAP'
- IF (buff(1:3) .EQ. '365') buff = 'NOLEAP'
- IF (buff(1:3) .EQ. '366') buff = 'ALL_LEAP'
-
- ok_cal = .FALSE.
- nc = 1
- allcals = ' '
-
- DO 100 i = 1, mxcals
- 111 FORMAT (a9,' ')
- slen = TM_LENSTR1( allowed_calendars(i)(1:9) )
- write (allcals(nc:nc+9), 111) allowed_calendars(i)
- nc = nc + 10
-
- IF (buff(1:3) .EQ. allowed_calendars(i)(1:3) ) THEN
- ok_cal = .TRUE.
- line_cal_name(iaxis) = allowed_calendars(i)
- ENDIF
- 100 CONTINUE
- IF (.NOT. ok_cal) THEN
+ CALL CD_GET_CALENDAR_NAME(buff, ok_cal)
+
+ IF (ok_cal) THEN
+ line_cal_name(iaxis) = buff
+ ELSE
slen = TM_LENSTR1(buff)
CALL TM_NOTE('calendar attribute on axis "'//vupcase(:vlen)//
. '" is not recognized: '//buff(1:slen), tt)
- CALL TM_NOTE('Valid calendars are '//allcals, tt)
CALL TM_NOTE(
. 'A dummy axis of subscripts will be used', tt)
GOTO 1000
@@ -484,6 +472,7 @@
got_it = NC_GET_ATTRIB( dset, ivar, 'units', do_warn,
. vname(:vlen), maxlen, attlen, attoutflag,
. buff, val)
+ IF (STR_SAME (buff(1:4), 'none') .EQ. 0) buff = ' ' ! units = 'none'
since_T0 = MAX( INDEX(buff,'since'), INDEX(buff,'SINCE') )
yyyymmdd_time = buff(1:15) .EQ. 'yyyymmddhhmmss'
@@ -674,6 +663,8 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
IF (line_direction(iaxis).EQ."TI" .OR.
. line_direction(iaxis).EQ."TT" ) line_regular(iaxis) = .TRUE.
got_bnds = .FALSE.
+ got_edges = .FALSE.
+ its_irregular = .FALSE.
ENDIF
* get the axis coordinates - none, regular, or irregular
@@ -927,7 +918,10 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
* See if double-precision coordinates are regularly-spaced
epsilon = 0.
depsilon = 0.
- IF (vartype .EQ. ncdouble) THEN
+
+ is_double = vartype .EQ. ncdouble
+
+ IF (is_double) THEN
dlast_coord = line_mem(ipte)
dfirs_coord = line_mem(ipt1)
dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
@@ -1039,20 +1033,6 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
* the attribute "edges=name" may point to a list of box boundaries
IF ( .NOT.got_edges ) GOTO 500
- IF ( line_regular(iaxis) ) THEN
- CALL TM_NOTE(
- . 'Evenly spaced axis has edges definition: '//
- . vname(:vlen)//' - ignored', tt )
- GOTO 500
- ENDIF
-
-* Cannot have both "edges" and "bounds" atrtributes
- IF ( got_bnds )THEN
- CALL TM_NOTE(
- . 'Axis has both edges and bounds attributes: '//
- . vname(:vlen)//' - edges definition ignored', tt )
- GOTO 500
- ENDIF
CALL TM_CHECK_EDGES_ATTRIB (cdfid, iaxis, vname, vlen, ename,
. edgid, status)
@@ -1073,7 +1053,7 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
* if the coordinates were reversed then the box edges must be, too
- IF ( reversed(iaxis) .AND. npts .GT. 1) THEN
+ IF ( reversed(iaxis) .AND. npts .GT. 1) THEN
itop = (ipt1+npts)+npts/2-1
irev = ipt1 + 2*npts
DO 450 i=ipt1+npts,itop
@@ -1083,17 +1063,42 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
irev = irev - 1
450 CONTINUE
- ENDIF
-
-* check to see that each data point is contained inside its box
+ ENDIF
+
IF (.NOT.TM_CHECK_BOX_LOC(iaxis)) THEN
- CALL TM_NOTE('Error in Edges "'//ename(:elen)//
+ CALL TM_NOTE('Error in Edges "'//ename(:elen)//
. '"or edges do not enclose point on axis '//
. vname(:vlen), tt)
- CALL TM_NOTE('Substituting coordinate midpoints', tt)
- CALL TM_IRREGAX_MID( next_line_mem_pos,
+ CALL TM_NOTE('Substituting coordinate midpoints', tt)
+ CALL TM_IRREGAX_MID( next_line_mem_pos,
. line_dim (iaxis) )
- bad_bndsid = edgid
+ bad_bndsid = edgid
+ ELSE
+
+* check to see that each data point is contained inside its box.
+* See if they're centered after all.
+
+ IF (TM_CHECK_BNDS_CENTERED(iaxis, is_double)) THEN
+* It's actually regular - save it as such
+ IF (.NOT. line_regular(iaxis)) THEN
+ line_regular(iaxis) = .TRUE.
+ line_start (iaxis) = line_mem(ipt1)
+ IF (npts .GT. 1) THEN
+ line_delta (iaxis) =
+ . (line_mem(ipte)-line_mem(ipt1))/DBLE(npts-1)
+ ELSE
+ ibx1 = ipt1 + npts
+ line_delta(iaxis) = line_mem(ibx1+1)-line_mem(ibx1)
+ ENDIF
+ line_subsc1 (iaxis) = unspecified_int4
+ last_coord = line_start(iaxis) +
+ . DBLE(npts-1)*line_delta(iaxis)
+ firs_coord = line_start(iaxis)
+ ENDIF
+ ELSE
+ line_regular(iaxis) = .FALSE.
+ ENDIF
+
ENDIF
****************************************************************************
@@ -1159,7 +1164,7 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
* and if the bounds are contiguous, warning user if not. Change
* the storage from N*2 bounds to N+1 edges.
- IF (.NOT. TM_CHECK_BNDS(iaxis, 2*npts, vname) ) THEN
+ IF (.NOT. TM_CHECK_BNDS(iaxis, 2*npts, is_double, vname) ) THEN
CALL TM_NOTE('Error in bounds "'//bname(:blen)//
. '" or bounds do not enclose point on axis '//
@@ -1176,7 +1181,7 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
* If there is one point, use upper and lower bound as given in the file
* to determine line_delta.
- IF (TM_CHECK_BNDS_CENTERED(iaxis)) THEN
+ IF (TM_CHECK_BNDS_CENTERED(iaxis, is_double)) THEN
* It's actually regular - save it as such
IF (.NOT. line_regular(iaxis)) THEN
line_regular(iaxis) = .TRUE.
@@ -1279,7 +1284,7 @@ c secsperyear = cals_yeardays(cal_id)* 24*60*60
IF (line_modulo(iaxis).AND.line_modulo_len(iaxis).NE.0.D0) THEN
IF (line_modulo_len(iaxis) .LT. axwwlen) THEN
c line_modulo_len(iaxis) = 0.0D0
- IF (vartype .EQ. ncdouble) THEN
+ IF (is_double) THEN
ok = TM_DFPEQ(axwwlen, line_modulo_len(iaxis))
ELSE
lm_len = line_modulo_len(iaxis)
diff --git a/fmt/src/cd_get_1_dep_var.F b/fmt/src/cd_get_1_dep_var.F
index 87c23fe..5e5d4c8 100644
--- a/fmt/src/cd_get_1_dep_var.F
+++ b/fmt/src/cd_get_1_dep_var.F
@@ -64,6 +64,9 @@
* v67 2/11 *acm* Do the notes about no missing/fillvalue for each variable,
* when in diagnostic mode. So move that back to cd_get_1_dep_var.
* V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
+* V6931 12/14 *acm* Fix ticket 2223: switch_nan needs to use the Ferret
+* missing-value flag.
+* V695 4/15 *sh* added support for CF auxiliary coordinate variables
* argument definitions:
* dset - pointer to TMAP data set
@@ -155,6 +158,7 @@
cd_scale_factor(ivtm) = 1.0
cd_add_offset(ivtm) = 0.0
cd_scaled(ivtm) = .FALSE.
+ ds_its_aux_coord(ivtm) = .FALSE.
DO 160 idim = 1, nferdims
ds_grid_start(idim,ivtm)= unspecified_int4
ds_grid_end (idim,ivtm)= unspecified_int4
@@ -313,7 +317,7 @@ c ENDIF
* if neither missing flag nor _FillValue was defined, use NaN.
IF ( .NOT.got_missing .AND. .NOT.got_bad) THEN
CALL SET_NAN (ds_missing_flag(ivtm))
- CALL SWITCH_NAN(ds_bad_flag(ivtm), ds_missing_flag(ivtm) )
+ CALL SWITCH_NAN(ds_bad_flag(ivtm), ds_missing_flag(ivtm), bad_r4)
IF (do_warn .AND. tmap_diag_on) CALL WARN(
.'No missing_value or _FillValue attribute. Using NaN for variable: '
. //vname(:vlen))
@@ -321,7 +325,7 @@ c ENDIF
ENDIF
* *kob* call SWITCH_NAN to make sure if NaN exisits, its in ds_missing_flag
- CALL SWITCH_NAN(ds_bad_flag(ivtm), ds_missing_flag(ivtm))
+ CALL SWITCH_NAN(ds_bad_flag(ivtm), ds_missing_flag(ivtm), bad_r4)
* see what special FERRET attributes can be read: axis ordering and
* sub-hyperslab bounds
diff --git a/fmt/src/tm_deallo_dyn_grid.F b/fmt/src/cd_get_calendar_name.F
old mode 100644
new mode 100755
similarity index 59%
copy from fmt/src/tm_deallo_dyn_grid.F
copy to fmt/src/cd_get_calendar_name.F
index 69a152f..6af224c
--- a/fmt/src/tm_deallo_dyn_grid.F
+++ b/fmt/src/cd_get_calendar_name.F
@@ -1,12 +1,10 @@
- SUBROUTINE TM_deallo_dyn_grid( grid )
+ SUBROUTINE CD_GET_CALENDAR_NAME (calname, ok_cal)
-*
-*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
-*
+*.
* Access and use of this software shall impose the following
* obligations and understandings on the user. The user is granted the
* right, without any fee or cost, to use, copy, modify, alter, enhance
@@ -35,46 +33,54 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* Deallocate a grid from the dynamic grid area (above max_grids)
+* Given a string with a calendar name, match the first 3 characters
+* with the list of allowed names or with the words STANDARD or
+* PROLEPTIC_GREGORIAN and return the standard name.
-* Steve Hankin NOAA/PMEL/TMAP
+* Include files
+ include 'calendar.decl'
+ include 'calendar.cmn'
+ include 'errmsg.parm'
+ include 'xio.cmn_text'
-* 9/13/95 for Ferret version 4.2
-* V510 *sh* 4/00 - remove actual deallocation of grid to tm_deallo_dyn_grid_sub
-* - this routine can now be called for static grids, too
-* - deallocate lines only for dynamic grids, since static grids
-* do not get deleted when their use count falls to zero
-* V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
+* Argument declarations
+ LOGICAL ok_cal
+ CHARACTER*(*) calname
-* Include files
- include 'tmap_dims.parm'
-#include "tmap_dset.parm"
-#include "gt_lib.parm"
- include 'tmap_errors.parm'
- include 'xtm_grid.cmn_text'
- include 'xio.cmn_text'
+* Internal variables
+ INTEGER STR_UPCASE, TM_LENSTR1, i, istat, ncal, slen
+ CHARACTER*50 allcals
-* Argument definitions
- INTEGER grid
+ INTEGER tt ! nice short name
+ EQUIVALENCE (tt,lunit_errors)
-* Local definitions
- INTEGER idim
+ istat = STR_UPCASE (calname, calname)
-* deallocate the grid, itself
- CALL TM_DEALLO_DYN_GRID_SUB(grid)
+ IF (calname(1:3) .EQ. '360') calname = '360_DAY'
+ IF (calname .EQ. 'STANDARD') calname = 'GREGORIAN'
+ IF (calname .EQ. 'PROLEPTIC_GREGORIAN') calname = 'GREGORIAN'
+ IF (calname(1:6) .EQ. 'COMMON') calname = 'NOLEAP'
+ IF (calname(1:3) .EQ. '365') calname = 'NOLEAP'
+ IF (calname(1:3) .EQ. '366') calname = 'ALL_LEAP'
-* if the grid was actually removed, then also deallocate the axes that it used
- IF ( grid .GT. max_grids
- . .AND. grid_use_cnt(grid) .EQ. 0 ) THEN
+ ok_cal = .FALSE.
+ ncal = 1
+ allcals = ' '
-*release claim to any dynamic lines this may use
- DO 100 idim = 1, nferdims
- CALL TM_DEALLO_DYN_LINE( grid_line(idim,grid))
- 100 CONTINUE
+ DO 100 i = 1, mxcals
+ 111 FORMAT (A9,' ')
+ slen = TM_LENSTR1( allowed_calendars(i)(1:9) )
+ write (allcals(ncal:ncal+9), 111) allowed_calendars(i)
+ ncal = ncal + 10
- ENDIF
+ IF (calname(1:3) .EQ. allowed_calendars(i)(1:3) ) THEN
+ ok_cal = .TRUE.
+ calname = allowed_calendars(i)
+ GOTO 120
+ ENDIF
+ 100 CONTINUE
+ CALL TM_NOTE('Valid calendars are '//allcals, tt)
-* successful completion
+ 120 CONTINUE
RETURN
-
END
diff --git a/fmt/src/cd_get_generic_bounds.F b/fmt/src/cd_get_generic_bounds.F
index 1865060..ccd70c7 100644
--- a/fmt/src/cd_get_generic_bounds.F
+++ b/fmt/src/cd_get_generic_bounds.F
@@ -58,6 +58,8 @@
* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
* V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
* V686 4/13 *acm* Fix ticket 2064: use single-precision comparisons
+* v694 1/15 *acm* for ticket 2227: if a dimension from a nc file is not also a
+* 1-D coordinate var, don't write the axis Ferret creates
* argument definitions:
* cdfid - id of currently open CDF file
@@ -144,6 +146,14 @@
#endif
alen = TM_LENSTR1( axnam )
+* If the dimension is not also a 1-D coord var, we are not writing coords,
+* so dont check them.
+ IF (line_dim_only(grid_line(idim,grid)) ) THEN
+ cdflo(idim) = 1
+ cdfhi(idim) = npts
+ GOTO 100
+ ENDIF
+
* ... time axis as a record axis will be synchronized in another routine
IF ( idim .EQ. tmrecdim ) THEN
cdflo(idim) = 1
diff --git a/fmt/src/cd_get_line_direction.F b/fmt/src/cd_get_line_direction.F
index 894a710..395b10a 100644
--- a/fmt/src/cd_get_line_direction.F
+++ b/fmt/src/cd_get_line_direction.F
@@ -38,6 +38,8 @@
* V683 ACM 9/2012
*
* V692 ACM 7/2014 A cf_role attribute indicates the E direction.
+* V694 ACM 2/2015 Ensemble axis may have a standard-name attribute "realization"
+* V694 ACM 4/2015 Fix ticket 2260: set X axis when standard_name is "longitude"
*
* include files:
@@ -397,6 +399,7 @@ c . .OR. TM_HAS_STRING(linunits, 'degreesS') ! But this matches all degree
* Basic standard names
* Look for time, longitude, latitude, depth and height names.
* Forecast time axes have a standard-name attribute "forecast_reference_time"
+* Ensemble axis may have a standard-name attribute "realization"
maxlen = bufflen
got_it = NC_GET_ATTRIB( dset, ivar, 'standard_name', do_warn,
@@ -409,7 +412,7 @@ c . .OR. TM_HAS_STRING(linunits, 'degreesS') ! But this matches all degree
line_direction(iaxis) = 'TI'
ENDIF
IF (STR_CASE_BLIND_COMPARE(
- . 'longitude',buff(:0)) .EQ.str_eq .OR.
+ . 'longitude',buff(:9)) .EQ.str_eq .OR.
. STR_CASE_BLIND_COMPARE(
. 'grid_longitude',buff(:19)) .EQ.str_eq) THEN
line_direction(iaxis) = 'WE'
@@ -437,6 +440,11 @@ c . .OR. TM_HAS_STRING(linunits, 'degreesS') ! But this matches all degree
. .EQ.str_eq) THEN
line_direction(iaxis) = 'FI'
ENDIF
+ IF (STR_CASE_BLIND_COMPARE(
+ . 'realization',buff(:24))
+ . .EQ.str_eq) THEN
+ line_direction(iaxis) = 'EE'
+ ENDIF
ENDIF
diff --git a/fmt/src/cd_get_var_att_id.F b/fmt/src/cd_get_var_att_id.F
index 4e25e97..2735c0f 100644
--- a/fmt/src/cd_get_var_att_id.F
+++ b/fmt/src/cd_get_var_att_id.F
@@ -117,7 +117,8 @@
status = NCF_GET_VAR_ATTR_ID(dset_num, varid, fhol, attid)
ENDIF
- dset = dset_num ! if changed above, then dset=-1 is correct
+ dset = dset_num ! if changed above, then dset=-1 (which is
+ ! pdset_uvars in ferret.parm) is correct
5000 RETURN
END
diff --git a/fmt/src/cd_get_var_id.F b/fmt/src/cd_get_var_id.F
index 4da2935..1f39df5 100644
--- a/fmt/src/cd_get_var_id.F
+++ b/fmt/src/cd_get_var_id.F
@@ -46,6 +46,7 @@
* an endless loop (isit_coord_var calls cd_get_var_id).
* V611 5/08 *acm* Fix bug 1578, dataset specifier on the variable var[d=1].attr
* V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
+* V6.94 3/15 *acm* Fix ticket 2249: attribute handling for user-defined variables
* include files
#include "gt_lib.parm"
@@ -137,9 +138,17 @@
status = NCF_GET_VAR_ID_CASE(dset_num, varid, fhol)
ELSE
CALL TM_FTOC_STRNG( buff(1:slen), fhol, flen )
- status = NCF_GET_VAR_ID(dset_num, varid, fhol)
+ status = NCF_GET_VAR_ID(dset_num, varid, fhol)
ENDIF
+ IF (status .NE. merr_ok) GOTO 5000
dset = dset_num
+* If the name is just a dot, it is the fake global-attributes variable
+
+ IF (slen.EQ.1 .AND. buff(1:1) .EQ. ".") THEN
+ varid = 0
+ status = merr_ok
+ ENDIF
+
5000 RETURN
END
diff --git a/fmt/src/cd_get_var_info.F b/fmt/src/cd_get_var_info.F
index ab104e5..211222e 100644
--- a/fmt/src/cd_get_var_info.F
+++ b/fmt/src/cd_get_var_info.F
@@ -75,9 +75,6 @@
IF (dset .EQ. unspecified_int4) RETURN
IF (ivar .LT. 0) RETURN
- slen = TM_LENSTR1( vname )
- CALL TM_FTOC_STRNG( vname(1:slen), fhol, flen )
-
dset_num = dset
cdfstat = NCF_INQ_VAR(dset_num, ivar, fhol, slen, vartype,
. nvdims, nvatts, coordvar, outflag, rev)
diff --git a/fmt/src/cd_init_dset.F b/fmt/src/cd_init_dset.F
index bd1b7f1..5f170e0 100644
--- a/fmt/src/cd_init_dset.F
+++ b/fmt/src/cd_init_dset.F
@@ -58,16 +58,16 @@
* V510 *sh* 3/00 - added tregular argument
* 3/00 - convert to using dynamic grids and axes
* 4/03 *acm* - Use STR_SAME to compare strings
-* V600 *acm* 6/05 - Attribute control. Get information from linked-list structure.
+* V600 *acm* 6/05 - Attribute control-get information from linked-list struct
* V601 *acm* 6/06 - Fix bug 1459: when closing a stepfile that may be open,
-* reset the sf_lunit flag for cd_stepfile(dset), not for dset.
+* reset sf_lunit flag for cd_stepfile(dset), not for dset.
* V65 *acm* 1/10 Change all netcdf2-style calls and parameter names to
* netcdf3-style calls, which are also consistent with netcdf4.
* V65 *acm* 1/10 Add #ifdef usingDODSf2cUnderscore, for 32-bit linux build
* linked with OPeNDAP library.
-* V68 *acm* 1/12- added use_strict argument for ticket 1910: micro-adjusting on
-* repeated coordinates in netCDF/OPeDNAP datasets
-
+* V68 *acm* 1/12 added use_strict argument for ticket 1910: micro-adjusting
+* on repeated coordinates in netCDF/OPeDNAP datasets
+* V695+ *sh* 4/15 scan the dataset for auxiliary coordinate connections
* include files
#include "gt_lib.parm"
@@ -141,6 +141,10 @@
CALL CD_CONSISTENT_AXIS_ORIENT (dset, reversed, perm, status)
IF ( status .NE. merr_ok ) GOTO 5900
+* identify and set up auxiliary coordinate linkages
+ CALL CD_SCAN_AUX_COORDS( dset, cdfid, status )
+ IF ( status .NE. merr_ok ) GOTO 5900
+
* set use counts and clean up temporary grids and axes
CALL TM_GARB_COL_GRIDS (dset)
diff --git a/fmt/src/cd_make_fmrc_axes.F b/fmt/src/cd_make_fmrc_axes.F
new file mode 100644
index 0000000..1ae5a9d
--- /dev/null
+++ b/fmt/src/cd_make_fmrc_axes.F
@@ -0,0 +1,369 @@
+ SUBROUTINE CD_MAKE_FMRC_AXES (dset, has_edges, varid, vname, vartype,
+ . npts, nT, nF, axcalt, axlagf, status)
+
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*.
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+
+* this routine synthesizes the T axis calendar time and F axis lead time
+* axes that are needed to support FMRC visualization and analysis
+* it uses the 2d time array stored in line_mem, and optionally an array of
+* time edge positions stored just behind it
+
+* V695+ *acm* and *sh*
+
+* include files
+ include 'netcdf.inc'
+ include 'tmap_errors.parm'
+#include "gt_lib.parm"
+ include 'tmap_dims.parm'
+#include "tmap_dset.parm"
+ include 'xdset_info.cmn_text'
+
+ include 'xtm_grid.cmn_text'
+ external xgt_grid_data
+ include 'xbuild_grids.cmn'
+
+ external xdset_info_data
+ include 'xdset_info.cd_equiv'
+ include 'xio.cmn_text'
+ include 'xunits.cmn_text'
+ external xunits_data
+ include 'calendar.decl'
+ include 'calendar.cmn'
+
+* calling argument declarations
+ LOGICAL has_edges
+ INTEGER dset, varid, vartype, nT, nF, npts, axcalt, axlagf, status
+ CHARACTER*(*) vname
+
+
+* internal variable declarations
+ INTEGER bufflen
+ PARAMETER (bufflen = 256)
+ CHARACTER TM_STRING*13, buff*256, dbuf*3, vupcase*128, pCR*1
+
+ LOGICAL TM_DFPEQ_TOL, TM_FPEQ_EPS, NC_GET_ATTRIB,
+ . coordvar, got_it, do_warn, ok_cal, yyyymmdd_time, got_torg
+ INTEGER STR_UPCASE, TM_LENSTR1, TM_GET_CALENDAR_ID, TM_UNIT_ID,
+ . TM_FIND_LIKE_DYN_LINE,
+ . i, l, n, nvdim, vdims(8), nvatts, npts2d,
+ . npts_cdf, ipt1, ipte, iptn, iptnp1,
+ . outflag, next_line_storage, pre_exist,
+ . start(nferdims),count(nferdims), zero(nferdims),
+ . maxlen, attlen, attoutflag, cal_id, since_T0, slen, vlen,
+ . units, istat, nlag, nleadtimes
+ REAL val, epsilon_23, t0NextForecast
+ REAL*8 depsilon_46, depsilon, dlast_coord, dfirs_coord,
+ . dfirst_delta, ddelta, avg_lag
+
+ INTEGER tt ! nice short name
+ EQUIVALENCE (tt,lunit_errors)
+
+
+!* start out by getting an overview of the 2D time variable
+! CALL CD_GET_VAR_INFO (dset, varid, vname, vartype,
+! . nvdim, vdims, nvatts, coordvar, outflag, status)
+
+* initialize things
+ next_line_storage = next_line_mem_pos
+ do_warn = .FALSE.
+ pCR = CHAR(15)
+ ipt1 = next_line_mem_pos
+ ipte = ipt1 + npts - 1
+ npts2d = npts ! save it
+
+********* FIRST THE 1D CALENDAR TIME AXIS OF THE FMRC *************
+* Define new axis
+
+ CALL TM_ALLO_TMP_LINE (axcalt, status)
+
+
+* Get units, calendar, origin
+
+* Get the calendar name.
+
+ line_cal_name(axcalt) = 'GREGORIAN' ! default
+ maxlen = bufflen
+ got_it = NC_GET_ATTRIB( dset, varid, 'calendar', do_warn,
+ . vname(:vlen), maxlen, attlen, attoutflag,
+ . buff, val)
+ IF (got_it) then
+ CALL CD_GET_CALENDAR_NAME(buff, ok_cal)
+ IF (ok_cal) THEN
+ line_cal_name(axcalt) = buff
+ ELSe
+ slen = TM_LENSTR1(buff)
+ CALL TM_NOTE('calendar attribute for 2D Time variable "'//
+ . vname(:vlen)//'" is not recognized: '//buff(1:slen), tt)
+ CALL TM_NOTE('Assuming Gregorian calendar', tt)
+ ENDIF
+ ENDIF
+ cal_id = TM_GET_CALENDAR_ID (line_cal_name(axcalt))
+
+* optional units for axis (may contain "tunits since T0_date" 2/95)
+ line_units(axcalt) = ' ' ! default
+ maxlen = bufflen
+ got_it = NC_GET_ATTRIB( dset, varid, 'units', do_warn,
+ . vname(:vlen), maxlen, attlen, attoutflag,
+ . buff, val)
+ since_T0 = MAX( INDEX(buff,'since'), INDEX(buff,'SINCE') )
+ yyyymmdd_time = buff(1:15) .EQ. 'yyyymmddhhmmss'
+
+ IF ( since_T0 .GT. 2 ) THEN
+ line_units(axcalt) = buff(:since_T0-1) ! just the "tunits" part
+
+ istat = STR_UPCASE( dbuf, buff(1:3) )
+
+ slen = TM_LENSTR1(buff)
+ IF ( slen .GT. since_T0 + 5) THEN
+
+ got_torg = .TRUE.
+ CALL TM_DATE_REFORMAT(buff(since_T0+6:),pdate_numslashnum,
+ . cal_id, line_t0(axcalt),
+ . pdate_vax, .FALSE., status )
+
+c fix for bug 1394
+c If the part after since is not a date/time, just keep the whole
+c string as the units. i.e., "days_since_event".
+
+c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
+
+ IF ( status .NE. merr_ok ) THEN
+ line_units(axcalt) = buff(1:slen)
+ got_torg = .FALSE.
+ since_t0 = 0
+ status = merr_ok
+ ENDIF
+ ELSE
+ since_t0 = 0 ! flag that no T0 was present
+ ENDIF
+ ELSEIF ( yyyymmdd_time ) THEN
+ line_units(axcalt) = 'days'
+ line_t0(axcalt) = ' ' ! to be determined when coords are read
+ got_torg = .TRUE.
+ ELSE
+ IF (got_it) line_units(axcalt) = buff
+ got_torg = .FALSE.
+ ENDIF
+
+* ... decode the units
+
+ units = TM_UNIT_ID( line_units(axcalt) )
+
+* Named calendar with unit=year gets length of year in that calendar.
+
+ IF (units .EQ. -6 .OR. units .EQ. -10) THEN
+ IF (cal_id .EQ. d360) units = -9
+ IF (cal_id .EQ. julian) units = -12
+ IF (cal_id .EQ. noleap) units = -11
+ IF (cal_id .EQ. all_leap) units = -8
+ ENDIF
+
+* Named calendar with unit=month gets length of month in that calendar.
+
+ IF (units .EQ. -5) THEN
+ IF (cal_id .EQ. d360) units = -14
+ IF (cal_id .EQ. julian) units = -15
+ IF (cal_id .EQ. noleap) units = -13
+ ENDIF
+
+ line_unit_code(axcalt) = units
+ IF ( units.EQ.0 .AND. line_units(axcalt) .NE. ' ' ) THEN
+ CALL TM_NOTE('Units on axis "'//vname(:vlen)//
+ . '" are not recognized: '//line_units(axcalt), tt)
+ CALL TM_NOTE('They will not be convertible:', tt)
+ ENDIF
+ IF ( units .GE. 0 ) THEN
+ line_tunit(axcalt) = real4_init
+ ELSE
+ line_tunit(axcalt) = un_convert(line_unit_code(axcalt))
+ ENDIF
+
+* The units must describe calendar time
+
+ ! check that this has mapped to the right TF orientation
+ IF (line_tunit(axcalt) .NE. real4_init) THEN
+ line_direction(axcalt) = 'TI'
+ ELSE
+ GOTO 5400
+ ENDIF
+
+
+* save some values needed for the forecast lead time axis
+* average lag time (lag is constant except in case of monthly forecasts)
+* and how many lag time steps before the subsequent forecast begins?
+ avg_lag = (line_mem(ipt1+nT*(nF-1))-line_mem(ipt1))
+ . / (nF-1)
+ t0NextForecast = line_mem(ipt1+nT)
+ DO nlag = 1, nT-1
+ IF (line_mem(ipt1+nlag) .EQ. t0NextForecast) GOTO 200
+ ENDDO
+ CALL TM_NOTE('Corrupted FMRC time array'//pCR//
+ . 'Time values dont match between forecasts', lunit_errors)
+
+* Extract the unique values from the 2d array into a 1d "best time series" line
+* the length of the forecasts is nT
+* the number of forecasts is nF
+* create the 1D array by traveling along each forecast and pulling out points
+* until we reach the value of the first time step in the next forecast
+ 200 npts = 0
+ iptn = ipt1 ! start of forecast n
+ DO n = 1, nF ! n index loops over forecasts
+ iptnp1 = iptn + nT
+ l = 0 ! zero-based l index over input time axis
+ IF (iptnp1 .LT. ipte) THEN
+* .. copy early time step values from this forecast into 1D axis
+ DO WHILE (line_mem(iptn+l) .LT. line_mem(iptnp1))
+ line_mem(ipt1+npts) = line_mem(iptn+l)
+ IF (has_edges) line_mem(ipt1+npts+npts2d) =
+ . line_mem(iptn+l+npts2d)
+ npts = npts + 1
+ l = l + 1
+ ENDDO
+ ELSE
+* .. copy all time step values from the final forecast into the 1D axis
+ DO l = 0, nT-1
+ line_mem(ipt1+npts) = line_mem(iptn+l)
+ IF (has_edges) line_mem(ipt1+npts+npts2d) =
+ . line_mem(iptn+l+npts2d)
+ npts = npts + 1
+ ENDDO
+ ENDIF
+ iptn = iptnp1
+ ENDDO
+
+* now that the length of the 1D time axis is known, shift the edge bounds
+* coordinates into their proper spot at the end of the coordinates
+ IF (has_edges) THEN
+ DO i = 0, npts-1
+ line_mem(ipt1+npts+i) = line_mem(ipt1+npts2d+i)
+ ENDDO
+ line_mem(ipt1+2*npts) = line_mem(ipt1+2*npts2d)
+ ENDIF
+
+* ... until proven otherwise, this will look like an irregular axis
+ line_subsc1(axcalt) = next_line_mem_pos
+ line_dim(axcalt) = npts
+ ipte = ipt1 + npts-1
+
+* from cd_get_1_axis.
+* check for regular spacing according to the data type of incoming data.
+* the variables (depsilon, etc) are in double precision. The tolerance
+* chec, in TM_FPEQ_EPS is done to an equivalent single precision tol.
+
+ IF (vartype .EQ. ncdouble) THEN
+ dlast_coord = line_mem(ipte)
+ dfirs_coord = line_mem(ipt1)
+ dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
+ depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / dfirst_delta )
+
+ DO 340 i = ipt1+2, ipte
+ ddelta = line_mem(i) - line_mem(i-1)
+ IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, ddelta, depsilon) ) GOTO 380
+ 340 CONTINUE
+ ELSE
+ dlast_coord = line_mem(ipte)
+ dfirs_coord = line_mem(ipt1)
+ dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
+ depsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / dfirst_delta )
+
+ DO 360 i=ipt1+2,ipte
+ ddelta = line_mem(i) - line_mem(i-1)
+ IF (.NOT. TM_FPEQ_EPS(depsilon, dfirst_delta, ddelta) ) GOTO 380
+ 360 CONTINUE
+ ENDIF
+
+* It's regular - save it as such
+ line_regular(axcalt) = .TRUE.
+ line_start (axcalt) = line_mem(ipt1)
+ line_delta (axcalt) =
+ . (line_mem(ipte)-line_mem(ipt1))/DBLE(npts-1)
+ line_subsc1 (axcalt) = unspecified_int4
+
+ GOTO 390
+
+* Irregular
+ 380 line_regular(axcalt) = .FALSE.
+ IF ((next_line_mem_pos+2*npts+1).GT.maxlinestore) GOTO 5300
+ IF (.NOT.has_edges) CALL TM_IRREGAX_MID( ipt1, npts )
+
+
+ 390 CONTINUE
+
+* Save the axis name (upper case) and memory storage. For all irregular axes,
+* we have saved N+1 edges for the axis cells. Increment the pointer.
+ CALL TM_NEW_LINE_NAME ( 'TF_CAL_T', buff )
+ line_name(axcalt) = buff
+ line_name_orig(axcalt) = buff
+ IF ( .NOT.line_regular(axcalt) ) THEN
+ next_line_mem_pos = next_line_storage + 2*npts+1
+ ENDIF
+ line_dattype(axcalt) = nf_double
+
+********* NOW FINALLY THE FORECAST LEAD TIME AXIS OF THE FMRC *************
+* lead times are only meaningful where runs overlap
+* each forecast run contains nT time steps
+* each forecast run lags the preceding by nlag time steps
+* when the nT/nlag ration exceeds integer, there is a partial lead
+* time cell on the F axis
+ nleadtimes = (nT-1)/nlag + 1
+
+ CALL TM_NEW_LINE_NAME ( 'tf_lag_f', buff )
+ CALL TM_MAKE_BASIC_AXIS( buff, 0.0D0, avg_lag,
+ . nleadtimes, axlagf, status )
+
+* inherit time units from the calendar time axis just created
+ line_unit_code(axlagf) = line_unit_code(axcalt)
+ line_units(axlagf) = un_name(line_unit_code(axlagf))
+ line_direction(axlagf) = 'FF'
+ line_dattype(axlagf) = nf_double
+ line_dim_only(axlagf) = .FALSE. ! ?? why ??
+
+* successful completion
+ status = merr_ok
+
+ 5000 RETURN
+
+
+ 5300 CALL TM_ERRMSG (merr_linstorlim, status, 'CD_1D_LINE_FROM_2D',
+ . no_descfile, no_stepfile,
+ . 'MAX='//TM_STRING(DBLE(maxlinestore)),
+ . no_errstring, *5000)
+
+ 5400 CALL TM_ERRMSG (merr_notimeinfo, status, 'CD_1D_LINE_FROM_2D',
+ . no_descfile, no_stepfile,
+ . 'unrecognizable time encoding',
+ . no_errstring, *5000)
+
+ RETURN
+ END
diff --git a/fmt/src/cd_make_fmrc_fcal_axis.F b/fmt/src/cd_make_fmrc_fcal_axis.F
new file mode 100644
index 0000000..28cb90a
--- /dev/null
+++ b/fmt/src/cd_make_fmrc_fcal_axis.F
@@ -0,0 +1,152 @@
+ SUBROUTINE CD_MAKE_FMRC_FCAL_AXIS (dset, ens_ax, nF, axcalt, status)
+
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*.
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+
+* this routine synthesizes the F forecast initialization calendar axis,
+* using initialization times stored temporarily in line_mem
+* it does so by modifying the generic ensemble axis, "ens_ax"
+* patterning after time axis info in axcalt
+
+* V695+ *sh*
+
+* include files
+ include 'netcdf.inc'
+ include 'tmap_errors.parm'
+#include "gt_lib.parm"
+ include 'tmap_dims.parm'
+#include "tmap_dset.parm"
+ include 'xdset_info.cmn_text'
+
+ include 'xtm_grid.cmn_text'
+ external xgt_grid_data
+ include 'xbuild_grids.cmn'
+
+ external xdset_info_data
+ include 'xdset_info.cd_equiv'
+ include 'xio.cmn_text'
+ include 'xunits.cmn_text'
+ external xunits_data
+ include 'calendar.decl'
+ include 'calendar.cmn'
+
+* calling argument declarations
+ INTEGER dset, ens_ax, nF, axcalt, status
+
+* internal variable declarations
+ INTEGER bufflen
+ PARAMETER (bufflen = 256)
+ CHARACTER TM_STRING*13, buff*256, dbuf*3, vupcase*128, pCR*1
+
+ LOGICAL TM_DFPEQ_TOL, TM_FPEQ_EPS, NC_GET_ATTRIB,
+ . coordvar, got_it, do_warn, ok_cal, yyyymmdd_time, got_torg
+ INTEGER STR_UPCASE, TM_LENSTR1, TM_GET_CALENDAR_ID, TM_UNIT_ID,
+ . TM_FIND_LIKE_DYN_LINE,
+ . i, l, n, nvdim, vdims(8), nvatts,
+ . npts_cdf, ipt1, ipte, iptn, iptnp1,
+ . outflag, next_line_storage, pre_exist,
+ . start(nferdims),count(nferdims), zero(nferdims),
+ . maxlen, attlen, attoutflag, cal_id, since_T0, slen, vlen,
+ . units, istat, nlag, noverlap, nleadtimes
+ REAL val, epsilon_23, t0NextForecast
+ REAL*8 depsilon_46, depsilon, dlast_coord, dfirs_coord,
+ . dfirst_delta, ddelta, avg_lag
+
+ INTEGER tt ! nice short name
+ EQUIVALENCE (tt,lunit_errors)
+
+
+* initialize things
+ ipt1 = next_line_mem_pos
+ ipte = ipt1 + nF - 1
+
+* from cd_get_1_axis.
+* check for regular spacing according to the data type of incoming data.
+* the variables (depsilon, etc) are in double precision. The tolerance
+* chec, in TM_FPEQ_EPS is done to an equivalent single precision tol.
+
+ dlast_coord = line_mem(ipte)
+ dfirs_coord = line_mem(ipt1)
+ dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
+ depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / dfirst_delta )
+
+ DO i = ipt1+2, ipte
+ ddelta = line_mem(i) - line_mem(i-1)
+ IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, ddelta, depsilon) ) GOTO 100
+ ENDDO
+
+* It's regular - save it as such
+! line_regular(ens_ax) = .TRUE. ! already set
+ line_start (ens_ax) = line_mem(ipt1)
+ line_delta (ens_ax) =
+ . (line_mem(ipte)-line_mem(ipt1))/DBLE(nF-1)
+! line_subsc1 (ens_ax) = unspecified_int4 ! already set
+ GOTO 200
+
+* Irregular
+ 100 line_regular(ens_ax) = .FALSE.
+ line_subsc1(ens_ax) = next_line_mem_pos
+ IF ((next_line_mem_pos+2*nF+1).GT.maxlinestore) GOTO 5300
+! CALL TM_IRREGAX_MID( ipt1, nF ) -- not needed. have real edges
+ next_line_mem_pos = next_line_mem_pos + 2*nF + 1
+
+ 200 CONTINUE
+
+* inherit units from the calendar time axis just created
+ line_unit_code(ens_ax) = line_unit_code(axcalt)
+ line_units(ens_ax) = line_units(axcalt)
+ line_tunit(ens_ax) = un_convert(line_unit_code(ens_ax))
+
+ line_t0(ens_ax) = line_t0(axcalt)
+ line_direction(ens_ax) = 'FI'
+
+* Save the axis name (upper case) and memory storage. For all irregular axes,
+* we have saved N+1 edges for the axis cells. Increment the pointer.
+ CALL TM_NEW_LINE_NAME ( 'tf_cal_f', buff )
+ line_dattype(ens_ax) = nf_double
+ line_name_orig(ens_ax) = buff
+ i = STR_UPCASE( line_name(ens_ax), line_name_orig(ens_ax))
+
+* successful completion
+ status = merr_ok
+
+ 5000 RETURN
+
+
+ 5300 CALL TM_ERRMSG (merr_linstorlim, status, 'CD_1D_LINE_FROM_2D',
+ . no_descfile, no_stepfile,
+ . 'MAX='//TM_STRING(DBLE(maxlinestore)),
+ . no_errstring, *5000)
+
+ RETURN
+ END
diff --git a/fmt/src/cd_transfer_attribute.F b/fmt/src/cd_rename_dim.F
similarity index 68%
copy from fmt/src/cd_transfer_attribute.F
copy to fmt/src/cd_rename_dim.F
index 4e55ed2..a2dac32 100644
--- a/fmt/src/cd_transfer_attribute.F
+++ b/fmt/src/cd_rename_dim.F
@@ -1,5 +1,5 @@
- SUBROUTINE CD_TRANSFER_ATTRIBUTE (dset1, varid1, iatt,
- . dset2, varid2, status )
+ SUBROUTINE CD_RENAME_DIM (dset, dimid, newname, status)
+
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -34,29 +34,46 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* Access the linked list structure for netcdf variable information:
-* Transfer attribute iatt from variable 1 in dataset 1 to variable 2 in
-* dataset 2
+* Read the linked list structure for netcdf dimension information:
+* given dset and dimension id, replace name of dimension with new name.
* Programmer Ansley Manke
* NOAA/PMEL, Seattle, WA - TMAP
-* V600 10/05 *acm* Attribute control.
-* V602 2/07 *acm* Fix bug 1492, changing attributes of coordinate variables
+* V694 1/15
+
+* include files
+#include "gt_lib.parm"
+ INCLUDE "tmap_errors.parm"
* Argument declarations
- INTEGER NCF_TRANSFER_ATT,
- . dset1, varid1, iatt, dset2, varid2,
- . dset_num_1, dset_num_2, status
+ CHARACTER*(*) newname
+ INTEGER dset, dimid, status
+
+* Internal declarations
+
+ INCLUDE 'netcdf.inc'
+
+ INTEGER TM_LENSTR1, NCF_RENAME_DIM,
+ . slen, flen, dset_num
+ PARAMETER (flen=512) ! size of variable name string
+
+#ifdef sun
+ BYTE fhol(flen) ! c-type Hollerith string buffer
+#else
+ INTEGER*1 fhol(flen) ! c-type Hollerith string buffer
+#endif
+
+ status = atom_not_found
+
+ dset_num = dset
+ IF (dset_num .LT. -2) dset_num = -2
+
+ slen = TM_LENSTR1( newname )
+ CALL TM_FTOC_STRNG( newname(1:slen), fhol, flen )
+ status = NCF_RENAME_DIM(dset_num, dimid, fhol)
- dset_num_1 = dset1
- IF (dset_num_1 .LT. -2) dset_num_1 = -2
- dset_num_2 = dset2
- IF (dset_num_2 .LT. -2) dset_num_2 = -2
- status = NCF_TRANSFER_ATT(dset_num_1, varid1, iatt,
- . dset_num_2, varid2)
-
- RETURN
+ 5000 RETURN
END
diff --git a/fmt/src/cd_scan_aux_coords.F b/fmt/src/cd_scan_aux_coords.F
new file mode 100644
index 0000000..e3952fb
--- /dev/null
+++ b/fmt/src/cd_scan_aux_coords.F
@@ -0,0 +1,173 @@
+ SUBROUTINE CD_SCAN_AUX_COORDS (dset, cdfid, status)
+
+
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
+* Finds 'coordinates' attributes on variables and sets up linkages to handle
+* CF auxiliary coordinates
+
+* Programmer Steve Hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+
+* revision 0.0 - 4/15
+
+* argument definitions:
+* dset - TMAP data set pointer
+* cdfid - netCDF open ID (should no longer be needed!!)
+* status - return status
+
+* include files
+
+ include 'netcdf.inc'
+ include 'tmap_errors.parm'
+ include 'tmap_dims.parm'
+#include "tmap_dset.parm"
+#include "gt_lib.parm"
+ include 'xbuild_grids.cmn'
+ include 'xdset_info.cmn_text'
+ external xdset_info_data
+ include 'xtm_grid.cmn_text'
+ include 'xdset_info.cd_equiv'
+
+* argument declarations
+ INTEGER dset, cdfid, status
+
+
+* local parameter definitions:
+ LOGICAL do_warn
+ INTEGER str_eq, max_names
+ PARAMETER (str_eq = 0)
+ PARAMETER (do_warn = .TRUE.)
+ PARAMETER (max_names = 30) ! 30 allows very weird CF files
+
+
+* local variable declarations:
+ LOGICAL NC_GET_ATTRIB, got_it, coordvar
+
+ INTEGER TM_LENSTR1, STR_CASE_BLIND_COMPARE,
+ . i, tmvar, ivar, num_names, nvdim, all_outflag,
+ . maxlen, attlen, attoutflag, tmp, cdf_stat, nvatts,
+ . axcalt, axlagf, istat, vartyp, vlen, vdims(8)
+ CHARACTER aux_coord_names*500, coord_name(max_names)*128,
+ . vname*128, name*16
+ REAL vals ! potential numerical attributes
+
+!* move do_warn assignment to paramater for linux *kob*
+! . got_it, do_warn
+! PARAMETER (do_warn = .TRUE.)
+! INTEGER STR_CASE_BLIND_COMPARE,
+! . igrid, iaxis, istat, tmvar, ivar, ndim, idim,
+! REAL tmp
+! CHARACTER*16 gname
+!* variables for final (unnecessary?) check
+! CHARACTER TM_STRING*13, vname*128, buff*128
+! INTEGER TM_LENSTR1,
+! . nvdim, nvatts, dim, npts, vlen
+!
+! CHARACTER*1 dimnam(nferdims)
+! DATA dimnam/'I', 'J', 'K', 'L', 'M', 'N'/
+
+* loop through each variable in this TMAP data set
+* if it has a "coordinates" attribute then associate it with that variable
+* and flag that variable as an auxiliary coordinate
+
+ DO tmvar = 1,maxvars
+ IF ( ds_var_setnum(tmvar) .NE. dset ) CYCLE
+ ivar = cd_varid(tmvar)
+
+ CALL CD_GET_VAR_INFO (dset, ivar, vname, vartyp, nvdim, vdims,
+ . nvatts, coordvar, all_outflag, istat)
+ vlen = TM_LENSTR1(vname)
+
+* THIS BOCK OF CODE WAS STARTED ONLY QUICKLY
+* POSTPONED IT UNTIL LATER TO GET JUST THE 2D TIME FMRC FUNCTIONALITY
+!* does it point explicitly to auxiliary coordinate ?
+! maxlen = 240
+! got_it = NC_GET_ATTRIB( dset, ivar, 'coordinates',
+! . .NOT.do_warn, ' ', maxlen, attlen,
+! . attoutflag, aux_coord_names, tmp )
+! IF ( got_it ) THEN
+!* parse the list of white-space-separated auxiliary variable names
+! CALL TM_PARSE_STRING(aux_coord_names,max_names,
+! . coord_names,num_names)
+!* ... this is a poorly formatted notice, but may never be issued
+! IF (num_names .GT. max_names) CALL WARN(
+! . 'netCDF coordinates attribute on variable '//
+! . ds_var_code(tmvar)//'has too many names')
+! i = 1
+! DO i=1, attlen
+! IF (
+!XXXXX --INTERRUPTED AT EARLY STAGE OF WRITING THIS CODE
+!for each variable that possess a coordinates attribute
+! - loop through the coordinate variables listed
+! - identify the orientation of each
+! - put Ferret attributes onto the parent variable pointing to
+! larerz target, time2d target, etc.
+! - set ds_its_aux_coord on the target variable
+! ENDIF
+!after the loop, if an aux variable was targetted as the 2dtime variable
+!then create TF_CAL_T and TF_LAG_F axes (move this logic from CD_SCAN_VARS)
+
+* !! TEMPORARILY!!! identify the 2d time variable from the attribute
+* _ CoordinateAxisType
+* Eventually we will recognize it from an assemblage of facts.
+* o other variables point to it as a coordinate
+* o it is 2d in the tf plane
+
+ IF ( STR_CASE_BLIND_COMPARE(vname(:vlen), 'time').EQ.str_eq
+ . .AND. nvdim .EQ. 2 ) THEN
+ maxlen = 16
+ got_it = NC_GET_ATTRIB( dset, ivar, '_CoordinateAxisType',
+ . do_warn, vname(:vlen), maxlen, attlen,
+ . attoutflag, name, vals )
+ IF ( got_it
+ . .AND. STR_CASE_BLIND_COMPARE(name, 'Time').EQ.str_eq ) THEN
+* ... Synthesize a 1D time axis and forecast lead time for the colection
+ CALL CD_1D_LINE_FROM_2D (dset, cdfid,
+ . ivar, vname, axcalt, axlagf, status)
+ ENDIF
+ ENDIF
+ ENDDO
+
+* ... Now set a global attribute for this dataset with the
+* new axis name
+* TBD
+
+* successful completion
+ status = merr_ok
+ RETURN
+
+* error exit
+ 5900 RETURN
+ END
diff --git a/fmt/src/cd_scan_vars.F b/fmt/src/cd_scan_vars.F
index 55d008a..9ecf6ed 100644
--- a/fmt/src/cd_scan_vars.F
+++ b/fmt/src/cd_scan_vars.F
@@ -95,7 +95,9 @@
* V68 *acm* 1/12- added use_strict argument for ticket 1910: micro-adjusting on
* repeated coordinates in netCDF/OPeDNAP datasets
* V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
-* V6.87 4/14 *acm* ticket 2146: if invalid bounds, make the bounds a dependent variale.
+* V6.87 4/14 *acm* ticket 2146: if invalid bounds, make bounds a depend. var
+* V695+ 4/15 *sh* support for auxiliary vars (coordinates attributes)
+
* argument definitions:
* dset - pointer to TMAP data set
@@ -145,10 +147,11 @@
. istat, npts, epic_t2,
. nbvar, ivar, len_test, len_mchars,
. attype, attlen, attoutflag, maxlen, iatt,
- . varid, all_outflag, dset_num, attid, bad_bndsid
+ . varid, all_outflag, dset_num, attid, bad_bndsid,
+ . axcalt, axlagf
REAL vals ! potential numerical attributes
- CHARACTER*128 aname
+ CHARACTER*128 aname, line1d
* ?? how many bounds variables (bname) might there be ??
@@ -303,7 +306,7 @@
* * * * loop through all variables in the net CDF file * * *
* classify each as a coordinate variable (axis) or as a dependent
-* variable. If a coordinate variable then TRY to interpret it,
+* variable. If a 1-D coordinate variable then TRY to interpret it,
* (in cd_get_1_axis) but if it proves to be invalid, then process
* it, instead, as a dependent variable
las_pos = 1 ! reduces redundant search for space
@@ -425,6 +428,41 @@
bad_bndsid = 0
ENDIF
+! DELETE THIS BLOCK OF CODE
+!* 2D time coordinate variable for FMRC dataset? If so, synthesize a 1D
+!* time axis for the colection
+!* **TBD** TEMPORARY CODE
+!* In the thredds and grib aggregation the 2d Time var has this attrib:
+!* time2d._CoordinateAxisType = Time
+!* Finding this _CoordinateAxisType attributewill do as a temporary
+!* place-holder, though it is inconsistent with the CF standard.
+!* The correct clue that we need to
+!* create a 1D time axis is the presence of a 'coordinates' attribute on a data
+!* variable pointing to this 2d time array. That logic may best be located
+!* whever the coordinates attributes and auxiliary variable relationships
+!* are being analyzed (CD_GET_PARENT_GRIDS, CD_ASSOC_GRIDS or something TBD)
+!* We should also check that it is indeed 2d **TBD**
+! IF ( STR_CASE_BLIND_COMPARE(vname(:vlen), 'time').EQ.str_eq
+! . .AND. nvdim .EQ. 2 ) THEN
+! maxlen = 16
+! got_it = NC_GET_ATTRIB( dset, ivcd, '_CoordinateAxisType',
+! . do_warn, vname(:vlen), maxlen, attlen,
+! . attoutflag, name, vals )
+! IF ( got_it
+! . .AND. STR_CASE_BLIND_COMPARE(name, 'Time').EQ.str_eq ) THEN
+! CALL CD_1D_LINE_FROM_2D (dset, cdfid,
+! . ivcd, vname, axcalt, axlagf, status)
+! ENDIF
+! ENDIF
+!
+!* Now set a global attribute for this dataset with the new axis name
+!* TBD
+!*************
+!*************
+!*************
+!*************
+!*************
+
* EPIC KLUDGE: if an EPIC file has an invalid "TIME" axis we want, not only
* "TIME" as a dependent variable, but also "TIME2"
IF ( its_epic .AND. vname(:vlen).EQ.'time' ) THEN
diff --git a/fmt/src/cd_transfer_attribute.F b/fmt/src/cd_transfer_attribute.F
index 4e55ed2..daee9d4 100644
--- a/fmt/src/cd_transfer_attribute.F
+++ b/fmt/src/cd_transfer_attribute.F
@@ -52,9 +52,7 @@
dset_num_1 = dset1
- IF (dset_num_1 .LT. -2) dset_num_1 = -2
dset_num_2 = dset2
- IF (dset_num_2 .LT. -2) dset_num_2 = -2
status = NCF_TRANSFER_ATT(dset_num_1, varid1, iatt,
. dset_num_2, varid2)
diff --git a/fmt/src/cd_write_attrib.F b/fmt/src/cd_write_attrib.F
index 3cd2645..22ad13a 100644
--- a/fmt/src/cd_write_attrib.F
+++ b/fmt/src/cd_write_attrib.F
@@ -85,16 +85,20 @@
* local variable declarations:
INTEGER TM_LENSTR1,
- . vlen, alen, slen, cdfstat, varid, attype, attlen, len_app
- CHARACTER buff*2048
+ . vlen, alen, slen, tlen, cdfstat, varid, attype, attlen,
+ . len_app, bufflen
+ CHARACTER buff*10240
INTEGER tt ! nice short name
EQUIVALENCE (tt,lunit_errors)
+ bufflen = 10240
+
* initialize
vlen = TM_LENSTR1( vname )
alen = TM_LENSTR1( att )
slen = LEN( string )
+ tlen = TM_LENSTR1(string)
attype = 0
attlen = 0
cdfstat = NF_NOERR
@@ -120,18 +124,18 @@
IF ( cdfstat .EQ. NF_NOERR ) THEN
IF ( attype.NE.NF_BYTE .AND. attype.NE.NF_CHAR ) GOTO 5200
- IF ( attlen+slen .GT. 2048 .AND. append ) THEN
+ IF ( attlen+tlen .GT. bufflen .AND. append ) THEN
buff = att
CALL TM_NOTE( 'CDF attribute '//buff(:alen)//
. ' is too long', tt )
- IF ( attlen .GT. 2046 ) THEN
+ IF ( attlen .GT. bufflen ) THEN
CALL TM_NOTE( 'no text could be appended', tt )
GOTO 1000
ELSE
CALL TM_NOTE( 'it may be truncated', tt )
ENDIF
ENDIF
- IF ( attlen .GT. 2048 .AND. (.NOT.append) ) THEN
+ IF ( attlen .GT. bufflen .AND. (.NOT.append) ) THEN
buff = att
CALL TM_NOTE( 'CDF attribute '//buff(:alen)//
. ' is too long', tt )
@@ -158,7 +162,7 @@
ENDIF
risc_buff = string
- len_app = 2048 - attlen - 1
+ len_app = bufflen - attlen - 1
#ifdef usingDODSf2cUnderscore
IF (len_app .GT. 0) THEN
cdfstat = NF_PUT_ATT_TEXT_(cdfid, varid, att(:alen),
diff --git a/fmt/src/cd_write_axis.F b/fmt/src/cd_write_axis.F
index 63eb378..0b42b3c 100644
--- a/fmt/src/cd_write_axis.F
+++ b/fmt/src/cd_write_axis.F
@@ -107,6 +107,8 @@
* creating and writing axis bounds.
* V69+ 7/14 *acm* Ticket 1863: When output-flag was reset on an attribute, wasn't being applied
* if the variable wasn't associated with the dataset where that axis lives.
+* v694 1/15 *acm* for ticket 2227: if a dimension from a nc file is not also a
+* 1-D coordinate var, don't write the axis Ferret creates
* argument definitions:
@@ -186,7 +188,7 @@
dim_only = .FALSE.
name = CD_AXIS_NAME( dset_num, grid, idim, nlen )
- IF (keepax_flag .EQ. 1) name = CD_AXIS_OUTNAME( dset_num, grid, idim, nlen )
+ IF (keepax_flag .EQ. 1) name = CD_AXIS_OUTNAME( dset_num, grid, idim, nlen )
name_in = name
name_from_grid = .FALSE.
@@ -221,7 +223,10 @@
* If not mode upcase_output, then keep the incoming case.
ELSE
name = CD_AXIS_NAME( dset_num, grid, idim, nlen )
+ IF (keepax_flag .EQ. 1) name = CD_AXIS_OUTNAME( dset_num, grid, idim, nlen )
+
name_in = CD_AXIS_OUTNAME( dset_num, grid, idim, llen )
+
IF (STR_SAME(name, name_in) .EQ. 0) THEN
name = name_in
nlen = llen
@@ -388,6 +393,12 @@
IF ( cdfstat .NE. NF_NOERR ) GOTO 5200
+* If the dimension was a dimension only (not a 1-D coordinate variable) in the
+* source datset, just create the dimension in the output file. Don't write out
+* the basic axis that Ferret defined.
+
+ IF (line_dim_only(iaxis)) GOTO 1000
+
* create the coordinate variable (12/92 -> double precision)
#ifdef usingDODSf2cUnderscore
cdfstat = NF_DEF_VAR_(cdfid, name(:nlen), outtype, 1, dimid, axid)
diff --git a/fmt/src/cd_write_var.F b/fmt/src/cd_write_var.F
index 8669a24..46a7608 100644
--- a/fmt/src/cd_write_var.F
+++ b/fmt/src/cd_write_var.F
@@ -1,6 +1,6 @@
SUBROUTINE CD_WRITE_VAR ( memory, cdfid, dset, vname, grid, lo,
. hi, dat, edges_flag, do_bounds,
- . scalefac, addoff, bad, mode_upcase_output,
+ . mode_upcase_output,
. keepax_flag, status )
* This software was developed by the Thermal Modeling and Analysis
@@ -77,6 +77,8 @@
* V69+ 7/14 *acm* Further fix to 1750. Ticket 2182: Keep case of axis name consistent when
* creating and writing axis bounds.
* V69+ *acm* 9/14 Ticket 1758. Memory request uses number of blocks not words
+* V694 *acm* 3/15 Ticket 2240. Get scale, offset, and bad per variable from the dataset
+* being written.
* argument definitions:
* cdfid - netCDF id number for already opened CDF file
@@ -111,8 +113,7 @@
INTEGER cdfid, dset, grid, lo(nferdims), hi(nferdims),
. edges_flag, do_bounds, keepax_flag, status
CHARACTER*(*) vname
- REAL dat(*), bad
- REAL*8 scalefac, addoff
+ REAL dat(*)
REAL memory( mem_blk_size, max_mem_blks )
* local variable declarations:
@@ -124,17 +125,20 @@
. hilim, i100, i, j, k, l, m, n, recaxvar, lorec, hirec, rectyp,
. vartyp, nvdim, vdims(8), nvatts, bndstart(2), bndcount(2),
. mblk1, nblks, npts, savecount, llen, grid_blocks
- LOGICAL CD_GET_BOUNDS, TM_ABSTRACT_AXIS, TM_DFPEQ,
- . got_it, scaled, writebounds
+ LOGICAL CD_GET_BOUNDS, TM_ABSTRACT_AXIS, TM_DFPEQ, CD_GET_ATTVAL,
+ . got_it, scaled, writebounds, do_warn
CHARACTER*13 TM_STRING
CHARACTER*1 dimnam(nferdims)
DATA dimnam/'I','J','K','L','M','N'/
CHARACTER*128 vbuff ! needed because of fussy f772.1 DEC compiler
REAL r_scale, r_offset, scaled_bad
+
+ REAL bad
+ REAL*8 scalefac, addoff
REAL*8 r100_8(200)
REAL*8 TM_WORLD
- INTEGER bndid, nlen, elen, reset
+ INTEGER bndid, nlen, elen, reset, numvals, nv
CHARACTER name*128, buff*128, CD_AXIS_OUTNAME*128, CD_AXIS_NAME*128
REAL*4 r100_4(200)
@@ -167,6 +171,22 @@ c EQUIVALENCE (r100_8, r100_4)
. vdims, nvatts)
#endif
+* Get values for scalefac, addoff and bad-flag set in cdf_list for this variable
+
+ scalefac = 1.
+ addoff = 0.
+ numvals = 1
+ do_warn = .FALSE.
+ got_it = CD_GET_ATTVAL ( cdfid, varid, "scale_factor",
+ . do_warn, vname,
+ . scalefac, numvals, nv )
+ got_it = CD_GET_ATTVAL ( cdfid, varid, "add_offset",
+ . do_warn, vname,
+ . addoff, numvals, nv )
+ got_it = CD_GET_ATTVAL ( cdfid, varid, "_FillValue",
+ . do_warn, vname,
+ . bad, numvals, nv )
+
* enter data mode so data can be read and written
* (CD_GET_GENERIC_BOUNDS needs to read coordinate values)
CALL CD_SET_MODE(cdfid, pcd_mode_data, status)
@@ -479,6 +499,9 @@ c EQUIVALENCE (r100_8, r100_4)
* To write scaled data, scale all of it by ferretdat(1./inscale) - (inoff/inscale)
* the scaling to be used is sent into this routine.
+ scaled = .FALSE.
+ r_offset = 0.
+ r_scale = 1.
IF ( .NOT. TM_DFPEQ(scalefac, 1.D0) .OR.
. .NOT. TM_DFPEQ(addoff, 0.D0) ) THEN
@@ -496,6 +519,7 @@ c EQUIVALENCE (r100_8, r100_4)
ENDIF
* write the slab
+
CALL CD_WRITE_VAR_SUB( cdfid, varid, vartyp, dims, start, count,
. vdims(1), dat, cdfstat )
diff --git a/fmt/src/ez_init_dset.F b/fmt/src/ez_init_dset.F
index f75a2e1..1d7d3f4 100644
--- a/fmt/src/ez_init_dset.F
+++ b/fmt/src/ez_init_dset.F
@@ -78,6 +78,8 @@
* *kob* explicit definitions not allowed on decl line in linux...
* moved it to parameter line 10/96
* V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
+* V694 1/15 *acm* variable coordvar should be a logical not an integer
+
CHARACTER*4 ez_rev
CHARACTER*1 tab
@@ -118,14 +120,14 @@
*
* Local definitions
- LOGICAL TM_LEGAL_NAME, vars_gvn, its_delimited
+ LOGICAL TM_LEGAL_NAME, vars_gvn, its_delimited, coordvar
CHARACTER*24 type_names(maxezvars)
CHARACTER*128 var_names(maxezvars)
INTEGER*4 TM_LENSTR1, STR_SAME,
. set_cnt, bpos, epos, ncnt, var_pos, num_names,
. nvar, jcnt, stp_cnt, nstp, field_type(maxezvars),
. num_types, i, j, name_limit, idummy(maxezvars),
- . l1, l2, ivar, vartype, coordvar, varid
+ . l1, l2, ivar, vartype, varid
CHARACTER TM_STRING*13, TM_LEFINT*4, buff*48,
. line_buff*2048
@@ -421,7 +423,7 @@
* and its variables
CALL CD_STORE_DSET (dset, status)
- coordvar = 0
+ coordvar = .FALSE.
varid = 0
DO 200 ivar = 1, maxvars
diff --git a/fmt/src/ez_permuted_index.F b/fmt/src/ez_permuted_index.F
index a5f9801..0aebdb4 100644
--- a/fmt/src/ez_permuted_index.F
+++ b/fmt/src/ez_permuted_index.F
@@ -35,15 +35,16 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* work routine for EZ_READ when /ORDER is not the default X-Y-Z-T
-* Determine the single-dimensioned array index equivalent to the 4D
-* (i,j,k,l) of the "next" word to be stored
+* work routine for EZ_READ when /ORDER is not the default X-Y-Z-T-E-F
+* Determine the single-dimensioned array index equivalent to the 6D
+* (i,j,k,l,m,n) of the "next" word to be stored
* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
* revision 0.00 - 3/4/94 *sh*
* V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
+* V694 11/14 *acm* Ticket 2217: permuted ASCII reading in 6D
* calling arguments:
* None - all indexing is done in COMMON to maximize speed (and because
@@ -56,18 +57,22 @@
include 'xez_order.cmn_text'
* convenience equivalences
- INTEGER nx, ny, nz,
- . i, j, k, l,
- . o1, o2, o3, o4
- EQUIVALENCE (eznn(1),nx), (eznn(2),ny), (eznn(3),nz),
- . (ezii(1),i),(ezii(2),j),(ezii(3),k),(ezii(4),l),
+ INTEGER nx, ny, nz, nt, ne, nf,
+ . i, j, k, l, m, n,
+ . o1, o2, o3, o4, o5, o6
+ EQUIVALENCE (eznn(1),nx), (eznn(2),ny), (eznn(3),nz),
+ . (eznn(4),nt), (eznn(5),ne),
+ . (ezii(1),i),(ezii(2),j),(ezii(3),k),
+ . (ezii(4),l),(ezii(5),m),(ezii(6),n),
. (ezorder(1),o1), (ezorder(2),o2),
- . (ezorder(3),o3), (ezorder(4),o4)
+ . (ezorder(3),o3), (ezorder(4),o4),
+ . (ezorder(5),o5), (ezorder(6),o6)
* local variable definitions:
-* increment all 4 subscripts in appropriate permutation
+* increment all nferdims subscripts in appropriate permutation
+
ezii(o1) = ezii(o1) + 1
IF ( ezii(o1) .GE. eznn(o1) ) THEN
ezii(o1) = 0
@@ -78,12 +83,28 @@
IF ( ezii(o3) .GE. eznn(o3) ) THEN
ezii(o3) = 0
ezii(o4) = ezii(o4) + 1
+
+
+ IF ( ezii(o4) .GE. eznn(o4) ) THEN
+ ezii(o4) = 0
+ ezii(o5) = ezii(o5) + 1
+
+
+ IF ( ezii(o5) .GE. eznn(o5) ) THEN
+ ezii(o5) = 0
+ ezii(o6) = ezii(o6) + 1
+ ENDIF
+
+ ENDIF
+
ENDIF
ENDIF
ENDIF
* compute the 1D index
- EZ_PERMUTED_INDEX = ( nx*(ny*(nz*l + k) + j) + i ) + 1
+
+ EZ_PERMUTED_INDEX =
+ . ( nx*(ny*(nz*(nt*(ne*n + m) + l) + k) + j) + i ) + 1
RETURN
diff --git a/fmt/src/ez_read.F b/fmt/src/ez_read.F
index 94c5a96..7d9892b 100644
--- a/fmt/src/ez_read.F
+++ b/fmt/src/ez_read.F
@@ -77,6 +77,7 @@
* v604 *acm* 7/07 increase length of ds_name, ds_des_name
* V68 *acm* 1/12 The variables should be declared REAL (conversion to double prec.)
* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
+* V694 11/14 *acm* Ticket 2217: permuted ASCII reading in 6D
* Arguments:
* dset - data set number
@@ -179,7 +180,7 @@
* is the input permuted?
permuted = .FALSE.
- DO 110 i = 1, 4
+ DO 110 i = 1, nferdims
IF ( ds_ordering(i,vfirst) .NE. i ) permuted = .TRUE.
110 CONTINUE
! permuted = .TRUE. ! debug statement
diff --git a/fmt/src/nc_get_attrib.F b/fmt/src/nc_get_attrib.F
index 3bfa6bf..447db41 100644
--- a/fmt/src/nc_get_attrib.F
+++ b/fmt/src/nc_get_attrib.F
@@ -61,6 +61,7 @@
* *kms* 7/13 Increased the size of errmsg to match the increased size
* of maxlen (from show_data_set_attrs); added check for
* this in the future.
+* V694 4/15 *acm* Increase length of error buffer; use length definition when assigning.
* argument definitions:
* dset - dataset number
@@ -94,27 +95,20 @@
. lena, lenb, attype, status, i, dset_num, attid
CHARACTER*128 aname
INTEGER errmsglen
- PARAMETER (errmsglen = 2048)
+ PARAMETER (errmsglen = 1024)
CHARACTER*(errmsglen) errmsg
INTEGER tt ! nice short name
EQUIVALENCE (tt,lunit_errors)
INTEGER slen, flen
- PARAMETER (flen=size_rbuff) ! size of attribute string
+ PARAMETER (flen=10240) ! size of attribute string
#ifdef sun
BYTE fhol(flen), ghol(flen) ! c-type Hollerith string buffer
#else
INTEGER*1 fhol(flen), ghol(flen) ! c-type Hollerith string buffer
#endif
- IF ( maxlen .GT. errmsglen ) THEN
-* programming error; thus the STOP
- WRITE(*,*) 'maxlen = ', maxlen,
- . '; errmsglen = ', errmsglen
- STOP 'errmsg not large enough in NC_GET_ATTRIB'
- ENDIF
-
NC_GET_ATTRIB = .FALSE.
IF (dset .EQ. unspecified_int4) RETURN
IF (varid .LT. 0) RETURN
@@ -178,6 +172,8 @@
* warning exit
5000 lenb = TM_LENSTR1( string )
+ lenb = MIN(lenb, maxlen)
+ lenb = MIN(lenb, 128)
lena = TM_LENSTR1( attrib )
errmsg = string(:lenb)//'"'//attrib(:lena)//
@@ -185,16 +181,16 @@
lenb = TM_LENSTR1( errmsg )
IF ( do_warn ) CALL TM_NOTE( errmsg(:lenb), tt )
IF ( do_warn .AND. too_long ) THEN
- IF (maxlen .GE. 3) WRITE (errmsg, 1000) maxlen
- IF (maxlen .LT. 3) WRITE (errmsg, 1001) maxlen
-1000 FORMAT ('exceeds expected length. Maximum characters: ',I4, ' ')
-1001 FORMAT ('exceeds expected length. Maximum characters: ',I2, ' ')
+ IF (maxlen .GE. 3) WRITE (errmsg, 1000) maxlen, attlen
+ IF (maxlen .LT. 3) WRITE (errmsg, 1001) maxlen, attlen
+1000 FORMAT ('exceeds expected length. Maximum characters: ',I4, ' Length is', I8)
+1001 FORMAT ('exceeds expected length. Maximum characters: ',I2, ' Length is', I8)
lenb = TM_LENSTR1( errmsg )
CALL TM_NOTE( errmsg(:lenb), tt )
WRITE (errmsg, 1010) maxlen
1010 FORMAT ('--TRUNCATED TO LENGTH ',I4, '--')
lenb = TM_LENSTR1( errmsg )
- CALL TM_CTOF_STRNG( fhol, errmsg(lenb+2:maxlen), (maxlen-lenb))
+ CALL TM_CTOF_STRNG( fhol, errmsg(lenb+2:errmsglen), (errmsglen-lenb))
attlen = maxlen
ENDIF
RETURN
diff --git a/fmt/src/nc_get_attrib_string.F b/fmt/src/nc_get_attrib_string.F
index 51cb0e4..48f8551 100644
--- a/fmt/src/nc_get_attrib_string.F
+++ b/fmt/src/nc_get_attrib_string.F
@@ -85,13 +85,14 @@
LOGICAL too_long
INTEGER TM_LENSTR1, NCF_GET_VAR_ATTR,
. lena, lenb, attype, status, i, dset_num, attid
- CHARACTER*128 aname, buff
+ CHARACTER*128 aname
+ CHARACTER*500 buff
INTEGER tt ! nice short name
EQUIVALENCE (tt,lunit_errors)
INTEGER slen, flen
- PARAMETER (flen=size_rbuff) ! size of attribute string
+ PARAMETER (flen=10240) ! size of attribute string
#ifdef sun
BYTE fhol(flen), ghol(flen) ! c-type Hollerith string buffer
#else
@@ -160,17 +161,20 @@
* warning exit
5000 lenb = TM_LENSTR1( string )
+ lenb = MIN(lenb, maxlen)
+ lenb = MIN(lenb, 128)
lena = TM_LENSTR1( attrib )
+
buff = string(:lenb)//'"'//attrib(:lena)//
. '" in netCDF variable: '//vname
lenb = TM_LENSTR1( buff )
IF ( do_warn ) CALL TM_NOTE( buff(:lenb), tt )
IF ( do_warn .AND. too_long ) THEN
- IF (maxlen .GE. 3) WRITE (buff, 1000) maxlen
- IF (maxlen .LT. 3) WRITE (buff, 1001) maxlen
-1000 FORMAT ('exceeds expected length. Maximum characters: ',I4, ' ')
-1001 FORMAT ('exceeds expected length. Maximum characters: ',I2, ' ')
+ IF (maxlen .GE. 3) WRITE (buff, 1000) maxlen, attlen
+ IF (maxlen .LT. 3) WRITE (buff, 1001) maxlen, attlen
+1000 FORMAT ('exceeds expected length. Maximum characters: ',I4, ' Length is', I8)
+1001 FORMAT ('exceeds expected length. Maximum characters: ',I2, ' Length is', I8)
lenb = TM_LENSTR1( buff )
CALL TM_NOTE( buff(:lenb), tt )
WRITE (buff, 1010) maxlen
diff --git a/fmt/src/string_array_find_quoted.c b/fmt/src/string_array_find_quoted.c
index 68ff4d6..e2415c1 100644
--- a/fmt/src/string_array_find_quoted.c
+++ b/fmt/src/string_array_find_quoted.c
@@ -40,6 +40,7 @@
if the test name is not quoted, then the test name can
be case blind, but the model name should be upper-case.
4/06 *kob* change type of 1st argument to double, for 64-bit build
+ 12/14 *sh* added support for "_SD_" as a single quote indicator
*/
#include <Python.h> /* make sure Python.h is first */
#include <stdio.h>
@@ -59,7 +60,8 @@ void string_array_find_quoted_( double *string_array_header,
SA_Head * head;
List_Node *bucket, *p;
char * model_string;
- int match=0, is_quoted=0;
+ int match=0, quote_offset=0;
+ const char *_SQ_ = "_SQ_";
FILE *fp;
@@ -70,20 +72,33 @@ FILE *fp;
tm_get_strlen_(&true_test_len, test_len, test_string);
+/* "'" encloses the string? */
if(test_string[0]=='\''
&&test_string[true_test_len-1]=='\''
- &&true_test_len>=2){
- is_quoted = 1;
+ &&true_test_len>=2) {
+ quote_offset = 1;
true_test_len -= 2;
}
-
- if(is_quoted == 1){
- hash_value = string_array_hash(test_string+1, true_test_len, 0, array_size);
- }
- else {
- hash_value = string_array_hash(test_string, true_test_len, 0, array_size);
+/* "_SQ_" encloses the string? */
+ else if(test_string[0]=='_'
+ &&test_string[true_test_len-1]=='_'
+ &&true_test_len>=8) {
+ match = 1;
+ for( i=0; i<3; i++){
+ if( test_string[ i]!=_SQ_[i]
+ || test_string[true_test_len-4+i]!=_SQ_[i]){
+ match = 0;
+ break;
+ }
+ }
+ if (match ==1) {
+ quote_offset = 4;
+ true_test_len -= 8;
+ }
}
+ hash_value = string_array_hash(test_string+quote_offset, true_test_len, 0, array_size);
+
if(true_test_len ==0){
result_array_size1 = 5;
}
@@ -98,11 +113,11 @@ FILE *fp;
match = 0;
model_string=&(head->string_array[(p->index-1)*string_size]);
string_array_get_strlen_(string_array_header, &(p->index), &true_model_len);
- if(is_quoted == 1) {
+ if(quote_offset >= 1) {
if(true_model_len == true_test_len){
match = 1;
for( i=0; i<true_model_len; i++){
- if(test_string[i+1]!=model_string[i]){
+ if(test_string[i+quote_offset]!=model_string[i]){
match = 0;
break;
}
diff --git a/fmt/src/tm_allo_tmp_line.F b/fmt/src/tm_allo_tmp_line.F
index 9a3ea2b..2adee33 100644
--- a/fmt/src/tm_allo_tmp_line.F
+++ b/fmt/src/tm_allo_tmp_line.F
@@ -40,6 +40,8 @@
* V510 *sh* 3/00 - guts of routine in TM_ALLO_DYN_LINE_SUB
* V581*acm* 6/05 For fix to bug 1271, add flag line_shift_origin
+* v694 1/15 *acm* for ticket 2227: if a dimension from a nc file is not also a
+* 1-D coordinate var, don't write the axis Ferret creates
* Include files
include 'tmap_dims.parm'
@@ -71,6 +73,7 @@
line_dim(line) = int4_init
line_subsc1(line) = int4_init
+ line_dim_only(line) = .FALSE.
RETURN
END
diff --git a/fmt/src/tm_check_bnds.F b/fmt/src/tm_check_bnds.F
index ff1f260..86b98e3 100644
--- a/fmt/src/tm_check_bnds.F
+++ b/fmt/src/tm_check_bnds.F
@@ -1,4 +1,4 @@
- LOGICAL FUNCTION TM_CHECK_BNDS (nline, nb, vname)
+ LOGICAL FUNCTION TM_CHECK_BNDS (nline, nb, doubletype, vname)
*
* This software was developed by the Thermal Modeling and Analysis
@@ -46,6 +46,9 @@
* V65 *acm* 2/10 Test for overlapping bounds
* V66 *kms* 7/10 Initialize return value to .TRUE. (uninitialized bug for
* N+1 bounds) and no need to check for gaps for N+1 bounds
+* V694 5/15 *acm* Match precision for bounds checks (as is done for coords).
+* V696 10/15 *acm* Ticket 2321: Fix logic when detecting coords that match grid bounds
+
INCLUDE 'xio.cmn_text'
INCLUDE 'tmap_dims.parm'
@@ -54,16 +57,25 @@
EXTERNAL xgt_grid_data
* Arguments
+ LOGICAL doubletype
INTEGER nline, nb
CHARACTER*(*) vname
* Internal definitions
- LOGICAL TM_FPEQ, TM_DFPEQ, equal_ends, overlapping
+ LOGICAL TM_FPEQ_EPS, TM_DFPEQ_TOL, equal, equal_ends, overlapping
INTEGER TM_LENSTR1, npts, ipt1, ibx1, i, ngap, vlen, status,
. nothing
REAL*8 pt, del, bhi, blo
+
+ REAL epsilon_23, epsilon
+ REAL*8 depsilon_46, depsilon, first_delta
REAL blast
CHARACTER TM_STRING*13, vbuff*128
+
+ epsilon_23 = 2.**(-23)
+ depsilon_46 = 2.**(-46)
+ epsilon_23 = 2.**(-22)
+ depsilon_46 = 2.**(-45)
ipt1 = line_subsc1(nline)
npts = line_dim(nline)
@@ -76,7 +88,11 @@
overlapping = .FALSE.
IF (nb .EQ. 2*npts) THEN
-
+
+ first_delta = line_mem(ipt1+1) - line_mem(ipt1)
+ depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / first_delta )
+ epsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / first_delta )
+
IF (line_regular(nline)) THEN
pt = line_start(nline)
@@ -85,15 +101,17 @@
blo = line_mem(ibx1+2*i)
bhi = line_mem(ibx1+2*i+1)
IF ( (pt .LT. blo) .OR. (pt .GT. bhi) ) THEN
-
- IF (TM_DFPEQ(pt,blo) .OR. TM_DFPEQ(pt,bhi) ) THEN
- nothing = 0
- ELSE
- TM_CHECK_BNDS = .FALSE.
+ IF (doubletype) THEN
+ equal = TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon)
+ ELSE
+ equal = TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi)
+ ENDIF
+ IF (.NOT. equal) THEN
+ TM_CHECK_BNDS = .FALSE.
+ RETURN
ENDIF
- RETURN
ENDIF
- pt = line_start(nline) + FLOAT(i+1)* del
+ pt = line_start(nline) + DBLE(i+1)* del
100 CONTINUE
@@ -106,16 +124,24 @@
bhi = line_mem(ibx1+2*i+1)
IF ( (pt .LT. blo) .OR. (pt .GT. bhi) ) THEN
- IF (TM_DFPEQ(pt,blo) .OR. TM_DFPEQ(pt,bhi) ) THEN
- nothing = 0
- ELSE
- TM_CHECK_BNDS = .FALSE.
+ IF (doubletype) THEN
+ equal = TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon)
+ ELSE
+ equal = TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi)
+ ENDIF
+ IF (.NOT. equal) THEN
+ TM_CHECK_BNDS = .FALSE.
+ RETURN
ENDIF
RETURN
ENDIF
IF (i .GE. 1) THEN
- equal_ends = TM_FPEQ(blast, REAL(blo))
+ IF (doubletype) THEN
+ equal_ends = TM_DFPEQ_TOL(blast, REAL(blo), depsilon)
+ ELSE
+ equal_ends = TM_FPEQ_EPS(epsilon, blast, REAL(blo))
+ ENDIF
IF (.NOT.equal_ends .AND. blo.LT.blast) THEN
overlapping = .TRUE.
GOTO 330
@@ -171,11 +197,20 @@
DO 400 i = 0, npts-1
blo = line_mem(ibx1+i)
bhi = line_mem(ibx1+i+1)
+
IF ( (pt .LT. blo) .OR. (pt .GT. bhi) ) THEN
- IF (TM_DFPEQ(pt,blo) .OR. TM_DFPEQ(pt,bhi) ) THEN
- nothing = 0
- ELSE
- TM_CHECK_BNDS = .FALSE.
+ IF (doubletype) THEN
+ IF (TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon) ) THEN
+ nothing = 0
+ ELSE
+ TM_CHECK_BNDS = .FALSE.
+ ENDIF
+ ELSE
+ IF (TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi) ) THEN
+ nothing = 0
+ ELSE
+ TM_CHECK_BNDS = .FALSE.
+ ENDIF
ENDIF
RETURN
ENDIF
@@ -190,10 +225,18 @@
blo = line_mem(ibx1+i)
bhi = line_mem(ibx1+i+1)
IF ( (pt .LT. blo) .OR. (pt .GT. bhi) ) THEN
- IF (TM_DFPEQ(pt,blo) .OR. TM_DFPEQ(pt,bhi) ) THEN
- nothing = 0
- ELSE
- TM_CHECK_BNDS = .FALSE.
+ IF (doubletype) THEN
+ IF (TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon) ) THEN
+ nothing = 0
+ ELSE
+ TM_CHECK_BNDS = .FALSE.
+ ENDIF
+ ELSE
+ IF (TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi) ) THEN
+ nothing = 0
+ ELSE
+ TM_CHECK_BNDS = .FALSE.
+ ENDIF
ENDIF
RETURN
ENDIF
diff --git a/fmt/src/tm_check_bnds_centered.F b/fmt/src/tm_check_bnds_centered.F
index 37ab8b5..422c5eb 100644
--- a/fmt/src/tm_check_bnds_centered.F
+++ b/fmt/src/tm_check_bnds_centered.F
@@ -1,4 +1,4 @@
- LOGICAL FUNCTION TM_CHECK_BNDS_CENTERED (nline)
+ LOGICAL FUNCTION TM_CHECK_BNDS_CENTERED (nline, doubletype)
*
*
* This software was developed by the Thermal Modeling and Analysis
@@ -41,24 +41,32 @@
* whether the coordinates are centered in the bound boxes, and
* whether the boxes are equal sized.
* V601 *acm* 9/19 Fix bug 1434; check bounds for regularly-spaced axes
+* V694 5/15 *acm* Match precision for bounds checks (as is done for coords).
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
external xgt_grid_data
* Argument declaration
+ LOGICAL doubletype
INTEGER nline
* Local variable declarations
- LOGICAL TM_FPEQ
+ LOGICAL TM_FPEQ_EPS, TM_DFPEQ_TOL, equal
INTEGER ipt1, npts, ibx1, i
REAL diff_hi, diff_lo, diff_last
REAL pt, del
+ REAL epsilon_23, epsilon
+ REAL*8 depsilon_46, depsilon, first_delta
ipt1 = line_subsc1(nline)
npts = line_dim(nline)
ibx1 = ipt1 + npts
+ first_delta = line_mem(ipt1+1) - line_mem(ipt1)
+ depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / first_delta )
+ epsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / first_delta )
+
IF (line_regular(nline)) THEN
pt = line_start(nline)
del = line_delta(nline)
@@ -67,7 +75,13 @@
diff_hi = line_mem(ibx1+i+1) - pt
diff_lo = pt - line_mem(ibx1+i)
- IF ( .NOT. TM_FPEQ(diff_lo, diff_hi) ) THEN
+ IF (doubletype) THEN
+ equal = TM_DFPEQ_TOL(diff_lo, diff_hi, depsilon)
+ ELSE
+ equal = TM_FPEQ_EPS(epsilon, diff_lo, diff_hi)
+ ENDIF
+
+ IF ( .NOT. equal ) THEN
TM_CHECK_BNDS_CENTERED = .FALSE.
RETURN
ENDIF
@@ -89,7 +103,12 @@
diff_hi = line_mem(ibx1+i+1) - line_mem(ipt1+i)
diff_lo = line_mem(ipt1+i)- line_mem(ibx1+i)
- IF ( .NOT. TM_FPEQ(diff_lo, diff_hi) ) THEN
+ IF (doubletype) THEN
+ equal = TM_DFPEQ_TOL(diff_lo, diff_hi, depsilon)
+ ELSE
+ equal = TM_FPEQ_EPS(epsilon, diff_lo, diff_hi)
+ ENDIF
+ IF ( .NOT. equal ) THEN
TM_CHECK_BNDS_CENTERED = .FALSE.
RETURN
ENDIF
diff --git a/fmt/src/tm_deallo_dyn_grid.F b/fmt/src/tm_deallo_dyn_grid.F
index 69a152f..e52c531 100644
--- a/fmt/src/tm_deallo_dyn_grid.F
+++ b/fmt/src/tm_deallo_dyn_grid.F
@@ -64,8 +64,10 @@
CALL TM_DEALLO_DYN_GRID_SUB(grid)
* if the grid was actually removed, then also deallocate the axes that it used
- IF ( grid .GT. max_grids
- . .AND. grid_use_cnt(grid) .EQ. 0 ) THEN
+* Check first that the grid number is in range
+
+ IF ( grid .GT. max_grids) THEN
+ IF ( grid_use_cnt(grid) .EQ. 0 ) THEN
*release claim to any dynamic lines this may use
DO 100 idim = 1, nferdims
@@ -73,6 +75,7 @@
100 CONTINUE
ENDIF
+ ENDIF
* successful completion
RETURN
diff --git a/fmt/src/tm_fmt.F b/fmt/src/tm_fmt.F
index 20430cc..e9b47a4 100644
--- a/fmt/src/tm_fmt.F
+++ b/fmt/src/tm_fmt.F
@@ -79,9 +79,9 @@
INTEGER slen, sig_left, sig_full, nleft, nright, full,
. sig_max, full10, xtra, sig_needed, pow10,
. chk10, chk10_save, waste, i, need_adjust, ind,
- . iloop
+ . iloop, width, prec_digits
REAL aval, l10
- CHARACTER*10 fmt, outstring*25, strend*25
+ CHARACTER*10 fmt, dummy_fmt, outstring*25, strend*25
* local parameters:
INTEGER TM_CHECK_NAN, TM_CHECK_INF, TM_LENSTR1,
@@ -103,9 +103,11 @@
outstring = ' '
exp_fmt = .FALSE.
added_pow10 = 0
+ need_adjust = 0
* maximum length of output string (at least 1 character long)
slen = MIN( LEN(TM_FMT), max_len )
+ slen = MIN( 18, max_len )
slen = MAX( 1, slen )
* If the value is NaN, set the string here
@@ -170,7 +172,7 @@
* the extra length and add it back later.
sig_full = MAX( sig_min, MIN( sig_max, slen-waste ) )
- need_adjust = 0
+
IF (sig_full .GT. max_int_len) THEN
need_adjust = sig_full - max_int_len
ENDIF
@@ -316,6 +318,34 @@
ENDIF
+* Ticket 2323
+* the adjustment for handling large values does not always produce
+* accurate results. Compare the result to the original value and if
+* needed use the formatting method used in ascii data listings.
+
+ READ (outstring,*) aval
+ IF (need_adjust.GT.0 .AND. ABS(val-aval).GT.0.01) THEN
+ width = 4
+ prec_digits = ABS(digits)
+ IF (digits .GT. 0) prec_digits = digits
+ CALL GET_SIG_DIGITS( val, prec_digits, nleft, nright )
+ nleft = MAX( 1, nleft )
+ width = 4
+ CALL VAR_DATA_FMT( nleft, nright, prec_digits, width,
+ . width, fmt, dummy_fmt )
+ WRITE ( outstring, fmt ) val
+ ENDIF
+
+ str_len = TM_LENSTR1( outstring )
+ IF (INDEX(outstring, '0E') .GT. 0) THEN
+ ind = INDEX(outstring, '0E')
+ DO WHILE (ind .GT. 0)
+ strend = outstring(ind+1:str_len)
+ outstring = outstring(1:ind-1)//strend
+ ind = INDEX(outstring, '0E')
+ ENDDO
+ ENDIF
+
str_len = TM_LENSTR1( outstring )
IF (INDEX(outstring, '0E') .GT. 0) THEN
ind = INDEX(outstring, '0E')
diff --git a/fmt/src/tm_init_dset.F b/fmt/src/tm_init_dset.F
index d9c3f22..e58f3bf 100644
--- a/fmt/src/tm_init_dset.F
+++ b/fmt/src/tm_init_dset.F
@@ -108,6 +108,7 @@
* V686 1/14 *acm* Fix ticket 2129: A bug in the fix to 2128.
* V686 1/27/14 *acm* further fix for 2129: make sure a search for a .nc or .cdf file is
* done in path FER_DATA.
+* V693+ *sh* 12/14 added blank separator into error message 5600
* arguments:
* dset_name - filename of DESCRIPTOR file (input)
@@ -558,7 +559,7 @@
5600 CALL TM_ERRMSG (merr_notsupport, status, 'TM_INIT_DSET',
. dset_num, no_stepfile,
- . 'Dataset type not supported for double-precision Ferret'
+ . 'Dataset type not supported for double-precision Ferret '
. //dset_name,
. no_errstring, *9900)
diff --git a/fmt/src/tm_loc_string.F b/fmt/src/tm_loc_string.F
index 31f1d56..86eb9a2 100644
--- a/fmt/src/tm_loc_string.F
+++ b/fmt/src/tm_loc_string.F
@@ -49,12 +49,14 @@
* local variable declarations
INTEGER STR_UPCASE, TM_LENSTR1,
- . vms_stat, sublen, strlen, i, loc
- CHARACTER*512 up_string, up_sub, newstring
+ . vms_stat, sublen, strlen, i, loc, maxstr
+
+ PARAMETER (maxstr = 2048)
+ CHARACTER*(maxstr) up_string, up_sub, newstring
* length of substring
- sublen = TM_LENSTR1( substring )
- strlen = TM_LENSTR1( string )
+ sublen = MIN(maxstr, TM_LENSTR1( substring ))
+ strlen = MIN(maxstr, TM_LENSTR1( string ))
IF (ioc .LT. 1) ioc = 1
diff --git a/fmt/src/tm_make_basic_axis.F b/fmt/src/tm_make_basic_axis.F
index d077ec2..8cd186d 100644
--- a/fmt/src/tm_make_basic_axis.F
+++ b/fmt/src/tm_make_basic_axis.F
@@ -46,6 +46,9 @@
* V550 *sh* 11/02 - initialize line_modulo_len (just for good house keeping)
* V581 *acm* 6/05 - For fix to bug 1271, add flag line_shift_origin
* V63 *acm* 9/09 - Fix bug 1686: set line_name_orig
+* v694 1/15 *acm* for ticket 2227: if a dimension from a nc file is not also a
+* 1-D coordinate var, don't write the axis Ferret creates
+
* argument definitions:
* name - name for axis
@@ -94,6 +97,7 @@
line_shift_origin(iaxis) = .FALSE.
line_tunit(iaxis) = real4_init
line_direction(iaxis) = 'NA'
+ line_dim_only(iaxis) = .TRUE.
* successful completion
status = merr_ok
diff --git a/fmt/src/tm_note.F b/fmt/src/tm_note.F
index 638c9e6..dbbf172 100644
--- a/fmt/src/tm_note.F
+++ b/fmt/src/tm_note.F
@@ -44,7 +44,13 @@
* *sh* 2/28/95 - allow message to be sent to alternative location
* *js* 12.12.97- changed to use tm_split_list
* 1/03 - *kob* g77 port - Need to use risc_buff for arbitrary concatenations
-
+* 12/13 *sh* - enhancement to support multi-line outputs in one call by
+* embedding pCR characters into string as line separators
+* Note that the Ferret stack of output calls could use some cleanup since
+* Ferret lib routines call TMAP_FORMAT lib TM_SPLIT_MESSAGE which in turn
+* calls back into Ferret lib to SPLIT_LIST
+* WRITE_MULTI is a Ferret lib routine that has the functionality we need.
+* But it calls TM_SPLIT_MESSAGE. By calling it here we add to the mess
* calling argument declarations:
INTEGER lunit
@@ -70,7 +76,7 @@
c WRITE ( lunit, 3000 ) string(:slen)
c 3000 FORMAT ( ' *** NOTE: ',A )
risc_buff = string
- call tm_split_message(lunit, ' *** NOTE: '//risc_buff)
+ CALL WRITE_MULTI(lunit, ' *** NOTE: '//risc_buff)
ENDIF
RETURN
diff --git a/fmt/src/tm_switch_nan.c b/fmt/src/tm_switch_nan.c
index e3c75e8..efbb8c9 100644
--- a/fmt/src/tm_switch_nan.c
+++ b/fmt/src/tm_switch_nan.c
@@ -47,19 +47,22 @@
/* *kob* - 2/18/99 */
/* *acm* 1/12 - Ferret 6.8 ifdef double_p for double-precision ferret, see the
-* definition of macro DFTYPE in ferretmacros.h.
+/* definition of macro DFTYPE in ferretmacros.h.
+/* *acm* V6931 12/14 Fix ticket 2223: need to use the Ferret missing-value flag
+/* which is now passed in as an argument.
*/
-void FORTRAN(switch_nan)(bad, missing)
+void FORTRAN(switch_nan)(bad, missing, bad_val)
DFTYPE *bad;
DFTYPE *missing;
+ DFTYPE *bad_val;
{
if (isnan(*bad) || isnan(*missing))
{
if (isnan(*bad))
{
*missing = *bad;
- *bad = bad_val4;
+ *bad = *bad_val;
}
}
}
diff --git a/fmt/src/tm_ww_ax_1_n.F b/fmt/src/tm_ww_ax_1_n.F
index 129235e..5e5d69f 100644
--- a/fmt/src/tm_ww_ax_1_n.F
+++ b/fmt/src/tm_ww_ax_1_n.F
@@ -47,7 +47,7 @@
REAL*8 lo, hi
* internal variable declarations
- INTEGER isub1, llen
+ INTEGER isub1, llen, iiaxis
IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
lo = unspecified_val8
@@ -56,8 +56,10 @@
lo = line_start(axis)
hi = line_start(axis) + (line_dim(axis)-1)*line_delta(axis)
ELSE
- isub1 = line_subsc1(axis)
- llen = line_dim(axis)
+ iiaxis = axis
+ IF (line_parent(axis) .NE. 0) iiaxis = line_parent(axis)
+ isub1 = line_subsc1(iiaxis)
+ llen = line_dim(iiaxis)
lo = line_mem(isub1)
hi = line_mem(isub1 + llen - 1)
ENDIF
diff --git a/fmt/src/tm_ww_axlims.F b/fmt/src/tm_ww_axlims.F
index f2b5a7f..8c73210 100644
--- a/fmt/src/tm_ww_axlims.F
+++ b/fmt/src/tm_ww_axlims.F
@@ -48,7 +48,7 @@
REAL*8 lo, hi
* internal variable declarations
- INTEGER isub1, llen
+ INTEGER isub1, llen, iiaxis
IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
lo = unspecified_val8
@@ -57,8 +57,10 @@
lo = line_start(axis) - 0.5D0*line_delta(axis)
hi = lo + line_dim(axis)*line_delta(axis)
ELSE
- isub1 = line_subsc1(axis)
- llen = line_dim(axis)
+ iiaxis = axis
+ IF (line_parent(axis) .NE. 0) iiaxis = line_parent(axis)
+ isub1 = line_subsc1(iiaxis)
+ llen = line_dim(iiaxis)
hi = line_mem(isub1 + 2*llen)
lo = line_mem(isub1 + llen)
ENDIF
diff --git a/fmt/src/xdset_info_data.F b/fmt/src/xdset_info_data.F
index 34da8f2..8f587bd 100644
--- a/fmt/src/xdset_info_data.F
+++ b/fmt/src/xdset_info_data.F
@@ -65,6 +65,7 @@
* v552 *acm* 4/03 Initialize ds_var_off, ds_var_scale, ds_var_scaleit
* v552 *acm* 5/03 change ds_var_code length to 128
* v604 *acm* 7/07 increase length of ds_name, ds_des_name
+* v695+ *sh* 5/15 initialize new ds_var_c_cache_ptr
#include "tmap_dset.parm"
include 'tmap_dims.parm' ! parameter definitions
@@ -144,5 +145,6 @@
DATA ds_var_off /maxvars*0.0/
DATA ds_var_scale /maxvars*1.0/
DATA ds_var_scaleit /maxvars*.FALSE./
+ DATA ds_var_c_cache_ptr /maxvars*0.0/
END
diff --git a/jnls/go/focean.jnl b/jnls/go/focean.jnl
index 68b9a41..b6090e1 100644
--- a/jnls/go/focean.jnl
+++ b/jnls/go/focean.jnl
@@ -5,6 +5,8 @@
! 10/93 - updated for Ferret V3.01
! 2/94 - added [basemap]
! 11/94 - added transparent overlays and "detail" control
+! 3/15 - add region improvements as in fland. Make the default
+! dataset etopo20.
! Description: Plot or overlay an area-filled map of the oceans
@@ -44,11 +46,15 @@ query/ignore $4%not_required|detailed|solid|all> <4th argument of GO basemap may
set data/save
-set data etopo$1"60"
+def sym xlo_hack ($xaxis_min%0%)
+def sym xhi_hack ($xaxis_max%360%)
+def sym map_reg = [$5%x=($xlo_hack):($xhi_hack)%]
-shade/nolab/nokey/lev=$4"(-10000,0,10000)|detailed>(-200,0,50)(-1000,-200,100)(-10000,0,1000)|solid>(-10000,0,10000)|all>(-200,200,50)(-1000,1000,200)(-8000,8000,1000)"/pal=$2"gray"$3"/overlay|basemap> |*>/overlay" $3"rose|transparent>if mod(i+j,2) eq 0 then rose|*>rose"
+set data etopo$1"20"
-cancel data etopo$1"60"
+shade/nolab/nokey/lev=$4"(-10000,0,10000)|detailed>(-200,0,50)(-1000,-200,100)(-10000,0,1000)|solid>(-10000,0,10000)|all>(-200,200,50)(-1000,1000,200)(-8000,8000,1000)"/pal=$2"gray"$3"/overlay|basemap> |*>/overlay" $3"rose($map_reg)|transparent>if mod(i+j,2) eq 0 then rose($map_reg)|*>rose($map_reg)"
+
+cancel data etopo$1"20"
set data/restore
set mode/last verify
diff --git a/jnls/go/mp_grid.jnl b/jnls/go/mp_grid.jnl
index dfea95e..229147b 100644
--- a/jnls/go/mp_grid.jnl
+++ b/jnls/go/mp_grid.jnl
@@ -23,6 +23,7 @@ define symbol mp_grid_variable = $1
let mp_x = x[g=($mp_grid_variable)]
let mp_y = y[g=($mp_grid_variable)]
+set grid ($mp_grid_variable)
!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++!
set mode/last verify
diff --git a/jnls/go/mp_land.jnl b/jnls/go/mp_land.jnl
index 279d916..159d628 100644
--- a/jnls/go/mp_land.jnl
+++ b/jnls/go/mp_land.jnl
@@ -32,6 +32,8 @@
! 2) use GO line_samples to view the first 6 pen numbers
! Higher pen numbers cycle with thicker lines (max 18)
! 3) For more control over basemaps use "GO basemap"
+!
+! ACM 4/15 Fix ticket 2256: modulo replications for continents if argument 1 is not given
! test argument before performing any actions
query/ignore $1%1|black|red|green|blue|thick|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|N|<GO mp_land [pen or "N"] ["basemap"] [pen] [pen] with pen = 0(back), 1(fore), thick, 2-18 or a color%
@@ -103,7 +105,6 @@ $1"ppl plot|N>QUERY/IGNORE stuff |*>ppl plot"$2"/overlay|basemap> |*>/overlay"
! Draw any lines outside 0 to 360
-IF ($1"0|*>1") THEN
IF `landi_addx NE 0` THEN
set grid continent_lon
@@ -130,8 +131,6 @@ IF `landi_subx NE 0` THEN
$1"ppl plot|N>QUERY/IGNORE stuff |*>ppl plot"$2"/overlay|basemap> |*>/overlay"
ENDIF
-ENDIF ! lines outside 0 to 360
-
! **** now the optional country borders
set grid COUNTRY_LON
let/quiet mp_lambda = if (COUNTRY_LON ge mp_xmin and COUNTRY_LON le mp_xmax and COUNTRY_LAT ge mp_ymin and COUNTRY_LAT le mp_ymax) then (COUNTRY_LON * deg2rad)
diff --git a/palettes/QQC_V3_by_level.spk b/palettes/QQC_V3_by_level.spk
new file mode 100644
index 0000000..144ce84
--- /dev/null
+++ b/palettes/QQC_V3_by_level.spk
@@ -0,0 +1,16 @@
+RGB_Mapping By_Level
+
+! Level Red Green Blue
+
+ 1 0 0 100 ! blue A
+ 2 0 60 30 ! green B
+ 3 100 90 0 ! yellow C
+ 4 100 0 0 ! bright red D
+ 5 73 64 45 ! tan E Experimental
+ 6 70 0 100 ! purple F
+ 7 80 90 10 ! light green N New
+ 8 100 70 100 ! pink Q Conflicting
+ 9 0 100 100 ! cyan U Updated
+ 10 100 70 0 ! orange S Suspended
+ 11 20 20 20 ! Dk Gray X Excluded
+
diff --git a/palettes/blue_gold.spk b/palettes/blue_gold.spk
new file mode 100755
index 0000000..e7a9410
--- /dev/null
+++ b/palettes/blue_gold.spk
@@ -0,0 +1,9 @@
+! blue-gold color palette; good for color-impaired viewers
+ 0 3 11 34
+ 5 10 20 57
+ 12 13 36 65
+ 40 11 56 75
+ 45 25 71 76
+ 80 99 95 60
+ 90 99 80 1
+ 100 67 46 8
diff --git a/palettes/blue_green_gold.spk b/palettes/blue_green_gold.spk
new file mode 100644
index 0000000..09a242f
--- /dev/null
+++ b/palettes/blue_green_gold.spk
@@ -0,0 +1,10 @@
+! Reverse of Yellow-Green_blue spectrum from Colorbrewer
+! Sequential spectrum: friendly to colorblind, b/w printers, all displays
+ 0 3 11 34
+ 14 10 20 57
+ 28 13 36 65
+ 42 11 56 75
+ 56 25 71 76
+ 70 99 95 60
+ 85 99 80 1
+ 100 67 46 8 !55 32 4
diff --git a/palettes/blue_purple_orange.spk b/palettes/blue_purple_orange.spk
new file mode 100644
index 0000000..fa8d5a0
--- /dev/null
+++ b/palettes/blue_purple_orange.spk
@@ -0,0 +1,12 @@
+! Blue to Orange, 12 steps
+! http://geography.uoregon.edu/datagraphics/color_scales.htm
+ 0.0 0.0 16.7 100.0
+ 9.1 10.0 40.0 100.0
+ 18.2 20.0 60.0 100.0
+ 27.3 40.0 80.0 100.0
+ 50.0 60 0 100
+ 63.6 79.7 29.7 0.8
+ 72.7 90.0 50.0 40.0
+ 81.8 100.0 60.0 20.0
+ 90.9 100.0 40.0 10.0
+ 100.0 100.0 16.7 0.0
diff --git a/palettes/bluegrayscale.spk b/palettes/bluegrayscale.spk
new file mode 100644
index 0000000..ad1e0d6
--- /dev/null
+++ b/palettes/bluegrayscale.spk
@@ -0,0 +1,3 @@
+ 0.0 25.0 35.0 47.0
+ 100.0 87.0 93.5 95.0
+
diff --git a/palettes/coralreefwatch_dhw_value_white.spk b/palettes/coralreefwatch_dhw_value_white.spk
new file mode 100644
index 0000000..4a6f7a4
--- /dev/null
+++ b/palettes/coralreefwatch_dhw_value_white.spk
@@ -0,0 +1,20 @@
+RGB_Mapping By_value
+ 0.5 98.0 98.0 98.0
+ 1.0 39.2 39.2 100.0
+ 2.5 39.2 39.2 78.4
+ 3.5 39.2 39.2 58.8
+ 4.5 0.0 54.9 0.0
+ 5.5 58.8 66.7 0.0
+ 6.5 78.4 78.4 0.0
+ 7.5 58.8 78.4 0.0
+ 8.5 78.4 100.0 47.1
+ 9.5 100.0 100.0 0.0
+10.5 100.0 78.4 0.0
+11.5 100.0 62.7 0.0
+12.5 100.0 49.0 0.0
+13.5 78.4 19.6 39.2
+14.5 68.6 19.6 29.4
+15.5 58.8 0.0 58.8
+16.5 78.4 0.0 78.4
+17 75.0 75.0 75.0
+
\ No newline at end of file
diff --git a/palettes/green_soft.spk b/palettes/green_soft.spk
new file mode 100644
index 0000000..05d323e
--- /dev/null
+++ b/palettes/green_soft.spk
@@ -0,0 +1,12 @@
+ 0 74 60 48
+100 74 60 48
+
+! 66 75 68 ! greyish
+! 56 75 68 ! blueish, darker
+! 66 75 48 ! yellowish
+! 61 80 48 ! brighter
+! 90 100 65 ! pale bright
+! 77 95 89 ! pale mint
+! 82 92 89 ! pale mint
+! 77.7 91.4 89.5 ! bluey, pale
+! 58 71 69
diff --git a/palettes/inverse_medium_rainbow.spk b/palettes/inverse_medium_rainbow.spk
new file mode 100644
index 0000000..343016e
--- /dev/null
+++ b/palettes/inverse_medium_rainbow.spk
@@ -0,0 +1,10 @@
+! Another rainbow palette, reversed
+ 0.0 60.0 0.0 0.0 ! dark red
+ 9.1 100.0 0.0 0.0 ! red
+ 27.3 100.0 80.0 40.0 ! light orange-yellow
+ 36.4 100.0 93.3 20.0 ! yellow
+ 50.0 0.0 70.0 20.0 ! spring green
+ 63.6 20.0 93.3 100.0 ! light sky blue
+ 75.0 40.0 80.0 100.0 ! darker sky blue
+ 90.9 10.0 40.0 100.0 ! royal blue
+ 100.0 80.0 0.0 100.0 ! violet
diff --git a/palettes/koppen.spk b/palettes/koppen.spk
new file mode 100644
index 0000000..5f2af54
--- /dev/null
+++ b/palettes/koppen.spk
@@ -0,0 +1,18 @@
+RGB_Mapping By_Value
+
+! Level Red Green Blue
+
+1 55 0 55
+2 75 0 75
+3 95 0 95
+4 90 40 40
+5 90 30 30
+6 60 90 60
+7 5 80 5
+8 0 60 0
+9 0 50 0
+10 0 40 0
+11 20 20 80
+12 60 60 90
+13 50 50 50
+14 95 95 95
diff --git a/palettes/lightgray_bottom0.spk b/palettes/lightgray_bottom0.spk
new file mode 100644
index 0000000..4eb4cdd
--- /dev/null
+++ b/palettes/lightgray_bottom0.spk
@@ -0,0 +1,16 @@
+! palette suited to data with low significance at low values
+! *sh* 2/00
+
+RGB_Mapping Percent
+
+! Lev R G B
+0 95. 98. 98.
+24 50. 100. 100.
+45 30. 30. 100.
+56 20. 20. 50.
+67 10. 60. 10.
+78 50. 100. 50.
+89 100. 100. 0.
+100 100. 0. 0.
+
+
diff --git a/palettes/medium_rainbow.spk b/palettes/medium_rainbow.spk
new file mode 100644
index 0000000..3385e7d
--- /dev/null
+++ b/palettes/medium_rainbow.spk
@@ -0,0 +1,10 @@
+! Another rainbow palette
+ 0.0 80.0 0.0 100.0 ! violet
+ 9.1 10.0 40.0 100.0 ! royal blue
+ 27.3 40.0 80.0 100.0 ! darker sky blue
+ 36.4 20.0 93.3 100.0 ! light sky blue
+ 50.0 0.0 70.0 20.0 ! spring green
+ 63.6 100.0 93.3 20.0 ! yellow
+ 75.0 100.0 80.0 40.0 ! light orange-yellow
+ 90.9 100.0 0.0 0.0 ! red
+ 100.0 60.0 0.0 0.0 ! dark red
diff --git a/palettes/woce2.spk b/palettes/woce2.spk
new file mode 100644
index 0000000..fc1fd4b
--- /dev/null
+++ b/palettes/woce2.spk
@@ -0,0 +1,7 @@
+RGB_Mapping By_value
+
+! Level Red Green Blue
+ 2 0 20 100 ! blue ! 20.0 93.0 100.0 ! turquoise
+ 3 99 60 16 ! yellow-orange
+ 4 0 0 0 ! black
+
diff --git a/platform_specific.mk.i386-linux b/platform_specific.mk.i386-linux
index d026ff9..ebfa267 100644
--- a/platform_specific.mk.i386-linux
+++ b/platform_specific.mk.i386-linux
@@ -23,6 +23,14 @@ else
CAIRO_INCLUDE = -I$(CAIRO_DIR)/include -I$(CAIRO_DIR)/include/cairo
endif
+ifeq ($(strip $(PIXMAN_DIR)),)
+ PIXMAN_LIBDIR =
+ PIXMAN_INCLUDE =
+else
+ PIXMAN_LIBDIR = $(PIXMAN_DIR)/lib
+ PIXMAN_INCLUDE = -I$(PIXMAN_DIR)/include
+endif
+
ifeq ($(strip $(HDF5_DIR)),)
HDF5_LIBDIR =
else
@@ -38,12 +46,14 @@ endif
-I$(DIR_PREFIX)/fer/common \
-I$(DIR_PREFIX)/fer/grdel \
-I$(DIR_PREFIX)/fer/cferbind \
+ -I$(DIR_PREFIX)/fer/ccr \
-I$(DIR_PREFIX)/fmt/cmn \
-I$(DIR_PREFIX)/ppl/include \
-I$(DIR_PREFIX)/ppl/tmap_inc \
-I$(DIR_PREFIX)/pyfermod \
-I$(DIR_PREFIX)/external_functions/ef_utility \
$(CAIRO_INCLUDE) \
+ $(PIXMAN_INCLUDE) \
-I/usr/include/pango-1.0 \
-I/usr/include/glib-2.0 \
-I/usr/lib/glib-2.0/include \
diff --git a/platform_specific.mk.i386-linux-gnu b/platform_specific.mk.i386-linux-gnu
index 614d8a0..97bd2b4 100644
--- a/platform_specific.mk.i386-linux-gnu
+++ b/platform_specific.mk.i386-linux-gnu
@@ -23,6 +23,14 @@ else
CAIRO_INCLUDE = -I$(CAIRO_DIR)/include -I$(CAIRO_DIR)/include/cairo
endif
+ifeq ($(strip $(PIXMAN_DIR)),)
+ PIXMAN_LIBDIR =
+ PIXMAN_INCLUDE =
+else
+ PIXMAN_LIBDIR = $(PIXMAN_DIR)/lib
+ PIXMAN_INCLUDE = -I$(PIXMAN_DIR)/include
+endif
+
ifeq ($(strip $(HDF5_DIR)),)
HDF5_LIBDIR =
else
@@ -38,12 +46,14 @@ endif
-I$(DIR_PREFIX)/fer/common \
-I$(DIR_PREFIX)/fer/grdel \
-I$(DIR_PREFIX)/fer/cferbind \
+ -I$(DIR_PREFIX)/fer/ccr \
-I$(DIR_PREFIX)/fmt/cmn \
-I$(DIR_PREFIX)/ppl/include \
-I$(DIR_PREFIX)/ppl/tmap_inc \
-I$(DIR_PREFIX)/pyfermod \
-I$(DIR_PREFIX)/external_functions/ef_utility \
$(CAIRO_INCLUDE) \
+ $(PIXMAN_INCLUDE) \
-I/usr/include/pango-1.0 \
-I/usr/include/glib-2.0 \
-I/usr/lib/i386-linux-gnu/glib-2.0/include \
diff --git a/platform_specific.mk.intel-mac b/platform_specific.mk.intel-mac
index 8d06d0f..e1682e9 100644
--- a/platform_specific.mk.intel-mac
+++ b/platform_specific.mk.intel-mac
@@ -10,7 +10,8 @@
# which should have been included prior to this include.
#
- CAIRO_LIBDIR =
+ CAIRO_LIBDIR =
+ PIXMAN_LIBDIR =
HDF5_LIBDIR =
NETCDF4_LIBDIR = $(NETCDF4_DIR)/lib
diff --git a/platform_specific.mk.x86_64-linux b/platform_specific.mk.x86_64-linux
index 0c5ee85..d1ddca9 100644
--- a/platform_specific.mk.x86_64-linux
+++ b/platform_specific.mk.x86_64-linux
@@ -25,6 +25,15 @@ else
CAIRO_INCLUDE = -I$(CAIRO_DIR)/include -I$(CAIRO_DIR)/include/cairo
endif
+ifeq ($(strip $(PIXMAN_DIR)),)
+ PIXMAN_LIBDIR =
+ PIXMAN_INCLUDE =
+else
+# PIXMAN_LIBDIR = $(PIXMAN_DIR)/lib
+ PIXMAN_LIBDIR = $(PIXMAN_DIR)/lib64
+ PIXMAN_INCLUDE = -I$(PIXMAN_DIR)/include
+endif
+
ifeq ($(strip $(HDF5_DIR)),)
HDF5_LIBDIR =
else
@@ -42,12 +51,14 @@ endif
-I$(DIR_PREFIX)/fer/common \
-I$(DIR_PREFIX)/fer/grdel \
-I$(DIR_PREFIX)/fer/cferbind \
+ -I$(DIR_PREFIX)/fer/ccr \
-I$(DIR_PREFIX)/fmt/cmn \
-I$(DIR_PREFIX)/ppl/include \
-I$(DIR_PREFIX)/ppl/tmap_inc \
-I$(DIR_PREFIX)/pyfermod \
-I$(DIR_PREFIX)/external_functions/ef_utility \
$(CAIRO_INCLUDE) \
+ $(PIXMAN_INCLUDE) \
-I/usr/include/pango-1.0 \
-I/usr/include/glib-2.0 \
-I/usr/lib64/glib-2.0/include \
diff --git a/platform_specific.mk.x86_64-linux-gnu b/platform_specific.mk.x86_64-linux-gnu
index fb315ed..c4a3e7f 100644
--- a/platform_specific.mk.x86_64-linux-gnu
+++ b/platform_specific.mk.x86_64-linux-gnu
@@ -25,6 +25,15 @@ else
CAIRO_INCLUDE = -I$(CAIRO_DIR)/include -I$(CAIRO_DIR)/include/cairo
endif
+ifeq ($(strip $(PIXMAN_DIR)),)
+ PIXMAN_LIBDIR =
+ PIXMAN_INCLUDE =
+else
+ PIXMAN_LIBDIR = $(PIXMAN_DIR)/lib
+# PIXMAN_LIBDIR = $(PIXMAN_DIR)/lib64
+ PIXMAN_INCLUDE = -I$(PIXMAN_DIR)/include
+endif
+
ifeq ($(strip $(HDF5_DIR)),)
HDF5_LIBDIR =
else
@@ -42,12 +51,14 @@ endif
-I$(DIR_PREFIX)/fer/common \
-I$(DIR_PREFIX)/fer/grdel \
-I$(DIR_PREFIX)/fer/cferbind \
+ -I$(DIR_PREFIX)/fer/ccr \
-I$(DIR_PREFIX)/fmt/cmn \
-I$(DIR_PREFIX)/ppl/include \
-I$(DIR_PREFIX)/ppl/tmap_inc \
-I$(DIR_PREFIX)/pyfermod \
-I$(DIR_PREFIX)/external_functions/ef_utility \
$(CAIRO_INCLUDE) \
+ $(PIXMAN_INCLUDE) \
-I/usr/include/pango-1.0 \
-I/usr/include/glib-2.0 \
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include \
diff --git a/ppl/complot/SOURCE_FILES b/ppl/complot/SOURCE_FILES
index bedcb1a..ffb9f2a 100644
--- a/ppl/complot/SOURCE_FILES
+++ b/ppl/complot/SOURCE_FILES
@@ -50,8 +50,11 @@ range_dm.F\
rangel.F\
rotate.F\
scale3.F\
+special_sym_code.F\
symbel.F\
+symbel_hershey.F\
symbol.F\
+symwid.F\
tabmv.F\
teklun.F\
teknme.F\
diff --git a/ppl/complot/gksmv.F b/ppl/complot/gksmv.F
index f23c464..9f8ff27 100644
--- a/ppl/complot/gksmv.F
+++ b/ppl/complot/gksmv.F
@@ -47,6 +47,12 @@ c construct device dependent plotting code
c
c v6.61 ACM 4/2010 Fix bug 1396 - dots between dashes on some displays.
c Do not make a call to GPL on "move with the pen up".
+C
+C v6.93 KMS 11/2014 Rename IPT, X, and Y in GKPLOT to ipline, xpline,
+C and ypline, and move to a common block so that it
+C does not depend on local variables being static
+C (similar to what was done in gksmv_makedot.F).
+C Increase the maximum back up to 10000.
include 'pltcom_dat.decl'
include 'PLTCOM.DAT'
@@ -73,29 +79,23 @@ c Do not make a call to GPL on "move with the pen up".
call moveabs2(xn,yn)
endif
#else
-* *jd* 1.9.90 Max was 10,000
- integer max
- parameter (max=100)
-* *jd* 1.9.90
-
- DIMENSION X(max),Y(max)
-
- DATA IPT/0/
+ INCLUDE 'gkplot.cmn'
+ DATA ipline/0/
- IF(IP.EQ.0)THEN
- CALL DOIT(IPT,X,Y)
- IPT=1
- ELSE
- IPT=IPT+1
- IF(IPT.GT.max)THEN
- CALL DOIT(max,X,Y)
- IPT=2
- X(1)=X(max)
- Y(1)=Y(max)
- ENDIF
- ENDIF
- X(IPT)=XN
- Y(IPT)=YN
+ IF ( IP .EQ. 0 ) THEN
+ CALL DOIT(ipline,xpline,ypline)
+ ipline=1
+ ELSE
+ ipline=ipline+1
+ IF ( ipline .GT. maxpline ) THEN
+ CALL DOIT(maxpline,xpline,ypline)
+ ipline=2
+ xpline(1) = xpline(maxpline)
+ ypline(1) = ypline(maxpline)
+ ENDIF
+ ENDIF
+ xpline(ipline) = XN
+ ypline(ipline) = YN
#endif
RETURN
ENTRY PPLGFLUSH
@@ -103,8 +103,8 @@ c Do not make a call to GPL on "move with the pen up".
return
end
#else
- CALL DOIT(IPT,X,Y)
- IPT=0
+ CALL DOIT(ipline,xpline,ypline)
+ ipline=0
RETURN
END
SUBROUTINE DOIT(IPT,X,Y)
diff --git a/ppl/complot/special_sym_code.F b/ppl/complot/special_sym_code.F
new file mode 100644
index 0000000..b8844b5
--- /dev/null
+++ b/ppl/complot/special_sym_code.F
@@ -0,0 +1,278 @@
+ SUBROUTINE SPECIAL_SYM_CODE (text, decicode)
+
+C for any of a long list of text names used in html for special symbols, return
+C the decimal code. We will use this to make the UAF8 unicode for special characters
+C in the PyFerret fonts
+
+C Simplisitic implelentation - better to have the info in a file which could be
+C updated?
+
+ CHARACTER*(*) text
+ INTEGER decicode
+
+C Initialize
+ decicode = -1
+
+ IF (text .EQ. 'bksp') decicode = 8
+
+C Math Greek and Symbols
+ IF (text .EQ. 'fnof') decicode = 402
+ IF (text .EQ. 'Alpha') decicode = 913
+ IF (text .EQ. 'Beta') decicode = 914
+ IF (text .EQ. 'Gamma') decicode = 915
+ IF (text .EQ. 'Delta') decicode = 916
+ IF (text .EQ. 'Epsilon') decicode = 917
+ IF (text .EQ. 'Zeta') decicode = 918
+ IF (text .EQ. 'Eta') decicode = 919
+ IF (text .EQ. 'Theta') decicode = 920
+ IF (text .EQ. 'Iota') decicode = 921
+ IF (text .EQ. 'Kappa') decicode = 922
+ IF (text .EQ. 'Lambda') decicode = 923
+ IF (text .EQ. 'Mu') decicode = 924
+ IF (text .EQ. 'Nu') decicode = 925
+ IF (text .EQ. 'Xi') decicode = 926
+ IF (text .EQ. 'Omicron') decicode = 927
+ IF (text .EQ. 'Pi') decicode = 928
+ IF (text .EQ. 'Rho') decicode = 929
+ IF (text .EQ. 'Sigma') decicode = 931
+ IF (text .EQ. 'Tau') decicode = 932
+ IF (text .EQ. 'Upsilon') decicode = 933
+ IF (text .EQ. 'Phi') decicode = 934
+ IF (text .EQ. 'Chi') decicode = 935
+ IF (text .EQ. 'Psi') decicode = 936
+ IF (text .EQ. 'Omega') decicode = 937
+ IF (text .EQ. 'alpha') decicode = 945
+ IF (text .EQ. 'beta') decicode = 946
+ IF (text .EQ. 'gamma') decicode = 947
+ IF (text .EQ. 'delta') decicode = 948
+ IF (text .EQ. 'epsilon') decicode = 949
+ IF (text .EQ. 'zeta') decicode = 950
+ IF (text .EQ. 'eta') decicode = 951
+ IF (text .EQ. 'theta') decicode = 952
+ IF (text .EQ. 'iota') decicode = 953
+ IF (text .EQ. 'kappa') decicode = 954
+ IF (text .EQ. 'lambda') decicode = 955
+ IF (text .EQ. 'mu') decicode = 956
+ IF (text .EQ. 'nu') decicode = 957
+ IF (text .EQ. 'xi') decicode = 958
+ IF (text .EQ. 'omicron') decicode = 959
+ IF (text .EQ. 'pi') decicode = 960
+ IF (text .EQ. 'rho') decicode = 961
+ IF (text .EQ. 'sigmaf') decicode = 962
+ IF (text .EQ. 'sigma') decicode = 963
+ IF (text .EQ. 'tau') decicode = 964
+ IF (text .EQ. 'upsilon') decicode = 965
+ IF (text .EQ. 'phi') decicode = 966
+ IF (text .EQ. 'chi') decicode = 967
+ IF (text .EQ. 'psi') decicode = 968
+ IF (text .EQ. 'omega') decicode = 969
+ IF (text .EQ. 'thetasym') decicode = 977
+ IF (text .EQ. 'upsih') decicode = 978
+ IF (text .EQ. 'piv') decicode = 982
+ IF (text .EQ. 'bull') decicode = 8226
+ IF (text .EQ. 'hellip') decicode = 8230
+ IF (text .EQ. 'prime') decicode = 8242
+ IF (text .EQ. 'Prime') decicode = 8243
+ IF (text .EQ. 'oline') decicode = 8254
+ IF (text .EQ. 'frasl') decicode = 8260
+ IF (text .EQ. 'weierp') decicode = 8472
+ IF (text .EQ. 'image') decicode = 8465
+ IF (text .EQ. 'real') decicode = 8476
+ IF (text .EQ. 'trade') decicode = 8482
+ IF (text .EQ. 'alefsym') decicode = 8501
+ IF (text .EQ. 'larr') decicode = 8592
+ IF (text .EQ. 'uarr') decicode = 8593
+ IF (text .EQ. 'rarr') decicode = 8594
+ IF (text .EQ. 'darr') decicode = 8595
+ IF (text .EQ. 'harr') decicode = 8596
+ IF (text .EQ. 'crarr') decicode = 8629
+ IF (text .EQ. 'lArr') decicode = 8656
+ IF (text .EQ. 'uArr') decicode = 8657
+ IF (text .EQ. 'rArr') decicode = 8658
+ IF (text .EQ. 'dArr') decicode = 8659
+ IF (text .EQ. 'hArr') decicode = 8660
+ IF (text .EQ. 'forall') decicode = 8704
+ IF (text .EQ. 'part') decicode = 8706
+ IF (text .EQ. 'exist') decicode = 8707
+ IF (text .EQ. 'empty') decicode = 8709
+ IF (text .EQ. 'nabla') decicode = 8711
+ IF (text .EQ. 'isin') decicode = 8712
+ IF (text .EQ. 'notin') decicode = 8713
+ IF (text .EQ. 'ni') decicode = 8715
+ IF (text .EQ. 'prod') decicode = 8719
+ IF (text .EQ. 'sum') decicode = 8721
+ IF (text .EQ. 'minus') decicode = 8722
+ IF (text .EQ. 'lowast') decicode = 8727
+ IF (text .EQ. 'radic') decicode = 8730
+ IF (text .EQ. 'prop') decicode = 8733
+ IF (text .EQ. 'infin') decicode = 8734
+ IF (text .EQ. 'ang') decicode = 8736
+ IF (text .EQ. 'and') decicode = 8743
+ IF (text .EQ. 'or') decicode = 8744
+ IF (text .EQ. 'cap') decicode = 8745
+ IF (text .EQ. 'cup') decicode = 8746
+ IF (text .EQ. 'int') decicode = 8747
+ IF (text .EQ. 'there4') decicode = 8756
+ IF (text .EQ. 'sim') decicode = 8764
+ IF (text .EQ. 'cong') decicode = 8773
+ IF (text .EQ. 'asymp') decicode = 8776
+ IF (text .EQ. 'ne') decicode = 8800
+ IF (text .EQ. 'equiv') decicode = 8801
+ IF (text .EQ. 'le') decicode = 8804
+ IF (text .EQ. 'ge') decicode = 8805
+ IF (text .EQ. 'sub') decicode = 8834
+ IF (text .EQ. 'sup') decicode = 8835
+ IF (text .EQ. 'nsub') decicode = 8836
+ IF (text .EQ. 'sube') decicode = 8838
+ IF (text .EQ. 'supe') decicode = 8839
+ IF (text .EQ. 'oplus') decicode = 8853
+ IF (text .EQ. 'otimes') decicode = 8855
+ IF (text .EQ. 'perp') decicode = 8869
+ IF (text .EQ. 'sdot') decicode = 8901
+ IF (text .EQ. 'lceil') decicode = 8968
+ IF (text .EQ. 'rceil') decicode = 8969
+ IF (text .EQ. 'lfloor') decicode = 8970
+ IF (text .EQ. 'rfloor') decicode = 8971
+ IF (text .EQ. 'lang') decicode = 9001
+ IF (text .EQ. 'rang') decicode = 9002
+ IF (text .EQ. 'loz') decicode = 9674
+ IF (text .EQ. 'spades') decicode = 9824
+ IF (text .EQ. 'clubs') decicode = 9827
+ IF (text .EQ. 'hearts') decicode = 9829
+ IF (text .EQ. 'diams') decicode = 9830
+
+C Special characters
+ IF (text .EQ. 'nbsp') decicode = 160
+ IF (text .EQ. 'iexcl') decicode = 161
+ IF (text .EQ. 'cent') decicode = 162
+ IF (text .EQ. 'pound') decicode = 163
+ IF (text .EQ. 'curren') decicode = 164
+ IF (text .EQ. 'yen') decicode = 165
+ IF (text .EQ. 'brvbar') decicode = 166
+ IF (text .EQ. 'sect') decicode = 167
+ IF (text .EQ. 'uml') decicode = 168
+ IF (text .EQ. 'copy') decicode = 169
+ IF (text .EQ. 'ordf') decicode = 170
+ IF (text .EQ. 'laquo') decicode = 171
+ IF (text .EQ. 'not') decicode = 172
+ IF (text .EQ. 'shy') decicode = 173
+ IF (text .EQ. 'reg') decicode = 174
+ IF (text .EQ. 'macr') decicode = 175
+ IF (text .EQ. 'deg') decicode = 176
+ IF (text .EQ. 'plusmn') decicode = 177
+ IF (text .EQ. 'sup2') decicode = 178
+ IF (text .EQ. 'sup3') decicode = 179
+ IF (text .EQ. 'acute') decicode = 180
+ IF (text .EQ. 'micro') decicode = 181
+ IF (text .EQ. 'para') decicode = 182
+ IF (text .EQ. 'middot') decicode = 183
+ IF (text .EQ. 'cedil') decicode = 184
+ IF (text .EQ. 'sup1') decicode = 185
+ IF (text .EQ. 'ordm') decicode = 186
+ IF (text .EQ. 'raquo') decicode = 187
+ IF (text .EQ. 'frac14') decicode = 188
+ IF (text .EQ. 'frac12') decicode = 189
+ IF (text .EQ. 'frac34') decicode = 190
+ IF (text .EQ. 'iquest') decicode = 191
+ IF (text .EQ. 'Agrave') decicode = 192
+ IF (text .EQ. 'Aacute') decicode = 193
+ IF (text .EQ. 'Acirc') decicode = 194
+ IF (text .EQ. 'Atilde') decicode = 195
+ IF (text .EQ. 'Auml') decicode = 196
+ IF (text .EQ. 'Aring') decicode = 197
+ IF (text .EQ. 'AElig') decicode = 198
+ IF (text .EQ. 'Ccedil') decicode = 199
+ IF (text .EQ. 'Egrave') decicode = 200
+ IF (text .EQ. 'Eacute') decicode = 201
+ IF (text .EQ. 'Ecirc') decicode = 202
+ IF (text .EQ. 'Euml') decicode = 203
+ IF (text .EQ. 'Igrave') decicode = 204
+ IF (text .EQ. 'Iacute') decicode = 205
+ IF (text .EQ. 'Icirc') decicode = 206
+ IF (text .EQ. 'Iuml') decicode = 207
+ IF (text .EQ. 'ETH') decicode = 208
+ IF (text .EQ. 'Ntilde') decicode = 209
+ IF (text .EQ. 'Ograve') decicode = 210
+ IF (text .EQ. 'Oacute') decicode = 211
+ IF (text .EQ. 'Ocirc') decicode = 212
+ IF (text .EQ. 'Otilde') decicode = 213
+ IF (text .EQ. 'Ouml') decicode = 214
+ IF (text .EQ. 'times') decicode = 215
+ IF (text .EQ. 'Oslash') decicode = 216
+ IF (text .EQ. 'Ugrave') decicode = 217
+ IF (text .EQ. 'Uacute') decicode = 218
+ IF (text .EQ. 'Ucirc') decicode = 219
+ IF (text .EQ. 'Uuml') decicode = 220
+ IF (text .EQ. 'Yacute') decicode = 221
+ IF (text .EQ. 'THORN') decicode = 222
+ IF (text .EQ. 'szlig') decicode = 223
+ IF (text .EQ. 'agrave') decicode = 224
+ IF (text .EQ. 'aacute') decicode = 225
+ IF (text .EQ. 'acirc') decicode = 226
+ IF (text .EQ. 'atilde') decicode = 227
+ IF (text .EQ. 'auml') decicode = 228
+ IF (text .EQ. 'aring') decicode = 229
+ IF (text .EQ. 'aelig') decicode = 230
+ IF (text .EQ. 'ccedil') decicode = 231
+ IF (text .EQ. 'egrave') decicode = 232
+ IF (text .EQ. 'eacute') decicode = 233
+ IF (text .EQ. 'ecirc') decicode = 234
+ IF (text .EQ. 'euml') decicode = 235
+ IF (text .EQ. 'igrave') decicode = 236
+ IF (text .EQ. 'iacute') decicode = 237
+ IF (text .EQ. 'icirc') decicode = 238
+ IF (text .EQ. 'iuml') decicode = 239
+ IF (text .EQ. 'eth') decicode = 240
+ IF (text .EQ. 'ntilde') decicode = 241
+ IF (text .EQ. 'ograve') decicode = 242
+ IF (text .EQ. 'oacute') decicode = 243
+ IF (text .EQ. 'ocirc') decicode = 244
+ IF (text .EQ. 'otilde') decicode = 245
+ IF (text .EQ. 'ouml') decicode = 246
+ IF (text .EQ. 'divide') decicode = 247
+ IF (text .EQ. 'oslash') decicode = 248
+ IF (text .EQ. 'ugrave') decicode = 249
+ IF (text .EQ. 'uacute') decicode = 250
+ IF (text .EQ. 'ucirc') decicode = 251
+ IF (text .EQ. 'uuml') decicode = 252
+ IF (text .EQ. 'yacute') decicode = 253
+ IF (text .EQ. 'thorn') decicode = 254
+ IF (text .EQ. 'yuml') decicode = 255
+
+C markup-significant and internationalization
+ IF (text .EQ. 'quot') decicode = 34
+ IF (text .EQ. 'amp') decicode = 38
+ IF (text .EQ. 'lt') decicode = 60
+ IF (text .EQ. 'gt') decicode = 62
+ IF (text .EQ. 'OElig') decicode = 338
+ IF (text .EQ. 'oelig') decicode = 339
+ IF (text .EQ. 'Scaron') decicode = 352
+ IF (text .EQ. 'scaron') decicode = 353
+ IF (text .EQ. 'Yuml') decicode = 376
+ IF (text .EQ. 'circ') decicode = 710
+ IF (text .EQ. 'tilde') decicode = 732
+ IF (text .EQ. 'ensp') decicode = 8194
+ IF (text .EQ. 'emsp') decicode = 8195
+ IF (text .EQ. 'thinsp') decicode = 8201
+ IF (text .EQ. 'zwnj') decicode = 8204
+ IF (text .EQ. 'zwj') decicode = 8205
+ IF (text .EQ. 'lrm') decicode = 8206
+ IF (text .EQ. 'rlm') decicode = 8207
+ IF (text .EQ. 'ndash') decicode = 8211
+ IF (text .EQ. 'mdash') decicode = 8212
+ IF (text .EQ. 'lsquo') decicode = 8216
+ IF (text .EQ. 'rsquo') decicode = 8217
+ IF (text .EQ. 'sbquo') decicode = 8218
+ IF (text .EQ. 'ldquo') decicode = 8220
+ IF (text .EQ. 'rdquo') decicode = 8221
+ IF (text .EQ. 'bdquo') decicode = 8222
+ IF (text .EQ. 'dagger') decicode = 8224
+ IF (text .EQ. 'Dagger') decicode = 8225
+ IF (text .EQ. 'permil') decicode = 8240
+ IF (text .EQ. 'lsaquo') decicode = 8249
+ IF (text .EQ. 'rsaquo') decicode = 8250
+ IF (text .EQ. 'euro') decicode = 8364
+
+ RETURN
+ END
+
diff --git a/ppl/complot/symbel.F b/ppl/complot/symbel.F
index 933186a..d918899 100644
--- a/ppl/complot/symbel.F
+++ b/ppl/complot/symbel.F
@@ -1,17 +1,4 @@
SUBROUTINE SYMBEL(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
-C**
-C** @(#)symbel.tplate.F 1.1 3/10/88
-C**
-C**
-C***********************************************************************
-C**
-C** PLOT+ Scientific Graphics System
-C**
-C***********************************************************************
-C**
-C**
-C Mod *JD* 3.19.91 for unix -- use environment variable PLOTFONTS
-C *jd* 7.92 variable IF renamed to KIF for MAC
*
*
* This software was developed by the Thermal Modeling and Analysis
@@ -46,32 +33,8 @@ C *jd* 7.92 variable IF renamed to KIF for MAC
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-*
-* *jd* 11.94
-* Modification uses TM_NUMBER to determine if "value" is a number rather
-* than the ERR= branch of a READ which fails on AIX/xlf
-
-* Mod *jd* 11.30.95 to fix ragged symbols to to precision loss
-*
-* Mod *kob* 1.28.97 - Reorganization of the original code to remove
-* an illegal (f90) fortran forward reference into
-* the middle of a do loop. This change was
-* necessary to get this routine to compile on linux
-* and also to fix a plotting bug with the new
-* solaris version (v4.0) of f77. This change has
-* occurred in the middle of releasing v4.45 of
-* Ferret to the world. Aix, Sgi, HP, OSF and SunOs
-* have already been released, and this change is
-* not a part of them. This change is needed
-* to release linux and more importantly solaris.
-C *kob* 04/07/96 passed in character strings had to be declared
-C with "*(*)" for the linux port
-C *ACM* 6/02 When there is a period or decimal point in the text, make
-C a GKS dot there too, so it'll show up in small labels.
-C *acm* 7/02 Take out the MARKER calls that made dots. This caused trouble
-C when making encapsulated postscript from postscript.
-C *acm* 10/14 Ticket 2203: on the 64-bit machines, the \\ for backspace
-C should be \ .
+* V6.95 *acm* 3/15 Changes for PyFerret fonts.
+* SYMBEL_HERSHEY does Hershey fonts.
C
C CALL SYMBEL(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
C
@@ -88,525 +51,358 @@ C NCHAR - NUMBER OF CHARACTERS TO BE DRAWN.
C STRING - ARRAY CONTAINING THE DISPLAY CODES OF THE
C CHARACTERS TO BE DRAWN.
C
- DIMENSION SX(12000),SY(12000),ASCII(127,4),BASE(4),RAST(4)
- INTEGER nsxsy
- PARAMETER ( nsxsy = 12000 )
- DIMENSION DTYPE(35),DLEN(35),IOFF(4),IFLEN(4),ITYPE(4)
-C
- LOGICAL SYMROT,READIR,DOPLOT,COLRF
-c CHARACTER PLTFIL*80
- CHARACTER ICOM*2,ICHR*1,STRING*(*),DNME(35)*2,DNUM(35)*2
- CHARACTER DNAME(35)*80,KIF(4)*2,IFN(4)*2
- CHARACTER*1 KSUB,KSUPER,KBKSP,KCALL,PENS(16)
-
- REAL XBASE, YBASE
- INTEGER IPT
-#ifdef unix
- INTEGER*2 SX,SY
-
- integer dirlen
- character*255 fontdir
-#else
- byte sx,sy
-#endif
- INTEGER*2 ICNT,IBASE,IRAST
-*added for linux port
- INTEGER*4 IBASE4,IRAST4
- INTEGER*2 ASCII
- INTEGER*2 DTYPE,DLEN,IOFF,IFLEN,ITYPE
- INTEGER COLOLD
- LOGICAL ASCFNT
- CHARACTER*265 err_msg
- INTEGER status
-C
-C
- INCLUDE 'PLTCOM.DAT'
- INCLUDE 'errmsg.parm'
+* for Cairo fonts. Other font arguments are stored in common pyfonts.cmn:
-C
- DATA DNUM,DNME/35*'@@',35*'@@'/
-#ifdef unix
- DATA KSUB,KSUPER,KBKSP,KCALL/'_','^','\\','@'/
-#else
- DATA KSUB,KSUPER,KBKSP,KCALL/'_','^','\','@'/
-#endif
- DATA KIF,IFN/'SR','SG','@@','@@','01','12','@@','@@'/
- DATA PENS/'1','2','3','4','5','6','7','8','9','A',
- * 'B','C','D','E','F','G'/
- DATA READIR/.FALSE./
+* Calling arguments
+ CHARACTER STRING*(*)
+ REAL X,Y,DEGRES,HEIGHT
+ INTEGER NCHAR
- LOGICAL TM_NUMBER ! ** TMAP mod 11/94 **
+* Local declarations
+ LOGICAL TM_HAS_STRING
+ INTEGER STR_SAME, TM_LENSTR, STR_UPCASE
+ REAL fontsiz, rotate, stx, sty, swid, shgt, xu, yu
+ . stx_pos, sty_pos, symcos, symsin
+ INTEGER ia, slen, ic, sub, sup, seb, sep, ss, se, flen, glen
+ CHARACTER buff1*512, buff2*512, buffs*512, upbuff*512
+ INTEGER codepoint, utf8strlen
+ CHARACTER utf8str*4, nstring*8, fontname*64, codeword*10
+ REAL*4 red, grn, blu, fac
+ INTEGER igr, bold, italic, isiz, inote
-* Mod to specify external references for SCALE and RANGE * Linux *kob* 1.97
- external scale, size
+ CHARACTER*265 err_msg
+ CHARACTER*512 buff
+ INTEGER status
-* Initialize
+ INCLUDE 'PLTCOM.DAT'
+ INCLUDE 'pyfonts.cmn'
+ INCLUDE 'errmsg.parm'
- ICHR = ' '
+* If font is "Hershey", continue with old-school PPLUS Hershey fonts.
-C
-C DEFINE THE SCALE FACTOR TO BE THE AMOUNT OF MAGNIFICATION
-C REQUIRED TO CONVERT THE CHARACTERS IN THE CHARACTER DEFI-
-C NITION TABLE TO THE SIZE SPECIFIED BY THE USER.
-C
- CALL INQSCL(XSCL,YSCL,ABIAS,BBIAS,XLO,YLO) ! Bug fix? 11.95
- CALL SCALE(XSCL,YSCL,ABIAS,BBIAS,0.,0.)
-
- COLRF=.FALSE.
-C IF(.NOT.READIR)GOTO 2020
-
-* kob 1/97 - old 2020 code region now contained w/in if-then below.
- IF(.NOT.READIR) THEN
-#ifdef unix
-C *JD* Mod below fix for unix -- use environment variable 3.19.91
- call getenv ('PLOTFONTS',fontdir)
- dirlen = lnblk (fontdir,255)
-
-C *kob* 1/02 - cygwin 1.3.x requires "\" for unix directory accesses
-#ifdef __CYGWIN__
- OPEN(LUSY,FILE=fontdir(:dirlen)//'\fondat.dat',
- * STATUS='OLD')
-#else
- OPEN(LUSY,FILE=fontdir(:dirlen)//'/fondat.dat',
- * STATUS='OLD',ERR=5000)
-#endif
-
-#else
- open(lusy,file='plotfonts:fondat.dat',readonly,
- * status='old',err=5000)
-#endif
-C
-C FILE EXISTS
-C
- READ(LUSY,983,END=1009)(DNUM(IJ),DNME(IJ),DTYPE(IJ),
- * DLEN(IJ),DNAME(IJ),IJ=1,35)
-#ifdef unix
-C Mod here from A to A9 for read of DNAME *JD* 3.8.91
-C983 FORMAT(1X,2A2,I2,I5,A)
-983 FORMAT(1X,2A2,I2,I5,A9)
-#else
-983 format(1x,2a2,i2,i5,a30)
-#endif
-1009 NFNT=IJ-1
- CLOSE(LUSY)
-C
-C READ DEFAULT FONT
-C
- IOFF(1)=0
- II=1
- ID=1
- READIR = .TRUE.
- call SETFONT(fontdir,dirlen,dname,ifont,ii,kif,dnme,
- . ifn,dnum,itype,dtype,iflen, dlen,ioff,
- . icnt,ascii,base,rast,iadd,
- . sx,sy,id)
+ If (.NOT.pyfont) THEN
+ CALL SYMBEL_HERSHEY(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
+ GOTO 3000
ENDIF
-2000 SYMSC = HEIGHT * FACTOR / 21.0
-C
-C ROTATE THE CHARACTER STRING.
-C
- IF(DEGRES .NE. 0.0)GO TO 10
-C
-C RESET THE CHARACTER ROTATION FLAG.
-C
- SYMROT = .FALSE.
- GO TO 20
-C
-C SET THE CHARACTER ROTATION FLAG.
-C
-10 SYMROT = .TRUE.
-C
-C CONVERT THE ROTATION TO RADIANS.
-C
- TEMP = 0.01745329251994 * DEGRES
-C
-C COMPUTE THE SINE AND COSINE.
-C
- SYMSIN = SIN(TEMP)
- SYMCOS = COS(TEMP)
-C
-C SET VECTORS MODE.
-C
-20 PMODE = VECTOR
-C
-C START AT THE LOWER LEFT-HAND CORNER OF THE FIRST CHARACTER.
-C
- IF(NCHAR .EQ. 0) GOTO 300 ! Mod 11.30, was RETURN
- XTEMP = (X - XLO) * XSCALE ! was X * XSCALE
- YTEMP = (Y - YLO) * YSCALE ! was Y * YSCALE
- PENF = .FALSE.
- DOPLOT=NCHAR.GT.0
- IF(DOPLOT)CALL XYZPLT
-C
-C INITIALIZE CONTROL VARIABLES.
-C
- XORG = XTEMP
- YORG = YTEMP
- XREF = 0.0
- YREF = 0.0
- CHARSC = 1.0
- WIDTH = 0.0
- SLANT = 0.0
- IFONT = 1
- ASCFNT=ITYPE(1).EQ.-1
- SYMWID=0.0
- NCH=IABS(NCHAR)
-C
-C DRAW THE CHARACTERS IN THE STRING ONE BY ONE.
-C
- JJ=0
- DO 170 I=1,NCH
- JJ=JJ+1
- IF(JJ.GT.NCH)GOTO 180
- ICHR = STRING(JJ:JJ)
-C
-C CHECK FOR A CONTROL CHARACTER.
-C
- IF(ICHAR(ICHR) .EQ.27)THEN
- ASCFNT=.FALSE.
- GOTO 170
- ENDIF
- IF(ICHAR(ICHR) .EQ. 0)GOTO 180
-#ifdef unix
- IF(.NOT.ASCFNT.AND.(ICHR.EQ.'@'.OR.
- * (ICHR.GE.'\\'.AND.ICHR.LE.'_')))GOTO 80
-#else
- IF(.NOT.ASCFNT.AND.(ICHR.EQ.'@'.OR.
- * (ICHR.GE.'\'.AND.ICHR.LE.'_')))GOTO 80
-#endif
-
-* Some compliers store '\\' as a single character, others see it
-* as '\'.
-
- IF (KBKSP.NE.'\\') THEN
- IF(.NOT.ASCFNT.AND.(ICHR.EQ.'@'.OR.
- * (ICHR.GE.'\'.AND.ICHR.LE.'_')))GOTO 80
- ENDIF
-C
-C CALCULATE POINTER
-C
- IF(ITYPE(IFONT).LE.0)THEN
-C CHARACTER FONT
- ICODE = ASCII(ICHAR(ICHR),IFONT)
- ELSE
-C SYMBOL FONT
- ICOM = STRING(JJ:JJ+1)
- JJ=JJ+1
- READ(ICOM,999,IOSTAT=ISTAT)II
-999 FORMAT(I2)
- IF(ISTAT.EQ.0)THEN
- ICODE = ASCII(II,IFONT)
- ELSE
- ICODE = 1
- ENDIF
- ENDIF
- IPOINT = ICODE+IOFF(IFONT)
- IPT = 0
-
- XMN=SX(IPOINT)
- XMX=SY(IPOINT)
- IF(XMN.GT.50.)XMN=XMN-100.
- IF(XMX.GT.50.)XMX=XMX-100.
- WIDTH=(XMX-XMN)*CHARSC*RAST(IFONT)
- SYMWID=SYMWID+WIDTH
- IF(.NOT.DOPLOT)GOTO 70
- IPOINT=IPOINT+1
- IF (IPOINT .GT. NSXSY) GOTO 70
- PENF = .FALSE.
-C
-C DRAW THE CHARACTER
-C
- 30 CONTINUE
- IX=SX(IPOINT)
- IY=SY(IPOINT)
- IF(IX.GT.50)IX=IX-100
- IF(IY.GT.50)IY=IY-100
- IY=-IY
- IPOINT=IPOINT+1
- IF (IPOINT .GT. NSXSY) GOTO 70
- IPT = IPT + 1
-C
-C CHECK FOR A CONTROL BYTE.
-C
- IF(IX .EQ. 50)GO TO 60
-C
-C CALCULATE THE NEW PEN COORDINATES RELATIVE TO THE LOWER
-C LEFT-HAND CORNER OF THE FIRST CHARACTER.
-C
- XY=FLOAT(IY)-BASE(IFONT)
- XX=FLOAT(IX)-XMN+XY*SLANT
- XSYM =XREF+XX*CHARSC*RAST(IFONT)
- YSYM =YREF+XY*CHARSC*RAST(IFONT)
-C
-C SCALE AND ROTATE THE NEW COORDINATES.
-C
- IF(SYMROT)GO TO 40
-
- XTEMP = XSYM * SYMSC + XORG
- YTEMP = YSYM * SYMSC + YORG
- GO TO 50
-40 XTEMP = (XSYM * SYMCOS - YSYM * SYMSIN) * SYMSC + XORG
- YTEMP = (XSYM * SYMSIN + YSYM * SYMCOS) * SYMSC + YORG
-50 CONTINUE
-
-* for decimal points, find the average x and Y location; will
-* plot a point at this location.
-C xxx
-C xxx Dont do this: it causes trouble with encapsulated postscript.
-C xxx and anyway, it was to correct trouble with the postscript translation
-C xxx for one printer...
-C xxx
-C xxx IF (ICHR .EQ. '.') THEN
-C xxx IF (IPT .EQ. 1) THEN
-C xxx XBASE = 0.
-C xxx YBASE = 0.
-C xxx ENDIF
-C xxx XBASE = XBASE + XTEMP
-C xxx YBASE = YBASE + YTEMP
-C xxx ENDIF
+ IF (NCHAR .EQ. 0) RETURN
+ rotate = degres
+ IF (degres .NE. 0) rotate = -1.* degres
-C
-C MOVE THE PEN TO THE NEW COORDINATES.
-C
+ slen = TM_LENSTR(string)
+ buff = string(:slen)
- CALL XYZPLT
+* Specific font settings for the text group (if we're doing the logo, tic-marks, etc.)
- PENF = .TRUE.
- GO TO 30
-C
-C CHECK FOR THE END OF THE CHARACTER.
-C
-60 IF(IY .EQ. -50)GO TO 70
- PENF = .FALSE.
- GO TO 30
-
-70 CONTINUE
-
-C End of character
-C xxx If it was a decimal point, draw a tiny dot at its center.
-C xxx
-C xxx IF (ICHR .EQ. '.' .AND. IPT .GT. 1) THEN
-C xxx XBASE = XBASE/ FLOAT(IPT-1)
-C xxx YBASE = YBASE/ FLOAT(IPT-1)
-C xxx XBASE = XBASE/ XSCALE
-C xxx YBASE = YBASE/ YSCALE
-C xxx call marker (1) ! could call with 7 for bigger dot.
-C xxx CALL PLOT(XBASE, YBASE, 0, 0)
-C xxx CALL MARK(99)
-C xxx call marker (1)
-C xxx ENDIF
-C
-C ADJUST THE REFERENCE POSITION TO TAKE INTO ACCOUNT THE
-C CHARACTER THAT WAS JUST DRAWN.
-C
+ igr = igroup
+ CALL GET_PYFONT_SETTINGS(igr, fontname, red, grn, blu,
+ . italic, bold, isiz)
- XREF = XREF + WIDTH
- IF(CHARSC .EQ. 1.0)GO TO 169
-C XREF = XREF - 16.*(1.-CHARSC)*RAST(IFONT)
- YREF = 0.0
- CHARSC = 1.0
- GO TO 169
-C
-C PROCESS CONTROL CHARACTERS.
-C
-80 IF(ICHR .NE. KSUB)GO TO 150
- CHARSC = 0.75
-C XREF = XREF + 16.*(1.-CHARSC)*RAST(IFONT)
- YREF=-11.*CHARSC*RAST(IFONT)
- GO TO 169
-150 IF(ICHR .NE. KSUPER)GO TO 160
- CHARSC = 0.75
-C XREF = XREF + 16.*(1.-CHARSC)*RAST(IFONT)
- YREF=21.-11.*CHARSC*RAST(IFONT)
- GO TO 169
-160 IF(ICHR .NE. KBKSP)GO TO 310
- SYMWID=SYMWID-WIDTH
- XREF = XREF - WIDTH
- WIDTH = 0.0
- GOTO 169
-310 IF(ICHR.NE.KCALL)GOTO 169
-C
-C UNPACK COMMAND
-C
- ICOM = STRING(JJ+1:JJ+2)
- JJ=JJ+2
-C
-C PROCESS COMMAND
-C
- CALL UPPER(ICOM,2)
- IF(ICOM.EQ.'CL')THEN
-C
-C CLEAR ALL FONTS FROM THE BUFFERS
-C
- DO 1002 II=1,4
- IOFF(II)=12000
- IFLEN(II)=0
- KIF(II)='@@'
- IFN(II)='@@'
- ITYPE(II)=0
- BASE(II)=-9.
-1002 RAST(II)=1.
- IOFF(1)=0
- GOTO 169
- ELSE IF(ICOM(1:1).EQ.'C')THEN
-C
-C LOOK FOR EXTENDED COLOR COMMAND OF THE FORM
-C @Cnnn WHERE nnn IS A 3 DIGIT NUMBER
-C
- IF(.NOT.COLRF)COLOLD=COLOUR
- COLRF=.TRUE.
-C
-C SEE IF THE FIRST CHARACTER IS A NUMBER
-C
- DO 2050 K=1,9
- IF(ICOM(2:2).EQ.PENS(K))GOTO 2051
-2050 CONTINUE
-C
-C NO NUMBER FOUND - MUST BE A FONT CHANGE COMMAND
-C
- IF(ICOM(2:2).NE.'0')GOTO 2010
-2051 JJ=JJ+2
-C
-C GET THE 3 DIGIT NUMBER
-C
-#ifdef AIX_XLF
- IF ( .NOT.TM_NUMBER(STRING(JJ-2:JJ)) ) GOTO 169
-!** TMAP mod 11/94 **
-#endif
- READ(STRING(JJ-2:JJ),'(I3)',ERR=169)K
- IF(.NOT.DOPLOT)GOTO 169
- CALL COLOR(K)
- ELSE IF(ICOM(1:1).EQ.'P')THEN
-C
-C CHANGE PEN/COLOR
-C
- IF(.NOT.DOPLOT)GOTO 169
- IF(.NOT.COLRF)COLOLD=COLOUR
- COLRF=.TRUE.
- DO 2030 K=1,16
- IF(ICOM(2:2).EQ.PENS(K))GOTO 2031
-2030 CONTINUE
- IF(ICOM(2:2).NE.'0')GOTO 2010
- K=1
-2031 CALL COLOR(K)
- GOTO 169
- ELSE IF(ICOM(1:1).EQ.'Z')THEN
- DO 2040 K=1,16
- IF(ICOM(2:2).EQ.PENS(K))GOTO 2041
-2040 CONTINUE
- IF(ICOM(2:2).NE.'0')GOTO 2010
- K=0
-2041 SLANT=SIN(K*0.08726646)
- GOTO 169
- ENDIF
-C SEARCH FOR FONT BY NAME THEN BY NUMBER
-2010 DO 1003 K=1,4
- IF(ICOM.EQ.KIF(K).OR.ICOM.EQ.IFN(K))GOTO 302
-1003 CONTINUE
-C NOT FOUND SEARCH MAIN DIRECTORY
- DO 1004 ID=1,NFNT
- IF(ICOM.EQ.DNME(ID).OR.ICOM.EQ.DNUM(ID))GOTO 1001
-1004 CONTINUE
-C FONT NOT FOUND USE LAST FONT
- GOTO 169
-1001 ILEN=DLEN(ID)
-C
-C FIND WHERE FONT WILL FIT
-C
- DO 1005 II=4,1,-1
- IF(ILEN+IOFF(II).LE.12000) THEN
-* *kob* 1/97 setfont call takes place of branch to old 1010
- call SETFONT(fontdir,dirlen,dname,ifont,ii,kif,dnme,
- . ifn,dnum,itype,dtype,iflen, dlen,ioff,
- . icnt,ascii,base,rast,iadd,
- . sx,sy,id)
- goto 169
+C Set font size in from the height
+ fontsiz = height
+
+ IF (isiz .NE. 0) THEN
+ fac = FLOAT(ABS(isiz))
+ fac = MIN(4., fac)
+ if (isiz .LT. 0) fontsiz = fontsiz* (1.-fac*0.1)
+ if (isiz .GT. 0) fontsiz = fontsiz* (1.+fac*0.1)
+ fac = (1.-fac*0.2)
+ fac = (1.+fac*0.2)
ENDIF
-1005 CONTINUE
-C
-C ERROR IF NO ROOM ANYWHERE!
-C
- GOTO 169
-c1006 IF(.NOT.NEWFIL)THEN
-c INQUIRE(UNIT=LUHP,NAME=PLTFIL)
-c CLOSE(LUHP)
-c ENDIF
-
-
-
-c IF(.NOT.NEWFIL)THEN
-c IF(PTYPE.EQ.0 .OR. PTYPE.EQ.2 .OR. PTYPE.EQ.4)THEN
-c OPEN(LUHP,FILE=PLTFIL,FORM='UNFORMATTED',STATUS='OLD',
-c * ACCESS='APPEND')
-c ELSE
-c OPEN(LUHP,FILE=PLTFIL,STATUS='OLD',ACCESS='APPEND')
-c ENDIF
-c ENDIF
-C
-C DONE
-C
-C IF(READIR)GOTO 169
-C READIR=.TRUE.
-C GOTO 2000
-C
-C READ DIRECTORY
-C
-302 IFONT=K
-169 ASCFNT=ITYPE(IFONT).EQ.-1
-170 CONTINUE
-180 IF(.NOT.DOPLOT)THEN
- X=SYMWID*HEIGHT/21.
- GOTO 300 ! Mod 11.30, was RETURN
- END IF
-C
-C SCALE AND ROTATE THE FINAL COORDINATES.
-C
- IF(SYMROT)GO TO 190
- XTEMP = XREF * SYMSC + XORG
- YTEMP = YORG
- GO TO 200
-190 XTEMP = XREF * SYMCOS * SYMSC + XORG
- YTEMP = XREF * SYMSIN * SYMSC + YORG
-C
-C PLOT TO THE END OF THE CHARACTER STRING.
-C
-200 PENF = .FALSE.
- CALL XYZPLT
-C
-C RESET COLOR
-C
- IF(COLRF.AND.(COLOLD.NE.COLOUR))CALL COLOR(COLOLD)
-300 CALL SCALE(XSCL,YSCL,ABIAS,BBIAS,XLO,YLO) ! bug fix(?) 11.95
+C Ignore any codes for Ferret-Hershey style Pen and Font changes
+
+ slen = TM_LENSTR(string)
+ buff = string(:ABS(slen))
+
+ ia = INDEX (buff,'@')
+ inote = 0
+
+ DO WHILE (ia .GT. 0)
+ IF (NCHAR.GT.0) inote = 1
+ IF (ia .EQ. 1) THEN
+ buff = buff(ia+3:slen)
+ ELSE
+ buff1 = buff(1:ia-1)
+ buff = buff1(1:ia-1)//buff(ia+3:slen)
+ ENDIF
+
+ slen = TM_LENSTR(buff)
+ ia = INDEX (buff,'@')
+ ENDDO
+ IF (inote .GT. 0) CALL WARN
+ . ('Non-Hershey fonts: ignoring Hershey pen or font codes')
+
+C The HTML would be &#nnn; or &word; Because semicolon is used in Ferret,
+C look for <#nnn> an HTML decimal code. e.g. <#916> is uppercase Delta
+C or <& to start a word, e.g. <°> for the degree sign.
+
+ ss = INDEX (buff,'<#') + INDEX (buff,'<&')
+ DO WHILE (ss .GT. 0)
+ ia = INDEX (buff,'<#')
+ ic = INDEX (buff,'>')
+
+ IF (ia.GT.0 .AND. ic.GT.ia+2) THEN
+ ic = ic - 1
+ nstring = buff(ia+2:ic)
+ READ (nstring, *), codepoint
+
+ CALL CREATE_UTF8_STR(codepoint, utf8str, utf8strlen)
+ ic = ic+2
+ buff1 = buff(:ia-1)//utf8str(1:utf8strlen)//buff(ic:slen)
+ buff = buff1
+ slen = TM_LENSTR(buff)
+ ENDIF
+
+C Is it a word, such as <°> ? If so, look up its decimal code
+
+ ia = INDEX (buff,'<&')
+ ic = INDEX (buff(ia:),'>') + ia-1
+
+ IF (ia.GT.0 .AND. ic.GT.ia+2) THEN
+ ic = ic - 1
+ nstring = buff(ia+2:ic)
+ READ (nstring, *), codeword
+ CALL SPECIAL_SYM_CODE (codeword, codepoint)
+ IF (codepoint .GT. 0) THEN ! -1 means not found. For now, just leave that bad spec in.
+ CALL CREATE_UTF8_STR(codepoint, utf8str, utf8strlen)
+ ic = ic+2
+ buff1 = buff(:ia-1)//utf8str(1:utf8strlen)//buff(ic:slen)
+ buff = buff1
+ slen = TM_LENSTR(buff)
+ ENDIF
+ ENDIF
+ ss = INDEX (buff,'<#') + INDEX (buff,'<&')
+
+ ENDDO
+
+C Note any codes for Ferret-Hershey style Pen and Font changes
+
+ ia = INDEX(buff,'@')
+ IF (ia .GT. 0) CALL WARN ('Non-Hershey fonts: not interpreting @pen and @font codes')
+
+C Look for subscripts and superscript tags.
+
+ ia = STR_UPCASE (upbuff, buff)
+ sub = INDEX(upbuff, '<SUB>')
+ sup = INDEX(upbuff, '<SUP>')
+ seb = INDEX(upbuff,'</SUB>')
+ sep = INDEX(upbuff,'</SUP>')
+ IF (sub.GT.1 .AND. seb.EQ.0) GOTO 3300
+ IF (sub.GT.1 .AND. seb.LT.sub) GOTO 3300
+ IF (sup.GT.1 .AND. sep.EQ.0) GOTO 3300
+ IF (sup.GT.1 .AND. sep.LT.sup) GOTO 3300
+
+ IF (sub.GT.0 .AND. sup.GT.0) THEN
+ ss = MIN(sub,sup)
+ IF (sub.LT.sup .AND. seb.GT.sup) GOTO 3300
+ IF (sub.LT.sup .AND. seb.GT.sep) GOTO 3300
+ IF (sup.LT.sub .AND. sep.GT.sub) GOTO 3300
+ IF (sup.LT.sub .AND. sep.GT.seb) GOTO 3300
+ ELSE
+ ss = MAX(sub,sup)
+ ENDIF
+
+ buff1 = '' ! Full-size portion of string
+ buffs = '' ! smaller sub- or super-script portion of string
+ flen = 0
+ glen = 0
+ buff2 = buff
+
+C This section returns the string length from swid
+
+ IF (NCHAR .LE. 0) THEN
+
+ DO WHILE (ss.GT.0)
+ buff1 = buff1(:flen)//buff2(1:ss-1)
+ flen = ss-1
+ buff2 = buff2(ss+5:)
+ ia = STR_UPCASE (upbuff, buff2)
+ se = INDEX(upbuff, '</SU')
+ buffs = buffs(:glen)//buff2(:se-1)
+ glen = se-1
+ buff2 = buff2(se+6:)
+
+ ia = STR_UPCASE (upbuff, buff2)
+ sub = INDEX(upbuff, '<SUB>')
+ sup = INDEX(upbuff, '<SUP>')
+ seb = INDEX(upbuff,'</SUB>')
+ sep = INDEX(upbuff,'</SUP>')
+ IF (sub.GT.1 .AND. seb.EQ.0) GOTO 3300
+ IF (sup.GT.1 .AND. sep.EQ.0) GOTO 3300
+
+ IF (sub.GT.0 .AND. sup.GT.0) THEN
+ ss = MIN(sub,sup)
+ IF (sub.LT.sup .AND. seb.GT.sup) GOTO 3300
+ IF (sub.LT.sup .AND. seb.GT.sep) GOTO 3300
+ IF (sup.LT.sub .AND. sep.GT.sub) GOTO 3300
+ IF (sup.LT.sub .AND. sep.GT.seb) GOTO 3300
+ ELSE
+ ss = MAX(sub,sup)
+ ENDIF
+ ENDDO
+
+* Find the length of the total non-subscripted or superscripted string
+ glen = TM_LENSTR(buffs)
+ IF (glen .GT. 0) buff = buff1(:TM_LENSTR(buff1))//buff2(:glen)
+
+ swid = 0.
+ shgt = 0.
+ IF (TM_LENSTR(buff) .GT. 0) THEN
+ CALL FERTEXTSIZE (buff, fontname, fontsiz,
+ . italic, bold, pyfnt_under, swid, shgt, status)
+ IF (status .EQ. 0) GOTO 3100
+ ENDIF
+
+ swid = swid/1000
+ shgt = shgt/1000
+
+ x = swid
+
+* If there were subscripts and superscripts, those parts of the string are drawn at .75 size
+ IF (glen .GT. 0) THEN
+ swid = 0.
+ shgt = 0.
+ IF (glen .GT. 0) THEN
+ CALL FERTEXTSIZE (buffs(:glen), fontname, fontsiz*0.75,
+ . italic, bold, pyfnt_under, swid, shgt, status)
+ IF (status .EQ. 0) GOTO 3100
+ ENDIF
+
+ swid = swid/1000
+ x = x + swid
+
+ ENDIF
+
+ ELSE ! Done with computing string width
+
+C Draw the text
+
+C If subscripts and/or superscripts do each part as it comes
+
+
+ symcos = COS(degres*1.7453292E-2)
+ symsin = SIN(degres*1.7453292E-2)
+
+ CALL USER_TO_INCH (x, y, stx_pos, sty_pos)
+ glen = 0
+
+ DO WHILE (ss.GT.0)
+ buff1 = buff2(1:ss-1)
+ flen = ss-1
+ buff2 = buff2(ss+5:)
+ ia = STR_UPCASE (upbuff, buff2)
+ se = INDEX(upbuff, '</SU')
+ buffs = buff2(:se-1)
+ glen = se-1
+ buff2 = buff2(se+6:)
+
+* Draw next section of full-sized text
+ stx = 1000.* stx_pos
+ sty = 1000.* sty_pos
+ CALL FERDRAWTEXT(buff1, fontname, fontsiz,
+ . red, grn, blu, pyfnt_opq, stx, sty,
+ . rotate, italic, bold, pyfnt_under, status)
+ IF (status .EQ. 0) GOTO 3200
+
+* and mark the start of the next text to follow
+ swid = 0.
+ shgt = 0.
+ CALL FERTEXTSIZE (buff1, fontname, fontsiz,
+ . italic, bold, pyfnt_under, swid, shgt, status)
+
+ IF (rotate.EQ.0) THEN
+ stx_pos = stx_pos + swid/1000 ! what about rotations?
+ ELSE
+ stx_pos = stx_pos + symcos*swid/1000
+ sty_pos = sty_pos + symsin*swid/1000
+ ENDIF
+
+* Draw next superscript or subscript
+
+ IF (rotate.EQ.0) THEN
+ stx = 1000.* stx_pos
+ IF (ss .EQ. sub) sty = 1000.* (sty_pos - 0.5*fontsiz)
+ IF (ss .EQ. sup) sty = 1000.* (sty_pos + 0.5*fontsiz)
+ ELSE
+ IF (ss .EQ. sub) THEN
+ stx = 1000.* (stx_pos + symsin*0.5*fontsiz)
+ sty = 1000.* (sty_pos - symcos*0.5*fontsiz)
+ ENDIF
+ IF (ss .EQ. sup) THEN
+ stx = 1000.* (stx_pos - symsin*0.5*fontsiz)
+ sty = 1000.* (sty_pos + symcos*0.5*fontsiz)
+ ENDIF
+ ENDIF
+
+ CALL FERDRAWTEXT(buffs, fontname, 0.75*fontsiz,
+ . red, grn, blu, pyfnt_opq, stx, sty,
+ . rotate, italic, bold, pyfnt_under, status)
+ IF (status .EQ. 0) GOTO 3200
+
+* and mark the start of the next text to follow
+ swid = 0.
+ shgt = 0.
+ CALL FERTEXTSIZE (buffs, fontname, 0.75*fontsiz,
+ . italic, bold, pyfnt_under, swid, shgt, status)
+
+ IF (rotate.EQ.0) THEN
+ stx_pos = stx_pos + swid/1000
+ ELSE
+ stx_pos = stx_pos + symcos*swid/1000
+ sty_pos = sty_pos + symsin*swid/1000
+ ENDIF
+
+ ia = STR_UPCASE (upbuff, buff2)
+ sub = INDEX(upbuff, '<SUB>')
+ sup = INDEX(upbuff, '<SUP>')
+ seb = INDEX(upbuff,'</SUB>')
+ sep = INDEX(upbuff,'</SUP>')
+ IF (sub.GT.1 .AND. seb.EQ.0) GOTO 3300
+ IF (sup.GT.1 .AND. sep.EQ.0) GOTO 3300
+
+ IF (sub.GT.0 .AND. sup.GT.0) THEN
+ ss = MIN(sub,sup)
+ IF (sub.LT.sup .AND. seb.GT.sup) GOTO 3300
+ IF (sub.LT.sup .AND. seb.GT.sep) GOTO 3300
+ IF (sup.LT.sub .AND. sep.GT.sub) GOTO 3300
+ IF (sup.LT.sub .AND. sep.GT.seb) GOTO 3300
+ ELSE
+ ss = MAX(sub,sup)
+ ENDIF
+ ENDDO
+
+* If there were subscripts or supserscripts, draw the last text
+* or just draw the label string.
+
+ IF (glen .GT. 0) buff = buff2(:TM_LENSTR(buff2))
+
+ stx = 1000.* stx_pos
+ sty = 1000.* sty_pos
+ CALL FERDRAWTEXT(buff, fontname, fontsiz,
+ . red, grn, blu, pyfnt_opq, stx, sty,
+ . rotate, italic, bold, pyfnt_under, status)
+ IF (status .EQ. 0) GOTO 3200
+
+ ENDIF
+
+
+ 3000 CONTINUE
RETURN
-C
- 5000 IF (dirlen .GT. 1) THEN
- CALL WARN ('Could not open font file. Check the Ferret environment.')
- err_msg = fontdir(:dirlen)//'/fondat.dat'
- ELSE
- CALL WARN ('Fonts directory is undefined. Check the Ferret environment.')
- err_msg = 'fondat.dat'
- ENDIF
- CALL errmsg (ferr_file_not_found, status, err_msg, *5002)
+ 3100 err_msg = 'Error getting text size from PyFerret font call '
+ . //buff(:tm_lenstr(buff))
+ CALL errmsg (ferr_nomessge, status, err_msg, *5002)
+ 3200 err_msg = 'Error drawing text with PyFerret Font call '
+ . //buff(:tm_lenstr(buff))
+
+ 3300 err_msg = 'Error in string: mismatch of <sub> or <sup> tags '
+ . //buff(:tm_lenstr(buff))
+
+ CALL errmsg (ferr_nomessge, status, err_msg, *3000)
5002 STOP
END
- FUNCTION SYMWID(HEIGHT,NCHAR,STRING)
-C *kob* 04/07/96 passed in character strings had to be declared
-C with "*(*)" for the linux port
- CHARACTER STRING*(*)
- NC=-IABS(NCHAR)
-C
-C THIS FUNCTION RETURNS THE WIDTH OF THE STRING WITHOUT DRAWING IT
-C
- SS=0.
- CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
- SYMWID=SS
- RETURN
- END
-
diff --git a/ppl/complot/symbel.F b/ppl/complot/symbel_hershey.F
old mode 100644
new mode 100755
similarity index 91%
copy from ppl/complot/symbel.F
copy to ppl/complot/symbel_hershey.F
index 933186a..6810fb9
--- a/ppl/complot/symbel.F
+++ b/ppl/complot/symbel_hershey.F
@@ -1,4 +1,4 @@
- SUBROUTINE SYMBEL(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
+ SUBROUTINE SYMBEL_HERSHEY(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
C**
C** @(#)symbel.tplate.F 1.1 3/10/88
C**
@@ -351,22 +351,6 @@ C
YTEMP = (XSYM * SYMSIN + YSYM * SYMCOS) * SYMSC + YORG
50 CONTINUE
-* for decimal points, find the average x and Y location; will
-* plot a point at this location.
-C xxx
-C xxx Dont do this: it causes trouble with encapsulated postscript.
-C xxx and anyway, it was to correct trouble with the postscript translation
-C xxx for one printer...
-C xxx
-C xxx IF (ICHR .EQ. '.') THEN
-C xxx IF (IPT .EQ. 1) THEN
-C xxx XBASE = 0.
-C xxx YBASE = 0.
-C xxx ENDIF
-C xxx XBASE = XBASE + XTEMP
-C xxx YBASE = YBASE + YTEMP
-C xxx ENDIF
-
C
C MOVE THE PEN TO THE NEW COORDINATES.
C
@@ -385,18 +369,6 @@ C
70 CONTINUE
C End of character
-C xxx If it was a decimal point, draw a tiny dot at its center.
-C xxx
-C xxx IF (ICHR .EQ. '.' .AND. IPT .GT. 1) THEN
-C xxx XBASE = XBASE/ FLOAT(IPT-1)
-C xxx YBASE = YBASE/ FLOAT(IPT-1)
-C xxx XBASE = XBASE/ XSCALE
-C xxx YBASE = YBASE/ YSCALE
-C xxx call marker (1) ! could call with 7 for bigger dot.
-C xxx CALL PLOT(XBASE, YBASE, 0, 0)
-C xxx CALL MARK(99)
-C xxx call marker (1)
-C xxx ENDIF
C
C ADJUST THE REFERENCE POSITION TO TAKE INTO ACCOUNT THE
C CHARACTER THAT WAS JUST DRAWN.
@@ -596,17 +568,3 @@ C
5002 STOP
END
- FUNCTION SYMWID(HEIGHT,NCHAR,STRING)
-C *kob* 04/07/96 passed in character strings had to be declared
-C with "*(*)" for the linux port
- CHARACTER STRING*(*)
- NC=-IABS(NCHAR)
-C
-C THIS FUNCTION RETURNS THE WIDTH OF THE STRING WITHOUT DRAWING IT
-C
- SS=0.
- CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
- SYMWID=SS
- RETURN
- END
-
diff --git a/fer/utl/decrement_plot_grid.F b/ppl/complot/symwid.F
similarity index 84%
copy from fer/utl/decrement_plot_grid.F
copy to ppl/complot/symwid.F
index aa6c503..dfd0e3a 100755
--- a/fer/utl/decrement_plot_grid.F
+++ b/ppl/complot/symwid.F
@@ -1,4 +1,4 @@
- SUBROUTINE DECREMENT_PLOT_GRID
+ FUNCTION SYMWID(HEIGHT,NCHAR,STRING)
*
* This software was developed by the Thermal Modeling and Analysis
@@ -33,19 +33,17 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
+* Split off from file symbel.F 5/2015
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
-*
-* Decrement the grid use count which was bumped up, saving the grid used
-* in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
-
- include 'xbox_bounds.cmn'
-
- INTEGER grid
-
- grid = bb_grid
- IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
- bb_grid_inccount = 0
-
+C *kob* 04/07/96 passed in character strings had to be declared
+C with "*(*)" for the linux port
+ CHARACTER STRING*(*)
+ NC=-IABS(NCHAR)
+C
+C THIS FUNCTION RETURNS THE WIDTH OF THE STRING WITHOUT DRAWING IT
+C
+ SS=0.
+ IF (NC .NE. 0) CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
+ SYMWID=SS
RETURN
END
diff --git a/ppl/include/AXISL.INC b/ppl/include/AXISL.INC
index e09b6d9..07babf9 100644
--- a/ppl/include/AXISL.INC
+++ b/ppl/include/AXISL.INC
@@ -16,16 +16,19 @@ c
* J Davison 11.19.95
C *kms* 7/10 changed name of common block from AXISL to AXISLCMN
C to remove clash with AXISL function
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
- COMMON/AXISLCMN/IFRX,IFRY,IT1,IT2,ITSTRT,ITMIN,ITMAX
+ COMMON/AXISLCMN/IFRX,IFRY,IT1,IT2,ITSTRT,ITMIN,ITMAX,
+ . IT1b,IT2b,ITSTRTb,ITMINb,ITMAXb
*11.95 CHARACTER IFRX*20,IFRY*20,IT1*10,IT2*10,ITSTRT*10
*11.95 CHARACTER ITMIN*10,ITMAX*10
-
-
CHARACTER IFRX*20,IFRY*20,IT1*14,IT2*14,ITSTRT*14
CHARACTER ITMIN*14,ITMAX*14
+
+ CHARACTER IFRXb*20,IFRYb*20,IT1b*14,IT2b*14,ITSTRTb*14
+ CHARACTER ITMINb*14,ITMAXb*14
c
c ifrx format for x axis numeric label
c ifry format for y axis numeric label
diff --git a/ppl/include/CONT.INC b/ppl/include/CONT.INC
index 8c587d1..371fc41 100644
--- a/ppl/include/CONT.INC
+++ b/ppl/include/CONT.INC
@@ -16,7 +16,7 @@ C**
* V630 *acm* 9/09 Introduction of syntax for variance-based and histogram levels
* V65 *acm 2/10 If Open-ended levels were used, symbol LEV_OPNLEVS saves
* the /LEV command needed to duplicate the levels
-* v683 *acm* 9/12 ribbon plots: RIBBON_FAST flag
+* V696 *acm* 6/15 Move ribbon-plot setting to LINES.INC
COMMON/CONT/ZLEV(ICNLEV),LDIG(ICNLEV),LWGT(ICNLEV),LCLR(ICNLEV),
@@ -24,7 +24,7 @@ C**
* NARC,IAUTOC,NLEV2,NSIGC,CANGLE,IVCOMP,
* CONTOUR_FEWER,CENTERED,SET_DELTA,DELTA,NEGINF,POSINF,CONT_KEY,
* OPENLEV,SET_STD,SET_MEAN,SET_MIN,SET_MAX,NEED_DATA_SCAN,USE_HIST,
- * LEV_STR,RIBBON_FAST
+ * LEV_STR,INTLEV
c
c zlev() array of levels to be contoured (user units)
@@ -64,8 +64,8 @@ c delta The specified DZ value
* set_max open only on top
* lev_min the values of min and/or max.
* lev_max
-* ribbon_fast FAST for one color per point, default is interpolate
-* colors between points
+* lev_int insist that levels values are integer
+
c*******************************************************************
diff --git a/ppl/include/LINES.INC b/ppl/include/LINES.INC
index 2cda8c7..535d083 100644
--- a/ppl/include/LINES.INC
+++ b/ppl/include/LINES.INC
@@ -14,11 +14,16 @@ C**
c
* V510 *sh* 3/00 - dimension lleng() using the larger value, NPOLYGON
+* V696 *acm* 6/15 Move ribbon_fast setting here.
+* v696 *acm* gap_var to define seperate line segments on PLOT/VS plots
+* (LAS ticket 1597 and others)
+
+
COMMON/LINES/ IMARK(NLINES),HMARK(NLINES),ITYPE(NLINES),
* XOFF(0:NLINES),YOFF(0:NLINES),XFCT(0:NLINES),YFCT(0:NLINES),
* DN1(NLINES),UP1(NLINES),DN2(NLINES),UP2(NLINES),
- * LLENG(NPOLYGON),LNUM,IWIND
+ * LLENG(NPOLYGON),LNUM,IWIND,gap_var,ribbon_fast
c
c xoff(0), yoff(0), etc are the offsets for the contour and view
c plots.
@@ -43,5 +48,8 @@ c lleng() number of points in line
c lnum total number of lines for buffer
c iwind =0 windowing of data off
c =1 window data to XLO, XHI and YLO, YHI
+c ribbon_fast FAST for one color per point, default is interpolate
+c colors between points
+c gap_var pointer to variable on PLOT/VS plots for adding gaps
c
c*******************************************************************
diff --git a/ppl/include/TAXIS.INC b/ppl/include/TAXIS.INC
index 314e478..151ded4 100644
--- a/ppl/include/TAXIS.INC
+++ b/ppl/include/TAXIS.INC
@@ -11,10 +11,14 @@ C**
C***********************************************************************
C**
C**
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
+* V695 *acm* 9/15 Changes for hour:min labeling on time axes
c
COMMON/TXSCOM/ TLO,DT,TCSIZE,ITYPET,
* NMTCT,LABELT,IFDB,ISDB,ITFLG,VANG,IVFLG,IAUTOT,
- * ITXTPE,ITXLBP
+ * ITXTPE,ITXLBP,TLOb,DTb,TCSIZEb,ITYPETb,
+ * NMTCTb,LABELTb,IFDBb,ISDBb,ITFLGb,VANGb,IVFLGb,IAUTOTb,
+ * ITXTPEb,ITXLBPb,is_hours_axis
c
c tlo x value corresponding to the start time (index number)
c dt sampling rate in minutes (minutes)
@@ -29,6 +33,7 @@ c isdb labeling interval secondary labels
c itflg =-1 y time axis on
c =0 time axis off
c =1 x time axis on
+c =2 x and y time axis on, F-T plot.
c vang rotation angle for stick plots (degrees)
c ivflg =0 normal line plot
c =1 PLOTV command used
diff --git a/ppl/plot/daxis.F b/ppl/plot/daxis.F
index 1c99f3c..2102de7 100644
--- a/ppl/plot/daxis.F
+++ b/ppl/plot/daxis.F
@@ -1,4 +1,4 @@
- SUBROUTINE DAXIS(XF,YF,NMX,NMY,MAINLAB)
+ SUBROUTINE DAXIS(XF,YF,NMX,NMY,DRAW)
*
*
@@ -62,6 +62,12 @@ C of other plot elements but the labels dont need to be.
C *acm* 10/14 bug 2205. Polygon plots have extra calls because polygons can get
C drawn on topof axes. This(?) causes the main label to not get
C finished. For polygon plots only, draw the main label twice.
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
+* V695 *acm* 4/15 (PyFerret) labels along axes will be drawn with the
+* tic-mark text style
+* V695 *acm* 5/15 Ticket 2279: Draw axis lines, tics and labels only once.
+
+
C**
C** @(#)daxis.F 1.1 3/10/88
C**
@@ -99,10 +105,10 @@ C**
include 'TICS2.INC'
include 'axisl_inc.decl'
include 'AXISL.INC'
+ INCLUDE 'pyfonts.cmn'
CHARACTER IFX*20,IFY*20
- integer ii, MAINLAB
- LOGICAL noylab
+ LOGICAL noylab, DRAW
* TMAP interrupt flag
include 'xinterrupt.cmn'
@@ -110,115 +116,120 @@ C**
C If graticule lines are to be drawn across the plot at the tics
C then only do them for one horizontal and one vertical axis.
C The dash lines interfere with each other if drawn from both
-C sides. HLINE and VLINE control this. Draw a second axis after each
-C axis that may have the graticule lines, so the axes themselves are
-C always solid, black.
+C sides. HLINE and VLINE control this. Draw the axis after the
+C graticule lines, so the axes themselves are always solid, black.
HLINE = .TRUE.
VLINE = .TRUE.
-
- do ii = 1, 2 ! first time thru do graticules,
- ! second time dont, get black axes
-
- IF(IMCNT.LE.1)THEN
- CALL BOX
- END IF
+
C SETUP AXIS
- CALL SETLAB(XF,YF,LTT,LTB,LYL,LYR,LXT,LXB,IFX,IFY)
-
- IF (ii .EQ. 2 .OR. mainlab .EQ. 0) THEN
- LTT = 0
- LTB = 0
- LYL = 0
- LYR = 0
- LXT = 0
- LXB = 0
- ENDIF
+ CALL SETLAB(XF,YF,LTT,LTB,LYL,LYR,LXT,LXB,IFX,IFY,LTBb)
+
+C ---------- Skip this section if not drawing the axes ----------
+ IF (DRAW) THEN
+
noylab = (ylab .EQ. ' ')
C
C DRAW AXIS, LEFT, RIGHT Y AXIS THEN TOP, BOTTOM XAXIS
C
- IF(MAKEP.EQ.'VIEW')GOTO 1000
+ IF(MAKEP.EQ.'VIEW') GOTO 1000
+
+
+* (PyFerret) labels along vertical axes will be drawn with the ivtics text style
+ IF (pyfont .AND. pyf_set(ivtics)) igroup = ivtics
+
IF(MYLEF.EQ.0.AND.IAXON(3).EQ.1)THEN
IY=ITY
C YAXIS1 = LINEAR , YAXIS2 = LOG
-C
- IF(ITFLG.EQ.-1)THEN
- CALL TAYIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTB,IFDB,ISDB,
- * YF,XLO,XF,TCSIZE,XHI,HGRAT, HCOLOR, HLINE)
+C
+ IF((ITFLG.EQ.-1 .OR. ITFLG.EQ.2))THEN
+ IF(ITFLG.EQ.-1) CALL TAYIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTB,IFDB,ISDB,
+ * YF,XLO,XF,TCSIZE,XHI,HGRAT, HCOLOR, HLINE, IPEN(0), is_hours_axis)
+ IF(ITFLG.EQ.2) CALL TAYIS(ITYPETb,TLOb,IT1b,IT2b,DT,NMTCTb,LTBb,IFDBb,ISDBb,
+ * YF,XLO,XF,TCSIZEb,XHI,HGRAT, HCOLOR, HLINE, IPEN(0), is_hours_axis)
hline = .FALSE.
ELSE IF(ITYPEY.EQ.1)THEN
CALL YAXIS1(XLO,XF,YLO,YHI,YTIC,NMY,LINTY,1.,LYL,IFY,YF,
* YCSIZE,XHI,YDMS,HGRAT, HCOLOR, HLINE, YVALOFF, NOYLAB,
- * SHRINKY)
+ * SHRINKY, IPEN(0))
hline = .FALSE.
ELSE
CALL YAXIS2(XLO,XF,YLO,YHI,0.,LYL,IFY,1,YF,YCSIZE,
- . XHI,HGRAT, HCOLOR, HLINE)
+ . XHI,HGRAT, HCOLOR, HLINE, IPEN(0))
hline = .FALSE.
END IF
END IF
IF ( interrupted ) GOTO 3333 ! TMAP interrupt
IF(IAXON(4).EQ.1)THEN
IY=-ITY
- IF(ITFLG.EQ.-1)THEN
- CALL TAYIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
- * YF,XHI,XF,TCSIZE,XLO,HGRAT, HCOLOR, HLINE)
+ IF((ITFLG.EQ.-1 .OR. ITFLG.EQ.2)) THEN
+ IF(ITFLG.EQ.-1) CALL TAYIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
+ * YF,XHI,XF,TCSIZE,XLO,HGRAT, HCOLOR, HLINE, IPEN(0), is_hours_axis)
+ IF(ITFLG.EQ.2) CALL TAYIS(ITYPETb,TLOb,IT1b,IT2b,DT,NMTCTb,LTTb,IFDBb,ISDBb,
+ * YF,XHI,XF,TCSIZEb,XLO,HGRAT, HCOLOR, HLINE, IPEN(0), is_hours_axis)
hline = .FALSE.
ELSE IF(ITYPEY.EQ.1)THEN
CALL YAXIS1(XHI,XF,YLO,YHI,YTIC,NMY,LINTY,1.,LYR,IFY,YF,
* YCSIZE,XLO,YDMS,HGRAT, HCOLOR, HLINE, YVALOFF, NOYLAB,
- * SHRINKY)
+ * SHRINKY, IPEN(0))
hline = .FALSE.
ELSE
CALL YAXIS2(XHI,XF,YLO,YHI,0.,LYR,IFY,1,YF,YCSIZE,
- . XLO,HGRAT, HCOLOR, HLINE)
+ . XLO,HGRAT, HCOLOR, HLINE, IPEN(0))
hline = .FALSE.
ENDIF
ENDIF
+
+
IF ( interrupted ) GOTO 3333 ! TMAP interrupt
+
+* (PyFerret) labels along horizontal axes will be drawn with the ihtics text style
+ IF (pyfont .AND. pyf_set(ihtics)) igroup = ihtics
+
IF(IAXON(1).EQ.1)THEN
IX=-ITX
C
C XAXIS1 = LINEAR, XAXIS2 = LOG, TAXIS CALLS EITHER TAXIS0,
C TAXIS1 OR TAXIS3
C
- IF(ITFLG.EQ.1)THEN
+ IF((ITFLG.EQ.1 .OR. ITFLG.EQ.2)) THEN
CALL TAXIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
- * XF,YHI,YF,TCSIZE,YLO,VGRAT, VCOLOR, VLINE)
+ * XF,YHI,YF,TCSIZE,YLO,VGRAT, VCOLOR, VLINE, IPEN(0), is_hours_axis)
vline = .FALSE.
ELSE IF (ITYPEX.EQ.1)THEN
CALL XAXIS1(XLO,XHI,XTIC,NMX,LINTX,1.,LXT,IFX,XF,YHI,YF,
- * XCSIZE,YLO,XDMS,VGRAT, VCOLOR, VLINE, XVALOFF)
+ * XCSIZE,YLO,XDMS,VGRAT, VCOLOR, VLINE, XVALOFF, IPEN(0))
vline = .FALSE.
ELSE
CALL XAXIS2(XLO,XHI,0.,LXT,IFX,1,XF,YHI,YF,XCSIZE,
- * YLO,VGRAT, VCOLOR, VLINE)
+ * YLO,VGRAT, VCOLOR, VLINE, IPEN(0))
vline = .FALSE.
END IF
END IF
IF ( interrupted ) GOTO 3333 ! TMAP interrupt
IF(MXBOT.EQ.0.AND.IAXON(2).EQ.1)THEN
IX=ITX
- IF(ITFLG.EQ.1)THEN
+ IF((ITFLG.EQ.1 .OR. ITFLG.EQ.2)) THEN
CALL TAXIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTB,IFDB,ISDB,
- * XF,YLO,YF,TCSIZE,YHI,VGRAT, VCOLOR, VLINE)
+ * XF,YLO,YF,TCSIZE,YHI,VGRAT, VCOLOR, VLINE, IPEN(0), is_hours_axis)
vline = .FALSE.
ELSE IF (ITYPEX.EQ.1) THEN
CALL XAXIS1(XLO,XHI,XTIC,NMX,LINTX,1.,LXB,IFX,XF,YLO,YF,
- * XCSIZE,YHI,XDMS,VGRAT, VCOLOR, VLINE, XVALOFF)
+ * XCSIZE,YHI,XDMS,VGRAT, VCOLOR, VLINE, XVALOFF, IPEN(0))
vline = .FALSE.
ELSE
CALL XAXIS2(XLO,XHI,0.,LXB,IFX,1,XF,YLO,YF,XCSIZE,
- * YHI,VGRAT, VCOLOR, VLINE)
+ * YHI,VGRAT, VCOLOR, VLINE, IPEN(0))
vline = .FALSE.
END IF
END IF
- enddo ! ii loop
+
+ ENDIF ! draw
+C ---------- End of skip section if not drawing the axes ----------
* TMAP interrupt re-entry
3333 CONTINUE
-
+
IF(IWIND.GT.0)CALL WINDOW(XLO,YLO,XHI,YHI)
CALL CROSS
CALL WINDOW(0.,0.,0.,0.)
@@ -226,7 +237,11 @@ C
C DRAW AXIS LABELS
C
1000 CONTINUE
- IF (mainlab .GE. 1) CALL LABDRW(XF,YF,IFX,IFY)
+
+* (PyFerret) cancel tic-mark text style
+ IF (pyfont) igroup = fnt_all
+
+ IF (DRAW) CALL LABDRW(XF,YF,IFX,IFY)
CALL PPLGFLUSH
RETURN
END
diff --git a/ppl/plot/daxis2.F b/ppl/plot/daxis2.F
index c107873..b3e00d8 100644
--- a/ppl/plot/daxis2.F
+++ b/ppl/plot/daxis2.F
@@ -50,6 +50,8 @@ C**
* v552 *acm* 3/03 Changes for multi-line labels.
* V69+ 5/14 *acm* Fix for ascii font in multi-line labels, ticket 2176
+* V695 4/15 (PyFerret) Logo labels drawn with the logo text style
+
INCLUDE 'PARAMPL5.DAT'
INCLUDE 'AXIS.INC'
INCLUDE 'LABELS.INC'
@@ -71,12 +73,13 @@ C**
include 'xinterrupt.cmn' ! 1/89 *sh*
include 'ppl_in_ferret.cmn'
+ include 'pyfonts.cmn'
******************************************************************************
CHARACTER OUT*255
- INTEGER numlines, i, j
+ INTEGER TM_LENSTR, numlines, i, j
c CHARACTER fontprefix*3, penprefix*3, newfont*3, newpen*3
c INTEGER lnbeg(500), lnend(500),
@@ -85,6 +88,15 @@ c line_spacing = 1.4
CALL VECTRS
DO 80 I=1,NLAB
+
+* Don't go through the motions of plotting blank labels
+ IF (TM_LENSTR(labs(i)) .EQ. 0) GOTO 80
+
+ IF (pyfont .AND. pyf_set(ilogo)) THEN
+ IF (logolab(1).EQ.i .OR. logolab(2).EQ.i .OR.
+ . logolab(3).EQ.i) igroup = ilogo
+ ENDIF
+
IF(RHLABS(I).LT.0.0)THEN
HLB=HLABS
ELSE
@@ -199,7 +211,10 @@ C Set up to use any font settings from this line on subsequent lines.
20 CONTINUE
+ IF (pyfont) igroup = fnt_all
80 CONTINUE
+
+
IF(PLTOPN)RETURN
IF(IMULT.EQ.0.OR.IMCNT.EQ.MNX*MNY)THEN
IF(SWAIT)THEN
diff --git a/ppl/plot/labdrw.F b/ppl/plot/labdrw.F
index 4d5e906..8d07b67 100644
--- a/ppl/plot/labdrw.F
+++ b/ppl/plot/labdrw.F
@@ -48,6 +48,8 @@ C *kob* 04/07/96 passed in character strings had to be declared
C with "*(*)" for the linux port
C *acm* v552 3/03 Longer strings and changes for multi-line labels.
* V69+ 5/14 *acm* Fix for ascii font in multi-line labels, ticket 2176
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
+C V695 *acm* 5/15 Simplify: do not go through the motions of plotting blank labels
INCLUDE 'PARAMPL5.DAT'
INCLUDE 'AXIS.INC'
@@ -63,9 +65,10 @@ C *acm* v552 3/03 Longer strings and changes for multi-line labels.
INCLUDE 'TICS2.INC'
INCLUDE 'AXISL.INC'
INCLUDE 'AXLWID.INC'
+ INCLUDE 'pyfonts.cmn'
CHARACTER IFX*(*),IFY*(*)
- INTEGER j, lablen, numlines, slen
+ INTEGER TM_LENSTR, j, lablen, numlines, slen
REAL htnew, wid
c INTEGER lnbeg(500), lnend(500)
@@ -78,10 +81,12 @@ c line_spacing = 0.4
C DRAW LABELS
IF(MAKEP.EQ.'VIEW')GOTO 40
- IF(LABELY.EQ.0.OR.ITFLG.EQ.-1)GOTO 20
+ IF(LABELY.EQ.0.OR.(ITFLG.EQ.-1.OR.ITFLG.EQ.2))GOTO 20
C Y label. center each line
+ IF (TM_LENSTR(ylab) .GT. 0) THEN
+ IF (pyfont .AND. pyf_set(ivlab)) igroup = ivlab
CALL tm_break_lines (ylab, lnbeg, lnend, numlines)
IF(LABELY.LT.0.)THEN
@@ -91,6 +96,7 @@ C Y label. center each line
XL=XHI+(YWID+2.*HYLAB)/XF
ENDIF
+
nfont = 0
npen = 0
fontprefix = ""
@@ -122,10 +128,15 @@ C Set up to use any font settings from this line on subsequent lines.
10 CONTINUE
+ IF (pyfont) igroup = fnt_all
+ ENDIF ! TM_LENSTR(ylab)
C X label
-20 IF(LABELX.EQ.0.OR.ITFLG.EQ.1)GOTO 40
+ IF (TM_LENSTR(xlab) .GT. 0) THEN
+ IF (pyfont .AND. pyf_set(ihlab)) igroup = ihlab
+
+20 IF(LABELX.EQ.0.OR.(ITFLG.EQ.1.OR.ITFLG.EQ.2))GOTO 40
CALL tm_break_lines (xlab, lnbeg, lnend, numlines)
IF(LABELX.LT.0)THEN
@@ -136,6 +147,7 @@ C X label
. line_spacing*(numlines-1)* hxlab/yf
ENDIF
+
nfont = 0
npen = 0
fontprefix = ""
@@ -173,7 +185,13 @@ C Set up to use any font settings from this line on subsequent lines.
cc ENDIF
30 CONTINUE
+ IF (pyfont) igroup = fnt_all
+ ENDIF ! TM_LENSTR(xlab)
+
C Main label
+
+ IF (TM_LENSTR(lab1) .GT. 0) THEN
+ IF (pyfont .AND. pyf_set(ititl)) igroup = ititl
40 CALL tm_break_lines (lab1, lnbeg, lnend, numlines)
@@ -195,7 +213,7 @@ C Main label
C Determine starting y position of main label
ITFLG2=0
- IF(ITFLG.EQ.1)ITFLG2=1
+ IF(ITFLG.EQ.1.OR.ITFLG.EQ.2)ITFLG2=1
IF (LABELX .GE. 0) THEN
YTEMP = XWID - 1.9*ABS(XCSIZE) + 2.5*htnew
ELSE
@@ -233,5 +251,9 @@ C Set up to use any font settings from this line on subsequent lines.
ENDIF
50 CONTINUE
-70 RETURN
+70 CONTINUE
+ IF (pyfont) igroup = fnt_all
+ ENDIF ! TM_LENSTR(lab1)
+
+ RETURN
END
diff --git a/ppl/plot/lev.F b/ppl/plot/lev.F
index 363dd48..d9e627a 100644
--- a/ppl/plot/lev.F
+++ b/ppl/plot/lev.F
@@ -268,10 +268,5 @@ C
GOTO 200
10 CONTINUE
- IF (center_key_labels) THEN
- dz = zlev(nlev) - zlev(nlev-1)
- nlev = nlev + 1
- zlev(nlev) = zlev(nlev-1) + dz
- ENDIF
RETURN
END
diff --git a/ppl/plot/linfit.F b/ppl/plot/linfit.F
index 06ab43a..265a966 100644
--- a/ppl/plot/linfit.F
+++ b/ppl/plot/linfit.F
@@ -40,6 +40,9 @@ C**
* v580 *acm* 8/04 Change use of 256 to buflen+1,
* where buflen is defined in cmndlen.inc
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
+* V695 *acm* 9/15 Changes for hour:min labeling on time axes
+* v695 9/15 *acm* write values to PPL* symbols using 6 digits not 4
C**
C***********************************************************************
C**
@@ -74,18 +77,18 @@ C
WRITE(OUT,'(F10.4)')R*R
CALL PUTSYM(SYM,OUT,10,IER)
SYM='*PPL$LF_A'
- CALL PUTVAL(SYM,A,4,IER)
+ CALL PUTVAL(SYM,A,7,IER)
SYM='*PPL$LF_A_STDEV'
- CALL PUTVAL(SYM,AS,4,IER)
+ CALL PUTVAL(SYM,AS,7,IER)
SYM='*PPL$LF_B'
- CALL PUTVAL(SYM,B,4,IER)
+ CALL PUTVAL(SYM,B,7,IER)
SYM='*PPL$LF_B_STDEV'
- CALL PUTVAL(SYM,BS,4,IER)
+ CALL PUTVAL(SYM,BS,7,IER)
SYM='*PPL$LF_VAR'
- CALL PUTVAL(SYM,VAR,4,IER)
+ CALL PUTVAL(SYM,VAR,7,IER)
SYM='*PPL$LF_RES_VAR'
ST2=STD*STD
- CALL PUTVAL(SYM,ST2,4,IER)
+ CALL PUTVAL(SYM,ST2,7,IER)
C
C WRITE STATS INTO ECHO FILE AND ON SCREEN
C
@@ -262,8 +265,9 @@ C
INCLUDE 'AXISL.INC'
INCLUDE 'TAXIS.INC'
+ REAL*8 DIFF
CHARACTER DATE*10
- IF(ITFLG.EQ.1.AND.N.NE.0)THEN
+ IF((ITFLG.EQ.1.OR.ITFLG.EQ.2).AND.N.NE.0)THEN
C
C PARSE THE LABEL FOR MIN AND MAX TIMES
C
diff --git a/ppl/plot/opnppl.F b/ppl/plot/opnppl.F
index 0d02a05..e22e2bd 100644
--- a/ppl/plot/opnppl.F
+++ b/ppl/plot/opnppl.F
@@ -40,6 +40,7 @@
* Mod to set SYM='*PPL$PLTNME' to value of meta_file *js* 7.25.97
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
* v691 5/14 *acm* Change name MOD to TEKMOD
+* v695 9/15 *acm* write values to PPL* symbols using 6 digits not 4
C**
C** @(#)opnppl.F 1.1 3/10/88
C**
@@ -235,19 +236,19 @@ C
#else
TEMP='TT:'
#endif
- CALL PUTSYM(SYM,TEMP,8,IER)
+ CALL PUTSYM(SYM,TEMP,7,IER)
SYM='*PPL$XLEN'
- CALL PUTVAL(SYM,XLEN,4,IER)
+ CALL PUTVAL(SYM,XLEN,7,IER)
SYM='*PPL$YLEN'
- CALL PUTVAL(SYM,YLEN,4,IER)
+ CALL PUTVAL(SYM,YLEN,7,IER)
SYM='*PPL$XORG'
- CALL PUTVAL(SYM,XORG,4,IER)
+ CALL PUTVAL(SYM,XORG,7,IER)
SYM='*PPL$YORG'
- CALL PUTVAL(SYM,YORG,4,IER)
+ CALL PUTVAL(SYM,YORG,7,IER)
SYM='*PPL$WIDTH'
- CALL PUTVAL(SYM,WIDTH,4,IER)
+ CALL PUTVAL(SYM,WIDTH,7,IER)
SYM='*PPL$HEIGHT'
- CALL PUTVAL(SYM,HEIGHT,4,IER)
+ CALL PUTVAL(SYM,HEIGHT,7,IER)
SYM='*PPL$LINE_COUNT'
TEMP='0'
CALL PUTSYM(SYM,TEMP,1,IER)
@@ -258,13 +259,13 @@ C
DO 20 I=1,ISYM
WRITE(SYM,999)'XFACT',I
999 FORMAT('*PPL$',A,'(',I3,')')
- CALL PUTVAL(SYM,XFCT(I),4,IER)
+ CALL PUTVAL(SYM,XFCT(I),7,IER)
WRITE(SYM,999)'XOFF',I
- CALL PUTVAL(SYM,XOFF(I),4,IER)
+ CALL PUTVAL(SYM,XOFF(I),7,IER)
WRITE(SYM,999)'YFACT',I
- CALL PUTVAL(SYM,YFCT(I),4,IER)
+ CALL PUTVAL(SYM,YFCT(I),7,IER)
WRITE(SYM,999)'YOFF',I
- CALL PUTVAL(SYM,YOFF(I),4,IER)
+ CALL PUTVAL(SYM,YOFF(I),7,IER)
20 CONTINUE
C
C STORE VIEW SYMBOLS
diff --git a/ppl/plot/plotxy.F b/ppl/plot/plotxy.F
index 8dc0ca1..c00373a 100644
--- a/ppl/plot/plotxy.F
+++ b/ppl/plot/plotxy.F
@@ -61,6 +61,10 @@ C
* ACM 10/2012 Modulo-ing for PLOT/VS longitudes overlaid on a map.
* ACM 2/2013 ticket 2141. Fix the modulo operation when the longitude
* range is over 360.
+* V6.94+ *acm* 3/15 Ticket 2247: singleton points in line plots marked with a dot
+* v696 *acm* 6/15 PLOT/VS/GAPLOC to define seperate line segments on
+* PLOT/VS plots (LAS ticket 1597 and others)
+* v696 *acm* 6/15 Reverting. Implement /GAPLOC only for ribbon plots.
include 'xinterrupt.cmn' ! 1/89 *sh*
include 'ppl_in_ferret.cmn'
@@ -99,6 +103,9 @@ C
INTEGER xpolybase, ypolybase, zpolybase, polysizemax, nl,
. nvertex, fill_ndx
+ INTEGER klast, mdot
+ REAL xtlast, ytlast
+
INTEGER GET_NDX
* GKS initialization vars
@@ -116,6 +123,7 @@ C
xadd = 0.
xadlast = 0.
+ MDOT = 99
C
C JTYPE IS DATA TYPE (0 FOR 2D, 1 FOR 1D)
C
@@ -130,6 +138,7 @@ C
ICNT=1
IF(M.GE.2.AND.IFLG(2).NE.0)ICNT=P(2)
+
IF(MAKEP.EQ.'PLOTUV')THEN
IBASE=IY
IBASE1=0
@@ -270,6 +279,12 @@ C CHECK POINTS FOR OUT OF RANGE (CM)
* (YLE.AND.X(IY+K).LE.CMYLE).OR.
* (YEQ.AND.X(IY+K).EQ.CMYEQ).OR.
* (YGE.AND.X(IY+K).GE.CMYGE))THEN
+
+ IF (IDN .EQ. 1 .AND. klast.EQ.k-1) THEN ! prev pt was a singleton
+ CALL PLOT(XTLAST,YTLAST,0,0)
+ CALL MARK(MDOT)
+ ENDIF
+
IDN=0
ELSE
@@ -313,6 +328,9 @@ C CHECK POINTS FOR OUT OF RANGE (CM)
if (interrupted) goto 51 ! *jd* 8.3.92
CALL MARK(IM)
IF(IDN.EQ.0)THEN
+ xtlast = xt
+ ytlast = yt
+ klast = k
IDN=1
END IF
END IF
diff --git a/ppl/plot/plotxy_ribbon.F b/ppl/plot/plotxy_ribbon.F
index 069a6c6..b23b268 100644
--- a/ppl/plot/plotxy_ribbon.F
+++ b/ppl/plot/plotxy_ribbon.F
@@ -64,7 +64,12 @@ C
* ACM 5/2014 Fixes for changes of color in combination with handling
* modulo longitude data
* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
-*
+* V6.94 *acm* 1/15 fix ticket 2216: when using (-inf), a color-by variable
+* starting with missing was colored incorrectly.
+* V6.94+ *acm* 3/15 Ticket 2247: singleton points in line plots marked with a dot
+* v696 *acm* 6/15 PLOT/VS/RIBBON/GAPLOC to define seperate line segments on
+* color PLOT/VS plots (LAS ticket 1597 and others)
+
include 'xinterrupt.cmn' ! 1/89 *sh*
include 'ppl_in_ferret.cmn'
@@ -105,12 +110,15 @@ C
INTEGER xpolybase, ypolybase, zpolybase, polysizemax, nl,
. nvertex, low_index, colr_ndx, last_colr_ndx, ncolors,
. line_ndx, thick_offset, nseg, iseg, indx, inc
- INTEGER GET_NDX, ibase, iline2
+ INTEGER GET_NDX, ibase, iline2, ilineg
logical isbad, last_bad, bad_blank, new_branch
real xadd, xaddlast, datx, daty, datxlast,datylast
integer ndx,type
+
+ INTEGER klast, mdot
+ REAL xtlast, ytlast
* GKS initialization vars
@@ -127,6 +135,7 @@ C
xadd = 0.
xadlast = 0.
new_branch = .FALSE.
+ MDOT = 99
C
C JTYPE IS DATA TYPE (0 FOR 2D, 1 FOR 1D)
C
@@ -163,8 +172,10 @@ C Set the contour/color levels
ENDIF
ILINE2=IBASE+LLENG(I)
+ ILINEG=IBASE+2*LLENG(I)
+ igap = 0
- CALL MARKH(HMARK(I))
+ CALL MARKH(HMARK(I))
* IPEN contains the thickness setting.
@@ -212,7 +223,11 @@ C CHECK POINTS FOR OUT OF RANGE (CM)
IF(YGE.AND.X(IY+J).GE.CMYGE)GOTO 70
last_bad = .FALSE.
- colr_ndx = GET_NDX (X(IY+J+ILINE2),colr_ndx)
+
+ datum = X(IY+J+ILINE2)
+ IF (datum .EQ. -3.E33) datum = CMZGE ! This value set in pplldx.
+
+ colr_ndx = GET_NDX (datum,colr_ndx)
CALL SET_RIBBON_NDX (colr_ndx)
line_ndx = colr_ndx + thick_offset + low_index - 1
@@ -258,16 +273,22 @@ C CHECK POINTS FOR OUT OF RANGE (CM)
* (YLE.AND.X(IY+K).LE.CMYLE).OR.
* (YEQ.AND.X(IY+K).EQ.CMYEQ).OR.
* (YGE.AND.X(IY+K).GE.CMYGE))THEN
+
+ IF (IDN .EQ. 1 .AND. klast.EQ.k-1) THEN ! prev pt was a singleton
+ CALL PLOT(XTLAST,YTLAST,0,0)
+ CALL MARK(MDOT)
+ ENDIF
+
IDN=0
ELSE
CALL PLOT(XT,YT,IDN,0)
-
datx = X(K)
daty = X(IY+K)
-
+* if 1, then this is the end of a segment. Draw to it, and pick up the pen.
+ IF (gap_var.GT.0) igap = INT(X(IY+K+ILINEG))
IF (MOD_VS_X .AND. datx .LT. xlo) THEN
xadd = 360.
@@ -397,9 +418,21 @@ C CHECK POINTS FOR OUT OF RANGE (CM)
ENDIF
CALL PLOT(XT,YT,IDN,0)
- IF(IDN.EQ.0)IDN=1
+ IF(IDN.EQ.0)THEN
+ xtlast = xt
+ ytlast = yt
+ klast = k
+ IDN=1
+ ENDIF
new_branch = .FALSE.
END IF
+
+* if gap_var = 1, then this is the end of a segment. Draw to it, and pick up the pen.
+ IF (igap.GT.0) THEN
+ IDN = 0
+ CALL PLOT(XT,YT,IDN,0)
+ ENDIF
+
72 CONTINUE
END IF
IF(ITYPE(I).EQ.2.OR.ITYPE(I).EQ.5)CALL MARK(IMARK(I))
diff --git a/ppl/plot/plotz.F b/ppl/plot/plotz.F
index f9bfe9c..b4a0522 100644
--- a/ppl/plot/plotz.F
+++ b/ppl/plot/plotz.F
@@ -94,6 +94,7 @@ C
* v68 *acm* 4/08 Allow shade, vector plots of degenerate regions - world region
* within a grid cell
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus
+* V6.95 *acm* 3/15 Changes for PyFerret fonts - text group settings for labels along contour lines
INCLUDE 'PARAMPL5.DAT'
INCLUDE 'ZGRIDD.INC'
@@ -109,6 +110,8 @@ C
INCLUDE 'PLTL.INC'
include 'xcurvilinear.cmn'
INCLUDE 'errmsg.parm'
+ INCLUDE 'pyfonts.cmn'
+
* Argument declarations
** DIMENSION Z(NX,NY)
@@ -124,6 +127,8 @@ C
LOGICAL TM_FPEQ_SNGL
logical valid
+
+ INTEGER ier
C* *jd* Linux port 12.96 add EXTERNAL calls below
external scale, range
@@ -263,6 +268,15 @@ C
IF (IWIND.NE.0) CALL WINDOW(0.0,0.0,XLEN,YLEN)
CALL COLOR(IPEN(1))
+* If the user has set text style with SET TEXT/CONTOUR, use those settings.
+* Otherwise get the color fractions for the pen being used for the contours.
+
+ IF (pyfont) THEN
+ igroup = icont
+ IF (.NOT. pyf_set(icont))
+ . CALL FGD_GQCR(IWIND, IPEN(1), ier, pyf_red(igroup),
+ . pyf_grn(igroup), pyf_blu(igroup), opaqfrac)
+ ENDIF
C Calculate the following quantities:
C ~FF - multiplication factors to go from axis to page coords?
@@ -358,6 +372,14 @@ C
C END VAX/VMS
C
CALL COLOR(IPEN(0))
+
+ IF (pyfont) THEN
+
+* Restore settings in pyfont common
+
+ IF (pyfont) igroup = 0
+ ENDIF
+
CALL SCALE(XF,YF,XORG,YORG,XLO,YLO)
RETURN
diff --git a/ppl/plot/pltit.F b/ppl/plot/pltit.F
index 27af2e7..23d60a2 100644
--- a/ppl/plot/pltit.F
+++ b/ppl/plot/pltit.F
@@ -92,59 +92,37 @@
* v68 *acm* 4/08 Allow shade, vector plots of degenerate regions - world region
* within a grid cell
* PyFr 11/11 *kms* added call to consider updating the drawing when done
-*
+** V68 *acm* 4/11 change how flag meta_batch is computed (different Makefile)
+* V6.8 *acm* 7/9/2012 For batch graphics on RHEL6, change ITS_BATCH_GRAPHICS
+* from logical to integer, then batch = ITS_BATCH_GRAPHICS().NE.0
+* V694 *acm* 5/15 Ticket 2283. Handling axis scaling for ribbon plots.
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
+* V694 *acm* 2/15 Fix ticket 2232; redraw plot axes on line plots
+* V694 *acm* 5/15 correct the setting of is_ribbon
+* V695 *acm* 5/15 Ticket 2279: PyFerret don't redraw lines
+* V695 *acm* 5/15 Ticket 2279: Draw axis lines, tics and labels only once. It does not
+* work to call DAXIS only at the end of this routine; the calls to axis
+* subroutines apparently make some settings for scaling on the page.
+* Call daxis with a flag "DRAW" set to false, which executes the
+* routine but does not make drawing calls.
+* V695 *acm* 6/15 Ticket 2297, scaling on overlay plots
+* V695 *acm* 9/15 Changes for hour:min labeling on time axes
+
*****************************************************
* local variable declarations for PLTIT (for TMAP)
- REAL DIFF, x, xf, yf, xl, yl, xh, yh, xti, xtl, thi
- REAL*8 XLPLOT,YLPLOT,XHPLOT,YHPLOT
+ REAL x, xf, yf, xl, yl, xh, yh, xti, xtl, thi
+ REAL*8 DIFF, XLPLOT,YLPLOT,XHPLOT,YHPLOT
REAL xtm,ytm,xtx,ytx,minx,maxx,miny,maxy
INTEGER nxs, nmx, nmy, ivloc, ip1, ip2, ip3, ip4, a_line,
- . LABELX_save, LABELY_save, LABELT_save, MAINLAB
+ . LABELX_save, LABELY_save, LABELT_save
+ LOGICAL DRAW
* TMAP include files with explicit type declarations:
include 'parampl5_dat.decl'
include 'PARAMPL5.DAT'
DIMENSION X(NXS) ! Was VIRTUAL, changed for linux *jd*
-*
-*
-* This software was developed by the Thermal Modeling and Analysis
-* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
-* hereafter referred to as NOAA/PMEL/TMAP.
-*
-* Access and use of this software shall impose the following
-* obligations and understandings on the user. The user is granted the
-* right, without any fee or cost, to use, copy, modify, alter, enhance
-* and distribute this software, and any derivative works thereof, and
-* its supporting documentation for any purpose whatsoever, provided
-* that this entire notice appears in all copies of the software,
-* derivative works and supporting documentation. Further, the user
-* agrees to credit NOAA/PMEL/TMAP in any publications that result from
-* the use of this software or in any product that includes this
-* software. The names TMAP, NOAA and/or PMEL, however, may not be used
-* in any advertising or publicity to endorse or promote any products
-* or commercial entity unless specific written per/x=178.5:179.5 uwndion is obtained
-* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
-* is not obligated to provide the user with any support, consulting,
-* training or assistance of any kind with regard to the use, operation
-* and performance of this software nor to provide the user with any
-* updates, revisions, new versions or "bug fixes".
-*
-* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
-* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
-* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
-*
-** V68 *acm* 4/11 change how flag meta_batch is computed (different Makefile)
-* V6.8 *acm* 7/9/2012 For batch graphics on RHEL6, change ITS_BATCH_GRAPHICS
-* from logical to integer, then batch = ITS_BATCH_GRAPHICS().NE.0
-
include 'lines_inc.decl'
include 'LINES.INC'
include 'pen_inc.decl'
@@ -188,14 +166,13 @@
include 'shade_vars.cmn'
- LOGICAL CLEAR,CONTR,no_vpt_flag
+ LOGICAL CLEAR,CONTR,no_vpt_flag, is_ribbon
* *jd* linux port 12.96 Add external stmt below
external size, scale
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
- mainlab = 1 ! Flag: Draw the main label in calls to DAXIS
IF(((MAKEP.EQ.'CONTOUR'.OR.MAKEP.EQ.'VIEW'.or.
* makep.eq.'FILL'.or.makep.eq.'PIXEL'.or.
@@ -238,9 +215,12 @@ C SETUP AXIS FOR ALL PLOT TYPES.
***********************************************
CALL COLOR(IPEN(0))
IF(.NOT.SOVER)THEN
- CALL SETAX(X,NXS,XF,YF,XL,YL,XH,YH,NMX,NMY,XTI,XTL)
+ is_ribbon = MAKEP.EQ.'RIBPLOT'
+ CALL SETAX(X,NXS,XF,YF,XL,YL,XH,YH,NMX,NMY,XTI,XTL,is_ribbon)
+
IF (ABS(XF) .GT. CMZGE .OR. ABS(YF) .GT. CMZGE) GOTO 3333 ! fill/contour but 1 grid point
- CALL DAXIS(XF,YF,NMX,NMY,MAINLAB)
+ DRAW = .FALSE.
+ CALL DAXIS(XF,YF,NMX,NMY,DRAW)
XLPLOT=DBLE(XL)
XHPLOT=DBLE(XH)
@@ -258,15 +238,22 @@ C SETUP AXIS FOR ALL PLOT TYPES.
IF ( interrupted ) GOTO 3333 ! 1/89 - *sh*
ELSE
IF(ITFLG.NE.0)THEN
+ ! Handle time as in setax for short-time axes
+
+ IF (is_hours_axis .GT. 0) THEN ! Round off to the nearest minute
+ CALL FIXTIM (ITMIN,ITMAX,IT1,IT2,4)
+ ELSE
+ CALL FIXTIM (ITMIN,ITMAX,IT1,IT2,ITYPET) ! to the hour
+ ENDIF
TLO = 1. - DIFF(IT1,ITSTRT)/DT
THI=TLO+DIFF(IT1,IT2)/DT
ENDIF
- IF(ITFLG.EQ.1)THEN
+ IF(ITFLG.EQ.1 .OR. ITFLG.EQ.2)THEN
XTI=XHI
XTL=XLO
XHI=THI
XLO=TLO
- ELSE IF(ITFLG.EQ.-1)THEN
+ ELSE IF(ITFLG.EQ.-1 .OR. ITFLG.EQ.2)THEN
XTI=YHI
XTL=YLO
YHI=THI
@@ -300,20 +287,17 @@ C
ENDIF
CALL PLOTZ(X(IVLOC),XF,YF,XLPLOT,YLPLOT,XHPLOT,YHPLOT)
-C Call WINDOW to restore values of XMIN, XMAX, YMIN, YMAX. Plot axis again
-C so any tics inside the box show up.
+C Call WINDOW to restore values of XMIN, XMAX, YMIN, YMAX.
IF(MAKEP.EQ.'FILL') THEN
IF(IWIND.GT.0)CALL WINDOW(XLO,YLO,XHI,YHI)
- mainlab = 0
- CALL DAXIS(XF,YF,NMX,NMY,MAINLAB)
- CALL DAXIS_BOX
ENDIF
ELSE IF(MAKEP.EQ.'PLOT') THEN
IPV = 0
CALL PLOTXY(X,NXS,XF,YF,IPV)
if (interrupted) go to 3333
+
**** JD * ALINE CALL
CALL WINDOW(0.,0.,0.,0.)
C
@@ -343,6 +327,7 @@ C call aline_sub (x,nxs,a_line,minx,miny,maxx,maxy)
ELSE IF(MAKEP.EQ.'RIBPLOT') THEN
CALL PLOTXY_RIBBON(X,NXS,XF,YF)
+ IF ( interrupted ) GOTO 3333
ELSE IF(MAKEP.EQ.'VECTOR')THEN
IF(JTYPE.EQ.-1)THEN
@@ -410,9 +395,7 @@ c CALL PLOTV(X,NXS,XF,YF)
ENDIF
call shade(x(ivloc), x(IP4) )
IF ( interrupted ) GOTO 3333 ! 1/89 - *sh*
- mainlab = 0
- CALL DAXIS(XF,YF,NMX,NMY,MAINLAB)
- CALL DAXIS_BOX
+
***************************************************
* TMAP addition for PLOTPOL call
ELSE IF(MAKEP.EQ.'PLOTPOL')THEN
@@ -454,43 +437,28 @@ c CALL PLOTPOL(X,NXS,XF,YF)
200 continue
end if
-* Redraw the axes after the plot is drawn as polygons may
-* obscure axes and/or tics.
- IF (.NOT. SOVER) THEN
- mainlab = 0
- CALL DAXIS(XF,YF,NMX,NMY,mainlab) ! was MAINLAB
- CALL DAXIS_BOX
- ELSE
-* If it was an overlay, we still want to draw the axes but dont
-* redo labels (See bug 1663)
- LABELX_save = LABELX
- LABELY_save = LABELY
- LABELT_save = LABELT
- LABELX = 0
- LABELY = 0
- LABELT = 0
- mainlab = 0
- CALL DAXIS(XF,YF,NMX,NMY,MAINLAB)
- CALL DAXIS_BOX
- LABELX = LABELX_save
- LABELY = LABELY_save
- LABELT = LABELT_save
- mainlab = 1
- ENDIF
***************************************************
ENDIF
3333 CONTINUE ! 1/89 - *sh*
* post-interrupt re-entry ! 1/89 - *sh*
+
+ DRAW = .FALSE.
+ CALL DAXIS(XF,YF,NMX,NMY,DRAW)
+ IF (.NOT.SOVER) DRAW = .TRUE.
+ IF (SOVER) lab1 = ' '
+ CALL DAXIS(XF,YF,NMX,NMY,DRAW)
+
CALL SCALE(XF,YF,XORG,YORG,XLO,YLO)
C
CALL WINDOW(0.,0.,0.,0.)
C
+C Put movable labels on
IF ( .NOT.interrupted ) CALL DAXIS2(XF,YF,NMX,NMY) ! 1/89 - *sh*
- IF(ITFLG.EQ.1)THEN
+ IF(ITFLG.EQ.1 .OR. ITFLG.EQ.2)THEN
XHI=XTI
XLO=XTL
- ELSE IF(ITFLG.EQ.-1)THEN
+ ELSE IF(ITFLG.EQ.-1 .OR. ITFLG.EQ.2)THEN
YHI=XTI
YLO=XTL
ENDIF
diff --git a/ppl/plot/pplcmd_f.F b/ppl/plot/pplcmd_f.F
index 089498f..bc27eb2 100644
--- a/ppl/plot/pplcmd_f.F
+++ b/ppl/plot/pplcmd_f.F
@@ -128,8 +128,13 @@ C do not make small tics by default.
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
* v691 5/14 *acm* Change name MOD to TEKMOD
* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
+* V694 *acm* 5/15 Ticket 2283. Change to call for subroutine setax.
+* v696 *acm* gap_var to define seperate line segments on PLOT/VS plots
+* (LAS ticket 1597 and others)
+* V695 *acm* 9/15 Changes for hour:min labeling on time axes
+* v695 9/15 *acm* write values to PPL* symbols using 6 digits not 4
-c
c fromi command file or device (/dev/tty or TT: for terminal)
c linei input line for parameters
c isi length of line in characters
@@ -233,10 +238,11 @@ CCCCCCC data tmapdebug/.false./
integer j,k,ic,ierr,lun1,lun11
integer idum1,iy1,ix1,ix3
integer lnblk,ws_state
-
+
+ REAL*8 DIFF
real xm,ym,xt,xdum1,xdum2,xdum3,xdum4
real xdum5,zmn,zmx,p1,x1,y1,y2,x3,x4
- real diff,symwid,xmx,xmn,ymx,ymn,dd
+ real symwid,xmx,xmn,ymx,ymn,dd
external lnblk,diff,symwid
@@ -255,7 +261,6 @@ CCCCCCC data tmapdebug/.false./
INTEGER TM_LENSTR, TM_LENSTR1, slen
character strr*2048
-
LOGICAL TM_HAS_STRING
CHARACTER DTE*10,TEMP*2048,TEMP2*2048,FILE*81,FROM*80,LINE*2048
CHARACTER SYM*120,ICOM7*7
@@ -263,10 +268,10 @@ CCCCCCC data tmapdebug/.false./
CHARACTER COMBUF(ICMDIM)*2048
CHARACTER YES*3,NO*2,err_msg*40
LOGICAL LEOF
- LOGICAL IFLG1,IFLG2,LABON,VALOFF
+ LOGICAL IFLG1,IFLG2,LABON,VALOFF,TBOTH
DIMENSION X1(5),Y1(5),Y2(4),X3(2),IX3(5)
DIMENSION X4(4)
- CHARACTER COMM(123)*7
+ CHARACTER COMM(124)*7
EQUIVALENCE (DT,X3(1)),(ITYPET,IX3(1)),(TSMX,X4(1))
EQUIVALENCE (XLO,X1(1)),(YLO,Y1(1)),
* (HLAB1,Y2(1))
@@ -291,7 +296,8 @@ CCCCCCC data tmapdebug/.false./
* 'SHADE','SHAKEY','SHASET','PIXMAP','ALINE','TMDEBUG','COLOR',
* 'SQFILL','FILL', 'PLOTPOL', 'FILLPOL', 'PATSET','CALENDA',
* 'FLOWLIN', 'S_KEY', 'S_CELL', 'POLYGON', 'XVALOFF', 'YVALOFF',
- * 'LINECOL','RENAMPL','SHRINKY','RIBBON','RIBFAST','RIBMISS'/
+ * 'LINECOL','RENAMPL','SHRINKY','RIBBON','RIBFAST','RIBMISS',
+ * 'GAPLOC'/
! * 'SQFILL','AREA'/ NAME CHANGE *jd*
@@ -401,7 +407,7 @@ C
C Changed ICOM to CHAR*7 comparison for CALENDAR command. *jd* 10.99
ICOM7(1:7)=ICOM(1:7)
- DO 20 I=1,123
+ DO 20 I=1,124
IF(ICOM7.EQ.COMM(I))GOTO 21
20 CONTINUE
IF(ICOM(1:1).EQ.'%')THEN
@@ -420,6 +426,8 @@ C Changed ICOM to CHAR*7 comparison for CALENDAR command. *jd* 10.99
21 IFLG1=(M.GE.1.AND.IFLG(1).NE.0)
IFLG2=(M.GE.2.AND.IFLG(2).NE.0)
LABON=(LABEL.EQ.'ON'.OR.LABEL.EQ.'on')
+ TBOTH=(LABEL.EQ.'BO'.OR.LABEL.EQ.'bo')
+ IF (TBOTH) LABON = .TRUE.
VALOFF=(INDEX(LABEL,'OFF')+INDEX(LABEL,'off')).NE.0
C Mod below for brain dead version *JD* 8.2.91
if (tmapdebug) then
@@ -434,7 +442,7 @@ C Mod below for brain dead version *JD* 8.2.91
* 9800,9900,9910,9920,9930,9940,9950,9110,9120,9130,9140,
* 9150,9160,9170,9180,9190,98,9191,9380,9171,9172,9173,
* 9174,9175,9390,9165,9166,9183,4401,4501,9192,9960,9970,
- * 1550,9980,9990),I
+ * 1550,9980,9982,9984),I
else
GOTO (100,200,300,500,99,700,900,1000,1100,1200,1300,
* 1400,1500,99,1800,1900,2000,2100,2200,2300,2500,2600,
@@ -447,7 +455,7 @@ C Mod below for brain dead version *JD* 8.2.91
* 9800,9900,9910,9920,9930,9940,9950,9110,9120,9130,9140,
* 9150,9160,9170,9180,9190,98,9191,9380,9171,9172,9173,
* 9174,9175,9390,9165,9166,9183,4401,4501,9192,9960,9970,
- * 1550,9980,9990),I
+ * 1550,9980,9982,9984),I
end if
goto 10
@@ -494,9 +502,9 @@ C SIZE
700 WIDTH=P(1)
HEIGHT=P(2)
SYM='*PPL$WIDTH'
- CALL PUTVAL(SYM,WIDTH,4,IER)
+ CALL PUTVAL(SYM,WIDTH,6,IER)
SYM='*PPL$HEIGHT'
- CALL PUTVAL(SYM,HEIGHT,4,IER)
+ CALL PUTVAL(SYM,HEIGHT,6,IER)
GOTO 10
C SMOOTH
900 IF(M.EQ.0)GOTO 10
@@ -809,12 +817,12 @@ C ORIGIN
4600 IF(IFLG1)XORG=P(1)
IF(IFLG2)YORG=P(2)
SYM='*PPL$XORG'
- CALL PUTVAL(SYM,XORG,4,IER)
+ CALL PUTVAL(SYM,XORG,6,IER)
SYM='*PPL$YORG'
- CALL PUTVAL(SYM,YORG,4,IER)
+ CALL PUTVAL(SYM,YORG,6,IER)
if(pltopn)then
call setax(pplmem,pplmem_nsize,xft,yft,xlt,ylt,xht,yht,
- . nmxt,nmyt,xtit,xtlt)
+ . nmxt,nmyt,xtit,xtlt,.FALSE.)
call scale(xft,yft,xorg,yorg,xlo,ylo)
endif
GOTO 10
@@ -868,6 +876,7 @@ C TAXIS
ITFLG=1
ENDIF
ENDIF
+ IF (TBOTH) ITFLG=2
DO 5401 I=1,M
IF(I.GE.3)GOTO 5402
IF(IFLG(I).NE.0)X3(I)=P(I)
@@ -940,12 +949,12 @@ C AXLEN
6300 IF(IFLG1)XLEN=P(1)
IF(IFLG2)YLEN=P(2)
SYM='*PPL$XLEN'
- CALL PUTVAL(SYM,XLEN,4,IER)
+ CALL PUTVAL(SYM,XLEN,6,IER)
SYM='*PPL$YLEN'
- CALL PUTVAL(SYM,YLEN,4,IER)
+ CALL PUTVAL(SYM,YLEN,6,IER)
if(pltopn)then
call setax(pplmem,pplmem_nsize,xft,yft,xlt,ylt,xht,yht,nmxt,
- * nmyt,xtit,xtlt)
+ * nmyt,xtit,xtlt,.FALSE.)
call scale(xft,yft,xorg,yorg,xlo,ylo)
endif
GOTO 10
@@ -1091,13 +1100,13 @@ C TRANSXY
ENDIF
WRITE(SYM,997)'XFACT',I
997 FORMAT('*PPL$',A,'(',I3,')')
- CALL PUTVAL(SYM,XFCT(I),4,IER)
+ CALL PUTVAL(SYM,XFCT(I),6,IER)
WRITE(SYM,997)'XOFF',I
- CALL PUTVAL(SYM,XOFF(I),4,IER)
+ CALL PUTVAL(SYM,XOFF(I),6,IER)
WRITE(SYM,997)'YFACT',I
- CALL PUTVAL(SYM,YFCT(I),4,IER)
+ CALL PUTVAL(SYM,YFCT(I),6,IER)
WRITE(SYM,997)'YOFF',I
- CALL PUTVAL(SYM,YOFF(I),4,IER)
+ CALL PUTVAL(SYM,YOFF(I),6,IER)
GOTO 10
C MARKH
8500 I=IFIX(P(1))
@@ -1155,7 +1164,9 @@ C TIME
GOTO 10
ENDIF
IAUTOT=0
-C
+
+ IF (itflg .EQ. 2) GOTO 9230
+
C GET TMIN,TMAX,TSTART FROM LABEL
C
C IF NO FIRST PARAMETER SKIP TMIN PROCESSING
@@ -1234,14 +1245,111 @@ C
9203 TLO=1.-DIFF(IT1,ITSTRT)/DT
GOTO 10
+c------------------------------------------------------------------------------------
+
+C Time definition for second time axis (forecast/time plot)
+9230 CONTINUE
+
+C GET TMIN,TMAX,TSTART FROM LABEL
+C
+C IF NO FIRST PARAMETER SKIP TMIN PROCESSING
+C
+ IF(M.GE.1.AND.IFLG(1).EQ.0)GOTO 9231
+ IC=INDEX(LABEL,',')
+ IF(IC.EQ.0)IC=buflen+1
+ IS=INDEX(LABEL,' ')
+ IS=MIN0(IS,IC)
+
+ TMPCHR = LABEL(1:IS-1)
+
+ IF ( TMPCHR(12:12) .EQ. ' ' ) THEN
+ IT1b=TMPCHR(2:11) ! old format
+ IT1b(11:14) = '0019'
+ ELSE
+ IT1b(1:12)=TMPCHR(4:15) ! enhanced format
+ IF (tmpchr(11:12) .EQ. ' ') IT1b(11:12)='00'
+ IT1b(13:14) = TMPCHR(2:3) ! century
+ ENDIF
+
+ IF(ITSTRTb.EQ.' ')ITSTRTb=IT1b
+ IF(IC.NE.0)IS=IS+1
+9240 IF(LABEL(IS:IS).EQ.' ')THEN
+ IS=IS+1
+ IF(IS.GT.2048)GOTO 9233
+ GOTO 9240
+ ELSE IF(LABEL(IS:IS).EQ.',')THEN
+ LABEL=LABEL(IS+1:)
+ GOTO 9232
+ ELSE
+ LABEL=LABEL(IS:)
+ ENDIF
+C
+C IF NO SECOND PARAMETER SKIP TMAX PROCESSING
+C
+9231 IF(M.GE.2.AND.IFLG(2).EQ.0)GOTO 9232
+ IC=INDEX(LABEL,',')
+ IF(IC.EQ.0)IC=buflen+1
+ IS=INDEX(LABEL,' ')
+ IS=MIN0(IS,IC)
+
+ TMPCHR = LABEL(1:IS-1)
+
+ IF ( TMPCHR(12:12) .EQ. ' ' ) THEN
+ IT2b=TMPCHR(2:11) ! old format
+ IT2b(11:14) = '0019'
+ ELSE
+ IT2b(1:12)=TMPCHR(4:15) ! enhanced format
+ IF (TMPCHR(11:12) .EQ. ' ') IT2b(11:12)='00'
+ IT2b(13:14) = TMPCHR(2:3) ! century
+ ENDIF
+
+ IF(IC.NE.0)IS=IS+1
+9250 IF(LABEL(IS:IS).EQ.' ')THEN
+ IS=IS+1
+ IF(IS.GT.2048)GOTO 9233
+ GOTO 9250
+ ELSE
+ LABEL=LABEL(IS:)
+ ENDIF
+
+9232 TMPCHR = LABEL(1:15)
+
+ IF ( TMPCHR(12:12) .EQ. ' ' ) THEN
+ ITSTRTb=TMPCHR(2:11) ! old format
+ ITSTRTb(11:14) = '0019'
+ ELSE
+ ITSTRTb(1:12)=TMPCHR(4:15) ! enhanced format
+ IF (TMPCHR(11:12) .EQ. ' ') ITSTRTb(11:12)='00'
+ ITSTRTb(13:14) = TMPCHR(2:3) ! century
+ ENDIF
+
+
+
+9233 TLOb=1.-DIFF(IT1b,ITSTRTb)/DT
+ GOTO 10
+
+c------------------------------------------------------------------------------------
+
+
C TXTYPE
9300 CALL UPPER(LABEL,2048)
+ IF (itflg .EQ. 2) GOTO 9330
+
+
C
C IF NO FIRST PARAMETER SKIP PROCESSING
C
IF(M.GE.1.AND.IFLG(1).EQ.0)GOTO 9301
- IF(LABEL(1:1).EQ.'D')THEN
+ is_hours_axis = 0
+ IF(LABEL.EQ.'MIN')THEN
ITYPET=0
+ is_hours_axis = 2
+ ELSE IF(LABEL(1:1).EQ.'H')THEN
+ ITYPET=0
+ is_hours_axis = 1
+ ELSE IF(LABEL(1:1).EQ.'D')THEN
+ ITYPET=0
+ is_hours_axis = 0
ELSE IF(LABEL(1:1).EQ.'M')THEN
ITYPET=1
ELSE
@@ -1286,22 +1394,127 @@ C
ENDIF
MONYRLAB = .FALSE. ! Option for MON and DAY types.
IF (INDEX(LABEL,'DMY').NE.0) MONYRLAB = .TRUE.
+ IF (LABEL.EQ.'HR' .OR. LABEL.EQ.'PDAY') MONYRLAB = .TRUE.
LABELT=ITXTPE*ITXLBP
GOTO 10
+
+
+c------------------------------------------------------------------------------------
+9330 CONTINUE
+C
+C IF NO FIRST PARAMETER SKIP PROCESSING
+C
+ IF(M.GE.1.AND.IFLG(1).EQ.0)GOTO 9331
+ is_hours_axis = 0
+ IF(LABEL.EQ.'PDAY')THEN
+ ITYPETb=0
+ is_hours_axis = 2
+ ELSE IF(LABEL(1:1).EQ.'H')THEN
+ ITYPETb=0
+ is_hours_axis = 1
+ ELSE IF(LABEL(1:1).EQ.'D')THEN
+ ITYPETb=0
+ is_hours_axis = 0
+ ELSE IF(LABEL(1:1).EQ.'M')THEN
+ ITYPETb=1
+ ELSE
+ ITYPETb=3
+ ENDIF
+C
+C PROCESS TIME AXIS STYLE
+C
+9331 IF(ITYPETb.EQ.0)THEN
+ IF(INDEX(LABEL,'HRD').NE.0)THEN
+ ITXTPEb=2
+ ELSE
+ ITXTPEb=1
+ ENDIF
+ ELSE IF(ITYPETb.EQ.1)THEN
+ IF(INDEX(LABEL,'DAYM').NE.0)THEN
+ ITXTPEb=2
+ ELSE
+ ITXTPEb=1
+ ENDIF
+ MONYRLAB = .FALSE.
+ IF (INDEX(LABEL,'DMY').NE.0) MONYRLAB = .TRUE.
+ ELSE
+ IF(INDEX(LABEL,'MON1').NE.0)THEN
+ ITXTPEb=3
+ ELSE IF(INDEX(LABEL,'MONY').NE.0)THEN
+ ITXTPEb=2
+ ELSE
+ ITXTPEb=1
+ ENDIF
+
+* Century axis mod
+ CENFLAG = .FALSE.
+ IF(INDEX(LABEL,'MULTIY').NE.0) CENFLAG = .TRUE.
+
+* multi-decade axis mod
+ MULTICENFLAG = .FALSE.
+ IF(INDEX(LABEL,'MULTID').NE.0) THEN
+ CENFLAGb = .TRUE.
+ MULTICENFLAGb = .TRUE.
+ ENDIF
+ ENDIF
+ MONYRLABb = .FALSE. ! Option for MON and DAY types.
+ IF (INDEX(LABEL,'DMY').NE.0) MONYRLABb = .TRUE.
+ IF (LABEL.EQ.'HR' .OR. LABEL.EQ.'PDAY') MONYRLABb = .TRUE.
+ LABELTb=ITXTPEb*ITXLBPb
+
+ GOTO 10
+c------------------------------------------------------------------------------------
+
C TXLSZE
-9400 IF(IFLG1)TCSIZE=P(1)
+9400 CONTINUE
+ IF (itflg .EQ. 2) THEN
+ IF(IFLG1)TCSIZEb=P(1)
+ ELSE
+ IF(IFLG1)TCSIZE=P(1)
+ IF (itflg.EQ.0.AND.IFLG1) TCSIZEb=P(1)
+ ENDIF
+
GOTO 10
C TXLINT
-9500 IF(IFLG1)IFDB=P(1)
- IF(IFLG2)ISDB=P(2)
+9500 CONTINUE
+ IF (itflg .EQ. 2) THEN
+ IF(IFLG1)IFDBb=P(1)
+ IF(IFLG2)ISDBb=P(2)
+ ELSE
+ IF(IFLG1)IFDB=P(1)
+ IF(IFLG2)ISDB=P(2)
+ IF (itflg.EQ.0) THEN
+ IF(IFLG1)IFDBb=P(1)
+ IF(IFLG2)ISDBb=P(2)
+ ENDIF
+
+ ENDIF
GOTO 10
C TXNMTC
-9600 IF(IFLG1)NMTCT=P(1)
+9600 CONTINUE
+ IF (itflg .EQ. 2) THEN
+ IF(IFLG1)NMTCTb=P(1)
+ ELSE
+ IF(IFLG1)NMTCT=P(1)
+ IF (itflg.EQ.0 .AND.IFLG1)NMTCTb=P(1)
+ ENDIF
GOTO 10
C TXLABP
-9700 IF(IFLG1)THEN
- ITXLBP=P(1)
- LABELT=ITXTPE*ITXLBP
+9700 CONTINUE
+ IF (itflg .EQ. 2) THEN
+ IF(IFLG1)THEN
+ ITXLBPb=P(1)
+ LABELTb=ITXTPE*ITXLBP
+ ENDIF
+ ELSE
+ IF(IFLG1)THEN
+ ITXLBP=P(1)
+ LABELT=ITXTPE*ITXLBP
+ IF (itflg.EQ.0) THEN
+ ITXLBPb=P(1)
+ LABELTb=ITXTPE*ITXLBP
+ ENDIF
+ ENDIF
ENDIF
GOTO 10
C AUTOLAB
@@ -1336,11 +1549,11 @@ C VPOINT
IF(M.GE.3.AND.IFLG(3).NE.0)VIEWZ=P(3)
WRITE(SYM,999)'X'
999 FORMAT('*PPL$VIEW_',A1)
- CALL PUTVAL(SYM,VIEWX,4,IER)
+ CALL PUTVAL(SYM,VIEWX,6,IER)
WRITE(SYM,999)'Y'
- CALL PUTVAL(SYM,VIEWY,4,IER)
+ CALL PUTVAL(SYM,VIEWY,6,IER)
WRITE(SYM,999)'Z'
- CALL PUTVAL(SYM,VIEWZ,4,IER)
+ CALL PUTVAL(SYM,VIEWZ,6,IER)
GOTO 10
C CLSPLT
* Close a metafile
@@ -1384,7 +1597,7 @@ C RIBFAST (RIBBON/FAST)
GOTO 10
C RIBMISS (RIBBON/MISS=)
-9990 CONTINUE
+9982 CONTINUE
* Plot style for missing-data in ribbon plots:
* Default: thin black line. Can request /missing=dash, /missing=blank,
* /missing= color-palette (e.g. gray_light). The color palette
@@ -1394,6 +1607,15 @@ C RIBMISS (RIBBON/MISS=)
CALL RIBBON_MISSING
GOTO 10
+
+C GAPLOC (PLOT/VS/GAPLOC)
+9984 CONTINUE
+* Extra variable sent on PLOT/VS plots, with 1 or zero to indicate
+* end of segments
+ gap_var = 0
+ gap_var = P(1)
+ GOTO 10
+
C RWDSEQ & RWD
600 CALL OPENF(FILE,IERR)
IF(IERR.NE.0)GOTO 10
diff --git a/ppl/plot/ppldata.F b/ppl/plot/ppldata.F
index 1bd85ca..21e0598 100644
--- a/ppl/plot/ppldata.F
+++ b/ppl/plot/ppldata.F
@@ -61,6 +61,9 @@ C for compatibility with Ferret use of symbols.
* V62 2/08 *acm*increase default number of contour levels to NLEV=30 (MODE NLEVELS)
* If this is changed, also change it in fer/dat/xprog_state_data.F
* v691 5/14 *acm* Change name MOD to TEKMOD
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
+* v696 *acm* gap_var to define seperate line segments on PLOT/VS plots
+* (LAS ticket 1597 and others)
INCLUDE 'PARAMPL5.DAT'
include 'axis_inc.decl'
@@ -169,6 +172,7 @@ C
DATA UP2/3*.1,.05,.15,.05,.05,.1,.05,.1,190*.1/
DATA LLENG,LNUM,IWIND/100000*0,1,0/ ! lleng(NPOLYGON)
DATA IPEN,IP/201*1,0,1,2*0/
+ DATA gap_var/0/
C
C Mod *JD* 3.91 to set default tty output to unit 6, not 5
@@ -216,6 +220,9 @@ C
DATA TLO,DT,TCSIZE,ITYPET/1.,1440.,.10,3/
DATA NMTCT,LABELT,IFDB,ISDB,ITFLG/0,-1,1,1,0/
DATA VANG,IVFLG,IAUTOT/0.,0,1/
+ DATA TLOb,DTb,TCSIZEb,ITYPETb/1.,1440.,.10,3/
+ DATA NMTCTb,LABELTb,IFDBb,ISDBb,ITFLGb/0,-1,1,1,0/
+ DATA VANGb,IVFLGb,IAUTOTb/0.,0,1/
C
DATA TSMX,TLX,TSMY,TLY,IX,IY/.125,.25,.125,.25,0,0/
C
diff --git a/ppl/plot/pplldx.F b/ppl/plot/pplldx.F
index 95cfe07..e8c4a5b 100644
--- a/ppl/plot/pplldx.F
+++ b/ppl/plot/pplldx.F
@@ -119,6 +119,7 @@ c
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus
* *kms* 5/12 Always use generic REAL instead of specific SNGL
* (SNGL must have a double-precision or complex argument)
+* V695 *acm* 9/15 Changes for hour:min labeling on time axes
* FERRET 9-21-88: replaced include files to make all declarations explicit
! original:
@@ -171,9 +172,10 @@ c
REAL xt(*),yt(*), xdt
#endif
CHARACTER BC2WHOI*14, tstrt*(*), tref*(*)
- REAL*8 WHOI2BC, tstart,tstop,time,tmin
+ REAL*8 WHOI2BC, DIFF, tstart, tstop, time, tmin, off, rate,
+ . dxmin, dxmax, dymin, dymax, xymin, xymax dtd
INTEGER icode, npts, i, ix, iy
- REAL DIFF, off, rate, xs, ys
+ REAL xs, ys
LOGICAL TM_FPEQ_SNGL
LOGICAL flip ! FERRET mod 10/93
@@ -188,6 +190,8 @@ c
SAVE tstart,tmin,tstop
c
+ dtd = dt
+
if(linen.eq.0)call rsmnmx
linen=linen+1
jtype=1
@@ -195,8 +199,6 @@ c
ny=1
flip = itflg .EQ. -1 ! FERRET mod 10/93
-
-
** if(ABS(itflg).eq.1)then ! FERRET mod 10/93 "ABS"
translate = ABS(itflg).eq.1
@@ -213,8 +215,8 @@ c ** passing thru c routine, a blank tref is somehow different??
c
c calculate offset and rate for time data
c
- off=diff(itstrt,tstrt)/dt+1.0
- rate=xdt/dt
+ off=diff(itstrt,tstrt)/dtd+1.0
+ rate=xdt/dtd
** else
** off=1.0
** rate=1.0
@@ -222,14 +224,21 @@ c
c
c load data
c
+
+C 8/2015 compute min and max in double precision, then translate
+
+ dxmin=1.0e36
+ dxmax=-dxmin
+ dymin=dxmin
+ dymax=dxmax
+
ix=ibase-1
iy=ix+pplmem_nsize/2
if(icode.eq.0 .OR. icode.EQ.3) THEN
do 100 i=1,npts
+
xs = REAL(xt(i))
ys = REAL(yt(i))
-* FERRET mod 10/93 - apply transformation to Y data
-* FERRET mod 3/00 - screen X and Y separately for missing values
IF ( flip ) THEN
IF ( yeq .AND. TM_FPEQ_SNGL(ys,cmyeq) ) THEN
@@ -258,25 +267,52 @@ c
pplmem(ix+i) = bad_flag
ELSEIF (translate) then
pplmem(ix+i)=(xt(i)-1.0)*rate+off
- else
+ ELSE
pplmem(ix+i)=xt(i)
- endif
+ ENDIF
+
+ IF ( .NOT.(xeq .AND. TM_FPEQ_SNGL(xs,cmxeq)) ) THEN
+ dxmin = MIN(dxmin, xt(i))
+ dxmax = MAX(dxmax, xt(i))
+ ENDIF
+ IF ( .NOT.(yeq .AND. TM_FPEQ_SNGL(ys,cmyeq)) ) THEN
+ dymin = MIN(dymin, yt(i))
+ dymax = MAX(dymax, yt(i))
+ ENDIF
ENDIF
-* end of 10/93 FERRET mod
-* end of 3/00 FERRET mod
+
+ IF ( .NOT.(xeq .AND. TM_FPEQ_SNGL(xs,cmxeq)) ) THEN
+ dxmin = MIN(dxmin, xt(i))
+ dxmax = MAX(dxmax, xt(i))
+ ENDIF
+ IF ( .NOT.(yeq .AND. TM_FPEQ_SNGL(ys,cmyeq)) ) THEN
+ dymin = MIN(dymin, yt(i))
+ dymax = MAX(dymax, yt(i))
+ ENDIF
100 continue
+
+ if (flip) THEN
+ IF (translate) then
+ dymin = (dymin-1.0)*rate+off
+ dymax = (dymax-1.0)*rate+off
+ ENDIF
+ ELSE
+ IF (translate) then
+ dxmin = (dxmin-1.0)*rate+off
+ dxmax = (dxmax-1.0)*rate+off
+ ENDIF
+ ENDIF
+
else if(icode.eq.1)then
do 200 i=1,npts
xs = REAL(xt(i))
-* FERRET mod 2/89 - screen bad data
IF ( ( xeq .AND. TM_FPEQ_SNGL(xs,cmxeq) ) ) THEN
pplmem(ix+i) = bad_flag
pplmem(iy+i) = i ! 3/00 mod
GOTO 200
ENDIF
-* end of 2/89 FERRET mod
pplmem(iy+i)=i
if (translate) then
pplmem(ix+i)=(xt(i)-1.0)*rate+off
@@ -287,13 +323,11 @@ c
else
do 300 i=1,npts
ys = REAL(yt(i))
-* FERRET mod 2/89 - screen bad data
IF ( ( yeq .AND. TM_FPEQ_SNGL(ys,cmyeq) ) ) THEN
pplmem(ix+i) = bad_flag
pplmem(iy+i) = bad_flag
GOTO 300
ENDIF
-* end of 2/89 FERRET mod
if (translate) then
pplmem(ix+i)=(float(i)-1.0)*rate+off
else
@@ -305,23 +339,6 @@ c
* FERRET mod 2/89 - replace bad data LIMITS flags
cmxeq = bad_flag
cmyeq = bad_flag
-* end of 2/89 FERRET mod
-
- xmin=1.0e36
- xmax=-xmin
- ymin=xmin
- ymax=xmax
- do 400 i=1,npts
-* FERRET mod 2/89 -*re-mod 3/00* eliminate bad data from min/max calculation
- IF ( pplmem(ix+i).NE.bad_flag ) THEN
- if(xmin.gt.pplmem(ix+i)) xmin=pplmem(ix+i)
- if(xmax.lt.pplmem(ix+i)) xmax=pplmem(ix+i)
- ENDIF
- IF ( pplmem(iy+i).NE.bad_flag ) THEN
- if(ymin.gt.pplmem(iy+i)) ymin=pplmem(iy+i)
- if(ymax.lt.pplmem(iy+i)) ymax=pplmem(iy+i)
- ENDIF
-400 continue
c
c some variable definitions
c
@@ -331,76 +348,29 @@ c itmin earliest tmin for all lines (in WHOI format)
c itmax latest tstop for all lines (in WHOI format)
c itstart reference start time (if iautot the first lines tstrt) (???)
c
-* FERRET 9-21-88: replaced code dependent on 1970 reference
-! original:
-! if(itflg.eq.1)then
-! if(linen.eq.1)then
-! read(itstrt,999)iy,im,id,ihr
-!999 format(3i2.2,i4.4)
-! call mdymt(temp,im,id,iy)
-! temp(3)=ihr
-! tstart=mtmin(temp)
-!c
-!c calc itmin
-!c
-! tmin=tstart+(xmin-off)*dt
-! call minmt(tmin,start)
-! call mtmdy(start,im,id,iy)
-! write(itmin,999)iy,im,id,ifix(start(3))
-!c
-!c calc itmax
-!c
-! tstop=tstart+(xmax-off)*dt
-! call minmt(tstop,stop)
-! call mtmdy(stop,im,id,iy)
-! write(itmax,999)iy,im,id,ifix(stop(3))
-! else
-! tmin=tstart+(xmin-off)*dt
-! tstop=tstart+(xmax-off)*dt
-! read(itmin,999)iy,im,id,ihr
-! call mdymt(temp,im,id,iy)
-! temp(3)=ihr
-! time=mtmin(temp)
-! if(tmin.lt.time)then
-! call minmt(tmin,start)
-! call mtmdy(start,im,id,iy)
-! write(itmin,999)iy,im,id,ifix(start(3))
-! endif
-!c
-! read(itmax,999)iy,im,id,ihr
-! call mdymt(temp,im,id,iy)
-! temp(3)=ihr
-! time=mtmin(temp)
-! if(tstop.gt.time)then
-! call minmt(tstop,stop)
-! call mtmdy(stop,im,id,iy)
-! write(itmax,999)iy,im,id,ifix(stop(3))
-! endif
-! endif
-! endif
if(translate)then ! 11.30.95 WAS: if(itflg.eq.1)then
if(itflg.eq.1) then ! 11.30.95 for both x and y
- xymin = xmin
- xymax = xmax
+ xymin = dxmin
+ xymax = dxmax
else ! gotta be -1
- xymin = ymin
- xymax = ymax
+ xymin = dymin
+ xymax = dymax
endif
if(linen.eq.1)then
tstart = WHOI2BC( itstrt ) ! t=1 of time axis
- tmin=tstart+(xymin-1.0)*dt ! start of plot axis
+ tmin=tstart+(xymin-1.0)*dtd ! start of plot axis
itmin = BC2WHOI( tmin )
- tstop=tstart+(xymax-1.0)*dt ! end of plot axis
+ tstop=tstart+(xymax-1.0)*dtd ! end of plot axis
itmax = BC2WHOI( tstop )
else
- tmin=tstart+(xymin-1.0)*dt
- tstop=tstart+(xymax-1.0)*dt
+ tmin=tstart+(xymin-1.0)*dtd
+ tstop=tstart+(xymax-1.0)*dtd
time = WHOI2BC( itmin )
if(tmin.lt.time) itmin = BC2WHOI( tmin ) ! chg. plot start
@@ -412,7 +382,11 @@ c
* end of FERRET 9-21 changes
pbuf=1
-* ORIG call stmnmx(pplmem,pplmem_nsize,xmin,xmax,ymin,ymax,0.,0.)
+c 8/2015 Should stmnmx use double precisison xmin,xmax, ...? Seems ok as single.
+ xmin = dxmin
+ xmax = dxmax
+ ymin = dymin
+ ymax = dymax
call stmnmx(pplmem,pplmem_nsize,xmin,xmax,ymin,ymax)
lnum = linen
diff --git a/ppl/plot/ppllist.F b/ppl/plot/ppllist.F
index 83a2387..e4a987a 100644
--- a/ppl/plot/ppllist.F
+++ b/ppl/plot/ppllist.F
@@ -62,6 +62,7 @@ C with "*(*)" for the linux port
* V552 *acm* 3/03 For SHAKEY info, write out location of key, whether it was
* automatically set or set by user with SHASET
* PyFr *kms* 5/13 Add alpha channel (opaque)
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
include 'parampl5_dat.decl'
include 'PARAMPL5.DAT'
@@ -313,7 +314,7 @@ C TAXIS
WRITE(LLUN,9984) IT1(13:14)//IT1(1:12),SYM,
*IT2(13:14)//IT2(1:12),SYM2,ITSTRT(13:14)//ITSTRT(1:12),
*SYM3,NMTCT,LABELT,
- *IFDB,ISDB,TAXTYP(ITFLG),onoff(iautot)
+ *IFDB,ISDB,TAXTYP(MIN(ITFLG,1)),onoff(iautot)
9984 FORMAT(9X,' TMIN=',A14,1x,A21,/9X,' TMAX=',A14,1x,A21/9X,
*'TSTART=',A14,1x,A21,/9X,'NMTC=',I3,' LABEL=',I3,' IFDB=',I3,
diff --git a/ppl/plot/prmtiv.F b/ppl/plot/prmtiv.F
index f77edb9..ddfa188 100644
--- a/ppl/plot/prmtiv.F
+++ b/ppl/plot/prmtiv.F
@@ -55,7 +55,8 @@ C after applying an offset.)
* V683 12/12 *acm* Fix for applying a font setting in multiple line labels
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
* V69+ 5/14 *acm* Fix for ascii font in multi-line labels, ticket 2176
-
+C V695 *acm* 5/15 Change in arguments to YAXIS1 and XAXIS1
+* v695 9/15 *acm* write values to PPL* symbols using 6 digits not 4
C**
C**
C***********************************************************************
@@ -153,7 +154,7 @@ C
INCLUDE 'SYSTEM.INC'
INCLUDE 'gkscm1_inc.decl' ! with wsid for igrnpt
INCLUDE 'GKSCM1.INC'
-
+ INCLUDE 'pyfonts.cmn'
C
C
@@ -208,13 +209,13 @@ C
CALL RANGE(RMIN,RMAX,NTIC,RLOW,RHIGH,RINC)
endif
SYM='*PPL$RANGE_LOW'
- CALL PUTVAL(SYM,RLOW,4,IER)
+ CALL PUTVAL(SYM,RLOW,7,IER)
C
SYM='*PPL$RANGE_HIGH'
- CALL PUTVAL(SYM,RHIGH,4,IER)
+ CALL PUTVAL(SYM,RHIGH,7,IER)
C
SYM='*PPL$RANGE_INC'
- CALL PUTVAL(SYM,RINC,4,IER)
+ CALL PUTVAL(SYM,RINC,7,IER)
C
C*** XAXIS
C
@@ -298,7 +299,7 @@ C
call color(ipen(0))
CALL XAXIS1(XLOW,XHIGH,XTICC,NSMTCS,LINTT,XUNIT,
* IPOS,FRMTX,XFF,Y,YFF,CHSIZE,across,dms,vgrat,
- * vcolor,vline,xvaloff)
+ * vcolor,vline,xvaloff,IPEN(0))
CALL tm_break_lines (xlab, lnbeg, lnend, numlines)
nfont = 0
@@ -430,7 +431,7 @@ c ENDIF
call color(ipen(0))
CALL YAXIS1(XX,XFF,YLOW,YHIGH,YTICC,NSMTCS,LINTT,YUNIT,
* IPOS,FRMTX,YFF,CHSIZE,across,dms,hgrat,hcolor,hline,
- * yvaloff,.FALSE.,SHRINKY)
+ * yvaloff,.FALSE.,SHRINKY,IPEN(0))
CALL tm_break_lines (ylab, lnbeg, lnend, numlines)
nfont = 0
@@ -555,6 +556,9 @@ C
ELSE IF(ICOM.EQ.'%LABEL')THEN
IF(N.EQ.0)RETURN
+* (PyFerret) moveable labels style
+ IF (pyfont .AND. pyf_set(imove)) igroup = imove
+
* get missing inputs interactively -- through mouse input (6/99)
* ... if the user **explicitly** omits the justification (iflg(3)) then
* put up menu (including arrow options)
@@ -668,6 +672,10 @@ C Set up to use any font settings from this line on subsequent lines.
ENDIF
40 CONTINUE
+
+* (PyFerret) cancel tic-mark text style
+ IF (pyfont) igroup = fnt_all
+
C
C
C*** %WHERE
diff --git a/ppl/plot/rdseq.F b/ppl/plot/rdseq.F
index 5309237..7e7ec27 100644
--- a/ppl/plot/rdseq.F
+++ b/ppl/plot/rdseq.F
@@ -48,6 +48,7 @@ C**
C *kob* 04/07/96 passed in character strings had to be declared
C with "*(*)" for the linux port
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* V695 *acm* 9/15 Changes for hour:min labeling on time axes
INCLUDE 'PARAMPL5.DAT'
INCLUDE 'HD.INC'
@@ -67,6 +68,7 @@ C with "*(*)" for the linux port
INCLUDE 'COMEPV.INC'
INCLUDE 'COMEPS.INC'
+ REAL*8 DIFF
LOGICAL LEOF,LFIRST,LSTICK
CHARACTER*10 CEPIC1,CEPIC2,FILE*(*)
CHARACTER YES*3,NO*2,SYM*120,CSYM*6
diff --git a/ppl/plot/redsf.F b/ppl/plot/redsf.F
index 1cccb80..abb81b9 100644
--- a/ppl/plot/redsf.F
+++ b/ppl/plot/redsf.F
@@ -48,6 +48,7 @@ C**
C *kob* 04/07/96 passed in character strings had to be declared
C with "*(*)" for the linux port
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* V695 *acm* 9/15 Changes for hour:min labeling on time axes
INCLUDE 'PARAMPL5.DAT'
INCLUDE 'LINES.INC'
@@ -62,6 +63,7 @@ C with "*(*)" for the linux port
INCLUDE 'TAXIS.INC'
INCLUDE 'SWITCH.INC'
+ REAL*8 DIFF
character sym*120,str*120,file*(*)
C NREC=NUMBER OF RECORDS TO BE READ
C NGRP=NUMBER OF GROUPS TO BE READ PER RECORD
diff --git a/ppl/plot/setax.F b/ppl/plot/setax.F
index 052d112..6fd11d4 100644
--- a/ppl/plot/setax.F
+++ b/ppl/plot/setax.F
@@ -1,5 +1,5 @@
SUBROUTINE SETAX(X,NXS,XF,YF,XL,YL,XH,YH,NMX,NMY,
- * XTI,XTL)
+ * XTI,XTL,its_ribbon)
*
*
* This software was developed by the Thermal Modeling and Analysis
@@ -48,12 +48,20 @@
* v5.41 *acm* 6/20/02 remove unneeded calls to GETSYM.
* V554 9/03 *acm* Fix precision bug double precision, for fine grids in
* curvlinear coordinates. See also pltit.F, plotz.F
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
+* V694 *acm* 5/15 Ticket 2283. Handling axis scaling for ribbon plots. Do auto-scale
+* using just the first line. The second is the color-by variable
+* V695 *acm* 9/15 Changes for hour:min labeling on time axes
- real x,diff,rxax,rxmon,rxchr,thi,xti,xtl
+ REAL*8 DIFF, dtd
+ real x,rxax,rxmon,rxchr,thi,xti,xtl
real xmn,xmx,xt,yt
real*8 dxl, dxh, dxf, dyl, dyh, dyf
+ logical its_ribbon
- integer nxs,iy,nmx,i,ibasex,ibasey,len,j,nmy
+ integer nxs,iy,nmx,i,ibasex,ibasey,len,j,nmy
+
+ integer lnum_lines
external diff
* End declarations 9.6.88
@@ -102,6 +110,8 @@ C KTYPE = 0 -XY 1 -Z 2-VECTOR
LOGICAL CONTR,VECTR
CHARACTER IT1TMP*14,IT2TMP*14
+ dtd = dt
+
C SETUP AXIS FOR ALL PLOT TYPES.
c CONTR=MAKEP.EQ.'CONTOUR'.OR.MAKEP.EQ.'VIEW'.or.makep.eq.'SHADE'
c * .OR.MAKEP.EQ.'VECTOR'
@@ -111,7 +121,6 @@ c * .OR.MAKEP.EQ.'VECTOR'
* .or.makep.eq.'FLOWLINE'
* .or.makep.eq.'FILL'.or.makep.eq.'PIXEL'
-
VECTR=MAKEP.EQ.'PLOTV'.OR.MAKEP.EQ.'PLOTUV'
* .OR.MAKEP.EQ.'VELVCT'
IY=NXS/2
@@ -119,14 +128,17 @@ c * .OR.MAKEP.EQ.'VECTOR'
IF (IAUTOT .EQ. 1 .AND.
1 (IFORM(1:3).EQ.'EPI' .OR. IFORM(1:3).EQ.'BIB' .or.
2 iform(1:3).eq.'LDX')) THEN
- CALL FIXTIM (ITMIN,ITMAX,IT1,IT2,ITYPET)
- TLO = 1. - DIFF(IT1,ITSTRT)/DT
+ IF (is_hours_axis .GT. 0) THEN ! Round off to the nearest minute
+ CALL FIXTIM (ITMIN,ITMAX,IT1,IT2,4)
+ ELSE
+ CALL FIXTIM (ITMIN,ITMAX,IT1,IT2,ITYPET) ! to the hour
+ ENDIF
ELSE
CALL FIXTIM (IT1,IT2,IT1TMP,IT2TMP,ITYPET)
IT1=IT1TMP
IT2=IT2TMP
- TLO = 1. - DIFF(IT1,ITSTRT)/DT
ENDIF
+ TLO = 1. - DIFF(IT1,ITSTRT)/dtd
C
C CHANGE FROM 3-CHAR MON TO 1-CHAR MON IF INSUFFICIENT SPACE
C
@@ -141,10 +153,49 @@ C
itxtpe=3
labelt=itxtpe*itxlbp
endif
- THI=TLO+DIFF(IT1,IT2)/DT
+ THI=TLO+DIFF(IT1,IT2)/dtd
ENDIF
+
+
+ IF(ITFLG.EQ.2)THEN
+ IF (IAUTOT .EQ. 1 .AND.
+ 1 (IFORM(1:3).EQ.'EPI' .OR. IFORM(1:3).EQ.'BIB' .or.
+ 2 iform(1:3).eq.'LDX')) THEN
+ CALL FIXTIM (ITMIN,ITMAX,IT1b,IT2b,ITYPETb)
+ TLOb = 1. - DIFF(IT1,ITSTRT)/dtd
+ ELSE
+ CALL FIXTIM (IT1b,IT2b,IT1TMP,IT2TMP,ITYPETb)
+ IT1b=IT1TMP
+ IT2b=IT2TMP
+ TLOb = 1. - DIFF(IT1b,ITSTRTb)/dtd
+ ENDIF
+C
+C CHANGE FROM 3-CHAR MON TO 1-CHAR MON IF INSUFFICIENT SPACE
+C
+ RXAX=DIFF(IT1b,IT2b)/1440.
+ RXMON=30.*XLEN/RXAX
+ RXCHR=TCSIZE*6.
+ IF (RXCHR .GT. RXMON) then
+ itxtpeb=3
+ labeltb=itxtpeb*itxlbpb
+ endif
+ THIb=TLOb+DIFF(IT1b,IT2b)/dtd
+ ENDIF
+
call trans(0,xmin,ymin,xtm,ytm)
call trans(0,xmax,ymax,xtx,ytx)
+
+ IF(ITFLG.EQ.2)THEN
+ XTI=XHI
+ XTL=XLO
+ XHI=THI
+ XLO=TLO
+ DXF=XLEN/(XHI-XLO)
+ IF(CONTR)THEN
+ DXL=(xtm-XLO)*DXF
+ DXH=XLEN+(xtx-XHI)*DXF
+ ENDIF
+ ENDIF
IF(ITFLG.EQ.1)THEN
XTI=XHI
XTL=XLO
@@ -161,8 +212,8 @@ C CONTOUR PLOT
IF(IAUTOX.EQ.1)THEN
IF(ITYPEX.GT.1)THEN
CALL RANGEL(xtm,xtx,XLO,XHI)
- XLO=ALOG10(ABS(XLO))
- XHI=ALOG10(ABS(XHI))
+ XLO=LOG10(ABS(XLO))
+ XHI=LOG10(ABS(XHI))
ELSE
CALL RANGE(xtm,xtx,NTICX,XLO,XHI,XTIC)
ENDIF
@@ -191,7 +242,9 @@ C CONTOUR PLOT
XMX=-XMN
IBASEX=0
IBASEY=IY
- DO 10 I=1,LNUM
+ lnum_lines = lnum
+ IF (its_ribbon) lnum_lines = 1
+ DO 10 I=1,lnum_lines
LEN=LLENG(I)
DO 20 J=1,LEN
IF((XLE.AND.X(IBASEX+J).LE.CMXLE).OR.
@@ -210,8 +263,8 @@ C CONTOUR PLOT
ENDIF
IF(ITYPEX.GT.1)THEN
CALL RANGEL(XMN,XMX,XLO,XHI)
- XLO=ALOG10(ABS(XLO))
- XHI=ALOG10(ABS(XHI))
+ XLO=LOG10(ABS(XLO))
+ XHI=LOG10(ABS(XHI))
ELSE
CALL RANGE(XMN,XMX,NTICX,XLO,XHI,XTIC)
ENDIF
@@ -220,6 +273,18 @@ C CONTOUR PLOT
NMX=NMTCX
ENDIF
C YAXIS
+ IF(ITFLG.EQ.2)THEN
+ XTI=YHI
+ XTL=YLO
+ YHI=THIb
+ YLO=TLOb
+ DYF=YLEN/(YHI-YLO)
+ IF(CONTR)THEN
+ DYL=(ytm-YLO)*DYF
+ DYH=YLEN+(ytx-YHI)*DYF
+ ENDIF
+ ENDIF
+
IF(ITFLG.EQ.-1)THEN
XTI=YHI
XTL=YLO
@@ -236,8 +301,8 @@ C CONTOUR DATA
IF(IAUTOY.EQ.1)THEN
IF(ITYPEY.GT.1)THEN
CALL RANGEL(ytm,ytx,YHI,YLO)
- YHI=ALOG10(ABS(YHI))
- YLO=ALOG10(ABS(YLO))
+ YHI=LOG10(ABS(YHI))
+ YLO=LOG10(ABS(YLO))
ELSE
CALL RANGE(ytm,ytx,NTICY,YLO,YHI,YTIC)
ENDIF
@@ -258,7 +323,9 @@ C CONTOUR DATA
XMX=-XMN
IBASEY=IY
IBASEX=0
- DO 30 I=1,LNUM
+ lnum_lines = lnum
+ IF (its_ribbon) lnum_lines = 1
+ DO 30 I=1,lnum_lines
DO 40 J=1,LLENG(I)
IF((XLE.AND.X(IBASEX+J).LE.CMXLE).OR.
* (XEQ.AND.X(IBASEX+J).EQ.CMXEQ).OR.
@@ -281,8 +348,8 @@ C CONTOUR DATA
ENDIF
IF(ITYPEY.GT.1)THEN
CALL RANGEL(XMN,XMX,YLO,YHI)
- YLO=ALOG10(ABS(YLO))
- YHI=ALOG10(ABS(YHI))
+ YLO=LOG10(ABS(YLO))
+ YHI=LOG10(ABS(YHI))
ELSE
CALL RANGE(XMN,XMX,NTICY,YLO,YHI,YTIC)
ENDIF
@@ -291,6 +358,19 @@ C CONTOUR DATA
ENDIF
ENDIF
+C YAXIS and XAXIS are time/forecast axes
+ IF(ITFLG.EQ.2)THEN
+ XTI=YHI
+ XTL=YLO
+ YHI=THIb
+ YLO=TLOb
+ DYF=YLEN/(YHI-YLO)
+ IF(CONTR)THEN
+ DYL=(ytm-YLO)*DYF
+ DYH=YLEN+(ytx-YHI)*DYF
+ ENDIF
+ ENDIF
+
IF (IAUTOX .NE. 0) CALL setax_syms('X', xlo, xhi)
IF (IAUTOY .NE. 0) CALL setax_syms('Y', ylo, yhi)
@@ -300,5 +380,6 @@ C CONTOUR DATA
YL = DYL
XH = DXH
YH = DYH
+
RETURN
END
diff --git a/ppl/plot/setlab.F b/ppl/plot/setlab.F
index 6a3a4f7..4fcb9bc 100644
--- a/ppl/plot/setlab.F
+++ b/ppl/plot/setlab.F
@@ -1,4 +1,4 @@
- SUBROUTINE SETLAB(XF,YF,LTT,LTB,LYL,LYR,LXT,LXB,IFX,IFY)
+ SUBROUTINE SETLAB(XF,YF,LTT,LTB,LYL,LYR,LXT,LXB,IFX,IFY,LTBb)
*
*
* This software was developed by the Thermal Modeling and Analysis
@@ -46,16 +46,12 @@ C**
C**
C *kob* 04/07/96 passed in character strings had to be declared
C with "*(*)" for the linux port
+* V694 *acm* 1/15 Changes to allow two time axes on plot (F-T)
-#ifdef unix
INCLUDE 'AXIS.INC'
INCLUDE 'TAXIS.INC'
INCLUDE 'AXISL.INC'
-#else
- INCLUDE 'pplinc:AXIS.INC'
- INCLUDE 'pplinc:TAXIS.INC'
- INCLUDE 'pplinc:AXISL.INC'
-#endif
+
CHARACTER IFX*(*),IFY*(*)
EXTERNAL scale
@@ -68,6 +64,7 @@ C SETUP AXIS
LYR=0
LXT=0
LXB=0
+ LXBb=0
IF(LABELY.EQ.-1)THEN
LYL=-1
ELSE IF(LABELY.EQ.1)THEN
@@ -83,6 +80,11 @@ C SETUP AXIS
ELSE IF(LABELT.GT.0)THEN
LTT=LABELT
END IF
+ IF(LABELTb.LT.0)THEN
+ LTBb=LABELTb
+ ELSE IF(LABELTb.GT.0)THEN
+ LTTb=LABELTb
+ END IF
CALL SCALE(XF,YF,XORG,YORG,XLO,YLO)
IF(IFRX.EQ.' ')THEN
CALL FRMT(XLO,XHI,NSIGX,IFX)
diff --git a/ppl/plot/stmnmx.F b/ppl/plot/stmnmx.F
index 7b19192..b3545b9 100644
--- a/ppl/plot/stmnmx.F
+++ b/ppl/plot/stmnmx.F
@@ -45,6 +45,7 @@
* *jd* - 4.20.99 Don't delete symbols {X,Y}{MIN,MAX} in overlay plots
* V580 *acm* 8/04 Allow for PPL POLYGON as well as PPL FILLPOL after a POLY/SET command.
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* v695 9/15 *acm* write values to PPL* symbols using 6 digits not 4
DIMENSION X(NSIZE)
C**
@@ -86,16 +87,16 @@ C
*jd*begin
IF (.NOT.SOVER) THEN
SYM='*PPL$XMIN'
- CALL PUTVAL(SYM,XMIN1,4,IER)
+ CALL PUTVAL(SYM,XMIN1,7,IER)
C
SYM='*PPL$XMAX'
- CALL PUTVAL(SYM,XMAX1,4,IER)
+ CALL PUTVAL(SYM,XMAX1,7,IER)
C
SYM='*PPL$YMIN'
- CALL PUTVAL(SYM,YMIN1,4,IER)
+ CALL PUTVAL(SYM,YMIN1,7,IER)
C
SYM='*PPL$YMAX'
- CALL PUTVAL(SYM,YMAX1,4,IER)
+ CALL PUTVAL(SYM,YMAX1,7,IER)
ENDIF
*jd*end
@@ -169,22 +170,22 @@ c
endif
c
SYM='*PPL$ZMIN'
- CALL PUTVAL(SYM,ZMIN,4,IER)
+ CALL PUTVAL(SYM,ZMIN,7,IER)
C
SYM='*PPL$ZMAX'
- CALL PUTVAL(SYM,ZMAX,4,IER)
+ CALL PUTVAL(SYM,ZMAX,7,IER)
c
sym='*PPL$XHIGH'
- call putval(sym,xhigh,4,ier)
+ call putval(sym,xhigh,7,IER)
c
sym='*PPL$YHIGH'
- call putval(sym,yhigh,4,ier)
+ call putval(sym,yhigh,7,IER)
c
sym='*PPL$XLOW'
- call putval(sym,xlow,4,ier)
+ call putval(sym,xlow,7,IER)
c
sym='*PPL$YLOW'
- call putval(sym,ylow,4,ier)
+ call putval(sym,ylow,7,IER)
C Don't define line symbols for FILLPOL/POLYGON
ELSE if (makep .ne. 'FILLPOL' .AND. makep .ne. 'POLYGON') then
@@ -193,16 +194,16 @@ C LINE DATA
WRITE(SYM,998)'XMIN',LINEN
998 FORMAT('*PPL$',A,'(',I2,')')
- CALL PUTVAL(SYM,XMIN1,4,IER)
+ CALL PUTVAL(SYM,XMIN1,7,IER)
C
WRITE(SYM,998)'XMAX',LINEN
- CALL PUTVAL(SYM,XMAX1,4,IER)
+ CALL PUTVAL(SYM,XMAX1,7,IER)
C
WRITE(SYM,998)'YMIN',LINEN
- CALL PUTVAL(SYM,YMIN1,4,IER)
+ CALL PUTVAL(SYM,YMIN1,7,IER)
C
WRITE(SYM,998)'YMAX',LINEN
- CALL PUTVAL(SYM,YMAX1,4,IER)
+ CALL PUTVAL(SYM,YMAX1,7,IER)
* If its a ribbon plot, we need the min and max of the color-by variable.
IF (linen .EQ. 2) THEN
@@ -231,9 +232,9 @@ C
XT=X(IBASEX+J)*XFCT(I)+XOFF(I)
YT=X(IBASEY+J)*YFCT(I)+YOFF(I)
WRITE(SYM,998)'XFIRST',LINEN
- CALL PUTVAL(SYM,XT,4,IER)
+ CALL PUTVAL(SYM,XT,7,IER)
WRITE(SYM,998)'YFIRST',LINEN
- CALL PUTVAL(SYM,YT,4,IER)
+ CALL PUTVAL(SYM,YT,7,IER)
GOTO 30
20 CONTINUE
30 DO 40 J=LEN,1,-1
@@ -246,9 +247,9 @@ C
XT=X(IBASEX+J)*XFCT(I)+XOFF(I)
YT=X(IBASEY+J)*YFCT(I)+YOFF(I)
WRITE(SYM,998)'XLAST',LINEN
- CALL PUTVAL(SYM,XT,4,IER)
+ CALL PUTVAL(SYM,XT,7,IER)
WRITE(SYM,998)'YLAST',LINEN
- CALL PUTVAL(SYM,YT,4,IER)
+ CALL PUTVAL(SYM,YT,7,IER)
GOTO 50
40 CONTINUE
ENDIF
diff --git a/ppl/plotlib/SOURCE_FILES b/ppl/plotlib/SOURCE_FILES
index 921cb61..2a1130c 100644
--- a/ppl/plotlib/SOURCE_FILES
+++ b/ppl/plotlib/SOURCE_FILES
@@ -8,6 +8,7 @@ conseg_section.F\
contur.F\
datpt.F\
daywk1.F\
+delay.F\
diff.F\
frmt.F\
getlev.F\
@@ -26,6 +27,7 @@ plotny.F\
plott7.F\
reset_labsiz.F\
scinot.F\
+scinot_d.F\
smooth.F\
smx1.F\
smy1.F\
diff --git a/ppl/plotlib/contur.F b/ppl/plotlib/contur.F
index 4c7b9b9..5ba1a01 100644
--- a/ppl/plotlib/contur.F
+++ b/ppl/plotlib/contur.F
@@ -68,6 +68,7 @@ C v67 2/2011 *acm* Fix ticket 1799; do contouring in larger sections.
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus
* V687 *acm* 3/14 tickets 2151 and 2147: allow missing coordinate data in 3-arg
* and 4-arg plot commands.
+* V6.95 *acm* 3/15 Changes for PyFerret fonts.
****************************************************************************
C**
@@ -131,12 +132,16 @@ c oceanography emr dec/69
include 'pltcom_dat.decl'
include 'PLTCOM.DAT'
include 'xcurvilinear.cmn'
+ INCLUDE 'pyfonts.cmn'
+ include 'axis_inc.decl'
+ include 'AXIS.INC'
+
* TMAP interrupt flag
include 'xinterrupt.cmn'
- integer*4 ixpon,ind10,jbit,ind1,indl
+ integer*4 ixpon,ind10,jbit,ind1,indl, skiplab
character frmt*20,str*40
integer colold
! TMAP mod, horz contour labels:
@@ -170,6 +175,9 @@ c
if(nlev)1200,1200,12
12 pi=3.1415926
+
+ IF (pyfont .AND. pyf_set(icont)) igroup = icont
+
c
c apply the rotation and scaling
c
@@ -832,7 +840,18 @@ c
! draw the label and reset stest to 0. which indicates that the label has
! been drawn. the next label should be dslab distance over.
!860 call symbel(xlab,ylab,angle,hgt,nchar,str) ! original code (860)
- call symbel(xlab,ylab,angle,hgt,nchar,str)
+
+* PyFerret Fonts locate the label by user units
+
+ IF (pyfont) THEN
+ xlab = (xlab - xoff)/ xf
+ ylab = (ylab - yoff)/ yf
+ skiplab = 0
+ if (ylab.LT.ylo .OR. ylab.GT.yhi) skiplab = 1
+ if (xlab.LT.xlo .OR. xlab.GT.xhi) skiplab = 1
+ ENDIF
+
+ iF (skiplab.EQ.0) call symbel(xlab,ylab,angle,hgt,nchar,str)
stest=0.
! TMAP mod, horz contour labels:
! this section of code stores the contour label locations for the current
@@ -903,6 +922,9 @@ c check for lines crossing the branch cut in curvilinear grids. Pick up the pen.
c
1100 continue
1200 if(colour.ne.colold)call color(colold)
+
+ IF (pyfont .AND. pyf_set(icont)) igroup = fnt_all
+
return
end
diff --git a/ppl/plotlib/diff.F b/ppl/plotlib/diff.F
index 5d50fab..7f30dc2 100644
--- a/ppl/plotlib/diff.F
+++ b/ppl/plotlib/diff.F
@@ -1,4 +1,4 @@
- FUNCTION DIFF(IT1,IT2)
+ DOUBLE PRECISION FUNCTION DIFF(IT1,IT2)
C**
C** @(#)diff.F 1.1 3/10/88
C**
@@ -54,6 +54,8 @@ C**
* *kob* 1/10/02 - for some reason, also need to explicitely only use first 14
* chars of IT1, IT2. This only showed up as a problem with Linux
* linked statically, for some odd reason
+* V695 *acm* 9/15 Changes for hour:min labeling on time axes
+
CHARACTER*14 IT1_14, IT2_14
INTEGER*4 JDAY
REAL*8 DATE2, DATE1, WHOI2BC, RDATE
@@ -67,7 +69,7 @@ C**
* CALL TIME3(IT1,IY1,IM1,ID1,IH1,IMN1,ISC1,ICN1)
* CALL TIME3(IT2,IY2,IM2,ID2,IH2,IMN2,ISC2,ICN2)
*#ifdef unix
-* DIFF=FLOAT(JDAY(IY2,IM2,ID2,IH2,IMN2,ISC2,ICN2)-
+* DIFF=DOUBLE(JDAY(IY2,IM2,ID2,IH2,IMN2,ISC2,ICN2)-
* * JDAY(IY1,IM1,ID1,IH1,IMN1,ISC1,ICN1))
*#else
* DIFF=FLOATJ(JDAY(IY2,IM2,ID2,IH2,IMN2,ISC2,ICN2)-
diff --git a/ppl/plotlib/scinot.F b/ppl/plotlib/scinot.F
index d1791f6..bf60e55 100644
--- a/ppl/plotlib/scinot.F
+++ b/ppl/plotlib/scinot.F
@@ -48,12 +48,19 @@ C *kob* 04/07/96 passed in character strings had to be declared
C with "*(*)" for the linux port
C *acm* 11/05 Changes for deg-min-sec labelling. for these long
C labels make the character size a bit smaller.
+* V6.95 *acm* 3/15 Changes for PyFerret fonts.
+
+ INCLUDE 'pyfonts.cmn'
+
REAL charsize
CHARACTER STR*(*),ITMP*20,ITMP2*10,SUB*20,IC*1
character ESTR*1,MESTR*2,lestr*1,lmestr*2
data lestr,lmestr/'e','-e'/
DATA ESTR,MESTR/'E','-E'/
-c
+
+ INTEGER ndeg, nc, codepoint, utf8strlen
+ CHARACTER*4 utf8str
+
charsize = CSZE
IF(NCHR.GT.20)RETURN
ITMP=' '
@@ -62,7 +69,32 @@ c
NS=0
L=0
J=1
- NE=0
+ NEE=0
+
+c If we are drawing with PyFerret fonts, convert the # to a degree symbol,
+c and just go on to SYMBEL.
+
+ IF (pyfont .AND. INDEX(str, '#').GT.0) THEN
+
+C UTF-8 for the degree symbol
+
+C degree symbol is codepoint 0xB0 (176), which is UTF-8 0xC2 0xB0 (194 176)
+
+ ITMP = str
+ ndeg = INDEX(str, '#')
+ IF (ndeg .GT. 0 ) THEN
+ codepoint = 176
+ CALL CREATE_UTF8_STR(codepoint, utf8str, utf8strlen)
+ ITMP = str(1:ndeg-1)//utf8str(1:utf8strlen)
+ IF (ndeg.LT.nchr) ITMP =
+ . str(1:ndeg-1)//utf8str(1:utf8strlen)//str(ndeg+1:nchr)
+ ENDIF
+ NC = NCHR
+ IF (ndeg.EQ.nchr) NC = NCHR+1
+ ndeg = 0
+ GOTO 2000
+ ENDIF
+
DO 10 NM=1,20
IF(NM.GT.NCHR)GOTO 100
IC=STR(NM:NM)
@@ -75,7 +107,7 @@ c
GOTO 20
ENDIF
ENDIF
- IF((IC.LT.'0'.OR.IC.GT.'9').AND.IC.NE.'.')THEN
+ IF((IC.LT.'0'.OR.IC.GT.'9').AND.IC.NE.'.')THEN
SUB=STR(NM:)
NC=J-1
NS=LNBLK(SUB,20)
@@ -85,14 +117,14 @@ c
J=J+1
10 CONTINUE
100 IF(IC.EQ.' '.OR.NM.GT.NCHR)GOTO 200
- NE=2
+ NEE=2
IF(STR(1:1).NE.estr.AND.STR(1:2).NE.mestr
* .and.str(1:1).ne.lestr.and.str(1:2).ne.lmestr)THEN
ITMP(J:J+1)=' x'
J=J+2
ENDIF
200 NC=J-1
- IF(NE.EQ.0)GOTO 1000
+ IF(NEE.EQ.0)GOTO 1000
IF(IC.EQ.estr.or.ic.eq.lestr)NM=NM+1
IS=0
DO 60 K=NM,20
@@ -113,13 +145,19 @@ c
300 IF(L.NE.0)GOTO 1000
L=1
ITMP2='0'
-1000 IF (ns .GT. 6) charsize = 0.9* charsize
+1000 CONTINUE
+ IF (ns .GT. 6) charsize = 0.9* charsize
+2000 CONTINUE
C=COS(DEG*1.7453292E-2)
S=SIN(DEG*1.7453292E-2)
- WID2=SYMWID(charsize,NE,'10')
- WID1=SYMWID(charsize,NC,ITMP)+WID2
- WID3=WID1+SYMWID(charsize*.75,L,ITMP2)
- WID=WID3+SYMWID(charsize,NS,SUB)
+ IF (pyfont .AND. NEE.EQ.0) THEN
+ WID = SYMWID(charsize,NC,ITMP)
+ ELSE
+ WID2=SYMWID(charsize,NEE,'10')
+ WID1=SYMWID(charsize,NC,ITMP)+WID2
+ WID3=WID1+SYMWID(charsize*.75,L,ITMP2)
+ WID=WID3+SYMWID(charsize,NS,SUB)
+ ENDIF
IF(ITYPE.EQ.3)RETURN
GO TO (1,2,3)ITYPE+1
1 XL=X-WID*C*.5/XF+charsize*.5*S/XF
@@ -131,15 +169,16 @@ c
3 XL=X+charsize*.5*S/XF
YL=Y-charsize*.5*C/YF
400 CALL SYMBEL(XL,YL,DEG,charsize,NC,ITMP)
- IF(NE.NE.0)THEN
- CALL SYMBEL(XL+(WID1-WID2)*C/XF,YL+(WID1-WID2)*S/YF,
- *DEG,charsize,NE,'10')
- XLT=XL+WID1*C/XF-charsize*.625*S/XF
- YLT=YL+WID1*S/YF+charsize*.625*C/YF
- CALL SYMBEL(XLT,YLT,DEG,charsize*.75,L,ITMP2)
- ENDIF
- XL=XL+WID3*C/XF
- YL=YL+WID3*S/YF
- CALL SYMBEL(XL,YL,DEG,charsize,NS,SUB)
+ IF(NEE.NE.0)THEN
+ CALL SYMBEL(XL+(WID1-WID2)*C/XF,YL+(WID1-WID2)*S/YF,
+ * DEG,charsize,NEE,'10')
+ XLT=XL+WID1*C/XF-charsize*.625*S/XF
+ YLT=YL+WID1*S/YF+charsize*.625*C/YF
+ CALL SYMBEL(XLT,YLT,DEG,charsize*.75,L,ITMP2)
+ ENDIF
+ XL=XL+WID3*C/XF
+ YL=YL+WID3*S/YF
+ CALL SYMBEL(XL,YL,DEG,charsize,NS,SUB)
+
RETURN
END
diff --git a/ppl/plotlib/scinot.F b/ppl/plotlib/scinot_d.F
similarity index 96%
copy from ppl/plotlib/scinot.F
copy to ppl/plotlib/scinot_d.F
index d1791f6..975b615 100644
--- a/ppl/plotlib/scinot.F
+++ b/ppl/plotlib/scinot_d.F
@@ -1,4 +1,4 @@
- SUBROUTINE SCINOT(X,Y,DEG,CSZE,NCHR,STR,ITYPE,WID,XF,YF)
+ SUBROUTINE SCINOT_d(X,Y,DEG,CSZE,NCHR,STR,ITYPE,WID,XF,YF)
*
*
* This software was developed by the Thermal Modeling and Analysis
@@ -48,6 +48,8 @@ C *kob* 04/07/96 passed in character strings had to be declared
C with "*(*)" for the linux port
C *acm* 11/05 Changes for deg-min-sec labelling. for these long
C labels make the character size a bit smaller.
+ REAL*8 x,y,xf,yf
+ REAL wid,wid1,wid2,wid3
REAL charsize
CHARACTER STR*(*),ITMP*20,ITMP2*10,SUB*20,IC*1
character ESTR*1,MESTR*2,lestr*1,lmestr*2
@@ -75,7 +77,7 @@ c
GOTO 20
ENDIF
ENDIF
- IF((IC.LT.'0'.OR.IC.GT.'9').AND.IC.NE.'.')THEN
+ IF((IC.LT.'0'.OR.IC.GT.'9').AND.IC.NE.'.'.AND.IC.NE.':')THEN
SUB=STR(NM:)
NC=J-1
NS=LNBLK(SUB,20)
diff --git a/ppl/plotlib/taxis.F b/ppl/plotlib/taxis.F
index 69300ab..e8c88f6 100644
--- a/ppl/plotlib/taxis.F
+++ b/ppl/plotlib/taxis.F
@@ -1,5 +1,5 @@
SUBROUTINE TAXIS(IT,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
- * XF,YHI,YF,TCSIZE,yacross,vgrat,vcolor,vline)
+ * XF,YHI,YF,TCSIZE,yacross,vgrat,vcolor,vline,color0,is_hours_axis)
*
*
* This software was developed by the Thermal Modeling and Analysis
@@ -48,6 +48,7 @@ C**
C *kob* 04/07/96 passed in character strings had to be declared
C with "*(*)" for the linux port
C *acm* 03/04 new arguments for plotting graticule lines across plot.
+C V695 *acm* 9/15 Changes for hour:min labeling on time axes
C If graticule lines are to be drawn across the plot at the tics
C then only do them for one horizontal and one vertical axis.
@@ -56,6 +57,7 @@ C sides. HLINE and VLINE control this.
CHARACTER*(*) IT1,IT2
+ INTEGER color0, is_hours_axis
REAL yacross
REAL vgrat(4,2) ! line type: 0=tics only, <0=line, >0=dash lengths
INTEGER vcolor(*) ! pen number
@@ -63,12 +65,12 @@ C sides. HLINE and VLINE control this.
GOTO (10,20,20,30)IT+1
10 CALL TAXIS0(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,XF,YHI,YF,TCSIZE,
- . yacross,vgrat,vcolor,vline)
+ . yacross,vgrat,vcolor,vline,color0,is_hours_axis)
RETURN
20 CALL TAXIS1(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,XF,YHI,YF,TCSIZE,
- . yacross,vgrat,vcolor,vline)
+ . yacross,vgrat,vcolor,vline,color0)
RETURN
30 CALL TAXIS3(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,XF,YHI,YF,TCSIZE,
- . yacross,vgrat,vcolor,vline)
+ . yacross,vgrat,vcolor,vline,color0)
RETURN
END
diff --git a/ppl/plotlib/taxis0.F b/ppl/plotlib/taxis0.F
index a4c995e..c9c4fc5 100644
--- a/ppl/plotlib/taxis0.F
+++ b/ppl/plotlib/taxis0.F
@@ -1,5 +1,5 @@
SUBROUTINE TAXIS0(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IHDB,IDDB,
- 1 TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline)
+ 1 TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline,color0,is_hours_axis)
*
*
@@ -56,6 +56,8 @@ C ITIME to ITIME2 at loop 10
C *acm* 03/04 new arguments and code for plotting graticule lines across plot.
C V65 *acm* 1/10 New time-axis style for DAY and MONTH, DMY: adds the
C year to DAY,MONTH or to MONTH.
+C V695 *acm* 9/15 Changes for hour:min labeling on time axes
+
C**
C** @(#)taxis0.f 1.1 3/10/88
C**
@@ -93,8 +95,8 @@ C IDDB = PRINT LABELS OF DAYS DIVISIBLE BY THIS NUMBER ONLY.
C IF(IDDB = 0) PRINT NO MONTH LABELS.
C THIS VARIBLE ONLY APPLYS WHEN IABS(LABEL) = 1
C TFACT = (LENGTH OF T AXIS IN INCHES)/(LENGTH OF T AXIS IN USER
-C Y = Y COORDINATE OF TIME AXIS.
-C YFACT = (LENGTH OF Y AXIS IN INCHES)/(LENGTH OF Y AXIS IN USER
+C Y = Y COORDINATE OF TIME AXIS.
+C YFACT = (LENGTH OF Y AXIS IN INCHES)/(LENGTH OF Y AXIS IN USER
C CSIZE = SIZE TO DRAW HOUR LABELS.
C DAY LABELS WILL BE 1.5 TIMES AS LARGE.
C
@@ -102,10 +104,16 @@ C
C THIS ROUTINE WAS FIRST WRITTEN BY DAVID MANDEL IN JULY 1980.
C
CHARACTER ITIME3*14,DATE*6,BUFF*14,YEAR*4
- CHARACTER ITIME*14,ITIME1*(*),ITIME2*(*),SYM*21
+ CHARACTER ITIME*14,ITIME1*14,ITIME2*14,SYM*21
COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
COMMON/AXLWID/XWID,YWID
+ REAL*8 DIFF, difft
+ REAL*8 td, ytemp1, tfact_d, yfact_d
+ REAL delt, rem, angl
+ INTEGER color0, is_hours_axis, labint, ticint
+ LOGICAL hvytic
+
* Parameters for drawing tics across plot
REAL yacross
@@ -122,14 +130,53 @@ C
include 'xinterrupt.cmn'
include 'century.cmn' ! with MONYRLAB flag
+
+ 80 FORMAT(I2.2)
+ 82 FORMAT(I2.2,':00')
+ 84 FORMAT(I2.2,':',I2.2)
+
+ difft = DIFF(ITIME1,ITIME2)
+ angl = 0.
+
C CHECK THE PARAMETERS PASSED TO THE SUBROUTINE.
- IF(ITIME1(9:10).NE.'00')STOP ',1'
- IF(ITIME2(9:10).NE.'00')STOP ',2'
-
+ IF (is_hours_axis .EQ. 0) THEN
+ IF(ITIME1(9:10).NE.'00')STOP ',1' ! MINUTE,SECOND ARE 0
+ IF(ITIME2(9:10).NE.'00')STOP ',2'
+ ENDIF
+
IF(ITIME1(13:14)//ITIME1(1:12).GE.
. ITIME2(13:14)//ITIME2(1:12)) STOP',3'
+C SET PARAMETERS.
+ TIC = 60./DT
+ TICd = 60./DT
+ NTIC = NSMTIC + 1
+ delt = 60.
+ labint = 120
+ ticint = labint
+
+! On short-time interval axes, tic and label interval
+ IF (is_hours_axis.EQ.1) THEN
+ labint = 30
+ delt = 1.
+ ticint = 5
+ ENDIF
+ IF (is_hours_axis.EQ.2) THEN
+ labint = 10
+ delt = 1
+ ticint = 1
+ IF (difft .LE. 30) labint = 5
+ IF (difft .LE. 20) labint = 4
+ IF (difft .LE. 10) labint = 1
+ IF (difft .GE. 60) ticint = 2
+ IF (difft .GE. 120) ticint = 4
+ IF (difft .GE. 240) ticint = 4
+ ENDIF
+
+ tic = delt/dt
+ ticd = delt/dt
+
C set up for plotting graticules across at tic marks
solid1 = (vgrat(1,1).LT.0 .AND. vgrat(2,1).LT.0 .AND.
@@ -157,9 +204,7 @@ C set up for plotting graticules across at tic marks
dash2_4 = vgrat(4,2)
ENDIF
C
-C SET PARAMETERS.
- TIC = 60./DT
- NTIC = NSMTIC + 1
+
IF(NSMTIC.LT.0)THEN
IHVY=-8
INML=-7
@@ -178,32 +223,50 @@ C SET PARAMETERS.
ELSE
FIHDB=-1.4
ENDIF
- YTEMP1=Y+LABEL*(0.9*CSIZE+YTEMP)/YFACT
+ YTEMP1=Y+DBLE(LABEL*(0.9*CSIZE+YTEMP)/YFACT)
IF(LABEL.LT.0) THEN
YTEMP2=Y-((4.0+FIHDB)*CSIZE+YTEMP)/YFACT
ELSE
YTEMP2=Y+((2.5+FIHDB)*CSIZE+YTEMP)/YFACT
ENDIF
IF(LABEL.NE.0)XWID=(4.0+FIHDB)*CSIZE+YTEMP
- T=TLO
+ T=TLO ! Time in hours, plot units
+ td = tlo
ITIME=ITIME1
CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
TDAY=T
+ tfact_d = tfact
+ yfact_d = yfact
+
CALL PLOT(TLO,Y,0,0)
- IF(IHR.EQ.0)THEN
- CALL PLOTT7(TLO,Y,TFACT,YFACT,1,IHVY)
- ELSE
- CALL PLOTT7(TLO,Y,TFACT,YFACT,1,INML)
- ENDIF
- CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
+ IF(IHR.EQ.0 .AND.is_hours_axis.EQ.0 )THEN
+ CALL PLOTT7(TLO,Y,TFACT,YFACT,1,IHVY) ! draw to the location and make a mark
+ ELSE
+ IF (MOD(imin,labint) .EQ. 0) THEN
+ CALL PLOTT7(TLO,Y,TFACT,YFACT,1,IHVY)
+ ELSE
+ CALL PLOTT7(TLO,Y,TFACT,YFACT,1,INML)
+ ENDIF
+ ENDIF
+
+ CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt) ! next time stepping from 1 (arg 1) to 2 (arg 2) -- return ITIME3
ITIME = ITIME3
- IF(IABS(LABEL).NE.1.OR.IHR.NE.IHDB*(IHR/IHDB)) GO TO 11
-C ELSE:
- WRITE(SYM,80) IHR
-80 FORMAT(I2.2)
- CALL SCINOT(T,YTEMP1,0.,CSIZE,2,SYM,0,WID,TFACT,YFACT)
- 11 CONTINUE
+
+c Check whether to make an hour label at the start of the axis
+c ihdb is hour-label frequency
+ IF(IABS(LABEL).EQ.1) THEN
+ IF (IHR.EQ.IHDB*(IHR/IHDB) .AND. is_hours_axis.EQ.0) THEN
+ WRITE(SYM,80) IHR
+ CALL scinot_d(Td,YTEMP1,angl,CSIZE,2,SYM,0,wid,tfact_d, yfact_d)
+ ENDIF
+ IF (is_hours_axis .GT. 0) THEN
+ IF (IMIN .EQ. 0) THEN
+ WRITE(SYM,82) IHR
+ CALL scinot_d(Td,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
+ ENDIF
+ ENDIF
+ ENDIF
c ---- count number of large tics. If no large tics will be drawn
c ---- then will want to draw graticule lines at the small ones.
@@ -212,7 +275,7 @@ c Set itime1, itime3 as above
ITIME=ITIME1
CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
- CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
+ CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
ITIME = ITIME3
C LOOP:
@@ -220,12 +283,19 @@ C LOOP:
110 CONTINUE
CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
- CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
+ CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
ITIME=ITIME3
IF(ITIME(13:14)//ITIME(1:12) .LE.
. ITIME2(13:14)//ITIME2(1:12)) THEN
IF(IHR.EQ.0) ltic = ltic + 1
+ IF (is_hours_axis .GT. 0) THEN
+ IF (difft.LE.12 .AND. sec.EQ.0.) THEN
+ ltic = ltic+1
+ ELSE
+ IF (imin.EQ.0. .AND. ihr.NE.0) ltic = ltic+1
+ ENDIF
+ ENDIF
GO TO 110
ENDIF
@@ -245,13 +315,14 @@ C LOOP:
dash2_4 = dash1_4
color2 = color1
ENDIF
+
ENDIF
! Restore the state of ITIME, ITIME3
ITIME=ITIME1
CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
- CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
+ CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
ITIME = ITIME3
c ----
@@ -261,7 +332,7 @@ C LOOP:
IF ( interrupted ) RETURN ! TMAP interrupt
DO 20 I=1,NSMTIC
CALL PLOTT7(T+FLOAT(I)*TDIST,Y,TFACT,YFACT,1,-7)
-
+
IF ((solid2.OR.dashed2) .AND. vline) THEN ! make line across
CALL COLOR(color2)
IF (dashed2) THEN
@@ -271,13 +342,16 @@ C LOOP:
CALL PLOT(T+FLOAT(I)*TDIST,y,0,0)
CALL PLOT(T+FLOAT(I)*TDIST,yacross,1,0)
CALL PLOT(T+FLOAT(I)*TDIST,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
20 CONTINUE
CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
- IF(IHR.EQ.0)THEN
+
+ hvytic = ((is_hours_axis.EQ.0 .AND. IHR.EQ.0) .OR.
+ . (is_hours_axis.GT.0 .AND. MOD(imin,labint).EQ.0))
+ IF(hvytic)THEN
CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,IHVY)
IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
CALL COLOR(color1)
@@ -288,13 +362,21 @@ C LOOP:
CALL PLOT(t+tic,y,0,0)
CALL PLOT(t+tic,yacross,1,0)
CALL PLOT(t+tic,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
ELSE
- CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
-
+ IF (is_hours_axis.GT.0) THEN
+ IF (MOD(imin,ticint).EQ.0) THEN
+ CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
+ ELSE
+ CALL PLOT(T+TIC,Y,1,0)
+ ENDIF
+ ELSE
+ CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
+ ENDIF
+
IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
CALL COLOR(color1)
IF (dashed1) THEN
@@ -304,18 +386,33 @@ C LOOP:
CALL PLOT(t+tic,y,0,0)
CALL PLOT(t+tic,yacross,1,0)
CALL PLOT(t+tic,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
ENDIF
C THE LABELS
- IF(IHDB.EQ.0.OR.IABS(LABEL).NE.1) GO TO 50
- IF(IHR.NE.IHDB*(IHR/IHDB)) GO TO 50
- WRITE(SYM,80) IHR
- CALL SCINOT(T+TIC,YTEMP1,0.,CSIZE,2,SYM,0,WID,TFACT,YFACT)
- 50 CONTINUE
- CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
+
+ IF (IABS(LABEL).EQ.1) THEN
+ IF (is_hours_axis .GT. 0) THEN
+ IF (imin .EQ. 0) THEN
+ WRITE(SYM,82) IHR
+ CALL scinot_d(Td+TICd,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
+ ELSE
+ IF (MOD(imin,labint) .EQ. 0) THEN
+ WRITE(SYM,84) ihr, imin
+ CALL scinot_d(Td+TICd,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
+ ENDIF
+ ENDIF
+ ELSE
+ IF(IHR.EQ.IHDB*(IHR/IHDB)) THEN
+ WRITE(SYM,80) IHR
+ CALL scinot_d(Td+TICd,YTEMP1,angl,CSIZE,2,SYM,0,wid,tfact_d, yfact_d)
+ ENDIF
+ ENDIF
+ ENDIF
+
+ CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
IF(IDDB.EQ.0.OR.IABS(LABEL).NE.1) GO TO 70
CALL TIME3(ITIME3,IYR3,IMON3,IDAY3,IHR3,IMIN3,ISEC3,ICEN3)
IF(IDAY.EQ.IDAY3) GO TO 70
@@ -329,7 +426,7 @@ C ELSE:
IF (MONYRLAB) THEN
WRITE (BUFF, 65) DATE, YEAR
TSYM=TDAY+(T+TIC-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
- CALL SYMBEL(TSYM,YTEMP2,0.,CSIZE,14,BUFF)
+ CALL SYMBEL(TSYM,YTEMP2,angl,CSIZE,14,BUFF)
ELSE
TSYM=TDAY+(T+TIC-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
CALL SYMBEL(TSYM,YTEMP2,0.,1.5*CSIZE,6,DATE)
@@ -339,32 +436,36 @@ C ELSE:
70 CONTINUE
ITIME=ITIME3
T=T+TIC
+ td = td + ticd
+ t=td
c IF(ITIME.LE.ITIME2) GO TO 10
IF(ITIME(13:14)//ITIME(1:12) .LE.
. ITIME2(13:14)//ITIME2(1:12)) GO TO 10
-
+
IF(IDDB.EQ.0) RETURN
- IF(IABS(LABEL).EQ.1.AND.IDAY.EQ.IDDB*(IDAY/IDDB)
- . .AND.IHR3.GE.4)THEN
- CALL TIME2(ITIME,SYM)
- READ(SYM,55) DATE
-* TMAP mod 9/17/89 *sh*
-! original: ("mon" --> "date")
-! TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,MON)/TFACT)*.5
-! CALL SYMBEL(TSYM,YTEMP2,0.,1.5*CSIZE,6,MON)
-
- IF (MONYRLAB) THEN
- WRITE (BUFF, 65) DATE, YEAR
- TSYM=TDAY+(T-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
- CALL SYMBEL(TSYM,YTEMP2,0.,CSIZE,14,BUFF)
- ELSE
- TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
- CALL SYMBEL(TSYM,YTEMP2,0.,1.5*CSIZE,6,DATE)
- ENDIF
-* end of 9/17/89 TMAP mod
+ IF(IABS(LABEL).EQ.1.AND.IDAY.EQ.IDDB*(IDAY/IDDB) ) THEN
+ IF (is_hours_axis.GT.0 .OR. IHR3.GE.4) THEN
+ CALL TIME2(ITIME,SYM)
+ READ(SYM,55) DATE, YEAR
+ IF (MONYRLAB) THEN
+ WRITE (BUFF, 65) DATE, YEAR
+ TSYM=TDAY+(T-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
+ CALL SYMBEL(TSYM,YTEMP2,angl,CSIZE,14,BUFF)
+ ELSE
+ TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
+ CALL SYMBEL(TSYM,YTEMP2,0.,1.5*CSIZE,6,DATE)
+ ENDIF
+
+ ENDIF
ENDIF
+
+
+c Finish out the line
+ CALL PLOT (t,y,0,0)
+ t = TLO + DIFF(ITIME1, ITIME2)/dt
+ CALL PLOT (t,y,1,0)
+
RETURN
END
-
diff --git a/ppl/plotlib/taxis1.F b/ppl/plotlib/taxis1.F
index b738233..1e28f61 100644
--- a/ppl/plotlib/taxis1.F
+++ b/ppl/plotlib/taxis1.F
@@ -1,5 +1,5 @@
SUBROUTINE TAXIS1(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IDDB,IMDB,
- 1 TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline)
+ 1 TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline,color0)
*
*
@@ -54,6 +54,7 @@ C ITIME to ITIME2 at loop 10
C *acm* 03/04 new arguments and code for plotting graticule lines across plot.
C V65 *acm* 1/10 New time-axis style for DAY and MONTH, DMY: adds the
C year to DAY,MONTH or to MONTH.
+C V695 *acm* 5/15 Restore color after a graticule using defined color 0
C**
C** @(#)taxis1.f 1.1 3/10/88
@@ -121,6 +122,7 @@ C
REAL dash2_1, dash2_2, dash2_3, dash2_4
REAL vgrat(4,2) ! line type: 0=tics only, <0=line, >0=dash lengths
INTEGER vcolor(*) ! pen number
+ INTEGER color0 ! pen number for axis
LOGICAL vline ! If true, do the lines across.
LOGICAL solid1, solid2 ! solid lines across at tics
LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -265,7 +267,7 @@ C LOOP:
CALL PLOT(T+FLOAT(I)*TDIST,y,0,0)
CALL PLOT(T+FLOAT(I)*TDIST,yacross,1,0)
CALL PLOT(T+FLOAT(I)*TDIST,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
@@ -284,7 +286,7 @@ C LOOP:
CALL PLOT(t+tic,y,0,0)
CALL PLOT(t+tic,yacross,1,0)
CALL PLOT(t+tic,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
@@ -300,7 +302,7 @@ C LOOP:
CALL PLOT(t+tic,y,0,0)
CALL PLOT(t+tic,yacross,1,0)
CALL PLOT(t+tic,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
diff --git a/ppl/plotlib/taxis3.F b/ppl/plotlib/taxis3.F
index 8e234fe..2d2cbc4 100644
--- a/ppl/plotlib/taxis3.F
+++ b/ppl/plotlib/taxis3.F
@@ -1,5 +1,5 @@
SUBROUTINE TAXIS3(TLO,ITIME1,ITIME2,DT,NDAY,LABEL,IMDB,IYDB,
- 1 TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline)
+ 1 TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline,color0)
*
*
@@ -61,7 +61,8 @@ C with "*(*)" for the linux port
C *acm* 03/04 new arguments and code for plotting graticule lines across plot.
C *acm* 3/10 Bug 670 fixed: New flag MULTICENFLAG for multi-decade plots,
C do not make small tics by default.
-
+C V695 *acm* 5/15 Restore color after a graticule using defined color 0
+C V695 *acm* 5/15 for PyFerret draw lines and tics only once, avoiding overdrawing.
C**
C** @(#)taxis3.f 1.1 3/10/88
@@ -128,6 +129,7 @@ C
REAL dash2_1, dash2_2, dash2_3, dash2_4
REAL vgrat(4,2) ! line type: 0=tics only, <0=line, >0=dash lengths
INTEGER vcolor(*) ! pen number
+ INTEGER color0 ! pen number for axis
LOGICAL vline ! If true, do the lines across.
LOGICAL solid1, solid2 ! solid lines across at tics
LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -313,6 +315,7 @@ C LOOP:
IF (IYDB .GT. 0) THEN
IF (MOD(ICEN3*100+IYR3,IYDB).EQ.0) THEN
+ CALL PLOT (T+TIC,Y,0,0)
CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,IHVY)
IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
CALL COLOR(color1)
@@ -323,13 +326,14 @@ C LOOP:
CALL PLOT(t+tic,y,0,0)
CALL PLOT(t+tic,yacross,1,0)
CALL PLOT(t+tic,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
ELSE
IF(NOT_ZERO_SIZE) THEN
- CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
+ CALL PLOT (T+TIC,Y,0,0)
+ CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
IF ((solid2.OR.dashed2) .AND. vline) THEN ! make line across
CALL COLOR(color2)
IF (dashed2) THEN
@@ -339,7 +343,7 @@ C LOOP:
CALL PLOT(T+TIC,y,0,0)
CALL PLOT(T+TIC,yacross,1,0)
CALL PLOT(T+TIC*TDIST,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
@@ -348,6 +352,7 @@ C LOOP:
ENDIF
ELSE
IF(IMON3.EQ.1)THEN
+ CALL PLOT (T+TIC,Y,0,0)
CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,IHVY)
IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
CALL COLOR(color1)
@@ -358,11 +363,12 @@ C LOOP:
CALL PLOT(t+tic,y,0,0)
CALL PLOT(t+tic,yacross,1,0)
CALL PLOT(t+tic,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
ELSE
IF(NOT_ZERO_SIZE) THEN
+ CALL PLOT (T+TIC,Y,0,0)
CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
IF ((solid2.OR.dashed2) .AND. vline) THEN ! make line across
CALL COLOR(color2)
@@ -373,7 +379,7 @@ C LOOP:
CALL PLOT(T+TIC,y,0,0)
CALL PLOT(T+TIC,yacross,1,0)
CALL PLOT(T+TIC*TDIST,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
@@ -391,8 +397,8 @@ C THE LABELS
30 FORMAT(6X,A3,4X,A2,A2)
WRITE(SYM,40)MON,YR
40 FORMAT(A3,' ',A2)
- TSYM=T+(TIC-SYMWID(CSIZE,NC,SYM)/TFACT)*.5
- CALL SYMBEL(TSYM,YTEMP1,0.,CSIZE,NC,SYM)
+ TSYM=T+(TIC-SYMWID(CSIZE,NC,SYM(:NC))/TFACT)*.5
+ CALL SYMBEL(TSYM,YTEMP1,0.,CSIZE,NC,SYM(:NC))
50 CONTINUE
IF(IYDB.EQ.0.OR.NC.EQ.6) GO TO 70
IF(IYR.EQ.IYR3) GO TO 70
@@ -403,8 +409,8 @@ C ELSE:
READ(SYM,30)MON,CEN,YR
WRITE(SYM,55)CEN,YR
55 FORMAT(A2,A2)
- TSYM=TYR+(T+TIC-TYR-SYMWID(1.4*CSIZE,4,SYM)/TFACT)*.5
- CALL SYMBEL(TSYM,YTEMP2,0.,1.4*CSIZE,4,SYM)
+ TSYM=TYR+(T+TIC-TYR-SYMWID(1.4*CSIZE,4,SYM(:4))/TFACT)*.5
+ CALL SYMBEL(TSYM,YTEMP2,0.,1.4*CSIZE,4,SYM(:4))
ENDIF
60 TYR=T+TIC
70 CONTINUE
@@ -427,8 +433,8 @@ C ELSE:
CALL TIME2(ITIME,SYM)
READ(SYM,30)MON,CEN,YR
WRITE(SYM,55)CEN,YR
- TSYM=TYR+(T-TYR-SYMWID(1.4*CSIZE,4,SYM)/TFACT)*.5
- CALL SYMBEL(TSYM,YTEMP2,0.,1.4*CSIZE,4,SYM)
+ TSYM=TYR+(T-TYR-SYMWID(1.4*CSIZE,4,SYM(:4))/TFACT)*.5
+ CALL SYMBEL(TSYM,YTEMP2,0.,1.4*CSIZE,4,SYM(:4))
ENDIF
C
C THE SECTION OF CODE THAT PUTS ON THE SMALL TIC MARKS.
diff --git a/ppl/plotlib/tayis.F b/ppl/plotlib/tayis.F
index 32eb14b..3b102d0 100644
--- a/ppl/plotlib/tayis.F
+++ b/ppl/plotlib/tayis.F
@@ -1,5 +1,6 @@
SUBROUTINE TAYIS(IT,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
- * YF,XHI,XF,TCSIZE,xacross,hgrat,hcolor,hline)
+ * YF,XHI,XF,TCSIZE,xacross,hgrat,hcolor,hline,color0,is_hours_axis)
+
C**
C** @(#)tayis.f 1.1 3/10/88
C**
@@ -55,21 +56,25 @@ C If graticule lines are to be drawn across the plot at the tics
C then only do them for one horizontal and one vertical axis.
C The dash lines interfere with each other if drawn from both
C sides. HLINE and VLINE control this.
+C V695 *acm* 5/15 Restore color after a graticule using defined color 0
+ INTEGER is_hours_axis
REAL xacross ! to draw tic line across plot
REAL hgrat(4,2) ! line type: 0=tics only, <0=line, >0=dash lengths
INTEGER hcolor(*) ! pen number
+ INTEGER color0 ! pen number for axis
LOGICAL hline ! If true, do the lines across.
CHARACTER*(*) IT1,IT2
+
GOTO (10,20,20,30)IT+1
10 CALL TAYIS0(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,YF,XHI,XF,TCSIZE,
- . xacross,hgrat,hcolor,hline)
+ . xacross,hgrat,hcolor,hline,color0,is_hours_axis)
RETURN
20 CALL TAYIS1(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,YF,XHI,XF,TCSIZE,
- . xacross,hgrat,hcolor,hline)
+ . xacross,hgrat,hcolor,hline,color0)
RETURN
30 CALL TAYIS3(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,YF,XHI,XF,TCSIZE,
- . xacross,hgrat,hcolor,hline)
+ . xacross,hgrat,hcolor,hline,color0)
RETURN
END
diff --git a/ppl/plotlib/tayis0.F b/ppl/plotlib/tayis0.F
index 0c738a7..3cdef71 100644
--- a/ppl/plotlib/tayis0.F
+++ b/ppl/plotlib/tayis0.F
@@ -1,5 +1,5 @@
SUBROUTINE TAYIS0(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IHDB,IDDB,
- * TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline)
+ * TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline,color0,is_hours_axis)
*
*
@@ -56,6 +56,8 @@ C ITIME to ITIME2 at loop 10
C *acm* 03/04 new arguments and code for plotting graticule lines across plot.
C V65 *acm* 1/10 New time-axis style for DAY and MONTH, DMY: adds the
C year to DAY,MONTH or to MONTH.
+C V695 *acm* 5/15 Restore color after a graticule using defined color 0
+C V695 *acm* 9/15 Changes for hour:min labeling on time axes
C**
C** @(#)tayis0.f 1.1 3/10/88
@@ -94,8 +96,8 @@ C IDDB = PRINT LABELS OF DAYS DIVISIBLE BY THIS NUMBER ONLY.
C IF(IDDB = 0) PRINT NO MONTH LABELS.
C THIS VARIBLE ONLY APPLYS WHEN IABS(LABEL) = 1
C TFACT = (LENGTH OF T AXIS IN INCHES)/(LENGTH OF T AXIS IN USER
-C Y = Y COORDINATE OF TIME AXIS.
-C YFACT = (LENGTH OF Y AXIS IN INCHES)/(LENGTH OF Y AXIS IN USER
+C X = X COORDINATE OF TIME AXIS.
+C XFACT = (LENGTH OF X AXIS IN INCHES)/(LENGTH OF X AXIS IN USER
C CSIZE = SIZE TO DRAW HOUR LABELS.
C DAY LABELS WILL BE 1.5 TIMES AS LARGE.
C
@@ -103,10 +105,16 @@ C
C THIS ROUTINE WAS FIRST WRITTEN BY DAVID MANDEL IN JULY 1980.
C
CHARACTER ITIME3*14,DATE*6,BUFF*14,YEAR*4
- CHARACTER ITIME*14,ITIME1*(*),ITIME2*(*),SYM*21
+ CHARACTER ITIME*14,ITIME1*14,ITIME2*14,SYM*21
COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
COMMON/AXLWID/XWID,YWID
+ REAL*8 DIFF, difft
+ REAL*8 td, xtemp1, tfact_d, xfact_d
+ REAL delt, rem
+ INTEGER is_hours_axis, labint, ticint
+ LOGICAL hvytic
+
* Parameters for drawing tics across plot
REAL xacross
@@ -114,6 +122,7 @@ C
REAL dash2_1, dash2_2, dash2_3, dash2_4
REAL hgrat(4,2) ! line type: 0=tics only, <0=line, >0=dash lengths
INTEGER hcolor(*) ! pen number
+ INTEGER color0 ! pen number for axis
LOGICAL hline ! If true, do the lines across.
LOGICAL solid1, solid2 ! solid lines across at tics
LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -123,13 +132,52 @@ C
include 'xinterrupt.cmn'
include 'century.cmn' ! with MONYRLAB flag
+
+ 80 FORMAT(I2.2)
+ 82 FORMAT(I2.2,':00')
+ 84 FORMAT(I2.2,':',I2.2)
+
+ difft = DIFF(ITIME1,ITIME2)
C CHECK THE PARAMETERS PASSED TO THE SUBROUTINE.
- IF(ITIME1(9:10).NE.'00')STOP ',1'
- IF(ITIME2(9:10).NE.'00')STOP ',2'
+
+ IF (is_hours_axis .EQ. 0) THEN
+ IF(ITIME1(9:10).NE.'00')STOP ',1' ! MINUTE,SECOND ARE 0
+ IF(ITIME2(9:10).NE.'00')STOP ',2'
+ ENDIF
+
IF(ITIME1(13:14)//ITIME1(1:12).GE.
. ITIME2(13:14)//ITIME2(1:12)) STOP',3'
-
+
+C SET PARAMETERS.
+ TIC = 60./DT
+ TICd = 60./DT
+ NTIC = NSMTIC + 1
+ delt = 60.
+ labint = 120
+ ticint = labint
+
+! On short-time interval axes, tic and label interval
+ IF (is_hours_axis.EQ.1) THEN
+ labint = 30
+ delt = 1.
+ ticint = 5
+ ENDIF
+ IF (is_hours_axis.EQ.2) THEN
+ labint = 10
+ delt = 1
+ ticint = 1
+ IF (difft .LE. 30) labint = 5
+ IF (difft .LE. 20) labint = 4
+ IF (difft .LE. 10) labint = 1
+ IF (difft .GE. 60) ticint = 2
+ IF (difft .GE. 120) ticint = 4
+ IF (difft .GE. 240) ticint = 4
+ ENDIF
+
+ tic = delt/dt
+ ticd = delt/dt
+
solid1 = (hgrat(1,1).LT.0 .AND. hgrat(2,1).LT.0 .AND.
. hgrat(3,1).LT.0 .AND. hgrat(4,1).LT.0 )
solid2 = (hgrat(1,2).LT.0 .AND. hgrat(2,2).LT.0 .AND.
@@ -155,9 +203,6 @@ C CHECK THE PARAMETERS PASSED TO THE SUBROUTINE.
dash2_4 = hgrat(4,2)
ENDIF
C
-C SET PARAMETERS.
- TIC = 60./DT
- NTIC = NSMTIC + 1
IF(NSMTIC.LT.0)THEN
IHVY=-6
INML=-5
@@ -176,31 +221,53 @@ C SET PARAMETERS.
ELSE
FIHDB=-1.4
ENDIF
- XTEMP1=X+LABEL*(0.9*CSIZE+XTEMP)/XFACT
+ XTEMP1=X+DBLE(LABEL*(0.9*CSIZE+XTEMP)/XFACT)
+ IF (is_hours_axis.GT.0 .AND. LABEL.LT.0) XTEMP1=XTEMP1-1.5*CSIZE/XFACT
IF(LABEL.LT.0) THEN
XTEMP2=X-((4.0+FIHDB)*CSIZE+XTEMP)/XFACT
+ IF (is_hours_axis.GT.0) XTEMP2=XTEMP2-1.5*CSIZE/XFACT
ELSE
XTEMP2=X+((2.5+FIHDB)*CSIZE+XTEMP)/XFACT
+ IF (is_hours_axis.GT.0) XTEMP2=X+3*CSIZE/XFACT
ENDIF
IF(LABEL.NE.0)YWID=(4.0+FIHDB)*CSIZE+XTEMP
- T=TLO
+ T=TLO ! Time in hours, plot units
+ td=tlo
ITIME=ITIME1
CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
TDAY=T
- CALL PLOT(X,TLO,0,0)
- IF(IHR.EQ.0)THEN
- CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
+
+ tfact_d = tfact
+ xfact_d = xfact
+
+ CALL PLOT(X,TLO,0,0)
+ IF(IHR.EQ.0 .AND.is_hours_axis.EQ.0 )THEN
+ CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
ELSE
- CALL PLOTT7(X,TLO,XFACT,TFACT,1,INML)
+ IF (MOD(imin,labint) .EQ. 0) THEN
+ CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
+ ELSE
+ CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
+ ENDIF
ENDIF
- CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
+
+ CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt) ! next time stepping from 1 (arg 1) to 2 (arg 2) -- return ITIME3
ITIME = ITIME3
- IF(IABS(LABEL).NE.1.OR.IHR.NE.IHDB*(IHR/IHDB)) GO TO 11
-C ELSE:
- WRITE(SYM,80) IHR
-80 FORMAT(I2.2)
- CALL SCINOT(XTEMP1,T,90.,CSIZE,2,SYM,0,WID,XFACT,TFACT)
- 11 CONTINUE
+
+c Check whether to make an hour label at the start of the axis
+c ihdb is hour-label frequency
+ IF(IABS(LABEL).EQ.1) THEN
+ IF (IHR.EQ.IHDB*(IHR/IHDB) .AND. is_hours_axis.EQ.0) THEN
+ WRITE(SYM,80) IHR
+ CALL scinot_d(XTEMP1,td,0.,CSIZE,2,SYM,0,wid,xfact_d, tfact_d)
+ ENDIF
+ IF (is_hours_axis .GT. 0) THEN
+ IF (IMIN .EQ. 0) THEN
+ WRITE(SYM,82) IHR
+ CALL scinot_d(XTEMP1,td,0.,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
+ ENDIF
+ ENDIF
+ ENDIF
c ---- count number of large tics. If no large tics will be drawn
c ---- then will want to draw graticule lines at the small ones.
@@ -209,7 +276,7 @@ c Set itime1, itime3 as above
ITIME=ITIME1
CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
- CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
+ CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
ITIME = ITIME3
C LOOP:
@@ -223,7 +290,15 @@ C LOOP:
IF(ITIME(13:14)//ITIME(1:12) .LE.
. ITIME2(13:14)//ITIME2(1:12)) THEN
IF(IHR.EQ.0) ltic = ltic + 1
- GO TO 110
+ IF (is_hours_axis .GT. 0) THEN
+ IF (difft.LE.12 .AND. sec.EQ.0.) THEN
+ ltic = ltic+1
+ ELSE
+ IF (imin.EQ.0. .AND. ihr.NE.0) ltic = ltic+1
+ ENDIF
+ ENDIF
+
+ GO TO 110
ENDIF
! IF no large tics, and if graticules at just the large tics were
@@ -248,7 +323,7 @@ C LOOP:
ITIME=ITIME1
CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
- CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
+ CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
ITIME = ITIME3
c ----
@@ -268,13 +343,16 @@ C LOOP:
CALL PLOT(x,T+FLOAT(I)*TDIST,0,0)
CALL PLOT(xacross,T+FLOAT(I)*TDIST,1,0)
CALL PLOT(x,T+FLOAT(I)*TDIST,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
20 CONTINUE
CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
- IF(IHR.EQ.0)THEN
+
+ hvytic = ((is_hours_axis.EQ.0 .AND. IHR.EQ.0) .OR.
+ . (is_hours_axis.GT.0 .AND. MOD(imin,labint).EQ.0))
+ IF(hvytic)THEN
CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,IHVY)
IF ((solid1.OR.dashed1) .AND. hline) THEN ! make line across
@@ -286,13 +364,22 @@ C LOOP:
CALL PLOT(x,t+tic,0,0)
CALL PLOT(xacross,t+tic,1,0)
CALL PLOT(x,t+tic,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
ELSE
- CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,INML)
-
+
+ IF (is_hours_axis.GT.0) THEN
+ IF (MOD(imin,ticint).EQ.0) THEN
+ CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,INML)
+ ELSE
+ CALL PLOT(X,T+TIC,1,0)
+ ENDIF
+ ELSE
+ CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,INML)
+ ENDIF
+
IF ((solid1.OR.dashed1) .AND. hline) THEN ! make line across
CALL COLOR(color1)
IF (dashed1) THEN
@@ -302,18 +389,35 @@ C LOOP:
CALL PLOT(x,t+tic,0,0)
CALL PLOT(xacross,t+tic,1,0)
CALL PLOT(x,t+tic,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
ENDIF
C THE LABELS
- IF(IHDB.EQ.0.OR.IABS(LABEL).NE.1) GO TO 50
- IF(IHR.NE.IHDB*(IHR/IHDB)) GO TO 50
- WRITE(SYM,80) IHR
- CALL SCINOT(XTEMP1,T+TIC,90.,CSIZE,2,SYM,0,WID,XFACT,TFACT)
-50 CONTINUE
- CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
+
+ IF (IABS(LABEL).EQ.1) THEN
+ IF (is_hours_axis .GT. 0) THEN
+ IF (imin .EQ. 0) THEN
+ WRITE(SYM,82) IHR
+ CALL scinot_d(XTEMP1,Td+TICd,0.,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
+ ELSE
+ IF (MOD(imin,labint) .EQ. 0) THEN
+ WRITE(SYM,84) ihr, imin
+ CALL scinot_d(XTEMP1,Td+TICd,0.,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
+ ENDIF
+ ENDIF
+ ELSE
+ IF(IHR.EQ.IHDB*(IHR/IHDB)) THEN
+ WRITE(SYM,80) IHR
+ CALL scinot_d(XTEMP1,Td+TICd,0.,CSIZE,2,SYM,0,wid,xfact_d, tfact_d)
+ ENDIF
+ ENDIF
+
+ ENDIF
+
+ CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
+
IF(IDDB.EQ.0.OR.IABS(LABEL).NE.1) GO TO 70
CALL TIME3(ITIME3,IYR3,IMON3,IDAY3,IHR3,IMIN3,ISEC3,ICEN3)
IF(IDAY.EQ.IDAY3) GO TO 70
@@ -339,27 +443,29 @@ C ELSE:
70 CONTINUE
ITIME=ITIME3
T=T+TIC
+ td = td + ticd
+ t=td
c IF(ITIME.LE.ITIME2) GO TO 10
IF(ITIME(13:14)//ITIME(1:12) .LE.
. ITIME2(13:14)//ITIME2(1:12)) GO TO 10
+
IF(IDDB.EQ.0) RETURN
- IF(IABS(LABEL).EQ.1.AND.IDAY.EQ.IDDB*(IDAY/IDDB)
- . .AND.IHR3.GE.4)THEN
- CALL TIME2(ITIME,SYM)
- READ(SYM,55) DATE, YEAR
-* TMAP mod 8/11/89 *sh*
-! original: ("mon" --> "date")
-! TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,MON)/TFACT)*.5
-! CALL SYMBEL(XTEMP2,TSYM,90.,1.5*CSIZE,6,MON)
- IF (MONYRLAB) THEN
+ IF(IABS(LABEL).EQ.1 .AND. IDAY.EQ.IDDB*(IDAY/IDDB) ) THEN
+ IF (is_hours_axis.GT.0 .OR. IHR3.GE.4) THEN
+ CALL TIME2(ITIME,SYM)
+ READ(SYM,55) DATE, YEAR
+ IF (MONYRLAB) THEN
WRITE (BUFF, 65) DATE, YEAR
TSYM=TDAY+(T-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
- CALL SYMBEL(XTEMP2,TSYM,90.,CSIZE,14,BUFF)
- ELSE
- TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
- CALL SYMBEL(XTEMP2,TSYM,90.,1.5*CSIZE,6,DATE)
- ENDIF
- ENDIF
- RETURN
- END
+ CALL SYMBEL(XTEMP2,TSYM,90.,CSIZE,14,BUFF)
+ ELSE
+ TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
+ CALL SYMBEL(XTEMP2,TSYM,90.,90.,CSIZE,14,BUFF)
+ ENDIF
+
+ ENDIF
+ ENDIF
+
+ RETURN
+ END
diff --git a/ppl/plotlib/tayis1.F b/ppl/plotlib/tayis1.F
index 08c5fba..4fccb79 100644
--- a/ppl/plotlib/tayis1.F
+++ b/ppl/plotlib/tayis1.F
@@ -1,5 +1,5 @@
SUBROUTINE TAYIS1(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IDDB,IMDB,
- * TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline)
+ * TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline,color0)
*
*
@@ -55,6 +55,8 @@ C with "*(*)" for the linux port
C *acm* 03/04 new arguments and code for plotting graticule lines across plot.
C V65 *acm* 1/10 New time-axis style for DAY and MONTH, DMY: adds the
C year to DAY,MONTH or to MONTH.
+C V695 *acm* 5/15 Restore color after a graticule using defined color 0
+
C**
C** @(#)tayis1.f 1.1 3/10/88
C**
@@ -121,6 +123,7 @@ C
REAL dash2_1, dash2_2, dash2_3, dash2_4
REAL hgrat(4,2) ! line type: 0=tics only, <0=line, >0=dash lengths
INTEGER hcolor(*) ! pen number
+ INTEGER color0 ! pen number for axis
LOGICAL hline ! If true, do the lines across.
LOGICAL solid1, solid2 ! solid lines across at tics
LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -267,7 +270,7 @@ C LOOP:
CALL PLOT(x,T+FLOAT(I)*TDIST,0,0)
CALL PLOT(xacross,T+FLOAT(I)*TDIST,1,0)
CALL PLOT(x,T+FLOAT(I)*TDIST,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
@@ -286,7 +289,7 @@ C LOOP:
CALL PLOT(x,t+tic,0,0)
CALL PLOT(xacross,t+tic,1,0)
CALL PLOT(x,t+tic,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
ELSE
@@ -301,7 +304,7 @@ C LOOP:
CALL PLOT(x,t+tic,0,0)
CALL PLOT(xacross,t+tic,1,0)
CALL PLOT(x,t+tic,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
diff --git a/ppl/plotlib/tayis3.F b/ppl/plotlib/tayis3.F
index 1036a32..064ab4a 100644
--- a/ppl/plotlib/tayis3.F
+++ b/ppl/plotlib/tayis3.F
@@ -1,5 +1,5 @@
SUBROUTINE TAYIS3(TLO,ITIME1,ITIME2,DT,NDAY,LABEL,IMDB,IYDB,
- * TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline)
+ * TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline,color0)
*
*
@@ -58,6 +58,7 @@ C with "*(*)" for the linux port
C *acm* 03/04 new arguments and code for plotting graticule lines across plot.
C *acm* 3/10 Bug 670 fixed: New flag MULTICENFLAG for multi-decade plots,
C do not make small tics by default.
+C V695 *acm* 5/15 Restore color after a graticule using defined color 0
C**
@@ -126,6 +127,7 @@ C
REAL dash2_1, dash2_2, dash2_3, dash2_4
REAL hgrat(4,2) ! line type: 0=tics only, <0=line, >0=dash lengths
INTEGER hcolor(*) ! pen number
+ INTEGER color0 ! pen number for axis
LOGICAL hline ! If true, do the lines across.
LOGICAL solid1, solid2 ! solid lines across at tics
LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -307,7 +309,7 @@ C LOOP:
CALL PLOT(x,t+tic,0,0)
CALL PLOT(xacross,t+tic,1,0)
CALL PLOT(x,t+tic,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
ELSE
@@ -323,7 +325,7 @@ C LOOP:
CALL PLOT(x,t+tic,0,0)
CALL PLOT(xacross,t+tic,1,0)
CALL PLOT(x,t+tic,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
ENDIF
@@ -341,7 +343,7 @@ C LOOP:
CALL PLOT(x,t+tic,0,0)
CALL PLOT(xacross,t+tic,1,0)
CALL PLOT(x,t+tic,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
@@ -358,7 +360,7 @@ C LOOP:
CALL PLOT(x,t+tic,0,0)
CALL PLOT(xacross,t+tic,1,0)
CALL PLOT(x,t+tic,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
diff --git a/ppl/plotlib/xaxis1.F b/ppl/plotlib/xaxis1.F
index 2bfe7df..1fad8a5 100644
--- a/ppl/plotlib/xaxis1.F
+++ b/ppl/plotlib/xaxis1.F
@@ -1,6 +1,6 @@
SUBROUTINE XAXIS1(XLO,XHI,XTIC,NSMTCX,LINTX,XUNIT,LABEL,
* IFORMT,XFACT,Y,YFACT,CSIZE,yacross,xdms,vgrat,vcolor,
- * vline, xvaloff)
+ * vline, xvaloff, color0)
*
*
@@ -52,6 +52,8 @@ C *acm* 11/05 new argument to scinot deg/min/sec labels
C 1/06 xvaloff,yvaloff add this amount to each x or y axis label.
C (axis data was read as double precision and converted to single
C after applying an offset.)
+C V695 *acm* 5/15 Restore color after a graticule using defined color 0
+C V695 *acm* 5/15 for PyFerret draw lines and tics only once, avoiding overdrawing.
C**
C** @(#)xaxis1.f 1.1 3/10/88
@@ -71,6 +73,7 @@ C**
REAL yacross, dash1, dash2,dash3,dash4, xvaloff
REAL vgrat(4,2) ! line type: 0=tics only, <0=line, >0=dash lengths
INTEGER vcolor(*) ! pen number
+ INTEGER color0 ! pen number for axis
LOGICAL vline ! If true, do the lines across.
LOGICAL solid ! solid lines across at tics
LOGICAL dashed ! dashed lines across at tics
@@ -82,11 +85,9 @@ C**
* TMAP interrupt flag
-#ifdef unix
+
include 'xinterrupt.cmn'
-#else
- INCLUDE 'tmap_pplv11inc:tmap_xinterrupt.cmn'
-#endif
+
C THIS ROUTINE DRAWS AN X AXIS. IT LABELS THE AXIS BELOW
C IF LABEL=-1, ABOVE IF LABEL=1, AND NOT AT ALL
@@ -109,7 +110,7 @@ CCC THE FOLLOWING SECTION OF CODE MAKES THIS ROUTINE UPWARD COMPATIABLE.
ABSSZ=ABS(CSIZE)
SIGSZ=SIGN(1.,CSIZE)
C
-C DRAW AXIS
+C DRAW AXIS- here do not draw axis, just move the pen. Draw it at the end
C
DIR=SIGN(1.,XTIC)
XT=INT(XLO/XTIC+SIGN(0.000001,DIR*XLO))*XTIC
@@ -117,8 +118,8 @@ C
ISTOP=IFIX((XHI-XT)/XTIC+0.000001)
CALL PLOT(XT,Y,0,0)
CALL SMX1(XT,XLO,-XTIC,NSMTCX,XFACT,YFACT,Y,
- * yacross,vgrat,vcolor,vline)
- CALL PLOT(XLO,Y,1,0)
+ . yacross,vgrat,vcolor,vline)
+ CALL PLOT(XT,Y,1,0)
CALL PLOTT7(XT,Y,XFACT,YFACT,1,-8)
X=XT
@@ -146,13 +147,14 @@ C
CALL PLOT(X,Y,0,0)
CALL PLOT(X,yacross,1,0)
CALL PLOT(X,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
X=X+XTIC
CALL PLOTT7(X,Y,XFACT,YFACT,1,-8)
100 CONTINUE
+
CALL SMX1(X,XHI,XTIC,NSMTCX,XFACT,YFACT,Y,
* yacross,vgrat,vcolor,vline)
@@ -165,16 +167,17 @@ C
CALL PLOT(X,Y,0,0)
CALL PLOT(X,yacross,1,0)
CALL PLOT(X,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
+ CALL PLOT(XLO,Y,0,0)
CALL PLOT(XHI,Y,1,0)
C
C DRAW LABELS
C
- IF(LABEL.EQ.0)RETURN
+ IF(LABEL.EQ.0) RETURN
IF(LABEL+IX.EQ.0)THEN
YTEMP=0.0
ELSE
@@ -207,5 +210,6 @@ CC X=X+XTIC*LINTX
if (abs(x) .lt. epsilon*abs(x0)) x = 0.0
200 CONTINUE
+
RETURN
END
diff --git a/ppl/plotlib/xaxis2.F b/ppl/plotlib/xaxis2.F
index bf0f66d..edf03ba 100644
--- a/ppl/plotlib/xaxis2.F
+++ b/ppl/plotlib/xaxis2.F
@@ -1,5 +1,5 @@
SUBROUTINE XAXIS2(XLO,XHI,XUNIT,LABEL,IFORMT,IAXIS,
- * XFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline)
+ * XFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline,color0)
*
*
* This software was developed by the Thermal Modeling and Analysis
@@ -50,13 +50,12 @@ C with "*(*)" for the linux port
* *acm* - 6/01 changes to allow plot qualifiers to set log axes,
* inverse log axes and log depth axes.
-C**
-
+C V695 *acm* 5/15 Restore color after a graticule using defined color 0
+*
CHARACTER XLAB*20,IFORMT*(*),XFRMT*12
COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
COMMON/AXLWID/XWID,YWID
-
* Parameters for drawing tics across plot
REAL yacross
@@ -65,6 +64,7 @@ C**
REAL vgrat(4,2) ! line type: 0=tics only, <0=line, >0=dash lengths
REAL xt
INTEGER vcolor(*) ! pen number
+ INTEGER color0 ! pen number for axis
LOGICAL vline ! If true, do the lines across.
LOGICAL solid1, solid2 ! solid lines across at tics
LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -104,6 +104,7 @@ C
TXHI = TXLO
TXLO = SGN
ENDIF
+
C
C DRAW AXIS
C
@@ -156,7 +157,7 @@ C
CALL PLOT(xt,Y,0,0)
CALL PLOT(xt,yacross,1,0)
CALL PLOT(xt,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
@@ -173,7 +174,7 @@ C
CALL PLOT(xt,Y,0,0)
CALL PLOT(xt,yacross,1,0)
CALL PLOT(xt,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
@@ -199,7 +200,7 @@ C for DEPTH axes, X plot coordinates are reversed on page.
CALL PLOT(xt,Y,0,0)
CALL PLOT(xt,yacross,1,0)
CALL PLOT(xt,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
@@ -216,7 +217,7 @@ C for DEPTH axes, X plot coordinates are reversed on page.
CALL PLOT(xt,Y,0,0)
CALL PLOT(xt,yacross,1,0)
CALL PLOT(xt,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
diff --git a/ppl/plotlib/yaxis1.F b/ppl/plotlib/yaxis1.F
index c3586f8..1939f51 100644
--- a/ppl/plotlib/yaxis1.F
+++ b/ppl/plotlib/yaxis1.F
@@ -1,6 +1,6 @@
SUBROUTINE YAXIS1(X,XFACT,YLO,YHI,YTIC,NSMTCY,LINTY,YUNIT,LABEL,
* IFORMT,YFACT,CSIZE,xacross,ydms,hgrat,hcolor,hline,
- * yvaloff, noylab, SHRINKY)
+ * yvaloff, noylab, SHRINKY, color0)
*
*
@@ -54,8 +54,10 @@ C (axis data was read as double precision and converted to single
C after applying an offset.)
* 11/2011 ACM Fixing ticket 1896: When needed, reset the size of numerical axis
-* labes, so the labels dont run off the edge of the plot.
-
+* labels, so the labels dont run off the edge of the plot.
+C V695 *acm* 5/15 Restore color after a graticule using defined color 0
+C V695 *acm* 5/15 for PyFerret draw lines and tics only once, avoiding overdrawing.
+C V695 *acm* 10/15 Fix ticket 2320 - missing minor tic marks
C**
C** @(#)yaxis1.f 1.1 3/10/88
C**
@@ -73,6 +75,7 @@ C**
REAL xacross, dash1, dash2, dash3, dash4
REAL hgrat(4,2) ! line type: 0=tics only, <0=line, >0=dash lengths
INTEGER hcolor(*) ! pen number
+ INTEGER color0 ! pen number for axis
LOGICAL hline ! If true, do the lines across.
LOGICAL solid ! solid lines across at tics
LOGICAL dashed ! dashed lines across at tics
@@ -86,12 +89,7 @@ C**
parameter (epsilon = 1.e-6)
* TMAP interrupt flag
-#ifdef unix
include 'xinterrupt.cmn'
-#else
- INCLUDE 'tmap_pplv11inc:tmap_xinterrupt.cmn'
-#endif
-C
C
C THIS ROUTINE DRAWS A Y AXIS. IT LABELS THE AXIS ON THE LEFT
C IF LABEL=-1, ON THE RIGHT IF LABEL=1, AND NOT AT ALL
@@ -125,7 +123,7 @@ C
CALL PLOT(X,YT,0,0)
CALL SMY1(X,XFACT,YFACT,YT,YLO,-YTIC,NSMTCY,
. xacross,hgrat,hcolor,hline)
- CALL PLOT(X,YLO,1,0)
+ CALL PLOT(X,YT,1,0)
CALL PLOTT7(X,YT,XFACT,YFACT,1,-6)
Y=YT
@@ -144,7 +142,7 @@ C
DO 100 I=1,ISTOP
IF ( interrupted ) RETURN ! TMAP interrupt
CALL SMY1(X,XFACT,YFACT,Y,YHI,YTIC,NSMTCY,
- . xacross,hgrat,hcolor,hline)
+ . xacross,hgrat,hcolor,hline)
IF ((solid.OR.dashed) .AND. hline) THEN ! make line across
CALL COLOR(hcolor(1))
IF (dashed) THEN
@@ -154,11 +152,12 @@ C
CALL PLOT(X,Y,0,0)
CALL PLOT(xacross,Y,1,0)
CALL PLOT(X,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
Y=Y+YTIC
+ CALL PLOT(X,Y,0,0)
CALL PLOTT7(X,Y,XFACT,YFACT,1,-6)
100 CONTINUE
CALL SMY1(X,XFACT,YFACT,Y,YHI,YTIC,NSMTCY,
@@ -173,10 +172,12 @@ C
CALL PLOT(X,Y,0,0)
CALL PLOT(xacross,Y,1,0)
CALL PLOT(X,Y,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
+* Draw the axis line
+ CALL PLOT(X,YLO,0,0)
CALL PLOT(X,YHI,1,0)
C
@@ -289,6 +290,7 @@ CC Y=Y+YTIC*LINTY
IF (YDMS .GE. 2) ywidt = ywidt - symwid(abssz,1,'''')
YWID=YWID+YWIDT
ENDIF
+
RETURN
END
diff --git a/ppl/plotlib/yaxis2.F b/ppl/plotlib/yaxis2.F
index 1961f98..e3e5ccb 100644
--- a/ppl/plotlib/yaxis2.F
+++ b/ppl/plotlib/yaxis2.F
@@ -1,5 +1,5 @@
SUBROUTINE YAXIS2(X,XFACT,YLO,YHI,YUNIT,LABEL,IFORMT,IAXIS,
- * YFACT,CSIZE,xacross,hgrat,hcolor,hline)
+ * YFACT,CSIZE,xacross,hgrat,hcolor,hline,color0)
*
*
* This software was developed by the Thermal Modeling and Analysis
@@ -49,6 +49,7 @@ C *kob* 04/07/96 passed in character strings had to be declared
C with "*(*)" for the linux port
* *acm* - 6/01 changes to allow plot qualifiers to set log axes,
* inverse log axes and log depth axes.
+C V695 *acm* 5/15 Restore color after a graticule using defined color 0
CHARACTER YLAB*20,IFORMT*(*),YFRMT*12
COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
@@ -62,6 +63,7 @@ C with "*(*)" for the linux port
REAL hgrat(4,2) ! line type: 0=tics only, <0=line, >0=dash lengths
REAL yt
INTEGER hcolor(*) ! pen number
+ INTEGER color0 ! pen number for axis
LOGICAL hline ! If true, do the lines across.
LOGICAL solid1,solid2 ! solid lines across at large, small tics
LOGICAL dashed1, dashed2 ! dashed lines across at large, small tics
@@ -152,7 +154,7 @@ C
CALL PLOT(X,yt,0,0)
CALL PLOT(xacross,yt,1,0)
CALL PLOT(X,yt,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
@@ -170,7 +172,7 @@ C
CALL PLOT(X,yt,0,0)
CALL PLOT(xacross,yt,1,0)
CALL PLOT(X,yt,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
@@ -197,7 +199,7 @@ C for DEPTH axes, Y plot coordinates are reversed on page.
CALL PLOT(X,yt,0,0)
CALL PLOT(xacross,yt,1,0)
CALL PLOT(X,yt,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
@@ -214,7 +216,7 @@ C for DEPTH axes, Y plot coordinates are reversed on page.
CALL PLOT(X,yt,0,0)
CALL PLOT(xacross,yt,1,0)
CALL PLOT(X,yt3/2/2004,0,0)
- CALL COLOR(1)
+ CALL COLOR(color0)
CALL VECTRS
ENDIF
diff --git a/ppl/pplepic/fixtim.F b/ppl/pplepic/fixtim.F
index 47bdc2a..e36083f 100644
--- a/ppl/pplepic/fixtim.F
+++ b/ppl/pplepic/fixtim.F
@@ -14,6 +14,7 @@ c it1,it2 = input range of times in PLOT5's WHOI format (yyddmmhhmm)
c itype = PLOT5 axis type 0 even hours ending 00
c 1 even days ending 0000
c 3 even months ending 010000
+c 4 even minutes
c Output:
c itnew1,itnew2 = range of times which suit the input axis type and
c include the input range of times (yymmddhhmm)
@@ -100,6 +101,7 @@ cc 1 cdum, idum, itnew2, dt)
call time1 (1, it2(1:6)//'000000'//it2(13:14), iseq,
1 cdum, idum, itnew2, dt)
endif
+
else if (itype .eq. 0) then
cc itnew1=it1(1:8)//'00'//it1(11:14)
itnew1=it1(1:8)//'0000'//it1(13:14)
@@ -113,6 +115,18 @@ cc 1 cdum, idum, itnew2, dt)
call time1 (1, it2(1:8)//'0000'//it2(13:14), iseq,
1 cdum, idum, itnew2, dt)
endif
+
+ else if (itype .eq. 4) then
+ itnew1=it1(1:10)//'00'//it1(13:14)
+ if (it2(11:12) .eq. '00') then
+ itnew2=it2
+ else
+ dt=1.
+ iseq=2
+ call time1 (1, it2(1:10)//'00'//it2(13:14), iseq,
+ 1 cdum, idum, itnew2, dt)
+ endif
+
endif
return
end
diff --git a/ppl/symlib/parse.F b/ppl/symlib/parse.F
index d25580e..b1c965c 100644
--- a/ppl/symlib/parse.F
+++ b/ppl/symlib/parse.F
@@ -70,6 +70,7 @@ C with "*(*)" for the linux port
C * v552 *acm* 3/03 Longer strings: changes for multi-line labels
C v580 *acm* 8/04 Change use of 256 to buflen+1,
C where buflen is defined in cmndlen.inc
+C V693+ *sh* 2/15 Treat surrounding _DQ_ same as double quote characters
INCLUDE 'cmndlen.inc'
@@ -91,13 +92,27 @@ C
100 I=I+1
IF(I.GT.ILEN)RETURN
IF(LINE(I:I).EQ.' ')GOTO 100
- IF(LINE(I:I).EQ.'"')I=I+1
+ IF(LINE(I:I).EQ.'"')THEN
+ I=I+1
+ ELSEIF (LINE(I:I).EQ.'_'
+ . .AND. I+3 .LE. ILEN ) THEN
+ IF (LINE(I:I+3).EQ.'_DQ_') I=I+4
+ ENDIF
+C
+C get the label (argument)
+C
LAB=LINE(I:)
IST=I
N=ILEN-I+1
IF(LAB(N:N).EQ.'"')THEN
LAB(N:N)=' '
N=N-1
+ ELSEIF (LAB(N:N).EQ.'_'
+ . .AND. N-3 .GE.1 ) THEN
+ IF (LAB(N-3:N).EQ.'_DQ_') THEN
+ LAB(N-3:N) = ' '
+ N=N-4
+ ENDIF
ENDIF
RETURN
END
diff --git a/ppl/symlib/parsex.F b/ppl/symlib/parsex.F
index 72294c1..7aeef7d 100644
--- a/ppl/symlib/parsex.F
+++ b/ppl/symlib/parsex.F
@@ -75,6 +75,7 @@ C with "*(*)" for the linux port
C* v552 *acm* 3/03 Longer strings: changes for multi-line labels
* v580 *acm* 8/04 Change use of 256 to buflen+1,
* where buflen is defined in cmndlen.inc
+* V693+ *sh* 2/15 Allow _DQ_ to function like a double quote char
INCLUDE 'cmndlen.inc'
@@ -184,12 +185,27 @@ C
ENDIF
M=M-1
I=IOLD
- IF(LINE(I:I).EQ.'"')I=I+1
+
+ IF(LINE(I:I).EQ.'"')THEN
+ I=I+1
+ ELSEIF (LINE(I:I).EQ.'_'
+ . .AND. I+3 .LE. ILEN ) THEN
+ IF (LINE(I:I+3).EQ.'_DQ_') I=I+4
+ ENDIF
+C
+C get the label (argument)
+C
LABEL=LINE(I:)
N=ILEN-I+1
IF(LABEL(N:N).EQ.'"')THEN
LABEL(N:N)=' '
N=N-1
+ ELSEIF (LABEL(N:N).EQ.'_'
+ . .AND. N-3 .GE.1 ) THEN
+ IF (LABEL(N-3:N).EQ.'_DQ_') THEN
+ LABEL(N-3:N) = ' '
+ N=N-4
+ ENDIF
ENDIF
RETURN
END
diff --git a/ppl/symlib/setsym.F b/ppl/symlib/setsym.F
index 8028403..0845e1f 100644
--- a/ppl/symlib/setsym.F
+++ b/ppl/symlib/setsym.F
@@ -76,6 +76,7 @@ C with "*(*)" for the linux port
C* v552 *acm* 3/03 Longer strings: changes for multi-line labels
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* v695 9/15 *acm* write values to PPL* symbols using 6 digits not 4
CHARACTER LINE*(*),VALUE*2048,SYM*120,OPR*1,ARG(4)*120
@@ -282,7 +283,7 @@ C
ELSE
GOTO 120
ENDIF
- CALL PUTVAL(SYM,X,4,IER)
+ CALL PUTVAL(SYM,X,7,IER)
RETURN
ENDIF
120 CALL PUTSYM(SYM,VALUE,N,IER)
diff --git a/ppl/tmap_inc/century.cmn b/ppl/tmap_inc/century.cmn
index 36b247b..8b40617 100644
--- a/ppl/tmap_inc/century.cmn
+++ b/ppl/tmap_inc/century.cmn
@@ -4,7 +4,11 @@ C Common variables used in modifications to time axis labeling
C
C *acm* 3/10 Bug 670 fixed: New flag MULTICENFLAG for multi-decade plots,
C do not make small tics by default.
+* *acm* 1/15 V694 Changes to allow two time axes on plot (F-T)
- LOGICAL*4 cenflag, monyrlab, multicenflag
- COMMON/CENTURY/cenflag, monyrlab, multicenflag
+
+ LOGICAL*4 cenflag, monyrlab, multicenflag,
+ . cenflagb, monyrlabb, multicenflagb
+ COMMON/CENTURY/cenflag, monyrlab, multicenflag,
+ . cenflagb, monyrlabb, multicenflagb
diff --git a/ppl/tmap_inc/cont_inc.decl b/ppl/tmap_inc/cont_inc.decl
index f27cfa8..a79199d 100644
--- a/ppl/tmap_inc/cont_inc.decl
+++ b/ppl/tmap_inc/cont_inc.decl
@@ -9,7 +9,8 @@ c v581 *acm* 3/05 add flags for use of open levels (-INF) (INF)
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus
* *acm* 1/13/12 For DP Ferret/ SP Pplus: explicitly declare REALs
* as single-precision
-* v683 *acm* 9/12 ribbon plots: RIBBON_FAST flag for style of ribbon plots
+* V696 *acm* 6/15 Move ribbon_fast setting to lines_inc
+* V695 *acm* 8/15 integer-based levels
REAL*4 ZLEV,CANGLE
INTEGER LDIG,IVCOMP
@@ -23,6 +24,7 @@ c v581 *acm* 3/05 add flags for use of open levels (-INF) (INF)
INTEGER NLEV2
INTEGER NSIGC
INTEGER CONTOUR_FEWER
+ INTEGER intlev
* Following added 8.3.95 *jd*
LOGICAL*4 CENTERED,SET_DELTA,NEGINF,POSINF,CONT_KEY
@@ -34,7 +36,5 @@ c v581 *acm* 3/05 add flags for use of open levels (-INF) (INF)
. USE_HIST
REAL*4 LEV_STD,LEV_MEAN,LEV_MIN,LEV_MAX,LEV_HIST
-* For ribbon-plots: line plots colored-by a variable
- LOGICAL RIBBON_FAST
* requires: INCLUDE 'CONT.INC'
diff --git a/ppl/tmap_inc/gkplot.cmn b/ppl/tmap_inc/gkplot.cmn
new file mode 100644
index 0000000..4cb1a71
--- /dev/null
+++ b/ppl/tmap_inc/gkplot.cmn
@@ -0,0 +1,6 @@
+C Common block for GKPLOT routine under complot/gskmv.F
+ INTEGER maxpline, ipline
+ PARAMETER (maxpline=10000)
+ REAL xpline(maxpline),ypline(maxpline)
+ COMMON/GKPLOTCMN/ipline, xpline, ypline
+
diff --git a/ppl/tmap_inc/lines_inc.decl b/ppl/tmap_inc/lines_inc.decl
index 6a08372..af6f79f 100644
--- a/ppl/tmap_inc/lines_inc.decl
+++ b/ppl/tmap_inc/lines_inc.decl
@@ -4,6 +4,10 @@
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus
* *acm* 1/13/12 For DP Ferret/ SP Pplus: explicitly declare REALs
* as single-precision
+* v695 *acm* Move ribbon-fast control here
+* v696 *acm* gap_var to define seperate line segments on PLOT/VS plots
+* (LAS ticket 1597 and others)
+
INTEGER IMARK
REAL*4 HMARK
INTEGER ITYPE
@@ -18,4 +22,7 @@
INTEGER LLENG
INTEGER LNUM
INTEGER IWIND
+ INTEGER gap_var
+* For ribbon-plots: line plots colored-by a variable
+ LOGICAL RIBBON_FAST
* requires: INCLUDE 'PPLV11INC:LINES.INC'
diff --git a/ppl/tmapadds/pplmem.h b/ppl/tmap_inc/pplmem.h
similarity index 99%
rename from ppl/tmapadds/pplmem.h
rename to ppl/tmap_inc/pplmem.h
index bdb08d1..34d3a9b 100644
--- a/ppl/tmapadds/pplmem.h
+++ b/ppl/tmap_inc/pplmem.h
@@ -2,7 +2,7 @@
Declarations for routines that allow dynamic PPLUS memory buffer
9/18/01 *acm*
-/*
+*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -36,6 +36,7 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus
+*/
/* Easier way of handling FORTRAN calls with underscore/no underscore */
#ifndef FORTRAN
@@ -97,5 +98,5 @@ void FORTRAN(pplldv)( int *, float *, int *, int *, int *, int *,
void FORTRAN(save_ppl_memory_size)(int *);
void FORTRAN(get_ppl_memory_size)(int *);
-void reallo_ppl_memory( int * );
+void reallo_ppl_memory( int );
diff --git a/ppl/tmap_inc/pyfonts.cmn b/ppl/tmap_inc/pyfonts.cmn
new file mode 100644
index 0000000..ce78a3c
--- /dev/null
+++ b/ppl/tmap_inc/pyfonts.cmn
@@ -0,0 +1,41 @@
+* pyfonts.cmn
+
+* Common block used to declare information for pyFerret fonts
+* Ansley Manke PMEL/TMAP
+* Settings for general fonts, for groups of fonts:
+* Tic marks
+* Title
+* Logo
+* Horizontal axis label
+* Vertical axis label
+* Contour-line labels
+* Colorbar
+* pyfnt_ settings are for all text
+* pyf_ settings are for the groups. If the group has settings, pyf_set is .TRUE.
+*
+
+ INTEGER ngp
+ PARAMETER (ngp=9)
+
+ LOGICAL pyfont, pyf_set(ngp)
+ INTEGER pyfnt_under, pyfnt_italic, pyfnt_bold, pyfnt_isiz,
+ . pyf_italic(ngp), pyf_bold(ngp), pyf_isiz(ngp)
+ INTEGER ititl, ilogo, ihtics, ivtics, ihlab, ivlab, imove, icont, icbar
+ INTEGER igroup, fnt_all, logolab(3)
+
+ REAL*4 pyfnt_opq, pyfnt_rot,
+ . pyfnt_red, pyfnt_grn, pyfnt_blu,
+ . pyf_red(ngp), pyf_grn(ngp), pyf_blu(ngp)
+ CHARACTER*64 pyfnt_fontname, pyfnt_font_dflt
+ CHARACTER*64 pyf_fontname(ngp), pyf_font_dflt(ngp)
+ CHARACTER*8 pyf_group_names(ngp)
+
+ COMMON/pyfont_args/ pyfont, pyf_set, pyfnt_opq, pyfnt_rot, pyfnt_under,
+ . igroup, fnt_all, logolab, ititl, ilogo,
+ . ihtics, ivtics, ihlab, ivlab, imove, icont, icbar,
+ . pyfnt_italic, pyfnt_bold, pyfnt_isiz,
+ . pyf_italic, pyf_bold, pyf_isiz,
+ . pyfnt_red, pyfnt_grn, pyfnt_blu,
+ . pyf_red, pyf_grn, pyf_blu,
+ . pyfnt_fontname, pyfnt_font_dflt,
+ . pyf_fontname, pyf_font_dflt, pyf_group_names
diff --git a/ppl/tmap_inc/taxis_inc.decl b/ppl/tmap_inc/taxis_inc.decl
index 37a73d0..1f70f68 100644
--- a/ppl/tmap_inc/taxis_inc.decl
+++ b/ppl/tmap_inc/taxis_inc.decl
@@ -1,18 +1,38 @@
* TAXIS_INC.DECL - converted to Unix 2.26.91
* COMMON for PLOT+ with all variables declared
* created for TMAP usage by Steve Hankin 7/88
- REAL*4 TLO
- REAL*4 DT
- REAL*4 TCSIZE
+* *acm* 1/15 V694 Changes to allow two time axes on plot (F-T)
+* V695 *acm* 9/15 Changes for hour:min labeling on time axes
+
+ REAL TLO
+ REAL DT
+ REAL TCSIZE
INTEGER ITYPET
INTEGER NMTCT
INTEGER LABELT
INTEGER IFDB
INTEGER ISDB
INTEGER ITFLG
- REAL*4 VANG
+ REAL VANG
INTEGER IVFLG
INTEGER IAUTOT
INTEGER ITXTPE
INTEGER ITXLBP
+
+
+ REAL TLOb
+ REAL DTb
+ REAL TCSIZEb
+ INTEGER ITYPETb
+ INTEGER NMTCTb
+ INTEGER LABELTb
+ INTEGER IFDBb
+ INTEGER ISDBb
+ INTEGER ITFLGb
+ REAL VANGb
+ INTEGER IVFLGb
+ INTEGER IAUTOTb
+ INTEGER ITXTPEb
+ INTEGER ITXLBPb
+ INTEGER is_hours_axis
* requires: INCLUDE 'PPLV11INC:TAXIS.INC'
diff --git a/ppl/tmapadds/SOURCE_FILES b/ppl/tmapadds/SOURCE_FILES
index 0cdd0df..436e773 100644
--- a/ppl/tmapadds/SOURCE_FILES
+++ b/ppl/tmapadds/SOURCE_FILES
@@ -20,6 +20,7 @@ flush_buffered_fillpoly.F\
getlabfonts.F\
get_ndx.F\
get_pix.F\
+get_pyfont_settings.F\
get_user_coords.F\
get_world_coords.F\
hatch_fill_rep.F\
@@ -40,6 +41,7 @@ point_convert.F\
pplld_pts.F\
ppllocator.F\
pplp_ver_data.F\
+pyfont_block_data.F\
restore_saved_line_colors.F\
ribbon_missing.F\
save_line_color.F\
@@ -74,6 +76,7 @@ shade_sub.F\
strmar.F\
upnsquish.F\
use_linear_levels.F\
+user_to_inch.F\
vec_arrows.F\
whoi2bc.F\
ws_fill_rep.F\
@@ -89,5 +92,4 @@ pplldc_envelope.c\
pplldv_envelope.c\
pplldx_envelope.c\
pplld_pts_envelope.c\
-reallo_envelope.c\
-reallo_ppl_memory.c
+reallo_envelope.c
diff --git a/ppl/tmapadds/aline_sub.F b/ppl/tmapadds/aline_sub.F
index 45b91d9..85fd049 100644
--- a/ppl/tmapadds/aline_sub.F
+++ b/ppl/tmapadds/aline_sub.F
@@ -96,7 +96,6 @@ C KTYPE = 1 -XY 0 -Z 2-VECTOR
INCLUDE 'makedot.cmn' ! 10/01 *acm*
CALL COLOR(IPEN(0))
-! CALL SETAX(X,NXS,XF,YF,XL,YL,XH,YH,NMX,NMY,XTI,XTL)
oldx(1) = x(1)
x(1) = axmin
diff --git a/ppl/tmapadds/compute_mnstd.F b/ppl/tmapadds/compute_mnstd.F
index f373d1e..177630f 100644
--- a/ppl/tmapadds/compute_mnstd.F
+++ b/ppl/tmapadds/compute_mnstd.F
@@ -1,4 +1,4 @@
- SUBROUTINE compute_mnstd(z, badz, need_std, nsize, status)
+ SUBROUTINE compute_mnstd(z, badz, need_std, nsize, rbad, status)
*
*
@@ -44,6 +44,10 @@ C**
* so variance result is the same as other Ferret variance calculations
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus
* V69+ *acm* 7/14 ticket 2186: more-robust mean and std deviation if big outliers
+* v695 *acm* 9/15 ticket 2311: variance-based levels for constant variable. Also
+* improve accuracy of computation using real*4 bad-value sent in from
+* the Ferret side.
+
IMPLICIT NONE
include 'parampl5_dat.decl'
include 'PARAMPL5.DAT'
@@ -70,7 +74,9 @@ C**
REAL sum, dev, sumsq_dev, variance, tol_lo, tol_hi, zmean2
#endif
- REAL*8 x, xmean, sum2, sumc, variance_c, xdelta
+ LOGICAL TM_FPEQ_SNGL, zmax_test, zmin_test, ok
+ REAL zero, rbad
+ REAL*8 x, xmean, sum2, sumc, variance_c, xdelta, z_max_tol, z_min_tol
INTEGER i, n, n2
c Already have zmin, zmax
@@ -81,6 +87,31 @@ c Already have zmin, zmax
GOTO 5000
ENDIF
+c if min and max are equal, will use linear levels. No need to issue the warning.
+
+ if (zmin .EQ. zmax) THEN
+ zmean = zmin
+ zstd = 0
+ status = 0
+ GOTO 5000
+ ENDIF
+
+
+c Has the user set min or max levels to be used?
+c If so take those into account
+
+ zmax_test = .FALSE.
+ zmin_test = .FALSE.
+
+ IF (lev_max .NE. rbad) THEN
+ zmax_test = .TRUE.
+ z_max_tol = DBLE(lev_max)
+ ENDIF
+ IF (lev_min .NE. rbad) THEN
+ zmin_test = .TRUE.
+ z_min_tol = DBLE(lev_min)
+ ENDIF
+
c Compute data mean.
sum = 0.0
@@ -88,8 +119,13 @@ c Compute data mean.
DO 100 i = 1, nsize
x = z(i)
IF ( x .NE. badz) THEN
- sum = sum + Z(i)
- n = n + 1
+ ok = .TRUE.
+ IF (zmax_test .AND. x.GE.z_max_tol) ok = .FALSE.
+ IF (zmin_test .AND. x.LE.z_min_tol) ok = .FALSE.
+ IF (ok) THEN
+ sum = sum + z(i)
+ n = n + 1
+ ENDIF
ENDIF
100 CONTINUE
IF (n .EQ. 0) GOTO 5000
@@ -111,13 +147,18 @@ c Compute data mean.
sum2 = 0.D0
DO i = 1, nsize
- x = Z(i)
+ x = z(i)
IF ( x .NE. badz) THEN
- n = n + 1
- x = x - zmean
- xdelta = x - xmean
- xmean = xmean + xdelta/FLOAT(n)
- sum2 = sum2 + xdelta*(x - xmean) ! This expression uses the new value of mean
+ ok = .TRUE.
+ IF (zmax_test .AND. x.GE.z_max_tol) ok = .FALSE.
+ IF (zmin_test .AND. x.LE.z_min_tol) ok = .FALSE.
+ IF (ok) THEN
+ n = n + 1
+ x = x - zmean
+ xdelta = x - xmean
+ xmean = xmean + xdelta/FLOAT(n)
+ sum2 = sum2 + xdelta*(x - xmean) ! This expression uses the new value of mean
+ ENDIF
ENDIF
ENDDO
variance_c = sum2/FLOAT(n - 1)
@@ -134,9 +175,14 @@ c Recompute data mean.
n2 = 0
DO 200 i = 1, nsize
x = z(i)
- IF ( x.NE.badz .AND. x.GT.tol_lo .AND. x.LT.tol_hi) THEN
- sum = sum + Z(i)
- n2 = n2 + 1
+ IF ( x .NE. badz) THEN
+ ok = .TRUE.
+ IF (zmax_test .AND. x.GE.z_max_tol) ok = .FALSE.
+ IF (zmin_test .AND. x.LE.z_min_tol) ok = .FALSE.
+ IF (ok) THEN
+ sum = sum + z(i)
+ n2 = n2 + 1
+ ENDIF
ENDIF
200 CONTINUE
@@ -153,14 +199,19 @@ c Recompute data mean.
sum2 = 0.D0
DO i = 1, nsize
- x = Z(i)
- IF ( x.NE.badz .AND. x.GT.tol_lo .AND. x.LT.tol_hi) THEN
- n2 = n2 + 1
- x = x - zmean2
- xdelta = x - xmean
- xmean = xmean + xdelta/FLOAT(n2)
- sum2 = sum2 + xdelta*(x - xmean) ! This expression uses the new value of mean
- ENDIF
+ x = z(i)
+ IF ( x .NE. badz) THEN
+ ok = .TRUE.
+ IF (zmax_test .AND. x.GE.z_max_tol) ok = .FALSE.
+ IF (zmin_test .AND. x.LE.z_min_tol) ok = .FALSE.
+ IF (ok) THEN
+ n2 = n2 + 1
+ x = x - zmean2
+ xdelta = x - xmean
+ xmean = xmean + xdelta/FLOAT(n2)
+ sum2 = sum2 + xdelta*(x - xmean) ! This expression uses the new value of mean
+ ENDIF
+ ENDIF
ENDDO
IF (FLOAT(n2)/FLOAT(n) .GT. 0.9) THEN
@@ -177,10 +228,15 @@ c Once more.
n2 = 0
DO 300 i = 1, nsize
x = z(i)
- IF ( x.NE.badz .AND. x.GT.tol_lo .AND. x.LT.tol_hi) THEN
- sum = sum + Z(i)
- n2 = n2 + 1
- ENDIF
+ IF ( x .NE. badz) THEN
+ ok = .TRUE.
+ IF (zmax_test .AND. x.GE.z_max_tol) ok = .FALSE.
+ IF (zmin_test .AND. x.LE.z_min_tol) ok = .FALSE.
+ IF (ok) THEN
+ sum = sum + z(i)
+ n2 = n2 + 1
+ ENDIF
+ ENDIF
300 CONTINUE
IF (n2 .EQ. 0) GOTO 5000
#ifdef double_p
@@ -193,14 +249,19 @@ c Once more.
sum2 = 0.D0
DO i = 1, nsize
- x = Z(i)
- IF ( x.NE.badz .AND. x.GT.tol_lo .AND. x.LT.tol_hi) THEN
- n2 = n2 + 1
- x = x - zmean2
- xdelta = x - xmean
- xmean = xmean + xdelta/FLOAT(n2)
- sum2 = sum2 + xdelta*(x - xmean) ! This expression uses the new value of mean
- ENDIF
+ x = z(i)
+ IF ( x .NE. badz) THEN
+ ok = .TRUE.
+ IF (zmax_test .AND. x.GE.z_max_tol) ok = .FALSE.
+ IF (zmin_test .AND. x.LE.z_min_tol) ok = .FALSE.
+ IF (ok) THEN
+ n2 = n2 + 1
+ x = x - zmean2
+ xdelta = x - xmean
+ xmean = xmean + xdelta/FLOAT(n2)
+ sum2 = sum2 + xdelta*(x - xmean) ! This expression uses the new value of mean
+ ENDIF
+ ENDIF
ENDDO
IF (FLOAT(n2)/FLOAT(n) .GT. 0.9) THEN
@@ -216,8 +277,17 @@ c Once more.
* If user is resetting the mean, do that here
IF (centered) zmean = 0.
+* If the std came out as zero, use linear color levels
+ zero = 0.
+ IF (need_std .AND. TM_FPEQ_SNGL(zstd, zero)) GOTO 5010
+
5000 RETURN
5010 status = 0
+
+ CALL WARN(
+ . 'Could not compute Std Dev. Data too large or or not within 3 std of computed mean.')
+ CALL WARN('Using linear levels instead.')
+
RETURN
END
diff --git a/fer/utl/decrement_plot_grid.F b/ppl/tmapadds/get_pyfont_settings.F
old mode 100755
new mode 100644
similarity index 76%
copy from fer/utl/decrement_plot_grid.F
copy to ppl/tmapadds/get_pyfont_settings.F
index aa6c503..491d247
--- a/fer/utl/decrement_plot_grid.F
+++ b/ppl/tmapadds/get_pyfont_settings.F
@@ -1,5 +1,4 @@
- SUBROUTINE DECREMENT_PLOT_GRID
-
+ SUBROUTINE GET_PYFONT_SETTINGS(igr, fontname, red, grn, blu, italic, bold, isiz)
*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,19 +32,32 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
+ INCLUDE 'pyfonts.cmn'
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
-*
-* Decrement the grid use count which was bumped up, saving the grid used
-* in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
-
- include 'xbox_bounds.cmn'
+ INTEGER igr, italic, bold, isiz, status
+ REAL*4 red, blu, grn
+ CHARACTER*(*) fontname
- INTEGER grid
+ IF (igr.LT.fnt_all .OR. igr.GT.ngp) RETURN
- grid = bb_grid
- IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
- bb_grid_inccount = 0
+ IF (igr .EQ. fnt_all) THEN
+ fontname = pyfnt_fontname
+ italic = pyfnt_italic
+ bold = pyfnt_bold
+ red = pyfnt_red
+ blu = pyfnt_blu
+ grn = pyfnt_grn
+ isiz = pyfnt_isiz
+ ELSE
+ fontname = pyf_fontname(igr)
+ italic = pyf_italic(igr)
+ bold = pyf_bold(igr)
+ red = pyf_red(igr)
+ blu = pyf_blu(igr)
+ grn = pyf_grn(igr)
+ isiz = pyf_isiz(igr)
+ ENDIF
RETURN
END
+
diff --git a/ppl/tmapadds/key.F b/ppl/tmapadds/key.F
index b219982..91e23b9 100644
--- a/ppl/tmapadds/key.F
+++ b/ppl/tmapadds/key.F
@@ -114,6 +114,7 @@
* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
* For centered labels add a level to corresp to the upper bound of
* the top color on thecolorbar, excluding any upper inf triangle.
+* V6.95 *acm* 3/15 Changes for PyFerret fonts. Scoot the vertical color key over to the left.
IMPLICIT NONE
@@ -139,16 +140,18 @@
include 'gkscm2.cmn'
include 'gkspar.inc'
-
+ include 'pyfonts.cmn'
+
integer ndx,str_len,max_len,incr,lab_digits, nhi, ncount,
- . lab_add, nlab, i, kount, lev1, levn, nspace, shd_lev_hi
+ . lab_add, nlab, i, kount, lev1, levn, nspace, shd_lev_hi,
+ . ITYPEX_save, ITYPEY_save
real x_inc,y_inc,px(4),py(4),rem,kpx(5),kpy(5),flaty(5),flatx(5)
real xmaxx,ymaxx,vwidth,vheight,karht, ksiz_test
real xx,yy,xxx,yyy, xx1, xxn, xxlen
real kx_lo_def, kx_hi_def, ky_lo_def, ky_hi_def,
. val, del, x_inc_inf, y_inc_inf, frac, fixx, inc_min,
- . center_add
+ . center_add, ht_ann
real*8 val_n, val_last
character*12 text, TM_FMT_SNGL, TM_FMT_SNGL_DIGITS,
. txt_out, blanks
@@ -168,11 +171,24 @@
windof_hold = windof
windof = .false.
- cont_key_keep = cont_key
+* Save the axis ITYPE settings (log axes or not) so they aren'tn used for color key
+* label locations, which are linear. Will restore them at the end. See the
+* examples in bn_polygon_log.jnl
+
+ ITYPEX_save = ITYPEX
+ ITYPEY_save = ITYPEY
+ ITYPEX = 1
+ ITYPEY = 1
+
+* pyferret font settings
+ IF (pyfont .AND. pyf_set(icbar)) igroup = icbar
+ cont_key_keep = cont_key
center_add = 0.
if (center_key_labels) center_add = 0.5
+ incr = 0
+
* Decide whether to check for small numeric values in the key labels.
* If delta is large, we dont want 0.000005 to be labelled in an exponential
* format (it is zero with a bit of noise). But if all the numbers are
@@ -361,6 +377,7 @@ c IF ( no_lines ) cont_key = .TRUE.
ENDIF
ksiz_test = 0.06 * xcsize
+ IF (pyfont) ksiz_test = 0.06
IF (klab_size .NE. 0) THEN
IF (ABS(klab_size) .LT. ksiz_test) ksiz_test = ABS(klab_size)
ENDIF
@@ -372,6 +389,7 @@ c IF ( no_lines ) cont_key = .TRUE.
ENDIF
ksiz_test = 0.075 * xcsize
+ IF (pyfont) ksiz_test = 0.075
IF (klab_size .NE. 0) ksiz_test = ABS(klab_size)
kount = 0
DO WHILE (karht .LT. ksiz_test .AND. karht.GT.0. .AND. kount.LT.10)
@@ -387,8 +405,7 @@ c IF ( no_lines ) cont_key = .TRUE.
max_len = 0
val = zlev(lev1)
IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
-C text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
- text = TM_FMT_SNGL (val,lab_digits,klab_len+lab_add,str_len)
+ text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
if (max_len .lt. str_len) max_len = str_len
nhi = MAX(2,shd_levels+1)
@@ -409,22 +426,23 @@ C text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
kpy(1) = ky_hi
kpy(4) = ky_hi
ENDIF
+ ht_ann = 0.9*karht
IF ( (ndx.EQ.2) .AND. (annotate_key.EQ.1) .AND.
. (.NOT.neginf) ) CALL key_annotate
- . (kpx, kpy, lab_digits, karht, 1, 2)
+ . (kpx, kpy, lab_digits, ht_ann, 1, 2)
IF ( (ndx.EQ.nhi) .AND. (annotate_key.EQ.1) .AND.
. (.NOT.posinf) ) CALL key_annotate
- . (kpx, kpy, lab_digits, karht, 2, 2)
+ . (kpx, kpy, lab_digits, ht_ann, 2, 2)
IF (neginf .AND. (ndx .EQ. 2) ) THEN
CALL key_lo_inf_horz (kpx, kpy, ndx, x_inc_inf,
- . annotate_key, lab_digits, karht)
+ . annotate_key, lab_digits, ht_ann)
ELSE IF (posinf .AND. (ndx .EQ. nhi) ) THEN
CALL key_hi_inf_horz (kpx, kpy, ndx, x_inc_inf,
- . annotate_key, lab_digits, karht)
+ . annotate_key, lab_digits, ht_ann)
ELSE
@@ -441,8 +459,7 @@ C text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
IF (ndx .GE. lev1 .AND. ndx .LE. levn) THEN
val = zlev(ndx)
IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
-C text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
- text = TM_FMT_SNGL (val,lab_digits,klab_len+lab_add,str_len)
+ text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
if (max_len .lt. str_len) max_len = str_len
ENDIF
10 continue
@@ -459,8 +476,7 @@ C text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
val = zlev(ndx)
IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
-C text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
- text = TM_FMT_SNGL (val,lab_digits,klab_len+lab_add,str_len)
+ text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
IF (ndx .EQ. 1 .AND. neginf) text = " "
IF (ndx .EQ. shd_levels+1 .AND. posinf) text = " "
@@ -479,12 +495,12 @@ C text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
ENDIF
* FILL AND SHADE USE DIFFERENT COORD SYSTEMS -- *jd* 6.4.93
- if (makep .eq. 'SHADE' .or. makep .eq. 'FILLPOL' .OR.
- . makep .EQ. 'POLYGON' .or. makep .eq. 'RIBPLOT') then
- call point_convert (xx,yy,xxx,yyy)
- else if (makep .eq. 'FILL') then
+
+ if (makep .eq. 'FILL' .AND. .NOT.pyfont) THEN
xxx = xx
yyy = yy
+ else
+ call point_convert (xx,yy,xxx,yyy)
endif
call symbel (xxx,yyy,0.0,karht,str_len,text(1:str_len))
@@ -511,17 +527,18 @@ C text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
if (vwidth .le. xlen + xorg) goto 2000
rem = vwidth - (xlen + xorg)
- xmaxx = 0.25*xlen
+ xmaxx = 0.22*xlen
+
+ kx_lo_def = 1000.0 * (xorg + xlen + 0.17*min (rem,xmaxx))
+ kx_hi_def = 1000.0 * min (xorg + xlen + xmaxx,vwidth-0.1*rem)
- kx_lo_def = 1000.0 * (xorg + xlen + 0.2*min (rem,xmaxx))
- kx_hi_def = 1000.0 * min (xorg + xlen + xmaxx,vwidth-0.08*rem)
ky_lo_def = 1000.0 * yorg
ky_hi_def = 1000.0 * (yorg + ylen)
else
rem = width - (xlen + xorg)
- xmaxx = 0.25*xlen
- kx_lo_def = 1000.0 * (xorg + xlen + 0.2*min (rem,xmaxx))
- kx_hi_def = 1000.0 * min (xorg + xlen + xmaxx,width-0.08*rem)
+ xmaxx = 0.22*xlen
+ kx_lo_def = 1000.0 * (xorg + xlen + 0.17*min (rem,xmaxx))
+ kx_hi_def = 1000.0 * min (xorg + xlen + xmaxx,width-0.1*rem)
ky_lo_def = 1000.0 * yorg
ky_hi_def = 1000.0 * (yorg + ylen)
end if
@@ -596,7 +613,7 @@ c IF ( no_lines ) cont_key = .TRUE.
if (klab_incr .eq. 0) then
incr = (shd_levels/25) + 1
- IF (height/vheight .GT. 1.5) incr = 2*incr ! short plot, fewer labels
+ IF (height/vheight.GT.1.5 .AND. shd_levels.GT.4) incr = 2*incr ! short plot, fewer labels
else
incr = klab_incr
end if
@@ -633,26 +650,32 @@ c IF ( no_lines ) cont_key = .TRUE.
kpx(3) = kx_hi
ENDIF
- kpy(1) = ky_lo + real (ndx - 2) * y_inc
- kpy(2) = ky_lo + real (ndx - 2) * y_inc
+ IF (ndx .GT. 2) THEN
+ kpy(1) = kpy(3)
+ kpy(2) = kpy(4)
+ ELSE
+ kpy(1) = ky_lo + real (ndx - 2) * y_inc
+ kpy(2) = ky_lo + real (ndx - 2) * y_inc
+ ENDIF
kpy(3) = ky_lo + real (ndx - 1) * y_inc
kpy(4) = ky_lo + real (ndx - 1) * y_inc
+ ht_ann = 0.9*karht
IF ( (ndx.EQ.2) .AND. (annotate_key.EQ.1) .AND.
. (.NOT. neginf) ) CALL key_annotate
- . (kpx, kpy, lab_digits, karht, 1, 1)
+ . (kpx, kpy, lab_digits, ht_ann, 1, 1)
IF ( (ndx.EQ.nhi) .AND. (annotate_key.EQ.1) .AND.
. (.NOT. posinf) ) CALL key_annotate
- . (kpx, kpy, lab_digits, karht, 2, 1)
+ . (kpx, kpy, lab_digits, ht_ann, 2, 1)
IF (neginf .AND. (ndx .EQ. 2) ) THEN
CALL key_lo_inf_vert (kpx, kpy, ndx, y_inc_inf,
- . annotate_key, lab_digits, karht)
+ . annotate_key, lab_digits, ht_ann)
ELSE IF (posinf .AND. (ndx .EQ. nhi) ) THEN
CALL key_hi_inf_vert (kpx, kpy, ndx, y_inc_inf,
- . annotate_key, lab_digits, karht)
+ . annotate_key, lab_digits, ht_ann)
ELSE
@@ -719,13 +742,13 @@ c IF ( no_lines ) cont_key = .TRUE.
* FILL AND SHADE USE DIFFERENT COORD SYSTEMS -- *jd* 6.4.93
- if (makep .eq. 'SHADE' .or. makep .eq. 'FILLPOL' .OR.
- . makep .EQ. 'POLYGON' .or. makep .eq. 'RIBPLOT') then
- call point_convert (xx,yy,xxx,yyy)
- else if (makep .eq. 'FILL') then
+ if (makep .eq. 'FILL' .AND. .NOT.pyfont) THEN
xxx = xx
yyy = yy
+ else
+ call point_convert (xx,yy,xxx,yyy)
endif
+
call symbel (xxx,yyy,0.0,karht,str_len,txt_out(1:str_len))
1020 continue
@@ -738,5 +761,10 @@ c IF ( no_lines ) cont_key = .TRUE.
2000 windof = windof_hold
cont_key = cont_key_keep
+ IF (pyfont .AND. pyf_set(icbar)) igroup = fnt_all
+
+ ITYPEX = ITYPEX_save
+ ITYPEY = ITYPEY_save
+
return
end
diff --git a/ppl/tmapadds/line_key.F b/ppl/tmapadds/line_key.F
index 5c7d5cd..6d02d48 100644
--- a/ppl/tmapadds/line_key.F
+++ b/ppl/tmapadds/line_key.F
@@ -97,7 +97,6 @@ C KTYPE = 1 -XY 0 -Z 2-VECTOR
INCLUDE 'makedot.cmn' ! 10/01 *acm*
CALL COLOR(IPEN(0))
-! CALL SETAX(X,NXS,XF,YF,XL,YL,XH,YH,NMX,NMY,XTI,XTL)
oldx(1) = x(1)
x(1) = axmin
diff --git a/ppl/tmapadds/pplld_pts_envelope.c b/ppl/tmapadds/pplld_pts_envelope.c
index faaf31d..375afa0 100644
--- a/ppl/tmapadds/pplld_pts_envelope.c
+++ b/ppl/tmapadds/pplld_pts_envelope.c
@@ -74,7 +74,7 @@ void FORTRAN(pplld_pts_envelope)(int *npts,int *plot_mem_used)
FORTRAN(get_ppl_memory_size)(&pmemsize);
- if (*plot_mem_used > pmemsize) reallo_ppl_memory(plot_mem_used);
+ if (*plot_mem_used > pmemsize) reallo_ppl_memory(*plot_mem_used);
FORTRAN(pplld_pts) (npts, ppl_memory);
diff --git a/ppl/tmapadds/pplldc_envelope.c b/ppl/tmapadds/pplldc_envelope.c
index a8d3472..8489ab9 100644
--- a/ppl/tmapadds/pplldc_envelope.c
+++ b/ppl/tmapadds/pplldc_envelope.c
@@ -83,7 +83,7 @@ void FORTRAN(pplldc_envelope)(int *k, float *z, int *mx, int *my,int *imn, int *
FORTRAN(get_ppl_memory_size)(&pmemsize);
- if (*plot_mem_used > pmemsize) reallo_ppl_memory(plot_mem_used);
+ if (*plot_mem_used > pmemsize) reallo_ppl_memory(*plot_mem_used);
FORTRAN(pplldc) (k, z, mx, my, imn, imx, jmn, jmx, pi, pj, nx1, ny1,
xmin1, ymin1, dx1, dy1, ppl_memory);
diff --git a/ppl/tmapadds/pplldx_envelope.c b/ppl/tmapadds/pplldx_envelope.c
index e2502c0..ad64b7d 100644
--- a/ppl/tmapadds/pplldx_envelope.c
+++ b/ppl/tmapadds/pplldx_envelope.c
@@ -83,7 +83,7 @@ void FORTRAN(pplldx_envelope)(int *icode, float *xt, float *yt, int *npts,
FORTRAN(get_ppl_memory_size)(&pmemsize);
- if (*plot_mem_used > pmemsize) reallo_ppl_memory(plot_mem_used);
+ if (*plot_mem_used > pmemsize) reallo_ppl_memory(*plot_mem_used);
FORTRAN(pplldx) (icode, xt, yt, npts, tstrt, tref, xdt, ppl_memory);
diff --git a/ppl/tmapadds/pyfont_block_data.F b/ppl/tmapadds/pyfont_block_data.F
new file mode 100644
index 0000000..70efd45
--- /dev/null
+++ b/ppl/tmapadds/pyfont_block_data.F
@@ -0,0 +1,110 @@
+ BLOCK DATA pyfont_block_data
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+* Initialization of pyferret font arguments.
+* pyfont Flag: True for PyFerret true fonts, False to use Hershey fonts
+* pyfnt_fontname name of font
+* pyfnt_font_dflt default font for restoring
+* pyfnt_italic integer: 1=italic, 0=not
+* pyfnt_bold integer: 1=bold, 0=not
+* pyfnt_red
+* pyfnt_grn Real: percent Red, Green, Blue (range 0-100)
+* pyfnt_blu
+
+* These not implemented
+* pyfnt_under integer: 1=underscore, 0=not
+* pyfnt_opq Real: percent opacity (range 0-100)
+* pyfnt_rot Real: rotation angle
+
+ IMPLICIT NONE
+
+ INCLUDE 'pyfonts.cmn'
+ INTEGER i
+
+ DATA pyfont/.FALSE./
+ DATA igroup/0/
+ DATA fnt_all/0/
+
+* index in these structures for each grouping
+ DATA ititl/1/ ! title
+ DATA ilogo/2/ ! logo
+ DATA ihtics/3/ ! htics
+ DATA ivtics/4/ ! vtics
+ DATA ihlab/5/ ! hlab
+ DATA ivlab/6/ ! vlab
+ DATA imove/7/ ! moveable
+ DATA icont/8/ ! contour
+ DATA icbar/9/ ! cbar
+
+ DATA pyfnt_fontname / 'Hershey' / ! overall
+ DATA (pyf_fontname(i),i=1,ngp)/ ngp*'Hershey' /
+
+
+ DATA pyfnt_font_dflt / 'Hershey' / ! overall
+ DATA (pyf_font_dflt(i),i=1,ngp)/ ngp*'Hershey' /
+
+ DATA
+ . pyf_group_names(1) /'TITLE'/, ! title
+ . pyf_group_names(2) /'LOGO'/, ! logo
+ . pyf_group_names(3) /'HTICS'/, ! tics
+ . pyf_group_names(4) /'VTICS'/, ! tics
+ . pyf_group_names(5) /'HLAB'/, ! hlab
+ . pyf_group_names(6) /'VLAB'/, ! vlab
+ . pyf_group_names(7) /'MOVEAB'/, ! moveable labels
+ . pyf_group_names(8) /'CONTOUR'/, ! contour
+ . pyf_group_names(9) /'CBAR'/ ! cbar
+
+ DATA pyfnt_under/0/
+ DATA pyfnt_opq/1./
+ DATA pyfnt_rot/0./
+
+ DATA pyfnt_italic/0/
+ DATA pyfnt_bold/0/
+ DATA pyfnt_red/0./
+ DATA pyfnt_blu/0./
+ DATA pyfnt_grn/0./
+ DATA pyfnt_isiz/0/
+
+ DATA (pyf_italic(i), i=1,ngp)/ngp*0/
+ DATA (pyf_bold(i), i=1,ngp)/ngp*0/
+ DATA (pyf_red(i), i=1,ngp)/ngp*0./
+ DATA (pyf_grn(i), i=1,ngp)/ngp*0./
+ DATA (pyf_blu(i), i=1,ngp)/ngp*0./
+ DATA (pyf_isiz(i), i=1,ngp)/ngp*0/
+
+* Flag for groups that are set other than the main defaults
+
+ DATA (pyf_set(i), i=1,ngp)/ngp*.FALSE./
+
+ END
diff --git a/ppl/tmapadds/reallo_envelope.c b/ppl/tmapadds/reallo_envelope.c
index 02a7969..808c0e9 100644
--- a/ppl/tmapadds/reallo_envelope.c
+++ b/ppl/tmapadds/reallo_envelope.c
@@ -71,7 +71,7 @@ void FORTRAN(reallo_envelope)(int *plot_mem_used)
*/
FORTRAN(get_ppl_memory_size)(&pmemsize);
- if (*plot_mem_used > pmemsize) reallo_ppl_memory(plot_mem_used);
+ if (*plot_mem_used > pmemsize) reallo_ppl_memory(*plot_mem_used);
return;
}
diff --git a/ppl/tmapadds/reallo_ppl_memory.c b/ppl/tmapadds/reallo_ppl_memory.c
deleted file mode 100644
index 77089ea..0000000
--- a/ppl/tmapadds/reallo_ppl_memory.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
-* This software was developed by the Thermal Modeling and Analysis
-* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
-* hereafter referred to as NOAA/PMEL/TMAP.
-*
-* Access and use of this software shall impose the following
-* obligations and understandings on the user. The user is granted the
-* right, without any fee or cost, to use, copy, modify, alter, enhance
-* and distribute this software, and any derivative works thereof, and
-* its supporting documentation for any purpose whatsoever, provided
-* that this entire notice appears in all copies of the software,
-* derivative works and supporting documentation. Further, the user
-* agrees to credit NOAA/PMEL/TMAP in any publications that result from
-* the use of this software or in any product that includes this
-* software. The names TMAP, NOAA and/or PMEL, however, may not be used
-* in any advertising or publicity to endorse or promote any products
-* or commercial entity unless specific written permission is obtained
-* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
-* is not obligated to provide the user with any support, consulting,
-* training or assistance of any kind with regard to the use, operation
-* and performance of this software nor to provide the user with any
-* updates, revisions, new versions or "bug fixes".
-*
-* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
-* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY
-* SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
-*
-
-NOTE: Needs error checking to see that the realloc actually worked.
-
-* reallo_ppl_memory.c
-
- Enlarge the memory allocated to the PLOT+ buffer.
- Ferret v5.52 *acm* 6/5/04 fix typo in print statement
-*/
-
-#include <Python.h> /* make sure Python.h is first */
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "pplmem.h"
-
-/* The global pointer to PLOT+ memory is declared as extern here
- (Defined in fermain_c.c)
-*/
- extern float *ppl_memory;
-
-
-void reallo_ppl_memory(int *this_size)
-{
-
-/* local variable declaration */
- int current_size;
-
-/* allocate or reallocate PLOT+ memory buffer */
-
- FORTRAN(get_ppl_memory_size)(¤t_size);
-
-/* free the currently allocated memory */
- if (current_size != 0)
- free ( (void *) ppl_memory );
-/* allocate new ammount of memory */
- ppl_memory = (float *) malloc(sizeof(float) * *this_size );
-
-/* Check that the memory was allocated OK*/
-
- if ( ppl_memory == (float *)0 ) {
- printf("Unable to allocate the requested %d words of PLOT memory.\n",*this_size);
- exit(0);
- }
-/* save the size of what was allocated */
- FORTRAN(save_ppl_memory_size) (this_size);
-
- return;
-}
diff --git a/ppl/tmapadds/set_levels_shade_fill.F b/ppl/tmapadds/set_levels_shade_fill.F
index 2fb4da5..381e3b3 100644
--- a/ppl/tmapadds/set_levels_shade_fill.F
+++ b/ppl/tmapadds/set_levels_shade_fill.F
@@ -60,8 +60,8 @@
INTEGER status
* local declarations
- REAL dmin, dmax, dz, fm, znp, zmp, dzmax, del
- INTEGER i, m, jj
+ REAL dmin, dmax, dz, fm, znp, zmp, dzmax, del, zz
+ INTEGER i, m, jj, il
LOGICAL TM_FPEQ_SNGL
EXTERNAL range
@@ -121,6 +121,50 @@ C
endif
endif
+C INTEGER based levels
+ else if (intlev.EQ.1) then
+
+ znp = FLOOR(zmin)
+ zmp = CEILING(zmax)
+C
+C Set levels centered about zero if centered is .true.
+C
+ if (centered) then
+ if (abs(znp) .gt. abs(zmp)) then
+ zmp = -znp
+ else
+ znp = -zmp
+ endif
+ endif
+
+ dz = (zmp - znp)/nlev
+
+ if (dz.lt.1) then
+ dz = 1
+ i = 1
+ do il = znp,zmp+1
+ zlev(i) = FLOAT(il)
+ i = i+1
+ enddo
+ nlev2 = zmp-znp+2
+
+ else
+ dz = INT(dz)
+ zz = znp
+ i = 1
+ do while (zz.le. zmp)
+ zlev(i) = zz
+ zz = zz + dz
+ i = i+1
+ enddo
+ zlev(i) = zz
+ nlev2 = i
+ endif
+
+c Set THE MINIMUM AND MAXIMUM VALUE OF THE RANGE
+ znp = zlev(1)
+ zmp = zlev(nlev2)
+
else if (openlev) then
CALL set_open_levels
diff --git a/fer/utl/decrement_plot_grid.F b/ppl/tmapadds/user_to_inch.F
old mode 100755
new mode 100644
similarity index 79%
copy from fer/utl/decrement_plot_grid.F
copy to ppl/tmapadds/user_to_inch.F
index aa6c503..5bd6a7c
--- a/fer/utl/decrement_plot_grid.F
+++ b/ppl/tmapadds/user_to_inch.F
@@ -1,6 +1,6 @@
- SUBROUTINE DECREMENT_PLOT_GRID
-*
+ SUBROUTINE USER_TO_INCH (xu, yu, stx_inch, sty_inch)
+
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -33,19 +33,21 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
+* Ansley Manke 4/2015
+* convert user-units to inches, current plot-axis settings
-* Ansley Manke NOAA/PMEL/TMAP 2/10/2014
-*
-* Decrement the grid use count which was bumped up, saving the grid used
-* in a SHADE/SET, FILL/SET, CONTOUR/SET or WIRE/SET command. See ticket 883.
-
- include 'xbox_bounds.cmn'
+ include 'plt_inc.decl'
+ include 'PLT.INC'
+ include 'axis_inc.decl'
+ include 'AXIS.INC'
- INTEGER grid
+ REAL xu, yu, stx_inch, sty_inch
+ REAL stx_off, sty_off
- grid = bb_grid
- IF (bb_grid_inccount .GT. 0) CALL TM_DEALLO_DYN_GRID (grid)
- bb_grid_inccount = 0
+ stx_off = (XHI-XLO)/XLEN ! deg/inch
+ stx_inch = XORG+(XU-XLO)/stx_off ! loc, inches
+ sty_off = (YHI-YLO)/YLEN
+ sty_inch = YORG+(YU-YLO)/sty_off
- RETURN
+ 1000 RETURN
END
diff --git a/ppl/tmapadds/ws_line_spectrum.F b/ppl/tmapadds/ws_line_spectrum.F
index cac977e..4f6c955 100644
--- a/ppl/tmapadds/ws_line_spectrum.F
+++ b/ppl/tmapadds/ws_line_spectrum.F
@@ -38,6 +38,7 @@
* Routine to set up the line bundles for color-line plots
* PyFr *kms* 5/13 Add alpha channel (opaque)
* V691 *acm* 5/14 Fix when defining line bundles for a by-levels palette
+* V694 *acm* 5/15 Fix ticket 2292 line plot thickness and ribbon plots
IMPLICIT NONE
include 'pltcom_dat.decl'
@@ -73,11 +74,15 @@
integer max_pline, max_pmark, max_text, max_fill_area
integer max_pattern, max_color, error, ncolors
integer fktr, marktype, index, line_color_reserve,
- . icolr, nthick, status, usable_colors, ndx
+ . icolr, ndx, n1, n2, n3, slen,
+ . nthick, status, usable_colors
+ real thickness, dotsize, frac, r_val, g_val, b_val, a_val
- real thickness, dotsize, frac, r_val,g_val,b_val,a_val
CHARACTER*100 err_msg
+ CHARACTER*12 TM_FMT_SNGL, note
+ integer max_bundles
+ parameter (max_bundles = 250) ! matches MAX_BUNDL_TBL in xgks
*******************************************************************************
* WHAT IS AVAILABLE ON THIS WORKSTATION?
@@ -133,12 +138,47 @@
* Set line bundles
+* The low-index preserves line and thickness defintions for the standard line-plot colors.
nthick = 3
- low_index = MAX(num_line_colors* nthick + 2, lo_color_ndx(zwsid))
+ low_index = MAX(num_line_colors* nthick + 2, lo_color_ndx(zwsid))
+* GKS has a hard-wired MAX_BUNDL_TBL set at 250. This means we are
+* limited on number of colors drawn with thick lines.
ncolors = shd_levels
+ IF ((low_index+(nthick-1)*(ncolors+1)+ncolors) .GT. max_bundles) THEN
+
+ n3 = (low_index+(nthick-1)*(ncolors+1)+ncolors)
+ n2 = (low_index+(nthick-2)*(ncolors+1)+ncolors)
+ n1 = (low_index+(nthick-3)*(ncolors+1)+ncolors)
+
+ note = TM_FMT_SNGL (REAL(max_bundles), 12, 12, slen)
+
+ IF (n1. GT. max_bundles) THEN
+ CALL WARN ('Graphics limits settings to '//note(:slen)//
+ . ' line/thickness combinations plus existing spectrum colors')
+ note = TM_FMT_SNGL (REAL(ncolors), 12, 12, slen)
+ CALL WARN ('Cannot draw /THICK=1 lines with current number '//
+ . 'of color levels = '//note(:slen) )
+
+ ELSE IF (n2. GT. max_bundles) THEN
+ CALL WARN ('Graphics limits settings to '//note(:slen)//
+ . ' line/thickness combinations plus existing spectrum colors')
+ note = TM_FMT_SNGL (REAL(ncolors), 12, 12, slen)
+ CALL WARN ('Cannot draw /THICK=2 lines with current number '//
+ . 'of color levels = '//note(:slen)//'; THICK=1 will be ok' )
+
+ ELSE IF (n3. GT. max_bundles) THEN
+ CALL WARN ('Graphics limits settings to '//note(:slen)//
+ . ' line/thickness combinations plus existing spectrum colors')
+ note = TM_FMT_SNGL (REAL(ncolors), 12, 12, slen)
+ CALL WARN ('Cannot draw /THICK=3 lines with current number '//
+ . 'of color levels = '//note(:slen) //'; THICK=1 or 2 will be ok' )
+ ENDIF
+
+ ENDIF
+
if (rgb_mapping .eq. by_level) ncolors = ncl
do 20 j = 1, ncolors
do 10 fktr = 1,nthick ! thickness
diff --git a/pviewmod/__init__.py b/pviewmod/__init__.py
index 386f260..f8e2a42 100644
--- a/pviewmod/__init__.py
+++ b/pviewmod/__init__.py
@@ -1,6 +1,6 @@
'''
The PipedViewer class is used to create, send commands, and shutdown viewers
-in this module. Currently, the only known viewer types are "PipedViewerPQ"
+in this module. Currently, the only known viewer types are "PipedViewerPQ",
and "PipedImagerPQ".
This package was developed by the Thermal Modeling and Analysis Project
@@ -47,7 +47,6 @@ class PipedViewer(object):
else:
raise TypeError("Unknown viewer type %s" % str(viewertype))
self.__vprocess.start()
- self.__shutdown = False
def submitCommand(self, cmnd):
'''
@@ -64,10 +63,10 @@ class PipedViewer(object):
or None if there was no response in the allotted time.
'''
if self.__rspdrecvpipe.poll(timeout):
- response = self.__rspdrecvpipe.recv()
+ myresponse = self.__rspdrecvpipe.recv()
else:
- response = None
- return response
+ myresponse = None
+ return myresponse
def waitForViewerExit(self):
'''
@@ -219,14 +218,31 @@ if __name__ == "__main__":
"joinstyle":"round"} } )
drawcmnds.append( { "action":"endView" } )
drawcmnds.append( { "action":"show" } )
- drawcmnds.append( { "action":"exit" } )
+ testannotations = ( "The 1<sup>st</sup> CO<sub>2</sub> annotations line",
+ "Another line with <i>lengthy</i> details that should " + \
+ "wrap to a 2<sup>nd</sup> annotation line",
+ "<b>Final</b> annotation line" )
+
# Test each known viewer.
- for viewername in ( "PipedViewerPQ", ):
+ for viewername in ( "PipedViewerPQ", "PipedImagerPQ", "NoDisplayPQ" ):
print "Testing Viewer %s" % viewername
# create the viewer
pviewer = PipedViewer(viewername)
+ mydrawcmnds = drawcmnds[:]
+ mydrawcmnds.append( { "action":"save",
+ "filename":viewername + "_test.pdf",
+ "vectsize":{"width":7.0, "height":7.0},
+ "rastsize":{"width":750, "height":750},
+ "annotations":testannotations } )
+ mydrawcmnds.append( { "action":"save",
+ "filename":viewername + "_test.png",
+ "vectsize":{"width":7.0, "height":7.0},
+ "rastsize":{"width":750, "height":750},
+ "annotations":testannotations } )
+ mydrawcmnds.append( { "action":"exit" } )
+
# submit the commands, pausing after each "show" command
- for cmd in drawcmnds:
+ for cmd in mydrawcmnds:
print "Command: %s" % str(cmd)
pviewer.submitCommand(cmd)
response = pviewer.checkForResponse()
diff --git a/pviewmod/cmndhelperpq.py b/pviewmod/cmndhelperpq.py
index 3939dc0..889ed6e 100644
--- a/pviewmod/cmndhelperpq.py
+++ b/pviewmod/cmndhelperpq.py
@@ -354,8 +354,7 @@ class CmndHelperPQ(object):
path.addRect(-35.0, -35.0, 70.0, 70.0)
sympath = SymbolPath(path, False)
else:
- raise ValueError( self.tr( \
- "Unrecognized symbol '%1'").arg(str(symbol)) )
+ raise ValueError("Unrecognized symbol '%s'" % str(symbol))
# save and return the SymbolPath
self.__symbolpaths[symbol] = sympath
return sympath
@@ -413,16 +412,17 @@ class CmndHelperPQ(object):
"color": color name or 24-bit RGB integer value
(eg, 0xFF0088)
"alpha": alpha value from 0 (transparent) to 255 (opaque)
+ if viewer.ignoreAlpha True, this value is ignored
'''
colordata = colorinfo["color"]
mycolor = QColor(colordata)
if not mycolor.isValid():
- raise ValueError( self.__scene.tr( \
- "Invalid color '%1'").arg(str(colordata)) )
- try:
- mycolor.setAlpha(int(colorinfo["alpha"]))
- except KeyError:
- pass
+ raise ValueError("Invalid color '%s'" % str(colordata))
+ if not self.__viewer.ignoreAlpha():
+ try:
+ mycolor.setAlpha(int(colorinfo["alpha"]))
+ except KeyError:
+ pass
return mycolor
def computeARGB32PreMultInt(self, color):
@@ -431,17 +431,20 @@ class CmndHelperPQ(object):
of the given QColor.
'''
(redint, greenint, blueint, alphaint) = color.getRgb()
- # Multiply the RGB values by the alpha factor
- alphafactor = alphaint / 255.0
- redint = int( redint * alphafactor + 0.5 )
- if redint > alphaint:
- redint = alphaint
- greenint = int( greenint * alphafactor + 0.5 )
- if greenint > alphaint:
- greenint = alphaint
- blueint = int( blueint * alphafactor + 0.5 )
- if blueint > alphaint:
- blueint = alphaint
+ if self.__viewer.ignoreAlpha():
+ alphaint = 255
+ elif (alphaint < 255):
+ # Scale the RGB values by the alpha value
+ alphafactor = alphaint / 255.0
+ redint = int( redint * alphafactor + 0.5 )
+ if redint > alphaint:
+ redint = alphaint
+ greenint = int( greenint * alphafactor + 0.5 )
+ if greenint > alphaint:
+ greenint = alphaint
+ blueint = int( blueint * alphafactor + 0.5 )
+ if blueint > alphaint:
+ blueint = alphaint
fillint = ((alphaint * 256 + redint) * 256 + \
greenint) * 256 + blueint
return fillint
diff --git a/pviewmod/pipedimagerpq.py b/pviewmod/pipedimagerpq.py
index 52abdc8..1bac1af 100644
--- a/pviewmod/pipedimagerpq.py
+++ b/pviewmod/pipedimagerpq.py
@@ -69,8 +69,10 @@ class PipedImagerPQ(QMainWindow):
# when the image is defined
# initialize the width and height to values that will create
# a viewer (mainWindow) of the right size
- self.__scenewidth = int(10.5 * self.physicalDpiX())
- self.__sceneheight = int(8.5 * self.physicalDpiY())
+ self.__scenewidth = int(10.8 * self.physicalDpiX())
+ self.__sceneheight = int(8.8 * self.physicalDpiY())
+ # by default pay attention to any alpha channel values in colors
+ self.__noalpha = False
# initial default color for the background (opaque white)
self.__lastclearcolor = QColor(0xFFFFFF)
self.__lastclearcolor.setAlpha(0xFF)
@@ -99,27 +101,6 @@ class PipedImagerPQ(QMainWindow):
# command helper object
self.__helper = CmndHelperPQ(self)
# create the menubar
- self.createActions()
- self.createMenus()
- # set the initial size of the viewer
- self.__framedelta = 4
- mwwidth = self.__scenewidth + self.__framedelta
- mwheight = self.__sceneheight + self.__framedelta \
- + self.menuBar().height() \
- + self.statusBar().height()
- self.resize(mwwidth, mwheight)
- # check the command queue any time there are no window events to deal with
- self.__timer = QTimer(self)
- self.__timer.timeout.connect(self.checkCommandPipe)
- self.__timer.setInterval(0)
- self.__timer.start()
-
- def createActions(self):
- '''
- Create the actions used by the menus in this viewer. Ownership
- of the actions are not transferred in addAction, thus the need
- to maintain references here.
- '''
self.__scaleact = QAction(self.tr("&Scale"), self,
shortcut=self.tr("Ctrl+S"),
statusTip=self.tr("Scale the image (canvas and image change size)"),
@@ -141,6 +122,19 @@ class PipedImagerPQ(QMainWindow):
self.__exitact = QAction(self.tr("&Exit"), self,
statusTip=self.tr("Shut down the viewer"),
triggered=self.exitViewer)
+ self.createMenus()
+ # set the initial size of the viewer
+ self.__framedelta = 4
+ mwwidth = self.__scenewidth + self.__framedelta
+ mwheight = self.__sceneheight + self.__framedelta \
+ + self.menuBar().height() \
+ + self.statusBar().height()
+ self.resize(mwwidth, mwheight)
+ # check the command queue any time there are no window events to deal with
+ self.__timer = QTimer(self)
+ self.__timer.timeout.connect(self.checkCommandPipe)
+ self.__timer.setInterval(0)
+ self.__timer.start()
def createMenus(self):
'''
@@ -219,6 +213,12 @@ class PipedImagerPQ(QMainWindow):
def aboutQtMsg(self):
QMessageBox.aboutQt(self, self.tr("About Qt"))
+ def ignoreAlpha(self):
+ '''
+ Return whether the alpha channel in colors should always be ignored.
+ '''
+ return self.__noalpha
+
def updateScene(self):
'''
Clear the displayed scene using self.__lastclearcolor,
@@ -232,13 +232,13 @@ class PipedImagerPQ(QMainWindow):
newpixmap.fill(self.__lastclearcolor)
if self.__sceneimage != None:
# Draw the scaled image to the pixmap
- painter = QPainter(newpixmap)
+ mypainter = QPainter(newpixmap)
trgrect = QRectF(0.0, 0.0, float(labelwidth),
float(labelheight))
srcrect = QRectF(0.0, 0.0, float(self.__scenewidth),
float(self.__sceneheight))
- painter.drawImage(trgrect, self.__sceneimage, srcrect, Qt.AutoColor)
- painter.end()
+ mypainter.drawImage(trgrect, self.__sceneimage, srcrect, Qt.AutoColor)
+ mypainter.end()
# Assign the new pixmap to the label
self.__label.setPixmap(newpixmap)
# set the label size and values
@@ -259,7 +259,7 @@ class PipedImagerPQ(QMainWindow):
# get the color to use for clearing (the background color)
if bkgcolor:
if bkgcolor.isValid():
- self.__lastclearcolor = bkgcolor
+ self.__lastclearcolor = bkgcolor
# Remove the image and its bytearray
self.__sceneimage = None
self.__scenedata = None
@@ -273,7 +273,7 @@ class PipedImagerPQ(QMainWindow):
# get the background color
if bkgcolor:
if bkgcolor.isValid():
- self.__lastclearcolor = bkgcolor
+ self.__lastclearcolor = bkgcolor
# Update the scene label using the current clearing color and image
QApplication.setOverrideCursor(Qt.WaitCursor)
self.statusBar().showMessage( self.tr("Redrawing image") )
@@ -343,20 +343,19 @@ class PipedImagerPQ(QMainWindow):
if not self.__loadingimage:
# prepare for a new image data from subsequent calls
# get dimensions of the new image
- imgwidth = int( imageinfo["width"] )
- imgheight = int( imageinfo["height"] )
- imgstride = int( imageinfo["stride"] )
- if (imgwidth < self.__minsize) or (imgheight < self.__minsize):
- raise ValueError( self.tr("image width and height cannot be less than %1") \
- .arg(str(self.__minsize)) )
+ myimgwidth = int( imageinfo["width"] )
+ myimgheight = int( imageinfo["height"] )
+ myimgstride = int( imageinfo["stride"] )
+ if (myimgwidth < self.__minsize) or (myimgheight < self.__minsize):
+ raise ValueError("image width and height cannot be less than %s" % str(self.__minsize))
# Newer PyQt versions allow separate specification of the stride
- if imgstride != 4 * imgwidth:
- raise ValueError( self.tr("image stride is not four times the image width") )
+ if myimgstride != 4 * myimgwidth:
+ raise ValueError("image stride is not four times the image width")
# create the bytearray to contain the new scene data
# automatically initialized to zero
- self.__scenedata = bytearray(imgstride * imgheight)
- self.__scenewidth = imgwidth
- self.__sceneheight = imgheight
+ self.__scenedata = bytearray(myimgstride * myimgheight)
+ self.__scenewidth = myimgwidth
+ self.__sceneheight = myimgheight
# set the flag for subsequent calls to this method
self.__loadingimage = True
# change the cursor to warn the user this may take some time
@@ -365,31 +364,31 @@ class PipedImagerPQ(QMainWindow):
self.statusBar().showMessage( self.tr("Loading new image") )
return
# loading an image; add the next block of data
- blocknum = int( imageinfo["blocknum"] )
- numblocks = int( imageinfo["numblocks"] )
- startindex = int( imageinfo["startindex"] )
- blockdata = imageinfo["blockdata"]
- if (blocknum < 1) or (blocknum > numblocks):
+ myblocknum = int( imageinfo["blocknum"] )
+ mynumblocks = int( imageinfo["numblocks"] )
+ mystartindex = int( imageinfo["startindex"] )
+ myblockdata = imageinfo["blockdata"]
+ if (myblocknum < 1) or (myblocknum > mynumblocks):
self.statusBar().clearMessage()
QApplication.restoreOverrideCursor()
- raise ValueError( self.tr("invalid image data block number or number of blocks") )
- if (startindex < 0) or (startindex >= len(self.__scenedata)):
+ raise ValueError("invalid image data block number or number of blocks")
+ if (mystartindex < 0) or (mystartindex >= len(self.__scenedata)):
self.statusBar().clearMessage()
QApplication.restoreOverrideCursor()
- raise ValueError( self.tr("invalid start index for an image data block") )
- blocksize = len(blockdata)
- endindex = startindex + blocksize
- if (blocksize < 1) or (endindex > len(self.__scenedata)):
+ raise ValueError("invalid start index for an image data block")
+ myblocksize = len(myblockdata)
+ myendindex = mystartindex + myblocksize
+ if (myblocksize < 1) or (myendindex > len(self.__scenedata)):
self.statusBar().clearMessage()
QApplication.restoreOverrideCursor()
- raise ValueError( self.tr("invalid length of an image data block") )
+ raise ValueError("invalid length of an image data block")
# update the status message to show progress
self.statusBar().showMessage( self.tr("Loading new image (block %1 of %2)") \
- .arg(str(blocknum)).arg(str(numblocks)) )
+ .arg(str(myblocknum)).arg(str(mynumblocks)) )
# assign the data
- self.__scenedata[startindex:endindex] = blockdata
+ self.__scenedata[mystartindex:myendindex] = myblockdata
# if this is the last block of data, create and display the scene image
- if blocknum == numblocks:
+ if myblocknum == mynumblocks:
self.__loadingimage = False
self.statusBar().showMessage( self.tr("Creating new image") )
try:
@@ -553,8 +552,7 @@ class PipedImagerPQ(QMainWindow):
fileFormat = fmt
break
else:
- raise RuntimeError( self.tr("Unexpected file format name '%1'") \
- .arg(fileFilter) )
+ raise RuntimeError("Unexpected file format name '%s'" % fileFilter)
self.saveSceneToFile(fileName, fileFormat, None, None)
self.__lastfilename = fileName
self.__lastformat = fileFormat
@@ -605,7 +603,7 @@ class PipedImagerPQ(QMainWindow):
else:
imagewidth = int(self.__scenewidth * self.__scalefactor + 0.5)
imageheight = int(self.__sceneheight * self.__scalefactor + 0.5)
- image = QImage( QSize(imagewidth, imageheight),
+ myimage = QImage( QSize(imagewidth, imageheight),
QImage.Format_ARGB32_Premultiplied )
# Initialize the image
if not transparent:
@@ -613,17 +611,17 @@ class PipedImagerPQ(QMainWindow):
fillint = self.__helper.computeARGB32PreMultInt(self.__lastclearcolor)
else:
fillint = 0
- image.fill(fillint)
+ myimage.fill(fillint)
# draw the scaled scene to this QImage
- painter = QPainter(image)
+ mypainter = QPainter(myimage)
trgrect = QRectF(0.0, 0.0, float(imagewidth),
float(imageheight))
srcrect = QRectF(0.0, 0.0, float(self.__scenewidth),
float(self.__sceneheight))
- painter.drawImage(trgrect, self.__sceneimage, srcrect, Qt.AutoColor)
- painter.end()
+ mypainter.drawImage(trgrect, self.__sceneimage, srcrect, Qt.AutoColor)
+ mypainter.end()
# save the image to file
- image.save(myfilename, myformat)
+ myimage.save(myfilename, myformat)
finally:
self.statusBar().clearMessage()
QApplication.restoreOverrideCursor()
@@ -668,7 +666,7 @@ class PipedImagerPQ(QMainWindow):
try:
cmndact = cmnd["action"]
except KeyError:
- raise ValueError( self.tr("Unknown command %1").arg(str(cmnd)) )
+ raise ValueError("Unknown command %s" % str(cmnd))
if cmndact == "clear":
try:
@@ -713,18 +711,20 @@ class PipedImagerPQ(QMainWindow):
elif cmndact == "setTitle":
self.setWindowTitle(cmnd["title"])
elif cmndact == "imgname":
- value = cmnd.get("name", None)
- if value:
- self.__lastfilename = value;
- value = cmnd.get("format", None)
- if value:
- self.__lastformat = value.lower();
+ myvalue = cmnd.get("name", None)
+ if myvalue:
+ self.__lastfilename = myvalue
+ myvalue = cmnd.get("format", None)
+ if myvalue:
+ self.__lastformat = myvalue.lower()
elif cmndact == "show":
if self.isHidden():
self.showNormal()
+ elif cmndact == "noalpha":
+ # ignore any alpha channel values in colors
+ self.__noalpha = True
else:
- raise ValueError( self.tr("Unknown command action %1") \
- .arg(str(cmndact)) )
+ raise ValueError("Unknown command action %s" % str(cmndact))
class PipedImagerPQProcess(Process):
@@ -739,6 +739,8 @@ class PipedImagerPQProcess(Process):
Process.__init__(self)
self.__cmndpipe = cmndpipe
self.__rspdpipe = rspdpipe
+ self.__app = None
+ self.__viewer = None
def run(self):
'''
@@ -747,10 +749,10 @@ class PipedImagerPQProcess(Process):
'''
self.__app = QApplication(["PipedImagerPQ"])
self.__viewer = PipedImagerPQ(self.__cmndpipe, self.__rspdpipe)
- result = self.__app.exec_()
+ myresult = self.__app.exec_()
self.__cmndpipe.close()
self.__rspdpipe.close()
- SystemExit(result)
+ SystemExit(myresult)
#
@@ -808,7 +810,7 @@ if __name__ == "__main__":
(150, 250),
(100, 450) )
# start PyQt
- app = QApplication(["PipedImagerPQ"])
+ testapp = QApplication(["PipedImagerPQ"])
# create the list of commands to submit
drawcmnds = []
drawcmnds.append( { "action":"setTitle", "title":"Tester" } )
@@ -816,62 +818,62 @@ if __name__ == "__main__":
drawcmnds.append( { "action":"clear", "color":"black"} )
drawcmnds.append( { "action":"screenInfo"} )
# create the image to be displayed
- image = QImage(500, 500, QImage.Format_ARGB32_Premultiplied)
+ testimage = QImage(500, 500, QImage.Format_ARGB32_Premultiplied)
# initialize a black background
- image.fill(0xFF000000)
+ testimage.fill(0xFF000000)
# draw some things in the image
- painter = QPainter(image)
- painter.setBrush( QBrush(QColor(0, 255, 0, 128), Qt.SolidPattern) )
- painter.setPen( QPen(QBrush(QColor(255, 0, 0, 255), Qt.SolidPattern),
+ testpainter = QPainter(testimage)
+ testpainter.setBrush( QBrush(QColor(0, 255, 0, 128), Qt.SolidPattern) )
+ testpainter.setPen( QPen(QBrush(QColor(255, 0, 0, 255), Qt.SolidPattern),
5.0, Qt.SolidLine, Qt.SquareCap, Qt.MiterJoin) )
- painter.drawRect( QRectF(5.0, 255.0, 240.0, 240.0) )
- painter.setBrush( QBrush(QColor(0, 0, 255, 255), Qt.SolidPattern) )
- painter.setPen( QPen(QBrush(QColor(0, 0, 0, 255), Qt.SolidPattern),
+ testpainter.drawRect( QRectF(5.0, 255.0, 240.0, 240.0) )
+ testpainter.setBrush( QBrush(QColor(0, 0, 255, 255), Qt.SolidPattern) )
+ testpainter.setPen( QPen(QBrush(QColor(0, 0, 0, 255), Qt.SolidPattern),
5.0, Qt.DashLine, Qt.RoundCap, Qt.RoundJoin) )
- painter.drawPolygon( QPolygonF(
+ testpainter.drawPolygon( QPolygonF(
[ QPointF(.25 * ptx, .25 * pty + 250) for (ptx, pty) in pentagonpts ] ) )
- painter.setBrush( Qt.NoBrush )
- painter.setPen( QPen(QBrush(QColor(255, 255, 255, 255), Qt.SolidPattern),
+ testpainter.setBrush( Qt.NoBrush )
+ testpainter.setPen( QPen(QBrush(QColor(255, 255, 255, 255), Qt.SolidPattern),
3.0, Qt.DashLine, Qt.RoundCap, Qt.RoundJoin) )
- painter.drawPolyline( QPolygonF(
+ testpainter.drawPolyline( QPolygonF(
[ QPointF(pts, pty) for (pts, pty) in linepts ] ) )
- painter.end()
+ testpainter.end()
# add the image command
- imgwidth = image.width()
- imgheight = image.height()
- imgstride = image.bytesPerLine()
+ testimgwidth = testimage.width()
+ testimgheight = testimage.height()
+ testimgstride = testimage.bytesPerLine()
# not a good way to get the pixel data
- imgdata = bytearray(imgheight * imgstride)
+ testimgdata = bytearray(testimgheight * testimgstride)
k = 0
- for pty in xrange(imgheight):
- for ptx in xrange(imgwidth):
- pixval = image.pixel(ptx, pty)
+ for pty in xrange(testimgheight):
+ for ptx in xrange(testimgwidth):
+ pixval = testimage.pixel(ptx, pty)
(aval, rgbval) = divmod(pixval, 256 * 256 * 256)
(rval, gbval) = divmod(rgbval, 256 * 256)
(gval, bval) = divmod(gbval, 256)
- imgdata[k] = bval
+ testimgdata[k] = bval
k += 1
- imgdata[k] = gval
+ testimgdata[k] = gval
k += 1
- imgdata[k] = rval
+ testimgdata[k] = rval
k += 1
- imgdata[k] = aval
+ testimgdata[k] = aval
k += 1
- blocksize = 2000
- numblocks = (imgheight * imgstride + blocksize - 1) // blocksize
+ testblocksize = 2000
+ testnumblocks = (testimgheight * testimgstride + testblocksize - 1) // testblocksize
drawcmnds.append( { "action":"newImage",
- "width":imgwidth,
- "height":imgheight,
- "stride":imgstride } )
- for k in xrange(numblocks):
- if k < (numblocks - 1):
- blkdata = imgdata[k*blocksize:(k+1)*blocksize]
+ "width":testimgwidth,
+ "height":testimgheight,
+ "stride":testimgstride } )
+ for k in xrange(testnumblocks):
+ if k < (testnumblocks - 1):
+ blkdata = testimgdata[k*testblocksize:(k+1)*testblocksize]
else:
- blkdata = imgdata[k*blocksize:]
+ blkdata = testimgdata[k*testblocksize:]
drawcmnds.append( { "action":"newImage",
"blocknum":k+1,
- "numblocks":numblocks,
- "startindex":k*blocksize,
+ "numblocks":testnumblocks,
+ "startindex":k*testblocksize,
"blockdata":blkdata } )
# finish the command list
drawcmnds.append( { "action":"show" } )
@@ -879,13 +881,13 @@ if __name__ == "__main__":
# create a PipedImagerPQ in this process
cmndrecvpipe, cmndsendpipe = Pipe(False)
rspdrecvpipe, rspdsendpipe = Pipe(False)
- viewer = PipedImagerPQ(cmndrecvpipe, rspdsendpipe)
+ testviewer = PipedImagerPQ(cmndrecvpipe, rspdsendpipe)
# create a command submitter dialog
- tester = _CommandSubmitterPQ(viewer, cmndsendpipe,
+ tester = _CommandSubmitterPQ(testviewer, cmndsendpipe,
rspdrecvpipe, drawcmnds)
tester.show()
# let it all run
- result = app.exec_()
- if result != 0:
- sys.exit(result)
+ testresult = testapp.exec_()
+ if testresult != 0:
+ sys.exit(testresult)
diff --git a/pviewmod/pipedviewerpq.py b/pviewmod/pipedviewerpq.py
index d30d049..a22a358 100644
--- a/pviewmod/pipedviewerpq.py
+++ b/pviewmod/pipedviewerpq.py
@@ -22,10 +22,10 @@ except AttributeError:
from PyQt4.QtCore import Qt, QPointF, QRect, QRectF, QSize, QSizeF, \
QString, QTimer
from PyQt4.QtGui import QAction, QApplication, QBrush, QColor, QDialog, \
- QFileDialog, QFont, QImage, QLabel, QMainWindow, \
- QMessageBox, QPainter, QPalette, QPen, QPicture, \
- QPixmap, QPolygonF, QPrinter, QPushButton, \
- QScrollArea, QTextDocument
+ QFileDialog, QFontMetricsF, QImage, QLabel, \
+ QMainWindow, QMessageBox, QPainter, QPalette, \
+ QPen, QPicture, QPixmap, QPolygonF, QPrinter, \
+ QPushButton, QScrollArea, QTextDocument
try:
from PyQt4.QtSvg import QSvgGenerator
@@ -74,10 +74,13 @@ class PipedViewerPQ(QMainWindow):
# ignore Ctrl-C
signal.signal(signal.SIGINT, signal.SIG_IGN)
# default scene size
- self.__scenewidth = int(10.5 * self.physicalDpiX())
- self.__sceneheight = int(8.5 * self.physicalDpiY())
+ self.__scenewidth = int(10.8 * self.physicalDpiX())
+ self.__sceneheight = int(8.8 * self.physicalDpiY())
# scaling factor for line widths and symbol sizes
- self.setWidthScalingFactor(0.75)
+ self.__widthfactor = None
+ self.setWidthScalingFactor(0.72)
+ # by default pay attention to any alpha channel values in colors
+ self.__noalpha = False
# initial default color for the background (opaque white)
self.__lastclearcolor = QColor(0xFFFFFF)
self.__lastclearcolor.setAlpha(0xFF)
@@ -130,27 +133,6 @@ class PipedViewerPQ(QMainWindow):
# command helper object
self.__helper = CmndHelperPQ(self)
# Create the menubar
- self.createActions()
- self.createMenus()
- # Set the initial size of the viewer
- self.__framedelta = 4
- mwwidth = self.__scenewidth + self.__framedelta
- mwheight = self.__sceneheight + self.__framedelta \
- + self.menuBar().height() \
- + self.statusBar().height()
- self.resize(mwwidth, mwheight)
- # check the command queue any time there are no window events to deal with
- self.__timer = QTimer(self)
- self.__timer.timeout.connect(self.checkCommandPipe)
- self.__timer.setInterval(0)
- self.__timer.start()
-
- def createActions(self):
- '''
- Create the actions used by the menus in this viewer. Ownership
- of the actions are not transferred in addAction, thus the need
- to maintain references here.
- '''
self.__scaleact = QAction(self.tr("&Scale"), self,
shortcut=self.tr("Ctrl+S"),
statusTip=self.tr("Scale the image (canvas and image change size)"),
@@ -172,6 +154,19 @@ class PipedViewerPQ(QMainWindow):
self.__exitact = QAction(self.tr("&Exit"), self,
statusTip=self.tr("Shut down the viewer"),
triggered=self.exitViewer)
+ self.createMenus()
+ # Set the initial size of the viewer
+ self.__framedelta = 4
+ mwwidth = self.__scenewidth + self.__framedelta
+ mwheight = self.__sceneheight + self.__framedelta \
+ + self.menuBar().height() \
+ + self.statusBar().height()
+ self.resize(mwwidth, mwheight)
+ # check the command queue any time there are no window events to deal with
+ self.__timer = QTimer(self)
+ self.__timer.timeout.connect(self.checkCommandPipe)
+ self.__timer.setInterval(0)
+ self.__timer.start()
def createMenus(self):
'''
@@ -259,6 +254,12 @@ class PipedViewerPQ(QMainWindow):
def aboutQtMsg(self):
QMessageBox.aboutQt(self, self.tr("About Qt"))
+ def ignoreAlpha(self):
+ '''
+ Return whether the alpha channel in colors should always be ignored.
+ '''
+ return self.__noalpha
+
def paintScene(self, painter, first, leftx, uppery, scalefactor,
statusmsg, returnregion):
'''
@@ -355,7 +356,10 @@ class PipedViewerPQ(QMainWindow):
wascleared = True
elif len(self.__viewpics) > self.__lastpicdrawn:
# New pictures to add to an existing scene
- wascleared = False
+ # wascleared = False
+ # Rectangles of modified regins incorrect for drawText
+ # so always update the entire scene
+ wascleared = True
else:
# Nothing changed so just return
return
@@ -624,15 +628,14 @@ class PipedViewerPQ(QMainWindow):
fileFormat = fmt
break
else:
- raise RuntimeError( self.tr("Unexpected file format name '%1'") \
- .arg(fileFilter) )
+ raise RuntimeError("Unexpected file format name '%s'" % fileFilter)
self.saveSceneToFile(fileName, fileFormat, None,
None, None, None)
self.__lastfilename = fileName
self.__lastformat = fileFormat
def saveSceneToFile(self, filename, imageformat, transparent,
- vectsize, rastsize, annotations):
+ vectsize, rastsize, myannotations):
'''
Save the current scene to the named file. If imageformat
is empty or None, the format is guessed from the filename
@@ -651,7 +654,7 @@ class PipedViewerPQ(QMainWindow):
image. If rastsize is not given, a raster image will be
saved at the current displayed scaled image size.
- If annotations is not None, the strings given in the tuple
+ If myannotations is not None, the strings given in the tuple
are to be displayed above the image. These annotations add
height, as needed, to the saved image (i.e., vectsize or
rastsize gives the height of the image below these annotations).
@@ -700,16 +703,15 @@ class PipedViewerPQ(QMainWindow):
# The RHEL5 distribution of Qt4 does not have a QSvgGenerator
if (not HAS_QSvgGenerator) and (myformat == 'svg'):
- raise ValueError( self.tr("Your version of Qt does not " \
- "support generation of SVG files") )
+ raise ValueError("Your version of Qt does not support generation of SVG files")
- if annotations:
+ if myannotations:
annopicture = QPicture()
annopainter = QPainter(annopicture)
annotextdoc = QTextDocument()
# Leave room for the added margins to the width
annotextdoc.setTextWidth(self.__scenewidth - 2.0 * self.__addedannomargin)
- annotextdoc.setHtml("<p>" + "<br />".join(annotations) + "</p>")
+ annotextdoc.setHtml("<p>" + "<br />".join(myannotations) + "</p>")
annotextdoc.drawContents(annopainter)
annopainter.end()
annosize = annotextdoc.documentLayout().documentSize()
@@ -955,7 +957,7 @@ class PipedViewerPQ(QMainWindow):
try:
cmndact = cmnd["action"]
except KeyError:
- raise ValueError( self.tr("Unknown command %1").arg(str(cmnd)) )
+ raise ValueError("Unknown command '%s'" % str(cmnd))
if cmndact == "clear":
try:
@@ -996,26 +998,31 @@ class PipedViewerPQ(QMainWindow):
transparent = cmnd.get("transparent", False)
vectsize = self.__helper.getSizeFromCmnd(cmnd["vectsize"])
rastsize = self.__helper.getSizeFromCmnd(cmnd["rastsize"])
- annotations = cmnd["annotations"]
+ try:
+ myannotations = cmnd["annotations"]
+ except KeyError:
+ myannotations = None
self.saveSceneToFile(filename, fileformat, transparent,
- vectsize, rastsize, annotations)
+ vectsize, rastsize, myannotations)
elif cmndact == "setWidthFactor":
newfactor = float(cmnd.get("factor", -1.0))
if newfactor <= 0.0:
- raise ValueError( self.tr("Invalid width factor") )
+ raise ValueError("Invalid width factor")
self.setWidthScalingFactor(newfactor)
elif cmndact == "setTitle":
self.setWindowTitle(cmnd["title"])
elif cmndact == "imgname":
value = cmnd.get("name", None)
if value:
- self.__lastfilename = value;
+ self.__lastfilename = value
value = cmnd.get("format", None)
if value:
- self.__lastformat = value.lower();
+ self.__lastformat = value.lower()
elif cmndact == "show":
if self.isHidden():
self.showNormal()
+ elif cmndact == "noalpha":
+ self.__noalpha = True
elif cmndact == "beginView":
self.beginView(cmnd)
elif cmndact == "clipView":
@@ -1036,11 +1043,13 @@ class PipedViewerPQ(QMainWindow):
self.drawPolygon(cmnd)
elif cmndact == "drawRectangle":
self.drawRectangle(cmnd)
+ elif cmndact == "textSize":
+ info = self.getSimpleTextSize(cmnd)
+ self.__rspdpipe.send(info)
elif cmndact == "drawText":
self.drawSimpleText(cmnd)
else:
- raise ValueError( self.tr("Unknown command action %1") \
- .arg(str(cmndact)) )
+ raise ValueError("Unknown command action %s" % str(cmndact))
def beginView(self, cmnd):
'''
@@ -1089,13 +1098,13 @@ class PipedViewerPQ(QMainWindow):
# perform the checks after turning into units of pixels
# to make sure the values are significantly different
if (0.0 > leftpixel) or (leftpixel >= rightpixel) or (rightpixel > width):
- raise ValueError( self.tr("Invalid left, right view fractions: " \
- "left in pixels = %1, right in pixels = %2") \
- .arg(str(leftpixel)).arg(str(rightpixel)) )
+ raise ValueError("Invalid left, right view fractions: " \
+ "left in pixels = %s, right in pixels = %s" \
+ % (str(leftpixel), str(rightpixel)) )
if (0.0 > toppixel) or (toppixel >= bottompixel) or (bottompixel > height):
- raise ValueError( self.tr("Invalid bottom, top view fractions: " \
- "top in pixels = %1, bottom in pixels = %2") \
- .arg(str(toppixel)).arg(str(bottompixel)) )
+ raise ValueError("Invalid bottom, top view fractions: " \
+ "top in pixels = %s, bottom in pixels = %s" \
+ % (str(toppixel), str(bottompixel)) )
# Create the view rectangle in device coordinates
vrectf = QRectF(leftpixel, toppixel,
rightpixel - leftpixel, bottompixel - toppixel)
@@ -1329,9 +1338,10 @@ class PipedViewerPQ(QMainWindow):
mypen = self.__helper.getPenFromCmnd(cmnd["outline"])
except KeyError:
if ( mybrush == Qt.NoBrush ):
- raise ValueError( self.tr('drawPolygon called without a Brush or Pen') )
+ raise ValueError('drawPolygon called without a Brush or Pen')
# Use a "cosmetic" Pen matching the brush
- mypen = QPen(mybrush, 1.0, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
+ # mypen = QPen(mybrush, 0.0, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
+ mypen = Qt.NoPen
self.__activepainter.setBrush(mybrush)
self.__activepainter.setPen(mypen)
self.__activepainter.drawPolygon(mypolygon)
@@ -1384,9 +1394,10 @@ class PipedViewerPQ(QMainWindow):
mypen = self.__helper.getPenFromCmnd(cmnd["outline"])
except KeyError:
if ( mybrush == Qt.NoBrush ):
- raise ValueError( self.tr('drawPolygon called without a Brush or Pen') )
+ raise ValueError('drawPolygon called without a Brush or Pen')
# Use a "cosmetic" Pen matching the brush
- mypen = QPen(mybrush, 1.0, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
+ # mypen = QPen(mybrush, 1.0, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
+ mypen = Qt.NoPen
self.__activepainter.setBrush(mybrush)
self.__activepainter.setPen(mypen)
self.__activepainter.drawRect(myrect)
@@ -1395,13 +1406,41 @@ class PipedViewerPQ(QMainWindow):
if self.__drawcount >= self.__maxdraws:
self.updateScene()
+ def getSimpleTextSize(self, cmnd):
+ '''
+ Returns the pair (width, height) for given text when drawn.
+ Raises a KeyError if the "text" key is not given.
+
+ The width value is the width for the text that can be used
+ for positioning the next text item to draw. The height
+ value is the ascent plus decent for the font and does not
+ depend of the text. The bounding rectangle for the actual
+ drawn text may exceed this (width, height) if,
+ e.g., italic or unusual characters.
+
+ Recognized keys from cmnd:
+ "text": string to displayed
+ "font": dictionary describing the font to use; see
+ CmndHelperPQ.getFontFromCmnd. If not given
+ the default font for this viewer is used.
+ '''
+ try:
+ myfont = self.__helper.getFontFromCmnd(cmnd["font"])
+ except KeyError:
+ myfont = self.__activepainter.font()
+ myfontmetrics = QFontMetricsF(myfont)
+ mytext = cmnd["text"]
+ width = myfontmetrics.width(QString.fromUtf8(mytext))
+ height = myfontmetrics.height()
+ return (width, height)
+
def drawSimpleText(self, cmnd):
'''
Draws a "simple" text item in the current view.
Raises a KeyError if the "text" or "location" key is not given.
Recognized keys from cmnd:
- "text": string to displayed
+ "text": null-terminated UTF-8 encoded string to be displayed
"font": dictionary describing the font to use; see
CmndHelperPQ.getFontFromCmnd. If not given
the default font for this viewer is used.
@@ -1440,7 +1479,7 @@ class PipedViewerPQ(QMainWindow):
self.__activepainter.rotate(rotdeg)
except KeyError:
pass
- self.__activepainter.drawText(0, 0, mytext)
+ self.__activepainter.drawText(0, 0, QString.fromUtf8(mytext))
self.__drawcount += 1
finally:
# return the painter to the default state
@@ -1479,6 +1518,8 @@ class PipedViewerPQProcess(Process):
Process.__init__(self)
self.__cmndpipe = cmndpipe
self.__rspdpipe = rspdpipe
+ self.__app = None
+ self.__viewer = None
def run(self):
'''
@@ -1487,10 +1528,10 @@ class PipedViewerPQProcess(Process):
'''
self.__app = QApplication(["PipedViewerPQ"])
self.__viewer = PipedViewerPQ(self.__cmndpipe, self.__rspdpipe)
- result = self.__app.exec_()
+ myresult = self.__app.exec_()
self.__cmndpipe.close()
self.__rspdpipe.close()
- SystemExit(result)
+ SystemExit(myresult)
#
@@ -1588,6 +1629,9 @@ if __name__ == "__main__":
"font":{"family":"Times", "size":16},
"fill":{"color":"red"},
"location":(50,330) } )
+ drawcmnds.append( { "action":"textSize",
+ "text":"This is a some line of text",
+ "font":{"family":"Times", "size":16} } )
drawcmnds.append( { "action":"endSegment" } )
drawcmnds.append( { "action":"endView" } )
drawcmnds.append( { "action":"show" } )
diff --git a/pviewmod/pyferretbindings.py b/pviewmod/pyferretbindings.py
index db29adf..4643a4c 100644
--- a/pviewmod/pyferretbindings.py
+++ b/pviewmod/pyferretbindings.py
@@ -35,7 +35,7 @@ class PyFerretBindings(AbstractPyFerretBindings):
super(PyFerretBindings, self).__init__()
self.__window = None
- def createPipedViewerWindow(self, viewertype, title, visible):
+ def createPipedViewerWindow(self, viewertype, title, visible, noalpha):
'''
Creates a PipedViewer of viewertype as the window of this
instance of the bindings.
@@ -44,6 +44,7 @@ class PyFerretBindings(AbstractPyFerretBindings):
viewertype: type of PipedViewer to use
title: display title for the Window
visible: display Window on start-up?
+ noalpha: do not use the alpha channel in colors?
Raises a RuntimeError if an active window is already associated
with these bindings, or if there were problems with creating
@@ -59,6 +60,8 @@ class PyFerretBindings(AbstractPyFerretBindings):
"title":str(title) } )
if visible:
self.__window.submitCommand( {"action":"show"} )
+ if noalpha:
+ self.__window.submitCommand( {"action":"noalpha"} )
self.checkForErrorResponse()
return True
@@ -720,6 +723,48 @@ class PyFerretBindings(AbstractPyFerretBindings):
self.__window.submitCommand(cmnd)
self.checkForErrorResponse()
+ def textSize(self, text, font):
+ '''
+ Returns the width and height of the text if drawn in the given font.
+ The width is such that continuing text should be positioned at the
+ start of this text plus this width. The height will always be the
+ ascent plus descent for the font and is independent of the text.
+
+ Arguments:
+ text: the text string to draw
+ font: the font to use
+
+ Returns: (width, height) of the text in "device units"
+ (pixels at the current window DPI)
+ '''
+ cmnd = { "action":"textSize", "text":text }
+ if font:
+ cmnd["font"] = font
+ self.__window.submitCommand(cmnd)
+ response = None
+ try:
+ # Wait indefinitely for a response
+ # Make sure it is a valid response
+ response = self.__window.checkForResponse(None)
+ if (type(response) != tuple) or (len(response) != 2):
+ raise ValueError
+ width = float(response[0])
+ height = float(response[1])
+ if (width <= 0.0) or (height <= 0.0):
+ raise ValueError
+ except Exception:
+ if not response:
+ # error raised before a response obtained
+ raise
+ fullresponse = str(response)
+ response = self.__window.checkForResponse()
+ while response:
+ fullresponse += '\n'
+ fullresponse += response
+ response = self.__window.checkForResponse()
+ raise RuntimeError(fullresponse)
+ return (width, height)
+
def drawText(self, text, startx, starty, font, color, rotate):
'''
Draws text.
@@ -755,13 +800,14 @@ class PViewerPQPyFerretBindings(PyFerretBindings):
PyFerretBindings using a PipedViewerPQ as the viewer.
'''
- def createWindow(self, title, visible):
+ def createWindow(self, title, visible, noalpha):
'''
Creates PyFerret bindings using a PipedViewerPQ.
Arguments:
title: display title for the Window
visible: display Window on start-up?
+ noalpha: do not use the alpha channel in colors?
Raises a RuntimeError if an active window is already associated
with these bindings, or if there were problems with creating
@@ -770,7 +816,7 @@ class PViewerPQPyFerretBindings(PyFerretBindings):
Returns True.
'''
result = self.createPipedViewerWindow("PipedViewerPQ",
- title, visible)
+ title, visible, noalpha)
return result
@@ -789,13 +835,14 @@ class PImagerPQPyFerretBindings(PyFerretBindings):
for the new scene to be displayed.
'''
- def createWindow(self, title, visible):
+ def createWindow(self, title, visible, noalpha):
'''
Creates PyFerret bindings using a PipedImagerPQ.
Arguments:
title: display title for the Window
visible: display Window on start-up?
+ noalpha: do not use the alpha channel in colors?
Raises a RuntimeError if an active window is already associated
with these bindings, or if there were problems with creating
@@ -804,7 +851,7 @@ class PImagerPQPyFerretBindings(PyFerretBindings):
Returns True.
'''
result = self.createPipedViewerWindow("PipedImagerPQ",
- title, visible)
+ title, visible, noalpha)
return result
@@ -887,7 +934,7 @@ if __name__ == "__main__":
print "Testing bindings for %s" % viewertype
# Create a viewer window
title = viewertype + "Tester"
- bindinst = pyferret.graphbind.createWindow(viewertype, title, True)
+ bindinst = pyferret.graphbind.createWindow(viewertype, title, True, False)
# Resize the window to 500 x 500 pixels
bindinst.resizeWindow(500, 500)
# Turn on anti-aliasing
diff --git a/pyfermod/.project b/pyfermod/.project
new file mode 100644
index 0000000..ce98b95
--- /dev/null
+++ b/pyfermod/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>pyfermod</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.python.pydev.PyDevBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.python.pydev.pythonNature</nature>
+ </natures>
+</projectDescription>
diff --git a/pyfermod/.pydevproject b/pyfermod/.pydevproject
new file mode 100644
index 0000000..e70b112
--- /dev/null
+++ b/pyfermod/.pydevproject
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse-pydev version="1.0"?><pydev_project>
+<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
+<path>/${PROJECT_DIR_NAME}</path>
+</pydev_pathproperty>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.6</pydev_property>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
+
+</pydev_project>
diff --git a/pyfermod/__init__.py b/pyfermod/__init__.py
index 76df873..c7fca67 100644
--- a/pyfermod/__init__.py
+++ b/pyfermod/__init__.py
@@ -71,6 +71,10 @@ import filenamecompleter
import graphbind
import regrid
+from ferrvar import FerrVar
+from ferrdatavar import FerrDataVar
+from ferrdataset import FerrDataSet
+
def init(arglist=None, enterferret=True):
"""
@@ -119,7 +123,7 @@ def init(arglist=None, enterferret=True):
-secure: restrict Ferret's capabilities (e.g., SPAWN and
EXIT /TOPYTHON are not permitted)
- -server: run Ferret in server mode
+ -server: run Ferret in server mode (don't stop on message commands)
-python: start at the Python prompt instead of the Ferret prompt.
The ferret prompt can be obtained using 'pyferret.run()'
@@ -143,8 +147,10 @@ def init(arglist=None, enterferret=True):
-transparent: use a transparent background instead of opaque white
when saving to the file given by -batch
- -script: execute the script <scriptname> with any arguments specified,
- and exit (THIS MUST BE SPECIFIED LAST)
+ -script: execute the script <scriptname> with any arguments
+ specified and exit (THIS MUST BE SPECIFIED LAST).
+ The -script option also implies the -nojnl, -noverify,
+ -server, and -quiet options.
"""
@@ -193,6 +199,7 @@ def init(arglist=None, enterferret=True):
my_unmapped = True
elif opt == "-gif":
my_unmapped = True
+ my_metaname = "ferret.png"
elif opt == "-unmapped":
my_unmapped = True
elif opt == "-nojnl":
@@ -214,6 +221,10 @@ def init(arglist=None, enterferret=True):
print_help = True
break
elif opt == "-script":
+ my_journal = False
+ my_verify = False
+ my_server = True
+ my_quiet = True
k += 1
try:
script = arglist[k:]
@@ -1540,7 +1551,7 @@ def stop():
# If it had been started, shut down ESMP and delete the log file
try:
regrid.ESMPControl().stopESMP(True)
- except ImportError:
+ except Exception:
pass
# Continue with Ferret shutdown
return libpyferret._stop()
diff --git a/pyfermod/ferrdataset.py b/pyfermod/ferrdataset.py
new file mode 100644
index 0000000..0f42b18
--- /dev/null
+++ b/pyfermod/ferrdataset.py
@@ -0,0 +1,24 @@
+'''
+Represents a data file and the data variables it contains.
+
+ at author: Karl Smith
+'''
+
+import pyferret
+from ferrdatavar import FerrDataVar
+
+class FerrDataSet(object):
+ '''
+ A data file and the data variables it contains
+ '''
+
+ def __init__(self, filename):
+ '''
+ Opens the given netCDF file in Ferret using the Ferret "USE" command.
+ Creates a FerDataVar for each data variable in this data file and
+ assigns it as an attribute of this class whose name is the variable name.
+ Assigns the list of all variables to the __datavars attribute.
+ '''
+ self.filename = filename
+ (errval, errmsg) = pyferret.run('USE "' + self.filename + '"')
+
diff --git a/pyfermod/ferrdatavar.py b/pyfermod/ferrdatavar.py
new file mode 100644
index 0000000..19e2d87
--- /dev/null
+++ b/pyfermod/ferrdatavar.py
@@ -0,0 +1,22 @@
+'''
+Represents Ferret data variables whose data comes directly from an associated data file.
+
+ at author: Karl Smith
+'''
+from ferrvar import FerrVar
+
+class FerrDataVar(FerrVar):
+ '''
+ A Ferret data variable whose data comes directly from a given data file.
+ '''
+
+
+ def __init__(self, name, dataset):
+ '''
+ Represents a Ferret data variable with the given name
+ associated with the given dataset. No data is read
+ for this data variable.
+ '''
+ self.name = name
+ self.dataset = dataset
+ self.definition = self.name + "[dset=" + self.dataset + "]"
diff --git a/pyfermod/ferrvar.py b/pyfermod/ferrvar.py
new file mode 100644
index 0000000..ff21121
--- /dev/null
+++ b/pyfermod/ferrvar.py
@@ -0,0 +1,22 @@
+import numpy
+
+'''
+Represents Ferret variables in Python.
+ at author: Karl Smith
+'''
+
+class FerrVar(object):
+ '''
+ Ferret variable object
+ '''
+
+
+ def __init__(self):
+ '''
+ Creates a Ferret variable without reading or computing any data values.
+ '''
+ self.name = None
+ self.dataset = None
+ self.definition = None
+ self.data = None
+
diff --git a/pyfermod/graphbind/__init__.py b/pyfermod/graphbind/__init__.py
index 8e439b3..53fa211 100644
--- a/pyfermod/graphbind/__init__.py
+++ b/pyfermod/graphbind/__init__.py
@@ -47,7 +47,7 @@ def knownPyFerretEngines():
'''
return tuple( __pyferret_bindings_classes.keys() )
-def createWindow(engine_name, title, visible):
+def createWindow(engine_name, title, visible, noalpha):
'''
Creates an instance of the bindings class associated with
engine_name and calls the createWindow method of that
@@ -59,6 +59,7 @@ def createWindow(engine_name, title, visible):
graphics engine to use for the Window
title: display title for the Window
visible: display Window on start-up?
+ noalpha: do not use the alpha channel in colors?
Returns the instance of the binding class associated with
the newly created Window if the createWindow method of the
@@ -72,7 +73,7 @@ def createWindow(engine_name, title, visible):
except KeyError:
raise ValueError("Unknown graphics engine '%s'" % engine_name)
bindinst = bindclass()
- if not bindinst.createWindow(title, visible):
+ if not bindinst.createWindow(title, visible, noalpha):
del bindinst
return None
return bindinst
@@ -86,11 +87,11 @@ if __name__ == "__main__":
def __init__(self):
super(TestBindings, self).__init__()
- def createWindow(self, title, visible):
+ def createWindow(self, title, visible, noalpha):
return True
addPyFerretBindings(TestBindings.engine_name, TestBindings)
- bindinst = createWindow(TestBindings.engine_name, "test", False)
+ bindinst = createWindow(TestBindings.engine_name, "test", False, False)
if not bindinst:
raise RuntimeError("Unsuccessful creation of a Window")
try:
@@ -109,3 +110,4 @@ if __name__ == "__main__":
raise RuntimeError("Unexpected tuple of known engines: %s" % \
str(known_engines))
print "Success"
+
diff --git a/pyfermod/graphbind/abstractpyferretbindings.py b/pyfermod/graphbind/abstractpyferretbindings.py
index 4f9975e..9b1afb7 100644
--- a/pyfermod/graphbind/abstractpyferretbindings.py
+++ b/pyfermod/graphbind/abstractpyferretbindings.py
@@ -29,7 +29,7 @@ class AbstractPyFerretBindings(object):
'''
super(AbstractPyFerretBindings, self).__init__()
- def createWindow(self, title, visible):
+ def createWindow(self, title, visible, noalpha):
'''
Creates a "Window object" for this graphics engine. Here,
a Window is the complete drawing area. However, no drawing
@@ -39,6 +39,7 @@ class AbstractPyFerretBindings(object):
Arguments:
title: display title for the Window
visible: display Window on start-up?
+ noalpha: do not use the alpha channel in colors?
Returns True if a Window was successfully created.
'''
@@ -397,8 +398,7 @@ class AbstractPyFerretBindings(object):
def setWidthFactor(self, widthfactor):
'''
- Assigns the scaling factor to be used for pen widths,
- symbols sizes, and font sizes
+ Assigns the scaling factor to be used for pen widths and symbols sizes
Arguments:
widthfactor: positive float giving the new scaling factor to use
@@ -471,6 +471,22 @@ class AbstractPyFerretBindings(object):
'''
raise AttributeError('not implemented')
+ def textSize(self, text, font):
+ '''
+ Returns the width and height of the text if drawn in the given font.
+ The width is such that continuing text should be positioned at the
+ start of this text plus this width. The height will always be the
+ ascent plus descent for the font and is independent of the text.
+
+ Arguments:
+ text: the text string to draw
+ font: the font to use
+
+ Returns: (width, height) of the text in "device units"
+ (pixels at the current window DPI)
+ '''
+ raise AttributeError('not implemented')
+
def drawText(self, text, startx, starty, font, color, rotate):
'''
Draws text.
diff --git a/pyfermod/libpyferret.c b/pyfermod/libpyferret.c
index 753afd5..c99d6ee 100644
--- a/pyfermod/libpyferret.c
+++ b/pyfermod/libpyferret.c
@@ -47,6 +47,7 @@
#include "EF_Util.h"
#include "grdel.h"
#include "pyferret.h"
+#include "pplmem.h"
/* global pyferret Python module object used for readline */
PyObject *pyferret_module_pyobject = NULL;
@@ -342,6 +343,22 @@ static int resizeFerretMemory(int blksiz)
}
+/*
+ * Called by the Ferret core to reallocate for more PPL memory
+ */
+void reallo_ppl_memory(int new_size)
+{
+ if ( pplMemory != NULL )
+ PyMem_Free(pplMemory);
+ pplMemory = (float *) PyMem_Malloc((size_t)new_size * sizeof(float));
+ if ( pplMemory == NULL ) {
+ printf("Unable to allocate the requested %d words of PLOT memory.\n", new_size);
+ exit(1);
+ }
+ set_ppl_memory(pplMemory, new_size);
+}
+
+
static char pyferretResizeMemoryDocstring[] =
"Reset the the amount of memory allocated for Ferret from Python-managed memory. \n"
"\n"
diff --git a/setup.py b/setup.py
index 8e133c8..ea56443 100644
--- a/setup.py
+++ b/setup.py
@@ -25,6 +25,10 @@ if hdf5_libdir:
cairo_libdir = os.getenv("CAIRO_LIBDIR")
if cairo_libdir:
cairo_libdir = cairo_libdir.strip()
+# PIXMAN_LIBDIR is only given if the pixman-1 library is to be statically linked in
+pixman_libdir = os.getenv("PIXMAN_LIBDIR")
+if pixman_libdir:
+ pixman_libdir = pixman_libdir.strip()
# The location of libpython2.x.so, in case it is not in a standard location
python_libdir = os.path.split(
distutils.sysconfig.get_python_lib(standard_lib=True))[0]
@@ -34,6 +38,8 @@ if hdf5_libdir:
libdir_list.append(hdf5_libdir)
if cairo_libdir:
libdir_list.append(cairo_libdir)
+if pixman_libdir:
+ libdir_list.append(pixman_libdir)
libdir_list.append(python_libdir)
# Get the list of ferret static libraries
@@ -74,23 +80,32 @@ else:
# The Pango text-rendering libraries
addn_link_args.extend([ "-lpangocairo-1.0", "-lpango-1.0", "-lgobject-2.0" ])
-# Link to the appropriate cairo library.
-# The pixman-1, freetype, fontconfig, png12, Xrender, and X11 libraries
-# are only used to resolve cairo library function calls when statically
-# linking in the cairo-1.8.8 library.
+# Link to the cairo library and the libraries it requires.
if cairo_libdir:
cairo_lib = "-Wl," + os.path.join(cairo_libdir, "libcairo.a")
- addn_link_args.extend([ cairo_lib, "-lpixman-1", "-lfreetype",
- "-lfontconfig", "-lpng12", "-lXrender",
- "-lX11", ])
+ addn_link_args.append(cairo_lib);
+ if pixman_libdir:
+ pixman_lib = "-Wl," + os.path.join(pixman_libdir, "libpixman-1.a")
+ else:
+ pixman_lib = "-lpixman-1"
+ addn_link_args.append(pixman_lib);
+ addn_link_args.extend([ "-lfreetype", "-lfontconfig", "-lpng12", "-lXrender", "-lX11"])
else:
addn_link_args.append("-lcairo")
# Link in the appropriate system libraries
if hdf5_libdir:
- addn_link_args.append("-lcurl -lz")
+ addn_link_args.extend(["-lcurl", "-lz"])
addn_link_args.extend([ "-lgfortran", "-ldl", "-lm", "-fPIC", ])
+# Bind symbols and function symbols to any internal definitions
+# and do not make any of the symbols or function symbols defined
+# in any libraries externally visible (mainly for cairo and pixman).
+# Those in the object files (including those from pyfermod and
+# fer/ef_utility) will still be visible.
+# addn_link_args.append("-Wl,-Bsymbolic-functions")
+addn_link_args.extend(["-Wl,-Bsymbolic", "-Wl,--exclude-libs -Wl,ALL"])
+
# Get the list of C source files in pyfermod
src_list = [ ]
for srcname in os.listdir("pyfermod"):
@@ -110,6 +125,10 @@ for srcname in ( "fakes3.o", "ferret_dispatch.o", "ferret_query_f.o",
for srcname in os.listdir(dirname):
if (srcname[0] == 'x') and (srcname[-7:] == "_data.o"):
addnobjs_list.append(os.path.join(dirname, srcname))
+# Duplicate objects in libraries to make them externally visible (for las external functions)
+dirname = os.path.join("fmt", "src")
+addnobjs_list.append(os.path.join(dirname, "tm_lenstr.o"));
+addnobjs_list.append(os.path.join(dirname, "tm_fmt.o"));
# Create the pyferret.libpyferret Extension
ext_mods = [ Extension("pyferret.libpyferret", include_dirs = incdir_list,
@@ -139,7 +158,7 @@ setup(name = "pyferret",
ext_modules = ext_mods)
setup(name = "pipedviewer",
- version = "1.0.1",
+ version = "1.3.0",
description = "Graphics viewer controlled by a command pipe",
long_description = "A graphics viewer application that receives its " \
"drawing and other commands primarily from another " \
diff --git a/site_specific.mk b/site_specific.mk
index 333e22f..d00c2af 100644
--- a/site_specific.mk
+++ b/site_specific.mk
@@ -3,7 +3,7 @@
## Full path name of the directory containing this file (the ferret root directory).
## Do not use $(shell pwd) since this is included in Makefiles in other directories.
-DIR_PREFIX = $(HOME)/pyferret-1.1.0-source
+DIR_PREFIX = $(HOME)/pyferret-1.2.0-source
## Machine type for which to build Ferret/PyFerret
## x86_64-linux for 64-bit RHEL
@@ -23,39 +23,43 @@ BUILDTYPE = $(HOSTTYPE)
PYTHON_EXE = python2.6
# PYTHON_EXE = python2.7
## The assignment of PYTHONINCDIR should not need any modifications
-PYTHONINCDIR := $(shell $(PYTHON_EXE) -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc()")
+PYTHONINCDIR := $(shell $(PYTHON_EXE) -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc()")
## Installation directory for built Ferret. Using the "install"
## Makefile target circumvents the need to create the fer_*.tar.gz
## files just for creating a Ferret installation.
INSTALL_FER_DIR = $(FER_DIR)
-## Installation directory for Cairo-1.8.8 static libraries
-## (contains include and lib or lib64 subdirectories) for RHEL5.
-## Do not give a location on other systems. For these systems
-## the system-wide shared-object Cairo libraries which are also
-## used by Qt4 must be used.
-CAIRO_DIR =
-# CAIRO_DIR = /usr/local/cairo_188
+## Installation directory for cairo v1.12 or later static library
+## (contains include and lib or lib64 subdirectories). If blank,
+## the system's cairo shared library will be used. Older versions
+## of cairo (v1.8 or later) can be used, but raster images from
+## -nodisplay may look a little fuzzy unless -gif is specified.
+CAIRO_DIR = /usr/local/cairo-1.14.4
+# CAIRO_DIR =
-## Installation directory for HDF5 static libraries
-## (contains include and lib or lib64 subdirectories)
-## Do not give a location if linking to netcdf shared-object libraries
+## Installation directory for pixman-1 static library (contains
+## include and lib or lib64 subdirectories) used by the above cairo
+## library. If blank, or if CAIRO_DIR is blank, the system's
+## pixman-1 shared library will be used.
+PIXMAN_DIR = /usr/local/cairo-1.14.4
+# PIXMAN_DIR =
+
+## Installation directory for HDF5 static libraries (contains
+## include and lib or lib64 subdirectories). Do not give a location
+## to link to NetCDF shared-object libraries.
# HDF5_DIR = /usr
# HDF5_DIR = /usr/local
-HDF5_DIR = /usr/local/hdf5-1.8.9
-# HDF5_DIR = /usr/local/hdf5_189
-# HDF5_DIR = /usr/local/hdf5_189_64
+HDF5_DIR = /usr/local/hdf5-1.8.16
# HDF5_DIR =
## Installation directory for NetCDF static or shared object libraries
-## (contains include and lib or lib64 subdirectories)
-## If HDF5_DIR (above) is empty, the shared-object netcdf libraries will be used.
+## (contains include and lib or lib64 subdirectories). If HDF5_DIR
+## (above) is blank, the netcdf shared-object (.so) libraries will be
+## used; otherwise the netcdf static (.a) libraries will be used.
# NETCDF4_DIR = /usr
# NETCDF4_DIR = /usr/local
-NETCDF4_DIR = /usr/local/netcdf-4.3.1.1
-# NETCDF4_DIR = /usr/local/netcdf_4311
-# NETCDF4_DIR = /usr/local/netcdf_4311_64
+NETCDF4_DIR = /usr/local/netcdf-4.3.3.1
## Java home directory - this may be predefined
## from your shell environment. If JAVA_HOME is defined,
@@ -71,6 +75,6 @@ JAVA_HOME = /usr/lib/jvm/java
# JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.7.jdk/Contents/Home
# PyFerret version number - do not change this
-PYFERRET_VERSION = 1.1.0
+PYFERRET_VERSION = 1.2
##
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/pyferret.git
More information about the debian-science-commits
mailing list