* XALGEBRA.CMN - common declaration of algebraic operators and functions
* Unix/RISC port - 1/91 - variables reordered to lie on word boundaries
* increased number of regrid transforms and length of transform names

* V430: added trans_4d
* V450: added descriptions of functions
* V510: *sh* reordered elements to avoid "padding before alg_4d_trans"
* V554 1/04 *acm* - add counter variables for named REPEAT/RANGE control
* V554 3/04 *acm* - reorder items in the common block to avoid warning msg when compiling
* V600 2/06 *acm* - reorder items again, to avoid warning msg when compiling
* V600 2/06 *kob* - declare alg_pvar_head as double, for 64-bit build
* V671 7/11  *acm* Ticket 1868 IFV - masking expressions with ifValid, treating 
*		   zero as valid. 
*      2/12  *kms* Increased num_pseudo_vars from 20 to 30:
*                  M, N, E, F, EBOX, FBOX, EBOXLO, FBOXLO, EBOXHI, FBOXHI
*       *acm* 4/12 Add new MODE FOURDEE to allow E,F,M,N,etc as user-vars
*      4/12  *acm* Increased num_pseudo_vars from 30 to 40
*                  dont need MODE FOURDEE, use _E, _F, _M, _N.
* V690 12/13 *sh* added auxiliary regridding transformations and updated
*		  transformation descriptions

	INTEGER		num_operators ,num_functions, num_pseudo_vars,
     .			num_4d_pseudo_vars, num_log_structs, num_punctuations,
     .			num_transforms,  max_4d_trans, max_fcn_args,
     .                  num_counter_vars, cvar_text_len
	PARAMETER     (	num_operators   = 18,
     .			num_functions   = 25,
     .			num_pseudo_vars = 40,
     .			num_4d_pseudo_vars = 28,
     .			num_log_structs = 3,
     .			num_punctuations = 3,
     .			num_transforms	= 60,
     .			max_4d_trans    = 10,
     .			max_fcn_args    = 75,
     .                  num_counter_vars = 60,
     .                  cvar_text_len    = 128)

	INTEGER		offset_operators, offset_functions, offset_logic_struc
	PARAMETER     (	offset_operators   = 0,
     .			offset_functions   = num_operators,
     .			offset_logic_struc = num_operators + num_functions )

	COMMON / XALGEBRA /
     .				alg_pvar_head,
     .				alg_pvar_padding,
     .				countervar_name_head,
     .				countervar_name_padding,
     .				alg_trans_dflt_arg,
     .				alg_num_fcn_args,
     .				alg_fcn_arg_ptr,
     .				alg_trans_num, 
     .				alg_4d_trans,
     .				alg_1d_to_4d,
     .				num_4d_trans,
     .				csp_cvar,
     .				alg_trans_its_int,
     .				alg_trans_has_arg,
     .				alg_regrid_vizb,	 
     .				alg_op,
     .				alg_fcn,	 
     .				alg_fcn_descr,
     .				alg_punct,
     .				alg_struct,
     .				alg_vstruct,
     .				alg_pvar,
     .				alg_cvar,
     .				countervar_name,
     .				alg_trans_text,	 
     .				alg_trans_title,
     .				alg_regrid_code,
     .				alg_regrid_title,
     .				alg_arg_name,
     .				alg_arg_units,
     .				alg_arg_descr

        REAL*8          alg_pvar_head,
     .                  alg_pvar_padding,
     .                  countervar_name_head,
     .                  countervar_name_padding
	REAL		alg_trans_dflt_arg( num_transforms )
        INTEGER		alg_num_fcn_args ( num_functions ),
     .			alg_fcn_arg_ptr  ( num_functions )
	INTEGER		alg_trans_num	 ( num_transforms )
	INTEGER		alg_4d_trans	 ( max_4d_trans ),
     .			alg_1d_to_4d	 ( max_4d_trans ),
     .			num_4d_trans
        INTEGER         csp_cvar         ( num_counter_vars )
	LOGICAL		alg_trans_its_int( num_transforms ),
     .			alg_trans_has_arg( num_transforms ),
     .			alg_regrid_vizb  ( max_auxregrid_trans )

	CHARACTER*4	alg_op           ( num_operators )
	CHARACTER*8	alg_fcn	         ( num_functions )
	CHARACTER*80	alg_fcn_descr    ( num_functions )
	CHARACTER*1	alg_punct	 ( num_punctuations )
	CHARACTER*8	alg_struct	 ( num_log_structs )
	CHARACTER*8	alg_vstruct	 ( num_log_structs )
	CHARACTER*8	alg_pvar         ( num_pseudo_vars )
	CHARACTER*128	alg_cvar         ( num_counter_vars )
        CHARACTER*128   countervar_name  ( num_counter_vars )
	CHARACTER*3	alg_trans_text	 ( num_transforms )
	CHARACTER*20	alg_trans_title	 ( num_transforms )
	CHARACTER*6	alg_regrid_code	 ( max_auxregrid_trans )
	CHARACTER*20	alg_regrid_title ( max_auxregrid_trans )

	CHARACTER	alg_arg_name	 ( max_fcn_args )*80,
     .			alg_arg_units	 ( max_fcn_args )*24,
     .			alg_arg_descr	 ( max_fcn_args )*64


