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@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@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. B -- Bruce Ravel ------------------------------------ bravel@bnl.gov National Institute of Standards and Technology Synchrotron Science Group at NSLS --- Beamlines U7A, X24A, X23A2 Building 535A Upton NY, 11973 Homepage: http://xafs.org/BruceRavel Software: https://github.com/bruceravel