C********************************************************************** C C C BIBDATER.FTN PERMET D'EDITER UNE FILE DE REFERENCES SY:*.REF C CETTE BIBLIOGRAPHIE SERA TAPEE AVEC LA TYPOGRAPHIE SY:*.TYP. C C CETTE LISTE EST SORTIE DANS L'ORDRE CHRONOLOGIQUE. C C C C UNE FILE DE MEME NOM QUE LES REFERENCES SERA SPOOLEE C ON POURRA LA RETAPER SUR UN AUTRE DEVICE PAR PIP C C LA FILE A RETAPER SERA TROUVEE EN SY:*.LST C C C********************************************************************** SUBROUTINE DATER(NDFA,LB,NOMA,ORDR,COM) DIMENSION LB(512),LC(512),CLE(512,9) DIMENSION NOMA(30),NOMB(30),ORDR(25),COM(132) DIMENSION T(72,4),TD(72,4),P(6,5),PD(6,5),A(18,5) DIMENSION AD(18,5),BOOK(36) DIMENSION PAGE(10),VOL(4),DAY(9),TAP(10),MCLE(10) BYTE T,TD,P,PD,A,AD,BOOK,PAGE,VOL,DAY,TAP,NSD,NOMA,NOMB,COM,CLE COMMON /ASVAR/L CALL ASSIGN(4,'DL1:[204,100]FICHES.BIB') CALL FDBSET(4,'OLD') DEFINE FILE 4(8000,256,U,L) TYPE 12 12 FORMAT(/'$NOM DE LA FILE DES REFERENCES(SANS EXTENSION):') ACCEPT 14,NCHA,(NOMA(I),I=4,30) 14 FORMAT(Q,30A1) NOMA(1)='S' NOMA(2)='Y' NOMA(3)=':' NOMA(NCHA+4)='.' NOMA(NCHA+5)='R' NOMA(NCHA+6)='E' NOMA(NCHA+7)='F' NOMA(NCHA+8)=0 TYPE 13 13 FORMAT(/'$NOM DE LA FILE POUR LA TYPOGRAPHIE:') ACCEPT 14,NCHB,(NOMB(I),I=4,30) NOMB(1)='S' NOMB(2)='Y' NOMB(3)=':' NOMB(NCHB+4)='.' NOMB(NCHB+5)='T' NOMB(NCHB+6)='Y' NOMB(NCHB+7)='P' NOMB(NCHB+8)=0 TYPE 20 20 FORMAT(/' TITRE A IMPRIMER EN EN-TETE<132 CARACTERES MAXI>:'/) ACCEPT 21,(COM(KI),KI=1,132) 21 FORMAT(132A1) TYPE 25 25 FORMAT(/'$ANNEE A PARTIR DE LAQUELLE ON COMMENCE:') ACCEPT 26,NLIM 26 FORMAT(I5) TYPE 22 22 FORMAT(/,' APRES ETRE SORTI DE REF,VOUS DEVREZ, SI VOUS 4 DESIREZ PLUS D''UNE COPIE:' 2/' SUR L''IMPRIMANTE:>PIP XXXX.LST/SP:n POUR n COPIES'/ 3' SUR UN TTY:>PIP TTY:=XXXX.LST A FAIRE n FOIS!'//) OPEN (UNIT=1,NAME=NOMA,TYPE='OLD',ACCESS='SEQUENTIAL' 2,FORM='UNFORMATTED') OPEN (UNIT=2,NAME=NOMB,ACCESS='SEQUENTIAL',FORM='UNFORMATTED', 2TYPE='OLD') READ(1)NDFA,LB READ(2)ORDR NOMA(NCHA+5)='L' NOMA(NCHA+6)='S' NOMA(NCHA+7)='T' DO 500 I=1,NDFA DO 500 J=1,9 500 CLE(I,J)=' ' NDFI=NDFA-1 DO 400 IJK=1,NDFA NX=LB(IJK) GO TO 90 93 TYPE 95,NX 95 FORMAT(' ERREUR A LA FICHE ',I10/) GO TO 400 90 READ(4'NX,ERR=93)NSD,NF,NA,A,P,T,BOOK,VOL,PAGE,NAN,TAP,ICB,DAY,MCLE IF (NSD.EQ.'S') GO TO 86 READ(4'NX,ERR=93)NSD,NF,NA,A,AD,T NFB=NX+1 READ(4'NFB,ERR=93)NSD,NF,P,PD,TD,BOOK,VOL,PAGE,NAN,TAP,ICB,DAY,MCLE 86 CONTINUE LC(IJK)=NAN NI=1 DO 410 I=1,NA IF (I.GT.3) GO TO 400 DO 412 J=1,3 IF ((A(J,I).LT.'A').OR.(A(J,I).GT.'Z')) GO TO 412 CLE(IJK,NI)=A(J,I) NI=NI+1 412 CONTINUE 410 CONTINUE 400 CONTINUE DO 250 M=1,NDFI DO 250 N=M,NDFA IF (LC(M).LE.LC(N)) GO TO 250 MAX=LC(M) LC(M)=LC(N) LC(N)=MAX MAX=LB(M) LB(M)=LB(N) LB(N)=MAX DO 313 KI=1,9 NSD=CLE(M,KI) CLE(M,KI)=CLE(N,KI) CLE(N,KI)=NSD 313 CONTINUE 250 CONTINUE DO 200 I=1,NDFA IF (LC(I).LT.NLIM) LB(I)=0 200 CONTINUE IDEB=0 201 IDEB=IDEB+1 IF (LB(IDEB).EQ.0) GO TO 201 1300 NBD=0 DO 1000 N=IDEB+1,NDFA IF (LC(IDEB).NE.LC(N)) GO TO 1100 NBD=NBD+1 1000 CONTINUE 1100 IF (NBD.NE.0) GO TO 1200 IDEB=IDEB+1 IF (IDEB.EQ.NDFA) GO TO 202 GO TO 1300 1200 IKF=IDEB+NBD DO 307 IO=IDEB,IKF IOB=IO+1 DO 300 K=IOB,IFIN DO 310 KI=1,9 IF (CLE(K,KI).EQ.' ') GO TO 305 IF (CLE(K,KI).GT.CLE(IO,KI)) GO TO 305 IF (CLE(K,KI).EQ.CLE(IO,KI)) GO TO 310 GO TO 312 310 CONTINUE GO TO 305 312 DO 311 KI=1,9 NSD=CLE(K,KI) CLE(K,KI)=CLE(IO,KI) CLE(IO,KI)=NSD 311 CONTINUE MAX=LB(K) LB(K)=LB(IO) LB(IO)=MAX MAX=LC(K) LC(K)=LC(IO) LC(IO)=MAX 305 CONTINUE 300 CONTINUE 307 CONTINUE IDEB=IDEB+NBD+1 IF (IDEB.EQ.NDFA) GO TO 202 GO TO 1300 202 CONTINUE CLOSE (UNIT=1) CLOSE (UNIT=2) CLOSE (UNIT=4) RETURN END