OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_inter_hertz_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_hertz_type17 ../starter/source/interfaces/int17/hm_read_inter_hertz_type17.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_inter_struct ../starter/source/interfaces/reader/hm_read_inter_struct.F
27!||--- calls -----------------------------------------------------
28!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.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 1 IPARI ,FRIGAP ,NOINT ,NTYP ,
37 2 IGRBRIC ,UNITAB ,LSUBMODEL,TITR )
38C============================================================================
39C-----------------------------------------------
40C M o d u l e s
41C-----------------------------------------------
42 USE message_mod
43 USE groupdef_mod
44 USE submodel_mod
45 USE unitab_mod
47C-----------------------------------------------
48C I m p l i c i t T y p e s
49C-----------------------------------------------
50#include "implicit_f.inc"
51C-----------------------------------------------
52C C o m m o n B l o c k s
53C-----------------------------------------------
54#include "scr06_c.inc"
55#include "com04_c.inc"
56#include "units_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER NOINT,NI,NTYP
61 INTEGER IPARI(*)
63 . frigap(*)
64 CHARACTER(LEN=NCHARTITLE)::TITR
65 TYPE(SUBMODEL_DATA), DIMENSION(NSUBMOD), INTENT(IN) :: LSUBMODEL
66 TYPE (UNIT_TYPE_), INTENT(IN) :: UNITAB
67 TYPE (GROUP_) ,TARGET, DIMENSION(NGRBRIC) :: IGRBRIC
68C-----------------------------------------------
69C L o c a l V a r i a b l e s
70C-----------------------------------------------
71 INTEGER
72 . IS1,IS2,ISU1,ISU2,ISU10,ISU20,MULTIMP,ITIED,UID
74 . startt,bumult,stopt,fric,gap
75 LOGICAL IS_AVAILABLE
76 INTEGER, DIMENSION(:), POINTER :: INGR2USR
77C-----------------------------------------------
78C E x t e r n a l F u n c t i o n s
79C-----------------------------------------------
80 INTEGER NGR2USR
81C=======================================================================
82C READING INTERFACE /INTER/HERTZ/TYPE17
83C=======================================================================
84C Initializations of reals and integers
85 is1 = 0
86 is2 = 0
87 startt = zero
88 stopt = infinity
89 fric = zero
90 gap = zero
91 bumult = bmul0
92 multimp = 24
93 itied = 0
94 is_available = .false.
95C------------------------------------------------------------
96! Printing out titles and interface ID
97 WRITE(iout,1000) noint,trim(titr)
98C------------------------------------------------------------
99! Reading cards
100C------------------------------------------------------------
101C Card1
102C------------------------------------------------------------
103 CALL hm_get_intv('secondaryentityids' ,isu10 ,is_available, lsubmodel)
104 CALL hm_get_intv('mainentityids' ,isu20 ,is_available, lsubmodel)
105C------------------------------------------------------------
106C Card2
107C------------------------------------------------------------
108 CALL hm_get_floatv('FRIC',fric ,is_available, lsubmodel, unitab)
109C------------------------------------------------------------
110! Checking values
111 is1 = 5
112 is2 = 5
113 ingr2usr => igrbric(1:ngrbric)%ID
114 isu1=ngr2usr(isu10,ingr2usr,ngrbric)
115 isu2=ngr2usr(isu20,ingr2usr,ngrbric)
116C------------------------------------------------------------
117! Storage in IPARI and FRIGAP
118C------------------------------------------------------------
119 ipari(7) = ntyp
120 ipari(13) = is1*10+is2
121 ipari(15) = noint
122 ipari(23) = multimp
123 ipari(30) = itied
124 ipari(45) = isu1
125 ipari(46) = isu2
126C
127 frigap(1) = fric
128 frigap(2) = gap
129 frigap(3) = startt
130 frigap(4) = bumult
131 frigap(5) = one
132 frigap(11) = stopt
133C------------------------------------------------------------
134C PRINTOUT
135C------------------------------------------------------------
136C
137 WRITE(iout,1717) isu10,isu20,fric,startt,stopt
138C
139 IF(is1==0)THEN
140 WRITE(iout,'(6X,A)')'NO SECONDARY SURFACE INPUT'
141 ELSEIF(is1==1)THEN
142 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
143 ELSEIF(is1==2)THEN
144 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY NODES'
145 ELSEIF(is1==3)THEN
146 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
147 ELSEIF(is1==4 )THEN
148 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY BRICKS'
149 ELSEIF(is1==5 )THEN
150 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
151 ENDIF
152 IF(is2==0)THEN
153 WRITE(iout,'(6X,A)')'NO MAIN SURFACE INPUT'
154 ELSEIF(is2==1)THEN
155 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY SEGMENTS'
156 ELSEIF(is2==2)THEN
157 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY NODES'
158 ELSEIF(is2==3)THEN
159 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY SEGMENTS'
160 ELSEIF(is2==4)THEN
161 WRITE(iout,'(6X,A)')'MAIN SURFACE REFERS ',
162 . 'TO HYPER-ELLIPSOIDAL SURFACE'
163 ENDIF
164C
165C------------
166 RETURN
167C--------------------------------------------------------------
168 1000 FORMAT(/1x,' INTERFACE NUMBER :',i10,1x,a)
169C--------------------------------------------------------------
170
171 1717 FORMAT(//
172 . ' TYPE==17 SURFACE/SURFACE 16 NODES THICK SHELL' /,
173 . ' HERTZ PRESSURE FORMULATION' //,
174 . ' FIRST SOLID ELEMENT GROUP. . . . . . . . . ',i10/,
175 . ' SECOND SOLID ELEMENT GROUP . . . . . . . . ',i10/,
176 . ' FRICTION FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
177 . ' START TIME. . . . . . . . . . . . . . . . . ',1pg20.13/,
178 . ' STOP TIME . . . . . . . . . . . . . . . . . ',1pg20.13/)
179 END
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_read_inter_hertz_type17(ipari, frigap, noint, ntyp, igrbric, unitab, lsubmodel, titr)
integer, parameter nchartitle