verita
C VERITA SOURCE CHAT 06/03/29 21:37:02 5360 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C======================================================================= C POUR OPERATEUR EVOL SOLU "TABLE" C VERIFIE LA COMPATIBILITE DU CONTENU DE LA TABLE ET DU LISTREEL IPX C RETOUR :DANS ILEX UN SEGMENT MLENTI QUI CONTIENT LA LISTE DES CHAMPS C A PRENDRE. C :ITYPE ='TEMPS ' C CREATION : 24/08/89 C PROGRAMMEUR : LENA C======================================================================= CHARACTER*8 ITYPE,ICHA2,MOMO,MOE,MOT,CHARRE CHARACTER*15 ICHAI CHARACTER*4 MCHA LOGICAL L0,L1 -INC PPARAM -INC CCOPTIO -INC SMELEME -INC SMTABLE -INC SMLENTI -INC SMSOLUT -INC SMLREEL DATA MOT /'MOT '/ DATA MOE /'ENTIER '/ DATA ICHAI /'TEMPS_DE_SORTIE'/ C====================================================================== C SI ITOUS=0, ON DOIT AVOIR UN IPX EN DONNEE IF(IPX.EQ.0.AND.ITOUS.EQ.0) THEN MOTERR(1:8)='LISTREEL' GOTO 5000 ENDIF C --- ON RECUPERE LE POINTEUR SUR LA LISTE DES PAS DE SORTIE LBO=0 1 'LISTREEL',I1,X1,ICHA2,L1,LBO) MLREEL=LBO SEGACT MLREEL SEGDES MLREEL IDEPAR=0 * CALL ECROBJ('TABLE',ITABO) * CALL INDETA * CALL LIROBJ('TABLE',ITABIN,1,IRETAB) * IF (IERR.NE.0) RETURN * * Boucle sur les indices de la table MTABLE: * * MTABLE=ITABIN MTABLE=ITABO SEGACT MTABLE NINDIC = MLOTAB DO 100 INDICE = 1 , NINDIC I0= INDICE * MOMO =MOE * CALL ACCTAB(ITABIN,'ENTIER ',I0,X0,' ',L0,IRET0, * * MOMO ,I1,X1,CHARRE,L1,IRET1) * IF (MOMO .EQ.MOE) THEN IF ( MTABTI(INDICE).EQ.MOE) THEN IDEPAR=INDICE GO TO 110 ENDIF 100 CONTINUE 110 SEGDES MTABLE C----------------------------- IF (ITOUS.EQ.1) GO TO 10 C----------------------------- C------ON NE PREND PAS TOUS LES PAS C **** ON VERIFIE D'ABORD QUE LA SUITE IPX EST CROISSANTE C IF(IPX.NE.0) THEN MLREE1=IPX SEGACT MLREE1 DO 161 I=2,LCAS C LA SUITE DE REELS DOIT ETRE CROISSANTE GOTO 5000 161 CONTINUE ENDIF C--- ON VA CREER LA TABLE DES INDICES A PRENDRE JG=LCAS SEGINI MLENTI C MLREEL=LBO SEGACT MLREEL * PRECI = 1.E-3 ITOS=1 DO 152 KJ=1,LCAS IF (AR.LE.PRECI) THEN GO TO 149 ELSE RAR=ABS(1.-AR) IF (RAR.LE.PRECI) THEN IPOS=IPOS+1 GO TO 149 ELSE MOTERR(1:8) = 'TABLE ' MOTERR(9:16) ='LISTREEL' GO TO 5000 ENDIF ENDIF 149 LECT(KJ) = IPOS ITOS=IPOS 152 CONTINUE SEGDES MLREE1 SEGDES MLREEL * JG=LCAS SEGINI MLENT1 MTAB1 = ITABO SEGACT MTAB1 DO 120 I=1,LCAS IT=LECT(I)+IDEPAR-1 MTAB2 = MTAB1.MTABIV(IT) SEGACT MTAB2 MLENT1.LECT(I)= MTAB2.MTABIV(ICHA) SEGDES MTAB2 120 CONTINUE SEGDES MLENT1 SEGSUP MLENTI ILEX=MLENT1 GO TO 5001 C C ****** CAS ITOUS=1 ************************* C 10 CONTINUE C JG=LTE SEGINI MLENTI MTAB1 = ITABO SEGACT MTAB1 IT=IDEPAR-1 DO 1110 I=1,LTE IT=IT+1 MTAB2 = MTAB1.MTABIV(IT) SEGACT MTAB2 LECT (I)= MTAB2.MTABIV(ICHA) SEGDES MTAB2 1110 CONTINUE SEGDES MLENTI 11 CONTINUE ILEX=MLENTI 5001 ITYPE='TEMPS' SEGDES MTAB1 MLENTI = ILEX SEGACT MLENTI JGG=LECT(/1) SEGDES MLENTI 5000 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales