alpha
C ALPHA SOURCE JC220346 16/11/29 21:15:01 9221 C | C | C CETTE FONCTION REELLE RENVOIE LA VALEUR DE L'ANGLE ENTRE | C LES 2 FACETTES (KK II JJ) ET (LL II JJ) | C POUR DES RAISONS DE COUT ON RENVOIE LA COTANGENTE CE QUI | C SUFFIT POUR LES TESTS QUE L'ON EN FERA | C | C---------------------------------------------------------------------| C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC TDEMAIT -INC PPARAM -INC CCOPTIO DIMENSION V1(3),V2(3),V3(3),VN1(3),VN2(3),VN3(3) C C DO 10 I=1,3 V1(I)=XYZ(I,KK)-XYZ(I,II) V2(I)=XYZ(I,JJ)-XYZ(I,II) V3(I)=XYZ(I,LL)-XYZ(I,II) 10 CONTINUE C C C CALCUL DE LA NORME DU VECTEUR V2 V2NORM=SQRT(V2(1)**2+V2(2)**2+V2(3)**2) IF (V2NORM.NE.0.d0) GOTO 15 IF (IVERB.EQ.1) WRITE (6,1000) 1000 FORMAT(' UNE NORME EST EGALE A ZERO') IF (IVERB.EQ.1) WRITE (6,*) ' II,JJ,KK,LL ',II,JJ,KK,LL ALPHA=-1D6 RETURN C C LE VECTEUR V2 EST NORME 15 DO 20 I=1,3 V2(I)=V2(I)/V2NORM 20 CONTINUE C C VN3=V2^V1 VN3(1)=V2(2)*V1(3)-V2(3)*V1(2) VN3(2)=V2(3)*V1(1)-V2(1)*V1(3) VN3(3)=V2(1)*V1(2)-V2(2)*V1(1) C C VN1=V2^V3 VN1(1)=V2(2)*V3(3)-V2(3)*V3(2) VN1(2)=V2(3)*V3(1)-V2(1)*V3(3) VN1(3)=V2(1)*V3(2)-V2(2)*V3(1) C C SCALAIRE(VN3,VN1)-----> COS(V1,V3) C C PRODUIT MIXTE (VN3,VN1,V2)----> SIN(V1,V3) PV= (VN3(2)*VN1(3)-VN3(3)*VN1(2))*V2(1) # +(VN3(3)*VN1(1)-VN3(1)*VN1(3))*V2(2) # +(VN3(1)*VN1(2)-VN3(2)*VN1(1))*V2(3) C C IF (PV.EQ.0.d0) GOTO 100 RETURN 100 CONTINUE C A PRIORI VN2 EST NUL ALPHA=-1d6 150 CONTINUE * WRITE (6,1111) KK,II,LL *1111 FORMAT(' ALPHA POINTS ALIGNES ',3I8) * WRITE (6,1112) II,KK,JJ,LL *1112 FORMAT(' ALPHA APPELEE AVEC ',4I6) * WRITE (6,1113) (V1(I),I=1,3) *1113 FORMAT(' V1 ',3G12.5) * WRITE (6,1114) (V2(I),I=1,3) *1114 FORMAT(' V2 ',3G12.5) * WRITE (6,1115) (V3(I),I=1,3) *1115 FORMAT(' V3 ',3G12.5) RETURN C C FIN DE LA FONCTION ALPHA END
© Cast3M 2003 - Tous droits réservés.
Mentions légales