36
37
38
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57#include "implicit_f.inc"
58
59
60
61#include "vect01_c.inc"
62#include "com04_c.inc"
63#include "param_c.inc"
64#include "tabsiz_c.inc"
65
66
67
68 INTEGER KXIG3D(NIXIG3D,*),INUM(NIXIG3D+1,*),IPARTIG3D(*),
69 . EADD(*),ITR1(*),INDEX(*),ITRI(4,*),
70 . ND, CEP(*), (*),
71 . IPM(NPROPMI,NUMMAT),NIGE(*)
72 INTEGER,INTENT(IN) :: IGEO(NPROPGI,NUMGEO)
73 my_real geo(npropg,numgeo),pm(npropm,nummat),knotlocel(*)
74
75 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
76
77
78
79 INTEGER
80 . I, K, NG, ISSN, NPN, NN, N, MID, PID ,
81 . II, J, II2,JJ2,JJ, II3, JJ3, L,NGROU,
82 . MODE, WORK(70000),NCTRL,MLN,JALE_FROM_MAT,JALE_FROM_PROP
84 INTEGER MY_SHIFTL,MY_SHIFTR,MY_AND
86 . knotlocelindx(sknotlocel)
87
88
89
90
91
92
93 DO i=1,numelig3d
94 eadd(i)=1
95 itri(4,i)=i
96 index(i)=i
97 inum(1,i)=ipartig3d(i)
98 DO j=1,nixig3d
99 inum(j+1,i)=kxig3d(j,i)
100 ENDDO
101 DO j=1,6
102 knotlocelindx((i-1)*6+j)=knotlocel((i-1)*6+j)
103 ENDDO
104 ENDDO
105
106 DO i = 1, numelig3d
107 mid= kxig3d(1,i)
108 mln = nint(pm(19,abs(mid)))
109 pid= kxig3d(2,i)
110 nctrl= kxig3d(3,i)
111
112 jale_from_mat = nint(pm(72,mid))
113 jale_from_prop = igeo(62,pid)
114 jale =
max(jale_from_mat, jale_from_prop)
115
116 jlag=0
117 IF(jale==0.AND.mln/=18)jlag=1
118 jeul=0
119 IF(jale==2)THEN
120 jale=0
121 jeul=1
122 ELSEIF(jale == 3) THEN
123 jlag = 1
124 jale = 1
125 ENDIF
126 IF(mln/=50)jtur=nint(pm(70,mid))
127 jthe=nint(pm(71,mid))
128
129 itri(1,i)=nctrl
130 itri(2,i)=mid
131 itri(3,i)=pid
132 itri(4,i)=0
133 ENDDO
134
135 mode=0
136 CALL my_orders( mode, work, itri, index, numelig3d , 4)
137
138 DO i=1,numelig3d
139 ipartig3d(i) =inum(1,index(i))
140 DO j=1,6
141 knotlocel((i-1)*6+j)=knotlocelindx((index(i)-1)*6+j)
142 ENDDO
143 ENDDO
144
145 DO k=1,nixig3d
146 DO i=1,numelig3d
147 kxig3d(k,i)=inum(k+1,index(i))
148 ENDDO
149 ENDDO
150
151
152
153 DO i=1,numelig3d
154 itr1(index(i))=i
155 ENDDO
156
157
158
159 DO i=1,nsurf
160 nn=igrsurf(i)%NSEG_IGE
161 DO j=1,nn
162 IF(igrsurf(i)%ELTYP_IGE(j) == 101)
163 . igrsurf(i)%ELEM_IGE(j) = itr1(igrsurf(i)%ELEM_IGE(j))
164 ENDDO
165 ENDDO
166
167 DO i=1,numfakenodigeo
168 nige(i)=itr1(nige(i))
169 ENDDO
170
171
172
173
174 nd=1
175 DO i=2,numelig3d
176 ii=itri(1,index(i))
177 jj=itri(1,index(i-1))
178 ii2=itri(2,index(i))
179 jj2=itri(2,index(i-1))
180 ii3=itri(3,index(i))
181 jj3=itri(3,index(i-1))
182 IF(ii/=jj.OR.ii2/=jj2.OR.ii3/=jj3) THEN
183 nd=nd+1
184 eadd(nd)=i
185 ENDIF
186 ENDDO
187 eadd(nd+1) = numelig3d+1
188
189 RETURN
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)
int my_shiftr(int *a, int *n)
int my_shiftl(int *a, int *n)
int my_and(int *a, int *b)