1 : C TPY13A SOURCE CHAT 05/01/13 03:43:40 5004 2 : SUBROUTINE TPY13A(POINTS,QSIGAU,ETAGAU,DZEGAU,POIGAU,SHPTOT) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8(A-H,O-Z) 5 : ************************************************************************ 6 : * 7 : * T P Y 1 3 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 PY13. 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,13,27) 34 : CHARACTER*(*) POINTS 35 : * 36 : * CONSTANTES: 37 : * ----------- 38 : * 39 : * 40 : PARAMETER ( UNDEMI=0.5D0 ) 41 : PARAMETER ( UN=1.D0 ) 42 : PARAMETER ( XZER=0.D0 ) 43 : PARAMETER ( DEUX=2.D0 ) 44 : PARAMETER ( TROIS=3.D0 ) 45 : PARAMETER ( QUATRE=4.D0 ) 46 : PARAMETER ( UNQUA=0.25D0 ) 47 : PARAMETER ( UN239=2.D0/39.D0 ) 48 : PARAMETER ( A1=0.788073483D0 ) 49 : PARAMETER ( B6=0.499369002D0 ) 50 : PARAMETER ( B =0.848418011D0 ) 51 : PARAMETER ( C8=0.478508449D0 ) 52 : PARAMETER ( C =0.652816472D0 ) 53 : PARAMETER ( D12=0.032303742D0 ) 54 : PARAMETER ( D =1.106412889D0 ) 55 : * 56 : * 57 : * AUTEUR, DATE DE CREATION: 58 : * ------------------------- 59 : * 60 : * SOURCE A1,REPRIS PAR DENIS ROBERT,LE 29 OCTOBRE 1987 61 : * 62 : * LANGAGE: 63 : * -------- 64 : * 65 : * FORTRAN77 66 : * 67 : ************************************************************************ 68 : * 69 : IF (POINTS(1:5).EQ.'NOEUD') GOTO 66 70 : IF (POINTS(1:5).NE.'GAUSS') GOTO 100 71 : * 72 : * COORDONNEES DES 27 POINTS DE GAUSS 73 : * 74 : NBPGAU=27 75 : NBNO=13 76 : DO 261 IA=1,5 77 : DZEGAU(IA )= UNDEMI 78 : 261 CONTINUE 79 : DZEGAU(6 )= UNDEMI*(UN-B) 80 : DZEGAU(7 )= UNDEMI*(UN+B) 81 : DO 262 IA=8,11 82 : DZEGAU(IA )= UNDEMI*(UN-C) 83 : DZEGAU(IA+4 )= UNDEMI*(UN+C) 84 : DZEGAU(IA+8 )= UNDEMI*(UN-D) 85 : DZEGAU(IA+12)= UNDEMI 86 : DZEGAU(IA+16)= UNDEMI*(UN+D) 87 : 262 CONTINUE 88 : QSIGAU(1 )= XZER 89 : QSIGAU(2 )= UNDEMI*B*(UN-DZEGAU(2)) 90 : QSIGAU(3 )=-UNDEMI*B*(UN-DZEGAU(3)) 91 : QSIGAU(4 )=-UNDEMI*B*(UN-DZEGAU(4)) 92 : QSIGAU(5 )= UNDEMI*B*(UN-DZEGAU(5)) 93 : QSIGAU(6 )= XZER 94 : QSIGAU(7 )= XZER 95 : QSIGAU(8 )= C*(UN-DZEGAU(8)) 96 : QSIGAU(9 )= XZER 97 : QSIGAU(10)=-C*(UN-DZEGAU(10)) 98 : QSIGAU(11)= XZER 99 : QSIGAU(12)= C*(UN-DZEGAU(12)) 100 : QSIGAU(13)= XZER 101 : QSIGAU(14)=-C*(UN-DZEGAU(14)) 102 : QSIGAU(15)= XZER 103 : QSIGAU(16)= UNDEMI*D*(UN-DZEGAU(16)) 104 : QSIGAU(17)=-UNDEMI*D*(UN-DZEGAU(17)) 105 : QSIGAU(18)=-UNDEMI*D*(UN-DZEGAU(18)) 106 : QSIGAU(19)= UNDEMI*D*(UN-DZEGAU(19)) 107 : QSIGAU(20)= D*(UN-DZEGAU(20)) 108 : QSIGAU(21)= XZER 109 : QSIGAU(22)=-D*(UN-DZEGAU(22)) 110 : QSIGAU(23)= XZER 111 : QSIGAU(24)= UNDEMI*D*(UN-DZEGAU(24)) 112 : QSIGAU(25)=-UNDEMI*D*(UN-DZEGAU(25)) 113 : QSIGAU(26)=-UNDEMI*D*(UN-DZEGAU(26)) 114 : QSIGAU(27)= UNDEMI*D*(UN-DZEGAU(27)) 115 : ETAGAU(1 )= XZER 116 : ETAGAU(2 )= QSIGAU(2) 117 : ETAGAU(3 )=-QSIGAU(3) 118 : ETAGAU(4 )= QSIGAU(4) 119 : ETAGAU(5 )=-QSIGAU(5) 120 : ETAGAU(6 )= QSIGAU(6) 121 : ETAGAU(7 )= QSIGAU(7) 122 : ETAGAU(8 )= XZER 123 : ETAGAU(9 )= C*(UN-DZEGAU(9)) 124 : ETAGAU(10)= XZER 125 : ETAGAU(11)=-C*(UN-DZEGAU(11)) 126 : ETAGAU(12)= XZER 127 : ETAGAU(13)= C*(UN-DZEGAU(13)) 128 : ETAGAU(14)= XZER 129 : ETAGAU(15)=-C*(UN-DZEGAU(15)) 130 : ETAGAU(16)= QSIGAU(16) 131 : ETAGAU(17)=-QSIGAU(17) 132 : ETAGAU(18)= QSIGAU(18) 133 : ETAGAU(19)=-QSIGAU(19) 134 : ETAGAU(20)= XZER 135 : ETAGAU(21)= D*(UN-DZEGAU(21)) 136 : ETAGAU(22)= XZER 137 : ETAGAU(23)=-D*(UN-DZEGAU(23)) 138 : ETAGAU(24)= QSIGAU(24) 139 : ETAGAU(25)=-QSIGAU(25) 140 : ETAGAU(26)= QSIGAU(26) 141 : ETAGAU(27)=-QSIGAU(27) 142 : * 143 : POIGAU(1)=A1 144 : DO 263 IA=2,7 145 : POIGAU(IA)=B6 146 : 263 CONTINUE 147 : DO 264 IA=8,15 148 : POIGAU(IA)=C8 149 : 264 CONTINUE 150 : DO 265 IA=16,27 151 : POIGAU(IA)=D12 152 : 265 CONTINUE 153 : DO 266 IA=1,27 154 : POIGAU(IA)=POIGAU(IA)*UNQUA*(UN-DZEGAU(IA))*(UN-DZEGAU(IA)) 155 : 266 CONTINUE 156 : GOTO 2 157 : * 158 : * COORDONNEES DES NOEUDS 159 : * 160 : 66 CONTINUE 161 : NBNO=13 162 : NBPGAU=NBNO 163 : QSIGAU(1)= UN 164 : QSIGAU(2)= UNDEMI 165 : QSIGAU(3)= XZER 166 : QSIGAU(4)=-UNDEMI 167 : QSIGAU(5)=-UN 168 : QSIGAU(6)=-UNDEMI 169 : QSIGAU(7)= XZER 170 : QSIGAU(8)= UNDEMI 171 : QSIGAU(9)= UNDEMI 172 : QSIGAU(10)= XZER 173 : QSIGAU(11)=-UNDEMI 174 : QSIGAU(12)= XZER 175 : QSIGAU(13)= XZER 176 : ETAGAU(1)= XZER 177 : ETAGAU(2)= UNDEMI 178 : ETAGAU(3)= UN 179 : ETAGAU(4)= UNDEMI 180 : ETAGAU(5)= XZER 181 : ETAGAU(6)=-UNDEMI 182 : ETAGAU(7)=-UN 183 : ETAGAU(8)=-UNDEMI 184 : ETAGAU(9)= XZER 185 : ETAGAU(10)= UNDEMI 186 : ETAGAU(11)= XZER 187 : ETAGAU(12)=-UNDEMI 188 : ETAGAU(13)= XZER 189 : DO 271 IA=9,12 190 : DZEGAU(IA)=UNDEMI 191 : 271 CONTINUE 192 : DZEGAU(13)=UN 193 : DO 272 IA=1,13 194 : POIGAU(IA)=UN239 195 : 272 CONTINUE 196 : * 197 : * FONCTIONS DE FORME ET LEURS DERIVEES 198 : * 199 : 2 DO 1 I=1,NBPGAU 200 : DZEM=UN-DZEGAU(I) 201 : DZEM2=(UN-DZEGAU(I))*DEUX 202 : PAUX = QSIGAU(I)+ETAGAU(I)+DZEGAU(I)-UN 203 : PAUX1=-QSIGAU(I)+ETAGAU(I)+DZEGAU(I)-UN 204 : PAUX2=-QSIGAU(I)-ETAGAU(I)+DZEGAU(I)-UN 205 : PAUX3= QSIGAU(I)-ETAGAU(I)+DZEGAU(I)-UN 206 : QAUX = QSIGAU(I)-UNDEMI 207 : QAUX1= ETAGAU(I)-UNDEMI 208 : QAUX2=-QSIGAU(I)-UNDEMI 209 : QAUX3=-ETAGAU(I)-UNDEMI 210 : IF(ABS(DZEGAU(I)-UN).LT.1.D-6) THEN 211 : DO 301 IB=1,13 212 : DO 301 IA=1,3 213 : SHPTOT(IA,IB,I)= XZER 214 : 301 CONTINUE 215 : SHPTOT(1,13,I)= UN 216 : SHPTOT(2,1 ,I)=-UNDEMI 217 : SHPTOT(2,5 ,I)= UNDEMI 218 : SHPTOT(2,9 ,I)= DEUX 219 : SHPTOT(2,11,I)=-DEUX 220 : SHPTOT(3,3 ,I)=-UNDEMI 221 : SHPTOT(3,7 ,I)= UNDEMI 222 : SHPTOT(3,10,I)= DEUX 223 : SHPTOT(3,12,I)=-DEUX 224 : DO 302 IA=1,7,2 225 : SHPTOT(4,IA,I)= UN/QUATRE 226 : SHPTOT(4,IA+1,I)= XZER 227 : 302 CONTINUE 228 : DO 303 IA=9,12 229 : SHPTOT(4,IA,I)=-UN 230 : 303 CONTINUE 231 : SHPTOT(4,13,I)= TROIS 232 : GO TO 1 233 : ENDIF 234 : SHPTOT(1,1 ,I)= PAUX1*PAUX2*QAUX /DZEM2 235 : SHPTOT(1,2 ,I)=-PAUX1*PAUX2*PAUX3/DZEM2 236 : SHPTOT(1,3 ,I)= PAUX2*PAUX3*QAUX1/DZEM2 237 : SHPTOT(1,4 ,I)=-PAUX2*PAUX3*PAUX /DZEM2 238 : SHPTOT(1,5 ,I)= PAUX3*PAUX *QAUX2/DZEM2 239 : SHPTOT(1,6 ,I)=-PAUX3*PAUX *PAUX1/DZEM2 240 : SHPTOT(1,7 ,I)= PAUX *PAUX1*QAUX3/DZEM2 241 : SHPTOT(1,8 ,I)=-PAUX *PAUX1*PAUX2/DZEM2 242 : SHPTOT(1,9 ,I)= DZEGAU(I)*PAUX1*PAUX2/DZEM 243 : SHPTOT(1,10,I)= DZEGAU(I)*PAUX2*PAUX3/DZEM 244 : SHPTOT(1,11,I)= DZEGAU(I)*PAUX3*PAUX /DZEM 245 : SHPTOT(1,12,I)= DZEGAU(I)*PAUX *PAUX1/DZEM 246 : SHPTOT(1,13,I)= DEUX*DZEGAU(I)*(DZEGAU(I)-UNDEMI) 247 : C 248 : SHPTOT(2,1 ,I)=(PAUX1*PAUX2-(PAUX1+PAUX2)*QAUX)/DZEM2 249 : SHPTOT(2,2 ,I)=(PAUX2*PAUX3+PAUX1*PAUX3-PAUX1*PAUX2)/DZEM2 250 : SHPTOT(2,3 ,I)=(PAUX2-PAUX3)*QAUX1/DZEM2 251 : SHPTOT(2,4 ,I)=(PAUX3*PAUX-PAUX2*PAUX-PAUX2*PAUX3)/DZEM2 252 : SHPTOT(2,5 ,I)=((PAUX+PAUX3)*QAUX2-PAUX3*PAUX)/DZEM2 253 : SHPTOT(2,6 ,I)=(PAUX3*PAUX-PAUX*PAUX1-PAUX3*PAUX1)/DZEM2 254 : SHPTOT(2,7 ,I)=(PAUX1-PAUX)*QAUX3/DZEM2 255 : SHPTOT(2,8 ,I)=(PAUX*PAUX2+PAUX*PAUX1-PAUX1*PAUX2)/DZEM2 256 : SHPTOT(2,9 ,I)=(-PAUX2-PAUX1)*DZEGAU(I)/DZEM 257 : SHPTOT(2,10,I)=(PAUX2-PAUX3)*DZEGAU(I)/DZEM 258 : SHPTOT(2,11,I)=(PAUX+PAUX3)*DZEGAU(I)/DZEM 259 : SHPTOT(2,12,I)=(PAUX1-PAUX)*DZEGAU(I)/DZEM 260 : SHPTOT(2,13,I)=XZER 261 : C 262 : SHPTOT(3,1 ,I)=(PAUX2-PAUX1)*QAUX/DZEM2 263 : SHPTOT(3,2 ,I)=(PAUX1*PAUX3+PAUX1*PAUX2-PAUX2*PAUX3)/DZEM2 264 : SHPTOT(3,3 ,I)=(PAUX2*PAUX3-(PAUX2+PAUX3)*QAUX1)/DZEM2 265 : SHPTOT(3,4 ,I)=(PAUX3*PAUX+PAUX2*PAUX-PAUX2*PAUX3)/DZEM2 266 : SHPTOT(3,5 ,I)=(PAUX3-PAUX)*QAUX2/DZEM2 267 : SHPTOT(3,6 ,I)=(PAUX*PAUX1-PAUX3*PAUX1-PAUX3*PAUX)/DZEM2 268 : SHPTOT(3,7 ,I)=((PAUX1+PAUX)*QAUX3-PAUX*PAUX1)/DZEM2 269 : SHPTOT(3,8 ,I)=(PAUX*PAUX1-PAUX1*PAUX2-PAUX*PAUX2)/DZEM2 270 : SHPTOT(3,9 ,I)=(PAUX2-PAUX1)*DZEGAU(I)/DZEM 271 : SHPTOT(3,10,I)=(-PAUX3-PAUX2)*DZEGAU(I)/DZEM 272 : SHPTOT(3,11,I)=(PAUX3-PAUX)*DZEGAU(I)/DZEM 273 : SHPTOT(3,12,I)=(PAUX+PAUX1)*DZEGAU(I)/DZEM 274 : SHPTOT(3,13,I)=XZER 275 : C 276 : SHPTOT(4,1 ,I)=(PAUX1+PAUX2+PAUX1*PAUX2/DZEM)*QAUX/DZEM2 277 : SHPTOT(4,2 ,I)=-UN*(PAUX2*PAUX3+PAUX1*PAUX3+PAUX1*PAUX2+ 278 : + PAUX1*PAUX2*PAUX3/DZEM)/DZEM2 279 : SHPTOT(4,3 ,I)=(PAUX2+PAUX3+PAUX2*PAUX3/DZEM)*QAUX1/DZEM2 280 : SHPTOT(4,4 ,I)=-UN*(PAUX3*PAUX +PAUX2*PAUX+PAUX2*PAUX3+ 281 : + PAUX2*PAUX3*PAUX/DZEM)/DZEM2 282 : SHPTOT(4,5 ,I)=(PAUX+PAUX3+PAUX*PAUX3/DZEM)*QAUX2/DZEM2 283 : SHPTOT(4,6 ,I)=-UN*(PAUX*PAUX1+PAUX3*PAUX1+PAUX3*PAUX+ 284 : + PAUX3*PAUX*PAUX1/DZEM)/DZEM2 285 : SHPTOT(4,7 ,I)=(PAUX1+PAUX+PAUX*PAUX1/DZEM)*QAUX3/DZEM2 286 : SHPTOT(4,8 ,I)=-UN*(PAUX1*PAUX2+PAUX*PAUX2+PAUX*PAUX1+ 287 : + PAUX*PAUX1*PAUX2/DZEM)/DZEM2 288 : SHPTOT(4,9 ,I)=PAUX1*PAUX2/DZEM/DZEM+(PAUX2+PAUX1)*DZEGAU(I)/DZEM 289 : SHPTOT(4,10,I)=PAUX2*PAUX3/DZEM/DZEM+(PAUX3+PAUX2)*DZEGAU(I)/DZEM 290 : SHPTOT(4,11,I)=PAUX3*PAUX /DZEM/DZEM+(PAUX +PAUX3)*DZEGAU(I)/DZEM 291 : SHPTOT(4,12,I)=PAUX *PAUX1/DZEM/DZEM+(PAUX +PAUX1)*DZEGAU(I)/DZEM 292 : SHPTOT(4,13,I)=QUATRE*DZEGAU(I)-UN 293 : 1 CONTINUE 294 : RETURN 295 : 100 CONTINUE 295 : CALL ERREUR(19) 296 : * 297 : END 298 :
© Cast3M 2003 - All rights reserved.
Disclaimer