C LIRECA SOURCE CHAT 06/06/01 21:17:47 5450 C ACQUISITION D'UNE CARTE (72 CARS) DE DONNEES C SUBROUTINE LIRECA C LIT LES CARTES DE DONNEES. REVIENT AUTOMATIQUEMENT SUR C L'UNITE IOTER EN CAS DE FIN DE FICHIER,CE QUI PERMET D'EXECUTER C UN FICHIER PREPARE A L'AVANCE C RECOPIE TOUTES LES CARTES LUES SUR UNITE 98 IMPLICIT INTEGER(I-N) -INC CCREDLE -INC CCOPTIO -INC CCNOYAU CHARACTER*72 REP CHARACTER*72 IAERA CHARACTER*4 IRET SAVE NCART,NCARTP,IECHA,IPASS DATA NCART/0/,NCARTP/0/,IPASS/0/ sredle=iredle IF(IPASS.EQ.0) THEN IPASS=1 CALL PROCL2('INITIALE',IRET) IF(IRET(1:3).EQ.'999') THEN IOLEC=654321 + IOLEC CALL ERREUR(-305) IECHA=IECHO * write(6,*) ' on passe ici' IECHO= max(0,iecho - 1) ENDIF ENDIF I1=IPOS I2=I1+71 5 CONTINUE IF(IOLEC.LT.0. OR. IOLEC.GT.654321 ) THEN NCARTP=NCARTP+1 CALL PROCLI(IAERA,IRET) IF(IRET.EQ.'9999') THEN IF ( IOLEC.LT. 654321) THEN IOLEC = -IOLEC ELSE IOLEC=IOLEC-654321 CALL ERREUR (-306) ENDIF IECHO=IECHA GO TO 5 ENDIF TEXT(I1:I2)=IAERA NBCART=NCARTP ELSE IF (IECHO.NE.0) CALL PROMPT READ(IOLEC,FMT='(A72)',END=2,ERR=4) TEXT(I1:I2) NCARTP=0 NCART=NCART+1 NBCART=NCART ENDIF C******* WRITE(98,FMT='(A72)') TEXT(I1:I2) C******* IF (IECHO.GE.1) WRITE(IOIMP,3) TEXT(I1:I2) 3 FORMAT(1X,'* ',A72) IF(TEXT(I1:I1).EQ.'*') GO TO 5 IPOS=I2 RETURN * traitement erreur en lecture 4 continue if (ierr.eq.623) then ierr=0 call erreur(623) call opterm(ioter) ierr=0 goto 5 endif interr(1)=ioter call erreur (624) call opterm(ioter) goto 5 2 IF (IOLEC.EQ.IOTER) THEN IF (IOGRA.NE.3) THEN return endif REWIND IOLEC WRITE (IOIMP,7711) 7711 FORMAT (' VOULEZ-VOUS VRAIMENT SORTIR DE GIBI ? OUI/NON') READ (IOLEC,7712,END=7720) REP 7712 FORMAT (A72) IF (REP(1:3).NE.'OUI') WRITE( IOIMP,7713) 7713 FORMAT( ' LE PROGRAMME ATTEND LA SUITE DES DONNEES') IF (REP(1:3).NE.'OUI') GOTO 5 7720 CONTINUE RETURN ELSE WRITE (IOIMP,7714) IOLEC 7714 FORMAT(' FIN DE FICHIER SUR L''UNITE ',I2,/, # ' LES DONNEES SONT MAINTENANT LUES SUR LE CLAVIER') IOLEC=IOTER GOTO 5 ENDIF END