35 USE sensor_mod ,
ONLY : sensors_, sensor_str_,
36 . isenbuf, lsenbuf, nsenparr, nsenpari
43#include "implicit_f.inc"
48 INTEGER ,
INTENT(IN) :: NUMNOD
49 INTEGER ,
DIMENSION(NUMNOD) ,
INTENT(IN) ::
50 TYPE (SENSORS_) ,
TARGET ,
INTENT(IN) :: SENSORS
54 INTEGER I,ISEN,LEN,IAD,NFIX,NPARI,NPARR,NVAR,N1,N2,TYP
55 INTEGER,
DIMENSION(LTITR) :: ITITLE
56 INTEGER,
DIMENSION(:),
ALLOCATABLE :: LTEMP
57 my_real,
DIMENSION(:),
ALLOCATABLE :: rbuf
58 CHARACTER(LEN = nchartitle) :: TITLE
59 TYPE (SENSOR_STR_) ,
POINTER :: SENSOR
61 IF (sensors%NSENSOR > 0)
THEN
64 DO isen=1,sensors%NSENSOR
65 sensor => sensors%SENSOR_TAB(isen)
71 ALLOCATE (ltemp(npari))
72 ltemp(1:npari) = sensor%IPARAM(1:npari)
75 n1 = nodlocal(sensor%IPARAM(1))
76 n2 = nodlocal(sensor%IPARAM(2))
79 ELSE IF (typ == 9)
THEN
80 n1 = nodlocal(sensor%IPARAM(1))
82 ELSE IF (typ == 13)
THEN
84 n1 = nodlocal(sensor%IPARAM(1))
86 n2 = nodlocal(sensor%IPARAM(2))
90 ELSE IF (typ == 15)
THEN
91 ltemp(1) = nodlocal(sensor%IPARAM(1))
92 IF (sensor%IPARAM(2) == 0)
THEN
93 ltemp(3) = nodlocal(sensor%IPARAM(3))
94 ltemp(4) = nodlocal(sensor%IPARAM(4))
95 ltemp(5) = nodlocal(sensor%IPARAM(5))
99 len = nfix + npari + nparr + nvar
100 ALLOCATE (rbuf(len) )
103 rbuf(iad+1) = sensor%TYPE
104 rbuf(iad+2) = sensor%SENS_ID
105 rbuf(iad+3) = sensor%STATUS
106 rbuf(iad+4) = sensor%TCRIT
107 rbuf(iad+5) = sensor%TMIN
108 rbuf(iad+6) = sensor%TDELAY
109 rbuf(iad+7) = sensor%TSTART
110 rbuf(iad+8) = sensor%VALUE
111 rbuf(iad+9) = sensor%NPARI
112 rbuf(iad+10)= sensor%NPARR
113 rbuf(iad+11)= sensor%NVAR
118 rbuf(iad+i) = ltemp(i)
124 rbuf(iad+i) = sensor%RPARAM(i)
130 rbuf(iad+i) = sensor%VAR(i)
140 CALL fretitl(title,ititle,ltitr)
143 IF (typ==29.OR.typ==30.OR.typ==31)
THEN
144 CALL write_i_c(sensor%INTEGER_USERPARAM,nsenpari)
145 CALL write_i_c(sensor%INTEGER_USERBUF,isenbuf)
147 CALL write_db(sensor%FLOAT_USERPARAM,nsenparr)
148 CALL write_db(sensor%FLOAT_USERBUF,lsenbuf)
160 CALL write_i_c(sensors%LOGICAL_SENSORS_LIST,sensors%LOGICAL_SENSOR_COUNT)
166 CALL write_dpdb(sensors%FSAV,12*6*sensors%SFSAV)
167 CALL write_i_c(sensors%TABSENSOR,sensors%STABSEN)