Download chmtms.eso

Back to the list

   1 : C CHMTMS    SOURCE    CHAT      05/01/12    22:00:34     5004           
   2 :       SUBROUTINE CHMTMS(IDSCHI,LGKTMP,ICOTY3,TMP,TMPNEW)
   3 : ******************************************************************
   4 : C              ISSU DE TRIOEF (TMPMOK)
   5 : *     CF. TMPMOK SUR MACHINE MONI
   6 : *****************************************************************
   7 : *     CE SP SERT A CALCULER LA VALEUR DU LOGK A LA TEMP. TMPNEW
   8 : *     DANS LE CAS OU LA BDD EST CELLE DE STRASBOURG
   9 : *     IL EST APPELE PAR CHMKMD
  10 : *
  11 : *     CE TRAVAIL A ETE REALISE A PARTIR DES SP PROVENANT DU CENTRE
  12 : *     DE GEOCHIMIE DE LA SURFACE DE STRASBOURG
  13 : *     ---> CF MON1504 MESSAGE
  14 : *     POUR PLUS D'INFOS VOIR LES COMMENTAIRES EN TETE DU SP CHITPS
  15 : *
  16 : *     LE 23 OCTOBRE 1991
  17 : *     LE 16 DECEMBRE 1991
  18 : *******************************************************************
  19 :       IMPLICIT INTEGER(I-N)
  20 :       IMPLICIT REAL*8 (A-H,O-Z)
  21 : -INC SMLENTI
  22 :       POINTEUR ICOTY3.MLENTI
  23 :       SEGMENT IDSCHI
  24 :            REAL*8 GK(NYDIM),AA(NYDIM,NXDIM),FF(NZDIM,NPDIM)
  25 :            INTEGER IDX(NXDIM),IDY(NYDIM),IDZ(NZDIM),IDP(NPDIM),NN(6)
  26 :            INTEGER IDECY(NYDIM),IONZ(NXDIM)
  27 :            CHARACTER*32 NAME(NXDIM),NAMESP(NYDIM)
  28 :       ENDSEGMENT
  29 :       SEGMENT LGKTMP
  30 :            INTEGER NUMT(NYDIM),NTVT(NYDIM)
  31 :            REAL*8 TMIMA(NYDIM,NT)
  32 :            REAL*8 POLYT(NYDIM,NT4),TGKLU(NYDIM,NT)
  33 :       ENDSEGMENT
  34 : *
  35 :       DIMENSION ID6(100),IDIL(100)
  36 : 
  37 :       DIMENSION ICOEF(4)
  38 :       IF (ICOTY3.NE.0) NO3=ICOTY3.LECT(/1)
  39 :       IF (TMPNEW.EQ.TMP) RETURN
  40 : 
  41 :       NT=TGKLU(/2)
  42 : 
  43 :       NB6 = 0
  44 :       NX=NN(1)+1
  45 :       N1A2=NN(1)+NN(2)
  46 :       N1A3=NN(1)+NN(2)+NN(3)
  47 :       N1B5=NN(1)+NN(2)+NN(3)+NN(4)+NN(5)
  48 :       NC=NN(1)+NN(2)+NN(3)+NN(4)+NN(5)+NN(6)
  49 : 
  50 :       LBDD=1
  51 : 
  52 : 
  53 : 
  54 :       DO 90 IDXY=NX,NC
  55 : 
  56 :       IF (ICOTY3.NE.0) THEN
  57 :         DO J=1,NO3
  58 :         IF (IDY(IDXY).EQ.ICOTY3.LECT(J)) GOTO 10
  59 :         ENDDO
  60 :       ENDIF
  61 : 
  62 :        IF(NUMT(IDXY).EQ.IDY(IDXY))THEN
  63 :         GK(IDXY)=1000.D0
  64 :         N1A1=NN(1)
  65 :         N1A2=NN(1)+NN(2)
  66 :         N1A3=NN(1)+NN(2)+NN(3)
  67 :         N1A4=NN(1)+NN(2)+NN(3)+NN(4)
  68 :         N1A5=NN(1)+NN(2)+NN(3)+NN(4)+NN(5)
  69 : 
  70 :         NTV=NTVT(IDXY)
  71 :        IF (NTV.GE.3.AND.TMPNEW.GE.TMIMA(IDXY,1).AND.TMPNEW.LE.
  72 :      *  TMIMA(IDXY,NTV)) THEN
  73 :           DO 40 IJ=2,NTVT(IDXY)
  74 :            IF (TMPNEW.LE.TMIMA(IDXY,IJ)) THEN
  75 :             IJM1=IJ-1
  76 :             DT=TMPNEW-TMIMA(IDXY,IJM1)
  77 :             NTMIJ=NT-IJM1
  78 :             DO 50 ICO=1,4
  79 :              ICOEF(ICO)=ICO*NT-NTMIJ
  80 :  50         CONTINUE
  81 :             GK(IDXY)=((POLYT(IDXY,ICOEF(4))*DT+POLYT(IDXY,ICOEF(3)))*
  82 :      *      DT+POLYT(IDXY,ICOEF(2)))*DT+POLYT(IDXY,ICOEF(1))
  83 :             GK(IDXY)=-GK(IDXY)
  84 : 
  85 : 
  86 :             GOTO 10
  87 :            ENDIF
  88 :  40       CONTINUE
  89 :        ELSE
  90 :         DO 100 I=1,NTV
  91 :          TSTA=ABS(TMIMA(IDXY,I)-TMPNEW)
  92 :          IF (TMPNEW.EQ.TMIMA(IDXY,I).OR.TSTA.LE.15.) THEN
  93 :           IF (TGKLU(IDXY,I).LT.990.) THEN
  94 :            GK(IDXY)=-TGKLU(IDXY,I)
  95 :            GOTO 10
  96 :           ELSE IF (I.EQ.1) THEN
  97 :            GOTO 100
  98 :           ELSE
  99 :            IF (IDXY.GE.NX.AND.IDXY.LE.N1A2) THEN
 100 :             NB6 = NB6 +1
 101 :             ID6(NB6) = IDY(IDXY)
 102 :             IL=2
 103 :            ELSE IF (IDXY.GT.N1A2.AND.IDXY.LE.N1A3) THEN
 104 :             NB6 = NB6 +1
 105 :             ID6(NB6) = IDY(IDXY)
 106 :             IL=3
 107 :            ELSE IF (IDXY.GT.N1A3.AND.IDXY.LE.N1A4) THEN
 108 :             NB6 = NB6 +1
 109 :             ID6(NB6) = IDY(IDXY)
 110 :             IL=4
 111 :            ELSE IF (IDXY.GT.N1A4.AND.IDXY.LE.N1A5) THEN
 112 :             NB6 = NB6 +1
 113 :             ID6(NB6) = IDY(IDXY)
 114 :             IL=5
 115 :            ELSE IF (IDXY.GT.N1A5.AND.IDXY.LE.NC) THEN
 116 :            ENDIF
 117 :            IDIL(NB6) = IL
 118 :            GOTO 10
 119 :           ENDIF
 120 :          ELSE IF (I.EQ.NTV) THEN
 121 :            IF (IDXY.GE.NX.AND.IDXY.LE.N1A2) THEN
 122 :             NB6 = NB6 +1
 123 :             ID6(NB6) = IDY(IDXY)
 124 :             IL=2
 125 :            ELSE IF (IDXY.GT.N1A2.AND.IDXY.LE.N1A3) THEN
 126 :             NB6 = NB6 +1
 127 :             ID6(NB6) = IDY(IDXY)
 128 :             IL=3
 129 :            ELSE IF (IDXY.GT.N1A3.AND.IDXY.LE.N1A4) THEN
 130 :             NB6 = NB6 +1
 131 :             ID6(NB6) = IDY(IDXY)
 132 :             IL=4
 133 :            ELSE IF (IDXY.GT.N1A4.AND.IDXY.LE.N1A5) THEN
 134 :             NB6 = NB6 +1
 135 :             ID6(NB6) = IDY(IDXY)
 136 :             IL=5
 137 :            ELSE IF (IDXY.GT.N1A5.AND.IDXY.LE.NC) THEN
 138 :            ENDIF
 139 :            IDIL(NB6) = IL
 140 :            GOTO 10
 141 :          ENDIF
 142 :  100    CONTINUE
 143 : 
 144 :        ENDIF
 145 :        ENDIF
 146 : 
 147 :  10   CONTINUE
 148 :  90   CONTINUE
 149 : 
 150 :       I6=6
 151 :       DO 44 JB6=1,NB6
 152 :         IDYT=0
 153 :         IDYT=ID6(JB6)
 154 :         JDIL=IDIL(JB6)
 154 :             CALL CHMREX(IDSCHI,0,LGKTMP,IDYT,JDIL,I6)
 155 :  44   CONTINUE
 156 : C      ENDIF
 157 : 
 158 : 
 159 :       TMP =TMPNEW
 160 :       RETURN
 161 :       END
 162 : 
 163 :  
 164 :  
 165 :  
 166 :  

© Cast3M 2003 - All rights reserved.
Disclaimer