Download pb902.eso

Back to the list

   1 : C PB902     SOURCE    MAGN      10/06/02    21:15:00     6681           
   2 :       SUBROUTINE PB902
   3 :      &(XREF,X,Y,PG,FN,GR,FM,GM,ND,NP,MP,NG,NPG,NOM2,ITYPI)
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8 (A-H,O-Z)                                                 
   6 : C************************************************************************       
   7 : C                                                                               
   8 : C     CALCULE LES FONCTIONS DE FORME D'UN : QUA9
   9 : C        eta
  10 : C        ^
  11 : C        |
  12 : C        7      6      5
  13 : C 1.     x------x------x
  14 : C        |             |
  15 : C        |             |
  16 : C alfa  8x     9x     4x
  17 : C        |             |
  18 : C        |             |
  19 : C 0.     x------x------x--> ksi
  20 : C        1      2      3
  21 : C
  22 : C        0.     alfa   1.
  23 : C
  24 : C ITYPI=2 pts d'intégration de type Gauss Lobatto i.e. sommets élément
  25 : C
  26 : C REMARQUE : Pour l'élément quadratique.
  27 : C En coordonnées cylindriques si les points milieux (2,4,6,8,9) sont
  28 : C pile poil au milieu, la matrice masse diagonale s'annule sur l'axe.
  29 : C /1
  30 : C | 2 pi x N1 dx = 0.
  31 : C /0
  32 : C Pour remédier à cela on décale un peu les points mileux sur l'élément
  33 : C de référence, alfa=0.50005 au lieu de 0.5 .
  34 : C Si on rapprochait les points milieux de l'axe (alfa = 0.45 par exemple)
  35 : C la matrice masse diagonale serait négative sur l'axe, ce que l'on ne
  36 : C veut pas non plus. En conséquence le choix qu'on a fait doit être
  37 : C accompagné d'une numérotation dans le sens trigo de l'élément courant.
  38 : C************************************************************************       
  39 :       REAL*8 XREF(ND,NP),X(NPG),Y(NPG)
  40 :       DIMENSION FN(NP,NPG),GR(ND,NP,NPG),PG(NPG)                                
  41 :       DIMENSION FM(MP,NPG),GM(ND,MP,NPG)                                        
  42 :       CHARACTER*4 NOM2
  43 :       REAL*8 A,B,C,D,U(5),H(5),AUX1,AUX2
  44 : -INC CCOPTIO
  45 :                                                                                 
  46 : C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>        
  47 :       AUX1=1.D0/2.D0+3.D0**(1.D0/2.D0)/6.D0                                     
  48 :       AUX2=1.D0/2.D0-3.D0**(1.D0/2.D0)/6.D0                                     
  49 : C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>        
  50 :       IF(IFOMOD.EQ.0)THEN
  51 :       alfa=0.50005D0
  52 :       ELSE
  53 :       alfa=0.5D0
  54 :       ENDIF
  55 : 
  56 :       alfai=1.D0/alfa
  57 :       alfa2=1.D0/alfa/(alfa - 1.D0)
  58 :       alfa3=1.D0/(alfai - 1.D0)
  59 : 
  60 :       XREF(1,1)=0.D0
  61 :       XREF(2,1)=0.D0
  62 : 
  63 :       XREF(1,2)=alfa
  64 :       XREF(2,2)=0.D0
  65 : 
  66 :       XREF(1,3)=1.D0
  67 :       XREF(2,3)=0.D0
  68 : 
  69 :       XREF(1,4)=1.D0
  70 :       XREF(2,4)=alfa
  71 : 
  72 :       XREF(1,5)=1.D0
  73 :       XREF(2,5)=1.D0
  74 : 
  75 :       XREF(1,6)=alfa
  76 :       XREF(2,6)=1.D0
  77 : 
  78 :       XREF(1,7)=0.D0
  79 :       XREF(2,7)=1.D0
  80 : 
  81 :       XREF(1,8)=0.D0
  82 :       XREF(2,8)=alfa
  83 : 
  84 :       XREF(1,9)=alfa
  85 :       XREF(2,9)=alfa
  86 : 
  87 : C Verification des coordonnées
  88 : c     IF(.TRUE.)THEN
  89 :       IF(.FALSE.)THEN
  90 :       DO 11 L=1,NP
  91 :       X(L)=XREF(1,L)
  92 :       Y(L)=XREF(2,L)
  93 :  11   CONTINUE
  94 : 
  95 :       DO 12 L=1,NP
  96 :       FN(1,L)=(X(L)-1.D0)*(alfai*X(L)-1.D0)
  97 :      &       *(Y(L)-1.D0)*(alfai*Y(L)-1.D0)
  98 :       FN(2,L)=alfa2*X(L)*(X(L)-1.D0)
  99 :      &       *(Y(L)-1.D0)*(alfai*Y(L)-1.D0)
 100 :       FN(3,L)=alfa3*X(L)*(alfai*X(L)-1.D0)
 101 :      &       *(Y(L)-1.D0)*(alfai*Y(L)-1.D0)
 102 :       FN(4,L)=alfa3*X(L)*(alfai*X(L)-1.D0)
 103 :      &       *alfa2*Y(L)*(Y(L)-1.D0)
 104 :       FN(5,L)=alfa3*X(L)*(alfai*X(L)-1.D0)
 105 :      &       *alfa3*Y(L)*(alfai*Y(L)-1.D0)
 106 :       FN(6,L)=alfa2*X(L)*(X(L)-1.D0)
 107 :      &       *alfa3*Y(L)*(alfai*Y(L)-1.D0)
 108 :       FN(7,L)=(X(L)-1.D0)*(alfai*X(L)-1.D0)
 109 :      &       *alfa3*Y(L)*(alfai*Y(L)-1.D0)
 110 :       FN(8,L)=(X(L)-1.D0)*(alfai*X(L)-1.D0)
 111 :      &       *alfa2*Y(L)*(Y(L)-1.D0)
 112 :       FN(9,L)=alfa2*X(L)*(X(L)-1.D0)
 113 :      &       *alfa2*Y(L)*(Y(L)-1.D0)
 114 : 
 115 :       write(6,1033)L,FN(1,L),FN(2,L),FN(3,L),FN(4,L),FN(5,L),FN(6,L)
 116 :      &              ,FN(7,L),FN(8,L),FN(9,L)
 117 :  12   CONTINUE
 118 :  1033 FORMAT(1X,I4,' FN',10(1X,1PD11.4))
 119 :       ENDIF
 120 : C Fin Vérification
 121 : 
 121 :       CALL CALUHG(U,H,NG)                                                       
 122 : C                                                                               
 123 :       A=0.D0                                                                    
 124 :       B=1.D0                                                                    
 125 :       C=0.D0                                                                    
 126 :       D=1.D0                                                                    
 127 :       IF(ITYPI.EQ.2)THEN
 128 :       X(1)=0.D0
 129 :       Y(1)=0.D0
 130 :       X(2)=alfa
 131 :       Y(2)=0.D0
 132 :       X(3)=1.D0
 133 :       Y(3)=0.D0
 134 :       X(4)=1.D0
 135 :       Y(4)=alfa
 136 :       X(5)=1.D0
 137 :       Y(5)=1.D0
 138 :       X(6)=alfa
 139 :       Y(6)=1.D0
 140 :       X(7)=0.D0
 141 :       Y(7)=1.D0
 142 :       X(8)=0.D0
 143 :       Y(8)=alfa
 144 :       X(9)=alfa
 145 :       Y(9)=alfa
 146 :       DO 2 L=1,NPG
 147 :       PG(L)=1.D0/9.D0
 148 :  2    CONTINUE
 149 :       ELSE
 149 :       CALL CALG2(A,B,C,D,NG,H,U,X,Y,PG)                                         
 150 :       ENDIF
 151 : 
 152 :       DO 1 L=1,NPG                                                              
 153 : C                                                                               
 154 :       IF(NOM2.EQ.'PRP0')THEN
 155 :       FM(1,L)= 1.D0
 156 : 
 157 :       GM(1,1,L)=0.D0
 158 :       GM(2,1,L)=0.D0
 159 : 
 160 :       ELSEIF(NOM2.EQ.'PRQ1')THEN
 161 :       FM(1,L)= 3.D0*(X(L)-AUX1)*(Y(L)-AUX1)                                     
 162 :       FM(2,L)=-3.D0*(X(L)-AUX2)*(Y(L)-AUX1)                                     
 163 :       FM(3,L)= 3.D0*(X(L)-AUX2)*(Y(L)-AUX2)                                     
 164 :       FM(4,L)=-3.D0*(X(L)-AUX1)*(Y(L)-AUX2)                                     
 165 : C                                                                               
 166 :       GM(1,1,L)=3.D0*(Y(L)-AUX1)                                                
 167 :       GM(2,1,L)=3.D0*(X(L)-AUX1)                                                
 168 :       GM(1,2,L)=-3.D0*(Y(L)-AUX1)                                               
 169 :       GM(2,2,L)=-3.D0*(X(L)-AUX2)                                               
 170 :       GM(1,3,L)=3.D0*(Y(L)-AUX2)                                                
 171 :       GM(2,3,L)=3.D0*(X(L)-AUX2)                                                
 172 :       GM(1,4,L)=-3.D0*(Y(L)-AUX2)                                               
 173 :       GM(2,4,L)=-3.D0*(X(L)-AUX1)                                               
 174 : 
 175 :       ELSEIF(NOM2.EQ.'PRP1')THEN
 176 : C?    FM(1,L)= (3.D0-4.D0*X(L))/2.D0
 177 : C?    FM(2,L)= 2.D0*(X(L)-Y(L))
 178 : C?    FM(3,L)= (4.D0*Y(L)-1.D0)/2.D0
 179 :       FM(1,L)= (4.D0*X(L)+4.D0*Y(L)-3.D0)/3.D0
 180 :       FM(2,L)=-1.D0/3.D0*(8.D0*X(L)-4.D0*Y(L)-3.D0)
 181 :       FM(3,L)= 1.D0/3.D0*(-8.D0*Y(L)+4.D0*X(L)+3.D0)
 182 : C                                                                               
 183 :       GM(1,1,L)=0.D0
 184 :       GM(2,1,L)=0.D0
 185 :       GM(1,2,L)=0.D0
 186 :       GM(2,2,L)=0.D0
 187 :       GM(1,3,L)=0.D0
 188 :       GM(2,3,L)=0.D0
 189 :       ELSEIF(NOM2.EQ.'PFP1')THEN
 190 :       FM(1,L)= (X(L)-1.D0)*(Y(L)-1.D0)
 191 :       FM(2,L)=-X(L)*(Y(L)-1.D0)
 192 :       FM(3,L)= X(L)*Y(L)
 193 :       FM(4,L)=-Y(L)*(X(L)-1.D0)
 194 : 
 195 :       GM(1,1,L)=Y(L)-1.D0
 196 :       GM(2,1,L)=X(L)-1.D0
 197 :       GM(1,2,L)=-(Y(L)-1.D0)
 198 :       GM(2,2,L)=-X(L)
 199 :       GM(1,3,L)=Y(L)
 200 :       GM(2,3,L)=X(L)
 201 :       GM(1,4,L)=-Y(L)
 202 :       GM(2,4,L)=-(X(L)-1.D0)
 203 :       ENDIF
 204 : C                                                                               
 205 : c     N1X=(X(L)-1.D0)*(alfai*X(L)-1.D0)
 206 : c     N1Y=(Y(L)-1.D0)*(alfai*Y(L)-1.D0)
 207 : c
 208 : c     N2X=alfa2*X(L)*(X(L)-1.D0)
 209 : c     N2Y=alfa2*Y(L)*(Y(L)-1.D0)
 210 : c
 211 : c     N3X=alfa3*X(L)*(alfai*X(L)-1.D0)
 212 : c     N3Y=alfa3*Y(L)*(alfai*Y(L)-1.D0)
 213 : C                                                                               
 214 : 
 215 : c     FN(1,L)=N1X*N1Y
 216 :       FN(1,L)=(X(L)-1.D0)*(alfai*X(L)-1.D0)
 217 :      &       *(Y(L)-1.D0)*(alfai*Y(L)-1.D0)
 218 : c     FN(2,L)=N2X*N1Y
 219 :       FN(2,L)=alfa2*X(L)*(X(L)-1.D0)
 220 :      &       *(Y(L)-1.D0)*(alfai*Y(L)-1.D0)
 221 : c     FN(3,L)=N3X*N1Y
 222 :       FN(3,L)=alfa3*X(L)*(alfai*X(L)-1.D0)
 223 :      &       *(Y(L)-1.D0)*(alfai*Y(L)-1.D0)
 224 : c     FN(4,L)=N3X*N2Y
 225 :       FN(4,L)=alfa3*X(L)*(alfai*X(L)-1.D0)
 226 :      &       *alfa2*Y(L)*(Y(L)-1.D0)
 227 : c     FN(5,L)=N3X*N3Y
 228 :       FN(5,L)=alfa3*X(L)*(alfai*X(L)-1.D0)
 229 :      &       *alfa3*Y(L)*(alfai*Y(L)-1.D0)
 230 : c     FN(6,L)=N2X*N3Y
 231 :       FN(6,L)=alfa2*X(L)*(X(L)-1.D0)
 232 :      &       *alfa3*Y(L)*(alfai*Y(L)-1.D0)
 233 : c     FN(7,L)=N1X*N3Y
 234 :       FN(7,L)=(X(L)-1.D0)*(alfai*X(L)-1.D0)
 235 :      &       *alfa3*Y(L)*(alfai*Y(L)-1.D0)
 236 : c     FN(8,L)=N1X*N2Y
 237 :       FN(8,L)=(X(L)-1.D0)*(alfai*X(L)-1.D0)
 238 :      &       *alfa2*Y(L)*(Y(L)-1.D0)
 239 : c     FN(9,L)=N2X*N2Y
 240 :       FN(9,L)=alfa2*X(L)*(X(L)-1.D0)
 241 :      &       *alfa2*Y(L)*(Y(L)-1.D0)
 242 : 
 243 : C                                                                               
 244 : c     FN(1,L)=(X(L)-1.D0)*(Y(L)-1.D0)*(2.D0*X(L)-1.D0)*(2.D0*Y(L)-1.D0)
 245 : c     FN(2,L)=-4.D0*X(L)*(X(L)-1.D0)*(2.D0*Y(L)-1.D0)*(Y(L)-1.D0)
 246 : c     FN(3,L)=X(L)*(2.D0*X(L)-1.D0)*(2.D0*Y(L)-1.D0)*(Y(L)-1.D0)
 247 : c     FN(4,L)=-4.D0*X(L)*Y(L)*(2.D0*X(L)-1.D0)*(Y(L)-1.D0)
 248 : c     FN(5,L)=X(L)*Y(L)*(2.D0*X(L)-1.D0)*(2.D0*Y(L)-1.D0)
 249 : c     FN(6,L)=-4.D0*X(L)*Y(L)*(X(L)-1.D0)*(2.D0*Y(L)-1.D0)
 250 : c     FN(7,L)=Y(L)*(2.D0*Y(L)-1.D0)*(2.D0*X(L)-1.D0)*(X(L)-1.D0)
 251 : c     FN(8,L)=-4.D0*Y(L)*(Y(L)-1.D0)*(X(L)-1.D0)*(2.D0*X(L)-1.D0)
 252 : c     FN(9,L)=16.D0*X(L)*Y(L)*(X(L)-1.D0)*(Y(L)-1.D0)
 253 : C                                                                               
 254 : c     N1X=(X(L)-1.D0)*(alfai*X(L)-1.D0)
 255 : c     N1Y=(Y(L)-1.D0)*(alfai*Y(L)-1.D0)
 256 : c
 257 : c     N2X=alfa2*X(L)*(X(L)-1.D0)
 258 : c     N2Y=alfa2*Y(L)*(Y(L)-1.D0)
 259 : c
 260 : c     N3X=alfa3*X(L)*(alfai*X(L)-1.D0)
 261 : c     N3Y=alfa3*Y(L)*(alfai*Y(L)-1.D0)
 262 : c
 263 : c     G1X=2.D0*alfai*X(L)-(1.D0 + alfai)
 264 : c     G1Y=2.D0*alfai*Y(L)-(1.D0 + alfai)
 265 : c
 266 : c     G2X=alfa2*(2.D0*X(L)-1.D0)
 267 : c     G2Y=alfa2*(2.D0*Y(L)-1.D0)
 268 : c
 269 : c     G3X=alfa3*(2.D0*alfai*X(L)-1.D0)
 270 : c     G3Y=alfa3*(2.D0*alfai*Y(L)-1.D0)
 271 : 
 272 : C                                                                               
 273 : c     GR(1,1,L)=G1X*N1Y
 274 :       GR(1,1,L)=(2.D0*alfai*X(L)-(1.D0 + alfai))
 275 :      &         *(Y(L)-1.D0)*(alfai*Y(L)-1.D0)
 276 : c     GR(2,1,L)=N1X*G1Y
 277 :       GR(2,1,L)=(X(L)-1.D0)*(alfai*X(L)-1.D0)
 278 :      &         *(2.D0*alfai*Y(L)-(1.D0 + alfai))
 279 : c     GR(1,2,L)=G2X*N1Y
 280 :       GR(1,2,L)=(Y(L)-1.D0)*(alfai*Y(L)-1.D0)
 281 :      &         *alfa2*(2.D0*X(L)-1.D0)
 282 : c     GR(2,2,L)=N2X*G1Y
 283 :       GR(2,2,L)=alfa2*X(L)*(X(L)-1.D0)
 284 :      &         *(2.D0*alfai*Y(L)-(1.D0 + alfai))
 285 : c     GR(1,3,L)=G3X*N1Y
 286 :       GR(1,3,L)=alfa3*(2.D0*alfai*X(L)-1.D0)
 287 :      &         *(Y(L)-1.D0)*(alfai*Y(L)-1.D0)
 288 : c     GR(2,3,L)=N3X*G1Y
 289 :       GR(2,3,L)=alfa3*X(L)*(alfai*X(L)-1.D0)
 290 :      &         *(2.D0*alfai*Y(L)-(1.D0 + alfai))
 291 : c     GR(1,4,L)=G3X*N2Y
 292 :       GR(1,4,L)=alfa3*(2.D0*alfai*X(L)-1.D0)
 293 :      &         *alfa2*Y(L)*(Y(L)-1.D0)
 294 : c     GR(2,4,L)=N3X*G2Y
 295 :       GR(2,4,L)=alfa3*X(L)*(alfai*X(L)-1.D0)
 296 :      &         *alfa2*(2.D0*Y(L)-1.D0)
 297 : c     GR(1,5,L)=G3X*N3Y
 298 :       GR(1,5,L)=alfa3*(2.D0*alfai*X(L)-1.D0)
 299 :      &         *alfa3*Y(L)*(alfai*Y(L)-1.D0)
 300 : c     GR(2,5,L)=N3X*G3Y
 301 :       GR(2,5,L)=alfa3*X(L)*(alfai*X(L)-1.D0)
 302 :      &         *alfa3*(2.D0*alfai*Y(L)-1.D0)
 303 : c     GR(1,6,L)=G2X*N3Y
 304 :       GR(1,6,L)=alfa2*(2.D0*X(L)-1.D0)
 305 :      &         *alfa3*Y(L)*(alfai*Y(L)-1.D0)
 306 : c     GR(2,6,L)=N2X*G3Y
 307 :       GR(2,6,L)=alfa2*X(L)*(X(L)-1.D0)
 308 :      &         *alfa3*(2.D0*alfai*Y(L)-1.D0)
 309 : c     GR(1,7,L)=G1X*N3Y
 310 :       GR(1,7,L)=(2.D0*alfai*X(L)-(1.D0 + alfai))
 311 :      &         *alfa3*Y(L)*(alfai*Y(L)-1.D0)
 312 : c     GR(2,7,L)=N1X*G3Y
 313 :       GR(2,7,L)=(X(L)-1.D0)*(alfai*X(L)-1.D0)
 314 :      &         *alfa3*(2.D0*alfai*Y(L)-1.D0)
 315 : c     GR(1,8,L)=G1X*N2Y
 316 :       GR(1,8,L)=(2.D0*alfai*X(L)-(1.D0 + alfai))
 317 :      &         *alfa2*Y(L)*(Y(L)-1.D0)
 318 : c     GR(2,8,L)=N1X*G2Y
 319 :       GR(2,8,L)=(X(L)-1.D0)*(alfai*X(L)-1.D0)
 320 :      &         *alfa2*(2.D0*Y(L)-1.D0)
 321 : c     GR(1,9,L)=G2X*N2Y
 322 :       GR(1,9,L)=alfa2*Y(L)*(Y(L)-1.D0)
 323 :      &         *alfa2*(2.D0*X(L)-1.D0)
 324 : c     GR(2,9,L)=N2X*G2Y
 325 :       GR(2,9,L)=alfa2*X(L)*(X(L)-1.D0)
 326 :      &         *alfa2*(2.D0*Y(L)-1.D0)
 327 : C                                                                               
 328 : c     GR(1,1,L)=(Y(L)-1.D0)*(2.D0*Y(L)-1.D0)*(4.D0*X(L)-3.D0)
 329 : c     GR(2,1,L)=(X(L)-1.D0)*(2.D0*X(L)-1.D0)*(4.D0*Y(L)-3.D0)
 330 : c     GR(1,2,L)=-4.D0*(2.D0*X(L)-1.D0)*(2.D0*Y(L)-1.D0)*(Y(L)-1.D0)
 331 : c     GR(2,2,L)=-4.D0*X(L)*(X(L)-1.D0)*(4.D0*Y(L)-3.D0)
 332 : c     GR(1,3,L)=(2.D0*Y(L)-1.D0)*(Y(L)-1.D0)*(4.D0*X(L)-1.D0)
 333 : c     GR(2,3,L)=X(L)*(2.D0*X(L)-1.D0)*(4.D0*Y(L)-3.D0)
 334 : c     GR(1,4,L)=-4.D0*Y(L)*(Y(L)-1.D0)*(4.D0*X(L)-1.D0)
 335 : c     GR(2,4,L)=-4.D0*X(L)*(2.D0*X(L)-1.D0)*(2.D0*Y(L)-1.D0)
 336 : c     GR(1,5,L)=Y(L)*(2.D0*Y(L)-1.D0)*(4.D0*X(L)-1.D0)
 337 : c     GR(2,5,L)=X(L)*(2.D0*X(L)-1.D0)*(4.D0*Y(L)-1.D0)
 338 : c     GR(1,6,L)=-4.D0*Y(L)*(2.D0*Y(L)-1.D0)*(2.D0*X(L)-1.D0)
 339 : c     GR(2,6,L)=-4.D0*X(L)*(X(L)-1.D0)*(4.D0*Y(L)-1.D0)
 340 : c     GR(1,7,L)=Y(L)*(2.D0*Y(L)-1.D0)*(4.D0*X(L)-3.D0)
 341 : c     GR(2,7,L)=(2.D0*X(L)-1.D0)*(X(L)-1.D0)*(4.D0*Y(L)-1.D0)
 342 : c     GR(1,8,L)=-4.D0*Y(L)*(Y(L)-1.D0)*(4.D0*X(L)-3.D0)
 343 : c     GR(2,8,L)=-4.D0*(X(L)-1.D0)*(2.D0*X(L)-1.D0)*(2.D0*Y(L)-1.D0)
 344 : c     GR(1,9,L)=16.D0*Y(L)*(Y(L)-1.D0)*(2.D0*X(L)-1.D0)
 345 : c     GR(2,9,L)=16.D0*X(L)*(X(L)-1.D0)*(2.D0*Y(L)-1.D0)
 346 : C                                                                               
 347 :  1    CONTINUE                                                                  
 348 : C                                                                               
 349 : C                                                                               
 350 : C     WRITE(6,101)
 351 : C     WRITE(6,1002)FM
 352 : C     WRITE(6,1002)GM
 353 : C     WRITE(6,1002)FN
 354 : C     WRITE(6,1002)GR
 355 : C     WRITE(6,101)
 356 : 
 357 : C     write(6,*)' RET PB902 '
 358 :       RETURN                                                                    
 359 :  1002 FORMAT(10(1X,1PD11.4))                                                    
 360 :  1001 FORMAT(20(1X,I5))                                                         
 361 :  101  FORMAT(1X,'... SUBPB902 ... FM,GM,FN,GR ',9(10H..........)/)              
 362 : C                                                                               
 363 :       END                                                                       
 364 :  
 365 :  
 366 :  
 367 :  
 368 :  
 369 :  
 370 :  
 371 :  
 372 :  

© Cast3M 2003 - All rights reserved.
Disclaimer