C EPTHUN    SOURCE    CB215821  26/08/24    21:16:30     12622          
      SUBROUTINE EPTHUN(MFR,MELE,VALMAT,NSTRS,TEMP,THIF,THM,
     1            THSU,EPAIST,TXR,XLOC,XGLOB,ROTS,RES,KERRE)
*******************************************************************
*  APPELE PAR EPTHP :DEFORMATIONS THERMIQUES POUR LES MATERIAUX
*  UNIDIRECTIONNELS
*
*   ENTREES :
*    MFR    = NUMERO DE LA FORMULATION
*    MELE   = NUMERO DE L'ELEMENT FINI
*    VALMAT = TABLEAU DE MATERIAU
*    NSTRS  = NOMBRE DE COMPOSANTES DES DEFORMATIONS
*    TEMP,THIF,THM,THSU   = TEMPERATURES
*    EPAIST =  EPAISSEUR
*    TXR,XLOC,XGLOB,ROTS =  TABLEAUX DE TRAVAIL
*   SORTIES :
*    RES =  TABLEAU DE DEFORMATIONS
*    KERRE  = INDICATEUR D'ERREUR
*
*   AM1 JANV 95
***********************************************************************
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
*

-INC PPARAM
-INC CCOPTIO
-INC CCHAMP
*
      DIMENSION XLOC(3,3),XGLOB(3,3)
      DIMENSION ROTS(NSTRS,*)
      DIMENSION TXR(IDIM,*),RES(NSTRS)
      DIMENSION VALMAT(*)
*
      DIMENSION EPS1(6),EPS2(6)
*
      KERRE=0
*
*     TEST SUR LA FORMULATION
*
*--------------------------------------------------------------
*                      CAS MASSIF ET POREUX
*--------------------------------------------------------------
      IF(MFR.EQ.1.OR.MFR.EQ.33) THEN
*
           CALL ZERO (XGLOB,IDIM,IDIM)

*
*     CONTRAINTES PLANES
*            OU
*     DEFORMATIONS PLANES OU AXI OU FOURIER
*
             IF(IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.0
     1        .OR.IFOUR.EQ.1)THEN
*
              ALPH= VALMAT(1)
              XLOC(1,1)=VALMAT(2)
              XLOC(2,1)=VALMAT(3)
              XLOC(1,2)=-XLOC(2,1)
              XLOC(2,2)=XLOC(1,1)
C    DEFINITION DES AXES ORTHO./AXES GLOBAUX
             DO 4312  K=1,IDIM
               DO 4311 J=1,IDIM
                 DO 4310 I=1,IDIM
                   XGLOB(J,K)=TXR(J,I)*XLOC(I,K)+XGLOB(J,K)
 4310       CONTINUE
 4311          CONTINUE
 4312        CONTINUE
              CC=XGLOB(1,1)*XGLOB(1,1)
              SS=XGLOB(2,1)*XGLOB(2,1)
              CS=XGLOB(1,1)*XGLOB(2,1)
*
*  EN AXES D'ORTHOTROPIE
*
               EPS1(1)=ALPH
*
*  CHGT D'AXES
*
               EPS2(1)=CC*EPS1(1)
               EPS2(2)=SS*EPS1(1)
               EPS2(3)=0.D0
               EPS2(4)=(CS*EPS1(1))*2.D0
*
               RES(1)=EPS2(1)*TEMP
               RES(2)=EPS2(2)*TEMP
               RES(3)=0.D0
               RES(4)=EPS2(4)*TEMP
               IF(IFOUR.EQ.1) THEN
                 RES(5)=0.D0
                 RES(6)=0.D0
               ENDIF
*
*  TRIDIMENSIONNEL
*
        ELSE
              ALPH= VALMAT(1)
              XLOC(1,1)=VALMAT(2)
              XLOC(2,1)=VALMAT(3)
              XLOC(3,1)=VALMAT(4)
              XLOC(1,2)=VALMAT(5)
              XLOC(2,2)=VALMAT(6)
              XLOC(3,2)=VALMAT(7)
              CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR)
C    DEFINITION DES AXES ORTHO./AXES GLOBAUX
             DO 4314  K=1,IDIM
               DO 4313 J=1,IDIM
                 DO 2330 I=1,IDIM
                   XGLOB(J,K)=TXR(J,I)*XLOC(I,K)+XGLOB(J,K)
 2330       CONTINUE
 4313          CONTINUE
 4314        CONTINUE
*
*         MATRICE DE TRANSFORMATION
*
           DO 4315 IC=1,3
           DO 2331 IL=1,3
           ROTS(IL,IC)=XGLOB(IL,IC)*XGLOB(IL,IC)
 2331       CONTINUE
 4315      CONTINUE
C
          DO 2332 IL=1,3
           ROTS(IL,4)=XGLOB(IL,1)*XGLOB(IL,2)
           ROTS(IL,5)=XGLOB(IL,2)*XGLOB(IL,3)
           ROTS(IL,6)=XGLOB(IL,1)*XGLOB(IL,3)
 2332       CONTINUE
C
           DO 2333 IC=1,3
           ROTS(4,IC)=2.D0*XGLOB(1,IC)*XGLOB(2,IC)
           ROTS(5,IC)=2.D0*XGLOB(2,IC)*XGLOB(3,IC)
           ROTS(6,IC)=2.D0*XGLOB(1,IC)*XGLOB(3,IC)
 2333       CONTINUE
