gfortran question about optional subroutine arguments
Thu Mar 14 12:02:00 GMT 2013
From what I read, what I need to do is doable in f90/f95 using optional
arguments? But I am porting some very old fortran77 stuff and am using
the -std=legacy switch. I'm basically trying to figure out how to call a
subroutine with fewer arguments than the subroutine was declared with.
The call works but in the code below I get a segfault when the
subroutine attempts to access the unpassed argument. The old fortan77
had no problems with this, I assume because even when not passed in, the
subroutine declaration gave the argument a valid address??
integer*4 arg1 /10/
integer*4 arg2 /20/
c the old fortran77 call would have been
c call sub1(arg1,)
subroutine sub1(arg1, arg2)
arg2 = 0 ! causes segfault in gfortran
c A segfault also occurs in some_other_sub if arg2 is accessed.
call some_other_sub(arg1,arg2) !
Yet a loc(arg2) any where is the line _seems_ to provide a valid address???
Is there a way this be done using -std=legacy switch
Thanks and Regards
More information about the Gcc-help