37 1 IPARI ,STFAC ,FRIGAP ,NOINT ,
38 2 IGRSURF ,ITAB ,ITABM1 ,ISKN ,
39 3 LSUBMODEL ,UNITAB ,SITAB ,SITABM1 ,
40 4 NPARI ,NPARIR ,SISKWN ,LISKN)
54#include "implicit_f.inc"
64 INTEGER,
INTENT(IN) :: SITAB,SITABM1,NPARI,NPARIR,SISKWN,LISKN
65 INTEGER ISU1,ISU2,NOINT
66 INTEGER IPARI(NPARI),ISKN(LISKN,SISKWN/LISKN),(SITAB),ITABM1(SITABM1)
70 TYPE (UNIT_TYPE_),
INTENT(IN) :: UNITAB
72 TYPE (SURF_) ,
TARGET ,
DIMENSION(NSURF) ::
76 INTEGER I,J,L, NTYP,IS1, IS2,IGSTI,ILEV,ITIED,HIERA,
79 . FRIC,GAP,STARTT,STOPT,BID,XC,YC,ZC,XR,,ZR,TETA,
81 CHARACTER(LEN=40)::MESS
82 CHARACTER(LEN=NCHARTITLE)::MSGTITL
83 CHARACTER(LEN=NCHARKEY)::OPT,KEY,KEY1
84 CHARACTER(LEN=NCHARFIELD)::BCFLAG,BCFLAGM
86 INTEGER,
DIMENSION(:),
POINTER :: INGR2USR
91 INTEGER USR2SYS,SUR2USR,NGR2USR
121 CALL hm_get_intv(
'secondaryentityids', isu1, is_available, lsubmodel)
122 CALL hm_get_intv(
'mainentityids', isu2, is_available, lsubmodel)
131 ingr2usr => igrsurf(1:nsurf)%ID
132 isu1=ngr2usr(isu1,ingr2usr,nsurf)
133 isu2=ngr2usr(isu2,ingr2usr,nsurf)
143 CALL hm_get_floatv(
'type12_tol', gap, is_available, lsubmodel, unitab)
150 IF(gap==0.)gap=two*em02
154 CALL hm_get_intv(
'type12_itied', itied, is_available, lsubmodel)
155 CALL hm_get_intv(
'type12_bcopt', bcopt, is_available, lsubmodel)
156 CALL hm_get_intv(
'SKEW_CSID', iskew, is_available, lsubmodel)
157 CALL hm_get_intv(
'Node_C', icenter, is_available, lsubmodel)
161 IF(hiera==0)hiera=itied+1
164 nhin2=
max(nhin2,hiera)
172 CALL hm_get_floatv(
'type12_Xc', xc, is_available, lsubmodel, unitab)
173 CALL hm_get_floatv(
'type12_Yc', yc, is_available, lsubmodel, unitab)
174 CALL hm_get_floatv(
'type12_Zc', zc, is_available, lsubmodel, unitab)
176 CALL hm_get_floatv(
'type12_XN', xr, is_available, lsubmodel, unitab)
177 CALL hm_get_floatv(
'type12_YN', yr, is_available, lsubmodel, unitab)
178 CALL hm_get_floatv(
'type12_ZN', zr, is_available, lsubmodel, unitab)
179 CALL hm_get_floatv(
'type12_theta', teta, is_available, lsubmodel, unitab)
181 CALL hm_get_floatv(
'type12_XT', xt, is_available, lsubmodel, unitab)
182 CALL hm_get_floatv(
'type12_YT', yt, is_available, lsubmodel, unitab)
183 CALL hm_get_floatv(
'type12_ZT', zt, is_available, lsubmodel, unitab)
189 IF (stopt == zero) stopt = ep30
196 IF (stfac == zero) stfac = one_fifth
216 ipari(22)=usr2sys(icenter,itabm1,mess,ipari(15))
223 IF(iskew==iskn(4,j+1))
THEN
230 641
FORMAT(
' ** ERROR INTERF TYPE 12 WRONG SKEW SYSTEM NUMBER')
233 IF(iskn(1,j+1)==0)
THEN
234 WRITE(istdo,
'(a)')
'** WARNING INTERFACE 12'
236 WRITE(iout,642) icenter
237 642
FORMAT(
' ** INTERF TYPE 12 SKEW SYSTEM IS FIXED,',
238 &
' USING CENTER NODE', i8,
239 &
' AND SKEW AXIS 1 FOR POLAR COORDINATE SYSTEM')
241 icenter=itab(iskn(1,j+1))
242 ipari(22)=iskn(1,j+1)
245 WRITE(istdo,
'(a)')
'** WARNING INTERFACE 12'
248 643
FORMAT(
' ** INTERF TYPE 12, USING ORIGIN AND X-AXIS'
249 &
' FOR POLAR COORDINATE SYSTEM')
260 WRITE(iout,1512)gap,itied,ipari(11)
261 IF(ipari(20)==1)
WRITE(iout,2512)ipari(21),icenter
262 IF(ipari(20)==2)
WRITE(iout,2513)ipari(21)
263 IF(itied==2)
WRITE(iout,1513)xt,yt,zt,xc,yc,zc,xr,yr,zr,teta
267 WRITE(iout,
'(6X,A)')
'NO SECONDARY SURFACE INPUT'
269 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY SEGMENTS'
271 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY NODES'
273 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY SEGMENTS'
275 WRITE(iout,
'(6X,A)')
'SECONDARY SIDE INPUT BY BRICKS'
277 WRITE(iout,
'(6X,A)')
'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
280 WRITE(iout,
'(6X,A)')
'NO MAIN SURFACE INPUT'
282 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY SEGMENTS'
284 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY NODES'
286 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY SEGMENTS'
288 WRITE(iout,
'(6X,A)')
'MAIN SURFACE REFERS ',
289 .
'TO HYPER-ELLIPSOIDAL SURFACE'
293 1000
FORMAT(/1x,
' INTERFACE NUMBER :',i10,1x,a)
299 .
' TYPE==12 FLUID/FLUID INTERFACE ' //,
300 .
' TOLERANCE TO FIND MAIN SEGMENT . . . . . ',1pg20.13/,
301 .
' ITIED . . . . . . . . . . . . . . . . . . . ',i1/,
302 .
' 0: SLIDING (NOVOID)'/,
304 .
' 2: PERIODIC BOUNDARY CONDITION '/,
305 .
' 3: SLIDING NO FLUX '/,
306 .
' BCCOD (DEFAULT 2) . . . . . . . . . . . . . ',i1/,
307 .
' 1: NORMAL CHECK '/,
308 .
' 2: SECONDARY DEACTIVATION (RBY & INTER TYPE2) '/,
309 .
' 3: SECONDARY DEACTIVATION (B.C., RBY & INTER TYPE2)'/)
312 .
' TRANSLATION VECTOR XT . . . . . . . . . . ',1pg20.13/,
313 .
' YT . . . . . . . . . . ',1pg20.13/,
314 .
' ZT . . . . . . . . . . ',1pg20.13/,
315 .
' ROTATION CENTER XC . . . . . . . . . . ',1pg20.13/,
316 .
' YC . . . . . . . . . . ',1pg20.13/,
317 .
' ZC . . . . . . . . . . ',1pg20.13/,
318 .
' ROTATION VECTOR XR . . . . . . . . . . ',1pg20.13/,
319 .
' YR . . . . . . . . . . ',1pg20.13/,
320 .
' ZR . . . . . . . . . . ',1pg20.13/,
321 .
' ROTATION ANGLE TETA . . . . . . . . . . ',1pg20.13/)
323 2512
FORMAT(
' POLAR INTERPOLATION : SKEW SYSTEM NUMBER . ',i10/,
324 .
' CENTER NODE . . . . . . . . . . . . . . . . ',i10/)
325 2513
FORMAT(
' SPHERICAL INTERPOLATION : CENTER NODE . . . ',i10/)