actich
C ACTICH SOURCE OF166741 25/02/21 21:15:02 12166 C-------------------------------------------------------------------- C ACCELERATION SUR UNE COMPOSANTE D'UN CHAMELEM C-------------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCHAML -INC TMPTVAL SEGMENT NOMID CHARACTER*8 LESOBL(NBROBL),LESFAC(NBRFAC) ENDSEGMENT SEGMENT NOTYPE CHARACTER*16 TYPE(NBTYPE) ENDSEGMENT CHARACTER*(LOCOMP) MACOMP PARAMETER ( NINF=3 ) INTEGER INFOS(NINF) CHARACTER*16 MOT1,MOT2,MOT3 CHARACTER*(nconch) CONM MCHEL1 = IPCH1 MCHEL2 = IPCH2 MCHEL3 = IPCH3 SEGACT,MCHEL1,MCHEL2,MCHEL3 MOT1 = MCHEL1.TITCHE MOT2 = MCHEL2.TITCHE MOT3 = MCHEL3.TITCHE IF (MOT1.NE.MOT2.OR.MOT1.NE.MOT3) THEN GOTO 666 ENDIF * * Verification du lieu support des MCHAMLs * IF (IERR.NE.0) GOTO 666 IF(IERR.NE.0) GOTO 666 IF(IERR.NE.0) GOTO 666 IF((ISUP1.EQ.ISUP2.AND.ISUP1.EQ.ISUP3) 1 .OR. 1 ((ISUP1.EQ.0.AND.ISUP2.EQ.0).OR. 1 (ISUP2.EQ.0.AND.ISUP3.EQ.0).OR. 1 (ISUP3.EQ.0.AND.ISUP1.EQ.0)) 1 .OR. 1 ((ISUP1.EQ.0.AND.ISUP2.EQ.ISUP3).OR. 1 (ISUP2.EQ.0.AND.ISUP3.EQ.ISUP1).OR. 1 (ISUP3.EQ.0.AND.ISUP1.EQ.ISUP2)))THEN IOK=1 ELSE IOK=0 MOTERR(1:8)=MOT1 GOTO 666 ENDIF C C ON COPIE LE TROISIEME MCHAML C MCHEL4=IPCH4 SEGACT,MCHEL4 NSOU4=MCHEL4.IMACHE(/1) C C BOUCLE SUR LES ZONES C DO 500 ISOUS=1,NSOU4 C IPMAIL=MCHEL4.IMACHE(ISOUS) CONM=MCHEL4.CONCHE(ISOUS) C C CREATION DU TABLEAU INFOS C IF (IRTD.EQ.0) THEN SEGDES MCHEL4 GOTO 666 ENDIF C MCHAML=MCHEL4.ICHAML(ISOUS) SEGACT MCHAML NCOMP=IELVAL(/1) NBROBL=NCOMP NBRFAC=0 SEGINI NOMID MONOM=NOMID NBTYPE=NCOMP SEGINI NOTYPE MOTYPE=NOTYPE DO IC=1,NCOMP LESOBL(IC)=NOMCHE(IC) TYPE(IC)=TYPCHE(IC) ENDDO C IF (NCOMP.EQ.1) THEN NUMCO=1 ELSE NUMCO=0 DO IC=1,NCOMP IF (MACOMP.EQ.NOMCHE(IC)) THEN NUMCO=IC GOTO 30 ENDIF ENDDO 30 CONTINUE ENDIF IF(NUMCO.EQ.0)THEN MOTERR(1:4)=MACOMP GO TO 666 ENDIF C C ON VERIFIE SI ON A LES MEMES COMPOSANTES SUR LES AUTRES C CHAMPS ET ON LES EXTRAIT C IF(IERR.NE.0)THEN SEGSUP NOMID,NOTYPE GO TO 666 ENDIF IF(IERR.NE.0)THEN SEGSUP NOMID,NOTYPE GO TO 666 ENDIF SEGSUP NOMID,NOTYPE C MELVAL=IELVAL(NUMCO) SEGACT,MELVAL NBPTE4=VELCHE(/1) NEL4 =VELCHE(/2) MPTVAL=IVACH1 MELVAL=IVAL(NUMCO) NBPTE1=VELCHE(/1) NEL1 =VELCHE(/2) MPTVAL=IVACH2 MELVAL=IVAL(NUMCO) NBPTE2=VELCHE(/1) NEL2 =VELCHE(/2) NBPTEL=MAX(MAX(NBPTE1,NBPTE2),NBPTE4) NBELEM=MAX(MAX(NEL1,NEL2),NEL4) N1PTEL=NBPTEL N1EL=NBELEM N2PTEL=0 N2EL=0 MELVAL=IELVAL(NUMCO) IF(N1PTEL.GT.NBPTE4.OR.N1EL.GT.NEL4)SEGADJ MELVAL C DO 100 IB=1,NBELEM DO 100 IGAU=1,NBPTEL C MPTVAL=IVACH1 MELVAL=IVAL(NUMCO) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) V1=VELCHE(IGMN,IBMN) C MPTVAL=IVACH2 MELVAL=IVAL(NUMCO) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) V2=VELCHE(IGMN,IBMN) C MPTVAL=IVACH3 MELVAL=IVAL(NUMCO) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) V3=VELCHE(IGMN,IBMN) C RR=V3 RD=V2-V1 IF(RD.EQ.0.D0) GO TO 50 RAI=(V3-V2)/RD IF(RAI.EQ.1.D0) GO TO 50 RR=V3+(V3-V2)*RAI/(1.D0-RAI) 50 CONTINUE MELVAL=IELVAL(NUMCO) VELCHE(IGAU,IB)=RR 100 CONTINUE C C DESACTIVATION DES SEGMENTS C C C C C MELVAL=IELVAL(NUMCO) SEGDES MELVAL SEGDES MCHAML C 500 CONTINUE SEGDES MCHEL4 666 CONTINUE SEGDES MCHEL1,MCHEL2,MCHEL3 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales