C********************************************************************** C C C BIBSORRNO.FTN EST LA SOUSROUTINE QUI CREE LA FILE C SY:*.RNO OU * EST LE MEME NOM QUE CELUI DE LA FILE C DES REFERENCES. C C********************************************************************** SUBROUTINE SORTI(NBA,LA,NOMA,O,COM) DIMENSION LA(512),NOMA(30),O(25),COM(132),AUT(18,10),PREN(6,10) 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) DIMENSION MCLE(10),FLC(4) BYTE ANNEE(4),UA,LT,UR BYTE T,TD,P,PD,A,AD,BOOK,PAGE,VOL,DAY,TAP,NSD,COM,NOMA,AUT,PREN EQUIVALENCE (A,AUT),(AD(1,1),AUT(1,6)) EQUIVALENCE (P,PREN),(PD(1,1),PREN(1,6)) COMMON /ASVAR/L DATA S3/'.S 3'/CENT/'.C ;'/FLC/'.FL ','CAPI','TALI','ZE'/ DATAT LOW/'\\'/ DATA ELIS/'.LE'/LT/'<'/UC/'.UC'/WC/'.LC'/IE/'^&'/IF/'\&'/ TYPE 3000, 3000 FORMAT('$Voulez vous les auteurs tout en majuscules:') ACCEPT 3001,UR 3001 FORMAT(A1) UA='^' IF (UR.EQ.'O') UA='<' CALL ASSIGN(4,'DL1:[204,100]FICHES.BIB') CALL FDBSET(4,'OLD') DEFINE FILE 4(8000,256,U,L) OPEN (UNIT=6,NAME=NOMA,FORM='UNFORMATTED',TYPE='NEW') SP=' ' WRITE(6)FLC WRITE(6)S3 WRITE(6)CENT,(COM(I),I=1,72) WRITE(6)S3 WRITE(6)WC KOA=1 ISL=0 IF (O(1).NE.'N') GO TO 2010 WRITE(6)'.LS' KOA=2 ISL=1 2010 ISJ=0 DO 2000 I=1,25 IF (O(I).NE.'SJ') GO TO 2000 ISJ=1 2000 CONTINUE KIZER=0 DO 1000 KI=1,NBA IF (LA(KI).EQ.0) GO TO 1000 IF (ISL.EQ.1) WRITE(6) ELIS WRITE(6)'.S' KIZER=KIZER+1 NI=LA(KI) READ(4'NI)NSD,NF,NA,A,P,T,BOOK,VOL,PAGE,NAN,TAP,ICB,DAY,MCLE IF (NSD.EQ.'S') GO TO 86 READ(4'NI)NSD,NF,NA,A,AD,T NFB=NI+1 READ(4'NFB)NSD,NF,P,PD,TD,BOOK,VOL,PAGE,NAN,TAP,ICB,DAY,MCLE 86 CONTINUE DO 500 KO=KOA,25 IF (O(KO).EQ.'A1') GO TO 515 IF (O(KO).EQ.'P1') GO TO 520 IF (((O(KO-1).EQ.'A1').AND.(O(KO+1).EQ.'P1')).OR. 2((O(KO-1).EQ.'P1').AND.(O(KO+1).EQ.'A1'))) GO TO 516 IF (((O(KO-1).EQ.'AF').AND.(O(KO+1).EQ.'PF')).OR. 2((O(KO-1).EQ.'PF').AND.(O(KO+1).EQ.'AF'))) GO TO 516 IF ((O(KO+1).EQ.'AP').OR.(O(KO+1).EQ.'PA')) GO TO 518 IF ((O(KO-1).EQ.'AP').OR.(O(KO-1).EQ.'PA')) GO TO 519 IF (O(KO).EQ.'AP') GO TO 525 IF (O(KO).EQ.'PA') GO TO 530 IF (O(KO).EQ.'AF') GO TO 531 IF (O(KO).EQ.'PF') GO TO 533 IF (((O(KO-1).EQ.'AF').OR.(O(KO-1).EQ.'PF')).AND. 2((O(KO+1).NE.'AF').OR.(O(KO+1).NE.'PF'))) GO TO 516 IF (O(KO).EQ.'J') GO TO 535 IF (O(KO).EQ.'V') GO TO 540 IF (O(KO).EQ.'P') GO TO 545 IF (O(KO).EQ.'AN') GO TO 550 IF (O(KO).EQ.'T') GO TO 555 IF (O(KO).EQ.SP) GO TO 1000 GO TO 500 516 SEPA=O(KO) 521 WRITE(6)SEPA GO TO 500 518 IF (NA.NE.1) GO TO 501 KO=KO+5 GO TO 500 501 IF (NA.NE.2) GO TO 502 KO=KO+2 SEPC=O(KO) WRITE(6)SEPC GO TO 500 502 SEPB=O(KO) WRITE(6)SEPB GO TO 500 519 IF (NA.EQ.1) GO TO 500 SEPC=O(KO) WRITE(6)SEPC GO TO 500 515 WRITE(6)UA,(A(J,1),J=1,18) GO TO 500 520 WRITE(6)LT,(P(J,1),J=1,6) GO TO 500 525 IF (NA.LE.2) GO TO 500 NAM=NA-1 NAZ=NAM IF (NAM.GT.5) NAZ=5 WRITE(6)UA,(AUT(J,2),J=1,18),SEPA,LT,(PREN(J,2),J=1,6) IF (NA.GT.3) WRITE(6)(SEPB,UA,(AUT(J,IA),J=1,18), 2SEPA,LT,(PREN(J,IA),J=1,6),IA=3,NAZ) IF (NAM.LE.5) GO TO 500 WRITE(6)(SEPB,UA,(AUT(J,IA),J=1,18),SEPA,LT,(PREN(J,IA),J=1,6), 3IA=6,NAM) GO TO 500 530 IF (NA.LE.2) GO TO 500 NAM=NA-1 NAZ=NAM IF (NAM.GT.5) NAZ=5 WRITE(6)LT,(PREN(J,2),J=1,6),SEPA,UA,(AUT(J,2),J=1,18) IF (NA.GT.3) WRITE(6)(SEPB,LT,(PREN(J,IA),J=1,6),SEPA, 2UA,(AUT(J,IA),J=1,18),IA=3,NAZ) IF (NAM.LE.5) GO TO 500 WRITE(6)(SEPB,LT,(PREN(J,IA),J=1,6),SEPA,UA,(AUT(J,IA),J=1,18), 3IA=6,NAM) GO TO 500 531 IF (NA.EQ.1) GO TO 500 WRITE(6)UA,(AUT(J,NA),J=1,18) GO TO 500 533 IF (NA.EQ.1) GO TO 500 WRITE(6)LT,(PREN(J,NA),J=1,6) GO TO 500 555 WRITE(6)UC DO 18 I=1,4 IF (T(1,I).EQ.' ') GO TO 17 WRITE(6)(T(K,I),K=1,72) 18 CONTINUE 17 IF (NSD.EQ.'S') GO TO 600 DO 19 I=1,4 IF (TD(1,I).EQ.' ') GO TO 600 WRITE(6)(TD(K,I),K=1,72) 19 CONTINUE 600 IF (BOOK(1).EQ.' ') WRITE(6)WC GO TO 500 535 IF (BOOK(1).EQ.' ') GO TO 500 IF (ISJ.EQ.1)WRITE(6)IE,BOOK,IF IF (ISJ.NE.1)WRITE(6)BOOK WRITE(6)WC 537 SEPA=O(KO+1) GO TO 521 540 IF (VOL(1).EQ.' ') GO TO 500 WRITE(6)VOL GO TO 537 545 WRITE(6)PAGE GO TO 537 550 ENCODE (4,1020,ANNEE)NAN WRITE(6)ANNEE 1020 FORMAT(I4) GO TO 537 500 CONTINUE 1000 CONTINUE CLOSE (UNIT=4) CLOSE (UNIT=6) RETURN END