Tree Data Interface MAKE_ACTION:MAKE_WITH_UNITS
MAKE_ACTION (DISPATCH,TASK,[ERRORLOGS],[COMPLETION],[PERFORMANCE])

      MDS Operation. 
      
      Make an action descriptor. 
 
      Arguments 
        DISPATCH dispatch descriptor. 
        TASK    procedure, program, routine, or method descriptor. 
        ERRORLOGS a character scalar for error reports. 
        COMPLETION notification list. 
        PERFORMANCE unsigned long vector of statistics from execution. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Example.  MAKE_ACTION(MAKE_DISPATCH("ident","phase","when", 
                "completion"),MAKE_ROUTINE(timeout,image,routine)) 
                has only dispatch and task. 
 
MAKE_CALL ([KIND],IMAGE,ROUTINE,[ARG],...)

      MDS Operation. 
      
      Make a call of a routine in a sharable image. 
      
      Usual Forms       IMAGE->ROUTINE:KIND([ARG],...) or IMAGE->ROUTINE([ARG]) 
 
      Arguments Optional: KIND, ARG... . 
        KIND    byte unsigned scalar of KIND returned in R0. 
                Use DSC$K_DTYPE_DSC=24 for a pointer to an XD. 
                Use DSC$K_DTYPE_MISSING=0 for no information. 
                Default type is long integer. 
                Other accepted types are BU WU LU QU OU B W L Q O F D 
                NID and null-terminated strings T PATH EVENT. 
        IMAGE   character scalar. It must be a simple filename in 
                SYS$SHARE or a logical name of the file. 
        ROUTINE character scalar. 
        ARG...  arguments with certain options. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
                Use this form if IMAGE or ROUTINE must be expressions. 
 
      Example.  MAKE_CALL(24,'TDISHR','TDI$SIND',DESCR(30.)) is 
                the slow and hard way to do SIND(30.). 
 
      See also. CALL for info on argument form and type of output. 
 
MAKE_CONDITION (MODIFIER,CONDITION)

      MDS Operation. 
      
      Make a condition descriptor. 
 
      Arguments 
        MODIFIER word unsigned, evaluated: 
                TREE$K_NEGATE_CONDITION 7 
                TREE$K_IGNORE_UNDEFINED 8 
                TREE$K_IGNORE_STATUS    9 
        CONDITION MDS event or path. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Example.  None, normally done by COMPILE_DEPENDENCY. 
 
      See also. MAKE_DEPENDENCY MAKE_EVENT and COMPILE_DEPENDENCY. 
 
MAKE_CONGLOM (IMAGE,MODEL,NAME,QUALIFIERS)

      MDS Operation. 
      
      Make a conglomerate descriptor. 
 
      Arguments 
        IMAGE   character scalar. 
        MODEL   character scalar. 
        NAME    character scalar. 
        QUALIFIERS long vector, module dependent. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Example.  None, normally done by module add routines. 
 
MAKE_DEPENDENCY (OP_CODE,ARG_1,ARG_2)

      MDS Operation. Make a dependency descriptor. 
 
      Arguments 
        OP_CODE word unsigned scalar, evaluated. 
                TREE$K_DEPENDENCY_AND   10 
                TREE$K_DEPENDENCY_OR    11 
        ARG_1   MDS condition, event, or path. 
        ARG_2   MDS condition, event, or path. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Example.  None, normally done by COMPILE_DEPENDENCY. 
 
      See also. MAKE_CONDITION MAKE_EVENT and COMPILE_DEPENDENCY. 
 
MAKE_DIM ([WINDOW],AXIS)

      MDS Operation. 
      
      Make a dimension descriptor. 
 
      Arguments Optional: WINDOW. 
        WINDOW  window descriptor. 
                If missing, all point of AXIS are included and 
                the initial point of the axis has an index of 0. 
        AXIS    slope or, if defined, other descriptor type. 
 
      Signals.  None. 
      Units...  From AXIS. Should be same as WINDOW's value_at_idx0. 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
                The array will have bounds only if the 
                window has a defined value at index 0. 
 
      Example.  MAKE_DIM(MAKE_WINDOW(-1,3,10.),MAKE_SLOPE(3.)) 
                makes dimension with value 
                SET_RANGE(-1..3, [7.,10.,13.,16.,19.]). 
 
