C CREOB     SOURCE    JC220346  18/12/04    21:15:11     9991           
      SUBROUTINE CREOB (ITYPE,NOMM1,NOMM2,ITLACC,mianc,mranc,mlanc,
     >  mmanc)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
C=======================================================================
C   BUT        : RECREER LES OBJETS
C   APPELE PAR : LIPIL
C              :
C   ECRIT PAR FARVACQUE    -REPRIS PAR LENA
C
C=======================================================================
-INC CCNOYAU

-INC PPARAM
-INC CCOPTIO
C=======================================================================


      SEGMENT/ITLACC/(ITLAC(0))
      SEGMENT/NOMM1/(NOM1(NOBJN1))
      SEGMENT NOMM2
      CHARACTER*(LONOM) NOM2(NOBJN1)
      ENDSEGMENT
C
      CHARACTER*(8) ITYPE

      CHARACTER*(LONOM) NOMM
      CHARACTER*512 CK
      REAL*8 XK
      LOGICAL BK

C--------------------------------------------------------------------
      SEGACT NOMM1,NOMM2
      IMAX1=ITLAC(/1)
      NOBJN=NOM1(/1)
C ------------------------------------------------------------------
C     *****FIN DE LECTURE D'UNE PILE : NOM DES OBJETS*******************
C
      IF(NOBJN.EQ.0) GOTO 1

      DO 1094 I=1,NOBJN
         IERT=0
         J=NOM1(I)
         NOMM=NOM2(I)
         IF (J.GT.IMAX1) THEN
            WRITE(IOIMP,808) ITYPE,NOM2(I),imax1,j
            GO TO 1094
         ENDIF

         K=ITLAC(J)
         if (itype.eq.'ENTIER'  ) K=itlac(j+mianc)
         if (itype.eq.'FLOTTANT') K=itlac(j+mranc)
         if (itype.eq.'LOGIQUE' ) K=itlac(j+mlanc)
         if (itype.eq.'MOT    ' ) K=itlac(j+mmanc)




         IF(IIMPI.NE.0) WRITE(IOIMP,801)ITYPE,NOM2(I),J,K

         IF(ITYPE.EQ.'ENTIER  ') then
           ik=k
         elseif (ITYPE.EQ.'FLOTTANT'.OR.ITYPE.EQ.
     $      'LOGIQUE '.OR.ITYPE.EQ.'MOT     ') then
            CALL QUEVAL(K,ITYPE,IERT,IK,XK,CK,BK,IOK)
         endif
         IF(IERT.EQ.1) THEN
            CALL ERREUR(5)
            GOTO 1
         ENDIF

         IF(ITYPE.EQ.'ENTIER  ') THEN
               CALL NOMENT(NOMM,IK)
         ELSE IF(ITYPE.EQ.'FLOTTANT') THEN
               CALL NOMREE(NOMM,XK)
         ELSE IF(ITYPE.EQ.'LOGIQUE ') THEN
               CALL NOMLOG(NOMM,BK)
         ELSE IF(ITYPE.EQ.'MOT     ') THEN
               CALL NOMCHA(NOMM,CK(1:IK))
         ELSE
               CALL NOMOBJ(ITYPE,NOMM,K)
         ENDIF
 1094 CONTINUE

    1 CONTINUE
      SEGDES NOMM1
      SEGDES NOMM2
      RETURN
C -------------------------------------------------------
  801 FORMAT(2X,A8,2X,A24,2X,2I9)
  808 FORMAT(2X,A8,'  * ATTENTION ERREUR SUR L''OBJET ',A24,2i4)
      END
 
 
 
