35
36
37
38 USE sensor_mod
39
40
41
42#include "implicit_f.inc"
43
44
45
46#include "param_c.inc"
47#include "com04_c.inc"
48#include "com08_c.inc"
49
50
51
52 INTEGER, INTENT(IN) :: NEL,NSENSOR
53 INTEGER IGEO(NPROPGI,*),MGN(*)
54 my_real :: geo(npropg,*), off(*),
55 . dx(*),dy(*),dz(*),x0(*),y0(*),z0(*),rx(*),ry(*),rz(*)
56 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR) , INTENT(IN) :: SENSOR_TAB
57
58
59
60 INTEGER I, ISENS,K,USENS,IFL
61
62 DO i=1,nel
63 isens=0
64 usens=igeo(3,mgn(i))
65 ifl=nint(geo(80,mgn(i)))
66 DO k=1,nsensor
67 IF (abs(usens) == sensor_tab(k)%SENS_ID) isens=k
68 ENDDO
69 IF (ifl == 2) THEN
70
71
72
73
74
75
76
77
78 IF (tt > sensor_tab(isens)%TSTART .AND. off(i) == -ten) THEN
79 off(i) = one
80 x0(i) = x0(i) + dx(i)
81 y0(i) = y0(i) + dy(i)
82 z0(i) = z0(i) + dz(i)
83 dx(i) = zero
84 dy(i) = zero
85 dz(i) = zero
86 rx(i) = zero
87 ry(i) = zero
88 rz(i) = zero
89 ELSEIF (tt < sensor_tab(isens)%TSTART .AND. off(i) == one) THEN
90 off(i) = zero
91 ENDIF
92 ELSEIF (usens > 0) THEN
93
94
95
96
97
98
99
100
101 IF (tt > sensor_tab(isens)%TSTART .AND. off(i) == -ten)
102 . off(i) = one
103 ELSEIF (usens < 0) THEN
104
105
106
107
108
109
110
111
112 IF (tt > sensor_tab(isens)%TSTART) off(i) =zero
113 ENDIF
114 ENDDO
115
116 RETURN