1 : C TPR15A SOURCE CHAT 05/01/13 03:43:25 5004 2 : SUBROUTINE TPR15A(POINTS,QSIGAU,ETAGAU,DZEGAU,POIGAU,SHPTOT) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8(A-H,O-Z) 5 : ************************************************************************ 6 : * 7 : * T P R 1 5 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 PR15. 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 : * DZEGAU (S) | 29 : * POIGAU (S) POIDS D'INTEGRATION,SI ON A 'GAUSS'. 30 : * SHPTOT (S) FONCTIONS DE FORME ET LEURS DERIVEES. 31 : * 32 : REAL*8 QSIGAU(21),ETAGAU(21),DZEGAU(21),POIGAU(21) 33 : REAL*8 SHPTOT(6,15,21) 34 : REAL*8 VT(6),DVXT(6),DVYT(6) 35 : CHARACTER*(*) POINTS 36 : * 37 : * CONSTANTES: 38 : * ----------- 39 : * 40 : * 41 : PARAMETER ( O0=0.D0 ) 42 : PARAMETER ( O1=1.D0 ) 43 : PARAMETER ( O5=0.5D0 ) 44 : PARAMETER ( O2=2.D0 ) 45 : PARAMETER ( S=0.774596669241483D0 ) 46 : PARAMETER ( A=0.470142064105115D0 ) 47 : PARAMETER ( B=0.101286507323456D0 ) 48 : PARAMETER ( C=0.333333333333333D0 ) 49 : PARAMETER ( W234=0.0661970763942530D0 ) 50 : PARAMETER ( W567=0.0629695902724135D0 ) 51 : PARAMETER ( W234HB=W234*5.D0/9.D0 ) 52 : PARAMETER ( W234C=W234*8.D0/9.D0 ) 53 : PARAMETER ( W567HB=W567*5.D0/9.D0 ) 54 : PARAMETER ( W567C=W567*8.D0/9.D0 ) 55 : PARAMETER ( W116=1.D0/16.D0 ) 56 : PARAMETER ( W01=0.1D0 ) 57 : PARAMETER ( O3=3.D0 ) 58 : PARAMETER ( O4=4.D0 ) 59 : * 60 : * 61 : * AUTEUR, DATE DE CREATION: 62 : * ------------------------- 63 : * 64 : * J-P.SAUSSAIS OCT.77,REPRIS PAR DENIS ROBERT,LE 26 OCTOBRE 1987. 65 : * 66 : * LANGAGE: 67 : * -------- 68 : * 69 : * FORTRAN77 70 : * 71 : ************************************************************************ 72 : * 73 : IF (POINTS(1:5).EQ.'NOEUD') GOTO 66 74 : IF (POINTS(1:5).NE.'GAUSS') GOTO 200 75 : * 76 : * COORDONNEES DES 21 POINTS DE GAUSS 77 : * 78 : NBPGAU=21 79 : NBNO=15 80 : QSIGAU(1) = C 81 : ETAGAU(1) = C 82 : DZEGAU(1) =-S 83 : QSIGAU(2) = A 84 : ETAGAU(2) = A 85 : DZEGAU(2) =-S 86 : QSIGAU(3) = O1-O2*A 87 : ETAGAU(3) = A 88 : DZEGAU(3) =-S 89 : QSIGAU(4) = A 90 : ETAGAU(4) = O1-O2*A 91 : DZEGAU(4) =-S 92 : QSIGAU(5) = B 93 : ETAGAU(5) = B 94 : DZEGAU(5) =-S 95 : QSIGAU(6) = O1-O2*B 96 : ETAGAU(6) = B 97 : DZEGAU(6) =-S 98 : QSIGAU(7) = B 99 : ETAGAU(7) = O1-O2*B 100 : DZEGAU(7) =-S 101 : QSIGAU(8) = C 102 : ETAGAU(8) = C 103 : DZEGAU(8) = O0 104 : QSIGAU(9) = A 105 : ETAGAU(9) = A 106 : DZEGAU(9) = O0 107 : QSIGAU(10)= O1-O2*A 108 : ETAGAU(10)= A 109 : DZEGAU(10)= O0 110 : QSIGAU(11)= A 111 : ETAGAU(11)= O1-O2*A 112 : DZEGAU(11)= O0 113 : QSIGAU(12)= B 114 : ETAGAU(12)= B 115 : DZEGAU(12)= O0 116 : QSIGAU(13)= O1-O2*B 117 : ETAGAU(13)= B 118 : DZEGAU(13)= O0 119 : QSIGAU(14)= B 120 : ETAGAU(14)= O1-O2*B 121 : DZEGAU(14)= O0 122 : QSIGAU(15)= C 123 : ETAGAU(15)= C 124 : DZEGAU(15)= S 125 : QSIGAU(16)= A 126 : ETAGAU(16)= A 127 : DZEGAU(16)= S 128 : QSIGAU(17)= O1-O2*A 129 : ETAGAU(17)= A 130 : DZEGAU(17)= S 131 : QSIGAU(18)= A 132 : ETAGAU(18)= O1-O2*A 133 : DZEGAU(18)= S 134 : QSIGAU(19)= B 135 : ETAGAU(19)= B 136 : DZEGAU(19)= S 137 : QSIGAU(20)= O1-O2*B 138 : ETAGAU(20)= B 139 : DZEGAU(20)= S 140 : QSIGAU(21)= B 141 : ETAGAU(21)= O1-O2*B 142 : DZEGAU(21)= S 143 : * 144 : * POIDS 145 : * 146 : POIGAU(1) =W116 147 : POIGAU(2) =W234HB 148 : POIGAU(3) =W234HB 149 : POIGAU(4) =W234HB 150 : POIGAU(5) =W567HB 151 : POIGAU(6) =W567HB 152 : POIGAU(7) =W567HB 153 : POIGAU(8) =W01 154 : POIGAU(9) =W234C 155 : POIGAU(10)=W234C 156 : POIGAU(11)=W234C 157 : POIGAU(12)=W567C 158 : POIGAU(13)=W567C 159 : POIGAU(14)=W567C 160 : POIGAU(15)=W116 161 : POIGAU(16)=W234HB 162 : POIGAU(17)=W234HB 163 : POIGAU(18)=W234HB 164 : POIGAU(19)=W567HB 165 : POIGAU(20)=W567HB 166 : POIGAU(21)=W567HB 167 : GOTO 2 168 : * 169 : * COORDONNEES INTRINSEQUES DES NOEUDS 170 : * 171 : 66 CONTINUE 172 : NBNO=15 173 : NBPGAU=NBNO 174 : QSIGAU(1)=O0 175 : ETAGAU(1)=O0 176 : DZEGAU(1)=-O1 177 : QSIGAU(2)=O5 178 : ETAGAU(2)=O0 179 : DZEGAU(2)=-O1 180 : QSIGAU(3)=O1 181 : ETAGAU(3)=O0 182 : DZEGAU(3)=-O1 183 : QSIGAU(4)=O5 184 : ETAGAU(4)=O5 185 : DZEGAU(4)=-O1 186 : QSIGAU(5)=O0 187 : ETAGAU(5)=O1 188 : DZEGAU(5)=-O1 189 : QSIGAU(6)=O0 190 : ETAGAU(6)=O5 191 : DZEGAU(6)=-O1 192 : QSIGAU(7)=O0 193 : ETAGAU(7)=O0 194 : DZEGAU(7)=O0 195 : QSIGAU(8)=O1 196 : ETAGAU(8)=O0 197 : DZEGAU(8)=O0 198 : QSIGAU(9)=O0 199 : ETAGAU(9)=O1 200 : DZEGAU(9)=O0 201 : QSIGAU(10)=O0 202 : ETAGAU(10)=O0 203 : DZEGAU(10)=O1 204 : QSIGAU(11)=O5 205 : ETAGAU(11)=O0 206 : DZEGAU(11)=O1 207 : QSIGAU(12)=O1 208 : ETAGAU(12)=O0 209 : DZEGAU(12)=O1 210 : QSIGAU(13)=O5 211 : ETAGAU(13)=O5 212 : DZEGAU(13)=O1 213 : QSIGAU(14)=O0 214 : ETAGAU(14)=O1 215 : DZEGAU(14)=O1 216 : QSIGAU(15)=O0 217 : ETAGAU(15)=O5 218 : DZEGAU(15)=O1 219 : C 220 : C--- FONCTIONS DE FORME 221 : C 222 : 2 DO 20 I=1,NBPGAU 223 : X=QSIGAU(I) 224 : Y=ETAGAU(I) 225 : Z=DZEGAU(I) 226 : C 227 : C--- FONCTIONS DE FORME DU T6 DE BASE 228 : C 229 : XY1=O1-X-Y 230 : VT(1)=O2*XY1*(O5-X-Y) 231 : VT(2)=O4*X*XY1 232 : VT(3)=O2*X*(X-O5) 233 : VT(4)=O4*X*Y 234 : VT(5)=O2*Y*(Y-O5) 235 : VT(6)=O4*XY1*Y 236 : C 237 : C--- DERIVEES DES FONCTIONS DE FORME DU T6 DE BASE 238 : C 239 : DVXT(1)=O4*(X+Y)-O3 240 : DVXT(2)=O4*(O1-X-X-Y) 241 : DVXT(3)=O4*X-O1 242 : DVXT(4)=O4*Y 243 : DVXT(5)=O0 244 : DVXT(6)=-O4*Y 245 : C 246 : DVYT(1)=O4*(X+Y)-O3 247 : DVYT(2)=-O4*X 248 : DVYT(3)=O0 249 : DVYT(4)=O4*X 250 : DVYT(5)=O4*Y-O1 251 : DVYT(6)=O4*(O1-X-Y-Y) 252 : C 253 : C--- FONCTIONS DE FORME DU PRISME 254 : C 255 : ZM1=(O1-Z)*O5 256 : ZP1=(O1+Z)*O5 257 : ZM2=O1-Z*Z 258 : C 259 : SHPTOT(1,7,I)=ZM2*XY1 260 : SHPTOT(1,8,I)=ZM2*X 261 : SHPTOT(1,9,I)=ZM2*Y 262 : C 263 : SHPTOT(1,1,I)=ZM1*VT(1)-SHPTOT(1,7,I)*O5 264 : SHPTOT(1,2,I)=ZM1*VT(2) 265 : SHPTOT(1,3,I)=ZM1*VT(3)-SHPTOT(1,8,I)*O5 266 : SHPTOT(1,4,I)=ZM1*VT(4) 267 : SHPTOT(1,5,I)=ZM1*VT(5)-SHPTOT(1,9,I)*O5 268 : SHPTOT(1,6,I)=ZM1*VT(6) 269 : C 270 : SHPTOT(1,10,I)=ZP1*VT(1)-SHPTOT(1,7,I)*O5 271 : SHPTOT(1,11,I)=ZP1*VT(2) 272 : SHPTOT(1,12,I)=ZP1*VT(3)-SHPTOT(1,8,I)*O5 273 : SHPTOT(1,13,I)=ZP1*VT(4) 274 : SHPTOT(1,14,I)=ZP1*VT(5)-SHPTOT(1,9,I)*O5 275 : SHPTOT(1,15,I)=ZP1*VT(6) 276 : C 277 : C--- DERIVEES EN X DES FONCTIONS DE FORME 278 : C 279 : SHPTOT(2,7,I) =-ZM2 280 : SHPTOT(2,8,I)=ZM2 281 : SHPTOT(2,9,I) =O0 282 : C 283 : SHPTOT(2,1,I)=ZM1*DVXT(1)-SHPTOT(2,7,I)*O5 284 : SHPTOT(2,2,I)=ZM1*DVXT(2) 285 : SHPTOT(2,3,I)=ZM1*DVXT(3)-SHPTOT(2,8,I)*O5 286 : SHPTOT(2,4,I)=ZM1*DVXT(4) 287 : SHPTOT(2,5,I)=ZM1*DVXT(5)-SHPTOT(2,9,I)*O5 288 : SHPTOT(2,6,I)=ZM1*DVXT(6) 289 : C 290 : SHPTOT(2,10,I)=ZP1*DVXT(1)-SHPTOT(2,7,I)*O5 291 : SHPTOT(2,11,I)=ZP1*DVXT(2) 292 : SHPTOT(2,12,I)=ZP1*DVXT(3)-SHPTOT(2,8,I)*O5 293 : SHPTOT(2,13,I)=ZP1*DVXT(4) 294 : SHPTOT(2,14,I)=ZP1*DVXT(5)-SHPTOT(2,9,I)*O5 295 : SHPTOT(2,15,I)=ZP1*DVXT(6) 296 : C 297 : C--- DERIVEES EN Y DES FONCTIONS DE FORME DU PRISME 298 : C 299 : SHPTOT(3,7,I) =-ZM2 300 : SHPTOT(3,8,I)=O0 301 : SHPTOT(3,9,I) =ZM2 302 : C 303 : SHPTOT(3,1,I)=ZM1*DVYT(1)-SHPTOT(3,7,I)*O5 304 : SHPTOT(3,2,I)=ZM1*DVYT(2) 305 : SHPTOT(3,3,I)=ZM1*DVYT(3)-SHPTOT(3,8,I)*O5 306 : SHPTOT(3,4,I)=ZM1*DVYT(4) 307 : SHPTOT(3,5,I)=ZM1*DVYT(5)-SHPTOT(3,9,I)*O5 308 : SHPTOT(3,6,I)=ZM1*DVYT(6) 309 : C 310 : SHPTOT(3,10,I)=ZP1*DVYT(1)-SHPTOT(3,7,I)*O5 311 : SHPTOT(3,11,I)=ZP1*DVYT(2) 312 : SHPTOT(3,12,I)=ZP1*DVYT(3)-SHPTOT(3,8,I)*O5 313 : SHPTOT(3,13,I)=ZP1*DVYT(4) 314 : SHPTOT(3,14,I)=ZP1*DVYT(5)-SHPTOT(3,9,I)*O5 315 : SHPTOT(3,15,I)=ZP1*DVYT(6) 316 : C 317 : C--- DERIVEES EN Z DES FONCTIONS DE FORME 318 : C 319 : SHPTOT(4,7,I) =-O2*Z*XY1 320 : SHPTOT(4,8,I)=-O2*Z*X 321 : SHPTOT(4,9,I) =-O2*Z*Y 322 : C 323 : SHPTOT(4,1,I)=-(VT(1)+SHPTOT(4,7,I))*O5 324 : SHPTOT(4,2,I) =-VT(2)*O5 325 : SHPTOT(4,3,I)=-(VT(3)+SHPTOT(4,8,I))*O5 326 : SHPTOT(4,4,I) =-VT(4)*O5 327 : SHPTOT(4,5,I)=-(VT(5)+SHPTOT(4,9,I))*O5 328 : SHPTOT(4,6,I) =-VT(6)*O5 329 : C 330 : SHPTOT(4,10,I)=(VT(1)-SHPTOT(4,7,I))*O5 331 : SHPTOT(4,11,I) =VT(2)*O5 332 : SHPTOT(4,12,I)=(VT(3)-SHPTOT(4,8,I))*O5 333 : SHPTOT(4,13,I) =VT(4)*O5 334 : SHPTOT(4,14,I)=(VT(5)-SHPTOT(4,9,I))*O5 335 : SHPTOT(4,15,I) =VT(6)*O5 336 : 20 CONTINUE 337 : RETURN 338 : 200 CONTINUE 338 : CALL ERREUR(19) 339 : * 340 : END 341 :
© Cast3M 2003 - All rights reserved.
Disclaimer