C TQUA4A SOURCE CHAT 05/01/13 03:44:03 5004 SUBROUTINE TQUA4A(POINTS,QSIGAU,ETAGAU,POIGAU,SHPTOT) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) ************************************************************************ * * T Q U A 4 A * ----------- * * FONCTION: ON ACQUIERT: * --------- - LES COORDONNEES INTRINSEQUES * - LES FONCTIONS DE FORME ET LEURS DERIVEES * POUR L'ELEMENT DE THERMIQUE * * 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(4),ETAGAU(4),POIGAU(4) REAL*8 SHPTOT(6,4,4) CHARACTER*(*) POINTS * * CONSTANTES: * ----------- * * PARAMETER ( X=0.577350269189626D0 ) PARAMETER ( O1=1.D0 ) PARAMETER ( O25=0.25D0 ) * * * AUTEUR, DATE DE CREATION: * ------------------------- * * J-P.SAUSSAIS OCT.77,REPRIS PAR DENIS ROBERT,LE 23 OCTOBRE 1987. * * LANGAGE: * -------- * * FORTRAN77 * ************************************************************************ * IF (POINTS(1:5).EQ.'NOEUD') GOTO 66 IF (POINTS(1:5).NE.'GAUSS') GOTO 100 * * COORDONNEES DES 4 POINTS DE GAUSS * NBPGAU=4 NBNO=4 QSIGAU(3)=X QSIGAU(2)=X ETAGAU(3)=X ETAGAU(4)=X QSIGAU(4)=-X QSIGAU(1)=-X ETAGAU(2)=-X ETAGAU(1)=-X POIGAU(1)=O1 POIGAU(2)=O1 POIGAU(3)=O1 POIGAU(4)=O1 GOTO 2 * * COORDONNEES DES NOEUDS * 66 CONTINUE NBNO=4 NBPGAU=NBNO QSIGAU(3)=O1 ETAGAU(3)=O1 QSIGAU(4)=-O1 ETAGAU(4)=O1 QSIGAU(1)=-O1 ETAGAU(1)=-O1 QSIGAU(2)=O1 ETAGAU(2)=-O1 * * FONCTIONS DE FORME ET LEURS DERIVEES * 2 DO 1 I=1,NBPGAU XI=QSIGAU(I) YI=ETAGAU(I) SHPTOT(1,3,I)=O25*(O1+XI)*(O1+YI) SHPTOT(1,4,I)=O25*(O1-XI)*(O1+YI) SHPTOT(1,1,I)=O25*(O1-XI)*(O1-YI) SHPTOT(1,2,I)=O25*(O1+XI)*(O1-YI) C SHPTOT(2,3,I)=O25*(O1+YI) SHPTOT(2,4,I)=-O25*(O1+YI) SHPTOT(2,1,I)=-O25*(O1-YI) SHPTOT(2,2,I)=O25*(O1-YI) C SHPTOT(3,3,I)=O25*(O1+XI) SHPTOT(3,4,I)=O25*(O1-XI) SHPTOT(3,1,I)=-O25*(O1-XI) SHPTOT(3,2,I)=-O25*(O1+XI) 1 CONTINUE RETURN 100 CONTINUE CALL ERREUR(19) * END