ICE seg fault

Florian Ladstaedter flad@gmx.at
Tue Jul 31 12:18:00 GMT 2007


Daniel Franke wrote:
> On Tuesday 31 July 2007 10:22:03 Florian Ladstaedter wrote:
>> I could reduce the test case quite a lot:
>> ------------------------------------------------
>> module AtmoIonoSphere
>> use AtmoIono
>> use EGOPS_Utilities, ONLY:  dirname
>> end module AtmoIonoSphere
>> ------------------------------------------------
> 
> It now depends on what these modules contain. Could you send me either the 
> corresponding source or the module files (.mod) privately, please? 
> 

ok, finally I could hunt it down to a short complete testcase.

First, it seems to be some kind of regression since it compiles with 4.2.1
Second, it does not occur when I don't use separate modules.

Here is the test case:


file egopsutil_red.f90:
-------------------------------------------------
MODULE EGOPS_Utilities

IMPLICIT NONE

PUBLIC

CONTAINS

FUNCTION dirname(fullfilename)

    Character(LEN=*),  Intent(In)    :: fullfilename
    Character(LEN=LEN(fullfilename)) :: dirname

    dirname = ''

END FUNCTION dirname


END MODULE EGOPS_Utilities
-------------------------------------------------


file AtmoIono_red.f90:
-------------------------------------------------
MODULE AtmoIono

IMPLICIT NONE

PUBLIC

CHARACTER(LEN=10), PARAMETER :: ComputeDryAtmModel   = 'Dry Atm.  '

type AtmModel
    character (len=len(ComputeDryAtmModel)) :: moistDryStr
end type AtmModel

END MODULE AtmoIono
-------------------------------------------------


file AtmoIonoSphere_red.f90:
-------------------------------------------------
module AtmoIonoSphere

use AtmoIono
use EGOPS_Utilities

end module AtmoIonoSphere
-------------------------------------------------




Compiling with:

gfortran  -c -J../include  -I../include   AtmoIono_red.f90
gfortran  -c -J../include  -I../include   egopsutil_red.f90
gfortran  -c -J../include AtmoIonoSphere_red.f90


gives:

AtmoIonoSphere_red.f90:0: internal compiler error: Segmentation fault





The "Character(LEN=*)" seems to be part of the problem, since using a 
fixed value here it works.



thanks Florian



More information about the Fortran mailing list