OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
insurf.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!|| insurf ../starter/source/interfaces/interf1/insurf.F
25!||--- called by ------------------------------------------------------
26!|| lecins ../starter/source/interfaces/interf1/lecins.F
27!|| lecint ../starter/source/interfaces/interf1/lecint.F
28!||--- calls -----------------------------------------------------
29!|| ancmsg ../starter/source/output/message/message.F
30!|| count3 ../starter/source/interfaces/interf1/count3.F
31!|| usr2sys ../starter/source/system/sysfus.F
32!||--- uses -----------------------------------------------------
33!|| format_mod ../starter/share/modules1/format_mod.F90
34!|| message_mod ../starter/share/message_module/message_mod.F
35!||====================================================================
36 SUBROUTINE insurf(NRT ,MSN ,IR ,IRECT ,
37 . SURF_NODES,ITAB ,MSV ,ID ,TITR ,
38 . NTAG ,S_MSV ,SIRECT, TYPE18)
39C-----------------------------------------------
40C M o d u l e s
41C-----------------------------------------------
42 USE message_mod
44 USE format_mod , ONLY : fmw_4i
45C-----------------------------------------------
46C READING SURFACE AND SEGMENT NUMBERING
47C INPUT : NRT
48C OUTPUT : IRECT
49C-----------------------------------------------
50C I m p l i c i t T y p e s
51C-----------------------------------------------
52#include "implicit_f.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "units_c.inc"
57#include "com01_c.inc"
58#include "com04_c.inc"
59#include "scr03_c.inc"
60C-----------------------------------------------
61C D u m m y A r g u m e n t s
62C-----------------------------------------------
63 INTEGER NRT, IR,MSN
64 INTEGER,INTENT(IN) :: S_MSV,SIRECT
65 INTEGER IRECT(4,SIRECT/4), ITAB(NUMNOD), MSV(S_MSV),SURF_NODES(NRT,4)
66 INTEGER ID
67 CHARACTER(LEN=NCHARTITLE) :: TITR
68 INTEGER, DIMENSION(2*NUMNOD+1), INTENT(INOUT) :: NTAG
69 LOGICAL, INTENT(INOUT) :: TYPE18
70C-----------------------------------------------
71C L o c a l V a r i a b l e s
72C-----------------------------------------------
73 INTEGER I, N23, IT, J, NSGOLD,ITG,K,L,IR1,K4
74 INTEGER OLDIRECT,OLDIRECT1
75C-----------------------------------------------
76C E x t e r n a l F u n c t i o n s
77C-----------------------------------------------
78 INTEGER USR2SYS
79C=======================================================================
80 i=1
81 l=1
82 DO j=1,nrt
83 DO k=1,4
84 irect(k,j)=surf_nodes(j,k)
85 l=l+1
86 ENDDO
87 l=l+2
88 ENDDO
89C SEGMENTS 3 NOEUDS MISE DE N4 = N3
90 DO i=1,nrt
91 IF(irect(4,i)==0) irect(4,i)=irect(3,i)
92 IF(irect(1,i)==irect(4,i)) THEN
93 oldirect=irect(4,i)
94 irect(4,i)=irect(3,i)
95 CALL ancmsg(msgid=106,msgtype=msgwarning,anmode=aninfo_blind_2,
96 . i1=id,
97 . c1=titr,
98 . i2=irect(1,i),
99 . i3=irect(2,i),
100 . i4=irect(3,i),
101 . i5=oldirect,
102 . i6=irect(1,i),
103 . i7=irect(2,i),
104 . i8=irect(3,i),
105 . i9=irect(4,i))
106 ELSEIF(irect(2,i)==irect(3,i)) THEN
107 oldirect=irect(3,i)
108 irect(3,i)=irect(4,i)
109 CALL ancmsg(msgid=106,msgtype=msgwarning,anmode=aninfo_blind_2,
110 . i1=id,
111 . c1=titr,
112 . i2=irect(1,i),
113 . i3=irect(2,i),
114 . i4=oldirect,
115 . i5=irect(4,i),
116 . i6=irect(1,i),
117 . i7=irect(2,i),
118 . i8=irect(3,i),
119 . i9=irect(4,i))
120 ELSEIF(irect(1,i)==irect(2,i)) THEN
121 oldirect=irect(2,i)
122 oldirect1=irect(3,i)
123 irect(2,i)=irect(3,i)
124 irect(3,i)=irect(4,i)
125 CALL ancmsg(msgid=106,msgtype=msgwarning,anmode=aninfo_blind_2,
126 . i1=id,
127 . c1=titr,
128 . i2=irect(1,i),
129 . i3=oldirect,
130 . i4=oldirect1,
131 . i5=irect(4,i),
132 . i6=irect(1,i),
133 . i7=irect(2,i),
134 . i8=irect(3,i),
135 . i9=irect(4,i))
136 ENDIF
137 ENDDO
138C-------
139 IF(ir/=0 .AND. ir/=2)THEN
140 DO j=1,nrt
141 ir1=irect(1,j)
142 irect(1,j)=irect(2,j)
143 irect(2,j)=ir1
144 ir1=irect(3,j)
145 irect(3,j)=irect(4,j)
146 irect(4,j)=ir1
147 ENDDO
148 ENDIF
149 n23=4
150C-------
151 IF(ipri>=1 .AND. .NOT.type18) THEN
152 WRITE(iout,'(/,A,/)')' SEGMENTS USED FOR SURFACE DEFINITION'
153 k=1
154 k4=4
155 IF(n2d/=0)k4=2
156 DO i=1,nrt
157 WRITE(iout,fmt=fmw_4i)(itab(irect(k,i)),k=1,k4)
158 ENDDO
159 ENDIF
160 IF (nrt/=0) CALL count3(irect,msv,msn,nrt,ntag)
161C------------------------------------------------------------
162 RETURN
163 END
subroutine count3(irect, mnn, n, nrt, ntag)
Definition count3.F:33
subroutine insurf(nrt, msn, ir, irect, surf_nodes, itab, msv, id, titr, ntag, s_msv, sirect, type18)
Definition insurf.F:39
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:889