Download enermode.procedur

Back to the list

   1 : * ENERMODE  PROCEDUR  BP208322  13/06/27    21:15:07     7785           
   2 : 'DEBP' ENERMODE TBASS*'TABLE' TRESD*'TABLE' TINIT/'TABLE' 
   3 :                         LOG1/'LOGIQUE';
   4 : 
   5 : **********************************************
   6 : *
   7 : * CALCUL DU BILAN ENERGETIQUE
   8 : *
   9 : * TBASS  : TABLE DE SOUTYPE 'BASE_MODALE' OU 'ENSEMBLE_DE_BASES';
  10 : * TRESD : TABLE DE SOUSTYPE 'RESULTAT_DYNE' OU TABLE CONTENANT
  11 : *          DES TABLES DE SOUSTYPE 'RESULTAT_DYNE'
  12 : * TINIT : TABLE DE CONDITIONS INITIALES
  13 : *
  14 : * LOG1  :  RESULTAT POUR CHAQUE MODE SI LOG1 
  15 : *
  16 : **********************************************
  17 : 
  18 : TTABD = 'TABL' ;
  19 : TTABD.'TITRE'= 'TABL' ; TTAB = TTABD.'TITRE';
  20 : TTAB.1 = 'MOT' 'TRAVAIL EXTERIEUR';
  21 : TTAB.2 = 'MOT' 'TRAVAIL INTERIEUR';
  22 : TTAB.3 = 'MOT' 'ENERGIE CINETIQUE';
  23 : TTAB.4 = 'MOT' 'BILAN ENERGETIQUE';
  24 : 
  25 : 'SI' ('EXIS' TRESD 'SOUSTYPE') ;
  26 :  'SI' ('EGA' TRESD.'SOUSTYPE' 'RESULTAT_DYNE');
  27 :   DIM_REP = 1 ; IREP = FAUX; 
  28 :  'SINON' ;
  29 :   DIM_REP = ('DIME' TRESD) - 1 ; IREP = VRAI; 
  30 :  'FINSI' ;
  31 : 'SINON' ;
  32 :  DIM_REP = 'DIME' TRESD; IREP = VRAI; 
  33 : 'FINSI' ; 
  34 : 
  35 : 
  36 : 'SI' ('EXISTE' TBASS 'SOUSTYPE') ;
  37 :  'SI' ('EGA' TBASS.'SOUSTYPE' 'ENSEMBLE_DE_BASES');
  38 :    IDIM = ('DIME' TBASS) - 1 ; IBAS = FAUX ;
  39 : 'SINON' ;
  40 :   'SI' ('EGA' TBASS.'SOUSTYPE' 'BASE_MODALE');
  41 :    IDIM = 1 ; IBAS = VRAI ;
  42 :   'SINON' ;
  43 :    'MESS' 'ON NE TROUVE PAS DE BASE MODALE';
  44 :    'QUIT' ENERMODE ;
  45 :   'FINSI' ;
  46 : 'FINSI';
  47 : 'SINON' ;
  48 :   'MESS' 'ON NE TROUVE PAS DE BASE MODALE';
  49 :   'QUIT' ENERMODE ;
  50 : 'FINSI';
  51 : 
  52 : TEXT = 'TABLE' ; TINT = 'TABLE'; TCIN = 'TABLE'  ;
  53 : 'REPETER' BOU4 IDIM ;
  54 : 
  55 :  'SI' IBAS ; TBAS = TBASS ; 'SINON'; TBAS = TBASS.&BOU4 ; 'FINSI';
  56 : 
  57 : DIM1 = ('DIME' TBAS.MODES) - 2 ;
  58 : 
  59 : 'REPETER' BOU2 DIM1 ;
  60 :  P1 = TBAS.'MODES'.&BOU2 .'POINT_REPERE' ;
  61 :   'SI' (&BOU2 'EGA' 1) ; MAIL1 = P1 ; 'SINON' ; 
  62 :   MAIL1 = MAIL1 ET P1 ; 'FINSI' ;
  63 : 'FIN' BOU2 ;
  64 : CHVIT = 'MANU' 'CHPO' MAIL1 1 'ALFA' 0. ;
  65 :  'SI' ('EXISTE' TINIT) ;
  66 :   'SI' ('NEG' TINIT.'SOUSTYPE' 'INITIAL')  ;
  67 :     'MESS' 'ON NE TROUVE PAS DE TABLE DE CONDITIONS INITIALES'; 
  68 :     'MESS' 'LA VITESSE INITIALE EST MISE A ZERO';
  69 :   'FINSI' ;
  70 :    'SI' ('EXISTE' TINIT 'VITESSE') ; CHVIT = CHVIT + TINIT.'VITESSE';
  71 :    'FINSI' ;
  72 :  'FINSI' ;
  73 : 
  74 : 'REPETER' BOU1 DIM1 ;
  75 : 
  76 : 'REPETER' BOU3 DIM_REP ;
  77 : 'SI' IREP ; 
  78 :  'SI' ('EXISTE' TRESD &BOU3) ;
  79 :   TRES1 = TRESD.&BOU3 ; 
  80 :  'SINON' ; 'QUIT' BOU3 ;'FINSI' ;
  81 : 'SINON'; TRES1 = TRESD ; 'FINSI' ;
  82 : 
  83 :  'SI' ('NEG' TRES1.'SOUSTYPE' 'RESULTAT_DYNE') ;
  84 :    MESS 'ON NE TROUVE PAS DE RESULTAT DE DYNE'; 'QUIT' ENERMODE;
  85 :  'FINSI';
  86 : 
  87 : DIM1 = ('DIME' TBAS.'MODES') - 2 ;
  88 : LIS_TEM0 = TRES1.'TEMPS_DE_SORTIE' ;
  89 : DIMTEMPS = 'DIME' LIS_TEM0 ;
  90 : 
  91 :  P1 = TBAS.'MODES'.&BOU1 .'POINT_REPERE' ;
  92 :  M1 = TBAS.'MODES'.&BOU1 .'MASSE_GENERALISEE';
  93 :  NUM_MODE = TBAS.'MODES'.&BOU1 .'NUMERO_MODE' ;
  94 :  V0 = 'EXTR' CHVIT 'ALFA' P1 ;
  95 :  WCIN0 = .5*M1*V0*V0 ; LISWCIN0 = 'PROG' DIMTEMPS*WCIN0 ;
  96 :  EVV = 'EVOL' 'SOLU' TRES1 'VITE' P1 'ALFA' ;
  97 :  LISWCIN = (('EXTR' EVV 'ORDO')**2)*.5*M1 ;
  98 :  LISWCIN = LISWCIN - LISWCIN0 ;
  99 : 'SI' (&BOU3 'EGA' 1) ;
 100 :  EVCIN = 'EVOL' 'TURQ'  'MANU' 'TEMPS' LIS_TEM0 LISWCIN ;
 101 :  EVEXT = 'EVOL' 'SOLU' TRES1 'TRAVAIL_EXTERIEUR' P1 'ALFA' ;
 102 :  EVINT = 'EVOL' 'VERT' 'SOLU' TRES1 'TRAVAIL_INTERIEUR' P1 'ALFA' ;
 103 : 'SINON' ;
 104 :  EVCIN = ('EVOL' 'TURQ' 'MANU' 'TEMPS' LIS_TEM0 LISWCIN) 'CONC' EVCIN;
 105 :  EVEXT = ('EVOL' 'SOLU' TRES1 'TRAVAIL_EXTERIEUR' P1 'ALFA') 
 106 :                                             'CONC' EVEXT;
 107 :  EVINT = ('EVOL' 'VERT'  'SOLU' TRES1 'TRAVAIL_INTERIEUR' P1 'ALFA') 
 108 :                                            'CONC' EVINT ;
 109 : 'FINSI' ;
 110 :  'SI' (&BOU3 'EGA' DIM_REP) ;
 111 :    'TITRE' 'BASE MODALE' &BOU4 '  MODE NUMERO' NUM_MODE;
 112 :    EVBILAN = EVEXT - EVINT - EVCIN ; 
 113 :    EVBILAN = 'COUL' 'ROUG' EVBILAN ;
 114 :   'SI' ('EXISTE' LOG1) ;
 115 :    'SI' LOG1 ;
 116 :    'DESS'  (EVEXT ET EVINT ET EVCIN ET EVBILAN) TTABD 'LEGE' ;
 117 :    'FINSI';
 118 :   'FINSI';
 119 :  'FINSI' ;
 120 : 'FIN' BOU3 ;
 121 : 
 122 : 
 123 : *** BILAN TOTAL POUR UNE BASE ;
 124 :   'SI' (&BOU1 'EGA' 1) ; 
 125 :     EVEXTT = EVEXT ; EVINTT = EVINT ; EVCINT = EVCIN ;
 126 :   'SINON' ;
 127 :     EVEXTT = EVEXTT + EVEXT ; EVINTT = EVINTT + EVINT ;
 128 :     EVCINT = EVCINT + EVCIN ;
 129 :   'FINSI';
 130 : 
 131 : 'FIN' BOU1 ;
 132 : 
 133 : TEXT.&BOU4 = EVEXTT;TINT.&BOU4 = EVINTT;TCIN.&BOU4 = EVCINT;
 134 : 'FIN' BOU4 ;
 135 : 
 136 : *** BILAN TOTAL POUR L'ENSEMBLE DE BASES ;
 137 : 'REPETER' BOU4 IDIM ;
 138 :   'SI' (&BOU4 'EGA' 1) ; 
 139 :     EVEXTT = TEXT.&BOU4 ;EVINTT =TINT.&BOU4 ;EVCINT = TCIN.&BOU4 ;
 140 :   'SINON' ;
 141 :     EVEXTT = EVEXTT + TEXT.&BOU4  ; EVINTT = EVINTT + TINT.&BOU4 ;
 142 :     EVCINT = EVCINT + TCIN.&BOU4 ;
 143 :  'FINSI';
 144 : 'FIN' BOU4 ;
 145 : 
 146 : 'TITRE' 'BILAN TOTAL';
 147 : EVBILAN = EVEXTT - EVINTT - EVCINT ;  
 148 : EVBILAN = 'COUL' 'ROUG' EVBILAN ;
 149 : 'DESS'  (EVEXTT ET EVINTT ET EVCINT ET EVBILAN) TTABD 'LEGE' ;
 150 : 
 151 : 'FINP' ;
 152 :  
 153 :  

© Cast3M 2003 - All rights reserved.
Disclaimer