File: conmsg.f

package info (click to toggle)
nastran 0.1.95-2
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm, bullseye, sid
  • size: 122,540 kB
  • sloc: fortran: 284,409; sh: 771; makefile: 324
file content (111 lines) | stat: -rw-r--r-- 3,918 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
      SUBROUTINE CONMSG (MESAGE, NWORDS, IDUMMY)
C
      INTEGER FCHAR
      REAL INCTIM, MODTIM
      CHARACTER   CTIME*8,AHEAD*41,MCHNAM*11,MACHOS*7
C
      character (len=12) real_clock(3), time
      integer values(8)
      character(4) cvalues(8)
      equivalence(values,cvalues)
      DIMENSION MESAGE(1)
      DIMENSION ICRDAT(3)
      DIMENSION IDATE(3), ITIME(3)
C
      COMMON /CHMACH/ MCHNAM, MACHOS
      COMMON /LOGOUT/ LOUT
      COMMON /SYSTEM/ ISYSTM(175)
C
      EQUIVALENCE (ISYSTM( 15), IDATE(1)),
     *            (ISYSTM( 18), CPUSTR),
     *            (ISYSTM( 42), ICRDAT),
     *            (ISYSTM( 75), CPUTIM),
     *            (ISYSTM(151), NLLOG ),
     *            (ISYSTM(152), LOGLIN),
     *            (ISYSTM(159), LOGPAG),
     *            (ISYSTM(160), OLDCPU)
C
      DATA IDSMS,IWRTT,IAUDT,IMPYA /4HDSMS, 4HWRTT, 4HAUDT, 4HMPYA/
      DATA MODTIM /0.0/
      DATA IDASH /4H----/
C
C   ASSEMBLE PAGE HEADING
C
      AHEAD = ' '
      NCMNAM = INDEX(MCHNAM,' ') - 1
      IF (NCMNAM .LE. -1) NCMNAM = 11
      NCMOS  = INDEX(MACHOS,' ') - 1
      IF (NCMOS .LE. -1) NCMOS = 7
      FCHAR = (18 - NCMNAM - NCMOS) + 1
      AHEAD(FCHAR:FCHAR+6)='LOG OF '
      FCHAR = FCHAR + 7
      WRITE (AHEAD(FCHAR:FCHAR+1),15) ICRDAT(3)
   15 FORMAT (A2)
      FCHAR = FCHAR + 3
      AHEAD(FCHAR:41) = MCHNAM(1:NCMNAM) // ' ' // MACHOS(1:NCMOS) //
     1 ' NASTRAN JOB'
C
      IMODTM = 0
      IF (IDUMMY.EQ.111111 .OR. IDUMMY.EQ.222222)
     *    IMODTM = IDUMMY/111111
      IF (LOGLIN.LT.NLLOG.AND.LOGLIN.GT.0) GO TO 300
      IF (LOGLIN.EQ.0) WRITE (LOUT, 2000) IDATE, AHEAD
      IF (LOGLIN.EQ.0) WRITE (LOUT, 2055)
      IF (MESAGE(1).EQ.IDSMS.AND.NWORDS.EQ.1) RETURN
      IF (MESAGE(1).EQ.IWRTT.AND.NWORDS.EQ.1) RETURN
      IF (MESAGE(1).EQ.IAUDT.AND.NWORDS.EQ.1) RETURN
      IF (MESAGE(1).EQ.IMPYA.AND.NWORDS.EQ.1) RETURN
  300 CALL NASTIM (ITIME(1), ITIME(2), ITIME(3), CPUTMM)
      WRITE (CTIME,2056) ITIME
      call date_and_time(real_clock(1), time, Real_clock(3),
     1                  values)
C
 2056 FORMAT (2( I2,':'),I2)
      IF (CTIME(4:4) .EQ. ' ') CTIME(4:4) = '0'
      IF (CTIME(7:7) .EQ. ' ') CTIME(7:7) = '0'
      CPUTMM = CPUTMM + OLDCPU - CPUSTR
      INCTIM = CPUTMM - CPUTIM
      IF (CPUTIM.EQ.0.0) INCTIM = 0.0
      IF (IMODTM.EQ.1) MODTIM = 0.0
      IF (IMODTM.EQ.2) MODTIM = CPUTMM - MODTIM
      MWORDS = MIN0 (NWORDS, 15)
      IF (IMODTM.NE.2) WRITE (LOUT,2100) time(1:2),time(3:4),time(5:10),
     *                        CPUTMM, INCTIM,(MESAGE(I), I = 1, MWORDS)
      IF (IMODTM.EQ.2) WRITE (LOUT,2110) time(1:2),time(3:4),time(5:10),
     *               CPUTMM, INCTIM, MODTIM, (MESAGE(I), I = 1, MWORDS)
      call flush(4)
C
      LOGLIN = LOGLIN + 1
      CPUTIM = CPUTMM
      IF (IMODTM.EQ.1) MODTIM = CPUTMM
      RETURN
C
 2000 FORMAT (1H1,  77(1H*)/
     *        1X , 1H*,  75X, 1H*/
     *        1X , 1H*, 7X, 'DATE ', 2(I2, '/'), I2,
     *                   7X, A41, 7X, 1H*/
     *        1X , 1H*,  75X, 1H*/
     *        1X ,  77(1H*)/)
 2055 FORMAT (1X, 2X, 'WALL', 15X,
     *                'TOTAL', 7X,
     *                'INCREMENTAL', 6X,
     *                'MODULE', 14X,
     *                'MODULE/'/
     *        1X, 2X, 'CLOCK', 15X,
     *                'CPU', 12X,
     *                'CPU', 12X,
     *                'CPU', 13X,
     *                'SUBROUTINE'/
     *        1X, 2X, 'TIME', 14X,
     *                'SECONDS', 8X,
     *                'SECONDS', 8X,
     *                'SECONDS', 13X,
     *                'STATUS'//
     *        1X,  78(1H-)/)
 2100 FORMAT (1X, a2,':',a2,':',a6,
     *                 4X, F10.3,  5X, F10.3, 15X,
     *                             5X, A4, 2X, 2A4, 2X, 12A4)
 2110 FORMAT (1X, a2,':',a2,':',a6,
     *                 4X, F10.3,  5X, F10.3,  5X, F10.3,
     *                             5X, A4, 2X, 2A4, 2X, 12A4)
      END