1 : C CALMOD SOURCE CHAT 05/01/12 21:47:12 5004 2 : SUBROUTINE CALMOD(TEMPS,JDIM,REL,MAILLE,MODULE,TR) 3 : * 4 : * identification d'une fonction de relaxation avec une serie de Dirichlet 5 : * 6 : * entree 7 : * JDIM : dimension utlisees des tableaux TEMPS et REL 8 : * TEMPS : table des temps de la fonction de relaxation 9 : * REL : table contenant les valeurs de la fonction de relaxation 10 : * MAILLE : nombre de termes de la serie de Dirichlet 11 : * 12 : * sortie 13 : * MODULE : table contenant les modules de la serie 14 : * TR : temps de relaxation de la serie 15 : * 16 : * 17 : IMPLICIT INTEGER(I-N) 18 : IMPLICIT REAL*8(A-H,O-Z) 19 : -INC CCOPTIO 20 : * 21 : REAL*8 TEMPS(0:1000),REL(0:1000) 22 : REAL*8 MODULE(0:8),POND(0:10000) 23 : REAL*8 A(0:9,0:9),B(0:9) 24 : REAL*8 TR(0:8) 25 : 26 : * 27 : * calcul des coefficients de ponderation 28 : * 29 : NDIM=10 30 : TMP=2.*(TEMPS(JDIM)-TEMPS(0))/FLOAT(JDIM) 31 : DO 10 I=1,JDIM-1 32 : POND(I)=(TEMPS(I+1)-TEMPS(I-1))/TMP 33 : 10 CONTINUE 34 : POND(0)=2.*(TEMPS(1)-TEMPS(0))/TMP 35 : POND(JDIM)=2.*(TEMPS(JDIM)-TEMPS(JDIM-1))/TMP 36 : * 37 : * calcul des temps de relaxation 38 : * 39 : TR(0)=0. 40 : DO 20 I=1,MAILLE 41 : TR(I)=1./(10**(FLOAT(I)-1.)) 42 : 20 CONTINUE 43 : * 44 : * initialisation a zero de A et de B 45 : * 46 : DO 30 I=0,9 47 : DO 31 J=0,9 48 : A(I,J)=.0 49 : 31 CONTINUE 50 : B(I)=.0 51 : 30 CONTINUE 52 : * 53 : * calcul des modules de Maxwell 54 : * 55 : DO 40 I=0,MAILLE 56 : DO 41 J=0,MAILLE 57 : DO 42 K=0,JDIM 58 : A(I,J)=A(I,J)+POND(K)*(DEXP((TEMPS(0)-TEMPS(K))*TR(I))) 59 : 1 *(DEXP((TEMPS(0)-TEMPS(K))*TR(J))) 60 : 42 CONTINUE 61 : 41 CONTINUE 62 : DO 43 K=0,JDIM 63 : B(I)=B(I)+POND(K)*(DEXP((TEMPS(0)-TEMPS(K))*TR(I))) 64 : 2 *REL(K) 65 : 43 CONTINUE 66 : 40 CONTINUE 67 : * 67 : CALL SODIRI(A,MODULE,B,MAILLE+1,NDIM,KERRE) 67 : IF(KERRE.EQ.49) CALL ERREUR(49) 68 : * 69 : END 70 : 71 : 72 :
© Cast3M 2003 - All rights reserved.
Disclaimer