Download calmod.eso

Back to the list

   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