32
33
34
35
36
37
38
39
40
42 USE sensor_mod
43
44
45
46#include "implicit_f.inc"
47#include "comlock.inc"
48
49
50
51#include "units_c.inc"
52#include "com04_c.inc"
53#include "com08_c.inc"
54#include "task_c.inc"
55
56
57
58 INTEGER :: ISENS
59 TYPE(GROUP_) ,DIMENSION(NGRNOD) ,INTENT(IN) :: IGRNOD
60 TYPE (SENSOR_STR_) :: SENSOR
61
62
63
64 INTEGER :: I,IGN,ICRIT,TFLAG
65 my_real :: tstart,tdelay,tmin,temp_max,temp_min,temp_avg
66
67
68
69
70
71
72
73
74
75
76
77 IF (sensor%STATUS == 1) RETURN
78
79 IF (tt == zero) sensor%VAR(2) = ep20
80 tstart = sensor%TSTART
81 tdelay = sensor%TDELAY
82 tmin = sensor%TMIN
83 ign = sensor%IPARAM(1)
84 temp_max = sensor%VAR(1)
85 temp_min = sensor%VAR(2)
86 temp_avg = sensor%VAR(3)
87 icrit = 0
88 tflag = 0
89
90 IF (temp_avg > sensor%RPARAM(3)) THEN
91 icrit = 1
92 tflag = 3
93 ELSE IF (temp_max > sensor%RPARAM(1)) THEN
94 icrit = 1
95 tflag = 1
96 ELSE IF (temp_min < sensor%RPARAM(2)) THEN
97 icrit = 1
98 tflag = 2
99 END IF
100
101
102
103 IF (sensor%TCRIT + tmin > tt) THEN
104 IF (icrit == 0) THEN
105 sensor%TCRIT = infinity
106 ELSE IF (sensor%TCRIT == infinity) THEN
107 sensor%TCRIT = tt
108 END IF
109 END IF
110 tstart = sensor%TCRIT + tmin + tdelay
111 IF (tstart <= tt) THEN
112 sensor%STATUS = 1
113 sensor%TSTART = tstart
114 END IF
115
116 IF (sensor%STATUS == 1 .and. ispmd == 0) THEN
117#include "lockon.inc"
118 WRITE (istdo,1100 ) sensor%SENS_ID,sensor%TSTART
119 WRITE (iout ,1100 ) sensor%SENS_ID,sensor%TSTART
120 IF (tflag == 1) THEN
121 WRITE (iout ,1200) sensor%RPARAM(1),temp_max
122 ELSE IF (tflag == 2) THEN
123 WRITE (iout ,1300) sensor%RPARAM(2),temp_min
124 ELSE IF (tflag == 3) THEN
125 WRITE (iout ,1400) sensor%RPARAM(3),temp_avg
126 END IF
127#include "lockoff.inc"
128 ENDIF
129
1301100 FORMAT(' SENSOR TEMPERATURE NUMBER ',i10,' ACTIVATED AT TIME ',1pe12.5)
1311200 FORMAT(' TARGET MAX TEMPERATURE = ',1pe12.5,/
132 . ' CURRENT TEMPERATURE AFTER TMIN and TDELAY = ',1pe12.5)
1331300 FORMAT(' TARGET MIN TEMPERATURE = ',1pe12.5,/
134 . ' CURRENT TEMPERATURE AFTER TMIN and TDELAY = ',1pe12.5)
1351400 FORMAT(' TARGET AVG TEMPERATURE = ',1pe12.5,/
136 . ' CURRENT TEMPERATURE AFTER TMIN and TDELAY = ',1pe12.5)
137
138 RETURN