OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i25pwr3e.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!|| i25pwr3e ../starter/source/interfaces/inter3d1/i25pwr3e.F
25!||--- called by ------------------------------------------------------
26!|| inint3 ../starter/source/interfaces/inter3d1/inint3.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!||--- uses -----------------------------------------------------
30!|| message_mod ../starter/share/message_module/message_mod.F
31!||====================================================================
32 SUBROUTINE i25pwr3e(ITAB ,INACTI ,CAND_M ,CAND_S ,ISTOK,
33 1 LLT ,PENE ,IWPENE ,CAND_P ,
34 2 N1 ,N2 ,M1 ,M2 ,
35 3 NOINT ,NTY ,IRECT ,ID ,TITR ,
36 4 CAND_M_G ,CAND_S_G,CAND_P_G ,IEDGE,NLEDGE,
37 5 NEDGE ,LEDGE)
38
39 USE message_mod
41C-----------------------------------------------
42C I m p l i c i t T y p e s
43C-----------------------------------------------
44#include "implicit_f.inc"
45C-----------------------------------------------
46C C o m m o n B l o c k s
47C-----------------------------------------------
48#include "scr03_c.inc"
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER ITAB(*),CAND_M(*),CAND_S(*), IRECT(4,*),
53 . N1(*), N2(*), M1(*), M2(*),
54 . CAND_M_G(*),CAND_S_G(*)
55 INTEGER LLT, IWPENE, INACTI, NOINT, NTY, ISTOK
56 INTEGER , INTENT(IN) :: IEDGE, NEDGE, NLEDGE
57 INTEGER , INTENT(IN) :: LEDGE(NLEDGE,*)
58C REAL
59 my_real
60 . pene(*), cand_p(*), cand_p_g(*)
61 INTEGER ID
62 CHARACTER(LEN=NCHARTITLE) :: TITR
63C-----------------------------------------------
64C L o c a l V a r i a b l e s
65C-----------------------------------------------
66 INTEGER I
67 INTEGER SOL_EDGE, SH_EDGE
68C REAL
69C-----------------------------------------------
70
71 sol_edge=iedge/10 ! solids
72 sh_edge =iedge-10*sol_edge ! shells
73
74 DO i=1,llt
75
76 IF(pene(i)/=zero)THEN
77C True initial penetration
78 IF(sh_edge==1.AND.ledge(3,cand_m(i))/=0) THEN
79
80 ELSEIF(sh_edge==1.AND.ledge(3,cand_s(i))/=0) THEN
81
82 ELSEIF(sh_edge==3 .AND.
83 . ledge(3,cand_m(i))/=0 .AND.
84 . ledge(3,cand_s(i))/=0) THEN ! One of the 2 edges is not a free edge
85
86 ELSE
87 iwpene=iwpene+1
88 IF(ipri>=5)
89 . CALL ancmsg(msgid=1631,
90 . msgtype=msgwarning,
91 . anmode=aninfo_blind_1,
92 . i1=itab(n1(i)),
93 . i2=itab(n2(i)),
94 . i3=itab(m1(i)),
95 . i4=itab(m2(i)),
96 . r1=pene(i),
97 . prmod=msg_cumu)
98 ENDIF
99 IF(inacti==0)THEN
100C Ignore initial penetrations
101C ELSEIF(INACTI==1) THEN
102C Deactivation of nodes
103C WRITE(IOUT,'(A)')'NODE STIFFNESS IS SET TO ZERO'
104C STFN(J) = ZERO
105 ELSE IF(inacti==5) THEN
106C
107C Reduction of PENE
108 istok=istok+1
109 cand_m_g(istok)= cand_m(i)
110 cand_s_g(istok)= cand_s(i)
111 cand_p_g(istok)= -pene(i)
112 ELSE IF(inacti==-1) THEN
113 istok=istok+1
114C CAND_P < 0 <=> Initial penetration into the Starter & Initial forces
115 cand_m_g(istok)= cand_m(i)
116 cand_s_g(istok)= cand_s(i)
117 cand_p_g(istok)= -pene(i)
118 ENDIF
119 ELSE
120 END IF
121
122 END DO
123C
124 RETURN
125 END
subroutine i25pwr3e(itab, inacti, cand_m, cand_s, istok, llt, pene, iwpene, cand_p, n1, n2, m1, m2, noint, nty, irect, id, titr, cand_m_g, cand_s_g, cand_p_g, iedge, nledge, nedge, ledge)
Definition i25pwr3e.F:38
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