<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Can't help with in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/how-to-use-CreateTimerQueueTimer/m-p/1124511#M132483</link>
    <description>&lt;P&gt;Can't help with CreateTimerQueueTimer().&lt;/P&gt;

&lt;P&gt;However, if you have a Win32 program, you can accomplish this (ie, have Windows do something at a specified future time offset) by setting a windows timer which will send a message to a proc function in your code, ie,&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;! kernalUpdateTime in milliseconds
globalTimer = SetTimer (ghwndMain, 0, kernalUpdateTime, LOC(KernalTimerProc))

!
! Timer callback function for communications kernal. This subroutine
! is called by the communications kernal timer.
!
SUBROUTINE KernalTimerProc (hwnd, uMsg, idEvent, dwTime)
!DEC$ ATTRIBUTES DEFAULT :: KernalTimerProc
!DEC$ IF DEFINED(_X86_)
!DEC$ ATTRIBUTES STDCALL, ALIAS : '_KernalTimerProc@0' :: KernalTimerProc
!DEC$ ELSE
!DEC$ ATTRIBUTES STDCALL, ALIAS : 'KernalTimerProc' :: KernalTimerProc
!DEC$ ENDIF
	IMPLICIT NONE
    INTEGER(HANDLE), INTENT(IN)        :: hwnd
    INTEGER, INTENT(IN)                :: uMsg
    INTEGER, INTENT(IN)                :: idEvent
    INTEGER(DWORD), INTENT(IN)         :: dwTime

...
! and when your program ends, be sure to release the system resources
rval = KillTimer   (ghwndMain, globalTimer)&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 02 Jan 2017 23:55:21 GMT</pubDate>
    <dc:creator>Paul_Curtis</dc:creator>
    <dc:date>2017-01-02T23:55:21Z</dc:date>
    <item>
      <title>how to use CreateTimerQueueTimer</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/how-to-use-CreateTimerQueueTimer/m-p/1124510#M132482</link>
      <description>&lt;P&gt;​hello,&lt;/P&gt;

&lt;P&gt;​in order to port some old OpenVms Fortran code I need to create some function to emulate the SYS$SETIMR and its ATS routine callback feature.&lt;/P&gt;

&lt;P&gt;​To do that I've found that the use of CreateTimerQueueTimer function of the kernel32 should be ok, but unfortunatly this function is not inside the ifwinty.f90. I've try to create the interface myself but I do not figure out how the do for the type WAITORTIMERCALLBACK.&lt;/P&gt;

&lt;P&gt;​So I'm looking of some working sample in fortran of using CreateTimerQueueTimer to set a timer and when timer trig, it's execute the function that it(s pass as parameter.&lt;/P&gt;

&lt;P&gt;​thank's&lt;/P&gt;</description>
      <pubDate>Mon, 02 Jan 2017 20:32:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/how-to-use-CreateTimerQueueTimer/m-p/1124510#M132482</guid>
      <dc:creator>charles_d_</dc:creator>
      <dc:date>2017-01-02T20:32:20Z</dc:date>
    </item>
    <item>
      <title>Can't help with</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/how-to-use-CreateTimerQueueTimer/m-p/1124511#M132483</link>
      <description>&lt;P&gt;Can't help with CreateTimerQueueTimer().&lt;/P&gt;

&lt;P&gt;However, if you have a Win32 program, you can accomplish this (ie, have Windows do something at a specified future time offset) by setting a windows timer which will send a message to a proc function in your code, ie,&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;! kernalUpdateTime in milliseconds
globalTimer = SetTimer (ghwndMain, 0, kernalUpdateTime, LOC(KernalTimerProc))

!
! Timer callback function for communications kernal. This subroutine
! is called by the communications kernal timer.
!
SUBROUTINE KernalTimerProc (hwnd, uMsg, idEvent, dwTime)
!DEC$ ATTRIBUTES DEFAULT :: KernalTimerProc
!DEC$ IF DEFINED(_X86_)
!DEC$ ATTRIBUTES STDCALL, ALIAS : '_KernalTimerProc@0' :: KernalTimerProc
!DEC$ ELSE
!DEC$ ATTRIBUTES STDCALL, ALIAS : 'KernalTimerProc' :: KernalTimerProc
!DEC$ ENDIF
	IMPLICIT NONE
    INTEGER(HANDLE), INTENT(IN)        :: hwnd
    INTEGER, INTENT(IN)                :: uMsg
    INTEGER, INTENT(IN)                :: idEvent
    INTEGER(DWORD), INTENT(IN)         :: dwTime

...
! and when your program ends, be sure to release the system resources
rval = KillTimer   (ghwndMain, globalTimer)&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 02 Jan 2017 23:55:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/how-to-use-CreateTimerQueueTimer/m-p/1124511#M132483</guid>
      <dc:creator>Paul_Curtis</dc:creator>
      <dc:date>2017-01-02T23:55:21Z</dc:date>
    </item>
    <item>
      <title>thanks for the answer, will</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/how-to-use-CreateTimerQueueTimer/m-p/1124512#M132484</link>
      <description>&lt;P&gt;thanks for the answer, will see what I can do with this.&lt;/P&gt;

&lt;P&gt;regards&lt;/P&gt;</description>
      <pubDate>Tue, 03 Jan 2017 08:09:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/how-to-use-CreateTimerQueueTimer/m-p/1124512#M132484</guid>
      <dc:creator>charles_d_</dc:creator>
      <dc:date>2017-01-03T08:09:44Z</dc:date>
    </item>
  </channel>
</rss>

