C INQRPR    SOURCE    GOUNAND   21/06/02    21:16:57     11022          
      SUBROUTINE INQRPR(MYQRFS,IMPR,IRET)
      IMPLICIT REAL*8 (A-H,O-Z)
      IMPLICIT INTEGER (I-N)
C***********************************************************************
C NOM         : INQRPR
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, 15/03/04, version initiale
C HISTORIQUE : v1, 15/03/04, 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 ZVAL.MLREEL
      POINTEUR YVAL.MLREEL
      POINTEUR XVAL.MLREEL
*
      INTEGER IMPR,IRET
      REAL*8 ZERO,UN
      REAL*8 UNS3
      REAL*8 UNS2
      PARAMETER (UNS3=1.D0/3.D0)
      PARAMETER (UNS2=1.D0/2.D0)
      PARAMETER (ZERO=0.D0,UN=1.D0)
*
      INTEGER NUMER
*
* Executable statements
*
      IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans inqrpr'
*
* Elément QUAF PR21
*
      NDIMQR=3
      NBNOQR=21
      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('PR21',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=21
      SEGINI INOD
      DO IDDL=1,6
         INOD.LECT(IDDL)=IDDL
      ENDDO
      INOD.LECT( 7)=19
      INOD.LECT( 8)= 7
      INOD.LECT( 9)=16
      INOD.LECT(10)= 8
      INOD.LECT(11)=17
      INOD.LECT(12)= 9
      INOD.LECT(13)=18
      INOD.LECT(14)=21
      DO IDDL=15,20
         INOD.LECT(IDDL)=IDDL-5
      ENDDO
      INOD.LECT(21)=20
*
      JG=3
      SEGINI ZVAL
      ZVAL.PROG(1)=-UN
      ZVAL.PROG(2)=ZERO
      ZVAL.PROG(3)=UN
      JG=7
      SEGINI XVAL
      SEGINI YVAL
      XVAL.PROG(1)=ZERO
      YVAL.PROG(1)=ZERO
      XVAL.PROG(2)=UNS2
      YVAL.PROG(2)=ZERO
      XVAL.PROG(3)=UN
      YVAL.PROG(3)=ZERO
      XVAL.PROG(4)=UNS2
      YVAL.PROG(4)=UNS2
      XVAL.PROG(5)=ZERO
      YVAL.PROG(5)=UN
      XVAL.PROG(6)=ZERO
      YVAL.PROG(6)=UNS2
      XVAL.PROG(7)=UNS3
      YVAL.PROG(7)=UNS3
      ICPT=0
      DO IZ=1,3
         DO IT=1,7
            ICPT=ICPT+1
            JNOD=INOD.LECT(ICPT)
            QRCOUR.XCONQR(1,JNOD)=XVAL.PROG(IT)
            QRCOUR.XCONQR(2,JNOD)=YVAL.PROG(IT)
            QRCOUR.XCONQR(3,JNOD)=ZVAL.PROG(IZ)
         ENDDO
      ENDDO
      SEGSUP ZVAL
      SEGSUP YVAL
      SEGSUP XVAL
      SEGSUP INOD
*
* Numero du centre
*
      QRCOUR.NUCENT=21
*
* Faces du PR21 : 2 TRI7 + 3 QUA9
*
*     Chapeau
      NBNN=0
      NBELEM=0
      NBSOUS=2
      NBREF=0
      SEGINI MYMEL
*     2 Faces TRI7
      NBNN=7
      NBELEM=2
      NBSOUS=0
      NBREF=0
      SEGINI SOUMEL
      CALL FICH4('TRI7',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)=19
*     Face 2
      SOUMEL.NUM(1,2)=10
      SOUMEL.NUM(2,2)=11
      SOUMEL.NUM(3,2)=12
      SOUMEL.NUM(4,2)=13
      SOUMEL.NUM(5,2)=14
      SOUMEL.NUM(6,2)=15
      SOUMEL.NUM(7,2)=20
      SEGDES SOUMEL
      MYMEL.LISOUS(1)=SOUMEL
*     3 Faces QUA9
      NBNN=9
      NBELEM=3
      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)=8
      SOUMEL.NUM(5,1)=12
      SOUMEL.NUM(6,1)=11
      SOUMEL.NUM(7,1)=10
      SOUMEL.NUM(8,1)=7
      SOUMEL.NUM(9,1)=16
*     Face 2
      SOUMEL.NUM(1,2)=3
      SOUMEL.NUM(2,2)=4
      SOUMEL.NUM(3,2)=5
      SOUMEL.NUM(4,2)=9
      SOUMEL.NUM(5,2)=14
      SOUMEL.NUM(6,2)=13
      SOUMEL.NUM(7,2)=12
      SOUMEL.NUM(8,2)=8
      SOUMEL.NUM(9,2)=17
*     Face 3
      SOUMEL.NUM(1,3)=5
      SOUMEL.NUM(2,3)=6
      SOUMEL.NUM(3,3)=1
      SOUMEL.NUM(4,3)=7
      SOUMEL.NUM(5,3)=10
      SOUMEL.NUM(6,3)=15
      SOUMEL.NUM(7,3)=14
      SOUMEL.NUM(8,3)=9
      SOUMEL.NUM(9,3)=18
      SEGDES SOUMEL
      MYMEL.LISOUS(2)=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 inqrpr'
      RETURN
*
* End of subroutine INQRPR
*
      END




 
 
 
