IFNOTDEF(MEAS) #%%A-RCB-0047-SL-18-7 RATFOR LIBRARY TIMING ROUTINE TIMERX SUBROUTINE TIMERX ENDIFDEF IFDEF(MEAS) # RATFOR LIBRARY TIMING ROUTINE MESURX SUBROUTINE MESURX ENDIFDEF INTEGER*4 COUNT(200),TICS,TEMP IFDEF(MEAS) INTEGER*4 CALLS(200),TCALLS INTEGER SFLAG ENDIFDEF REAL NAMES(200),NTEMP LOGICAL*1 HOLD(6),FN(41),T(9),D(9) IFNOTDEF(MEAS) COMMON /TIMERC/ NAMES, COUNT, TICS, NUMNAM, ELAPSD,FN ENDIFDEF IFDEF(MEAS) COMMON/MESURC/NAMES,COUNT,CALLS,TCALLS,SFLAG,TICS,NUMNAM, ELAPSD,FN ENDIFDEF N=NUMNAM NUMNAM=-1 #TURNS OFF TIMER IF(N .LE. 0) RETURN ELAPSD=SECNDS(ELAPSD) CLOSE(UNIT=1) OPEN(UNIT=1,NAME=FN) IF(N .LE. 1) GO TO 50 DO I=1,N-1 { DO J=1,N-I { IF(COUNT(J) .GE. COUNT(J+1)) NEXT TEMP=COUNT(J) COUNT(J) = COUNT(J+1) COUNT(J+1) = TEMP NTEMP=NAMES(J) NAMES(J)= NAMES(J+1) NAMES(J+1) = NTEMP IFDEF(MEAS) TEMP = CALLS(J) CALLS(J) = CALLS(J+1) CALLS(J+1) = TEMP ENDIFDEF } } CALL DATE(D) CALL TIME(T) IFNOTDEF(MEAS) 50 WRITE(1,55) D,T,ELAPSD,TICS,N 55 FORMAT(' PROGRAM RUN ON ',9A1,' AND FINISHED AT ',9A1,/_ ' ',F10.2,' SECONDS ELAPSED TIME',/1X,I11,' SAMPLES', I8, ' ROUTINES' // _ 1X,'NAME',12X,'SAMPLES'/) ENDIFDEF IFDEF(MEAS) 50 WRITE(1,55) D,T,ELAPSD,TICS,TCALLS,N 55 FORMAT(' PROGRAM RUN ON ',9A1,' AND FINISHED AT ',9A1,/_ ' ',F10.2,' SECONDS ELAPSED TIME'/, 1X,I11,' SAMPLES', 2X,I11,' TOTAL CALLS',I8, ' ROUTINES' // _ 1X,'NAME',12X,'SAMPLES',17X,'CALLS',8X,'TIME/EXECUTION'/) ENDIFDEF DO I=1,N{ TPRCNT = FLOAT(COUNT(I))/FLOAT(TICS) * 100. IFDEF(MEAS) CPRCNT = FLOAT(CALLS(I))/FLOAT(TCALLS) * 100. IF ( CALLS(I) >> 0) TPERC = ELAPSD * .01 * TPRCNT / FLOAT(CALLS(I)) #TIME/CALL ELSE TPERC = ELAPSD * .01 * TPRCNT / 1. # COUNT AS 1 CALL ENDIFDEF CALL R50ASC(6,NAMES(I),HOLD) IFNOTDEF(MEAS) WRITE(1,65) HOLD,COUNT(I),TPRCNT 65 FORMAT(1X,6A1,I11,2X,F7.2,'%') ENDIFDEF IFDEF(MEAS) WRITE(1,65) HOLD,COUNT(I),TPRCNT,CALLS(I),CPRCNT,TPERC 65 FORMAT(1X,6A1,I11,2X,F7.2,'%',2X,I11,2X,F7.2,'%',4X,1PE11.4) ENDIFDEF } CLOSE(UNIT=1) RETURN END