MAKE_DISPATCH (TYPE,IDENT,PHASE,WHEN,COMPLETION)

      MDS Operation. 
      
      Make a dispatch descriptor. 
 
      Arguments 
        TYPE    byte unsigned scalar, evaluated: 
                TREE$K_SCHED_ASYNC      1 
                TREE$K_SCHED_SEQ        2 
                TREE$K_SCHED_COND       3 
        IDENT   character scalar. 
        PHASE   character scalar. 
        WHEN    character scalar? 
        COMPLETION character scalar? 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Example.  None, normally done by module add routine. 
 
MAKE_FUNCTION (OPCODE,[ARG],...)

      MDS Operation. 
      
      Make a function descriptor. 
 
      Arguments Optional: ARG,... . 
        OPCODE  unsigned word from 0 to the number defined less one. 
        ARG,... as needed by the function described by OPCODE. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Example.  MAKE_FUNCTION(BUILTIN_OPCODE('SIN'),30) makes an 
                expression SIN(30). 
 
MAKE_METHOD (TIME_OUT,METHOD,OBJECT,[ARG]...)

      MDS Operation. 
      
      Make a method descriptor. 
 
      Arguments Optional: ARG,... . 
        TIME_OUT real scalar. 
        METHOD  character scalar. 
        OBJECT  character scalar. 
        ARG,... as needed by METHOD applied to OBJECT. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Example.  None, normally done by module add routine. 
 
MAKE_PARAM (VALUE,HELP,VALIDATION)

      MDS Operation. 
      
      Make a parameter descriptor. 
 
      Arguments 
        VALUE   any. 
        HELP    character. Textual information about VALUE. 
        VALIDATION logical scalar. $VALUE may be used by VALIDATION to 
                test VALUE without explicit reference to a tree path. 
                $THIS will give the parameter descriptor itself. 
                $VALUE and $THIS may only be used within GET_DATA 
                evaluations of the arguments. 
      >>>>>>>>>WARNING Use of $THIS and $VALUE may be infinitely recursive. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
      Example.  MAKE_PARAM(42.0,'The answer.', 
                $VALUE > 6 && HELP_OF($THIS) <> ""). 
                DATA(above) is 42.0 and VALIDATION(above) is 1BU. 
 
MAKE_PROCEDURE (TIME_OUT,LANGUAGE,PROCEDURE,[ARG],...)

      MDS Operation. 
      
      Make a procedure call 
 
      Arguments Optional: ARG,... . 
        TIME_OUT real scalar. 
        LANGUAGE character scalar. The language in which the procedure 
                is written. 
        PROCEDURE character scalar. 
        ARG,... as needed by the procedure. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Example.  None, normally done by module add routine. 
 
MAKE_PROGRAM (TIME_OUT,PROGRAM)

      MDS Operation. 
      
      Make a program call 
 
      Arguments 
        TIME_OUT real scalar. 
        PROGRAM character scalar. The name of a program to be run. 
                The program must be responsible for entering its data in 
                the tree. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Example.  MAKE_PROGRAM(1.2,'MYDISK:MYPROGRAM'). 
MAKE_RANGE ([START],[END],[DELTA])

      MDS Operation. 
      
      Make a range descriptor. 
      
      Usual Form        START .. END [.. DELTA] or START : END [: DELTA]. 

      Arguments Optional: DELTA; START and END when used as subscript 
                limits. See the specific routine; otherwise, required. 
        START   scalar. The starting value. 
        END     scalar. The last value. 
        DELTA   scalar. The increment. Default is one. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
                This uses a data type RANGE, whereas 
                DTYPE_RANGE(START,END,DELTA) is a function. 
                On evaluation, the compatible data type. 
                A vector of length max((END - BEGIN)/DELTA,0) elements. 
 
                The first value will be BEGIN and successive values will 
                differ by DELTA. The last value will not be futher from 
                BEGIN than END. 
      >>>>>>>>>WARNING, the number of element cannot always be predicted 
                for fractional delta, 1:2:.1 may have 10 or 11 elements. 
      >>>>>>>>>WARNINGS, the colon (:) form may be confused with a tree member 
                and the dot-dot (..) form is hard to read/understand, 
                use spaces. 
 
      Examples. 2..5 becomes [2,3,4,5] and 2:5:1.8 becomes [2.,3.8]. 
 
MAKE_ROUTINE (TIME_OUT,IMAGE,ROUTINE,[ARG],...)

      MDS Operation. 
      
      Make a routine descriptor. 
 
      Arguments Optional: ARG,... . 
        TIME_OUT real scalar. 
        IMAGE   character scalar. 
        ROUTINE character scalar. 
        ARG,... as needed by the routine. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Example.  MAKE_ROUTINE(1.2,MYIMAGE,MYROUTINE,5). 
 
