C UTILIS SOURCE FANDEUR 11/08/10 21:15:30 7075 SUBROUTINE UTILIS IMPLICIT INTEGER(I-N) -INC CCOPTIO external long SEGMENT IINDE INTEGER INDEX(NINDE) CHARACTER*8 INDIX(NINDE) ENDSEGMENT CHARACTER*4 MDIR(2) CHARACTER*80 ITEXT CHARACTER*4 IDOL CHARACTER*8 FNAME DATA IDOL/'$$$$'/ DATA MDIR /'NOTI','PROC'/ CALL LIRMOT (MDIR,2,IRET,1) IF(IERR.NE.0) RETURN IF(IRET.EQ.1) THEN FNAME='UTILNOTI' IOUT=37 ELSEIF (IRET.EQ.2) THEN FNAME='UTILPROC' IOUT=36 ENDIF CALL LIRCHA(ITEXT,1,IRETOU) IF(IERR.NE.0) RETURN L=LONG(ITEXT) OPEN(UNIT=39,ACCESS='SEQUENTIAL',STATUS='OLD', # FILE=ITEXT(1:L),IOSTAT=IOS,ERR=2000,FORM='FORMATTED') * destruction du fichier cible puis reouverture CLOSE (UNIT=IOUT,STATUS='DELETE') OPEN(UNIT=IOUT,ACCESS='DIRECT',FORM='FORMATTED',RECL=80, # FILE=FNAME,STATUS='NEW') NINDE=500 SEGINI IINDE I=1 J=0 WRITE(IOUT,REC=1,FMT=300)1,1 10 CONTINUE READ(39,101,END=20)ITEXT I=I+1 WRITE(IOUT,REC=I,FMT=101)ITEXT IF(ITEXT(1:4).NE.IDOL)GO TO 10 J=J+1 IF(J.GT.NINDE) THEN NINDE=NINDE+NINDE SEGADJ IINDE ENDIF INDIX(J)=ITEXT(6:13) INDEX(J)=I GO TO 10 20 CONTINUE CLOSE(UNIT=39) I=I+1 IND1=I DO 21 K=J+1,J+4 INDIX(K)=' ' 21 CONTINUE DO 30 K=1,J,5 WRITE(IOUT,REC=I,FMT=200)(INDIX(K+L-1),INDEX(K+L-1),L=1,5) I=I+1 30 CONTINUE IND2=I-1 WRITE(IOUT,REC=1,FMT=300)IND1,IND2 CLOSE(UNIT=IOUT) SEGSUP IINDE * CLOSE(UNIT=IOUT,STATUS='KEEP') RETURN 101 FORMAT(A80) 200 FORMAT(5(A8,I6)) 300 FORMAT(2I6,68X) 2000 CONTINUE MOTERR=ITEXT(1:L) INTERR(1)=IOS CALL ERREUR(599) RETURN END