* INTERP_STACK.PARM
* parameters needed for the functioning of the interpretation stack, only
*
* 10/98 *jc* added isact_reduce
* 6/01 *sh* added isact_event_mask
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
* V690 12/13 *sh* for auto-curvilinear Ferret
* V692  7/14 *acm* added isact_avg_wgt
* V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
*                  variables, pre-defined axes and grids, cat_calc_var.
* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U
* V702 *sh* 11/16 added gathering on compressed axes using 
*	          phases for computation of the compressing transform

* minimum working space provided to transformations
	INTEGER		iswksiz
	PARAMETER     ( iswksiz = 50 )

* classes of stack activities
	INTEGER		isact_class_trans,
     .			isact_class_regrid,
     .			isact_class_gather,
     .			isact_class_modulo,
     .			isact_class_reverse,
     .			isact_class_impl_grid,
     .			isact_class_reconcile,
     .			isact_class_sample,
     .			isact_class_subspan_fill,
     .			isact_class_aggregate_gather,
     .			isact_class_aux_plot_vars,
     .			isact_class_union_member,
     .			isact_class_cmp_gather_dummy
	PARAMETER     ( isact_class_trans    = 1,
     .			isact_class_regrid   = 2,
     .			isact_class_gather   = 3,
     .			isact_class_modulo   = 4,
     .			isact_class_reverse  = 5,
     .			isact_class_impl_grid  = 6,
     .			isact_class_reconcile  = 7,
     .			isact_class_sample   = 8,
     .			isact_class_subspan_fill = 9,
     .			isact_class_aggregate_gather = 10,
     .			isact_class_aux_plot_vars = 11,
     .			isact_class_union_member = 12,
     .			isact_class_cmp_gather_dummy = 123456 )

* to help in defining classes of activity codes ...
	INTEGER		isact_trans_code
	PARAMETER     (	isact_trans_code  = 100 )

* stack activities
	INTEGER		isact_request,
     .			isact_algebra,
     .			isact_rotate,
     .			isact_subset,
     .			isact_xy2other,
     .			isact_read,
     .			isact_regrid,
     .			isact_autogrid,
     .			isact_gather,
     .			isact_get_grid,
     .			isact_modulo,
     .			isact_reverse,
     .			isact_impl_grid,
     .			isact_reconcile,
     .			isact_reduce,
     .			isact_sample,
     .			isact_subspan_fill,
     .			isact_aggregate_gather,
     .			isact_get_agg_grid,
     .			isact_auxvar_regrid,
     .			isact_var_ready,
     .			isact_auxvar_ready,
     .			isact_aux_plot_vars,
     .			isact_get_union_member
	PARAMETER     ( isact_request		= 1,
     .			isact_algebra		= 2,
     .			isact_rotate		= 3,
     .			isact_subset		= 4,
     .			isact_xy2other		= 5,
     .			isact_read		= 6,
     .			isact_regrid		= 8,
     .			isact_autogrid		= 9,
     .			isact_gather		= 10,
     .			isact_get_grid		= 11,
     .			isact_modulo		= 12,
     .			isact_reverse		= 13,
     .			isact_impl_grid		= 14,
     .			isact_reconcile		= 15,
     .			isact_sample		= 17,
     .			isact_subspan_fill	= 18,
     .			isact_aggregate_gather	= 19,
     .			isact_get_agg_grid      = 20,
     .			isact_auxvar_regrid	= 21,
     .			isact_var_ready         = 22,
     .			isact_auxvar_ready      = 23,
     .			isact_aux_plot_vars     = 24,
     .			isact_get_union_member  = 25,
     .          	isact_reduce = 16 ) ! never used: GC fcns perform axis reduction

