Télécharger c1dp.eso

Retour à la liste

Numérotation des lignes :

  1. C C1DP SOURCE CHAT 05/01/12 21:44:47 5004
  2. SUBROUTINE C1DP(SIG,DSIG,YOUN,ANU,RT1,RT2,RDP,ADP,HDP,
  3. 1 XLAM1,XLAM2,XLAM3,IDAM,ANG,EPPLDP,ALPHA,KERRE)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6.  
  7. -INC PPARAM
  8. -INC CCOPTIO
  9. DIMENSION SIG(3),DSIG(3),SGG(3),DSGG(3),SFG(3),DSFG(3),
  10. 1 A(3),B(3),IDAM(3),EPC(3),SSI(3),SI(3),EPC1(3),
  11. 1 EPDP(3),EC(3),EPPLDP(3),SG(3),AT(4),BT(2),TENS(3)
  12. ITER=0
  13. Y=YOUN/(1.D0-ANU*ANU)
  14. SIREF=1.E-6*YOUN
  15. DO 10 ITYP=1,3
  16. EPDP(ITYP)=0.D0
  17. 10 EPPLDP(ITYP)=0.D0
  18. DL3=0.D0
  19. XT=0.D0
  20. IF(IIMPI.EQ.9) WRITE(IOIMP,9999)
  21. 9999 FORMAT(1X,'C1DP COUPLAGE COMP 1 DRUCKER',/)
  22. 9998 FORMAT(1X,'C1DP ',I4,'ITERATIONS INTERNES',/)
  23. C
  24. C------------------------------------------------
  25. C COUPLAGE COMPRESSION 1 DRUCKER
  26. C------------------------------------------------
  27. C----------------------------------------------
  28. C DEFINITION D UNE CONTRAINTE DE REFERENCE
  29. C SI RMAX DU DRUCKER INFERIEURE A CETTE VALEUR
  30. C ALORS SIGMA=0
  31. C----------------------------------------------
  32. C
  33. RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP)))
  34. IF(SIREF.GT.RMAX) THEN
  35. DO 20 ITYP=1,3
  36. 20 SIG(ITYP)=SIG(ITYP)+DSIG(ITYP)
  37. RDP=0.D0
  38. HDP=0.D0
  39. ADP=0.D0
  40. CALL CPHOIN(SIG,EPPLDP,YOUN,ANU)
  41. CALL NORME(SIG,DL3)
  42. DL3=DL3/YOUN*10.D0
  43. XLAM3=XLAM3+DL3
  44. DO 30 ITYP=1,3
  45. IDAM(ITYP)=0
  46. DSIG(ITYP)=0.D0
  47. 30 SIG(ITYP)=0.D0
  48. IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER
  49. RETURN
  50. ENDIF
  51. C-----------------------------------------------
  52. C ON SEPLACE DANS LE REPERE DE FISSURATION
  53. C-----------------------------------------------
  54. C
  55. CALL CHREP(SIG,SFG,ANG)
  56. CALL CHREP(DSIG,DSFG,ANG)
  57. C
  58. C-----------------------------------------------------
  59. C ESTIMATION DU PAS D'INCREMENT DE CONTRAINTES
  60. C-----------------------------------------------------
  61. C
  62. CALL SIJ(SFG,SI,SIETOI)
  63. CALL EPSDP(SI,SIETOI,ADP,EPC)
  64. CALL CPHOMO(EPC,SSI,YOUN,ANU,ALPHA)
  65. CALL SCAL2(EPC,SSI,VAL)
  66. VAL=VAL-HDP
  67. IF(VAL.LT.0.D0) THEN
  68. KERRE=459
  69. RETURN
  70. ENDIF
  71. CALL SCAL(SSI,DSFG,VAL)
  72. CALL NORME(DSFG,VA1)
  73. CALL NORME(SSI,VA2)
  74. IF(VA1.EQ.0.D0) THEN
  75. IDAM(1)=0
  76. IDAM(2)=0
  77. IDAM(3)=0
  78. RETURN
  79. ENDIF
  80. RMIN=MIN((RDP/1.73),(RDP/(1.D0+2.D0*ADP)))
  81. X=VAL/VA1/VA2
  82. IF(X.GE.1.D0) THEN
  83. X=1.D0
  84. GOTO 41
  85. ENDIF
  86. X=1.D0/SQRT(1.0001D0-X*X)*RMIN/VA1/8.D0
  87. IF(X.GE.1.D0) X=1.D0
  88. C
  89. C----------------------------------------------------------
  90. C ON ECOULE ET ON REGARDE LA VARIATION DE NORMALE
  91. C----------------------------------------------------------
  92. C
  93. C
  94. C---------------------------------------
  95. C RESOLUTION DU SYSTEME EN DL3
  96. C---------------------------------------
  97. 41 X=X/2.D0
  98. EC(1)=1.D0
  99. EC(2)=0.D0
  100. EC(3)=0.D0
  101. CALL CPHOOB(EC,SG,YOUN,ANU)
  102. 100 X=X*2.D0
  103. CALL SIJ(SFG,SI,SIETOI)
  104. CALL EPSDP(SI,SIETOI,ADP,EPC)
  105. CALL CPHOMO(EPC,SSI,YOUN,ANU,ALPHA)
  106. CALL SCAL2(EPC,SSI,VAL)
  107. VAL=VAL-HDP
  108. IF(VAL.LT.0.D0) THEN
  109. KERRE=459
  110. RETURN
  111. ENDIF
  112. IF((XT+X).GT.1.D0) X=1.D0-XT
  113. 110 RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP)))
  114. C
  115. C --------------------------------------------------
  116. C CAS OU LE RAYON MAXIMAL DU DRUCKER-PRAGER
  117. C INFERIEUR A LA CONTRAINTE DE REFERENCE
  118. C --------------------------------------------------
  119. C
  120. IF(SIREF.LT.RMAX) GOTO 131
  121. DO 120 ITYP=1,3
  122. 120 SFG(ITYP)=SFG(ITYP)+(1.D0-XT)*DSFG(ITYP)
  123. RDP=0.D0
  124. ADP=0.D0
  125. HDP=0.D0
  126. CALL NORME(SFG,DL3)
  127. DL3=DL3/YOUN*10.D0
  128. XLAM3=XLAM3+DL3
  129. CALL CPHOIN(SFG,EPPLDP,YOUN,ANU)
  130. DO 130 ITYP=1,3
  131. IDAM(ITYP)=0
  132. EPDP(ITYP)=EPDP(ITYP)+EPPLDP(ITYP)
  133. DSIG(ITYP)=0.D0
  134. 130 SIG(ITYP)=0.D0
  135. CALL CHREP(EPDP,EPPLDP,-ANG)
  136. IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER
  137. RETURN
  138. 131 ITER=ITER+1
  139. IF(ITER.GT.200) THEN
  140. KERRE=460
  141. RETURN
  142. ENDIF
  143. C
  144. C---------------------------------
  145. C ON REALISE LE COUPLAGE
  146. C---------------------------------
  147. C
  148. E=-(SFG(1)+X*DSFG(1))/SG(1)
  149. F=SSI(1)/SG(1)
  150. DO 140 ITYP=1,3
  151. DSGG(ITYP)=X*DSFG(ITYP)
  152. A(ITYP)=SFG(ITYP)+DSGG(ITYP)+E*SG(ITYP)
  153. 140 B(ITYP)=-SSI(ITYP)+F*SG(ITYP)
  154. CALL DLAMDP(A,B,DL3,RDP,ADP,HDP,ITEST)
  155. IF(ITEST.EQ.1) THEN
  156. X=X/2.D0
  157. GOTO 131
  158. ENDIF
  159. DL1=-E-F*DL3
  160. DO 145 ITYP=1,3
  161. 145 SGG(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-DL1*SG(ITYP)-DL3*SSI(ITYP)
  162. C
  163. C----------------------------------------------
  164. C SI UN DES DLAMDA < 0 FAUX COUPLAGE
  165. C----------------------------------------------
  166. C
  167. IF(DL1.GT.0.D0) IDAM(1)=0
  168. IF(DL3.LT.0.D0) IDAM(3)=0
  169. IF(IDAM(1).EQ.0.OR.IDAM(3).EQ.0) THEN
  170. DL1=0.D0
  171. DL3=0.D0
  172. X=0.D0
  173. GOTO 3000
  174. ENDIF
  175. C
  176. C-----------------------------------------------------
  177. C ON VERIFIE QUE LA NORMALE SUIVANT LE DRUCKER
  178. C PRAGER TOURNE PEU
  179. C-----------------------------------------------------
  180. C
  181. CALL SIJ(SGG,SI,SIETOI)
  182. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  183. CALL SCAL(EPC,EPC1,VAL)
  184. CALL NORME(EPC,VA1)
  185. CALL NORME(EPC1,VA2)
  186. CO=VAL/VA1/VA2
  187. IF(CO.LT.0.99) THEN
  188. X=X/2.D0
  189. GOTO 131
  190. ENDIF
  191. IF((DL1+XLAM1).GE.0.D0) GOTO 200
  192. C
  193. C------------------------------------------------
  194. C CAS OU LA FISSURE EST COMPLETEMENT FERMEE
  195. C------------------------------------------------
  196. C
  197. IDAM(1)=0
  198. DL1=-XLAM1
  199. IF(DSFG(1).EQ.0.D0) GOTO 160
  200. E=(DL1*SG(1)-SFG(1))/DSFG(1)
  201. F=SSI(1)/DSFG(1)
  202. DO 150 ITYP=1,3
  203. A(ITYP)=SFG(ITYP)-DL1*SG(ITYP)+E*DSFG(ITYP)
  204. 150 B(ITYP)=F*DSFG(ITYP)-SSI(ITYP)
  205. CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)
  206. DO 151 ITYP=1,3
  207. SGG(ITYP)=A(ITYP)+DL31*B(ITYP)
  208. 151 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)
  209. CALL SIJ(SGG,SI,SIETOI)
  210. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  211. CALL SCAL(EPC,EPC1,VAL)
  212. CALL NORME(EPC,VA1)
  213. CALL NORME(EPC1,VA2)
  214. CO1=VAL/VA1/VA2
  215. CALL SIJ(DSGG,SI,SIETOI)
  216. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  217. CALL SCAL(EPC,EPC1,VAL)
  218. CALL NORME(EPC,VA1)
  219. CALL NORME(EPC1,VA2)
  220. CO2=VAL/VA1/VA2
  221. XIN1=E+F*DL31
  222. XIN2=E+F*DL32
  223. IF(XIN1.GT.-1.D-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN
  224. DL3=DL31
  225. X=XIN1
  226. GOTO 200
  227. ENDIF
  228. IF(XIN2.GT.-1.D-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN
  229. DL3=DL32
  230. X=XIN2
  231. GOTO 200
  232. ENDIF
  233. IF(IIMPI.EQ.9) WRITE(IOIMP,10101)
  234. 10101 FORMAT(1X,'ERREUR DANS C1DP FERM',/)
  235. DL3=DL31
  236. X=XIN1
  237. GOTO 200
  238. 160 DL3=(SFG(1)-DL1*SG(1))/SSI(1)
  239. RD=RDP-HDP*DL3
  240. IF(RD.LT.0.D0) THEN
  241. RDP=0.D0
  242. GOTO 110
  243. ENDIF
  244. DO 170 ITYP=1,3
  245. A(ITYP)=SFG(ITYP)-DL1*SG(ITYP)-DL3*SSI(ITYP)
  246. 170 B(ITYP)=DSFG(ITYP)
  247. CALL XDP(A,B,RD,ADP,X,ITEST)
  248. 200 CONTINUE
  249. DO 205 ITYP=1,3
  250. DSGG(ITYP)=X*DSFG(ITYP)
  251. 205 SGG(ITYP)=SFG(ITYP)+DSGG(ITYP)-DL1*SG(ITYP)-DL3*SSI(ITYP)
  252. C
  253. C-----------------------------------------------
  254. C ON REGARDE SI ON ENDOMMAGE PAS LES AUTRES
  255. C CRITERES
  256. C-----------------------------------------------
  257. C-------------------------------------
  258. C ON ENDOMMAGE LA TRACTION 2
  259. C-------------------------------------
  260. C
  261. CALL CTRAF(SGG(2),RT2,VCTR)
  262. IF(VCTR.LE.0.D0) GOTO 1000
  263. IDAM(1)=-1
  264. IDAM(2)=1
  265. IDAM(3)=1
  266. AT(1)=-DSFG(1)
  267. AT(2)=Y
  268. AT(4)=Y*ANU
  269. AT(3)=-DSFG(2)
  270. BT(1)=SFG(1)
  271. BT(2)=SFG(2)-RT2
  272. CALL SYLIN2(AT,BT,X1,DL11)
  273. BT(1)=-SSI(1)
  274. BT(2)=-SSI(2)
  275. CALL SYLIN2(AT,BT,X2,DL12)
  276. DO 230 ITYP=1,3
  277. A(ITYP)=SFG(ITYP)-DL11*SG(ITYP)+X1*DSFG(ITYP)
  278. 230 B(ITYP)=-DL12*SG(ITYP)+X2*DSFG(ITYP)-SSI(ITYP)
  279. CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)
  280. DO 231 ITYP=1,3
  281. SGG(ITYP)=A(ITYP)+DL31*B(ITYP)
  282. 231 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)
  283. CALL SIJ(SGG,SI,SIETOI)
  284. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  285. CALL SCAL(EPC,EPC1,VAL)
  286. CALL NORME(EPC,VA1)
  287. CALL NORME(EPC1,VA2)
  288. CO1=VAL/VA1/VA2
  289. CALL SIJ(DSGG,SI,SIETOI)
  290. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  291. CALL SCAL(EPC,EPC1,VAL)
  292. CALL NORME(EPC,VA1)
  293. CALL NORME(EPC1,VA2)
  294. CO2=VAL/VA1/VA2
  295. DLIN1=DL11+DL31*DL12
  296. DLIN2=DL11+DL32*DL12
  297. XIN1=X1+DL31*X2
  298. XIN2=X1+DL32*X2
  299. IF(XIN1.GT.-1.D-10.AND.DLIN1.LT.1.E-10.AND.XIN1.LE.X
  300. 1 .AND.CO1.GT.0.9) THEN
  301. DL3=DL31
  302. X=XIN1
  303. DL1=DLIN1
  304. GOTO 3000
  305. ENDIF
  306. IF(XIN2.GT.-1.D-10.AND.DLIN2.LT.1.E-10.AND.XIN2.LE.X
  307. 1 .AND.CO2.GT.0.9) THEN
  308. DL3=DL32
  309. X=XIN2
  310. DL1=DLIN2
  311. GOTO 3000
  312. ENDIF
  313. IF(IIMPI.EQ.9) WRITE(IOIMP,20202)
  314. 20202 FORMAT(1X,'ERREUR DANS C1DP TRAC ',/)
  315. DL3=DL31
  316. DL1=DLIN1
  317. X=XIN1
  318. GOTO 3000
  319. C
  320. C-------------------------------------
  321. C ON ENDOMMAGE LA COMPRESSION 2
  322. C-------------------------------------
  323. C
  324. 1000 CALL CCOAF(SGG(2),XLAM2,VCCO2)
  325. IF(VCCO2.LE.0.D0) GOTO 2000
  326. IDAM(1)=-1
  327. IDAM(3)=1
  328. IDAM(2)=-1
  329. AT(1)=-DSFG(1)
  330. AT(2)=Y
  331. AT(4)=Y*ANU
  332. AT(3)=-DSFG(2)
  333. BT(1)=SFG(1)
  334. BT(2)=SFG(2)
  335. CALL SYLIN2(AT,BT,X1,DL11)
  336. BT(1)=-SSI(1)
  337. BT(2)=-SSI(2)
  338. CALL SYLIN2(AT,BT,X2,DL12)
  339. DO 1010 ITYP=1,3
  340. A(ITYP)=SFG(ITYP)-DL11*SG(ITYP)+X1*DSFG(ITYP)
  341. 1010 B(ITYP)=-DL12*SG(ITYP)+X2*DSFG(ITYP)-SSI(ITYP)
  342. CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)
  343. DO 1011 ITYP=1,3
  344. SGG(ITYP)=A(ITYP)+DL31*B(ITYP)
  345. 1011 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)
  346. CALL SIJ(SGG,SI,SIETOI)
  347. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  348. CALL SCAL(EPC,EPC1,VAL)
  349. CALL NORME(EPC,VA1)
  350. CALL NORME(EPC1,VA2)
  351. CO1=VAL/VA1/VA2
  352. CALL SIJ(DSGG,SI,SIETOI)
  353. CALL EPSDP(SI,SIETOI,ADP,EPC1)
  354. CALL SCAL(EPC,EPC1,VAL)
  355. CALL NORME(EPC,VA1)
  356. CALL NORME(EPC1,VA2)
  357. CO2=VAL/VA1/VA2
  358. DLIN1=DL11+DL31*DL12
  359. DLIN2=DL11+DL32*DL12
  360. XIN1=X1+DL31*X2
  361. XIN2=X1+DL32*X2
  362. IF(XIN1.GT.-1.D-10.AND.DLIN1.LT.1.E-10.AND.XIN1.LE.X
  363. 1 .AND.CO1.GT.0.9) THEN
  364. DL3=DL31
  365. X=XIN1
  366. DL1=DLIN1
  367. GOTO 3000
  368. ENDIF
  369. IF(XIN2.GT.-1.D-10.AND.DLIN2.LT.1.E-10.AND.XIN2.LE.X
  370. 1 .AND.CO2.GT.0.9) THEN
  371. DL3=DL32
  372. X=XIN2
  373. DL1=DLIN2
  374. GOTO 3000
  375. ENDIF
  376. IF(IIMPI.EQ.9) WRITE(IOIMP,30303)
  377. 30303 FORMAT(1X,'ERREUR DANS C1DP COMP ',/)
  378. DL3=DL31
  379. DL1=DLIN1
  380. X=XIN1
  381. GOTO 3000
  382. 2000 CONTINUE
  383. C
  384. C------------------------------------------------
  385. C CAS OU AUCUN AUTRE CRITERE EST ENDOMMAGE
  386. C------------------------------------------------
  387. C-----------------------------------
  388. C REMISE A JOUR DES VARIABLES
  389. C PUIS NOUVEAU PAS SI TOUT
  390. C L INCREMENT N EST PAS ECOULE
  391. C-----------------------------------
  392. C
  393. XT=XT+X
  394. RDP=RDP-DL3*HDP
  395. RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP)))
  396. IF(SIREF.GT.RMAX) THEN
  397. RDP=0.D0
  398. GOTO 110
  399. ENDIF
  400. DO 2010 ITYP=1,3
  401. SFG(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-DL1*SG(ITYP)-DL3*SSI(ITYP)
  402. 2010 EPDP(ITYP)=DL3*EPC(ITYP)+EPDP(ITYP)
  403. XLAM1=XLAM1+DL1
  404. XLAM3=XLAM3+DL3
  405. IF(XLAM1.LT.1.E-10) XLAM1=0.D0
  406. IF(XLAM1.LT.1.E-10) IDAM(1)=0
  407. C=1.D0-1.D-10
  408. IF(XT.LT.C) GOTO 2020
  409. DO 2015 ITYP=1,3
  410. IDAM(ITYP)=0
  411. 2015 DSIG(ITYP)=0.D0
  412. CALL CHREP(SFG,SIG,-ANG)
  413. CALL CHREP(EPDP,EPPLDP,-ANG)
  414. IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER
  415. RETURN
  416. 2020 IF(IDAM(1).EQ.-1) GOTO 100
  417. XLAM1=0.D0
  418. GAMDP=10.D0
  419. GAMTR1=10.D0
  420. GAMTR2=10.D0
  421. GAMCO2=10.D0
  422. DO 2030 ITYP=1,3
  423. DSFG(ITYP)=DSFG(ITYP)*(1.D0-XT)
  424. 2030 TENS(ITYP)=SFG(ITYP)+DSFG(ITYP)
  425. CALL CTRAF(TENS(1),RT1,VCTR1)
  426. CALL CTRAF(TENS(2),RT2,VCTR2)
  427. CALL CCOAF(TENS(2),XLAM2,VCCO2)
  428. CALL CDP(TENS,ADP,RDP,VCDP)
  429. IF(VCTR1.GT.0.D0) CALL GAMTAF(SFG(1),DSFG(1),RT1,GAMTR1)
  430. IF(VCTR2.GT.0.D0) CALL GAMTAF(SFG(2),DSFG(2),RT2,GAMTR2)
  431. IF(VCCO2.GT.0.D0) CALL GAMCAF(SFG(2),DSFG(2),GAMCO2)
  432. IF(VCDP.GT.0.D0) CALL GDP(SFG,DSFG,RDP,ADP,GAMDP)
  433. IDAM(1)=0
  434. IDAM(2)=0
  435. IDAM(3)=0
  436. GAM=MIN(GAMTR1,GAMTR2,GAMCO2,GAMDP)
  437. IF(GAM.GE.1.D0) THEN
  438. DO 2040 ITYP=1,3
  439. SFG(ITYP)=SFG(ITYP)+DSFG(ITYP)
  440. 2040 DSIG(ITYP)=0.D0
  441. CALL CHREP(SFG,SIG,-ANG)
  442. RETURN
  443. ENDIF
  444. IF(ABS(GAM-GAMTR1).LE.1.E-10) IDAM(1)=1
  445. IF(ABS(GAM-GAMTR2).LE.1.E-10) IDAM(2)=1
  446. IF(ABS(GAM-GAMCO2).LE.1.E-10) IDAM(2)=-1
  447. IF(ABS(GAM-GAMDP).LE.1.E-10) IDAM(3)=1
  448. DO 2050 ITYP=1,3
  449. SFG(ITYP)=SFG(ITYP)-GAM*DSFG(ITYP)
  450. 2050 DSFG(ITYP)=(1.D0-GAM)*DSFG(ITYP)
  451. CALL CHREP(SFG,SIG,-ANG)
  452. CALL CHREP(DSFG,DSIG,-ANG)
  453. CALL CHREP(EPDP,EPPLDP,-ANG)
  454. RETURN
  455. 3000 RDP=RDP-DL3*HDP
  456. RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP)))
  457. IF(SIREF.GT.RMAX) THEN
  458. RDP=0.D0
  459. GOTO 110
  460. ENDIF
  461. XT=XT+X
  462. DO 3010 ITYP=1,3
  463. SFG(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-DL1*SG(ITYP)-DL3*SSI(ITYP)
  464. DSFG(ITYP)=(1.D0-XT)*DSFG(ITYP)
  465. 3010 EPDP(ITYP)=DL3*EPC(ITYP)+EPDP(ITYP)
  466. CALL CHREP(SFG,SIG,-ANG)
  467. CALL CHREP(DSFG,DSIG,-ANG)
  468. CALL CHREP(EPDP,EPPLDP,-ANG)
  469. XLAM1=XLAM1+DL1
  470. XLAM3=XLAM3+DL3
  471. IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER
  472. RETURN
  473. END
  474.  
  475.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales