C BGCHEL    SOURCE    PV090527  25/01/07    14:42:26     12115          

C=====================================================================
C=====================================================================
C BGCHEL    SOURCE   MARINO ARROYO   99/05/21
      SUBROUTINE BGCHEL(IPO1,IEPS,T0,X0,IRET)
C=====================================================================
C
C     EFFECTUE DIVERSES OPERATIONS SUR DES MCHAML
C  ENTREES
C     IPO1=POINTEUR SUR LE CHAMPS PAR ELEMENT
C     IEPS= 1 CONDUCTIVITE
C         = 2 DERIVEE CONDUCTIVITE
C         = 3 CAPACITE
C         = 4 DERIVEE CAPACITE
C     T0= 1 TEMPERATURE DE REFERENCE
C     X0= CARACTERISTIQUE DE REFERENCE
C  SORTIES
C     IRET=POINTEUR SUR LE CHAMP RESULTANT
C         =0  SI OPERATION IMPOSSSIBLE
C
C=====================================================================
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
C
-INC SMCHAML
-INC SMCOORD

-INC PPARAM
-INC CCOPTIO
C
      IRET=0
      MCHEL1 = IPO1
      SEGINI,MCHELM=MCHEL1
      IRET = MCHELM
      NSOUS = IMACHE(/1)
*
      DO 72 IA=1,NSOUS
*
         MCHAM1=ICHAML(IA)
         SEGINI,MCHAML=MCHAM1
         ICHAML(IA)=MCHAML
*
         DO 75 ICOMP=1,IELVAL(/1)
*
            MELVA1 = IELVAL(ICOMP)
            SEGINI,MELVAL=MELVA1
            IELVAL(ICOMP) = MELVAL
            SEGACT MELVA1
*
            IF (TYPCHE(ICOMP).EQ.'REAL*8') GOTO 1666
C
            GOTO 166
C
 1666       N1PTEL=VELCHE(/1)
            N1EL  =VELCHE(/2)
            GOTO( 1, 2, 3, 4, 5, 6),IEPS
 66         IRET=0
            GOTO 666
 1          CONTINUE
C
C         CONDUCTIVITE
C
            DO 1000 IB=1,N1PTEL
               DO 1001 ID=1,N1EL
                  XX=MELVA1.VELCHE(IB,ID)
                  XX=XX*T0
                  VELCHE(IB,ID)=(FBG1(XX))/X0
 1001          CONTINUE
 1000       CONTINUE
            GOTO 166
C
C         DERIVEE CONDUCTIVITE
C
 2          CONTINUE
            DO 20 IB=1,N1PTEL
               DO 21 ID=1,N1EL
                  XX =MELVA1.VELCHE(IB,ID)
                  XX=XX*T0
                  VELCHE(IB,ID)=(FBG2(XX))*T0/X0
 21            CONTINUE
 20         CONTINUE
            GOTO 166
C
C         CAPACITE
C
 3          CONTINUE
            DO 60 IB=1,N1PTEL
               DO 61 ID=1,N1EL
                  XX=MELVA1.VELCHE(IB,ID)
                  XX=XX*T0
                  VELCHE(IB,ID)=(FBG3(XX))/X0
 61            CONTINUE
 60         CONTINUE
            GOTO 166
C
C         DERIVEE CAPACITE
C
 4          CONTINUE
            DO 70 IB=1,N1PTEL
               DO 71 ID=1,N1EL
                  XX=MELVA1.VELCHE(IB,ID)
                  XX=XX*T0
                  VELCHE(IB,ID)=(FBG4(XX))*T0/X0
 71            CONTINUE
 70         CONTINUE
            GOTO 166
C
C         ENDOMMAGEMENT CHIMIQUE
C
 5          CONTINUE
            DO 80 IB=1,N1PTEL
               DO 81 ID=1,N1EL
                  XX=MELVA1.VELCHE(IB,ID)
                  XX=XX*T0
                  VELCHE(IB,ID)=FBG5(XX)
 81            CONTINUE
 80         CONTINUE
            GOTO 166
C
C         DIFFUSIVITE MECANIQUE
C
 6          CONTINUE
            DO 90 IB=1,N1PTEL
               DO 91 ID=1,N1EL
                  XX=MELVA1.VELCHE(IB,ID)
                  XX=XX
                  VELCHE(IB,ID)=(FBG6(XX))/X0
 91            CONTINUE
 90         CONTINUE
            GOTO 166

 166        CONTINUE
            SEGDES MELVAL
            SEGDES MELVA1
*
 75      CONTINUE
         SEGDES MCHAML
*
 72   CONTINUE
      SEGDES MCHELM
 666  CONTINUE
      RETURN
      END





 
