C MKCOO1    SOURCE    GOUNAND   05/12/21    21:34:15     5281
      SUBROUTINE MKCOO1(NNOEU,NELEM,NXCO,NDDL,NDIM,
     $        SOUGEO,NCOORD,NPQUAF,
     $        JCOOR,
     $        IMPR,IRET)
      IMPLICIT REAL*8 (A-H,O-Z)
      IMPLICIT INTEGER (I-N)
C***********************************************************************
C NOM         : MKCOO1
C PROJET      : Noyau linéaire NLIN
C DESCRIPTION : On remplit les valeurs du champ par éléments contenant
C               les coordonnées des points servant pour la
C               transformation géométrique (ddl de la transformation
C               géométrique)... Ceci pour le maillage élémentaire
C               SOUGEO.
C
C LANGAGE     : FORTRAN 77 (sauf E/S)
C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
C               mél : gounand@semt2.smts.cea.fr
C***********************************************************************
C APPELES          : -
C APPELE PAR       : MKCOOR
C***********************************************************************
C ENTREES            : * NNOEU  (type entier) : nombre de noeuds par
C                        élément.
C                      * NELEM  (type entier) : nombre d'éléments de
C                        SOUGEO
C                      * NXCO   (type entier) : dimension du tableau des
C                        coordonnées des points (cf. include SMCOORD).
C                      * NDDL   (type entier) : nombre de ddl de
C                        l'élément fini courant.
C                      * NDIM   (type entier) : dimension de l'espace
C                        géométrique.
C                      * SOUGEO (type entier) : tableau des numéros de
C                        noeuds des éléments.
C                      * NCOORD (type réel)   : tableau des coordonnées
C                        des noeuds (cf. include SMCOORD).
C                      * NPQUAF (type entier) : tableau de
C                        correspondance (numéro du ddl) -> numéro du
C                        noeud du QUAF (cf. include SELREF)
C ENTREES/SORTIES    : * JCOOR  (type réel)   : valeurs du champ par
C                        éléments contenant les coordonnées des points
C                        servant pour la transformation géométrique (ddl
C                        de la transformation géométrique)...
C SORTIES            : -
C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
C***********************************************************************
C VERSION    : v1, 03/09/99, version initiale
C HISTORIQUE : v1, 03/09/99, création
C HISTORIQUE :
C HISTORIQUE :
C***********************************************************************
C Prière de PRENDRE LE TEMPS de compléter les commentaires
C en cas de modification de ce sous-programme afin de faciliter
C la maintenance !
C***********************************************************************

-INC PPARAM
-INC CCOPTIO
*
      INTEGER NNOEU,NELEM,NXCO,NDDL,NDIM
      INTEGER SOUGEO(NNOEU,NELEM)
      REAL*8 NCOORD(NXCO)
      INTEGER NPQUAF(NDDL)
      REAL*8 JCOOR(NDDL,NDIM,NELEM)
*
      INTEGER IMPR,IRET
*
      INTEGER IELEM,INDDL,INDIM
      INTEGER NUMNO
*
* Executable statements
*
      IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans mkcoo1'
      DO 1 IELEM=1,NELEM
         DO 12 INDDL=1,NDDL
            NUMNO=SOUGEO(NPQUAF(INDDL),IELEM)
            DO 122 INDIM=1,NDIM
               JCOOR(INDDL,INDIM,IELEM)=
     $                 NCOORD(((NUMNO-1)*(NDIM+1)) + INDIM)
 1222          CONTINUE
 122        CONTINUE
 12      CONTINUE
 1    CONTINUE
*
* Normal termination
*
      IRET=0
      RETURN
*
* Format handling
*
*
* Error handling
*
 9999 CONTINUE
      IRET=1
      WRITE(IOIMP,*) 'An error was detected in subroutine mkcoo1'
      RETURN
*
* End of subroutine MKCOO1
*
      END


