[Bug fortran/28809] [gfortran] internal compiler error: in gfc_conv_ss_descriptor, at fortran/trans-array.c:1265
--- 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
--- 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