2976
2977
2978
2979
2980
2981
2982
2983 INTEGER I
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008 INTEGER NTIMER
3009 parameter( ntimer = 64 )
3010 DOUBLE PRECISION STARTFLAG
3011 parameter( startflag = -5.0d+0 )
3012
3013
3014 DOUBLE PRECISION DCPUTIME00, DWALLTIME00
3015 EXTERNAL dcputime00, dwalltime00
3016
3017
3018 LOGICAL DISABLED
3019 DOUBLE PRECISION CPUSEC( NTIMER ), CPUSTART( NTIMER ),
3020 $ WALLSEC( NTIMER ), WALLSTART( NTIMER )
3021 COMMON /sltimer00/ cpusec, wallsec, cpustart, wallstart, disabled
3022
3023
3024
3025
3026
3027 IF( disabled )
3028 $ RETURN
3029
3030 IF( wallstart( i ).EQ.startflag ) THEN
3031
3032
3033
3034 wallstart( i ) = dwalltime00()
3035 cpustart( i ) = dcputime00()
3036
3037 ELSE
3038
3039
3040
3041 cpusec( i ) = cpusec( i ) + dcputime00() - cpustart( i )
3042 wallsec( i ) = wallsec( i ) + dwalltime00() - wallstart( i )
3043 wallstart( i ) = startflag
3044
3045 END IF
3046
3047 RETURN
3048
3049
3050