* transformations (which are also stack activities)
	INTEGER		isact_interp,
     .			isact_average,
     .			isact_integ_def,
     .			isact_integ_indef,
     .			isact_deriv_cntr,
     .			isact_deriv_fwrd,
     .			isact_deriv_bkwd,
     .			isact_max,
     .			isact_min,
     .			isact_smth_max,
     .			isact_smth_median,
     .			isact_smth_min,
     .			isact_smth_box,
     .			isact_smth_box_p,
     .			isact_smth_binml,
     .			isact_smth_hanng,
     .			isact_smth_parzn,
     .			isact_smth_welch,
     .			isact_shift,
     .			isact_4d_ave,
     .			isact_4d_int_def,
     .			isact_4d_var,
     .			isact_4d_good_pt,
     .			isact_4d_bad_pt,
     .			isact_fill_ave,
     .			isact_fill_interp,
     .			isact_fill_near,
     .			isact_locate,
     .          	isact_wgted_eq,
     .          	isact_sum,
     .          	isact_run_sum,
     .			isact_std_dev,
     .			isact_variance,
     .			isact_npoints,   ! unused
     .			isact_good_pt,
     .			isact_bad_pt,
     .			isact_4d_sum
	INTEGER		isact_nrst_dist_abv,
     .			isact_nrst_dist_blw,
     .			isact_nrst_indx_abv,
     .			isact_nrst_indx_blw,
     .			isact_event_mask,
     .			isact_avg_wgt,
     .			isact_avg_4d_wgt,
     .			isact_std_4d

	PARAMETER (
     .		isact_interp		= isact_trans_code + trans_interpolate,
     .		isact_average		= isact_trans_code + trans_average,
     .		isact_integ_def		= isact_trans_code + trans_integ_def,
     .		isact_integ_indef	= isact_trans_code + trans_integ_indef,
     .		isact_deriv_cntr	= isact_trans_code + trans_deriv_cntr,
     .		isact_deriv_fwrd	= isact_trans_code + trans_deriv_fwrd,
     .		isact_deriv_bkwd	= isact_trans_code + trans_deriv_bkwd,
     .		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,
     .		isact_smth_welch	= isact_trans_code + trans_smth_welch,
     .		isact_shift		= isact_trans_code + trans_shift,
     .		isact_4d_ave		= isact_trans_code + trans_4d_ave,
     .		isact_4d_int_def	= isact_trans_code + trans_4d_int_def,
     .		isact_4d_var		= isact_trans_code + trans_4d_var,
     .		isact_4d_good_pt	= isact_trans_code + trans_4d_good_pt,
     .		isact_4d_bad_pt		= isact_trans_code + trans_4d_bad_pt,
     .		isact_fill_ave		= isact_trans_code + trans_fill_ave,
     .		isact_locate		= isact_trans_code + trans_locate,
     .          isact_wgted_eq		= isact_trans_code + trans_wgted_eq,
     .          isact_sum		= isact_trans_code + trans_sum,
     .          isact_run_sum		= isact_trans_code + trans_run_sum,
     .		isact_std_dev		= isact_trans_code + trans_std_dev,
     .		isact_variance		= isact_trans_code + trans_variance,
     .		isact_npoints		= isact_trans_code + trans_npoints,
     .		isact_good_pt		= isact_trans_code + trans_good_pt,
     .		isact_bad_pt		= isact_trans_code + trans_bad_pt,
     .		isact_fill_interp	= isact_trans_code + trans_fill_interp,
     .		isact_fill_near		= isact_trans_code + trans_fill_near,
     .		isact_smth_max		= isact_trans_code + trans_smth_max,
     .		isact_smth_median	= isact_trans_code + trans_smth_median,
     .		isact_smth_min		= isact_trans_code + trans_smth_min,
     .		isact_4d_sum		= isact_trans_code + trans_4d_sum )
	PARAMETER (
     .		isact_nrst_dist_abv = isact_trans_code + trans_nrst_dist_abv,
     .		isact_nrst_dist_blw = isact_trans_code + trans_nrst_dist_blw,
     .		isact_nrst_indx_abv = isact_trans_code + trans_nrst_indx_abv,
     .		isact_nrst_indx_blw = isact_trans_code + trans_nrst_indx_blw,
     .		isact_event_mask    = isact_trans_code + trans_event_mask,
     .		isact_avg_wgt       = isact_trans_code + trans_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,
     .			isobj_1_item
	PARAMETER     ( isobj_uvar   = 1,
     .			isobj_1_item = 2 )

* phases in the creation of a "merged" context for algebraic expressions
	REAL		isalg_transfer, isalg_merge_1, isalg_merge_n,
     .			isalg_allocate, isalg_getgrid
	PARAMETER     ( isalg_allocate	= -1.,
     .			isalg_getgrid   = -123.,
     .			isalg_transfer	= 1.,
     .			isalg_merge_1	= 2.,
     .			isalg_merge_n	= 3. )

* phases of completing operations
	INTEGER		isphase_allatonce,
     .			isphase_1,
     .			isphase_2,
     .			isphase_get_aux_var,
     .			isphase_get_source_var,
     .			isphase_do_aux_regrid,
     .			isphase_initialize_transform,
     .			isphase_accumulate_transform,
     .			isphase_completed_transform
	PARAMETER     ( isphase_allatonce      = 1000,
     .			isphase_1	       = 1,
     .			isphase_2	       = 2,
     .			isphase_get_aux_var    = 1,
     .			isphase_get_source_var = 2,
     .			isphase_do_aux_regrid  = 3,
     .			isphase_initialize_transform = 1111,
     .			isphase_accumulate_transform = 2222,
     .			isphase_completed_transform  = 3333 )

