home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / os / vms / 21599 < prev    next >
Encoding:
Internet Message Format  |  1993-01-21  |  2.5 KB

  1. Xref: sparky comp.os.vms:21599 biz.dec.workstations:53 vmsnet.alpha:122
  2. Newsgroups: comp.os.vms,biz.dec.workstations,vmsnet.alpha
  3. Path: sparky!uunet!spool.mu.edu!uwm.edu!ux1.cso.uiuc.edu!news.cso.uiuc.edu!uimrl7.mrl.uiuc.edu!ercolessi
  4. From: ercolessi@uimrl3.mrl.uiuc.edu (furio ercolessi)
  5. Subject: Re: cpu time measurement on VMS
  6. References:  <1993Jan20.164619.8700@eecs.nwu.edu> <C164Hn.223@dscomsa.desy.de>
  7. Message-ID: <C16sB8.HsK@news.cso.uiuc.edu>
  8. Sender: usenet@news.cso.uiuc.edu (Net Noise owner)
  9. Reply-To: ercolessi@uimrl3.mrl.uiuc.edu (furio ercolessi)
  10. Organization: MRL - UIUC
  11. Date: Thu, 21 Jan 1993 04:25:56 GMT
  12. Lines: 54
  13.  
  14. In article <C164Hn.223@dscomsa.desy.de>, tjl@zeus02.desy.de (Tim Llewellyn) writes:
  15. |>In article <1993Jan20.164619.8700@eecs.nwu.edu>, shil@eecs.nwu.edu (Lei Shi) writes:
  16. |>
  17. |>|> I have a FORTRAN program. I compile and link it and use run
  18. |>|>command to run it.  My question is how I can measure the total CPU
  19. |>|>used by the execution of the program. 
  20. |>|> In UNIX, I can easily use time to do it.  
  21. |>|>But how do I do it in VMS?
  22.  
  23. |>The are various alternatives. The simplest way is ...
  24. |> [...] 
  25. |>Finally, if this is not
  26. |>sufficient you should investigate the run time library timer routine
  27. |>LIB$INIT_TIMER, LIB$SHOW_TIMER, LIB$STAT_TIMER ... 
  28.  
  29. ... as done, for instance, by the following
  30.  
  31.  
  32.       DOUBLE PRECISION FUNCTION SECOND()
  33.  
  34. ******** RETURNS THE ELAPSED CPU TIME, IN SECONDS.
  35.  
  36. *        VAX/VMS VERSION
  37.       IMPLICIT NONE
  38.       INTEGER*4 LIB$INIT_TIMER , LIB$STAT_TIMER
  39.       INTEGER*4 STATUS,TIMER,ITIME(2)
  40.       LOGICAL FIRST
  41.       SAVE FIRST
  42.       DATA FIRST / .TRUE. /
  43.  
  44.       IF (FIRST) THEN
  45. *           FIRST CALL TO SECOND(). INITIALIZE TIMER, RETURN 0 TO USER:
  46. *           NOTE: THE TIMER WILL BE NEVER FREED, BUT WHO CARES.
  47.          STATUS = LIB$INIT_TIMER(TIMER)
  48.          IF (.NOT.STATUS) CALL LIB$SIGNAL(%VAL(STATUS))
  49.          FIRST = .FALSE.
  50.          SECOND = 0.D0
  51.       ELSE
  52. *           NOT FIRST CALL. GET ELAPSED CPU TIME :
  53.          STATUS = LIB$STAT_TIMER(2,ITIME,TIMER)
  54.          IF (.NOT.STATUS) CALL LIB$SIGNAL(%VAL(STATUS))
  55. *           ITIME(2) DISREGARDED HERE, PERHAPS SHOULD BE INCLUDED.
  56.          SECOND = 0.01D0*ITIME(1)
  57.       ENDIF
  58.       RETURN
  59.       END
  60.  
  61. --
  62. furio ercolessi    <furio@uiuc.edu>*    <furio@sissa.it>+
  63. * materials research lab, uni illinois at urbana-champaign
  64. + intl school for advanced studies, trieste, italy   
  65.  
  66. "Change nothing and continue with immaculate consistency"
  67.                                       [ Brian Eno, "Oblique Strategies" ]
  68.