subroutine char2real(string,number)
character(80)::string
character(80)::tmp
real::number
!external::CVTSI
! exist t''il un point ?
indx=scan(string,'.')
!print*,'char2real',string,indx,'*'
if(indx==0) then ! c''est un entier
call CVTSI(string,i)
number=float(i)
return
endif
if (indx==1) then ! du type .123
i=0
goto 123
endif
tmp=string(1:indx-1)
!print*,'tmp*',tmp,'*'
call CVTSI(tmp,i)
123 continue
!print*,i
j=1
do while(string(j:j)==' ')
j=j+1
enddo
!print*,j
indx2=scan(string(j:80),' ')
!print*,'char2real2',indx,indx2
if(indx2==(indx+1)) then ! string like 152.
number=float(i)
return
endif
tmp=string(indx+1:indx2)
!print*,'tmp*',tmp,'*'
call CVTSI(tmp,j)
!print*,j
number=float(i)+float(j)/(10)**(indx2-indx-1)
!print*,number,float(j)/(10)**(5)
return
end subroutine char2real