]>
Commit | Line | Data |
---|---|---|
da0e9ce3 | 1 | |
2 | C********************************************************************* | |
3 | ||
4 | C...PYTIME | |
5 | C...Finds current date and time. | |
6 | C...Since this task is not standardized in Fortran 77, the routine | |
7 | C...is dummy, to be replaced by the user. Examples are given for | |
8 | C...the Fortran 90 routine DEC Fortran 77, GNU Linux g77, and what to | |
9 | C...do if you do not have access to suitable routines. | |
10 | ||
11 | SUBROUTINE PYTIME(IDATI) | |
12 | ||
13 | C...Double precision and integer declarations. | |
14 | IMPLICIT DOUBLE PRECISION(A-H, O-Z) | |
15 | IMPLICIT INTEGER(I-N) | |
16 | C INTEGER PYK,PYCHGE,PYCOMP | |
17 | C CHARACTER*8 ATIME | |
18 | C...Local array. | |
19 | INTEGER IDATI(6),IDTEMP(3) | |
20 | ||
21 | C...Example 0: if you do not have suitable routines. | |
22 | DO 100 J=1,6 | |
23 | IDATI(J)=0 | |
24 | 100 CONTINUE | |
25 | ||
26 | C...Example 1: Fortran 90 routine. | |
27 | C INTEGER IVAL(8) | |
28 | C CALL DATE_AND_TIME(VALUES=IVAL) | |
29 | C IDATI(1)=IVAL(1) | |
30 | C IDATI(2)=IVAL(2) | |
31 | C IDATI(3)=IVAL(3) | |
32 | C IDATI(4)=IVAL(5) | |
33 | C IDATI(5)=IVAL(6) | |
34 | C IDATI(6)=IVAL(7) | |
35 | ||
36 | C...Example 2: DEC Fortran 77. AIX. | |
37 | C CALL IDATE(IMON,IDAY,IYEAR) | |
38 | C IDATI(1)=IYEAR | |
39 | C IDATI(2)=IMON | |
40 | C IDATI(3)=IDAY | |
41 | C CALL ITIME(IHOUR,IMIN,ISEC) | |
42 | C IDATI(4)=IHOUR | |
43 | C IDATI(5)=IMIN | |
44 | C IDATI(6)=ISEC | |
45 | ||
46 | C...Example 3: DEC Fortran, IRIX, IRIX64. | |
47 | C CALL IDATE(IMON,IDAY,IYEAR) | |
48 | C IDATI(1)=IYEAR | |
49 | C IDATI(2)=IMON | |
50 | C IDATI(3)=IDAY | |
51 | C CALL TIME(ATIME) | |
52 | C IHOUR=0 | |
53 | C IMIN=0 | |
54 | C ISEC=0 | |
55 | C READ(ATIME(1:2),'(I2)') IHOUR | |
56 | C READ(ATIME(4:5),'(I2)') IMIN | |
57 | C READ(ATIME(7:8),'(I2)') ISEC | |
58 | C IDATI(4)=IHOUR | |
59 | C IDATI(5)=IMIN | |
60 | C IDATI(6)=ISEC | |
61 | ||
62 | C...Example 4: GNU LINUX libU77, SunOS. | |
63 | CALL IDATE(IDTEMP) | |
64 | IDATI(1)=IDTEMP(3) | |
65 | IDATI(2)=IDTEMP(2) | |
66 | IDATI(3)=IDTEMP(1) | |
67 | CALL ITIME(IDTEMP) | |
68 | IDATI(4)=IDTEMP(1) | |
69 | IDATI(5)=IDTEMP(2) | |
70 | IDATI(6)=IDTEMP(3) | |
71 | ||
72 | C...Common code to ensure right century. | |
73 | IDATI(1)=2000+MOD(IDATI(1),100) | |
74 | ||
75 | RETURN | |
76 | END |