subroutine rte_base( nstar, rte0, rte1, rte2 ) integer nlist, nokmax parameter( nlist = 10 , nokmax=7 ) real nstar, rte0, rte1, rte2 real nstarlist( nlist ) real rte0_list( nlist , nokmax ) real rte1_list( nlist , nokmax ) real rte2_list( nlist , nokmax ) real nstarA , RTE0_A , RTE1_A , RTE2_A real nstarB , RTE0_B , RTE1_B , RTE2_B integer i, j, nbest( nlist ) ! Initiate nstar and rte lists do i=1,nlist nstarlist(i) = -9999. nbest( i) = -9999. do j=1,nokmax rte0_list( i , j ) = -9999. enddo enddo ! Fr=oo nstarlist( 1 ) = 0.0 rte0_list( 1 , 1 ) = 0.147 rte1_list( 1 , 1 ) = 0.03 rte2_list( 1 , 1 ) = 0.0 rte0_list( 1 , 2 ) = 0.15 rte1_list( 1 , 2 ) = 0.04 rte2_list( 1 , 2 ) = 0.0 nbest( 1 ) = 2 ! Fr=7.61 nstarlist( 2 ) = 1.0/7.61 rte0_list( 2 , 1 ) = 0.127 rte1_list( 2 , 1 ) = -0.02 rte2_list( 2 , 1 ) = -0.04 rte0_list( 2 , 2 ) = 0.129 rte1_list( 2 , 2 ) = -0.01 rte2_list( 2 , 2 ) = 0.05 rte0_list( 2 , 3 ) = 0.130 rte1_list( 2 , 3 ) = 0.00 rte2_list( 2 , 3 ) = 0.20 rte0_list( 2 , 4 ) = 0.133 rte1_list( 2 , 4 ) = 0.01 rte2_list( 2 , 4 ) = 0.42 rte0_list( 2 , 5 ) = 0.136 rte1_list( 2 , 5 ) = 0.02 rte2_list( 2 , 5 ) = 0.64 nbest( 2 ) = 4 ! rte0_list( 2) = 0.13 ! rte1_list( 2) = 0.0 ! rte2_list( 2) = 0.20 ! rte0_list( 2) = 0.133 ! rte1_list( 2) = 0.01 ! rte2_list( 2) = 0.42 ! Fr=5.47 nstarlist( 3 ) = 1.0/5.47 rte0_list( 3 , 1 ) = 0.124 rte1_list( 3 , 1 ) = -0.03 rte2_list( 3 , 1 ) = 0.17 rte0_list( 3 , 2 ) = 0.127 rte1_list( 3 , 2 ) = -0.02 rte2_list( 3 , 2 ) = 0.25 rte0_list( 3 , 3 ) = 0.13 rte1_list( 3 , 3 ) = -0.01 rte2_list( 3 , 3 ) = 0.33 rte0_list( 3 , 4 ) = 0.133 rte1_list( 3 , 4 ) = 0.00 rte2_list( 3 , 4 ) = 0.44 rte0_list( 3 , 5 ) = 0.136 rte1_list( 3 , 5 ) = 0.01 rte2_list( 3 , 5 ) = 0.57 nbest( 3 ) = 5 ! rte0_list( 3) = 0.127 ! rte1_list( 3) = -0.02 ! rte2_list( 3) = 0.25 ! rte0_list( 3) = 0.136 ! rte1_list( 3) = 0.01 ! rte2_list( 3) = 0.57 ! Fr=3.33 nstarlist( 4 ) = 1.0/3.33 rte0_list( 4 , 1 ) = 0.117 rte1_list( 4 , 1 ) = -0.07 rte2_list( 4 , 1 ) = 0.54 rte0_list( 4 , 2 ) = 0.12 rte1_list( 4 , 2 ) = -0.06 rte2_list( 4 , 2 ) = 0.61 rte0_list( 4 , 3 ) = 0.123 rte1_list( 4 , 3 ) = -0.05 rte2_list( 4 , 3 ) = 0.68 rte0_list( 4 , 4 ) = 0.126 rte1_list( 4 , 4 ) = -0.04 rte2_list( 4 , 4 ) = 0.76 rte0_list( 4 , 5 ) = 0.127 rte1_list( 4 , 5 ) = -0.03 rte2_list( 4 , 5 ) = 0.86 nbest( 4 ) = 2 ! rte0_list( 4) = 0.126 ! rte1_list( 4) = -0.04 ! rte2_list( 4) = 0.76 ! rte0_list( 4) = 0.12 ! rte1_list( 4) = -0.06 ! rte2_list( 4) = 0.61 ! Fr=2.7 nstarlist( 5 ) = 1.0/2.7 rte0_list( 5 , 1 ) = 0.102 rte1_list( 5 , 1 ) = -0.12 rte2_list( 5 , 1 ) = 0.62 rte0_list( 5 , 2 ) = 0.105 rte1_list( 5 , 2 ) = -0.11 rte2_list( 5 , 2 ) = 0.70 rte0_list( 5 , 3 ) = 0.108 rte1_list( 5 , 3 ) = -0.10 rte2_list( 5 , 3 ) = 0.77 nbest( 5 ) = 2 ! rte0_list( 5) = 0.105 ! rte1_list( 5) = -0.11 ! rte2_list( 5) = 0.70 ! Fr=2.2 nstarlist( 6 ) = 1.0/2.2 rte0_list( 6 , 1 ) = 0.091 rte1_list( 6 , 1 ) = -0.157 rte2_list( 6 , 1 ) = 0.68 rte0_list( 6 , 2 ) = 0.093 rte1_list( 6 , 2 ) = -0.149 rte2_list( 6 , 2 ) = 0.72 rte0_list( 6 , 3 ) = 0.095 rte1_list( 6 , 3 ) = -0.141 rte2_list( 6 , 3 ) = 0.76 nbest( 6 ) = 1 ! rte0_list( 6) = 0.091 ! rte1_list( 6) = -0.157 ! rte2_list( 6) = 0.68 ! Fr=2.02 nstarlist( 7 ) = 1.0/2.02 rte0_list( 7 , 1 ) = 0.084 rte1_list( 7 , 1 ) = -0.18 rte2_list( 7 , 1 ) = 0.725 rte0_list( 7 , 2 ) = 0.0855 rte1_list( 7 , 2 ) = -0.17 rte2_list( 7 , 2 ) = 0.77 rte0_list( 7 , 3 ) = 0.0885 rte1_list( 7 , 3 ) = -0.16 rte2_list( 7 , 3 ) = 0.82 rte0_list( 7 , 4 ) = 0.09 rte1_list( 7 , 4 ) = -0.155 rte2_list( 7 , 4 ) = 0.845 nbest( 7 ) = 1 ! rte0_list( 7) = 0.084 ! rte1_list( 7) = -0.18 ! rte2_list( 7) = 0.725 ! Fr=1.63 nstarlist( 8 ) = 1.0/1.63 rte0_list( 8 , 1 ) = 0.084 rte1_list( 8 , 1 ) = -0.18 rte2_list( 8 , 1 ) = 0.65 rte0_list( 8 , 2 ) = 0.086 rte1_list( 8 , 2 ) = -0.17 rte2_list( 8 , 2 ) = 0.68 rte0_list( 8 , 3 ) = 0.0885 rte1_list( 8 , 3 ) = -0.16 rte2_list( 8 , 3 ) = 0.71 rte0_list( 8 , 4 ) = 0.09 rte1_list( 8 , 4 ) = -0.14 rte2_list( 8 , 4 ) = 0.73 nbest( 8 ) = 2 ! rte0_list( 8) = 0.086 ! rte1_list( 8) = -0.17 ! rte2_list( 8) = 0.68 ! Fr=1.1 nstarlist( 9 ) = 1.0/1.1 rte0_list( 9 , 1 ) = 0.064 rte1_list( 9 , 1 ) = -0.21 rte2_list( 9 , 1 ) = 0.97 rte0_list( 9 , 2 ) = 0.065 rte1_list( 9 , 2 ) = -0.20 rte2_list( 9 , 2 ) = 1.01 rte0_list( 9 , 3 ) = 0.066 rte1_list( 9 , 3 ) = -0.19 rte2_list( 9 , 3 ) = 1.04 rte0_list( 9 , 4 ) = 0.067 rte1_list( 9 , 4 ) = -0.18 rte2_list( 9 , 4 ) = 1.07 rte0_list( 9 , 5 ) = 0.067 rte1_list( 9 , 5 ) = -0.17 rte2_list( 9 , 5 ) = 1.10 rte0_list( 9 , 6 ) = 0.067 rte1_list( 9 , 6 ) = -0.16 rte2_list( 9 , 6 ) = 1.13 rte0_list( 9 , 7 ) = 0.068 rte1_list( 9 , 7 ) = -0.15 rte2_list( 9 , 7 ) = 1.16 nbest( 9 ) = 4 ! rte0_list( 9) = 0.067 ! rte1_list( 9) = -0.18 ! rte2_list( 9) = 1.07 ! Fr=1.0 nstarlist( 10 ) = 1.0/1.0 rte0_list( 10 , 1 ) = 0.063 rte1_list( 10 , 1 ) = -0.12 rte2_list( 10 , 1 ) = 1.30 rte0_list( 10 , 2 ) = 0.063 rte1_list( 10 , 2 ) = -0.11 rte2_list( 10 , 2 ) = 1.32 rte0_list( 10 , 3 ) = 0.063 rte1_list( 10 , 3 ) = -0.10 rte2_list( 10 , 3 ) = 1.35 rte0_list( 10 , 4 ) = 0.063 rte1_list( 10 , 4 ) = -0.09 rte2_list( 10 , 4 ) = 1.37 rte0_list( 10 , 5 ) = 0.065 rte1_list( 10 , 5 ) = -0.08 rte2_list( 10 , 5 ) = 1.42 nbest( 10 ) = 2 ! rte0_list(10) = 0.063 ! rte1_list(10) = -0.11 ! rte2_list(10) = 1.32 do i =1,nlist-1 if ( nstar.ge.nstarlist(i) .and. & nstar.lt.nstarlist(i+1) ) then ! write(6,*)" nstar < nstarlist(i+1) i=",i nstarA = nstarlist( i ) RTE0_A = rte0_list( i , nbest(i) ) RTE1_A = rte1_list( i , nbest(i) ) RTE2_A = rte2_list( i , nbest(i) ) nstarB = nstarlist( i+1 ) RTE0_B = rte0_list( i+1 , nbest(i+1) ) RTE1_B = rte1_list( i+1 , nbest(i+1) ) RTE2_B = rte2_list( i+1 , nbest(i+1) ) call rint( nstarA , RTE0_A , nstarB , RTE0_B , nstar , RTE0 ) call rint( nstarA , RTE1_A , nstarB , RTE1_B , nstar , RTE1 ) call rint( nstarA , RTE2_A , nstarB , RTE2_B , nstar , RTE2 ) endif enddo if ( nstar .lt. nstarlist(1) ) then ! write(6,*)" nstar < nstarlist(1)" RTE0 = rte0_list( 1 , nbest(1) ) RTE1 = rte1_list( 1 , nbest(1) ) RTE2 = rte2_list( 1 , nbest(1) ) endif if ( nstar .ge. nstarlist(nlist) ) then ! write(6,*)" nstar >= nstarlist(nlist)" RTE0 = rte0_list( nlist , nbest(nlist) ) RTE1 = rte1_list( nlist , nbest(nlist) ) RTE2 = rte2_list( nlist , nbest(nlist) ) endif ! if (nstar .ne. 0.) then ! write(6,*) "rte_base: Fr = ",1./nstar," RTE0 = ",RTE0 ! & ," RTE1 = ",RTE1," RTE2 = ",RTE2 ! else ! write(6,*) "rte_base: Fr = oo RTE0 = ",RTE0 ! & ," RTE1 = ",RTE1," RTE2 = ",RTE2 ! endif return end subroutine rint( nstarA , RTEA , nstarB , RTEB , nstar , RTE ) real nstarB, nstarA, nstar real RTEA , RTEB , RTE ! ! RTEA N*A N* - N*A RTE - RTEA ! RTE N* --------- = ----------- ! RTEB N*B N*B - N*A RTEB - RTEA ! RTE = RTEA + (nstar-nstarA)/(nstarB-nstarA)*(RTEB-RTEA) return end