41
42
43
44
50
51
52
53#include "implicit_f.inc"
54
55
56
57#include "scr17_c.inc"
58
59
60
61 INTEGER,INTENT(IN) :: NPARI, NPARIR
62 INTEGER ISU1,ISU2,NOINT
63 INTEGER IPARI(NPARI),DEF_INTER(100)
65 CHARACTER(LEN=NCHARTITLE)::TITR
66
67 TYPE (GROUP_) ,TARGET, DIMENSION(NGRNOD) :: IGRNOD
68 TYPE (SURF_) ,TARGET , DIMENSION(NSURF) :: IGRSURF
69 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
70 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
71
72
73
74#include "com04_c.inc"
75#include "units_c.inc"
76
77
78
79 INTEGER NTYP, , IPRINT,,IGNORE,
80 . ,IBUC,INTKG,IS1,IS2
82 . startt,stopt,dsearch
83 CHARACTER(LEN=NCHARKEY) :: KEY1
84 INTEGER, DIMENSION(:), POINTER :: INGR2USR
85 LOGICAL IS_AVAILABLE
86
87
88
89 INTEGER NGR2USR
90
91
92
93
94
95 is1=0
96 is2=0
97 ibuc=0
98
99 ntyp = 2
100 ipari(15)=noint
101 ipari(7) =ntyp
102
103 iprint = 0
104
105
106
107 CALL hm_get_intv(
'secondaryentityids',isu1,is_available,lsubmodel)
108 CALL hm_get_intv(
'mainentityids',isu2,is_available,lsubmodel
109 CALL hm_get_intv(
'Isearch',ibuc,is_available,lsubmodel)
110 CALL hm_get_floatv(
'dsearch',dsearch,is_available,lsubmodel,unitab)
111
112 key1='IBUC'
113 iassign = 1
114 CALL definter(key1 ,ibuc ,iassign ,iprint ,
115 . ntyp ,def_inter)
116
117
118 IF(ibuc==0)ibuc=2
119
120 IF (isu1==0) THEN
122 . anmode=aninfo_blind_1,
123 . msgtype=msgerror,
124 . i1=noint,
125 . c1=titr)
126 END IF
127 IF(isu2 == 0) THEN
129 . anmode=aninfo_blind_1,
130 . msgtype=msgerror,
131 . i1=noint,
132 . c1=titr)
133 END IF
134
135 is1=2
136 is2=1
137 ingr2usr => igrnod(1:ngrnod)%ID
138 isu1=
ngr2usr(isu1,ingr2usr,ngrnod)
139 ingr2usr => igrsurf(1:nsurf)%ID
140 isu2=
ngr2usr(isu2,ingr2usr,nsurf)
141 IF (igrnod(isu1)%NENTITY == 0) THEN
143 . anmode=aninfo_blind_1,
144 . msgtype=msgerror,
145 . i1=noint,
146 . c1=titr)
147 END IF
148
149
150
151 ipari(12) = ibuc
152
153 ipari(45) = isu1
154 ipari(46) = isu2
155 ipari(13) = is1*10+is2
156
157 frigap(4) = dsearch
158
159 idel2 = 0
160 ipari(17)= idel2
161
162
163 ignore = 0
164 ipari(34) = ignore
165
166 intkg = 0
167 ipari(65) = intkg
168
169 ilev = 0
170 ipari(20) = ilev
171
172 startt = zero
173 stopt = ep30
174 frigap(3) = startt
175 frigap(11)= stopt
176
177
178
179
180
181 WRITE(iout,1602) ibuc,frigap(4)
182
183 IF(is1==0)THEN
184 WRITE(iout,'(6X,A)')'NO SECONDARY SURFACE INPUT'
185 ELSEIF(is1==1)THEN
186 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
187 ELSEIF(is1==2)THEN
188 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY NODES'
189 ELSEIF(is1==3)THEN
190 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
191 ELSEIF(is1==4 )THEN
192 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY BRICKS'
193 ELSEIF(is1==5 )THEN
194 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
195 ENDIF
196 IF(is2==0)THEN
197 WRITE(iout,'(6X,A)')'NO MAIN SURFACE INPUT'
198 ELSEIF(is2==1)THEN
199 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY SEGMENTS'
200 ELSEIF(is2==2)THEN
201 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY NODES'
202 ELSEIF(is2==3)THEN
203 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY SEGMENTS'
204 ELSEIF(is2==4)THEN
205 WRITE(iout,'(6X,A)')'MAIN SURFACE REFERS ',
206 . 'TO HYPER-ELLIPSOIDAL SURFACE'
207 ENDIF
208
209
210 RETURN
211
212 1602 FORMAT(//
213 . ' TYPE==2 TIED SLIDING ' //
214 . ' LAGRANGE MULTIPLIER FORMULATION ' /
215 . ' SEARCH FORMULATION. . . . . . . . . . . . ',i5/,
216 . ' SEARCH DISTANCE . . . . . . . . . . . . . ',1pg20.13/)
217
subroutine definter(key, ival, flag, iprint, ityp, def_inter)
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer, parameter nchartitle
integer, parameter ncharkey
integer function ngr2usr(iu, igr, ngr)
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)