OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fvinjnormal_mod Module Reference

Functions/Subroutines

subroutine fvinjnormal (ibuf, elem, ixc, ixtg, eltg, nel, ilvout, minus_sign_reverse)

Function/Subroutine Documentation

◆ fvinjnormal()

subroutine fvinjnormal_mod::fvinjnormal ( integer, dimension(*) ibuf,
integer, dimension(3,*) elem,
integer, dimension(nixc,*) ixc,
integer, dimension(nixtg,*) ixtg,
integer, dimension(*) eltg,
integer nel,
integer ilvout,
integer, dimension(nel) minus_sign_reverse )

Definition at line 36 of file fvinjnormal.F.

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