OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fvinjnormal.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!|| fvinjnormal_mod ../starter/source/airbag/fvinjnormal.F
25!||--- called by ------------------------------------------------------
26!|| fvmesh0 ../starter/source/airbag/fvmesh0.F
27!||====================================================================
29 CONTAINS
30!||====================================================================
31!|| fvinjnormal ../starter/source/airbag/fvinjnormal.F
32!||--- called by ------------------------------------------------------
33!|| fvmesh0 ../starter/source/airbag/fvmesh0.F
34!||--- uses -----------------------------------------------------
35!||====================================================================
36 SUBROUTINE fvinjnormal(IBUF, ELEM, IXC, IXTG, ELTG,
37 . NEL, ILVOUT, MINUS_SIGN_REVERSE)
38 use element_mod , only : nixc,nixtg
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46#include "com04_c.inc"
47#include "units_c.inc"
48C-----------------------------------------------
49C D u m m y A r g u m e n t s
50C-----------------------------------------------
51 INTEGER IXC(NIXC,*), IXTG(NIXTG,*)
52 INTEGER IBUF(*), ELEM(3,*), ELTG(*)
53 INTEGER NEL, ILVOUT
54 INTEGER MINUS_SIGN_REVERSE(NEL)
55C-----------------------------------------------
56C L o c a l V a r i a b l e s
57C-----------------------------------------------
58 INTEGER I, J, K, I1, I2, I3
59 INTEGER N1, N2, N3, N4, IEL, IREVERSE
60 CHARACTER*6 TITL
61C-----------------------------------------------------------------------
62C REDEFINE INTERNAL TRIANGLE FOR NORMAL CONSISTENCY FOR INJECTORS
63C-----------------------------------------------------------------------
64 IF (ilvout >= 2) WRITE(iout,1000)
65 DO i=1,nel
66 i1=elem(1,i)
67 i2=elem(2,i)
68 i3=elem(3,i)
69 i1=ibuf(i1)
70 i2=ibuf(i2)
71 i3=ibuf(i3)
72 iel=eltg(i)
73 ireverse=0
74 IF (iel<=numelc) THEN
75 n1 =ixc(2,iel)
76 n2 =ixc(3,iel)
77 n3 =ixc(4,iel)
78 n4 =ixc(5,iel)
79 k =ixc(nixc,iel)
80 titl='SHELL:'
81 IF(i1==n1) THEN
82 IF(i2==n3) THEN
83 IF(i3==n2) ireverse=1
84 ELSEIF(i2==n4) THEN
85 ireverse=1
86 ENDIF
87 ELSEIF(i1==n2) THEN
88 IF(i2==n4) THEN
89 IF(i3==n3) ireverse=1
90 ELSEIF(i2==n1) THEN
91 ireverse=1
92 ENDIF
93 ELSEIF(i1==n3) THEN
94 IF(i2==n1) THEN
95 IF(i3==n4) ireverse=1
96 ELSEIF(i2==n2) THEN
97 ireverse=1
98 ENDIF
99 ELSEIF(i1==n4) THEN
100 IF(i2==n2) THEN
101 IF(i3==n1) ireverse=1
102 ELSEIF(i2==n3) THEN
103 ireverse=1
104 ENDIF
105 ENDIF
106 ELSEIF (iel>numelc) THEN
107 j=iel-numelc
108 n1 =ixtg(2,j)
109 n2 =ixtg(3,j)
110 n3 =ixtg(4,j)
111 k =ixtg(nixtg,j)
112 titl='SH3N: '
113 IF(i1==n1.AND.i2==n3) ireverse=1
114 IF(i1==n2.AND.i2==n1) ireverse=1
115 IF(i1==n3.AND.i2==n2) ireverse=1
116 ENDIF
117C
118 IF(ireverse==1 .AND. minus_sign_reverse(i)==0) THEN
119 i2=elem(2,i)
120 i3=elem(3,i)
121 elem(2,i)=i3
122 elem(3,i)=i2
123 IF(ilvout >= 2) THEN
124 WRITE(iout,1100) i,titl,k
125 ENDIF
126 ENDIF
127C
128 ENDDO
129C---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
130 1000 FORMAT(/5x,'FVMBAG INTERNAL SURFACE ELEMENTS RENUMBERED'
131 . /5x,'---------------------------------------------')
132 1100 FORMAT( 5x,'TRIANGLE',i8,5x,a,i8)
133 RETURN
134 END SUBROUTINE fvinjnormal
135 END MODULE fvinjnormal_mod
subroutine fvinjnormal(ibuf, elem, ixc, ixtg, eltg, nel, ilvout, minus_sign_reverse)
Definition fvinjnormal.F:38