Télécharger fin.eso

Retour à la liste

Numérotation des lignes :

fin
  1. C FIN SOURCE SP204843 26/02/03 21:15:24 12461
  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. NOBJ = LISOBJ(/1)
  83. NREE = RLIREE(/1)
  84. IK = 1
  85. IF (NREE.GT.0) IK = 2
  86. IF (iiprou.le.NOBJ.AND.IK.EQ.1) then
  87. monobj=lisobj(iiprou)
  88. ithc=typobj
  89. call nomobj(ithc,ichc,monobj)
  90. endif
  91. else
  92. CALL NOMENT(ICHC,IIPROU)
  93. endif
  94. IF (MBCONT.NE.0 .AND. MBERR.EQ.0) RETURN
  95.  
  96. C DEBUT Duree passee dans les boucles (Voir PROCED pour le depart)
  97. IF(ITPSBO .GT. 0) THEN
  98. call timespv(ittime,oothrd)
  99. IELAPS=ITTIME(1) + ITTIME(2)
  100. ICPU =ITTIME(3) + ITTIME(4)
  101.  
  102. ITPSBL=ITPSBO
  103. SEGACT,ITPSBL*MOD
  104.  
  105. C Niveau, position dans le tableau et nom de la boucle courante
  106. NICOU = ITPSBL.NIVCOU
  107. II = ITPSBL.IPRONI(NICOU)
  108.  
  109. C Incremente la duree de la boucle quittee
  110. ITPSBL.DURPRO(1,II)=ITPSBL.DURPRO(1,II) +
  111. & (IELAPS - ITPSBL.TPSPRO(1,II))
  112. ITPSBL.DURPRO(2,II)=ITPSBL.DURPRO(2,II) +
  113. & (ICPU - ITPSBL.TPSPRO(2,II))
  114.  
  115. C Remise a zero du CHRONOMETRE de la boucle parent
  116. NICOU = NICOU - 1
  117. ITPSBL.NIVCOU = NICOU
  118. IF(NICOU .GT. 0)THEN
  119. II=ITPSBL.IPRONI(NICOU)
  120. ITPSBL.TPSPRO(1,II) = IELAPS
  121. ITPSBL.TPSPRO(2,II) = ICPU
  122. ENDIF
  123. ENDIF
  124. C FIN Duree passee dans les boucles
  125.  
  126. MBCONT=1
  127. MBER1 =MBERR
  128. MBLO1 =MBLOC
  129. IF (MBLSUP.EQ.0) CALL ERREUR(5)
  130. IF (IERR .NE.0) RETURN
  131. MTXBLC=MTXBL
  132. SEGDES MTXBLC
  133. MBLOC =MBLSUP
  134. ISSPOT=MBLO1.ISPOTE
  135. SEGDES ISSPOT
  136. SEGDES MBLO1
  137. SEGACT MBLOC*MOD
  138. ISSPOT=ISPOTE
  139. SEGACT ISSPOT*MOD
  140. MTXBLC=MTXBL
  141. CALL NOUTRU
  142. IF (MBLSUP.NE.0) SEGACT MTXBLC
  143. MBERR=MBER1
  144.  
  145. C Gestion du SOUCI dans le BLOC (COMMENTE ACTUELLEMENT)
  146. C mbsouc = max(mbsou,mbsouc)
  147.  
  148. END
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  

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