program dichotomie double precision a,b,eps,x,y ! read*, a,b,eps ! a=0.01 b=2. eps=1.e-10 n=log((b-a)/eps)/log(2.) T=899. a=1.e-2 a1=2.5E-7*T+2.e-4 !2.75e-4 a3=1.6e-19/1.38e-23/T !5.3e-13 a2=4.e-6*T**4*exp(-a3) !38.65 S=700. do i=1,n y=(a+b)/2. if(f(a)*f(y).lt.0.) then b=y else a=y endif c write(*,10) i,x c end do 10 format(i3,3x,f7.5) end do x=3.26*y w=x*y Sc=2.29e-3 Rend=w/S/Sc c Resis=x/y c write(*,*)n,x,f(x) c print*,a1,a2,a3 write (*,11)x*1000,y*1000.,w*1000.,Rend*100 !,Resis 11 format(1x,f6.1,4(1x,f7.1)) end function f(y) double precision y real a1,a2,a3,S T=300. a1=2.5E-7*T+2.e-4 !2.75e-4 a3=1.6e-19/1.38e-23/T !5.3e-13 a2=4.e-6*T**4*exp(-a3) !38.65 S=700. f=a1*S - a2*(exp(a3*3.26*y)-1) - y return end