OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fvinjectint.F File Reference
#include "implicit_f.inc"
#include "param_c.inc"
#include "com04_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine fvinjectint (ibuf, elem, ibagjet, njet, igrsurf, itagel, nn, nel, nb_node, minus_sign_reverse)

Function/Subroutine Documentation

◆ fvinjectint()

subroutine fvinjectint ( integer, dimension(*) ibuf,
integer, dimension(3,*) elem,
integer, dimension(nibjet,*) ibagjet,
integer njet,
type (surf_), dimension(nsurf) igrsurf,
integer, dimension(*) itagel,
integer nn,
integer nel,
integer nb_node,
integer, dimension(nel) minus_sign_reverse )

Definition at line 29 of file fvinjectint.F.

32C-----------------------------------------------
33C M o d u l e s
34C-----------------------------------------------
35 USE groupdef_mod
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C C o m m o n B l o c k s
42C-----------------------------------------------
43#include "param_c.inc"
44#include "com04_c.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 INTEGER IBUF(*), ELEM(3,*), IBAGJET(NIBJET,*),
49 . NJET,
50 . ITAGEL(*), NN, NEL, NB_NODE, MINUS_SIGN_REVERSE(NEL)
51 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
52C-----------------------------------------------
53C L o c a l V a r i a b l e s
54C-----------------------------------------------
55 INTEGER I, II, ITABINV(NB_NODE), ITAGINJ(NN), IREVERSED(NN), IINJ,
56 . ISU, NELSU, IEL, NG1, NG2, NG3, NG4, N1, N2, N3, N4,
57 . NALL, NN1, NN2, REV
58
59 INTEGER :: INV3(3)
60 DATA inv3/3,2,1/
61C
62 DO i=1,nb_node
63 itabinv(i)=0
64 ENDDO
65C
66 DO i=1,nn
67 ii=ibuf(i)
68 itabinv(ii)=i
69 itaginj(i)=0
70 ENDDO
71C
72 DO iinj=1,njet
73 isu=ibagjet(14,iinj)
74 IF(isu==0) cycle
75 nelsu=igrsurf(isu)%NSEG
76 DO iel=1,nelsu
77 ng1 = igrsurf(isu)%NODES(iel,1)
78 ng2 = igrsurf(isu)%NODES(iel,2)
79 ng3 = igrsurf(isu)%NODES(iel,3)
80 ng4 = igrsurf(isu)%NODES(iel,4)
81 n1=itabinv(ng1)
82 n2=itabinv(ng2)
83 n3=itabinv(ng3)
84 n4=itabinv(ng4)
85 itaginj(n1)=iinj
86 itaginj(n2)=iinj
87 itaginj(n3)=iinj
88 itaginj(n4)=iinj
89 rev = igrsurf(isu)%REVERSED(iel)
90 ireversed(n1) = rev
91 ireversed(n2) = rev
92 ireversed(n3) = rev
93 ireversed(n4) = rev
94 ENDDO
95 ENDDO
96C
97 DO iel=1,nel
98 n1=elem(1,iel)
99 n2=elem(2,iel)
100 n3=elem(3,iel)
101 itagel(iel)=0
102 nall=itaginj(n1)*itaginj(n2)*itaginj(n3)
103 IF (nall/=0) THEN
104 nn1=itaginj(n2)-itaginj(n1)
105 nn2=itaginj(n3)-itaginj(n1)
106 IF (nn1==0.AND.nn2==0) THEN
107 itagel(iel)=itaginj(n1)
108 IF(ireversed(n1) + ireversed(n2) + ireversed(n3) == 3) THEN
109 elem(1,iel) = n3
110 elem(3,iel) = n1
111 minus_sign_reverse(iel) = 1
112 ENDIF
113 ENDIF
114 ENDIF
115 ENDDO
116C
117 RETURN
subroutine inv3(a, b)
Definition inv3.F:29