38
39
40
41 USE sensor_mod
42
43
44
45#include "implicit_f.inc"
46
47
48
49#include "com01_c.inc"
50
51
52
53 INTEGER, INTENT(IN) :: NPT,NSENSOR,NEL,IP
55 . tt, dt1
57 . bpreld(nel,*),sig(nel,6)
58 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR) ,INTENT(IN) :: SENSOR_TAB
59
60
61
62 INTEGER I,K,ISENS
64 . ts,te
65
66
67
68 IF (ncycle == 0 .AND. ip == 1) THEN
69 DO i=1,nel
70 isens = int(bpreld(i,10))
71 IF (isens > 0)THEN
72 DO k=1,nsensor
73 IF(isens==sensor_tab(k)%SENS_ID) GOTO 100
74 ENDDO
75100 bpreld(i,10)=k
76 ENDIF
77 ENDDO
78 ENDIF
79
80 DO i=1,nel
81 ts = bpreld(i,1)
82 te = bpreld(i,2)
83 IF(bpreld(i,3) == zero)THEN
84 isens = int(bpreld(i,10))
85
86 IF (isens > 0) THEN
87 ts = ts+sensor_tab(isens)%TSTART
88 te = te+sensor_tab(isens)%TSTART
89 ENDIF
90 ENDIF
91
92 IF(bpreld(i,3) < one)THEN
93 IF(tt >= ts )THEN
94 sig(i,1) = bpreld(i,4)
95 sig(i,2) = bpreld(i,5)
96 sig(i,3) = bpreld(i,6)
97 sig(i,4) = bpreld(i,7)
98 sig(i,5) = bpreld(i,8)
99 sig(i,6) = bpreld(i,9)
100 bpreld(i,3) = real(ip)/real(npt)
101
102
103 bpreld(i,1) = ts
104 bpreld(i,2) = te
105 ENDIF
106 ENDIF
107 ENDDO
108
109
110 IF(bpreld(1,3) == one)THEN
111 ts = bpreld(1,1)
112 te = bpreld(1,2)
113
114 IF (tt <= (ts+em01*(te-ts))) THEN
115 DO i=1,nel
116 sig(i,1) = bpreld(i,4)
117 sig(i,2) = bpreld(i,5)
118 sig(i,3) = bpreld(i,6)
119 sig(i,4) = bpreld(i,7)
120 sig(i,5) = bpreld(i,8)
121 sig(i,6) = bpreld(i,9)
122 ENDDO
123 ELSE IF (tt >= te) THEN
124 DO i=1,nel
125 bpreld(i,3) = two
126 ENDDO
127 ENDIF
128 ENDIF
129
130
131 RETURN