Download tempor.eso

Back to the list

   1 : C TEMPOR    SOURCE    CHAT      05/01/13    03:36:00     5004           
   2 : c
   3 : c    temps ecoule depuis le dernier appel
   4 : c    occupation memoire
   5 : c    utilisation des opérateurs
   6 : c
   7 :       SUBROUTINE TEMPOR(XINTER,MDIR,ITEM,XTEM,NACT,ILON)
   8 : c        en entrée on a les informations stockées par pilot
   9 : c        sur les opérateurs    
  10 : c
  11 : c    entree
  12 : c        xinter contient le temps ecoulé depuis le dernier appel
  13 : c        mdir est le tableau des noms de tous les opérateurs dans pilot
  14 : c        item est le nombre d'appel à chaque opérateur
  15 : c        xtem est le temps total passé dans chaque opérateur
  16 : c        nact est 
  17 : c               1,* le nombre de segments  actifs en + après l'appel à l'oper.  
  18 : c               2,* la taille correspondante en mots
  19 : c               3,* le nombre d'appels à l'opéarateur depuis le dernier appel
  20 : c
  21 : c include
  22 :       IMPLICIT INTEGER(I-N)
  23 : -INC CCOPTIO
  24 : c
  25 : c variables déclarées
  26 :       REAL*8 XINTER,XTEM,XTOT
  27 :       CHARACTER*4 MOT(5),MDIR(*)
  28 :       INTEGER NACT,NACTI,NTACT
  29 :       DIMENSION ITEM(*),XTEM(*),NACT(3,*)
  30 :       INTEGER OOOVAL
  31 : c
  32 : c tableau des mots clé     
  33 :       DATA MOT /'PLAC','NOEC','IMPR','ZERO','SGAC'/
  34 : c
  35 : c
  36 :       IPASS = 0
  37 :       INTERR(1)=XINTER
  38 :       XINTER=0.D0
  39 :       I=0
  40 : 
  41 :    1  CONTINUE
  42 : 
  42 :       CALL LIRMOT(MOT,5,I,0)
  43 : 
  44 :       IF(I.EQ.0.AND.IPASS.EQ.0) THEN
  44 :          CALL ERREUR(-259)
  45 :          RETURN
  46 :       ENDIF
  47 : 
  48 : c   témoin de passage dans la boucle
  49 :       IPASS = 1
  50 : 
  51 :       IF(I.EQ.0) RETURN
  52 : 
  53 : c  option 'PLAC'
  54 :       IF(I.EQ.1) THEN
  54 :          CALL ERREUR(-259)
  54 :          CALL OOODMP(0)
  55 : 
  56 : c  option 'NOEC'
  57 :       ELSEIF(I.EQ.2) THEN
  57 :          CALL ECRENT(INTERR(1))
  58 : 
  59 : c  option 'IMPR'
  60 :       ELSEIF(I.EQ.3) THEN
  61 :          XTOT=1.D-10
  62 :          DO 9 J=1,ILON
  63 :            XTOT=XTOT+XTEM(J)
  64 :     9    CONTINUE
  65 :          XTOT = XTOT / 100.D0
  66 :          MOTERR=' '
  67 :          WRITE(IOIMP,*)
  67 :          CALL ERREUR(-258)
  68 :          DO 2 J =1,ILON
  69 :           IF(ITEM(J).NE.0) THEN
  70 :             XPOU= XTEM(J) / XTOT
  71 :             XRAP= XTEM(J)/ ITEM(J)   * 100.D0
  72 :             WRITE(IOIMP,10)MDIR(J),ITEM(J),XTEM(J),XPOU,XRAP
  73 :    10       FORMAT(2X,A4,5X,I6,13X,F8.2,4X,F6.2,5X,G10.4)
  74 :            ENDIF
  75 :     2    CONTINUE
  76 :          DO 3 J=1,ILON
  77 :            ITEM(J)=0
  78 :            XTEM(J)=0.D0
  79 :     3    CONTINUE
  80 : 
  81 : c  option 
  82 :       ELSEIF(I.EQ.4) THEN
  83 : 
  84 :          DO 4 J=1,ILON
  85 :            NACT(1,J) = 0
  86 :            NACT(2,J) = 0
  87 :            NACT(3,J) = 0
  88 :            ITEM(J)=0
  89 :     4    XTEM(J)=0.D0
  90 : 
  91 : c  opti actif
  92 :       ELSEIF(I.EQ.5) THEN
  93 : c      on ecrit le nombre de segments actifs et leur taille
  94 : 
  94 :          CALL LIRMOT(MOT,5,J,0)
  95 :          GO TO (11,12,12,13,12,12),(J+1)
  96 : c  il n'y a pas d'autre options on renvoie nbre et taille des segments actifs
  97 :   11       NBRACTI = OOOVAL(2,3)
  98 :            NTAACTI = OOOVAL(3,3)
  98 :            CALL ECRENT(NBRACTI)
  98 :            CALL ECRENT(NTAACTI)
  99 :            RETURN
 100 : c il y a d'autres options on renvoie nbre et taille des segments actifs
 100 :   12       CALL REFUS
 101 :            NBRACTI = OOOVAL(2,3)
 102 :            NTAACTI = OOOVAL(3,3)
 102 :            CALL ECRENT(NTAACTI)
 102 :            CALL ECRENT(NBRACTI)
 103 :            GOTO 1
 104 : c option SGAC IMPR statistiques relatives aux segments actifs
 105 :   13       WRITE(IOIMP,*)
 105 :            CALL ERREUR(-308)
 106 :            DO 15 J =1,ILON
 107 :              IF(NACT(3,J).NE.0) THEN
 108 :                NACTI = NACT(1,J) / NACT(3,J)
 109 :                NTACT = NACT(2,J) / NACT(3,J) / 1000 
 110 :                WRITE(IOIMP,14)MDIR(J),NACT(3,J),NACTI,NTACT
 111 :   14           FORMAT(2X,A4,6X,I6,12X,I6,17X,I6)
 112 :              ENDIF
 113 :   15      CONTINUE
 114 :           DO 16 J=1,ILON
 115 :             NACT(1,J) = 0
 116 :             NACT(2,J) = 0
 117 :             NACT(3,J) = 0
 118 :   16     CONTINUE
 119 :       ENDIF
 120 : c  on retourne lire d'autres options
 121 :       GOTO 1
 122 :       END
 123 :  
 124 :  

© Cast3M 2003 - All rights reserved.
Disclaimer