source: TOOLS/MOZAIC/src/MOZAIC/chrono.f90 @ 3326

Last change on this file since 3326 was 3326, checked in by omamce, 7 years ago

O.M. : Utility to generate interpolatio weights for OASIS-MCT

File size: 1.5 KB
Line 
1! -*- Mode: f90 -*-
2! ------------------------------------------------------------------
3SUBROUTINE 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   !!
28CONTAINS
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
46END SUBROUTINE chrono
Note: See TracBrowser for help on using the repository browser.