50#include "implicit_f.inc"
57 TYPE (SENSORS_) ,
INTENT(INOUT) :: SENSORS
58 TYPE(python_),
INTENT(IN) :: PYTHON
62 INTEGER I,ISEN,LEN,IAD,NFIX,NPARI,NPARR,NVAR,TYP,NSENSOR,IERR
63 INTEGER,
DIMENSION(LTITR) :: ITITLE
64 my_real,
DIMENSION(:),
ALLOCATABLE :: head,rbuf
65 CHARACTER(LEN = NCHARTITLE) :: TITLE
68 nsensor = sensors%NSENSOR
69 ALLOCATE(sensors%SENSOR_TAB(nsensor))
73 ALLOCATE (head(nfix) )
78 sensors%SENSOR_TAB(isen)%TYPE = nint(head(1))
79 sensors%SENSOR_TAB(isen)%SENS_ID = nint(head(2))
80 sensors%SENSOR_TAB(isen)%STATUS = nint(head(3))
81 sensors%SENSOR_TAB(isen)%TCRIT = head(4)
82 sensors%SENSOR_TAB(isen)%TMIN = head(5)
83 sensors%SENSOR_TAB(isen)%TDELAY = head(6)
84 sensors%SENSOR_TAB(isen)%TSTART = head(7)
85 sensors%SENSOR_TAB(isen)%VALUE = head(8)
86 sensors%SENSOR_TAB(isen)%NPARI = nint(head(9))
87 sensors%SENSOR_TAB(isen)%NPARR = nint(head(10))
88 sensors%SENSOR_TAB(isen)%NVAR = nint(head(11))
90 npari = sensors%SENSOR_TAB(isen)%NPARI
91 nparr = sensors%SENSOR_TAB(isen)%NPARR
92 nvar = sensors%SENSOR_TAB(isen)%NVAR
94 ALLOCATE(sensors%SENSOR_TAB(isen)%IPARAM(npari))
95 ALLOCATE(sensors%SENSOR_TAB(isen)%RPARAM(nparr))
96 ALLOCATE(sensors%SENSOR_TAB(isen)%VAR(nvar))
98 len = npari + nparr + nvar
105 sensors%SENSOR_TAB(isen)%IPARAM(i) = nint(rbuf(iad+i))
111 sensors%SENSOR_TAB(isen)%RPARAM(i) = rbuf(iad+i)
117 sensors%SENSOR_TAB(isen)%VAR(i) = rbuf(iad+i)
127 sensors%SENSOR_TAB(isen)%TITLE = title
129 typ = sensors%SENSOR_TAB(isen)%TYPE
130 IF (typ == 29 .OR. typ == 30 .OR. typ == 31)
THEN
132 ALLOCATE(sensors%SENSOR_TAB(isen)%INTEGER_USERPARAM(nsenpari))
133 ALLOCATE(sensors%SENSOR_TAB(isen)%FLOAT_USERPARAM(nsenparr))
135 ALLOCATE(sensors%SENSOR_TAB(isen)%INTEGER_USERBUF(isenbuf))
136 ALLOCATE(sensors%SENSOR_TAB(isen)%FLOAT_USERBUF(lsenbuf))
138 CALL read_i_c(sensors%SENSOR_TAB(isen)%INTEGER_USERPARAM,nsenpari)
139 CALL read_i_c(sensors%SENSOR_TAB(isen)%INTEGER_USERBUF,isenbuf)
141 CALL read_db (sensors%SENSOR_TAB(isen)%FLOAT_USERPARAM,nsenparr)
142 CALL read_db (sensors%SENSOR_TAB(isen)%FLOAT_USERBUF,lsenbuf
146 CALL read_i_c(sensors%SENSOR_TAB(isen)%PYTHON_FUNCTION_ID,1)
147 pyid = sensors%SENSOR_TAB(isen)%PYTHON_FUNCTION_ID
148 CALL copy_python_function(python%FUNCTS(pyid),sensors%SENSOR_TAB(isen)%PYTHON_FUNCTION)
156 CALL read_i_c(sensors%LOGICAL_SENSOR_COUNT,1)
158 ALLOCATE(sensors%LOGICAL_SENSORS_LIST(sensors%LOGICAL_SENSOR_COUNT))
159 CALL read_i_c(sensors%LOGICAL_SENSORS_LIST,sensors%LOGICAL_SENSOR_COUNT)
164 ALLOCATE (sensors%FSAV(12,6,sensors%SFSAV) ,stat=ierr)
165 ALLOCATE (sensors%TABSENSOR(sensors%STABSEN),stat=ierr)
167 CALL read_dpdb(sensors%FSAV,12*6*sensors%SFSAV)
169 CALL read_i_c(sensors%TABSENSOR,sensors%STABSEN)
172 IF (mcheck /= 0 )
THEN
173 CALL read_i_c(sensors%STOP ,sensors%NSTOP)
175 IF (mcheck /= 0 .and. ispmd == 0)
THEN
176 CALL read_i_c(sensors%STAT ,sensors%NSTAT)
177 CALL read_i_c(sensors%OUTP ,sensors%NOUTP)
178 CALL read_i_c(sensors%ANIM ,sensors%NANIM)