SUBROUTINE OIC2RX (LIC,KR,JR);                                               SUBROUTINE OIX2RX (LIX,KR,JR);
"--------------------------------------------------------------------        CREATE ROW CROSS TABLE FOR THE PRODUCT OF A GIVEN  ROW OF C(XG)
"-    CREATE ROW CROSS TABLE FOR THE PRODUCT OF A GIVEN C+ (CELL"            (EXTERNAL INTERFACE LIX) BY AH(GX).
"-    INTERFACE LIC) BY A**(-1)*B."                                          THERE IS ONLY ONE RDXT, ONE RDXTB, ONE RDXTE.
"-    THERE IS ONLY ONE RDXT, ONE RDXTB, ONE RDXTE."                         IQ(LRDXTB+3) (=# COL OF C-BLOCK) IS SUPPOSED TO BE FILLED LATER
"-    IF LQ(KR-JR) IS NOT ZERO THE 3 BANKS ARE ASSUMED TO EXIST, BUT"        BEFORE EACH CALL TO OMXER).
"-     MARKED FOR DROP; IN THAT CASE BITS IQDROP ARE RESET TO 0."            IF LQ(KR-JR) IS NOT ZERO THE 3 BANKS ARE ASSUMED TO EXIST, BUT
"-------------------------------------------------------------------         TO BE MARKED FOR DROP; IN THAT CASE BITS IQDROP ARE RESET TO 0.
DIMENSION MCDXT(4),MCDXTB(4),MCDXTE(4);
DATA MCDXT/'DXT ',2,2,1/;  "::>CDXT(XC) or XF(XI) Bk"
DATA MCDXTB/'DXTB',2,2,7/; "::>CDXB(XB) Bk"
DATA MCDXTE/'DXTE',1,1,5/; "::>CDXE(XB) Bk"
;
NODVKE=NODV;
NODV=NOWEZ;
;
IF LQ(KR-JR).GT.0
< LT=LQ(KR-JR);
  CALL SBIT0(IQ(LT),IQDROP);
  LTB=LQ(LT+OXCXB);
  CALL SBIT0(IQ(LTB),IQDROP);
  LTE=LQ(LTB+OXBXE);
  CALL SBIT0(IQ(LTE),IQDROP);
>ELSE                                                                                    idem
< CALL MQLIFT(LT,KR,-JR,MCDXT);
  CALL MQLIFT(LTB,LT,OXCXB,MCDXTB);
  CALL MQLIFT(LTE,LTB,OXBXE,MCDXTE);
>;
 IQ(LT+1)=1;
 IQ(LTB+4)=1;             CtAB will span on 1 BRow of Up               r
 IQ(LTB+7)=0;
 IQ(LTE+1)=1;
 IQ(LTE+3)=0;                                                                  ----------------------------------------------------
" "
LSV = LQ(LIC+OICSV);            SV related to this IC
LF  = LQ(LIC+OICFA);                                 belonging to Fc            LF=LQ(LIX+OIXFA);
LIF = LQ(LF+OFAIU);                                       under IFUp            LIF=LQ(LF+OFAIU);
" "                                                                             ;
"-    RDXTB"   (B=Bloc)                                                         !-    RDXTB
IQ(LTB+1) = 0_(LIC.IC).Int_Nb;       Low BRow Nb                                IQ(LTB+1)=0_(LIX.IX).Int_Nb;
IQ(LTB+2) = 0_(LIC.IC).Nb_Tr_Var;    # Rows of low B                   n        IQ(LTB+2)=0_(LIX.IX).Nb_Var;
IQ(LTB+3) = 0_(LSV.SV).Nb_St_Var;    # Cols " "                                 IQ(LTB+3)=0; filled later
       4    1                       will span on 1 Brow of Up                          4 =1
IQ(LTB+5) = 0_(LIF.IF).Int_Nb;       Upper BRow Nb (1 BR only)        \         IQ(LTB+5)=0_(LIF.IU).Int_Nb;
IQ(LTB+6) = 0_(LIF.IF).Nb_Var;       # Rows of Up                      n        IQ(LTB+6)=0_(LIF.IU).Nb_Var;
       7    0                        # Cols                           /                7 =0
" "
"-    RDXTE"   (E=Element)                                                      !-    RDXTE
       1  = 1                        # BRows of Low                                    1 =1
IQ(LTE+2) = 0_(LIF.IF).Int_Nb;       Upper BRow Nb (1 BR only)                  IQ(LTE+2)=0_(LIF.IU).Int_Nb;
       3  = 0                        Bloc 0_location in low (Ct) BRow  \               3 =0
IQ(LTE+4) = 0_(LIC.IC).Nb_Tr_Var;    # Cols                             r       IQ(LTE+4)=0_(LIX.IX).Nb_Var;
IQ(LTE+5) = 0_(LIC.IC).LTr_in_Fc;    starting from Col # in Up         /        IQ(LTE+5)=0_(LIX.IX).L_Var_in_Fc;
" "
NODV=NODVKE;
" "
RETURN;
END;
