circul.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\stbtel\circul.f
00002 !
00024                         SUBROUTINE CIRCUL
00025 !                       *****************
00026 !
00027      &(IKLE,ITEST1 ,IELEM,I1,I2,I3,X,Y)
00028 !
00029 !***********************************************************************
00030 !  STBTEL VERSION 5.2   16/08/89    J.C. GALLAND   (LNH)
00031 !***********************************************************************
00032 !
00033 !    FONCTION : CALCUL DE L'AIRE FORMEE PAR LES TROIS POINTS I1,I2,I3
00034 !               ET PERMUTATION DES POINTS I2 ET I3 LORSQU'ELLE EST
00035 !               NEGATIVE.
00036 !
00037 !-----------------------------------------------------------------------
00038 !                             ARGUMENTS
00039 ! .________________.____.______________________________________________.
00040 ! |      NOM       |MODE|                   ROLE                       |
00041 ! |________________|____|______________________________________________|
00042 ! |    IKLE        |<-->| NUMEROS GLOBAUX DES POINTS DE CHAQUE ELEMENT |
00043 ! |    ITEST1      | -->| COMPTEUR                                     |
00044 ! |    IELEM       | -->| NUMERO DE L'ELEMENT COURANT                  |
00045 ! |    I1,I2,I3    | -->| PERMUTATION DES IKLE                         |
00046 ! |    X,Y         | -->| COORDONNEES DES POINTS DU MAILLAGE           |
00047 ! |________________|____|______________________________________________
00048 ! | COMMON:        |    |
00049 ! |  GEO:          |    |
00050 ! |    MESH        | -->| TYPE DES ELEMENTS DU MAILLAGE
00051 ! |    NDP         | -->| NOMBRE DE NOEUDS PAR ELEMENTS
00052 ! |    NPOIN       | -->| NOMBRE TOTAL DE NOEUDS DU MAILLAGE
00053 ! |    NELEM       | -->| NOMBRE TOTAL D'ELEMENTS DU MAILLAGE
00054 ! |    NPMAX       | -->| DIMENSION EFFECTIVE DES TABLEAUX X ET Y
00055 ! |                |    | (NPMAX = NPOIN + 0.1*NELEM)
00056 ! |    NELMAX      | -->| DIMENSION EFFECTIVE DES TABLEAUX CONCERNANT
00057 ! |                |    | LES ELEMENTS (NELMAX = NELEM + 0.2*NELEM)
00058 ! |________________|____|______________________________________________|
00059 !  MODE: -->(DONNEE NON MODIFIEE),<--(RESULTAT),<-->(DONNEE MODIFIEE)
00060 !-----------------------------------------------------------------------
00061 ! APPELE PAR : LECSTB
00062 ! APPEL DE :
00063 !***********************************************************************
00064 !
00065       IMPLICIT NONE
00066       INTEGER LNG,LU
00067       COMMON/INFO/LNG,LU
00068 !
00069       INTEGER IELEM , NELEM , NPOIN , MESH , NDP , NELMAX , NPMAX
00070       INTEGER IKLE(NELMAX,4) , I1 , I2 , I3 , ITEST1 , I
00071 !
00072       DOUBLE PRECISION X2 , X3 , Y2 , Y3 , X(*) , Y(*)
00073       DOUBLE PRECISION AIRE
00074 !
00075       COMMON/GEO/ MESH , NDP , NPOIN , NELEM , NPMAX , NELMAX
00076 !
00077       X2 = X(IKLE(IELEM,I2))-X(IKLE(IELEM,I1))
00078       X3 = X(IKLE(IELEM,I3))-X(IKLE(IELEM,I1))
00079 !
00080       Y2 = Y(IKLE(IELEM,I2))-Y(IKLE(IELEM,I1))
00081       Y3 = Y(IKLE(IELEM,I3))-Y(IKLE(IELEM,I1))
00082 !
00083       AIRE = X2*Y3 - X3*Y2
00084 !
00085       IF (AIRE.LT.0.D0) THEN
00086         ITEST1 = ITEST1 + 1
00087         I = IKLE(IELEM,I2)
00088 !
00089         IKLE(IELEM,I2) = IKLE(IELEM,I3)
00090         IKLE(IELEM,I3) = I
00091       ENDIF
00092 !
00093       RETURN
00094       END

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0