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 USE sensor_mod
66
67
68
69#include "implicit_f.inc"
70
71
72
73#include "com04_c.inc"
74#include "com08_c.inc"
75#include "units_c.inc"
76#include "task_c.inc"
77
78
79
80 INTEGER, INTENT(IN) :: NSENSOR,SENS
81 TYPE (SENSOR_STR_), INTENT(INOUT) ,DIMENSION(NSENSOR) :: SENSOR_TAB
82
83
84
85 INTEGER IS1,STATUS_IS1
86 INTEGER IS2,STATUS_IS2
87
88 INTEGER ACTI,SENS_ID
89 my_real tstart, tdelay,tstart1, tstops, infinity
90
91 infinity = ep20
92 acti = 0
93
94 sens_id = sensor_tab(sens)%SENS_ID
95 tstart = sensor_tab(sens)%TSTART
96 tdelay = sensor_tab(sens)%TDELAY
97 tstops = infinity
98
99 is1 = sensor_tab(sens)%IPARAM(1)
100 status_is1 = sensor_tab(is1)%STATUS
101 tstart1 = sensor_tab(is1)%TSTART
102
103 is2 = sensor_tab(sens)%IPARAM(2)
104 IF (is2 > 0) THEN
105 status_is2 = sensor_tab(is2)%STATUS
106 ENDIF
107
108 IF (sensor_tab(sens)%STATUS == -1)THEN
109 RETURN
110 ENDIF
111
112
113 IF (status_is1 <= 0) THEN
114 tstart1 = infinity
115 END IF
116
117 IF (status_is1 == 1) THEN
118 IF (sensor_tab(sens)%STATUS == 0) THEN
119 acti = 1
120 sensor_tab(sens)%STATUS = 1
121 sensor_tab(sens)%TSTART = tstart1
122 ENDIF
123 ENDIF
124
125 IF (tt > (tstart + tdelay) ) THEN
126
127 IF (is2 == 0) THEN
128 tstops = tt
129 ELSE
130 tstops = infinity
131 IF (sensor_tab(is2)%STATUS == 1) THEN
132 tstops = tt
133 ENDIF
134 ENDIF
135
136 IF (tstops <= tt) THEN
137 sensor_tab(sens)%TSTART = infinity
138 sensor_tab(sens)%STATUS = -1
139 acti = acti + 2
140 ENDIF
141 ENDIF
142
143
144 IF (acti == 1) THEN
145
146 IF (ispmd == 0) THEN
147 WRITE (istdo,1000) sensor_tab(sens)%SENS_ID,tstart1
148 WRITE (iout ,1000) sensor_tab(sens)%SENS_ID,tstart1
149 ENDIF
150
151 ELSE IF (acti == 2) THEN
152
153 IF (ispmd == 0) THEN
154 WRITE (istdo,1100) sensor_tab(sens)%SENS_ID,tt
155 WRITE (iout ,1100) sensor_tab(sens)%SENS_ID,tt
156 ENDIF
157
158 ENDIF
159
1601000 FORMAT(' SENSOR NUMBER ',i10,' ACTIVATED AT TIME ',1pe12.5)
1611100 FORMAT(' SENSOR NUMBER ',i10,' DEACTIVATED AT TIME ',1pe12.5)
162