66
67
68
76 USE sensor_mod
89 use element_mod , only : nixc,nixtg
90
91
92
93#include "implicit_f.inc"
94
95
96
97
98#include "com04_c.inc"
99
100#include "scr17_c.inc"
101
102#include "r2r_c.inc"
103
104#include "param_c.inc"
105
106
107#include "units_c.inc"
108
109
110
111 TYPE(MONVOL_STRUCT_), DIMENSION(NVOLU + NMONVOL), INTENT(INOUT) :: T_MONVOL
112 TYPE(MONVOL_METADATA_), INTENT(INOUT) :: T_MONVOL_METADATA
113 TYPE(UNIT_TYPE_), INTENT(IN) :: UNITAB
114 my_real,
INTENT(IN) :: x(3, numnod), geo(npropg, numgeo), pm(npropm, nummat), pld(2, *),
115 . xframe(nxframe,*)
116 INTEGER, INTENT(IN) :: NPC(*), NPT(*), ITAB(*), ITABM1(*),
117 . IXC(NIXC, NUMELC), IXTG(NIXTG, NUMELTG),IPM(NPROPMI, NUMMAT),
118 . IGEO(NPROPGI, NUMGEO),IFRAME(LISKN,*)
119 INTEGER, INTENT(INOUT) :: NOM_OPT(LNOPT1, *)
120 TYPE (SURF_), INTENT(INOUT), DIMENSION(NSURF) :: IGRSURF
121 TYPE (GROUP_), DIMENSION(NGRBRIC), INTENT(IN) :: IGRBRIC
122 TYPE (SUBMODEL_DATA), DIMENSION(NSUBMOD), INTENT(IN) :: LSUBMODEL
123 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
124
125
126
127 INTEGER :: II, JJ
128 INTEGER :: NVB, ITYPE, ID, UID, LOCAL_UID
129 CHARACTER(len=ncharkey) :: KEY
130 CHARACTER(len=nchartitle) :: TITR
131 LOGICAL :: FOUND
132
133
134
135
136 WRITE(iout, 1000)
137 t_monvol_metadata%LCA = 0
138 nvb = 0
139
140
141
142
144 DO ii = 1, nmonvol
145 nvb = nvb + 1
146
147 IF (nsubdom > 0) THEN
148 IF(
tagmon(nvb) == 0)
THEN
150 ENDIF
151 ENDIF
153 . keyword2 = key)
155 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,ii),ltitr)
156
157 found = .false.
158 DO jj = 1,unitab%NUNITS
159 IF (unitab%UNIT_ID(jj) == uid) THEN
160 found = .true.
161 local_uid = jj
162 EXIT
163 ENDIF
164 ENDDO
165 IF (.NOT. found) THEN
166 CALL ancmsg(msgid = 659, anmode = aninfo, msgtype = msgerror,
167 . i2 = uid, i1 =
id, c1 =
'MONITORED VOLUME', c2 =
'MONITORED VOLUME', c3=titr)
168 ENDIF
169 IF (key(1:4) == 'AREA') THEN
170 itype = 1
171 ELSEIF (key(1:4) == 'PRES') THEN
172 itype = 2
173 ELSEIF (key(1:3) == 'GAS') THEN
174 itype = 3
175 ELSEIF (key(1:7) == 'AIRBAG1') THEN
176 itype = 7
177 ELSEIF (key(1:6) == 'airbag') THEN
178 ITYPE = 4
179 ELSEIF (KEY(1:6) == 'commu1') THEN
180 ITYPE = 9
181 ELSEIF (KEY(1:5) == 'commu') THEN
182 ITYPE = 5
183 ELSEIF (KEY(1:7) == 'fvmbag2') THEN
184 ITYPE = 11
185 ELSEIF (KEY(1:7) == 'fvmbag1') THEN
186 ITYPE = 8
187 ELSEIF (KEY(1:6) == 'fvmbag') THEN
188 ITYPE = 6
189 ELSEIF (KEY(1:6) == 'lfluid') THEN
190 ITYPE = 10
191 ELSE
192 ITYPE = 0
193 CALL ANCMSG(MSGID=7,ANMODE=ANINFO,MSGTYPE=MSGERROR,
194 . I1=ID,C1=TITR)
195 ENDIF
196
197 T_MONVOL(II)%ID = ID
198 T_MONVOL(II)%IVOLU(1) = ID
199 T_MONVOL(II)%IVOLU(27) = -1 !ID_DT_OPTION ( /DT/FVMBAG/[id_dt_option] )
200 T_MONVOL(II)%TYPE = ITYPE
201 T_MONVOL(II)%IVOLU(2) = ITYPE
202 T_MONVOL(II)%TITLE = TRIM(TITR)
203
204 WRITE(IOUT,1001) ID, T_MONVOL(II)%TITLE, KEY(1:LEN_TRIM(KEY))
205
206 SELECT CASE(ITYPE)
207 CASE(1)
208! ************ !
209! /MONVOL/AREA !
210! ************ !
211 CALL HM_READ_MONVOL_TYPE1(T_MONVOL(II),
212 . UNITAB, LOCAL_UID, IGRSURF,
213 . ITAB, X, PM, GEO, IXC, IXTG,LSUBMODEL)
214 CASE(2)
215! ************ !
216! /MONVOL/PRES !
217! ************ !
218 CALL HM_READ_MONVOL_TYPE2(T_MONVOL(II),
219 . UNITAB, LOCAL_UID, NPC, IGRSURF,
220 . ITAB, X, PM, GEO, IXC, IXTG,LSUBMODEL)
221 CASE(3)
222! *********** !
223! /MONVOL/GAS !
224! *********** !
225 CALL HM_READ_MONVOL_TYPE3(T_MONVOL(II),
226 . UNITAB, LOCAL_UID, NPC, IGRSURF,
227 . ITAB, X, PM, GEO, IXC, IXTG, LSUBMODEL)
228 CASE(4)
229! ************** !
230! /MONVOL/AIRBAG !
231! ************** !
232 CALL HM_READ_MONVOL_TYPE4(T_MONVOL(II), ITABM1,
233 . SENSORS, NPT, PLD, UNITAB, LOCAL_UID, NPC, IGRSURF,
234 . ITAB, X, PM, GEO, IXC, IXTG, LSUBMODEL)
235 CASE(5)
236! ************* !
237! /MONVOL/COMMU !
238! ************* !
239 CALL HM_READ_MONVOL_TYPE5(T_MONVOL(II), T_MONVOL_METADATA, ITABM1,
240 . SENSORS, NPT, PLD,
241 . UNITAB, LOCAL_UID, NPC, IGRSURF, ITAB, X, PM, GEO, IXC, IXTG,
242 . LSUBMODEL)
243 CASE(6)
244! ************** !
245! /MONVOL/FVMBAG !
246! ************** !
247 CALL HM_READ_MONVOL_TYPE6(T_MONVOL(II),
248 . SENSORS, NPT, PLD, IGRBRIC,
249 . UNITAB, NPC, IGRSURF, ITAB, X, PM, GEO, IXC, IXTG,
250 . LSUBMODEL)
251 CASE(7)
252! *************** !
253! /MONVOL/AIRBAG1 !
254! *************** !
255 CALL HM_READ_MONVOL_TYPE7(T_MONVOL(II), IPM, IGEO, ITABM1,
256 . SENSORS,
257 . UNITAB, LOCAL_UID, NPC, IGRSURF, ITAB, X, PM, GEO, IXC, IXTG,
258 . LSUBMODEL)
259 CASE(8)
260! *************** !
261! /MONVOL/FVMBAG1 !
262! *************** !
263 CALL HM_READ_MONVOL_TYPE8(T_MONVOL(II), IPM, IGEO, ITABM1,
264 . SENSORS, IFRAME, XFRAME, IGRBRIC,
265 . UNITAB, LOCAL_UID, NPC, IGRSURF, ITAB, X, PM, GEO, IXC, IXTG,
266 . LSUBMODEL)
267
268 CASE(9)
269! ************** !
270! /MONVOL/COMMU1 !
271! ************** !
272 CALL HM_READ_MONVOL_TYPE9(T_MONVOL(II), T_MONVOL_METADATA, IPM, IGEO, ITABM1,
273 . SENSORS,
274 . UNITAB, LOCAL_UID, NPC, IGRSURF, ITAB, X, PM, GEO, IXC, IXTG,
275 . LSUBMODEL)
276 CASE(10)
277! ************** !
278! /MONVOL/LFLUID !
279! ************** !
280 CALL HM_READ_MONVOL_TYPE10(T_MONVOL(II),
281 . UNITAB, NPC, IGRSURF, ITAB, X, PM, GEO, IXC, IXTG,LSUBMODEL)
282 CASE(11)
283! *************** !
284! /MONVOL/FVMBAG2 !
285! *************** !
286 CALL HM_READ_MONVOL_TYPE11(T_MONVOL(II), IPM, IGEO, ITABM1,
287 . SENSORS, XFRAME, IGRBRIC,
288 . UNITAB, LOCAL_UID, NPC, IGRSURF, ITAB, X, PM, GEO, IXC, IXTG,
289 . LSUBMODEL)
290 END SELECT
291 ENDDO
292
293 NVOLU = NVOLU + NMONVOL
294
295 RETURN
296 1000 FORMAT(
297 . //,' monitored volume definition '/
298 . ' ---------------------------- ')
299 1001 FORMAT(//5X,'volume number ',I10,
300 . / 5X,'------------------------',
301 . / 5X,'title: ',A,
302 . / 5X,'TYPE of monitored volume. . . . . . . .=',A10)
subroutine hm_option_start(entity_type)
subroutine hm_read_monvol_type10(t_monvoln, unitab, npc, igrsurf, itab, x, pm, geo, ixc, ixtg, lsubmodel)
subroutine hm_read_monvol_type11(t_monvoln, ipm, igeo, itabm1, sensors, xframe, igrbric, unitab, luid, npc, igrsurf, itab, x, pm, geo, ixc, ixtg, lsubmodel)
subroutine hm_read_monvol_type1(t_monvoln, unitab, luid, igrsurf, itab, x, pm, geo, ixc, ixtg, lsubmodel)
subroutine hm_read_monvol_type2(t_monvoln, unitab, luid, npc, igrsurf, itab, x, pm, geo, ixc, ixtg, lsubmodel)
subroutine hm_read_monvol_type3(t_monvoln, unitab, luid, npc, igrsurf, itab, x, pm, geo, ixc, ixtg, lsubmodel)
subroutine hm_read_monvol_type4(t_monvoln, itabm1, sensors, npt, pld, unitab, luid, npc, igrsurf, itab, x, pm, geo, ixc, ixtg, lsubmodel)
subroutine hm_read_monvol_type5(t_monvoln, t_monvol_metadata, itabm1, sensors, npt, pld, unitab, luid, npc, igrsurf, itab, x, pm, geo, ixc, ixtg, lsubmodel)
subroutine hm_read_monvol_type6(t_monvoln, sensors, npt, pld, igrbric, unitab, npc, igrsurf, itab, x, pm, geo, ixc, ixtg, lsubmodel)
subroutine hm_read_monvol_type7(t_monvoln, ipm, igeo, itabm1, sensors, unitab, luid, npc, igrsurf, itab, x, pm, geo, ixc, ixtg, lsubmodel)
subroutine hm_read_monvol_type8(t_monvoln, ipm, igeo, itabm1, sensors, iframe, xframe, igrbric, unitab, luid, npc, igrsurf, itab, x, pm, geo, ixc, ixtg, lsubmodel)
subroutine hm_read_monvol_type9(t_monvoln, t_monvol_metadata, ipm, igeo, itabm1, sensors, unitab, luid, npc, igrsurf, itab, x, pm, geo, ixc, ixtg, lsubmodel)
integer, parameter nchartitle
integer, parameter ncharkey
integer, dimension(:), allocatable tagmon
subroutine hm_sz_r2r(tag, val, lsubmodel)
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)