OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
h3d_nodal_vector.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "intstamp_c.inc"
#include "scr03_c.inc"
#include "scr16_c.inc"
#include "param_c.inc"
#include "sphcom.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine h3d_nodal_vector (elbuf_tab, nodal_vector, ifunc, iparg, geo, mass, pm, anin, itab, node_id, info1, info2, is_written_node, h3d_part, ipartc, iparttg, ixc, ixtg, temp, iflow, rflow, ixs, ixq, nv46, monvol, diag_sms, ms, pdama2, x, volmon, stifr, stifn, a, d, v, cont, fcontg, fint, fext, keyword, fncont, fncontg, ftcont, ftcontg, fncont2, dr, dxancg, fanreac, fcluster, mcluster, vr, fopt, npby, vgaz, ipari, igrnod, weight, nodglob, fcont_max, fncontp2, ftcontp2, ar, ipartsp, ipartr, ipartp, ipartt, iparts, ipartq, kxsp, ixr, ixp, ixt, n_h3d_part_list, nodal_vector_fvm, is_written_node_fvm, airbags_total_fvm_in_h3d, smonvol, svolmon, ispmd, fvdata_p, airbags_node_id_shift, w, sw, x_c)

Function/Subroutine Documentation

◆ h3d_nodal_vector()

subroutine h3d_nodal_vector ( type (elbuf_struct_), dimension(ngroup) elbuf_tab,
nodal_vector,
integer ifunc,
integer, dimension(nparg,*) iparg,
geo,
mass,
pm,
anin,
integer, dimension(numnod) itab,
integer, dimension(*) node_id,
integer info1,
integer info2,
integer, dimension(numnod) is_written_node,
integer, dimension(*) h3d_part,
integer, dimension(*) ipartc,
integer, dimension(*) iparttg,
integer, dimension(nixc,numelc) ixc,
integer, dimension(nixtg,numeltg) ixtg,
temp,
integer, dimension(*) iflow,
rflow,
integer, dimension(nixs,numels) ixs,
integer, dimension(nixq,numelq) ixq,
integer nv46,
integer, dimension(smonvol) monvol,
diag_sms,
ms,
pdama2,
x,
volmon,
stifr,
stifn,
a,
d,
v,
cont,
fcontg,
fint,
fext,
character(len=ncharline100) keyword,
fncont,
fncontg,
ftcont,
ftcontg,
fncont2,
dr,
dxancg,
fanreac,
fcluster,
mcluster,
vr,
fopt,
integer, dimension(nnpby,*) npby,
vgaz,
integer, dimension(npari,ninter) ipari,
type (group_), dimension(ngrnod) igrnod,
integer, dimension(*) weight,
integer, dimension(*) nodglob,
fcont_max,
fncontp2,
ftcontp2,
dimension(3,numnod), intent(in) ar,
integer, dimension(numsph), intent(in) ipartsp,
integer, dimension(numelr), intent(in) ipartr,
integer, dimension(numelp), intent(in) ipartp,
integer, dimension(numelt), intent(in) ipartt,
integer, dimension(numels), intent(in) iparts,
integer, dimension(numelq), intent(in) ipartq,
integer, dimension(nisp,numsph), intent(in) kxsp,
integer, dimension(nixr,numelr), intent(in) ixr,
integer, dimension(nixp,numelp), intent(in) ixp,
integer, dimension(nixt,numelt), intent(in) ixt,
integer, intent(in) n_h3d_part_list,
dimension(3,airbags_total_fvm_in_h3d), intent(inout) nodal_vector_fvm,
integer, dimension(airbags_total_fvm_in_h3d), intent(inout) is_written_node_fvm,
integer, intent(in) airbags_total_fvm_in_h3d,
integer, intent(in) smonvol,
integer, intent(in) svolmon,
integer, intent(in) ispmd,
type(fvbag_data), dimension(nfvbag), intent(in) fvdata_p,
integer, intent(in) airbags_node_id_shift,
dimension(3,sw/3), intent(in) w,
integer, intent(in) sw,
dimension(3,numnod) x_c )

Definition at line 39 of file h3d_nodal_vector.F.

