1*760c2415Smrg#!/bin/sh
2*760c2415Smrg
3*760c2415Smrgcompile="$1"
4*760c2415Smrgkinds=""
5*760c2415Smrgpossible_kinds="1 2 4 8 16"
6*760c2415Smrgc=0
7*760c2415Smrg
8*760c2415Smrgfor k in $possible_kinds; do
9*760c2415Smrg  echo "  integer (kind=$k) :: x" > tmp$$.f90
10*760c2415Smrg  echo "  x = 1_$k" >> tmp$$.f90
11*760c2415Smrg  echo "  end" >> tmp$$.f90
12*760c2415Smrg  if $compile -S tmp$$.f90 > /dev/null 2>&1; then
13*760c2415Smrg    kinds="$kinds $k"
14*760c2415Smrg    c=`expr $c + 1`
15*760c2415Smrg  fi
16*760c2415Smrg  rm -f tmp$$.*
17*760c2415Smrgdone
18*760c2415Smrg
19*760c2415Smrgecho "  integer, parameter :: c = $c"
20*760c2415Smrgecho "  type (int_info), parameter :: int_infos(c) = (/ &"
21*760c2415Smrg
22*760c2415Smrgi=0
23*760c2415Smrgfor k in $kinds; do
24*760c2415Smrg  # echo -n is not portable
25*760c2415Smrg  str="    int_info ($k, range(0_$k))"
26*760c2415Smrg  i=`expr $i + 1`
27*760c2415Smrg  if [ $i -lt $c ]; then
28*760c2415Smrg    echo "$str, &"
29*760c2415Smrg  else
30*760c2415Smrg    echo "$str /)"
31*760c2415Smrg  fi
32*760c2415Smrgdone
33*760c2415Smrg
34*760c2415Smrgexit 0
35