C TTRI6A SOURCE CHAT 05/01/13 03:54:50 5004 SUBROUTINE TTRI6A(POINTS,QSIGAU,ETAGAU,POIGAU,SHPTOT) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) ************************************************************************ * * T T R I 6 A * ----------- * * FONCTION: ON ACQUIERT: * --------- - LES COORDONNEES INTRINSEQUES * - LES FONCTIONS DE FORME ET LEURS DERIVEES * POUR L'ELEMENT DE THERMIQUE TRI6 * * MODULES UTILISES: * ----------------- * -INC CCOPTIO * * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) * ----------- * * POINTS (E) CHAINE DE CARACTERES: * 'NOEUDS' SI ON VEUT LES VALEURS AUX NOEUDS * 'GAUSS' POUR LES VALEURS AUX POINTS DE GAUSS. * QSIGAU (S) | * ETAGAU (S) | COORDONNEES INTRINSEQUES * POIGAU (S) POIDS D'INTEGRATION,SI ON A GAUSS * SHPTOT (S) FONCTIONS DE FORME ET LEURS DERIVEES. * REAL*8 QSIGAU(7),ETAGAU(7),POIGAU(7) REAL*8 SHPTOT(6,6,7) CHARACTER*(*) POINTS * * CONSTANTES: * ----------- * * PARAMETER ( O0=0.D0 ) PARAMETER ( O1=1.D0 ) PARAMETER ( O2=2.D0 ) PARAMETER ( O3=3.D0 ) PARAMETER ( O4=4.D0 ) PARAMETER ( O5=0.5D0 ) PARAMETER ( O6=6.D0 ) PARAMETER ( O9=9.D0 ) PARAMETER ( O21=21.D0 ) PARAMETER ( O80=80.D0 ) PARAMETER ( O155=155.D0 ) PARAMETER ( O2400=2400.D0 ) * PARAMETER ( X=SQRT(15.D0) ) * * * AUTEUR, DATE DE CREATION: * ------------------------- * * J-P.SAUSSAIS OCT.77,REPRIS PAR DENIS ROBERT,LE 22 OCTOBRE 1987 * * LANGAGE: * -------- * * FORTRAN77 * ************************************************************************ X=SQRT(15.D0) * IF (POINTS(1:5).EQ.'NOEUD') GOTO 66 IF (POINTS(1:5).NE.'GAUSS') GOTO 100 * * COORDONNEES DES 7 POINTS DE GAUSS * NBPGAU=7 NBNO=6 QSIGAU(1)=O1/O3 ETAGAU(1)=O1/O3 QSIGAU(2)=(O9-O2*X)/O21 ETAGAU(3)=(O9-O2*X)/O21 ETAGAU(2)=(O6+X)/O21 QSIGAU(3)=(O6+X)/O21 QSIGAU(4)=(O6+X)/O21 ETAGAU(4)=(O6+X)/O21 QSIGAU(5)=(O9+O2*X)/O21 ETAGAU(6)=(O9+O2*X)/O21 ETAGAU(5)=(O6-X)/O21 QSIGAU(6)=(O6-X)/O21 QSIGAU(7)=(O6-X)/O21 ETAGAU(7)=(O6-X)/O21 POIGAU(1)=O9/O80 POIGAU(2)=(O155+X)/O2400 POIGAU(3)=(O155+X)/O2400 POIGAU(4)=(O155+X)/O2400 POIGAU(5)=(O155-X)/O2400 POIGAU(6)=(O155-X)/O2400 POIGAU(7)=(O155-X)/O2400 GOTO 2 * * COORDONNEES DES NOEUDS * 66 CONTINUE NBNO=6 NBPGAU=NBNO QSIGAU(1)=O0 ETAGAU(1)=O0 QSIGAU(2)=O5 ETAGAU(2)=O0 QSIGAU(3)=O1 ETAGAU(3)=O0 QSIGAU(4)=O5 ETAGAU(4)=O5 QSIGAU(5)=O0 ETAGAU(5)=O1 QSIGAU(6)=O0 ETAGAU(6)=O5 * * FONCTIONS DE FORME ET LEURS DERIVEES * 2 DO 1 I=1,NBPGAU XI=QSIGAU(I) YI=ETAGAU(I) SHPTOT(1,1,I)=(O1-XI-YI)*(O1-O2*(XI+YI)) SHPTOT(1,2,I)=O4*XI*(O1-XI-YI) SHPTOT(1,3,I)=XI*(XI+XI-O1) SHPTOT(1,4,I)=O4*XI*YI SHPTOT(1,5,I)=YI*(YI+YI-O1) SHPTOT(1,6,I)=O4*YI*(O1-XI-YI) C SHPTOT(2,1,I)=O4*(XI+YI)-O3 SHPTOT(2,2,I)=O4*(O1-XI-XI-YI) SHPTOT(2,3,I)=O4*XI-O1 SHPTOT(2,4,I)=O4*YI SHPTOT(2,5,I)=O0 SHPTOT(2,6,I)=-O4*YI C SHPTOT(3,1,I)=O4*(XI+YI)-O3 SHPTOT(3,2,I)=-O4*XI SHPTOT(3,3,I)=O0 SHPTOT(3,4,I)=O4*XI SHPTOT(3,5,I)=O4*YI-O1 SHPTOT(3,6,I)=O4*(O1-XI-YI-YI) 1 CONTINUE RETURN 100 CONTINUE CALL ERREUR(19) * END