Download trihi2.eso

Back to the list

   1 : C TRIHI2    SOURCE    CHAT      05/01/13    03:47:03     5004           
   2 : C=======================================================================
   3 : C
   4 :       SUBROUTINE TRIHI2(ilent1,NHIST,IT,JINF,TP0,ZA0)
   5 : C
   6 : C=======================================================================
   7 : C
   8 : C    Calcul de transformations de phases
   9 : C    appelee par VOISI2
  10 : C 
  11 : C    nhist     nombre d'histoires thermiques
  12 : C    it        temperature
  13 : C    jinf      indice du premier point trouve
  14 : C    tp0,za0   coordonnees du point a interpoler
  15 : C
  16 : C    RECHERCHE DES 4 POINTS LES PLUS PETITS D'UNE LISTE
  17 : C    AYANT UN MINIMUM UNIQUE, AVEC UTILISATION D'UNE SOLUTION
  18 : C    INITIALE ET RECHERCHE FINALE PAR BISSECTION,
  19 : C    INSPIRE DES NUMERICAL RECIPES IN FORTRAN (p 110),
  20 : C
  21 : C    routines appelees
  22 : C       DIST    norme euclidienne
  23 : C
  24 : C    MM, LE 10/07/1998
  25 : C
  26 : C=======================================================================
  27 : C
  28 :       IMPLICIT INTEGER(I-N)
  29 :       IMPLICIT REAL*8(A-H,O-Z)
  30 : C
  31 : C
  32 : C
  33 :       JOB=JINF
  34 :       INC=1
  35 :       JOBS=JOB+3
  36 :       IF (JOB.LT.1.OR.JOBS.GT.NHIST) THEN
  37 :          JINF=1
  38 :          JSUP=NHIST-3
  39 :          GOTO 3
  40 :       ENDIF
  41 : C
  42 :       DJOB=DIST9(ILENT1,IT,JOB,TP0,ZA0)
  43 :       DJOBS=DIST9(ILENT1,IT,JOBS,TP0,ZA0)
  44 :       IF (DJOBS.EQ.DJOB) THEN
  45 :          JINF=JOB
  46 :          RETURN
  47 :       ENDIF
  48 : C
  49 :       IF (DJOBS.LT.DJOB) THEN
  50 :  1       JOB=JOB+INC
  51 :          JOBS=JOB+3
  52 :          IF (JOBS.GT.NHIST) THEN
  53 :             JINF=JOB-INC

  54 :             JSUP=NHIST-3
  55 :             GOTO 3
  56 :          ENDIF
  57 :          DJOB=DIST9(ILENT1,IT,JOB,TP0,ZA0)
  58 :          DJOBS=DIST9(ILENT1,IT,JOBS,TP0,ZA0)
  59 :          IF (DJOBS.LT.DJOB) THEN
  60 :             INC=INC+INC
  61 :             GOTO 1
  62 :          ENDIF
  63 :          JINF=JOB-INC

  64 :          JSUP=JOB
  65 : C
  66 :       ELSE
  67 :  2       JOB=JOB-INC

  68 :          JOBS=JOB+3
  69 :          IF (JOB.LT.1) THEN
  70 :             JINF=1
  71 :             JSUP=JOB+INC
  72 :             GOTO 3
  73 :          ENDIF
  74 :          DJOB=DIST9(ILENT1,IT,JOB,TP0,ZA0)
  75 :          DJOBS=DIST9(ILENT1,IT,JOBS,TP0,ZA0)
  76 :          IF (DJOBS.GT.DJOB) THEN
  77 :             INC=INC+INC
  78 :             GOTO 2
  79 :          ENDIF
  80 :          JINF=JOB
  81 :          JSUP=JOB+INC
  82 :       ENDIF
  83 : C
  84 :  3    JD=JSUP-JINF
  85 :       IF (JD.LE.1) THEN
  86 :          DINF=DIST9(ILENT1,IT,JINF,TP0,ZA0)
  87 :          JSUPS=JSUP+3
  88 :          DSUPS=DIST9(ILENT1,IT,JSUPS,TP0,ZA0)
  89 :          IF (DINF.GE.DSUPS) JINF=JSUP
  90 :          RETURN
  91 :       ENDIF
  92 :       JM=(JINF+JSUP)/2
  93 :       JMS=JM+3
  94 :       DJM=DIST9(ILENT1,IT,JM,TP0,ZA0)
  95 :       DJMS=DIST9(ILENT1,IT,JMS,TP0,ZA0)
  96 :       IF (DJMS.GT.DJM) THEN
  97 :          JSUP=JM
  98 :       ELSE
  99 :          JINF=JM
 100 :       ENDIF
 101 :       GOTO 3
 102 :       END
 103 :  
 104 :  

© Cast3M 2003 - All rights reserved.
Disclaimer