C LMOCHA    SOURCE    GOUNAND   25/03/24    21:15:07     12215          
      SUBROUTINE LMOCHA(MLMOT1,NOMDD,LNOMDD,NOMDU,LNOMDU,IOBL,MLMOT2)
      IMPLICIT REAL*8 (A-H,O-Z)
      IMPLICIT INTEGER (I-N)
C***********************************************************************
C NOM         : LMOCHA
C DESCRIPTION : Crée la liste de mots MLMOT2 à partir de la liste de
C               mots MLMOT1.
C     Chaque mot de MLMOT1 présent dans NOMDD(LNOMDD) à l'indice INOMDD
C     est remplacé par le mot NOMDU(INOMDD)
C
C     IOBL=1 nécessite que tous les mots de MLMOT1 soient présents dans
C     NOMDD sinon erreur.
C
C
C LANGAGE     : ESOPE
C AUTEUR      : Stephane GOUNAND (CEA/DES/ISAS/DM2S/SEMT/LTA)
C               mel : gounand@semt2.smts.cea.fr
C***********************************************************************
C APPELES          : PLACE
C APPELES (E/S)    :
C APPELES (BLAS)   :
C APPELES (CALCUL) :
C APPELE PAR       : EXTRAI
C***********************************************************************
C SYNTAXE GIBIANE    :
C ENTREES            :
C ENTREES/SORTIES    :
C SORTIES            : MLMOT2
C***********************************************************************
C VERSION    : v1, 21/03/2025, version initiale
C HISTORIQUE : v1, 21/03/2025, creation
C HISTORIQUE :
C HISTORIQUE :
C***********************************************************************
-INC PPARAM
-INC CCOPTIO
-INC SMLMOTS
      CHARACTER*(*) NOMDD(LNOMDD)
      CHARACTER*(*) NOMDU(LNOMDU)
*
* Executable statements
*
      SEGINI,MLMOT2=MLMOT1
      nmots=MLMOT2.MOTS(/2)
      do imots=1,nmots
         call place(nomdd,lnomdd,inomdd,mlmot2.mots(imots))
         if (inomdd.EQ.0) then
            if (iobl.EQ.1) then
               moterr(1:512)=mlmot2.mots(imots)
               WRITE(IOIMP,110) (nomdd(I),I=1,lnomdd)
 110           FORMAT(8(1H ,A))
               GOTO 9999
            endif
         else
            if (inomdd.le.lnomdu) then
               mlmot2.mots(imots)=nomdu(inomdd)
            else
               call erreur(5)
               goto 9999
            endif
         endif
      enddo
*
* Normal termination
*
      RETURN
*
* Format handling
*
*
* Error handling
*
 9999 CONTINUE
      WRITE(IOIMP,*) 'An error was detected in subroutine lmocha'
      RETURN
*
* End of subroutine LMOCHA
*
      END
 
