C INLRFS    SOURCE    GOUNAND   21/06/02    21:16:53     11022          
      SUBROUTINE INLRFS(MYLRFS,IMPR,IRET)
      IMPLICIT REAL*8 (A-H,O-Z)
      IMPLICIT INTEGER (I-N)
C***********************************************************************
C NOM         : INLRFS
C PROJET      : Noyau linéaire NLIN
C DESCRIPTION : Initialise le segment contenant les informations sur
C               l'ensemble des éléments de référence.
C
C LANGAGE     : ESOPE
C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
C               mél : gounand@semt2.smts.cea.fr
C***********************************************************************
C APPELES          : INELSE, INELTR, INELQU, INELTE, INELPR, INELCU
C APPELES (E/S)    : PRLRF
C APPELE PAR       : KALPBG
C***********************************************************************
C ENTREES            : -
C SORTIES            : MYLRFS
C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
C***********************************************************************
C VERSION    : v1, 20/07/99, version initiale
C HISTORIQUE : v1, 20/07/99, création
C HISTORIQUE : v2, 19/10/99, remaniement (chgt du segment ELREFS)
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 TNLIN      
*-INC SELREF
      POINTEUR MYLRFS.ELREFS
      POINTEUR ELCOUR.ELREF
*
      INTEGER IMPR,IRET
*
      INTEGER INBDEL,NBDEL
*
* Executable statements
*
      IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans inlrfs'
*
* Initialisation du segment contenant tous les éléments de référence
* L'ordre dans lequel ils ont initialisés à une importance car certains
* éléments sont générés à partir d'autres (ex: prisme = triangle *
* segment)
*
      SEGINI MYLRFS
*
* On initialise les éléments de référence de dimension 1 (segments)
*
      CALL INELSE(MYLRFS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les éléments de référence de dimension 2
* de forme géométrique triangulaire.
*
      CALL INELTR(MYLRFS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les éléments de référence de dimension 2
* de forme géométrique carrée.
*
      CALL INELQU(MYLRFS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les éléments de référence de dimension 3
* de forme géométrique tétraèdrique.
*
      CALL INELTE(MYLRFS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les éléments de référence de dimension 3
* de forme géométrique pyramidale.
*
      CALL INELPY(MYLRFS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les éléments de référence de dimension 3
* de forme géométrique prismatique à base triangle.
*
      CALL INELPR(MYLRFS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* On initialise les éléments de référence de dimension 3
* de forme géométrique cubique.
*
      CALL INELCU(MYLRFS,IMPR,IRET)
      IF (IRET.NE.0) GOTO 9999
*
* Impression finale
*
      NBDEL=MYLRFS.LISEL(/1)
      IF (IMPR.GT.1) THEN
*!      WRITE(IOIMP,*) 'Nom, Forme, Continuité, degré, nb.ddl'
         SEGPRT,MYLRFS
         DO 3 INBDEL=1,NBDEL
            WRITE(IOIMP,*) 'Elément de référence ',INBDEL
            ELCOUR=MYLRFS.LISEL(INBDEL)
            CALL PRLRF(ELCOUR,IMPR,IRET)
            IF (IRET.NE.0) GOTO 9999
 3       CONTINUE
      ENDIF
      SEGDES MYLRFS
*
* Normal termination
*
      IRET=0
      RETURN
*
* Format handling
*
*
* Error handling
*
 9999 CONTINUE
      IRET=1
      WRITE(IOIMP,*) 'An error was detected in subroutine inlrfs'
      RETURN
*
* End of subroutine INLRFS
*
      END



 
