1 | ! -*- Mode: f90 -*- |
---|
2 | ! ------------------------------------------------------------------ |
---|
3 | SUBROUTINE chrono ( kout) |
---|
4 | USE declare |
---|
5 | !! |
---|
6 | IMPLICIT NONE |
---|
7 | INTEGER (kind=r4), INTENT ( in) :: kout |
---|
8 | CHARACTER (len = 10) :: cldate, cltime, clzone |
---|
9 | INTEGER (kind=r4), DIMENSION ( 12) :: values |
---|
10 | REAL (kind=r4), SAVE :: time, time0 |
---|
11 | INTEGER (kind=r4), SAVE :: hour, hour0, min, min0, sec, sec0, mill, mill0 |
---|
12 | REAL (kind=r4) :: delai |
---|
13 | !! |
---|
14 | CALL DATE_AND_TIME ( cldate, cltime, clzone, values) |
---|
15 | !! |
---|
16 | READ ( unit = cltime, fmt = *) time |
---|
17 | IF ( time0 .LE. 0.0_r4 ) time0 = time |
---|
18 | !! |
---|
19 | CALL time2time ( time , hour , min , sec , mill ) |
---|
20 | CALL time2time ( time0, hour0, min0, sec0, mill0) |
---|
21 | !! |
---|
22 | delai = (mill-mill0) + 1000*((sec-sec0) + (min-min0)*60) |
---|
23 | !! |
---|
24 | WRITE ( kout, FMT = '( "Heure : ", 1I2, "h", 1I2.2, "m", 1I2.2, "s", 1I3.3, " --> diff = ", 1F12.5, " secondes" )') & |
---|
25 | & hour, min, sec, mill, delai / 1000.0 |
---|
26 | time0 = time |
---|
27 | !! |
---|
28 | CONTAINS |
---|
29 | SUBROUTINE time2time ( time, hour, min, sec, mill ) |
---|
30 | IMPLICIT NONE |
---|
31 | !! |
---|
32 | REAL (kind=r4), INTENT ( in) :: time |
---|
33 | INTEGER (kind=r4), INTENT ( out) :: hour, min, sec, mill |
---|
34 | REAL (kind=r4) :: z |
---|
35 | !! |
---|
36 | hour = INT ( time/10000.0 ) |
---|
37 | z = time - REAL ( hour,KIND=r4) * 10000 |
---|
38 | min = INT ( z/100.0_r4) |
---|
39 | z = z - REAL (min,KIND=r4)*100 |
---|
40 | sec = INT ( z ) |
---|
41 | z = ( z - REAL(sec,KIND=r4)) * 1000.0 |
---|
42 | mill = INT ( z ) |
---|
43 | !! |
---|
44 | RETURN |
---|
45 | END SUBROUTINE time2time |
---|
46 | END SUBROUTINE chrono |
---|