Télécharger mato-2d2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : mato-2d2.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTION' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : MATO-2D2
  7. * DESCRIPTION : Test du MAilleur TOpologique pour mailler un carré avec
  8. * raffinement isotrope dans un coin.
  9. *
  10. * On teste la qualité des éléments obtenus dans la
  11. * métrique voulue.
  12. * On ne teste pas la r-adaptation (DEDU ADAP) car il
  13. * manque les termes de dérivées en espace de la métrique.
  14. *
  15. * Repris de raft1.dgibi qui utilise TRIA
  16. * et de 2d_1.dgibi+tests
  17. *
  18. *
  19. * LANGAGE : GIBIANE-CAST3M
  20. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SEMT/LTA)
  21. * mél : stephane.gounand@cea.fr
  22. **********************************************************************
  23. * VERSION : v1, 04/04/2020, version initiale
  24. * HISTORIQUE : v1, 04/04/2020, création
  25. * HISTORIQUE :
  26. * HISTORIQUE :
  27. ************************************************************************
  28. *
  29. interact = faux ;
  30. graph = faux ;
  31. complet = FAUX ;
  32. * Mini, mediane et maxi d'un LISTREEL
  33. 'DEBP' MIMEMA ;
  34. 'ARGU' lr ;
  35. lro = 'ORDO' lr ; dlr = 'DIME' lr ;
  36. mil = 'EXTR' lro 1 ; mal = 'EXTR' lro dlr ;
  37. mel = 'EXTR' lro ('/' ('+' 1 dlr) 2) ;
  38. 'FINP' mil mel mal ;
  39. * Passage au gravite d'un MCHAML
  40. 'DEBP' CHGRAV ch*'MCHAML';
  41. 'FINP' ('CHAN' ch ('MODE' ('EXTR' ch 'MAIL') 'THERMIQUE') 'GRAVITE') ;
  42. *
  43. 'OPTION' 'DIME' 2 'ELEM' 'TRI3' ;
  44. *
  45. 'SI' ('NON' interact) ;
  46. 'OPTION' 'TRAC' 'PSC' ;
  47. 'SINON' ;
  48. 'OPTION' 'TRAC' 'X' ;
  49. 'FINSI' ;
  50. lqual = 'PROG' 0.5 'PAS' 0.025 1. ;
  51. *
  52. ******************************************************************
  53. * P R O C E D U R E S
  54. *
  55. * MESUELEM
  56. *
  57. * Calcul d'une mesure de maille aux noeuds
  58. * Je sais le faire de trois manières (équivalentes pour les SEG2
  59. * mais pas pour les TRI3)
  60. * 1) Avec l'opérateur MESU (boucle sur les éléments en GIBIANE)
  61. * + CHAN 'CHPO'
  62. * 2) En intégrant (par éléments) un champ par élément valant 1
  63. * + CHAN 'CHPO'
  64. * 3) Matrice de masse diagonalisée
  65. * Ici, c'est la méthode 3.
  66. *
  67. 'DEBPROC' MESUELEM ;
  68. 'ARGUMENT' mm*'MAILLAGE' ;
  69. 'SI' faux ;
  70. * Méthode 2
  71. mod = 'MODE' mm 'MECANIQUE' 'ELASTIQUE' ;
  72. c1 = 'MANU' 'CHML' mod 'SCAL' 1. 'GRAVITE' ;
  73. ctai = 'INTG' 'ELEM' mod c1 ;
  74. cctai = 'CHANGER' 'CHPO' mod ctai 'MOYE' ;
  75. 'FINSI' ;
  76. * Méthode 3
  77. cctai = 'DOMA' ('MODE' ('CHANGER' mm 'QUAF') 'NAVIER_STOKES' 'LINE')
  78. 'XXDIAGSI' ;
  79. *
  80. 'RESPRO' cctai ;
  81. 'FINPROC' ;
  82. *
  83. * CALTAIL
  84. *
  85. * Calcul du champ de taille de maille voulue T par un problème de
  86. * thermique, on résout :
  87. * Laplacien T = 0
  88. * avec T_bord = taille des mailles du bord
  89. *
  90. *
  91. 'DEBPROC' CALTAIL ;
  92. 'ARGUMENT' mt*'MAILLAGE' ;
  93. *
  94. cmt = 'CONTOUR' mt ;
  95. *
  96. cdt = MESUELEM cmt ;
  97. * En fait, on résout le problème au laplacien pour le log
  98. * des tailles de maille.
  99. lcdt = 'LOG' cdt ;
  100. modt = 'MODELISER' mt 'THERMIQUE' 'ISOTROPE' ;
  101. cart = 'MATERIAU' modt 'K' 1.D0 ;
  102. matt = 'COND' modt cart ;
  103. mcdt = 'EXTRAIRE' lcdt 'MAIL' ;
  104. matb = 'BLOQUE' 'T' mcdt ;
  105. fb = 'DEPIMPOSE' matb ('NOMC' 'T' lcdt) ;
  106. clden = 'EXCO' 'T' ('RESOUD' ('ET' matt matb) fb) ;
  107. cden = 'EXP' clden ;
  108. *'TRACER' cden mt ;
  109. 'RESPRO' cden ;
  110. 'FINPROC' ;
  111. * Fin des P R O C E D U R E S
  112. ******************************************************************
  113. *
  114. * Création du contour
  115. *
  116. d1 = 0.01 ; d2 = 0.1 ;
  117. pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 0. 1. ;
  118. lAB = 'DROI' pA pB 'DINI' d1 'DFIN' d2 ;
  119. lBC = 'DROI' pB pC 'DINI' d2 'DFIN' d2 ;
  120. lCD = 'DROI' pC pD 'DINI' d2 'DFIN' d2 ;
  121. lDA = 'DROI' pD pA 'DINI' d2 'DFIN' d1 ;
  122. *
  123. cnt = lAB 'ET' lBC 'ET' lCD 'ET' lDA ;
  124. *
  125. tt = 'CHAI' 'Iteration ' itcou ;
  126. 'SI' graph ;
  127. tit = 'CHAI' 'Contour ' ;
  128. 'TRACER' 'CACH' cnt 'TITR' tit 'NOEU' ;
  129. 'FINSI' ;
  130. *
  131. * Tests divers (consistance...)
  132. *
  133. lok = VRAI ;
  134. *
  135. * TEST 1 Création d'un maillage sans ajouter de noeuds
  136. *
  137. mail1 = 'TRIA' 'TOPO' cnt 'NOAJ' ;
  138. 'SI' graph ;
  139. tit = 'CHAI' 'Maillage genere sans noeud supplémentaire' ;
  140. 'TRAC' mail1 'TITR' tit 'NOEU' ;
  141. 'FINSI' ;
  142. * Test 1 : on vérifie que le nombre de noeuds est conservé
  143. nno1 = 'NBNO' cnt ;
  144. nno2 = 'NBNO' mail1 ;
  145. 'SI' ('NEG' nno1 nno2) ;
  146. 'MESS' '!!! TEST 1 : nombre de noeuds non conserve' ;
  147. lok = lok 'ET' faux ;
  148. 'FINS' ;
  149. *
  150. * TEST 2 Création d'un maillage en ajoutant des noeuds interieurs
  151. *
  152. mail2 = 'TRIA' 'TOPO' cnt 'AJNO' ;
  153. 'SI' graph ;
  154. tit = 'CHAI' 'Maillage genere en ajoutant des noeuds interieurs' ;
  155. 'TRAC' mail2 'TITR' tit 'NOEU' ;
  156. 'FINSI' ;
  157. * Test 2 : on vérifie que les qualités mini, mediane et maxi des éléments sont bonnes
  158. qmail2o = 'INDI' 'TOPO' mail2 ;
  159. miqo meqo maqo = MIMEMA ('EXTR' (CHGRAV qmail2o) 'VALE' 'TOPO') ;
  160. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qmin=' miqo ' Qmed=' meqo ' Qmax=' maqo ;
  161. qmail2a = 'INDI' 'ALIG' mail2 ;
  162. miqa meqa maqa = MIMEMA ('EXTR' (CHGRAV qmail2a) 'VALE' 'ALIG') ;
  163. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qalimin=' miqa ' Qalimed=' meqa ' Qalimax=' maqa ;
  164. 'SI' graph ;
  165. momail2 = 'MODE' mail2 'THERMIQUE' ;
  166. tit = 'CHAI' 'Qualite alignement maillage avec noeuds interieurs' ;
  167. 'TRAC' qmail2a momail2 lqual 'TITR' tit ;
  168. 'FINSI' ;
  169. * Sur mon linux64 au 02/04/2020 : qmin=0.63 qmed=0.87 qmax=1.00
  170. *miqref = 0.62 ; meqref = 0.86 ; maqref = 0.99 ;
  171. * 2025/11/24
  172. miqaref = 0.56 ; meqaref = 0.83 ; maqaref = 0.99 ;
  173. 'SI' ('<EG' miqa miqaref) ;
  174. 'MESS' '!!! TEST 2 : miqa=' miqa ' < miqaref=' miqaref ;
  175. lok = lok 'ET' faux ;
  176. 'FINS' ;
  177. 'SI' ('&lt;EG' meqa meqaref) ;
  178. 'MESS' '!!! TEST 2 : meqa=' meqa ' < meqaref=' meqaref ;
  179. lok = lok 'ET' faux ;
  180. 'FINS' ;
  181. 'SI' ('&lt;EG' maqa maqaref) ;
  182. 'MESS' '!!! TEST 2 : maqa=' maqa ' < maqaref=' maqaref ;
  183. lok = lok 'ET' faux ;
  184. 'FINS' ;
  185. *
  186. * TEST 2b Une petite boucle avec de la r-adaptation (DEDU ADAP) permet
  187. * d'améliorer la régularité du maillage mail2 mais ce n'est pas nécessaire
  188. * pour la suite donc on saute.
  189. *
  190. * 2020/04/03 : On arrive à avoir Qmin= 0.74E+00 Qmax= 0.10E+01 Qmed= 0.91E+00
  191. * avec nopt = 2 ; thdedu = 1.0 ; rdepa =1. ; nitm = 1 ;
  192. *
  193. 'SI' complet ;
  194. nopt = 2 ; iopt = 0 ;
  195. * Paramètres de DEDUADAP
  196. thdedu = 1. ; rdepa = 1. ; nitm = 1 ;
  197. maili = mail2 ;
  198. 'REPE' bclopt nopt ;
  199. iopt = iopt '+' 1 ;
  200. tit = 'CHAI' 'i=' iopt ;
  201. * Partie DEDUADAP
  202. maili1 = maili ;
  203. depa = 'DEDU' 'ADAP' maili1 'THET' thdedu 'NITM' nitm ;
  204. depa = '*' depa rdepa ;
  205. mcdep = 'MAXI' depa 'ABS' ;
  206. 'MESS' tit ' dedu max. dep=' mcdep ;
  207. 'FORM' depa ;
  208. qmaili1 = 'INDI' 'TOPO' maili1 ;
  209. miq meq maq = MIMEMA ('EXTR' (CHGRAV qmaili1) 'VALE' 'TOPO') ;
  210. 'MESS' 'FORMAT' '(E9.2)' tit ' deduadap : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  211. 'SI' graph ;
  212. momaili1 = 'MODE' maili1 'THERMIQUE' ;
  213. vdep = 'VECT' depa -1. 'UX' 'UY' 'NOIR' ;
  214. titg = 'CHAI' tit ' deduadap' ;
  215. 'TRAC' qmaili1 momaili1 vdep maili1 lqual 'TITR' titg ;
  216. 'FINS' ;
  217. * Partie MAILTOPO
  218. maili2 = 'REMA' maili1 ('CONT' maili1) ;
  219. * Qualités
  220. qmaili2 = 'INDI' 'TOPO' maili2 ;
  221. miq meq maq = MIMEMA ('EXTR' (CHGRAV qmaili2) 'VALE' 'TOPO') ;
  222. 'MESS' 'FORMAT' '(E9.2)' tit ' mailtopo : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  223. 'SI' graph ;
  224. momaili2 = 'MODE' maili2 'THERMIQUE' ;
  225. titg = 'CHAI' tit ' mailtopo' ;
  226. 'TRAC' qmaili2 momaili2 lqual 'TITR' titg ;
  227. 'FINSI' ;
  228. maili = maili2 ;
  229. 'FIN' bclopt ;
  230. mail2 = maili ;
  231. 'FINS' ;
  232. *
  233. * TEST 3 Remaillage du précédent avec une métrique isotrope variable
  234. * en espace
  235. *
  236. cden = 'NOMC' 'G' (caltail mail2) ;
  237. cmet = cden '**' -2 ;
  238. 'SI' graph ;
  239. tit = 'CHAI' 'Taille de maille voulue' ;
  240. lcden = '/' ('LOG' cden) ('LOG' 10.) ;
  241. 'TRAC' cden mail2 'TITR' tit 'NOEU' ;
  242. 'FINSI' ;
  243. * Facultatif : mettre tout ça dans la notice de ALGOMAIL
  244. * ainsi que les valeurs par défaut
  245. * tparam3 . 'debug' = 2 ;
  246. mail3 cmetf2 = 'REMA' mail2 ('CONT' mail2) cmet 'IPOL' ;
  247. 'SI' graph ;
  248. tit = 'CHAI' 'Maillage avec metrique isotrope variable en espace'
  249. ;
  250. 'TRAC' mail3 'TITR' tit 'NOEU' ;
  251. 'FINSI' ;
  252. * Test 3 : on vérifie que les qualités des éléments sont bonnes
  253. * On peut :
  254. * 1) recalculer la métrique voulue sur le nouveau maillage
  255. * 2) ou récupérer celle calculée sur l'ancien maillage mais interpolée
  256. * par le mailleur
  257. *1 TEST 3 avec cmetf1 : Qmin= 0.58E+00 Qmed= 0.85E+00 Qmax= 0.99E+00
  258. *2 TEST 3 avec cmetf2 : Qmin= 0.62E+00 Qmed= 0.84E+00 Qmax= 0.10E+01
  259. *
  260. cdenf1 = 'NOMC' 'G' (caltail mail3) ; cmetf1 = cdenf1 '**' -2 ;
  261. * 'TRAC' ('-' cmetf2 cmetf1) mail3 'TITR' 'Diff. metrique' ;
  262. qmail3o = 'INDI' 'TOPO' mail3 cmetf2 ;
  263. miq meq maq = MIMEMA ('EXTR' (CHGRAV qmail3o) 'VALE' 'TOPO') ;
  264. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  265. qmail3a = 'INDI' 'ALIG' mail3 cmetf2 ;
  266. miqa meqa maqa = MIMEMA ('EXTR' (CHGRAV qmail3a) 'VALE' 'ALIG') ;
  267. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qalimin=' miqa ' Qalimed=' meqa ' Qalimax=' maqa ;
  268. 'SI' graph ;
  269. momail3 = 'MODE' mail3 'THERMIQUE' ;
  270. tit = 'CHAI' 'Qualite alignement maillage avec noeuds interieurs' ;
  271. 'TRAC' qmail3a momail3 lqual 'TITR' tit ;
  272. 'FINSI' ;
  273. *!!!!!Mieux miqref = 0.61 ; meqref = 0.83 ; maqref = 0.99 ;
  274. *miqref = 0.57 ; meqref = 0.83 ; maqref = 0.99 ;
  275. * 2025/11/24
  276. *!!!!! Mieux miqaref = 0.66 ; meqaref = 0.91 ; maqaref = 0.99 ;
  277. * 2025/11/24 new
  278. miqaref = 0.54 ; meqaref = 0.91 ; maqaref = 0.99 ;
  279. 'SI' ('&lt;EG' miqa miqaref) ;
  280. 'MESS' '!!! TEST 3 : miqa=' miqa ' < miqaref=' miqaref ;
  281. lok = lok 'ET' faux ;
  282. 'FINS' ;
  283. 'SI' ('&lt;EG' meqa meqaref) ;
  284. 'MESS' '!!! TEST 3 : meqa=' meqa ' < meqaref=' meqaref ;
  285. lok = lok 'ET' faux ;
  286. 'FINS' ;
  287. 'SI' ('&lt;EG' maqa maqaref) ;
  288. 'MESS' '!!! TEST 3 : maqa=' maqa ' < maqaref=' maqaref ;
  289. lok = lok 'ET' faux ;
  290. 'FINS' ;
  291. qmail3e = 'INDI' 'EQUI' mail3 cmetf2 ;
  292. miqe meqe maqe = MIMEMA ('EXTR' (CHGRAV qmail3e) 'VALE' 'EQUI') ;
  293. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qequmin=' miqe ' Qequmed=' meqe ' Qequmax=' maqe ;
  294. 'SI' graph ;
  295. momail3 = 'MODE' mail3 'THERMIQUE' ;
  296. tit = 'CHAI' 'Qualite equidistribution maillage avec noeuds interieurs' ;
  297. 'TRAC' qmail3e momail3 lqual 'TITR' tit ;
  298. 'FINSI' ;
  299. * 2025/11/24
  300. miqeref = 0.55 ; meqeref = 0.84 ; maqeref = 0.99 ;
  301. 'SI' ('&lt;EG' miqe miqeref) ;
  302. 'MESS' '!!! TEST 3 : miqe=' miqe ' < miqeref=' miqeref ;
  303. lok = lok 'ET' faux ;
  304. 'FINS' ;
  305. 'SI' ('&lt;EG' meqe meqeref) ;
  306. 'MESS' '!!! TEST 3 : meqe=' meqe ' < meqeref=' meqeref ;
  307. lok = lok 'ET' faux ;
  308. 'FINS' ;
  309. 'SI' ('&lt;EG' maqe maqeref) ;
  310. 'MESS' '!!! TEST 3 : maqe=' maqe ' < maqeref=' maqeref ;
  311. lok = lok 'ET' faux ;
  312. 'FINS' ;
  313. *
  314. * TEST 4 On vérifie qu'en remaillant le maillage précédent avec la même
  315. * métrique interpolée, on ne modifie pas le maillage
  316. *
  317. mail4 = 'REMA' mail3 ('CONT' mail3) cmetf2 ;
  318. * Test 4 : on vérifie que mail4 et mail3 sont identiques ainsi que les
  319. * qualités
  320. dn34= 'NBEL' ('DIFF' mail3 mail4) ;
  321. 'SI' ('NEG' dn34 0) ;
  322. 'MESS' '!!! TEST 4 : mail3 .NE. mail4' ;
  323. lok = lok 'ET' faux ;
  324. 'FINS' ;
  325. qmail4o = 'INDI' 'TOPO' mail4 cmetf2 ;
  326. dq34 = 'MAXI' ('-' qmail4o qmail3o) 'ABS' ;
  327. * VALE prec un peu trop serré pour semt2
  328. 'SI' ('>' dq34 ('*' ('VALE' 'PREC') 10.)) ;
  329. 'MESS' '!!! TEST 4 : qmail3o .NE. qmail4o' ;
  330. lok = lok 'ET' faux ;
  331. 'FINS' ;
  332. *
  333. * TEST 5 On vérifie qu'en remaillant le maillage précédent avec la même
  334. * métrique isotrope donnée sous forme d'une métrique anisotrope, on ne
  335. * modifie pas le maillage
  336. * Cela serait vrai sauf que, pour les tenseurs anisotropes , on ne fait
  337. * pas encore la moyenne géométrique (c'est plus compliqué !)
  338. *
  339. cmet = ('NOMC' 'G11' cmetf2 'NATU' 'DIFFUS') 'ET'
  340. ('NOMC' 'G22' cmetf2 'NATU' 'DIFFUS') 'ET'
  341. ('NOMC' 'G21' ('*' cmetf2 0.) 'NATU' 'DIFFUS') ;
  342. mail5 = 'REMA' mail3 ('CONT' mail3) cmet ;
  343. * Test 5 : on vérifie que mail5 et mail3 sont identiques ainsi que les
  344. * qualités
  345. dn35= 'NBEL' ('DIFF' mail3 mail5) ;
  346. 'SI' ('NEG' dn35 0) ;
  347. 'MESS' '!!! TEST 5 : mail3 .NE. mail5' ;
  348. lok = lok 'ET' faux ;
  349. 'FINS' ;
  350. qmail5o = 'INDI' 'TOPO' mail5 cmet ;
  351. dq35 = 'MAXI' ('-' qmail5o qmail3o) 'ABS' ;
  352. * VALE prec un peu trop serré pour semt2
  353. 'SI' ('>' dq35 ('*' ('VALE' 'PREC') 10.)) ;
  354. 'MESS' '!!! TEST 5 : qmail3 .NE. qmail5' ;
  355. lok = lok 'ET' faux ;
  356. 'FINS' ;
  357. *
  358. * TEST 6 Une petite boucle avec de la r-adaptation (DEDU ADAP) pour voir si on peut
  359. * améliorer la qualité du maillage mail3.
  360. *
  361. * La réponse est oui, on peut effectivement avoir une amélioration mais
  362. * après quelque itérations la qualité oscille sans s'alméliorer entre
  363. * r-adaptation et remaillage car les critères optimisés ne sont pas les
  364. * mêmes aux deux étapes.
  365. *
  366. *
  367. nopt = 2 ; iopt = 0 ;
  368. * Paramètres de DEDUADAP
  369. thdedu = 0.2 ; rdepa = 1. ; nitm = 1 ;
  370. maili = mail3 ;
  371. ldep = 'PROG' ; lqmin = 'PROG' ; lqmed = 'PROG' ;
  372. 'REPE' bclopt nopt ;
  373. iopt = iopt '+' 1 ;
  374. tit = 'CHAI' 'i=' iopt ;
  375. * Partie DEDUADAP
  376. maili1 = maili ;
  377. modi1 = 'MODE' maili1 'MECANIQUE' ;
  378. cden = 'NOMC' 'G' (caltail maili1) ;
  379. cmet = cden '**' -2 ;
  380. cmet = ('NOMC' 'G11' cmet 'NATU' 'DIFFUS') 'ET'
  381. ('NOMC' 'G22' cmet 'NATU' 'DIFFUS') 'ET'
  382. ('NOMC' 'G21' ('*' cmet 0.) 'NATU' 'DIFFUS') ;
  383. ccmet = 'CHAN' 'CHAM' cmet modi1 ;
  384. depa = 'DEDU' 'ADAP' maili1 'METR' ccmet modi1 'THET' thdedu 'NITM' nitm ;
  385. depa = '*' depa rdepa ;
  386. mcdep = 'MAXI' depa 'ABS' ; ldep = ldep 'ET' mcdep ;
  387. 'MESS' tit ' dedu max. dep=' mcdep ;
  388. 'FORM' depa ;
  389. cden = 'NOMC' 'G' (caltail maili1) ;
  390. cmet = cden '**' -2 ;
  391. qmaili1o = 'INDI' 'TOPO' maili1 cmet ;
  392. miq meq maq = MIMEMA ('EXTR' (CHGRAV qmaili1o) 'VALE' 'TOPO') ;
  393. 'MESS' 'FORMAT' '(E9.2)' tit ' deduadap : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  394. qmaili1a = 'INDI' 'ALIG' maili1 cmet ;
  395. miq meq maq = MIMEMA ('EXTR' (CHGRAV qmaili1a) 'VALE' 'ALIG') ;
  396. 'MESS' 'FORMAT' '(E9.2)' tit ' deduadap : Qalimin=' miq ' Qalimed=' meq ' Qalimax=' maq ;
  397. qmaili1e = 'INDI' 'EQUI' maili1 cmet ;
  398. miq meq maq = MIMEMA ('EXTR' (CHGRAV qmaili1e) 'VALE' 'EQUI') ;
  399. 'MESS' 'FORMAT' '(E9.2)' tit ' deduadap : Qequmin=' miq ' Qequmed=' meq ' Qequmax=' maq ;
  400. 'SI' graph ;
  401. momaili1 = 'MODE' maili1 'THERMIQUE' ;
  402. vdep = 'VECT' depa -1. 'UX' 'UY' 'NOIR' ;
  403. titg = 'CHAI' tit ' deduadap' ;
  404. 'TRAC' qmaili1o momaili1 vdep maili1 lqual 'TITR' titg ;
  405. 'FINS' ;
  406. * Partie MAILTOPO
  407. maili2 = 'REMA' maili1 ('CONT' maili1) cmet ;
  408. * Qualités
  409. cden = 'NOMC' 'G' (caltail maili2) ;
  410. cmet = cden '**' -2 ;
  411. qmaili2o = 'INDI' 'TOPO' maili2 cmet ;
  412. miq meq maq = MIMEMA ('EXTR' (CHGRAV qmaili2o) 'VALE' 'TOPO') ;
  413. 'MESS' 'FORMAT' '(E9.2)' tit ' mailtopo : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  414. qmaili2a = 'INDI' 'ALIG' maili2 cmet ;
  415. miqa meqa maqa = MIMEMA ('EXTR' (CHGRAV qmaili2a) 'VALE' 'ALIG') ;
  416. 'MESS' 'FORMAT' '(E9.2)' tit ' mailtopo : Qalimin=' miqa ' Qalimed=' meqa ' Qalimax=' maqa ;
  417. qmaili2e = 'INDI' 'EQUI' maili2 cmet ;
  418. miqe meqe maqe = MIMEMA ('EXTR' (CHGRAV qmaili2e) 'VALE' 'EQUI') ;
  419. 'MESS' 'FORMAT' '(E9.2)' tit ' mailtopo : Qequmin=' miqe ' Qequmed=' meqe ' Qequmax=' maqe ;
  420. 'SI' graph ;
  421. momaili2 = 'MODE' maili2 'THERMIQUE' ;
  422. titg = 'CHAI' tit ' mailtopo' ;
  423. 'TRAC' qmaili2o momaili2 lqual 'TITR' titg ;
  424. 'FINSI' ;
  425. maili = maili2 ;
  426. 'FIN' bclopt ;
  427. * Sur mon linux64 au 06/04/2020 : Qmin= 0.62E+00 Qmed= 0.87E+00 Qmax= 0.99E+00
  428. *miqref = 0.61 ; meqref = 0.86 ; maqref = 0.98 ;
  429. * 2025/11/24
  430. *!!!! Mieux miqaref = 0.61 ; meqaref = 0.86 ; maqaref = 0.98 ;
  431. * 2025/11/24 new
  432. miqaref = 0.60 ; meqaref = 0.86 ; maqaref = 0.98 ;
  433. 'SI' ('&lt;EG' miqa miqaref) ;
  434. 'MESS' '!!! TEST 6 : miqa=' miqa ' < miqaref=' miqaref ;
  435. lok = lok 'ET' faux ;
  436. 'FINS' ;
  437. 'SI' ('&lt;EG' meqa meqaref) ;
  438. 'MESS' '!!! TEST 6 : meqa=' meqa ' < meqaref=' meqaref ;
  439. lok = lok 'ET' faux ;
  440. 'FINS' ;
  441. 'SI' ('&lt;EG' maqa maqaref) ;
  442. 'MESS' '!!! TEST 6 : maqa=' maqa ' < maqaref=' maqaref ;
  443. lok = lok 'ET' faux ;
  444. 'FINS' ;
  445. * 2025/11/24
  446. miqeref = 0.61 ; meqeref = 0.86 ; maqeref = 0.98 ;
  447. 'SI' ('&lt;EG' miqe miqeref) ;
  448. 'MESS' '!!! TEST 6 : miqe=' miqe ' < miqeref=' miqeref ;
  449. lok = lok 'ET' faux ;
  450. 'FINS' ;
  451. 'SI' ('&lt;EG' meqe meqeref) ;
  452. 'MESS' '!!! TEST 6 : meqe=' meqe ' < meqeref=' meqeref ;
  453. lok = lok 'ET' faux ;
  454. 'FINS' ;
  455. 'SI' ('&lt;EG' maqe maqeref) ;
  456. 'MESS' '!!! TEST 6 : maqe=' maqe ' < maqeref=' maqeref ;
  457. lok = lok 'ET' faux ;
  458. 'FINS' ;
  459. *
  460. * Test final
  461. *
  462. 'SI' ('NON' lok) ;
  463. 'ERREUR' 5 ;
  464. 'SINON' ;
  465. 'SAUT' 1 'LIGN' ;
  466. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  467. 'FINSI' ;
  468. *
  469. 'SI' interact ;
  470. 'OPTION' 'ECHO' 1 ;
  471. 'OPTION' 'DONN' 5 ;
  472. 'FINSI' ;
  473. *
  474. * End of dgibi file MATO-2D2
  475. *
  476. 'FIN' ;
  477.  
  478.  
  479.  

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