Télécharger acqulata.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : acqulata.dgibi
  2.  
  3. ************************************************************************
  4. ************************************************************************
  5.  
  6. 'OPTION' 'ECHO' 0 ;
  7. ************************************************************************
  8. * NOM : ACQULATA
  9. * DESCRIPTION : Lecture de fichiers au format LATA v2.1 (Trio_U) en GIBI
  10. * On utilise ACQU BRUT et d'autres évolutions
  11. * (fiches 7922-7928)
  12. *
  13. *
  14. *
  15. * LANGAGE : GIBIANE-CAST3M
  16. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  17. * mél : stephane.gounand@cea.fr
  18. **********************************************************************
  19. * VERSION : v1, 13/01/2014, version initiale
  20. * HISTORIQUE : v1, 13/01/2014, création
  21. * HISTORIQUE :
  22. * HISTORIQUE :
  23. ************************************************************************
  24. *
  25. *
  26. interact = FAUX ;
  27. graph = FAUX ;
  28. ******************************************************************
  29. * P R O C E D U R E S
  30. *
  31. * SPLITLIG
  32. *
  33. * On a une chaine de caractères LALIG comprenant des mots séparés
  34. * par des espaces. On crée une table indexée par des entiers
  35. * contenant chaque mot de la ligne :
  36. * tab . I = Ieme mot de LALIG
  37. *
  38. 'DEBPROC' SPLITLIG ;
  39. 'ARGUMENT' lalig*'MOT' ;
  40. *'LISTE' ('DIME' lalig) ;
  41. *'LISTE' ('TYPE' lalig) ;
  42. * Splitte la ligne dans une table
  43. lesp = posi ' ' 'DANS' lalig 'TOUS' 'NOCA' ;
  44. lesp = ('LECT' 0) 'ET' lesp 'ET' ('LECT' ('+' ('DIME' lalig) 1)) ;
  45. tmot = 'TABLE' ;
  46. itab = 0 ;
  47. 'REPETER' idx ('-' ('DIME' lesp) 1) ;
  48. ii = &idx ;
  49. ideb = 'EXTRAIRE' lesp ii ;
  50. ifin = 'EXTRAIRE' lesp ('+' ii 1) ;
  51. 'SI' ('>' ifin ('+' ideb 1)) ;
  52. itab = '+' itab 1 ;
  53. tmot . itab = 'EXTRAIRE' lalig ('+' ideb 1) ('-' ifin 1) ;
  54. 'FINSI' ;
  55. 'FIN' idx ;
  56. 'RESPRO' tmot ;
  57. 'FINPROC' ;
  58. *
  59. * VALARG
  60. *
  61. * On a une table crée par SPLITLIG. Elle peut contenir des chaines
  62. * telles que : 'toto=30'. En entrée, on a la table, le mot 'toto' et
  63. * le type de la donnée cherchée (ici ENTIER).
  64. * En sortie, on a la valeur 30
  65. *
  66. *
  67. 'DEBPROC' VALARG ;
  68. 'ARGUMENT' tlig*'TABLE' ;
  69. 'ARGUMENT' motcher*'MOT' ;
  70. 'ARGUMENT' typcher*'MOT' ;
  71. mot2 = 'CHAINE' motcher '=' ;
  72. lon2 = 'DIME' mot2 ;
  73. nlig = 'DIME' tlig ;
  74. ok = faux ;
  75. 'REPETER' ilig nlig ;
  76. * Sinon pb si l'indice de la table est un nom d'operateur
  77. ind = 'CHAINE' tlig . &ilig ;
  78. *dbg 'MESSAGE' 'ind=' ind ;
  79. fi = posi mot2 'DANS' ind 'NOCA' ;
  80. *dbg 'MESSAGE' 'fi=' fi ;
  81. ok = 'EGA' fi 1 ;
  82. 'SI' ok ;
  83. ideb = '+' lon2 1 ;
  84. ifin = 'DIME' ind ;
  85. valcher = 'EXTRAIRE' ind ideb ifin ;
  86. 'QUITTER' ilig ;
  87. 'FINSI' ;
  88. 'FIN' ilig ;
  89. 'SI' ('NON' ok) ;
  90. 'ERREUR' ('CHAINE' motcher ' not found') ;
  91. 'FINSI' ;
  92. *'MESSAGE' ('CHAINE' 'valcher=' valcher) ;
  93. 'SI' ('EGA' typcher 'ENTIER') ;
  94. valcher = 'ENTIER' valcher ;
  95. 'FINSI' ;
  96. 'SI' ('EGA' typcher 'FLOTTANT') ;
  97. valcher = 'FLOTTANT' valcher ;
  98. 'FINSI' ;
  99. 'SI' ('EGA' typcher 'MOT') ;
  100. valcher = 'CHAN' 'MINU' valcher ;
  101. 'FINSI' ;
  102. 'RESPRO' valcher ;
  103. 'FINPROC' ;
  104. *
  105. * MAKELEM
  106. *
  107. * Cette procédure génère les noeuds et les éléments en lisant un fichier
  108. * fic est le nom de fichier
  109. * nelem est le nombre d'éléments à lire
  110. * nnoe est le nombre de noeuds par élément
  111. * Si nnoe=1, on génère la table des noeuds à partir des coordonnées
  112. * données dans le fichier
  113. * Si nnoe>1, on génère la table des simplexes à partir de leurs
  114. * numéros de noeuds, il faut alors donner la table des noeuds
  115. * tabnode comme argument supplémentaire à la procédure
  116. *
  117. 'DEBPROC' MAKELEM ;
  118. 'ARGUMENT' fic*'MOT' ;
  119. 'ARGUMENT' nelem*'ENTIER' ;
  120. 'ARGUMENT' nnoe*'ENTIER' ;
  121. *
  122. dim = 'VALEUR' 'DIME' ;
  123. 'SI' ('OU' ('<' nnoe 1) ('>' nnoe ('+' dim 1))) ;
  124. 'ERREUR' ('CHAINE' 'nnoe=' nnoe ' incorrect') ;
  125. 'FINSI' ;
  126. 'SI' ('NEG' nnoe 1) ;
  127. 'ARGUMENT' tabnode*'TABLE' ;
  128. 'FINSI' ;
  129. *
  130. tab = 'TABLE' 'ESCLAVE' ;
  131. 'MESSAGE' ('CHAINE' 'Reading ' fic ) ;
  132. *'OPTI' 'ACQU' fic ;
  133. MONACQU globfic tfic fic ;
  134. 'ACQU' bid*'ENTIER' ;
  135. *
  136. 'SI' ('EGA' nnoe 1) ;
  137. 'REPETER' bcl nelem ;
  138. i = &bcl ;
  139. 'ACQU' lcoor*'LISTREEL' dim ;
  140. tab . i = 'POIN' (EXTR lcoor 1) (EXTR lcoor 2) ;
  141. 'FIN' bcl ;
  142. 'SINON' ;
  143. lmot = 'MOTS' 'SEG2' 'TRI3' 'TET4' ;
  144. 'REPETER' bcl nelem ;
  145. i = &bcl ;
  146. acqu lnode*'LISTENTI' nnoe ;
  147. mpo = 'VIDE' 'MAILLAGE'/'POI1' ;
  148. 'REPETER' inoe nnoe ;
  149. po = 'EXTRAIRE' lnode &inoe ;
  150. mpo = 'ET' mpo
  151. ('MANU' 'POI1' (tabnode . po)) ;
  152. 'FIN' inoe ;
  153. tyel = 'EXTRAIRE' lmot ('-' nnoe 1) ;
  154. tab . i = 'MANU' tyel mpo ;
  155. 'FIN' bcl ;
  156. 'FINSI' ;
  157. 'RESPRO' tab ;
  158. 'FINPROC' ;
  159. *
  160. * MAKCHAM
  161. *
  162. * Génère les champs en lisant les fichiers correspondant
  163. * Il faut donner en entrée une table contenant les temps à lire,
  164. * les différents champs et les noms de fichiers.
  165. * Celle-ci est modifiée en sortie et contient les valeurs des champs.
  166. * Ce sont des champoints pour les champs définis aux noeuds
  167. * et des champs par éléments pour les champs définis aux faces ou
  168. * aux éléments.
  169. *
  170. *
  171. 'DEBPROC' MAKCHAM ;
  172. 'ARGUMENT' tabcham*'TABLE' ;
  173. *
  174. * Les champs
  175. *
  176. 'SI' ('>' ntemp 0) ;
  177. 'REPETER' itemp ntemp ;
  178. i = &itemp ;
  179. tabi = tabcham . i ;
  180. itabi = 'INDEX' tabi ;
  181. 'REPETER' ntabi ('DIME' itabi) ;
  182. idx = itabi . &ntabi ;
  183. 'SI' ('EGA' ('TYPE' (tabi . idx)) 'TABLE') ;
  184. tabin = tabi . idx ;
  185. fic = tabin . 'fic' ;
  186. 'MESSAGE' ('CHAINE' 'Reading ' fic) ;
  187. * 'OPTI' 'ACQU' fic ;
  188. MONACQU globfic tfic fic ;
  189. 'ACQU' bid*'ENTIER' ;
  190. nat = tabin . 'nat' ;
  191. 'SI' ('EGA' nat 'vector') ;
  192. ncomp = dim ;
  193. 'SINON' ;
  194. ncomp = 1 ;
  195. 'FINSI' ;
  196. tvcomp = 'TABLE' ;
  197. 'REPETER' icomp ncomp ;
  198. tvcomp . &icomp = 'PROG' ;
  199. 'FIN' icomp ;
  200. loc = tabin . 'loc' ;
  201. mod = tabcham . loc ;
  202. mmod = mod ;
  203. 'SI' ('NEG' ('TYPE' mmod) 'MAILLAGE') ;
  204. mmod = 'EXTRAIRE' mmod 'MAIL' ;
  205. 'FINSI' ;
  206. *
  207. 'REPETER' bcl ('NBEL' mmod) ;
  208. 'ACQU' lcom*'LISTREEL' ncomp ;
  209. 'REPETER' icomp ncomp ;
  210. tvcomp . &icomp = 'ET' (tvcomp . &icomp)
  211. ('PROG' ('EXTRAIRE' lcom &icomp)) ;
  212. 'FIN' icomp ;
  213. 'FIN' bcl ;
  214. 'SI' ('EGA' loc 'som') ;
  215. 'SI' ('EGA' ncomp 1) ;
  216. chp = 'MANU' 'CHPO' mmod ncomp 'SCAL' (tvcomp . 1) ;
  217. 'FINSI' ;
  218. 'SI' ('EGA' ncomp 2) ;
  219. chp = 'MANU' 'CHPO' mmod ncomp 'UX' (tvcomp . 1)
  220. 'UY' (tvcomp . 2) ;
  221. 'FINSI' ;
  222. 'SI' ('EGA' ncomp 3) ;
  223. chp = 'MANU' 'CHPO' mmod ncomp 'UX' (tvcomp . 1)
  224. 'UY' (tvcomp . 2)
  225. 'UZ' (tvcomp . 3) ;
  226. 'FINSI' ;
  227. tabin . 'chpoint' = chp ;
  228. * 'LISTE' chp;
  229. 'SINON' ;
  230. 'SI' ('EGA' ncomp 1) ;
  231. cha = 'MANU' 'CHML' mod 'REPA' 'SCAL' (tvcomp . 1)
  232. 'GRAVITE' ;
  233. 'FINSI' ;
  234. 'SI' ('EGA' ncomp 2) ;
  235. cha = 'MANU' 'CHML' mod 'REPA' 'UX' (tvcomp . 1)
  236. 'UY' (tvcomp . 2)
  237. 'GRAVITE' ;
  238. 'FINSI' ;
  239. 'SI' ('EGA' ncomp 3) ;
  240. cha = 'MANU' 'CHML' mod 'REPA' 'UX' (tvcomp . 1)
  241. 'UY' (tvcomp . 2)
  242. 'UZ' (tvcomp . 3)
  243. 'GRAVITE' ;
  244. 'FINSI' ;
  245. tabin . 'chamelem' = cha ;
  246. tabin . 'chpoint' = 'KCHA' mod cha 'CHPO' 'QUAF' ;
  247. * 'LISTE' cha ;
  248. 'FINSI' ;
  249. 'FINSI' ;
  250. 'FIN' ntabi ;
  251. 'FIN' itemp ;
  252. 'FINSI' ;
  253. *
  254. 'RESPRO' tabcham ;
  255. 'FINPROC' ;
  256. *
  257. * SAUTLIG
  258. *
  259. * Saute n lignes dans un fichier en cours de lecture avec ACQU
  260. *
  261. 'DEBPROC' SAUTLIG ;
  262. 'ARGUMENT' ilig*'ENTIER' ;
  263. 'ARGUMENT' jlig*'ENTIER' ;
  264. 'REPETER' bcl ;
  265. ilig = ilig '+' 1 ;
  266. 'SI' ('<' ilig jlig) ;
  267. acqu bid*'MOT' ;
  268. 'SINON' ;
  269. ilig = '-' ilig 1 ;
  270. 'QUITTER' bcl ;
  271. 'FINSI' ;
  272. 'FIN' bcl ;
  273. 'RESPRO' ilig ;
  274. 'FINPROC' ;
  275. *
  276. * MONACQU
  277. *
  278. *
  279. * On se positionne dans le fichier fic juste après la ligne
  280. * FICHIER fic2
  281. * dont le numéro est dans tfic . fic2
  282. * si multific = vrai (variable globale), MONACQU est equivalent a 'OPTI
  283. * 'ACQU' ;
  284. *
  285. 'DEBPROC' MONACQU ;
  286. 'ARGUMENT' fic*'MOT' ;
  287. 'ARGUMENT' tfic*'TABLE' ;
  288. 'ARGUMENT' fic2*'MOT' ;
  289. *
  290. 'SI' multific ;
  291. 'OPTI' 'ACQU' fic2 ;
  292. 'SINON' ;
  293. *'MESSAGE' ('CHAINE' 'Reading ' fic) ;
  294. 'OPTI' 'ACQU' fic ;
  295. nlig = tfic . fic2 ;
  296. *'MESSAGE' 'nlig=' nlig ;
  297. 'SI' ('>' nlig 0) ;
  298. 'REPETER' bcl nlig ;
  299. bid = 'ACQU' 'BRUT' ;
  300. 'FIN' bcl ;
  301. 'FINSI' ;
  302. 'FINSI' ;
  303. 'FINPROC' ;
  304. *
  305. *
  306. * Fin des P R O C E D U R E S
  307. ******************************************************************
  308. *
  309. * Début du jeu de données
  310. *
  311. * multific est un logique global qui dit si les fichiers .lata sont mis
  312. * sequentiellement dans un seul fichier globfic (typiquement le .dgibi
  313. * courant) ou si ils sont en fichiers separes dans le repertoire courant
  314. *
  315. multific = faux ;
  316. *
  317. * 1ere passe pour localiser les débuts de fichier dans globfic
  318. * si multific = faux ;
  319. * On fait une table tfic . 'nomfic' = i avec i ligne début
  320. tfic = 'TABLE' ;
  321. divers = 'VENV' 'CASTEM_DIVERS';
  322. globfic = 'CHAINE' divers '/../dgibi/acqulata.dgibi' ;
  323. 'SI' ('NON' multific) ;
  324. 'OPTI' 'ACQU' globfic ;
  325. *
  326. ilig = 0 ;
  327. 'REPETER' bcl ;
  328. lalig = ACQU 'BRUT' ; ilig = '+' ilig 1 ;
  329. * 'SI' ('NEG' tlig . 1 '*') ;
  330. * prem = 'CHAINE' IEME lalig 1 ;
  331. * mcle = 'CHANGER' 'MINU' (IEME lalig 1) ;
  332. tlig = SPLITLIG lalig ;
  333. 'SI' ('>' ('DIME' tlig) 0) ;
  334. * Eviter l'interprétation de tlig . 1
  335. 'SI' ('NEG' tlig . 1 '*') ;
  336. mcle = 'CHANGER' 'MINU' tlig . 1 ;
  337. 'SI' ('EGA' mcle 'fichier') ;
  338. tfic . (tlig . 2) = ilig ;
  339. 'FINSI' ;
  340. 'SI' ('EGA' mcle 'stop') ;
  341. 'QUITTER' bcl ;
  342. 'FINSI' ;
  343. 'FINSI' ;
  344. 'FINSI' ;
  345. 'FIN' bcl ;
  346. *
  347. 'LISTE' tfic ;
  348. 'FINSI' ;
  349. *
  350. nomcas = 'stokes_2d' ;
  351. *
  352. * Traitement du fichier stokes_2d.lata
  353. *
  354. * 1 Lecture du nombre d'entrees CHAMP GEOM et TEMP. On s'arrete à
  355. * l'entrée FIN
  356. *
  357. fic = 'CHAINE' nomcas '.lata' ;
  358. 'MESSAGE' ('CHAINE' 'Reading ' fic ' pass 1') ;
  359. *'OPTI' 'ACQU' fic ;
  360. MONACQU globfic tfic fic ;
  361. lkas = 'LECT' ;
  362. ilig = 0 ;
  363. tmot = 'TABLE' ;
  364. tmot . 'CHAMP' = 1 ;
  365. tmot . 'GEOM' = 2 ;
  366. tmot . 'TEMPS' = 3 ;
  367. tmot . 'FIN' = 4 ;
  368. *
  369. 'REPETER' bcl ;
  370. acqu mot1*'MOT' ;
  371. * 'LISTE' mot1 ;
  372. ilig = '+' ilig 1 ;
  373. 'SI' ('EXISTE' tmot mot1) ;
  374. ikas = tmot . ('CHAINE' mot1) ;
  375. 'SINON' ;
  376. ikas = 0 ;
  377. 'FINSI' ;
  378. lkas = 'ET' lkas ('LECT' ikas) ;
  379. 'SI' ('EGA' ikas 4) ;
  380. 'QUITTER' bcl ;
  381. 'FINSI' ;
  382. 'FIN' bcl ;
  383. *
  384. lgeom = posi 2 'DANS' lkas 'TOUS' ;
  385. ltemp = posi 3 'DANS' lkas 'TOUS' ;
  386. ifin = posi 4 'DANS' lkas ;
  387. ngeom = 'DIME' lgeom ;
  388. ntemp = 'DIME' ltemp ;
  389. 'MESSAGE' ('CHAINE' 'Nombre de geometries : ' ngeom) ;
  390. 'MESSAGE' ('CHAINE' 'Nombre de temps sauves : ' ntemp) ;
  391. 'SI' ('>' ntemp 0) ;
  392. 'SI' ('>' ntemp 1) ;
  393. ncham = '-' ('-' ('EXTRAIRE' ltemp 2) ('EXTRAIRE' ltemp 1)) 1 ;
  394. 'SINON' ;
  395. ncham = '-' ('-' ifin ('EXTRAIRE' ltemp 1)) 1 ;
  396. 'FINSI' ;
  397. 'FINSI' ;
  398. 'MESSAGE' ('CHAINE' 'Nombre de champs par temps sauves : ' ncham) ;
  399. *
  400. * On lit uniquement la première géométrie
  401. *
  402. 'MESSAGE' ('CHAINE' 'Reading ' fic ' pass 2') ;
  403. *'OPTI' 'ACQU' fic ;
  404. MONACQU globfic tfic fic ;
  405. ilig = 0 ;
  406. igeom = 'EXTRAIRE' lgeom 1 ;
  407. ilig = SAUTLIG ilig ('+' igeom 1) ;
  408. * Les noeuds
  409. lalig = ACQU 'BRUT' ; ilig = '+' ilig 1 ;
  410. tlig = SPLITLIG lalig ;
  411. ficnode = 'CHAINE' tlig . 3 ;
  412. nnode = VALARG tlig 'size' 'ENTIER' ;
  413. dim = VALARG tlig 'composantes' 'ENTIER' ;
  414. 'MESSAGE' ('CHAINE' 'Nom du fichier des noeuds : ' ficnode) ;
  415. 'MESSAGE' ('CHAINE' 'Nombre de noeuds : ' nnode) ;
  416. 'MESSAGE' ('CHAINE' 'Dimension du probleme : ' dim ) ;
  417. * Les éléments
  418. lalig = ACQU 'BRUT' ; ilig = '+' ilig 1 ;
  419. tlig = SPLITLIG lalig ;
  420. ficelem = 'CHAINE' tlig . 3 ;
  421. nelem = VALARG tlig 'size' 'ENTIER' ;
  422. nnoe = VALARG tlig 'composantes' 'ENTIER' ;
  423. 'MESSAGE' ('CHAINE' 'Nom du fichier des éléments : ' ficelem) ;
  424. 'MESSAGE' ('CHAINE' 'Nombre déléments : ' nelem) ;
  425. 'MESSAGE' ('CHAINE' 'Nombre de noeuds/elem : ' nnoe) ;
  426. * Les faces
  427. igeom = 'EXTRAIRE' lgeom ngeom ;
  428. ilig = SAUTLIG ilig ('+' igeom 3) ;
  429. lalig = ACQU 'BRUT' ; ilig = '+' ilig 1 ;
  430. tlig = SPLITLIG lalig ;
  431. ficface = 'CHAINE' tlig . 3 ;
  432. nface = VALARG tlig 'size' 'ENTIER' ;
  433. nnof = VALARG tlig 'composantes' 'ENTIER' ;
  434. 'MESSAGE' ('CHAINE' 'Nom du fichier des faces : ' ficface) ;
  435. 'MESSAGE' ('CHAINE' 'Nombre de faces : ' nface) ;
  436. 'MESSAGE' ('CHAINE' 'Nombre de noeuds/face : ' nnof) ;
  437. * Les champs aux différents instants
  438. tabcham = 'TABLE' ;
  439. ltem = 'PROG' ;
  440. 'SI' ('>' ntemp 0) ;
  441. 'REPETER' itemp ntemp ;
  442. i = &itemp ;
  443. ilig = SAUTLIG ilig ('EXTRAIRE' ltemp i) ;
  444. tabcham . i = 'TABLE' ; tabi = tabcham . i ;
  445. lalig = ACQU 'BRUT' ; ilig = '+' ilig 1 ;
  446. tlig = SPLITLIG lalig ;
  447. tem = 'FLOTTANT' tlig . 2 ;
  448. tabi . 'INSTANT' = tem ;
  449. ltem = 'ET' ltem ('PROG' tem) ;
  450. 'REPETER' icham ncham ;
  451. lalig = ACQU 'BRUT' ; ilig = '+' ilig 1 ;
  452. tlig = SPLITLIG lalig ;
  453. quoi = 'CHANGER' 'MINU' ('CHAINE' tlig . 2) ;
  454. loc = VALARG tlig 'localisation' 'MOT' ;
  455. nat = VALARG tlig 'nature' 'MOT' ;
  456. nomcham = 'CHAINE' quoi loc ;
  457. tabi . nomcham = 'TABLE' ; tabin = tabi . nomcham ;
  458. tabin . 'quoi' = 'MOT' quoi ;
  459. tabin . 'loc' = 'MOT' loc ;
  460. tabin . 'nat' = 'MOT' nat ;
  461. tabin . 'fic' = 'CHAINE' tlig . 3 ;
  462. * 'LISTE' tabin ;
  463. 'FIN' icham ;
  464. 'FIN' itemp ;
  465. 'FINSI' ;
  466. *
  467. * On a lu tous les noms de fichiers, maintenant, on peut créer les objets
  468. *
  469. 'OPTI' 'DIME' dim ;
  470. * les noeuds
  471. tabnode = MAKELEM ficnode nnode 1 ;
  472. pmt = 'ET' tabnode ;
  473. * Les éléments
  474. tabelem = MAKELEM ficelem nelem nnoe tabnode ;
  475. mt = 'ET' tabelem ;
  476. * Les faces
  477. tabface = MAKELEM ficface nface nnof tabnode ;
  478. fac = 'ET' tabface ;
  479. *'TRACER' fac 'TITR' 'fac' ;
  480. *
  481. _mt = 'CHANGER' mt 'QUAF' ;
  482. _fac = 'CHANGER' fac 'QUAF' ;
  483. 'ELIMINATION' ('ET' _mt _fac) 1.D-6 ;
  484. *
  485. tabcham . 'ltemps' = ltem ;
  486. tabcham . 'som' = pmt ;
  487. tabcham . 'elem' = 'MODE' _mt 'NAVIER_STOKES' 'QUAF' ;
  488. tabcham . 'faces' = 'MODE' _fac 'NAVIER_STOKES' 'QUAF' ;
  489. * Lire les champs
  490. tabcham = MAKCHAM tabcham ;
  491. *fic = 'CHAINE' nomdir nomcas '.sauv' ;
  492. *'MESSAGE' ('CHAINE' 'Saving ' fic) ;
  493. *'OPTI' 'SAUVER' fic ;
  494. *'SAUVER' tabcham ;
  495. *
  496. ntemps = 'DIME' (tabcham . 'ltemps') ;
  497. tt = tabcham . ntemps ;
  498. vit = tt . 'vitessefaces' . 'chpoint' ;
  499. mvit = 'MAXIMUM' vit 'ABS' ;
  500. prep1 = tt . 'pressionsom' . 'chpoint' ;
  501. prep0 = tt . 'pressionelem' . 'chamelem' ;
  502. mpre1 = 'MAXIMUM' prep1 'ABS' ;
  503. mpre0 = 'MAXIMUM' prep0 'ABS' ;
  504. 'MESSAGE' ('CHAINE' 'mvit=' mvit) ;
  505. 'MESSAGE' ('CHAINE' 'mpre1=' mpre1) ;
  506. 'MESSAGE' ('CHAINE' 'mpre0=' mpre0) ;
  507. *
  508. 'SI' graph ;
  509. vvit = 'VECT' vit 'DEPL' 'JAUN' ;
  510. tit = 'CHAINE' 'Vitesse ; mvit=' mvit ;
  511. 'TRACER' vvit mt 'TITR' tit ;
  512. tit = 'CHAINE' 'Pression P1 ; mpre1=' mpre1 ;
  513. 'TRACER' prep1 mt 'TITR' tit ;
  514. tit = 'CHAINE' 'Pression P0 ; mpre0=' mpre0 ;
  515. 'TRACER' prep0 (tabcham . 'elem') 'TITR' tit ;
  516. 'FINSI' ;
  517. * On fait quelques tests bateaux sur les résultats obtenus
  518. y47 = coor 2 (tabnode . 47) ;
  519. t1 = 'EGA' nnode 86 ;
  520. t2 = 'EGA' nelem 138 ;
  521. t3 = 'EGA' nface 223 ;
  522. t4 = 'EGA' mvit 1.18928E-4 1.E-8 ;
  523. t5 = 'EGA' mpre0 6.04218E-1 1.E-5 ;
  524. t6 = 'EGA' mpre1 6.64172E-1 1.E-4 ;
  525. t7 = 'EGA' y47 1.83565006e-1 1.e-9 ;
  526. *
  527. ok = t1 'ET' t2 'ET' t3 'ET' t4 'ET' t5 'ET' t6 'ET' t7 ;
  528. *
  529. 'SI' ('NON' ok) ;
  530. 'MESSAGE' ('CHAINE' 'Il y a eu des erreurs') ;
  531. 'ERREUR' 5 ;
  532. 'SINON' ;
  533. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  534. 'FINSI' ;
  535. *
  536. 'SI' interact ;
  537. 'OPTION' 'ECHO' 1 ;
  538. 'OPTION' 'DONN' 5 ;
  539. 'FINSI' ;
  540. *
  541. * End of dgibi file ACQULATA
  542. *

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