MAKE_SIGNAL (DATA,RAW,[DIMENSION,...])

      MDS Operation. 
      
      Make data with dimensions. 

      Arguments Optional: DIMENSION,... . 
        DATA    any expression. It may include $VALUE for RAW without a 
                tree reference or $THIS to refer to the whole signal. 
                $VALUE and $THIS may only be used within GET_DATA 
                evaluations of the signal. 
      >>>>>>>>>WARNING Use of $THIS and $VALUE may be infinitely recursive. 
        RAW     any expression. Usually the actual stored integer data. 
        DIMENSION,... dimension descriptor. The number of dimension 
                descriptors must match rank of DATA. 
      >>>>>>>>>WARNING, if the dimension is not of data type dimension, then 
                subscripting is by index value and not axis value. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Example.
  MAKE_SIGNAL(  MAKE_WITH_UNITS( $VALUE*6, 'm/s^2' ), /* the DATA part of the Signal */
                MAKE_WITH_UNITS( 5./1024*[1,2,3], 'V' ), /* the RAW part of the Signal */
                MAKE_DIMENSION( MAKE_WINDOW( 0,2,10. ),
                                MAKE_SLOPE( MAKE_WITH_UNITS(3.,'s') )
                              )
             )
Here the RAW part of the Signal is referred to in the expression for the DATA part as $VALUE.

NOTE: Use BUILD_xxx for immediate structure building. (From Build_Call.)
      Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables.
      Use this form if IMAGE or ROUTINE must be expressions.
MAKE_SLOPE (SLOPE,[BEGIN,[END]]...)

      MDS Operation. 
      
      Make a piece-wise linear slope-axis for dimension. 
      >>>>>>>>>WARNING, this is a deprecated feature and there is no assurance 
                of future support. 

      Arguments Optional: BEGIN, END, and more segments. 
        SLOPE   real scalar. Ratio of change of axis to change of index. 
        BEGIN   real scalar. Axis starting point. 
        END     real scalar. Axis ending point, the last value. 
 
                Note. The axis may be divided into multiple segments. 
                Without a window ISTART, there must be a first BEGIN. 
                If the slope is used in a dimension with a window,  then 
                the greater of the window's ISTART or the first BEGIN is 
                used and the lesser of the window's IEND or the last END 
                is used, assuming positive slope. 
 
      Signals.  None. 
      Units...  Combined from SLOPE and BEGIN. END units are combined 
                from the first segment if no BEGIN is applied. 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Examples. MAKE_SLOPE(3.0) is a constant ratio of 3 axis values 
                per index step. Axes can be infinite in extent. 
                A finite axis of MAKE_SLOPE(3,12,21) has data points 
                [12,15,18,21]. 
                MAKE_SLOPE(3.0,,10.,4.0,20.0) has points at 
                ...,4.0,7.0,20.0,24.0,28.0,... . Note that the dead zone 
                from 10 to 20 is absent and that thus 10.0 becomes 20.0. 
                Often BEGIN[j+1] is the same as END[j] + SLOPE[j] as in 
                a clock that does not stop but does change rate. 
MAKE_WINDOW ([ISTART],[IEND],[X_AT_0])

      MDS Operation. 
      
      Make a window descriptor for a dimension. 

      Arguments Optional: ISTART, IEND, X_AT_0. 
        ISTART  integer scalar. First element stored. 
        IEND    integer scalar. Last element stored. 
        X_AT_0  real scalar. Value at index zero. 
                The effective defaults are -HUGE(1), +HUGE(1), and zero. 
                If missing completely, the beginning of the axis is 
                used for X_AT_0 when evaluating a dimension. 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Example.  MAKE_WINDOW(-1024,7168,MAKE_WITH_UNIT(-0.1,'s')) 
MAKE_WITH_UNITS (DATA,UNITS)

      MDS Operation. 
      
      Make a describe data with units. 
      
      Arguments 
        DATA    any expression that DATA(this) will be valid. 
        UNITS   character string. See the primary section on "Units". 
 
      Result..  Class-R descriptor. 
                Use BUILD_xxx for immediate structure building. 
                Use MAKE_xxx in FUNs for evaluated non-PUBLIC variables. 
 
      Example.  _S = MAKE_WITH_UNITS($VALUE*6,'m/s^2') can be used in a 
                MAKE_SIGNAL(_S,MAKE_WITH_UNITS(5./1024*raw_node,'V') 
                or similar. Note this could also have been 
                MAKE_WITH_UNITS(MAKE_SIGNAL($VALUE*6, 
                MAKE_WITH_UNITS(5./1024*raw_node,'V')),'m/s^2').