40 1 NIF ,NOM_OPT ,TITR ,UNITAB ,IGRPART ,
41 2 IPART ,NSET ,TAGPRT_FRIC,TABCOUPLEPARTS_FRIC_TMP ,
43 3 MFROT ,IFQ ,XFILTR ,FRICFORM ,
44 4 IFLAG ,ORTHFRIC ,IFRICORTH_TMP,NGRPF ,
45 4 LENGRPF ,LENG ,NOINTF ,LSUBMODEL )
60#include "implicit_f.inc"
68 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
69 INTEGER NOM_OPT(LNOPT1,*)
70 INTEGER NIF ,IFLAG ,MFROT ,IFQ ,FRICFORM ,NSET ,ORTHFRIC , NGRPF,LENG,NOINTF
71 INTEGER IPART(LIPART1,*) ,TAGPRT_FRIC(*),
72 . TABCOUPLEPARTS_FRIC_TMP(NINTERFRIC,*),IFRICORTH_TMP(NINTERFRIC,*),
75 my_real tabcoef_fric_tmp(ninterfric,*)
76 CHARACTER(LEN=NCHARTITLE)::TITR
78 TYPE (GROUP_) ,
DIMENSION(NGRPART) :: IGRPART
79 TYPE (SUBMODEL_DATA),
DIMENSION(*),
INTENT(IN) :: LSUBMODEL
88 INTEGER I ,J ,IP ,N ,N1 ,N2 ,KK ,NL ,
89 . GRPART1 ,GRPART2 ,IPART1 ,IPART2 ,FLAGP1 ,FLAGP2,FLAGGRP1,
90 . FLAGGRP2 ,IDTGRS1 ,IDTGRS2 ,NCOUPLE ,
91 . IPP ,IPP1 ,IPP2 ,IDIR ,NTAB ,LENF ,GRPN ,GRPN1 ,GRPN2 ,
92 . NP0 ,NGR0 ,K ,NGR ,J1 ,J2 ,STAT ,WORK(70000),NINPUT
93 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
94 . trigrpt ,index ,newgrp ,tagg1 ,tagg2
96 . c1 ,c2 ,c3 ,c4 ,c5 ,c6 ,
alpha ,c11 ,c22 ,c33 ,c44 ,c55 ,c66 ,
97 . fric ,viscf ,fric2 ,viscf2
104 idtgrs1 = -huge(idtgrs1)
105 idtgrs2 = -huge(idtgrs2)
107 is_available = .false.
109 ALLOCATE (trigrpt(leng),stat=stat)
110 ALLOCATE (index(2*leng),stat=stat)
111 ALLOCATE (newgrp(leng+1),stat=stat)
112 ALLOCATE (tagg1(leng),stat=stat)
113 ALLOCATE (tagg2(leng),stat=stat)
115 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,nif),ltitr)
117 nom_opt(1,nif)=nointf
126 IF(orthfric ==0)
THEN
138 CALL hm_get_intv(
'ifric',mfrot,is_available,lsubmodel)
139 CALL hm_get_intv(
'ifiltr',ifq,is_available,lsubmodel)
140 CALL hm_get_intv(
'iform',fricform,is_available,lsubmodel)
151 CALL hm_get_floatv(
'fric',fric,is_available,lsubmodel,unitab)
152 CALL hm_get_floatv(
'vis_f',viscf,is_available,lsubmodel,unitab)
156 IF (
alpha==0.) ifq = 0
159 IF (fricform==0) fricform = 1
160 IF (fricform==2.AND.ifq<10) ifq = ifq + 10
163 IF (ifq==10) xfiltr = one
164 IF (mod(ifq,10)==1) xfiltr =
alpha
165 IF (mod(ifq,10)==2) xfiltr=four*atan2(one,zero) /
alpha
166 IF (mod(ifq,10)==3) xfiltr=four*atan2(one,zero) *
alpha
167 IF (xfiltr<zero)
THEN
168 CALL ancmsg(msgid=1591, msgtype=msgerror, anmode=aninfo_blind_1, i1=nointf, c1=titr, r1=
alpha)
169 ELSEIF (xfiltr>1.AND.mod(ifq,10)<=2)
THEN
170 CALL ancmsg(msgid=1591, msgtype=msgerror, anmode=aninfo_blind_1, i1=nointf, c1=titr, r1=
alpha)
181 IF((fric/=zero.OR.mfrot/=0).AND.viscf==zero)viscf=one
183 IF (fricform==2)viscf=zero
185 tabcoef_fric_tmp(nif,1) = fric
186 tabcoef_fric_tmp(nif,2) = viscf
188 tabcoef_fric_tmp(nif,3) = c1
189 tabcoef_fric_tmp(nif,4) = c2
190 tabcoef_fric_tmp(nif,5) = c3
191 tabcoef_fric_tmp(nif,6) = c4
192 tabcoef_fric_tmp(nif,7) = c5
193 tabcoef_fric_tmp(nif,8) = c6
201 WRITE(iout,1500) nointf, trim(titr)
202 IF(fricform ==2)
THEN
218 WRITE(iout,1502)mod(ifq,10), xfiltr
222 WRITE(iout,3503) fric
223 IF(fricform /= 2)
WRITE(iout,3504) viscf
225 WRITE(iout,1504) fric,c1,c2,c3,c4,c5,c6
227 WRITE(iout,1505) fric,c1,c2,c3,c4,c5,c6
229 WRITE(iout,1506) c1,c2,c3,c4,c5,c6
231 WRITE(iout,1514) fric,c1,c2
244 IF(iflag==1)
WRITE(iout,1507)
247 CALL hm_get_intv(
'N',ninput,is_available,lsubmodel)
293 IF(ipart1 == ipart(4,n))
THEN
303 . anmode=aninfo_blind_1,
313 IF(ipart2 == ipart(4,n))
THEN
323 . anmode=aninfo_blind_1,
335 + ngrbric+ngrquad+ngrshel+ngrsh3n+ngrtrus+ngrbeam+ngrspri
337 IF (igrpart(n)%ID == grpart1)
THEN
343 IF(flaggrp1 == 0)
THEN
346 . anmode=aninfo_blind_1,
356 + ngrbric+ngrquad+ngrshel+ngrsh3n+ngrtrus+ngrbeam+ngrspri
358 IF (igrpart(n)%ID == grpart2)
THEN
364 IF(flaggrp2 == 0)
THEN
367 . anmode=aninfo_blind_1,
378 IF((fric/=zero.OR.mfrot/=0).AND.viscf==zero)viscf=one
380 IF (fricform==2)viscf=zero
384 IF((fric2/=zero.OR.mfrot/=0).AND.viscf2==zero)viscf2=one
386 IF (fricform==2)viscf2=zero
388 IF((fric2/=zero.OR.mfrot/=0).AND.viscf2==zero)viscf2=one
390 IF (fricform==2)viscf2=zero
398 IF(flagp1 /= 0.AND.flagp2 /= 0)
THEN
401 IF(tagprt_fric(n1) ==0 )
THEN
403 tagprt_fric(n1)=ngrpf
407 grpn = tagprt_fric(n1)
408 IF(lengrpf(grpn)/=1)
THEN
410 tagprt_fric(n1)=ngrpf
412 lengrpf(grpn) =lengrpf(grpn) - 1
415 IF(tagprt_fric(n2) ==0 )
THEN
417 tagprt_fric(n2)=ngrpf
421 grpn = tagprt_fric(n2)
422 IF(lengrpf(grpn)/=1)
THEN
424 tagprt_fric(n2)=ngrpf
426 lengrpf(grpn) =lengrpf(grpn) - 1
433 grpn1 = tagprt_fric(n1)
434 grpn2 = tagprt_fric(n2)
436 IF(grpn1 > grpn2 )
THEN
442 ncouple = ncouple + 1
443 tabcoupleparts_fric_tmp(nif,ncouple) = grpn1
444 ncouple = ncouple + 1
445 tabcoupleparts_fric_tmp(nif,ncouple) = grpn2
447 ntab = lenf*8*(nset-1)+8
448 tabcoef_fric_tmp(nif,ntab+1) = fric
449 tabcoef_fric_tmp(nif,ntab+2) = viscf
451 tabcoef_fric_tmp(nif,ntab+3) = c1
452 tabcoef_fric_tmp(nif,ntab+4) = c2
453 tabcoef_fric_tmp(nif,ntab+5) = c3
454 tabcoef_fric_tmp(nif,ntab+6) = c4
455 tabcoef_fric_tmp(nif,ntab+7) = c5
456 tabcoef_fric_tmp(nif,ntab+8) = c6
458 ifricorth_tmp(nif,nset) = idir
461 tabcoef_fric_tmp(nif,ntab+1) = fric2
462 tabcoef_fric_tmp(nif,ntab+2) = viscf2
464 tabcoef_fric_tmp(nif,ntab+3) = c11
465 tabcoef_fric_tmp(nif,ntab+4) = c22
466 tabcoef_fric_tmp(nif,ntab+5) = c33
467 tabcoef_fric_tmp(nif,ntab+6) = c44
468 tabcoef_fric_tmp(nif,ntab+7) = c55
469 tabcoef_fric_tmp(nif,ntab+8) = c66
475 WRITE (iout,2001) ipart(4,n1),ipart(4,n2)
479 WRITE(iout,3503) fric
480 IF(fricform /= 2)
WRITE(iout,3504) viscf
482 WRITE(iout,1504) fric,c1,c2,c3,c4,c5,c6
484 WRITE(iout,1505)fric,c1,c2,c3,c4,c5,c6
486 WRITE(iout,1506)c1,c2,c3,c4,c5,c6
488 WRITE(iout,1514) fric,c1,c2
494 WRITE(iout,3503) fric
495 IF(fricform /= 2)
WRITE(iout,3504) viscf
497 WRITE(iout,1504) fric,c1,c2,c3,c4,c5,c6
499 WRITE(iout,1505)fric,c1,c2,c3,c4,c5,c6
501 WRITE(iout,1506)c1,c2,c3,c4,c5,c6
503 WRITE(iout,1514) fric,c1,c2
507 WRITE(iout,3503) fric2
508 IF(fricform /= 2)
WRITE(iout,3504) viscf2
510 WRITE(iout,1504) fric2,c11,c22,c33,c44,c55,c66
512 WRITE(iout,1505)fric2,c11,c22,c33,c44,c55,c66
514 WRITE(iout,1506)c11,c22,c33,c44,c55,c66
516 WRITE(iout,1514) fric2,c11,c22
524 IF(flagp1 /= 0.AND.flaggrp2 /= 0)
THEN
527 IF(tagprt_fric(n1) ==0 )
THEN
529 tagprt_fric(n1)=ngrpf
532 grpn = tagprt_fric(n1)
533 IF(lengrpf(grpn)/=1)
THEN
536 tagprt_fric(n1)=ngrpf
537 lengrpf(grpn) =lengrpf(grpn) - 1
542 DO i=1,igrpart(idtgrs2)%NENTITY
543 ip=igrpart(idtgrs2)%ENTITY(i)
544 IF(tagprt_fric(ip) ==0 )
THEN
548 IF(np0 == igrpart(idtgrs2)%NENTITY)
THEN
551 DO i=1,igrpart(idtgrs2)%NENTITY
552 ip=igrpart(idtgrs2)%ENTITY(i)
553 tagprt_fric(ip)=ngrpf
563 ip=igrpart(idtgrs2)%ENTITY(i)
569 DO i=1,igrpart(idtgrs2)%NENTITY
570 ip=igrpart(idtgrs2)%ENTITY(i)
571 IF(tagprt_fric(ip)==0) tagprt_fric(ip)=ngrpf
572 trigrpt(i) = tagprt_fric(ip)
575 CALL my_orders( 0, work, trigrpt, index, igrpart(idtgrs2)%NENTITY , 1)
577 ngr0 = trigrpt(index(1))
582 DO i=2,igrpart(idtgrs2)%NENTITY
583 ngr = trigrpt(index(i))
585 IF(lengrpf(ngr0) /= i-newgrp(j)-1)
THEN
593 IF(lengrpf(ngr0) /= igrpart(idtgrs2)%NENTITY-newgrp(j))
THEN
600 lengrpf(ngrpf) = newgrp( k+1) - newgrp( k)
601 ip=igrpart(idtgrs2)%ENTITY(index(newgrp( k)+1))
602 ngr0 = tagprt_fric(ip)
603 lengrpf(ngr0) =lengrpf(ngr0) -lengrpf(ngrpf)
604 DO i =newgrp( k)+1,newgrp( k+1)
605 ip=igrpart(idtgrs2)%ENTITY(index(i))
606 tagprt_fric(ip) =ngrpf
617 grpn1 = tagprt_fric(n1)
623 DO i=1,igrpart(idtgrs2)%NENTITY
624 ip=igrpart(idtgrs2)%ENTITY(i)
625 trigrpt(i) = tagprt_fric(ip)
628 CALL my_orders( 0, work, trigrpt, index, igrpart(idtgrs2)%NENTITY , 1)
630 ngr0 = trigrpt(index(1))
633 DO i=2,igrpart(idtgrs2)%NENTITY
634 ngr = trigrpt(index(i))
656 ncouple = ncouple + 1
657 tabcoupleparts_fric_tmp(nif,ncouple) = ipp
658 ncouple = ncouple + 1
659 tabcoupleparts_fric_tmp(nif,ncouple) = ip
661 ntab = lenf*8*(nset-1)+8
662 tabcoef_fric_tmp(nif,ntab+1) = fric
663 tabcoef_fric_tmp(nif,ntab+2) = viscf
665 tabcoef_fric_tmp(nif,ntab+3) = c1
666 tabcoef_fric_tmp(nif,ntab+4) = c2
667 tabcoef_fric_tmp(nif,ntab+5) = c3
668 tabcoef_fric_tmp(nif,ntab+6) = c4
669 tabcoef_fric_tmp(nif,ntab+7) = c5
670 tabcoef_fric_tmp(nif,ntab+8) = c6
672 ifricorth_tmp(nif,nset) = idir
678 tabcoef_fric_tmp(nif,ntab+1) = fric2
679 tabcoef_fric_tmp(nif,ntab+2) = viscf2
681 tabcoef_fric_tmp(nif,ntab+3) = c11
682 tabcoef_fric_tmp(nif,ntab+4) = c22
683 tabcoef_fric_tmp(nif,ntab+5) = c33
684 tabcoef_fric_tmp(nif,ntab+6) = c44
685 tabcoef_fric_tmp(nif,ntab+7) = c55
686 tabcoef_fric_tmp(nif,ntab+8) = c66
698 . ipart(4,n1),grpart2
702 WRITE(iout,3503) fric
703 IF(fricform /= 2)
WRITE(iout,3504) viscf
705 WRITE(iout,1504) fric,c1,c2,c3,c4,c5,c6
707 WRITE(iout,1505)fric,c1,c2,c3,c4,c5,c6
709 WRITE(iout,1506)c1,c2,c3,c4,c5,c6
711 WRITE(iout,1514) fric,c1,c2
717 WRITE(iout,3503) fric
718 IF(fricform /= 2)
WRITE(iout,3504) viscf
720 WRITE(iout,1504) fric,c1,c2,c3,c4,c5,c6
722 WRITE(iout,1505)fric,c1,c2,c3,c4,c5,c6
724 WRITE(iout,1506)c1,c2,c3,c4,c5,c6
726 WRITE(iout,1514) fric,c1,c2
730 WRITE(iout,3503) fric2
731 IF(fricform /= 2)
WRITE(iout,3504) viscf2
733 WRITE(iout,1504) fric2,c11,c22,c33,c44,c55,c66
735 WRITE(iout,1505)fric2,c11,c22,c33,c44,c55,c66
737 WRITE(iout,1506)c11,c22,c33,c44,c55,c66
739 WRITE(iout,1514) fric2,c11,c22
746 IF(flagp2 /= 0.AND.flaggrp1 /= 0)
THEN
749 IF(tagprt_fric(n2) ==0 )
THEN
751 tagprt_fric(n2)=ngrpf
754 grpn = tagprt_fric(n2)
755 IF(lengrpf(grpn)/=1)
THEN
758 tagprt_fric(n2)=ngrpf
759 lengrpf(grpn) =lengrpf(grpn) - 1
764 DO i=1,igrpart(idtgrs1)%NENTITY
765 ip=igrpart(idtgrs1)%ENTITY(i)
766 IF(tagprt_fric(ip) ==0 )
THEN
773 IF(np0 == igrpart(idtgrs1)%NENTITY)
THEN
776 DO i=1,igrpart(idtgrs1)%NENTITY
777 ip=igrpart(idtgrs1)%ENTITY(i)
778 tagprt_fric(ip)=ngrpf
785 DO i=1,igrpart(idtgrs1)%NENTITY
786 ip=igrpart(idtgrs1)%ENTITY(i)
787 IF(tagprt_fric(ip) ==0 ) tagprt_fric(ip) = ngrpf
792 DO i=1,igrpart(idtgrs1)%NENTITY
793 ip=igrpart(idtgrs1)%ENTITY(i)
794 IF(tagprt_fric(ip)==0) tagprt_fric(ip)=ngrpf
795 trigrpt(i) = tagprt_fric(ip)
798 CALL my_orders( 0, work, trigrpt, index, igrpart(idtgrs1)%NENTITY , 1)
800 ngr0 = trigrpt(index(1))
804 DO i=2,igrpart(idtgrs1)%NENTITY
805 ngr = trigrpt(index(i))
807 IF(lengrpf(ngr0) /= i-newgrp(j)-1)
THEN
816 IF(lengrpf(ngr0) /= igrpart(idtgrs1)%NENTITY-newgrp(j))
THEN
825 lengrpf(ngrpf) = newgrp( k+1) - newgrp( k)
826 ip=igrpart(idtgrs1)%ENTITY(index(newgrp( k)+1))
827 ngr0 = tagprt_fric(ip)
828 lengrpf(ngr0) =lengrpf(ngr0) -lengrpf(ngrpf)
829 DO i =newgrp( k)+1,newgrp( k+1)
830 ip=igrpart(idtgrs1)%ENTITY(index(i))
831 tagprt_fric(ip) =ngrpf
840 grpn2 = tagprt_fric(n2)
845 DO i=1,igrpart(idtgrs1)%NENTITY
846 ip=igrpart(idtgrs1)%ENTITY(i)
847 trigrpt(i) = tagprt_fric(ip)
850 CALL my_orders( 0, work, trigrpt, index, igrpart(idtgrs1)%NENTITY , 1)
852 ngr0 = trigrpt(index(1))
855 DO i=2,igrpart(idtgrs1)%NENTITY
856 ngr = trigrpt(index(i))
876 ncouple = ncouple + 1
877 tabcoupleparts_fric_tmp(nif,ncouple) = ipp
878 ncouple = ncouple + 1
879 tabcoupleparts_fric_tmp(nif,ncouple) = ip
881 ntab = lenf*8*(nset-1)+8
882 tabcoef_fric_tmp(nif,ntab+1) = fric
883 tabcoef_fric_tmp(nif,ntab+2) = viscf
885 tabcoef_fric_tmp(nif,ntab+3) = c1
886 tabcoef_fric_tmp(nif,ntab+4) = c2
887 tabcoef_fric_tmp(nif,ntab+5) = c3
888 tabcoef_fric_tmp(nif,ntab+6) = c4
889 tabcoef_fric_tmp(nif,ntab+7) = c5
890 tabcoef_fric_tmp(nif,ntab+8) = c6
892 ifricorth_tmp(nif,nset) = idir
897 tabcoef_fric_tmp(nif,ntab+1) = fric2
898 tabcoef_fric_tmp(nif,ntab+2) = viscf2
899 tabcoef_fric_tmp(nif,ntab+3) = c11
900 tabcoef_fric_tmp(nif,ntab+4) = c22
901 tabcoef_fric_tmp(nif,ntab+5) = c33
902 tabcoef_fric_tmp(nif,ntab+6) = c44
903 tabcoef_fric_tmp(nif,ntab+7) = c55
904 tabcoef_fric_tmp(nif,ntab+8) = c66
915 . grpart1,ipart(4,n2)
919 WRITE(iout,3503) fric
920 IF(fricform /= 2)
WRITE(iout,3504) viscf
922 WRITE(iout,1504) fric,c1,c2,c3,c4,c5,c6
924 WRITE(iout,1505)fric,c1,c2,c3,c4,c5,c6
926 WRITE(iout,1506)c1,c2,c3,c4,c5,c6
928 WRITE(iout,1514) fric,c1,c2
934 WRITE(iout,3503) fric
935 IF(fricform /= 2)
WRITE(iout,3504) viscf
937 WRITE(iout,1504) fric,c1,c2,c3,c4,c5,c6
939 WRITE(iout,1505)fric,c1,c2,c3,c4,c5,c6
941 WRITE(iout,1506)c1,c2,c3,c4,c5,c6
943 WRITE(iout,1514) fric,c1,c2
947 WRITE(iout,3503) fric2
948 IF(fricform /= 2)
WRITE(iout,3504) viscf2
950 WRITE(iout,1504) fric2,c11,c22,c33,c44,c55,c66
952 WRITE(iout,1505)fric2,c11,c22,c33,c44,c55,c66
954 WRITE(iout,1506)c11,c22,c33,c44,c55,c66
956 WRITE(iout,1514) fric2,c11,c22
963 IF(flaggrp1 /= 0.AND.flaggrp2 /=0)
THEN
967 DO i=1,igrpart(idtgrs1)%NENTITY
968 ip=igrpart(idtgrs1)%ENTITY(i)
969 IF(tagprt_fric(ip) ==0 )
THEN
976 IF(np0 == igrpart(idtgrs1)%NENTITY)
THEN
979 DO i=1,igrpart(idtgrs1)%NENTITY
980 ip=igrpart(idtgrs1)%ENTITY(i)
981 tagprt_fric(ip)=ngrpf
988 DO i=1,igrpart(idtgrs1)%NENTITY
990 IF(tagprt_fric(ip) ==0 ) tagprt_fric(ip) = ngrpf
995 DO i=1,igrpart(idtgrs1)%NENTITY
996 ip=igrpart(idtgrs1)%ENTITY(i)
997 IF(tagprt_fric(ip)==0) tagprt_fric(ip)=ngrpf
998 trigrpt(i) = tagprt_fric(ip)
1001 CALL my_orders( 0, work, trigrpt, index, igrpart(idtgrs1)%NENTITY , 1)
1003 ngr0 = trigrpt(index(1))
1005 newgrp(1:leng+1) = 0
1007 DO i=2,igrpart(idtgrs1)%NENTITY
1008 ngr = trigrpt(index(i))
1010 IF(lengrpf(ngr0) /= i-newgrp(j)-1)
THEN
1019 IF(lengrpf(ngr0) /= igrpart(idtgrs1)%NENTITY-newgrp(j))
THEN
1026 IF(tagg1(k)==1)
THEN
1028 lengrpf(ngrpf) = newgrp( k+1) - newgrp( k)
1029 ip=igrpart(idtgrs1)%ENTITY(index(newgrp( k)+1))
1030 ngr0 = tagprt_fric(ip)
1031 lengrpf(ngr0) =lengrpf(ngr0) -lengrpf(ngrpf)
1032 DO i =newgrp( k)+1,newgrp( k+1)
1033 ip=igrpart(idtgrs1)%ENTITY(index(i))
1034 tagprt_fric(ip) =ngrpf
1041 DO i=1,igrpart(idtgrs2)%NENTITY
1042 ip=igrpart(idtgrs2)%ENTITY(i)
1043 IF(tagprt_fric(ip) ==0 )
THEN
1047 IF(np0 == igrpart(idtgrs2)%NENTITY)
THEN
1049 lengrpf(ngrpf) = np0
1050 DO i=1,igrpart(idtgrs2)%NENTITY
1051 ip=igrpart(idtgrs2)%ENTITY(i)
1052 tagprt_fric(ip)=ngrpf
1061 lengrpf(ngrpf) = np0
1062 DO i=1,igrpart(idtgrs2)%NENTITY
1063 ip=igrpart(idtgrs2)%ENTITY(i)
1064 IF(tagprt_fric(ip) ==0 ) tagprt_fric(ip) = ngrpf
1069 DO i=1,igrpart(idtgrs2)%NENTITY
1070 ip=igrpart(idtgrs2)%ENTITY(i)
1071 IF(tagprt_fric(ip)==0) tagprt_fric(ip)=ngrpf
1072 trigrpt(i) = tagprt_fric(ip)
1075 CALL my_orders( 0, work, trigrpt, index, igrpart(idtgrs2)%NENTITY , 1)
1077 ngr0 = trigrpt(index(1))
1079 newgrp(1:leng+1) = 0
1082 DO i=2,igrpart(idtgrs2)%NENTITY
1083 ngr = trigrpt(index(i))
1085 IF(lengrpf(ngr0) /= i-newgrp(j)-1)
THEN
1093 IF(lengrpf(ngr0) /= igrpart(idtgrs2)%NENTITY-newgrp(j))
THEN
1098 IF(tagg2(k)==1)
THEN
1100 lengrpf(ngrpf) = newgrp( k+1) - newgrp( k)
1101 ip=igrpart(idtgrs2)%ENTITY(index(newgrp( k)+1))
1102 ngr0 = tagprt_fric(ip)
1103 lengrpf(ngr0) =lengrpf(ngr0) -lengrpf(ngrpf)
1104 DO i =newgrp( k)+1,newgrp( k+1)
1105 ip=igrpart(idtgrs2)%ENTITY(index(i))
1106 tagprt_fric(ip) =ngrpf
1114 IF(iflag == 1 )
THEN
1120 DO i=1,igrpart(idtgrs1)%NENTITY
1121 ip=igrpart(idtgrs1)%ENTITY(i)
1122 trigrpt(i) = tagprt_fric(ip)
1125 CALL my_orders( 0, work, trigrpt, index, igrpart(idtgrs1)%NENTITY , 1)
1127 ngr0 = trigrpt(index(1))
1130 DO i=2,igrpart(idtgrs1)%NENTITY
1131 ngr = trigrpt(index(i))
1143 DO i=1,igrpart(idtgrs2)%NENTITY
1144 ip=igrpart(idtgrs2)%ENTITY(i)
1145 trigrpt(i) = tagprt_fric(ip)
1148 CALL my_orders( 0, work, trigrpt, index, igrpart(idtgrs2)%NENTITY , 1)
1150 ngr0 = trigrpt(index(1))
1153 DO i=2,igrpart(idtgrs2)%NENTITY
1154 ngr = trigrpt(index(i))
1167 IF(grpn1 > grpn2 )
THEN
1177 ncouple = ncouple + 1
1178 tabcoupleparts_fric_tmp(nif,ncouple) = ipp1
1179 ncouple = ncouple + 1
1180 tabcoupleparts_fric_tmp(nif,ncouple) = ipp2
1182 ntab = lenf*8*(nset-1)+8
1183 tabcoef_fric_tmp(nif,ntab+1) = fric
1184 tabcoef_fric_tmp(nif,ntab+2) = viscf
1186 tabcoef_fric_tmp(nif,ntab+3) = c1
1187 tabcoef_fric_tmp(nif,ntab+4) = c2
1188 tabcoef_fric_tmp(nif,ntab+5) = c3
1189 tabcoef_fric_tmp(nif,ntab+6) = c4
1190 tabcoef_fric_tmp(nif,ntab+7) = c5
1191 tabcoef_fric_tmp(nif,ntab+8) = c6
1193 ifricorth_tmp(nif,nset) = idir
1198 tabcoef_fric_tmp(nif,ntab+1) = fric2
1199 tabcoef_fric_tmp(nif,ntab+2) = viscf2
1201 tabcoef_fric_tmp(nif,ntab+3) = c11
1202 tabcoef_fric_tmp(nif,ntab+4) = c22
1203 tabcoef_fric_tmp(nif,ntab+5) = c33
1204 tabcoef_fric_tmp(nif,ntab+6) = c44
1205 tabcoef_fric_tmp(nif,ntab+7) = c55
1206 tabcoef_fric_tmp(nif,ntab+8) = c66
1217 IF(iflag == 1 )
THEN
1223 WRITE(iout,3503) fric
1224 IF(fricform /= 2)
WRITE(iout,3504) viscf
1225 ELSEIF(mfrot==1)
THEN
1226 WRITE(iout,1504) fric,c1,c2,c3,c4,c5,c6
1227 ELSEIF(mfrot==2)
THEN
1228 WRITE(iout,1505)fric,c1,c2,c3,c4,c5,c6
1229 ELSEIF(mfrot==3)
THEN
1230 WRITE(iout,1506)c1,c2,c3,c4,c5,c6
1231 ELSEIF(mfrot==4)
THEN
1232 WRITE(iout,1514) fric,c1,c2
1238 WRITE(iout,3503) fric
1239 IF(fricform /= 2)
WRITE(iout,3504) viscf
1240 ELSEIF(mfrot==1)
THEN
1241 WRITE(iout,1504) fric,c1,c2,c3,c4,c5,c6
1242 ELSEIF(mfrot==2)
THEN
1243 WRITE(iout,1505)fric,c1,c2,c3,c4,c5,c6
1245 WRITE(iout,1506)c1,c2,c3,c4,c5,c6
1246 ELSEIF(mfrot==4)
THEN
1247 WRITE(iout,1514) fric,c1,c2
1251 WRITE(iout,3503) fric2
1252 IF(fricform /= 2)
WRITE(iout,3504) viscf2
1253 ELSEIF(mfrot==1)
THEN
1254 WRITE(iout,1504) fric2,c11,c22,c33,c44,c55,c66
1255 ELSEIF(mfrot==2)
THEN
1256 WRITE(iout,1505)fric2,c11,c22,c33,c44,c55,c66
1257 ELSEIF(mfrot==3)
THEN
1258 WRITE(iout,1506)c11,c22,c33,c44,c55,c66
1259 ELSEIF(mfrot==4)
THEN
1260 WRITE(iout,1514) fric2,c11,c22
1272 DEALLOCATE (trigrpt,index,newgrp,tagg1,tagg2)
1279 1500
FORMAT(/1x,
' FRICTION INTERFACE MODEL NUMBER :',i10,1x,a/
1280 . 1x,
' ------------------------------- '/)
1281 1501
FORMAT( /1x,
' DEFAULT VALUES ' /
1282 . 1x,
' -------------- ' )
1285 .
' FRICTION FILTERING FLAG. . . . . . . . . ',i10/,
1286 .
' FILTERING FACTOR . . . . . . . . . . . . ',1pg20.13/)
1288 .
' FRICTION MODEL 0 (Coulomb Law) ')
1290 .
' FRICTION COEFFICIENT . . . . . . . . . . ',1pg20.13/)
1292 .
' FRICTION CRITICAL DAMPING FACTOR. . . . .',1pg20.13/)
1294 .
' FRICTION MODEL 1 (Viscous Polynomial)'/
1295 .
' MU = MUo + C1 p + C2 v + C3 pv + C4 p^2 + C5 v^2'/)
1297 .
' Muo. . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1298 .
' C1 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1299 .
' C2 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1300 .
' C3 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1301 .
' C4 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1302 .
' C5 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1303 .
' TANGENTIAL PRESSURE LIMIT. . .. . . . . .',1pg20.13/)
1305 .
' FRICTION MODEL 2 (Darmstad Law) :'/
1306 .
' MU = MUo+c1*exp(c2*v)*p^2+c3*exp(c4*v)*p+c5*exp(c6*v)')
1308 .
' Muo. . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1309 .
' C1 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1310 .
' C2 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1311 .
' C3 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1312 .
' C4 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1313 .
' C5 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1314 .
' C6 . . . . . . . . . . . . . . . . . . . ',1pg20.13/)
1316 .
' FRICTION MODEL 3 (Renard law) ')
1318 .
' C1 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1319 .
' C2 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1320 .
' C3 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1321 .
' C4 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1322 .
' C5 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1323 .
' C6 . . . . . . . . . . . . . . . . . . . ',1pg20.13/)
1325 .
' EXPONENTIAL DECAY FRICTION LAW '/
1326 .
' MU = c1+(MUo-c1)*exp(-c2*v)')
1328 .
' STATIC COEFFICIENT MUo . . . . . . . . . ',1pg20.13/,
1329 .
' DYNAMIC COEFFICIENT C1 . . . . . . . . . ',1pg20.13/,
1330 . ' exponential decay coefficient c2 . . . .
',1PG20.13/)
1336 . ' part 1 . . . . . . . . . . . . . . . . .
',I10/,
1337 . ' part 2 . . . . . . . . . . . . . . . . .
',I10)
1339 . ' gr_part 1 . . . . . . . . . . . . . . . .
',I10/,
1340 . ' part 2 . . . . . . . . . . . . . . . . .
',I10)
1342 . ' part 1 . . . . . . . . . . . . . . . . .
',I10/,
1343 . ' gr_part 2 . . . . . . . . . . . . . . . .
',I10)
1345 . ' gr_part 1 . . . . . . . . . . . . . . . .
',I10/,
1346 . ' gr_part 2 . . . . . . . . . . . . . . . .
',I10)
1349 1507 FORMAT( /1X,' friction coefficients table
' /
1350 . 1X,' ---------------------------
'/)
1352 1508 FORMAT( ' friction formulation: incremental(stiffness)
',
1354 1509 FORMAT( ' friction formulation: total(viscous)
',
1357 . ' isotropic friction
')
1359 . ' orthotropic friction
')
1361 . ' friction direction 1 :
')
1363 . ' friction direction 2 :
')