Télécharger dynamod2.procedur

Retour à la liste

Numérotation des lignes :

  1. * DYNAMOD2 PROCEDUR NOBODY 92/01/01 00:00:00 001
  2. 'DEBPROC' DYNAMOD2 SOLUDY*'SOLUTION' BASMOD*'BASEMODA'
  3. LISTEM*'LISTREEL' TEMPCALC*'LISTREEL'
  4. TABL_EVO*'TABLE ' TABL_PAS/'TABLE ' ;
  5. ************************************************************************
  6. *
  7. * D Y N A M O D 2
  8. * ---------------
  9. *
  10. * FONCTION:
  11. * ---------
  12. *
  13. * DEFINIT L'EVOLUTION D'UN (OU PLUSIEURS) PARAMETRE(S) AU SEIN
  14. * D'UN OBJET SOLUTION APRES RECOMBINAISON DES MODES.
  15. *
  16. * PHRASE D'APPEL (EN GIBIANE):
  17. * ----------------------------
  18. *
  19. * RESUTAB = DYNAMOD2 BASMOD SOLUDY LISTEM TEMPCALC
  20. * TABLEVOL ( TABLPAS ) ;
  21. *
  22. * OPERANDES:
  23. * ----------
  24. *
  25. * LISTEM : INSTANTS DE CALCUL POUR L'EVOLUTION.
  26. *
  27. * TEMPCALC : TOUS LES INSTANTS DU CALCUL Y COMPRIS CEUX AVANT REPRISE.
  28. *
  29. * SOLUDY : SOLUTION.
  30. *
  31. * BASMOD : BASE MODALE.
  32. *
  33. * TABLEVOL : TABLE CONTENANT AUTANT DE TABLES (N) QUE D'EVOLUTIONS
  34. * DEMANDEES.
  35. * I VARIANT DE 1 A N
  36. * TABLEVOL I 'NPAS' : UN ENTIER, SORTIE TOUS LES "NPAS"
  37. * DE CALCUL (FACULTATIF), = 1 PAR DEFAUT.
  38. * TABLEVOL I 'TYPE' : UN MOT, TYPE DE LA COMPOSANTE
  39. * TRAITEE (DEPL,ACCE, VITE, LIAI, CONT).
  40. * TABLEVOL I 'STRUCTURE' : OBJET STRUTURE, (FACULTATIF)
  41. * SOUS-STRUCTURE OU DOIT S'EFFECTUER LA
  42. * RECOMBINAISON.
  43. * TABLEVOL I 'NUMERO' : OBJET ENTIER, (FACULTATIF)
  44. * NUMERO DE LA SOUS-STRUCTURE OU DOIT S'EFFECTUER
  45. * LA RECOMBINAISON.
  46. * PUIS,
  47. * TABLEVOL I 'POINT' : OBJET POINT, MAILLAGE, ATTACHE.
  48. * POINT OU DOIT S'EFFECTUER LA RECOMBINAISON.
  49. * TABLEVOL I 'COMPOSANTE' : UN MOT, NOM DE LA COMPOSANTE
  50. * DU POINT.
  51. * OU,
  52. * TABLEVOL I 'CHPOINT' : OBJET CHPOINT, CHAMP CONTENANT LES
  53. * POINTS ET LES COMPOSANTES OU DOIT S'EFFECTUER
  54. * LA RECOMBINAISON.
  55. *
  56. * TABLPAS : TABLE CONTENANT DEUX TABLES.
  57. * I VARIANT DE 1 A N
  58. * TABLPAS 'PAS-EVOL' 1 I : UN ENTIER, PRECISANT LA
  59. * POSITION POUR UNE REPRISE POUR CREER LA LISTE
  60. * DES INSTANTS DE CALCUL A PARTIR DE TEMPCALC.
  61. * TABLPAS 'PAS-EVOL' 2 I : UN ENTIER, PRECISANT LA
  62. * SOMME DES LONGUEURS DES LISTES DE REELS
  63. * PRECEDENTES LISTEMPS.
  64. *
  65. * RESULTATS:
  66. * ----------
  67. *
  68. * RESUTAB : TABLE CONTENANT DEUX TABLES
  69. * INDICE 'EVOLUTION' :
  70. * I VARIANT DE 1 A N
  71. * TABLPAS 'EVOLUTION' I : OBJET EVOLUTION, CONTIENT
  72. * L'EVOLUTION DEMANDEE.
  73. * INDICE 'PAS-EVOL' :
  74. * I VARIANT DE 1 A N
  75. * TABLPAS 'PAS-EVOL' 1 I : UN ENTIER, PRECISANT LA
  76. * POSITION POUR UNE REPRISE POUR CREER LA LISTE
  77. * DES INSTANTS DE CALCUL A PARTIR DE TEMPCALC.
  78. * TABLPAS 'PAS-EVOL' 2 I : UN ENTIER, PRECISANT LA
  79. * SOMME DES LONGUEURS DES LISTES DE REELS
  80. * PRECEDENTES LISTEMPS.
  81. *
  82. * VARIABLES:
  83. * ----------
  84. *
  85. * TEMPCALC : TOUS LES INSTANTS DU CALCUL Y COMPRIS CEUX AVANT REPRISE.
  86. * NBTABLE : NOMBRE DE TABLES CONTENU DANS TABLEVOL.
  87. * NBINDICE : NOMBRE D'INDICE DANS UNE TABLE.
  88. *
  89. *
  90. *
  91. * AUTEUR, DATE DE CREATION:
  92. * -------------------------
  93. *
  94. * P.M. L.V. 30 MARS 1988
  95. *
  96. ************************************************************************
  97. *
  98. SI = 'MOT' 'SI' ; SINON = 'MOT' 'SINON' ; FINSI = 'MOT' 'FINSI' ;
  99. *
  100. RESUEVOL = 'TABLE' ;
  101. RESU_EVO = 'TABLE' ;
  102. RESU_PAS = 'TABLE' ;
  103. DIM_CALC = 'DIMENSION' TEMPCALC ;
  104. DIM_LIST = 'DIMENSION' LISTEM ;
  105. NBTABLE = 'DIMENSION' TABL_EVO ;
  106. INDICE1 = 0 ;
  107. NPAS_EVO = 1 ;
  108. *
  109. 'REPETER' BOUCLE1 NBTABLE ;
  110. INDICE1 = INDICE1 '+' 1 ;
  111. SI ('EXISTE' TABL_PAS) ;
  112. TAB_INST = TABL_PAS.INDICE1 ;
  113. IPAS = TAB_INST.1 ;
  114. DIM_INSP = TAB_INST.2 ;
  115. SINON ;
  116. TAB_INST = 'TABLE' ;
  117. IPAS = 1 ;
  118. DIM_INSP = 1 ;
  119. FINSI ;
  120. TAB_EVOL = TABL_EVO.INDICE1 ;
  121. *
  122. * ------ LECTURE DE LA TABLE ------
  123. *
  124. SI ('EXISTE' TAB_EVOL 'NPAS') ;
  125. NPAS_EVO = TAB_EVOL.'NPAS' ;
  126. FINSI ;
  127. TYP_EVO = 'MOT' TAB_EVOL.'TYPE' ;
  128. SI ('EXISTE' TAB_EVOL 'POINT') ;
  129. PTS_EVO = TAB_EVOL.'POINT' ;
  130. COMP_EVO = 'MOT' TAB_EVOL.'COMPOSANTE' ;
  131. SINON ;
  132. CHP_EVO = TAB_EVOL.'CHPOINT' ;
  133. FINSI ;
  134. TXT_EVOL = 'TEXTE' ' ' ;
  135. SI ('EXISTE' TAB_EVOL 'STRUCTURE') ;
  136. _ESTRUC_ = TAB_EVOL.'STRUCTURE' ;
  137. TXT_EVOL = 'TEXTE' TXT_EVOL '_ESTRUC_' ;
  138. FINSI ;
  139. SI ('EXISTE' TAB_EVOL 'NUMERO') ;
  140. _ENUME_ = TAB_EVOL.'NUMERO' ;
  141. TXT_EVOL = 'TEXTE' TXT_EVOL '_ENUME_' ;
  142. FINSI ;
  143. *
  144. * ------- LISTE DES INSTANTS -------
  145. *
  146. SI ( EGA NPAS_EVO 1 ) ;
  147. INSTANT = 'ENLEVER' LISTEM 1 ;
  148. DIM_INS2 = DIM_LIST ;
  149. SINON ;
  150. DIM_INST = 0 ;
  151. NPAS = (DIM_LIST '-' 1) '/' NPAS_EVO ;
  152. INSTANT = 'PROG' NPAS '*' 0. ;
  153. 'REPETER' LLREEL01 NPAS ;
  154. IPAS = IPAS '+' NPAS_EVO ;
  155. DIM_INST = DIM_INST '+' 1 ;
  156. TEMPAS = 'EXTR' TEMPCALC IPAS ;
  157. 'REMPLACER' INSTANT DIM_INST TEMPAS ;
  158. 'FIN' LLREEL01 ;
  159. DIM_INS2 = DIM_INSP '+' (DIM_LIST '-' 1) ;
  160. IPAS1 = IPAS '+' NPAS_EVO ;
  161. SI (IPAS1 '<EG' DIM_INS2) ;
  162. IPAS = IPAS1 ;
  163. DIM_INST = DIM_INST '+' 1 ;
  164. TEMPAS = 'EXTR' TEMPCALC IPAS ;
  165. INSTANT = 'INSERER' INSTANT DIM_INST TEMPAS ;
  166. DIM_INS2 = DIM_INS2 '+' 1 ;
  167. FINSI ;
  168. FINSI ;
  169. *
  170. * -------- OPERATEUR EVOL ---------
  171. *
  172. SI ('EXISTE' PTS_EVO) ;
  173. MONTYPE = 'TYPE' PTS_EVO ;
  174. SI ('EGA' MONTYPE 'ATTACHE ') ;
  175. EVOL1 = 'EVOL' 'SOLU' SOLUDY TYP_EVO PTS_EVO
  176. COMP_EVO INSTANT ;
  177. SINON ;
  178. EVOL1 = 'EVOL' 'RECO' SOLUDY BASMOD TXT_EVOL TYP_EVO
  179. PTS_EVO COMP_EVO INSTANT ;
  180. FINSI ;
  181. SINON ;
  182. EVOL1 = 'EVOL' 'RECO' SOLUDY BASMOD TXT_EVOL TYP_EVO CHP_EVO
  183. INSTANT ;
  184. FINSI ;
  185. *
  186. * ------------- RESULTAT -----------
  187. *
  188. TAB_INST.1 = IPAS ;
  189. TAB_INST.2 = DIM_INS2 ;
  190. RESU_EVO.INDICE1 = EVOL1 ;
  191. RESU_PAS.INDICE1 = TAB_INST ;
  192. *
  193. 'FIN' BOUCLE1 ;
  194. *
  195. RESUEVOL.'EVOLUTION' = RESU_EVO ;
  196. RESUEVOL.'PAS-EVOL' = RESU_PAS ;
  197. *
  198. 'FINPROC' RESUEVOL ;
  199.  

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