61#include "implicit_f.inc"
69 TYPE (SENSORS_),
INTENT(INOUT) :: SENSORS
74 INTEGER SENS_TYPE,SENS_COUNT,IERROR
75 INTEGER DEP_LIST(2),NUM_ITEM
76 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SORTED_SENSORS
78 sensors%LOGICAL_SENSOR_COUNT = 0
80 ALLOCATE(sorted_sensors(sensors%NSENSOR))
82 DO i=1,sensors%NSENSOR
84 SELECT CASE(sensors%SENSOR_TAB(i)%TYPE)
87 dep_list(1) = sensors%SENSOR_TAB(i)%IPARAM(1)
88 dep_list(2) = sensors%SENSOR_TAB(i)%IPARAM(2)
90 IF(dep_list(2) == 0 )
THEN
96 CALL set_graph_add_set(i, dep_list,num_item)
97 sensors%LOGICAL_SENSOR_COUNT = sensors%LOGICAL_SENSOR_COUNT +1
101 dep_list(1) = sensors%SENSOR_TAB(i)%IPARAM(1)
102 dep_list(2) = sensors%SENSOR_TAB(i)%IPARAM(2)
104 CALL set_graph_add_set(i, dep_list,num_item)
105 sensors%LOGICAL_SENSOR_COUNT = sensors%LOGICAL_SENSOR_COUNT +1
109 dep_list(1) = sensors%SENSOR_TAB(i)%IPARAM(1)
110 dep_list(2) = sensors%SENSOR_TAB(i)%IPARAM(2)
112 CALL set_graph_add_set(i, dep_list,num_item)
113 sensors%LOGICAL_SENSOR_COUNT = sensors%LOGICAL_SENSOR_COUNT +1
117 dep_list(1) = sensors%SENSOR_TAB(i)%IPARAM(1)
119 CALL set_graph_add_set(i, dep_list,num_item)
120 sensors%LOGICAL_SENSOR_COUNT = sensors%LOGICAL_SENSOR_COUNT +1
126 CALL set_graph_add_set(i, dep_list,num_item)
131 CALL set_graph_sort(sorted_sensors, ierror)
132 CALL set_graph_clean()
138 CALL ancmsg(msgid=2095,anmode=aninfo,msgtype=msgerror,i1=-ierror)
141 ALLOCATE (sensors%LOGICAL_SENSORS_LIST(sensors%LOGICAL_SENSOR_COUNT))
147 DO i=1,sensors%NSENSOR
148 j = sorted_sensors(i)
149 sens_type = sensors%SENSOR_TAB(j)%TYPE
151 IF( sens_type == sens_sens .OR. sens_type == sens_and .OR.
152 * sens_type == sens_or .OR. sens_type == sens_not )
THEN
154 sens_count = sens_count + 1
155 sensors%LOGICAL_SENSORS_LIST(sens_count) = j
161 DEALLOCATE(sorted_sensors)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)