1 : C NORCOS SOURCE CHAT 05/01/13 01:59:43 5004 2 : C NORCOS SOURCE 3 : SUBROUTINE NORCOS(VAL,NPTEL,NEL,XCOOR,NDIM,NUM,XE,INU) 4 : C======================================================================= 5 : C SUBROUTINE DE CALCUL DU COSINUS DE L'ANGLE ENTRE LES DEUX 6 : C DIAGONALES D'UN QUA4 7 : C PHILIPPE BEAUMIER 90 8 : C FAIT UNE BOUCLE SUR LES ELEMENTS 9 : C 10 : C======================================================================= 11 : C 12 : C INPUT 13 : C 14 : C NPTEL : NOMBRE DE POINTS PAR ELEMENT 15 : C NEL : NOMBRE D'ELEMENTS 16 : C XCOOR() : VECTEUR DES COORDONNEES DES NOEUDS 17 : C NDIM : DIMENSION (2 OU 3) 18 : C NUM(NPTEL,NEL) : TABLEAU DES NUMEROS DES ELEMENTS 19 : C XE(3,NPTEL) : TABLEAU DES COORDONNEES DES NOEUDS 20 : C INU : NUMERO DE L'ELEMENT GEOMETRIQUE 21 : C 22 : C OUTPUT 23 : C 24 : C VAL(NPTEL,NEL) :ION DES MOTS CLES LUS 25 : C 26 : IMPLICIT INTEGER(I-N) 27 : IMPLICIT REAL*8(A-H,O-Z) 28 : C Include contenant quelques constantes dont XPI : 29 : -INC CCREEL 30 : C 31 : DIMENSION VAL(1,*),XCOOR(*),NUM(NPTEL,*),XE(3,*) 32 : DIMENSION V1(3),V2(3),V3(3),V4(3) 33 : C 34 : C BOUCLE SUR LES ELEMENTS 35 : C 36 : IF((NDIM.EQ.3).AND.(INU.EQ.8)) THEN 37 : DO 1 IB=1,NEL 37 : CALL DOXE(XCOOR,NDIM,NPTEL,NUM,IB,XE) 38 : C 39 : C CALCUL DES NORMALES @ L'ELEMENT 40 : C 41 : DO 10 IA=1,3 42 : V1(IA) = XE(IA,2) - XE(IA,1) 43 : V2(IA) = XE(IA,4) - XE(IA,1) 44 : 10 CONTINUE 45 : V3(1) = V1(2) * V2(3) - V2(2)* V1(3) 46 : V3(2) = V1(3) * V2(1) - V2(3)* V1(1) 47 : V3(3) = V1(1) * V2(2) - V2(1)* V1(2) 48 : Z3 = SQRT(V3(1)**2 + V3(2)**2 + V3(3)**2) 49 : DO 11 IA=1,3 50 : V1(IA) = XE(IA,4) - XE(IA,3) 51 : V2(IA) = XE(IA,2) - XE(IA,3) 52 : 11 CONTINUE 53 : V4(1) = V1(2) * V2(3) - V2(2)* V1(3) 54 : V4(2) = V1(3) * V2(1) - V2(3)* V1(1) 55 : V4(3) = V1(1) * V2(2) - V2(1)* V1(2) 56 : Z4 = SQRT(V4(1)**2 + V4(2)**2 + V4(3)**2) 57 : PS = 0.D0 58 : DO 12 IA=1,3 59 : PS = PS + V3(IA) * V4(IA) 60 : 12 CONTINUE 61 : PS = PS / (Z3 * Z4) 62 : ZOZO = MIN(1.D0,ABS(PS)) 63 : C ON PREND LE MIN SUITE A ERREUR SUR CRAY 64 : VAL(1,IB) = 100.D0-200.D0/XPI*ACOS(ZOZO) 65 : 1 CONTINUE 66 : ELSE 67 : DO 2 IB=1,NEL 68 : VAL(1,IB) = 100.D0 69 : 2 CONTINUE 70 : ENDIF 71 : C 72 : RETURN 73 : END 74 : 75 : 76 : 77 : 78 :
© Cast3M 2003 - All rights reserved.
Disclaimer