57C-----------------------------------------------
58C D e s c r i p t i o n
59C-----------------------------------------------
60C This subroutine is storing relevant vector values requested
61C for H3D export by /H3D/NODA/... keywords
62C-----------------------------------------------
63C M o d u l e s
64C-----------------------------------------------
65 USE elbufdef_mod
66 USE groupdef_mod
67 USE outmax_mod
68 USE fvbag_mod , only : fvbag_data, nfvbag
70C-----------------------------------------------
71C I m p l i c i t T y p e s
72C-----------------------------------------------
73#include "implicit_f.inc"
74C-----------------------------------------------
75C C o m m o n B l o c k s
76C-----------------------------------------------
77#include "com01_c.inc"
78#include "com04_c.inc"
79#include "intstamp_c.inc"
80#include "scr03_c.inc"
81#include "scr16_c.inc"
82#include "param_c.inc"
83#include "sphcom.inc"
84C-----------------------------------------------
85C D u m m y A r g u m e n t s
86C-----------------------------------------------
87 INTEGER,INTENT(IN) :: SMONVOL, SVOLMON, ISPMD,AIRBAGS_NODE_ID_SHIFT, AIRBAGS_TOTAL_FVM_IN_H3D
88 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
89 INTEGER,INTENT(IN) :: SW
91 . nodal_vector(3*numnod),mass(*),geo(npropg,numgeo),
92 . pm(npropm,nummat),anin(*),temp(*),rflow(*),volmon(svolmon), diag_sms(*),ms(numnod),
93 . pdama2(2,*),x(3,numnod),stifr(*),stifn(numnod),a(3,numnod),d(3,numnod),v(3,numnod), cont(3,*),
94 . fcontg(3,*), fint(3,numnod), fext(3,numnod),fncont(3,*),fncontg(3,*),
95 . ftcont(3,*),ftcontg(3,*),fncont2(3,*), dr(3,numnod),dxancg(3,*),
96 . fanreac(6,*),fcluster(3,*),mcluster(3,*),vr(3,numnod),fopt(6,*),vgaz(3,*),
97 . fcont_max(3,*),fncontp2(3,*),ftcontp2(3,*)
98 my_real,INTENT(IN) :: w(3,sw/3)
99 INTEGER IPARG(NPARG,*),IFUNC,NODE_ID(*),
100 . INFO1,INFO2,IS_WRITTEN_NODE(NUMNOD),H3D_PART(*),ITAB(NUMNOD),
101 . IXC(NIXC,NUMELC),IXTG(NIXTG,NUMELTG),IPARTC(*),IPARTTG(*),IFLOW(*),
102 . IXS(NIXS,NUMELS),IXQ(NIXQ,NUMELQ),NV46,MONVOL(SMONVOL),NPBY(NNPBY,*),
103 . IPARI(NPARI,NINTER),WEIGHT(*),NODGLOB(*)
104 CHARACTER(LEN=NCHARLINE100):: KEYWORD
105 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
106 my_real , INTENT(IN) :: ar(3,numnod)
107 my_real , INTENT(IN) , DIMENSION(3,NUMNOD) :: x_c
108 INTEGER ,INTENT(IN) :: IPARTSP(NUMSPH),IPARTR(NUMELR),IPARTP(NUMELP),
109 . IPARTT(NUMELT),IPARTS(NUMELS),IPARTQ(NUMELQ)
110 INTEGER ,INTENT(IN) :: KXSP(NISP,NUMSPH),IXR(NIXR,NUMELR),IXP(NIXP,NUMELP),
111 . IXT(NIXT,NUMELT)
112 INTEGER ,INTENT(IN) :: N_H3D_PART_LIST
113 my_real, INTENT(INOUT) :: nodal_vector_fvm(3,airbags_total_fvm_in_h3d)
114 INTEGER, INTENT(INOUT) :: IS_WRITTEN_NODE_FVM(AIRBAGS_TOTAL_FVM_IN_H3D)
115 TYPE(FVBAG_DATA),INTENT(IN) :: FVDATA_P(NFVBAG)
116C-----------------------------------------------
117C L o c a l V a r i a b l e s
118C-----------------------------------------------
119 INTEGER I,J,K,N,IOK_PART(NUMNOD)
120 my_real value(3)
121C-----------------------------------------------
122
123 VALUE = zero
124
125 DO i=1,numnod
126 node_id(i) = itab(i)
127 iok_part(i) = 0
128 is_written_node(i) = 0
129 ENDDO
130
131 IF(n_h3d_part_list /= 0)THEN
132 DO i=1,numsph
133 IF ( h3d_part(ipartsp(i)) == 1) THEN
134 IF(kxsp(2,i) > 0 )iok_part(kxsp(2,i)) = 1
135 ENDIF
136 ENDDO
137
138 DO i=1,numelr
139 IF ( h3d_part(ipartr(i)) == 1) THEN
140 DO j=2,4
141 IF(ixr(j,i) > 0 )iok_part(ixr(j,i)) = 1
142 ENDDO
143 ENDIF
144 ENDDO
145
146 DO i=1,numelp
147 IF ( h3d_part(ipartp(i)) == 1) THEN
148 DO j=2,4
149 IF(ixp(j,i) > 0 )iok_part(ixp(j,i)) = 1
150 ENDDO
151 ENDIF
152 ENDDO
153
154 DO i=1,numelt
155 IF ( h3d_part(ipartt(i)) == 1) THEN
156 DO j=2,4
157 IF(ixt(j,i) > 0 )iok_part(ixt(j,i)) = 1
158 ENDDO
159 ENDIF
160 ENDDO
161
162 DO i=1,numelc
163 IF ( h3d_part(ipartc(i)) == 1) THEN
164 DO j=2,5
165 IF(ixc(j,i) > 0 )iok_part(ixc(j,i)) = 1
166 ENDDO
167 ENDIF
168 ENDDO
169
170 DO i=1,numeltg
171 IF ( h3d_part(iparttg(i)) == 1) THEN
172 DO j=2,4
173 IF(ixtg(j,i) > 0 )iok_part(ixtg(j,i)) = 1
174 ENDDO
175 ENDIF
176 ENDDO
177
178 DO i=1,numels
179 IF ( h3d_part(iparts(i)) == 1) THEN
180 DO j=2,9
181 IF(ixs(j,i) > 0 )iok_part(ixs(j,i)) = 1
182 ENDDO
183 ENDIF
184 ENDDO
185
186 DO i=1,numelq
187 IF ( h3d_part(ipartq(i)) == 1) THEN
188 DO j=2,5
189 IF(ixq(j,i) > 0 )iok_part(ixq(j,i)) = 1
190 ENDDO
191 ENDIF
192 ENDDO
193 ELSE
194 iok_part(1:numnod) = 1
195 ENDIF
196C
197C--------------------------------------------------
198 IF(keyword == 'VEL') THEN
199C--------------------------------------------------
200 DO i=1,numnod
201 value(1) = v(1,i)
202 value(2) = v(2,i)
203 value(3) = v(3,i)
204 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
205 ENDDO
206
207 !------------------------------------------
208 ! /MONVOL/FVMBAG*
209 ! set velocity from polyhedra centroids
210 !------------------------------------------
211 IF(airbags_total_fvm_in_h3d > 0)THEN
212 is_written_node_fvm(1:airbags_total_fvm_in_h3d)=0
213 IF(nfvbag>0 .AND. ispmd == 0 .AND. airbags_total_fvm_in_h3d > 0)THEN
214 CALL anim_nodal_vector_fvmbags('VEL ' , nodal_vector_fvm,monvol,volmon ,fvdata_p, nfvbag ,
215 . smonvol, svolmon ,airbags_total_fvm_in_h3d,is_written_node_fvm,
216 . airbags_node_id_shift )
217 ENDIF
218 ENDIF
219
220C--------------------------------------------------
221 ELSEIF(keyword == 'DIS') THEN
222C--------------------------------------------------
223 DO i=1,numnod
224 value(1) = d(1,i)
225 value(2) = d(2,i)
226 value(3) = d(3,i)
227 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
228 ENDDO
229C--------------------------------------------------
230 ELSEIF(keyword == 'ACC') THEN
231C--------------------------------------------------
232 DO i=1,numnod
233 value(1) = a(1,i)
234 value(2) = a(2,i)
235 value(3) = a(3,i)
236 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
237 ENDDO
238C--------------------------------------------------
239 ELSEIF(keyword == 'CONT'.AND.keyword /= 'CONT/TMAX')THEN
240C--------------------------------------------------
241 IF(nintstamp==0)THEN
242 DO i=1,numnod
243 value(1) = cont(1,i)
244 value(2) = cont(2,i)
245 value(3) = cont(3,i)
246 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
247 ENDDO
248 ELSE
249 DO i=1,numnod
250 k=nodglob(i)
251 value(1) = cont(1,i) + fcontg(1,k)
252 value(2) = cont(2,i) + fcontg(2,k)
253 value(3) = cont(3,i) + fcontg(3,k)
254 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
255 ENDDO
256 END IF
257C------------------------------------------------------------------------------
258 ELSEIF(keyword == 'CONT/TMAX')THEN
259C------------------------------------------------------------------------------
260 IF(nintstamp==0.OR.nspmd==1)THEN
261 DO i=1,numnod
262 value(1) = fcont_max(1,i)
263 value(2) = fcont_max(2,i)
264 value(3) = fcont_max(3,i)
265 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
266 ENDDO
267 ELSE
268 DO i=1,numnod
269 value(1) = zero
270 value(2) = zero
271 value(3) = zero
272 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
273 ENDDO
274 ENDIF
275C--------------------------------------------------
276 ELSEIF(keyword == 'FINT') THEN
277C--------------------------------------------------
278 DO i=1,numnod
279 value(1) = fint(1,i)
280 value(2) = fint(2,i)
281 value(3) = fint(3,i)
282 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
283 ENDDO
284C--------------------------------------------------
285 ELSEIF(keyword == 'FEXT') THEN
286C--------------------------------------------------
287 DO i=1,numnod
288 value(1) = fext(1,i)
289 value(2) = fext(2,i)
290 value(3) = fext(3,i)
291 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
292 ENDDO
293C--------------------------------------------------
294 ELSEIF(keyword == 'FOPT/FORCE') THEN
295C--------------------------------------------------
296 DO i=1,numnod
297 is_written_node(i) = 0
298 ENDDO
299 DO n=1,nrbody
300 i = npby(1,n)
301 IF (i>0) THEN
302 IF (weight(i)==1) THEN
303 value(1) = fopt(1,nsect+n)
304 value(2) = fopt(2,nsect+n)
305 value(3) = fopt(3,nsect+n)
306 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
307 ENDIF
308 ENDIF
309 ENDDO
310C--------------------------------------------------
311 ELSEIF(keyword == 'FOPT/MOMENT') THEN
312C--------------------------------------------------
313 DO i=1,numnod
314 is_written_node(i) = 0
315 ENDDO
316 DO n=1,nrbody
317 i = npby(1,n)
318 IF (i>0) THEN
319 IF (weight(i)==1) THEN
320 value(1) = fopt(4,nsect+n)
321 value(2) = fopt(5,nsect+n)
322 value(3) = fopt(6,nsect+n)
323 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
324 ENDIF
325 ENDIF
326 ENDDO
327C--------------------------------------------------
328 ELSEIF(keyword == 'VROT') THEN
329C--------------------------------------------------
330 IF(iroddl/=0) THEN
331 DO i=1,numnod
332 value(1) = vr(1,i)
333 value(2) = vr(2,i)
334 value(3) = vr(3,i)
335 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
336 ENDDO
337 ENDIF
338C--------------------------------------------------
339 ELSEIF(keyword == 'FVEL') THEN
340C--------------------------------------------------
341C--------------------------------------------------
342 ELSEIF(keyword == 'FRES') THEN
343C--------------------------------------------------
344C--------------------------------------------------
345 ELSEIF(keyword == 'PCONT/NORMAL') THEN
346C--------------------------------------------------
347 IF(nintstamp==0)THEN
348 DO i=1,numnod
349 value(1) = fncont(1,i)
350 value(2) = fncont(2,i)
351 value(3) = fncont(3,i)
352 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
353 ENDDO
354 ELSE
355 DO i=1,numnod
356 k=nodglob(i)
357 value(1) = fncont(1,i)+fncontg(1,k)
358 value(2) = fncont(2,i)+fncontg(2,k)
359 value(3) = fncont(3,i)+fncontg(3,k)
360 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
361 ENDDO
362 ENDIF
363C------------------------------------------------------------------------------
364 ELSEIF(keyword == 'MAXPCONT/NORMAL')THEN
365C------------------------------------------------------------------------------
366 IF(nintstamp==0.OR.nspmd==1)THEN
367 DO i=1,numnod
368 value(1) = fncont_max(3*(i-1)+1)
369 value(2) = fncont_max(3*(i-1)+2)
370 value(3) = fncont_max(3*(i-1)+3)
371 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
372 ENDDO
373 ELSE
374 DO i=1,numnod
375 value(1) = zero
376 VALUE(2) = zero
377 value(3) = zero
378 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
379 ENDDO
380 ENDIF
381C--------------------------------------------------
382 ELSEIF(keyword == 'PCONT/TANGENT') THEN
383C--------------------------------------------------
384 IF(nintstamp==0)THEN
385 DO i=1,numnod
386 value(1) = ftcont(1,i)
387 value(2) = ftcont(2,i)
388 value(3) = ftcont(3,i)
389 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
390 ENDDO
391 ELSE
392 DO i=1,numnod
393 k=nodglob(i)
394 value(1) = ftcont(1,i)+ftcontg(1,k)
395 value(2) = ftcont(2,i)+ftcontg(2,k)
396 value(3) = ftcont(3,i)+ftcontg(3,k)
397 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
398 ENDDO
399 ENDIF
400C------------------------------------------------------------------------------
401 ELSEIF(keyword == 'MAXPCONT/TANGENT')THEN
402C------------------------------------------------------------------------------
403 IF(nintstamp==0.OR.nspmd==1)THEN
404 DO i=1,numnod
405 value(1) = ftcont_max(3*(i-1)+1)
406 value(2) = ftcont_max(3*(i-1)+2)
407 value(3) = ftcont_max(3*(i-1)+3)
408 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
409 ENDDO
410 ELSE
411 DO i=1,numnod
412 value(1) = zero
413 value(2) = zero
414 value(3) = zero
415 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
416 ENDDO
417 ENDIF
418C--------------------------------------------------
419 ELSEIF(keyword == 'CONT2') THEN
420C--------------------------------------------------
421 DO i=1,numnod
422 value(1) = fncont2(1,i)
423 value(2) = fncont2(2,i)
424 value(3) = fncont2(3,i)
425 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
426 ENDDO
427C--------------------------------------------------
428 ELSEIF(keyword == 'CONT2/MOMENT') THEN
429C--------------------------------------------------
430 DO i=1,numnod
431 value(1) = mcont2(1,i)
432 value(2) = mcont2(2,i)
433 value(3) = mcont2(3,i)
434 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
435 ENDDO
436C--------------------------------------------------
437 ELSEIF(keyword == 'PCONT2/NORMAL') THEN
438C--------------------------------------------------
439 DO i=1,numnod
440 value(1) = fncontp2(1,i)
441 value(2) = fncontp2(2,i)
442 value(3) = fncontp2(3,i)
443 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
444 ENDDO
445C--------------------------------------------------
446 ELSEIF(keyword == 'PCONT2/TANGENT') THEN
447C--------------------------------------------------
448 DO i=1,numnod
449 value(1) = ftcontp2(1,i)
450 value(2) = ftcontp2(2,i)
451 value(3) = ftcontp2(3,i)
452 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
453 ENDDO
454C--------------------------------------------------
455 ELSEIF(keyword == 'CONT2/TMAX') THEN
456C--------------------------------------------------
457 DO i=1,numnod
458 value(1) = fcont2_max(3*(i-1)+1)
459 value(2) = fcont2_max(3*(i-1)+2)
460 value(3) = fcont2_max(3*(i-1)+3)
461 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
462 ENDDO
463C--------------------------------------------------
464 ELSEIF(keyword == 'CONT2/TMIN') THEN
465C--------------------------------------------------
466 DO i=1,numnod
467 value(1) = fcont2_min(3*(i-1)+1)
468 value(2) = fcont2_min(3*(i-1)+2)
469 value(3) = fcont2_min(3*(i-1)+3)
470 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
471 ENDDO
472C--------------------------------------------------
473 ELSEIF(keyword == 'MAXPCONT2/NORMAL') THEN
474C--------------------------------------------------
475 DO i=1,numnod
476 VALUE(1) = fncont2_max(3*(i-1)+1)
477 value(2) = fncont2_max(3*(i-1)+2)
478 value(3) = fncont2_max(3*(i-1)+3)
479 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
480 ENDDO
481C--------------------------------------------------
482 ELSEIF(keyword == 'MAXPCONT2/TANGENT') THEN
483C--------------------------------------------------
484 DO i=1,numnod
485 value(1) = ftcont2_max(3*(i-1)+1)
486 value(2) = ftcont2_max(3*(i-1)+2)
487 VALUE(3) = ftcont2_max(3*(i-1)+3)
488 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
489 ENDDO
490C--------------------------------------------------
491 ELSEIF(keyword == 'MINPCONT2/NORMAL') THEN
492C--------------------------------------------------
493 DO i=1,numnod
494 value(1) = fncont2_min(3*(i-1)+1)
495 value(2) = fncont2_min(3*(i-1)+2)
496 value(3) = fncont2_min(3*(i-1)+3)
497 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
498 ENDDO
499C--------------------------------------------------
500 ELSEIF(keyword == 'MINPCONT2/TANGENT') THEN
501C--------------------------------------------------
502 DO i=1,numnod
503 value(1) = ftcont2_min(3*(i-1)+1)
504 value(2) = ftcont2_min(3*(i-1)+2)
505 value(3) = ftcont2_min(3*(i-1)+3)
506 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
507 ENDDO
508C--------------------------------------------------
509 ELSEIF(keyword == 'DROT')THEN
510C--------------------------------------------------
511 IF( (idrot == 1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0) .AND. iroddl/=0) THEN
512 DO i=1,numnod
513 value(1) = dr(1,i)
514 value(2) = dr(2,i)
515 value(3) = dr(3,i)
516 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
517 ENDDO
518 ENDIF
519C--------------------------------------------------
520 ELSEIF (keyword == 'DXANC') THEN
521C--------------------------------------------------
522 DO i=1,numnod
523 value(1) = dxancg(1,i)
524 value(2) = dxancg(2,i)
525 value(3) = dxancg(3,i)
526 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
527 ENDDO
528C--------------------------------------------------
529 ELSEIF (keyword == 'GVEL') THEN
530C--------------------------------------------------
531 IF(ialelag > 0 ) THEN
532 DO i=1,numnod
533 value(1) = vgaz(1,i)
534 value(2) = vgaz(2,i)
535 value(3) = vgaz(3,i)
536 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
537 ENDDO
538 ENDIF
539C--------------------------------------------------
540 ELSEIF(keyword == 'FREAC') THEN
541C--------------------------------------------------
542 DO i=1,numnod
543 value(1)=fanreac(1,i)
544 value(2)=fanreac(2,i)
545 value(3)=fanreac(3,i)
546 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
547 ENDDO
548C--------------------------------------------------
549 ELSEIF(keyword == 'MREAC') THEN
550C--------------------------------------------------
551 DO i=1,numnod
552 value(1)=fanreac(4,i)
553 value(2)=fanreac(5,i)
554 value(3)=fanreac(6,i)
555 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
556 ENDDO
557C--------------------------------------------------
558 ELSEIF(keyword == 'CLUSTER/FORCE') THEN
559C--------------------------------------------------
560 DO i=1,numnod
561 value(1)=fcluster(1,i)
562 value(2)=fcluster(2,i)
563 value(3)=fcluster(3,i)
564 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
565 ENDDO
566C--------------------------------------------------
567 ELSEIF(keyword == 'CLUSTER/MOMENT') THEN
568C--------------------------------------------------
569 DO i=1,numnod
570 value(1)=mcluster(1,i)
571 value(2)=mcluster(2,i)
572 value(3)=mcluster(3,i)
573 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
574 ENDDO
575C--------------------------------------------------
576 ELSEIF(keyword == 'ZVEL') THEN
577 CALL h3d_velvecc22(elbuf_tab,iparg,1,ixs,ixq,itab,iok_part,is_written_node,nodal_vector)
578C--------------------------------------------------
579C--------------------------------------------------
580 ELSEIF(keyword == 'ZFVEL') THEN
581 CALL h3d_velvecz22(elbuf_tab,iparg,ipari,igrnod,x,ixs,ixq,itab,1,iok_part,is_written_node,nodal_vector)
582C--------------------------------------------------
583C--------------------------------------------------
584 ELSEIF(keyword == 'ZMOM') THEN
585 CALL h3d_velvecc22(elbuf_tab,iparg,2,ixs,ixq,itab,iok_part,is_written_node,nodal_vector)
586C--------------------------------------------------
587C--------------------------------------------------
588 ELSEIF(keyword == 'ZFP') THEN
589 CALL h3d_velvecz22(elbuf_tab,iparg,ipari,igrnod,x,ixs,ixq,itab,2,iok_part,is_written_node,nodal_vector)
590C--------------------------------------------------
591C--------------------------------------------------
592 ELSEIF(keyword == 'ZFINT') THEN
593 CALL h3d_velvecc22(elbuf_tab,iparg,3,ixs,ixq,itab,iok_part,is_written_node,nodal_vector)
594C--------------------------------------------------
595 ELSEIF(keyword == 'VEL/TMAX') THEN
596C--------------------------------------------------
597 DO i=1,numnod
598 j = 3*(i-1)+1
599 value(1) = tm_vel(j)
600 value(2) = tm_vel(j+1)
601 value(3) = tm_vel(j+2)
602 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
603 ENDDO
604C--------------------------------------------------
605 ELSEIF(keyword == 'DIS/TMAX') THEN
606C--------------------------------------------------
607 DO i=1,numnod
608 j = 3*(i-1)+1
609 value(1) = tm_dis(j)
610 value(2) = tm_dis(j+1)
611 value(3) = tm_dis(j+2)
612 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
613 ENDDO
614C--------------------------------------------------
615 ELSEIF(keyword == 'AROT') THEN
616C--------------------------------------------------
617 IF(iroddl/=0) THEN
618 DO i=1,numnod
619 value(1) = ar(1,i)
620 value(2) = ar(2,i)
621 value(3) = ar(3,i)
622 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
623 ENDDO
624 ENDIF
625C--------------------------------------------------
626 ELSEIF(keyword == 'VEL/GRID') THEN
627C--------------------------------------------------
628 IF(sw > 0) THEN
629 DO i=1,numnod
630 value(1) = w(1,i)
631 value(2) = w(2,i)
632 value(3) = w(3,i)
633 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
634 ENDDO
635 ENDIF
636C--------------------------------------------------
637 ELSEIF(keyword == 'SHELL_OFFSET') THEN
638C--------------------------------------------------
639 DO i=1,numnod
640 value(1:3) = x_c(1:3,i) - x(1:3,i)
641 CALL h3d_write_vector(iok_part,is_written_node,nodal_vector,i,0,0,VALUE)
642 ENDDO
643C--------------------------------------------------
644 ENDIF
645C--------------------------------------------------
646 RETURN
subroutine anim_nodal_vector_fvmbags(key, wa4, monvol, volmon, fvdata, nfvbag, smonvol, svolmon, airbags_total_fvm_in_h3d, is_written_node_fvm, airbags_node_id_shift)
#define my_real
Definition cppsort.cpp:32
subroutine h3d_velvecc22(elbuf_tab, iparg, iflg, ixs, ixq, itab, iok_part, is_written_node, nodal_vector)
subroutine h3d_velvecz22(elbuf_tab, iparg, ipari, igrnod, x, ixs, ixq, itab, iflg, iok_part, is_written_node, nodal_vector)
subroutine h3d_write_vector(iok_part, is_written, vector, i, offset, nft, value)
integer airbags_total_fvm_in_h3d
Definition fvbag_mod.F:191
integer nfvbag
Definition fvbag_mod.F:127
integer, parameter ncharline100