OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
bsigini.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!|| bsigini ../starter/source/elements/beam/bsigini.F
25!||--- called by ------------------------------------------------------
26!|| pinit3 ../starter/source/elements/beam/pinit3.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| fretitl2 ../starter/source/starter/freform.F
30!||--- uses -----------------------------------------------------
31!|| message_mod ../starter/share/message_module/message_mod.F
32!||====================================================================
33 SUBROUTINE bsigini(ELBUF_STR,
34 . IGTYP ,NEL ,NSIGBEAM ,SIGBEAM ,PTBEAM,
35 . IXP ,IGEO )
36C-----------------------------------------------
37C M o d u l e s
38C-----------------------------------------------
39 USE elbufdef_mod
40 USE message_mod
42 use element_mod , only : nixp
43C-----------------------------------------------
44C I m p l i c i t T y p e s
45C-----------------------------------------------
46#include "implicit_f.inc"
47C-----------------------------------------------
48C C o m m o n B l o c k s
49C-----------------------------------------------
50#include "vect01_c.inc"
51#include "param_c.inc"
52#include "scr17_c.inc"
53C-----------------------------------------------
54C D u m m y A r g u m e n t s
55C-----------------------------------------------
56 INTEGER :: IGTYP,NEL,NSIGBEAM
57 INTEGER :: PTBEAM(*),IXP(NIXP,*),IGEO(NPROPGI,*)
58 my_real :: sigbeam(nsigbeam,*)
59 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
60C-----------------------------------------------
61C L o c a l V a r i a b l e s
62C-----------------------------------------------
63 INTEGER :: I,II,JJ,IPT,IR,IS,PT,KK(3),ILAY,NPTI,PID,IPID
64 CHARACTER(LEN=NCHARTITLE) :: TITR1
65 TYPE(g_bufel_),POINTER :: GBUF
66 TYPE(l_bufel_),POINTER :: LBUF
67C-----------------------------------------------------------------------
68 gbuf => elbuf_str%GBUF
69!---
70! INITIAL STRESS
71!---
72 DO i=1,3
73 kk(i) = nel*(i-1)
74 ENDDO
75!
76 DO i=lft,llt
77 ii = i+nft
78 jj = ptbeam(ii)
79 IF (jj > 0) THEN
80!---
81 npti = nint(sigbeam(2,jj))
82!---
83 gbuf%EINT(kk(1)+i) = sigbeam(4,jj)
84 gbuf%EINT(kk(2)+i) = sigbeam(5,jj)
85!
86 gbuf%FOR(kk(1)+i) = sigbeam(6,jj)
87 gbuf%FOR(kk(2)+i) = sigbeam(7,jj)
88 gbuf%FOR(kk(3)+i) = sigbeam(8,jj)
89!
90 gbuf%MOM(kk(1)+i) = sigbeam(9,jj)
91 gbuf%MOM(kk(2)+i) = sigbeam(10,jj)
92 gbuf%MOM(kk(3)+i) = sigbeam(11,jj)
93!---
94 IF (igtyp == 3) THEN
95 IF(gbuf%G_PLA > 0) gbuf%PLA(i) = sigbeam(12,jj)
96! check NPT /= NPTI
97 IF (npt /= npti .and . npti /= 0) THEN
98 ipid=ixp(5,i)
99 pid=igeo(1,ixp(5,i))
100 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,ipid),ltitr)
101 CALL ancmsg(msgid=1233,anmode=aninfo,msgtype=msgerror,i1=pid,i2=ixp(nixp,i),c1=titr1)
102 ENDIF
103!
104 ELSEIF (igtyp == 18) THEN
105 pt = 11
106! check NPT /= NPTI
107 IF (npt /= npti .AND. npti /= 0) THEN
108 ipid=ixp(5,i)
109 pid=igeo(1,ixp(5,i))
110 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,ipid),ltitr)
111 CALL ancmsg(msgid=1233,anmode=aninfo,msgtype=msgerror,i1=pid,i2=ixp(nixp,i),c1=titr1)
112 ENDIF
113!
114 DO ipt=1,npt
115 ilay=1
116 ir = 1
117 is = 1
118 lbuf => elbuf_str%BUFLY(ilay)%LBUF(ir,is,ipt)
119 lbuf%SIG(kk(1)+i) = sigbeam(pt+1,jj)
120 lbuf%SIG(kk(2)+i) = sigbeam(pt+2,jj)
121 lbuf%SIG(kk(3)+i) = sigbeam(pt+3,jj)
122 IF(elbuf_str%BUFLY(ilay)%L_PLA > 0) lbuf%PLA(i) = sigbeam(pt+4,jj)
123 pt = pt + 4
124 ENDDO ! DO IPT=1,NPT
125 ENDIF ! IF (IGTYP == 5)
126!---
127 ENDIF ! IF (JJ > 0)
128 ENDDO ! DO I=LFT,LLT
129!---
130 RETURN
131 END
subroutine bsigini(elbuf_str, igtyp, nel, nsigbeam, sigbeam, ptbeam, ixp, igeo)
Definition bsigini.F:36
#define my_real
Definition cppsort.cpp:32
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