C NOMC      SOURCE    CB215821  21/05/05    21:15:09     10993          

C=======================================================================
C
C     OPERATEUR RENOMMANT LE NOM DE LA COMPOSANTE D UN CHPOINT
C                                              OU D UN MCHAML
C                         certaines composantes d'un chpoint (extension)
C     CHPO1 = NOMC | MOT         | CHPO2
C                  | LISM1 LISM2 |
C     CHE1 = NOMC | MOT         | CHE2
C                  | LISM1 LISM2 |
C
C     EBERSOLT DECEMBRE 84        D. R.-M. avril 94
C     extension MCHAML kich 01/99
C     ajouts actobj sg 12/2019      
C=======================================================================
C
      SUBROUTINE NOMC

      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)


-INC PPARAM
-INC CCOPTIO
-INC SMCHPOI

      CHARACTER*(LOCOMP) MOT1
      CHARACTER*4        MOT2(1),MOTNAT(3)
      DATA               MOT2/'NATU'/
      DATA               MOTNAT/'INDE','DIFF','DISC'/

C On initialise comme sur IBM (a -1)
      IRT1=-1
      IRT2=-1
      IRT3=-1
      IRT6=-1
C
C     On tente de lire un LISTMOTS
C
      CALL LIROBJ('LISTMOTS',IPLM1,0,IRT3)
      IF (IERR.NE.0) GOTO 666
C
      IF (IRT3.EQ.1) THEN
         CALL ACTOBJ('LISTMOTS',IPLM1,1)
         CALL LIROBJ('LISTMOTS',IPLM2,1,IRT3)
         IF (IERR.NE.0) GOTO 666
         CALL ACTOBJ('LISTMOTS',IPLM2,1)
C
         CALL LIROBJ('CHPOINT ',IPCH1,0,IRT2)
         IF (IERR.NE.0) GOTO 666
C
         IF (IRT2.EQ.1) THEN
            CALL ACTOBJ('CHPOINT ',IPCH1,1)
            CALL NOMC2(IPCH1,IPLM1,IPLM2,IPCH2)
         ELSE
           CALL LIROBJ('MCHAML  ',IPCH1,1,IRT6)
           IF (IERR.NE.0) GOTO 266
           CALL ACTOBJ('MCHAML  ',IPCH1,1)
           CALL NOMC3(IPCH1,IPLM1,IPLM2,IPCH2,' ')
        ENDIF
        IF (IERR.NE.0) GOTO 666
C
      ELSE
         CALL LIRCHA(MOT1,1,IRT1)
         IF (IERR.NE.0) GOTO 666
C
         CALL LIROBJ('CHPOINT ',IPCH1,0,IRT2)
         IF (IERR.NE.0) GOTO 666

         IF (IRT2.EQ.1) THEN
            CALL ACTOBJ('CHPOINT ',IPCH1,1)
            IRET=-1
            CALL NOMCOM(IPCH1,MOT1,IPCH2,IRET)
            IF (IRET.EQ.0) GOTO 666
         ELSE
            CALL LIROBJ('MCHAML  ',IPCH1,1,IRT6)
            IF (IERR.NE.0) GOTO 266
            CALL ACTOBJ('MCHAML  ',IPCH1,1)
            CALL NOMC3(IPCH1,-1,-1,IPCH2,MOT1)
         ENDIF
         IF (IERR.NE.0) GOTO 666
      ENDIF
C
C     on essaie de lire la nouvelle nature
C
      IF (IRT2.EQ.1) THEN
         CALL LIRMOT(MOT2,1,INAT,0)
         IF (IERR .NE. 0) GOTO 666
         IF (INAT.NE.0) THEN
            CALL LIRMOT(MOTNAT,3,JATT1,1)
            IF (IERR .NE. 0) GOTO 666
            MCHPOI=IPCH2
            SEGACT MCHPOI*MOD
            NJAT = JATTRI(/1)
            IF (NJAT.LT.1) THEN
               NSOUPO = IPCHP(/1)
               NAT = 1
               SEGADJ MCHPOI
            ENDIF
            JATTRI(INAT)=JATT1-1
*new-paradigm            SEGDES MCHPOI
         ENDIF
      ENDIF
C
      IF (IRT2.EQ.1) THEN
         CALL ACTOBJ('CHPOINT ',IPCH2,1)
         CALL ECROBJ('CHPOINT ',IPCH2)
      ELSE
         CALL ACTOBJ('MCHAML  ',IPCH2,1)
         CALL ECROBJ('MCHAML  ',IPCH2)
      ENDIF
      GOTO 666
C
C    PAS D OPERANDE CORRECTE TROUVE
C
 266  CALL QUETYP(MOTERR(1:8),0,IRETOU)
      IF(IRETOU.NE.0) THEN
         CALL ERREUR (39)
      ELSE
         CALL ERREUR(533)
      ENDIF

  666 CONTINUE
      RETURN
      END


 
 
 
