I\'m testing out ranges of values (-1:34 just for kicks) for the function selected_real_kind
to determine the kind
parameter it returns and the actual
Similar to george's answer, but in Fortran. We note that kinds are something that, essentially, must be known at compile-time. For that we ask the compiler which kinds it can offer us and, for each of those, create a small chunk of code to be compiled. Then compile and run it. [This last step certainly varies by system.]
! Rather than looping over a range with SELECTED_REAL_KIND, just see which
! real kinds are available to the compiler. We can later match up real kinds
! for a requested precision with those here.
use, intrinsic :: iso_fortran_env, only : real_kinds
implicit none
integer output
integer i
open(newunit=output, file='gosh.f90', action='write', position='rewind')
! Here we could instead do n=-1, 34 etc.
do i=1, SIZE(real_kinds)
write(output, 1) real_kinds(i)
end do
write(output, '("end")')
close(output)
! A compile/execute line - do whatever is required.
call execute_command_line('compile gosh.f90 && ./a.out')
1 FORMAT ("block",/,"real(",I0,") x",/,"include 'domystuffz'"/,"end block")
end
where "domystuffz" is a file containing whatever analysis is wanted. As with High Performance Mark's answer something intrinsic would be nice and the include
could be replaced by some simple code if required.