OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_inter_lagmul_type17.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!|| hm_read_inter_lagmul_type17 ../starter/source/interfaces/int17/hm_read_inter_lagmul_type17.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_inter_lagmul ../starter/source/interfaces/reader/hm_read_inter_lagmul.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
30!|| ngr2usr ../starter/source/system/nintrr.F
31!||--- uses -----------------------------------------------------
32!|| message_mod ../starter/share/message_module/message_mod.F
33!|| submodel_mod ../starter/share/modules1/submodel_mod.F
34!||====================================================================
36 . IPARI ,STFAC ,FRIGAP ,NOINT ,
37 . IGRBRIC ,LSUBMODEL )
38C============================================================================
39C M o d u l e s
40C-----------------------------------------------
41 USE message_mod
42 USE groupdef_mod
43 USE submodel_mod
44C-----------------------------------------------
45C I m p l i c i t T y p e s
46C-----------------------------------------------
47#include "implicit_f.inc"
48C-----------------------------------------------
49C D u m m y A r g u m e n t s
50C-----------------------------------------------
51 INTEGER ISU1,ISU2,NOINT
52 INTEGER IPARI(*)
53 my_real stfac
54 my_real frigap(*)
55 TYPE (GROUP_) ,TARGET, DIMENSION(NGRBRIC) :: IGRBRIC
56 TYPE(submodel_data) LSUBMODEL(*)
57C----------------------s-------------------------
58C C o m m o n B l o c k s
59C-----------------------------------------------
60#include "com01_c.inc"
61#include "com04_c.inc"
62#include "scr06_c.inc"
63#include "units_c.inc"
64C-----------------------------------------------
65C L o c a l V a r i a b l e s
66C-----------------------------------------------
67 INTEGER :: ISU10,ISU20,IDUM,MULTIMP,ITIED,NTYP,IS1,IS2
68 my_real :: STARTT,BUMULT,STOPT,GAP,FRIC
69 INTEGER, DIMENSION(:), POINTER :: INGR2USR
70 LOGICAL IS_AVAILABLE
71C-----------------------------------------------
72C E x t e r n a l F u n c t i o n s
73C-----------------------------------------------
74 INTEGER NGR2USR
75C=======================================================================
76C READING LAGRANGE MULTIPLIER INTERFACES /INTER/LAGMUL/TYPE17
77C=======================================================================
78c Initializations
79 ntyp = 17
80 startt = zero
81 stopt = ep20
82 gap = zero
83 stfac = one_fifth
84 fric = zero
85c------------------------------------------------------------
86c Card1
87 CALL hm_get_intv('secondaryentityids ',isu10,is_available,lsubmodel)
88 CALL hm_get_intv('mainentityids',isu20,is_available,lsubmodel)
89c
90c Card2
91 CALL hm_get_intv('Itied' ,itied,is_available,lsubmodel)
92c------------------------------------------------------------
93c CHECKS
94c------------------------------------------------------------
95 is1 = 5
96 is2 = 5
97 ingr2usr => igrbric(1:ngrbric)%ID
98 isu1 = ngr2usr(isu10,ingr2usr,ngrbric)
99 isu2 = ngr2usr(isu20,ingr2usr,ngrbric)
100c
101 bumult = bmul0
102 multimp=24
103c
104 IF (nspmd > 1) THEN
105 CALL ancmsg(msgid=755,msgtype=msgerror,anmode=aninfo,c1='TYPE 17 LAGRANGE INTERFACE')
106 END IF
107c------------------------------------------------------------
108c STORAGE
109c------------------------------------------------------------
110 ipari(7) = ntyp
111 ipari(13) = is1*10+is2
112 ipari(15) = noint
113 ipari(23) = multimp
114 ipari(30) = itied
115 ipari(15) = noint
116 ipari(45) = isu1
117 ipari(46) = isu2
118C
119 frigap(1) = fric
120 frigap(2) = gap
121 frigap(3) = startt
122 frigap(4) = bumult
123 frigap(5) = one
124 frigap(11)= stopt
125C------------------------------------------------------------
126C PRINTOUT
127C------------------------------------------------------------
128 WRITE(iout,1000)isu10,isu20,itied,startt,stopt
129C
130 IF (is1 == 0) THEN
131 WRITE(iout,'(6X,A)')'NO SECONDARY SURFACE INPUT'
132 ELSEIF (is1 == 1) THEN
133 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
134 ELSEIF (is1 == 2) THEN
135 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY NODES'
136 ELSEIF (is1 == 3) THEN
137 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
138 ELSEIF (is1 == 4 ) THEN
139 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY BRICKS'
140 ELSEIF (is1 == 5 ) THEN
141 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
142 ENDIF
143 IF (is2 == 0) THEN
144 WRITE(iout,'(6X,A)')'NO MAIN SURFACE INPUT'
145 ELSEIF (is2 == 1) THEN
146 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY SEGMENTS'
147 ELSEIF (is2 == 2) THEN
148 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY NODES'
149 ELSEIF (is2 == 3) THEN
150 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY SEGMENTS'
151 ELSEIF (is2 == 4) THEN
152 WRITE(iout,'(6X,A)')'MAIN SURFACE REFERS ',
153 . 'TO HYPER-ELLIPSOIDAL SURFACE'
154 ENDIF
155 WRITE(iout,'(A)')' '
156c-----------
157 RETURN
158c--------------------------------------------------------------
159 1000 FORMAT(//
160 . ' TYPE 17 SURFACE/SURFACE 16 NODES THICK SHELL' //,
161 . ' FIRST SOLID ELEMENT GROUP. . . . . . . . . ',i10/,
162 . ' SECOND SOLID ELEMENT GROUP . . . . . . . . ',i10/,
163 . ' ITIED . . . . . . . . . . . . . . . . . . . ',i10/,
164 . ' 0: SLIDING '/,
165 . ' 1: TIED (during contact)'/,
166 . ' 2: TIED (no rebound)'/,
167 . ' START TIME. . . . . . . . . . . . . . . . . ',1pg20.13/,
168 . ' STOP TIME . . . . . . . . . . . . . . . . . ',1pg20.13//)
169c--------------------------------------------------------------
170 END
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_read_inter_lagmul_type17(ipari, stfac, frigap, noint, igrbric, lsubmodel)
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