odra.4 inicsource
INICJATOR PROLOGU (GROUPE D'INTELLIGENCE ARTIFICIELLE,U.E.R MARSEILLE - LUMINY / INSTYTUT INFORMATYKI,UNIWERSYTET WARSZAWSKI) WERSJA UZYTKOWA 1.B (KWIECIEN 1983R.)
C*********************************************************************** C* * C* ** I N I C J A T O R P R O L O G U ** * C* * C* (GROUPE D'INTELLIGENCE ARTIFICIELLE,U.E.R MARSEILLE - LUMINY / C* INSTYTUT INFORMATYKI,UNIWERSYTET WARSZAWSKI) * C* * C* WERSJA UZYTKOWA 1.B (KWIECIEN 1983R.) * C* * C*********************************************************************** C C----------------------------------------------------------------------- C WZOR KART STERUJACYCH : CEXEC DUMP ON CEXEC PROGRAM(INIC) CEXEC COMPRESS INTEGER AND LOGICAL CEXEC OUTPUT 6=LP0 CEXEC INPUT 3=ED3/FORMATTED(BOOTSTRAPTXT) CEXEC OUTPUT 1=ED1/(TRANSIENTST) CEXEC TRACE 0 CEXEC END C C----------------------------------------------------------------------- C MASTER INIC INTEGER TAB(20000),PILE(2),TERM,TERM1,INST,INST1,SUB,ITER, 1IVAR,IBAC,IREC,M,CLAUSA,CLAUSR,INSTA,INSTR,RETOUR,RESTER,COMPTE, INIFT40 2LIMITE,POIDS,T,NIL,CLO,INPL,PRED,DTAB,DPILE,NBRE,MARGE,CNIL,CPOINT INIFT40 3,SUIV,INMO,BOULOT,PLUS,ACPL,MOINS,ACMO,EVAL,U,ENTIER,UNLETT,LETTRE INIFT40 4,CLES(800),CALCUL(256),ENTRE(80),SORTIE(120),CODE,AXNIL,AXPOIN 4,CHIFFR,CARACT,ARG,DEBUT,AXTER,NOM,NEXT,SUBSAX,CFINAX,ERREUR INIFT40 5,EXPLOR,ISTOR,SEPAR,BOOL,UNAT,AJB,NOP,BAS,TT,ENTRE2(80),IENTR2 INIFT40 6,ZERO,DIESE,EGALE,PVIRG * ,SORTI2(120),ISORT2 INTEGER WERSJA(7) COMMON INIFT40 1/ETIQ/ TAB,PILE,CLES,DPILE,DTAB,ITER,IVAR,IREC,IBAC,CLAUSA,CLAUSR, INIFT40 1 INSTA,INSTR,TERM,TERM1,INST,INST1,SUB,POIDS,PRED,NOM,AXTER,NEXT, INIFT40 2 INMO,INPL,ACMO,ACPL,CLO,SUIV,U,T,EVAL,ENTIER,UNLETT,NIL,MARGE, INIFT40 3 NBRE,LETTRE,CHIFFR,CARACT,CNIL,CPOINT,AXNIL,AXPOIN,ERREUR,BOULOT INIFT40 4 ,PLUS,MOINS,CFINAX,RETOUR,RESTER,COMPTE,LIMITE,SUBSAX,ARG,DEBUT INIFT40 5 ,EXPLOR,ISTOR,SEPAR,KEY,CODE,CALCUL,ENTRE,IENTRE,SORTIE,ISORTI INIFT40 6,IMPMAX,LECMAX,BOOL,UNAT,AJB,NOP,BAS,TT,ENTRE2,IENTR2 INIFT40 7,ZERO,DIESE,EGALE,PVIRG COMMON /WERSJA/ WERSJA CALL TIME(CZAS) CALL DATE(DATA) WRITE(6,9999) WERSJA,DTAB,DPILE,DATA,CZAS 9999 FORMAT(7H1PROLOG,6X,7A4,5X,3HTAB,I6,3X,4HPILE,I6,8X, * 4HDATA,2X,A8,6X,4HCZAS,2X,A8) DO 12 I=1,DTAB INIFT40 12 TAB(I)=0 INIFT40 DO 13 I=1,373,6 INIFT40 13 TAB(I)=CPOINT INIFT40 DO 23 I=2,374,6 INIFT40 23 TAB(I)=I+2 DO 33 I=3,375,6 INIFT40 33 TAB(I)=CNIL INIFT40 READ(3,53) ENTRE INIFT40 53 FORMAT(80A1) INIFT40 WRITE(6,9053) ENTRE 9053 FORMAT(1H0,80A1) DO 63 I=6,378,6 INIFT40 63 TAB(I)=ENTRE(I/6) INIFT40 READ(3,73)(TAB(I),I=379,458) INIFT40 73 FORMAT(20I4) INIFT40 READ(3,74) (CALCUL(I),I=1,256) INIFT40 74 FORMAT(20I4) INIFT40 WRITE(6,9073)(TAB(I),I=379,458),(CALCUL(I),I=1,256) 9073 FORMAT(1X,20I4,/) DO 83 I=1,800 INIFT40 83 CLES(I)=0 INIFT40 CLES(16)=391 INIFT40 CLES(34)=399 INIFT40 CLES(88)=406 INIFT40 CLES(174)=449 INIFT40 CLES(249)=426 INIFT40 CLES(584)=386 INIFT40 PILE(1)=0 INIFT40 PILE(2)=432 INIFT40 DO 3 I=1,IMPMAX,1 INIFT40 3 SORTIE(I)=TAB(TAB(2)+CODE) INIFT40 C*********************************************************************** INIFT40 C* LECTURE ET ECRITURE DES PREDICAT....................................* INIFT40 C*********************************************************************** INIFT40 EXPLOR=LECMAX INIFT40 K=0 INIFT40 5 CALL LIRE INIFT40 10 CALL ECRIRE INIFT40 K=K-1 INIFT40 CALL ASHCOD(DEBUT) INIFT40 IF(UNLETT.EQ.1.AND.ENTRE(EXPLOR)-ZERO.EQ.0.AND.K.LT.0) GO TO 32 TAB(ITER+PRED)=K INIFT40 IF(K.EQ.NIL) K=1 INIFT40 TAB(ITER+POIDS)=ENTRE(EXPLOR)-ZERO TAB(ITER+NOM)=DEBUT INIFT40 TAB(ITER+AXTER)=ITER+5 TAB(ITER+NEXT)=0 INIFT40 TAB(ITER+5)=ITER INIFT40 IF (TAB(ITER+POIDS).EQ.0) GO TO 40 INIFT40 MI=TAB(ITER+POIDS) INIFT40 DO 30 I=1,MI INIFT40 30 TAB(ITER+5+I)=-I INIFT40 GO TO 40 INIFT40 32 TAB(KEY+PRED)=K INIFT40 GO TO 105 INIFT40 40 IF (CLES(KEY)-NIL)60,50,60 INIFT40 50 CLES(KEY)=ITER INIFT40 GO TO 100 INIFT40 60 L=CLES(KEY)+NEXT INIFT40 70 IF (TAB(L)-NIL) 80,90,80 INIFT40 80 L=TAB(L)+NEXT INIFT40 GO TO 70 INIFT40 90 TAB(L)=ITER INIFT40 100 ITER=ITER+6+TAB(ITER+POIDS) INIFT40 105 CALL LIRE INIFT40 IF (ENTRE(EXPLOR).NE.DIESE) GO TO 10 EXPLOR=LECMAX INIFT40 IF (K-1) 110,120,110 INIFT40 110 K=1 INIFT40 GO TO 5 INIFT40 C*********************************************************************** INIFT40 C LECTURE ET CODAGE DES CLAUSES........................................* INIFT40 C*********************************************************************** INIFT40 120 ARG=0 INIFT40 N1=0 INIFT40 122 CALL LIRE INIFT40 IF (ENTRE(EXPLOR).EQ.DIESE) GO TO 500 TAB(ITER)=ENTRE(EXPLOR)-ZERO IDEBUT=ITER+3 INIFT40 ITER=ITER+1 130 CALL LIRE INIFT40 IF(CLAUSR.GT.LETTRE) GO TO 170 INIFT40 C*********************************************************************** INIFT40 C RECHERCHE DE L*ADRESSE DU PREDICAT...................................* INIFT40 C*********************************************************************** INIFT40 CALL ECRIRE INIFT40 CALL ASHCOD(DEBUT) INIFT40 IF (UNLETT.EQ.1.AND.ENTRE(EXPLOR)-ZERO.EQ.0) GO TO 142 I=CLES(KEY) INIFT40 140 CLAUSR=TAB(I+NOM) INIFT40 GO TO 144 INIFT40 142 CLAUSR=KEY-3 INIFT40 I=KEY INIFT40 144 CLAUSA=DEBUT INIFT40 UNLETT=0 INIFT40 CALL UNIF INIFT40 IF(T.EQ.0.AND.ENTRE(EXPLOR)-ZERO.EQ.TAB(I+POIDS)) GO TO 150 I=TAB(I+NEXT) INIFT40 N1=N1+1 INIFT40 IF (N1.EQ.100)STOP INIFT40 GO TO 140 INIFT40 150 MI=ITER-1 INIFT40 DO 160 J=DEBUT,MI INIFT40 160 TAB(J)=NIL INIFT40 N1=0 INIFT40 ARG=ARG+TAB(I+POIDS) TAB(DEBUT)=I INIFT40 ITER=DEBUT+1 INIFT40 GO TO 180 INIFT40 C*********************************************************************** INIFT40 C CAS D*UNE VARIABLE...................................................* INIFT40 C*********************************************************************** INIFT40 170 TAB(ITER)=-ENTRE(EXPLOR)+ZERO ITER=ITER+1 INIFT40 180 IF(ARG-NIL) 200,190,200 INIFT40 190 EXPLOR=LECMAX INIFT40 M=TAB(IDEBUT)+PRED INIFT40 IF (TAB(M).NE.NIL) GO TO 205 INIFT40 TAB(M)=ITER INIFT40 ITER=ITER+2 INIFT40 205 IF (TAB(IDEBUT-1)-PLUS) 220,210,220 INIFT40 210 I=TAB(M)+ACPL INIFT40 GO TO 230 INIFT40 220 I=TAB(M)+ACMO INIFT40 230 TAB(ITER+SUIV)=TAB(I) INIFT40 TAB(I)=ITER+CLO INIFT40 TAB(ITER+CLO)=IDEBUT-2 INIFT40 ITER=ITER+2 GO TO 122 200 ARG=ARG-1 INIFT40 GO TO 130 INIFT40 500 CONTINUE INIFT40 WRITE(6,600)ITER,IVAR,IBAC,DTAB 600 FORMAT(5H ITER,I8/5H IVAR,I8/5H IBAC,I8/5H DTAB,I8) ISORT2=0 DO 880 K=1,120 880 SORTI2(K) = TAB(6) DO 881 K=1,120 881 SORTIE(K) = TAB(6) LEVEL = 0 CALL DATE(DATA) CALL TIME(CZAS) WRITE(1)DATA,CZAS,WERSJA,ENTRE,SORTIE,IENTRE,ISORTI,ENTRE2,IENTR2, *SORTI2,ISORT2, 1CLES,CALCUL,ITER,IVAR,IBAC,DTAB INIFT40 * ,LEVEL WRITE(1)(TAB(I),I=1,ITER),(TAB(I),I=IVAR,DTAB),(PILE(I),I=1,IBAC) ENDFILE 1 WRITE(6,9998) DATA,CZAS,WERSJA 9998 FORMAT(//,17H PROLOG: *KONIEC*,10X, * 26HUTWORZONY STAN INICJALNY: ,A8,2X,A8,2X,7A4) STOP END INIFT40 SUBROUTINE LIRE INIFT40 INTEGER TAB(20000),PILE(2),TERM,TERM1,INST,INST1,SUB,ITER, 1IVAR,IBAC,IREC,M,CLAUSA,CLAUSR,INSTA,INSTR,RETOUR,RESTER,COMPTE, INIFT40 2LIMITE,POIDS,T,NIL,CLO,INPL,PRED,DTAB,DPILE,NBRE,MARGE,CNIL,CPOINT INIFT40 3,SUIV,INMO,BOULOT,PLUS,ACPL,MOINS,ACMO,EVAL,U,ENTIER,UNLETT,LETTRE INIFT40 4,CLES(800),CALCUL(256),ENTRE(80),SORTIE(120),CODE,AXNIL,AXPOIN 4,CHIFFR,CARACT,ARG,DEBUT,AXTER,NOM,NEXT,SUBSAX,CFINAX,ERREUR INIFT40 5,EXPLOR,ISTOR,SEPAR,BOOL,UNAT,AJB,NOP,BAS,TT,ENTRE2(80),IENTR2 INIFT40 6,ZERO,DIESE,EGALE,PVIRG COMMON INIFT40 1/ETIQ/ TAB,PILE,CLES,DPILE,DTAB,ITER,IVAR,IREC,IBAC,CLAUSA,CLAUSR, INIFT40 1 INSTA,INSTR,TERM,TERM1,INST,INST1,SUB,POIDS,PRED,NOM,AXTER,NEXT, INIFT40 2 INMO,INPL,ACMO,ACPL,CLO,SUIV,U,T,EVAL,ENTIER,UNLETT,NIL,MARGE, INIFT40 3 NBRE,LETTRE,CHIFFR,CARACT,CNIL,CPOINT,AXNIL,AXPOIN,ERREUR,BOULOT INIFT40 4 ,PLUS,MOINS,CFINAX,RETOUR,RESTER,COMPTE,LIMITE,SUBSAX,ARG,DEBUT INIFT40 5 ,EXPLOR,ISTOR,SEPAR,KEY,CODE,CALCUL,ENTRE,IENTRE,SORTIE,ISORTI INIFT40 6,IMPMAX,LECMAX,BOOL,UNAT,AJB,NOP,BAS,TT,ENTRE2,IENTR2 INIFT40 7,ZERO,DIESE,EGALE,PVIRG EXPLOR=EXPLOR+1 IF(EXPLOR.NE.LECMAX+1) GO TO 20 READ(3,11) ENTRE INIFT40 WRITE(6,10) ENTRE INIFT40 11 FORMAT(80A1) 10 FORMAT(1X,80A1) INIFT40 CALL RSHIFT(ENTRE,LECMAX) INIFT40 EXPLOR=1 INIFT40 20 I=CALCUL(ENTRE(EXPLOR)+1) CLAUSR=I INIFT40 RETURN INIFT40 END INIFT40 SUBROUTINE ECRIRE INIFT40 INTEGER TAB(20000),PILE(2),TERM,TERM1,INST,INST1,SUB,ITER, 1IVAR,IBAC,IREC,M,CLAUSA,CLAUSR,INSTA,INSTR,RETOUR,RESTER,COMPTE, INIFT40 2LIMITE,POIDS,T,NIL,CLO,INPL,PRED,DTAB,DPILE,NBRE,MARGE,CNIL,CPOINT INIFT40 3,SUIV,INMO,BOULOT,PLUS,ACPL,MOINS,ACMO,EVAL,U,ENTIER,UNLETT,LETTRE INIFT40 4,CLES(800),CALCUL(256),ENTRE(80),SORTIE(120),CODE,AXNIL,AXPOIN 4,CHIFFR,CARACT,ARG,DEBUT,AXTER,NOM,NEXT,SUBSAX,CFINAX,ERREUR INIFT40 5,EXPLOR,ISTOR,SEPAR,BOOL,UNAT,AJB,NOP,BAS,TT,ENTRE2(80),IENTR2 INIFT40 6,ZERO,DIESE,EGALE,PVIRG COMMON INIFT40 1/ETIQ/ TAB,PILE,CLES,DPILE,DTAB,ITER,IVAR,IREC,IBAC,CLAUSA,CLAUSR, INIFT40 1 INSTA,INSTR,TERM,TERM1,INST,INST1,SUB,POIDS,PRED,NOM,AXTER,NEXT, INIFT40 2 INMO,INPL,ACMO,ACPL,CLO,SUIV,U,T,EVAL,ENTIER,UNLETT,NIL,MARGE, INIFT40 3 NBRE,LETTRE,CHIFFR,CARACT,CNIL,CPOINT,AXNIL,AXPOIN,ERREUR,BOULOT INIFT40 4 ,PLUS,MOINS,CFINAX,RETOUR,RESTER,COMPTE,LIMITE,SUBSAX,ARG,DEBUT INIFT40 5 ,EXPLOR,ISTOR,SEPAR,KEY,CODE,CALCUL,ENTRE,IENTRE,SORTIE,ISORTI INIFT40 6,IMPMAX,LECMAX,BOOL,UNAT,AJB,NOP,BAS,TT,ENTRE2,IENTR2 INIFT40 7,ZERO,DIESE,EGALE,PVIRG DEBUT=ITER INIFT40 UNLETT=0 INIFT40 10 IF(CLAUSR.GT.LETTRE) GO TO 20 IF (ENTRE(EXPLOR).NE.EGALE) GO TO 12 CLAUSR=LETTRE+6 WRITE(6,900)CLAUSR INIFT40 900 FORMAT(7H CLAUSR,I8) 12 IF(ENTRE(EXPLOR).NE.PVIRG) GO TO 14 CLAUSR=LETTRE+12 WRITE(6,900)CLAUSR INIFT40 14 UNLETT=UNLETT+1 TAB(ITER)=CPOINT INIFT40 TAB(ITER+1)=TAB(CLAUSR) ITER=ITER+2 CALL LIRE INIFT40 GO TO 10 INIFT40 20 TAB(ITER)=CNIL INIFT40 ITER=ITER+1 RETURN INIFT40 END INIFT40 SUBROUTINE ASHCOD(I) INIFT40 INTEGER TAB(20000),PILE(2),TERM,TERM1,INST,INST1,SUB,ITER, 1IVAR,IBAC,IREC,M,CLAUSA,CLAUSR,INSTA,INSTR,RETOUR,RESTER,COMPTE, INIFT40 2LIMITE,POIDS,T,NIL,CLO,INPL,PRED,DTAB,DPILE,NBRE,MARGE,CNIL,CPOINT INIFT40 3,SUIV,INMO,BOULOT,PLUS,ACPL,MOINS,ACMO,EVAL,U,ENTIER,UNLETT,LETTRE INIFT40 4,CLES(800),CALCUL(256),ENTRE(80),SORTIE(120),CODE,AXNIL,AXPOIN 4,CHIFFR,CARACT,ARG,DEBUT,AXTER,NOM,NEXT,SUBSAX,CFINAX,ERREUR INIFT40 5,EXPLOR,ISTOR,SEPAR,BOOL,UNAT,AJB,NOP,BAS,TT,ENTRE2(80),IENTR2 INIFT40 6,ZERO,DIESE,EGALE,PVIRG COMMON INIFT40 1/ETIQ/ TAB,PILE,CLES,DPILE,DTAB,ITER,IVAR,IREC,IBAC,CLAUSA,CLAUSR, INIFT40 1 INSTA,INSTR,TERM,TERM1,INST,INST1,SUB,POIDS,PRED,NOM,AXTER,NEXT, INIFT40 2 INMO,INPL,ACMO,ACPL,CLO,SUIV,U,T,EVAL,ENTIER,UNLETT,NIL,MARGE, INIFT40 3 NBRE,LETTRE,CHIFFR,CARACT,CNIL,CPOINT,AXNIL,AXPOIN,ERREUR,BOULOT INIFT40 4 ,PLUS,MOINS,CFINAX,RETOUR,RESTER,COMPTE,LIMITE,SUBSAX,ARG,DEBUT INIFT40 5 ,EXPLOR,ISTOR,SEPAR,KEY,CODE,CALCUL,ENTRE,IENTRE,SORTIE,ISORTI INIFT40 6,IMPMAX,LECMAX,BOOL,UNAT,AJB,NOP,BAS,TT,ENTRE2,IENTR2 INIFT40 7,ZERO,DIESE,EGALE,PVIRG COMPTE=0 INIFT40 J=I+1 KEY=TAB(J) INIFT40 IF (TAB(J+1).EQ.CNIL.OR.COMPTE.EQ.2) RETURN J=J+2 KEY=KEY+TAB(J)/2 20 IF(TAB(J+1).EQ.CNIL.OR.COMPTE.EQ.2) RETURN J=J+2 KEY=MOD(KEY+TAB(J)*2**COMPTE,800)+1 COMPTE=COMPTE+1 GO TO 20 INIFT40 END INIFT40 SUBROUTINE RSHIFT(IVEC,IDIM) INIFT40 DIMENSION IVEC(IDIM) INIFT40 DO 10 I=1,IDIM INIFT40 J=0 CALL COPY(1,J,4,IVEC(I),1) 10 IVEC(I)=J RETURN INIFT40 END INIFT40 BLOCK DATA INIFT40 INTEGER WERSJA(7) INTEGER TAB(20000),PILE(2),TERM,TERM1,INST,INST1,SUB,ITER, 1IVAR,IBAC,IREC,M,CLAUSA,CLAUSR,INSTA,INSTR,RETOUR,RESTER,COMPTE, INIFT40 2LIMITE,POIDS,T,NIL,CLO,INPL,PRED,DTAB,DPILE,NBRE,MARGE,CNIL,CPOINT INIFT40 4,CLES(800),CALCUL(256),ENTRE(80),SORTIE(120),CODE,AXNIL,AXPOIN 3,SUIV,INMO,BOULOT,PLUS,ACPL,MOINS,ACMO,EVAL,U,ENTIER,UNLETT,LETTRE INIFT40 4,CHIFFR,CARACT,ARG,DEBUT,AXTER,NOM,NEXT,SUBSAX,CFINAX,ERREUR INIFT40 5,EXPLOR,ISTOR,SEPAR,BOOL,UNAT,AJB,NOP,BAS,TT,ENTRE2(80),IENTR2 INIFT40 6,ZERO,DIESE,EGALE,PVIRG COMMON INIFT40 1/ETIQ/ TAB,PILE,CLES,DPILE,DTAB,ITER,IVAR,IREC,IBAC,CLAUSA,CLAUSR, INIFT40 1 INSTA,INSTR,TERM,TERM1,INST,INST1,SUB,POIDS,PRED,NOM,AXTER,NEXT, INIFT40 2 INMO,INPL,ACMO,ACPL,CLO,SUIV,U,T,EVAL,ENTIER,UNLETT,NIL,MARGE, INIFT40 3 NBRE,LETTRE,CHIFFR,CARACT,CNIL,CPOINT,AXNIL,AXPOIN,ERREUR,BOULOT INIFT40 4 ,PLUS,MOINS,CFINAX,RETOUR,RESTER,COMPTE,LIMITE,SUBSAX,ARG,DEBUT INIFT40 5 ,EXPLOR,ISTOR,SEPAR,KEY,CODE,CALCUL,ENTRE,IENTRE,SORTIE,ISORTI INIFT40 6,IMPMAX,LECMAX,BOOL,UNAT,AJB,NOP,BAS,TT,ENTRE2,IENTR2 INIFT40 7,ZERO,DIESE,EGALE,PVIRG COMMON /WERSJA/ WERSJA DATA POIDS,T,NIL,CLO,ACPL,U,ISORTI,ZERO /8*0/, 1 SUIV,ACMO,PRED/3*1/,BOULOT,CODE/2*2/,ENTIER/0/,DIESE/19/, 2 LECMAX,IENTRE/2*80/,NBRE,MARGE,IMPMAX/-1000,10,69/,CNIL,CPOINT, 3 PLUS,MOINS,AXNIL,AXPOIN,ERREUR/386,391,399,406,385,396,454/, 4 CHIFFR,LETTRE,CARACT/374,314,158/,ITER/463/,IBAC/2/,EGALE/13/, * NOM,AXTER,NEXT /2,3,4/,INPL,UNAT,AJB /3*0/, * DTAB,IVAR,IREC /20000,20000,2/ * ,DPILE/2/ 6 ,BOOL/1/,TT,IENTR2/5,80/,PVIRG/11/ DATA WERSJA /4H IN,4HICJA,4HTOR ,4HIIUW, * 4H.1.A, 4H (04, 4H/79) / END INIFT40 SUBROUTINE UNIF INIFT40 INTEGER TAB(20000),PILE(2),TERM,TERM1,INST,INST1,SUB,ITER, 1IVAR,IBAC,IREC,M,CLAUSA,CLAUSR,INSTA,INSTR,RETOUR,RESTER,COMPTE, INIFT40 2LIMITE,POIDS,T,NIL,CLO,INPL,PRED,DTAB,DPILE,NBRE,MARGE,CNIL,CPOINT INIFT40 3,SUIV,INMO,BOULOT,PLUS,ACPL,MOINS,ACMO,EVAL,U,ENTIER,UNLETT,LETTRE INIFT40 4,CLES(800),CALCUL(256),ENTRE(80),SORTIE(120),CODE,AXNIL,AXPOIN 4,CHIFFR,CARACT,ARG,DEBUT,AXTER,NOM,NEXT,SUBSAX,CFINAX,ERREUR INIFT40 5,EXPLOR,ISTOR,SEPAR,BOOL,UNAT,AJB,NOP,BAS,TT,ENTRE2(80),IENTR2 INIFT40 6,ZERO,DIESE,EGALE,PVIRG COMMON INIFT40 1/ETIQ/ TAB,PILE,CLES,DPILE,DTAB,ITER,IVAR,IREC,IBAC,CLAUSA,CLAUSR, INIFT40 1 INSTA,INSTR,TERM,TERM1,INST,INST1,SUB,POIDS,PRED,NOM,AXTER,NEXT, INIFT40 2 INMO,INPL,ACMO,ACPL,CLO,SUIV,U,T,EVAL,ENTIER,UNLETT,NIL,MARGE, INIFT40 3 NBRE,LETTRE,CHIFFR,CARACT,CNIL,CPOINT,AXNIL,AXPOIN,ERREUR,BOULOT INIFT40 4 ,PLUS,MOINS,CFINAX,RETOUR,RESTER,COMPTE,LIMITE,SUBSAX,ARG,DEBUT INIFT40 5 ,EXPLOR,ISTOR,SEPAR,KEY,CODE,CALCUL,ENTRE,IENTRE,SORTIE,ISORTI INIFT40 6,IMPMAX,LECMAX,BOOL,UNAT,AJB,NOP,BAS,TT,ENTRE2,IENTR2 INIFT40 7,ZERO,DIESE,EGALE,PVIRG T=0 INIFT40 5 CLAUSA=CLAUSA+1 CLAUSR=CLAUSR+1 IF(TAB(CLAUSA).EQ.TAB(CLAUSR)) GO TO 20 INIFT40 T=1 INIFT40 RETURN INIFT40 20 IF(TAB(CLAUSA).EQ.CNIL) RETURN INIFT40 GO TO 5 INIFT40 END INIFT40 FINISH