C COPBA2 SOURCE CHAT 05/01/12 22:19:27 5004 SUBROUTINE COPBA2(LCHAIN,ITBAS,ITBA2) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) *--------------------------------------------------------------------* * * * Duplique la table des modes, cr{ation d'un nouveau point rep}- * * re, d'un nouveau chpoint, d'un nouveau chamelem, d'une nouvelle* * table des d{placements g{neralis{s. * * * * Param}tres: * * * * e LCHAIN contient les chaines de caract}res de la table ITBAS. * * e ITBAS table de sous-type BASE_DE_MODES, contenant les modes, * * ou de sous-type PSEUDO_MODE, contenant les pseudo-modes* * s ITBA2 table dupliqu{e. * * * * Auteur, date de cr{ation: * * * * Lionel VIVAN, le 15 mai 1990. * * * *--------------------------------------------------------------------* * * -INC CCOPTIO -INC SMTABLE * INTEGER LCHAIN(*) * CALL COPIE6(ITBAS,ITBA2) MTABLE = ITBAS SEGACT MTABLE LONG = MLOTAB MTAB1 = ITBA2 SEGACT MTAB1*MOD IM = 1 DO 10 I = 1,LONG IF (MTABTI(I).EQ.'ENTIER ' .AND. MTABII(I).EQ.IM .AND. & MTABTV(I).EQ.'TABLE ') THEN IM = IM + 1 ITMOD = MTABIV(I) CALL COPIE6(ITMOD,ITMO2) MTAB1.MTABIV(I) = ITMO2 MTAB2 = ITMOD SEGACT MTAB2 LON2 = MTAB2.MLOTAB MTAB3 = ITMO2 SEGACT MTAB3*MOD DO 20 I2 = 1,LON2 IF (MTAB2.MTABTI(I2).EQ.'MOT ') THEN IF (MTAB2.MTABII(I2).EQ.LCHAIN(1) .AND. & MTAB2.MTABTV(I2).EQ.'POINT ') THEN IPTR = MTAB2.MTABIV(I2) CALL COPIE7(IPTR,INOPT) MTAB3.MTABIV(I2) = INOPT ELSE IF (MTAB2.MTABII(I2).EQ.LCHAIN(2) .AND. & MTAB2.MTABTV(I2).EQ.'TABLE ') THEN ITDG = MTAB2.MTABIV(I2) CALL COPIE6(ITDG,ITDG2) MTAB3.MTABIV(I2) = ITDG2 ELSE IF (MTAB2.MTABII(I2).EQ.LCHAIN(3) .AND. & MTAB2.MTABTV(I2).EQ.'CHPOINT ') THEN ICHD = MTAB2.MTABIV(I2) CALL COPIE2(ICHD,ICHD2) MTAB3.MTABIV(I2) = ICHD2 ELSE IF (MTAB2.MTABII(I2).EQ.LCHAIN(4) .AND. & MTAB2.MTABTV(I2).EQ.'MCHAML ') THEN ICHC = MTAB2.MTABIV(I2) CALL COPIE8(ICHC,ICHC2) MTAB3.MTABIV(I2) = ICHC2 ELSE IF (MTAB2.MTABII(I2).EQ.LCHAIN(5) .AND. & MTAB2.MTABTV(I2).EQ.'CHPOINT ') THEN ICHD = MTAB2.MTABIV(I2) CALL COPIE2(ICHD,ICHD2) MTAB3.MTABIV(I2) = ICHD2 ELSE IF (MTAB2.MTABII(I2).EQ.LCHAIN(6) .AND. & MTAB2.MTABTV(I2).EQ.'CHPOINT ') THEN ICHD = MTAB2.MTABIV(I2) CALL COPIE2(ICHD,ICHD2) MTAB3.MTABIV(I2) = ICHD2 ELSE IF (MTAB2.MTABII(I2).EQ.LCHAIN(7) .AND. & MTAB2.MTABTV(I2).EQ.'MCHAML ') THEN ICHC = MTAB2.MTABIV(I2) CALL COPIE8(ICHC,ICHC2) MTAB3.MTABIV(I2) = ICHC2 ELSE IF (MTAB2.MTABII(I2).EQ.LCHAIN(8) .AND. & MTAB2.MTABTV(I2).EQ.'CHPOINT ') THEN ICHD = MTAB2.MTABIV(I2) CALL COPIE2(ICHD,ICHD2) MTAB3.MTABIV(I2) = ICHD2 ELSE IF (MTAB2.MTABII(I2).EQ.LCHAIN(9) .AND. & MTAB2.MTABTV(I2).EQ.'CHPOINT ') THEN ICHD = MTAB2.MTABIV(I2) CALL COPIE2(ICHD,ICHD2) MTAB3.MTABIV(I2) = ICHD2 ENDIF ENDIF 20 CONTINUE * end do SEGDES MTAB2 SEGDES MTAB3 ENDIF 10 CONTINUE * end do SEGDES MTABLE SEGDES MTAB1 * END