C INVERS SOURCE FANDEUR 06/02/01 21:15:16 5301 C INVERSE UN OBJET MAILLAGE ELEMENTAIRE C IPT1 (E) MAILLAGE A INVERSER (segment ACTIF) C MELEME (S) MAILLAGE INVERSE (segment ACTIF) SUBROUTINE INVERS(IPT1,MELEME) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC SMELEME C 1) Les elements "inversables" sont les suivants : C SEG2 (2) , SEG3 (3) , TRI3 (4), QUA4 (8) , TRI3 (6) , TRI6 (10) C 2) ICLE=1 (ou =2) indique que l'on inverse aussi (ou non) l'ordre des C elements dans le maillage. Ceci est indispensable pour les lignes. C 3) Si le type de l'element n'est pas "inversable", on retourne le C maillage d'entree tel quel. ITYP=IPT1.ITYPEL IF (ITYP.EQ.2 .OR. ITYP.EQ.3) THEN ICLE=1 ELSE IF (ITYP.EQ.4 .OR. ITYP.EQ.8 .OR. & ITYP.EQ.6 .OR. ITYP.EQ.10) THEN ICLE=2 ELSE MELEME=IPT1 RETURN ENDIF C On choisit d'oublier le contour suite a l'inversion. NBREF=IPT1.LISREF(/1) IF (NBREF.EQ.1) NBREF=0 NBSOUS=0 NBNN=IPT1.NUM(/1) NBELEM=IPT1.NUM(/2) SEGINI MELEME ITYPEL=IPT1.ITYPEL IF (NBREF.NE.0) THEN DO I=1,NBREF LISREF(I)=IPT1.LISREF(I) ENDDO ENDIF IF (ICLE.EQ.1) THEN DO J=1,NBELEM K=NBELEM+1-J DO I=1,NBNN NUM(I,J)=IPT1.NUM(NBNN+1-I,K) ENDDO ICOLOR(J)=IPT1.ICOLOR(K) ENDDO ELSE DO I=1,NBNN K=MOD(NBNN+1-I,NBNN)+1 DO J=1,NBELEM NUM(K,J)=IPT1.NUM(I,J) ENDDO ENDDO DO J=1,NBELEM ICOLOR(J)=IPT1.ICOLOR(J) ENDDO ENDIF RETURN END