OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
insolt10.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!|| insolt10 ../starter/source/interfaces/inter3d1/insolt10.F
25!||--- called by ------------------------------------------------------
26!|| i12sol3 ../starter/source/interfaces/inter3d1/insol3.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!||--- uses -----------------------------------------------------
30!|| message_mod ../starter/share/message_module/message_mod.F
31!||====================================================================
32 SUBROUTINE insolt10(IXS,IXS10,IRECT,NOINT,NRTM,ITAB,
33 . KNOD2ELS,NOD2ELS,NTY,NSV ,MSEGTYP,ID,TITR)
34C
35 USE message_mod
37 use element_mod , only :nixs
38C-----------------------------------------------
39C I m p l i c i t T y p e s
40C-----------------------------------------------
41#include "implicit_f.inc"
42C-----------------------------------------------
43C C o m m o n B l o c k s
44C-----------------------------------------------
45#include "com04_c.inc"
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER IXS(NIXS,*),IXS10(6,*),IRECT(4,*),NOINT,NRTM,
50 . itab(*), knod2els(*), nod2els(*),nty,nsv(*),msegtyp(*)
51 INTEGER ID
52 CHARACTER(LEN=NCHARTITLE) :: TITR
53C-----------------------------------------------
54C L o c a l V a r i a b l e s
55C-----------------------------------------------
56 INTEGER I,J,K,IW,I1,I2,I3,IPERM1(6),IPERM2(6),IPERM3(6),
57 . idbid, iad, iedge, n, n10, nc(4)
58 DATA nc/2,4,7,6/
59 DATA iperm1/2,4,7,2,6,7/
60 DATA iperm2/4,7,2,6,4,6/
61 DATA iperm3/1,2,3,4,5,6/
62 DATA idbid/0/
63 INTEGER IDEGEN(6)
64C-----------------------------------------------
65C Previous version in inint3.F
66C-----------------------------------------------
67C
68
69 DO i=1,nrtm
70 IF (msegtyp(i) /= 10) cycle
71 DO iedge=1,4
72 IF (nty == 5)THEN
73 i1=nsv(irect(iedge,i))
74 i2=nsv(irect(mod(iedge,4)+1,i))
75 ELSE
76 i1=irect(iedge,i)
77 i2=irect(mod(iedge,4)+1,i)
78 ENDIF
79 IF(i2==i1)cycle
80
81 DO iad=knod2els(i1)+1,knod2els(i1+1)
82 n = nod2els(iad)
83 IF(numels8 < n .AND. n <= numels8+numels10)THEN
84 n10=n-numels8
85 DO j=1,4
86 IF(ixs(nc(j),n10)==i2)THEN
87 DO k=1,6
88 IF((i1==ixs(iperm1(k),n10).AND.
89 . i2==ixs(iperm2(k),n10)).OR.
90 . (i2==ixs(iperm1(k),n10).AND.
91 . i1==ixs(iperm2(k),n10)))THEN
92 i3=ixs10(iperm3(k),j)
93 IF(i3/=0)THEN
94 ixs10(iperm3(k),n10)=-abs(ixs10(iperm3(k),n10))
95 END IF
96 END IF
97 END DO
98 END IF
99 END DO
100 END IF
101 ENDDO
102 ENDDO
103 ENDDO
104C
105 DO j=1,numels10
106 iw=0
107 DO k=1,6
108 i3=ixs10(iperm3(k),j)
109 IF(i3 < 0)THEN
110 iw=1
111 ixs10(iperm3(k),j)=0
112 END IF
113 ENDDO
114 IF(iw==1)THEN
115 idegen=0
116 IF(ixs10(1,j)/=0)THEN
117 idegen(1)=itab(ixs10(1,j))
118 ENDIF
119 IF(ixs10(2,j)/=0)THEN
120 idegen(2)=itab(ixs10(2,j))
121 ENDIF
122 IF(ixs10(3,j)/=0)THEN
123 idegen(3)=itab(ixs10(3,j))
124 ENDIF
125 IF(ixs10(4,j)/=0)THEN
126 idegen(4)=itab(ixs10(4,j))
127 ENDIF
128 IF(ixs10(5,j)/=0)THEN
129 idegen(5)=itab(ixs10(5,j))
130 ENDIF
131 IF(ixs10(6,j)/=0)THEN
132 idegen(6)=itab(ixs10(6,j))
133 ENDIF
134 CALL ancmsg(msgid=344,
135 . msgtype=msgwarning,
136 . anmode=aninfo_blind_2,
137 . i1=id,
138 . c1=titr,
139 . i2=ixs(nixs,j),
140 . i3=itab(ixs(2,j)),
141 . i4=itab(ixs(4,j)),
142 . i5=itab(ixs(7,j)),
143 . i6=itab(ixs(6,j)),
144C
145 . i7=idegen(1),
146 . i8=idegen(2),
147 . i9=idegen(3),
148 . i10=idegen(4),
149 . i11=idegen(5),
150 . i12=idegen(6))
151 ENDIF
152 ENDDO
153C
154 RETURN
155 END
subroutine insolt10(ixs, ixs10, irect, noint, nrtm, itab, knod2els, nod2els, nty, nsv, msegtyp, id, titr)
Definition insolt10.F:34
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:895