OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i6sti3.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/.
23C
24!||====================================================================
25!|| i6sti3 ../starter/source/interfaces/inter3d1/i6sti3.F
26!||--- called by ------------------------------------------------------
27!|| iniend ../starter/source/interfaces/inter3d1/iniend.F
28!||--- calls -----------------------------------------------------
29!|| ancmsg ../starter/source/output/message/message.F
30!|| local_index ../starter/source/interfaces/interf1/local_index.F
31!||--- uses -----------------------------------------------------
32!|| message_mod ../starter/share/message_module/message_mod.F
33!||====================================================================
34 SUBROUTINE i6sti3(IRECT,STF ,NRT ,STFN ,NSN ,
35 . NSV ,XMAS ,MS ,NPBY ,LPBY ,
36 . NOINT,ITAB ,ID ,TITR )
37C-----------------------------------------------
38C M o d u l e s
39C-----------------------------------------------
40 USE message_mod
42C-----------------------------------------------
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45#include "implicit_f.inc"
46C-----------------------------------------------
47C C o m m o n B l o c k s
48C-----------------------------------------------
49#include "com04_c.inc"
50#include "param_c.inc"
51C-----------------------------------------------
52C D u m m y A r g u m e n t s
53C-----------------------------------------------
54 INTEGER NRT, NSN, NOINT
55C REAL
57 . xmas
58 INTEGER IRECT(4,*), NSV(*), NPBY(NNPBY,*), LPBY(*), ITAB(*)
59C REAL
61 . stf(*), stfn(*), ms(*)
62 INTEGER ID
63 CHARACTER(LEN=NCHARTITLE) :: TITR
64C-----------------------------------------------
65C L o c a l V a r i a b l e s
66C-----------------------------------------------
67 INTEGER IFL, KAD, I, J, K, L, M, N, II, NSL, IG, IL
68C-----------------------------------------------
69C E x t e r n a l F u n c t i o n s
70C-----------------------------------------------
71C
72 ifl=0
73 kad=0
74 DO n=1,nrbykin
75 m =npby(1,n)
76 nsl=npby(2,n)
77 DO j=1,nsl
78 IF (lpby(kad+j) == nsv(1)) THEN
79 xmas=ms(m)
80 GOTO 150
81 ENDIF
82 ENDDO
83 kad =kad+nsl
84 ENDDO
85C Error : no rigid body
86 ifl = 1
87 CALL ancmsg(msgid=100,
88 . msgtype=msgerror,
89 . anmode=aninfo_blind_1,
90 . i1=id,
91 . c1=titr,
92 . i2=itab(nsv(1)))
93C-------------
94 150 CONTINUE
95C-------------
96 DO i=2,nsn
97 ii = nsv(i)
98 DO j=1,nsl
99 IF (lpby(kad+j) == ii) GOTO 300
100 ENDDO
101C
102 IF (ifl == 0) THEN
103 ifl = 1
104 kad = 0
105 DO k=1,nrbykin
106 nsl = npby(2,k)
107 DO j=1,nsl
108 IF (lpby(kad+j) == ii .and. k /= n) THEN
109C Error : second rigid body
110 CALL ancmsg(msgid=1094,
111 . msgtype=msgerror,
112 . anmode=aninfo_blind_1,
113 . i1=id,
114 . c1=titr)
115 GOTO 300
116 ENDIF
117 ENDDO
118 kad = kad+nsl
119 ENDDO
120C Error : no rigid body
121 CALL ancmsg(msgid=100,
122 . msgtype=msgerror,
123 . anmode=aninfo_blind_1,
124 . i1=id,
125 . c1=titr,
126 . i2=itab(ii))
127 ENDIF
128C
129 300 CONTINUE
130 ENDDO !I=2,NSN
131C--------------------------------------------------------------
132C CALCUL DES RIGIDITES DES SEGMENTS ET DES NOEUDS
133C---------------------------------------------------------------
134 DO i=1,nrt
135 stf(i)=one
136 ENDDO
137C---------------------------------------------
138C CALCUL DES RIGIDITES NODALES
139C---------------------------------------------
140 DO j=1,nsn
141 stfn(j)=one
142 ENDDO
143C
144 DO i=1,nrt
145 DO j=1,4
146 ig=irect(j,i)
147 CALL local_index(il,ig,nsv,nsn)
148 irect(j,i)=il
149 ENDDO
150 ENDDO
151C
152 RETURN
153 END
#define my_real
Definition cppsort.cpp:32
subroutine i6sti3(irect, stf, nrt, stfn, nsn, nsv, xmas, ms, npby, lpby, noint, itab, id, titr)
Definition i6sti3.F:37
subroutine local_index(il, ig, nodes, n)
Definition local_index.F:37
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