C EURODI    SOURCE    CB215821  16/04/21    21:16:42     8920
       SUBROUTINE EURODI(HO,ROH,FCM,S,TMAX,MAILLE,TEMPS
     1     ,TREL,EVO,YOUNG,JDIM)

*
      IMPLICIT INTEGER(I-N)
       IMPLICIT REAL*8(A-H,O-Z)

-INC PPARAM
-INC CCOPTIO
*
       REAL*8 TEMPS(0:1000),REL(0:1000),YOUNG(0:1000)
       REAL*8 TEMP0(0:100),TR1(0:4),GAMMA(0:4),TR(0:8)
       REAL*8 MODULE(0:10),TABMOD(0:100,0:10)
       REAL*8 TABGAM(0:10,0:4),TREL(0:10)
       REAL*8 EVO(0:1000,0:10)
*
       TINI=1.
       TFIN=TMAX
       DO 10 I=0,100
         DO 11 J=0,10
            TABMOD(I,J)=0.
11       CONTINUE
10     CONTINUE
       DO 12 I=0,10
         DO 13 J=0,4
            TABGAM(I,J)=0.
13       CONTINUE
12     CONTINUE
*
*     liste des t0 a calculer
*
      TEMP0(0)=TINI
      TMP=LOG((TFIN-TINI)/.25)/.5
      NMAX=INT(TMP)
      IF (NMAX.GT.100) THEN
         NMAX=100
      ENDIF
      DO 20 I=1,NMAX
        TEMP0(I)=.25*EXP(.5*FLOAT(I))+TINI
20    CONTINUE
*
*     boucle sur les t0
*
      DO 30 L=0,NMAX
        T0=TEMP0(L)
        TINI=TEMP0(L)
        CALL TABTMP(HO,ROH,FCM,S,T0,TINI,TFIN,TEMPS,JDIM)
        CALL FLUREL(HO,ROH,FCM,S,T0,TEMPS,JDIM,REL)
*
        CALL CALMOD(TEMPS,JDIM,REL,MAILLE,MODULE,TR)
        IF(IERR.NE.0) RETURN
*
        DO 31 I=0,MAILLE
          TABMOD(L,I)=MODULE(I)
          TREL(I)=TR(I)
31        CONTINUE
30      CONTINUE
*
      DO 40 INDICE=0,MAILLE
        CALL CALEVO(TEMP0,NMAX,TABMOD,INDICE,GAMMA,TR1)
        IF(IERR.NE.0) RETURN
        DO 41 J=0,4
          TABGAM(INDICE,J)=GAMMA(J)
41      CONTINUE
40    CONTINUE
*
*     on recupere la liste des temps dans TEMPS
*
      T0=TEMP0(0)
      TINI=TEMP0(0)
      CALL TABTMP(HO,ROH,FCM,S,T0,TINI,TFIN,TEMPS,JDIM)
*
*     on recupere la  liste des gamma(t)
*
      DO 50 I=0,MAILLE
        EVO(0,I)=0.
        DO 51 J=0,JDIM
          EVO(J,I)=TABGAM(I,0)
     1           +TABGAM(I,1)*EXP(-TR1(1)*TEMPS(J))
     2           +TABGAM(I,2)*EXP(-TR1(2)*TEMPS(J))
     3           +TABGAM(I,3)*EXP(-TR1(3)*TEMPS(J))
     4           +TABGAM(I,4)*EXP(-TR1(4)*TEMPS(J))

51      CONTINUE
50    CONTINUE
*
*     on recupere le module d'young
*
      YOUNG(0)=0.
      DO 60 J=0,JDIM
        YOUNG(J)=0.
        DO 61 I=0,MAILLE
          YOUNG(J)=YOUNG(J)+EVO(J,I)
61      CONTINUE
60    CONTINUE


      END






