1 : C TQUA8A SOURCE CHAT 05/01/13 03:44:09 5004 2 : SUBROUTINE TQUA8A(POINTS,QSIGAU,ETAGAU,POIGAU,SHPTOT) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8(A-H,O-Z) 5 : ************************************************************************ 6 : * 7 : * T Q U A 8 A 8 : * ----------- 9 : * 10 : * FONCTION: ON ACQUIERT: 11 : * --------- - LES COORDONNEES INTRINSEQUES 12 : * - LES FONCTIONS DE FORME ET LEURS DERIVEES 13 : * POUR L'ELEMENT DE THERMIQUE QUA8. 14 : * 15 : * MODULES UTILISES: 16 : * ----------------- 17 : * 18 : -INC CCOPTIO 19 : * 20 : * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) 21 : * ----------- 22 : * 23 : * POINTS (E) CHAINE DE CARACTERES: 24 : * 'NOEUDS' SI ON VEUT LES VALEURS AUX NOEUDS 25 : * 'GAUSS' POUR LES VALEURS AUX POINTS DE GAUSS. 26 : * QSIGAU (S) | 27 : * ETAGAU (S) | COORDONNEES INTRINSEQUES. 28 : * POIGAU (S) POIDS D'INTEGRATION,SI ON A 'GAUSS'. 29 : * SHPTOT (S) FONCTIONS DE FORME ET LEURS DERIVEES. 30 : * 31 : REAL*8 QSIGAU(9),ETAGAU(9),POIGAU(9) 32 : REAL*8 SHPTOT(6,8,9) 33 : CHARACTER*(*) POINTS 34 : * 35 : * CONSTANTES: 36 : * ----------- 37 : * 38 : * 39 : PARAMETER ( O0=0.D0 ) 40 : PARAMETER ( O1=1.D0 ) 41 : PARAMETER ( O5=0.5D0 ) 42 : PARAMETER ( O25=0.25D0 ) 43 : PARAMETER ( XI=0.774596669241483D0 ) 44 : PARAMETER ( XI2=0.555555555555555D0 ) 45 : PARAMETER ( ETE=0.888888888888888D0 ) 46 : PARAMETER ( XI3=XI2*XI2 ) 47 : PARAMETER ( ET2=ETE*ETE ) 48 : PARAMETER ( XIET=XI2*ETE ) 49 : * 50 : * 51 : * AUTEUR, DATE DE CREATION: 52 : * ------------------------- 53 : * 54 : * J-P.SAUSSAIS OCT.77,REPRIS PAR DENIS ROBERT,LE 23 OCTOBRE 1987. 55 : * 56 : * LANGAGE: 57 : * -------- 58 : * 59 : * FORTRAN77 60 : * 61 : ************************************************************************ 62 : * 63 : IF (POINTS(1:5).EQ.'NOEUD') GOTO 66 64 : IF (POINTS(1:5).NE.'GAUSS') GOTO 100 65 : * 66 : * COORDONNEES DES 9 POINTS DE GAUSS 67 : * 68 : NBPGAU=9 69 : NBNO=8 70 : QSIGAU(9)=XI 71 : QSIGAU(3)=XI 72 : QSIGAU(6)=XI 73 : QSIGAU(7)=-XI 74 : QSIGAU(1)=-XI 75 : QSIGAU(4)=-XI 76 : QSIGAU(8)=O0 77 : QSIGAU(2)=O0 78 : QSIGAU(5)=O0 79 : ETAGAU(9)=XI 80 : ETAGAU(7)=XI 81 : ETAGAU(8)=XI 82 : ETAGAU(3)=-XI 83 : ETAGAU(1)=-XI 84 : ETAGAU(2)=-XI 85 : ETAGAU(6)=O0 86 : ETAGAU(4)=O0 87 : ETAGAU(5)=O0 88 : * 89 : POIGAU(9)=XI3 90 : POIGAU(3)=XI3 91 : POIGAU(7)=XI3 92 : POIGAU(1)=XI3 93 : POIGAU(6)=XIET 94 : POIGAU(4)=XIET 95 : POIGAU(8)=XIET 96 : POIGAU(2)=XIET 97 : POIGAU(5)=ET2 98 : GOTO 2 99 : * 100 : * COORDONNEES DES NOEUDS 101 : * 102 : 66 CONTINUE 103 : NBNO=8 104 : NBPGAU=NBNO 105 : QSIGAU(1)=O1 106 : ETAGAU(1)=O1 107 : QSIGAU(2)=O0 108 : ETAGAU(2)=O1 109 : QSIGAU(3)=-O1 110 : ETAGAU(3)=O1 111 : QSIGAU(4)=-O1 112 : ETAGAU(4)=O0 113 : QSIGAU(5)=-O1 114 : ETAGAU(5)=-O1 115 : QSIGAU(6)=O0 116 : ETAGAU(6)=-O1 117 : QSIGAU(7)=O1 118 : ETAGAU(7)=-O1 119 : QSIGAU(8)=O1 120 : ETAGAU(8)=O0 121 : * 122 : * FONCTIONS DE FORME ET LEURS DERIVEES 123 : * 124 : 2 DO 1 I=1,NBPGAU 125 : X=QSIGAU(I) 126 : Y=ETAGAU(I) 127 : SHPTOT(1,5,I)=-O25*(O1-X-Y)*(O1+X)*(O1+Y) 128 : SHPTOT(1,6,I)=O5*(O1-X*X)*(O1+Y) 129 : SHPTOT(1,7,I)=-O25*(O1+X-Y)*(O1-X)*(O1+Y) 130 : SHPTOT(1,8,I)=O5*(O1-X)*(O1-Y*Y) 131 : SHPTOT(1,1,I)=-O25*(O1+X+Y)*(O1-X)*(O1-Y) 132 : SHPTOT(1,2,I)=O5*(O1-X*X)*(O1-Y) 133 : SHPTOT(1,3,I)=-O25*(O1-X+Y)*(O1+X)*(O1-Y) 134 : SHPTOT(1,4,I)=O5*(O1+X)*(O1-Y*Y) 135 : C 136 : SHPTOT(2,5,I)=O25*(O1+Y)*(X+X+Y) 137 : SHPTOT(2,6,I)=-X*(O1+Y) 138 : SHPTOT(2,7,I)=O25*(O1+Y)*(X+X-Y) 139 : SHPTOT(2,8,I)=-O5*(O1-Y*Y) 140 : SHPTOT(2,1,I)=O25*(O1-Y)*(X+X+Y) 141 : SHPTOT(2,2,I)=-X*(O1-Y) 142 : SHPTOT(2,3,I)=O25*(O1-Y)*(X+X-Y) 143 : SHPTOT(2,4,I)=O5*(O1-Y*Y) 144 : C 145 : SHPTOT(3,5,I)=O25*(O1+X)*(X+Y+Y) 146 : SHPTOT(3,6,I)=O5*(O1-X*X) 147 : SHPTOT(3,7,I)=O25*(O1-X)*(Y+Y-X) 148 : SHPTOT(3,8,I)=-Y*(O1-X) 149 : SHPTOT(3,1,I)=O25*(O1-X)*(X+Y+Y) 150 : SHPTOT(3,2,I)=-O5*(O1-X*X) 151 : SHPTOT(3,3,I)=O25*(O1+X)*(-X+Y+Y) 152 : SHPTOT(3,4,I)=-Y*(O1+X) 153 : 1 CONTINUE 154 : RETURN 155 : 100 CONTINUE 155 : CALL ERREUR(19) 156 : * 157 : END 158 :
© Cast3M 2003 - All rights reserved.
Disclaimer