C LIRTAB SOURCE CHAT 09/06/17 21:15:05 6428 SUBROUTINE LIRTAB(ITYP,IRETA,ICODE,IRETOU) IMPLICIT INTEGER(I-N) -INC CCOPTIO -INC CCNOYAU CHARACTER*(*)ITYP CHARACTER*8 TYPE,TAPIND,TYPOBJ,CHARIN CHARACTER*72 CHARRE CHARACTER*8 LETYPE REAL*8 XVALIN,XVALRE LOGICAL IV,LOGIN,LOGRE SEGMENT IVAL1 INTEGER NOVAL(N) ENDSEGMENT SEGMENT IVAL2 CHARACTER*8 TYVAL(N) ENDSEGMENT SEGMENT IVAL3 INTEGER IVAL(N) ENDSEGMENT IRET = 0 ireta=0 iretou=0 N=0 IFIN=0 LE= LEN(ITYP) SEGINI IVAL1,IVAL2,IVAL3 TYPE=ITYP 1 CONTINUE MOTERR(1:8)=TYPE CALL MESLIR(-173) CALL LIROBJ ('TABLE',IRET,ICODE,IRETO) * write(6,*) ' lecture de la table ' , iret IF(IERR.NE.0) GO TO 10 IF(IRETO.EQ.0)GO TO 10 TYPOBJ = ' ' CALL ACCTAB(IRET,'MOT ',IVALIN,XVALIN,'SOUSTYPE',LOGIN, $ IOBIN, TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,IOBRE) IF(TYPOBJ.EQ.'MOT ') THEN * write(6,*) ' le ivalre ' , le , ivalre IF(IVALRE.EQ.LE) THEN IF(CHARRE(1:LE).EQ.ITYP) THEN * ON A TROUVE LA TABLE RECHERCHEE IL FAUT METTRE A JOUR LA * LECTURE DES TABLES PRECEDEMMENT LUES ireta=iret iretou=1 * write(6,*) ' c est celle la' GO TO 10 ENDIF ENDIF ENDIF * CE N EST PAS UNE BONNE TABLE ON REMPLIT IVAL ET ON RETOURNE EN * LECTURE N = N + 1 SEGADJ IVAL1,IVAL2,IVAL3 IVAL(N)=IMOTLU NOVAL(N)=INOOB1(IMOTLU) TYVAL(N)=INOOB2(IMOTLU) GO TO 1 * * AVANT DE SORTIR ON REMET LES TABLES LUES PAS(DU BON SOUSTYPE) EN * LECTURE * 10 CONTINUE ID = IVAL(/1) IF(ID.EQ.0) GO TO 20 DO 2 J=1,ID IV=.TRUE. imola= IVAL(J) IF(INOOB1(imola).NE.NOVAL(J)) IV=.FALSE. IF(INOOB2(imola).NE.TYVAL(J)) IV=.FALSE. IF(IV) THEN JPOOB1(imola)=.TRUE. IF(IBPILE.GT.imola) IBPILE=imola IF(IHPILE.LT.imola) IHPILE=imola ELSE NN = JPOOB1(/1) DO 5 KK=1,NN IF(INOOB1(KK).NE.NOVAL(KK)) GO TO 5 IF(INOOB2(KK).NE.TYVAL(KK)) GO TO 5 IF(JPOOB1(KK)) GO TO 5 JPOOB1(KK)=.TRUE. GO TO 6 5 CONTINUE CALL ERREUR(5) RETURN 6 CONTINUE ENDIF 2 CONTINUE 20 CONTINUE SEGSUP IVAL1,IVAL2,IVAL3 RETURN END