C********************************************************************** C C C BIBALPHA.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 ALPHABETIQUE. C SONT PRISES EN COMPTE LES 6 PREMIRES LETTRES DES C 3 PREMIERS AUTEURS. SI CES 18 LETTRES SONT IDENTIQUES, C LES FICHES SONT CLASSES PAR 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 ALPHA(NDFA,LB,NOMA,ORDR,COM) DIMENSION LB(512),CLE(512,18),LC(512) 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<72 CARACTERES MAXI>:'/) ACCEPT 21,(COM(KI),KI=1,72) 21 FORMAT(72A1) 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,18 500 CLE(I,J)=' ' 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 LC(IJK)=NAN 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 LC(IJK)=NAN 86 CONTINUE NI=1 DO 410 I=1,NA IF (I.GT.3) GO TO 400 DO 412 J=1,6 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 NMCZ=NDFA-1 DO 100 I=1,NMCZ DO 300 K=I,NDFA DO 310 KI=1,18 IF (CLE(K,KI).EQ.' ') GO TO 300 IF (CLE(K,KI).GT.CLE(I,KI)) GO TO 300 IF (CLE(K,KI).EQ.CLE(I,KI)) GO TO 310 GO TO 312 310 CONTINUE 312 DO 311 KI=1,18 NSD=CLE(K,KI) CLE(K,KI)=CLE(I,KI) CLE(I,KI)=NSD 311 CONTINUE KMAX=LB(K) LB(K)=LB(I) LB(I)=KMAX 300 CONTINUE 100 CONTINUE DO 200 I=1,NMCZ IDEB=I KZ=NDFA-I DO 212 K=1,KZ IFIN=I DO 210 J=1,18 IF (CLE(I,J).NE.CLE(I+K,J)) GO TO 220 210 CONTINUE IFIN=I+K 212 CONTINUE 220 IF (IFIN.EQ.I) GO TO 200 DO 250 M=IDEB,IFIN DO 260 N=M,IFIN IF (LC(M).LE.LC(N)) GO TO 260 MIN=LC(N) LC(N)=LC(M) LC(M)=MIN MIN=LB(N) LB(N)=LB(M) LB(M)=MIN 260 CONTINUE 250 CONTINUE I=IFIN+1 200 CONTINUE CONTINUE CLOSE (UNIT=1) CLOSE (UNIT=2) CLOSE (UNIT=4) RETURN END