Télécharger issleq.procedur

Retour à la liste

Numérotation des lignes :

  1. * ISSLEQ PROCEDUR AF221230 17/03/28 21:15:00 9380
  2. DEBPROC ISSLEQ TDON1*'TABLE';
  3. ************************************************************************
  4. *
  5. * I S S L E Q
  6. * ------------
  7. *
  8. * FONCTION:
  9. * ---------
  10. *
  11. * Procedure pour la résolution des problèmes ISS et de propagation des
  12. * ondes 1D avec la methode lineaire equivalente.
  13. *
  14. * PHRASE D'APPEL (EN GIBIANE):
  15. * ----------------------------
  16. *
  17. * ISSLEQ TDON1
  18. *
  19. * OPERANDES:
  20. * ----------
  21. *
  22. * TDON1 :Table des donnees (type TABLE)
  23. * .'SOL' :sous-table pour definir les
  24. * donnees du profil
  25. * du sol (type TABLE)
  26. * .'ITERATION' :sous table pour la partie du
  27. * sol à iterer (type TABLE)
  28. * .I : couche I (type TABLE)
  29. * .'MAILLAGE' :maillage de la couche I
  30. * (type MAILLAGE)
  31. * .'FRONTIERE' :frontiere de la couche I
  32. * (type MAILLAGE)
  33. * .'MASSE_VOLUMIQUE' :masse volumique de la couche I
  34. * (type FLONNTANT)
  35. * .'POISSON' :coefficient de poisson de la
  36. * couche I (type FLOTTANT)
  37. * .'G_GAMMA' :evolution de la courbe
  38. * caracteristique G/G0-gamma
  39. * (type EVOLUTION)
  40. * .'H_GAMMA' :evolution de la courbe
  41. * caracteristique Eps-gamma
  42. * (type EVOLUTION)
  43. * .'BASE' :frontiere inferieure de la
  44. * derniere couche qui compose
  45. * la stratigraphie (type MAILLAGE)
  46. * a introduire une seule fois pour
  47. * la dernier couche
  48. * .'CONSTANTE' :sous table pour la partie du
  49. * sol à iterer (type TABLE)
  50. * .I : couche I (type TABLE)
  51. * .'MAILLAGE' :maillage de la couche I
  52. * (type MAILLAGE)
  53. * .'FRONTIERE' :frontiere de la couche I
  54. * (type MAILLAGE)
  55. * .'MASSE_VOLUMIQUE' :masse volumique de la couche I
  56. * (type FLONNTANT)
  57. * .'POISSON' :coefficient de poisson de la
  58. * couche I (type FLOTTANT)
  59. * .'AMORTISSEMENT' :amortissement
  60. * couche I (type FLOTTANT)
  61. * .'STRUCTURE' :sous-table pour definir les
  62. * donnees de la structure (type TABLE)
  63. * .'MAILLAGE' :maillage de la structure
  64. * (type MAILLAGE)
  65. * .'RIGIDITE' :rigidité de la structure
  66. * (type RIGIDITE)
  67. * .'MASSE' :masse de la structure
  68. * (type RIGIDITE)
  69. * .'AMORTISSEMENT' :amortissement de la structure
  70. * (type RIGIDITE)
  71. * .'BLOCAGES_MECANIQUES' :tout type des blocages mecaniques
  72. * supplementaires (type RIGIDITE)
  73. * .'PARAMETRES' :sous TABLE pour definir les parametres
  74. * du calcul (type TABLE)
  75. * .'GAMMAO_X' :evolution de l’acceleration selon
  76. * la direction x (type EVOLUTION)
  77. * .'GAMMAO_Y' :evolution de l’acceleration selon
  78. * la direction y (type EVOLUTION)
  79. * .'GAMMAO_Z' :evolution de l’acceleration selon
  80. * la direction z (type EVOLUTION)
  81. * [seulement une des trois evolution
  82. * est necessaire]
  83. * .'POINT' :point de reference (type POINT)
  84. * .'CRITERE' :critere de convergence pour le
  85. * calcul lineaire equivalent (type FLOTTANT)
  86. * (default 0.05)
  87. * .'CHI' :coefficient pour la deformation moyenne
  88. * gamma_m (type FLOTTANT)
  89. * .'F1' :premiere frequence pour modele
  90. * d'amortissement de Rayleigh
  91. * (type FLOTTANT)
  92. * .'F2' :premiere frequence pour modele
  93. * d'amortissement de Rayleigh
  94. * (type FLOTTANT)
  95. * .'FC' :premiere de coupure du signal
  96. * (type FLOTTANT)
  97. * .'TYPE' :type de frontiere absorbante (LYSMER
  98. * ou WHITE) (type MOT) (defaut LYSMER)
  99. * .'PAR_DEC' :sous-table à donner pour la procedure
  100. * DECONV3D - voir la notice correspondante
  101. * (P_GAM sous-table) (facultatif)
  102. * .'TYPE_CALCUL' : type de calcul ‘ISS_COMPLET’ (type MOT)
  103. * tout le sol est à considere comme
  104. * domaine à iterer. La sous-table
  105. * ITERATION dans la table SOL est
  106. * obligatoire
  107. * type de calcul ‘ISS_COMP_SIMP’ (type MOT)
  108. * une partie du sol est considere
  109. * comme domaine à iterer et une
  110. * partie constante. La sous table
  111. * ITERATION dans la table SOL et la
  112. * sous table CONSTANTE dans la table
  113. * SOL sont obligatoires
  114. * RESULTATS:
  115. * ----------
  116. * TDON1 :Table des donnees (type TABLE)
  117. * .'STEP "J"' :sous-table des resultats
  118. * pour chaque iteration (type TABLE) J=0..N
  119. * .'ITERATION' :sous table pour la partie du
  120. * sol à iterer (type TABLE)
  121. * .'T_SOL' :sous-table avec les maillages des
  122. * couche
  123. * .I : couche I (type MAILLAGE)
  124. * .'T_ESO' :sous-table avec les mchaml pour
  125. * les module E des couches
  126. * .I : couche I (type MCHAML)
  127. * .'T_MOD' :sous-table avec les modeles pour
  128. * les couches
  129. * .I : couche I (type MMODEL)
  130. * .'T_GGO' :sous-table avec les mchaml pour
  131. * les rapports G/G0 des couches
  132. * .I : couche I (type MCHAML)
  133. * .'T_MAT' :sous-table avec les materiaux pour
  134. * les couches
  135. * .I : couche I (type MCHAML)
  136. * .'T_RIG' :sous-table avec les rigites pour
  137. * les couches
  138. * .I : couche I (type RIGIDITE)
  139. * .'T_MAS' :sous-table avec les masses pour
  140. * les couches
  141. * .I : couche I (type RIGIDITE)
  142. * .'T_KSI' :sous-table avec les amortissements
  143. * pour les couches
  144. * .I : couche I (type RIGIDITE)
  145. * .'T_AMO' :sous-table avec les matrices
  146. * d amortissement amortissements
  147. * pour les couches
  148. * .I : couche I (type MCHAML)
  149. * .'T_DIS' :sous-table avec les champs des
  150. * deformations maximales pour chaque
  151. * couche
  152. * .I : couche I (type MAILLAGE)
  153. * .'O_SOL' :Assemblage des maillages pour
  154. * la partie à iterer (type MAILLAGE)
  155. * .'O_MOD' :Assemblage des MMODEL pour
  156. * la partie à iterer (type MAILLAGE)
  157. * .'O_GGO' :Assemblage des MCHAML G/G0 pour
  158. * la partie à iterer (type MAILLAGE)
  159. * .'O_MAT' :Assemblage des materiaux pour
  160. * la partie à iterer (type MAILLAGE)
  161. * .'O_RIG' :Assemblage des rigidités pour
  162. * la partie à iterer (type MAILLAGE)
  163. * .'O_MAS' :Assemblage des masses pour
  164. * la partie à iterer (type MAILLAGE)
  165. * .'O_KSI' :Assemblage des MCHAML Eps pour
  166. * la partie à iterer (type MAILLAGE)
  167. * .'O_AMO' :Assemblage des amortissements pour
  168. * la partie à iterer (type MAILLAGE)
  169. * .'O_DIS' :Assemblage des MCHAML Dmax pour
  170. * la partie à iterer (type MAILLAGE)
  171. * .'CONSTANTE' :sous table pour la partie du
  172. * sol constante (type TABLE)
  173. * .'T_SOL' :sous-table avec les maillages des
  174. * couche
  175. * .I : couche I (type MAILLAGE)
  176. * .'T_ESO' :sous-table avec les mchaml pour
  177. * les module E des couches
  178. * .I : couche I (type MCHAML)
  179. * .'T_MOD' :sous-table avec les modeles pour
  180. * les couches
  181. * .I : couche I (type MMODEL)
  182. * .'T_GGO' :sous-table avec les mchaml pour
  183. * les rapports G/G0 des couches
  184. * .I : couche I (type MCHAML)
  185. * .'T_MAT' :sous-table avec les materiaux pour
  186. * les couches
  187. * .I : couche I (type MCHAML)
  188. * .'T_RIG' :sous-table avec les rigites pour
  189. * les couches
  190. * .I : couche I (type RIGIDITE)
  191. * .'T_MAS' :sous-table avec les masses pour
  192. * les couches
  193. * .I : couche I (type RIGIDITE)
  194. * .'T_KSI' :sous-table avec les amortissements
  195. * pour les couches
  196. * .I : couche I (type RIGIDITE)
  197. * .'T_AMO' :sous-table avec les matrices
  198. * d amortissement amortissements
  199. * pour les couches
  200. * .I : couche I (type MCHAML)
  201. * .'T_DIS' :sous-table avec les champs des
  202. * deformations maximales pour chaque
  203. * couche
  204. * .I : couche I (type MAILLAGE)
  205. * .'O_SOL' :Assemblage des maillages pour
  206. * la partie à iterer (type MAILLAGE)
  207. * .'O_MOD' :Assemblage des MMODEL pour
  208. * la partie à iterer (type MAILLAGE)
  209. * .'O_GGO' :Assemblage des MCHAML G/G0 pour
  210. * la partie à iterer (type MAILLAGE)
  211. * .'O_MAT' :Assemblage des materiaux pour
  212. * la partie à iterer (type MAILLAGE)
  213. * .'O_RIG' :Assemblage des rigidités pour
  214. * la partie à iterer (type MAILLAGE)
  215. * .'O_MAS' :Assemblage des masses pour
  216. * la partie à iterer (type MAILLAGE)
  217. * .'O_KSI' :Assemblage des MCHAML Eps pour
  218. * la partie à iterer (type MAILLAGE)
  219. * .'O_AMO' :Assemblage des amortissements pour
  220. * la partie à iterer (type MAILLAGE)
  221. * .'O_DIS' :Assemblage des MCHAML Dmax pour
  222. * la partie à iterer (type MAILLAGE)
  223. * .'TOTALE' :sous table pour l'assembles des deux parties
  224. * CONSTANTE + ITERER (type TABLE)
  225. * .I : couche I (type MAILLAGE)
  226. * .'O_SOL' :Assemblage des maillages pour
  227. * la partie à iterer (type MAILLAGE)
  228. * .'O_MOD' :Assemblage des MMODEL pour
  229. * la partie à iterer (type MAILLAGE)
  230. * .'O_GGO' :Assemblage des MCHAML G/G0 pour
  231. * la partie à iterer (type MAILLAGE)
  232. * .'O_MAT' :Assemblage des materiaux pour
  233. * la partie à iterer (type MAILLAGE)
  234. * .'O_RIG' :Assemblage des rigidités pour
  235. * la partie à iterer (type MAILLAGE)
  236. * .'O_MAS' :Assemblage des masses pour
  237. * la partie à iterer (type MAILLAGE)
  238. * .'O_KSI' :Assemblage des MCHAML Eps pour
  239. * la partie à iterer (type MAILLAGE)
  240. * .'O_AMO' :Assemblage des amortissements pour
  241. * la partie à iterer (type MAILLAGE)
  242. * .'O_DIS' :Assemblage des MCHAML Dmax pour
  243. * la partie à iterer (type MAILLAGE)
  244. * .'STRUCTURE' :sous-table pour definir les
  245. * donnees de la structure (type TABLE)
  246. * .'MAILLAGE' :maillage de la structure
  247. * (type MAILLAGE)
  248. * .'RIGIDITE' :rigidité de la structure
  249. * (type RIGIDITE)
  250. * .'MASSE' :masse de la structure
  251. * (type RIGIDITE)
  252. * .'AMORTISSEMENT' :amortissement de la structure
  253. * (type RIGIDITE)
  254. * .'BLOCAGES_MECANIQUES' :tout type des blocages mecaniques
  255. * supplementaires (type RIGIDITE)
  256. * .'RES_DYN_X' :Table des resultats du calcul DYNAMIC
  257. *
  258. * COMMENTAIRES
  259. * --------------------------------------------
  260. * La procedure peut etre utilisée seulement pour des cas 3D
  261. *
  262. * AUTEUR, DATE DE CREATION ET DE MODIFICATION:
  263. * --------------------------------------------
  264. *
  265. * A. FRAU 25/11/2015 : Creation.
  266.  
  267. *
  268. ************************************************************************
  269. *
  270. *************************************************************
  271. MESS '';
  272. MESS '**************************************************************';
  273. MESS '';
  274. MESS '--------------------------------------------------------------';
  275. MESS '---------------------- Procedure ISSLEQ ----------------------';
  276. MESS '-- Procedure pour la realissation d un calcul ISS avec --';
  277. MESS '-- la methode lineaire equivalente --';
  278. MESS '--------------------------------------------------------------';
  279. MESS '';
  280. *************************************************************
  281. *
  282. 'SI' (('VALE' 'DIME') 'NEG' 3);
  283. 'MESS';
  284. 'MESS' ' La procedure ISSLEQ marche seulement pour les calculs 3D';
  285. QUIT ISSLEQ;
  286. 'FINSI';
  287. *
  288. *************************************************************
  289. *************** inizio procedura *******************
  290. *************************************************************
  291. *
  292. *
  293. *
  294. 'SI' ('EXIST' (TDON1) 'STEP0');
  295. *************************************************************
  296. **************** STEP SUP A 1 **********************
  297. *************************************************************
  298. *
  299. 'SI' ('EXIST' (TDON1) 'COLONNE');
  300. 'SI' ('EXIST' (TDON1) 'STRUCTURE');
  301. I_STEP = ('DIME' TDON1) - 5;
  302. 'SINON';
  303. I_STEP = ('DIME' TDON1) - 4;
  304. 'FINSI';
  305. 'SINON';
  306. 'SI' ('EXIST' (TDON1) 'STRUCTURE');
  307. I_STEP = ('DIME' TDON1) - 4;
  308. 'SINON';
  309. I_STEP = ('DIME' TDON1) - 3;
  310. 'FINSI';
  311. 'FINSI';
  312. *
  313. MOT11 = 'CHAINE' 'STEP ' I_STEP;
  314. MOT22 = 'CHAINE' 'STEP' I_STEP;
  315. MOT33 = 'CHAINE' 'STEP' (I_STEP - 1);
  316. *
  317. MESS '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';
  318. MESS '-- 'MOT11' --';
  319. MESS '--------------------------------------------------------------';
  320. *
  321. TDON1.MOT22 = TABLE;
  322. *
  323. **************************************************************
  324. * extraction tables
  325. **************************************************************
  326. *
  327. MESS '';
  328. MESS '--------------------------------------------------------------';
  329. MESS '-- Lecture des donnees d entree --';
  330. MESS '--------------------------------------------------------------';
  331. *
  332. TABPAR = TDON1.'PARAMETRES';
  333. TABFRO = TDON1.'FRONTIERE';
  334. 'SI' ('EXIST' (TDON1) 'STRUCTURE');
  335. TABSTR = TDON1.MOT33.'STRUCTURE';
  336. 'FINSI';
  337. *
  338. 'SI' (EXIST (TDON1.'SOL') 'CONSTANTE');
  339. TABSOL_C = TDON1.'SOL'.'CONSTANTE';
  340. 'FINSI';
  341. *
  342. 'SI' (EXIST (TDON1.'SOL') 'ITERATION');
  343. TABSOL_I = TDON1.'SOL'.'ITERATION';
  344. 'FINSI';
  345. *
  346. 'SI' (EXIST (TDON1) 'COLONNE');
  347. TABCOL = TDON1.'COLONNE';
  348. 'FINSI';
  349. *
  350. 'SI' (EXIST (TDON1.MOT33.'SOL') 'CONSTANTE');
  351. TABRES_C = TDON1.MOT33.'SOL'.'CONSTANTE';
  352. *
  353. SOL_C = TABRES_C.T_SOL;
  354. ESO_C = TABRES_C.T_ESO;
  355. MOD_C = TABRES_C.T_MOD;
  356. MAT_C = TABRES_C.T_MAT;
  357. KSI_C = TABRES_C.T_KSI;
  358. RIG_C = TABRES_C.T_RIG;
  359. MAS_C = TABRES_C.T_MAS;
  360. AMO_C = TABRES_C.T_AMO;
  361. GGO_C = TABRES_C.T_GGO;
  362. *
  363. MAI_SOLC = TABRES_C.O_SOL;
  364. MOD_SOLC = TABRES_C.O_MOD;
  365. MAT_SOLC = TABRES_C.O_MAT;
  366. GGO_SOLC = TABRES_C.O_GGO;
  367. KSI_SOLC = TABRES_C.O_KSI;
  368. RIG_SOLC = TABRES_C.O_RIG;
  369. MAS_SOLC = TABRES_C.O_MAS;
  370. AMO_SOLC = TABRES_C.O_AMO;
  371. *
  372. NZONE_C = DIME SOL_C;
  373. *
  374. 'FINSI';
  375. *
  376. 'SI' (EXIST (TDON1.MOT33.'SOL') 'ITERATION');
  377. TABRES_I = TDON1.MOT33.'SOL'.'ITERATION';
  378. *
  379. SOL_I = TABRES_I.T_SOL;
  380. ESO_I = TABRES_I.T_ESO;
  381. MOD_I = TABRES_I.T_MOD;
  382. MAT_I = TABRES_I.T_MAT;
  383. KSI_I = TABRES_I.T_KSI;
  384. RIG_I = TABRES_I.T_RIG;
  385. MAS_I = TABRES_I.T_MAS;
  386. AMO_I = TABRES_I.T_AMO;
  387. GGO_I = TABRES_I.T_GGO;
  388. *
  389. MAI_SOLI = TABRES_I.O_SOL;
  390. MOD_SOLI = TABRES_I.O_MOD;
  391. MAT_SOLI = TABRES_I.O_MAT;
  392. GGO_SOLI = TABRES_I.O_GGO;
  393. KSI_SOLI = TABRES_I.O_KSI;
  394. RIG_SOLI = TABRES_I.O_RIG;
  395. MAS_SOLI = TABRES_I.O_MAS;
  396. AMO_SOLI = TABRES_I.O_AMO;
  397. *
  398. NZONE_I = DIME SOL_I;
  399. *
  400. 'FINSI';
  401. *
  402. 'SI' (EXIST (TDON1.MOT33) 'COLONNE');
  403. TABRESC = TDON1.MOT33.'COLONNE';
  404. *
  405. SOLCOL = TABRESC.T_SOL;
  406. ESOCOL = TABRESC.T_ESO;
  407. MODCOL = TABRESC.T_MOD;
  408. MATCOL = TABRESC.T_MAT;
  409. KSICOL = TABRESC.T_KSI;
  410. RIGCOL = TABRESC.T_RIG;
  411. MASCOL = TABRESC.T_MAS;
  412. AMOCOL = TABRESC.T_AMO;
  413. GGOCOL = TABRESC.T_GGO;
  414. *
  415. MAISOLC = TABRESC.O_SOL;
  416. MODSOLC = TABRESC.O_MOD;
  417. MATSOLC = TABRESC.O_MAT;
  418. GGOSOLC = TABRESC.O_GGO;
  419. KSISOLC = TABRESC.O_KSI;
  420. RIGSOLC = TABRESC.O_RIG;
  421. MASSOLC = TABRESC.O_MAS;
  422. AMOSOLC = TABRESC.O_AMO;
  423. *
  424. NZONEC = DIME SOLCOL;
  425. *
  426. 'FINSI';
  427. *
  428. F1 = TABPAR.'F1' ;
  429. F2 = TABPAR.'F2' ;
  430. FC = TABPAR.'FC' ;
  431. V_MOD = VALEUR MODE;
  432. *
  433. **************************************************************
  434. * preparation deconvolution
  435. **************************************************************
  436. *
  437. MESS '';
  438. MESS '--------------------------------------------------------------';
  439. MESS '-- Deconvolution --';
  440. MESS '--------------------------------------------------------------';
  441. 'SI' (EGA (TYPE TABRESC) 'TABLE');
  442. *
  443. * Deconvilution 3D (Cas Mode Plan et 3D) - Colonne
  444. * NN1 = 'DIME' (TABCOL);
  445. I = 1;
  446. 'REPE' IND1 (NZONEC);
  447. 'SI' (I 'EGA' 1);
  448. BOR_FRO = (TABCOL. I .'FRONTIERE');
  449. 'SINON';
  450. BOR_FRO = BOR_FRO 'ET' (TABCOL. I .'FRONTIERE');
  451. 'FINSI';
  452. I = I + 1;
  453. 'FIN' IND1;
  454. 'ELIM' 0.001 BOR_FRO;
  455. BOR_FON = TABCOL. NZONEC .'BASE';
  456. 'OUBL' NN1;
  457. 'OUBL' I;
  458. *
  459. PP1 = BOR_FRO POIN PROC (10000. 10000. 10000.);
  460. PP2 = BOR_FRO POIN PROC (10000. 10000. -10000.);
  461. LL2 = BOR_FRO POIN DROIT PP1 PP2 0.001;
  462. *
  463. LL2B = LL2;
  464. I = 1;
  465. NN1 = NBNO LL2;
  466. 'REPE' IND1 (NN1);
  467. 'SI' (I EGA NN1);
  468. PP1 = LL2B;
  469. 'SINON';
  470. PP1 = LL2B POIN PROC (0. 0. 10000.);
  471. 'FINSI';
  472. 'SI' ('EGA' ('TYPE' LL2A) 'POINT');
  473. LL2A = LL2A 'ET' PP1;
  474. 'SINON';
  475. 'SI' ('EGA' ('TYPE' LL2A) 'MAILLAGE');
  476. LL2A = LL2A ET PP1;
  477. 'SINON';
  478. LL2A = PP1;
  479. 'FINSI';
  480. 'FINSI';
  481. NN2 = NN1 - (I - 1);
  482. J = 1;
  483. 'SI' (NN2 'NEG' 1);
  484. 'REPE' IND2 (NN2);
  485. PPX = LL2B 'POIN' J;
  486. VAL1 = 0.;
  487. VAL1 = VAL1 + (((PPX 'COOR' 1) -(PP1 'COOR' 1))**(2));
  488. VAL1 = VAL1 + (((PPX 'COOR' 2) -(PP1 'COOR' 2))**(2));
  489. VAL1 = VAL1 + (((PPX 'COOR' 3) -(PP1 'COOR' 3))**(2));
  490. VAL1 = ((VAL1)**(0.5));
  491. 'SI' (VAL1 > 0.001);
  492. 'SI' ('EGA' ('TYPE' LL2C) 'POINT');
  493. LL2C = LL2C 'ET' PPX;
  494. 'SINON';
  495. 'SI' ('EGA' ('TYPE' LL2C) 'MAILLAGE');
  496. LL2C = LL2C 'ET' PPX;
  497. 'SINON';
  498. LL2C = PPX;
  499. 'FINSI';
  500. 'FINSI';
  501. 'FINSI';
  502. J = J + 1;
  503. 'FIN' IND2;
  504. 'FINSI';
  505. LL2B = LL2C;
  506. 'OUBL' LL2C;
  507. I = I + 1;
  508. 'FIN' IND1;
  509. LL2 = LL2A;
  510. 'OUBL' LL2A;
  511. 'OUBL' LL2B;
  512. 'OUBL' LL2C;
  513. 'OUBL' NN1;
  514. 'OUBL' NN2;
  515. 'OUBL' VAL1;
  516. 'OUBL' PP1;
  517. 'OUBL' PPX;
  518. *
  519. NELEM_F = ('NBNO' LL2) - 1;
  520. I = 1 ;
  521. ID2 = 'CHAINE' 'N';
  522. TABDV2 = 'TABLE';
  523. 'REPE' BLOC4 NELEM_F ;
  524. PP1 = LL2 'POIN' I;
  525. PP2 = LL2 'POIN' (I + 1);
  526. XX1 = -10000.;
  527. XX2 = 10000.;
  528. YY1 = -10000.;
  529. YY2 = 10000.;
  530. ZZ1 = (PP1 'COOR' 3) + 0.01;
  531. ZZ2 = (PP2 'COOR' 3) - 0.01;
  532. CH1 CH2 CH3 = 'COOR' (BOR_FRO);
  533. MAI2 = CH1 'POIN' 'COMPRIS' XX1 XX2;
  534. CH2 = 'REDU' CH2 MAI2 ;
  535. MAI2 = CH2 'POIN' 'COMPRIS' YY1 YY2;
  536. CH3 = 'REDU' CH3 MAI2 ;
  537. MAI2 = CH3 'POIN' 'COMPRIS' ZZ2 ZZ1;
  538. CH3 = 'REDU' CH3 MAI2 ;
  539. MAI2 = (BOR_FRO) 'ELEM' 'APPUYE'
  540. 'STRICTEMENT' MAI2;
  541. TABDV2.I = 'TABLE' ;
  542. TABDV2.I.'FRONTIERE' = MAI2;
  543. Z1 = (PP1 COOR 3);
  544. Z3 = (PP2 COOR 3);
  545. TABDV2.I.'EPAISSEUR' = Z1 - Z3 ;
  546. * ZELEM1 = MAISOLC 'ELEM' 'CONTENANT' PP1;
  547. ZELEM2 = MAISOLC 'ELEM' 'CONTENANT' PP2;
  548. PPX1 = ZELEM1 POIN PROC PP1;
  549. PPX2 = ZELEM1 POIN PROC PP2;
  550. PPY1 = ZELEM2 POIN PROC PP1;
  551. PPY2 = ZELEM2 POIN PROC PP2;
  552. * VALX1 = 0.;
  553. VALX2 = 0.;
  554. VALX1 = VALX1 + (((PPX1 COOR 1) - (PP1 COOR 1))**(2.));
  555. VALX1 = VALX1 + (((PPX1 COOR 2) - (PP1 COOR 2))**(2.));
  556. VALX1 = VALX1 + (((PPX1 COOR 3) - (PP1 COOR 3))**(2.));
  557. VALX1 = ((VALX1)**(0.5));
  558. VALX2 = VALX2 + (((PPX2 COOR 1) - (PP2 COOR 1))**(2.));
  559. VALX2 = VALX2 + (((PPX2 COOR 2) - (PP2 COOR 2))**(2.));
  560. VALX2 = VALX2 + (((PPX2 COOR 3) - (PP2 COOR 3))**(2.));
  561. VALX2 = ((VALX2)**(0.5));
  562. VALY1 = 0.;
  563. VALY2 = 0.;
  564. VALY1 = VALY1 + (((PPY1 COOR 1) - (PP1 COOR 1))**(2.));
  565. VALY1 = VALY1 + (((PPY1 COOR 2) - (PP1 COOR 2))**(2.));
  566. VALY1 = VALY1 + (((PPY1 COOR 3) - (PP1 COOR 3))**(2.));
  567. VALY1 = ((VALY1)**(0.5));
  568. VALY2 = VALY2 + (((PPY2 COOR 1) - (PP2 COOR 1))**(2.));
  569. VALY2 = VALY2 + (((PPY2 COOR 2) - (PP2 COOR 2))**(2.));
  570. VALY2 = VALY2 + (((PPY2 COOR 3) - (PP2 COOR 3))**(2.));
  571. VALY2 = ((VALY2)**(0.5));
  572. 'SI' ((VALX1 + VALX2) < 0.0001);
  573. ZELEM = ZELEM1;
  574. 'FINSI';
  575. 'SI' ((VALY1 + VALY2) < 0.0001);
  576. ZELEM = ZELEM2;
  577. 'FINSI';
  578. ZELEM = ZELEM1 'ELEM' 'CONTENANT' PP1;
  579. 'OUBL' ZELEM1;
  580. 'OUBL' ZELEM2;
  581. 'OUBL' VALX1;
  582. 'OUBL' VALX2;
  583. 'OUBL' VALY1;
  584. 'OUBL' VALY2;
  585. *
  586. RMATE = REDU MATSOLC ZELEM ;
  587. RKSI = REDU KSISOLC ZELEM ;
  588. *
  589. TABDV2.I.'MASSE_VOLUMIQUE' = EXTR RMATE RHO 1 1 1 ;
  590. TABDV2.I.'POISSON' = EXTR RMATE NU 1 1 1 ;
  591. TABDV2.I.'YOUNG' = EXTR RMATE YOUN 1 1 1 ;
  592. TABDV2.I.'AMORTISSEMENT' = EXTR RKSI KS 1 1 1 ;
  593. I = I + 1 ;
  594. 'FIN' BLOC4 ;
  595. 'OUBL' ELEM_I;
  596. 'OUBL' NOEU1;
  597. 'OUBL' NOEU2;
  598. 'OUBL' NOEU3;
  599. 'OUBL' Z1;
  600. 'OUBL' Z3;
  601. 'OUBL' PP1;
  602. 'OUBL' PP2;
  603. 'OUBL' ID1;
  604. *
  605. TDON1.MOT22.'COLONNE' = TABLE;
  606. 'SI' ('EXIST' TABPAR 'GAMMAO_X');
  607. DIR = 'UX' ;
  608. GAMMAO = TABPAR.'GAMMAO_X' ;
  609. TYP_F = TABPAR.'TYPE' ;
  610. MOD_DEC = MODSOLC;
  611. MAT_DEC = MATSOLC;
  612. MAI_DEC = MAISOLC;
  613. *
  614. PPX1 =
  615. (TABDV2 . 1 .FRONTIERE) POIN PROC (-100000. -100000. 10000.);
  616. PPX2 =
  617. (TABDV2 . 1 .FRONTIERE) POIN PROC (100000. 100000. 10000.);
  618.  
  619. PPXF = (((PPX2 COOR 1) + (PPX1 COOR 1))/(2.))
  620. (((PPX2 COOR 2) - (PPX1 COOR 2))/(2.))
  621. (((PPX2 COOR 3) - (PPX1 COOR 3))/(2.));
  622. P_GAM = TABLE;
  623. P_GAM. 1 = (TABDV2. 1 .'FRONTIERE') 'POIN' 'PROC' (10000. 10000.
  624. 10000.);
  625. TABRXDV2 = DECONV3D TABDV2 (PPXF) BOR_FON MOD_DEC
  626. MAT_DEC DIR GAMMAO F1 F2 FC P_GAM;
  627. TDON1.MOT22.'COLONNE'.'TAB_DEC' = TABDV2;
  628. TDON1.MOT22.'COLONNE'.'RES_DEC_X' = TABRXDV2;
  629. 'OUBL' P_GAM;
  630. 'OUBL' PPXF
  631. 'OUBL' BOR_FRO;
  632. 'OUBL' BOR_FON;
  633. 'OUBL' MOD_DEC;
  634. 'OUBL' MAT_DEC;
  635. 'OUBL' DIR;
  636. 'OUBL' GAMMAO;
  637. 'OUBL' MAI_DEC;
  638. 'FINSI';
  639. *
  640. 'SI' ('EXIST' TABPAR 'GAMMAO_Y');
  641. DIR = 'UY' ;
  642. GAMMAO = TABPAR.'GAMMAO_Y' ;
  643. TYP_F = TABPAR.'TYPE' ;
  644. MOD_DEC = MODSOLC;
  645. MAT_DEC = MATSOLC;
  646. MAI_DEC = MAISOLC;
  647. *
  648. PPX1 = (TABDV2 . 1 .FRONTIERE)
  649. POIN PROC (-100000. -100000. 10000.);
  650. PPX2 = (TABDV2 . 1 .FRONTIERE)
  651. POIN PROC (100000. 100000. 10000.);
  652.  
  653. *
  654. PPXF = (((PPX2 COOR 1) + (PPX1 COOR 1))/(2.))
  655. (((PPX2 COOR 2) - (PPX1 COOR 2))/(2.))
  656. (((PPX2 COOR 3) - (PPX1 COOR 3))/(2.));
  657. P_GAM = TABLE;
  658. P_GAM. 1 = (TABDV2. 1 .'FRONTIERE') 'POIN' 'PROC' (10000. 10000.
  659. 10000.);
  660. TABRYDV2 = DECONV3D TABDV2 (PPXF) BOR_FON MOD_DEC
  661. MAT_DEC DIR GAMMAO F1 F2 FC P_GAM;
  662. TDON1.MOT22.'COLONNE'.'TAB_DEC' = TABDV2;
  663. TDON1.MOT22.'COLONNE'.'RES_DEC_Y' = TABRYDV2;
  664. 'OUBL' P_GAM;
  665. 'OUBL' PPXF
  666. 'OUBL' BOR_FRO;
  667. 'OUBL' BOR_FON;
  668. 'OUBL' MOD_DEC;
  669. 'OUBL' MAT_DEC;
  670. 'OUBL' DIR;
  671. 'OUBL' GAMMAO;
  672. 'OUBL' MAI_DEC;
  673. 'FINSI';
  674. *
  675. 'SI' ('EXIST' TABPAR 'GAMMAO_Z');
  676. DIR = 'UZ' ;
  677. GAMMAO = TABPAR.'GAMMAO_Z' ;
  678. TYP_F = TABPAR.'TYPE' ;
  679. MOD_DEC = MODSOLC;
  680. MAT_DEC = MATSOLC;
  681. MAI_DEC = MAISOLC;
  682. *
  683. PPX1 = (TABDV2 . 1 .FRONTIERE)
  684. POIN PROC (-100000. -100000. 10000.);
  685. PPX2 = (TABDV2 . 1 .FRONTIERE)
  686. POIN PROC (100000. 100000. 10000.);
  687.  
  688. *
  689. PPXF = (((PPX2 COOR 1) + (PPX1 COOR 1))/(2.))
  690. (((PPX2 COOR 2) - (PPX1 COOR 2))/(2.))
  691. (((PPX2 COOR 3) - (PPX1 COOR 3))/(2.));
  692. P_GAM = TABLE;
  693. P_GAM. 1 = (TABDV2. 1 .'FRONTIERE') 'POIN' 'PROC' (10000. 10000.
  694. 10000.);
  695. TABRZDV2 = DECONV3D TABDV2 (PPXF) BOR_FON MOD_DEC
  696. MAT_DEC DIR GAMMAO F1 F2 FC P_GAM;
  697. TDON1.MOT22.'COLONNE'.'TAB_DEC' = TABDV2;
  698. TDON1.MOT22.'COLONNE'.'RES_DEC_Z' = TABRZDV2;
  699. 'OUBL' P_GAM;
  700. 'OUBL' PPXF
  701. 'OUBL' BOR_FRO;
  702. 'OUBL' BOR_FON;
  703. 'OUBL' MOD_DEC;
  704. 'OUBL' MAT_DEC;
  705. 'OUBL' DIR;
  706. 'OUBL' GAMMAO;
  707. 'OUBL' MAI_DEC;
  708. 'FINSI';
  709. 'SINON';
  710. *
  711. * Deconvilution 3D (Cas 3D)
  712. NN1 = 'DIME' (TABFRO.LATERALE);
  713. I = 1;
  714. 'REPE' IND1 (NN1);
  715. 'SI' (I EGA 1);
  716. BOR_FRO = (TABFRO.LATERALE. I .MAILLAGE);
  717. 'SINON';
  718. BOR_FRO = BOR_FRO ET (TABFRO.LATERALE. I .MAILLAGE);
  719. 'FINSI';
  720. I = I + 1;
  721. 'FIN' IND1;
  722. 'ELIM' 0.001 BOR_FRO;
  723. BOR_FON = TABFRO.'BASE';
  724. 'OUBL' NN1;
  725. 'OUBL' I;
  726. *
  727. PP1 = BOR_FRO POIN PROC (10000. 10000. 10000.);
  728. PP2 = BOR_FRO POIN PROC (10000. 10000. -10000.);
  729. LL2 = BOR_FRO POIN DROIT PP1 PP2 0.001;
  730. *
  731. LL2B = LL2;
  732. I = 1;
  733. NN1 = NBNO LL2;
  734. 'REPE' IND1 (NN1);
  735. 'SI' (I EGA NN1);
  736. PP1 = LL2B;
  737. 'SINON';
  738. PP1 = LL2B POIN PROC (0. 0. 10000.);
  739. 'FINSI';
  740. 'SI' ('EGA' ('TYPE' LL2A) 'POINT');
  741. LL2A = LL2A 'ET' PP1;
  742. 'SINON';
  743. 'SI' ('EGA' ('TYPE' LL2A) 'MAILLAGE');
  744. LL2A = LL2A ET PP1;
  745. 'SINON';
  746. LL2A = PP1;
  747. 'FINSI';
  748. 'FINSI';
  749. NN2 = NN1 - (I - 1);
  750. J = 1;
  751. 'SI' (NN2 'NEG' 1);
  752. 'REPE' IND2 (NN2);
  753. PPX = LL2B 'POIN' J;
  754. VAL1 = 0.;
  755. VAL1 = VAL1 + (((PPX 'COOR' 1) -(PP1 'COOR' 1))**(2));
  756. VAL1 = VAL1 + (((PPX 'COOR' 2) -(PP1 'COOR' 2))**(2));
  757. VAL1 = VAL1 + (((PPX 'COOR' 3) -(PP1 'COOR' 3))**(2));
  758. VAL1 = ((VAL1)**(0.5));
  759. 'SI' (VAL1 > 0.001);
  760. 'SI' ('EGA' ('TYPE' LL2C) 'POINT');
  761. LL2C = LL2C 'ET' PPX;
  762. 'SINON';
  763. 'SI' ('EGA' ('TYPE' LL2C) 'MAILLAGE');
  764. LL2C = LL2C 'ET' PPX;
  765. 'SINON';
  766. LL2C = PPX;
  767. 'FINSI';
  768. 'FINSI';
  769. 'FINSI';
  770. J = J + 1;
  771. 'FIN' IND2;
  772. 'FINSI';
  773. LL2B = LL2C;
  774. 'OUBL' LL2C;
  775. I = I + 1;
  776. 'FIN' IND1;
  777. LL2 = LL2A;
  778. 'OUBL' LL2A;
  779. 'OUBL' LL2B;
  780. 'OUBL' LL2C;
  781. 'OUBL' NN1;
  782. 'OUBL' NN2;
  783. 'OUBL' VAL1;
  784. 'OUBL' PP1;
  785. 'OUBL' PPX;
  786. *
  787. NELEM_F = ('NBNO' LL2) - 1;
  788. I = 1 ;
  789. ID2 = 'CHAINE' 'N';
  790. TABDV = 'TABLE';
  791. *
  792. 'REPE' BLOC4 NELEM_F ;
  793. PP1 = LL2 POIN I;
  794. PP2 = LL2 POIN (I + 1);
  795. XX1 = -10000.;
  796. XX2 = 10000.;
  797. YY1 = -10000.;
  798. YY2 = 10000.;
  799. ZZ1 = (PP1 COOR 3) + 0.01;
  800. ZZ2 = (PP2 COOR 3) - 0.01;
  801. CH1 CH2 CH3 = 'COOR' (BOR_FRO);
  802. MAI2 = CH1 'POIN' 'COMPRIS' XX1 XX2;
  803. CH2 = 'REDU' CH2 MAI2 ;
  804. MAI2 = CH2 'POIN' 'COMPRIS' YY1 YY2;
  805. CH3 = 'REDU' CH3 MAI2 ;
  806. MAI2 = CH3 'POIN' 'COMPRIS' ZZ2 ZZ1;
  807. CH3 = 'REDU' CH3 MAI2 ;
  808. MAI2 = (BOR_FRO) 'ELEM' 'APPUYE'
  809. 'STRICTEMENT' MAI2;
  810. *
  811. TABDV.I = 'TABLE' ;
  812. TABDV.I.'FRONTIERE' = MAI2;
  813. Z1 = (PP1 COOR 3);
  814. Z3 = (PP2 COOR 3);
  815. TABDV.I.'EPAISSEUR' = Z1 - Z3 ;
  816. *
  817. 'SI' ('EGA' ('TYPE' (MAI_SOLC)) 'MAILLAGE');
  818. PPP1 = MAI_SOLC 'POIN' 'PROC' PP1;
  819. VAL1 = 0.;
  820. VAL1 = VAL1 + (((PPP1 COOR 1) - (PP1 COOR 1))**(2.));
  821. VAL1 = VAL1 + (((PPP1 COOR 2) - (PP1 COOR 2))**(2.));
  822. VAL1 = VAL1 + (((PPP1 COOR 3) - (PP1 COOR 3))**(2.));
  823. VAL1 = ((VAL1)**(0.5));
  824. 'SINON';
  825. VAL1 = 100000.;
  826. 'FINSI';
  827. 'SI' ('EGA' ('TYPE' (MAI_SOLI)) 'MAILLAGE');
  828. PPP2 = MAI_SOLI 'POIN' 'PROC' PP1;
  829. VAL2 = 0.;
  830. VAL2 = VAL2 + (((PPP2 COOR 1) - (PP1 COOR 1))**(2.));
  831. VAL2 = VAL2 + (((PPP2 COOR 2) - (PP1 COOR 2))**(2.));
  832. VAL2 = VAL2 + (((PPP2 COOR 3) - (PP1 COOR 3))**(2.));
  833. VAL2 = ((VAL2)**(0.5));
  834. 'SINON';
  835. VAL2 = 100000.;
  836. 'FINSI';
  837. *
  838. *
  839. 'SI' (VAL1 < 0.0001);
  840. ZELEM1 = MAI_SOLC 'ELEM' 'CONTENANT' PP1;
  841. ZELEM2 = MAI_SOLC 'ELEM' 'CONTENANT' PP2;
  842. PPX1 = ZELEM1 POIN PROC PP1;
  843. PPX2 = ZELEM1 POIN PROC PP2;
  844. PPY1 = ZELEM2 POIN PROC PP1;
  845. PPY2 = ZELEM2 POIN PROC PP2;
  846. *
  847. VALX1 = 0.;
  848. VALX2 = 0.;
  849. VALX1 = VALX1 + (((PPX1 COOR 1) - (PP1 COOR 1))**(2.));
  850. VALX1 = VALX1 + (((PPX1 COOR 2) - (PP1 COOR 2))**(2.));
  851. VALX1 = VALX1 + (((PPX1 COOR 3) - (PP1 COOR 3))**(2.));
  852. VALX1 = ((VALX1)**(0.5));
  853. VALX2 = VALX2 + (((PPX2 COOR 1) - (PP2 COOR 1))**(2.));
  854. VALX2 = VALX2 + (((PPX2 COOR 2) - (PP2 COOR 2))**(2.));
  855. VALX2 = VALX2 + (((PPX2 COOR 3) - (PP2 COOR 3))**(2.));
  856. VALX2 = ((VALX2)**(0.5));
  857. VALY1 = 0.;
  858. VALY2 = 0.;
  859. VALY1 = VALY1 + (((PPY1 COOR 1) - (PP1 COOR 1))**(2.));
  860. VALY1 = VALY1 + (((PPY1 COOR 2) - (PP1 COOR 2))**(2.));
  861. VALY1 = VALY1 + (((PPY1 COOR 3) - (PP1 COOR 3))**(2.));
  862. VALY1 = ((VALY1)**(0.5));
  863. VALY2 = VALY2 + (((PPY2 COOR 1) - (PP2 COOR 1))**(2.));
  864. VALY2 = VALY2 + (((PPY2 COOR 2) - (PP2 COOR 2))**(2.));
  865. VALY2 = VALY2 + (((PPY2 COOR 3) - (PP2 COOR 3))**(2.));
  866. VALY2 = ((VALY2)**(0.5));
  867. 'SI' ((VALX1 + VALX2) < 0.0001);
  868. ZELEM = ZELEM1;
  869. 'FINSI';
  870. 'SI' ((VALY1 + VALY2) < 0.0001);
  871. ZELEM = ZELEM2;
  872. 'FINSI';
  873. *
  874. 'OUBL' ZELEM1;
  875. 'OUBL' ZELEM2;
  876. 'OUBL' VALX1;
  877. 'OUBL' VALX2;
  878. 'OUBL' VALY1;
  879. 'OUBL' VALY2;
  880. ID1 = 'CHAINE' 'C';
  881. 'SI' ('EGA' ID2 'C');
  882. ID2 = 'CHAINE' 'C';
  883. 'SINON';
  884. 'SI' ('EGA' ID2 'I');
  885. ID2 = 'M';
  886. 'SINON';
  887. ID2 = 'C';
  888. 'FINSI';
  889. 'FINSI';
  890. 'SINON';
  891. 'SI' (VAL2 < 0.0001);
  892. ZELEM1 = MAI_SOLI 'ELEM' 'CONTENANT' PP1;
  893. ZELEM2 = MAI_SOLI 'ELEM' 'CONTENANT' PP2;
  894. PPX1 = ZELEM1 POIN PROC PP1;
  895. PPX2 = ZELEM1 POIN PROC PP2;
  896. PPY1 = ZELEM2 POIN PROC PP1;
  897. PPY2 = ZELEM2 POIN PROC PP2;
  898. *
  899. VALX1 = 0.;
  900. VALX2 = 0.;
  901. VALX1 = VALX1 + (((PPX1 COOR 1) - (PP1 COOR 1))**(2.));
  902. VALX1 = VALX1 + (((PPX1 COOR 2) - (PP1 COOR 2))**(2.));
  903. VALX1 = VALX1 + (((PPX1 COOR 3) - (PP1 COOR 3))**(2.));
  904. VALX1 = ((VALX1)**(0.5));
  905. VALX2 = VALX2 + (((PPX2 COOR 1) - (PP2 COOR 1))**(2.));
  906. VALX2 = VALX2 + (((PPX2 COOR 2) - (PP2 COOR 2))**(2.));
  907. VALX2 = VALX2 + (((PPX2 COOR 3) - (PP2 COOR 3))**(2.));
  908. VALX2 = ((VALX2)**(0.5));
  909. VALY1 = 0.;
  910. VALY2 = 0.;
  911. VALY1 = VALY1 + (((PPY1 COOR 1) - (PP1 COOR 1))**(2.));
  912. VALY1 = VALY1 + (((PPY1 COOR 2) - (PP1 COOR 2))**(2.));
  913. VALY1 = VALY1 + (((PPY1 COOR 3) - (PP1 COOR 3))**(2.));
  914. VALY1 = ((VALY1)**(0.5));
  915. VALY2 = VALY2 + (((PPY2 COOR 1) - (PP2 COOR 1))**(2.));
  916. VALY2 = VALY2 + (((PPY2 COOR 2) - (PP2 COOR 2))**(2.));
  917. VALY2 = VALY2 + (((PPY2 COOR 3) - (PP2 COOR 3))**(2.));
  918. VALY2 = ((VALY2)**(0.5));
  919. 'SI' ((VALX1 + VALX2) < 0.0001);
  920. ZELEM = ZELEM1;
  921. 'FINSI';
  922. 'SI' ((VALY1 + VALY2) < 0.0001);
  923. ZELEM = ZELEM2;
  924. 'FINSI';
  925. *
  926. ID1 = 'CHAINE' 'I';
  927. 'SI' ('EGA' ID2 'I');
  928. ID2 = 'CHAINE' 'I';
  929. 'SINON';
  930. 'SI' ('EGA' ID2 'C');
  931. ID2 = 'M';
  932. 'SINON';
  933. ID2 = 'I';
  934. 'FINSI';
  935. 'FINSI';
  936. 'SINON';
  937. 'MESS' 'Error contruction table DECONV';
  938. 'QUIT' ISSLEQ;
  939. 'FINSI';
  940. 'FINSI';
  941. 'OUBL' ZELEM1;
  942. 'OUBL' ZELEM2;
  943. *
  944. 'SI' ('EGA' ID1 'C');
  945. RMATE = REDU MAT_SOLC ZELEM ;
  946. RKSI = REDU KSI_SOLC ZELEM ;
  947. 'FINSI';
  948. 'SI' ('EGA' ID1 'I');
  949. RMATE = REDU MAT_SOLI ZELEM ;
  950. RKSI = REDU KSI_SOLI ZELEM ;
  951. 'FINSI';
  952. *
  953. TABDV.I.'MASSE_VOLUMIQUE' = EXTR RMATE RHO 1 1 1 ;
  954. TABDV.I.'POISSON' = EXTR RMATE NU 1 1 1 ;
  955. TABDV.I.'YOUNG' = EXTR RMATE YOUN 1 1 1 ;
  956. TABDV.I.'AMORTISSEMENT' = EXTR RKSI KS 1 1 1 ;
  957. I = I + 1 ;
  958. 'FIN' BLOC4 ;
  959. 'OUBL' ELEM_I;
  960. 'OUBL' NOEU1;
  961. 'OUBL' NOEU2;
  962. 'OUBL' NOEU3;
  963. 'OUBL' Z1;
  964. 'OUBL' Z3;
  965. 'OUBL' PP1;
  966. 'OUBL' PP2;
  967. 'OUBL' ID1;
  968. *
  969. TDON1.MOT22.'SOL' = TABLE;
  970. 'SI' ('EXIST' TABPAR 'GAMMAO_X');
  971. DIR = 'UX' ;
  972. GAMMAO = TABPAR.'GAMMAO_X' ;
  973. TYP_F = TABPAR.'TYPE' ;
  974. 'SI' ('EGA' ID2 'C');
  975. MOD_DEC = MOD_SOLC;
  976. MAT_DEC = MAT_SOLC;
  977. MAI_DEC = MAI_SOLC;
  978. 'FINSI';
  979. *
  980. 'SI' ('EGA' ID2 'I');
  981. MOD_DEC = MOD_SOLI;
  982. MAT_DEC = MAT_SOLI;
  983. MAI_DEC = MAI_SOLI;
  984. 'FINSI';
  985. *
  986. 'SI' ('EGA' ID2 'M');
  987. MOD_DEC = MOD_SOLC ET MOD_SOLI;
  988. MAT_DEC = MAT_SOLC ET MAT_SOLI;
  989. MAI_DEC = MAI_SOLC ET MAI_SOLI;
  990. 'FINSI';
  991. *
  992. P_GAM = TABPAR.'PAR_DEC';
  993. TABRXDV = DECONV3D TABDV (TABPAR.POINT) BOR_FON MOD_DEC
  994. MAT_DEC DIR GAMMAO F1 F2 FC P_GAM;
  995. *
  996. TDON1.MOT22.'SOL'.'TAB_DEC' = TABDV;
  997. TDON1.MOT22.'SOL'.'RES_DEC_X' = TABRXDV;
  998. 'FINSI';
  999. *
  1000. 'SI' ('EXIST' TABPAR 'GAMMAO_Y');
  1001. DIR = 'UY' ;
  1002. GAMMAO = TABPAR.'GAMMAO_Y' ;
  1003. TYP_F = TABPAR.'TYPE' ;
  1004. 'SI' ('EGA' ID2 'C');
  1005. MOD_DEC = MOD_SOLC;
  1006. MAT_DEC = MAT_SOLC;
  1007. MAI_DEC = MAI_SOLC;
  1008. 'FINSI';
  1009. *
  1010. 'SI' ('EGA' ID2 'I');
  1011. MOD_DEC = MOD_SOLI;
  1012. MAT_DEC = MAT_SOLI;
  1013. MAI_DEC = MAI_SOLI;
  1014. 'FINSI';
  1015. *
  1016. 'SI' ('EGA' ID2 'M');
  1017. MOD_DEC = MOD_SOLC ET MOD_SOLI;
  1018. MAT_DEC = MAT_SOLC ET MAT_SOLI;
  1019. MAI_DEC = MAI_SOLC ET MAI_SOLI;
  1020. 'FINSI';
  1021. *
  1022. P_GAM = TABLE;
  1023. P_GAM. 1 = (TABDV. 1 .'FRONTIERE') 'POIN' 'PROC' (10000. 10000.
  1024. 10000.);
  1025. TABRYDV = DECONV3D TABDV (TABPAR.POINT) BOR_FON MOD_DEC
  1026. MAT_DEC DIR GAMMAO F1 F2 FC P_GAM;
  1027. *
  1028. TDON1.MOT22.'SOL'.'TAB_DEC' = TABDV;
  1029. TDON1.MOT22.'SOL'.'RES_DEC_Y' = TABRYDV;
  1030. 'FINSI';
  1031. *
  1032. 'SI' ('EXIST' TABPAR 'GAMMAO_Z');
  1033. DIR = 'UZ' ;
  1034. GAMMAO = TABPAR.'GAMMAO_Z' ;
  1035. TYP_F = TABPAR.'TYPE' ;
  1036. 'SI' ('EGA' ID2 'C');
  1037. MOD_DEC = MOD_SOLC;
  1038. MAT_DEC = MAT_SOLC;
  1039. MAI_DEC = MAI_SOLC;
  1040. 'FINSI';
  1041. *
  1042. 'SI' ('EGA' ID2 'I');
  1043. MOD_DEC = MOD_SOLI;
  1044. MAT_DEC = MAT_SOLI;
  1045. MAI_DEC = MAI_SOLI;
  1046. 'FINSI';
  1047. *
  1048. 'SI' ('EGA' ID2 'M');
  1049. MOD_DEC = MOD_SOLC ET MOD_SOLI;
  1050. MAT_DEC = MAT_SOLC ET MAT_SOLI;
  1051. MAI_DEC = MAI_SOLC ET MAI_SOLI;
  1052. 'FINSI';
  1053. *
  1054. P_GAM = TABLE;
  1055. P_GAM. 1 = (TABDV. 1 .'FRONTIERE') 'POIN' 'PROC' (10000. 10000.
  1056. 10000.);
  1057. TABRZDV = DECONV3D TABDV (TABPAR.POINT) BOR_FON MOD_DEC
  1058. MAT_DEC DIR GAMMAO F1 F2 FC P_GAM;
  1059. *
  1060. TDON1.MOT22.'SOL'.'TAB_DEC' = TABDV;
  1061. TDON1.MOT22.'SOL'.'RES_DEC_Z' = TABRZDV;
  1062. 'FINSI';
  1063. 'OUBL' P_GAM;
  1064. 'OUBL' BOR_FRO;
  1065. 'OUBL' BOR_FON;
  1066. 'OUBL' MOD_DEC;
  1067. 'OUBL' MAT_DEC;
  1068. 'OUBL' DIR;
  1069. 'OUBL' GAMMAO;
  1070. 'OUBL' MAI_DEC;
  1071. 'FINSI';
  1072. *
  1073.  
  1074. 'SI' ('EXIST' (TDON1) 'STRUCTURE');
  1075. TDON1.MOT22.'STRUCTURE' = 'COPI' (TDON1.'STRUCTURE');
  1076. 'FINSI';
  1077. *
  1078. **************************************************************
  1079. * resolution dynamique
  1080. **************************************************************
  1081. *
  1082. MESS '';
  1083. MESS '--------------------------------------------------------------';
  1084. MESS '-- Calcul Dynamic --';
  1085. MESS '--------------------------------------------------------------';
  1086. *
  1087. * Detection plage de temps
  1088. A1 = 0;
  1089. 'SI' ('EXIST' TABPAR 'GAMMAO_X');
  1090. DT1 = EXTR (EXTR (TABPAR.'GAMMAO_X') ABSC) 2;
  1091. AA1 AA2 A3 = 'MAXI' (TABPAR.'GAMMAO_X');
  1092. 'SI' (AA1 > A1);
  1093. A1 = AA1;
  1094. 'FINSI';
  1095. 'OUBL' AA1;
  1096. 'OUBL' AA2;
  1097. 'OUBL' AA3;
  1098. 'FINSI';
  1099. 'SI' ('EXIST' TABPAR 'GAMMAO_Y');
  1100. DT1 = EXTR (EXTR (TABPAR.'GAMMAO_Y') ABSC) 2;
  1101. AA1 AA2 A3 = 'MAXI' (TABPAR.'GAMMAO_Y');
  1102. 'SI' (AA1 > A1);
  1103. A1 = AA1;
  1104. 'FINSI';
  1105. 'OUBL' AA1;
  1106. 'OUBL' AA2;
  1107. 'OUBL' AA3;
  1108. 'FINSI';
  1109. 'SI' ('EXIST' TABPAR 'GAMMAO_Z');
  1110. DT1 = EXTR (EXTR (TABPAR.'GAMMAO_Z') ABSC) 2;
  1111. AA1 AA2 A3 = 'MAXI' (TABPAR.'GAMMAO_Z');
  1112. 'SI' (AA1 > A1);
  1113. A1 = AA1;
  1114. 'FINSI';
  1115. 'OUBL' AA1;
  1116. 'OUBL' AA2;
  1117. 'OUBL' AA3;
  1118. 'FINSI';
  1119. A2 = (ENTI((TABPAR.'DELTA_T')/DT1))/2;
  1120. NB_PAS = A1 + A2;
  1121. NN1 = A1 + A2;
  1122. NN2 = A1 - A2;
  1123. 'SI' (NN2 < 0);
  1124. NN2 = 0;
  1125. 'FINSI';
  1126. 'OUBL' A2;
  1127. 'OUBL' A1;
  1128. 'OUBL' DT1;
  1129. NN1 = ((NN1 - 1)*(4)) + 1;
  1130. NN2 = ((NN2 - 1)*(4)) + 1;
  1131. NB_PAS = NN1 + 4;
  1132. *
  1133. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  1134. *
  1135. * resolution dynamique sur la colonne
  1136. 'SI' ('EGA' V_MOD 'TRID' ) ;
  1137. 'SI' (('DIME' ('EXTR' RIGSOLC 'COMP')) 'EGA' 3);
  1138. CH_DEPI = 'MANU' 'CHPO' 3 MAISOLC UX 0.0 UY 0.0 UZ 0.0 ;
  1139. CH_VITI = 'MANU' 'CHPO' 3 MAISOLC UX 0.0 UY 0.0 UZ 0.0 ;
  1140. 'SINON';
  1141. CH_DEPI = 'MANU' 'CHPO' 6 MAISOLC UX 0.0 UY 0.0 UZ 0.0
  1142. RX 0.0 RY 0.0 RZ 0.0;
  1143. CH_VITI = 'MANU' 'CHPO' 6 MAISOLC UX 0.0 UY 0.0 UZ 0.0
  1144. RX 0.0 RY 0.0 RZ 0.0;
  1145. 'FINSI';
  1146. 'FINSI';
  1147. 'SI' ('EXIST' TABPAR 'GAMMAO_X');
  1148. TAB_DYXC = TABLE ;
  1149. TAB_DYXC.'DEPL' = CH_DEPI ;
  1150. TAB_DYXC.'VITE' = CH_VITI ;
  1151. TAB_DYXC.'RIGI' = RIGSOLC ;
  1152. TAB_DYXC.'MASS' = MASSOLC;
  1153. TAB_DYXC.'AMOR' = AMOSOLC 'ET' (TABRXDV2.'AMOR');
  1154. TAB_DYXC.'CHAR' = TABRXDV2.'CHAR' ;
  1155. TAB_DYXC.'FREQ' = TABRXDV2.'FCDYN' ;
  1156. TAB_DYXC.'DEBU' = 0.0 ;
  1157. TAB_DYXC.'INST' = 'PROG' 0.0 PAS ((1)*(TABRXDV2.'PAS'))
  1158. NPAS ( NB_PAS - 1 ) ;
  1159. TRESUXC = DYNAMIC TAB_DYXC ;
  1160. 'TEMPS' ;
  1161. 'MENAGE' ;
  1162. TDON1.MOT22.'COLONNE'.'RES_DYN_X' = 'COPI' TRESUXC;
  1163. 'FINSI';
  1164. 'SI' ('EXIST' TABPAR 'GAMMAO_Y');
  1165. TAB_DYYC = TABLE ;
  1166. TAB_DYYC.'DEPL' = CH_DEPI ;
  1167. TAB_DYYC.'VITE' = CH_VITI ;
  1168. TAB_DYYC.'RIGI' = RIGSOLC ;
  1169. TAB_DYYC.'MASS' = MASSOLC;
  1170. TAB_DYYC.'AMOR' = AMOSOLC 'ET' (TABRYDV2.'AMOR');
  1171. TAB_DYYC.'CHAR' = TABRYDV2.'CHAR' ;
  1172. TAB_DYYC.'FREQ' = TABRYDV2.'FCDYN' ;
  1173. TAB_DYYC.'DEBU' = 0.0 ;
  1174. TAB_DYYC.'INST' = 'PROG' 0.0 PAS ((1)*(TABRYDV2.'PAS'))
  1175. NPAS ( NB_PAS - 1 ) ;
  1176. TRESUYC = DYNAMIC TAB_DYYC ;
  1177. 'TEMPS' ;
  1178. 'MENAGE' ;
  1179. TDON1.MOT22.'COLONNE'.'RES_DYN_Y' = 'COPI' TRESUYC;
  1180. 'FINSI';
  1181. 'SI' ('EXIST' TABPAR 'GAMMAO_Z');
  1182. TAB_DYZC = TABLE ;
  1183. TAB_DYZC.'DEPL' = CH_DEPI ;
  1184. TAB_DYZC.'VITE' = CH_VITI ;
  1185. TAB_DYZC.'RIGI' = RIGSOLC ;
  1186. TAB_DYZC.'MASS' = MASSOLC;
  1187. TAB_DYZC.'AMOR' = AMOSOLC 'ET' (TABRZDV2.'AMOR');
  1188. TAB_DYZC.'CHAR' = TABRZDV2.'CHAR' ;
  1189. TAB_DYZC.'FREQ' = TABRZDV2.'FCDYN' ;
  1190. TAB_DYZC.'DEBU' = 0.0 ;
  1191. TAB_DYZC.'INST' = 'PROG' 0.0 PAS ((1)*(TABRZDV2.'PAS'))
  1192. NPAS ( NB_PAS - 1 ) ;
  1193. TRESUZC = DYNAMIC TAB_DYZC ;
  1194. 'TEMPS' ;
  1195. 'MENAGE' ;
  1196. TDON1.MOT22.'COLONNE'.'RES_DYN_Z' = 'COPI' TRESUZC;
  1197. 'FINSI';
  1198. 'SINON';
  1199. *
  1200. * resolution dynamique du systeme sol+structure
  1201. 'SI' ('EGA' ('TYPE' MAI_SOLC) 'MAILLAGE' ) ;
  1202. MAITOT = MAI_SOLC;
  1203. MODTOT = MOD_SOLC;
  1204. RIGTOT = RIG_SOLC;
  1205. MASTOT = MAS_SOLC;
  1206. AMOTOT = AMO_SOLC;
  1207. 'SI' ('EGA' ('TYPE' MAI_SOLI) 'MAILLAGE' ) ;
  1208. MAITOT = MAITOT 'ET' MAI_SOLI;
  1209. MODTOT = MODTOT 'ET' MOD_SOLI;
  1210. RIGTOT = RIGTOT 'ET' RIG_SOLI;
  1211. MASTOT = MASTOT 'ET' MAS_SOLI;
  1212. AMOTOT = AMOTOT 'ET' AMO_SOLI;
  1213. 'FINSI';
  1214. 'SINON';
  1215. 'SI' ('EGA' ('TYPE' MAI_SOLI) 'MAILLAGE' );
  1216. MAITOT = MAI_SOLI;
  1217. MODTOT = MOD_SOLI;
  1218. RIGTOT = RIG_SOLI;
  1219. MASTOT = MAS_SOLI;
  1220. AMOTOT = AMO_SOLI;
  1221. 'FINSI';
  1222. 'FINSI';
  1223. 'SI' ('EGA' ('TYPE' TABSTR) 'TABLE' );
  1224. MAITOT = MAITOT 'ET' (TABSTR.'MAILLAGE');
  1225. RIGTOT = RIGTOT 'ET' (TABSTR.'RIGIDITE');
  1226. MASTOT = MASTOT 'ET' (TABSTR.'MASSE');
  1227. AMOTOT = AMOTOT 'ET' (TABSTR.'AMORTISSEMENT');
  1228. 'SI' ('EXIST' (TABSTR) 'BLOCAGES_MECANIQUES' );
  1229. RIGTOT = RIGTOT 'ET' (TABSTR.'BLOCAGES_MECANIQUES');
  1230. 'FINSI';
  1231. 'FINSI';
  1232. * 'ELIM' 0.001 MAITOT;
  1233. *
  1234. 'SI' ('EGA' V_MOD 'TRID' ) ;
  1235. 'SI' (('DIME' ('EXTR' RIGTOT 'COMP')) 'EGA' 3);
  1236. CH_DEPI = 'MANU' 'CHPO' 3 MAITOT UX 0.0 UY 0.0 UZ 0.0 ;
  1237. CH_VITI = 'MANU' 'CHPO' 3 MAITOT UX 0.0 UY 0.0 UZ 0.0 ;
  1238. 'SINON';
  1239. CH_DEPI = 'MANU' 'CHPO' 6 MAITOT UX 0.0 UY 0.0 UZ 0.0
  1240. RX 0.0 RY 0.0 RZ 0.0;
  1241. CH_VITI = 'MANU' 'CHPO' 6 MAITOT UX 0.0 UY 0.0 UZ 0.0
  1242. RX 0.0 RY 0.0 RZ 0.0;
  1243. 'FINSI';
  1244. 'FINSI';
  1245. *
  1246. 'SI' ('EXIST' TABPAR 'GAMMAO_X');
  1247. TAB_DYX = TABLE ;
  1248. TAB_DYX.'DEPL' = CH_DEPI ;
  1249. TAB_DYX.'VITE' = CH_VITI ;
  1250. TAB_DYX.'RIGI' = RIGTOT ;
  1251. TAB_DYX.'MASS' = MASTOT;
  1252. TAB_DYX.'AMOR' = AMOTOT 'ET' (TABRXDV.'AMOR');
  1253. TAB_DYX.'CHAR' = TABRXDV.'CHAR' ;
  1254. TAB_DYX.'FREQ' = TABRXDV.'FCDYN' ;
  1255. TAB_DYX.'DEBU' = 0.0 ;
  1256. TAB_DYX.'INST' = 'PROG' 0.0 PAS ((1)*(TABRXDV.'PAS'))
  1257. NPAS ( NB_PAS - 1 ) ;
  1258. TRESUX = DYNAMIC TAB_DYX ;
  1259. 'TEMPS' ;
  1260. 'MENAGE' ;
  1261. TDON1.MOT22.'RES_DYN_X' = 'COPI' TRESUX;
  1262. 'FINSI';
  1263. 'SI' ('EXIST' TABPAR 'GAMMAO_Y');
  1264. TAB_DYY = TABLE ;
  1265. TAB_DYY.'DEPL' = CH_DEPI ;
  1266. TAB_DYY.'VITE' = CH_VITI ;
  1267. TAB_DYY.'RIGI' = RIGTOT ;
  1268. TAB_DYY.'MASS' = MASTOT;
  1269. TAB_DYY.'AMOR' = AMOTOT 'ET' (TABRYDV.'AMOR');
  1270. TAB_DYY.'CHAR' = TABRYDV.'CHAR' ;
  1271. TAB_DYY.'FREQ' = TABRYDV.'FCDYN' ;
  1272. TAB_DYY.'DEBU' = 0.0 ;
  1273. TAB_DYY.'INST' = 'PROG' 0.0 PAS ((1)*(TABRYDV.'PAS'))
  1274. NPAS ( NB_PAS - 1 ) ;
  1275. TRESUY = DYNAMIC TAB_DYY ;
  1276. 'TEMPS' ;
  1277. 'MENAGE' ;
  1278. TDON1.MOT22.'RES_DYN_Y' = 'COPI' TRESUY;
  1279. 'FINSI';
  1280. 'SI' ('EXIST' TABPAR 'GAMMAO_Z');
  1281. TAB_DYZ = TABLE ;
  1282. TAB_DYZ.'DEPL' = CH_DEPI ;
  1283. TAB_DYZ.'VITE' = CH_VITI ;
  1284. TAB_DYZ.'RIGI' = RIGTOT ;
  1285. TAB_DYZ.'MASS' = MASTOT;
  1286. TAB_DYZ.'AMOR' = AMOTOT 'ET' (TABRZDV.'AMOR');
  1287. TAB_DYZ.'CHAR' = TABRZDV.'CHAR' ;
  1288. TAB_DYZ.'FREQ' = TABRZDV.'FCDYN' ;
  1289. TAB_DYZ.'DEBU' = 0.0 ;
  1290. TAB_DYZ.'INST' = 'PROG' 0.0 PAS ((1)*(TABRZDV.'PAS'))
  1291. NPAS ( NB_PAS - 1 ) ;
  1292. TRESUZ = DYNAMIC TAB_DYZ ;
  1293. 'TEMPS' ;
  1294. 'MENAGE' ;
  1295. TDON1.MOT22.'RES_DYN_Z' = 'COPI' TRESUZ;
  1296. 'FINSI';
  1297. 'FINSI';
  1298. *
  1299. **************************************************************
  1300. * deductions reponse
  1301. **************************************************************
  1302. *
  1303. *
  1304. *
  1305. **************************************************************
  1306. * deduction du champ de deformation maximale
  1307. **************************************************************
  1308. *
  1309. MESS '';
  1310. MESS '--------------------------------------------------------------';
  1311. MESS '-- Calcul Deformation Maximale --';
  1312. MESS '--------------------------------------------------------------';
  1313. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  1314. DEF_C = 'TABLE';
  1315. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  1316. DEFC = 'TABLE';
  1317. II1 = 1;
  1318. 'REPE' IND1 (NZONE_C);
  1319. DEF_C. II1 = 'TABLE';
  1320. JJ1 = 1;
  1321. 'REPE' IND2 ('DIME' (SOL_C. II1));
  1322. DEF_C. II1 . JJ1 = 'MANU' 'CHML' (MOD_C. II1 . JJ1) 'DMAX' 0.0;
  1323. JJ1 = JJ1 + 1;
  1324. 'FIN' IND2;
  1325. II1 = II1 + 1;
  1326. 'FIN' IND1;
  1327. II1 = 1;
  1328. 'REPE' IND1 (NZONEC);
  1329. DEFC. II1 = 'TABLE';
  1330. JJ1 = 1;
  1331. 'REPE' IND2 ('DIME' (SOLCOL. II1));
  1332. DEFC. II1 . JJ1 = 'MANU' 'CHML' (MODCOL. II1 . JJ1) 'DMAX' 0.0;
  1333. JJ1 = JJ1 + 1;
  1334. 'FIN' IND2;
  1335. II1 = II1 + 1;
  1336. 'FIN' IND1;
  1337. 'SINON';
  1338. II1 = 1;
  1339. 'REPE' IND1 (NZONE_C);
  1340. DEF_C. II1 = 'MANU' 'CHML' (MOD_C. II1) 'DMAX' 0.0;
  1341. II1 = II1 + 1;
  1342. 'FIN' IND1;
  1343. 'FINSI';
  1344. 'FINSI';
  1345. *
  1346. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  1347. DEF_I = 'TABLE';
  1348. II1 = 1;
  1349. 'REPE' IND1 ('DIME' SOL_I);
  1350. * DEF_I. II1 = 'TABLE';
  1351. * JJ1 = 1;
  1352. * 'REPE' IND2 ('DIME' (SOL_I. II1));
  1353. * DEF_I. II1 . JJ1 = 'MANU' 'CHML' (MOD_I. II1 . JJ1) 'DMAX' 0.0;
  1354. * JJ1 = JJ1 + 1;
  1355. * 'FIN' IND2;
  1356. DEF_I. II1 = 'MANU' 'CHML' (MOD_I. II1) 'DMAX' 0.0;
  1357. II1 = II1 + 1;
  1358. 'FIN' IND1;
  1359. 'FINSI';
  1360. *
  1361. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  1362. I = 1;
  1363. 'REPE' IND1 (NN1);
  1364. 'SI' (I '>' (NN2));
  1365. 'SI' ('EGA' ('TYPE' CH1) 'CHPOINT');
  1366. 'SI' ('EGA' ('TYPE' TRESUXC) 'TABLE');
  1367. CH1 = CH1 + (TRESUXC. I .'DEPL');
  1368. 'FINSI';
  1369. 'SI' ('EGA' ('TYPE' TRESUYC) 'TABLE');
  1370. CH1 = CH1 + (TRESUYC. I .'DEPL');
  1371. 'FINSI';
  1372. 'SI' ('EGA' ('TYPE' TRESUZC) 'TABLE');
  1373. CH1 = CH1 + (TRESUZC. I .'DEPL');
  1374. 'FINSI';
  1375. 'SINON';
  1376. 'SI' ('EGA' ('TYPE' TRESUXC) 'TABLE');
  1377. CH1 = (TRESUXC. I .'DEPL');
  1378. 'FINSI';
  1379. 'SI' ('EGA' ('TYPE' TRESUYC) 'TABLE');
  1380. CH1 = (TRESUYC. I .'DEPL');
  1381. 'FINSI';
  1382. 'SI' ('EGA' ('TYPE' TRESUZC) 'TABLE');
  1383. CH1 = (TRESUZC. I .'DEPL');
  1384. 'FINSI';
  1385. 'FINSI';
  1386.  
  1387. * DEPSOL = 'REDU' (TRESUC. I .'DEPL') ('EXTR' MODSOLC 'MAIL');
  1388. DEPSOL = 'REDU' (CH1) ('EXTR' MODSOLC 'MAIL');
  1389. 'OUBL' CH1;
  1390.  
  1391. EPSSOL = 'EPSI' DEPSOL MODSOLC;
  1392. EPSSOL = 'CHAN' 'GRAVITE' MODSOLC EPSSOL;
  1393. *
  1394. * Cas 3D - COLONNE
  1395. 'SI' ('EGA' V_MOD 'TRID' ) ;
  1396. II1 = 1;
  1397. 'REPE' IND3 (NZONEC);
  1398. JJ1 = 1;
  1399. 'REPE' IND4 ('DIME' (SOLCOL. II1));
  1400. MOD1 = 'REDU' MODSOLC (SOLCOL. II1 . JJ1);
  1401. EPS1 = 'REDU' EPSSOL (SOLCOL. II1 . JJ1);
  1402. E11 = EXCO 'EPXX' EPS1 'SMXX' ;
  1403. E22 = EXCO 'EPYY' EPS1 'SMYY' ;
  1404. E33 = EXCO 'EPZZ' EPS1 'SMZZ' ;
  1405. G12 = EXCO 'GAXY' EPS1 'SMXY' ;
  1406. G13 = EXCO 'GAXZ' EPS1 'SMXZ' ;
  1407. G23 = EXCO 'GAYZ' EPS1 'SMYZ' ;
  1408. E12 = G12 / 2.0 ;
  1409. E13 = G13 / 2.0 ;
  1410. E23 = G23 / 2.0 ;
  1411. EPS2 = E11;
  1412. EPS2 = EPS2 + (E22);
  1413. EPS2 = EPS2 + (E33);
  1414. EPS2 = EPS2 + (E12);
  1415. EPS2 = EPS2 + (E13);
  1416. EPS2 = EPS2 + (E23);
  1417. EPS2 = CHAN 'TYPE' EPS2 'CONTRAINTES' ;
  1418. EPS2 = 'PRIN' EPS2 MOD1;
  1419. 'DETR' E11;
  1420. 'DETR' E22;
  1421. 'DETR' E33;
  1422. 'DETR' G12;
  1423. 'DETR' G13;
  1424. 'DETR' G23;
  1425. 'DETR' E12;
  1426. 'DETR' E13;
  1427. 'DETR' E23;
  1428. S11 = 'EXCO' SI11 EPS2 'DMAX' ;
  1429. S33 = 'EXCO' SI33 EPS2 'DMAX' ;
  1430. CHDEFM = (S11 - S33)*(0.5);
  1431. VAL1 = 'EXTR' CHDEFM 'DMAX' 1 1 1;
  1432. VAL2 = 'EXTR' (DEFC. II1 . JJ1) 'DMAX' 1 1 1;
  1433. 'SI' (VAL1 > VAL2);
  1434. DEFC. II1 . JJ1= CHDEFM;
  1435. 'FINSI';
  1436. JJ1 = JJ1 + 1;
  1437. 'FIN' IND4;
  1438. II1 = II1 + 1;
  1439. 'FIN' IND3;
  1440. 'FINSI';
  1441. 'FINSI';
  1442. I = I + 1;
  1443. 'FIN' IND1;
  1444. 'SINON';
  1445. *
  1446. CHDEFM_I = 'TABLE';
  1447. CHDEFM_C = 'TABLE';
  1448. I = 1;
  1449. 'REPE' IND1 (NN1);
  1450. 'SI' (I '>' (NN2));
  1451. 'SI' ('EGA' ('TYPE' CH1) 'CHPOINT');
  1452. 'SI' ('EGA' ('TYPE' TRESUX) 'TABLE');
  1453. CH1 = CH1 + (TRESUX. I .'DEPL');
  1454. 'FINSI';
  1455. 'SI' ('EGA' ('TYPE' TRESUY) 'TABLE');
  1456. CH1 = CH1 + (TRESUY. I .'DEPL');
  1457. 'FINSI';
  1458. 'SI' ('EGA' ('TYPE' TRESUZ) 'TABLE');
  1459. CH1 = CH1 + (TRESUZ. I .'DEPL');
  1460. 'FINSI';
  1461. 'SINON';
  1462. 'SI' ('EGA' ('TYPE' TRESUX) 'TABLE');
  1463. CH1 = (TRESUX. I .'DEPL');
  1464. 'FINSI';
  1465. 'SI' ('EGA' ('TYPE' TRESUY) 'TABLE');
  1466. CH1 = (TRESUY. I .'DEPL');
  1467. 'FINSI';
  1468. 'SI' ('EGA' ('TYPE' TRESUZ) 'TABLE');
  1469. CH1 = (TRESUZ. I .'DEPL');
  1470. 'FINSI';
  1471. 'FINSI';
  1472. * DEPSOL = 'REDU' (TRESU. I .'DEPL') ('EXTR' MODTOT 'MAIL');
  1473. DEPSOL = 'REDU' (CH1) ('EXTR' MODTOT 'MAIL');
  1474. 'OUBL' CH1;
  1475. EPSSOL = 'EPSI' DEPSOL MODTOT;
  1476. EPSSOL = 'CHAN' 'GRAVITE' MODTOT EPSSOL;
  1477. *
  1478. * Cas 3D
  1479. 'SI' ('EGA' V_MOD 'TRID' ) ;
  1480. *
  1481. ******** VECCHIA VERSIONE
  1482. * 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  1483. * II1 = 1;
  1484. * 'REPE' IND3 (NZONE_C);
  1485. * MOD1 = 'REDU' MODTOT (SOL_C. II1);
  1486. * EPS1 = 'REDU' EPSSOL (SOL_C. II1);
  1487. * E11 = EXCO 'EPXX' EPS1 'SMXX' ;
  1488. * E22 = EXCO 'EPYY' EPS1 'SMYY' ;
  1489. * E33 = EXCO 'EPZZ' EPS1 'SMZZ' ;
  1490. * G12 = EXCO 'GAXY' EPS1 'SMXY' ;
  1491. * G13 = EXCO 'GAXZ' EPS1 'SMXZ' ;
  1492. * G23 = EXCO 'GAYZ' EPS1 'SMYZ' ;
  1493. * E12 = G12 / 2.0 ;
  1494. * E13 = G13 / 2.0 ;
  1495. * E23 = G23 / 2.0 ;
  1496. * EPS2 = E11;
  1497. * EPS2 = EPS2 + (E22);
  1498. * EPS2 = EPS2 + (E33);
  1499. * EPS2 = EPS2 + (E12);
  1500. * EPS2 = EPS2 + (E13);
  1501. * EPS2 = EPS2 + (E23);
  1502. * EPS2 = CHAN 'TYPE' EPS2 'CONTRAINTES' ;
  1503. * EPS2 = 'PRIN' EPS2 MOD1;
  1504. * 'DETR' E11;
  1505. * 'DETR' E22;
  1506. * 'DETR' E33;
  1507. * 'DETR' G12;
  1508. * 'DETR' G13;
  1509. * 'DETR' G23;
  1510. * 'DETR' E12;
  1511. * 'DETR' E13;
  1512. * 'DETR' E23;
  1513. * S11 = 'EXCO' SI11 EPS2 'DMAX' ;
  1514. * S33 = 'EXCO' SI33 EPS2 'DMAX' ;
  1515. * CHDEFM = (S11 - S33)*(0.5);
  1516. * VAL1 = 'EXTR' CHDEFM 'DMAX' 1 1 1;
  1517. * VAL2 = 'EXTR' (DEF_C. II1) 'DMAX' 1 1 1;
  1518. * 'SI' (VAL1 > VAL2);
  1519. * DEF_C. II1 = CHDEFM;
  1520. * 'FINSI';
  1521. * II1 = II1 + 1;
  1522. * 'FIN' IND3;
  1523. * 'FINSI';
  1524. * 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  1525. * II1 = 1;
  1526. * 'REPE' IND3 (NZONE_I);
  1527. * JJ1 = 1;
  1528. * 'REPE' IND4 ('DIME' SOL_I. II1);
  1529. * MOD1 = 'REDU' MODTOT (SOL_I. II1 . JJ1);
  1530. * EPS1 = 'REDU' EPSSOL (SOL_I. II1 . JJ1);
  1531. * E11 = 'EXCO' 'EPXX' EPS1 'SMXX' ;
  1532. * E22 = 'EXCO' 'EPYY' EPS1 'SMYY' ;
  1533. * E33 = 'EXCO' 'EPZZ' EPS1 'SMZZ' ;
  1534. * G12 = 'EXCO' 'GAXY' EPS1 'SMXY' ;
  1535. * G13 = 'EXCO' 'GAXZ' EPS1 'SMXZ' ;
  1536. * G23 = 'EXCO' 'GAYZ' EPS1 'SMYZ' ;
  1537. * E12 = G12 / 2.0 ;
  1538. * E13 = G13 / 2.0 ;
  1539. * E23 = G23 / 2.0 ;
  1540. * EPS2 = E11;
  1541. * EPS2 = EPS2 + (E22);
  1542. * EPS2 = EPS2 + (E33);
  1543. * EPS2 = EPS2 + (E12);
  1544. * EPS2 = EPS2 + (E13);
  1545. * EPS2 = EPS2 + (E23);
  1546. * EPS2 = 'CHAN' 'TYPE' EPS2 'CONTRAINTES' ;
  1547. * EPS2 = 'PRIN' EPS2 MOD1;
  1548. * 'DETR' E11;
  1549. * 'DETR' E22;
  1550. * 'DETR' E33;
  1551. * 'DETR' G12;
  1552. * 'DETR' G13;
  1553. * 'DETR' G23;
  1554. * 'DETR' E12;
  1555. * 'DETR' E13;
  1556. * 'DETR' E23;
  1557. * EPS2 = 'PRIN' EPS1 MOD1;
  1558. * S11 = 'EXCO' SI11 EPS2 'DMAX' ;
  1559. * S33 = 'EXCO' SI33 EPS2 'DMAX' ;
  1560. * CHDEFM = (S11 - S33)*(0.5);
  1561. * VAL1 = 'EXTR' CHDEFM 'DMAX' 1 1 1;
  1562. * VAL2 = 'EXTR' (DEF_I. II1 . JJ1) 'DMAX' 1 1 1;
  1563. * 'SI' (VAL1 > VAL2);
  1564. * DEF_I. II1 . JJ1 = CHDEFM;
  1565. * 'FINSI';
  1566. * JJ1 = JJ1 + 1;
  1567. * 'FIN' IND4;
  1568. * II1 = II1 + 1;
  1569. * 'FIN' IND3;
  1570. * 'FINSI';
  1571. *
  1572. ******** NUOVA VERSIONE
  1573. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  1574. * CHDEFM_C = 'TABLE';
  1575. II1 = 1;
  1576. 'REPE' IND3 (NZONE_C);
  1577. 'SI' (I EGA (NN2 + 1));
  1578. MOD1 = 'REDU' MODTOT (SOL_C. II1);
  1579. EPS1 = 'REDU' EPSSOL (SOL_C. II1);
  1580. E11 = EXCO 'EPXX' EPS1 'SMXX' ;
  1581. E22 = EXCO 'EPYY' EPS1 'SMYY' ;
  1582. E33 = EXCO 'EPZZ' EPS1 'SMZZ' ;
  1583. G12 = EXCO 'GAXY' EPS1 'SMXY' ;
  1584. G13 = EXCO 'GAXZ' EPS1 'SMXZ' ;
  1585. G23 = EXCO 'GAYZ' EPS1 'SMYZ' ;
  1586. E12 = G12 / 2.0 ;
  1587. E13 = G13 / 2.0 ;
  1588. E23 = G23 / 2.0 ;
  1589. EPS2 = E11;
  1590. EPS2 = EPS2 + (E22);
  1591. EPS2 = EPS2 + (E33);
  1592. EPS2 = EPS2 + (E12);
  1593. EPS2 = EPS2 + (E13);
  1594. EPS2 = EPS2 + (E23);
  1595. EPS2 = CHAN 'TYPE' EPS2 'CONTRAINTES' ;
  1596. EPS2 = 'PRIN' EPS2 MOD1;
  1597. 'DETR' E11;
  1598. 'DETR' E22;
  1599. 'DETR' E33;
  1600. 'DETR' G12;
  1601. 'DETR' G13;
  1602. 'DETR' G23;
  1603. 'DETR' E12;
  1604. 'DETR' E13;
  1605. 'DETR' E23;
  1606. S11 = 'EXCO' SI11 EPS2 'DMAX' ;
  1607. S33 = 'EXCO' SI33 EPS2 'DMAX' ;
  1608. * CHDEFM_C. II1 = (S11 - S33)*(0.5);
  1609. CHDEFM_C. II1 = (S11 - S33)*(1.0);
  1610. 'SINON';
  1611. MOD1 = 'REDU' MODTOT (SOL_C. II1);
  1612. EPS1 = 'REDU' EPSSOL (SOL_C. II1);
  1613. E11 = EXCO 'EPXX' EPS1 'SMXX' ;
  1614. E22 = EXCO 'EPYY' EPS1 'SMYY' ;
  1615. E33 = EXCO 'EPZZ' EPS1 'SMZZ' ;
  1616. G12 = EXCO 'GAXY' EPS1 'SMXY' ;
  1617. G13 = EXCO 'GAXZ' EPS1 'SMXZ' ;
  1618. G23 = EXCO 'GAYZ' EPS1 'SMYZ' ;
  1619. E12 = G12 / 2.0 ;
  1620. E13 = G13 / 2.0 ;
  1621. E23 = G23 / 2.0 ;
  1622. EPS2 = E11;
  1623. EPS2 = EPS2 + (E22);
  1624. EPS2 = EPS2 + (E33);
  1625. EPS2 = EPS2 + (E12);
  1626. EPS2 = EPS2 + (E13);
  1627. EPS2 = EPS2 + (E23);
  1628. EPS2 = CHAN 'TYPE' EPS2 'CONTRAINTES' ;
  1629. EPS2 = 'PRIN' EPS2 MOD1;
  1630. 'DETR' E11;
  1631. 'DETR' E22;
  1632. 'DETR' E33;
  1633. 'DETR' G12;
  1634. 'DETR' G13;
  1635. 'DETR' G23;
  1636. 'DETR' E12;
  1637. 'DETR' E13;
  1638. 'DETR' E23;
  1639. S11 = 'EXCO' SI11 EPS2 'DMAX' ;
  1640. S33 = 'EXCO' SI33 EPS2 'DMAX' ;
  1641. * CHDEFM_C. II1 = MAXI (CHDEFM_C. II1) ((S11 - S33)*(0.5));
  1642. CH_111 = (CHDEFM_C. II1);
  1643. * CH_222 = ((S11 - S33)*(0.5));
  1644. CH_222 = ((S11 - S33)*(1.0));
  1645. DIF_11 = CH_111 - CH_222;
  1646. MASQ1 = MASQ DIF_11 'INFEURIEUR' 0.D0;
  1647. MASQ2 = MASQ DIF_11 'EGSUPE' 0.D0;
  1648. CHDEFM_C. II1 = (CH_111 '*' MASQ2) + (CH_222 '*' MASQ1);
  1649. 'FINSI';
  1650. DEF_C. II1 = CHDEFM_C. II1;
  1651. II1 = II1 + 1;
  1652. 'FIN' IND3;
  1653. 'FINSI';
  1654. *
  1655. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  1656. * CHDEFM_I = 'TABLE';
  1657. II1 = 1;
  1658. 'REPE' IND3 (NZONE_I);
  1659. 'SI' (I EGA (NN2 + 1));
  1660. MOD1 = 'REDU' MODTOT (SOL_I. II1);
  1661. EPS1 = 'REDU' EPSSOL (SOL_I. II1);
  1662. E11 = 'EXCO' 'EPXX' EPS1 'SMXX' ;
  1663. E22 = 'EXCO' 'EPYY' EPS1 'SMYY' ;
  1664. E33 = 'EXCO' 'EPZZ' EPS1 'SMZZ' ;
  1665. G12 = 'EXCO' 'GAXY' EPS1 'SMXY' ;
  1666. G13 = 'EXCO' 'GAXZ' EPS1 'SMXZ' ;
  1667. G23 = 'EXCO' 'GAYZ' EPS1 'SMYZ' ;
  1668. E12 = G12 / 2.0 ;
  1669. E13 = G13 / 2.0 ;
  1670. E23 = G23 / 2.0 ;
  1671. EPS2 = E11;
  1672. EPS2 = EPS2 + (E22);
  1673. EPS2 = EPS2 + (E33);
  1674. EPS2 = EPS2 + (E12);
  1675. EPS2 = EPS2 + (E13);
  1676. EPS2 = EPS2 + (E23);
  1677. EPS2 = 'CHAN' 'TYPE' EPS2 'CONTRAINTES' ;
  1678. EPS2 = 'PRIN' EPS2 MOD1;
  1679. 'DETR' E11;
  1680. 'DETR' E22;
  1681. 'DETR' E33;
  1682. 'DETR' G12;
  1683. 'DETR' G13;
  1684. 'DETR' G23;
  1685. 'DETR' E12;
  1686. 'DETR' E13;
  1687. 'DETR' E23;
  1688. * EPS2 = 'PRIN' EPS1 MOD1;
  1689. * EPS2 = 'PRIN' EPS2 MOD1;
  1690. S11 = 'EXCO' SI11 EPS2 'DMAX' ;
  1691. S33 = 'EXCO' SI33 EPS2 'DMAX' ;
  1692. * CHDEFM_I. II1 = (S11 - S33)*(0.5);
  1693. CHDEFM_I. II1 = (S11 - S33)*(1.0);
  1694. 'SINON';
  1695. MOD1 = 'REDU' MODTOT (SOL_I. II1);
  1696. EPS1 = 'REDU' EPSSOL (SOL_I. II1);
  1697. E11 = 'EXCO' 'EPXX' EPS1 'SMXX' ;
  1698. E22 = 'EXCO' 'EPYY' EPS1 'SMYY' ;
  1699. E33 = 'EXCO' 'EPZZ' EPS1 'SMZZ' ;
  1700. G12 = 'EXCO' 'GAXY' EPS1 'SMXY' ;
  1701. G13 = 'EXCO' 'GAXZ' EPS1 'SMXZ' ;
  1702. G23 = 'EXCO' 'GAYZ' EPS1 'SMYZ' ;
  1703. E12 = G12 / 2.0 ;
  1704. E13 = G13 / 2.0 ;
  1705. E23 = G23 / 2.0 ;
  1706. EPS2 = E11;
  1707. EPS2 = EPS2 + (E22);
  1708. EPS2 = EPS2 + (E33);
  1709. EPS2 = EPS2 + (E12);
  1710. EPS2 = EPS2 + (E13);
  1711. EPS2 = EPS2 + (E23);
  1712. EPS2 = 'CHAN' 'TYPE' EPS2 'CONTRAINTES' ;
  1713. EPS2 = 'PRIN' EPS2 MOD1;
  1714. 'DETR' E11;
  1715. 'DETR' E22;
  1716. 'DETR' E33;
  1717. 'DETR' G12;
  1718. 'DETR' G13;
  1719. 'DETR' G23;
  1720. 'DETR' E12;
  1721. 'DETR' E13;
  1722. 'DETR' E23;
  1723. * EPS2 = 'PRIN' EPS1 MOD1;
  1724. * EPS2 = 'PRIN' EPS2 MOD1;
  1725. S11 = 'EXCO' SI11 EPS2 'DMAX' ;
  1726. S33 = 'EXCO' SI33 EPS2 'DMAX' ;
  1727. * CHDEFM_I. II1 = MAXI (CHDEFM_I. II1) ((S11 - S33)*(0.5));
  1728. CH_111 = (CHDEFM_I. II1);
  1729. * CH_222 = ((S11 - S33)*(0.5));
  1730. CH_222 = ((S11 - S33)*(1.0));
  1731. DIF_11 = CH_111 - CH_222;
  1732. MASQ1 = MASQ DIF_11 'INFEURIEUR' 0.D0;
  1733. MASQ2 = MASQ DIF_11 'EGSUPE' 0.D0;
  1734. CHDEFM_I. II1 = (CH_111 '*' MASQ2) + (CH_222 '*' MASQ1);
  1735. 'FINSI';
  1736. DEF_I. II1 = CHDEFM_I. II1;
  1737. II1 = II1 + 1;
  1738. 'FIN' IND3;
  1739. 'FINSI';
  1740. 'FINSI';
  1741. 'FINSI';
  1742. I = I + 1;
  1743. 'FIN' IND1;
  1744. 'FINSI';
  1745. 'OUBL' NN1;
  1746. 'OUBL' NN2;
  1747. 'OUBL' DEPSOL;
  1748. 'OUBL' EPSSOL;
  1749. 'OUBL' MOD1;
  1750. 'OUBL' EPS1;
  1751. 'OUBL' EPS2;
  1752. 'OUBL' S11;
  1753. 'OUBL' S33;
  1754. 'OUBL' CHDEFM;
  1755. 'OUBL' VAL1;
  1756. 'OUBL' VAL2;
  1757. 'OUBL' II1;
  1758. 'OUBL' JJ1;
  1759. *
  1760. 'SI' ('EGA' ('TYPE' DEF_I) 'TABLE');
  1761. DEF_SOLI = 'VIDE' 'MCHAML';
  1762. * NN1 = 'DIME' DEF_I;
  1763. I = 1;
  1764. 'REPE' IND1 (NZONE_I);
  1765. * J = 1;
  1766. * NN2 = 'DIME' (DEF_I. I);
  1767. * 'REPE' IND2 (NN2);
  1768. * DEF_SOLI = DEF_SOLI 'ET' (DEF_I. I . J);
  1769. * J = J + 1;
  1770. * 'FIN' IND2;
  1771. DEF_SOLI = DEF_SOLI 'ET' (DEF_I. I);
  1772. I = I + 1;
  1773. 'FIN' IND1;
  1774. 'FINSI';
  1775. *
  1776. 'SI' ('EGA' ('TYPE' DEF_C) 'TABLE');
  1777. DEF_SOLC = 'VIDE' 'MCHAML';
  1778. * NN1 = 'DIME' DEF_C;
  1779. I = 1;
  1780. 'REPE' IND1 (NZONE_C);
  1781. DEF_SOLC = DEF_SOLC 'ET' (DEF_C. I);
  1782. I = I + 1;
  1783. 'FIN' IND1;
  1784. 'FINSI';
  1785. *
  1786. 'SI' ('EGA' ('TYPE' DEFC) 'TABLE');
  1787. DEF_SOLI = 'VIDE' 'MCHAML';
  1788. * NN1 = 'DIME' DEFC;
  1789. I = 1;
  1790. 'REPE' IND1 (NZONEC);
  1791. J = 1;
  1792. NN2 = 'DIME' (DEFC. I);
  1793. 'REPE' IND2 (NN2);
  1794. DEFCOL = DEFCOL 'ET' (DEFC. I . J);
  1795. J = J + 1;
  1796. 'FIN' IND2;
  1797. I = I + 1;
  1798. 'FIN' IND1;
  1799. 'FINSI';
  1800. *
  1801. **************************************************************
  1802. * Modification des matrices
  1803. **************************************************************
  1804. *
  1805. MESS '';
  1806. MESS '--------------------------------------------------------------';
  1807. MESS '-- Modification termes K et C --';
  1808. MESS '--------------------------------------------------------------';
  1809. ALPHA = 4.0 * PI * F1 * F2 / ( F1 + F2 ) ;
  1810. BETA = 1.0 / ( PI * ( F1 + F2 ) ) ;
  1811.  
  1812. 'SI' (EXIST (TDON1.MOT33.'SOL') 'CONSTANTE');
  1813. *
  1814. ESO_C_N = TABLE;
  1815. MAT_C_N = TABLE;
  1816. KSI_C_N = TABLE;
  1817. RIG_C_N = TABLE;
  1818. AMO_C_N = TABLE;
  1819. GGO_C_N = TABLE;
  1820. *
  1821. 'FINSI';
  1822. *
  1823. 'SI' (EXIST (TDON1.MOT33.'SOL') 'ITERATION');
  1824. TABRES_I = TDON1.MOT33.'SOL'.'ITERATION';
  1825. *
  1826. ESO_I_N = TABLE;
  1827. MAT_I_N = TABLE;
  1828. KSI_I_N = TABLE;
  1829. RIG_I_N = TABLE;
  1830. AMO_I_N = TABLE;
  1831. GGO_I_N = TABLE;
  1832. *
  1833. 'FINSI';
  1834. *
  1835. 'SI' (EXIST (TDON1.MOT33) 'COLONNE');
  1836. TABRESC = TDON1.MOT33.'COLONNE';
  1837. *
  1838. ESOCOL_N = TABLE;
  1839. MATCOL_N = TABLE;
  1840. KSICOL_N = TABLE;
  1841. RIGCOL_N = TABLE;
  1842. AMOCOL_N = TABLE;
  1843. GGOCOL_N = TABLE;
  1844. *
  1845. 'FINSI';
  1846. *
  1847. 'SI' ('EXIST' (TDON1.MOT33.'SOL') 'ITERATION');
  1848. * NN1 = 'DIME' DEF_I;
  1849. I = 1;
  1850. 'REPE' IND1 (NZONE_I);
  1851. *
  1852. * VECCHIA VERSIONE
  1853. * ESO_I_N. I = TABLE;
  1854. * MAT_I_N. I = TABLE;
  1855. * KSI_I_N. I = TABLE;
  1856. * RIG_I_N. I = TABLE;
  1857. * AMO_I_N. I = TABLE;
  1858. * GGO_I_N. I = TABLE;
  1859. * J = 1;
  1860. * 'REPE' IND2 ('DIME' (DEF_I. I));
  1861. * LLGAM1 = 'EXTR' (TABSOL_I. I .'G_GAMMA') ABSC;
  1862. * LLGAM2 = 'EXTR' (TABSOL_I. I .'H_GAMMA') ABSC;
  1863. * LLGG01 = 'EXTR' (TABSOL_I. I .'G_GAMMA') ORDO;
  1864. * LLEPS1 = 'EXTR' (TABSOL_I. I .'H_GAMMA') ORDO;
  1865. * VDEF1 = (TABPAR.'CHI')*('EXTR' (DEF_I. I .J)
  1866. * 'DMAX' 1 1 1);
  1867. * 'SI' (VDEF1 < ('EXTR' LLGAM1 1));
  1868. * VGG01 = 'EXTR' LLGG01 1;
  1869. * 'SINON';
  1870. * 'SI' (VDEF1 > ('EXTR' LLGAM1 ('DIME' LLGAM1)));
  1871. * VGG01 = 'EXTR' LLGG01 ('DIME' LLGAM1);
  1872. * 'SINON';
  1873. * VGG01 = 'EXTR' (IPOL (LOG ('PROG' VDEF1))
  1874. * (LOG LLGAM1) LLGG01) 1 ;
  1875. *
  1876. * 'FINSI';
  1877. * 'FINSI';
  1878. * 'SI' (VDEF1 < ('EXTR' LLGAM2 1));
  1879. * VEPS1 = 'EXTR' LLEPS1 1;
  1880. * 'SINON';
  1881. * 'SI' (VDEF1 > ('EXTR' LLGAM2 ('DIME' LLGAM2)));
  1882. * VEPS1 = 'EXTR' LLEPS1 ('DIME' LLGAM2);
  1883. * 'SINON';
  1884. * VEPS1 = EXTR (IPOL (LOG (PROG VDEF1))
  1885. * (LOG LLGAM2) LLEPS1) 1 ;
  1886. * 'FINSI';
  1887. * 'FINSI';
  1888. *
  1889. * ESO_I_N. I . J = VGG01*(TABSOL_I. I .'MODULE_E');
  1890. * MAT_I_N. I . J = 'MATE' (MOD_I. I . J )
  1891. * 'YOUN' (ESO_I_N. I . J) 'NU' (TABSOL_I. I .'POISSON')
  1892. * 'RHO' (TABSOL_I. I .'MASSE_VOLUMIQUE');
  1893. * GGO_I_N. I . J = 'MANU' 'CHML' MOD_I.I.J 'G_GO' VGG01;
  1894. * KSI_I_N. I . J = 'MANU' 'CHML' MOD_I.I.J 'KS' VEPS1;
  1895. * RIG_I_N. I . J = 'RIGI' (MOD_I.I.J) (MAT_I_N.I.J) ;
  1896. * AMO_I_N. I . J = (VEPS1) * (((ALPHA) * (MAS_I. I . J))
  1897. * 'ET' ((BETA) * (RIG_I_N. I . J)));
  1898. *
  1899. * J = J + 1;
  1900. * 'FIN' IND2;
  1901. *
  1902. * NUOVA VERSIONE
  1903. LLGAM1 = 'EXTR' (TABSOL_I. I .'G_GAMMA') ABSC;
  1904. LLGAM2 = 'EXTR' (TABSOL_I. I .'H_GAMMA') ABSC;
  1905. LLGAM1 = LOG(LLGAM1);
  1906. LLGAM2 = LOG(LLGAM2);
  1907. LLGG01 = 'EXTR' (TABSOL_I. I .'G_GAMMA') ORDO;
  1908. LLEPS1 = 'EXTR' (TABSOL_I. I .'H_GAMMA') ORDO;
  1909.  
  1910. EV_CO1 = EVOL MANU 'DMAX' LLGAM1 'G/G0' LLGG01;
  1911. EV_CO2 = EVOL MANU 'DMAX' LLGAM2 'EPS' LLEPS1;
  1912.  
  1913.  
  1914. GGO_I_N. I = 'EXCO' (VARI (MOD_I. I)
  1915. (LOG((TABPAR.'CHI')*((DEF_I. I)))) EV_CO1 'GRAVITE')
  1916. 'SCAL' 'G_GO';
  1917.  
  1918. KSI_I_N. I = 'EXCO' (VARI (MOD_I. I)
  1919. (LOG((TABPAR.'CHI')*((DEF_I. I)))) EV_CO2 'GRAVITE')
  1920. 'SCAL' 'KS';
  1921.  
  1922. ESO_I_N. I = (GGO_I_N. I)*(TABSOL_I. I .'MODULE_E');
  1923. MAT_I_N. I = 'MATE' (MOD_I. I)
  1924. 'YOUN' (ESO_I_N. I) 'NU' (TABSOL_I. I .'POISSON')
  1925. 'RHO' (TABSOL_I. I .'MASSE_VOLUMIQUE');
  1926. RIG_I_N. I = 'RIGI' (MOD_I.I) (MAT_I_N.I) ;
  1927.  
  1928. MAT_PRO = 'MATE' (MOD_I. I) 'YOUN'
  1929. (((ESO_I_N. I)*(KSI_I_N. I))*(BETA))
  1930. 'NU' (TABSOL_I. I .'POISSON')
  1931. 'RHO'
  1932. (((TABSOL_I. I .'MASSE_VOLUMIQUE')*(KSI_I_N. I))*(ALPHA));
  1933. AMO_I_N. I = (MASS (MOD_I.I) MAT_PRO) ET (RIGI (MOD_I.I) MAT_PRO);
  1934. I = I + 1;
  1935. 'FIN' IND1;
  1936. 'FINSI';
  1937. *
  1938. 'SI' (EXIST (TDON1.MOT33.'SOL') 'CONSTANTE');
  1939. * NN1 = 'DIME' DEF_C;
  1940. I = 1;
  1941. 'REPE' IND1 (NZONE_C);
  1942. VGG01 = 'EXTR' (GGO_C. I) 'G_GO' 1 1 1;
  1943. VEPS1 = 'EXTR' (KSI_C. I) 'KS' 1 1 1;
  1944. *
  1945. ESO_C_N. I = VGG01*(TABSOL_C. I .'MODULE_E');
  1946. MAT_C_N. I = 'MATE' (MOD_C. I) 'YOUN' (ESO_C_N. I)
  1947. 'NU' (TABSOL_C. I .'POISSON')
  1948. 'RHO' (TABSOL_C. I .'MASSE_VOLUMIQUE');
  1949. GGO_C_N. I = 'MANU' 'CHML' MOD_C.I 'G_GO' VGG01;
  1950. KSI_C_N. I = 'MANU' 'CHML' MOD_C.I 'KS' VEPS1;
  1951. RIG_C_N. I = 'RIGI' (MOD_C.I) (MAT_C_N.I) ;
  1952. AMO_C_N. I = (VEPS1) * (((ALPHA) * (MAS_C. I))
  1953. 'ET' ((BETA) * (RIG_C_N. I)));
  1954. I = I + 1;
  1955. 'FIN' IND1;
  1956. 'FINSI';
  1957. *
  1958. **************************************************************
  1959. * Controle convergence
  1960. **************************************************************
  1961. *
  1962. MESS '';
  1963. MESS '--------------------------------------------------------------';
  1964. MESS '-- Critere de convergence --';
  1965. MESS '--------------------------------------------------------------';
  1966. *'SI' ( 'NON' ( 'EXIS' TOL_EPS ) ) ;
  1967. * TOL_EPS = 0.05 ;
  1968. *'FINSI' ;
  1969. TOL_EPS = TABPAR.'CRITERE';
  1970. *
  1971. K = 0;
  1972. 'SI' ('EXIST' (TDON1.MOT33.'SOL') 'ITERATION') ;
  1973. *
  1974. I = 1;
  1975. 'REPE' IND1 (NZONE_I);
  1976. L_ELE1 = (TABSOL_I.I.MAILLAGE) 'ELEM' 'TYPE';
  1977. J = 1;
  1978. 'REPE' IND2 (DIME L_ELE1);
  1979. JJ1 = 1;
  1980. MAI1 = ((TABSOL_I.I.'MAILLAGE') 'ELEM' ('EXTR'L_ELE1 J));
  1981. 'REPE' IND3 (NBEL MAI1);
  1982. ELE1 = MAI1 ELEM JJ1;
  1983. VAL0 = EXTR (REDU (GGO_I. I) ELE1) 'G_GO' 1 1 1 ;
  1984. VAL1 = EXTR (REDU (GGO_I_N. I) ELE1) 'G_GO' 1 1 1 ;
  1985. DELTA = ( 'ABS' ( VAL1 - VAL0 ) ) / VAL1 ;
  1986. 'SI' ( DELTA >EG 0.05 ) ;
  1987. K = K + 1 ;
  1988. 'FINSI' ;
  1989. JJ1 = JJ1 + 1;
  1990. 'FIN' IND3;
  1991. J = J + 1;
  1992. 'FIN' IND2;
  1993. * J = 1;
  1994. * 'REPE' IND2 ('DIME' (DEF_I. I ));
  1995. * VAL0 = EXTR (GGO_I. I . J) 'G_GO' 1 1 1 ;
  1996. * VAL1 = EXTR (GGO_I_N. I . J) 'G_GO' 1 1 1 ;
  1997. * DELTA = ( 'ABS' ( VAL1 - VAL0 ) ) / VAL1 ;
  1998. * 'SI' ( DELTA >EG 0.05 ) ;
  1999. * K = K + 1 ;
  2000. * 'FINSI' ;
  2001. * J = J + 1;
  2002. * 'FIN' IND2;
  2003. I = I + 1;
  2004. 'FIN' IND1;
  2005. *
  2006. 'MESS' '';
  2007. 'MESS'
  2008. '--------------------------------------------------------------';
  2009. TIT11 = 'CHAINE' '-- Non convergence sur '
  2010. K ' elements --';
  2011. 'MESS' TIT11;
  2012. 'MESS'
  2013. '--------------------------------------------------------------';
  2014. 'FINSI';
  2015. *
  2016. **************************************************************
  2017. * Assemblage
  2018. **************************************************************
  2019. *
  2020. 'MESS' '';
  2021. 'MESS' '--------------------------------------------------------------';
  2022. 'MESS' '-- Assemblage --';
  2023. 'MESS' '--------------------------------------------------------------';
  2024. I = 1;
  2025. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  2026. 'REPE' BLOC3 NZONE_I;
  2027. * NELEM_I = (DIME SOL_I.I);
  2028. *
  2029. * VECCHIA VERSIONE
  2030. * J = 1;
  2031. * 'REPE' BLOC31 NELEM_I ;
  2032. * 'SI' ( ( I 'EGA' 1 ) 'ET' ( J 'EGA' 1 ) ) ;
  2033. * 'SI' ('EXIST' (SOL_I. I) J);
  2034. * GGO_SI_N = GGO_I_N. I . J ;
  2035. * MAT_SI_N = MAT_I_N. I . J ;
  2036. * RIG_SI_N = RIG_I_N. I . J ;
  2037. * KSI_SI_N = KSI_I_N. I . J ;
  2038. * AMO_SI_N = AMO_I_N. I . J ;
  2039. * 'FINSI';
  2040. * 'SINON';
  2041. * 'SI' ('EXIST' (SOL_I. I) J);
  2042. * GGO_SI_N = GGO_SI_N 'ET' (GGO_I_N. I . J);
  2043. * MAT_SI_N = MAT_SI_N 'ET' (MAT_I_N. I . J);
  2044. * RIG_SI_N = RIG_SI_N 'ET' (RIG_I_N. I . J);
  2045. * KSI_SI_N = KSI_SI_N 'ET' (KSI_I_N. I . J);
  2046. * AMO_SI_N = AMO_SI_N 'ET' (AMO_I_N. I . J);
  2047. * 'FINSI';
  2048. * 'FINSI';
  2049. * J = J + 1;
  2050. * 'FIN' BLOC31;
  2051. *
  2052. * NUOVA VERSIONE
  2053. 'SI' ( ( I 'EGA' 1 )) ;
  2054. GGO_SI_N = GGO_I_N. I;
  2055. MAT_SI_N = MAT_I_N. I;
  2056. RIG_SI_N = RIG_I_N. I;
  2057. KSI_SI_N = KSI_I_N. I;
  2058. AMO_SI_N = AMO_I_N. I;
  2059. 'SINON';
  2060. GGO_SI_N = GGO_SI_N 'ET' (GGO_I_N. I);
  2061. MAT_SI_N = MAT_SI_N 'ET' (MAT_I_N. I);
  2062. RIG_SI_N = RIG_SI_N 'ET' (RIG_I_N. I);
  2063. KSI_SI_N = KSI_SI_N 'ET' (KSI_I_N. I);
  2064. AMO_SI_N = AMO_SI_N 'ET' (AMO_I_N. I);
  2065. 'FINSI';
  2066. I = I + 1;
  2067. 'FIN' BLOC3;
  2068. 'FINSI';
  2069. *
  2070. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  2071. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  2072. I = 1;
  2073. 'REPE' BLOC3 NZONEC;
  2074. NELEMC = (DIME SOLCOL.I);
  2075. J = 1;
  2076. 'REPE' BLOC31 NELEMC ;
  2077. 'SI' ( ( I 'EGA' 1 ) 'ET' ( J 'EGA' 1 ) ) ;
  2078. 'SI' ('EXIST' (SOLCOL. I) J);
  2079. GGOSC_N = GGOCOL_N. I . J ;
  2080. MATSC_N = MATCOL_N. I . J ;
  2081. RIGSC_N = RIGCOL_N. I . J ;
  2082. KSISC_N = KSICOL_N. I . J ;
  2083. AMOSC_N = AMOCOL_N. I . J ;
  2084. 'FINSI';
  2085. 'SINON';
  2086. 'SI' ('EXIST' (SOLCOL. I) J);
  2087. GGOSC_N = GGOSC_N 'ET' (GGOCOL_N. I . J);
  2088. MATSC_N = MATSC_N 'ET' (MATCOL_N. I . J);
  2089. RIGSC_N = RIGSC_N 'ET' (RIGCOL_N. I . J);
  2090. KSISC_N = KSISC_N 'ET' (KSICOL_N. I . J);
  2091. AMOSC_N = AMOSC_N 'ET' (AMOCOL_N. I . J);
  2092. 'FINSI';
  2093. 'FINSI';
  2094. J = J + 1;
  2095. 'FIN' BLOC31;
  2096. I = I + 1;
  2097. 'FIN' BLOC3;
  2098. *
  2099. I = 1;
  2100. 'REPE' BLOC3 NZONE_C;
  2101. NELEM_C = (DIME SOL_C.I);
  2102. J = 1;
  2103. 'REPE' BLOC31 NELEM_C ;
  2104. 'SI' ( ( I 'EGA' 1 ) 'ET' ( J 'EGA' 1 ) ) ;
  2105. 'SI' ('EXIST' (SOL_C. I) J);
  2106. GGO_SC_N = GGO_C_N. I . J ;
  2107. MAT_SC_N = MAT_C_N. I . J ;
  2108. RIG_SC_N = RIG_C_N. I . J ;
  2109. KSI_SC_N = KSI_C_N. I . J ;
  2110. AMO_SC_N = AMO_C_N. I . J ;
  2111. 'FINSI';
  2112. 'SINON';
  2113. 'SI' ('EXIST' (SOL_C. I) J);
  2114. GGO_SC_N = GGO_SC_N 'ET' (GGO_C_N. I . J);
  2115. MAT_SC_N = MAT_SC_N 'ET' (MAT_C_N. I . J);
  2116. RIG_SC_N = RIG_SC_N 'ET' (RIG_C_N. I . J);
  2117. KSI_SC_N = KSI_SC_N 'ET' (KSI_C_N. I . J);
  2118. AMO_SC_N = AMO_SC_N 'ET' (AMO_C_N. I . J);
  2119. 'FINSI';
  2120. 'FINSI';
  2121. J = J + 1;
  2122. 'FIN' BLOC31;
  2123. I = I + 1;
  2124. 'FIN' BLOC3;
  2125. 'SINON';
  2126. I = 1;
  2127. 'REPE' BLOC3 NZONE_C;
  2128. 'SI' ( ( I 'EGA' 1 )) ;
  2129. GGO_SC_N = GGO_C_N. I ;
  2130. MAT_SC_N = MAT_C_N. I ;
  2131. RIG_SC_N = RIG_C_N. I ;
  2132. KSI_SC_N = KSI_C_N. I ;
  2133. AMO_SC_N = AMO_C_N. I ;
  2134. 'SINON';
  2135. GGO_SC_N = GGO_SC_N 'ET' (GGO_C_N. I );
  2136. MAT_SC_N = MAT_SC_N 'ET' (MAT_C_N. I );
  2137. RIG_SC_N = RIG_SC_N 'ET' (RIG_C_N. I );
  2138. KSI_SC_N = KSI_SC_N 'ET' (KSI_C_N. I );
  2139. AMO_SC_N = AMO_SC_N 'ET' (AMO_C_N. I );
  2140. 'FINSI';
  2141. I = I + 1;
  2142. 'FIN' BLOC3;
  2143. 'FINSI';
  2144. 'FINSI';
  2145. *
  2146. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  2147. 'ELIM' MAI_SOLI 0.001 ;
  2148. DEF_SOLT = DEF_SOLI;
  2149. MAI_SOLT = MAI_SOLI;
  2150. MOD_SOLT = MOD_SOLI;
  2151. GGO_ST_N = GGO_SI_N;
  2152. MAT_ST_N = MAT_SI_N;
  2153. RIG_ST_N = RIG_SI_N;
  2154. MAS_SOLT = MAS_SOLI;
  2155. KSI_ST_N = KSI_SI_N;
  2156. AMO_ST_N = AMO_SI_N;
  2157. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  2158. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  2159. DEF_SOLT = DEF_SOLC 'ET' DEF_SOLI;
  2160. MAI_SOLT = MAI_SOLI 'ET' MAI_SOLC;
  2161. MOD_SOLT = MOD_SOLI 'ET' MOD_SOLC;
  2162. MAS_SOLT = MAS_SOLI 'ET' MAS_SOLC;
  2163. GGO_ST_N = GGO_ST_N 'ET' GGO_SOLC;
  2164. MAT_ST_N = MAT_ST_N 'ET' MAT_SOLC;
  2165. RIG_ST_N = RIG_ST_N 'ET' RIG_SOLC;
  2166. KSI_ST_N = KSI_ST_N 'ET' KSI_SOLC;
  2167. AMO_ST_N = AMO_ST_N 'ET' AMO_SOLC;
  2168. *
  2169. GGOST_C = GGOSC_N;
  2170. MATST_C = MATSC_N;
  2171. RIGST_C = RIGSC_N;
  2172. KSIST_C = KSISC_N;
  2173. AMOST_C = AMOSC_N;
  2174. 'SINON';
  2175. DEF_SOLT = DEF_SOLC 'ET' DEF_SOLI;
  2176. MAI_SOLT = MAI_SOLI 'ET' MAI_SOLC;
  2177. MOD_SOLT = MOD_SOLI 'ET' MOD_SOLC;
  2178. GGO_ST_N = GGO_ST_N 'ET' GGO_SOLC;
  2179. MAT_ST_N = MAT_ST_N 'ET' MAT_SOLC;
  2180. RIG_ST_N = RIG_ST_N 'ET' RIG_SOLC;
  2181. MAS_SOLT = MAS_SOLI 'ET' MAS_SOLC;
  2182. KSI_ST_N = KSI_ST_N 'ET' KSI_SOLC;
  2183. AMO_ST_N = AMO_ST_N 'ET' AMO_SOLC;
  2184. 'FINSI';
  2185. 'FINSI';
  2186. 'SINON';
  2187. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  2188. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  2189. DEF_SOLT = DEF_SOLC;
  2190. MAI_SOLT = MAI_SOLC;
  2191. MOD_SOLT = MOD_SOLC;
  2192. MAS_SOLT = MAS_SOLC;
  2193. GGO_ST_N = GGO_SOLC;
  2194. MAT_ST_N = MAT_SOLC;
  2195. RIG_ST_N = RIG_SOLC;
  2196. KSI_ST_N = KSI_SOLC;
  2197. AMO_ST_N = AMO_SOLC;
  2198. *
  2199. GGOST_C = GGOSC_N;
  2200. MATST_C = MATSC_N;
  2201. RIGST_C = RIGSC_N;
  2202. KSIST_C = KSISC_N;
  2203. AMOST_C = AMOSC_N;
  2204. 'SINON';
  2205. DEF_SOLT = DEF_SOLC;
  2206. GGO_ST_N = GGO_SOLC;
  2207. MAT_ST_N = MAT_SOLC;
  2208. RIG_ST_N = RIG_SOLC;
  2209. KSI_ST_N = KSI_SOLC;
  2210. AMO_ST_N = AMO_SOLC;
  2211. 'FINSI';
  2212. 'FINSI';
  2213. 'FINSI';
  2214. *
  2215. ELIM 0.001 MAI_SOLT;
  2216. *
  2217. **************************************************************
  2218. * Sauvegarde
  2219. **************************************************************
  2220. *
  2221. MESS '';
  2222. MESS '--------------------------------------------------------------';
  2223. MESS '-- Stockage --';
  2224. MESS '--------------------------------------------------------------';
  2225. *
  2226. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  2227. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  2228. TABRC_N = TABLE ;
  2229. TABRC_N.'T_SOL' = SOLCOL ;
  2230. TABRC_N.'T_ESO' = ESOCOL ;
  2231. TABRC_N.'T_MOD' = MODCOL ;
  2232. TABRC_N.'T_GGO' = GGOCOL_N ;
  2233. TABRC_N.'T_MAT' = MATCOL_N;
  2234. TABRC_N.'T_RIG' = RIGCOL_N ;
  2235. TABRC_N.'T_MAS' = MASCOL ;
  2236. TABRC_N.'T_KSI' = KSICOL_N ;
  2237. TABRC_N.'T_AMO' = AMOCOL_N ;
  2238. TABRC_N.'T_DIS' = DEFC ;
  2239. TABRC_N.'O_SOL' = MAISOLC ;
  2240. TABRC_N.'O_MOD' = MODSOLC ;
  2241. TABRC_N.'O_GGO' = GGOST_C ;
  2242. TABRC_N.'O_MAT' = MATST_C ;
  2243. TABRC_N.'O_RIG' = RIGST_C ;
  2244. TABRC_N.'O_MAS' = MASSOLC ;
  2245. TABRC_N.'O_KSI' = KSIST_C ;
  2246. TABRC_N.'O_AMO' = AMOST_C ;
  2247. TABRC_N.'O_DIS' = DEFCOL ;
  2248. *
  2249. TABR_C_N = TABLE ;
  2250. TABR_C_N.'T_SOL' = SOL_C ;
  2251. TABR_C_N.'T_ESO' = ESO_C_N ;
  2252. TABR_C_N.'T_MOD' = MOD_C ;
  2253. TABR_C_N.'T_GGO' = GGO_C_N ;
  2254. TABR_C_N.'T_MAT' = MAT_C_N ;
  2255. TABR_C_N.'T_RIG' = RIG_C_N ;
  2256. TABR_C_N.'T_MAS' = MAS_C ;
  2257. TABR_C_N.'T_KSI' = KSI_C_N ;
  2258. TABR_C_N.'T_AMO' = AMO_C_N ;
  2259. TABR_C_N.'T_DIS' = DEF_C ;
  2260. TABR_C_N.'O_SOL' = MAI_SOLC ;
  2261. TABR_C_N.'O_MOD' = MOD_SOLC ;
  2262. TABR_C_N.'O_GGO' = GGO_SC_N ;
  2263. TABR_C_N.'O_MAT' = MAT_SC_N ;
  2264. TABR_C_N.'O_RIG' = RIG_SC_N ;
  2265. TABR_C_N.'O_MAS' = MAS_SOLC ;
  2266. TABR_C_N.'O_KSI' = KSI_SC_N ;
  2267. TABR_C_N.'O_AMO' = AMO_SC_N ;
  2268. TABR_C_N.'O_DIS' = DEF_SOLC ;
  2269. 'SINON';
  2270. TABR_C_N = TABLE ;
  2271. TABR_C_N.'T_SOL' = SOL_C ;
  2272. TABR_C_N.'T_ESO' = ESO_C_N ;
  2273. TABR_C_N.'T_MOD' = MOD_C ;
  2274. TABR_C_N.'T_GGO' = GGO_C_N ;
  2275. TABR_C_N.'T_MAT' = MAT_C_N ;
  2276. TABR_C_N.'T_RIG' = RIG_C_N ;
  2277. TABR_C_N.'T_MAS' = MAS_C ;
  2278. TABR_C_N.'T_KSI' = KSI_C_N ;
  2279. TABR_C_N.'T_AMO' = AMO_C_N ;
  2280. TABR_C_N.'T_DIS' = DEF_C ;
  2281. TABR_C_N.'O_SOL' = MAI_SOLC ;
  2282. TABR_C_N.'O_MOD' = MOD_SOLC ;
  2283. TABR_C_N.'O_GGO' = GGO_SC_N ;
  2284. TABR_C_N.'O_MAT' = MAT_SC_N ;
  2285. TABR_C_N.'O_RIG' = RIG_SC_N ;
  2286. TABR_C_N.'O_MAS' = MAS_SOLC ;
  2287. TABR_C_N.'O_KSI' = KSI_SC_N ;
  2288. TABR_C_N.'O_AMO' = AMO_SC_N ;
  2289. TABR_C_N.'O_DIS' = DEF_SOLC ;
  2290. 'FINSI';
  2291. 'FINSI';
  2292. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  2293. TABR_I_N = TABLE ;
  2294. TABR_I_N.'T_SOL' = SOL_I ;
  2295. TABR_I_N.'T_ESO' = ESO_I_N ;
  2296. TABR_I_N.'T_MOD' = MOD_I ;
  2297. TABR_I_N.'T_GGO' = GGO_I_N ;
  2298. TABR_I_N.'T_MAT' = MAT_I_N ;
  2299. TABR_I_N.'T_RIG' = RIG_I_N ;
  2300. TABR_I_N.'T_MAS' = MAS_I ;
  2301. TABR_I_N.'T_KSI' = KSI_I_N ;
  2302. TABR_I_N.'T_AMO' = AMO_I_N ;
  2303. TABR_I_N.'T_DIS' = DEF_I ;
  2304. TABR_I_N.'O_SOL' = MAI_SOLI ;
  2305. TABR_I_N.'O_MOD' = MOD_SOLI ;
  2306. TABR_I_N.'O_GGO' = GGO_SI_N ;
  2307. TABR_I_N.'O_MAT' = MAT_SI_N ;
  2308. TABR_I_N.'O_RIG' = RIG_SI_N ;
  2309. TABR_I_N.'O_MAS' = MAS_SOLI ;
  2310. TABR_I_N.'O_KSI' = KSI_SI_N ;
  2311. TABR_I_N.'O_AMO' = AMO_SI_N ;
  2312. TABR_I_N.'O_DIS' = DEF_SOLI ;
  2313. 'FINSI';
  2314. *
  2315. TABR_T_N = TABLE;
  2316. TABR_T_N.'O_SOL' = MAI_SOLT ;
  2317. TABR_T_N.'O_MOD' = MOD_SOLT ;
  2318. TABR_T_N.'O_GGO' = GGO_ST_N ;
  2319. TABR_T_N.'O_MAT' = MAT_ST_N ;
  2320. TABR_T_N.'O_RIG' = RIG_ST_N ;
  2321. TABR_T_N.'O_MAS' = MAS_SOLT ;
  2322. TABR_T_N.'O_KSI' = KSI_ST_N ;
  2323. TABR_T_N.'O_AMO' = AMO_ST_N ;
  2324. TABR_T_N.'O_DIS' = DEF_SOLT ;
  2325. *
  2326. TDON1.MOT22 .'SOL' = TABLE;
  2327. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  2328. TDON1.MOT22 .'SOL'.'ITERATION' = TABR_I_N;
  2329. 'FINSI';
  2330. *
  2331. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  2332. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  2333. TDON1.MOT22.'COLONNE' = TABRC_N;
  2334. TDON1.MOT22.'SOL'.'CONSTANTE' = TABR_C_N;
  2335. 'SINON';
  2336. TDON1.MOT22.'SOL'.'CONSTANTE' = TABR_C_N;
  2337. 'FINSI';
  2338. 'FINSI';
  2339. *
  2340. TDON1.MOT22.'SOL'.'TOTALE' = TABR_T_N;
  2341. 'SI' ('EXIST' (TDON1) 'STRUCTURE');
  2342. TDON1.MOT22.'STRUCTURE' = TABSTR;
  2343. 'FINSI';
  2344. *
  2345. 'TRAC' (TABR_T_N.'O_GGO') (TABR_T_N.'O_MOD')
  2346. 'TITR' ('CHAINE' 'Non Convergence sur ' K ' elements') 'NCLK';
  2347. 'TRAC' (TABR_T_N.'O_KSI') (TABR_T_N.'O_MOD')
  2348. 'TITR' ('CHAINE' 'Non Convergence sur ' K ' elements') 'NCLK';
  2349. *
  2350. 'OUBL' I;
  2351. 'OUBL' J;
  2352. 'OUBL' ZZ;
  2353. 'OUBL' MOD_C;
  2354. 'OUBL' MODC;
  2355. 'OUBL' MAT_C;
  2356. 'OUBL' MATC;
  2357. 'OUBL' RIG_C;
  2358. 'OUBL' RIGC;
  2359. 'OUBL' MAS_C;
  2360. 'OUBL' MASC;
  2361. 'OUBL' AMO_C;
  2362. 'OUBL' AMOC;
  2363. 'OUBL' KSI_C;
  2364. 'OUBL' KSIC;
  2365. 'OUBL' SOL_C;
  2366. 'OUBL' SOLC;
  2367. 'OUBL' ESO_C;
  2368. 'OUBL' ESOC;
  2369. 'OUBL' GGO_C;
  2370. 'OUBL' GGOC;
  2371. 'OUBL' MOD_I;
  2372. 'OUBL' MAT_I;
  2373. 'OUBL' RIG_I;
  2374. 'OUBL' MAS_I;
  2375. 'OUBL' AMO_I;
  2376. 'OUBL' KSI_I;
  2377. 'OUBL' SOL_I;
  2378. 'OUBL' ESO_I;
  2379. 'OUBL' GGO_I;
  2380. 'OUBL' MAI_SOLC;
  2381. 'OUBL' MAT_SOLC;
  2382. 'OUBL' GGO_SOLC;
  2383. 'OUBL' KSI_SOLC;
  2384. 'OUBL' MOD_SOLC;
  2385. 'OUBL' RIG_SOLC;
  2386. 'OUBL' MAS_SOLC;
  2387. 'OUBL' AMO_SOLC;
  2388. 'OUBL' MAI_SOLI;
  2389. 'OUBL' MAT_SOLI;
  2390. 'OUBL' GGO_SOLI;
  2391. 'OUBL' KSI_SOLI;
  2392. 'OUBL' MOD_SOLI;
  2393. 'OUBL' RIG_SOLI;
  2394. 'OUBL' MAS_SOLI;
  2395. 'OUBL' AMO_SOLI;
  2396. 'OUBL' MAISOLC;
  2397. 'OUBL' MATSOLC;
  2398. 'OUBL' GGOSOLC;
  2399. 'OUBL' KSISOLC;
  2400. 'OUBL' MODSOLC;
  2401. 'OUBL' RIGSOLC;
  2402. 'OUBL' MASSOLC;
  2403. 'OUBL' AMOSOLC;
  2404. 'OUBL' MAI_SOLT;
  2405. 'OUBL' MAT_SOLT;
  2406. 'OUBL' GGO_SOLT;
  2407. 'OUBL' KSI_SOLT;
  2408. 'OUBL' MOD_SOLT;
  2409. 'OUBL' RIG_SOLT;
  2410. 'OUBL' MAS_SOLT;
  2411. 'OUBL' AMO_SOLT;
  2412. 'OUBL' MAISOLT;
  2413. 'OUBL' MATSOLT;
  2414. 'OUBL' GGOSOLT;
  2415. 'OUBL' KSISOLT;
  2416. 'OUBL' MODSOLT;
  2417. 'OUBL' RIGSOLT;
  2418. 'OUBL' MASSOLT;
  2419. 'OUBL' AMOSOLT;
  2420. 'OUBL' TABSOL_C;
  2421. 'OUBL' TABCOL;
  2422. 'OUBL' TABSOL_I;
  2423. 'OUBL' TABPAR;
  2424. 'OUBL' TABSOL;
  2425. 'OUBL' TABSTR;
  2426. 'OUBL' TABFRO;
  2427. 'OUBL' H_SAND;
  2428. 'OUBL' G_SAND;
  2429. 'OUBL' H_CLAY;
  2430. 'OUBL' G_CLAY;
  2431. 'OUBL' H_SAND;
  2432. 'OUBL' EH_SAND;
  2433. 'OUBL' EG_SAND;
  2434. 'OUBL' EH_CLAY;
  2435. 'OUBL' EG_CLAY;
  2436. 'OUBL' EH_SAND;
  2437. 'OUBL' MAIL1C;
  2438. 'OUBL' GAM_EFF;
  2439. 'OUBL' TABRES_T;
  2440. 'OUBL' TABRESC;
  2441. 'OUBL' TABRES_C;
  2442. 'OUBL' TABRES_I;
  2443. 'OUBL' ZONE_C;
  2444. 'OUBL' ZONE_I;
  2445. 'OUBL' ZONEC;
  2446. 'OUBL' NN1;
  2447. 'OUBL' NELEM_C;
  2448. 'OUBL' NELEMC;
  2449. 'OUBL' NELEM1C;
  2450. 'OUBL' NELEM1_I;
  2451. 'OUBL' NELEM_I;
  2452. 'OUBL' NZONE_C;
  2453. 'OUBL' NZONE_I;
  2454. 'OUBL' NZONEC;
  2455. 'OUBL' F1;
  2456. 'OUBL' F2;
  2457. 'OUBL' FC;
  2458. 'OUBL' ALPHA;
  2459. 'OUBL' BETA;
  2460. 'OUBL' MAIL1_I;
  2461. 'OUBL' GGO_SI_N;
  2462. 'OUBL' KSI_SI_N;
  2463. 'OUBL' MAT_SI_N;
  2464. 'OUBL' KSI_SOLI;
  2465. 'OUBL' GGO_SOLI;
  2466. 'OUBL' TABR_T_N;
  2467. 'OUBL' TABR_I_N;
  2468. 'OUBL' GGO_I_N;
  2469. 'OUBL' AMO_I_N;
  2470. 'OUBL' RIG_I_N;
  2471. 'OUBL' KSI_I_N;
  2472. 'OUBL' MAT_I_N;
  2473. 'OUBL' ESO_I_N;
  2474. 'OUBL' DEF_I;
  2475. 'OUBL' TRESUX;
  2476. 'OUBL' TAB_DYX;
  2477. 'OUBL' TABRXDV;
  2478. 'OUBL' TABDV;
  2479. 'OUBL' LLEPS1;
  2480. 'OUBL' LLGG01;
  2481. 'OUBL' LLGAM2;
  2482. 'OUBL' LLGAM1;
  2483. 'OUBL' L_GG03;
  2484. 'OUBL' L_GG02;
  2485. 'OUBL' L_GG01;
  2486. *
  2487. *************************************************************
  2488. *************** FIN STEP SUP A 1 ********************
  2489. *************************************************************
  2490. *
  2491. 'SINON';
  2492. *************************************************************
  2493. ******************** STEP0 *************************
  2494. *************************************************************
  2495. *
  2496. MESS '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';
  2497. MESS '-- STEP 0 --';
  2498. MESS '--------------------------------------------------------------';
  2499. MESS '';
  2500. MESS '--------------------------------------------------------------';
  2501. MESS '-- Controle des donnees d entree --';
  2502. MESS '--------------------------------------------------------------';
  2503. MESS '';
  2504. *
  2505. ************* controle general *****************************
  2506. 'SI' ('EXIST' (TDON1) 'SOL');
  2507. 'SI' ('NEG' (TYPE (TDON1.'SOL')) 'TABLE');
  2508. 'MESS' ;
  2509. 'MESS' ' Erruer....l indice de la table des donnees';
  2510. 'MESS' ' SOL doit etre du type TABLE';
  2511. 'QUIT' ISSLEQ;
  2512. 'SINON';
  2513. TABSOL = TDON1.'SOL';
  2514. 'FINSI';
  2515. 'SINON';
  2516. 'MESS' ;
  2517. 'MESS' ' Erruer....Il manque la table du sol';
  2518. 'MESS' ' dans la table des donn�es';
  2519. 'QUIT' ISSLEQ;
  2520. 'FINSI';
  2521. 'SI' ('EXIST' (TDON1) 'PARAMETRES');
  2522. 'SI' ('NEG' (TYPE (TDON1.'PARAMETRES')) 'TABLE');
  2523. 'MESS' ;
  2524. 'MESS' ' Erruer....l indice de la table des donnees';
  2525. 'MESS' ' PARAMETRE doit etre du type TABLE';
  2526. 'QUIT' ISSLEQ;
  2527. 'SINON';
  2528. TABPAR = TDON1.'PARAMETRES';
  2529. 'FINSI';
  2530. 'SINON';
  2531. 'MESS' ;
  2532. 'MESS' ' Erruer....Il manque la table des parametres';
  2533. 'MESS' ' dans la table des donn�es';
  2534. 'QUIT' ISSLEQ;
  2535. 'FINSI';
  2536. V_STR = FAUX;
  2537. 'SI' ('EXIST' (TDON1) 'STRUCTURE');
  2538. 'SI' ('NEG' (TYPE (TDON1.'STRUCTURE')) 'TABLE');
  2539. 'MESS' ;
  2540. 'MESS' ' Erruer....l indice de la table des donnees';
  2541. 'MESS' ' STRUCTURE doit etre du type TABLE';
  2542. 'QUIT' ISSLEQ;
  2543. 'SINON';
  2544. TABSTR = TDON1.'STRUCTURE';
  2545. V_STR = VRAI;
  2546. 'FINSI';
  2547. 'SINON';
  2548. 'MESS' ;
  2549. 'MESS' ' Attention...calcul sans la structure';
  2550. 'FINSI';
  2551. *
  2552. ************* controle parametre *****************************
  2553. 'SI' ('EXIST' (TABPAR) 'F1');
  2554. 'SI' ('NEG' ('TYPE' (TABPAR.'F1')) 'FLOTTANT');
  2555. 'MESS' ;
  2556. 'MESS' ' Erruer....F1 n est pas un flottant'
  2557. 'MESS' ' dans la table des parametres';
  2558. 'QUIT' ISSLEQ;
  2559. FINSI;
  2560. 'SINON';
  2561. 'MESS' ;
  2562. 'MESS' ' Erruer....il manque F1 dans la table des parametres';
  2563. 'QUIT' ISSLEQ;
  2564. 'FINSI';
  2565. 'SI' ('EXIST' (TABPAR) 'F2');
  2566. 'SI' ('NEG' ('TYPE' (TABPAR.'F2')) 'FLOTTANT');
  2567. 'MESS' ;
  2568. 'MESS' ' Erruer....F2 n est pas un flottant'
  2569. 'MESS' ' dans la table des parametres';
  2570. 'QUIT' ISSLEQ;
  2571. FINSI;
  2572. 'SINON';
  2573. 'MESS' ;
  2574. 'MESS' ' Erruer....il manque F2 dans la table des parametres';
  2575. 'QUIT' ISSLEQ;
  2576. 'FINSI';
  2577. 'SI' ('EXIST' (TABPAR) 'FC');
  2578. 'SI' ('NEG' ('TYPE' (TABPAR.'FC')) 'FLOTTANT');
  2579. 'MESS' ;
  2580. 'MESS' ' Erruer....FC n est pas un flottant'
  2581. 'MESS' ' dans la table des parametres';
  2582. 'QUIT' ISSLEQ;
  2583. FINSI;
  2584. 'SINON';
  2585. 'MESS' ;
  2586. 'MESS' ' Erruer....il manque FC dans la table des parametres';
  2587. 'QUIT' ISSLEQ;
  2588. 'FINSI';
  2589. 'SI' ('EXIST' (TABPAR) 'TYPE');
  2590. 'SI' (('NEG' TABPAR.'TYPE' 'LYSMER') ET
  2591. ('NEG' TABPAR.'TYPE' 'WHITE'));
  2592. 'MESS' ;
  2593. 'MESS' ' Erruer....type de frontiere mauvaise';
  2594. 'QUIT' ISSLEQ;
  2595. 'FINSI';
  2596. 'SINON';
  2597. TABPAR.'TYPE' = CHAINE 'LYSMER';
  2598. 'FINSI';
  2599. *'SI' ('EXIST' (TABPAR) 'REPONSE');
  2600. * I = 1;
  2601. * 'REPE' IND1 ('DIME' (TABPAR.'REPONSE'));
  2602. * 'SI' ('NEG' (TYPE (TABPAR.'REPONSE'. I .'NOM')) 'MOT');
  2603. * 'MESS' ;
  2604. * 'MESS' ' Erruer dans la tables des parametres';
  2605. * 'MESS' ' dans la table des reponse a l indice ' I;
  2606. * 'MESS' ' le sous-indice NOM doit etre un mot';
  2607. * 'QUIT' ISSLEQ;
  2608. * 'FINSI';
  2609. * 'SI' ('NEG' (TYPE (TABPAR.'REPONSE'. I .'NOEUD')) 'POINT');
  2610. * 'MESS' ;
  2611. * 'MESS' ' Erruer dans la tables des parametres';
  2612. * 'MESS' ' dans la table des reponse a l indice ' I;
  2613. * 'MESS' ' le sous-indice NOEUD doit etre un point';
  2614. * 'QUIT' ISSLEQ;
  2615. * 'FINSI';
  2616. * 'SI' ('NEG' (TYPE (TABPAR.'REPONSE'. I .'COMP')) 'MOT');
  2617. * 'MESS' ;
  2618. * 'MESS' ' Erruer dans la tables des parametres';
  2619. * 'MESS' ' dans la table des reponse a l indice ' I;
  2620. * 'MESS' ' le sous-indice COMP doit etre un mot';
  2621. * 'QUIT' ISSLEQ;
  2622. * 'FINSI';
  2623. * I = I + 1;
  2624. * 'FIN' IND1;
  2625. *'SINON';
  2626. * 'MESS' ;
  2627. * 'MESS' ' Erruer....il manque la table des point de reponse';
  2628. * 'QUIT' ISSLEQ;
  2629. *'FINSI';
  2630. 'SI' ('EXIST' (TABPAR) 'TYPE_CALCUL');
  2631. 'SI' (('NEG' (TABPAR.'TYPE_CALCUL') (CHAINE 'ISS_COMPLET')) ET
  2632. ('NEG' (TABPAR.'TYPE_CALCUL') 'ISS_CHAMPLOIN') ET
  2633. ('NEG' (TABPAR.'TYPE_CALCUL') (CHAINE 'ISS_COMP_SIMP')));
  2634. 'MESS' ;
  2635. 'MESS' ' Erruer....type de calcul non prevu';
  2636. 'QUIT' ISSLEQ;
  2637. 'FINSI';
  2638. 'SINON';
  2639. TABPAR.'TYPE_CALCUL' = CHAINE 'ISS_COMPLET';
  2640. 'FINSI';
  2641. T_CAL = TABPAR.'TYPE_CALCUL';
  2642. 'SI' ('EXIST' (TABPAR) 'CRITERE');
  2643. 'SI' ('NEG' ('TYPE' (TABPAR.'CRITERE')) 'FLOTTANT');
  2644. 'MESS';
  2645. 'MESS' ' Erruer....CRITERE n est pas un flottant'
  2646. 'MESS' ' dans la table des parametres';
  2647. 'QUIT' ISSLEQ;
  2648. 'FINSI';
  2649. 'SINON';
  2650. 'MESS';
  2651. 'MESS' ' CRITERE fixe à 0.05'
  2652. 'MESS' ' dans la table des parametres';
  2653. TABPAR.'CRITERE' = 0.05;
  2654. 'FINSI';
  2655. *
  2656. ************* controle sol **********************************
  2657. 'SI' (('VALEUR' 'DIME') 'EGA' 2);
  2658. 'OPTI' 'ELEM' SEG3;
  2659. F_BASE = 'VIDE' MAILLAGE;
  2660. F_LATE = 'VIDE' MAILLAGE;
  2661. 'OPTI' 'ELEM' QUA8;
  2662. 'SINON';
  2663. 'OPTI' 'ELEM' QUA4;
  2664. F_BASE = 'VIDE' MAILLAGE;
  2665. F_LATE = 'VIDE' MAILLAGE;
  2666. 'OPTI' 'ELEM' CUB8;
  2667. 'FINSI';
  2668. *
  2669. * serie de checks pour le calcul complet
  2670. 'SI' ('EGA' T_CAL 'ISS_COMPLET');
  2671. 'SI' ('EXIST' TABSOL 'CONSTANTE');
  2672. 'MESS' ;
  2673. 'MESS' ' Erreur....pour le calcul COMPLET';
  2674. 'MESS' ' il n y a pas besoin de la partie du sol constante';
  2675. 'QUIT' ISSLEQ;
  2676. 'FINSI';
  2677. 'SI' ('EXIST' TABSOL 'ITERATION');
  2678. 'SI' ('NEG' ('TYPE' (TABSOL.'ITERATION')) 'TABLE');
  2679. 'MESS' ;
  2680. 'MESS' ' Erreur....dans la table du sol';
  2681. 'MESS' ' la sous indice ITERATION doit etre une TABLE';
  2682. 'QUIT' ISSLEQ;
  2683. 'SINON';
  2684. TABSOL_I = TABSOL.'ITERATION';
  2685. 'FINSI';
  2686. 'SINON';
  2687. 'MESS' ;
  2688. 'MESS' ' Erreur....pour le calcul COMPLET';
  2689. 'MESS' ' il y a pas besoin de la partie du sol a iterer';
  2690. 'QUIT' ISSLEQ;
  2691. 'FINSI';
  2692. *
  2693. NN1 = 'DIME' TABSOL_I;
  2694. I = 1;
  2695. 'REPE' IND1 (NN1);
  2696. 'SI' ('EXIST' (TABSOL_I. I) 'MAILLAGE');
  2697. 'SI' ('NEG' ('TYPE' (TABSOL_I. I .'MAILLAGE')) 'MAILLAGE');
  2698. 'MESS' ;
  2699. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2700. 'MESS' ' le sous_indice MAILLAGE nest pas du type MAILLAGE';
  2701. 'QUIT' ISSLEQ;
  2702. 'FINSI';
  2703. 'SINON';
  2704. 'MESS' ;
  2705. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2706. 'MESS' ' manque le sous_indice MAILLAGE';
  2707. 'QUIT' ISSLEQ;
  2708. 'FINSI';
  2709. *
  2710. 'SI' ('EXIST' (TABSOL_I. I) 'FRONTIERE');
  2711. 'SI' ('NEG' ('TYPE' (TABSOL_I. I .'FRONTIERE')) 'MAILLAGE');
  2712. 'MESS' ;
  2713. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2714. 'MESS' ' le sous_indice FRONTIERE nest pas du type MAILLAGE';
  2715. 'QUIT' ISSLEQ;
  2716. 'SINON';
  2717. F_LATE = F_LATE 'ET' (TABSOL_I. I .'FRONTIERE');
  2718. 'FINSI';
  2719. 'SINON';
  2720. 'MESS' ;
  2721. 'MESS' ' Attention....dans l indice' I 'de la table du sol';
  2722. 'MESS' ' a iterer manque le sous_indice FRONTIERE';
  2723. 'FINSI';
  2724. *
  2725. 'SI' ('EXIST' (TABSOL_I. I) 'MODULE_E');
  2726. 'SI' ('NEG' ('TYPE' (TABSOL_I. I .'MODULE_E')) 'FLOTTANT');
  2727. 'MESS' ;
  2728. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  2729. 'MESS' ' a iterer le sous_indice MODULE_E nest pas';
  2730. 'MESS' ' du type FLOTTANT';
  2731. 'QUIT' ISSLEQ;
  2732. 'FINSI';
  2733. 'SINON';
  2734. 'MESS' ;
  2735. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2736. 'MESS' ' manque le sous_indice MODULE_E';
  2737. 'QUIT' ISSLEQ;
  2738. 'FINSI';
  2739. *
  2740. 'SI' ('EXIST' (TABSOL_I. I) 'MASSE_VOLUMIQUE');
  2741. 'SI' ('NEG' ('TYPE' (TABSOL_I. I .'MASSE_VOLUMIQUE'))
  2742. 'FLOTTANT');
  2743. 'MESS' ;
  2744. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  2745. 'MESS' ' a iterer le sous_indice MASSE_VOLUMIQUE';
  2746. 'MESS' ' nest pas du type FLOTTANT';
  2747. 'QUIT' ISSLEQ;
  2748. 'FINSI';
  2749. 'SINON';
  2750. 'MESS' ;
  2751. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2752. 'MESS' ' manque le sous_indice MASSE_VOLUMIQUE';
  2753. 'QUIT' ISSLEQ;
  2754. 'FINSI';
  2755. *
  2756. 'SI' ('EXIST' (TABSOL_I. I) 'POISSON');
  2757. 'SI' ('NEG' ('TYPE' (TABSOL_I. I .'POISSON')) 'FLOTTANT');
  2758. 'MESS' ;
  2759. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  2760. 'MESS' ' a iterer le sous_indice POISSON nest pas du';
  2761. 'MESS' ' type FLOTTANT';
  2762. 'QUIT' ISSLEQ;
  2763. 'FINSI';
  2764. 'SINON';
  2765. 'MESS' ;
  2766. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2767. 'MESS' ' manque le sous_indice POISSON';
  2768. 'QUIT' ISSLEQ;
  2769. 'FINSI';
  2770. *
  2771. 'SI' ('EXIST' (TABSOL_I. I) 'G_GAMMA');
  2772.  
  2773. 'SINON';
  2774. 'MESS' ;
  2775. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2776. 'MESS' ' manque le sous_indice G_GAMMA';
  2777. 'QUIT' ISSLEQ;
  2778. 'FINSI';
  2779. *
  2780. 'SI' ('EXIST' (TABSOL_I. I) 'H_GAMMA');
  2781.  
  2782. 'SINON';
  2783. 'MESS' ;
  2784. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2785. 'MESS' ' manque le sous_indice H_GAMMA';
  2786. 'QUIT' ISSLEQ;
  2787. 'FINSI';
  2788. *
  2789. 'SI' (I 'EGA' NN1);
  2790. 'SI' ('EXIST' (TABSOL_I. I) 'BASE');
  2791. 'SI' ('NEG' ('TYPE' (TABSOL_I. I .'BASE')) 'MAILLAGE');
  2792. 'MESS' ;
  2793. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  2794. 'MESS' ' a iterer le sous_indice BASE nest pas du';
  2795. 'MESS' ' type MAILLAGE';
  2796. 'QUIT' ISSLEQ;
  2797. 'SINON';
  2798. F_BASE = F_BASE 'ET' (TABSOL_I. I .'BASE');
  2799. 'FINSI';
  2800. 'SINON';
  2801. 'MESS' ;
  2802. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  2803. 'MESS' ' a iterer manque le sous_indice BASE';
  2804. 'FINSI';
  2805. 'SINON';
  2806. 'SI' ('EXIST' (TABSOL_I. I) 'BASE');
  2807. 'MESS' ;
  2808. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  2809. 'MESS' ' a iterer il ne doit pas apparaitre le';
  2810. 'MESS' ' sous_indice BASE';
  2811. 'QUIT' ISSLEQ;
  2812. 'FINSI';
  2813. 'FINSI';
  2814. *
  2815. I = I + 1;
  2816. 'FIN' IND1;
  2817. 'SI' (('NBEL' F_LATE) 'EGA' (0));
  2818. 'MESS' ;
  2819. 'MESS' ' Erreur....le maillage de la frontiere laterale est vide';
  2820. 'QUIT' ISSLEQ;
  2821. 'SINON';
  2822.  
  2823. 'FINSI';
  2824. 'SI' (('NBEL' F_BASE) 'EGA' (0));
  2825. 'MESS' ;
  2826. 'MESS' ' Erreur....le maillage de la frontiere a la base est vide';
  2827. 'QUIT' ISSLEQ;
  2828. 'SINON';
  2829.  
  2830. 'FINSI';
  2831. 'FINSI';
  2832. *
  2833. * serie de checks pour le calcul champ loin
  2834. 'SI' ('EGA' T_CAL 'ISS_CHAMPLOIN');
  2835. 'SI' ('EXIST' TABSOL 'ITERATION');
  2836. 'MESS' ;
  2837. 'MESS' ' Erreur....pour le calcul PRIMAIRE';
  2838. 'MESS' ' il n y a pas besoin de la partie du sol a iterer';
  2839. 'QUIT' ISSLEQ;
  2840. 'FINSI';
  2841. 'SI' ('EXIST' TABSOL 'CONSTANTE');
  2842. 'SI' ('NEG' ('TYPE' (TABSOL.'CONSTANTE')) 'TABLE');
  2843. 'MESS' ;
  2844. 'MESS' ' Erreur....dans la table du sol';
  2845. 'MESS' ' la sous indice CONSTANTE doit etre une TABLE';
  2846. 'QUIT' ISSLEQ;
  2847. 'SINON';
  2848. TABSOL_C = TABSOL.'CONSTANTE';
  2849. 'FINSI';
  2850. 'SINON';
  2851. 'MESS' ;
  2852. 'MESS' ' Erreur....pour le calcul PRIMARIE';
  2853. 'MESS' ' il y a besoin de la partie du sol constante';
  2854. 'QUIT' ISSLEQ;
  2855. 'FINSI';
  2856. *
  2857. NN1 = 'DIME' TABSOL_C;
  2858. I = 1;
  2859. 'REPE' IND1 (NN1);
  2860. 'SI' ('EXIST' (TABSOL_C. I) 'MAILLAGE');
  2861. 'SI' ('NEG' ('TYPE' (TABSOL_C. I .'MAILLAGE')) 'MAILLAGE');
  2862. 'MESS' ;
  2863. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2864. 'MESS' ' le sous_indice MAILLAGE nest pas du type MAILLAGE';
  2865. 'QUIT' ISSLEQ;
  2866. 'FINSI';
  2867. 'SINON';
  2868. 'MESS' ;
  2869. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2870. 'MESS' ' manque le sous_indice MAILLAGE';
  2871. 'QUIT' ISSLEQ;
  2872. 'FINSI';
  2873. *
  2874. 'SI' ('EXIST' (TABSOL_C. I) 'FRONTIERE');
  2875. 'SI' ('NEG' ('TYPE' (TABSOL_C. I .'FRONTIERE')) 'MAILLAGE');
  2876. 'MESS' ;
  2877. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2878. 'MESS' ' le sous_indice FRONTIERE nest pas du type MAILLAGE';
  2879. 'QUIT' ISSLEQ;
  2880. 'SINON';
  2881. F_LATE = F_LATE 'ET' (TABSOL_C. I .'FRONTIERE');
  2882. 'FINSI';
  2883. 'SINON';
  2884. 'MESS' ;
  2885. 'MESS' ' Attention....dans l indice' I 'de la table du sol';
  2886. 'MESS' ' a iterer manque le sous_indice FRONTIERE';
  2887. 'FINSI';
  2888. *
  2889. 'SI' ('EXIST' (TABSOL_C. I) 'MODULE_E');
  2890. 'SI' ('NEG' ('TYPE' (TABSOL_C. I .'MODULE_E')) 'FLOTTANT');
  2891. 'MESS' ;
  2892. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  2893. 'MESS' ' a iterer le sous_indice MODULE_E nest pas';
  2894. 'MESS' ' du type FLOTTANT';
  2895. 'QUIT' ISSLEQ;
  2896. 'FINSI';
  2897. 'SINON';
  2898. 'MESS' ;
  2899. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2900. 'MESS' ' manque le sous_indice MODULE_E';
  2901. 'QUIT' ISSLEQ;
  2902. 'FINSI';
  2903. *
  2904. 'SI' ('EXIST' (TABSOL_C. I) 'MASSE_VOLUMIQUE');
  2905. 'SI' ('NEG' ('TYPE' (TABSOL_C. I .'MASSE_VOLUMIQUE'))
  2906. 'FLOTTANT');
  2907. 'MESS' ;
  2908. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  2909. 'MESS' ' a iterer le sous_indice MASSE_VOLUMIQUE';
  2910. 'MESS' ' nest pas du type FLOTTANT';
  2911. 'QUIT' ISSLEQ;
  2912. 'FINSI';
  2913. 'SINON';
  2914. 'MESS' ;
  2915. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2916. 'MESS' ' manque le sous_indice MASSE_VOLUMIQUE';
  2917. 'QUIT' ISSLEQ;
  2918. 'FINSI';
  2919. *
  2920. 'SI' ('EXIST' (TABSOL_C. I) 'POISSON');
  2921. 'SI' ('NEG' ('TYPE' (TABSOL_C. I .'POISSON')) 'FLOTTANT');
  2922. 'MESS' ;
  2923. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  2924. 'MESS' ' a iterer le sous_indice POISSON nest pas du';
  2925. 'MESS' ' type FLOTTANT';
  2926. 'QUIT' ISSLEQ;
  2927. 'FINSI';
  2928. 'SINON';
  2929. 'MESS' ;
  2930. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2931. 'MESS' ' manque le sous_indice POISSON';
  2932. 'QUIT' ISSLEQ;
  2933. 'FINSI';
  2934. *
  2935. 'SI' ('EXIST' (TABSOL_C. I) 'G_GAMMA');
  2936.  
  2937. 'SINON';
  2938. 'MESS' ;
  2939. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2940. 'MESS' ' manque le sous_indice G_GAMMA';
  2941. 'QUIT' ISSLEQ;
  2942. 'FINSI';
  2943. *
  2944. 'SI' ('EXIST' (TABSOL_C. I) 'H_GAMMA');
  2945.  
  2946. 'SINON';
  2947. 'MESS' ;
  2948. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  2949. 'MESS' ' manque le sous_indice H_GAMMA';
  2950. 'QUIT' ISSLEQ;
  2951. 'FINSI';
  2952. *
  2953. 'SI' (I 'EGA' NN1);
  2954. 'SI' ('EXIST' (TABSOL_C. I) 'BASE');
  2955. 'SI' ('NEG' ('TYPE' (TABSOL_C. I .'BASE')) 'MAILLAGE');
  2956. 'MESS' ;
  2957. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  2958. 'MESS' ' a iterer le sous_indice BASE nest pas du';
  2959. 'MESS' ' type MAILLAGE';
  2960. 'QUIT' ISSLEQ;
  2961. 'SINON';
  2962. F_BASE = F_BASE 'ET' (TABSOL_C. I .'BASE');
  2963. 'FINSI';
  2964. 'SINON';
  2965. 'MESS' ;
  2966. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  2967. 'MESS' ' a iterer manque le sous_indice BASE';
  2968. 'FINSI';
  2969. 'SINON';
  2970. 'SI' ('EXIST' (TABSOL_C. I) 'BASE');
  2971. 'MESS' ;
  2972. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  2973. 'MESS' ' a iterer il ne doit pas apparaitre le';
  2974. 'MESS' ' sous_indice BASE';
  2975. 'QUIT' ISSLEQ;
  2976. 'FINSI';
  2977. 'FINSI';
  2978. *
  2979.  
  2980. I = I + 1;
  2981. 'FIN' IND1;
  2982. 'SI' (('NBEL' F_LATE) 'EGA' (0));
  2983. 'MESS' ;
  2984. 'MESS' ' Erreur....le maillage de la frontiere laterale est vide';
  2985. 'QUIT' ISSLEQ;
  2986. 'SINON';
  2987.  
  2988. 'FINSI';
  2989. 'SI' (('NBEL' F_BASE) 'EGA' (0));
  2990. 'MESS' ;
  2991. 'MESS' ' Erreur....le maillage de la frontiere a la base est vide';
  2992. 'QUIT' ISSLEQ;
  2993. 'SINON';
  2994.  
  2995. 'FINSI';
  2996. 'FINSI';
  2997. *
  2998. * serie de checks pour le calcul complet simple
  2999. 'SI' ('EGA' T_CAL 'ISS_COMP_SIMP');
  3000. 'SI' ('EXIST' TABSOL 'ITERATION');
  3001. 'SI' ('NEG' ('TYPE' (TABSOL.'ITERATION')) 'TABLE');
  3002. 'MESS' ;
  3003. 'MESS' ' Erreur....dans la table du sol';
  3004. 'MESS' ' la sous indice ITERATION doit etre une TABLE';
  3005. 'QUIT' ISSLEQ;
  3006. 'SINON';
  3007. TABSOL_I = TABSOL.'ITERATION';
  3008. 'FINSI';
  3009. 'SINON';
  3010. 'MESS' ;
  3011. 'MESS' ' Erreur....pour le calcul COMPLET_SIMPLE';
  3012. 'MESS' ' il y a besoin de la partie du sol a iteter';
  3013. 'QUIT' ISSLEQ;
  3014. 'FINSI';
  3015. 'SI' ('EXIST' TABSOL 'CONSTANTE');
  3016. 'SI' ('NEG' ('TYPE' (TABSOL.'CONSTANTE')) 'TABLE');
  3017. 'MESS' ;
  3018. 'MESS' ' Erreur....dans la table du sol';
  3019. 'MESS' ' la sous indice CONSTANTE doit etre une TABLE';
  3020. 'QUIT' ISSLEQ;
  3021. 'SINON';
  3022. TABSOL_C = TABSOL.'CONSTANTE';
  3023. 'FINSI';
  3024. 'SINON';
  3025. 'MESS' ;
  3026. 'MESS' ' Erreur....pour le calcul COMPLET_SIMPLE';
  3027. 'MESS' ' il y a besoin de la partie du sol constante';
  3028. 'QUIT' ISSLEQ;
  3029. 'FINSI';
  3030. *
  3031. NN1 = 'DIME' TABSOL_C;
  3032. I = 1;
  3033. 'REPE' IND1 (NN1);
  3034. 'SI' ('EXIST' (TABSOL_C. I) 'MAILLAGE');
  3035. 'SI' ('NEG' ('TYPE' (TABSOL_C. I .'MAILLAGE')) 'MAILLAGE');
  3036. 'MESS' ;
  3037. 'MESS' ' Erreur....dans l indice' I 'de la table du sol constant';
  3038. 'MESS' ' le sous_indice MAILLAGE nest pas du type MAILLAGE';
  3039. 'QUIT' ISSLEQ;
  3040. 'FINSI';
  3041. 'SINON';
  3042. 'MESS' ;
  3043. 'MESS' ' Erreur....dans l indice' I 'de la table du sol constant';
  3044. 'MESS' ' manque le sous_indice MAILLAGE';
  3045. 'QUIT' ISSLEQ;
  3046. 'FINSI';
  3047. *
  3048. 'SI' ('EXIST' (TABSOL_C. I) 'FRONTIERE');
  3049. 'SI' ('NEG' ('TYPE' (TABSOL_C. I .'FRONTIERE')) 'MAILLAGE');
  3050. 'MESS' ;
  3051. 'MESS' ' Erreur....dans l indice' I 'de la table du sol constant';
  3052. 'MESS' ' le sous_indice FRONTIERE nest pas du type MAILLAGE';
  3053. 'QUIT' ISSLEQ;
  3054. 'SINON';
  3055. F_LATE = F_LATE 'ET' (TABSOL_C. I .'FRONTIERE');
  3056. 'FINSI';
  3057. 'SINON';
  3058. 'MESS' ;
  3059. 'MESS' ' Attention....dans l indice' I 'de la table du sol';
  3060. 'MESS' ' constant manque le sous_indice FRONTIERE';
  3061. 'FINSI';
  3062. *
  3063. 'SI' ('EXIST' (TABSOL_C. I) 'MODULE_E');
  3064. 'SI' ('NEG' ('TYPE' (TABSOL_C. I .'MODULE_E')) 'FLOTTANT');
  3065. 'MESS' ;
  3066. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  3067. 'MESS' ' constant le sous_indice MODULE_E nest pas';
  3068. 'MESS' ' du type FLOTTANT';
  3069. 'QUIT' ISSLEQ;
  3070. 'FINSI';
  3071. 'SINON';
  3072. 'MESS' ;
  3073. 'MESS' ' Erreur....dans l indice' I 'de la table du sol constant';
  3074. 'MESS' ' manque le sous_indice MODULE_E';
  3075. 'QUIT' ISSLEQ;
  3076. 'FINSI';
  3077. *
  3078. 'SI' ('EXIST' (TABSOL_C. I) 'MASSE_VOLUMIQUE');
  3079. 'SI' ('NEG' ('TYPE' (TABSOL_C. I .'MASSE_VOLUMIQUE'))
  3080. 'FLOTTANT');
  3081. 'MESS' ;
  3082. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  3083. 'MESS' ' constant le sous_indice MASSE_VOLUMIQUE';
  3084. 'MESS' ' nest pas du type FLOTTANT';
  3085. 'QUIT' ISSLEQ;
  3086. 'FINSI';
  3087. 'SINON';
  3088. 'MESS' ;
  3089. 'MESS' ' Erreur....dans l indice' I 'de la table du sol constant';
  3090. 'MESS' ' manque le sous_indice MASSE_VOLUMIQUE';
  3091. 'QUIT' ISSLEQ;
  3092. 'FINSI';
  3093. *
  3094. 'SI' ('EXIST' (TABSOL_C. I) 'POISSON');
  3095. 'SI' ('NEG' ('TYPE' (TABSOL_C. I .'POISSON')) 'FLOTTANT');
  3096. 'MESS' ;
  3097. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  3098. 'MESS' ' constant le sous_indice POISSON nest pas du';
  3099. 'MESS' ' type FLOTTANT';
  3100. 'QUIT' ISSLEQ;
  3101. 'FINSI';
  3102. 'SINON';
  3103. 'MESS' ;
  3104. 'MESS' ' Erreur....dans l indice' I 'de la table du sol constant';
  3105. 'MESS' ' manque le sous_indice POISSON';
  3106. 'QUIT' ISSLEQ;
  3107. 'FINSI';
  3108. *
  3109. 'SI' ('EXIST' (TABSOL_C. I) 'AMORTISSEMENT');
  3110. 'SI' ('NEG' ('TYPE' (TABSOL_C. I .'AMORTISSEMENT')) 'FLOTTANT');
  3111. 'MESS' ;
  3112. 'MESS' ' Erreur....dans l indice' I 'de la table du sol constant';
  3113. 'MESS' ' le sous_indice AMORTISSEMENT nest pas du type FLOTTANT';
  3114. 'QUIT' ISSLEQ;
  3115. 'FINSI';
  3116. 'SINON';
  3117. 'MESS' ;
  3118. 'MESS' ' Erreur....dans l indice' I 'de la table du sol constant';
  3119. 'MESS' ' manque le sous_indice AMORTISSEMENT';
  3120. 'QUIT' ISSLEQ;
  3121. 'FINSI';
  3122. *
  3123. 'SI' (I 'EGA' NN1);
  3124. 'SI' ('EXIST' (TABSOL_C. I) 'BASE');
  3125. 'SI' ('NEG' ('TYPE' (TABSOL_C. I .'BASE')) 'MAILLAGE');
  3126. 'MESS' ;
  3127. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  3128. 'MESS' ' constant le sous_indice BASE nest pas du';
  3129. 'MESS' ' type MAILLAGE';
  3130. 'QUIT' ISSLEQ;
  3131. 'SINON';
  3132. F_BASE = F_BASE 'ET' (TABSOL_C. I .'BASE');
  3133. 'FINSI';
  3134. 'SINON';
  3135. 'MESS' ;
  3136. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  3137. 'MESS' ' constant manque le sous_indice BASE';
  3138. 'FINSI';
  3139. 'SINON';
  3140. 'SI' ('EXIST' (TABSOL_C. I) 'BASE');
  3141. 'MESS' ;
  3142. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  3143. 'MESS' ' constant il ne doit pas apparaitre le';
  3144. 'MESS' ' sous_indice BASE';
  3145. 'QUIT' ISSLEQ;
  3146. 'FINSI';
  3147. 'FINSI';
  3148. *
  3149. I = I + 1;
  3150. 'FIN' IND1;
  3151. NN1 = 'DIME' TABSOL_I;
  3152. I = 1;
  3153. 'REPE' IND1 (NN1);
  3154. 'SI' ('EXIST' (TABSOL_I. I) 'MAILLAGE');
  3155. 'SI' ('NEG' ('TYPE' (TABSOL_I. I .'MAILLAGE')) 'MAILLAGE');
  3156. 'MESS' ;
  3157. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  3158. 'MESS' ' le sous_indice MAILLAGE nest pas du type MAILLAGE';
  3159. 'QUIT' ISSLEQ;
  3160. 'FINSI';
  3161. 'SINON';
  3162. 'MESS' ;
  3163. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  3164. 'MESS' ' manque le sous_indice MAILLAGE';
  3165. 'QUIT' ISSLEQ;
  3166. 'FINSI';
  3167. *
  3168. 'SI' ('EXIST' (TABSOL_I. I) 'FRONTIERE');
  3169. 'SI' ('NEG' ('TYPE' (TABSOL_I. I .'FRONTIERE')) 'MAILLAGE');
  3170. 'MESS' ;
  3171. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  3172. 'MESS' ' le sous_indice FRONTIERE nest pas du type MAILLAGE';
  3173. 'QUIT' ISSLEQ;
  3174. 'SINON';
  3175. F_LATE = F_LATE 'ET' (TABSOL_I. I .'FRONTIERE');
  3176. 'FINSI';
  3177. 'SINON';
  3178. 'MESS' ;
  3179. 'MESS' ' Attention....dans l indice' I 'de la table du sol';
  3180. 'MESS' ' a iterer manque le sous_indice FRONTIERE';
  3181. 'FINSI';
  3182. *
  3183. 'SI' ('EXIST' (TABSOL_I. I) 'MODULE_E');
  3184. 'SI' ('NEG' ('TYPE' (TABSOL_I. I .'MODULE_E')) 'FLOTTANT');
  3185. 'MESS' ;
  3186. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  3187. 'MESS' ' a iterer le sous_indice MODULE_E nest pas';
  3188. 'MESS' ' du type FLOTTANT';
  3189. 'QUIT' ISSLEQ;
  3190. 'FINSI';
  3191. 'SINON';
  3192. 'MESS' ;
  3193. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  3194. 'MESS' ' manque le sous_indice MODULE_E';
  3195. 'QUIT' ISSLEQ;
  3196. 'FINSI';
  3197. *
  3198. 'SI' ('EXIST' (TABSOL_I. I) 'MASSE_VOLUMIQUE');
  3199. 'SI' ('NEG' ('TYPE' (TABSOL_I. I .'MASSE_VOLUMIQUE'))
  3200. 'FLOTTANT');
  3201. 'MESS' ;
  3202. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  3203. 'MESS' ' a iterer le sous_indice MASSE_VOLUMIQUE';
  3204. 'MESS' ' nest pas du type FLOTTANT';
  3205. 'QUIT' ISSLEQ;
  3206. 'FINSI';
  3207. 'SINON';
  3208. 'MESS' ;
  3209. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  3210. 'MESS' ' manque le sous_indice MASSE_VOLUMIQUE';
  3211. 'QUIT' ISSLEQ;
  3212. 'FINSI';
  3213. *
  3214. 'SI' ('EXIST' (TABSOL_I. I) 'POISSON');
  3215. 'SI' ('NEG' ('TYPE' (TABSOL_I. I .'POISSON')) 'FLOTTANT');
  3216. 'MESS' ;
  3217. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  3218. 'MESS' ' a iterer le sous_indice POISSON nest pas du';
  3219. 'MESS' ' type FLOTTANT';
  3220. 'QUIT' ISSLEQ;
  3221. 'FINSI';
  3222. 'SINON';
  3223. 'MESS' ;
  3224. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  3225. 'MESS' ' manque le sous_indice POISSON';
  3226. 'QUIT' ISSLEQ;
  3227. 'FINSI';
  3228. *
  3229. 'SI' ('EXIST' (TABSOL_I. I) 'G_GAMMA');
  3230.  
  3231. 'SINON';
  3232. 'MESS' ;
  3233. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  3234. 'MESS' ' manque le sous_indice G_GAMMA';
  3235. 'QUIT' ISSLEQ;
  3236. 'FINSI';
  3237. *
  3238. 'SI' ('EXIST' (TABSOL_I. I) 'H_GAMMA');
  3239.  
  3240. 'SINON';
  3241. 'MESS' ;
  3242. 'MESS' ' Erreur....dans l indice' I 'de la table du sol a iterer';
  3243. 'MESS' ' manque le sous_indice H_GAMMA';
  3244. 'QUIT' ISSLEQ;
  3245. 'FINSI';
  3246. *
  3247. 'SI' (I 'EGA' NN1);
  3248. 'SI' ('EXIST' (TABSOL_I. I) 'BASE');
  3249. 'SI' ('NEG' ('TYPE' (TABSOL_I. I .'BASE')) 'MAILLAGE');
  3250. 'MESS' ;
  3251. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  3252. 'MESS' ' a iterer le sous_indice BASE nest pas du';
  3253. 'MESS' ' type MAILLAGE';
  3254. 'QUIT' ISSLEQ;
  3255. 'SINON';
  3256. F_BASE = F_BASE 'ET' (TABSOL_I. I .'BASE');
  3257. 'FINSI';
  3258. 'SINON';
  3259. 'MESS' ;
  3260. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  3261. 'MESS' ' a iterer manque le sous_indice BASE';
  3262. 'FINSI';
  3263. 'SINON';
  3264. 'SI' ('EXIST' (TABSOL_I. I) 'BASE');
  3265. 'MESS' ;
  3266. 'MESS' ' Erreur....dans l indice' I 'de la table du sol';
  3267. 'MESS' ' a iterer il ne doit pas apparaitre le';
  3268. 'MESS' ' sous_indice BASE';
  3269. 'QUIT' ISSLEQ;
  3270. 'FINSI';
  3271. 'FINSI';
  3272. *
  3273. I = I + 1;
  3274. 'FIN' IND1;
  3275. *
  3276. 'SI' (('NBEL' F_LATE) 'EGA' (0));
  3277. 'MESS' ;
  3278. 'MESS' ' Erreur....le maillage de la frontiere laterale est vide';
  3279. 'QUIT' ISSLEQ;
  3280. 'SINON';
  3281.  
  3282. 'FINSI';
  3283. 'SI' (('NBEL' F_BASE) 'EGA' (0));
  3284. 'MESS' ;
  3285. 'MESS' ' Erreur....le maillage de la frontiere a la base est vide';
  3286. 'QUIT' ISSLEQ;
  3287. 'SINON';
  3288.  
  3289. 'FINSI';
  3290. 'FINSI';
  3291. *
  3292. * creation de la table pour la frontiere du sol
  3293. *
  3294. LL_M = 'MOTS';
  3295. LL_I = 'LECT';
  3296. *
  3297. NNA = 0;
  3298. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  3299. NNA = NNA + ('DIME' TABSOL_C);
  3300. 'FINSI';
  3301. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  3302. NNA = NNA + ('DIME' TABSOL_I);
  3303. 'FINSI';
  3304. *
  3305. KK = 1;
  3306. VAL1 = ((TABPAR.POINT) COOR 3) - 0.001;
  3307. 'REPE' IND2 (NNA);
  3308. MM1 = 'CHAINE' 'NN';
  3309. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  3310. NN1 = 'DIME' TABSOL_C;
  3311. I = 1;
  3312. 'REPE' IND1 (NN1);
  3313. 'SI' ('EXIST' (TABSOL_C. I) 'FRONTIERE');
  3314. 'SI' (('VALEUR' 'DIME') EGA 2);
  3315. CH1 CH3 = 'COOR' (TABSOL_C. I .'FRONTIERE');
  3316. 'SINON';
  3317. CH1 CH2 CH3 = 'COOR' (TABSOL_C. I .FRONTIERE);
  3318. 'FINSI';
  3319. 'SI' ((('MAXI' CH3) > VAL1) 'ET' (('MINI' CH3) < VAL1));
  3320. MM1 = 'CHAINE' 'C';
  3321. II1 = I;
  3322. VAL1 = ('MAXI' CH3);
  3323. 'FINSI';
  3324. 'FINSI';
  3325. I = I + 1;
  3326. 'FIN' IND1;
  3327. 'FINSI';
  3328. *
  3329. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  3330. NN1 = 'DIME' TABSOL_I;
  3331. I = 1;
  3332. 'REPE' IND1 (NN1);
  3333. 'SI' ('EXIST' (TABSOL_I. I) 'FRONTIERE');
  3334. 'SI' (('VALEUR' 'DIME') 'EGA' 2);
  3335. CH1 CH3 = 'COOR' (TABSOL_I. I .'FRONTIERE');
  3336. 'SINON';
  3337. CH1 CH2 CH3 = 'COOR' (TABSOL_I. I .'FRONTIERE');
  3338. 'FINSI';
  3339. 'SI' ((('MAXI' CH3) > VAL1) 'ET' (('MINI' CH3) < VAL1));
  3340. MM1 = 'CHAINE' 'I';
  3341. II1 = I;
  3342. VAL1 = ('MAXI' CH3);
  3343. 'FINSI';
  3344. 'FINSI';
  3345. I = I + 1;
  3346. 'FIN' IND1;
  3347. 'FINSI';
  3348. *
  3349. 'SI' ('NEG' MM1 'NN');
  3350. LL_M = LL_M ET ('MOTS' MM1);
  3351. LL_I = LL_I ET ('LECT' II1);
  3352. KK = KK + 1;
  3353. 'SI' ('EGA' MM1 'C');
  3354. 'SI' (('VALEUR' 'DIME') 'EGA' 2);
  3355. CH1 CH3 = 'COOR' (TABSOL_C. II1 .'FRONTIERE');
  3356. VAL1 = ('MINI' (CH3) - 0.01);
  3357. 'SINON';
  3358. CH1 CH2 CH3 = 'COOR' (TABSOL_C. II1 .FRONTIERE);
  3359. VAL1 = (MINI (CH3) - 0.01);
  3360. 'FINSI';
  3361. 'FINSI';
  3362. 'SI' ('EGA' MM1 'I');
  3363. 'SI' (('VALEUR' 'DIME') 'EGA' 2);
  3364. CH1 CH3 = 'COOR' (TABSOL_I. II1 .'FRONTIERE');
  3365. VAL1 = ('MINI' (CH3) - 0.01);
  3366. 'SINON';
  3367. CH1 CH2 CH3 = 'COOR' (TABSOL_I. II1 .'FRONTIERE');
  3368. VAL1 = ('MINI' (CH3) - 0.01);
  3369. 'FINSI';
  3370. 'FINSI';
  3371. 'FINSI';
  3372. *
  3373. 'FIN' IND2;
  3374. 'OUBL' NN1;
  3375. 'OUBL' NNA;
  3376. 'OUBL' CH1;
  3377. 'OUBL' CH2;
  3378. 'OUBL' CH3;
  3379. 'OUBL' II1;
  3380. 'OUBL' MM1;
  3381. 'OUBL' KK1;
  3382. 'OUBL' VAL1;
  3383. *
  3384.  
  3385. TABFRO = TABLE;
  3386. TABFRO.'LATERALE' = TABLE;
  3387. NN1 = 'DIME' LL_M;
  3388. I = 1;
  3389. 'REPE' IND1 (NN1);
  3390. TABFRO.'LATERALE'. I = TABLE;
  3391. 'SI' ('EGA' ('EXTR' LL_M I) 'C');
  3392. TABFRO.'LATERALE'. I .'MAILLAGE' =
  3393. TABSOL_C.('EXTR' LL_I I).'FRONTIERE';
  3394. 'FINSI';
  3395. 'SI' ('EGA' ('EXTR' LL_M I) 'I');
  3396. TABFRO.'LATERALE'. I .'MAILLAGE' =
  3397. TABSOL_I.(EXTR LL_I I).'FRONTIERE';
  3398. 'FINSI';
  3399. TABFRO.'LATERALE'. I .'IND' = ('EXTR' LL_I I);
  3400. TABFRO.'LATERALE'. I .'TYPE' = ('EXTR' LL_M I);
  3401. I = I + 1;
  3402. 'FIN' IND1;
  3403. 'OUBL' NN1;
  3404. 'OUBL' LL_I;
  3405. 'OUBL' LL_M;
  3406. *
  3407. TABFRO.'BASE' = F_BASE;
  3408. *
  3409. K = 1;
  3410. 'SI' ('EGA' T_CAL 'ISS_CHAMPLOIN');
  3411. 'SI' ('EGA' ('VALEUR' 'MODE') 'FOUR');
  3412. LL1 = VIDE MAILLAGE;
  3413. MAI1 = VIDE MAILLAGE;
  3414. TABCOL = TABLE;
  3415. NN1 = 'DIME' TABSOL_C;
  3416. MAI1A = VIDE MAILLAGE;
  3417. MAI2A = VIDE MAILLAGE;
  3418. I = 1;
  3419. 'REPE' IND1 (NN1);
  3420. 'SI' ('EXIST' (TABSOL_C. I) 'PROFILE');
  3421. LL1 = TABSOL_C. I .'PROFILE';
  3422. PP1 = LL1 POIN PROC (10000. 10000.);
  3423. MESS MIMMO;
  3424. LL1 = LL1 PLUS (((-1)*(PP1 COOR 1)) 0.);
  3425. SUR1 = LL1 TRANS 1 (1. 0.);
  3426. LL2 = LL1 PLUS (1. 0.);
  3427. ELIM 0.001 (SUR1 'ET' LL2);
  3428. MAI1A = MAI1A 'ET' SUR1;
  3429. MAI2A = MAI2A 'ET' LL2;
  3430. TABCOL. K = TABLE;
  3431. TABCOL. K .'MAILLAGE' = SUR1;
  3432. TABCOL. K .'FRONTIERE' = LL2;
  3433. TABCOL. K .'MODULE_E' = TABSOL_C. I .'MODULE_E';
  3434. TABCOL. K .'MASSE_VOLUMIQUE' = TABSOL_C. I .'MASSE_VOLUMIQUE';
  3435. TABCOL. K .'POISSON' = TABSOL_C. I .'POISSON';
  3436. TABCOL. K .'G_GAMMA' = TABSOL_C. I .'G_GAMMA';
  3437. TABCOL. K .'H_GAMMA' = TABSOL_C. I .'H_GAMMA';
  3438. 'SI' ('EXIST' (TABSOL_C. I) 'BASE');
  3439. PP1 = (TABSOL_C. I .'BASE') POIN PROC (1000000. 0.);
  3440. LL3 = PP1 LIGNE TRANS 1 (1. 0.);
  3441. PP1 = LL3 POIN PROC (-10000. -10000.);
  3442. LL3 = LL3 PLUS (((-1)*(PP1 COOR 1)) 0.);
  3443. ELIM 0.001 (SUR1 ET LL2 ET LL3);
  3444. TABCOL. K .'BASE' = LL3;
  3445. 'FINSI';
  3446. K = K + 1;
  3447. 'FINSI';
  3448. I = I + 1;
  3449. 'FIN' IND1;
  3450. 'OUBL' MAI1;
  3451. 'OUBL' VOL1;
  3452. 'OUBL' LL1;
  3453. 'OUBL' LL2;
  3454. 'OUBL' LL3;
  3455. 'OUBL' SUR1;
  3456. 'OUBL' PP1;
  3457. 'FINSI';
  3458. *
  3459. 'SI' ('EGA' ('VALEUR' 'MODE') 'PLANDEFO');
  3460. LL1 = 'VIDE' MAILLAGE;
  3461. MAI1 = 'VIDE' MAILLAGE;
  3462. TABCOL = TABLE;
  3463. NN1 = 'DIME' TABSOL_C;
  3464. MAI1A = VIDE MAILLAGE;
  3465. MAI2A = VIDE MAILLAGE;
  3466. I = 1;
  3467. 'REPE' IND1 (NN1);
  3468. 'SI' ('EXIST' (TABSOL_C. I) 'PROFILE');
  3469. LL1 = TABSOL_C. I .'PROFILE';
  3470. SUR1 = LL1 'TRANS' 1 (1. 0.);
  3471. LL2 = LL1 'PLUS' (1. 0.);
  3472. 'ELIM' 0.001 (SUR1 'ET' LL2 'ET' LL1);
  3473. MAI1A = MAI1A 'ET' SUR1;
  3474. MAI2A = MAI2A 'ET' LL2 'ET' LL1;
  3475. TABCOL. K = TABLE;
  3476. TABCOL. K .'MAILLAGE' = SUR1;
  3477. TABCOL. K .'FRONTIERE' = LL2 'ET' LL1;
  3478. TABCOL. K .'MODULE_E' = TABSOL_C. I .'MODULE_E';
  3479. TABCOL. K .'MASSE_VOLUMIQUE' = TABSOL_C. I .'MASSE_VOLUMIQUE';
  3480. TABCOL. K .'POISSON' = TABSOL_C. I .'POISSON';
  3481. TABCOL. K .'G_GAMMA' = TABSOL_C. I .'G_GAMMA';
  3482. TABCOL. K .'H_GAMMA' = TABSOL_C. I .'H_GAMMA';
  3483. 'SI' ('EXIST' (TABSOL_C. I) 'BASE');
  3484. PP1 = (TABSOL_C. I .'BASE') 'POIN' 'PROC' (1000000. 0.);
  3485. LL3 = PP1 'LIGNE' 'TRANS' 1 (1. 0.);
  3486. ELIM 0.001 (SUR1 'ET' LL2 'ET' LL3);
  3487. TABCOL. K .'BASE' = LL3;
  3488. MAI2A = MAI2A 'ET' LL3;
  3489. 'FINSI';
  3490. K = K + 1;
  3491. 'FINSI';
  3492. I = I + 1;
  3493. 'FIN' IND1;
  3494. 'OUBL' MAI1;
  3495. 'OUBL' VOL1;
  3496. 'OUBL' LL1;
  3497. 'OUBL' LL2;
  3498. 'OUBL' LL3;
  3499. 'OUBL' SUR1;
  3500. 'OUBL' PP1;
  3501. 'FINSI';
  3502. *
  3503. 'SI' ('EGA' ('VALEUR' 'MODE') 'TRID');
  3504. LL1 = 'VIDE' MAILLAGE;
  3505. MAI1 = 'VIDE' MAILLAGE;
  3506. TABCOL = TABLE;
  3507. NN1 = 'DIME' TABSOL_C;
  3508. MAI1A = VIDE MAILLAGE;
  3509. MAI2A = VIDE MAILLAGE;
  3510. I = 1;
  3511. 'REPE' IND1 (NN1);
  3512. 'SI' ('EXIST' (TABSOL_C. I) 'PROFILE');
  3513. LL1 = TABSOL_C. I .'PROFILE';
  3514. SUR1 = LL1 'TRANS' 1 (1. 0. 0.);
  3515. VOL1 = SUR1 'VOLU' 1 'TRANS' (0. 1. 0.);
  3516. SUR2 = LL1 'TRANS' 1 (0. 1. 0.);
  3517. SUR3 = SUR1 'PLUS' (0. 1. 0.);
  3518. SUR4 = SUR2 'PLUS' (1. 0. 0.);
  3519. MAI1A = MAI1A 'ET' VOL1;
  3520. MAI2A = MAI2A 'ET' SUR1 'ET' SUR2 'ET' SUR3 'ET' SUR4;
  3521. 'ELIM' 0.001 (SUR1 'ET' SUR2 'ET' SUR3 'ET' SUR4 ET VOL1);
  3522. TABCOL. K = TABLE;
  3523. TABCOL. K .'MAILLAGE' = VOL1;
  3524. TABCOL. K .'FRONTIERE' = SUR1 ET SUR2 ET SUR3 ET SUR4;
  3525. TABCOL. K .'MODULE_E' = TABSOL_C. I .'MODULE_E';
  3526. TABCOL. K .'MASSE_VOLUMIQUE' = TABSOL_C. I .'MASSE_VOLUMIQUE';
  3527. TABCOL. K .'POISSON' = TABSOL_C. I .'POISSON';
  3528. TABCOL. K .'G_GAMMA' = TABSOL_C. I .'G_GAMMA';
  3529. TABCOL. K .'H_GAMMA' = TABSOL_C. I .'H_GAMMA';
  3530. 'SI' ('EXIST' (TABSOL_C. I) 'BASE');
  3531. PP1 = (TABSOL_C. I .'BASE') 'POIN' 'PROC' (1000000. 0. 0.);
  3532. LL3 = PP1 'LIGNE' 'TRANS' 1 (1. 0. 0.);
  3533. SUR5 = LL3 'TRANS' 1 (0. 1. 0.);
  3534. 'ELIM' 0.001 (SUR1 'ET' SUR2 'ET' SUR3 'ET' SUR4 'ET' VOL1
  3535. 'ET' SUR5);
  3536. TABCOL. K .'BASE' = SUR5;
  3537. MAI2A = MAI2A 'ET' SUR5;
  3538. 'FINSI';
  3539. K = K + 1;
  3540. 'FINSI';
  3541. I = I + 1;
  3542. 'FIN' IND1;
  3543. 'OUBL' MAI1;
  3544. 'OUBL' VOL1;
  3545. 'OUBL' LL1;
  3546. 'OUBL' SUR1;
  3547. 'OUBL' SUR2;
  3548. 'OUBL' SUR3;
  3549. 'OUBL' SUR4;
  3550. 'OUBL' SUR5;
  3551. 'OUBL' PP1;
  3552. 'FINSI';
  3553. 'ELIM' 0.001 MAI1A;
  3554. 'ELIM' 0.001 MAI2A;
  3555. 'OUBL' MAI1A;
  3556. 'OUBL' MAI2A;
  3557. 'FINSI';
  3558. *
  3559. I = 1;
  3560. NN1 = 'DIME' TABCOL;
  3561. *
  3562. 'SI' ('EGA' T_CAL 'ISS_CHAMPLOIN');
  3563. 'REPE' IND1 (NN1);
  3564. MAI1 = TABCOL. I .MAILLAGE;
  3565. 'SI' (('VALEUR' 'DIME') 'EGA' 2);
  3566. CH1 CH3 = 'COOR' MAI1;
  3567. 'SINON';
  3568. CH1 CH2 CH3 = 'COOR' MAI1;
  3569. 'FINSI';
  3570. Z1 = ('MINI' CH3) - 0.01;
  3571. Z2 = ('MAXI' CH3) + 0.01;
  3572. *
  3573. NN2 = 'DIME' TABSOL_C;
  3574. LL1 = 'LECT';
  3575. J = 1;
  3576. 'REPE' IND2 (NN2);
  3577. MAI2 = TABSOL_C. J .'MAILLAGE';
  3578. 'SI' (('VALEUR' 'DIME') 'EGA' 2);
  3579. CH1 CH3 = 'COOR' MAI2;
  3580. 'SINON';
  3581. CH1 CH2 CH3 = 'COOR' MAI2;
  3582. 'FINSI';
  3583. Z3 = ('MINI' CH3);
  3584. Z4 = ('MAXI' CH3);
  3585. 'SI' ((Z3 > Z1) 'ET' (Z4 < Z2));
  3586. LL1 = LL1 'ET' ('LECT' J);
  3587. 'FINSI';
  3588. J = J + 1;
  3589. 'FIN' IND2;
  3590. TABCOL. I .'INDICE' = LL1;
  3591. *
  3592. I = I + 1;
  3593. 'FIN' IND1;
  3594. 'FINSI';
  3595. *
  3596. 'OUBL' NN1;
  3597. 'OUBL' MAI1;
  3598. 'OUBL' CH1;
  3599. 'OUBL' CH2;
  3600. 'OUBL' CH3;
  3601. 'OUBL' NN2;
  3602. 'OUBL' LL1;
  3603. *
  3604. *
  3605. ************* controle structure **********************************
  3606. 'SI' ('EGA' ('TYPE' (TABSTR)) 'TABLE');
  3607. 'SI' ('EXIST' (TABSTR) 'MAILLAGE');
  3608. 'SI' ('NEG' ('TYPE' (TABSTR.'MAILLAGE')) 'MAILLAGE');
  3609. 'MESS' ;
  3610. 'MESS' ' Erreur....dans la table STRUCTURE';
  3611. 'MESS' ' le sous_indice MAILLAGE nest pas du type MAILLAGE';
  3612. 'QUIT' ISSLEQ;
  3613. 'FINSI';
  3614. 'SINON';
  3615. 'MESS' ;
  3616. 'MESS' ' Erreur....dans la table STRUCTURE';
  3617. 'MESS' ' manque le sous_indice MAILLAGE';
  3618. 'QUIT' ISSLEQ;
  3619. 'FINSI';
  3620. *
  3621. 'SI' ('EXIST' (TABSTR) 'RIGIDITE');
  3622. 'SI' ('NEG' ('TYPE' (TABSTR.'RIGIDITE')) 'RIGIDITE');
  3623. 'MESS' ;
  3624. 'MESS' ' Erreur....dans la table STRUCTURE';
  3625. 'MESS' ' le sous_indice RIGIDITE nest pas du type RIGIDITE';
  3626. 'QUIT' ISSLEQ;
  3627. 'FINSI';
  3628. 'SINON';
  3629. 'MESS' ;
  3630. 'MESS' ' Erreur....dans la table STRUCTURE';
  3631. 'MESS' ' manque le sous_indice RIGIDITE';
  3632. 'QUIT' ISSLEQ;
  3633. 'FINSI';
  3634. *
  3635. 'SI' ('EXIST' (TABSTR) 'MASSE');
  3636. 'SI' ('NEG' ('TYPE' (TABSTR.'MASSE')) 'RIGIDITE');
  3637. 'MESS' ;
  3638. 'MESS' ' Erreur....dans la table STRUCTURE';
  3639. 'MESS' ' le sous_indice MASSE nest pas du type RIGIDITE';
  3640. 'QUIT' ISSLEQ;
  3641. 'FINSI';
  3642. 'SINON';
  3643. 'MESS' ;
  3644. 'MESS' ' Erreur....dans la table STRUCTURE';
  3645. 'MESS' ' manque le sous_indice MASSE';
  3646. 'QUIT' ISSLEQ;
  3647. 'FINSI';
  3648. *
  3649. 'SI' ('EXIST' (TABSTR) 'AMORTISSEMENT');
  3650. 'SI' ('NEG' ('TYPE' (TABSTR.'AMORTISSEMENT')) 'RIGIDITE');
  3651. 'MESS' ;
  3652. 'MESS' ' Erreur....dans la table STRUCTURE';
  3653. 'MESS' ' le sous_indice AMORTISSEMENT nest pas du type RIGIDITE';
  3654. 'QUIT' ISSLEQ;
  3655. 'FINSI';
  3656. 'SINON';
  3657. 'MESS' ;
  3658. 'MESS' ' Erreur....dans la table STRUCTURE';
  3659. 'MESS' ' manque le sous_indice AMORTISSEMENT';
  3660. 'QUIT' ISSLEQ;
  3661. 'FINSI';
  3662. *
  3663. 'SI' ('EXIST' (TABSTR) 'BLOCAGES_MECANIQUES');
  3664. 'SI' ('NEG' ('TYPE' (TABSTR.'BLOCAGES_MECANIQUES')) 'RIGIDITE');
  3665. 'MESS' ;
  3666. 'MESS' ' Erreur....dans la table STRUCTURE';
  3667. 'MESS' ' le sous_ind BLOCAGES_MECANIQUES nest pas du type RIGIDITE';
  3668. 'QUIT' ISSLEQ;
  3669. 'FINSI';
  3670. 'SINON';
  3671. 'MESS' ;
  3672. 'MESS' ' Attention....dans la table STRUCTURE';
  3673. 'MESS' ' manque le sous_indice BLOCAGES_MECANIQUES';
  3674. 'FINSI';
  3675. *
  3676. 'FINSI';
  3677. *
  3678. MESS '';
  3679. MESS '--------------------------------------------------------------';
  3680. MESS '-- Fin Controle donnees d entrees --';
  3681. MESS '--------------------------------------------------------------';
  3682. *
  3683. **************************************************************
  3684. *
  3685. MESS '';
  3686. MESS '--------------------------------------------------------------';
  3687. MESS '-- Selections des elements qui composents le sol --';
  3688. MESS '--------------------------------------------------------------';
  3689. *
  3690. F1 = TABPAR.'F1' ;
  3691. F2 = TABPAR.'F2' ;
  3692. FC = TABPAR.'FC' ;
  3693. V_MOD = 'VALEUR' 'MODE';
  3694. *
  3695. **************************************************************
  3696. * Selection des elements et des modules
  3697. **************************************************************
  3698. *
  3699. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  3700. NZONE_C = 'DIME' TABSOL_C ;
  3701.  
  3702. 'FINSI';
  3703. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  3704. NZONEC = ('DIME' TABCOL);
  3705. 'FINSI';
  3706. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  3707. NZONE_I = 'DIME' TABSOL_I ;
  3708. 'FINSI';
  3709. *
  3710. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  3711. SOL_C = 'TABLE';
  3712. ESO_C = 'TABLE';
  3713. 'FINSI';
  3714. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  3715. SOL_I = 'TABLE';
  3716. ESO_I = 'TABLE';
  3717. 'FINSI';
  3718. *
  3719. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  3720. SOLCOL = 'TABLE';
  3721. ESOCOL = 'TABLE';
  3722. 'FINSI';
  3723. *
  3724. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  3725. I = 1;
  3726. 'REPE' BLOC1 NZONE_I;
  3727. * SOL_I. I = 'TABLE';
  3728. * ESO_I. I = 'TABLE';
  3729. * NELEM_I = 'NBEL' TABSOL_I.I.MAILLAGE ;
  3730. * TELEM_I = TABSOL_I.I.MAILLAGE 'ELEM' 'TYPE';
  3731. * NTYPE_I = 'DIME' TELEM_I ;
  3732. *
  3733. * J = 1;
  3734. * ITYPE = 1 ;
  3735. * 'REPE' BLOC11 NTYPE_I ;
  3736. * MTYPE = 'EXTR' TELEM_I ITYPE ;
  3737. * MAIL1_I = TABSOL_I.I.'MAILLAGE' 'ELEM' MTYPE ;
  3738. * NELEM1_I = 'NBEL' MAIL1_I ;
  3739. * K = 1 ;
  3740. * 'REPE' BLOC111 NELEM1_I ;
  3741. * SOL_I.I.J = MAIL1_I 'ELEM' K ;
  3742. * 'SI' ('EXIST' (TABSOL_I.I) 'G_GO');
  3743. * ESO_I.I.J = ((TABSOL_I.I.'G_GO' )*(TABSOL_I.I.'MODULE_E'));
  3744. * 'SINON';
  3745. * ESO_I.I.J = TABSOL_I.I.'MODULE_E' ;
  3746. * 'FINSI';
  3747. * K = K + 1 ;
  3748. * J = J + 1 ;
  3749. * 'FIN' BLOC111 ;
  3750. * ITYPE = ITYPE + 1 ;
  3751. * 'FIN' BLOC11 ;
  3752. SOL_I.I = TABSOL_I.I.'MAILLAGE' ;
  3753. 'SI' ('EXIST' (TABSOL_I.I) 'G_GO');
  3754. ESO_I.I = ((TABSOL_I.I.'G_GO' )
  3755. *(TABSOL_I.I.'MODULE_E'));
  3756. 'SINON';
  3757. ESO_I.I = TABSOL_I.I.'MODULE_E' ;
  3758. 'FINSI';
  3759. I = I + 1 ;
  3760. 'FIN' BLOC1 ;
  3761. 'OUBL' NELEM_I;
  3762. 'OUBL' TELEM_I;
  3763. 'OUBL' NTYPE_I;
  3764. 'OUBL' I;
  3765. 'OUBL' J;
  3766. 'OUBL' K;
  3767. 'OUBL' ITYPE;
  3768. 'FINSI';
  3769. *
  3770. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  3771. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  3772. I = 1;
  3773. 'REPE' BLOC1 NZONEC;
  3774. 'SI' ('EXIST' (TABCOL) I);
  3775. SOLCOL. I = 'TABLE';
  3776. ESOCOL. I = 'TABLE';
  3777. *
  3778. NELEMC = 'NBEL' TABCOL. I .MAILLAGE ;
  3779. TELEMC = TABCOL.I.MAILLAGE 'ELEM' 'TYPE';
  3780. NTYPEC = 'DIME' TELEMC ;
  3781. *
  3782. ITYPE = 1 ;
  3783. J = 1;
  3784. 'REPE' BLOC11 NTYPEC ;
  3785. MTYPE = 'EXTR' TELEMC ITYPE ;
  3786. MAIL1C = TABCOL.I.'MAILLAGE' 'ELEM' MTYPE ;
  3787. NELEM1C = 'NBEL' MAIL1C ;
  3788. K = 1 ;
  3789. 'REPE' BLOC111 NELEM1C ;
  3790. SOLCOL.I.J = MAIL1C 'ELEM' K ;
  3791. ESOCOL.I.J = TABCOL.I.'MODULE_E' ;
  3792. 'SI' (('VALEUR' 'DIME') 'EGA' 2);
  3793. CH1 CH3 = 'COOR' (SOLCOL.I.J);
  3794. Z1 = 'MINI' CH3;
  3795. Z2 = 'MAXI' CH3;
  3796. Z1 = Z1 - 0.001;
  3797. Z2 = Z2 + 0.001;
  3798. X1 = -100000.;
  3799. X2 = 100000.;
  3800. ZZ1 = 1;
  3801. 'REPE' BLOC1111 ('DIME' TABCOL. I .'INDICE');
  3802. JJ1 = 'EXTR' (TABCOL. I .'INDICE') ZZ1;
  3803. 'SI' ('EXIST' SOL_C JJ1);
  3804.  
  3805. 'SINON';
  3806. SOL_C. JJ1 = 'TABLE';
  3807. ESO_C. JJ1 = 'TABLE';
  3808. 'FINSI';
  3809. CH1 CH2 = 'COOR' (TABSOL_C. JJ1 .'MAILLAGE');
  3810. MAI2 = CH1 'POIN' 'COMPRIS' X1 X2;
  3811. CH2 = 'REDU' CH2 MAI2 ;
  3812. MAI2 = CH2 'POIN' 'COMPRIS' Z1 Z2;
  3813. MAI2 = (TABSOL_C. JJ1 .'MAILLAGE') 'ELEM' 'APPUYE'
  3814. 'STRICTEMENT' MAI2;
  3815. SOL_C. JJ1 . J = MAI2;
  3816. 'SI' ('EXIST' (TABSOL_C.JJ1) 'G_GO');
  3817. ESO_C.JJ1.J = ((TABSOL_C.JJ1.'G_GO' )
  3818. *(TABSOL_C.JJ1.'MODULE_E'));
  3819. 'SINON';
  3820. ESO_C.JJ1.J = TABSOL_C.JJ1.'MODULE_E' ;
  3821. 'FINSI';
  3822. ZZ1 = ZZ1 + 1;
  3823. 'FIN' BLOC1111;
  3824. 'SINON';
  3825. CH1 CH2 CH3 = 'COOR' (SOLCOL.I.J);
  3826. Z1 = 'MINI' CH3;
  3827. Z2 = 'MAXI' CH3;
  3828. Z1 = Z1 - 0.001;
  3829. Z2 = Z2 + 0.001;
  3830. X1 = -100000.;
  3831. X2 = 100000.;
  3832. Y1 = -100000.;
  3833. Y2 = 100000.;
  3834. ZZ1 = 1;
  3835. 'REPE' BLOC1111 ('DIME' TABCOL. I .'INDICE');
  3836. JJ1 = 'EXTR' (TABCOL. I .'INDICE') ZZ1;
  3837. 'SI' ('EXIST' SOL_C JJ1);
  3838.  
  3839. 'SINON';
  3840. SOL_C. JJ1 = 'TABLE';
  3841. ESO_C. JJ1 = 'TABLE';
  3842. 'FINSI';
  3843. CH1 CH2 CH3 = 'COOR' (TABSOL_C. JJ1 .'MAILLAGE');
  3844. MAI2 = CH1 'POIN' 'COMPRIS' X1 X2;
  3845. CH2 = 'REDU' CH2 MAI2 ;
  3846. MAI2 = CH2 'POIN' 'COMPRIS' Y1 Y2;
  3847. CH3 = 'REDU' CH3 MAI2 ;
  3848. MAI2 = CH3 'POIN' 'COMPRIS' Z1 Z2;
  3849. CH3 = 'REDU' CH3 MAI2 ;
  3850. MAI2 = (TABSOL_C. JJ1 .MAILLAGE) 'ELEM' 'APPUYE'
  3851. 'STRICTEMENT' MAI2;
  3852. SOL_C. JJ1 . J = MAI2;
  3853. 'SI' ('EXIST' (TABSOL_C.I) 'G_GO');
  3854. ESO_C.I.J = ((TABSOL_C.I.'G_GO' )
  3855. *(TABSOL_C.I.'MODULE_E'));
  3856. 'SINON';
  3857. ESO_C.I.J = TABSOL_C.I.'MODULE_E' ;
  3858. 'FINSI';
  3859. ZZ1 = ZZ1 + 1;
  3860. 'FIN' BLOC1111;
  3861. 'FINSI';
  3862. K = K + 1 ;
  3863. J = J + 1 ;
  3864. 'FIN' BLOC111 ;
  3865. ITYPE = ITYPE + 1 ;
  3866. 'FIN' BLOC11 ;
  3867. 'FINSI';
  3868. I = I + 1 ;
  3869. 'FIN' BLOC1 ;
  3870. 'OUBL' NELEMC;
  3871. 'OUBL' TELEMC;
  3872. 'OUBL' NTYPEC;
  3873. 'OUBL' I;
  3874. 'OUBL' J;
  3875. 'OUBL' K;
  3876. 'OUBL' ITYPE;
  3877. 'OUBL' CH1;
  3878. 'OUBL' CH2;
  3879. 'OUBL' CH3;
  3880. 'OUBL' MAI1;
  3881. 'OUBL' MAI2;
  3882. 'OUBL' MAI3;
  3883. 'OUBL' X1;
  3884. 'OUBL' X2;
  3885. 'OUBL' Y1;
  3886. 'OUBL' Y2;
  3887. 'OUBL' Z1;
  3888. 'OUBL' Z2;
  3889. 'OUBL' JJ1;
  3890. 'OUBL' ZZ1;
  3891. 'SINON';
  3892. I = 1;
  3893. J = 1;
  3894. 'REPE' BLOC1 NZONE_C;
  3895. SOL_C.I = TABSOL_C.I.'MAILLAGE' ;
  3896. 'SI' ('EXIST' (TABSOL_C.I) 'G_GO');
  3897. ESO_C.I = ((TABSOL_C.I.'G_GO' )
  3898. *(TABSOL_C.I.'MODULE_E'));
  3899. 'SINON';
  3900. ESO_C.I = TABSOL_C.I.'MODULE_E' ;
  3901. 'FINSI';
  3902. I = I + 1 ;
  3903. 'FIN' BLOC1 ;
  3904. 'OUBL' I;
  3905. 'FINSI';
  3906. 'FINSI';
  3907. *
  3908. ************************************************************************
  3909. * Les courbes G/Gmax-gamma et h-gamma etablies par Seed et Idriss
  3910. ************************************************************************
  3911. *
  3912. GAM_EFF = 'PROG' 1.00E-6 3.16E-6 1.00E-5 3.16E-5 1.00E-4 3.16E-4
  3913. 1.00E-3 3.16E-3 1.00E-2 3.16E-2 1.00E-1 ;
  3914. G_CLAY = 'PROG' 1.000 0.913 0.761 0.565 0.400 0.261
  3915. 0.152 0.076 0.037 0.013 0.004 ;
  3916. H_CLAY = 'PROG' 0.025 0.025 0.025 0.035 0.0475 0.065
  3917. 0.0925 0.138 0.200 0.260 0.290 ;
  3918. G_SAND = 'PROG' 1.000 0.984 0.934 0.826 0.656 0.443
  3919. 0.246 0.115 0.049 0.049 0.049 ;
  3920. H_SAND = 'PROG' 0.005 0.008 0.017 0.032 0.056 0.100
  3921. 0.155 0.210 0.246 0.246 0.246 ;
  3922. TITRE 'COURBE G/GMAX-GAMMA PAR SEED ET IDRISS, SOL ARGILEUX' ;
  3923. EG_CLAY = EVOL MANU 'DISTORSION' GAM_EFF 'G/GMAX' G_CLAY ;
  3924. *
  3925. TITRE 'COURBE H-GAMMA PAR SEED ET IDRISS, SOL ARGILEUX' ;
  3926. EH_CLAY = EVOL MANU 'DISTORSION' GAM_EFF 'AMOR h' H_CLAY ;
  3927. *
  3928. TITRE 'COURBE G/GMAX-GAMMA PAR SEED ET IDRISS, SOL SABLEUX' ;
  3929. EG_SAND = EVOL MANU 'DISTORSION' GAM_EFF 'G/GMAX' G_SAND ;
  3930. *
  3931. TITRE 'COURBE H-GAMMA PAR SEED ET IDRISS, SOL SABLEUX' ;
  3932. EH_SAND = EVOL MANU 'DISTORSION' GAM_EFF 'AMOR h' H_SAND ;
  3933. *
  3934. ************************************************************************
  3935. * Former les matrices K, M, C
  3936. ************************************************************************
  3937. *
  3938. MESS '';
  3939. MESS '--------------------------------------------------------------';
  3940. MESS '-- preparations des moodeles, materiax et matrices --';
  3941. MESS '-- pour chaque elements du sol --';
  3942. MESS '--------------------------------------------------------------';
  3943. *
  3944. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  3945. MOD_I = 'TABLE' ;
  3946. GGO_I = 'TABLE' ;
  3947. MAT_I = 'TABLE' ;
  3948. RIG_I = 'TABLE' ;
  3949. MAS_I = 'TABLE' ;
  3950. KSI_I = 'TABLE' ;
  3951. AMO_I = 'TABLE' ;
  3952. 'FINSI';
  3953. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  3954. MOD_C = 'TABLE' ;
  3955. MAT_C = 'TABLE' ;
  3956. GGO_C = 'TABLE' ;
  3957. RIG_C = 'TABLE' ;
  3958. MAS_C = 'TABLE' ;
  3959. KSI_C = 'TABLE' ;
  3960. AMO_C = 'TABLE' ;
  3961. 'FINSI';
  3962. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  3963. MODCOL = 'TABLE' ;
  3964. MATCOL = 'TABLE' ;
  3965. GGOCOL = 'TABLE' ;
  3966. RIGCOL = 'TABLE' ;
  3967. MASCOL = 'TABLE' ;
  3968. KSICOL = 'TABLE' ;
  3969. AMOCOL = 'TABLE' ;
  3970. 'FINSI';
  3971. *
  3972. GCLAY = 0 ;
  3973. GSAND = 0 ;
  3974. HCLAY = 0 ;
  3975. HSAND = 0 ;
  3976. *
  3977. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  3978. I = 1 ;
  3979. 'REPE' BLOC2 NZONE_I ;
  3980. 'SI' ( 'EGA' ( 'TYPE' ( TABSOL_I.I.'G_GAMMA')) 'MOT ' ) ;
  3981. 'SI' ( 'EGA' ( TABSOL_I.I.'G_GAMMA') 'CLAY' ) ;
  3982. TABSOL_I.I.'G_GAMMA' = EG_CLAY ;
  3983. GCLAY = 1 ;
  3984. 'SINON' ;
  3985. 'SI' ( 'EGA' ( TABSOL_I.I.'G_GAMMA') 'SAND' ) ;
  3986. TABSOL_I.I.'G_GAMMA' = EG_SAND ;
  3987. GSAND = 1 ;
  3988. 'FINSI' ;
  3989. 'FINSI' ;
  3990. 'FINSI' ;
  3991. 'SI' ( 'EGA' ( 'TYPE' ( TABSOL_I.I.'H_GAMMA')) 'MOT ' ) ;
  3992. 'SI' ( 'EGA' ( TABSOL_I.I.'H_GAMMA') 'CLAY' ) ;
  3993. TABSOL_I.I.'H_GAMMA' = EH_CLAY ;
  3994. HCLAY = 1 ;
  3995. 'SINON' ;
  3996. 'SI' ( 'EGA' ( TABSOL_I.I.'H_GAMMA') 'SAND' ) ;
  3997. TABSOL_I.I.'H_GAMMA' = EH_SAND ;
  3998. HSAND = 1 ;
  3999. 'FINSI' ;
  4000. 'FINSI' ;
  4001. 'FINSI' ;
  4002. * MOD_I.I = 'TABLE' ;
  4003. * GGO_I.I = 'TABLE' ;
  4004. * MAT_I.I = 'TABLE' ;
  4005. * RIG_I.I = 'TABLE' ;
  4006. * MAS_I.I = 'TABLE' ;
  4007. * KSI_I.I = 'TABLE' ;
  4008. * AMO_I.I = 'TABLE' ;
  4009. * NELEM_I = ('DIME' SOL_I.I);
  4010. *
  4011. ALPHA = 4 * PI * F1 * F2 / ( F1 + F2 ) ;
  4012. BETA = 1.0 / ( PI * ( F1 + F2 ) ) ;
  4013. *
  4014. * J = 1 ;
  4015. * 'REPE' BLOC21 NELEM_I ;
  4016. * 'SI' ('EXIST' (TABSOL_I.I) 'AMORTISSEMENT');
  4017. * H_I = (TABSOL_I.I.'AMORTISSEMENT');
  4018. * 'SINON';
  4019. * H_I = 'EXTR' ( 'EXTR' (TABSOL_I. I .'H_GAMMA') 'ORDO' ) 1 ;
  4020. * 'FINSI';
  4021. * 'SI' ('EGA' V_MOD 'TRID');
  4022. * MOD_I. I . J = 'MODE' (SOL_I. I . J ) 'MECANIQUE'
  4023. * 'ELASTIQUE' 'ISOTROPE' CUB8 PRI6;
  4024. * MAT_I. I . J = 'MATE' (MOD_I. I . J ) 'YOUN' (ESO_I. I . J)
  4025. * 'NU' (TABSOL_I. I .'POISSON')
  4026. * 'RHO' (TABSOL_I. I .'MASSE_VOLUMIQUE');
  4027. * 'SINON';
  4028. * MOD_I. I . J = 'MODE' (SOL_I. I . J) 'MECANIQUE'
  4029. * 'ELASTIQUE' 'ISOTROPE' QUA8 TRI6 ;
  4030. * MAT_I. I . J = 'MATE' (MOD_I. I . J) 'YOUN' (ESO_I. I . J )
  4031. * 'NU' (TABSOL_I. I .'POISSON')
  4032. * 'RHO' (TABSOL_I. I .'MASSE_VOLUMIQUE');
  4033. * 'FINSI';
  4034. * 'SI' ('EXIST' (TABSOL_I.I) 'G_GO');
  4035. * GGO_I. I . J = 'MANU' 'CHML' MOD_I.I.J G_GO (TABSOL_I.I.'G_GO');
  4036. * 'SINON';
  4037. * GGO_I. I . J = 'MANU' 'CHML' MOD_I.I.J G_GO 1.0 ;
  4038. * 'FINSI';
  4039. * RIG_I. I . J = 'RIGI' MOD_I.I.J MAT_I.I.J;
  4040. * MAS_I. I . J = 'MASS' MOD_I.I.J MAT_I.I.J;
  4041. * KSI_I. I . J = 'MANU' 'CHML' MOD_I.I.J 'KS' H_I ;
  4042. * KSI_I_J = 'EXTR' KSI_I.I.J 'KS' 1 1 1 ;
  4043. * AMO_I. I . J = (KSI_I_J) * (((ALPHA) * (MAS_I. I . J))
  4044. * 'ET' ((BETA) * (RIG_I. I . J)));
  4045. * J = J + 1 ;
  4046. * 'FIN' BLOC21 ;
  4047.  
  4048.  
  4049. 'SI' ('EXIST' (TABSOL_I.I) 'AMORTISSEMENT');
  4050. H_I = (TABSOL_I.I.'AMORTISSEMENT');
  4051. 'SINON';
  4052. H_I = 'EXTR' ( 'EXTR' (TABSOL_I. I .'H_GAMMA') 'ORDO' ) 1 ;
  4053. 'FINSI';
  4054. 'SI' ('EGA' V_MOD 'TRID');
  4055. MOD_I. I = 'MODE' (SOL_I. I) 'MECANIQUE'
  4056. 'ELASTIQUE' 'ISOTROPE' CUB8 PRI6;
  4057. MAT_I. I = 'MATE' (MOD_I. I) 'YOUN' (ESO_I. I)
  4058. 'NU' (TABSOL_I. I .'POISSON')
  4059. 'RHO' (TABSOL_I. I .'MASSE_VOLUMIQUE');
  4060. 'SINON';
  4061. MOD_I. I = 'MODE' (SOL_I. I) 'MECANIQUE'
  4062. 'ELASTIQUE' 'ISOTROPE' QUA8 TRI6 ;
  4063. MAT_I. I = 'MATE' (MOD_I. I) 'YOUN' (ESO_I. I)
  4064. 'NU' (TABSOL_I. I .'POISSON')
  4065. 'RHO' (TABSOL_I. I .'MASSE_VOLUMIQUE');
  4066. 'FINSI';
  4067. 'SI' ('EXIST' (TABSOL_I.I) 'G_GO');
  4068. GGO_I. I = 'MANU' 'CHML' MOD_I.I G_GO (TABSOL_I.I.'G_GO');
  4069. 'SINON';
  4070. GGO_I. I = 'MANU' 'CHML' MOD_I.I G_GO 1.0 ;
  4071. 'FINSI';
  4072. RIG_I. I = 'RIGI' MOD_I.I MAT_I.I;
  4073. MAS_I. I = 'MASS' MOD_I.I MAT_I.I;
  4074. KSI_I. I = 'MANU' 'CHML' MOD_I.I 'KS' H_I ;
  4075.  
  4076. MAT_PRO = 'MATE' (MOD_I. I) 'YOUN'
  4077. (((ESO_I. I)*(KSI_I. I))*(BETA))
  4078. 'NU' (TABSOL_I. I .'POISSON')
  4079. 'RHO'
  4080. (((TABSOL_I. I .'MASSE_VOLUMIQUE')*(KSI_I. I))*(ALPHA));
  4081. * KSI_I_J = 'EXTR' KSI_I.I.J 'KS' 1 1 1 ;
  4082. * AMO_I. I . J = (KSI_I_J) * (((ALPHA) * (MAS_I. I . J))
  4083. * 'ET' ((BETA) * (RIG_I. I . J)));
  4084. AMO_I. I = (MASS (MOD_I.I) MAT_PRO) ET (RIGI (MOD_I.I) MAT_PRO);
  4085.  
  4086. I = I + 1 ;
  4087. 'FIN' BLOC2 ;
  4088. 'FINSI';
  4089. OUBL H_I;
  4090. OUBL KSI_I_J;
  4091. OUBL J;
  4092. OUBL I;
  4093. OUBL NELEM_I;
  4094. OUBL GSAND;
  4095. OUBL HSAND;
  4096. OUBL GCLAY;
  4097. OUBL HCLAY;
  4098. *
  4099. GCLAY = 0 ;
  4100. GSAND = 0 ;
  4101. HCLAY = 0 ;
  4102. HSAND = 0 ;
  4103. *
  4104. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  4105. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  4106. I = 1 ;
  4107. 'REPE' BLOC2 NZONEC ;
  4108. 'SI' ( 'EGA' ( 'TYPE' ( TABCOL.I.'G_GAMMA')) 'MOT ' ) ;
  4109. 'SI' ( 'EGA' ( TABCOL.I.'G_GAMMA') 'CLAY' ) ;
  4110. TABCOL. I .'G_GAMMA' = EG_CLAY ;
  4111. GCLAY = 1 ;
  4112. 'SINON' ;
  4113. 'SI' ( 'EGA' ( TABCOL.I.'G_GAMMA') 'SAND' ) ;
  4114. TABCOL. I .'G_GAMMA' = EG_SAND ;
  4115. GSAND = 1 ;
  4116. 'FINSI' ;
  4117. 'FINSI' ;
  4118. 'FINSI' ;
  4119. 'SI' ( 'EGA' ( 'TYPE' ( TABCOL.I.'H_GAMMA')) 'MOT ' ) ;
  4120. 'SI' ( 'EGA' ( TABCOL.I.'H_GAMMA') 'CLAY' ) ;
  4121. TABCOL. I .'H_GAMMA' = EH_CLAY ;
  4122. HCLAY = 1 ;
  4123. 'SINON' ;
  4124. 'SI' ( 'EGA' ( TABCOL.I.'H_GAMMA') 'SAND' ) ;
  4125. TABCOL. I .'H_GAMMA' = EH_SAND ;
  4126. HSAND = 1 ;
  4127. 'FINSI' ;
  4128. 'FINSI' ;
  4129. 'FINSI' ;
  4130. MODCOL. I = 'TABLE' ;
  4131. GGOCOL. I = 'TABLE' ;
  4132. MATCOL. I = 'TABLE' ;
  4133. RIGCOL. I = 'TABLE' ;
  4134. MASCOL. I = 'TABLE' ;
  4135. KSICOL. I = 'TABLE' ;
  4136. AMOCOL. I = 'TABLE' ;
  4137. NELEMC = ('DIME' SOLCOL. I);
  4138. *
  4139. ALPHA = 4 * PI * F1 * F2 / ( F1 + F2 ) ;
  4140. BETA = 1.0 / ( PI * ( F1 + F2 ) ) ;
  4141. *
  4142. J = 1 ;
  4143. 'REPE' BLOC21 NELEMC ;
  4144. HC = 'EXTR' ( 'EXTR' TABCOL.I.'H_GAMMA' 'ORDO' ) 1 ;
  4145. 'SI' ('EGA' V_MOD 'TRID');
  4146. MODCOL. I . J = 'MODE' (SOLCOL. I . J) 'MECANIQUE'
  4147. 'ELASTIQUE' 'ISOTROPE' CUB8 PRI6;
  4148. MATCOL. I . J = 'MATE' (MODCOL. I . J) 'YOUN' (ESOCOL. I . J)
  4149. 'NU' (TABCOL.I.'POISSON')
  4150. 'RHO' (TABCOL. I .'MASSE_VOLUMIQUE') ;
  4151. 'SINON';
  4152. MODCOL. I . J = 'MODE' SOLCOL.I.J 'MECANIQUE'
  4153. 'ELASTIQUE' 'ISOTROPE' QUA8 TRI6 ;
  4154. MATCOL. I . J = 'MATE' MODCOL.I.J 'YOUN' ESOCOL.I.J
  4155. 'NU' ( TABCOL.I.'POISSON' )
  4156. 'RHO' ( TABCOL.I.'MASSE_VOLUMIQUE' ) ;
  4157. 'FINSI';
  4158. GGOCOL. I . J = 'MANU' 'CHML' (MODCOL. I . J) G_GO 1.0 ;
  4159. RIGCOL. I . J = 'RIGI' (MODCOL. I . J) (MATCOL. I . J);
  4160. MASCOL. I . J = 'MASS' (MODCOL. I . J) (MATCOL. I . J);
  4161. KSICOL. I . J = 'MANU' 'CHML' (MODCOL. I . J) KS HC ;
  4162. KSICOL_J = 'EXTR' (KSICOL. I . J) 'KS' 1 1 1 ;
  4163. AMOCOL. I . J = (KSICOL_J) * (((ALPHA) * (MASCOL. I . J))
  4164. 'ET' ((BETA) * (RIGCOL. I . J)));
  4165. J = J + 1 ;
  4166. 'FIN' BLOC21 ;
  4167. I = I + 1 ;
  4168. 'FIN' BLOC2 ;
  4169. *
  4170. I = 1 ;
  4171. 'REPE' BLOC2 NZONE_C ;
  4172. 'SI' ( 'EGA' ( 'TYPE' ( TABSOL_C.I.'G_GAMMA')) 'MOT ' ) ;
  4173. 'SI' ( 'EGA' ( TABSOL_C.I.'G_GAMMA') 'CLAY' ) ;
  4174. TABSOL_C. I .'G_GAMMA' = EG_CLAY ;
  4175. GCLAY = 1 ;
  4176. 'SINON' ;
  4177. 'SI' ( 'EGA' ( TABSOL_C.I.'G_GAMMA') 'SAND' ) ;
  4178. TABSOL_C. I .'G_GAMMA' = EG_SAND ;
  4179. GSAND = 1 ;
  4180. 'FINSI' ;
  4181. 'FINSI' ;
  4182. 'FINSI' ;
  4183. 'SI' ( 'EGA' ( 'TYPE' ( TABSOL_C.I.'H_GAMMA')) 'MOT ' ) ;
  4184. 'SI' ( 'EGA' ( TABSOL_C.I.'H_GAMMA') 'CLAY' ) ;
  4185. TABSOL_C. I .'H_GAMMA' = EH_CLAY ;
  4186. HCLAY = 1 ;
  4187. 'SINON' ;
  4188. 'SI' ( 'EGA' ( TABSOL_C.I.'H_GAMMA') 'SAND' ) ;
  4189. TABSOL_C. I .'H_GAMMA' = EH_SAND ;
  4190. HSAND = 1 ;
  4191. 'FINSI' ;
  4192. 'FINSI' ;
  4193. 'FINSI' ;
  4194. MOD_C. I = 'TABLE' ;
  4195. GGO_C. I = 'TABLE' ;
  4196. MAT_C. I = 'TABLE' ;
  4197. RIG_C. I = 'TABLE' ;
  4198. MAS_C. I = 'TABLE' ;
  4199. KSI_C. I = 'TABLE' ;
  4200. AMO_C. I = 'TABLE' ;
  4201. NELEM_C = ('DIME' SOL_C.I);
  4202. *
  4203. ALPHA = 4 * PI * F1 * F2 / ( F1 + F2 ) ;
  4204. BETA = 1.0 / ( PI * ( F1 + F2 ) ) ;
  4205. *
  4206. J = 1 ;
  4207. 'REPE' BLOC21 NELEM_C ;
  4208. H_C = 'EXTR' ( 'EXTR' TABSOL_C.I.'H_GAMMA' 'ORDO' ) 1 ;
  4209. 'SI' ('EGA' V_MOD 'TRID');
  4210. MOD_C. I . J = 'MODE' (SOL_C. I . J) 'MECANIQUE'
  4211. 'ELASTIQUE' 'ISOTROPE' CUB8 PRI6;
  4212. MAT_C. I . J = 'MATE' (MOD_C. I . J) 'YOUN' (ESO_C. I . J)
  4213. 'NU' (TABSOL_C. I .'POISSON')
  4214. 'RHO' (TABSOL_C. I .'MASSE_VOLUMIQUE');
  4215. 'SINON';
  4216. MOD_C. I . J = 'MODE' (SOL_C. I . J) 'MECANIQUE'
  4217. 'ELASTIQUE' 'ISOTROPE' QUA8 TRI6 ;
  4218. MAT_C. I . J = 'MATE' (MOD_C. I . J) 'YOUN' (ESO_C. I . J)
  4219. 'NU' (TABSOL_C. I .'POISSON')
  4220. 'RHO' (TABSOL_C. I .'MASSE_VOLUMIQUE') ;
  4221. 'FINSI';
  4222. GGO_C. I . J = 'MANU' 'CHML' (MOD_C. I . J) G_GO 1.0 ;
  4223. RIG_C. I . J = 'RIGI' (MOD_C. I . J) (MAT_C. I . J);
  4224. MAS_C. I . J = 'MASS' (MOD_C. I . J) (MAT_C. I . J);
  4225. KSI_C. I . J = 'MANU' 'CHML' (MOD_C. I . J) 'KS' HC ;
  4226. KSI_C_J = 'EXTR' KSI_C.I.J KS 1 1 1 ;
  4227. AMO_C. I . J = KSI_C_J * (((ALPHA) * (MAS_C. I . J))
  4228. 'ET' ((BETA) * (RIG_C. I . J)));
  4229. J = J + 1 ;
  4230. 'FIN' BLOC21 ;
  4231. I = I + 1 ;
  4232. 'FIN' BLOC2 ;
  4233. 'SINON';
  4234. I = 1 ;
  4235. 'REPE' BLOC2 NZONE_C ;
  4236. MOD_C.I = 'TABLE' ;
  4237. GGO_C.I = 'TABLE' ;
  4238. MAT_C.I = 'TABLE' ;
  4239. RIG_C.I = 'TABLE' ;
  4240. MAS_C.I = 'TABLE' ;
  4241. KSI_C.I = 'TABLE' ;
  4242. AMO_C.I = 'TABLE' ;
  4243. *
  4244. ALPHA = 4 * PI * F1 * F2 / ( F1 + F2 ) ;
  4245. BETA = 1.0 / ( PI * ( F1 + F2 ) ) ;
  4246. *
  4247. H_C = TABSOL_C. I .'AMORTISSEMENT';
  4248. 'SI' ('EGA' V_MOD 'TRID');
  4249. MOD_C.I = 'MODE' SOL_C.I 'MECANIQUE'
  4250. 'ELASTIQUE' 'ISOTROPE' CUB8 PRI6;
  4251. 'SINON';
  4252. MOD_C.I = 'MODE' SOL_C.I 'MECANIQUE'
  4253. 'ELASTIQUE' 'ISOTROPE' QUA8 TRI6 ;
  4254. 'FINSI';
  4255. 'SI' ('EXIST' (TABSOL_C.I) 'G_GO');
  4256. GGO_C. I = 'MANU' 'CHML' MOD_C.I G_GO (TABSOL_C.I.'G_GO');
  4257. 'SINON';
  4258. GGO_C. I = 'MANU' 'CHML' MOD_C.I G_GO 1.0 ;
  4259. 'FINSI';
  4260. MAT_C.I = 'MATE' MOD_C.I 'YOUN' ESO_C.I
  4261. 'NU' ( TABSOL_C.I.'POISSON' )
  4262. 'RHO' ( TABSOL_C.I.'MASSE_VOLUMIQUE' ) ;
  4263. RIG_C.I = 'RIGI' MOD_C.I MAT_C.I;
  4264. MAS_C.I = 'MASS' MOD_C.I MAT_C.I;
  4265. KSI_C.I = 'MANU' 'CHML' MOD_C.I KS H_C ;
  4266. KSI_C_J = 'EXTR' KSI_C.I 'KS' 1 1 1 ;
  4267. AMO_C.I = KSI_C_J * (( ALPHA * MAS_C.I )
  4268. 'ET' ( BETA * RIG_C.I ));
  4269. I = I + 1 ;
  4270. 'FIN' BLOC2 ;
  4271. 'FINSI';
  4272. 'FINSI';
  4273. 'OUBL' H_C;
  4274. 'OUBL' HC;
  4275. 'OUBL' KSI_C_J;
  4276. 'OUBL' KSIC_J;
  4277. 'OUBL' I;
  4278. 'OUBL' NELEM_C;
  4279. 'OUBL' NELEMC;
  4280. 'OUBL' GSAND;
  4281. 'OUBL' HSAND;
  4282. 'OUBL' GCLAY;
  4283. 'OUBL' HCLAY;
  4284. *
  4285. ************************************************************************
  4286. * Assemblage
  4287. ************************************************************************
  4288. *
  4289. MESS '';
  4290. MESS '--------------------------------------------------------------';
  4291. MESS '-- Assemblage --';
  4292. MESS '--------------------------------------------------------------';
  4293. I = 1;
  4294. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  4295. 'REPE' BLOC3 NZONE_I;
  4296. * NELEM_I = (DIME SOL_I.I);
  4297. * J = 1;
  4298. * 'REPE' BLOC31 NELEM_I ;
  4299. * 'SI' ( ( I 'EGA' 1 ) 'ET' ( J 'EGA' 1 ) ) ;
  4300. * 'SI' ('EXIST' (SOL_I. I) J);
  4301. * MAI_SOLI = SOL_I. I . J ;
  4302. * MOD_SOLI = MOD_I. I . J ;
  4303. * GGO_SOLI = GGO_I. I . J ;
  4304. * MAT_SOLI = MAT_I. I . J ;
  4305. * RIG_SOLI = RIG_I. I . J ;
  4306. * MAS_SOLI = MAS_I. I . J ;
  4307. * KSI_SOLI = KSI_I. I . J ;
  4308. * AMO_SOLI = AMO_I. I . J ;
  4309. * 'FINSI';
  4310. * 'SINON';
  4311. * 'SI' ('EXIST' (SOL_I. I) J);
  4312. * MAI_SOLI = MAI_SOLI 'ET' (SOL_I. I . J);
  4313. * MOD_SOLI = MOD_SOLI 'ET' (MOD_I. I . J);
  4314. * GGO_SOLI = GGO_SOLI 'ET' (GGO_I. I . J);
  4315. * MAT_SOLI = MAT_SOLI 'ET' (MAT_I. I . J);
  4316. * RIG_SOLI = RIG_SOLI 'ET' (RIG_I. I . J);
  4317. * MAS_SOLI = MAS_SOLI 'ET' (MAS_I. I . J);
  4318. * KSI_SOLI = KSI_SOLI 'ET' (KSI_I. I . J);
  4319. * AMO_SOLI = AMO_SOLI 'ET' (AMO_I. I . J);
  4320. * 'FINSI';
  4321. * 'FINSI';
  4322. * J = J + 1;
  4323. * 'FIN' BLOC31;
  4324. 'SI' ( ( I 'EGA' 1 )) ;
  4325. MAI_SOLI = SOL_I. I;
  4326. MOD_SOLI = MOD_I. I;
  4327. GGO_SOLI = GGO_I. I;
  4328. MAT_SOLI = MAT_I. I;
  4329. RIG_SOLI = RIG_I. I;
  4330. MAS_SOLI = MAS_I. I;
  4331. KSI_SOLI = KSI_I. I;
  4332. AMO_SOLI = AMO_I. I;
  4333. 'SINON';
  4334. MAI_SOLI = MAI_SOLI 'ET' (SOL_I. I);
  4335. MOD_SOLI = MOD_SOLI 'ET' (MOD_I. I);
  4336. GGO_SOLI = GGO_SOLI 'ET' (GGO_I. I);
  4337. MAT_SOLI = MAT_SOLI 'ET' (MAT_I. I);
  4338. RIG_SOLI = RIG_SOLI 'ET' (RIG_I. I);
  4339. MAS_SOLI = MAS_SOLI 'ET' (MAS_I. I);
  4340. KSI_SOLI = KSI_SOLI 'ET' (KSI_I. I);
  4341. AMO_SOLI = AMO_SOLI 'ET' (AMO_I. I);
  4342. 'FINSI';
  4343. I = I + 1;
  4344. 'FIN' BLOC3;
  4345. 'FINSI';
  4346. *
  4347. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  4348. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  4349. I = 1;
  4350. 'REPE' BLOC3 NZONEC;
  4351. NELEMC = (DIME SOLCOL.I);
  4352. J = 1;
  4353. 'REPE' BLOC31 NELEMC ;
  4354. 'SI' ( ( I 'EGA' 1 ) 'ET' ( J 'EGA' 1 ) ) ;
  4355. 'SI' ('EXIST' (SOLCOL. I) J);
  4356. MAISOLC = SOLCOL. I . J ;
  4357. MODSOLC = MODCOL. I . J ;
  4358. GGOSOLC = GGOCOL. I . J ;
  4359. MATSOLC = MATCOL. I . J ;
  4360. RIGSOLC = RIGCOL. I . J ;
  4361. MASSOLC = MASCOL. I . J ;
  4362. KSISOLC = KSICOL. I . J ;
  4363. AMOSOLC = AMOCOL. I . J ;
  4364. 'FINSI';
  4365. 'SINON';
  4366. 'SI' ('EXIST' (SOLCOL. I) J);
  4367. MAISOLC = MAISOLC 'ET' (SOLCOL. I . J);
  4368. MODSOLC = MODSOLC 'ET' (MODCOL. I . J);
  4369. GGOSOLC = GGOSOLC 'ET' (GGOCOL. I . J);
  4370. MATSOLC = MATSOLC 'ET' (MATCOL. I . J);
  4371. RIGSOLC = RIGSOLC 'ET' (RIGCOL. I . J);
  4372. MASSOLC = MASSOLC 'ET' (MASCOL. I . J);
  4373. KSISOLC = KSISOLC 'ET' (KSICOL. I . J);
  4374. AMOSOLC = AMOSOLC 'ET' (AMOCOL. I . J);
  4375. 'FINSI';
  4376. 'FINSI';
  4377. J = J + 1;
  4378. 'FIN' BLOC31;
  4379. I = I + 1;
  4380. 'FIN' BLOC3;
  4381. *
  4382. I = 1;
  4383. 'REPE' BLOC3 NZONE_C;
  4384. NELEM_C = (DIME SOL_C.I);
  4385. J = 1;
  4386. 'REPE' BLOC31 NELEM_C ;
  4387. 'SI' ( ( I 'EGA' 1 ) 'ET' ( J 'EGA' 1 ) ) ;
  4388. 'SI' ('EXIST' (SOL_C. I) J);
  4389. MAI_SOLC = SOL_C. I . J ;
  4390. MOD_SOLC = MOD_C. I . J ;
  4391. GGO_SOLC = GGO_C. I . J ;
  4392. MAT_SOLC = MAT_C. I . J ;
  4393. RIG_SOLC = RIG_C. I . J ;
  4394. MAS_SOLC = MAS_C. I . J ;
  4395. KSI_SOLC = KSI_C. I . J ;
  4396. AMO_SOLC = AMO_C. I . J ;
  4397. 'FINSI';
  4398. 'SINON';
  4399. 'SI' ('EXIST' (SOL_C. I) J);
  4400. MAI_SOLC = MAI_SOLC 'ET' (SOL_C. I . J);
  4401. MOD_SOLC = MOD_SOLC 'ET' (MOD_C. I . J);
  4402. GGO_SOLC = GGO_SOLC 'ET' (GGO_C. I . J);
  4403. MAT_SOLC = MAT_SOLC 'ET' (MAT_C. I . J);
  4404. RIG_SOLC = RIG_SOLC 'ET' (RIG_C. I . J);
  4405. MAS_SOLC = MAS_SOLC 'ET' (MAS_C. I . J);
  4406. KSI_SOLC = KSI_SOLC 'ET' (KSI_C. I . J);
  4407. AMO_SOLC = AMO_SOLC 'ET' (AMO_C. I . J);
  4408. 'FINSI';
  4409. 'FINSI';
  4410. J = J + 1;
  4411. 'FIN' BLOC31;
  4412. I = I + 1;
  4413. 'FIN' BLOC3;
  4414. 'SINON';
  4415. I = 1;
  4416. 'REPE' BLOC3 NZONE_C;
  4417. 'SI' ( ( I 'EGA' 1 )) ;
  4418. MAI_SOLC = SOL_C. I ;
  4419. MOD_SOLC = MOD_C. I ;
  4420. GGO_SOLC = GGO_C. I ;
  4421. MAT_SOLC = MAT_C. I ;
  4422. RIG_SOLC = RIG_C. I ;
  4423. MAS_SOLC = MAS_C. I ;
  4424. KSI_SOLC = KSI_C. I ;
  4425. AMO_SOLC = AMO_C. I ;
  4426. 'SINON';
  4427. MAI_SOLC = MAI_SOLC 'ET' (SOL_C. I );
  4428. MOD_SOLC = MOD_SOLC 'ET' (MOD_C. I );
  4429. GGO_SOLC = GGO_SOLC 'ET' (GGO_C. I );
  4430. MAT_SOLC = MAT_SOLC 'ET' (MAT_C. I );
  4431. RIG_SOLC = RIG_SOLC 'ET' (RIG_C. I );
  4432. MAS_SOLC = MAS_SOLC 'ET' (MAS_C. I );
  4433. KSI_SOLC = KSI_SOLC 'ET' (KSI_C. I );
  4434. AMO_SOLC = AMO_SOLC 'ET' (AMO_C. I );
  4435. 'FINSI';
  4436. I = I + 1;
  4437. 'FIN' BLOC3;
  4438. 'FINSI';
  4439. 'FINSI';
  4440. *
  4441. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  4442. 'ELIM' MAI_SOLI 0.001 ;
  4443. MAI_SOLT = MAI_SOLI;
  4444. MOD_SOLT = MOD_SOLI;
  4445. GGO_SOLT = GGO_SOLI;
  4446. MAT_SOLT = MAT_SOLI;
  4447. RIG_SOLT = RIG_SOLI;
  4448. MAS_SOLT = MAS_SOLI;
  4449. KSI_SOLT = KSI_SOLI;
  4450. AMO_SOLT = AMO_SOLI;
  4451. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  4452. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  4453. 'ELIM' MAI_SOLC 0.001 ;
  4454. MAI_SOLT = MAI_SOLI 'ET' MAI_SOLC;
  4455. MOD_SOLT = MOD_SOLI 'ET' MOD_SOLC;
  4456. GGO_SOLT = GGO_SOLI 'ET' GGO_SOLC;
  4457. MAT_SOLT = MAT_SOLI 'ET' MAT_SOLC;
  4458. RIG_SOLT = RIG_SOLI 'ET' RIG_SOLC;
  4459. MAS_SOLT = MAS_SOLI 'ET' MAS_SOLC;
  4460. KSI_SOLT = KSI_SOLI 'ET' KSI_SOLC;
  4461. AMO_SOLT = AMO_SOLI 'ET' AMO_SOLC;
  4462. *
  4463. 'ELIM' MAISOLC 0.001 ;
  4464. MAISOLT = MAISOLC;
  4465. MODSOLT = MODSOLC;
  4466. GGOSOLT = GGOSOLC;
  4467. MATSOLT = MATSOLC;
  4468. RIGSOLT = RIGSOLC;
  4469. MASSOLT = MASSOLC;
  4470. KSISOLT = KSISOLC;
  4471. AMOSOLT = AMOSOLC;
  4472. 'SINON';
  4473. 'ELIM' MAI_SOLC 0.001 ;
  4474. MAI_SOLT = MAI_SOLI 'ET' MAI_SOLC;
  4475. MOD_SOLT = MOD_SOLI 'ET' MOD_SOLC;
  4476. GGO_SOLT = GGO_SOLI 'ET' GGO_SOLC;
  4477. MAT_SOLT = MAT_SOLI 'ET' MAT_SOLC;
  4478. RIG_SOLT = RIG_SOLI 'ET' RIG_SOLC;
  4479. MAS_SOLT = MAS_SOLI 'ET' MAS_SOLC;
  4480. KSI_SOLT = KSI_SOLI 'ET' KSI_SOLC;
  4481. AMO_SOLT = AMO_SOLI 'ET' AMO_SOLC;
  4482. 'FINSI';
  4483. 'FINSI';
  4484. 'SINON';
  4485. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  4486. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  4487. 'ELIM' MAI_SOLC 0.001 ;
  4488. MAI_SOLT = MAI_SOLC;
  4489. MOD_SOLT = MOD_SOLC;
  4490. GGO_SOLT = GGO_SOLC;
  4491. MAT_SOLT = MAT_SOLC;
  4492. RIG_SOLT = RIG_SOLC;
  4493. MAS_SOLT = MAS_SOLC;
  4494. KSI_SOLT = KSI_SOLC;
  4495. AMO_SOLT = AMO_SOLC;
  4496. *
  4497. 'ELIM' MAISOLC 0.001 ;
  4498. MAISOLT = MAISOLC;
  4499. MODSOLT = MODSOLC;
  4500. GGOSOLT = GGOSOLC;
  4501. MATSOLT = MATSOLC;
  4502. RIGSOLT = RIGSOLC;
  4503. MASSOLT = MASSOLC;
  4504. KSISOLT = KSISOLC;
  4505. AMOSOLT = AMOSOLC;
  4506. 'SINON';
  4507. MAI_SOLT = MAI_SOLC;
  4508. MOD_SOLT = MOD_SOLC;
  4509. GGO_SOLT = GGO_SOLC;
  4510. MAT_SOLT = MAT_SOLC;
  4511. RIG_SOLT = RIG_SOLC;
  4512. MAS_SOLT = MAS_SOLC;
  4513. KSI_SOLT = KSI_SOLC;
  4514. AMO_SOLT = AMO_SOLC;
  4515. 'FINSI';
  4516. 'FINSI';
  4517. 'FINSI';
  4518. 'ELIM' 0.0001 MAI_SOLT;
  4519. *
  4520. * ON MET TOUT DANS LA TABLE "TABRES"
  4521. *
  4522. MESS '';
  4523. MESS '--------------------------------------------------------------';
  4524. MESS '-- Stockage --';
  4525. MESS '--------------------------------------------------------------';
  4526. *
  4527. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  4528. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  4529. TABRESC = TABLE ;
  4530. TABRESC.'T_SOL' = SOLCOL ;
  4531. TABRESC.'T_ESO' = ESOCOL ;
  4532. TABRESC.'T_MOD' = MODCOL ;
  4533. TABRESC.'T_GGO' = GGOCOL ;
  4534. TABRESC.'T_MAT' = MATCOL ;
  4535. TABRESC.'T_RIG' = RIGCOL ;
  4536. TABRESC.'T_MAS' = MASCOL ;
  4537. TABRESC.'T_KSI' = KSICOL ;
  4538. TABRESC.'T_AMO' = AMOCOL ;
  4539. TABRESC.'O_SOL' = MAISOLC ;
  4540. TABRESC.'O_MOD' = MODSOLC ;
  4541. TABRESC.'O_GGO' = GGOSOLC ;
  4542. TABRESC.'O_MAT' = MATSOLC ;
  4543. TABRESC.'O_RIG' = RIGSOLC ;
  4544. TABRESC.'O_MAS' = MASSOLC ;
  4545. TABRESC.'O_KSI' = KSISOLC ;
  4546. TABRESC.'O_AMO' = AMOSOLC ;
  4547. *
  4548. TABRES_C = TABLE ;
  4549. TABRES_C.'T_SOL' = SOL_C ;
  4550. TABRES_C.'T_ESO' = ESO_C ;
  4551. TABRES_C.'T_MOD' = MOD_C ;
  4552. TABRES_C.'T_GGO' = GGO_C ;
  4553. TABRES_C.'T_MAT' = MAT_C ;
  4554. TABRES_C.'T_RIG' = RIG_C ;
  4555. TABRES_C.'T_MAS' = MAS_C ;
  4556. TABRES_C.'T_KSI' = KSI_C ;
  4557. TABRES_C.'T_AMO' = AMO_C ;
  4558. TABRES_C.'O_SOL' = MAI_SOLC ;
  4559. TABRES_C.'O_MOD' = MOD_SOLC ;
  4560. TABRES_C.'O_GGO' = GGO_SOLC ;
  4561. TABRES_C.'O_MAT' = MAT_SOLC ;
  4562. TABRES_C.'O_RIG' = RIG_SOLC ;
  4563. TABRES_C.'O_MAS' = MAS_SOLC ;
  4564. TABRES_C.'O_KSI' = KSI_SOLC ;
  4565. TABRES_C.'O_AMO' = AMO_SOLC ;
  4566. 'SINON';
  4567. TABRES_C = TABLE ;
  4568. TABRES_C.'T_SOL' = SOL_C ;
  4569. TABRES_C.'T_ESO' = ESO_C ;
  4570. TABRES_C.'T_MOD' = MOD_C ;
  4571. TABRES_C.'T_GGO' = GGO_C ;
  4572. TABRES_C.'T_MAT' = MAT_C ;
  4573. TABRES_C.'T_RIG' = RIG_C ;
  4574. TABRES_C.'T_MAS' = MAS_C ;
  4575. TABRES_C.'T_KSI' = KSI_C ;
  4576. TABRES_C.'T_AMO' = AMO_C ;
  4577. TABRES_C.'O_SOL' = MAI_SOLC ;
  4578. TABRES_C.'O_MOD' = MOD_SOLC ;
  4579. TABRES_C.'O_GGO' = GGO_SOLC ;
  4580. TABRES_C.'O_MAT' = MAT_SOLC ;
  4581. TABRES_C.'O_RIG' = RIG_SOLC ;
  4582. TABRES_C.'O_MAS' = MAS_SOLC ;
  4583. TABRES_C.'O_KSI' = KSI_SOLC ;
  4584. TABRES_C.'O_AMO' = AMO_SOLC ;
  4585. 'FINSI';
  4586. 'FINSI';
  4587. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  4588. TABRES_I = TABLE ;
  4589. TABRES_I.'T_SOL' = SOL_I ;
  4590. TABRES_I.'T_ESO' = ESO_I ;
  4591. TABRES_I.'T_MOD' = MOD_I ;
  4592. TABRES_I.'T_GGO' = GGO_I ;
  4593. TABRES_I.'T_MAT' = MAT_I ;
  4594. TABRES_I.'T_RIG' = RIG_I ;
  4595. TABRES_I.'T_MAS' = MAS_I ;
  4596. TABRES_I.'T_KSI' = KSI_I ;
  4597. TABRES_I.'T_AMO' = AMO_I ;
  4598. TABRES_I.'O_SOL' = MAI_SOLI ;
  4599. TABRES_I.'O_MOD' = MOD_SOLI ;
  4600. TABRES_I.'O_GGO' = GGO_SOLI ;
  4601. TABRES_I.'O_MAT' = MAT_SOLI ;
  4602. TABRES_I.'O_RIG' = RIG_SOLI ;
  4603. TABRES_I.'O_MAS' = MAS_SOLI ;
  4604. TABRES_I.'O_KSI' = KSI_SOLI ;
  4605. TABRES_I.'O_AMO' = AMO_SOLI ;
  4606. 'FINSI';
  4607. *
  4608. TABRES_T = TABLE;
  4609. TABRES_T.'O_SOL' = MAI_SOLT ;
  4610. TABRES_T.'O_MOD' = MOD_SOLT ;
  4611. TABRES_T.'O_GGO' = GGO_SOLT ;
  4612. TABRES_T.'O_MAT' = MAT_SOLT ;
  4613. TABRES_T.'O_RIG' = RIG_SOLT ;
  4614. TABRES_T.'O_MAS' = MAS_SOLT ;
  4615. TABRES_T.'O_KSI' = KSI_SOLT ;
  4616. TABRES_T.'O_AMO' = AMO_SOLT ;
  4617. *
  4618. TDON1.'FRONTIERE' = TABFRO;
  4619. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  4620. TDON1.'COLONNE' = TABCOL;
  4621. 'FINSI';
  4622. *
  4623. TDON1.'STEP0' = TABLE;
  4624. TDON1.'STEP0'.'SOL' = TABLE;
  4625. 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE');
  4626. TDON1.'STEP0'.'SOL'.'ITERATION' = TABRES_I;
  4627. 'FINSI';
  4628. *
  4629. 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE');
  4630. 'SI' ('EGA' ('TYPE' TABCOL) 'TABLE');
  4631. TDON1.'STEP0'.'COLONNE' = TABRESC;
  4632. TDON1.'STEP0'.'SOL'.'CONSTANTE' = TABRES_C;
  4633. 'SINON';
  4634. TDON1.'STEP0'.'SOL'.'CONSTANTE' = TABRES_C;
  4635. 'FINSI';
  4636. 'FINSI';
  4637. *
  4638. TDON1.'STEP0'.'SOL'.'TOTALE' = TABRES_T;
  4639. 'SI' ('EXIST' (TDON1) 'STRUCTURE');
  4640. TDON1.'STEP0'.'STRUCTURE' = TABSTR;
  4641. 'FINSI';
  4642. *
  4643. 'OUBL' I;
  4644. 'OUBL' J;
  4645. 'OUBL' ZZ;
  4646. 'OUBL' MOD_C;
  4647. 'OUBL' MODC;
  4648. 'OUBL' MAT_C;
  4649. 'OUBL' MATC;
  4650. 'OUBL' RIG_C;
  4651. 'OUBL' RIGC;
  4652. 'OUBL' MAS_C;
  4653. 'OUBL' MASC;
  4654. 'OUBL' AMO_C;
  4655. 'OUBL' AMOC;
  4656. 'OUBL' KSI_C;
  4657. 'OUBL' KSIC;
  4658. 'OUBL' SOL_C;
  4659. 'OUBL' SOLC;
  4660. 'OUBL' ESO_C;
  4661. 'OUBL' ESOC;
  4662. 'OUBL' GGO_C;
  4663. 'OUBL' GGOC;
  4664. 'OUBL' MOD_I;
  4665. 'OUBL' MAT_I;
  4666. 'OUBL' RIG_I;
  4667. 'OUBL' MAS_I;
  4668. 'OUBL' AMO_I;
  4669. 'OUBL' KSI_I;
  4670. 'OUBL' SOL_I;
  4671. 'OUBL' ESO_I;
  4672. 'OUBL' GGO_I;
  4673. 'OUBL' MAI_SOLC;
  4674. 'OUBL' MAT_SOLC;
  4675. 'OUBL' GGO_SOLC;
  4676. 'OUBL' KSI_SOLC;
  4677. 'OUBL' MOD_SOLC;
  4678. 'OUBL' RIG_SOLC;
  4679. 'OUBL' MAS_SOLC;
  4680. 'OUBL' AMO_SOLC;
  4681. 'OUBL' MAI_SOLI;
  4682. 'OUBL' MAT_SOLI;
  4683. 'OUBL' GGO_SOLI;
  4684. 'OUBL' KSI_SOLI;
  4685. 'OUBL' MOD_SOLI;
  4686. 'OUBL' RIG_SOLI;
  4687. 'OUBL' MAS_SOLI;
  4688. 'OUBL' AMO_SOLI;
  4689. 'OUBL' MAISOLC;
  4690. 'OUBL' MATSOLC;
  4691. 'OUBL' GGOSOLC;
  4692. 'OUBL' KSISOLC;
  4693. 'OUBL' MODSOLC;
  4694. 'OUBL' RIGSOLC;
  4695. 'OUBL' MASSOLC;
  4696. 'OUBL' AMOSOLC;
  4697. 'OUBL' MAI_SOLT;
  4698. 'OUBL' MAT_SOLT;
  4699. 'OUBL' GGO_SOLT;
  4700. 'OUBL' KSI_SOLT;
  4701. 'OUBL' MOD_SOLT;
  4702. 'OUBL' RIG_SOLT;
  4703. 'OUBL' MAS_SOLT;
  4704. 'OUBL' AMO_SOLT;
  4705. 'OUBL' MAISOLT;
  4706. 'OUBL' MATSOLT;
  4707. 'OUBL' GGOSOLT;
  4708. 'OUBL' KSISOLT;
  4709. 'OUBL' MODSOLT;
  4710. 'OUBL' RIGSOLT;
  4711. 'OUBL' MASSOLT;
  4712. 'OUBL' AMOSOLT;
  4713. 'OUBL' TABSOL_C;
  4714. 'OUBL' TABCOL;
  4715. 'OUBL' TABSOL_I;
  4716. 'OUBL' TABPAR;
  4717. 'OUBL' TABSOL;
  4718. 'OUBL' TABSTR;
  4719. 'OUBL' TABFRO;
  4720. 'OUBL' H_SAND;
  4721. 'OUBL' G_SAND;
  4722. 'OUBL' H_CLAY;
  4723. 'OUBL' G_CLAY;
  4724. 'OUBL' H_SAND;
  4725. 'OUBL' EH_SAND;
  4726. 'OUBL' EG_SAND;
  4727. 'OUBL' EH_CLAY;
  4728. 'OUBL' EG_CLAY;
  4729. 'OUBL' EH_SAND;
  4730. 'OUBL' MAIL1C;
  4731. 'OUBL' GAM_EFF;
  4732. 'OUBL' TABRES_T;
  4733. 'OUBL' TABRESC;
  4734. 'OUBL' TABRES_C;
  4735. 'OUBL' TABRES_I;
  4736. 'OUBL' ZONE_C;
  4737. 'OUBL' ZONE_I;
  4738. 'OUBL' ZONEC;
  4739. 'OUBL' NN1;
  4740. 'OUBL' NELEM_C;
  4741. 'OUBL' NELEMC;
  4742. 'OUBL' NELEM1C;
  4743. 'OUBL' NELEM1_I;
  4744. 'OUBL' NELEM_I;
  4745. 'OUBL' NZONE_C;
  4746. 'OUBL' NZONE_I;
  4747. 'OUBL' NZONEC;
  4748. 'OUBL' F1;
  4749. 'OUBL' F2;
  4750. 'OUBL' FC;
  4751. 'OUBL' ALPHA;
  4752. 'OUBL' BETA;
  4753. 'OUBL' MAIL1_I;
  4754. MESS '';
  4755. MESS '--------------------------------------------------------------';
  4756. MESS '-- Fin STEP 0 --';
  4757. MESS '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++';
  4758. MESS '';
  4759. MESS '**************************************************************';
  4760.  
  4761.  
  4762.  
  4763. *
  4764. *************************************************************
  4765. ****************** FIN STEP 0 ***********************
  4766. *************************************************************
  4767. *
  4768. 'FINSI';
  4769. *
  4770. *
  4771. *
  4772. *************************************************************
  4773. ************** FIN DE LA PROCEDURE ******************
  4774. *************************************************************
  4775. *
  4776.  
  4777.  
  4778. FINPROC;
  4779.  

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