impos5
C IMPOS5 SOURCE CHAT 05/01/13 00:33:59 5004 SUBROUTINE IMPOS5(MCTC1,MCTC2,ICODE) c c regarde si les deux contacts ont un point en commun c c les deux segments en entrée sont actifs c IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) SEGMENT MCTC INTEGER IPOT1(NNO1) INTEGER IPOT2(NNO2) ENDSEGMENT POINTEUR MCTC1.MCTC,MCTC2.MCTC,MCTC3.MCTC c executable 1 ICODE = 0 ICOD1 = 0 ICOD2 = 0 c c boucle sur la premiere couche du second segment c DO 100 I=1,MCTC2.IPOT1(/1) DO 10 J= 1,MCTC1.IPOT1(/1) IF (MCTC1.IPOT1(J) .EQ. MCTC2.IPOT1(I)) THEN ICOD1 = 1 ENDIF 10 CONTINUE DO 20 J= 1,MCTC1.IPOT2(/1) IF (MCTC1.IPOT2(J) .EQ. MCTC2.IPOT1(I)) THEN ICOD2 = -1 ENDIF 20 CONTINUE 100 CONTINUE c IF ( (ICOD1 * ICOD2) .EQ. -1 ) THEN c petite magouille pour les fonds de fissures c par exemple deux lignes de contacts ont un point en commun IF (MCTC2.IPOT1(/1).EQ.2 .AND. MCTC2.IPOT2(/1).EQ.1) THEN c un des cote du triangle a ses points dans les deux couches c on effectue une permutation circulaire IDUMY = MCTC2.IPOT1(1) MCTC2.IPOT1(1) = MCTC2.IPOT2(1) MCTC2.IPOT1(2) = MCTC2.IPOT2(1) MCTC2.IPOT2(1) = IDUMY GOTO 1 ENDIF ICODE = -1 RETURN ELSE ICODE = ICOD1 + ICOD2 IF (ICODE .NE. 0) RETURN ENDIF c c boucle sur la seconde couche du second segment c DO 200 I=1,MCTC2.IPOT2(/1) DO 110 J= 1,MCTC1.IPOT1(/1) IF (MCTC1.IPOT1(J) .EQ. MCTC2.IPOT2(I)) THEN ICODE = -1 RETURN ENDIF 110 CONTINUE DO 120 J= 1,MCTC1.IPOT2(/1) IF (MCTC1.IPOT2(J) .EQ. MCTC2.IPOT2(I)) THEN ICODE = 1 RETURN ENDIF 120 CONTINUE 200 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales