C TTE10A SOURCE CHAT 05/01/13 03:54:13 5004 SUBROUTINE TTE10A(POINTS,QSIGAU,ETAGAU,DZEGAU,POIGAU,SHPTOT) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) ************************************************************************ * * T T E 1 0 A * ----------- * * FONCTION: ON ACQUIERT: * --------- - LES COORDONNEES INTRINSEQUES * - LES FONCTIONS DE FORME ET LEURS DERIVEES * POUR L'ELEMENT DE THERMIQUE TE10 * * 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(*),ETAGAU(*),DZEGAU(*),POIGAU(*) REAL*8 SHPTOT(6,10,*) CHARACTER*(*) POINTS * * CONSTANTES: * ----------- * * PARAMETER ( DEUX=2.D0 ) PARAMETER ( UN=1.D0 ) PARAMETER ( QUATRE=4.D0 ) PARAMETER ( XZER=0.D0 ) PARAMETER ( UNDEMI=.5D0 ) PARAMETER ( UNQUA=.25D0 ) PARAMETER ( UNSIX=.166666666666666666D0 ) PARAMETER ( OHUIT=-.80D0 ) PARAMETER ( OQUCI= .45D0 ) PARAMETER ( UN30=1.D0/30.D0 ) * * * AUTEUR, DATE DE CREATION: * ------------------------- * * DENIS ROBERT,LE 21 JANVIER 1988. * * LANGAGE: * -------- * * FORTRAN77 * ***' tte10a ' ********************************************************************* * IF (POINTS(1:5).EQ.'NOEUD') GOTO 66 IF (POINTS(1:5).NE.'GAUSS') GOTO 200 * * COORDONNEES DES 5 POINTS DE GAUSS * NBPGAU=5 NBNO=10 QSIGAU(1)=UNQUA QSIGAU(2)=UNSIX QSIGAU(3)=UNSIX QSIGAU(4)=UNSIX QSIGAU(5)=UNDEMI ETAGAU(1)=UNQUA ETAGAU(2)=UNSIX ETAGAU(3)=UNSIX ETAGAU(4)=UNDEMI ETAGAU(5)=UNSIX DZEGAU(1)=UNQUA DZEGAU(2)=UNSIX DZEGAU(3)=UNDEMI DZEGAU(4)=UNSIX DZEGAU(5)=UNSIX POIGAU(1)=OHUIT*UNSIX POIGAU(2)=OQUCI*UNSIX POIGAU(3)=OQUCI*UNSIX POIGAU(4)=OQUCI*UNSIX POIGAU(5)=OQUCI*UNSIX GOTO 2 * * COORDONNEES DES NOEUDS * 66 CONTINUE C OPTION NON IMPLEMENTEE C CALL ERREUR (251) C RETURN NBNO=10 NBPGAU=NBNO QSIGAU(2)=UNDEMI QSIGAU(4)=UNDEMI QSIGAU(8)=UNDEMI ETAGAU(4)=UNDEMI ETAGAU(6)=UNDEMI ETAGAU(9)=UNDEMI DZEGAU(7)=UNDEMI DZEGAU(8)=UNDEMI DZEGAU(9)=UNDEMI QSIGAU(3)=UN ETAGAU(5)=UN DZEGAU(10)=UN C DO 241 IA=1,10 C POIGAU(IA)=UN30 C 241 CONTINUE * * FONCTIONS DE FORME ET LEURS DERIVEES * 2 CONTINUE DO 1 I=1,NBPGAU AUX=UN-QSIGAU(I)-ETAGAU(I)-DZEGAU(I) SHPTOT(1,1,I)=AUX*(DEUX*AUX-UN) SHPTOT(1,2,I)=QUATRE*QSIGAU(I)*AUX SHPTOT(1,3,I)=QSIGAU(I)*(DEUX*QSIGAU(I)-UN) SHPTOT(1,4,I)=QUATRE*QSIGAU(I)*ETAGAU(I) SHPTOT(1,5,I)=ETAGAU(I)*(DEUX*ETAGAU(I)-UN) SHPTOT(1,6,I)=QUATRE*ETAGAU(I)*AUX SHPTOT(1,7,I)=QUATRE*DZEGAU(I)*AUX SHPTOT(1,8,I)=QUATRE*QSIGAU(I)*DZEGAU(I) SHPTOT(1,9,I)=QUATRE*ETAGAU(I)*DZEGAU(I) SHPTOT(1,10,I)=DZEGAU(I)*(DEUX*DZEGAU(I)-UN) SHPTOT(2,1,I)=UN-QUATRE*AUX SHPTOT(2,2,I)=QUATRE*(AUX-QSIGAU(I)) SHPTOT(2,3,I)=QUATRE*QSIGAU(I)-UN SHPTOT(2,4,I)=QUATRE*ETAGAU(I) SHPTOT(2,5,I)=XZER SHPTOT(2,6,I)=-QUATRE*ETAGAU(I) SHPTOT(2,7,I)=-QUATRE*DZEGAU(I) SHPTOT(2,8,I)= QUATRE*DZEGAU(I) SHPTOT(2,9,I)= XZER SHPTOT(2,10,I)=XZER SHPTOT(3,1,I)= UN-QUATRE*AUX SHPTOT(3,2,I)= -QUATRE*QSIGAU(I) SHPTOT(3,3,I)= XZER SHPTOT(3,4,I)= QUATRE*QSIGAU(I) SHPTOT(3,5,I)= QUATRE*ETAGAU(I)-UN SHPTOT(3,6,I)= QUATRE*(AUX-ETAGAU(I)) SHPTOT(3,7,I)=-QUATRE*DZEGAU(I) SHPTOT(3,8,I)= XZER SHPTOT(3,9,I)= QUATRE*DZEGAU(I) SHPTOT(3,10,I)=XZER SHPTOT(4,1,I)= UN-QUATRE*AUX SHPTOT(4,2,I)= -QUATRE*QSIGAU(I) SHPTOT(4,3,I)= XZER SHPTOT(4,4,I)= XZER SHPTOT(4,5,I)= XZER SHPTOT(4,6,I)= -QUATRE*ETAGAU(I) SHPTOT(4,7,I)=QUATRE*(AUX-DZEGAU(I)) SHPTOT(4,8,I)=QUATRE*QSIGAU(I) SHPTOT(4,9,I)=QUATRE*ETAGAU(I) SHPTOT(4,10,I)=QUATRE*DZEGAU(I)-UN 1 CONTINUE RETURN 200 CONTINUE CALL ERREUR(19) END