C INQRCU    SOURCE    GOUNAND   21/06/02    21:16:55     11022          
      SUBROUTINE INQRCU(MYQRFS,IMPR,IRET)
      IMPLICIT REAL*8 (A-H,O-Z)
      IMPLICIT INTEGER (I-N)
C***********************************************************************
C NOM         : INQRCU
C PROJET      : Noyau linéaire NLIN
C DESCRIPTION :
C LANGAGE     : ESOPE
C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
C               mél : gounand@semt2.smts.cea.fr
C***********************************************************************
C APPELES          :
C APPELE PAR       :
C***********************************************************************
C ENTREES            : -
C ENTREES/SORTIES    :
C SORTIES            : -
C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
C***********************************************************************
C VERSION    : v1, 24/07/03, version initiale
C HISTORIQUE : v1, 24/07/03, 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
-INC CCGEOME
-INC TNLIN      
*-INC SIQUAF
      POINTEUR MYQRFS.IQUAFS
      POINTEUR QRCOUR.IQUAF
      INTEGER NDIMQR,NBNOQR
-INC SMELEME
      POINTEUR MYMEL.MELEME
      POINTEUR SOUMEL.MELEME
      INTEGER NBNN,NBELEM,NBSOUS,NBREF
-INC SMLENTI
      POINTEUR INOD.MLENTI
-INC SMLREEL
      POINTEUR KVAL.MLREEL
*
      INTEGER IMPR,IRET
      REAL*8 ZERO,UN
*
      PARAMETER (ZERO=0.D0,UN=1.D0)
*
      INTEGER NUMER
*
* Executable statements
*
      IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans inqrcu'
*
* Elément QUAF QUA9
*
      NDIMQR=3
      NBNOQR=27
      SEGINI QRCOUR
* Numéro de l'élément géométrique dans NOMS
* NOMS(1:NOMBR) sont les noms des types d'éléments géométriques,
* cf. include CCGEOME
      CALL FICH4('CU27',NOMS,NOMBR,
     $     NUMER,
     $     IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
      QRCOUR.NUMQUF=NUMER
*
* Coordonnées des noeuds du QUAF de référence
*
      JG=27
      SEGINI INOD
      INOD.LECT( 1)=1
      INOD.LECT( 2)=2
      INOD.LECT( 3)=3
      INOD.LECT( 4)=8
      INOD.LECT( 5)=25
      INOD.LECT( 6)=4
      INOD.LECT( 7)=7
      INOD.LECT( 8)=6
      INOD.LECT( 9)=5
      INOD.LECT(10)=9
      INOD.LECT(11)=21
      INOD.LECT(12)=10
      INOD.LECT(13)=24
      INOD.LECT(14)=27
      INOD.LECT(15)=22
      INOD.LECT(16)=12
      INOD.LECT(17)=23
      INOD.LECT(18)=11
      INOD.LECT(19)=13
      INOD.LECT(20)=14
      INOD.LECT(21)=15
      INOD.LECT(22)=20
      INOD.LECT(23)=26
      INOD.LECT(24)=16
      INOD.LECT(25)=19
      INOD.LECT(26)=18
      INOD.LECT(27)=17
      JG=3
      SEGINI KVAL
      KVAL.PROG(1)=-UN
      KVAL.PROG(2)=ZERO
      KVAL.PROG(3)=UN
      ICPT=0
      DO IZ=1,3
         DO IY=1,3
            DO IX=1,3
               ICPT=ICPT+1
               JNOD=INOD.LECT(ICPT)
               QRCOUR.XCONQR(1,JNOD)=KVAL.PROG(IX)
               QRCOUR.XCONQR(2,JNOD)=KVAL.PROG(IY)
               QRCOUR.XCONQR(3,JNOD)=KVAL.PROG(IZ)
            ENDDO
         ENDDO
      ENDDO
      SEGSUP KVAL
      SEGSUP INOD
*
* Numero du centre
*
      QRCOUR.NUCENT=27
*
* Faces du CU27 : 6 QUA9
*
*     Chapeau
      NBNN=0
      NBELEM=0
      NBSOUS=1
      NBREF=0
      SEGINI MYMEL
*     Faces QUA9
      NBNN=9
      NBELEM=6
      NBSOUS=0
      NBREF=0
      SEGINI SOUMEL
      CALL FICH4('QUA9',NOMS,NOMBR,
     $     NUMER,
     $     IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
      SOUMEL.ITYPEL=NUMER
*     Face 1
      SOUMEL.NUM(1,1)=1
      SOUMEL.NUM(2,1)=2
      SOUMEL.NUM(3,1)=3
      SOUMEL.NUM(4,1)=4
      SOUMEL.NUM(5,1)=5
      SOUMEL.NUM(6,1)=6
      SOUMEL.NUM(7,1)=7
      SOUMEL.NUM(8,1)=8
      SOUMEL.NUM(9,1)=25
*     Face 2
      SOUMEL.NUM(1,2)=13
      SOUMEL.NUM(2,2)=14
      SOUMEL.NUM(3,2)=15
      SOUMEL.NUM(4,2)=16
      SOUMEL.NUM(5,2)=17
      SOUMEL.NUM(6,2)=18
      SOUMEL.NUM(7,2)=19
      SOUMEL.NUM(8,2)=20
      SOUMEL.NUM(9,2)=26
*     Face 3
      SOUMEL.NUM(1,3)=3
      SOUMEL.NUM(2,3)=4
      SOUMEL.NUM(3,3)=5
      SOUMEL.NUM(4,3)=11
      SOUMEL.NUM(5,3)=17
      SOUMEL.NUM(6,3)=16
      SOUMEL.NUM(7,3)=15
      SOUMEL.NUM(8,3)=10
      SOUMEL.NUM(9,3)=22
*     Face 4
      SOUMEL.NUM(1,4)=1
      SOUMEL.NUM(2,4)=8
      SOUMEL.NUM(3,4)=7
      SOUMEL.NUM(4,4)=12
      SOUMEL.NUM(5,4)=19
      SOUMEL.NUM(6,4)=20
      SOUMEL.NUM(7,4)=13
      SOUMEL.NUM(8,4)=9
      SOUMEL.NUM(9,4)=24
*     Face 5
      SOUMEL.NUM(1,5)=1
      SOUMEL.NUM(2,5)=2
      SOUMEL.NUM(3,5)=3
      SOUMEL.NUM(4,5)=10
      SOUMEL.NUM(5,5)=15
      SOUMEL.NUM(6,5)=14
      SOUMEL.NUM(7,5)=13
      SOUMEL.NUM(8,5)=9
      SOUMEL.NUM(9,5)=21
*     Face 6
      SOUMEL.NUM(1,6)=7
      SOUMEL.NUM(2,6)=6
      SOUMEL.NUM(3,6)=5
      SOUMEL.NUM(4,6)=11
      SOUMEL.NUM(5,6)=17
      SOUMEL.NUM(6,6)=18
      SOUMEL.NUM(7,6)=19
      SOUMEL.NUM(8,6)=12
      SOUMEL.NUM(9,6)=23
      SEGDES SOUMEL
      MYMEL.LISOUS(1)=SOUMEL
      SEGDES MYMEL
      QRCOUR.LFACE=MYMEL
      SEGDES QRCOUR
      MYQRFS.LISQRF(**)=QRCOUR
*
* Normal termination
*
      IRET=0
      RETURN
*
* Format handling
*
*
* Error handling
*
 9999 CONTINUE
      IRET=1
      WRITE(IOIMP,*) 'An error was detected in subroutine inqrcu'
      RETURN
*
* End of subroutine INQRCU
*
      END




 
 
 
