! Copyright (C) GFD Dennou Club, 2000-2001.  All rights reserved
! sysdepabort.m4 - 環境依存性ルーチン（プログラム停止)

! メッセージを表示してプログラムを停止する。
! 通常の処理系では abort() があるのでこれでいい。たいていは異常終了する。
! abort() が実装されていない処理系では何もしない abort() を造ると
! あとの stop でとめることができる。

SUBROUTINE SYSDEPABORT(STRING)
    USE GTDATA_GENERIC, ONLY: GTVARSYNC
    USE DC_TRACE, ONLY: DBG_SCRATCH
    IMPLICIT NONE
    CHARACTER(LEN = *), INTENT(IN):: STRING
    INTEGER:: STAT
    WRITE(*, *) TRIM(STRING)
    CALL DBG_SCRATCH(.FALSE.)
    CALL GTVARSYNC(STAT=STAT)
    ! --- LAHEY ---
    CALL ERRTRA
    CALL SETRCD(13)
    CALL EXIT(3)

    STOP 'FAILSAFE'
END SUBROUTINE
