coqloc
C COQLOC SOURCE CHAT 05/01/12 22:22:17 5004 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) ************************************************************************ * * C O Q L O C * ----------- * * FONCTION: * --------- * TRANFORMATION DES COORDONNEES GLOBALES (3D) EN * COORDONNEES LOCALES (2D) POUR L'ELEMENT COQ3 * * * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) * ----------- * * NBNN (E) NOMBRE DE NOEUDS DANS L'ELEMENT (ICI 3) * XE (E) COORDONNEES GLOBALES (3D) DES NOEUDS * COSD1 (S) PREMIER VECTEUR DU REPERE LOCAL 2D * COSD2 (S) DEUXIEME VECTEUR DU REPERE LOCAL 2D * XEL (S) COORDONNEES LOCALES (2D) DES NOEUDS * REAL*8 XE(3,NBNN),XEL(3,NBNN) REAL*8 COSD1(3),COSD2(3),COSD3(3) * * AUTEUR, DATE DE CREATION: * ------------------------- * * YANN STEPHAN , FEVRIER 1997 * * LANGAGE: * -------- * * FORTRAN77 * ************************************************************************ * * INITIALISATION * * CALCUL DES COORDONNEES DES NOEUDS DANS LE REPERE LOCAL DE L' * ELEMENT COQUE * DO 60 I=1,3 COSD1(I)=XE(I,2)-XE(I,1) COSD2(I)=XE(I,3)-XE(I,1) 60 CONTINUE * COSD3(1)=COSD1(2)*COSD2(3)-COSD1(3)*COSD2(2) COSD3(2)=COSD1(3)*COSD2(1)-COSD1(1)*COSD2(3) COSD3(3)=COSD1(1)*COSD2(2)-COSD1(2)*COSD2(1) * COSD1L=SQRT(COSD1(1)*COSD1(1)+COSD1(2)*COSD1(2)+ . COSD1(3)*COSD1(3)) COSD3L=SQRT(COSD3(1)*COSD3(1)+COSD3(2)*COSD3(2)+ . COSD3(3)*COSD3(3)) * DO 70 I=1,3 COSD1(I)=COSD1(I)/COSD1L COSD3(I)=COSD3(I)/COSD3L 70 CONTINUE * COSD2(1)=COSD3(2)*COSD1(3)-COSD3(3)*COSD1(2) COSD2(2)=COSD3(3)*COSD1(1)-COSD3(1)*COSD1(3) COSD2(3)=COSD3(1)*COSD1(2)-COSD3(2)*COSD1(1) * DO 80 NOE=1,NBNN DO 80 I=1,3 XEL(1,NOE)=XEL(1,NOE)+XE(I,NOE)*COSD1(I) XEL(2,NOE)=XEL(2,NOE)+XE(I,NOE)*COSD2(I) 80 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales