tpyr5a
C TPYR5A SOURCE PV 21/02/04 21:15:13 10874 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) ************************************************************************ * * T P Y R 5 A * ----------- * * FONCTION: ON ACQUIERT: * --------- - LES COORDONNEES INTRINSEQUES * - LES FONCTIONS DE FORME ET LEURS DERIVEES * POUR L'ELEMENT DE THERMIQUE PYR5 * * MODULES UTILISES: * ----------------- * -INC PPARAM -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 * SHPTOT (S) FOCTIONS DE FORME ET LEURS DERIVEES. * REAL*8 QSIGAU(5),ETAGAU(5),DZEGAU(5),POIGAU(5) REAL*8 SHPTOT(6,5,5) CHARACTER*(*) POINTS * * CONSTANTES: * ----------- * * PARAMETER ( O0=0.D0 ) PARAMETER ( O1=1.D0 ) PARAMETER ( O5=0.5D0 ) ** PARAMETER ( POI1=0.1333333333333333D0 ) ** PARAMETER ( POI2=0.1333333333333333D0 ) PARAMETER (POI1 = 4.D0/30.D0) PARAMETER (POI2 = 4.D0/30.D0) PARAMETER ( H1=0.153175416344814577870518365005440D0 ) PARAMETER ( H2=0.637298334620741688517926539978239D0 ) PARAMETER ( O215=2.D0/15.D0 ) PARAMETER ( O4=4.D0 ) * * AUTEUR, DATE DE CREATION: * ------------------------- * * SOURCE A1,REPRIS PAR DENIS ROBERT,LE 29 OCTOBRE 1987 * * LANGAGE: * -------- * * FORTRAN77 * ************************************************************************ * IF (POINTS(1:5).EQ.'NOEUD') GOTO 66 IF (POINTS(1:5).NE.'GAUSS') GOTO 100 * * COORDONNEES DES 5 POINTS DE GAUSS * NBPGAU=5 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 DO 251 IA=1,4 DZEGAU(IA)= H1 POIGAU(IA)= POI1 251 CONTINUE DZEGAU(5)= H2 POIGAU(5)= POI2 GOTO 2 * * COORDONNEES DES NOEUDS * 66 CONTINUE NBPGAU=5 QSIGAU(1)= O1 QSIGAU(2)= O0 QSIGAU(3)=-O1 QSIGAU(4)= O0 ETAGAU(1)= O0 ETAGAU(2)= O1 ETAGAU(3)= O0 ETAGAU(4)=-O1 DZEGAU(5)= O1 DO 261 IA=1,5 POIGAU(IA)=O215 261 CONTINUE * * FONCTIONS DE FORME ET LEURS DERIVEES * 2 DO 1 I=1,NBPGAU DZEM =O1-DZEGAU(I) DZEM4=(O1-DZEGAU(I))*O4 AUX0 = QSIGAU(I)+ETAGAU(I)+DZEGAU(I)-O1 AUX01=-QSIGAU(I)+ETAGAU(I)+DZEGAU(I)-O1 AUX02=-QSIGAU(I)-ETAGAU(I)+DZEGAU(I)-O1 AUX03= QSIGAU(I)-ETAGAU(I)+DZEGAU(I)-O1 * IF(ABS(DZEGAU(I)-O1).LT.1.D-6) THEN DO IB=1,5 DO IA=1,3 SHPTOT(IA,IB,I)= O0 enddo 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 DO 252 IA=1,4 SHPTOT(4,IA,I)=-O5 252 CONTINUE SHPTOT(4,5,I)= O1 GOTO 1 ENDIF * SHPTOT(1,1,I)=AUX01*AUX02/DZEM4 SHPTOT(1,2,I)=AUX02*AUX03/DZEM4 SHPTOT(1,3,I)=AUX0 *AUX03/DZEM4 SHPTOT(1,4,I)=AUX0 *AUX01/DZEM4 SHPTOT(1,5,I)=DZEGAU(I) SHPTOT(2,1,I)=(-AUX01-AUX02)/DZEM4 SHPTOT(2,2,I)=( AUX02-AUX03)/DZEM4 SHPTOT(2,3,I)=( AUX0 +AUX03)/DZEM4 SHPTOT(2,4,I)=( AUX01-AUX0 )/DZEM4 SHPTOT(2,5,I)=O0 SHPTOT(3,1,I)=( AUX02-AUX01)/DZEM4 SHPTOT(3,2,I)=(-AUX02-AUX03)/DZEM4 SHPTOT(3,3,I)=( AUX03-AUX0 )/DZEM4 SHPTOT(3,4,I)=( AUX0 +AUX01)/DZEM4 SHPTOT(3,5,I)=O0 SHPTOT(4,1,I)=(AUX01+AUX02+AUX01*AUX02/DZEM)/DZEM4 SHPTOT(4,2,I)=(AUX02+AUX03+AUX02*AUX03/DZEM)/DZEM4 SHPTOT(4,3,I)=(AUX03+AUX0 +AUX03*AUX0 /DZEM)/DZEM4 SHPTOT(4,4,I)=( AUX0+AUX01+ AUX0*AUX01/DZEM)/DZEM4 SHPTOT(4,5,I)=O1 1 CONTINUE RETURN 100 CONTINUE * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales