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