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

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