我正在使用the Reduced Precision Emulator library在某些Fortran代码中模拟降低的精度。该库提供了一种新类型,该类型可以用精度降低的变量替换实型变量,并重载基本的算术运算,以便在每次操作后均将其截断。该库使用元素子例程来实现此目的。
我想在满足某些条件但基本子例程具有限制性的情况下(在截断操作期间)在库中触发错误。我使用了the answer to this previous question中的代码来从精度降低的仿真器库的基本子例程中触发错误。但是,触发的错误不会产生任何回溯。我使用了gfortran编译器,并在主要的Fortran代码和库本身的编译中尝试了-g和-ftraceback,但是只有在基本子例程之外产生错误时,我才得到回溯。
有人知道我如何在元素子例程中触发错误并获得有用的回溯吗?
我正在编辑的代码是https://github.com/aopp-pred/rpe/blob/master/src/rp_emulator.F90,特别是基本函数adjust_ieee_half。