41
42
43
49 USE sensor_mod
51
52
53
54#include "implicit_f.inc"
55
56
57
58#include "com04_c.inc"
59#include "param_c.inc"
60#include "units_c.inc"
61
62
63
64 INTEGER IACTIV(LACTIV,*)
66
67 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
68 TYPE (GROUP_) , DIMENSION(NGRQUAD) :: IGRQUAD
69 TYPE (GROUP_) , DIMENSION(NGRSHEL) :: IGRSH4N
70 TYPE (GROUP_) , DIMENSION(NGRSH3N) :: IGRSH3N
71 TYPE (GROUP_) , DIMENSION(NGRTRUS) :: IGRTRUSS
72 TYPE (GROUP_) , DIMENSION(NGRBEAM) :: IGRBEAM
73 TYPE (GROUP_) , DIMENSION(NGRSPRI) :: IGRSPRING
74 TYPE (SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
75 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
76 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
77
78
79
80 INTEGER I,J,ID,ISEN,IGSH,IGSH3,IGBR,IGQU,IGBM,IGTR,IGSP,
81 INTEGER IFORM
83 LOGICAL :: IS_AVAILABLE
84 CHARACTER(LEN=NCHARTITLE) :: TITR
85
87 DO i=1,nactiv
90 . option_titr = titr)
91
92 CALL hm_get_intv(
'ISENSOR',isen,is_available,lsubmodel)
93 CALL hm_get_intv(
'GR_BRICK_SET',igbr,is_available,lsubmodel)
94 CALL hm_get_intv(
'GR_QUAD_SET',igqu,is_available,lsubmodel)
95 CALL hm_get_intv(
'GRSHEL_SET',igsh,is_available,lsubmodel)
96 CALL hm_get_intv(
'GR_TRUSS_SET',igtr,is_available,lsubmodel)
97 CALL hm_get_intv(
'GR_BEAM_SET',igbm,is_available,lsubmodel)
98 CALL hm_get_intv(
'GR_SPRING_SET',igsp,is_available,lsubmodel)
99 CALL hm_get_intv(
'GR_SH3N_SET',igsh3,is_available,lsubmodel)
100 CALL hm_get_intv(
'ACTIV_Iform',iform,is_available,lsubmodel)
101
102 IF(iform == 0) iform = 1
103 factiv(1,i) = zero
104 factiv(2,i) = zero
105
106 iactiv(1,i) = 1
107 iactiv(2,i) = isen
108 iactiv(3,i) = igbr
109 iactiv(4,i) = igqu
110 iactiv(5,i) = igsh
111 iactiv(6,i) = igtr
112 iactiv(7,i) = igbm
113 iactiv(8,i) = igsp
114 iactiv(9,i) = igsh3
115 iactiv(10,i) = iform
116
117 IF (isen > 0) THEN
118 ierr1 = 1
119 DO j=1,sensors%NSENSOR
120 IF (isen == sensors%SENSOR_TAB(j)%SENS_ID) THEN
121 iactiv(2,i) = j
122 ierr1 = 0
123 EXIT
124 ENDIF
125 ENDDO
126 IF (ierr1 == 1) THEN
128 . msgtype=msgerror,
129 . anmode=aninfo,
131 . c1=titr,
132 . i2=isen)
133 ENDIF
134 ENDIF
135
136 IF (iform == 2) THEN
137 CALL hm_get_floatv(
'ACTIV_Tstart' ,startt ,is_available ,lsubmodel ,unitab)
139 IF (stopt == zero) stopt= infinity
140 IF (isen > 0) THEN
141 j = iactiv(2,i)
142 factiv(1,i) = startt + sensors%SENSOR_TAB(j)%TCRIT
143 factiv(2,i) = stopt + sensors%SENSOR_TAB(j)%TCRIT
144 ELSE
145 factiv(1,i) = startt
146 factiv(2,i) = stopt
147 ENDIF
148 ENDIF
149
150 IF (igbr > 0) THEN
151 ierr1 = 1
152 DO j=1,ngrbric
153 IF (igbr == igrbric(j)%ID) THEN
154 iactiv(3,i) = j
155 ierr1 = 0
156 EXIT
157 ENDIF
158 ENDDO
159 IF (ierr1 == 1) THEN
161 . msgtype=msgerror,
162 . anmode=aninfo,
164 . c1=titr,
165 . i2=igbr)
166 ENDIF
167 ENDIF
168
169 IF (igqu > 0) THEN
170 ierr1 = 1
171 DO j=1,ngrquad
172 IF (igqu == igrquad(j)%ID) THEN
173 iactiv(4,i) = j
174 ierr1 = 0
175 EXIT
176 ENDIF
177 ENDDO
178 IF (ierr1 == 1) THEN
180 . msgtype=msgerror,
181 . anmode=aninfo,
183 . c1=titr,
184 . i2=igqu)
185 ENDIF
186 ENDIF
187
188 IF (igsh > 0) THEN
189 ierr1 = 1
190 DO j=1,ngrshel
191 IF (igsh == igrsh4n(j)%ID) THEN
192 iactiv(5,i) = j
193 ierr1 = 0
194 EXIT
195 ENDIF
196 ENDDO
197 IF (ierr1 == 1) THEN
199 . msgtype=msgerror,
200 . anmode=aninfo,
202 . c1=titr,
203 . i2=igsh)
204 ENDIF
205 ENDIF
206
207 IF (igtr > 0) THEN
208 ierr1 = 1
209 DO j=1,ngrtrus
210 IF (igtr == igrtruss(j)%ID) THEN
211 iactiv(6,i) = j
212 ierr1 = 0
213 EXIT
214 ENDIF
215 ENDDO
216 IF (ierr1 == 1) THEN
218 . msgtype=msgerror,
219 . anmode=aninfo,
221 . c1=titr,
222 . i2=igtr)
223 ENDIF
224 ENDIF
225
226 IF (igbm > 0) THEN
227 ierr1 = 1
228 DO j=1,ngrbeam
229 IF (igbm == igrbeam(j)%ID) THEN
230 iactiv(7,i) = j
231 ierr1 = 0
232 EXIT
233 ENDIF
234 ENDDO
235 IF (ierr1 == 1) THEN
237 . msgtype=msgerror,
238 . anmode=aninfo,
240 . c1=titr,
241 . i2=igbm)
242 ENDIF
243 ENDIF
244
245 IF (igsp > 0) THEN
246 ierr1 = 1
247 DO j=1,ngrspri
248 IF (igsp == igrspring(j)%ID) THEN
249 iactiv(8,i) = j
250 ierr1 = 0
251 EXIT
252 ENDIF
253 ENDDO
254 IF (ierr1 == 1) THEN
256 . msgtype=msgerror,
257 . anmode=aninfo,
259 . c1=titr,
260 . i2=igsp)
261 ENDIF
262 ENDIF
263
264 IF (igsh3 > 0) THEN
265 ierr1 = 1
266 DO j=1,ngrsh3n
267 IF (igsh3 == igrsh3n(j)%ID) THEN
268 iactiv(9,i) = j
269 ierr1 = 0
270 EXIT
271 ENDIF
272 ENDDO
273 IF (ierr1 == 1) THEN
275 . msgtype=msgerror,
276 . anmode=aninfo,
278 . c1=titr,
279 . i2=igsh3)
280 ENDIF
281 ENDIF
282
283 IF(mod(i,50) == 1) WRITE(iout,1000)
284 IF(iform == 1) THEN
285 WRITE(iout,'(1X,10(1X,I10))')
286 .
id,isen,igbr,igqu,igsh,igtr,igbm,igsp,igsh3,iform
287 ELSEIF(iform == 2) THEN
288 WRITE(iout,'(1X,10(1X,I10),1X,G20.13,1X,G20.13)')
289 .
id,isen,igbr,igqu,igsh,igtr,igbm,igsp,igsh3,iform,startt,stopt
290 ENDIF
291 ENDDO
292
293 RETURN
294
295 1000 FORMAT(//
296 . ' ELEMENT ACTIVATION-DEACTIVATION '/
297 . ' ------------------------------- '/ 4x,
298 . ' OPTION-NB SENSOR',
299 . ' BRICK-GR QUAD-GR SHELL-GR TRUSS-GR',
300 . ' BEAM-GR SPRING-GR SH3N-GR FORM-FLAG',2x,
301 . ' START-TIME STOP-TIME')
302
303 RETURN
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_start(entity_type)
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)