title: Convert an array of logical type to an array of integer/double type
body: <p>I am using Silverfrost FTN95 and, since I am not an expert, I need your help to create a function which takes as input an array of logical variables and returns an array of integer variables, 0 for false and 1 for true.
  I wrote this simple code just to semplify how I tried to implement it:</p>
  
  <pre><code>program main
  logical, dimension(2,1)     :: a
  integer, dimension(2,1)     :: b
  integer, dimension(2,1)     :: toInt
  a(:,1)=.false.
  b=toInt(a)
  write(*,*)b
  end program
  
  function toInt(log) result(val)
  logical, dimension(2,1), intent(in)     :: log
  integer, dimension(2,1)                 :: val
  do i=1,2
      if (log(i,1)) then
          val(i,1) = 1
      else
          val(i,1) = 0
      end if
  end do
  end function
  </code></pre>
  
  <p>This code gives me this error: INTEGER expression expected in array bounds subscript, variable 'A' does not have the INTEGER type (at line "b=toInt(a)"), and I can't find what the error is.
  Any suggestions or other ways to solve my problem would be very helpful.
  Thanks</p>