MODULE HANDLER_MOD CONTAINS INTEGER(4) FUNCTION MY_HANDLER(SIGNUM) BIND(C) USE IFCORE INTEGER(2),INTENT(IN),VALUE :: SIGNUM INTEGER(INT_PTR_KIND()) :: EPTRS EPTRS = GETEXCEPTIONPTRSQQ() CALL TRACEBACKQQ("Application SIGFPE error!",USER_EXIT_CODE=-1,EPTR=EPTRS) STOP MY_HANDLER = 1 END FUNCTION MY_HANDLER END MODULE HANDLER_MOD PROGRAM SIGTEST USE IFPORT USE HANDLER_MOD REAL, VOLATILE :: R1,R3 ! VOLATILE to disable optimizations INTEGER(INT_PTR_KIND()) :: STS R3 = 0.0E0 STS = SIGNALQQ(SIG$FPE,MY_HANDLER) ! Cause a divide by zero exception R1 = 3.0E0/R3 END