C REST SOURCE PV090527 25/02/28 21:15:04 12169 C======================================================================= C DIRECTIVE RESTITUER C ---------------- C C C BUT: LECTURE ET RESTAURATION DES OBJETS NOMMES ET DE CEUX QU ILS C SOUS-TENDENT, SUR LE FICHIER IORES C IORESSAU EST DEFINI PAR: OPTIO RESTSAUV IORESSAU ; C C C ON SAIT RESTITUER LES OBJETS DONT LE TYPE EST CONTENU C DANS LE SP TYPFIL C C APPELLE TYPFIL CREPIL LIPIL C ECRIT PAR FARVACQUE C REPRIS PAR LENA C --------------------------------------------------------------------- C======================================================================= SUBROUTINE REST IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCFXDR -INC TMCOLAC CHARACTER*8 ITYPE CHARACTER*72 LABEL CHARACTER*4 MOFORM(2) DATA MOFORM/'FORM','LABE'/ IFORM=0 LABEL= ' ' 1 CONTINUE CALL LIRMOT(MOFORM,2,IRET,0) IF (IERR.NE.0) RETURN IF (IRET.EQ.1) THEN IFORM=1 if (irefor.ne.iform) then call erreur(21) return endif GO TO 1 ELSE IF (IRET.EQ.2) THEN CALL LIRCHA(LABEL,1,IRETOU) IF (IERR.NE.0) RETURN IF (LABEL(1:5).EQ.'AUTO ') THEN LABEL='LABEL AUTOMATIQUE :' CALL LIRENT(ILABAU,1,IRETOU) IF (IERR.NE.0) RETURN WRITE(LABEL(20:23),FMT='(I4)') ILABAU ENDIF GO TO 1 ENDIF iform = irefor * write(ioimp,*) ' iformx dans rest ',iformx if (iformx.eq.2) iform=2 C **** ICOLAC EST INITIALISEE DANS CREPIL ITYPE=' ' K=-1 CALL TYPFIL( ITYPE,K) NITLAC=-K CALL CREPIL(ICOLAC,NITLAC) CCC IF (IIMPI.EQ.5)WRITE (IOIMP,801) NITLAC 801 FORMAT(' NOMBRE DE PILES CREEES : ',I5) C------------------------------------------------------------- C On conserve le NIVEAU actuel (defini dans BDATA) ISNIV = IONIVE C------------------------------------------------------------- C Jusqu'a la remise au niveau actuel (apres etiquette 1000), C IONIVE contient le niveau lu dans le fichier ! C *** LECTURE SUR LE FICHIER DE RESTAURATION if (iform.ne.2) REWIND IORES * if (iform.eq.2) ios=IXDRREWIND( ixdrw ) C --- LECTURE DES PILES IFIN=0 IRET=0 CALL LIPIL(ICOLAC,IFIN,IRET,IFORM,LABEL) IF (IRET.NE.0) THEN CALL ERREUR(559) GO TO 1000 ENDIF IF (IIMPI.EQ.5)WRITE (IOIMP,805) 805 FORMAT(' RESTAURATION EFFECTUEE ') C --- IMPRESSIONS INTERMEDIAIRES DES PILES IVOULU = 0 C------------------------------------------------------------- C --- RESTAURATION DES POINTEURS CALL RESTPI (ICOLAC) IF (IIMPI.EQ.5)WRITE (IOIMP,806) 806 FORMAT(' RESTAURATION DES POINTEURS EFFECTUEE ') * fusion des eventuels doubles multiplicateurs de Lagrange IF (IONIVE.LE.15) CALL DBBSUP(ICOLAC) C------------------------------------------------------------- CALL ERREUR(-277) C MODI N.BLAY LE 17/09/91 COHERENCE AVEC SAUV----------------- if (iform.ne.2) REWIND IORES if (iform.eq.2) ios=IXDRREWIND( ixdrr ) 1000 CONTINUE C --- SUPPRESSION DES PILES (IVOULU=0) IVOULU=10000 CALL SUPPIL (ICOLAC,IVOULU) IF (IIMPI.EQ.5)WRITE (IOIMP,807) 807 FORMAT(' SUPPRESSION DES PILES EFFECTUEE ') C------------------------------------------------------------- C On remet le NIVEAU actuel (defini dans BDATA) IONIVE = ISNIV C------------------------------------------------------------- RETURN END