bugGNU Octave - Bugs: bug #48025, io package: read_namelist fails...

 
 

bug #48025: io package: read_namelist fails for complex values

Submitter:  ryusuke numata <rnumata>
Submitted:  Thu 26 May 2016 11:33:47 AM UTC
   
 
Category:  Octave Package Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Incorrect Result
Status:  Fixed Assigned to:  philipnienhuis
Originator Name:  Open/Closed:  * Closed
Release:  * other Operating System:  * Any
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Sun 19 Jun 2016 09:42:18 PM UTC, comment #4: 

I applied your patch and pushed here:
http://hg.code.sf.net/p/octave/io/rev/fb1d6b365205

Next I cleaned up read_namelist.m and write_namelist.m into Octave coding style, added copyright dates and added your example as a test to read_namelist.m.
I fixed the conversion errors by changing the variables nmlst_bdy and line, if empty, into "" (rather than a numeric []0x0 ).

Thanks very much for your contribution.

Closing report.

Philip Nienhuis <philipnienhuis>
Group Member
Sun 29 May 2016 07:16:06 AM UTC, comment #3: 

Philip,

Thanks, please do.

In addition to the reported error, write_namelist gives implicit conversion warning only in version >=4 at line 105. It is great if you fix this at the same time. Maybe you can do


nmlst_bdy = [ num2str(nmlst_bdy) " " num2str(line) ];


-- ryusuke (is my first name)

ryusuke numata <rnumata>
Sat 28 May 2016 08:07:33 PM UTC, comment #2: 

ryusuke (is that your first name?),

The namelist() I/O functions aren't my code (they were contributed) and I don't use them myself; as far as I could see with my rusty FORTRAN skills your patches won't harm other functionality.

I tend to accept your patch more or less verbatim, apart from maybe some style fixes, and credit you.

Philip Nienhuis <philipnienhuis>
Group Member
Thu 26 May 2016 07:51:44 PM UTC, comment #1: 

Thanks, I'll have a look.

OS -> any
Release -> other

Philip Nienhuis <philipnienhuis>
Group Member
Thu 26 May 2016 11:33:47 AM UTC, original submission:  

read_namelist and write_namelist in io are the function to read and write Fortran namelist. When reading complex numbers read_namelist gives a syntax error, and when writing write_namelist writes just real parts.

namelist_test.in and namelist_test.m are the sample to reproduce the problem.

A complex value in namelist consists of a pair of parentheses surrounding the real and imaginary parts, separated by a comma. I've written a code to handle this as given in the attached patch. I don't think it'a good code, but at least it works for the test case.

ryusuke numata <rnumata>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #37272:  patch.io added by rnumata (1KiB - application/octet-stream)
file #37273:  namelist_test.m added by rnumata (93B - application/octet-stream)
file #37274:  namelist_test.in added by rnumata (80B - application/octet-stream)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by mtmiller (Updated the item)
  • -email is unavailable- added by rnumata (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 9 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2016-06-19 philipnienhuis StatusNone Fixed
        Open/ClosedOpen Closed
    2016-05-26 philipnienhuis Assigned toNone philipnienhuis
        Release4.0.2 other
        Operating SystemMac OS Any
    2016-05-26 mtmiller Summaryread_namelist fails for complex values io package: read_namelist fails for complex values
    2016-05-26 rnumata Attached File- Added patch.io, #37272
        Attached File- Added namelist_test.m, #37273
        Attached File- Added namelist_test.in, #37274

    Back to the top

    Powered by Savane 3.13-4448.
    Corresponding source code