37
38
39
40
41
44
45
46
47#include "implicit_f.inc"
48
49
50
51#include "analyse_name.inc"
52
53
54
55#include "com04_c.inc"
56#include "scr17_c.inc"
57#include "scr03_c.inc"
58#include "param_c.inc"
59
60
61
62 INTEGER NPBY(NNPBY,*), LPBY(*), ITAB(*)
63 INTEGER IKINE(*), IDDLEVEL, NUMSL
65 INTEGER NOM_OPT(LNOPT1,*)
66
67
68
69 INTEGER I,J,L,K,,M,N,NSL,NSKEW,IC,
70 . ISPHER,IDIR,P,IG,ID,ICDG,NSL_XTRA,
71 . NRB,NUMSL_TMP
72 CHARACTER(LEN=NCHARTITLE)::TITR
73 INTEGER, DIMENSION(:,:), ALLOCATABLE :: TABSL
74 INTEGER, DIMENSION(:), ALLOCATABLE :: INDEX,IKINE1
75 INTEGER IWORK(70000),IOLD
76 INTEGER IFLAGI1,IFLAGDBL,IRB
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96 IF (numsl > 0) THEN
97 ALLOCATE(tabsl(2,numsl))
98 ALLOCATE(index(3*numsl))
99 tabsl=0
100 index=0
101 END IF
102 n=0
103 k=0
104 kk=0
105 nrb = 0
106
107 ALLOCATE(ikine1(3*numnod))
108 DO i=1,3*numnod
109 ikine1(i) = 0
110 ENDDO
111
112 DO n=1,nrbykin
113 nsl=npby(2,n)
114 nsl_xtra=npby(14,n)+npby(15,n)+npby(16,n)
115 ispher = npby(5,n)
116 icdg = npby(3,n)
118
119 DO j=1,nsl-nsl_xtra
120 CALL anodset(lpby(j+k), check_rb_s)
121 tabsl(1,j+kk)=itab(lpby(j+k))
122 tabsl(2,j+kk)=n
123 ENDDO
124
125 IF(iddlevel==0)THEN
126 IF(ikrem == 0)THEN
127 DO j=1,nsl
128 DO idir=1,6
129 CALL kinset(8,itab(lpby(j+k)),ikine(lpby(j+k)),idir,0,
130 . ikine1(lpby(j+k)))
131 ENDDO
132 ENDDO
133 ELSE
134 DO j=1,nsl
135 DO idir=1,6
136 CALL kinset(128,itab(lpby(j+k)),ikine(lpby(j+k)),idir,0,
137 . ikine1(lpby(j+k)))
138 ENDDO
139 ENDDO
140 ENDIF
141 ENDIF
142
143 k=k+nsl
144 kk=kk+nsl-nsl_xtra
145 ENDDO
146 numsl_tmp=kk
147
148
149
150 IF (nrbykin > 1) THEN
151 iwork=0
152 iflagdbl=0
153 DO i=1,numsl_tmp
154 index(i)=i
155 END DO
156 CALL my_orders(0,iwork,tabsl,index,numsl_tmp,2)
157 IF (numsl_tmp > 0) THEN
158 iold=-1
159 DO i=1,numsl_tmp
160 IF (tabsl(1,index(i))==iold) THEN
161 IF (iflagdbl==0) THEN
162 iflagi1=i-1
163 END IF
164 iflagdbl=1
165 ELSE
166 IF (iflagdbl/=0) THEN
167 DO j=iflagi1,i-1
168 irb=tabsl(2,index(j))
170 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,irb),ltitr)
172 . msgtype=msgwarning,
173 . anmode=aninfo_blind_2,
175 . c1=titr,
176 . prmod=msg_cumu)
177 END DO
179 . msgtype=msgwarning,
180 . anmode=aninfo_blind_1,
181 . i1=tabsl(1,index(iflagi1)),
182 . prmod=msg_print)
183 iflagdbl=0
184 END IF
185 END IF
186 iold=tabsl(1,index(i))
187 END DO
188 END IF
189 END IF
190
191
192 IF(ALLOCATED(tabsl))DEALLOCATE(tabsl)
193 IF(ALLOCATED(index))DEALLOCATE(index)
194 IF(ALLOCATED(ikine1)) DEALLOCATE(ikine1)
195
196 RETURN
197
void anodset(int *id, int *type)
subroutine kinset(ik, node, ikine, idir, isk, ikine1)
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)