C TEMPOR SOURCE CHAT 05/01/13 03:36:00 5004 c c temps ecoule depuis le dernier appel c occupation memoire c utilisation des opérateurs c SUBROUTINE TEMPOR(XINTER,MDIR,ITEM,XTEM,NACT,ILON) c en entrée on a les informations stockées par pilot c sur les opérateurs c c entree c xinter contient le temps ecoulé depuis le dernier appel c mdir est le tableau des noms de tous les opérateurs dans pilot c item est le nombre d'appel à chaque opérateur c xtem est le temps total passé dans chaque opérateur c nact est c 1,* le nombre de segments actifs en + après l'appel à l'oper. c 2,* la taille correspondante en mots c 3,* le nombre d'appels à l'opéarateur depuis le dernier appel c c include IMPLICIT INTEGER(I-N) -INC CCOPTIO c c variables déclarées REAL*8 XINTER,XTEM,XTOT CHARACTER*4 MOT(5),MDIR(*) INTEGER NACT,NACTI,NTACT DIMENSION ITEM(*),XTEM(*),NACT(3,*) INTEGER OOOVAL c c tableau des mots clé DATA MOT /'PLAC','NOEC','IMPR','ZERO','SGAC'/ c c IPASS = 0 INTERR(1)=XINTER XINTER=0.D0 I=0 1 CONTINUE CALL LIRMOT(MOT,5,I,0) IF(I.EQ.0.AND.IPASS.EQ.0) THEN CALL ERREUR(-259) RETURN ENDIF c témoin de passage dans la boucle IPASS = 1 IF(I.EQ.0) RETURN c option 'PLAC' IF(I.EQ.1) THEN CALL ERREUR(-259) CALL OOODMP(0) c option 'NOEC' ELSEIF(I.EQ.2) THEN CALL ECRENT(INTERR(1)) c option 'IMPR' ELSEIF(I.EQ.3) THEN XTOT=1.D-10 DO 9 J=1,ILON XTOT=XTOT+XTEM(J) 9 CONTINUE XTOT = XTOT / 100.D0 MOTERR=' ' WRITE(IOIMP,*) CALL ERREUR(-258) DO 2 J =1,ILON IF(ITEM(J).NE.0) THEN XPOU= XTEM(J) / XTOT XRAP= XTEM(J)/ ITEM(J) * 100.D0 WRITE(IOIMP,10)MDIR(J),ITEM(J),XTEM(J),XPOU,XRAP 10 FORMAT(2X,A4,5X,I6,13X,F8.2,4X,F6.2,5X,G10.4) ENDIF 2 CONTINUE DO 3 J=1,ILON ITEM(J)=0 XTEM(J)=0.D0 3 CONTINUE c option ELSEIF(I.EQ.4) THEN DO 4 J=1,ILON NACT(1,J) = 0 NACT(2,J) = 0 NACT(3,J) = 0 ITEM(J)=0 4 XTEM(J)=0.D0 c opti actif ELSEIF(I.EQ.5) THEN c on ecrit le nombre de segments actifs et leur taille CALL LIRMOT(MOT,5,J,0) GO TO (11,12,12,13,12,12),(J+1) c il n'y a pas d'autre options on renvoie nbre et taille des segments actifs 11 NBRACTI = OOOVAL(2,3) NTAACTI = OOOVAL(3,3) CALL ECRENT(NBRACTI) CALL ECRENT(NTAACTI) RETURN c il y a d'autres options on renvoie nbre et taille des segments actifs 12 CALL REFUS NBRACTI = OOOVAL(2,3) NTAACTI = OOOVAL(3,3) CALL ECRENT(NTAACTI) CALL ECRENT(NBRACTI) GOTO 1 c option SGAC IMPR statistiques relatives aux segments actifs 13 WRITE(IOIMP,*) CALL ERREUR(-308) DO 15 J =1,ILON IF(NACT(3,J).NE.0) THEN NACTI = NACT(1,J) / NACT(3,J) NTACT = NACT(2,J) / NACT(3,J) / 1000 WRITE(IOIMP,14)MDIR(J),NACT(3,J),NACTI,NTACT 14 FORMAT(2X,A4,6X,I6,12X,I6,17X,I6) ENDIF 15 CONTINUE DO 16 J=1,ILON NACT(1,J) = 0 NACT(2,J) = 0 NACT(3,J) = 0 16 CONTINUE ENDIF c on retourne lire d'autres options GOTO 1 END