Namelist having problems with whitespace?
Steve Edwards
edwardss@korime.demon.co.uk
Mon Jun 16 01:59:00 GMT 2008
On Fri, 13 Jun 2008 20:54:48 -0700
Jerry DeLisle <jvdelisle@verizon.net> wrote:
> Jerry DeLisle wrote:
> > Steve Edwards wrote:
> >> On Sat, 14 Jun 2008 01:52:25 +0100
> >> Steve Edwards <edwardss@korime.demon.co.uk> wrote:
> >>> Dear all,
> >>>
> >>> I have just run across what appears to be strange behaviour with
> >>> namelists. First spotted in a custom build of gcc 4.3.0 and I've just
> >>> got a reduced test case on my home machine with 4.3.0 20080428 (Red
> >>> Hat 4.3.0-8)
> >>
> >> My apologies but I should have said what platform that was on:
> >>
> >> Fedora 9
> >> x86_64-unknown-linux-gnu
> >>
> >> First seen on Fedora 8
> >> i686-pc-linux-gnu
> >>
> >> I can try other platforms if that would be helpful to anyone.
> >>
> >> Steve E
> > I am running the same platform. Thanks for the report. This is now
> > PR36538
> >
> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36538
> >
> > Jerry
> >
> Steve,
>
> In case you are not watching the PR report, here is a patch:
>
> Index: list_read.c
> ===================================================================
> --- list_read.c (revision 136763)
> +++ list_read.c (working copy)
> @@ -2922,6 +2922,8 @@ find_nml_name:
> goto find_nml_name;
> }
>
> + eat_separator (dtp);
> +
> /* Ready to read namelist objects. If there is an error in input
> from stdin, output the error message and continue. */
>
> Regards,
>
> Jerry
Sorry to say it fixed the test case and I then ran in to a similar error. I applied the patch to a freshly download 4.3.1 and then managed to get the following:
cat check1.f
program check1
real a,b,c
namelist/CASEDAT/A,B,C
read(1,casedat)
print*,'a=',a
print*,'b=',b
print*,'c=',c
end
cat fort.1
&CASEDAT
A = 1.0, B = 2.0,
C = 3.0,
/
Again all whitespace being tabs. This time it's the two tabs preceding C that cause the same runtime error:
At line 4 of file check1.f (unit = 1, file = 'fort.1')
Fortran runtime error: Cannot match namelist object name
I checked in the debugger, and it seems to be reading A and B okay.
Remove the C line and it works perfectly.
I did try to work out what should have been happening, but I'm afraid my C skills aren't up to it!
Thanks for all of your help!
Steve E
--
----------------------------------------------------------
----------------------------------------------------------
More information about the Fortran
mailing list