[Bug fortran/28809] [gfortran] internal compiler error: in gfc_conv_ss_descriptor, at fortran/trans-array.c:1265

2006-08-22 Thread kargl at gcc dot gnu dot org


--- Comment #1 from kargl at gcc dot gnu dot org  2006-08-22 20:53 ---
Upgrade your compiler to at least 4.1.1, and try again.

Also, you need an  explicit interface for the
recursive function in your main program

interface
  recursive real function det(a) result(res)
 real, dimension(:,:), intent(in) :: a
  end function det
end interface


-- 

kargl at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28809



[Bug fortran/28809] [gfortran] internal compiler error: in gfc_conv_ss_descriptor, at fortran/trans-array.c:1265

2006-08-22 Thread tobias dot burnus at physik dot fu-berlin dot de


--- Comment #2 from tobias dot burnus at physik dot fu-berlin dot de  
2006-08-22 21:08 ---
Using gfortran 4.1.2 20060705 (prerelease) (SUSE Linux)
and GNU Fortran 95 (GCC) 4.2.0 20060822 (experimental)
it compiles and gives the output (from the program):

 det for matrices bigger than 4x4 not implemented

John Chodera, I would really recommend to update to 4.1.x or to 4.2-snapshots
as gfortran in GCC 4.0.x is rather buggy. See
http://gcc.gnu.org/wiki/GFortranBinaries for binary GCC versions.

In addition: As the NAG compiler points out:
---
Error: Explicit interface required for DET from MAIN - argument A (no. 1) is an
assumed-shape array
---

The problem is that Fortran passes an array differently for A(*) or A(n) than
for A(:). The latter is called assumed-shaped array and is an addition to
Fortran 90 (the former also work with Fortran 77). In order to let the compiler
know that you want to pass an assumed-shaped array, you need to either create a
module, which contains the function det, or you put it below contains in
the program section or you write an interface in the program section.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28809