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