LBEM-CH / focus

High Throughput Electron Microscopy Image Processing Software
http://www.focus-em.org
GNU General Public License v2.0
35 stars 14 forks source link

Fortran runtime error in 2dx #197

Open NoaDS opened 6 years ago

NoaDS commented 6 years ago

I have imported a set of images into FOCUS for electron crystallography processing. When running 'Get Lattice & Tilt' the output generates an error: At line 30 of file /Users/bs-hudson/jenkins/workspace/workspace/focus_nightly_build/label/OSX_10.12/kernel/mrc/source/2dx_emtilt.for (unit = 5, file = 'stdin') Fortran runtime error: Bad real number in item 1 of list input

Error termination. Backtrace:

Program received signal SIGABRT: Process abort signal.

If I try to skip this stage and go straight to 'Get SpotList' it also generates a similar error: At line 37 of file /Users/bs-hudson/jenkins/workspace/workspace/focus_nightly_build/label/OSX_10.12/kernel/mrc/source/2dx_calcmag.for (unit = 5, file = 'stdin') Fortran runtime error: Bad real number in item 1 of list input

Error termination. Backtrace:

Program received signal SIGABRT: Process abort signal.

sthennin commented 6 years ago

Hi, that line in EMTILT tries to read the old tilt axis. What entry do you have to the tilt axis? The Fortran line tries to read with format "*", which should take any number. But a character or an empty field might cause this problem. Henning.

NoaDS commented 6 years ago

Hi,

Thanks for your rapid response. As the sample is untitled I had selected 'no' under determine tilt geometry, by selecting 'yes' the error message no longer appears.

Many thanks.

sthennin commented 6 years ago

Hi, I was only able to reproduce your error, when deleting the entry for the tilt axis. That field doesn't accept any characters other than numbers, so you cannot enter text there. But if you enter nothing, i.e., "", then the following programs crash because the parameter is not given and the TLTAXIS field then will simply read the next number, so that all entries are shifted by one entry.

Are you sure you have a number "0.0" in the TLTAXIS field?

NoaDS commented 6 years ago

Dear Henning,

If I select ‘determine tilt axis’ then I no long get this error. Similarly, if I input “0.0” in the TLTAXIS field I can progress with the image processing.

However, I have encountered another error at the ‘Generate map’ stage:

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:

Program received signal SIGABRT: Process abort signal.

I have looked at the output of each script run and after ‘Get SpotList’ I have a note stating: Note: The following floating-point exceptions are signalling: IEEE_DIVIDE_BY_ZERO This note is in the output of all following scripts.

What is the source of this error and how do I overcome it?

Thanks in advance.

Ainhoa Dafis-Sagarmendi

On 3 Aug 2017, at 12:21, sthennin notifications@github.com wrote:

Hi, I was only able to reproduce your error, when deleting the entry for the tilt axis. That field doesn't accept any characters other than numbers, so you cannot enter text there. But if you enter nothing, i.e., "", then the following programs crash because the parameter is not given and the TLTAXIS field then will simply read the next number, so that all entries are shifted by one entry.

Are you sure you have a number "0.0" in the TLTAXIS field?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/C-CINA/focus/issues/197#issuecomment-319941711, or mute the thread https://github.com/notifications/unsubscribe-auth/AdPk1UqBfEVriHq0qHeBu-uvNMwrakplks5sUa1TgaJpZM4OrVTB.

sthennin commented 6 years ago

Hi, Sorry for the delay. Do you still see that error? This seems to be a new error, the SegFault in Generate Map. But which program is failing?

Don't be too worried about the IEEE_DIVIDE_BY_ZERO errors. Many of these are in F66 libraries in the MRC code which stem from 1960 when this was CCP4 libraries. These are very difficult to maintain, and are usually division by zero errors when trying to inverse a matrix or similar. In most cases, the programs continue without errors, despite the error message.