Télécharger rema-tri.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : rema-tri.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTI' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : REMA-TRI
  7. * DESCRIPTION : On remaille un triangle eventuellement tres plat.
  8. *
  9. *
  10. *
  11. * LANGAGE : GIBIANE-CAST3M
  12. * AUTEUR : Stephane GOUNAND (CEA/DES/ISAS/DM2S/SEMT/LTA)
  13. * mel : stephane.gounand@cea.fr
  14. **********************************************************************
  15. * VERSION : v1, 05/03/2026, version initiale
  16. * HISTORIQUE : v1, 05/03/2026, création
  17. * HISTORIQUE :
  18. * HISTORIQUE :
  19. ************************************************************************
  20. *
  21. graph = faux ;
  22. interact = faux ;
  23. film = faux ;
  24. * Ne marchent pas ensemble
  25. 'SI' film ; graph = faux ; 'FINS' ;
  26. *
  27. * Mini, mediane et maxi d'un MCHAML
  28. 'DEBP' MIMEMA ;
  29. 'ARGU' ch*'MCHAML' ;
  30. 'ARGU' cmp*'MOT' ;
  31. lr = 'EXTR' (CHGRAV ch) 'VALE' cmp ;
  32. lro = 'ORDO' lr ; dlr = 'DIME' lr ;
  33. mil = 'EXTR' lro 1 ; mal = 'EXTR' lro dlr ;
  34. mel = 'EXTR' lro ('/' ('+' 1 dlr) 2) ;
  35. 'FINP' mil mel mal ;
  36. * Passage au gravite d'un MCHAML
  37. 'DEBP' CHGRAV ch*'MCHAML';
  38. 'FINP' ('CHAN' ch ('MODE' ('EXTR' ch 'MAIL') 'THERMIQUE') 'GRAVITE') ;
  39. *
  40. 'SI' ('NON' interact) ;
  41. 'OPTION' 'TRAC' 'PSC' ;
  42. 'SINON' ;
  43. 'OPTION' 'TRAC' 'X' ;
  44. 'FINSI' ;
  45. *
  46. *
  47. lqual = 'PROG' 0. 'PAS' 0.05 1. ;
  48. ldens1 = 'PROG' 0.5 'PAS' 0.05 1. ;
  49. ldens2 = 'PROG' 0.9 'PAS' -0.05 0.5 ;
  50. ldens = ldens1 'ET' (ldens2 '**' -1.) ;
  51. *
  52. ltest = vrai ;
  53. for = '(E11.3)' ;
  54. forf = '(F10.3)' ;
  55. *
  56. tol = '*' ('VALE' 'PREC') 10. ;
  57. lok = vrai ;
  58. lkas = 'LECT' 1 2 3 4 ;
  59. *
  60. nraff = 4 ;
  61. dx1 = 1.00 ;
  62. dx = 1. '/' ('*' dx1 (2 '**' nraff)) ;
  63. ttol = 1.25 ;
  64. *
  65. lz = 'PROG' 0.5 0.1 0.01 0.001 ;
  66. *lz = 'PROG' 0.001 ;
  67. *
  68. tref = 'TABL' ;
  69. 'REPE' iikas ('DIME' lkas) ;
  70. ikas = 'EXTR' lkas &iikas ;
  71. tref . ikas = 'TABL' ;
  72. 'FIN' iikas ;
  73. tref . 1 . 'miqa' = 'PROG' 0.75 0.33 3.46E-02 3.46E-03 ;
  74. tref . 1 . 'meqa' = 'PROG' 0.86 0.85 0.13 1.38E-02 ;
  75. tref . 1 . 'maqa' = 'PROG' 0.99 0.98 0.27 2.77E-02 ;
  76. *
  77. tref . 2 . 'miqa' = 'PROG' 0.86 0.33 3.46E-02 3.46E-03 ;
  78. tref . 2 . 'meqa' = tref . 2 . 'miqa' ; tref . 2 . 'maqa' = tref . 2 . 'miqa' ;
  79. *
  80. tref . 3 . 'miqa' = 'PROG' 0.69 0.17 1.73E-02 1.73E-03 ;
  81. tref . 3 . 'meqa' = 'PROG' 0.90 0.81 0.13 1.38E-02 ;
  82. tref . 3 . 'maqa' = 'PROG' 0.99 0.98 0.27 2.77E-02 ;
  83. *
  84. tref . 4 . 'miqa' = 'PROG' 0.69 0.17 1.73E-02 1.73E-03 ;
  85. tref . 4 . 'meqa' = tref . 4 . 'miqa' ; tref . 4 . 'maqa' = tref . 4 . 'miqa' ;
  86. *
  87. tref . 1 . 'miqe' = 'PROG' 0.61 0.48 0.15 4.80E-02 ;
  88. tref . 1 . 'meqe' = 'PROG' 0.76 0.84 0.30 9.00E-02 ;
  89. tref . 1 . 'maqe' = 'PROG' 1.06 1.08 0.43 0.14 ;
  90. *
  91. tref . 2 . 'miqe' = 'PROG' 0.60 0.19 6.07E-02 1.92E-02 ;
  92. tref . 2 . 'meqe' = tref . 2 . 'miqe' ; tref . 2 . 'maqe' = (tref . 2 . 'miqe') '+' 0.01 ;
  93. *
  94. tref . 3 . 'miqe' = 'PROG' 0.62 0.33 0.10 3.39E-02 ;
  95. tref . 3 . 'meqe' = 'PROG' 0.84 0.83 0.30 9.61E-02 ;
  96. tref . 3 . 'maqe' = 'PROG' 1.08 1.08 0.43 0.14 ;
  97. *
  98. tref . 4 . 'miqe' = 'PROG' 0.54 0.27 8.59E-02 2.71E-02 ;
  99. tref . 4 . 'meqe' = tref . 4 . 'miqe' ; tref . 4 . 'maqe' = (tref . 4 . 'miqe') '+' 0.01 ;
  100. *
  101. tresu = 'TABL' ;
  102. 'REPE' iikas ('DIME' lkas) ;
  103. ikas = 'EXTR' lkas &iikas ;
  104. tresu . ikas = 'TABL' ;
  105. tresui = tresu . ikas ;
  106. tresui . 'nelem' = 'LECT' ; tresui . 'nelref' = 'LECT' ;
  107. tresui . 'miqa' = 'PROG' ; tresui . 'meqa' = 'PROG' ; tresui . 'maqa' = 'PROG' ;
  108. tresui . 'miqe' = 'PROG' ; tresui . 'meqe' = 'PROG' ; tresui . 'maqe' = 'PROG' ;
  109. 'FIN' iikas ;
  110. *
  111. 'REPE' iiz ('DIME' lz) ;
  112. iz = &iiz ;
  113. dz = 'EXTR' lz iz ;
  114. * 'MESS' '*************************************************************' ;
  115. * 'MESS' 'Hauteur = ' ' ' dz ;
  116. * 'MESS' '*************************************************************' ;
  117. 'REPE' iikas ('DIME' lkas) ;
  118. ikas = 'EXTR' lkas &iikas ;
  119. hal = 0.5 ; mhal = -0.5 ;
  120. 'OPTI' 'DIME' 2 'ELEM' 'TRI3' ;
  121. * Sommet du triangle
  122. 'DENS' dx ;
  123. pA = mhal 0. ;
  124. pB = hal 0. ;
  125. 'SI' ('OU' ('EGA' ikas 1) ('EGA' ikas 2)) ;
  126. pC = 0. dz ;
  127. 'SINO' ;
  128. pC = hal dz ;
  129. 'FINS' ;
  130. * 'LIST' pC ;
  131. tri = 'MANU' 'TRI3' pA pB pC ;
  132. ctriraff = pA 'DROI' pB 'DROI' pC 'DROI' pA ;
  133. triraff = 'TRIA' 'TOPO' ctriraff 'AJNO' ;
  134. 'TASS' ;
  135. *
  136. 'SI' ('EGA' ikas 1) ;
  137. desckas = 'CHAI' 'Raff triangle isocele' ;
  138. desckar = 'CHAI' 'raf-tri-iso' ;
  139. metva = dx ;
  140. mailav = tri ;
  141. nelref = 'NBEL' triraff ;
  142. 'FINS' ;
  143. 'SI' ('EGA' ikas 2) ;
  144. desckas = 'CHAI' 'Deraff triangle isocele' ;
  145. desckar = 'CHAI' 'draf-tri-iso' ;
  146. dxg = '**' ('+' ('**' 0.5 2.) ('**' dz 2.)) 0.5 ;
  147. metva = '*' ('MAXI' ('PROG' dxg 1.)) ttol ;
  148. mailav = triraff ;
  149. nelref = 2 ;
  150. 'FINS' ;
  151. 'SI' ('EGA' ikas 3) ;
  152. desckas = 'CHAI' 'Raff triangle rectangle' ;
  153. desckar = 'CHAI' 'raf-tri-rec' ;
  154. metva = dx ;
  155. mailav = tri ;
  156. nelref = 'NBEL' triraff ;
  157. 'FINS' ;
  158. 'SI' ('EGA' ikas 4) ;
  159. desckas = 'CHAI' 'Deraff triangle rectangle' ;
  160. desckar = 'CHAI' 'raf-tri-rec' ;
  161. dxg = '**' ('+' ('**' 1. 2.) ('**' dz 2.)) 0.5 ;
  162. metva = dxg '*' ttol ;
  163. mailav = triraff ;
  164. nelref = 1 ;
  165. 'FINS' ;
  166. nomkas = 'CHAI' 'FORMAT' for 'CAS' ' ' ikas ' dz=' dz ' dxvoul=' metva ;
  167. nomkar = 'CHAI' 'FORMAT' for desckar '-dz' dz '-dx' metva ;
  168. txt = 'CHAI' '*****' ' ' nomkas ' :' ' ' ('CHAN' 'MAJU' desckas) ' ' '*****' ;
  169. 'MESS' txt ;
  170. *
  171. 'SI' graph ;
  172. tit = 'CHAI' desckas ' AVANT dxvoul=' metva ;
  173. 'TRAC' 'CACH' mailav 'TITR' tit ;
  174. 'FINSI' ;
  175. *
  176. tparam = 'TABL' ;
  177. tparam . 'impr' = 1 ;
  178. tparam . 'critquals' = 'ENUM' ('PROG' 2 10. 3.) ('PROG' 2 10. 1.) ;
  179. tparam . 'impr_opto' = 0 ;
  180. tparam . 'veri_opto' = 2 ;
  181. 'SI' film ;
  182. tparam . 'sort_seqm' = 1 ;
  183. 'FINS' ;
  184. tparam . 'veri_seqm' = 0 ;
  185. 'SI' graph ;
  186. tparam . 'sort_mail_pass' = 1 ;
  187. 'FINS' ;
  188. tparam . 'graph' = faux ;
  189. *
  190. mailap = 'REMA' mailav metva tparam ;
  191. 'SI' film ;
  192. FILMTOPO tparam ('CHAI' nomkar '.ps') ;
  193. 'FINS' ;
  194. *'ERRE' stop ;
  195. tresu . ikas . 'mail' = mailap ;
  196. lpcritq = tparam . 'critquals_eff' ; dlp = 'DIME' lpcritq ; lcritq = 'EXTR' lpcritq dlp ;
  197. *
  198. 'SI' graph ;
  199. lpass = tparam . 'seqpass' ;
  200. npass = 'DIME' lpass ;
  201. 'REPE' iipass npass ;
  202. ipass = &iipass ;
  203. mailpass = 'EXTR' lpass ipass ;
  204. tit = 'CHAI' 'FORMAT' for desckas ' passe' ' ' ipass ' dxvoul=' metva ;
  205. 'TRAC' mailpass 'TITR' tit ;
  206. 'FIN' iipass ;
  207. 'FINSI' ;
  208.  
  209. qmailap = 'INDI' 'TOPO' 'COHE' 'DENS' mailap metva lcritq ;
  210. miq meq maq = MIMEMA qmailap 'TOPO' ;
  211. 'MESS' 'FORMAT' for nomkas ' : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  212. miqa meqa maqa = MIMEMA qmailap 'COHE' ;
  213. 'MESS' 'FORMAT' for nomkas ' : Qcohemin=' miqa ' Qcohemed=' meqa ' Qcohemax=' maqa ;
  214. 'SI' graph ;
  215. momailap = 'MODE' mailap 'MECANIQUE' ;
  216. tit = 'CHAI' 'FORMAT' for 'Qualite coherence' ' ' desckas ' dxvoul=' metva ;
  217. 'TRAC' ('EXCO' 'COHE' qmailap) momailap lqual 'TITR' tit ;
  218. 'FINSI' ;
  219. 'SI' ltest ;
  220. trefi = tref . ikas ;
  221. miqar = 'EXTR' (trefi . 'miqa') iz ; meqar = 'EXTR' (trefi . 'meqa') iz ; maqar = 'EXTR' (trefi . 'maqa') iz ;
  222. 'MESS' 'FORMAT' for nomkas ' : Qcohemir=' miqar ' Qcohemer=' meqar ' Qcohemar=' maqar ;
  223. 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ;
  224. 'MESS' '!!!' ' ' nomkas ' coherence failed' ;
  225. lok = lok 'ET' faux ;
  226. 'FINS' ;
  227. 'FINS' ;
  228. miqe meqe maqe = MIMEMA qmailap 'DENS' ;
  229. 'MESS' 'FORMAT' for nomkas ' : Qdensmin=' miqe ' Qdensmed=' meqe ' Qdensmax=' maqe ;
  230. 'SI' graph ;
  231. tit = 'CHAI' 'FORMAT' for 'Qualite density distribution' ' ' desckas ' dxvoul=' metva ;
  232. 'TRAC' ('EXCO' 'DENS' qmailap) momailap ldens 'TITR' tit ;
  233. 'FINSI' ;
  234. 'SI' ltest ;
  235. trefi = tref . ikas ;
  236. miqer = 'EXTR' (trefi . 'miqe') iz ; meqer = 'EXTR' (trefi . 'meqe') iz ; maqer = 'EXTR' (trefi . 'maqe') iz ;
  237. 'MESS' 'FORMAT' for nomkas ' : Qdensmir=' miqer ' Qdensmer=' meqer ' Qdensmar=' maqer ;
  238. 'SI' (('<EG' miqe miqer) 'OU' ('NEG' meqe meqer 0.01) 'OU' ('>EG' maqe maqer)) ;
  239. 'MESS' '!!!' ' ' nomkas ' density distribution failed' ;
  240. lok = lok 'ET' faux ;
  241. 'FINS' ;
  242. 'FINS' ;
  243. nelem = 'NBEL' mailap ;
  244. 'MESS' nomkas ' : nelref=' nelref ' nelem=' nelem ' rap=' ('/' ('FLOT' nelref) ('FLOT' nelem)) ;
  245. *
  246. 'SI' ltest ;
  247. 'SI' ('OU' ('EGA' ikas 2) ('EGA' ikas 4)) ;
  248. 'SI' ('>' nelem nelref) ;
  249. 'MESS' '!!!' ' ' nomkas ' : derefinement failed nelem=' nelem ' > nelref=' nelref ;
  250. lok = lok 'ET' faux ;
  251. 'SINO' ;
  252. 'MESS' nomkas ' : derefinement OK nelem=' nelem ' <= nelref=' nelref ; ;
  253. 'FINS' ;
  254. 'FINS' ;
  255. 'SI' ('OU' ('EGA' ikas 1) ('EGA' ikas 3)) ;
  256. * Verification de la taille du contour
  257. cmailap = 'CONT' mailap ;
  258. tcmap = DEADJACO cmailap ;
  259. matcmap = 'MAXI' tcmap 'ABS' ;
  260. dxtol = metva '*' ttol ;
  261. 'SI' ('>' matcmap dxtol) ;
  262. 'MESS' '!!!' ' ' nomkas ' : refinement failed matcamp=' matcmap ' > dxtol=' dxtol ;
  263. lok = lok 'ET' faux ;
  264. 'SINO' ;
  265. 'MESS' nomkas ' : refinement OK matcamp=' matcmap ' < dxtol=' dxtol ;
  266. 'FINS' ;
  267. 'FINS' ;
  268. 'FINS' ;
  269.  
  270. tresui = tresu . ikas ;
  271. tresui . 'desckas' = desckas ;
  272. tresui . 'nelref' = tresui . 'nelref' 'ET' nelref ;
  273. tresui . 'nelem' = tresui . 'nelem' 'ET' nelem ;
  274. tresui . 'miqa' = tresui . 'miqa' 'ET' miqa ;
  275. tresui . 'meqa' = tresui . 'meqa' 'ET' meqa ;
  276. tresui . 'maqa' = tresui . 'maqa' 'ET' maqa ;
  277. tresui . 'miqe' = tresui . 'miqe' 'ET' miqe ;
  278. tresui . 'meqe' = tresui . 'meqe' 'ET' meqe ;
  279. tresui . 'maqe' = tresui . 'maqe' 'ET' maqe ;
  280. 'FIN' iikas ;
  281. 'FIN' iiz ;
  282. *
  283. 'SI' ('NON' lok) ;
  284. 'MESSAGE' ('CHAINE' '!!! Il y a eu des erreurs') ;
  285. 'SINON' ;
  286. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  287. 'FINSI' ;
  288. *
  289. 'OPTI' echo 1 ;
  290. 'SI' interact ;
  291. 'OPTI' 'DONN' 5 ;
  292. 'FINS' ;
  293. 'SI' ('NON' lok) ;
  294. 'ERRE' 5 ;
  295. 'FINS' ;
  296. *
  297. * End of dgibi file REMA-TRI
  298. *
  299. 'FIN' ;
  300.  
  301.  
  302.  

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