Some problems with a very heavy module procedure

Philippe Schaffnit P.Schaffnit@access.rwth-aachen.de
Wed Oct 12 15:51:00 GMT 2005


Hi!

I'm trying to compile our phase-field code with gfortran and I hit a
problem in a module procedure (where I incidently also use an implicit
length string...): if I remember right this has been fixed some time
ago: the truth is a "much reduced" version of the same runs just fine:
am I doing something stupid? (which neverthless quite a few other
compilers gladly let me do...), is there something which I should take
into account with my binary? (freshly compiled: "GNU Fortran 95 (GCC)
4.1.0 20051010 (experimental)"), or should I invest some time to reduce
that to something that can actually be reported?

Thanks!

Philippe

PS: the error message I get:

cc1: warning: command line option "-std=f95" is valid for Fortran but
not for C
/USER/philippe/Linux/MICRESS/Compilation/Sources_GFortran/modules/MODULE_SPRACHE.f90:
In function â?~ctn_error_interceptionâ??:
/USER/philippe/Linux/MICRESS/Compilation/Sources_GFortran/modules/MODULE_SPRACHE.f90:342:
internal compiler error: in gfc_conv_variable, at
fortran/trans-expr.c:355
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[2]: *** [MODULE_SPRACHE.o] Error 1

PPS: where it's happening:
!
!            Error interception
!            ------------------
             CONTAINS
             SUBROUTINE CTN_Error_Interception
!
                 Text = " ERROR IN ROUTINE " // TRIM(Name) // "!"
                 CALL Ausgabe ( Screen, TRIM(Text) // "!", "(/A)" )
                 WRITE ( Text, "(A,I5,A,I3)" ) " MESSAGE NOT FOUND:",  &
     &                                               Message, " -", Line
                 CALL Ausgabe ( Screen, TRIM(Text), "(A/)" ) ! <- line
342
                 Read_Message = Text
!
             END SUBROUTINE CTN_Error_Interception
!
          END FUNCTION Read_Message
!

PPPS: some explanations: well... that's actually a bit sick there, but
it should be acceptable nevertheless (I guess...): this is a module
procedure calling a generic interface from another module, with an extra
couple of modules pulled in to set some auxiliary variables. This is
definitly not going to win any prize for logic (it evolved organically),
but worked (with the other compilers we harrassed with that)



More information about the Fortran mailing list