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