Opened 13 years ago
Closed 13 years ago
#457 closed enhancement (fixed)
Error in decays.f90
Reported by: | sschmidt | Owned by: | kilian |
---|---|---|---|
Priority: | P1 | Milestone: | v2.0.7 |
Component: | core | Version: | 2.0.6 |
Severity: | normal | Keywords: | |
Cc: |
Description
See the attached sin file, e+e- => tTH with subsequent factorized decays for the t and the W.
Executing it leads to a crash with the backtrace:
Runtime Error: decays.f90, line 430: Subscript 1 of IGNORE_HEL (value 1) is out of range (1:0) Program terminated by fatal error decays.f90, line 430: Error occurred in DECAYS:DECAY_INIT decays.f90, line 663: Called by DECAYS:DECAY_TREE_GENERATE_EVENT:DECAY_NODE_GENERATE_EVENT decays.f90, line 632: Called by DECAYS:DECAY_TREE_GENERATE_EVENT events.f90, line 207: Called by EVENTS:EVENT_GENERATE simulations.f90, line 978: Called by SIMULATIONS:SIMULATION_GENERATE_EVENT simulations.f90, line 1240: Called by SIMULATIONS:SIMULATION_EVENT commands.f90, line 5158: Called by COMMANDS:CMD_SIMULATE_EXECUTE commands.f90, line 1021: Called by COMMANDS:COMMAND_EXECUTE commands.f90, line 6050: Called by COMMANDS:COMMAND_LIST_EXECUTE whizard.f90, line 326: Called by WHIZARD:WHIZARD_PROCESS_STREAM whizard.f90, line 304: Called by WHIZARD:WHIZARD_PROCESS_FILE main.f90, line 353: Called by MAIN
during event generation. Compiled with gfortran, a similar error message occurs:
At line 430 of file decays.f90 Fortran runtime error: Index '1' of dimension 1 of array 'ignore_hel' above upper bound of 0
Reported by Jan Strube.
Attachments (1)
Change History (12)
Changed 13 years ago by
Attachment: | ticket457.sin added |
---|
comment:1 Changed 13 years ago by
Priority: | P3 → P1 |
---|
comment:2 Changed 13 years ago by
comment:3 Changed 13 years ago by
Status: | new → assigned |
---|
The problem is that the decay routine tries to use a process record that is completely un-initialized (garbage). This happens only if 'integrate' for the subprocess is issued after 'unstable'. If 'integrate' is done before 'unstable', or 'integrate' is omitted completely, everything's ok.
So the first workaround is to write 'unstable' after all integrations.
Investigating further ...
comment:4 Changed 13 years ago by
Priority: | P1 → P4 |
---|---|
Type: | defect → enhancement |
In r3664, I catch this as an error condition.
The user should write 'unstable' after all relevant integrations, since all decay channels have to be set up again if an integral changes.
Of course, this could be done automatically, so I keep the ticket. Either the automatic recheck may be implemented, or the required order is documented in the manual for the next release.
comment:5 Changed 13 years ago by
So hard it may seem: please try to work around this, and prepare a bug report.... The bug is still there in 4.6.2, actually. Could someone check 4.7.0., maybe Sebastian !?
comment:6 Changed 13 years ago by
@JR: Your last comment belongs to #460, I guess? Anyway, that is fixed. I'll file the bug report tomorrow.
comment:9 Changed 13 years ago by
Priority: | P4 → P2 |
---|
comment:11 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
The decays are now updated, where applicable, after each integration command, cf. r3746. The example works as intended.
This is really rather urgent....