------- Comment #7 from toon at moene dot org 2009-08-18 16:40 ------- The relevant wording in the Standard (2003) is:
9.5.3.4 Data transfer ... The list items for a namelist input statement are processed in the order of the entities specified within the input records. ... To spell it out for this example: 1 is assigned to i(1,1) 2 is assigned to i(2,1) ! Array element order, as no other order is specified. 3 is assigned to i(3,1) ! Ditto. 4 is assigned to i(2,1) ! Overwriting the 2 that was there. 5 is assigned to i(3,1) ! Overwriting the 3 that was there. 6 is assigned to i(2,2) ! Got that ? 7 is assigned to i(3,1) ! Overwriting the 5 that was there. 8 is assigned to i(3,2) ! Hah ! 9 is assigned to i(3,3) ! So there ! i(1,2), i(1,3) and i(2,3) are never set via the namelist I/O and remain at 0. So printing the namelist will get you: 1, 4, 7, 0 (=i(1,2)), 6, 8, 0 (=i(1,3)), 0 (=i(2,3)), 9 which seems perfectly OK with me. Closing the bug report as INVALID, i.e., not a bug. -- toon at moene dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39668