39
40
41
42
44 USE intbufdef_mod
45 USE intbuf_fric_mod
46 use element_mod , only : nixc,nixtg
47
48
49
50#include "implicit_f.inc"
51
52
53
54#include "com04_c.inc"
55#include "param_c.inc"
56#include "scr17_c.inc"
57
58
59
60 INTEGER IPARI(NPARI,*), IPARTTG(*), IPARTC(*) ,
61 . IXC(NIXC,*), IXTG(NIXTG,*),IPART(LIPART1,*) ,
62 . IREPFORTH(*), PFRICORTH(*),IGEO(NPROPGI,*),ITAB(*),
63 . KNOD2ELC(*), KNOD2ELTG(*), NOD2ELC(*), NOD2ELTG(*),
64 . IWORKSH(3,*)
65
66 my_real x(3,*), phiforth(*), vforth(3,*) ,geo(npropg,*),pm(npropm,*),
67 . pm_stack(20,*) ,thk(*) ,skew(lskew,*)
68 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
69 TYPE(INTBUF_FRIC_STRUCT_) INTBUF_FRIC_TAB(*)
70
71
72
73
74 INTEGER N ,NIF ,IREP ,NLAY ,IORTH ,IE ,NRTM ,I ,NELTG ,NELC ,STAT ,
75 . NRT_SH,J,INRT ,NTY ,IL ,N3 ,N4 ,IP ,IPORTH , IGTYP ,ID ,ISU2 ,ILEV ,ISU1,NRT1,NRT2,NSHIF,
76 . PID ,ISK
78 . vx ,vy ,vz ,e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
79 . rx ,ry ,rz ,sx ,sy ,sz ,suma ,s1 ,s2 ,vr ,vs ,cp , sp ,
80 . aa ,bb ,d1 ,d2 ,s ,det ,phi ,u1x ,u1y ,u2x ,u2y ,w1x ,w1y ,w2x ,w2y ,
81 . torth , sum
82
83
84
85 DO n=1,ninter
86 nty =ipari(7,n)
87 IF(nty == 7.OR.nty==24.OR.nty==25) THEN
88 nif = ipari(72,n)
89 IF(nif > 0) THEN
90 iorth = intbuf_fric_tab(nif)%IORTHFRIC
91 IF(iorth > 0 ) THEN
92 nrtm =ipari(4,n)
93 DO i=1,nrtm
94 nelc = 0
95 neltg = 0
96 CALL incoq3(intbuf_tab(n)%IRECTM,ixc ,ixtg ,n ,nelc ,
97 . neltg ,i ,geo ,pm ,knod2elc ,
98 . knod2eltg ,nod2elc ,nod2eltg,thk,nty,igeo,
99 . pm_stack , iworksh)
100
101 IF(neltg/=0) THEN
102 ip= iparttg(neltg)
103 ie = neltg
104 igtyp = igeo(11,ixtg(nixtg-1,ie))
105 pid = ixtg(nixtg-1,ie)
106 ELSE
107 ip= ipartc(nelc)
108 ie = nelc
109 igtyp = igeo(11,ixc(nixc-1,ie))
110 pid = ixc(nixc-1,ie)
111 ENDIF
112 IF(ie > 0) THEN
113 iporth = pfricorth(ip)
114
115
116 IF(iporth >0) THEN
117
118 phi = phiforth(iporth)
119 irep = irepforth(iporth)
120
121 intbuf_tab(n)%IREP_FRICM(i) = irep
122 vx = vforth(1,iporth)
123 vy = vforth(2,iporth)
124 vz = vforth(3,iporth)
125
127 . i ,vx , vy ,vz , phi ,
128 . irep ,x ,intbuf_tab(n)%IRECTM,itab ,
129 . intbuf_tab(n)%DIR_FRICM,ip ,ipart )
130
131
132
133 ELSEIF(igtyp == 9.OR.igtyp==10.OR.igtyp==11.OR.igtyp==17.OR.igtyp==51.OR.igtyp==52) THEN
134
135 irep = igeo(6,pid)
136 intbuf_tab(n)%IREP_FRICM(i) = irep
137
138 intbuf_tab(n)%IREP_FRICM(i) = irep
139 IF(igtyp==9.OR.igtyp==10) THEN
140 isk = 0
141 ELSE
142 isk = igeo(2,pid)
143 ENDIF
144 IF(isk==0) THEN
145 vx = geo(7,pid)
146 vy = geo(8,pid)
147 vz = geo(9,pid)
148 ELSE
149 vx = skew(1,isk)
150 vy = skew(2,isk)
151 vz = skew(3,isk)
152 ENDIF
153 nlay = igeo(15,pid)
154 IF(nlay == 1) THEN
155 phi = geo(10,pid)
156 ELSE
157 il = iabs(nlay)/2 + 1
158 phi =geo(200+il,pid)
159 ENDIF
160
162 . i ,vx , vy ,vz , phi ,
163 . irep ,x ,intbuf_tab(n)%IRECTM,itab ,
164 . intbuf_tab(n)%DIR_FRICM,ip ,ipart )
165
166
167 ELSE
168 intbuf_tab(n)%IREP_FRICM(i) = 10
169
170 ENDIF
171 ENDIF
172 ENDDO
173 ENDIF
174 ENDIF
175 ENDIF
176 ENDDO
177
178
179 RETURN
subroutine incoq3(irect, ixc, ixtg, nint, nel, neltg, is, geo, pm, knod2elc, knod2eltg, nod2elc, nod2eltg, thk, nty, igeo, pm_stack, iworksh)
subroutine orthdir_proj(i, vx, vy, vz, phi, irep, x, irectm, itab, dir_fricm, ip, ipart)