32 . NPRW ,DIMFB ,STABS ,TABS ,FBSAV6)
40#include "implicit_f.inc"
52 INTEGER :: DIMFB,STABS
53 INTEGER :: TABS(STABS),NPRW(*)
54 DOUBLE PRECISION FBSAV6(12,6,DIMFB)
55 TYPE (SENSOR_STR_) ,
TARGET :: SENSOR
59 INTEGER :: RW_ID,IDIR,,ISECT,N5,ACTI
60 my_real :: fmin,fmax,ff,fx,fy,fz,tmin,tdelay,tstart,tstops
63 tdelay = sensor%TDELAY
64 tstart = sensor%TSTART
67 rw_id = sensor%IPARAM(1)
68 idir = sensor%IPARAM(2)
69 fmin = sensor%RPARAM(1)
70 fmax = sensor%RPARAM(2)
78 isect = tabs(nsect+rw_id+1)-tabs(nsect+rw_id)
81 IF (nprw(n5) == 1)
THEN
82 isect = tabs(rw_id+nsect+ninter+nintsub+1)-tabs(rw_id+nsect+ninter+nintsub)
84 fx = fbsav6(1,1,isect)+fbsav6(1,2,isect)+
85 . fbsav6(1,3,isect)+fbsav6(1,4,isect)+
86 . fbsav6(1,5,isect)+fbsav6(1,6,isect)
88 ELSEIF (idir == 2)
THEN
89 fy = fbsav6(2,1,isect)+fbsav6(2,2,isect)+
90 . fbsav6(2,3,isect)+fbsav6(2,4,isect)+
91 . fbsav6(2,5,isect)+fbsav6(2,6,isect)
93 ELSEIF (idir == 4)
THEN
94 fz = fbsav6(3,1,isect)+fbsav6(3,2,isect)+
95 . fbsav6(3,3,isect)+fbsav6(3,4,isect)+
96 . fbsav6(3,5,isect)+fbsav6(3,6,isect)
98 ELSEIF (idir == 5)
THEN
99 fx = fbsav6(1,1,isect)+fbsav6(1,2,isect)+
100 . fbsav6(1,3,isect)+fbsav6(1,4,isect)+
101 . fbsav6(1,5,isect)+fbsav6(1,6,isect)
102 fy = fbsav6(2,1,isect)+fbsav6(2,2,isect)+
103 . fbsav6(2,3,isect)+fbsav6(2,4,isect)+
104 . fbsav6(2,5,isect)+fbsav6(2,6,isect)
105 fz = fbsav6(3,1,isect)+fbsav6(3,2,isect)+
106 . fbsav6(3,3,isect)+fbsav6(3,4,isect)+
107 . fbsav6(3,5,isect)+fbsav6(3,6,isect)
108 ff = sqrt(fx*fx + fy*fy + fz*fz)
109 ELSEIF (idir == 6)
THEN
110 fx = fbsav6(4,1,isect)+fbsav6(4,2,isect)+
111 . fbsav6(4,3,isect)+fbsav6(4,4,isect)+
112 . fbsav6(4,5,isect)+fbsav6(4,6,isect)
113 fy = fbsav6(5,1,isect)+fbsav6(5,2,isect)+
114 . fbsav6(5,3,isect)+fbsav6(5,4,isect)+
115 . fbsav6(5,5,isect)+fbsav6(5,6,isect)
116 fz = fbsav6(6,1,isect)+fbsav6(6,2,isect)+
117 . fbsav6(6,3,isect)+fbsav6(6,4,isect)+
118 . fbsav6(6,5,isect)+fbsav6(6,6,isect)
119 ff = sqrt(fx*fx + fy*fy + fz*fz)
121 sensor%RESULTS(1) = ff
123 IF (ff < fmin .OR. ff > fmax .OR. idir == 0) icrit = 1
128 sensor%TCRIT =
min(sensor%TCRIT, tt)
130 sensor%TCRIT = infinity
132 IF (sensor%TCRIT + tmin <= tt)
THEN
134 sensor%VALUE = tstops
135 IF (sensor%STATUS == 0)
THEN
143 IF (tt > tstops .AND. sensor%STATUS == 1)
THEN
145 sensor%TSTART = infinity
146 sensor%VALUE = infinity
156 WRITE (istdo,1100) sensor%SENS_ID,sensor%TSTART
158 WRITE (iout ,1200) sensor%SENS_ID,sensor%TSTART,fmin,ff
159 ELSE IF (ff > fmax)
THEN
160 WRITE (iout ,1200) sensor%SENS_ID,sensor%TSTART,fmax,ff
162#include "lockoff.inc"
164 ELSE IF (acti == 2)
THEN
167 WRITE (istdo,1300) sensor%SENS_ID,sensor%TSTART
168 WRITE (iout ,1300) sensor%SENS_ID,sensor%TSTART
169#include "lockoff.inc"
1731100
FORMAT(
' SENSOR (RWALL) NUMBER ',i10,
' ,ACTIVATED AT TIME ' ,1pe12.5)
1741200
FORMAT(
' SENSOR (RWALL) NUMBER ',i10,
' ,ACTIVATED AT TIME ',1pe12.5/
175 .
' TARGET FORCE VALUE =',1pe12.5/
176 .
' CURRENT VALUE AT TMIN + TDELAY =',1pe12.5)
1771300
FORMAT(
' SENSOR (RWALL) NUMBER ',i10,
' ,DEACTIVATED AT TIME ',1pe12.5)