38
39
40
41
47
48
49
50#include "implicit_f.inc"
51
52
53
54#include "scr06_c.inc"
55#include "com04_c.inc"
56#include "units_c.inc"
57
58
59
60 INTEGER NOINT,NI,NTYP
61 INTEGER IPARI(*)
63 . frigap(*)
64 CHARACTER(LEN=NCHARTITLE)::TITR
65 TYPE(SUBMODEL_DATA), DIMENSION(NSUBMOD), INTENT(IN)
66TYPE (UNIT_TYPE_), INTENT(IN) :: UNITAB
67 TYPE (GROUP_) ,TARGET, DIMENSION(NGRBRIC) :: IGRBRIC
68
69
70
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
77
78
79
80 INTEGER NGR2USR
81
82
83
84
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.
95
96
97 WRITE(iout,1000) noint,trim(titr)
98
99
100
101
102
103 CALL hm_get_intv(
'secondaryentityids' ,isu10 ,is_available, lsubmodel)
104 CALL hm_get_intv(
'mainentityids' ,isu20 ,is_available, lsubmodel)
105
106
107
108 CALL hm_get_floatv(
'FRIC',fric ,is_available, lsubmodel, unitab)
109
110
111 is1 = 5
112 is2 = 5
113 ingr2usr => igrbric(1:ngrbric)%ID
114 isu1=
ngr2usr(isu10,ingr2usr,ngrbric)
115 isu2=
ngr2usr(isu20,ingr2usr,ngrbric)
116
117
118
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
126
127 frigap(1) = fric
128 frigap(2) = gap
129 frigap(3) = startt
130 frigap(4) = bumult
131 frigap(5) = one
132 frigap(11) = stopt
133
134
135
136
137 WRITE(iout,1717) isu10,isu20,fric,startt,stopt
138
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
164
165
166 RETURN
167
168 1000 FORMAT(/1x,' INTERFACE NUMBER :',i10,1x,a)
169
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/)
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer, parameter nchartitle
integer function ngr2usr(iu, igr, ngr)