OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fvinjectint.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| fvinjectint ../starter/source/airbag/fvinjectint.F
25!||--- called by ------------------------------------------------------
26!|| fvmesh0 ../starter/source/airbag/fvmesh0.F
27!||--- uses -----------------------------------------------------
28!||====================================================================
29 SUBROUTINE fvinjectint(IBUF , ELEM , IBAGJET,
30 . NJET , IGRSURF,
31 . ITAGEL, NN , NEL, NB_NODE, MINUS_SIGN_REVERSE)
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
118 END
subroutine fvinjectint(ibuf, elem, ibagjet, njet, igrsurf, itagel, nn, nel, nb_node, minus_sign_reverse)
Definition fvinjectint.F:32