[Ifeffit] Demeter-devel MacPorts Athena issues & work-around
Matt Newville
newville at cars.uchicago.edu
Sun Jul 6 18:55:54 CDT 2014
On Sun, Jul 6, 2014 at 5:24 PM, Bruce Ravel <bravel at bnl.gov> wrote:
>
> Matt,
>
> You're right. I was too grouchy. Margaret Anne, I apologize if I was too
> mean-spirited in my emails over the weekend.
>
>
>
> On 07/06/2014 05:54 PM, Matt Newville wrote:
>
>> Wait, what? What text string is configured to be only 256 characters?
>> Something must be very wrong with the Macports installation - this file
>> opens just fine for me, though I haven't tested it with the Macports
>> version.
>>
>> The "read_data()" command in ifeffit uses a line length of 2048
>> characters, and should not crash on a longer line, but truncate lines to
>> 2048 characters (silently, which is irritating when encountered, but not
>> as bad as crashing). I've written and used thousands of data files
>> with comment and data lines longer than 256 characters. I believe
>> there is (and should be) nothing in the code for reading data that sets
>> a limit as low as 256 characters (File names are allowed to be 512
>> characters!), and nothing that should cause a crash on larger lines.
>>
>> Of course it's fine to use a plugin for specific file types, and
>> probably wise to not rely of ifeffit's read_data() for really big files
>> (though, again, I regularly read files of 35 to 40 columns without a
>> plugin). But this seems to me like its a Macports-only problem to me
>> that should be fixed.
>>
>
> I guess I explained it poorly, but it is not a MacPorts-only problem.
>
> It /opens/ just fine. That's not the problem.
>
> It's a problem with iff_show, which Athena uses to fetch the names of the
> column labels after ifeffit reads the data file. Here's what happens if
> you exercise iff_show by hand:
>
> bruce at atropos [demeter] > ifeffit
> Ifeffit 1.2.11d Copyright (c) 2008 Matt Newville, Univ of Chicago
> command-line shell version 1.1 with GNU Readline
> Ifeffit> read_data (file="/home/bruce/Mn0214_7dMnO2_Header_exafsscan1.dat",
> group=a)
> Ifeffit> show @strings
> $plot_devices = /png /tpng /null /ps /vps /cps /vcps /xwindow /xserve
> $plot_device = /xserve
> $group = a
> $commentchar = #
> $&build = 1.2.11d Copyright (c) 2008 Matt Newville, Univ of Chicago
> $&install_dir = /usr/local/share/ifeffit
> $column_label = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
> 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
> 48 49 50 51 52 53 54 55 56 57
> $column_label1 = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
> 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
> 48 49 50 51 52 53 54 55 56 57
> $a_title_01 = S 1 exafsscan
> $a_title_02 = C exafs_edge_energy 6.539
> $a_title_03 = C exafs_region -150 -20 26 1 0 0 0
> $a_title_04 = C exafs_region -20 34.1959 108 1 0 0 0
> $a_title_05 = C exafs_region 34.1959 972.683 260 1 0 1 1.4
> $a_title_06 = D Wed Feb 26 22:19:02 2014
> $a_title_07 = T 4.58834 (Seconds)
> $a_title_08 = G0 0
> $a_title_09 = G1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> 0 0 0 0 0
> $a_title_10 = G3 0 0 0 0 0 0 0 0 0
> $a_title_11 = G4 0
> $a_title_12 = Q
> $a_title_13 = P0 17.707645 -0.3425 33.862069 -0.80317213 -18.366667
> 0.175013 -0.175013 8.99922
> $a_title_14 = P1 8.49884 8.74903 -5.0037582 8.74903 1.7763568e-14 0
> 3.5002457 9.4148
> $a_title_15 = P2 -44.9992 -23.95 -30.75 97.52 19.252 -11.58 8.4175
> -2.25125
> $a_title_16 = P3 -5.11125 1.4875 0.7325 1.5 85 0 -600
> $a_title_17 = N 57
>
> At line 436 of file iff_show.f
> Fortran runtime error: End of record
> bruce at atropos [demeter] >
>
>
> Line 436 of iff_show is
>
> write(messg,11) s(1:k), ' = ', t(1:j)
>
> messg is defined just above that as character*256. I interpreted this as
> attempting to put a 330 character string in a character*256 variable. But,
> in truth, I did not examine the code all that closely.
>
> I suppose I could have worked on fixing Ifeffit, but the plugin took way
> less time. And my time would be better spent making Demeter use Larch
> properly.
>
>
Or perhaps upgraded (see
https://github.com/newville/ifeffit/commit/0b3512552dd08a85d4d69cbd32b4e525e30f8a63
)? One of the problems of using a deprecated and poorly supported library,
I suppose -- the Fortran code does have many shortcomings, but such
crashes should definitely be addressed.
The MacPorts (and other versions) may want to build with the 1.2.12 source
code from github -- this isn't the only problem fixed in the past 6 years.
--Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://millenia.cars.aps.anl.gov/pipermail/ifeffit/attachments/20140706/6a231c98/attachment.html>
More information about the Ifeffit
mailing list