*COMDECK  COMFMAV - MARK VARDIM APPROPRIATE FOR THIS ENTRY POINT. 
 MAV      CTEXT  COMFMAV - MARK VARDIM APPROPRIATE TO THIS ENTRY. 
**        MAV - MARK APPROPRIATE VARDIM.
* 
*         MAV SETS VD.ALO BIT IN VARDIM INFORMATION TABLE (T.VDI OR O$VD
*         MAV SETS VD.ALO BIT IN VARDIM INFORMATION TABLE 
*         (T. OR O$ VDI) FOR ALL VARDIM CELLS CONTAINING A VALUE DEFINED
*         FOR THIS ENTRY.  THIS INCLUDES ALL VARIABLE DIMENSION 
*         CODE FOR ARRAYS IN THE FP LIST OF THIS ENTRY AND
*         CHARACTER LENGTH TEMPS FOR PASSED-LENGTH ITEMS
*         APPEARING ON THIS LIST. 
* 
*         ENTRY  (X1) = SYMTAB ORDINAL OF ENTRY POINT (OR HEADER) 
  
 MAV      SUBR
  
*         CLEAR VD.ALO OF ALL VARDIM CELLS. 
  
          SA2    =X"O$"VDI
          SA3    =X"L$"VDI
          SB7    X3 
          CLAS=  X0,VD,ALO
          SA4    X2 
  
 MAV10    BX6    -X0*X4 
          SB7    B7-B1
          SA6    A4 
          SA4    A4+B1
          NZ     B7,MAV10    IF VDI NOT EXHAUSTED 
          SA2    "O$"SYM
          LX3    B1,X1
          IX4    X1+X3
          =B7    X2+WB.W
          SA2    B7+X4
          MX0    -WB.PNTL 
          LX2    -WB.PNTP 
          BX6    -X0*X2 
          ZR     X6,EXIT.    IF NO FP*S THIS ENTRY
          SA1    =X"O$"ENTP 
          IX0    X1+X6
          SA2    X0          SKIP HEADER
          S"BT"  60 
  
 MAV20    NZ     "BT",MAV30  IF THIS WORD NOT FINISHED
          S"BT"  60 
          SA2    A2+1 
  
 MAV30    S"BT"  "BT"-15
          MX0    -EF.ORDL 
          AX4    "BT",X2
          BX3    -X0*X4 
          ZR     X3,EXIT.    IF LAST PARAMETER
          LX4    B1,X3
          IX6    X3+X4
          SA5    B7+X6       WB(ENTP(I))
          HX5    WB.ARY 
          PL     X5,MAV90    IF NOT DIMENSIONED 
          MX3    -WB.PNTL 
          LX5    1+WB.ARYP-WB.PNTP
          BX3    -X3*X5 
          SA1    =X"O$"DIM
          IX5    X1+X3
          SA1    X5 
          HX1    DH.VD
          PL     X1,MAV90    IF NOT VARIABLE-DIMENSION
          LX1    DH.VDP-DH.VPP
          PL     X1,MAV40    IF NOT VARIABLE PRODUCT OF SPANS 
          BX3    X1 
          LX3    1+DH.VPP-DH.PSP
          RJ     MVD         MARK PRODUCT OF SPAN VD. 
  
 MAV40    LX1    1+DH.VPP-DH.DIMP 
          MX3    -DH.DIML 
          BX3    -X3*X1      NUMBER OF DIMS 
          SB2    X3 
  
 MAV50    =A1    A1+1 
          LX1    59-D1.SPANP-DM.TDP 
          PL     X1,MAV60    IF NOT VARIABLE SPAN 
          LX1    1+DM.TDP 
          BX3    X1 
          RJ     MVD         MARK SPAN VD.
  
 MAV60    =A1    A1+1 
          LX1    59-D2.LBP-DM.TDP 
          PL     X1,MAV70    IF VARIABLE LOWER BOUND
          BX3    X1 
          LX3    1+DM.TDP 
          RJ     MVD         MARK LOWER BOUND VD. 
  
 MAV70    LX1    D2.LBP-D2.UBP
          PL     X1,MAV80    IF NOT VARIABLE UPPER BOUND
          BX3    X1 
          LX3    1+DM.TDP 
          RJ     MVD         MARK UPPER BOUND VD. 
  
 MAV80    =B2    B2-1 
          NZ     B2,MAV50    IF MORE DIMENSIONS TO GO 
  
 MAV90    =A3    A5+WC.W-WB.W 
          HX3    WC.CTYP
          PL     X3,MAV20    IF NOT PASSED-LENGTH CHARACTER FORMAL
          LX3    1+WC.CTYPP-WC.CLENP
          RJ     MVD         MARK CLEN VD.
          EQ     MAV20
 MVD      SPACE  4,8
**        MVD - MARK VARDIM AS ALLOWED FOR THIS ENTRY.
* 
*         ENTRY - X3 CONTAINS VD. BIAS, RIGHT JUSTIFIED.
* 
*         PRESERVES - X1,X2,X5, A1,A2,A5, B4,B7 
  
 MVD      SUBR
          MX0    -WC.CLENL
          BX6    -X0*X3 
          SA3    "O$"VDI
          CLAS=  X4,VD,ALO
          IX0    X3+X6
          SA3    X0 
          BX6    X4+X3
          SA6    A3          ALO[VDI(ORD)] = 1
          EQ     EXIT.
 COMFMAV  ENDX
