C TRITE3 SOURCE CHAT 05/01/13 03:47:57 5004 C C======================================================================= C SUBROUTINE TRITE3(ilent2,NTEMP,T0,ITINF,ITSUP) C C======================================================================= C C Calcul de transformations de phases C appelee par CRPHA4 / cas du CHAUFFAGE C C recherche dans un tableau l'indice des donnees materiau correspondant C a la temperature T0 C C ntemp indice max C itinf indice correspondant ou precedant T0 C itsup indice suivant T0 C C utilisation d'une solution initiale C et recherche finale par bissection C (Numerical Recipes in Fortran p 110) C MARTINEZ 07/07/1998 C======================================================================= C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C -INC SMLENTI -INC SMLREEL C C C mlenti = ilent2 segact mlenti INC=1 IF (ITINF.LT.1.OR.ITINF.GT.NTEMP) THEN ITINF=0 ITSUP=NTEMP+1 GOTO 3 ENDIF C mlreel = lect(itinf) segact mlreel IF (prog(1).EQ.T0) THEN ITSUP=ITINF+1 segdes mlenti RETURN ENDIF C mlreel = lect(itinf) segact mlreel IF (prog(1).GT.T0) THEN 1 ITSUP=ITINF+INC mlreel = lect(itsup) segact mlreel IF (ITSUP.GE.NTEMP) THEN ITSUP=NTEMP ELSE IF (prog(1).GT.T0) THEN ITINF=ITSUP INC=INC+INC GOTO 1 ENDIF C ELSE ITSUP=ITINF 2 ITINF=ITSUP-INC mlreel = lect(itinf) segact mlreel IF (ITINF.LE.1) THEN ITINF=1 ELSE IF (prog(1).LT.T0) THEN ITSUP=ITINF INC=INC+INC GOTO 2 ENDIF ENDIF C 3 NDIT=ITSUP-ITINF IF (NDIT.LE.1) THEN segdes mlenti RETURN ENDIF ITM=(ITINF+ITSUP)/2 mlreel = lect(itm) segact mlreel IF (prog(1).GE.T0) THEN ITINF=ITM ELSE ITSUP=ITM ENDIF GOTO 3 END