cont
character(len=120) function log10scale_max_char(max_val)
real(kind=2), intent(in) :: max_val
real(kind=2) scale_max
scale_max = log10scale_max(max_val)
write(log10scale_max_char,*) scale_max
end function log10scale_max_char
character(len=120) function log10scale_min_char(min_val)
real(kind=2), intent(in) :: min_val
real(kind=2) scale_min
scale_min = log10scale_min(min_val)
write(log10scale_min_char,*) scale_min
end function log10scale_min_char
real(kind=2) function log10scale_max(max_val)
real(kind=2), intent(in) :: max_val
integer i
real(kind=2) test_val
do i = 308, -308, -1
test_val = 10.d0**i
if (max_val .gt. test_val) then
log10scale_max = 10.d0**(i+1)
exit
else if (max_val .eq. test_val) then
log10scale_max = test_val
exit
end if
end do
end function log10scale_max
real(kind=2) function log10scale_min(min_val)
real(kind=2), intent(in) :: min_val
integer i
real(kind=2) test_val
do i = -308, 308, 1
test_val = 10.d0**i
if (min_val .lt. test_val) then
log10scale_min = 10.d0**(i-1)
exit
else if (min_val .eq. test_val) then
log10scale_min = test_val
exit
end if
end do
end function log10scale_min
end function generate_curves
end module relay_curves_mod
program main
use relay_curves_mod
integer i
i = generate_curves()
end program main






