32 . TABCOUPLEPARTS_FRIC_TMP ,TABCOEF_FRIC_TMP ,INTBUF_FRIC_TAB ,
33 . TABPARTS_FRIC_TMP,NSETFRICTOT,NSETINIT,IORTHFRICMAX,IFRICORTH_TMP,
44#include "implicit_f.inc"
52 INTEGER NSETFRICTOT,IORTHFRICMAX,NSETMAX
53 INTEGER TABCOUPLEPARTS_FRIC_TMP(NINTERFRIC,*),NSETINIT(NINTERFRIC),
54 . TABPARTS_FRIC_TMP(NINTERFRIC,*),IFRICORTH_TMP(NINTERFRIC,*)
57 . tabcoef_fric_tmp(ninterfric,*)
59 TYPE() INTBUF_FRIC_TAB(*)
63 INTEGER NIF , NSET ,I ,J ,K ,STAT ,NSETT ,IORTH ,
65 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDEX ,ITRI2 ,INDEX2
66 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
67 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TRIFRIORTH
68 my_real,
DIMENSION(:,:),
ALLOCATABLE :: tricoef
72 ALLOCATE(index(2*nsetmax), stat=stat)
73 ALLOCATE(itri(2,nsetmax), stat=stat)
74 IF(iorthfricmax == 0 )
THEN
75 ALLOCATE(tricoef(nsetmax,8), stat=stat)
77 ALLOCATE(tricoef(nsetmax,16), stat=stat)
79 ALLOCATE(itri2(2*nsetmax), stat=stat)
80 ALLOCATE(index2(4*nsetmax), stat=stat)
81 ALLOCATE(trifriorth(nsetmax), stat=stat)
85 nset = intbuf_fric_tab(nif)%NSETPRTS
86 iorth = intbuf_fric_tab(nif)%IORTHFRIC
90 itri(1,i) = tabcoupleparts_fric_tmp(nif,j)
91 itri(2,i) = tabcoupleparts_fric_tmp(nif,j+1)
96 trifriorth(i) = ifricorth_tmp(nif,i)
101 tricoef(i,j) = tabcoef_fric_tmp(nif,i*8+j)
104 ELSEIF(iorth == 1 )
THEN
107 tricoef(i,j) = tabcoef_fric_tmp(nif,8+16*(i-1)+j)
112 CALL my_orders( 0, work, itri, index, nset , 2)
116 tabcoupleparts_fric_tmp(nif,j)= itri(1,index
117 tabcoupleparts_fric_tmp
126 IF(tabcoupleparts_fric_tmp(nif,j)==tabcoupleparts_fric_tmp(nif
127 . tabcoupleparts_fric_tmp(nif,j+1)==tabcoupleparts_fric_tmp(nif,j+3) )
THEN
128 tabcoupleparts_fric_tmp(nif,j) = 0
129 tabcoupleparts_fric_tmp(nif,j+1) = 0
134 intbuf_fric_tab(nif)%NSETPRTS = k
140 IF(tabcoupleparts_fric_tmp(nif,j) /= 0 )
THEN
142 tabparts_fric_tmp(nif,k) = tabcoupleparts_fric_tmp(nif,j)
146 IF(tabcoupleparts_fric_tmp(nif,j) /= 0 )
THEN
148 tabparts_fric_tmp(nif,k) = tabcoupleparts_fric_tmp(nif,j)
156 itri2(i) = tabparts_fric_tmp(nif,i)
162 tabparts_fric_tmp(nif,i) = itri2(index2(i))
167 IF(tabparts_fric_tmp(nif,k) /= tabparts_fric_tmp(nif,i))
THEN
169 tabparts_fric_tmp(nif,k) = tabparts_fric_tmp(nif,i)
173 intbuf_fric_tab(nif)%S_TABPARTS_FRIC = k
175 intbuf_fric_tab(nif)%S_TABPARTS_FRIC = 0
179 ifricorth_tmp(nif,i) = trifriorth(index(i))
185 tabcoef_fric_tmp(nif,i*8+j) = tricoef(index(i),j)
188 ELSEIF(iorth == 1)
THEN
191 tabcoef_fric_tmp(nif,8+(i-1)*16+j) = tricoef(index(i),j)
200 DEALLOCATE(itri2,index2)
201 DEALLOCATE(trifriorth)