Télécharger chitps.eso

Retour à la liste

Numérotation des lignes :

chitps
  1. C CHITPS SOURCE CHAT 05/01/12 21:58:27 5004
  2. SUBROUTINE CHITPS(IDSCHI,LGKTMP,IOCHI3)
  3. *************************************************************
  4. * SP APPELE PAR CHIMI1 SI LE CALCUL N'EST PAS EFFECTUE A
  5. * TEMPERATURE CONSTANTE DE 25 øC, DANS LA CAS DE L'UTILISATION
  6. * DE LA BDD DE STRASBOURG
  7. *-------------------------------------------------------------------
  8. * SP ISSU DE TRIOEF
  9. *
  10. * CE SP SERT A LIRE LES DONNEES NECESSAIRES POUR CALCULER
  11. * ULTERIEUREMENT LES LOGK A LA TEMPERATURE TMPNEW
  12. *
  13. * LES DONNEES LUES PROVIENNENT DU FICHIER TLOGKS DATA (COMPULSION
  14. * DES FICHIERS AQUSPL DATA (ESP. AQ.) ET DU FICHIER CONTENU DANS
  15. * MON1904 MESSAGE (ESP. MIN.) ---> DU CENTRE DE GEOCHIMIE DE
  16. * STRASBOURG).
  17. * NOM = NOM DE L'ESPECE;
  18. * NUM = SON NUMERO DANS LE FICHIER DATA
  19. * NTV = LE NOMBRE DE TEMPERATURES STANDARD (0 25 60 100 150 200
  20. * 250 300) POUR LESQUELLES LE LOGK EST SENSE ET CONNU
  21. * TMIN = TEMP. STAND. MIN POUR LAQUELLE LE LOGK EST CONNU
  22. * TMAX = TEMP. STAND. MAX POUR LAQUELLE LE LOGK EST CONNU
  23. * XLGKLU(I),I=1,NT : VALEURS DU LOGK POUR CHACUNE DES TEMP.STAND.
  24. * VSPL(I),I=1,NT : VALEURS DES COEFF. DU POLYNOME NECESSAIRE
  25. * POUR LE CALCUL DU LOGK A LA TEMPNEW SOUHAITEE
  26. *
  27. * CE SP REMPLACE LE SP INPUTB DE MINEQL STANDARD
  28. *
  29. * CE TRAVAIL A ETE REALISE A PARTIR DES SP PROVENANT DU CENTRE
  30. * DE GEOCHIMIE DE LA SURFACE DE STRASBOURG
  31. * ---> CF MON1504 MESSAGE
  32. *
  33. *************************************************************
  34. IMPLICIT INTEGER(I-N)
  35. IMPLICIT REAL*8 (A-H,O-Z)
  36.  
  37. -INC PPARAM
  38. -INC CCOPTIO
  39. CHARACTER NOM*16
  40. CHARACTER NOMC*32
  41. LOGICAL LIBRE
  42. DIMENSION TEMPE0(8)
  43. SEGMENT ITRAV
  44. REAL*8 TEMPE(NT)
  45. ENDSEGMENT
  46. SEGMENT IDSCHI
  47. REAL*8 GK(NYDIM),AA(NYDIM,NXDIM),FF(NZDIM,NPDIM)
  48. INTEGER IDX(NXDIM),IDY(NYDIM),IDZ(NZDIM),IDP(NPDIM),NN(6)
  49. INTEGER IDECY(NYDIM),IONZ(NXDIM)
  50. CHARACTER*32 NAME(NXDIM),NAMESP(NYDIM)
  51. ENDSEGMENT
  52. SEGMENT LGKTMP
  53. INTEGER NUMT(NYDIM),NTVT(NYDIM)
  54. REAL*8 TMIMA(NYDIM,NT)
  55. REAL*8 POLYT(NYDIM,NT4),TGKLU(NYDIM,NT)
  56. ENDSEGMENT
  57. C 32=4*NT NT=8
  58. DIMENSION VSPL(32),XLGKLU(8)
  59. DATA TEMPE0/0.,25.,60.,100.,150.,200.,250.,300./
  60. C
  61. NYDIM=IDY(/1)
  62. NT=8
  63. NT4=32
  64. N0=NN(1)
  65. N1A1=NN(1)+1
  66. N1A6=NN(1)+NN(2)+NN(3)+NN(4)+NN(5)+NN(6)
  67.  
  68. READ(IOCHI3,500) NOM,II
  69. IF(NOM(1:5).EQ.'LIBRE')THEN
  70. LIBRE=.TRUE.
  71. NT=II
  72. NT4=II*4
  73. ELSE
  74. LIBRE=.FALSE.
  75. BACKSPACE IOCHI3
  76. ENDIF
  77. SEGINI ITRAV
  78. SEGINI LGKTMP
  79. CALL INITI(NTVT,NYDIM,0)
  80. CALL INITI(NUMT,NYDIM,0)
  81. CALL INITD(TMIMA,NYDIM*NT,0.D0)
  82. CALL INITD(POLYT,NYDIM*NT4,0.D0)
  83. CALL INITD(TGKLU,NYDIM*NT,0.D0)
  84. 30 CONTINUE
  85. IF(LIBRE)THEN
  86. READ(IOCHI3,502,END=80) NUM,NTV
  87. BACKSPACE IOCHI3
  88. NTV4=NTV
  89. JJ1=0
  90. NCC=0
  91. IF(NTV.GT.4)THEN
  92. NCC=(NTV-1)/4
  93. DO 15 JJ=1,NCC
  94. JJ1=4*(JJ-1)
  95. READ(IOCHI3,524)(TEMPE(II+JJ1),II=1,4)
  96. 15 CONTINUE
  97. NTV4= NTV-NCC*4
  98. JJ1=NCC*4
  99. ENDIF
  100. IF(NTV4.EQ.1)THEN
  101. READ(IOCHI3,521)(TEMPE(II+JJ1),II=1,NTV4),NOMC
  102. ELSEIF(NTV4.EQ.2)THEN
  103. READ(IOCHI3,522)(TEMPE(II+JJ1),II=1,NTV4),NOMC
  104. ELSEIF(NTV4.EQ.3)THEN
  105. READ(IOCHI3,523)(TEMPE(II+JJ1),II=1,NTV4),NOMC
  106. ELSEIF(NTV4.EQ.4)THEN
  107. READ(IOCHI3,524)(TEMPE(II+JJ1),II=1,NTV4),NOMC
  108. ENDIF
  109. READ(IOCHI3,525) (XLGKLU(II),II=1,NTV)
  110. ELSE
  111. READ(IOCHI3,500,END=80) NOM,NUM,NTV,TMIN,TMAX
  112. READ(IOCHI3,400) (XLGKLU(II),II=1,NT)
  113. DO 35 I=1,8
  114. IF(ABS(TEMPE0(I)-TMIN).LT.1.D-3)THEN
  115. II=I
  116. GO TO 40
  117. ENDIF
  118. 35 CONTINUE
  119. 40 CONTINUE
  120. DO 50 I=1,NTV
  121. TEMPE(I)=TEMPE0(II+I-1)
  122. 50 CONTINUE
  123. ENDIF
  124. IF (NTV.GT.2) THEN
  125. READ(IOCHI3,*) (VSPL(II),II=1,NT*4)
  126. ENDIF
  127. C
  128. DO 130 I=N1A1,N1A6
  129. IF(NUM.EQ.IDY(I)) THEN
  130. NTVT(I)=NTV
  131. NUMT(I)=NUM
  132. DO 140 J=1,NTV
  133. TGKLU(I,J)=XLGKLU(J)
  134. TMIMA(I,J)=TEMPE(J)
  135. 140 CONTINUE
  136. C
  137. C
  138. IF (NTV.GT.2) THEN
  139. DO 45 JJ=1,NT*4
  140. POLYT(I,JJ)=VSPL(JJ)
  141. 45 CONTINUE
  142. ENDIF
  143. GO TO 30
  144. ENDIF
  145. 130 CONTINUE
  146. GOTO 30
  147. 80 CONTINUE
  148. SEGSUP ITRAV
  149. C REWIND(UNIT=IOCHI3)
  150. C CLOSE(UNIT=IOCHI3)
  151. 400 FORMAT(10F8.3)
  152. 500 FORMAT(A16,I4,I5,2F10.3)
  153. 501 FORMAT(15X,I5,I5,2F10.3,1X,A32)
  154. 502 FORMAT(I5,I2)
  155. 521 FORMAT(7X,F10.3,31X,A32)
  156. 522 FORMAT(7X,2F10.3,21X,A32)
  157. 523 FORMAT(7X,3F10.3,11X,A32)
  158. 524 FORMAT(7X,4F10.3,1X,A32)
  159. 525 FORMAT(8F10.3)
  160. 526 FORMAT(4E16.6)
  161. RETURN
  162. END
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales