OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
tinit3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "param_c.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "scr03_c.inc"
#include "scr17_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine tinit3 (elbuf_str, ic, pm, x, geo, xmas, dtelem, nft, nel, stifn, partsav, v, ipart, mst, stifint, stt, igeo, nsigtruss, sigtruss, pttruss, preload_a, ipreld, npreload_a)

Function/Subroutine Documentation

◆ tinit3()

subroutine tinit3 ( type(elbuf_struct_), target elbuf_str,
integer, dimension(nixt,*) ic,
pm,
x,
geo,
xmas,
dtelem,
integer nft,
integer nel,
stifn,
partsav,
v,
integer, dimension(*) ipart,
mst,
stifint,
stt,
integer, dimension(npropgi,*) igeo,
integer nsigtruss,
sigtruss,
integer, dimension(*) pttruss,
type(prel1d_), dimension(npreload_a), target preload_a,
integer, intent(in) ipreld,
integer, intent(in) npreload_a )

Definition at line 39 of file tinit3.F.

45C-----------------------------------------------
46C M o d u l e s
47C-----------------------------------------------
48 USE elbufdef_mod
49 USE message_mod
50 USE bpreload_mod
52C-----------------------------------------------
53C I m p l i c i t T y p e s
54C-----------------------------------------------
55#include "implicit_f.inc"
56C-----------------------------------------------
57C G l o b a l P a r a m e t e r s
58C-----------------------------------------------
59#include "mvsiz_p.inc"
60C-----------------------------------------------
61C C o m m o n B l o c k s
62C-----------------------------------------------
63#include "param_c.inc"
64#include "com01_c.inc"
65#include "com04_c.inc"
66#include "scr03_c.inc"
67#include "scr17_c.inc"
68C-----------------------------------------------
69C D u m m y A r g u m e n t s
70C-----------------------------------------------
71 INTEGER IC(NIXT,*),IPART(*),IGEO(NPROPGI,*),PTTRUSS(*)
72 INTEGER NFT,NEL,NSIGTRUSS
73 INTEGER , INTENT (IN ) :: IPRELD,NPRELOAD_A
75 . pm(*),x(*), geo(npropg,*),xmas(*),dtelem(*),
76 . stifn(*),partsav(20,*),v(*),mst(*),stifint(*),stt(*),
77 . sigtruss(nsigtruss,*)
78C
79 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
80 TYPE(PREL1D_) , DIMENSION(NPRELOAD_A), TARGET :: PRELOAD_A
81C-----------------------------------------------
82C L o c a l V a r i a b l e s
83C-----------------------------------------------
84 INTEGER I,IGTYP,NDEPAR,IPID1
85 INTEGER MAT(MVSIZ), MXG(MVSIZ), NC1(MVSIZ), NC2(MVSIZ)
87 . x1(mvsiz), x2(mvsiz),
88 . y1(mvsiz), y2(mvsiz),
89 . z1(mvsiz), z2(mvsiz)
91 . deltax(mvsiz),xx,yy,zz, dtx(mvsiz)
92 INTEGER IDMIN,IDMAX
93 INTEGER ID
94 CHARACTER(LEN=NCHARTITLE)::TITR
95 DATA idmin /-1/, idmax /-1/
97 . lgthmin, lgthmax,xnor,undamp,cc1
98 DATA lgthmin /-1/, lgthmax /-1/
99C
100 TYPE(G_BUFEL_),POINTER :: GBUF
101C=======================================================================
102 gbuf => elbuf_str%GBUF
103C
104 ipid1=ic(nixt-1,nft+1)
105 id=igeo(1,ipid1)
106 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ipid1),ltitr)
107C
108 CALL tcoori(x,ic(1,nft+1),mat, mxg, nc1, nc2,
109 . x1, x2, y1, y2, z1, z2)
110C-----------------------------
111C Check here (change TCOORI for called by /MAT/VOID)
112C-----------------------------
113 CALL tibuf3(gbuf%OFF,gbuf%AREA,geo, mxg)
114 DO i=1,nel
115 xnor=(x1(i)-x2(i))**2+(y1(i)-y2(i))**2+(z1(i)-z2(i))**2
116 IF (xnor <= 1.e-20) THEN
117 CALL ancmsg(msgid=269, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr, i2=ic(5,i+nft))
118 ENDIF
119 gbuf%LENGTH(i) = sqrt(xnor)
120 END DO
121!------------------------------------------
122! Truss initialization
123!------------------------------------------
124 IF (isigi /= 0)
125 . CALL tsigini(nsigtruss ,sigtruss ,pttruss , gbuf%EINT ,gbuf%FOR,
126 . gbuf%G_PLA ,gbuf%PLA ,gbuf%AREA )
127 CALL tmass(x ,ic ,geo ,pm ,xmas ,
128 . stifn ,partsav ,v ,ipart(nft+1),mst(nft+1),
129 . stifint,stt(nft+1) ,gbuf%AREA, mat, nc1, nc2,
130 . x1, x2, y1, y2, z1, z2)
131!------------------------------------------
132C------------------------------------------
133C Compute truss time step 22/4/90
134C------------------------------------------
135 DO i=1,nel
136 igtyp=geo(12,ic(4,i+nft))
137 IF (igtyp /= 2 .AND. invers > 14) THEN
138 CALL ancmsg(msgid=270, msgtype=msgerror, anmode=aninfo_blind_1, i1=id, c1=titr, i2=ic(nixt,i),i3=igtyp)
139 ENDIF
140 xx = (x1(i) - x2(i))*(x1(i) - x2(i))
141 yy = (y1(i) - y2(i))*(y1(i) - y2(i))
142 zz = (z1(i) - z2(i))*(z1(i) - z2(i))
143 deltax(i)=sqrt(xx+yy+zz)
144 IF (lgthmin == -1 .OR. deltax(i) < lgthmin) THEN
145 lgthmin = deltax(i)
146 idmin = ic(5,i+nft)
147 ENDIF
148 IF (lgthmax == -1 .OR. deltax(i) > lgthmax) THEN
149 lgthmax = deltax(i)
150 idmax = ic(5,i+nft)
151 ENDIF
152 ENDDO ! I=1,NEL
153C
154 CALL dt1lawt(pm, deltax, mat, mxg, dtx)
155 ndepar=numels+numelc+nft
156 DO i=1,nel
157 dtelem(ndepar + i) = dtx(i)
158 ENDDO
159!--- /PRELOAD/AXIAL
160 IF (ipreld>0) THEN
161 cc1 =two*sqrt(two)
162 DO i=1,nel
163 undamp = cc1*mst(nft+i)*gbuf%LENGTH(i)/dtx(i)
164 gbuf%BPRELD(i) = preload_a(ipreld)%preload
165 gbuf%BPRELD(i+nel) = undamp*preload_a(ipreld)%damp
166 ENDDO
167 END IF
168C---
169 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine dt1lawt(pm, deltax, mat, mxg, dtx)
Definition dt1lawt.F:29
initmumps id
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
subroutine fretitl2(titr, iasc, l)
Definition freform.F:804
subroutine tcoori(x, ncp, mxt, mxg, nc1, nc2, x1, x2, y1, y2, z1, z2)
Definition tcoori.F:32
subroutine tibuf3(off, area, geo, mxg)
Definition tibuf3.F:29
subroutine tmass(x, nc, geo, pm, ms, stifn, partsav, v, ipart, mst, stifint, stt, area, mxt, nc1, nc2, x1, x2, y1, y2, z1, z2)
Definition tmass.F:33
subroutine tsigini(nsigtruss, sigtruss, pttruss, eint, for, g_pla, pla, area)
Definition tsigini.F:30