OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
modbufel.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!|| modbufel ../starter/source/constraints/fxbody/modbufel.F
25!||--- called by ------------------------------------------------------
26!|| initia ../starter/source/elements/initia/initia.F
27!||--- calls -----------------------------------------------------
28!|| schrep ../starter/source/constraints/fxbody/fsigsini.F
29!||====================================================================
30 SUBROUTINE modbufel(FXBELM, FXBSIG , BUFEL, NELS , NELC ,
31 . NELT , NELP , NELTG, FXBRPM, LBUFEL,
32 . ASIG , IFILE , IRCS , LVSIG )
33C-----------------------------------------------
34C I m p l i c i t T y p e s
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C G l o b a l P a r a m e t e r s
39C-----------------------------------------------
40#include "mvsiz_p.inc"
41C-----------------------------------------------
42C C o m m o n B l o c k s
43C-----------------------------------------------
44#include "units_c.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 INTEGER FXBELM(*), NELS, NELC, NELT, NELP, NELTG, LBUFEL, ASIG,
49 . IFILE, IRCS, LVSIG
51 . fxbsig(*), bufel(*), fxbrpm(*)
52C-----------------------------------------------
53C L o c a l V a r i a b l e s
54C-----------------------------------------------
55 INTEGER I, J, NFT, NFS, IG, OFFSET, LAST, MX, IAD1, IAD2,
56 . NFT1, IAD, II, IAD3
58 . rt(9), vsig(lvsig), sigl(6,mvsiz), sig(6,mvsiz)
59C
60 DO i=1,3
61 DO j=1,3
62 rt(3*(j-1)+i)=fxbrpm(1+3*(i-1)+j)
63 ENDDO
64 ENDDO
65C
66 IF (ifile==0) THEN
67 DO i=1,lvsig
68 vsig(i)=fxbsig(i)
69 ENDDO
70 asig=asig+lvsig
71 ELSEIF (ifile==1) THEN
72 iad=0
73 DO i=1,lvsig/6
74 ircs=ircs+1
75 READ(ifxs,rec=ircs) (vsig(iad+j),j=1,6)
76 iad=iad+6
77 ENDDO
78 ii=lvsig-(lvsig/6)*6
79 IF (ii/=0) THEN
80 ircs=ircs+1
81 READ(ifxs,rec=ircs) (vsig(iad+j),j=1,ii)
82 ENDIF
83 ENDIF
84C
85 nft=0
86 nfs=0
87 DO ig=1,nels,mvsiz
88 offset=ig-1
89 last=min(mvsiz,nels-offset)
90 DO i=1,last
91 mx=fxbelm(nft+13)
92 iad1=fxbelm(nft+11)
93 iad2=fxbelm(nft+12)
94 bufel(iad1)=vsig(nfs+1)
95 bufel(iad1+1)=vsig(nfs+2)
96 bufel(iad1+2)=vsig(nfs+3)
97 bufel(iad1+3)=vsig(nfs+4)
98 bufel(iad1+4)=vsig(nfs+5)
99 bufel(iad1+5)=vsig(nfs+6)
100 bufel(iad2)=vsig(nfs+7)
101 nft=nft+13
102 nfs=nfs+7
103 ENDDO
104 ENDDO
105 DO ig=1,nelc,mvsiz
106 offset=ig-1
107 last=min(mvsiz,nelc-offset)
108 DO i=1,last
109 mx=fxbelm(nft+10)
110 iad1=fxbelm(nft+7)
111 iad2=fxbelm(nft+8)
112 iad3=fxbelm(nft+9)
113 bufel(iad1)=vsig(nfs+1)
114 bufel(iad1+1)=vsig(nfs+2)
115 bufel(iad1+2)=vsig(nfs+3)
116 bufel(iad1+3)=vsig(nfs+4)
117 bufel(iad1+4)=vsig(nfs+5)
118 bufel(iad2)=vsig(nfs+6)
119 bufel(iad2+1)=vsig(nfs+7)
120 bufel(iad2+2)=vsig(nfs+8)
121 bufel(iad3)=vsig(nfs+9)
122 bufel(iad3+1)=vsig(nfs+10)
123 nft=nft+10
124 nfs=nfs+10
125 ENDDO
126 ENDDO
127 DO ig=1,nelt,mvsiz
128 offset=ig-1
129 last=min(mvsiz,nelt-offset)
130 DO i=1,last
131 mx=fxbelm(nft+7)
132 iad1=fxbelm(nft+5)
133 iad2=fxbelm(nft+6)
134 bufel(iad1)=vsig(nfs+1)
135 bufel(iad2)=vsig(nfs+2)
136 nft=nft+7
137 nfs=nfs+2
138 ENDDO
139 ENDDO
140 DO ig=1,nelp,mvsiz
141 offset=ig-1
142 last=min(mvsiz,nelp-offset)
143 DO i=1,last
144 mx=fxbelm(nft+9)
145 iad1=fxbelm(nft+6)
146 iad2=fxbelm(nft+7)
147 iad3=fxbelm(nft+8)
148 bufel(iad1)=vsig(nfs+1)
149 bufel(iad1+1)=vsig(nfs+2)
150 bufel(iad1+2)=vsig(nfs+3)
151 bufel(iad2)=vsig(nfs+4)
152 bufel(iad2+1)=vsig(nfs+5)
153 bufel(iad2+2)=vsig(nfs+6)
154 bufel(iad3)=vsig(nfs+7)
155 bufel(iad3+1)=vsig(nfs+8)
156 nft=nft+9
157 nfs=nfs+8
158 ENDDO
159 ENDDO
160 DO ig=1,neltg,mvsiz
161 offset=ig-1
162 last=min(mvsiz,neltg-offset)
163 DO i=1,last
164 mx=fxbelm(nft+9)
165 iad1=fxbelm(nft+6)
166 iad2=fxbelm(nft+7)
167 iad3=fxbelm(nft+8)
168 bufel(iad1)=vsig(nfs+1)
169 bufel(iad1+1)=vsig(nfs+2)
170 bufel(iad1+2)=vsig(nfs+3)
171 bufel(iad1+3)=vsig(nfs+4)
172 bufel(iad1+4)=vsig(nfs+5)
173 bufel(iad2)=vsig(nfs+6)
174 bufel(iad2+1)=vsig(nfs+7)
175 bufel(iad2+2)=vsig(nfs+8)
176 bufel(iad3)=vsig(nfs+9)
177 bufel(iad3+1)=vsig(nfs+10)
178 nft=nft+9
179 nfs=nfs+10
180 ENDDO
181 ENDDO
182C
183 nft=0
184 DO ig=1,nels,mvsiz
185 offset=ig-1
186 last=min(mvsiz,nels-offset)
187 nft1=nft
188 DO i=1,last
189 iad1=fxbelm(nft+11)
190 sigl(1,i)=bufel(iad1)
191 sigl(2,i)=bufel(iad1+1)
192 sigl(3,i)=bufel(iad1+2)
193 sigl(4,i)=bufel(iad1+3)
194 sigl(5,i)=bufel(iad1+4)
195 sigl(6,i)=bufel(iad1+5)
196 nft=nft+13
197 ENDDO
198 CALL schrep(last,sigl,sig,rt)
199 nft=nft1
200 DO i=1,last
201 iad1=fxbelm(nft+11)
202 bufel(iad1)=sig(1,i)
203 bufel(iad1+1)=sig(2,i)
204 bufel(iad1+2)=sig(3,i)
205 bufel(iad1+3)=sig(4,i)
206 bufel(iad1+4)=sig(5,i)
207 bufel(iad1+5)=sig(6,i)
208 nft=nft+13
209 ENDDO
210 ENDDO
211C
212 RETURN
213 END SUBROUTINE modbufel
214
#define my_real
Definition cppsort.cpp:32
subroutine schrep(nel, sig, sigl, r)
Definition fsigsini.F:605
#define min(a, b)
Definition macros.h:20
subroutine modbufel(fxbelm, fxbsig, bufel, nels, nelc, nelt, nelp, neltg, fxbrpm, lbufel, asig, ifile, ircs, lvsig)
Definition modbufel.F:33