1 : C INVERS SOURCE FANDEUR 06/02/01 21:15:16 5301 2 : 3 : C INVERSE UN OBJET MAILLAGE ELEMENTAIRE 4 : 5 : C IPT1 (E) MAILLAGE A INVERSER (segment ACTIF) 6 : C MELEME (S) MAILLAGE INVERSE (segment ACTIF) 7 : 8 : SUBROUTINE INVERS(IPT1,MELEME) 9 : 10 : IMPLICIT INTEGER(I-N) 11 : IMPLICIT REAL*8(A-H,O-Z) 12 : 13 : -INC SMELEME 14 : 15 : C 1) Les elements "inversables" sont les suivants : 16 : C SEG2 (2) , SEG3 (3) , TRI3 (4), QUA4 (8) , TRI3 (6) , TRI6 (10) 17 : C 2) ICLE=1 (ou =2) indique que l'on inverse aussi (ou non) l'ordre des 18 : C elements dans le maillage. Ceci est indispensable pour les lignes. 19 : C 3) Si le type de l'element n'est pas "inversable", on retourne le 20 : C maillage d'entree tel quel. 21 : 22 : ITYP=IPT1.ITYPEL 23 : IF (ITYP.EQ.2 .OR. ITYP.EQ.3) THEN 24 : ICLE=1 25 : ELSE IF (ITYP.EQ.4 .OR. ITYP.EQ.8 .OR. 26 : & ITYP.EQ.6 .OR. ITYP.EQ.10) THEN 27 : ICLE=2 28 : ELSE 29 : MELEME=IPT1 30 : RETURN 31 : ENDIF 32 : 33 : C On choisit d'oublier le contour suite a l'inversion. 34 : NBREF=IPT1.LISREF(/1) 35 : IF (NBREF.EQ.1) NBREF=0 36 : NBSOUS=0 37 : NBNN=IPT1.NUM(/1) 38 : NBELEM=IPT1.NUM(/2) 39 : SEGINI MELEME 40 : ITYPEL=IPT1.ITYPEL 41 : IF (NBREF.NE.0) THEN 42 : DO I=1,NBREF 43 : LISREF(I)=IPT1.LISREF(I) 44 : ENDDO 45 : ENDIF 46 : IF (ICLE.EQ.1) THEN 47 : DO J=1,NBELEM 48 : K=NBELEM+1-J 49 : DO I=1,NBNN 50 : NUM(I,J)=IPT1.NUM(NBNN+1-I,K) 51 : ENDDO 52 : ICOLOR(J)=IPT1.ICOLOR(K) 53 : ENDDO 54 : ELSE 55 : DO I=1,NBNN 56 : K=MOD(NBNN+1-I,NBNN)+1 57 : DO J=1,NBELEM 58 : NUM(K,J)=IPT1.NUM(I,J) 59 : ENDDO 60 : ENDDO 61 : DO J=1,NBELEM 62 : ICOLOR(J)=IPT1.ICOLOR(J) 63 : ENDDO 64 : ENDIF 65 : 66 : RETURN 67 : END 68 :
© Cast3M 2003 - All rights reserved.
Disclaimer