Télécharger @USTMPS.procedur

Retour à la liste

Numérotation des lignes :

  1. * @USTMPS PROCEDUR MB234859 19/11/27 21:15:01 10399
  2. ***********************************************************************
  3. * PROCEDURE @USTMPS
  4. *
  5. * Cette procedure determine la liste des instants a calculer pour les
  6. * NCyNum.
  7. *
  8. * Entree :
  9. * T1 : TABLE transmise a PASAPAS
  10. *
  11. * Sorties :
  12. * Distrib : liste des instants a calculer/sauver
  13. * PasSVGD : liste des instants a sauvegarder
  14. *
  15. * Appelee par @USURE
  16. * [Collaboration LTDS - These E. Marc]
  17. *
  18. ***********************************************************************
  19. 'DEBP' @USTMPS T1*'TABLE' ;
  20. *
  21. BOITE_US = T1.'BOITES_USURE' ;
  22. NbIncDC = (BOITE_US.'INFOS'.'NB_INCREMENTS_PAR_CYCLE') / 2 ;
  23. NCyNum = BOITE_US.'INFOS'.'NB_CYCLES_NUM' ;
  24. *
  25. PERIODE = BOITE_US.'DONNEES'.'PERIODE' ;
  26. DemiPer = PERIODE / 2. ;
  27. QuartPer = PERIODE / 4. ;
  28. *
  29. * Definition du premier quart de cycle
  30. 'SI' ('EGA' T1.'PERSO1_APPEL' 1) ;
  31. ITRAPEZ = FAUX ;
  32. * Instants du premier quart de cycle
  33. NbDemiCy = 2 * NCyNum ;
  34. TpsFinDi = QuartPer ;
  35. DT_Quart = QuartPer / (NbIncDC / 2) ;
  36. Distrib = 'PROG' DT_Quart 'PAS' DT_Quart QuartPer ;
  37. 'SINON' ;
  38. ITRAPEZ = VRAI ;
  39. Distrib = 'PROG' ;
  40. CycActu = BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' ;
  41. NbDemiCy = 2 * (NCyNum - CycActu) ;
  42. TpsFinDi = QuartPer + (PERIODE * CycActu);
  43. 'FINSI' ;
  44. *
  45. * Definition "standard" d'un demi-cycle
  46. 'SI' ITRAPEZ ;
  47. LstDltaT = BOITE_US. ID_BU .'DELTA_T' ;
  48. DELTA_T = 'EXTR' LstDltaT ('DIME' LstDltaT) ;
  49. DELTA_ET = BOITE_US.'DONNEES'.'DELTA_ETOILE' ;
  50. TauxGlPa = DELTA_T / DELTA_ET ;
  51. * - sur la pente jusqu'a T_Pente par pas de DT_Pente
  52. T_Pente = DemiPer * TauxGlPa ;
  53. NbIncPe = 'ENTI' (NbIncDC*TauxGlPa) ;
  54. DT_Pente = T_Pente / NbIncPe ;
  55. * - sur le plateau de T_pente a DemiPer par pas de DT_Plate
  56. T_Plate = DemiPer - T_Pente ;
  57. NbIncPl = NbIncDC - NbIncPe ;
  58. DT_Plate = T_Plate / NbIncPl ;
  59. *
  60. 'SI' ('EGA' NbIncPe 1) ;
  61. DemiCStd = 'PROG' T_Pente 'PAS' DT_Plate DemiPer ;
  62. 'SINON' ;
  63. DemiCStd = 'PROG' DT_Pente 'PAS' DT_Pente T_Pente
  64. 'PAS' DT_Plate DemiPer ;
  65. 'FINSI' ;
  66. 'SINON' ;
  67. * - si premiere discretisation ou si uniquement en glissement partiel
  68. T_Pente = DemiPer ;
  69. DT_Pente = T_Pente / NbIncDC ;
  70. DemiCStd = 'PROG' DT_Pente 'PAS' DT_Pente DemiPer ;
  71. 'FINSI' ;
  72. *
  73. * Boucle sur le nombre de demi-cycle a calculer
  74. 'REPE' B1 NbDemiCy ;
  75. NewDistr = DemiCStd '+' TpsFinDi ;
  76. Distrib = Distrib 'ET' NewDistr ;
  77. TpsFinDi = TpsFinDi '+' DemiPer ;
  78. 'FIN' B1 ;
  79. *
  80. * Liste des instants a calculer
  81. T_DEB = BOITE_US.'DONNEES'.'T_DEBUT_DEPI' ;
  82. Distrib = Distrib '+' T_DEB ;
  83. *
  84. * Liste des instants a sauvegarder
  85. T_DEB_US = BOITE_US.'DONNEES'.'T_DEBUT_USURE' ;
  86. T_FIN_US = T_DEB_US + (NcyNum * PERIODE) ;
  87. PasSVGD = 'PROG' T_DEB_US 'PAS' PERIODE T_FIN_US ;
  88. *
  89. 'FINP' Distrib PasSVGD ;
  90.  
  91.  
  92.  

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