1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #!/bin/sh
- if test "$#" -ne 2; then
- echo "Usage $0 real_kinds compile"
- exit 1
- fi
- # Possible kinds must be listed in ascending order
- possible_real_kinds="$1"
- compile="$2"
- kinds=""
- c=0
- for k in $possible_real_kinds; do
- echo " real (kind=$k) :: x" > tmp$$.f90
- echo " x = 1.0_$k" >> tmp$$.f90
- echo " end" >> tmp$$.f90
- if $compile -S tmp$$.f90 > /dev/null 2>&1; then
- kinds="$kinds $k"
- c=`expr $c + 1`
- fi
- rm -f tmp$$.*
- done
- echo " integer, parameter :: c = $c"
- echo " type (real_info), parameter :: real_infos(c) = (/ &"
- i=0
- for k in $kinds; do
- # echo -n is not portable
- str=" real_info ($k, precision(0.0_$k), range(0.0_$k), radix(0.0_$k))"
- i=`expr $i + 1`
- if [ $i -lt $c ]; then
- echo "$str, &"
- else
- echo "$str /)"
- fi
- done
- exit 0
|