Flag 80 in the SPHENOINPUT block should, I believe, ensure that SPheno exits with a non-zero exit code if a failure is encountered when the flag is set to 1. SPheno keeps giving a zero exit code, despite the having an error.
Checking through the source, a common way of terminating the program when an error is found is by calling the TerminateProgram subroutine; however, this subroutine does not ever check the value of Non_Zero_Exit (which is true when Flag 80 above is 1).
I'm not really familiar with Fortran, but I suspect that replacing
Code: Select all
Stop "Subroutine TerminateProgram"
Code: Select all
If (Non_Zero_Exit) Then
Error Stop "Subroutine TerminateProgram"
Else
Stop "Subroutine TerminateProgram"
End If
Josh