Télécharger fin.eso

Retour à la liste

Numérotation des lignes :

fin
  1. C FIN SOURCE PV090527 24/01/09 21:15:09 11817
  2. SUBROUTINE FIN
  3. IMPLICIT INTEGER(I-N)
  4.  
  5.  
  6. -INC PPARAM
  7. -INC CCOPTIO
  8. -INC CCNOYAU
  9. -INC SMBLOC
  10. -INC SMLOBJE
  11. -INC CCPERF
  12. -INC CQALITE
  13.  
  14. INTEGER ITTIME(4)
  15. CHARACTER*42 MESS
  16. CHARACTER*(LONOM) ICHC,ithc
  17. DATA IFINCP/0/
  18. IFINCP=IFINCP+1
  19. IRETOU=0
  20. IF (IERR.EQ.0.AND.IFINCP.EQ.1) THEN
  21. CALL LIROBJ('BLOC ',IRET,0,IRETOU)
  22. IF(IERR.NE.0) RETURN
  23. IF (IRETOU.EQ.1) GOTO 10
  24. ENDIF
  25. * pour afficher les messages suivants
  26. IECHO=1
  27. WRITE (IOIMP,1)
  28. 1 FORMAT (//)
  29. INTERR(1)=IERMAX
  30. CALL ERREUR(-375)
  31. if (iqexe.ne.0) CALL ERREUR(-376)
  32. if (iqpro.ne.0) CALL ERREUR(-377)
  33. WRITE (IOIMP,1)
  34. IF (IIMPI.NE.0) CALL OOODMP(0)
  35. CALL OOOSTP
  36. call flush(IOIMP)
  37. call epilog
  38. *** if (iermax.eq.3) call abort
  39. IF (IERMAX.EQ.1) STOP 4
  40. IF (IERMAX.EQ.2) STOP 8
  41. IF (IERMAX.EQ.3) STOP 12
  42. STOP
  43. 10 CONTINUE
  44. IFINCP=0
  45. IF (MBLOC.NE.IRET) THEN
  46. MBLO1=IRET
  47. SEGACT,MBLO1
  48. MOTERR=MBLO1.NCONBO(2:LONOM)
  49. SEGDES,MBLO1
  50. CALL ERREUR(154)
  51. RETURN
  52. ENDIF
  53. * MISE A BLANC DU NOM DE LA BOUCLE AFIN DE NE PAS LA REUTILISER
  54. IPLAC = JPOOB2(IMOTLU)
  55. INOOB1(IPLAC)=1
  56. C
  57. C si c'est la premiere fois on ajuste le segment
  58. C
  59. IF(MBFONC.NE.0) THEN
  60. MTXBLC=MTXBL
  61. NINST=NINSTV+1
  62. IPVINN=MTXBA(NINST)
  63. NBNOMM=LMTXBM(NINST)
  64. IF(IIMPI.EQ.1756) WRITE(IOIMP,1788)NINST,IPVINN,NBNOMM
  65. 1788 FORMAT(' apres ajustement NINST IPVINN NBNOMM',3I8)
  66. SEGADJ MTXBLC
  67. ENDIF
  68.  
  69. C Gestion du SOUCI dans le BLOC (COMMENTE ACTUELLEMENT)
  70. C MBSOU = mbsouc
  71. C mbsouc= 0
  72.  
  73. MBCOUR= 0
  74. MBFONC= 0
  75. MBCONT= MBCONT-1
  76. ICONBO= ICONBO+1
  77. ICHC = NCONBO
  78. IIPROU= ICONBO
  79. mlobje=mbenum
  80. if(mlobje.ne.0) then
  81. segact mlobje
  82. if(iiprou.le.lisobj(/1)) then
  83. monobj=lisobj(iiprou)
  84. ithc=typobj
  85. call nomobj(ithc,ichc,monobj)
  86. endif
  87. else
  88. CALL NOMENT(ICHC,IIPROU)
  89. endif
  90. IF (MBCONT.NE.0 .AND. MBERR.EQ.0) RETURN
  91.  
  92. C DEBUT Duree passee dans les boucles (Voir PROCED pour le depart)
  93. IF(ITPSBO .GT. 0) THEN
  94. call timespv(ittime,oothrd)
  95. IELAPS=ITTIME(1) + ITTIME(2)
  96. ICPU =ITTIME(3) + ITTIME(4)
  97.  
  98. ITPSBL=ITPSBO
  99. SEGACT,ITPSBL*MOD
  100.  
  101. C Niveau, position dans le tableau et nom de la boucle courante
  102. NICOU = ITPSBL.NIVCOU
  103. II = ITPSBL.IPRONI(NICOU)
  104.  
  105. C Incremente la duree de la boucle quittee
  106. ITPSBL.DURPRO(1,II)=ITPSBL.DURPRO(1,II) +
  107. & (IELAPS - ITPSBL.TPSPRO(1,II))
  108. ITPSBL.DURPRO(2,II)=ITPSBL.DURPRO(2,II) +
  109. & (ICPU - ITPSBL.TPSPRO(2,II))
  110.  
  111. C Remise a zero du CHRONOMETRE de la boucle parent
  112. NICOU = NICOU - 1
  113. ITPSBL.NIVCOU = NICOU
  114. IF(NICOU .GT. 0)THEN
  115. II=ITPSBL.IPRONI(NICOU)
  116. ITPSBL.TPSPRO(1,II) = IELAPS
  117. ITPSBL.TPSPRO(2,II) = ICPU
  118. ENDIF
  119. ENDIF
  120. C FIN Duree passee dans les boucles
  121.  
  122. MBCONT=1
  123. MBER1 =MBERR
  124. MBLO1 =MBLOC
  125. IF (MBLSUP.EQ.0) CALL ERREUR(5)
  126. IF (IERR .NE.0) RETURN
  127. MTXBLC=MTXBL
  128. SEGDES MTXBLC
  129. MBLOC =MBLSUP
  130. ISSPOT=MBLO1.ISPOTE
  131. SEGDES ISSPOT
  132. SEGDES MBLO1
  133. SEGACT MBLOC*MOD
  134. ISSPOT=ISPOTE
  135. SEGACT ISSPOT*MOD
  136. MTXBLC=MTXBL
  137. CALL NOUTRU
  138. IF (MBLSUP.NE.0) SEGACT MTXBLC
  139. MBERR=MBER1
  140.  
  141. C Gestion du SOUCI dans le BLOC (COMMENTE ACTUELLEMENT)
  142. C mbsouc = max(mbsou,mbsouc)
  143.  
  144. END
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  

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