home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.os.vms:21599 biz.dec.workstations:53 vmsnet.alpha:122
- Newsgroups: comp.os.vms,biz.dec.workstations,vmsnet.alpha
- Path: sparky!uunet!spool.mu.edu!uwm.edu!ux1.cso.uiuc.edu!news.cso.uiuc.edu!uimrl7.mrl.uiuc.edu!ercolessi
- From: ercolessi@uimrl3.mrl.uiuc.edu (furio ercolessi)
- Subject: Re: cpu time measurement on VMS
- References: <1993Jan20.164619.8700@eecs.nwu.edu> <C164Hn.223@dscomsa.desy.de>
- Message-ID: <C16sB8.HsK@news.cso.uiuc.edu>
- Sender: usenet@news.cso.uiuc.edu (Net Noise owner)
- Reply-To: ercolessi@uimrl3.mrl.uiuc.edu (furio ercolessi)
- Organization: MRL - UIUC
- Date: Thu, 21 Jan 1993 04:25:56 GMT
- Lines: 54
-
- In article <C164Hn.223@dscomsa.desy.de>, tjl@zeus02.desy.de (Tim Llewellyn) writes:
- |>In article <1993Jan20.164619.8700@eecs.nwu.edu>, shil@eecs.nwu.edu (Lei Shi) writes:
- |>
- |>|> I have a FORTRAN program. I compile and link it and use run
- |>|>command to run it. My question is how I can measure the total CPU
- |>|>used by the execution of the program.
- |>|> In UNIX, I can easily use time to do it.
- |>|>But how do I do it in VMS?
-
- |>The are various alternatives. The simplest way is ...
- |> [...]
- |>Finally, if this is not
- |>sufficient you should investigate the run time library timer routine
- |>LIB$INIT_TIMER, LIB$SHOW_TIMER, LIB$STAT_TIMER ...
-
- ... as done, for instance, by the following
-
-
- DOUBLE PRECISION FUNCTION SECOND()
-
- ******** RETURNS THE ELAPSED CPU TIME, IN SECONDS.
-
- * VAX/VMS VERSION
- IMPLICIT NONE
- INTEGER*4 LIB$INIT_TIMER , LIB$STAT_TIMER
- INTEGER*4 STATUS,TIMER,ITIME(2)
- LOGICAL FIRST
- SAVE FIRST
- DATA FIRST / .TRUE. /
-
- IF (FIRST) THEN
- * FIRST CALL TO SECOND(). INITIALIZE TIMER, RETURN 0 TO USER:
- * NOTE: THE TIMER WILL BE NEVER FREED, BUT WHO CARES.
- STATUS = LIB$INIT_TIMER(TIMER)
- IF (.NOT.STATUS) CALL LIB$SIGNAL(%VAL(STATUS))
- FIRST = .FALSE.
- SECOND = 0.D0
- ELSE
- * NOT FIRST CALL. GET ELAPSED CPU TIME :
- STATUS = LIB$STAT_TIMER(2,ITIME,TIMER)
- IF (.NOT.STATUS) CALL LIB$SIGNAL(%VAL(STATUS))
- * ITIME(2) DISREGARDED HERE, PERHAPS SHOULD BE INCLUDED.
- SECOND = 0.01D0*ITIME(1)
- ENDIF
- RETURN
- END
-
- --
- furio ercolessi <furio@uiuc.edu>* <furio@sissa.it>+
- * materials research lab, uni illinois at urbana-champaign
- + intl school for advanced studies, trieste, italy
-
- "Change nothing and continue with immaculate consistency"
- [ Brian Eno, "Oblique Strategies" ]
-