1*627f7eb2Smrg#!/bin/sh 2*627f7eb2Smrg 3*627f7eb2Smrgcompile="$1" 4*627f7eb2Smrgkinds="" 5*627f7eb2Smrgpossible_kinds="4 8 10 16" 6*627f7eb2Smrgc=0 7*627f7eb2Smrg 8*627f7eb2Smrgfor k in $possible_kinds; do 9*627f7eb2Smrg echo " real (kind=$k) :: x" > tmp$$.f90 10*627f7eb2Smrg echo " x = 1.0_$k" >> tmp$$.f90 11*627f7eb2Smrg echo " end" >> tmp$$.f90 12*627f7eb2Smrg if $compile -S tmp$$.f90 > /dev/null 2>&1; then 13*627f7eb2Smrg kinds="$kinds $k" 14*627f7eb2Smrg c=`expr $c + 1` 15*627f7eb2Smrg fi 16*627f7eb2Smrg rm -f tmp$$.* 17*627f7eb2Smrgdone 18*627f7eb2Smrg 19*627f7eb2Smrgecho " integer, parameter :: c = $c" 20*627f7eb2Smrgecho " type (real_info), parameter :: real_infos(c) = (/ &" 21*627f7eb2Smrg 22*627f7eb2Smrgi=0 23*627f7eb2Smrgfor k in $kinds; do 24*627f7eb2Smrg # echo -n is not portable 25*627f7eb2Smrg str=" real_info ($k, precision(0.0_$k), range(0.0_$k), radix(0.0_$k))" 26*627f7eb2Smrg i=`expr $i + 1` 27*627f7eb2Smrg if [ $i -lt $c ]; then 28*627f7eb2Smrg echo "$str, &" 29*627f7eb2Smrg else 30*627f7eb2Smrg echo "$str /)" 31*627f7eb2Smrg fi 32*627f7eb2Smrgdone 33*627f7eb2Smrg 34*627f7eb2Smrgexit 0 35