!  McFortranModelTPL.f90
!
!  FUNCTIONS/SUBROUTINES exported from McFortranModelTPL.dll:
!  McFortranModelTPL      - subroutine
!
subroutine McFortranModelTPL

  ! Expose subroutine McFortranModelTPL to users of this DLL
  !
  !DEC$ ATTRIBUTES DLLEXPORT::McFortranModelTPL

  ! Variables

  ! Body of McFortranModelTPL

end subroutine McFortranModelTPL



!
!  受信データ取得処理
subroutine GetRcvData(DTPTN)
    implicit none
    Integer DTPTN
    integer MAXIN
    PARAMETER(MAXIN=500)

    COMMON /RECVDT/RcvDtNum,RcvDt(0:MAXIN),RcvTime,validFlg
    Real(8) RcvDt,RcvTime
    Integer validFlg,RcvDtNum

    ! データパターン(DTPTN)別に受信データを取得する
!                                    integer J
!                                    WRITE(1,110) DTPTN
!                                110 FORMAT('GetRcvData',T16,'PTN=',I12 )
!                                    WRITE(1,120) RcvDtNum,RcvTime,validFlg
!                                120 FORMAT('    GetRcvDataNum=',I12,'  RcvTime=', F9.3, ' Flg=',I12 )
!                                    DO 20 J=0,RcvDtNum-1
!                                            WRITE(1,130) J,RcvDt(J)
!                                            130 FORMAT('         RcvDt(',I3,')=',F12.3 )
!                                    20 CONTINUE

end subroutine GetRcvData



!===================================================================
! 以下の処理は、特別なことがない限り、そのまま使用してよい
!===================================================================
!
!  受信情報として取得したい時刻を知らせる
!  処理不要ならば、中身を実装しない
subroutine GetRcvDataTime
    implicit none
    integer MAXIN
    PARAMETER(MAXIN=500)

    COMMON /CTL/SimTime,TargetTime,deltaT
    Real(8) SimTime,TargetTime,deltaT

    COMMON /RECVDT/RcvDtNum,RcvDt(0:MAXIN),RcvTime,validFlg
    Real(8) RcvDt,RcvTime
    Integer validFlg,RcvDtNum

    ! 取得したいデータの時刻を指定する
    RcvTime = SimTime

    Call DebugOut('GetRcvDataTime')
end subroutine GetRcvDataTime

!
!  計算開始時にコールされる処理
!  処理不要ならば、中身を実装しない
integer function StartCalc()
    implicit none
    Call DebugOpen
    Call DebugOut('StartCalc')
    StartCalc=0  ! 異常なければ0を返す、異常有れば -1を返す
    return
end function StartCalc

!
!  計算終了時にコールされる処理
!  処理不要ならば、中身を実装しない
integer function EndCalc()
    implicit none
    Call DebugOut('EndCalc')
    Call DebugClose
    EndCalc=0  ! 異常なければ0を返す、異常有れば -1を返す
    return
end function EndCalc

!
!  計算中断時にコールされる処理
!  処理不要ならば、中身を実装しない
integer function SuspendCalc()
    implicit none
    Call DebugOut('SuspendCalc')
    SuspendCalc=0  ! 異常なければ0を返す、異常有れば -1を返す
    return
end function SuspendCalc
