$! CALCULATE_VUPS: $ set noverify $ set noon $ say = "write sys$output" $ orig_privs = f$setprv("ALTPRI") $ process_priority = f$getjpi(0,"PRIB") $ if (f$getsyi("HW_MODEL") .lt. 1024) $ then $ cpu_multiplier = 10 ! vax $ cpu_round_add = 1 $ else $ cpu_multiplier = 40 ! alpha $ cpu_round_add = 9 $ endif $ cpu_round_divide = cpu_round_add + 1 $ init_counter = cpu_multiplier * 525 $ init_loop_maximum = 205 $ start_cputime = f$getjpi(0,"CPUTIM") $ loop_index = 0 $10$: $ loop_index = loop_index + 1 $ if (loop_index .ne. init_loop_maximum) then goto 10$ $ end_cputime = f$getjpi(0,"CPUTIM") $ init_vups = ((init_counter / (end_cputime - start_cputime) + - cpu_round_add) / cpu_round_divide) * cpu_round_divide $!$ say "Initial VUPS = ",init_vups/10 $ loop_maximum = (init_vups * init_loop_maximum) / 10 $ base_counter = (init_counter * init_vups) / 10 $ vups = 0 $ times_through_loop = 0 $20$: $ start_cputime = f$getjpi(0,"CPUTIM") $ loop_index = 0 $30$: $ loop_index = loop_index + 1 $ if (loop_index .ne. loop_maximum) then goto 30$ $ end_cputime = f$getjpi(0,"CPUTIM") $ new_vups = ((base_counter / (end_cputime - start_cputime) + - cpu_round_add) / cpu_round_divide) * cpu_round_divide $!$ say "New VUPS = ",new_vups/10 $ if (new_vups .eq. vups) then goto 40$ $ vups = new_vups $ times_through_loop = times_through_loop + 1 $ if (times_through_loop .le. 5) then goto 20$ $40$: $ new_privs = f$setprv(orig_privs) $ set message /nofacility/noidentification/noseverity/notext $ DEFINEE/SYSTEM/NOLOG/EXECUTIVE MACHINE_VUPS_RATING 'vups' $ set message /facility/identification/severity/text $ say "Approximate System VUPs Rating : ",vups/10,".",vups-((vups/10)*10) $ exitt 1