[mod.computers.vax] SYS$SETIMR

U00159@HASARA5.BITNET (03/16/87)

I want to execute a routine every 3 seconds. I thought to
do that with SYS$SETIMR. However I have problems with it.

Appendix D-2 of the VAX Fortran User's guide gives an example
of SYS$SETIMR. It says that to execute the AST routine repeatedly
one must reset the timer. My question is : How ?

The program here does not compile.

program try
implicit none

include '($syssrvnam)'
external astproc

integer status

character*(*) delay
parameter (delay='0 00:00:03.00')

logical done
integer bindelay(2)
common /uva/ done, bindelay
volatile /uva/

status = sys$bintim(delay, bindelay)
if ( .not. status) call lib$stop(%VAL(status))

status = sys$setimr(,bindelay,astproc,)
if ( .not. status) call lib$stop(%VAL(status))

done = .false.
do while (.not. done)
end do

end
*--
subroutine astproc
implicit none

include '($syssrvnam)'
include 'sys$library:uisentry'
include 'sys$library:uisusrdef'

integer status

logical done
integer bindelay(2)
common /uva/ done,bindelay

call uis$sound_bell('sys$workstation',4)

C now reset timer
status = SYS$SETIMR(,bindelay,astproc,)
if (.not. status) call lib$stop(%VAL(status))

return
end

*--------
The compiler gives the following messages

FORT-F-INVLEXEME, Variable name, constant or expression invalid in
this context.
[lay,astproc, )] in module astproc

Can someone help me ?

Alco Blom
u00159@HASARA5 (BITNET)
mcvax!u00159@HASARA5.bitnet  (UUCP)