42 . IG ,IDTITL ,UNITAB ,LSUBMODEL ,RTRANS ,
43 . SUB_ID ,ISKN ,IPART ,SUB_INDEX,DEFAULTS_SOLID)
83#include "implicit_f.inc"
93#include "tablen_c.inc"
94#include "tabsiz_c.inc"
98 INTEGER,
INTENT(INOUT) :: IGEO(NPROPGI)
99 INTEGER,
INTENT(IN) :: IG
100 INTEGER,
INTENT(IN) :: ISKN(LISKN,SISKWN/LISKN)
101 INTEGER,
INTENT(IN) :: IPART(LIPART1,NPART+NTHPART)
102 INTEGER,
INTENT(IN) :: IGTYP
103 INTEGER,
INTENT(IN) :: SUB_ID
104 INTEGER,
INTENT(IN) :: SUB_INDEX
106 my_real,
INTENT(INOUT) :: geo(npropg)
107 my_real,
INTENT(IN) :: rtrans(ntransf,nrtrans)
109 CHARACTER(LEN=NCHARTITLE),
INTENT(IN) :: IDTITL
111 TYPE(
prop_tag_) ,
DIMENSION(0:MAXPROP),
INTENT(INOUT) :: PROP_TAG
112 TYPE(MULTI_FVM_STRUCT),
INTENT(IN) :: MULTI_FVM
114 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
115 TYPE(solid_defaults_),
INTENT(IN) :: DEFAULTS_SOLID
119 INTEGER IHBE,ISMSTR,,ICPRE,ICSTR,IINT,IP,ISK,IREP,JCVT,
120 . NPT,NPTR,NPTS,NPTT,ITET4,IET,ISTR,IHBE_OLD,ITET10,
121 . isorth,icontrol_d,icontrol
123 . cvis,qa,qb,qh,vx,vy,vz,angle,dtmin,px,py,pz,vn,
124 . vdefmin,vdefmax,aspmax,asptet
125 INTEGER K,NSPHDIR,ID_PARTSPH,IPARTSPH,J
126 INTEGER IHBE_DS,ISST_DS,IFRAME_DS,
127 . itet4_d,itet10_d,icpre_d
128 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
130 is_encrypted = .false.
131 is_available = .false.
137 ihbe_ds= defaults_solid%ISOLID
138 isst_ds= defaults_solid%ISMSTR
139 icpre_d= defaults_solid%ICPRE
140 itet4_d= defaults_solid%ITETRA4
141 itet10_d= defaults_solid%ITETRA10
142 iframe_ds= defaults_solid%IFRAME
143 icontrol_d=defaults_solid%ICONTROL
162 CALL hm_get_intv(
'ISOLID',ihbe,is_available,lsubmodel)
163 CALL hm_get_intv(
'Ismstr',ismstr,is_available,lsubmodel)
168 CALL hm_get_intv(
'Itetra10',itet10,is_available,lsubmodel)
169 CALL hm_get_intv(
'Itetra4',itet4,is_available,lsubmodel)
170 CALL hm_get_intv(
'Icpre',icpre,is_available,lsubmodel)
171 CALL hm_get_intv(
'Inpts_R',nptr,is_available,lsubmodel)
172 CALL hm_get_intv(
'Inpts_S',npts,is_available,lsubmodel)
173 CALL hm_get_intv(
'Inpts_T',nptt,is_available,lsubmodel)
174 CALL hm_get_intv(
'SKEW_CSID',isk,is_available,lsubmodel)
175 CALL hm_get_intv(
'REFPLANE',ip,is_available,lsubmodel)
176 CALL hm_get_intv(
'Iframe',jcvt,is_available,lsubmodel)
177 CALL hm_get_intv(
'ORTHTROP',irep,is_available,lsubmodel)
180 CALL hm_get_intv(
'Ndir',nsphdir,is_available,lsubmodel)
181 CALL hm_get_intv(
'SPHPART_ID',id_partsph,is_available,lsubmodel)
182 CALL hm_get_intv(
'Icontrol',icontrol,is_available,lsubmodel)
190 CALL hm_get_floatv(
'MAT_BETA',angle,is_available,lsubmodel,unitab)
194 CALL hm_get_floatv(
'deltaT_min',dtmin,is_available,lsubmodel,unitab
195 CALL hm_get_floatv(
'vdef_min',vdefmin,is_available,lsubmodel,unitab)
196 CALL hm_get_floatv(
'vdef_max',vdefmax,is_available,lsubmodel,unitab)
197 CALL hm_get_floatv(
'ASP_max',aspmax,is_available,lsubmodel,unitab)
198 CALL hm_get_floatv(
'COL_min',asptet,is_available,lsubmodel,unitab)
203 IF(isk == 0 .AND. sub_index /= 0 ) isk = lsubmodel(sub_index)%SKEW
209 IF(itet4 == 0) itet4 = itet4_d
210 IF(itet10 == 0) itet10 = itet10_d
214 .
CALL subrotvect(vx,vy,vz,rtrans,sub_id,lsubmodel)
217 IF(id_partsph > 0)
THEN
219 IF(ipart(4,j)==id_partsph)
THEN
239 IF (ihbe == 18 ) iint = 2
244 IF (ihbe == 0) ihbe = ihbe_ds
264 IF(n2d>0 .AND. ihbe/=0 .AND. ihbe/=2.AND. ihbe/=17)
THEN
268 . msgtype=msgwarning,
269 . anmode=aninfo_blind_2,
274 ELSEIF (ihbe/= 1.AND.ihbe/= 2.AND.ihbe/=14.AND.ihbe/= 24
275 . .AND.ihbe/= 17.AND.ihbe/= 18)
THEN
277 . msgtype=msgwarning,
278 . anmode=aninfo_blind_1,
287 IF (jcvt == 0) jcvt = iframe_ds
288 IF (ihbe == 14.OR.ihbe == 18) jcvt = 2
289 IF (ihbe == 24) jcvt = 2
290 IF (iframe_ds == -2.OR.jcvt<0) jcvt = -1
294 IF(ismstr == 0) ismstr=isst_ds
295 IF(ismstr == 0.AND.ihbe /= 18) ismstr=4
296 IF (isst_ds == -2) ismstr = -1
320 IF (icpre == 0) icpre = icpre_d
321 IF((n2d > 0 .AND. ihbe == 17) )
THEN
322 IF(icpre/=1 .AND. icpre/=2) icpre=0
324 IF(n2d == 1 .AND. ihbe == 17) icpre=0
326 IF (ihbe /= 14 .AND. ihbe /= 24 .AND. ihbe /= 17 .AND. ihbe /= 18) icpre = 0
327 IF (ihbe == 17 )
THEN
328 IF (icpre == 0 )
THEN
330 ELSEIF(icpre == 3 )
THEN
334 IF (icpre == 3 .AND. ihbe /= 18) icpre =0
337 IF (icpre_d == -2) icpre = -1
343 IF(nptr == 0) nptr = 2
344 IF(npts == 0) npts = 2
345 IF(nptt == 0) nptt = 2
346 npt=nptr*100+npts*10+nptt
348 . (nptr < 1 .OR. npts < 1 .OR. nptt < 1 .OR.
349 . nptr > 9 .OR. npts > 9 .OR. nptt > 9))
THEN
352 . anmode=aninfo_blind_1,
357 ELSEIF (ihbe == 16 .AND.
358 . (nptr < 1 .OR. npts < 1 .OR. nptt < 1 .OR.
359 . nptr > 3 .OR. npts > 9 .OR. nptt > 3))
THEN
362 . anmode=aninfo_blind_1,
374 IF((n2d > 0 .AND. ihbe == 17) .OR.
375 . (n2d == 1 .AND. ihbe == 22))
THEN
382 IF(qa == zero .AND. qb == zero) igeo(31) = 1
383 IF (qa == zero) qa = onep1
384 IF (qb == zero) qb = fiveem2
385 IF (qh == zero) qh = em01
390 IF (cvis == zero) cvis = em01
394 ELSEIF (ihbe==1.OR.ihbe==2)
THEN
404 IF (ip == 23 .OR. ip == 24)
THEN
406 vn = vx*vx+vy*vy+vz*vz
410 . anmode=aninfo_blind_1,
417 DO k=0,numskw+
min(1,nspcond)*numsph+nsubmod
418 IF(isk == iskn(4,k+1))
THEN
424 CALL ancmsg(msgid=137,anmode=aninfo,msgtype=msgerror,
427 . i1=ig,i2=isk,c3=idtitl)
432 IF (icontrol==0) icontrol=icontrol_d
433 IF (icontrol>1) icontrol=0
465 IF(.NOT. is_encrypted)
THEN
466 IF(igeo(31) == 1)
THEN
467 WRITE(iout,1100)ig,ihbe,ismstr,iplas,npt,jcvt,itet4,itet10,
468 . icpre,icstr,cvis,qa,qb,qh,dtmin,irep,
istr,icontrol
470 WRITE(iout,1000)ig,ihbe,ismstr,iplas,npt,jcvt,itet4,itet10,
471 . icpre,icstr,cvis,qa,qb,qh,dtmin,irep,
istr,icontrol
473 IF((vdefmin+vdefmax+aspmax+asptet)>zero)
THEN
474 IF (vdefmax==zero) vdefmax=ep10
475 IF (aspmax==zero) aspmax=ep10
476 WRITE(iout,3000) vdefmin,vdefmax,aspmax,asptet
479 WRITE(iout,1001) iskn(4,isk)
480 ELSEIF(ip == 1 .OR. ip == 2 .OR. ip == 3)
THEN
481 WRITE(iout,1002) ip,angle
482 ELSEIF(ip == 11 .OR. ip == 12 .OR. ip == 13)
THEN
483 WRITE(iout,1003) ip,vx,vy,vz
484 ELSEIF(ip == 20)
THEN
486 ELSEIF(ip == 21)
THEN
487 WRITE(iout,2002) ip,px,py,pz
488 ELSEIF(ip == 23)
THEN
489 WRITE(iout,2003) ip,angle,vx,vy,vz
490 ELSEIF(ip == 24)
THEN
491 WRITE(iout,2004) ip,px,py,pz,vx,vy,vz
493 IF (iet > 0)
WRITE(iout,2010) iet
494 IF(nsphdir/=0)
WRITE(iout,2020)nsphdir, id_partsph
499 IF (itet4 == 1000) itet4 = 0
501 IF (itet10 == 1000) itet10 = 0
504 prop_tag(igtyp)%G_SIG = 6
505 prop_tag(igtyp)%L_SIG = 6
506 prop_tag(igtyp)%G_EINT = 1
507 prop_tag(igtyp)%G_QVIS = 1
508 prop_tag(igtyp)%L_EINT = 1
509 prop_tag(igtyp)%G_VOL = 1
510 prop_tag(igtyp)%L_VOL = 1
511 prop_tag(igtyp)%L_QVIS = 1
512 IF (multi_fvm%IS_USED)
THEN
513 prop_tag(igtyp)%G_MOM = 3
516 prop_tag(igtyp)%G_FILL = 1
517 prop_tag(igtyp)%L_STRA = 6
518 IF (n2d /= 0 .AND. multi_fvm%IS_USED)
THEN
520 prop_tag(igtyp)%G_AREA = 1
522 prop_tag(igtyp)%G_GAMA = 6
523 prop_tag(igtyp)%L_SIGL = 6
524 IF (geo(16) /= zero .OR. geo(17) /= zero)
THEN
532 IF(geo( 3)/=zero.AND.igeo( 5)== 0) igeo( 5)=nint(geo( 3))
533 IF(geo(39)/=zero.AND.igeo( 9)== 0) igeo( 9)=nint(geo(39))
534 IF(geo(171)/=zero.AND.igeo(10)== 0) igeo(10)=nint(geo(171))
540 & 5x,
'ORTHOTROPIC SOLID PROPERTY SET'/,
541 & 5x,
'PROPERTY SET NUMBER . . . . . . . . . .=',i10/,
542 & 5x,
'SOLID FORMULATION FLAG. . . . . . . . .=',i10/,
543 & 5x,
'SMALL STRAIN FLAG . . . . . . . . . . .=',i10/,
544 & 5x,
'SOLID STRESS PLASTICITY FLAG. . . . . .=',i10/,
545 & 5x,
'NUMBER OF INTEGRATION POINTS. . . . .=',i10/,
546 & 5x,
'COROTATIONAL SYSTEM FLAG. . . . . . . .=',i10/,
547 & 5x,
'TETRA4 FORMULATION FLAG. . . . . . . .=',i10/,
548 & 5x,
'TETRA10 FORMULATION FLAG . . . . . . .=',i10/,
549 & 5x,
'CONSTANT PRESSURE FLAG. . . . . . . . .=',i10/,
550 & 5x,
'CONSTANT STRESS FLAG. . . . . . . . . .=',i10/,
551 & 5x,
'HOURGLASS NUMERICAL DAMPING . . . . . .=',1pg20.13/,
552 & 5x,
'QUADRATIC BULK VISCOSITY. . . . . . . .=',1pg20.13/,
553 & 5x,
'LINEAR BULK VISCOSITY . . . . . . . . .=',1pg20.13/,
554 & 5x,
'HOURGLASS VISCOSITY . . . . . . . . . .=',1pg20.13/,
555 & 5x,
'BRICK MINIMUM TIME STEP................=',1pg20.13/,
556 & 5x,
'LOCAL ORTHOTROPY SYSTEM FORMULATION . .=',i10/,
557 & 5x,
'POST PROCESSING STRAIN FLAG . . . . . .=',i10/,
558 & 5x,
'SOLID DISTORTION CONTROL FLAG . . . . .=',i10/)
560 & 5x,
'ORTHOTROPIC SOLID PROPERTY SET'/,
561 & 5x,
'PROPERTY SET NUMBER . . . . . . . . . .=',i8/,
562 & 5x,
'CONFIDENTIAL DATA'//)
564 & 5x,
'ORTHOTROPIC SOLID PROPERTY SET'/,
565 & 5x,
'PROPERTY SET NUMBER . . . . . . . . . .=',i10/,
566 & 5x,
'SOLID FORMULATION FLAG. . . . . . . . .=',i10/,
567 & 5x,
'SMALL STRAIN FLAG . . . . . . . . . . .='
568 & 5x,
'SOLID STRESS PLASTICITY FLAG. . . . . .='
569 & 5x,
'NUMBER OF INTEGRATION POINTS. . . . .=',i10/,
570 & 5x,
'COROTATIONAL SYSTEM FLAG. . . . . . . .=',i10/,
571 & 5x,
'TETRA4 FORMULATION FLAG. . . . . . . .=',i10/,
572 & 5x,
'TETRA10 FORMULATION FLAG . . . . . . .='
573 & 5x,
'CONSTANT PRESSURE FLAG. . . . . . . . .=',i10/,
574 & 5x,
'CONSTANT STRESS FLAG. . . . . . . . . .=',i10/,
575 & 5x,
'HOURGLASS NUMERICAL DAMPING . . . . . .=',1pg20.13/,
576 & 5x,
'DEFAULT VALUE FOR QUADRATIC BULK. . . . ',/,
577 & 5x,
' VISCOSITY (QA) WILL BE USED. . . .=',1pg20.13/,
578 & 5x,
'EXCEPT IN CASE LAW 70 WHERE QA = 0. ',/,
579 & 5x,
'DEFAULT VALUE FOR LINEAR BULK . . . . . ',/,
580 & 5x,
' VISCOSITY (QB) WILL BE USED . . . =',1pg20.13/,
581 & 5x,
'EXCEPT IN CASE LAW 70 WHERE QB = 0. ',/,
582 & 5x,
'HOURGLASS VISCOSITY . . . . . . . . . .=',1pg20.13/,
583 & 5x,
'BRICK MINIMUM TIME STEP................=',1pg20.13/,
584 & 5x,
'LOCAL ORTHOTROPY SYSTEM FORMULATION . .=',i10/,
585 & 5x,
'POST PROCESSING STRAIN FLAG . . . . . .=',i10/,
586 & 5x,
'SOLID DISTORTION CONTROL FLAG . . . . .=',i10/)
588 & 5x,
'ORTHOTROPIC SKEW FRAME. . . . . . . . .=',i10)
590 & 5x,
'ORTHOTROPIC PLANE NUMBER. . . . . . . .=',i10/,
591 & 5x,
' 1=(R,S) 2=(S,T) 3=(T,R) ',/,
592 & 5x,
'ORTHOTROPIC ANGLE . . . . . . . . . . .=',1pg20.13)
594 & 5x,
'ORTHOTROPIC PLANE NUMBER. . . . . . . .=',i10/,
595 & 5x,
' 1=(R,S) 2=(S,T) 3=(T,R) ',/,
596 & 5x,
'REFERENCE VECTOR VX . . . . . . . . . .=',1pg20.13/,
597 & 5x,
'REFERENCE VECTOR VY . . . . . . . . . .=',1pg20.13/,
598 & 5x,
'REFERENCE VECTOR VZ . . . . . . . . . .=',1pg20.13)
600 & 5x,
'HOURGLASS MODULUS FLAG. . . . . . . . .=',i10/)
602 & 5x,
'NUMBER OF SPH PARTICLES PER DIRECTION .=',i10/,
603 & 5x,
'CORRESPONDING PART FOR SPH PARTICLES. .=',i10/)
605 & 5x,
'ORTHOTROPIC DIRECTIONS BY ELEMENT CONNECTIVITY,IP='i10)
607 & 5x,
'ORTHOTROPIC DIRECTION FLAG IP. . . . . =',i10/,
608 & 5x,
'REFERENCE POINT PX . . . . . . . . . . =',1pg20.13/,
609 & 5x,
'REFERENCE POINT PY . . . . . . . . . . =',1pg20.13/,
610 & 5x,
'REFERENCE POINT PZ . . . . . . . . . . =',1pg20.13)
612 & 5x,
'ORTHOTROPIC DIRECTION FLAG IP . . . . .=',i10/,
613 & 5x,
'ORTHOTROPIC ANGLE . . . . . . . . . . .=',1pg20.13/,
614 & 5x,
'REFERENCE VECTOR VX . . . . . . . . . .=',1pg20.13/,
615 & 5x,
'REFERENCE VECTOR VY . . . . . . . . . .=',1pg20.13/,
616 & 5x,
'REFERENCE VECTOR VZ . . . . . . . . . .=',1pg20.13)
618 & 5x,
'ORTHOTROPIC DIRECTION FLAG IP. . . . . =',i10/,
619 & 5x,
'REFERENCE POINT PX . . . . . . . . . . =',1pg20.13/,
620 & 5x,
'REFERENCE POINT PY . . . . . . . . . . =',1pg20.13/,
621 & 5x,
'REFERENCE POINT PZ . . . . . . . . . . =',1pg20.13/,
622 & 5x,
'REFERENCE VECTOR VX . . . . . . . . . .=',1pg20.13/,
623 & 5x,
'REFERENCE VECTOR VY . . . . . . . . . .=',1pg20.13/,
624 & 5x,
'REFERENCE VECTOR VZ . . . . . . . . . .=',1pg20.13)
626 & 5x,
'SOLID MINIMUM VOLUMETRIC STRAIN........=',1pg20.13/,
627 & 5x,
'SOLID MAXIMUM VOLUMETRIC STRAIN........=',1pg20.13/,
628 & 5x,
'SOLID MAXIMUM ASPECT RATIO.............=',1pg20.13/,
629 & 5x,
'SOLID MINIMUM COLLAPSE RATIO...........=',1pg20.13/)