[petsc-dev] SETERRQ in fortran

Jed Brown jed at jedbrown.org
Fri Feb 2 12:36:52 CST 2018


https://bitbucket.org/petsc/petsc/pull-requests/852/change-fortran-seterra-and-seterrq-to-be/diff

"Smith, Barry F." <bsmith at mcs.anl.gov> writes:

>> On Jan 31, 2018, at 3:17 PM, Jed Brown <jed at jedbrown.org> wrote:
>> 
>> "Smith, Barry F." <bsmith at mcs.anl.gov> writes:
>> 
>>>> On Jan 31, 2018, at 3:12 PM, Jed Brown <jed at jedbrown.org> wrote:
>>>> 
>>>> I think his point is that Fortran has a one-line if statement (no then
>>>> and no endif), which simplifies the macro and usage.
>>>> 
>>>> if (cond) SETERRQ(...)
>>> 
>>>   That doesn't work because the SETERRQ() has both the call to the error handler followed by a return which is two lines in Fortran.
>> 
>> Ah, right.  Would it make sense for PetscError to call MPI_Abort when
>> called in this context?
>
>   I don't think so. We want the traceback stack from Fortran as well as C, hence we want to return and not just abort.
>
>    Your proposed change (of pulling out the endif) is fine with me, I don't think there are viable alternatives.
>
>   Barry


More information about the petsc-dev mailing list