Télécharger selloi.eso

Retour à la liste

Numérotation des lignes :

selloi
  1. C SELLOI SOURCE OF166741 26/02/19 21:15:02 12437
  2.  
  3. *======================================================================*
  4. *
  5. * OBJET : Composante de type TABLE
  6. * -------
  7. * La TABLE donne le nom de la loi et les parametres de la composante,
  8. * en fonction desquels doit se faire l'evaluation externe.
  9. *
  10. * ENTREE :
  11. * --------
  12. * IPTABE Pointeur sur la TABLE de definition de la LOI externe
  13. * Le segment est DESACTIVE en Sortie (SEGDES)
  14. * IFCT Indicateur =0 si appel par VARINU, =1 si appel par VARILE
  15. *
  16. * SORTIE :
  17. * --------
  18. * IPTABS Pointeur sur la TABLE preconditionnee
  19. * < 0 ou = 0 si erreur lors de l'analyse
  20. * Le segment est ACTIF en Sortie (SEGACT*NOMOD)
  21. *======================================================================*
  22.  
  23. SUBROUTINE SELLOI(IPTABE,IPTABS,IFCT)
  24.  
  25. IMPLICIT INTEGER(I-N)
  26. IMPLICIT REAL*8(A-H,O-Z)
  27.  
  28. -INC PPARAM
  29. -INC CCOPTIO
  30. -INC CCNOYAU
  31. -INC CCASSIS
  32. -INC CCPRECO
  33.  
  34. -INC SMLMOTS
  35. -INC SMTABLE
  36.  
  37. CHARACTER*(LOCHAI) MOTEMP,LMELIB,LMEFCT
  38.  
  39. c*dbg iimpi0 = IIMPI
  40. c*dbg iimpi0 = 1972
  41. IF (IFCT.NE.0 .AND. IFCT.NE.1) THEN
  42. MOTERR = '(SELLOI) ERROR: IFCT incorrect'
  43. CALL ERREUR(-385)
  44. CALL ERREUR(5)
  45. ENDIF
  46.  
  47. IPTABS = 0
  48.  
  49. mtab1 = IPTABE
  50.  
  51. C- Recherche si la table IPTABE n'a pas deja ete traite :
  52. C- Verification si presence dans le preconditionnement "CLOIEX" (CCPRECO)
  53. isloi = 0
  54. DO is = 1, NBELOI
  55. IF ( LOITAB(is).LE.0 ) GOTO 10
  56. isloi = isloi + 1
  57. IF ( mtab1 .EQ. LOITAB(is) ) THEN
  58. mtab2 = LOIPRE(is)
  59. c*dbg if (iimpi0.eq.1972) then
  60. c*dbg write(ioimp,*) 'Preconditionnement SELLOI trouve',
  61. c*dbg & is,mtab1,mtab2
  62. c*dbg endif
  63. C Mise a jour du preconditionnement dans CCPRECO : Deplacement en position 1
  64. IF (is .GT. 1) THEN
  65. DO js = is, 2, -1
  66. LOITAB(js) = LOIPRE(js-1)
  67. LOIPRE(js) = LOIPRE(js-1)
  68. ENDDO
  69. LOITAB(1) = mtab1
  70. LOIPRE(1) = mtab2
  71. ENDIF
  72. SEGACT,mtab2*NOMOD
  73. IPTABS = mtab2
  74. GOTO 100
  75. ENDIF
  76. ENDDO
  77. 10 CONTINUE
  78. c*dbg if (iimpi0.eq.1972) then
  79. c*dbg write(ioimp,*) 'Preconditionnement SELLOI :',isloi,'/',NBELOI
  80. c*dbg endif
  81.  
  82. C- Verification du contenu de la table & Ajout au preconditionnement :
  83. SEGACT,mtab1
  84. IF (NBESC.NE.0) SEGACT,IPILOC
  85.  
  86. ierloc = 0
  87. C- Recherche sur les noms
  88. C Initialisation des indices
  89. NPARA = 0
  90. MLMOT1 = 0
  91. NVARI = 0
  92. MLMOT2 = 0
  93. NCOEF = 0
  94. MLMOT3 = 0
  95. ITROUT = 0
  96. ITROU1 = 0
  97. LMELIB = ' '
  98. LMELGB = 0
  99. LMEFCT = ' '
  100. LMELGT = 0
  101. LMEPTR = 0
  102. LMELOI = 0
  103. ITROU2 = 0
  104. LMEPRO = 0
  105. C Verification des types des indices correspondants
  106. DO IN = 1, mtab1.MLOTAB
  107. IF (mtab1.MTABTI(IN).EQ.'MOT') THEN
  108. ip = mtab1.MTABII(IN)
  109. IDEBCH = IPCHAR(ip)
  110. IFINCH = IPCHAR(ip+1)-1
  111. MOTEMP = ICHARA(IDEBCH:IFINCH)
  112. C Liste des parametres (entrees) de la loi
  113. IF ((MOTEMP.EQ.'PARA_LOI' ) .OR.
  114. & (MOTEMP.EQ.'PARAMETRES')) THEN
  115. IF (mtab1.MTABTV(IN).EQ.'LISTMOTS') THEN
  116. MLMOT1 = mtab1.MTABIV(IN)
  117. ELSE
  118. MLMOT1 = 0
  119. IERR = 0
  120. IERGLB = 0
  121. MOTERR = ' '
  122. MOTERR( 1:11) = MOTEMP
  123. MOTERR(12:19) = 'LISTMOTS'
  124. CALL ERREUR(627)
  125. ierloc = ierloc + 1
  126. ENDIF
  127. C Liste des variables (sorties) de la loi (VARI Loi Externe)
  128. ELSE IF ((MOTEMP.EQ.'VARI_LOI' ) .OR.
  129. & (MOTEMP.EQ.'VARIABLES')) THEN
  130. IF (mtab1.MTABTV(IN).EQ.'LISTMOTS') THEN
  131. mlmots = mtab1.MTABIV(IN)
  132. ELSE
  133. mlmots = 0
  134. IERR = 0
  135. IERGLB = 0
  136. MOTERR = ' '
  137. MOTERR( 1:11) = MOTEMP
  138. MOTERR(12:19) = 'LISTMOTS'
  139. CALL ERREUR(627)
  140. ierloc = ierloc + 1
  141. ENDIF
  142. IF (IFCT.EQ.0) THEN
  143. MLMOT1 = mlmots
  144. ELSE IF (IFCT.EQ.1) THEN
  145. MLMOT2 = mlmots
  146. ENDIF
  147. C Liste des coefficients (constantes) de la loi (VARI Loi Externe)
  148. ELSE IF ((MOTEMP.EQ.'COEF_LOI' ) .OR.
  149. & (MOTEMP.EQ.'COEFFICIENTS')) THEN
  150. IF (IFCT.EQ.1) THEN
  151. IF (mtab1.MTABTV(IN).EQ.'LISTMOTS') THEN
  152. MLMOT3 = mtab1.MTABIV(IN)
  153. ELSE
  154. MLMOT3 = 0
  155. IERR = 0
  156. IERGLB = 0
  157. MOTERR = ' '
  158. MOTERR( 1:11) = MOTEMP
  159. MOTERR(12:19) = 'LISTMOTS'
  160. CALL ERREUR(627)
  161. ierloc = ierloc + 1
  162. ENDIF
  163. C* ELSE
  164. C* MLMOT3 = 0
  165. ENDIF
  166. C Nom de la loi/fonction a utiliser dans la bibliotheque
  167. ELSE IF ((MOTEMP.EQ.'FCT_LOI') .OR.
  168. & (MOTEMP.EQ.'NOM_LOI') .OR.
  169. & (MOTEMP.EQ.'MODELE' )) THEN
  170. IF (mtab1.MTABTV(IN).EQ.'MOT ') THEN
  171. ip = mtab1.MTABIV(IN)
  172. IDEBCH = IPCHAR(ip)
  173. IFINCH = IPCHAR(ip+1)-1
  174. LMELGT = IFINCH-IDEBCH+1
  175. IF (LMELGT.LE.0 .OR. LMELGT.GT.LOCHAI) THEN
  176. IERR = 0
  177. IERGLB = 0
  178. INTERR(1) = LMELGT
  179. MOTERR = ICHARA(IDEBCH:IFINCH)
  180. CALL ERREUR(-2)
  181. IERR = 0
  182. IERGLB = 0
  183. CALL ERREUR(36)
  184. LMELGT = 0
  185. ierloc = ierloc + 1
  186. ELSE
  187. LMEFCT = ICHARA(IDEBCH:IFINCH)
  188. ITROU1 = ITROU1+1
  189. ENDIF
  190. ELSE
  191. IERR = 0
  192. IERGLB = 0
  193. MOTERR = ' '
  194. MOTERR( 1:11) = MOTEMP
  195. MOTERR(12:19) = 'MOT '
  196. CALL ERREUR(627)
  197. ierloc = ierloc + 1
  198. ENDIF
  199. C Nom de la bibliotheque ou se trouve la loi materiau
  200. ELSE IF ((MOTEMP.EQ.'LIB_LOI ') .OR.
  201. & (MOTEMP.EQ.'LIBRAIRIE')) THEN
  202. IF (mtab1.MTABTV(IN).EQ.'MOT ') THEN
  203. ip = mtab1.MTABIV(IN)
  204. IDEBCH = IPCHAR(ip)
  205. IFINCH = IPCHAR(ip+1)-1
  206. LMELGB = IFINCH-IDEBCH+1
  207. IF (LMELGB.LE.0 .OR. LMELGB.GT.LOCHAI) THEN
  208. IERR = 0
  209. IERGLB = 0
  210. INTERR(1) = LMELGB
  211. MOTERR = ICHARA(IDEBCH:IFINCH)
  212. CALL ERREUR(-2)
  213. IERR = 0
  214. IERGLB = 0
  215. CALL ERREUR(36)
  216. LMELGT = 0
  217. ierloc = ierloc + 1
  218. ELSE
  219. LMELIB = ICHARA(IDEBCH:IFINCH)
  220. ITROU1 = ITROU1+10
  221. ENDIF
  222. ELSE
  223. IERR = 0
  224. IERGLB = 0
  225. MOTERR = ' '
  226. MOTERR( 1:11) = MOTEMP
  227. MOTERR(12:19) = 'MOT '
  228. CALL ERREUR(627)
  229. ierloc = ierloc + 1
  230. ENDIF
  231. C Nom du programme externe
  232. ELSE IF (MOTEMP.EQ.'PROGRAMME') THEN
  233. IF (mtab1.MTABTV(IN).EQ.'MOT ') THEN
  234. ip = mtab1.MTABIV(IN)
  235. IDEBCH = IPCHAR(ip)
  236. IFINCH = IPCHAR(ip+1)-1
  237. LMEPRO = IFINCH-IDEBCH+1
  238. IF (LMEPRO.LE.0 .OR. LMEPRO.GT.LOCHAI) THEN
  239. IERR = 0
  240. IERGLB = 0
  241. INTERR(1) = LMEPRO
  242. MOTERR = ICHARA(IDEBCH:IFINCH)
  243. CALL ERREUR(-2)
  244. IERR = 0
  245. IERGLB = 0
  246. CALL ERREUR(36)
  247. LMEPRO = 0
  248. ierloc = ierloc + 1
  249. ELSE
  250. LMEPRO = ip
  251. ITROU2 = 1
  252. ENDIF
  253. ELSE
  254. IERR = 0
  255. IERGLB = 0
  256. MOTERR = ' '
  257. MOTERR( 1:11) = MOTEMP
  258. MOTERR(12:19) = 'MOT '
  259. CALL ERREUR(627)
  260. ierloc = ierloc + 1
  261. ENDIF
  262. ENDIF
  263. ENDIF
  264. ENDDO
  265. IF (ierloc.GT.0) GOTO 30
  266.  
  267. C Dernieres verifications de la table
  268. IF (IFCT.EQ.0) THEN
  269. IF (MLMOT1.EQ.0) THEN
  270. MOTERR = 'ERROR: VARI_LOI/VARIABLES/ or '//
  271. & 'PARA_LOI/PARAMETRES missing'
  272. CALL ERREUR(-385)
  273. ierloc = ierloc + 1
  274. ENDIF
  275. ELSE IF (IFCT.EQ.1) THEN
  276. IF (MLMOT1.EQ.0) THEN
  277. MOTERR = 'ERROR: PARA_LOI/PARAMETRES missing'
  278. CALL ERREUR(-385)
  279. ierloc = ierloc + 1
  280. ENDIF
  281. IF (MLMOT2.EQ.0) THEN
  282. MOTERR = 'ERROR: VARI_LOI/VARIABLES missing'
  283. CALL ERREUR(-385)
  284. ierloc = ierloc + 1
  285. ENDIF
  286. ENDIF
  287. IF ((ITROU1.EQ.0).AND.(ITROU2.EQ.0)) THEN
  288. MOTERR = 'ERROR: PROGRAMME and LIB_LOI/FCT_LOI missing'
  289. CALL ERREUR(-385)
  290. ierloc = ierloc + 1
  291. ENDIF
  292. IF ((ITROU1.NE.0).AND.(ITROU2.NE.0)) THEN
  293. MOTERR = 'ERROR: neither PROGRAMME nor LIB_LOI/FCT_LOI'
  294. CALL ERREUR(-385)
  295. ierloc = ierloc + 1
  296. GOTO 30
  297. ENDIF
  298. IF (ITROU1.NE.0) THEN
  299. IF (ITROU1.NE.11) THEN
  300. MOTERR = 'ERROR: LIB_LOI or FCT_LOI missing'
  301. CALL ERREUR(-385)
  302. ierloc = ierloc + 1
  303. ENDIF
  304. ENDIF
  305. IF (ierloc.GT.0) THEN
  306. CALL ERREUR(963)
  307. GOTO 30
  308. ENDIF
  309.  
  310. SEGACT,MLMOT1
  311. IF (MLMOT2.NE.0) SEGACT,MLMOT2
  312. IF (MLMOT3.NE.0) SEGACT,MLMOT3
  313.  
  314. NPARA = MLMOT1.MOTS(/2)
  315. IF (NPARA.LE.0) THEN
  316. MOTERR = 'ERROR: PARA_LOI/PARAMETRES is empty (NPARA=0) !'
  317. CALL ERREUR(-385)
  318. CALL ERREUR(963)
  319. ierloc = 1
  320. GOTO 35
  321. ENDIF
  322. C- Cas particulier : Parametres speciaux (VARI Loi Externe)
  323. IF (IFCT.EQ.1) THEN
  324. jgn = MLMOT1.MOTS(/1)
  325. jgm = NPARA
  326. SEGINI,mlmots
  327. ITROUT = 0
  328. mlmots.MOTS(1) = 'TEMP '
  329. CALL PLACE(MLMOT1.MOTS,NPARA,ip,mlmots.MOTS(1))
  330. IF (ip.NE.0) ITROUT = ITROUT + 1
  331. mlmots.MOTS(1) = 'T '
  332. CALL PLACE(MLMOT1.MOTS,NPARA,ip,mlmots.MOTS(1))
  333. IF (ip.NE.0) ITROUT = ITROUT + 10
  334.  
  335. IF (ITROUT.EQ.00) THEN
  336. jgm = 0
  337. ELSE IF (ITROUT.EQ.01) THEN
  338. jgm = 1
  339. mlmots.MOTS(1) = 'TEMP '
  340. ELSE IF (ITROUT.EQ.10) THEN
  341. jgm = 1
  342. mlmots.MOTS(1) = 'T '
  343. c ELSE IF (ITROUT.EQ.11) THEN
  344. ELSE
  345. jgm = 2
  346. mlmots.MOTS(1) = 'TEMP '
  347. mlmots.MOTS(2) = 'T '
  348. ENDIF
  349. NDEB = jgm
  350.  
  351. DO IN = 1, NPARA
  352. CALL PLACE(mlmots.MOTS,NDEB,ip,MLMOT1.MOTS(IN))
  353. IF (ip.EQ.0) THEN
  354. jgm = jgm + 1
  355. mlmots.MOTS(jgm) = MLMOT1.MOTS(IN)
  356. ENDIF
  357. ENDDO
  358. SEGDES,MLMOT1
  359. MLMOT1 = mlmots
  360. IF (jgm.NE.NPARA) THEN
  361. MOTERR = 'ERROR: PARA_LOI/PARAMETRES "TEMP" or "T " '//
  362. & 'defined several times'
  363. CALL ERREUR(-385)
  364. ierloc = 1
  365. GOTO 35
  366. ENDIF
  367. ENDIF
  368. C- Non redondance des parametres
  369. DO IN = 2, NPARA
  370. jgm = IN-1
  371. CALL PLACE(MLMOT1.MOTS,jgm,ip,MLMOT1.MOTS(IN))
  372. IF (ip.NE.0) THEN
  373. MOTERR = 'ERROR: PARA_LOI/PARAMETRES "'//
  374. & MLMOT1.MOTS(IN)//'" already defined'
  375. CALL ERREUR(-385)
  376. ierloc = ierloc + 1
  377. ENDIF
  378. ENDDO
  379. IF (ierloc.GT.0) THEN
  380. CALL ERREUR(949)
  381. GOTO 35
  382. ENDIF
  383.  
  384. IF (MLMOT2.NE.0) THEN
  385. NVARI = MLMOT2.MOTS(/2)
  386. IF (NVARI.LE.0) THEN
  387. MOTERR = 'ERROR: no VARI_LOI/VARIABLES defined (NVARI=0) !'
  388. CALL ERREUR(-385)
  389. CALL ERREUR(963)
  390. ierloc = 1
  391. GOTO 35
  392. ENDIF
  393. C- Non redondance des variables
  394. DO IN = 2, NVARI
  395. jgm = IN-1
  396. CALL PLACE(MLMOT2.MOTS,jgm,ip,MLMOT2.MOTS(IN))
  397. IF (ip.NE.0) THEN
  398. MOTERR = 'ERROR: VARI_LOI/VARIABLES "'//
  399. & MLMOT2.MOTS(IN)//'" already defined'
  400. CALL ERREUR(-385)
  401. ierloc = ierloc + 1
  402. ENDIF
  403. ENDDO
  404. IF (ierloc.GT.0) THEN
  405. CALL ERREUR(949)
  406. GOTO 35
  407. ENDIF
  408. DO IN = 1, NVARI
  409. CALL PLACE(MLMOT1.MOTS,NPARA,ip,MLMOT2.MOTS(IN))
  410. IF (ip.NE.0) THEN
  411. ierloc = ierloc + 1
  412. MOTERR = 'ERROR: VARI_LOI/VARIABLES "'//
  413. & MLMOT2.MOTS(IN)//'" already defined '//
  414. & 'in PARA_LOI/PARAMETERS'
  415. CALL ERREUR(-385)
  416. ENDIF
  417. ENDDO
  418. IF (ierloc.GT.0) THEN
  419. CALL ERREUR(949)
  420. GOTO 35
  421. ENDIF
  422. ENDIF
  423. IF (MLMOT3.NE.0) THEN
  424. NCOEF = MLMOT3.MOTS(/2)
  425. IF (NCOEF.LE.0) THEN
  426. MOTERR = 'ERROR: no COEF_LOI/COEFFICIENTS defined (NCOEF=0) !'
  427. CALL ERREUR(-385)
  428. CALL ERREUR(963)
  429. GOTO 35
  430. ENDIF
  431. C- Non redondance des coefficients
  432. DO IN = 2, NCOEF
  433. jgm = IN-1
  434. CALL PLACE(MLMOT3.MOTS,jgm,ip,MLMOT3.MOTS(IN))
  435. IF (ip.NE.0) THEN
  436. MOTERR = 'ERROR: COEF_LOI/COEFFICIENTS "'//
  437. & MLMOT3.MOTS(IN)//'" already defined'
  438. CALL ERREUR(-385)
  439. ierloc = ierloc + 1
  440. ENDIF
  441. ENDDO
  442. IF (ierloc.GT.0) THEN
  443. CALL ERREUR(949)
  444. GOTO 35
  445. ENDIF
  446. DO IN = 1, NCOEF
  447. CALL PLACE(MLMOT1.MOTS,NPARA,ip,MLMOT3.MOTS(IN))
  448. IF (ip.NE.0) THEN
  449. ierloc = ierloc + 1
  450. MOTERR = 'ERROR: COEF_LOI/COEFFICIENTS "'//
  451. & MLMOT3.MOTS(IN)//'" already defined '//
  452. & 'in PARA_LOI/PARAMETERS'
  453. CALL ERREUR(-385)
  454. ENDIF
  455. CALL PLACE(MLMOT2.MOTS,NVARI,ip,MLMOT3.MOTS(IN))
  456. IF (ip.NE.0) THEN
  457. ierloc = ierloc + 1
  458. MOTERR = 'ERROR: COEF_LOI/COEFFICIENTS "'//
  459. & MLMOT3.MOTS(IN)//'" already defined '//
  460. & 'in VARI_LOI/VARIABLES'
  461. CALL ERREUR(-385)
  462. ENDIF
  463. ENDDO
  464. IF (ierloc.GT.0) THEN
  465. GOTO 35
  466. ENDIF
  467. ENDIF
  468.  
  469. 35 CONTINUE
  470. SEGDES,MLMOT1
  471. IF (MLMOT2.NE.0) SEGDES,MLMOT2
  472. IF (MLMOT3.NE.0) SEGDES,MLMOT3
  473. IF (ierloc.GT.0) GOTO 30
  474.  
  475. C- Recherche et Ouverture de la bibliotheque et de la loi
  476. IF (ITROU1.NE.0) THEN
  477. ip = -1
  478. IF (IFCT.EQ.0) ip = NPARA
  479. CALL LEXTOP(LMELIB,LMEFCT,ip,LMELOI,LMEPTR)
  480. IF (IERR.NE.0) GOTO 30
  481. ENDIF
  482.  
  483. C- Verification de la table reussie - Creation de la table preconditionnee :
  484. M = 3
  485. IF (IFCT.EQ.1) M = 6
  486. SEGINI,mtab2
  487. mtab2.MLOTAB = M
  488.  
  489. DO IN = 1, M
  490. mtab2.MTABTI(IN) = 'ENTIER '
  491. mtab2.MTABII(IN) = IN
  492. ENDDO
  493.  
  494. mtab2.MTABTV(1) = 'ENTIER '
  495. IF (ITROU1.NE.0) THEN
  496. mtab2.MTABIV(1) = 1
  497. ELSE
  498. mtab2.MTABIV(1) = 2
  499. ENDIF
  500.  
  501. IF (ITROU1.NE.0) THEN
  502. mtab2.MTABTV(2) = 'ENTIER '
  503. mtab2.MTABIV(2) = LMEPTR
  504. ELSE
  505. mtab2.MTABTV(2) = 'MOT '
  506. mtab2.MTABIV(2) = LMEPRO
  507. ENDIF
  508.  
  509. mtab2.MTABTV(3) = 'LISTMOTS'
  510. mtab2.MTABIV(3) = MLMOT1
  511.  
  512. IF (IFCT.EQ.1) THEN
  513. mtab2.MTABTV(4) = 'LISTMOTS'
  514. mtab2.MTABIV(4) = MLMOT2
  515.  
  516. mtab2.MTABTV(5) = 'ENTIER '
  517. IF (NCOEF.GT.0) mtab2.MTABTV(8) = 'LISTMOTS'
  518. mtab2.MTABIV(5) = MLMOT3
  519.  
  520. mtab2.MTABTV(6) = 'ENTIER '
  521. mtab2.MTABIV(6) = ITROUT
  522. ENDIF
  523. c*dbg if (iimpi0.eq.1972) then
  524. c*dbg call ectabl(mtab2)
  525. c*dbg endif
  526. SEGACT,mtab2*NOMOD
  527.  
  528. C- Ajout en position 1 dans le preconditionnement "CLOIEX" (CCPRECO)
  529. if (isloi.eq.NBELOI) then
  530. moterr = 'Warning "CLOIEX": maximum NBELOI atteint'
  531. CALL ERREUR(-385)
  532. end if
  533. isloi = MIN(isloi + 1,NBELOI)
  534. DO is = isloi, 2, -1
  535. LOITAB(is) = LOIPRE(is-1)
  536. LOIPRE(is) = LOIPRE(is-1)
  537. ENDDO
  538. LOITAB(1) = mtab1
  539. LOIPRE(1) = mtab2
  540. LOITAB(0) = isloi
  541.  
  542. IPTABS = mtab2
  543. c*dbg if (iimpi0.eq.1972) then
  544. c*dbg write(ioimp,*) 'Preconditionnement SELLOI ',iptabe,iptabs,isloi
  545. c*dbg endif
  546.  
  547. C- Fin du traitement
  548. 30 CONTINUE
  549. SEGDES,mtab1
  550. if (NBESC.NE.0) SEGDES,IPILOC
  551. 100 CONTINUE
  552.  
  553. c return
  554. END
  555.  
  556.  
  557.  

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