OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
inintr_thkvar.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!|| thickvar ../starter/source/interfaces/interf1/inintr_thkvar.F
25!||--- called by ------------------------------------------------------
26!|| inintr_thkvar ../starter/source/interfaces/interf1/inintr_thkvar.F
27!||--- uses -----------------------------------------------------
28!||====================================================================
29 SUBROUTINE thickvar(ELBUF_TAB,IPARG,THKSH4_VAR,THKSH3_VAR,THKNOD,
30 . IXC ,IXTG )
31C-----------------------------------------------
32C M o d u l e s
33C-----------------------------------------------
34 USE elbufdef_mod
35 use element_mod , only : nixc,nixtg
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C C o m m o n B l o c k s
42C-----------------------------------------------
43#include "com01_c.inc"
44#include "param_c.inc"
45#include "vect01_c.inc"
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER IPARG(NPARG,*), IXC(NIXC,*), IXTG(NIXTG,*)
50C REAL
52 . thksh4_var(*), thksh3_var(*), thknod(*)
53 TYPE(elbuf_struct_), DIMENSION(NGROUP) :: ELBUF_TAB
54C-----------------------------------------------
55C L o c a l V a r i a b l e s
56C-----------------------------------------------
57 INTEGER NG, I, J, N, NEL
58C-----------------------------------------------
59 DO ng=1,ngroup
60 mtn=iparg(1,ng)
61 IF (mtn==0 .OR. mtn==13) cycle
62 nel=iparg(2,ng)
63 nft=iparg(3,ng)
64 ity=iparg(5,ng)
65 IF (ity == 3) THEN
66 DO i=1,nel
67 n=nft+i
68 thksh4_var(n)=elbuf_tab(ng)%GBUF%THK(i)
69 DO j=2,5
70 thknod(ixc(j,n))=max(thknod(ixc(j,n)),thksh4_var(n))
71 END DO
72 END DO
73 ELSEIF(ity == 7)THEN
74 DO i=1,nel
75 n=nft+i
76 thksh3_var(n)=elbuf_tab(ng)%GBUF%THK(i)
77 DO j=2,4
78 thknod(ixtg(j,n))=max(thknod(ixtg(j,n)),thksh3_var(n))
79 END DO
80 END DO
81 END IF
82 END DO
83C
84 RETURN
85 END
86!||====================================================================
87!|| inintr_thkvar ../starter/source/interfaces/interf1/inintr_thkvar.F
88!||--- called by ------------------------------------------------------
89!|| lectur ../starter/source/starter/lectur.F
90!||--- calls -----------------------------------------------------
91!|| ancmsg ../starter/source/output/message/message.F
92!|| fretitl2 ../starter/source/starter/freform.F
93!|| inint3_thkvar ../starter/source/interfaces/inter3d1/inint3_thkvar.F
94!|| thickvar ../starter/source/interfaces/interf1/inintr_thkvar.f
95!||--- uses -----------------------------------------------------
96!|| intbufscratch_mod ../starter/source/interfaces/interf1/intbufscratch_mod.F
97!|| intstamp_mod ../starter/share/modules1/intstamp_mod.F
98!|| message_mod ../starter/share/message_module/message_mod.F
99!||====================================================================
100 SUBROUTINE inintr_thkvar(ELBUF_TAB,
101 1 IPARI ,INTBUF_TAB,INSCR ,X ,
102 2 IXS ,IXC ,PM ,GEO ,ITAB ,
103 3 MWA ,RWA ,IXTG ,IKINE ,
104 4 IPARG ,KNOD2ELS,
105 5 KNOD2ELC,KNOD2ELTG,NOD2ELS,NOD2ELC ,NOD2ELTG,
106 6 INTSTAMP,SKEW ,MS ,IN ,V ,
107 7 VR ,RBY ,NPBY ,LPBY ,IPARTS ,
108 8 IPARTC,IPARTG,THK_PART,NOM_OPT,PTR_NOPT_INTER)
109C-----------------------------------------------
110C M o d u l e s
111C-----------------------------------------------
112 USE intstamp_mod
113 USE message_mod
114 USE elbufdef_mod
115 USE intbufdef_mod
117 USE inoutfile_mod
119C-----------------------------------------------
120C I m p l i c i t T y p e s
121C-----------------------------------------------
122#include "implicit_f.inc"
123C-----------------------------------------------
124C C o m m o n B l o c k s
125C-----------------------------------------------
126#include "units_c.inc"
127#include "param_c.inc"
128#include "scr15_c.inc"
129#include "scr17_c.inc"
130#include "com01_c.inc"
131#include "com04_c.inc"
132C-----------------------------------------------
133C D u m m y A r g u m e n t s
134C-----------------------------------------------
135 INTEGER IPARI(NPARI,*), IXS(*),
136 . IXC(*), ITAB(*), MWA(*), IXTG(*), IKINE(*),
137 . IPARG(NPARG,*),
138 . KNOD2ELS(*), KNOD2ELC(*), KNOD2ELTG(*),
139 . NOD2ELS(*), NOD2ELC(*), NOD2ELTG(*),
140 . NPBY(NNPBY,*), LPBY(*), IPARTS(*), IPARTC(*), IPARTG(*)
141 TYPE(INTSTAMP_DATA), TARGET :: INTSTAMP(*)
142 TYPE(INTSTAMP_DATA),POINTER :: pINTSTAMP
143 my_real
144 . x(3,*), pm(*), geo(*), rwa(6,*),
145 . ms(*), in(*), v(3,*), vr(3,*), rby(nrby,*), skew(lskew,*),
146 . thk_part(*)
147 INTEGER NOM_OPT(LNOPT1,*),PTR_NOPT_INTER
148 TYPE(ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
149 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
150 TYPE(scratch_struct_) INSCR(*)
151
152
153C-----------------------------------------------
154C L o c a l V a r i a b l e s
155C-----------------------------------------------
156 INTEGER N, JINSCR, NINTI, IWRN, I, I_MEM,
157 . resort
158 INTEGER NTY, STAT, ISTAMP, MULTIMP,LEN_FILNAM
159 my_real,
160 . DIMENSION(:),ALLOCATABLE:: thksh4_var,thksh3_var,thknod
161 CHARACTER*2148 FILNAM
162 INTEGER ID
163 CHARACTER(LEN=NCHARTITLE) :: TITR
164C-----------------------------------------------
165 i_mem = 0
166 resort = 0
167C----
168 ALLOCATE (thksh4_var(numelc) ,stat=stat)
169 IF (stat /= 0) CALL ancmsg(msgid=268,anmode=aninfo,
170 . msgtype=msgerror,
171 . c1='THKSH4_VAR')
172 ALLOCATE (thksh3_var(numeltg) ,stat=stat)
173 IF (stat /= 0) CALL ancmsg(msgid=268,anmode=aninfo,
174 . msgtype=msgerror,
175 . c1='THKSH3_VAR')
176 ALLOCATE (thknod(numnod) ,stat=stat)
177 IF (stat /= 0) CALL ancmsg(msgid=268,anmode=aninfo,
178 . msgtype=msgerror,
179 . c1='THKNOD')
180 thksh4_var=zero
181 thksh3_var=zero
182 thknod =zero
183C
184 CALL thickvar(elbuf_tab,iparg,thksh4_var,thksh3_var,thknod,
185 . ixc ,ixtg )
186C
187 iwrn = 0
188 istamp=0
189 DO 100 n=1,ninter
190 resort = 0
191 nty=ipari(7,n)
192 IF (nty /= 21 .AND. nty /=23) GOTO 100
193C
194 IF(nty==21) istamp=istamp+1
195C
196 200 CONTINUE
197C
198
199 IF (i_mem == 2)THEN
200 multimp = max(ipari(23,n)+8,nint(ipari(23,n)*1.5))
201 CALL upgrade_multimp(n,multimp,intbuf_tab(n))
202 i_mem = 0
203 ENDIF
204
205
206
207 jinscr=ipari(10,n)
208 ninti=n
209 id=nom_opt(1,ptr_nopt_inter+ninti)
210 CALL fretitl2(titr,
211 . nom_opt(lnopt1-ltitr+1,ptr_nopt_inter+ninti),ltitr)
212
213 IF(istamp > 0)THEN
214 pintstamp => intstamp(istamp)
215 ELSE
216 NULLIFY(pintstamp)
217 ENDIF
218
219 CALL inint3_thkvar(
220 1 intbuf_tab(n),inscr(ninti)%WA ,x ,ixs ,
221 2 ixc ,ixtg ,pm ,geo ,ipari(1,n),
222 3 ninti ,itab ,mwa ,rwa ,iwrn ,
223 4 ikine ,knod2els ,knod2elc ,knod2eltg ,nod2els ,
224 5 nod2elc ,nod2eltg ,
225 6 thksh4_var,thksh3_var ,thknod ,pintstamp ,skew ,
226 7 ms ,in ,v ,vr ,rby ,
227 8 npby ,lpby ,i_mem ,resort ,iparts ,
228 9 ipartc ,ipartg ,thk_part ,id ,titr,
229 a nom_opt)
230 IF (i_mem /= 0) GOTO 200
231 100 CONTINUE
232C
233 IF(iwrn/=0) THEN
234 len_filnam = outfile_name_len + rootlen + 6
235 filnam = outfile_name(1:outfile_name_len)//rootnam(1:rootlen)//'.coord'
236 OPEN(unit=iou2,file=filnam(1:len_filnam),status='UNKNOWN',
237 . form='FORMATTED')
238 WRITE(iou2,'(2A)')'#--1---|---2---|---3---|---4---|',
239 . '---5---|---6---|---7---|---8---|'
240 WRITE(iou2,'(A)')'# NEW NODES COORDINATES'
241 WRITE(iou2,'(2A)')'#--1---|---2---|---3---|---4---|',
242 . '---5---|---6---|---7---|---8---|'
243 WRITE(iou2,'(I10,1P3G20.13)')
244 . (itab(i),x(1,i),x(2,i),x(3,i),i=1,numnod)
245 WRITE(iou2,'(2A)')'#--1---|---2---|---3---|---4---|',
246 . '---5---|---6---|---7---|---8---|'
247 WRITE(iou2,'(A)')'# END OF NEW NODES COORDINATES'
248 WRITE(iou2,'(2A)')'#--1---|---2---|---3---|---4---|',
249 . '---5---|---6---|---7---|---8---|'
250 CLOSE(unit=iou2)
251 ENDIF
252C
253 DEALLOCATE (thksh4_var,thksh3_var)
254C-----------
255 RETURN
256 END
#define my_real
Definition cppsort.cpp:32
subroutine inint3_thkvar(intbuf_tab, inscr, x, ixs, ixc, ixtg, pm, geo, ipari, numint, itab, mwa, rwa, iwrn, ikine, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, thksh4_var, thksh3_var, thknod, intstamp, skew, ms, in, v, vr, rby, npby, lpby, i_mem, resort, iparts, ipartc, ipartg, thk_part, id, titr, nom_opt)
subroutine thickvar(elbuf_tab, iparg, thksh4_var, thksh3_var, thknod, ixc, ixtg)
subroutine inintr_thkvar(elbuf_tab, ipari, intbuf_tab, inscr, x, ixs, ixc, pm, geo, itab, mwa, rwa, ixtg, ikine, iparg, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, intstamp, skew, ms, in, v, vr, rby, npby, lpby, iparts, ipartc, ipartg, thk_part, nom_opt, ptr_nopt_inter)
#define max(a, b)
Definition macros.h:21
character(len=outfile_char_len) outfile_name
integer outfile_name_len
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
subroutine fretitl2(titr, iasc, l)
Definition freform.F:799
program starter
Definition starter.F:39
subroutine upgrade_multimp(ni, multimp_parameter, intbuf_tab)