Operator ASSI
                                             DATE     99/07/09
    Opérateur ASSI
    --------------


    1st possibility
   _________________

       RES1 ... RESn = ASSI IASSIS INS1 ... INSP;
           
  Description :
  _____________

    The ASSIstant operator grants to the assistant IASSIS (ENTIER)
 the elementary instruction :

     RES1 ... RESn = INS1 ... INSP;

    If the parallel version of Castem is used, the instruction will
 be ended as soon as the assistant take it's work. The use of the 
 results will wait for their availibility.
 
    Example 1:
    _______

    MAT1 = ASSIS 1 MATER MODEL1 YOUNG 1E5 NU 0.3;

    The assistant number 1 will execute :

    MAT1 =  MATER MODEL1 YOUNG 1E5 NU 0.3;

    Castem will execute the following instructions without waiting 
 for the creation of the field MAT1 by the assistant 1.

    If an other instruction use MAT1, it will be blocked waiting the
 availibility of MAT1 (on the master or on an assistant).


    2nd possibility
   _________________

    RES1 ... RESn = ASSI 'TOUS' INS1 ... INSP;

  Description :
  _____________

    If the same instruction is executed on several assistants but
 with different data, it suffices to use the option 'TOUS'
 and to stock data to distribute in the form tables of subtype
 ESCLAVE where data associated to the assistant I are found in the indication I.
 The results are stocked in tables of subtype ESCLAVE. 

    Example 2 :
    ___________

     TMAT1 = 'ASSI' 'TOUS' MATER TMODL1 'YOUNG' 1E5 'NU' 0.3 ;

       TMODL1     : table of subtype ESCLAVE
       TMODL1 . i : model associated to the assistant i
       TMAT1      : table of subtype ESCLAVE
       TMAT1 . i  : result associated to the assistant i

  
    Example 3 :
    ___________

       TMODL1 = 'TABLE' ESCLAVE ;
       TMODL1 . 1 = MODL1 ;  
       TMODL1 . 3 = MODL2 ;  TMODL1 . 4 = MODL4 ;
      
*       Declaration of 2 assistants
       'OPTI' 'ASSI' 2 ; 

       TMAT1 = ASSI 'TOUS' 'MATER' TMODL1 'YOUNG' 1E5 'NU' 0.3 ;
 the preceding instruction is equivalent to next instructions : 
       TMAT1 = 'TABLE' ESCLAVE ;
       TMAT1 . 1 = ASSI 1 'MATER' TMODL1 . 1 'YOUNG' 1E5 'NU' 0.3 ;
       TMAT1 . 3 = 'MATER' TMODL1 . 3 'YOUNG' 1E5 'NU' 0.3 ;
       TMAT1 . 4 = ASSI 1 'MATER' TMODL1 . 4 'YOUNG' 1E5 'NU' 0.3 ;


 Remarks :
 ___________

   During the utilization of the option 'TOUS', all ESCLAVES tables
 existent in the instruction have to have the same indices.

    It is very strongly dissuaded to transfer tables to a
 assistant i because these objects can be modified during the operation. 

   It is possible to make work the master as an assistant (the
  umber of assistant that is associated it is 0).

   It is possible to define an IASSIS greater than the number
 declared assistant NBASS (opti assi nbass;). The operation will be
 transferred on the assistant I defined by I= modulo (IASSIS, nbass + 1)
  (the master playing also the function of an assistant).

   These last two properties allow to test a parallel GIBIANE program 
on a sequential machine by defining 0 assistant ('OPTI' 'ASSI' 0;).