C TPYR5 SOURCE OF166741 23/12/04 21:15:17 11800 C======================================================================= C= T P Y R 5 = C= --------- = C= = C= Fonction : = C= ---------- = C= Acquisition des caracteristiques d'integration aux noeuds, aux = C= points d'integration (Gauss) ou au centre de gravite pour = C= l'element thermique support PYR5. = C= = C= Parametres : (E)=Entree (S)=Sortie = C= ------------ = C= ISUPTH (E) Indique le support d'integration demande = C= IPINTE (S) Pointeur sur le segment MINTE associe (ACTIF en S) = C======================================================================= SUBROUTINE TPYR5 (ISUPTH,IPINTE) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC SMINTE PARAMETER ( O0=0.D0, O1=1.D0, O5=0.5D0, O4=4.D0 ) C H1 = (10.D0-sqrt(15D.0))/40.D0 & H2 = (5.D0+2.D0*sqrt(15D.0))/20.D0 PARAMETER ( H1=0.153175416344814577870518365005440D0 ) PARAMETER ( H2=0.637298334620741688517926539978239D0 ) PARAMETER ( O215=2.D0/15.D0 ) PARAMETER ( O23=2.D0/3.D0 ) PARAMETER ( O14= O1/O4 ) NBNO = 5 IF (ISUPTH.EQ.1 .OR. ISUPTH.EQ.2) THEN NBPGAU = 5 ELSE IF (ISUPTH.EQ.3) THEN NBPGAU = 1 ELSE RETURN ENDIF SEGINI,MINTE C COORDONNEES ET POIDS DES 5 NOEUDS IF (ISUPTH.EQ.1) THEN QSIGAU(1) = O1 QSIGAU(2) = O0 QSIGAU(3) = -O1 QSIGAU(4) = O0 QSIGAU(5) = O0 ETAGAU(1) = O0 ETAGAU(2) = O1 ETAGAU(3) = O0 ETAGAU(4) = -O1 ETAGAU(5) = O0 DZEGAU(1) = O0 DZEGAU(2) = O0 DZEGAU(3) = O0 DZEGAU(4) = O0 DZEGAU(5) = O1 POIGAU(1) = O215 POIGAU(2) = O215 POIGAU(3) = O215 POIGAU(4) = O215 POIGAU(5) = O215 C COORDONNEES ET POIDS DES 5 POINTS DE GAUSS ELSE IF (ISUPTH.EQ.2) THEN QSIGAU(1) = O5 QSIGAU(2) = O0 QSIGAU(3) = -O5 QSIGAU(4) = O0 QSIGAU(5) = O0 ETAGAU(1) = O0 ETAGAU(2) = O5 ETAGAU(3) = O0 ETAGAU(4) = -O5 ETAGAU(5) = O0 DZEGAU(1) = H1 DZEGAU(2) = H1 DZEGAU(3) = H1 DZEGAU(4) = H1 DZEGAU(5) = H2 POIGAU(1) = O215 POIGAU(2) = O215 POIGAU(3) = O215 POIGAU(4) = O215 POIGAU(5) = O215 C COORDONNEES ET POIDS DU CENTRE DE GRAVITE ELSE IF (ISUPTH.EQ.3) THEN QSIGAU(1) = O0 ETAGAU(1) = O0 DZEGAU(1) = O14 POIGAU(1) = O23 ENDIF C FONCTIONS DE FORME ET LEURS DERIVEES AU(X) NBPGAU POINT(S) DO I = 1, NBPGAU XI = QSIGAU(I) YI = ETAGAU(I) ZI = DZEGAU(I) DZEM = O1-ZI IF (ABS(DZEM).LT.1.D-6) THEN cC Initialisations a 0 faites par SEGINI c DO IB = 1, NBNO c SHPTOT(1,IB,I) = O0 c SHPTOT(2,IB,I) = O0 c SHPTOT(3,IB,I) = O0 c SHPTOT(4,IB,I) = O0 c ENDDO SHPTOT(1,5,I) = O1 SHPTOT(2,1,I) = O5 SHPTOT(2,3,I) = -O5 SHPTOT(3,2,I) = O5 SHPTOT(3,4,I) = -O5 SHPTOT(4,1,I) = -O5 SHPTOT(4,2,I) = -O5 SHPTOT(4,3,I) = -O5 SHPTOT(4,4,I) = -O5 SHPTOT(4,5,I) = O1 ELSE DZEM4 = DZEM*O4 AUX0 = +XI+YI+ZI-O1 AUX1 = -XI+YI+ZI-O1 AUX2 = -XI-YI+ZI-O1 AUX3 = +XI-YI+ZI-O1 SHPTOT(1,1,I) = AUX1*AUX2/DZEM4 SHPTOT(1,2,I) = AUX2*AUX3/DZEM4 SHPTOT(1,3,I) = AUX0*AUX3/DZEM4 SHPTOT(1,4,I) = AUX0*AUX1/DZEM4 SHPTOT(1,5,I) = ZI SHPTOT(2,1,I) = (-AUX1-AUX2)/DZEM4 SHPTOT(2,2,I) = ( AUX2-AUX3)/DZEM4 SHPTOT(2,3,I) = ( AUX0+AUX3)/DZEM4 SHPTOT(2,4,I) = ( AUX1-AUX0)/DZEM4 SHPTOT(2,5,I) = O0 SHPTOT(3,1,I) = ( AUX2-AUX1)/DZEM4 SHPTOT(3,2,I) = (-AUX2-AUX3)/DZEM4 SHPTOT(3,3,I) = ( AUX3-AUX0)/DZEM4 SHPTOT(3,4,I) = ( AUX0+AUX1)/DZEM4 SHPTOT(3,5,I) = O0 SHPTOT(4,1,I) = (AUX1+AUX2+AUX1*AUX2/DZEM)/DZEM4 SHPTOT(4,2,I) = (AUX2+AUX3+AUX2*AUX3/DZEM)/DZEM4 SHPTOT(4,3,I) = (AUX3+AUX0+AUX3*AUX0/DZEM)/DZEM4 SHPTOT(4,4,I) = (AUX0+AUX1+AUX0*AUX1/DZEM)/DZEM4 SHPTOT(4,5,I) = O1 ENDIF ENDDO IPINTE = MINTE c RETURN END