chitps
C CHITPS SOURCE CHAT 05/01/12 21:58:27 5004
*************************************************************
* SP APPELE PAR CHIMI1 SI LE CALCUL N'EST PAS EFFECTUE A
* TEMPERATURE CONSTANTE DE 25 øC, DANS LA CAS DE L'UTILISATION
* DE LA BDD DE STRASBOURG
*-------------------------------------------------------------------
* SP ISSU DE TRIOEF
*
* CE SP SERT A LIRE LES DONNEES NECESSAIRES POUR CALCULER
* ULTERIEUREMENT LES LOGK A LA TEMPERATURE TMPNEW
*
* LES DONNEES LUES PROVIENNENT DU FICHIER TLOGKS DATA (COMPULSION
* DES FICHIERS AQUSPL DATA (ESP. AQ.) ET DU FICHIER CONTENU DANS
* MON1904 MESSAGE (ESP. MIN.) ---> DU CENTRE DE GEOCHIMIE DE
* STRASBOURG).
* NOM = NOM DE L'ESPECE;
* NUM = SON NUMERO DANS LE FICHIER DATA
* NTV = LE NOMBRE DE TEMPERATURES STANDARD (0 25 60 100 150 200
* 250 300) POUR LESQUELLES LE LOGK EST SENSE ET CONNU
* TMIN = TEMP. STAND. MIN POUR LAQUELLE LE LOGK EST CONNU
* TMAX = TEMP. STAND. MAX POUR LAQUELLE LE LOGK EST CONNU
* XLGKLU(I),I=1,NT : VALEURS DU LOGK POUR CHACUNE DES TEMP.STAND.
* VSPL(I),I=1,NT : VALEURS DES COEFF. DU POLYNOME NECESSAIRE
* POUR LE CALCUL DU LOGK A LA TEMPNEW SOUHAITEE
*
* CE SP REMPLACE LE SP INPUTB DE MINEQL STANDARD
*
* CE TRAVAIL A ETE REALISE A PARTIR DES SP PROVENANT DU CENTRE
* DE GEOCHIMIE DE LA SURFACE DE STRASBOURG
* ---> CF MON1504 MESSAGE
*
*************************************************************
IMPLICIT INTEGER(I-N)
IMPLICIT REAL*8 (A-H,O-Z)
-INC PPARAM
-INC CCOPTIO
CHARACTER NOM*16
LOGICAL LIBRE
DIMENSION TEMPE0(8)
SEGMENT ITRAV
REAL*8 TEMPE(NT)
ENDSEGMENT
SEGMENT IDSCHI
REAL*8 GK(NYDIM),AA(NYDIM,NXDIM),FF(NZDIM,NPDIM)
INTEGER IDX(NXDIM),IDY(NYDIM),IDZ(NZDIM),IDP(NPDIM),NN(6)
INTEGER IDECY(NYDIM),IONZ(NXDIM)
CHARACTER*32 NAME(NXDIM),NAMESP(NYDIM)
ENDSEGMENT
SEGMENT LGKTMP
INTEGER NUMT(NYDIM),NTVT(NYDIM)
REAL*8 TMIMA(NYDIM,NT)
REAL*8 POLYT(NYDIM,NT4),TGKLU(NYDIM,NT)
ENDSEGMENT
C 32=4*NT NT=8
DIMENSION VSPL(32),XLGKLU(8)
DATA TEMPE0/0.,25.,60.,100.,150.,200.,250.,300./
C
NYDIM=IDY(/1)
NT=8
NT4=32
N0=NN(1)
N1A1=NN(1)+1
N1A6=NN(1)+NN(2)+NN(3)+NN(4)+NN(5)+NN(6)
READ(IOCHI3,500) NOM,II
IF(NOM(1:5).EQ.'LIBRE')THEN
LIBRE=.TRUE.
NT=II
NT4=II*4
ELSE
LIBRE=.FALSE.
BACKSPACE IOCHI3
ENDIF
SEGINI ITRAV
SEGINI LGKTMP
30 CONTINUE
IF(LIBRE)THEN
READ(IOCHI3,502,END=80) NUM,NTV
BACKSPACE IOCHI3
NTV4=NTV
JJ1=0
NCC=0
IF(NTV.GT.4)THEN
NCC=(NTV-1)/4
DO 15 JJ=1,NCC
JJ1=4*(JJ-1)
READ(IOCHI3,524)(TEMPE(II+JJ1),II=1,4)
15 CONTINUE
NTV4= NTV-NCC*4
JJ1=NCC*4
ENDIF
IF(NTV4.EQ.1)THEN
ELSEIF(NTV4.EQ.2)THEN
ELSEIF(NTV4.EQ.3)THEN
ELSEIF(NTV4.EQ.4)THEN
ENDIF
READ(IOCHI3,525) (XLGKLU(II),II=1,NTV)
ELSE
READ(IOCHI3,500,END=80) NOM,NUM,NTV,TMIN,TMAX
READ(IOCHI3,400) (XLGKLU(II),II=1,NT)
DO 35 I=1,8
IF(ABS(TEMPE0(I)-TMIN).LT.1.D-3)THEN
II=I
GO TO 40
ENDIF
35 CONTINUE
40 CONTINUE
DO 50 I=1,NTV
TEMPE(I)=TEMPE0(II+I-1)
50 CONTINUE
ENDIF
IF (NTV.GT.2) THEN
READ(IOCHI3,*) (VSPL(II),II=1,NT*4)
ENDIF
C
DO 130 I=N1A1,N1A6
IF(NUM.EQ.IDY(I)) THEN
NTVT(I)=NTV
NUMT(I)=NUM
DO 140 J=1,NTV
TGKLU(I,J)=XLGKLU(J)
TMIMA(I,J)=TEMPE(J)
140 CONTINUE
C
C
IF (NTV.GT.2) THEN
DO 45 JJ=1,NT*4
POLYT(I,JJ)=VSPL(JJ)
45 CONTINUE
ENDIF
GO TO 30
ENDIF
130 CONTINUE
GOTO 30
80 CONTINUE
SEGSUP ITRAV
C REWIND(UNIT=IOCHI3)
C CLOSE(UNIT=IOCHI3)
400 FORMAT(10F8.3)
500 FORMAT(A16,I4,I5,2F10.3)
501 FORMAT(15X,I5,I5,2F10.3,1X,A32)
521 FORMAT(7X,F10.3,31X,A32)
522 FORMAT(7X,2F10.3,21X,A32)
523 FORMAT(7X,3F10.3,11X,A32)
524 FORMAT(7X,4F10.3,1X,A32)
525 FORMAT(8F10.3)
526 FORMAT(4E16.6)
RETURN
END
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales