[updated 10.Jul.1997]
Librairie redlib > Fichier redini.f |
SUBROUTINE REDINI (LECNEW,ISOR)
Auteur : D.Martin (Avril 1988)
Derniere modification D.Martin (9 Juillet 197)
Reinitialisation de l'unite de lecture des directives
-- Arguments d'entree --
LECNEW numero d'unite logique de la nouvelle unite de lecture
ISOR negatif signifie : modifier le fichier de sortie IMP=LEC
peut avoir les valeurs 0,1,2,3,4 ou une combinaison de ces valeurs
1 Impression des donnees
2 Rembobiner le fichier d'entree en fin de phase de lecture
4 Pas de controle des commentaires commencant par un $ ou une *
8 RETURN au programme appelant derriere l'erreur detectee.
NER est charge avec un numero de diagnostic .
INTEGER LECNEW,ISOR
CHARACTER PREFIX*8
INTEGER IMPPAL,IMPSDR,IMPMES,NBMESG
& ,NFIX,IRE,NER,NCAR,ILU,IOP,LECACT
& ,NUMACT,NRAN,IMP,IECR,KNUM,IRWD,NOCO,IRET,NAV
& ,LECOLD,LCANTE,NUMOLD,NUMSAV,LECSAV,I,IS,NIVESP
DOUBLE PRECISION FLOT
COMMON/SPNAME/ PREFIX(20) /SPNIVE/NIVESP
COMMON/FICHIM/ IMPPAL,IMPSDR,IMPMES,NBMESG
COMMON/REDCO1/ FLOT,NFIX,IRE,NER,NCAR,ILU,IOP(5)
COMMON/REDCA1/ NUMACT,NRAN,LECACT,IMP,IECR,KNUM,IRWD,NOCO,IRET,NAV
COMMON/REDLST/ LECOLD,LCANTE,NUMOLD
INTEGER IREDCO(9)
EQUIVALENCE (IREDCO(1),IRE)
IS=ISOR
IRET=0
IF (IS.GE.8) THEN
IS=IS-8
IRET=1
ENDIF
NOCO=0
IF (IS.GE.4) THEN
IS=IS-4
NOCO=1
ENDIF
IRWD=0
IF (IS.GE.2) THEN
IS=IS-2
IRWD=1
ENDIF
IECR=IS
IF (LECACT.EQ.LECNEW) RETURN
Nombre de cartes lues et numero de l'unite de lecture actuelle
NUMSAV=NUMACT
LECSAV=LECACT
NRAN=0
LECACT=0
IMP=0
KNUM=0
NAV=0
DO 1 I=1,9
IREDCO(I)=0
1 CONTINUE
NFIX=0
FLOT=0.D0
En cas de retour a l'unite precedente Nb. de cartes lues sur celle-ci
IF (LECNEW.EQ.LECOLD) NUMACT=NUMOLD
LCANTE=LECOLD
NUMOLD=NUMSAV
LECOLD=LECSAV
IF (ISOR.GT.0.AND.IMPSDR.GT.0.AND.LECOLD.GT.0) THEN
WRITE (IMPMES,10000) (PREFIX(I),I=1,NIVESP),'*Redini*'
WRITE (IMPMES,10001) LECOLD,LECNEW
ENDIF
NAV=-1
DO 2 I=1,5
IOP(I)=0
2 CONTINUE
IMP=LECNEW
IF (ISOR.LT.0) RETURN
IMP=IMPMES
CALL REDLEC (-1)
LECACT=LECNEW
IF (LECACT.EQ.0) LECACT=5
10000 FORMAT(' ---> ',(T7,10(A8,:,' > ')))
10001 FORMAT(T7,'Re-initialisation de la lecture - '
&,'Ancienne unite :',I6,' Nouvelle unite :',I6)
END !Redini
redini est appelé dans (6 procédures)