C
          DO 4316 IL=4,6
          IL1=IL-3
          IL2=IL1+1
          IF(IL2.GT.3)IL2=IL2-3
           DO 2334 IC=4,6
            IC1=IC-3
            IC2=IC1+1
            IF(IC2.GT.3)IC2=IC2-3
            ROTS(IL,IC)=XGLOB(IL1,IC1)*XGLOB(IL2,IC2)+
     .                       XGLOB(IL1,IC2)*XGLOB(IL2,IC1)
 2334        CONTINUE
 4316     CONTINUE
            DO 2335 IC=1,6
            AA=ROTS(6,IC)
            ROTS(6,IC)=ROTS(5,IC)
            ROTS(5,IC)=AA
 2335        CONTINUE
            DO 2336 IL=1,6
            AA=ROTS(IL,6)
            ROTS(IL,6)=ROTS(IL,5)
            ROTS(IL,5)=AA
 2336        CONTINUE
*
*       EN AXES D'ORTHOTROPIE
*
               EPS1(1)=ALPH
              DO 2340 I=2,6
              EPS1(I)=0.D0
 2340         CONTINUE
*
*  CHGT D'AXES
*
             DO 4317 I=1,6
                 EPS2(I)=0.D0
                DO 2350 J=1,6
                  EPS2(I)= EPS2(I) +ROTS(I,J)*EPS1(J)
 2350         CONTINUE
 4317        CONTINUE
*
            RES(1)=EPS2(1)*TEMP
            RES(2)=EPS2(2)*TEMP
            RES(3)=EPS2(3)*TEMP
            RES(4)=EPS2(4)*TEMP
            RES(5)=EPS2(5)*TEMP
            RES(6)=EPS2(6)*TEMP
        ENDIF
*____________________________________________________________________
*
*     SECTEUR DE CALCUL POUR LES ELEMENTS COQUES MINCES SAUF COQ2
*____________________________________________________________________
*
       ELSE IF(MELE.EQ.27.OR.MELE.EQ.28.OR.
     1                 MELE.EQ.49)THEN
               ALPH=VALMAT(1)
               V1X= VALMAT(2)
               V1Y= VALMAT(3)
               CC=V1X*V1X
               SS=V1Y*V1Y
               CS=V1X*V1Y
               THMO=(THSU+THIF+4.D0*THM)/6.D0
               THDI=THSU-THIF
               FACM=THMO
               FACF=THDI/EPAIST
*
*  EN AXES D'ORTHOTROPIE
*
               EPS1(1)=ALPH
               EPS1(2)=0.D0
               EPS1(3)=0.D0
*
*  CHGT D'AXES
*
                EPS2(1)=CC*EPS1(1)
                EPS2(2)=SS*EPS1(1)
                EPS2(3)=CS*EPS1(1)*2.D0
*
               IF(IFOUR.GT.0) THEN
                RES(1)=EPS2(1)*FACM
                RES(2)=EPS2(2)*FACM
                RES(3)=EPS2(3)*FACM
                RES(4)=(EPS2(1)*FACF)
*2.D0
                RES(5)=(EPS2(2)*FACF)
*2.D0
                RES(6)=(EPS2(3)*FACF)
*2.D0
               ELSE IF(IFOUR.LE.0) THEN
*
*                 PAS GRAND SENS DANS CE CAS
*
                 KERRE=19
                 GO TO 99
               ENDIF
C____________________________________________________________________
C
C              SECTEUR DE CALCUL POUR LES ELEMENTS COQ2
C____________________________________________________________________
C
      ELSEIF(MELE.EQ.44)THEN
               ALPH=VALMAT(1)
               V1X =VALMAT(2)
               V1Y =VALMAT(3)
               CC=V1X*V1X
               SS=V1Y*V1Y
               CS=V1X*V1Y
               THMO=(THSU+THIF+4.D0*THM)/6.D0
               THDI=THSU-THIF
               FACM=THMO
               FACF=THDI/EPAIST
*
*  EN AXES D'ORTHOTROPIE
*
               EPS1(1)=ALPH
               EPS1(2)=0.D0
               EPS1(3)=0.D0
*
*  CHGT D'AXES
*
               EPS2(1)=CC*EPS1(1)
               EPS2(2)=SS*EPS1(1)
               EPS2(3)=CS*EPS1(1)*2.D0
*
               IF(IFOUR.GT.0) THEN
                RES(1)=EPS2(1)*FACM
                RES(2)=EPS2(2)*FACM
                RES(3)=EPS2(3)*FACM
                RES(4)=EPS2(1)*FACF
*2.D0
                RES(5)=EPS2(2)*FACF
*2.D0
                RES(6)=EPS2(3)*FACF
*2.D0
               ELSE IF(IFOUR.LE.0) THEN
                RES(1)=EPS2(1)*FACM
                RES(2)=EPS2(2)*FACM
                RES(3)=EPS2(1)*FACF
                RES(4)=EPS2(2)*FACF
*2.D0
               ELSE
                 KERRE=19
                 GO TO 99
               ENDIF
      ELSE
        KERRE=19
      ENDIF
*
 99   CONTINUE
      RETURN
      END






 
 
