178
179
180
183
184
185
186#include "implicit_f.inc"
187
188
189
190 INTEGER IKAD(0:*),KALELINK,NALELK
191 CHARACTER KEY0(*)*5
192
193
194
195#include "scr07_c.inc"
196#include "units_c.inc"
197
198
199
200 INTEGER IXYZ, NVAR
201
202
203
204 INTEGER I, N, NBC, K, KK, NS, IKEY, M1, M2, IFORM,IERR
205 CHARACTER KEY1*5, KEY2*5, KEY3*5, KEY4*5
206 CHARACTER(LEN=NCHARLINE100) :: CARTE
207
208 k=0
209 ierr=0
210 ikey=kalelink
211 n=0
212 DO WHILE(n<nalelk)
213 READ(iusc1,rec=ikad(ikey)+k,
214 . fmt='(7X,A,1X,A,1X,I5,1X,A,1X,A,13X,I10)',
215 . err=9990) key1 , key2 , iform , key3 , key4 , nbc
216
217 IF(key1(1:5)/='LINK ')THEN
218 k=k+1
219 cycle
220 ENDIF
221 n=n+1
222
223
224
225 IF(key2(1:5)=='OFF ')THEN
226 ns=0
227 k=k+1
228 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
229 kk=k
230 DO i=0,nbc-1
231 READ(iusc1,rec=ikad(ikey)+k,fmt='(A)',err=9990)carte
232 k=k+1
234 ENDDO
235 WRITE(iin,'(3I10,5X,I3.3,I10)')-2,-2,ns,0,0
236 CALL read10(ikad(ikey)+kk,nbc,key0(ikey))
237
238
239
240
241 ELSEIF(key2(1:5)=='ON ')THEN
242 ns=0
243 k=k+1
244 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
245 kk=k
246 DO i=0,nbc-1
247 READ(iusc1,rec=ikad(ikey)+k,fmt='(A)',err=9990)carte
248 k=k+1
250 ENDDO
251 WRITE(iin,'(3I10,5X,I3.3,I10)')-1,-1,ns,0,0
252 CALL read10(ikad(ikey)+kk,nbc,key0(ikey))
253
254
255
256
257 ELSEIF(key2(1:5)=='VEL ')THEN
258 k=k+1
259 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
260 READ(iusc2,*,err=9990,END=9990)M1,m2
261 IF(m1<=0.OR.m2<=0)GOTO 9990
262 k=k+1
263 kk=k
264 ns=0
265
266
267
268 IF(key4(1:5)=='NODES'.OR.key4(1:5)==' ')THEN
269 DO i=1,nbc-1
270 READ(iusc1,rec=ikad(ikey)+k,fmt='(A)',err=9990)carte
271 k=k+1
273 ENDDO
274 llinal=llinal+ns+6
275
276
277
278
279
280 ELSEIF(key4(1:5)=='GRNOD')THEN
281 DO i=1,nbc-1
282 READ(iusc1,rec=ikad(ikey)+k,fmt='(A)',err=9990)carte
283 k=k+1
284 IF(
nvar(carte)>1.AND.m1<0)
THEN
285 ierr=1
286 ENDIF
287 IF(
nvar(carte)==1.AND.ns>0)
THEN
288 ierr=1
289 ENDIF
290 IF(
nvar(carte)==1.AND.ns==0)
THEN
291 ns=1
292 ENDIF
293 ENDDO
294
295 IF(ierr==1)THEN
296 WRITE(istdo,*)
297 . ' ** ERROR : SINGLE GRNOD ID NOT FOUND IN ALE LINK CARD'
298 WRITE(iout ,*)
299 . ' ** ERROR : SINGLE GRNOD ID NOT FOUND IN ALE LINK CARD'
301 END IF
302 ns=-ns
303 llinal=llinal+1+6
304 ENDIF
305
306 WRITE(iin,
'(3I10,5X,I3.3,I10)')m1,m2,ns,
ixyz(key3),iform
307 CALL read10(ikad(ikey)+kk,nbc-1,key0(ikey))
308
309 ENDIF
310 ENDDO
311
312 RETURN
313
314 9990 CONTINUE
315 CALL ancmsg(msgid=73,anmode=aninfo,
316 . c1=key0(ikey))