41#include "implicit_f.inc"
52 TYPE (SENSOR_STR_) :: SENSOR
56 INTEGER NPT,NPH,IADFX,IADFY,IADMX,IADMY,ICRIT
57 my_real ::
for,mom,dt,time,nijmax,nic,
alpha,beta,cfc,tmin,tdelay,
58 . wd,wa,wa2,wa3,a0,a1,a2,b1,b2,x0,x1,x2,y1,y2,yf,ym
71 IF (sensor%STATUS == 1)
RETURN
72 IF (sensor%VAR(3) == zero)
RETURN
75 tdelay = sensor%TDELAY
76 nijmax = sensor%RPARAM(1)
77 alpha = sensor%RPARAM(6)
78 cfc = sensor%RPARAM(7)
88 wa3 = one + sqr2*wa + wa2
92 b1 = -two*(wa2 - one) / wa3
93 b2 = (-one + sqr2*wa - wa2) / wa3
109 x1 = sensor%VAR(iadfx+5)
110 x2 = sensor%VAR(iadfx+4)
111 y1 = sensor%VAR(iadfy+5)
112 y2 = sensor%VAR(iadfy+4)
114 yf = a0*x0 + a1*x1 + a2*x2 + b1*y1 + b2*y2
116 sensor%VAR(iadfx+1) = sensor%VAR(iadfx+2)
117 sensor%VAR(iadfx+2) = sensor%VAR(iadfx+3)
118 sensor%VAR(iadfx+3) = sensor%VAR(iadfx+4)
119 sensor%VAR(iadfx+4) = sensor%VAR(iadfx+5)
120 sensor%VAR(iadfx+5) =
for
122 sensor%VAR(iadfy+1) = sensor%VAR(iadfy+2)
123 sensor%VAR(iadfy+2) = sensor%VAR(iadfy+3)
124 sensor%VAR(iadfy+3) = sensor%VAR(iadfy+4)
125 sensor%VAR(iadfy+4) = sensor%VAR(iadfy+5)
126 sensor%VAR(iadfy+5) = yf
130 x0 = sensor%VAR(iadfx+nph)
131 x1 = sensor%VAR(iadfx+nph+1)
132 x2 = sensor%VAR(iadfx+nph+2)
133 y1 = sensor%VAR(iadfy+nph+1)
134 y2 = sensor%VAR(iadfy+nph+2)
136 for = a0*x0 + a1*x1 + a2*x2 + b1*y1 + b2*y2
140 x1 = sensor%VAR(iadmx+5)
141 x2 = sensor%VAR(iadmx+4)
142 y1 = sensor%VAR(iadmy+5)
143 y2 = sensor%VAR(iadmy+4)
145 ym = a0*x0 + a1*x1 + a2*x2 + b1*y1 + b2*y2
147 sensor%VAR(iadmx+1) = sensor%VAR(iadmx+2)
148 sensor%VAR(iadmx+2) = sensor%VAR(iadmx+3)
149 sensor%VAR(iadmx+3) = sensor%VAR(iadmx+4)
150 sensor%VAR(iadmx+4) = sensor%VAR(iadmx+5)
151 sensor%VAR(iadmx+5) = mom
153 sensor%VAR(iadmy+1) = sensor%VAR(iadmy+2)
154 sensor%VAR(iadmy+2) = sensor%VAR(iadmy+3)
155 sensor%VAR(iadmy+3) = sensor%VAR(iadmy+4)
156 sensor%VAR(iadmy+4) = sensor%VAR(iadmy+5)
157 sensor%VAR(iadmy+5) = ym
161 x0 = sensor%VAR(iadmx+nph)
162 x1 = sensor%VAR(iadmx+nph+1)
163 x2 = sensor%VAR(iadmx+nph+2)
164 y1 = sensor%VAR(iadmy+nph+1)
165 y2 = sensor%VAR(iadmy+nph+2)
166 mom = a0*x0 + a1*x1 + a2*x2 + b1*y1 + b2*y2
169 IF (nic >= nijmax) icrit = 1
173 IF (sensor%TCRIT + tmin > tt)
THEN
175 sensor%TCRIT = infinity
176 ELSE IF (sensor%TCRIT == infinity)
THEN
177 sensor%TCRIT =
min(sensor%TCRIT, tt)
179 ELSE IF (sensor%TSTART == infinity)
THEN
180 sensor%TSTART = sensor%TCRIT + tmin + tdelay
182 IF (sensor%TSTART <= tt)
THEN
186 IF (sensor%STATUS == 1 .and. ispmd == 0)
THEN
188 WRITE (istdo,1100 ) sensor%SENS_ID,sensor%TSTART,nic
189 WRITE (iout ,1100 ) sensor%SENS_ID,sensor%TSTART,nic
190 WRITE (iout ,1200) nijmax,nic
191#include "lockoff.inc"
1941100
FORMAT(
' SENSOR (RBODY) NUMBER ',i10,
' ,ACTIVATED AT TIME ',1pe12.5)
1951200
FORMAT(
' TARGET NIC VALUE = ',1pe12.5,/
196 .
' CURRENT NIC VALUE AFTER TMIN and TDELAY = ',1pe12.5)