Télécharger pas_init.procedur

Retour à la liste

Numérotation des lignes :

  1. * PAS_INIT PROCEDUR CB215821 19/02/25 21:16:33 10119
  2. 'DEBPROC' PAS_INIT PRECED*'TABLE' ;
  3. *cette procedure cree l'etat initial des inconnues , le met dans conti.
  4. * initialise au passage les tables de sorties en mettant l'etat
  5. * initial sous l'indice 0
  6. * on fait complique car on veut pouvoir continuer des
  7. * calculs sauvegardes avant que la table de continuation n'existe
  8. WTAB =PRECED.'WTABLE' ;
  9.  
  10. TABSAUV=WTAB .'TABSAUV';
  11. 'SI' ( 'EXIS' PRECED 'CONTINUATION');
  12. conti=PRECED.'CONTINUATION';
  13. inouv=faux;
  14. WTAB.'TEMPS0'=conti.'TEMPS';
  15. 'SINON';
  16. * il suffit d'initialiser a zero ou de reprendre ce qui est donne
  17. * par l'utilisateur ( vitesses initiales ,temperatuires initiales etc..
  18. conti='TABL';
  19. inouv=vrai;
  20. PRECED.'CONTINUATION'= CONTI;
  21. 'FINSI';
  22. *---------- initialisation du temps et table sortie temps
  23. 'SI' ('EXIS' PRECED TEMPS) ;
  24. NSOR= ('DIME' (PRECED . 'TEMPS' )) - 1;
  25. WTAB.'NSOR'=NSOR;
  26. 'SI' ('EXIS' conti 'TEMPS');
  27. WTAB.'TEMPS0'=conti.'TEMPS';
  28. TEMP0=WTAB.'TEMPS0';
  29. 'SINON';
  30. TEMP0=PRECED.'TEMPS' . NSOR;
  31. WTAB.'TEMPS0'=TEMP0;
  32. 'FINSI';
  33. 'SINON';
  34. NSOR= 0; PRECED.'TEMPS'='TABLE';
  35. 'SI' WTAB.'FREQUENTIEL' ;
  36. TEMP0 = WTAB.'TEMPS0' ;
  37. 'SINON' ;
  38. TEMP0 = 0.D0 ;
  39. 'FINSI' ;
  40. PRECED.'TEMPS' . 0 = TEMP0 ;
  41. WTAB.'TEMPS0'=TEMP0;
  42. WTAB.'NSOR'=NSOR;
  43. 'FINSI';
  44. conti.'TEMPS'=WTAB.'TEMPS0';
  45.  
  46. ************************************************************************
  47. *-------- pour la mecanique
  48. ************************************************************************
  49. 'SI' WTAB.'FOR_MECA' ;
  50. MO_TOT=WTAB.'MO_TOT';
  51. *---------- initialisation du deplacement et table sortie
  52. 'SI' ('NON' ('EXIS' PRECED 'DEPLACEMENTS' ));
  53. DDDD = 'ZERO' MO_TOT 'DEPLACEM';
  54. DEP_COUR = 'CHANGER' 'CHPO' MO_TOT DDDD;
  55. 'DETRUIRE' DDDD;
  56. PRECED.'DEPLACEMENTS' = 'TABLE';
  57. PRECED.'DEPLACEMENTS'. 0 = DEP_COUR;
  58. 'FINSI';
  59. * WTAB.'FOR'= 'FORM' PRECED.'DEPLACEMENTS'. NSOR ;
  60. 'FORM' WTAB.'FOR0';
  61. 'SI' inouv;
  62. conti.'DEPLACEMENTS'= PRECED. 'DEPLACEMENTS' . NSOR;
  63. * conti.'GEODEB'=WTAB.'FOR';conti.'GEOFIN'=conti.'GEODEB';
  64. 'FINS';
  65. *--------- initialisation des contraintes et table de sortie
  66. 'SI' ('NON' ('EXIS' PRECED 'CONTRAINTES'));
  67. SIG_COUR = 'ZERO' MO_TOT 'CONTRAIN';
  68. PRECED.'CONTRAINTES' = 'TABLE';
  69. PRECED.'CONTRAINTES'. 0 = SIG_COUR;
  70. 'FINSI';
  71. 'SI' inouv; conti.'CONTRAINTES' = PRECED.'CONTRAINTES'.NSOR;'FINS';
  72. *--------- initialisation des vitesses et table de sortie
  73. 'SI' (WTAB.'DYNAMIQUE' 'OU' ('EXISTE' WTAB 'MOD_LIA'));
  74. 'SI' ('EXISTE' PRECED 'VITESSES') ;
  75. TABINT=INDEX (PRECED.'VITESSES');
  76. IND0=TABINT.('DIME' TABINT);
  77. VIT_COUR=PRECED.'VITESSES' . IND0;
  78. 'SINON';
  79. DDDD = 'ZERO' MO_TOT 'DEPLACEMENTS';
  80. VIT_COUR = 'CHANGER' 'CHPO' MO_TOT DDDD;
  81. 'DETRUIRE' DDDD;
  82. PRECED.'VITESSES'=TABLE;
  83. PRECED.'VITESSES'. 0 = VIT_COUR;
  84. 'FINSI';
  85. 'SI' inouv; conti.'VITESSES'=VIT_COUR;'FINS';
  86. 'FINSI';
  87. 'SI' WTAB.'DYNAMIQUE';
  88. 'SI' ('EXISTE' PRECED 'ACCELERATIONS') ;
  89. TABINT=INDEX (PRECED.'ACCELERATIONS') ;
  90. IND0=TABINT.('DIME' TABINT);
  91. ACC_COUR=PRECED.'ACCELERATIONS' . IND0;
  92. 'SINON';
  93. DDDD = 'ZERO' MO_TOT 'DEPLACEMENTS';
  94. ACC_COUR = 'CHANGER' 'CHPO' MO_TOT DDDD;
  95. 'DETRUIRE' DDDD;
  96. PRECED.'ACCELERATIONS'=TABLE;
  97. PRECED.'ACCELERATIONS'. 0 = ACC_COUR;
  98. 'FINSI';
  99. 'SI' inouv; conti.'ACCELERATIONS'=ACC_COUR;'FINS';
  100. 'FINSI';
  101. *---------- REACTIONS et table de sortie
  102. 'SI' ('NON' ('EXIS' PRECED 'REACTIONS'));
  103. 'SI' ('EXIS' PRECED 'BLOCAGES_MECANIQUES');
  104. REA_COUR='REAC' PRECED.'BLOCAGES_MECANIQUES' conti.'DEPLACEMENTS';
  105. 'SINON' ;
  106. REA_COUR = 'CHAN' 'CHPO' MO_TOT ('ZERO' MO_TOT 'FORCES') ;
  107. 'FINSI' ;
  108. PRECED.'REACTIONS' = TABLE;
  109. PRECED.'REACTIONS' . 0 = REA_COUR;
  110. 'FINSI';
  111. 'SI' inouv;
  112. conti.'REACTIONS'=PRECED.'REACTIONS'.NSOR;
  113. 'FINS';
  114. *------------ variables_internes et table de sortie
  115. 'SI' WTAB.'IPLAVI';
  116. 'SI' ('EXIS' PRECED 'VARIABLES_INTERNES' );
  117. TABINT=INDEX (PRECED.'VARIABLES_INTERNES');
  118. IND0=TABINT.('DIME' TABINT) ;
  119. VAR_COUR=PRECED.'VARIABLES_INTERNES' . IND0;
  120. 'SINON';
  121. VAR_COUR = 'ZERO' MO_TOT 'VARINTER';
  122. PRECED.'VARIABLES_INTERNES' = 'TABLE';
  123. PRECED.'VARIABLES_INTERNES'. 0 = VAR_COUR;
  124. 'FINSI';
  125. 'SI' inouv;
  126. conti.'VARIABLES_INTERNES'=VAR_COUR;'FINS';
  127. 'FINSI';
  128. *--------- initialisation des tables pour un tracking
  129. 'SI' ('EXIS' PRECED.'MODELE' 'MATE' 'EFEM');
  130. 'SI' ('EXIS' PRECED 'TRACKING');
  131. 'SI' (PRECED.'TRACKING');
  132. 'SI' ('NON' ('EXIS' PRECED 'PROOTS'));
  133. PRECED.'PROOTS' = 'TABLE';
  134. PRECED.'PROOTS'. 0 = 0.;
  135. 'FINSI';
  136. * 'SI' inouv; conti.'PROOTS' = PRECED.'PROOTS'.NSOR;'FINS';
  137. 'SI' ('NON' ('EXIS' PRECED 'EROOTS'));
  138. PRECED.'EROOTS' = 'TABLE';
  139. PRECED.'EROOTS'. 0 = 0.;
  140. 'FINSI';
  141. * 'SI' inouv; conti.'PROOTS' = PRECED.'PROOTS'.NSOR;'FINS';
  142. 'SI' ('NON' ('EXIS' PRECED 'NROOTS'));
  143. PRECED.'NROOTS' = 0;
  144. 'FINSI';
  145. * 'SI' inouv; conti.'EROOTS' = PRECED.'EROOTS'.NSOR;'FINS';
  146. 'SI' ('NON' ('EXIS' PRECED 'TABISO'));
  147. PRECED.'TABISO' = 'TABLE';
  148. PRECED.'TABISO'. 0 = 0.;
  149. 'FINSI';
  150. * 'SI' inouv; conti.'TABISO' = PRECED.'TABISO'.NSOR;'FINS';
  151. 'SI' ('NON' ('EXIS' PRECED 'RESTH'));
  152. PRECED.'RESTH' = 'TABLE';
  153. PRECED.'RESTH'. 0 = 0.;
  154. 'FINSI';
  155. * 'SI' inouv; conti.'RESTH' = PRECED.'RESTH'.NSOR;'FINS';
  156. 'SI' ('NON' ('EXIS' PRECED 'ISOTEST'));
  157. PRECED.'ISOTEST' = 'TABLE';
  158. PRECED.'ISOTEST'. 0 = 0.;
  159. 'FINSI';
  160. * 'SI' inouv; conti.'ISOTEST' = PRECED.'ISOTEST'.NSOR;'FINS';
  161. 'SI' ('NON' ('EXIS' PRECED 'ISOTOT'));
  162. PRECED.'ISOTOT' = 'TABLE';
  163. PRECED.'ISOTOT'. 0 = 0.;
  164. 'FINSI';
  165. * 'SI' inouv; conti.'ISOTOT' = PRECED.'ISOTOT'.NSOR;'FINS';
  166. 'SI' ('NON' ('EXIS' PRECED 'MESH_ISO'));
  167. PRECED.'MESH_ISO' = 'TABLE';
  168. PRECED.'MESH_ISO'. 0 = 0.;
  169. 'FINSI';
  170. * 'SI' inouv; conti.'MESH_ISO' = PRECED.'MESH_ISO'.NSOR;'FINS';
  171. 'SI' ('NON' ('EXIS' PRECED 'MESH'));
  172. PRECED.'MESH' = 'TABLE';
  173. PRECED.'MESH'. 0 = 0.;
  174. 'FINSI';
  175. * 'SI' inouv; conti.'MESH' = PRECED.'MESH'.NSOR;'FINS';
  176. 'FINSI';
  177. 'FINSI';
  178. 'FINSI';
  179. *--------- initialisation de table pour non-local HELM
  180. 'SI' WTAB.'NLOC' ;
  181. 'SI' ('EGA' WTAB.'NON_LOCAL' 'HELM');
  182. WTAB.'HELMHOLTZ' = 'TABLE' ;
  183. MOLVIA = 'EXTR' WTAB.'NLOC_MODL' 'NLOC' ;
  184. NHELM = 'DIME' MOLVIA ;
  185. WTAB.'HELMHOLTZ' . 'N_VARI_NL'= NHELM ;
  186. GEOHELM = 'EXTR' WTAB.'NLOC_MODL' 'MAIL' ;
  187. MAHELM = 'REDU' WTAB.MA_TOTAL WTAB.'NLOC_MODL' ;
  188. DDVA = 'EXTR' MAHELM 'COVA' ;
  189. *
  190. 'REPE' BH NHELM ;
  191. WTAB.'HELMHOLTZ'. &BH = 'TABLE' ;
  192. LEMO = 'EXTR' MOLVIA &BH ;
  193. WTAB.'HELMHOLTZ'. &BH. 'NOM' = LEMO ;
  194. 'SI' ('EXIS' DDVA LEMO) ;
  195. WTAB.'HELMHOLTZ'. &BH. 'CTE' = FAUX ;
  196. 'SINON' ;
  197. WTAB.'HELMHOLTZ'. &BH. 'CTE' = VRAI ;
  198. 'FINSI' ;
  199. MOPRE = 'EXTR' LEMO 1 3 ;
  200. 'SI' ('NEG' MOPRE 'ERF') ;
  201. LEMOD = 'MODE' GEOHELM 'THERMIQUE' 'ISOTROPE' ;
  202. 'SINON' ;
  203. 'SI' ( 'NEG' ('VALE' 'DIME') 3 );
  204. 'ERRE' 'formulation non-locale indisponible' ;
  205. 'FINSI' ;
  206. LEMOD = 'MODE' GEOHELM 'THERMIQUE' 'ANISOTROPE' ;
  207. 'FINSI' ;
  208. WTAB.'HELMHOLTZ'. &BH . 'H_MODELE' = LEMOD ;
  209. 'SI' ('EGA' &BH 1 ) ;
  210. WTAB.'HELMHOLTZ'. 'H_CAPA' =
  211. 'CAPA' LEMOD ('MATE' LEMOD 'RHO' 1. 'C' 1.) ;
  212. 'FINSI' ;
  213. 'FIN' BH ;
  214. 'FINSI';
  215. 'FINSI';
  216. *---------- deformations inelastiques et table de sortie
  217. 'SI' ('EXISTE' PRECED 'DEFORMATIONS_INELASTIQUES');
  218. TABINT=INDEX (PRECED.'DEFORMATIONS_INELASTIQUES');
  219. IND0=TABINT.('DIME' TABINT);
  220. DEI_COUR=PRECED.'DEFORMATIONS_INELASTIQUES' . IND0;
  221. 'SINON';
  222. DEI_COUR = 'ZERO' MO_TOT 'DEFINELA';
  223. 'SI' ('EXIS' TABSAUV 'DEFIN');
  224. 'SI' TABSAUV.'DEFIN';
  225. PRECED.'DEFORMATIONS_INELASTIQUES'='TABLE';
  226. PRECED.'DEFORMATIONS_INELASTIQUES' . 0=DEI_COUR;
  227. 'FINSI';
  228. 'FINSI';
  229. 'FINSI';
  230. 'SI' inouv;
  231. conti.'DEFORMATIONS_INELASTIQUES'=DEI_COUR;
  232. 'FINS';
  233. *----------- deformations totales et table de sortie
  234. 'SI' ('EXISTE' PRECED 'DEFORMATIONS');
  235. TABINT=INDEX (PRECED.'DEFORMATIONS');
  236. IND0=TABINT.('DIME' TABINT);
  237. DEF_COUR=PRECED.'DEFORMATIONS' . IND0;
  238. 'SINON';
  239. DEF_COUR = 'ZERO' MO_TOT 'DEFORMATIONS';
  240. 'SI' ('EXIS' TABSAUV 'DEFTO');
  241. 'SI' TABSAUV.'DEFTO';
  242. PRECED.'DEFORMATIONS'='TABLE';
  243. PRECED.'DEFORMATIONS' . 0=DEF_COUR;
  244. 'FINSI';
  245. 'FINSI';
  246. 'FINSI';
  247. 'SI' inouv; conti.'DEFORMATIONS'=DEF_COUR;'FINS';
  248. * SP : initialisation DFGRAD reportee dans UNPAS :
  249. WTAB.'DFGRAD' = 'MOT' 'INCONNU' ;
  250. * en cas de chargement thermique initialisation de wtab.tet1 et wtab.tet2
  251. 'SI' ( 'EXIS' WTAB.'CHARGEMENT' 'T');
  252. WTAB.'TET1' ='TIRE' WTAB.'CHARGEMENT' 'T' TEMP0;
  253. WTAB.'TET2' = WTAB.'TET1';
  254. 'FINSI';
  255. * en cas de chargement de deformations initiales initialisation
  256. * de defor1 etdefor2
  257. 'SI' WTAB.'CHAR_DEFI';
  258. WTAB.'DEFOR1'='TIRE' WTAB.'CHARGEMENT' 'DEFI' WTAB.'TEMPS0';
  259. WTAB.'DEFOR2'= WTAB.'DEFOR1';
  260. 'FINSI';
  261. 'FINSI';
  262.  
  263. ************************************************************************
  264. *-----------pour la formulation THERMIQUE
  265. ************************************************************************
  266. 'SI' WTAB.'FOR_THER';
  267. *---------- initialisation de la temperatuure et table de sortie
  268. 'SI' ('EXISTE' PRECED 'TEMPERATURES');
  269. TABINT = INDEX (PRECED.'TEMPERATURES');
  270. IND0 = TABINT.('DIME' TABINT );
  271. TH_COUR = PRECED.'TEMPERATURES' . IND0;
  272. 'SI' (IND0 '>EG' 2) ;
  273. WTAB.'TET0'=PRECED.'TEMPERATURES' . (IND0 - 2);
  274. 'FINSI';
  275. 'SINON';
  276. DDDD = 'ZERO' WTAB.'MOD_T' 'TEMPERAT' ;
  277. TH_COUR = 'CHANGER' 'CHPO' WTAB.'MOD_T' DDDD;
  278. PRECED.'TEMPERATURES' = 'TABL';
  279. PRECED.'TEMPERATURES'. 0 = TH_COUR;
  280. 'FINSI';
  281. 'SI' INOUV ;
  282. CONTI.'TEMPERATURES' ='CHAN' 'ATTRIBUT' TH_COUR 'NATURE' 'DIFFUS';
  283. 'FINS';
  284.  
  285. WTAB.'TET1' = TH_COUR;
  286. WTAB.'TET2' = TH_COUR;
  287. 'SI' ('NON' ('EXIS' PRECED 'REACTIONS_THERMIQUES')) ;
  288. 'SI' ('EXIS' PRECED 'BLOCAGES_THERMIQUES') ;
  289. QTH_COUR ='REAC' PRECED.'BLOCAGES_THERMIQUES' TH_COUR ;
  290. 'SINON' ;
  291. QTH_COUR ='CHAN' 'CHPO' WTAB.'MOD_T' ('ZERO' WTAB.'MOD_T' 'FORCES') ;
  292. 'FINSI' ;
  293. PRECED.'REACTIONS_THERMIQUES' ='TABL' ;
  294. PRECED.'REACTIONS_THERMIQUES' . 0 = QTH_COUR ;
  295. 'FINS' ;
  296. 'SI' inouv;
  297. conti.'REACTIONS_THERMIQUES' = PRECED.'REACTIONS_THERMIQUES'.NSOR ;
  298. 'FINS';
  299. 'FINSI';
  300. *'FINSI';
  301.  
  302. ************************************************************************
  303. *-----------pour la formulation METALLURGIE (T.L. en juin 2018)
  304. ************************************************************************
  305. 'SI' WTAB.'FOR_METALLU' ;
  306. * PROPORTIONS de PHASES metallurgique
  307. 'SI' ('EXIS' PRECED 'PROPORTIONS_PHASES') ;
  308. TAB_PROP ='INDE' (PRECED.'PROPORTIONS_PHASES'); 'COMM' 'TAB_PROP est une table dan le quel on range les NOMS des indexs de la table PRECED.PROPORTIONS_PHASES';
  309. IND0 = TAB_PROP. ('DIME' TAB_PROP) ; 'COMM' 'IND0 = le nom du dernier index de la table PRECED.PROPORTIONS_PHASES';
  310. CHMET0 = PRECED.'PROPORTIONS_PHASES'.IND0 ; 'COMM' 'CHMET0= la valeur du dernier indice de PRECED.PROPORTIONS_PHASES';
  311. 'SINO' ;
  312. * Valeurs par defaut : ZERO pour toutes les phases sauf la premiere : 1.D0
  313. CHMET0 ='ZERO' WTAB.'MOD_MET' 'VARINTER';
  314. LISCO ='EXTR' WTAB.'MOD_MET' 'VARI';
  315. CMP1 ='EXCO' CHMET0 ('EXTR' LISCO 1) ('EXTR' LISCO 1);
  316. CHMET0 = CHMET0 + (CMP1 + 1.D0);
  317. PRECED.'PROPORTIONS_PHASES' ='TABL' ;
  318. PRECED.'PROPORTIONS_PHASES'. 0 = CHMET0;
  319. 'FINS' ;
  320. 'SI' INOUV ;
  321. conti . 'PROPORTIONS_PHASES' = CHMET0 ;
  322. 'FINS' ;
  323. 'FINSI' ;
  324.  
  325.  
  326. ************************************************************************
  327. *-----------pour la formulation DIFFUSION
  328. ************************************************************************
  329. 'SI' WTAB.'FOR_DIFF' ;
  330. 'SI' ('EXIS' PRECED 'CONCENTRATIONS') ;
  331. TABIND0 = 'INDE' (PRECED.'CONCENTRATIONS') ;
  332. IND0 = TABIND0 . ('DIME' TABIND0) ;
  333. CHCO0 = PRECED. 'CONCENTRATIONS' . IND0 ;
  334. 'SINO' ;
  335. CHCO0 = 'ZERO' WTAB. 'MOD_DIF' 'DEPLACEMENTS' ;
  336. CHCO0 = 'CHAN' 'CHPO' WTAB. 'MOD_DIF' CHCO0 ;
  337. PRECED.'CONCENTRATIONS' = 'TABL' ;
  338. PRECED.'CONCENTRATIONS'. 0 = CHCO0 ;
  339. 'FINS' ;
  340. 'SI' INOUV ;
  341. CONTI . 'CONCENTRATIONS' ='CHAN' 'ATTRIBUT' CHCO0 'NATURE' 'DIFFUS';
  342. 'FINS' ;
  343. WTAB . 'CO1' = CHCO0 ;
  344. WTAB . 'CO2' = CHCO0 ;
  345. 'SI' ('NON' ('EXIS' PRECED 'REACTIONS_DIFFUSIONS')) ;
  346. 'SI' ('EXIS' PRECED 'BLOCAGES_DIFFUSIONS') ;
  347. QDI_COUR = 'REAC' PRECED.'BLOCAGES_DIFFUSIONS' CHCO0 ;
  348. 'SINON' ;
  349. QDI_COUR = 'CHAN' 'CHPO' WTAB.'MOD_DIF'
  350. ('ZERO' WTAB.'MOD_DIF' 'FORCES') ;
  351. 'FINSI' ;
  352. PRECED.'REACTIONS_DIFFUSIONS' = 'TABL' ;
  353. PRECED.'REACTIONS_DIFFUSIONS' . 0 = QDI_COUR ;
  354. 'FINS' ;
  355. 'SI' INOUV ;
  356. CONTI . 'REACTIONS_DIFFUSIONS' =
  357. PRECED . 'REACTIONS_DIFFUSIONS'. NSOR ;
  358. 'FINS' ;
  359. 'FINS' ;
  360.  
  361. ************************************************************************
  362. *-----------pour la formulation CHANGEMENT_PHASE (CB215821 2019)
  363. *-----------Doit etre place en dernier car peut necessiter les autres
  364. *-----------champs
  365. ************************************************************************
  366. 'SI' WTAB.'PHASE';
  367. MO_COVA ='EXTR' WTAB.'MAT_PHA' 'COVA';
  368. 'SI' (('DIME' MO_COVA) > 0);
  369. CHAI1 ='CHAI' ' Le materiau du modele CHANGEMENT_PHASE ne peut pas varier';
  370. 'ERRE' CHAI1 ;
  371. 'FINS';
  372.  
  373. 'SI' ( 'EXISTE' PRECED 'PROPORTIONS_PHASE') ;
  374. TABINT = INDEX (PRECED.'PROPORTIONS_PHASE');
  375. IND0 = TABINT.('DIME' TABINT) ;
  376. CHPHA0 ='REDU' WTAB.'MOD_PHA' PRECED.'PROPORTIONS_PHASE'.IND0 ;
  377. 'SINON';
  378. * On met un etat qui a du sens physique pour la proportion de phases
  379. TABPHA ='EXTR' WTAB.'MOD_PHA' 'ZONE';
  380. CHPHA0 ='VIDE' 'MCHAML';
  381. 'REPE' SURi (('DIME' TABPHA) / 2);
  382. * Boucle sur les modeles CHANGEMENT_PHASE
  383. MODEi = TABPHA.((&SURi-1)*2 + 1) ;
  384. MATEi =('REDU' MODEi WTAB.'MAT_PHA' ) 'EXCO' 'PRIM';
  385. LMOPRIM='EXTR' MODEi 'DEPL';
  386. MOPRIM ='EXTR' LMOPRIM 1;
  387. 'SI' ('EXIS' WTAB.'CHARGEMENT' MOPRIM);
  388. * On regarde dans le CHARGEMENT si la PRIMALE existe
  389. CHPRIM ='TIRE' WTAB.'CHARGEMENT' MOPRIM TEMP0;
  390. 'SI' ('EXIS' ('EXTR' CHPRIM 'COMP') MOPRIM);
  391. CHPRIM='CHAN' 'CHAM' CHPRIM MODEi 'NOEUD';
  392. CHPRIM= CHPRIM 'NOMC' 'PRIM';
  393. CHPHAi=('MASQ' (MATEi-CHPRIM) 'EGINFE' 0.D0) 'NOMC' 'PPHA';
  394. CHPHA0= CHPHAi 'ET' CHPHA0;
  395. 'ITER' SURi ;
  396. 'FINS';
  397. 'FINS';
  398.  
  399. * On regarde dans les indices connus de la TABLE PRECED
  400. 'SI' ('EXIS' PRECED 'TEMPERATURES');
  401. CHPRIM = TH_COUR;
  402. 'SI' ('EXIS' ('EXTR' CHPRIM 'COMP') MOPRIM);
  403. CHPRIM='CHAN' 'CHAM' CHPRIM MODEi 'NOEUD';
  404. CHPRIM= CHPRIM 'NOMC' 'PRIM';
  405. CHPHAi=('MASQ' (MATEi-CHPRIM) 'EGINFE' 0.D0) 'NOMC' 'PPHA';
  406. CHPHA0= CHPHAi 'ET' CHPHA0;
  407. 'ITER' SURi ;
  408. 'FINS';
  409. 'FINS';
  410.  
  411. 'SI' ('EXIS' PRECED 'CONCENTRATIONS');
  412. CHPRIM = CHCO0;
  413. 'SI' ('EXIS' ('EXTR' CHPRIM 'COMP') MOPRIM);
  414. CHPRIM='CHAN' 'CHAM' CHPRIM MODEi 'NOEUD';
  415. CHPRIM= CHPRIM 'NOMC' 'PRIM';
  416. CHPHAi=('MASQ' (MATEi-CHPRIM) 'EGINFE' 0.D0) 'NOMC' 'PPHA';
  417. CHPHA0= CHPHAi 'ET' CHPHA0;
  418. 'ITER' SURi ;
  419. 'FINS';
  420. 'FINS';
  421.  
  422. * Si on arrive ici c'est qu'on n'a pas trouve le champ primal : on met zero
  423. CHPHAi='ZERO' MODEi 'VARINTER';
  424. CHPHA0= CHPHAi 'ET' CHPHA0;
  425. 'FIN' SURi;
  426.  
  427. PRECED.'PROPORTIONS_PHASE' ='TABL' ;
  428. PRECED.'PROPORTIONS_PHASE' . 0 = CHPHA0;
  429. 'FINSI';
  430.  
  431. 'SI' INOUV;
  432. conti.'PROPORTIONS_PHASE'=CHPHA0;
  433. 'FINS';
  434. WTAB.'PROPPHAS' = CHPHA0 ;
  435. WTAB.'BLO_PHASE'='PMAT' WTAB.'MOD_PHA' ;
  436. 'FINSI';
  437.  
  438. PRECED.'ESTIMATION'='COPIER' conti;
  439. 'FINP';
  440.  
  441.  

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