C TPRI6A SOURCE CHAT 05/01/13 03:43:32 5004 SUBROUTINE TPRI6A(POINTS,QSIGAU,ETAGAU,DZEGAU,POIGAU,SHPTOT) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) ************************************************************************ * * T P R I 6 A * ----------- * * FONCTION: ON ACQUIERT: * --------- - LES COORDONNEES INTRINSEQUES * - LES FONCTIONS DE FORME ET LEURS DERIVEES * POUR L'ELEMENT DE THERMIQUE PRI6. * * 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. * DZEGAU (S) | * POIGAU (S) POIDS D'INTEGRATION,SI ON A 'GAUSS'. * SHPTOT (S) FONCTIONS DE FORME ET LEURS DERIVEES. * REAL*8 QSIGAU(6),ETAGAU(6),DZEGAU(6),POIGAU(6) REAL*8 SHPTOT(6,6,6) CHARACTER*(*) POINTS * * CONSTANTES: * ----------- * * PARAMETER ( O0=0.D0 ) PARAMETER ( O1=1.D0 ) PARAMETER ( O5=0.5D0 ) PARAMETER ( W=1.D0/6.D0 ) PARAMETER ( Z=0.577350269189626D0 ) * * * AUTEUR, DATE DE CREATION: * ------------------------- * * J-P.SAUSSAIS OCT.77,REPRIS PAR DENIS ROBERT,LE 26 OCTOBRE 1987. * * LANGAGE: * -------- * * FORTRAN77 * ************************************************************************ * IF (POINTS(1:5).EQ.'NOEUD') GOTO 66 IF (POINTS(1:5).NE.'GAUSS') GOTO 200 * * COORDONNEES DES 6 POINTS DE GAUSS * NBPGAU=6 NBNO=6 QSIGAU(1)= O5 ETAGAU(1)= O0 DZEGAU(1)=-Z QSIGAU(2)= O5 ETAGAU(2)= O5 DZEGAU(2)=-Z QSIGAU(3)= O0 ETAGAU(3)= O5 DZEGAU(3)=-Z QSIGAU(4)= O5 ETAGAU(4)= O0 DZEGAU(4)= Z QSIGAU(5)= O5 ETAGAU(5)= O5 DZEGAU(5)= Z QSIGAU(6)= O0 ETAGAU(6)= O5 DZEGAU(6)= Z * * POIDS * DO 10 I=1,NBPGAU POIGAU(I)=W 10 CONTINUE GOTO 2 * * COORDONNEES INTRINSEQUES DES NOEUDS * 66 CONTINUE NBNO=6 NBPGAU=NBNO QSIGAU(1)=O0 ETAGAU(1)=O0 DZEGAU(1)=-O1 QSIGAU(2)=O1 ETAGAU(2)=O0 DZEGAU(2)=-O1 QSIGAU(3)=O0 ETAGAU(3)=O1 DZEGAU(3)=-O1 QSIGAU(4)=O0 ETAGAU(4)=O0 DZEGAU(4)=O1 QSIGAU(5)=O1 ETAGAU(5)=O0 DZEGAU(5)=O1 QSIGAU(6)=O0 ETAGAU(6)=O1 DZEGAU(6)=O1 * * FONCTIONS DE FORME * 2 DO 20 I=1,NBPGAU XI=QSIGAU(I) YI=ETAGAU(I) ZI=DZEGAU(I) * SHPTOT(1,1,I)=O5*(O1-XI-YI)*(O1-ZI) SHPTOT(1,2,I)=O5* XI *(O1-ZI) SHPTOT(1,3,I)=O5* YI *(O1-ZI) SHPTOT(1,4,I)=O5*(O1-XI-YI)*(O1+ZI) SHPTOT(1,5,I)=O5* XI *(O1+ZI) SHPTOT(1,6,I)=O5* YI *(O1+ZI) * * DERIVEES EN XI DES FONCTIONS DE FORME * SHPTOT(2,1,I)=-O5*(O1-ZI) SHPTOT(2,2,I)= O5*(O1-ZI) SHPTOT(2,3,I)= O0 SHPTOT(2,4,I)=-O5*(O1+ZI) SHPTOT(2,5,I)= O5*(O1+ZI) SHPTOT(2,6,I)= O0 * * DERIVEES EN YI DES FONCTIONS DE FORME * SHPTOT(3,1,I)=-O5*(O1-ZI) SHPTOT(3,2,I)= O0 SHPTOT(3,3,I)= O5*(O1-ZI) SHPTOT(3,4,I)=-O5*(O1+ZI) SHPTOT(3,5,I)= O0 SHPTOT(3,6,I)= O5*(O1+ZI) * * DERIVEES EN ZI DES FONCTIONS DE FORME * SHPTOT(4,1,I)=-O5*(O1-XI-YI) SHPTOT(4,2,I)=-O5*XI SHPTOT(4,3,I)=-O5*YI SHPTOT(4,4,I)= O5*(O1-XI-YI) SHPTOT(4,5,I)= O5*XI SHPTOT(4,6,I)= O5*YI 20 CONTINUE RETURN 200 CONTINUE CALL ERREUR(19) * END