C EURODI SOURCE CHAT 05/01/12 23:46:38 5004 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 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)*DEXP(-TR1(1)*TEMPS(J)) 2 +TABGAM(I,2)*DEXP(-TR1(2)*TEMPS(J)) 3 +TABGAM(I,3)*DEXP(-TR1(3)*TEMPS(J)) 4 +TABGAM(I,4)*DEXP(-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