53#include "implicit_f.inc"
57 INTEGER IKAD(0:*),KIMPL
77 INTEGER I, NBC, K, IKEY,IM,J,NJ,KK
78 CHARACTER TITLE*72, KEY2*5, KEY3*5, *5
79 CHARACTER(LEN=NCHARLINE100)::CARTE
127 IF(ikad(ikey)/=ikad(ikey+1))
THEN
165 1160
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,1X,A,25X,I10)',err=9990)key2,key3,key4
170 IF(key2(1:4)==
'DYNA')
THEN
171 IF (idyna==0) idyna=1
172 IF(key3(1:4)==
'DAMP')
THEN
174 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
175 READ(iusc2,*) dampa_imp,dampb_imp
176 ELSE IF(key3(1:3)==
'FSI')
THEN
177 WRITE(6,*)
"ERROR: /IMPL/DYNA/FSI IS A DEPRECATED FEATURE"
183 CALL wriusc2(ikad(ikey)+k,1,key0(ikey
186 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
187 READ(iusc2,*)newm_a,newm_b
195 ELSEIF(key2(1:4)==
'LINE')
THEN
197 IF(key3(1:5)==
'INTER')
THEN
198 READ(key4,
'(I5)')ilintf
199 ilintf =
max(2,ilintf)
200 ELSEIF(key3(1:5)==
'SCAUC')
THEN
203 ELSEIF(key2(1:5)==
'MONVO')
THEN
204 IF(key3(1:3)==
'OFF')impmv=
205 ELSEIF(key2(1:5)==
'SPRIN')
THEN
206 IF(key3(1:4)==
'NONL')
THEN
208 ELSEIF(key3(1:4)==
'LINE')
THEN
213 ELSEIF(key2(1:5)==
'PREPA')
THEN
215 ELSEIF(key2(1:5)==
'PROJV')
THEN
216 READ(key3,
'(I2)')
m_vs
217 ELSEIF(key2
'PROSI')
THEN
218 READ(key3,
'(I2)') ipro_s0
222 ELSEIF(key2(1:5)==
'CHECK')
THEN
227 ELSEIF(key2(1:5)==
'QSTAT')
THEN
229 IF(key3(1:5)==
'DTSCA')
THEN
230 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
231 READ(iusc2,*)scal_dtq
232 ELSEIF(key3(1:5)==
'MRIGM')
THEN
234 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
235 READ(iusc2,*,err=520,
END=520)E_REF(1),E_REF(2),E_REF(3)
236 IF (e_ref(1)>0.AND.e_ref(2)>0.AND.e_ref(3)>0) irig_m = 2
240 iqstat=
max(iqstat,im)
245 ELSEIF(key2(1:4)==
'SPRB')
THEN
250 ELSEIF(key2==
'PRINT')
THEN
251 IF(key3(1:4)==
'LINE')
THEN
252 READ(key4,
'(I5)')lprint
253 ELSEIF(key3(1:4)==
'NONL')
THEN
254 READ(key4,
'(I5)')nprint
255 ELSEIF(key3(1:4)==
'STIF')
THEN
257 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
258 READ(iusc2,*)prstifmat_tol,prstifmat_nc,prstifmat_it
265 ELSEIF(key2(1:4)==
'SOLV')
THEN
266 READ(key3,
'(I2)')isolv
267 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
268 READ(iusc2,*)iprec,l_lim,itol,l_tol
269 IF (isolv==3) imumpsd=l_lim
273 ELSEIF(key2(1:4)==
'SBCS')
THEN
274 IF(key3(1:5)==
'MSGLV')
THEN
275 READ(key4,
'(I2)')msg_lvl
276 ELSEIF(key3(1:5)==
'ORDER')
THEN
277 READ(key4,
'(I2)')b_order
279 ELSEIF(key3(1:5)=='outco
')THEN
287 ELSEIF(KEY2(1:5)=='mumps
')THEN
288 IF(KEY3(1:5)=='msglv')
THEN
289 READ(key4,
'(I2)')m_msg
290 ELSEIF(key3(1:5)==
'ORDER')
THEN
291 IF(key4(1:5)==
'METIS')
THEN
293 ELSEIF(key4(1:4)==
'PORD')
THEN
297 ELSEIF(key3(1:5)==
'OUTCO')
THEN
299 ELSEIF(key3(1:5)==
'AUTOC')
THEN
307 ELSEIF(key2(1:4)==
'NONL')
THEN
308 IF(key3(1:5)==
'KTANG')
THEN
310 ELSEIF(key3(1:5)==
'KTFUL')
THEN
312 ELSEIF(key3(1:5)==
'KTFU8')
THEN
314 ELSEIF(key3(1:5)==
'KTCON')
THEN
316 ELSEIF(key3(1:5)==
'PITER')
THEN
317 READ(key4,
'(I5)') ipupd
318 ELSEIF(key3(1:5)==
'SMDIS')
THEN
320 ELSEIF(key3(1:5)==
'SOLVI')
THEN
323 READ(key3,
'(I2)')insolv
324 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
325 READ(iusc2,
'(a)')title
326 READ(title,*)n_lim,nitol,n_tol
330 READ(title,*)n_lim,nitol,n_tole,n_tolf
332 READ(title,*)n_lim,nitol,n_tole,n_tolu
334 READ(title,*)n_lim,nitol,n_tolf,n_tolu
336 READ(title,*)n_lim,nitol,n_tole,n_tolf,n_tolu
339 IF(nitol==1.AND.irref==1) irref = 0
341 ELSEIF(key2(1:5)==
'SINIT')
THEN
343 ELSEIF(key2(1:5)==
'LBFGS')
THEN
344 READ(key3,
'(I5)') l_bfgs
348 ELSEIF(key2==
'DTINI')
THEN
349 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
351 ELSEIF(key2(1:2)==
'DT')
THEN
352 IF(key3(1:4)==
'STOP')
THEN
353 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
354 READ(iusc2,*)dt_min,dt_max
358 ELSEIF(key3(1:4)==
'FIXP')
THEN
361 READ(iusc1,rec=ikad(ikey)+kk,fmt=
'(A)',err=9990)carte
362 CALL wriusc2(ikad(ikey)+kk,1,key0(ikey))
364 IF ((ndtfix+nj)>100)
THEN
367 .
' ** WARNING ** : MAXIMUM 100 FIX POINTS PERMITTED '
369 READ(iusc2,*,err=9990,
END=9990)(DTIMPF(NDTFIX+J),J=1,NJ)
376 IF (idtc>0.AND.im>0)
GOTO 9990
379 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
380 READ(iusc2,*)nl_dtp,scal_dtp,nl_dtn,scal_dtn
382 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
383 READ(iusc2,*)nl_dtp,alen0,nl_dtn,scal_dtn,scal_dtp
385 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
386 READ(iusc2,*)nl_dtp,alen0,nl_dtn,scal_dtn,scal_dtp,ial_m,
395 ELSEIF(key2==
'NCYCL')
THEN
396 IF(key3(1:4)==
'STOP')
THEN
397 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
405 ELSEIF(key2(1:5)==
'INTER')
THEN
406 IF(key3(1:5)==
'TTOFF')
THEN
408 ELSEIF(key3(1:5)==
'SINT7')
THEN
409 READ(key4,
'(I2)')imp_int7
411 imp_int7=
min(2,imp_int7)
413 ELSEIF(key3(1:5)==
'KNONL')
THEN
418 ELSEIF(key3(1:5)==
'KCOMP')
THEN
421 ELSEIF(key3(1:4)==
'KGON')
THEN
429 ELSEIF(key2(1:4)==
'RREF')
THEN
431 IF(key3(1:3)==
'OFF')
THEN
433 ELSEIF(key3(1:5)==
'INTER')
THEN
437 ELSEIF(key3(1:5)==
'LIMIT')
THEN
438 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
439 READ(iusc2,*)rf_min,rf_max
444 ELSEIF(key2(1:5)==
'DIVER')
THEN
445 IF(key3(1:3)==
'TOL')
THEN
446 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
452 IF (ndiver ==0) ndiver=-1
457 ELSEIF(key2(1:5)==
'GSTIF')
THEN
458 IF(key3(1:3)==
'OFF')ikg=0
462 ELSEIF(key2(1:5)==
'PSTIF')
THEN
463 IF(key3(1:3)==
'OFF') ikpres=0
467 ELSEIF(key2==
'BUCKL')
THEN
468 READ(key3,
'(I2)')ibuckl
470 WRITE(istdo,*)
' ** ERROR ** : KEYWORD /IMPL/BUCKL OBSOLETE ',
471 .
'USING /IMPL/BUCKL/1 OR /IMPL/BUCKL/2'
475 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
476 READ(iusc2,*) emin_b, emax_b, nbuck, msgl_b, maxset_b, shift_b
477 IF (shift_b==zero) shift_b=em02
479 IF (maxset_b==0) maxset_b=8
487 ELSEIF(key2(1:5)==
'AUTOS')
THEN
488 IF(key3(1:3)==
'OFF')
THEN
490 ELSEIF(key3(1:3)==
'ALL')
THEN
496 ELSEIF(key2(1:5)==
'LSEAR')
THEN
497 IF(key3(1:3)==
'OFF')
THEN
500 READ(key3,
'(I2)')iline_s
501 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
502 READ(iusc2,*)nls_lim,ls_tol
507 ELSEIF(key2(1:5)==
'SHPOF')
THEN
510 ELSEIF(key2(1:5)==
'SHPON')
THEN
515 ELSEIF(key2(1:5)==
'CONTR')
THEN
516 IF(key3(1:2)==
'DT')
THEN
517 IF(key4(1:4)==
'STOP')
THEN
518 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
519 READ(iusc2,*)dt_min,dt_max
524 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
525 READ(iusc2,*)nl_dtp,scal_dtp,nl_dtn,scal_dtn
527 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
528 READ(iusc2,*)nl_dtp,alen0,nl_dtn,scal_dtn,scal_dtp
531 ELSEIF(key3(1:4)==
'SHEL')
THEN
535 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
537 ELSEIF(key3(1:5)==
'INTER')
THEN
541 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
547 ELSEIF(key2(1:5)==
'PRTOL')
THEN
548 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
550 ELSEIF(key2(1:4)==
'NEXP')
THEN
551 READ(key3,
'(I5)')nexp
552 ELSEIF(key2==
'DEBUG')
THEN
554 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
555 READ(iusc2,*)ndeb0,ndeb1
556 IF(ndeb0/=0)ndeb0 = ndeb0 + 1
557 ndeb1=
max(ndeb0,ndeb1+1)
558 ELSEIF(key2(1:3)==
'DEL')
THEN
559 IF(key3(1:5)==
'RBODY')
THEN
561 ELSEIF(key3(1:5)==
'INTER')
THEN
564 ELSEIF(key2(1:5)==
'ITRBY')
THEN
566 READ(key3,
'(I3)')itrmax
567 ELSEIF(key2(1:4)==
'LRIG')
THEN
573 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 1160
583 CALL ancmsg(msgid=73,anmode=aninfo,
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)