32
33
34
35
36! - sensor state modification
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,infinity
66 parameter(infinity = 1.0e20)
67
68
69
70
71
72
73
74
75
76
77
78 IF (sensor%STATUS == 1) RETURN
79
80 IF (tt == zero) sensor%VAR(2) = ep20
81 tstart = sensor%TSTART
82 tdelay = sensor%TDELAY
83 tmin = sensor%TMIN
84 ign = sensor%IPARAM(1)
85 temp_max = sensor%VAR(1)
86 temp_min = sensor%VAR(2)
87 temp_avg = sensor%VAR(3)
88 icrit = 0
89 tflag = 0
90
91 IF (temp_avg > sensor%RPARAM(3)) THEN
92 icrit = 1
93 tflag = 3
94 ELSE IF (temp_max > sensor%RPARAM(1)) THEN
95 icrit = 1
96 tflag = 1
97 ELSE IF (temp_min < sensor%RPARAM(2)) THEN
98 icrit = 1
99 tflag = 2
100 END IF
101
102
103
104 IF (sensor%TCRIT + tmin > tt) THEN
105 IF (icrit == 0) THEN
106 sensor%TCRIT = infinity
107 ELSE IF (sensor%TCRIT == infinity) THEN
108 sensor%TCRIT = tt
109 END IF
110 END IF
111 tstart = sensor%TCRIT + tmin + tdelay
112 IF (tstart <= tt) THEN
113 sensor%STATUS = 1
114 sensor%TSTART = tstart
115 END IF
116
117 IF (sensor%STATUS == 1 .and. ispmd == 0) THEN
118#include "lockon.inc"
119 WRITE (istdo,1100 ) sensor%SENS_ID,sensor%TSTART
120 WRITE (iout ,1100 ) sensor%SENS_ID,sensor%TSTART
121 IF (tflag == 1) THEN
122 WRITE (iout ,1200) sensor%RPARAM(1),temp_max
123 ELSE IF (tflag == 2) THEN
124 WRITE (iout ,1300) sensor%RPARAM(2),temp_min
125 ELSE IF (tflag == 3) THEN
126 WRITE (iout ,1400) sensor%RPARAM(3),temp_avg
127 END IF
128#include "lockoff.inc"
129 ENDIF
130
1311100 FORMAT(' SENSOR TEMPERATURE NUMBER ',i10,' ACTIVATED AT TIME ',1pe12.5)
1321200 FORMAT(' TARGET MAX TEMPERATURE = ',1pe12.5,/
133 . ' CURRENT TEMPERATURE AFTER TMIN and TDELAY = ',1pe12.5)
1341300 FORMAT(' TARGET MIN TEMPERATURE = ',1pe12.5,/
135 . ' CURRENT TEMPERATURE AFTER TMIN and TDELAY = ',1pe12.5)
1361400 FORMAT(' TARGET AVG TEMPERATURE = ',1pe12.5,/
137 . ' current temperature after tmin and tdelay = ',1PE12.5)
138
139 RETURN