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