86 SUBROUTINE freform(IRUNN,IRFL,IRFE,H3D_DATA,FLAG_CST_AMS,DYNAIN_DATA,
87 . SENSORS,DT,OUTPUT,GLOB_THERM)
114#include "implicit_f.inc"
118 INTEGER IRUNN, IRFL, IRFE, FLAG_CST_AMS
120 TYPE (DYNAIN_DATABASE),
INTENT(INOUT) :: DYNAIN_DATA
121 TYPE (SENSORS_),
INTENT(INOUT) :: SENSORS
122 TYPE (DT_),
INTENT(INOUT) :: DT
123 TYPE(output_),
INTENT(INOUT) :: OUTPUT
124 type (glob_therm_) ,
intent(inout) :: glob_therm
129#include "units_c.inc"
131#include "scr02_c.inc"
132#include "scr03_c.inc"
133#include "scr05_c.inc"
134#include "scr06_c.inc"
135#include "scr07_c.inc"
136#include "scr17_c.inc"
137#include "scr18_c.inc"
138#include "stati_c.inc"
139#include "statr_c.inc"
140#include "cong1_c.inc"
141#include "cong2_c.inc"
142#include "chara_c.inc"
143#include "scrfs_c.inc"
144#include "parit_c.inc"
145#include "couple_c.inc"
146#include "rad2r_c.inc"
147#include "timeri_c.inc"
148#include "com01_c.inc"
149#include "com04_c.inc"
150#include "com08_c.inc"
152#include "scr19_c.inc"
153#include "ddspmd_c.inc"
158 INTEGER NKEY, NUM_ALE_KEY2
160 parameter(num_ale_key2 = 25)
164 INTEGER IKAD(0:NKEY+1),
165 . kdtix, kimpl, kflsec, kfunc, kkerel, kdyrel, krun, ktitle,
166 . kdt, ktfile, kprint, krfile, kvers, kale, kdel,
167 . kvel, kbcs, kbcsr, kdebug,koutp,kalesub,kproc,
168 . knoise,kdelin,kparit,kiniv,krbody,kanim,kinter,
169 . kupwm, kmon,kdt1,kincmp,kth, kstop, kkill,
170 . kmadym,kspmd,krad2r,kdamp,n_damp, katfil,kbtfil,kctfil,kdtfil,
171 . ketfil,kftfil,kgtfil,khtfil,kitfil, krerun, kfxinp,
172 . nfxinp,keig,neigoff,neoff,kfvbag,
173 . nfvmesh,kstatf,kshver,kabf,kdtsde,
174 . kaabf,kbabf,kcabf,kdabf,keabf,kfabf,kgabf,khabf,kiabf,nfvmodi,
175 . kupwind,kthermal,kh3d,kreport,knegvol,kadyrel,kdt1tet10,kperf,
176 . kdynain,kdttsh,kmass,ksensor,kviper
178 . ikey,i,ii,i1,j,j1,j2,k,kk,m,n, nct, ikold, nbc, k3, k4,
179 . nubcs1,nubcs2, ir,idt,neltgof,irec,
180 . iale_grid_form, nintof, nelsof, ndel, nof,ittyp, ncpri0,ncpri_head0,
181 . nelqof, nelcof, neltof, nelpof, nelrof, num_bcs, nintch,
182 . nrbynf, nbcs1, nbcs2, nrbyon, nrbyof, niniv,ninivt,
183 . intch_ifop,iusc_tmp,intch_itop,nbtopfop,konoff,nintnof,nintsof,
184 . nsphof,naleof,neulerof,nthermof, idtgrx,ibid, m1, m2, iform,
185 . gr_id, nlinkoff,is_prevkeya_ncharkey,is_keya_ncharkey, iflag,
186 . dt_ctrl_compatibility(3), lowmach_opt,io_err, niterp, iok_read,
187 . id_bag, ierr1, id_dt_option, fvmbag_l_type, inum,intdt,nbsens,
188 . num_ale_grid,npartof
189 INTEGER :: BCS_SK_FR(10000),VEL_SK_FR(10000),NSLASH(NKEY)
190 INTEGER :: NBALEOFF, NBALEON, NBPARTALEON, NBPARTALEOFF
192 . tstop0,dtfac0, dtmin0, alp, gam,
193 . a1, a2, a3, vm, dtfaca,dtmina, vt, tmp,dtfac_ams,
195 CHARACTER KEY(9)*5, TITLE*81, KEY1*5, KEY2*5,KEY3*5, CH4*4, KEY4*5, KEY5*5, StringALE*32
196 CHARACTER(LEN=NCHARLINE100) :: KEYA
197 CHARACTER(LEN=NCHARLINE100) :: ,KEYW,MOT1,LINE
198 CHARACTER(LEN=NCHARKEY),
DIMENSION(9) :: KEY_H3D
199 CHARACTER(LEN=5),
DIMENSION(NKEY) :: KEY0
200 CHARACTER(LEN=5),
DIMENSION(NUM_ALE_KEY2) :: KEYALE
201 CHARACTER(len=NCHARLINE100) :: STRING_RESTART
203 REAL(KIND=8) :: dthis0
204 REAL(KIND=8), dimension(9) :: dthis01
206 INTEGER LEN_IUSC1_FN,LEN_IUSC2_FN,LEN_IUSCTMP_FN
207 CHARACTER(LEN=10192) :: IUSC1_FN,IUSC2_FN,IUSCTMP_FN
211 INTEGER,
EXTERNAL :: NVAR
214 .
'RUN ' ,
'TITLE' ,
'DT ' ,
'TFILE' ,
'PRINT' ,
215 .
'RFILE' ,
'VERS ' ,
'' ,
'' ,
'ALE ' ,
216 .
'DEL ' ,
'VEL ' ,
'BCS ' ,
'BCSR ' ,
'INTER' ,
217 .
'DTIX ' ,
'IMPL ' ,
'FUNCT' ,
'FLSEC' ,
'DYREL' ,
218 .
'KEREL' ,
'RBODY' ,
'ANIM' ,
'' ,
'DEBUG' ,
219 .
'OUTP ' ,
'' ,
'ALESU' ,
'PROC' ,
'' ,
220 .
'@TFIL' ,
'DELIN' ,
'' ,
'PARIT' ,
'INIV ' ,
221 .
'UPWM ' ,
'MON' ,
'' ,
'DT1' ,
'INCMP' ,
222 .
'' ,
'TH' ,
'STOP' ,
'KILL' ,
'MADYM'
223 .
'SPMD ' ,
'RAD2R' ,
'DAMP' ,
'ATFIL' ,
'BTFIL' ,
224 .
'CTFIL' ,
'DTFIL' ,
'ETFIL' ,'ftfil
' ,'gtfil
' ,
225 . 'htfil
' ,'itfil
' ,'rerun
' ,'' ,'fxinp
' ,
226 . '' ,'' ,'eig' ,'' ,'fvmba
' ,
227 . '' ,'state
' ,'shver
' ,'' ,'abf
' ,
228 . 'dtsde
' ,'aabf
' ,'babf
' ,'cabf
' ,'dabf
' ,
229 . 'eabf
' ,'fabf
' ,'gabf
' ,'habf
' ,'iabf
' ,
230 . 'upwin
' ,'therm
' ,'h3d
' ,'repor
' ,'negvo
' ,
231 . 'adyre
' ,'dt1te
' ,'perf
' ,'dynai
' ,'dttsh
' ,
232 . 'mass
' ,'sens
' ,'viper
' /
234 DATA KRUN/1/ ,KTITLE/2/ ,KDT/3/ ,KTFILE/4/ ,KPRINT/5/ ,
235 . KRFILE/6/ ,KVERS/7/ , KALE/10/ ,
236 . KDEL/11/ ,KVEL/12/ ,KBCS/13/ ,KBCSR/14/ ,KINTER/15/ ,
237 . KDTIX/16/ ,KIMPL/17/ ,KFUNC/18/ ,KFLSEC/19/ ,KDYREL/20/ ,
238 . KKEREL/21/ ,KRBODY/22/ ,KANIM/23/ ,KDEBUG/25/ ,
239 . KOUTP/26/ , KALESUB/28/ ,KPROC/29/ ,
240 . KNOISE/31/ ,KDELIN/32/ , KPARIT/34/ ,KINIV/35/ ,
241 . KUPWM/36/ ,KMON/37/ , KDT1/39/ ,KINCMP/40/ ,
242 . KTH/42/ ,KSTOP/43/ ,KKILL/44/ ,KMADYM/45/ ,
243 . KSPMD/46/ ,KRAD2R/47/ ,KDAMP/48/ ,KATFIL/49/ ,KBTFIL/50/ ,
244 . KCTFIL/51/ ,KDTFIL/52/ ,KETFIL/53/ ,KFTFIL/54/ ,KGTFIL/55/ ,
245 . KHTFIL/56/ ,KITFIL/57/ ,KRERUN/58/ ,KFXINP/60/,
246 . KEIG/63/ , KFVBAG/65/ ,
247 . KSTATF/67/ ,KSHVER/68/ ,KABF/70/ ,
248 . KDTSDE/71/ ,KAABF/72/ ,KBABF/73/ ,KCABF/74/ ,KDABF/75/ ,
249 . KEABF/76/ ,KFABF/77/ ,KGABF/78/ ,KHABF/79/ ,KIABF/80/ ,
250 . KUPWIND/81/,KTHERMAL/82/ ,KH3D/83/ ,KREPORT/84/ ,KNEGVOL/85/,
251 . KADYREL/86/,KDT1TET10/87/,KPERF/88/ ,KDYNAIN/89/ ,KDTTSH/90/ ,
252 . KMASS/91/ ,KSENSOR/92/ ,KVIPER/93/
255 . 'bcs
' ,'close
' ,'grid
' ,'link
' ,'mat
' ,
256 . 'on
' ,'off
' ,'muscl
' ,'solve
' ,'zero
' ,
257 . 'donea
' ,'stand
' ,'sprin
' ,'disp
' ,'supg
' ,
258 . '0
' ,'1
' ,'2
' ,'3
' ,'4
' ,
259 . 'lowma
' ,'lapla
' ,'volum
' ,'flow-
' ,'lagra
'/
269 CALL OPEN_F_SCRATCH_FILE(IUSC1,2,ROOTN,LENROOTN,IUSC1_FN)
270 LEN_IUSC1_FN=LEN_TRIM(IUSC1_FN)
272 CALL OPEN_F_SCRATCH_FILE(IUSC2,1,ROOTN,LENROOTN,IUSC2_FN)
273 LEN_IUSC2_FN=LEN_TRIM(IUSC2_FN)
277 CALL OPEN_F_SCRATCH_FILE(IUSC_TMP,1,ROOTN,LENROOTN,IUSCTMP_FN)
278 LEN_IUSCTMP_FN=LEN_TRIM(IUSCTMP_FN)
297 PERCENT_ADDMASS = ZERO
298 DT_STOP_PERCENT_ADDMASS = ZERO
299 IDT_PERCENT_ADDMASS = 0
304.NOT.
IF(ALLOCATED(FVMBAG_INPUT_OPTIONS)) ALLOCATE(FVMBAG_INPUT_OPTIONS(8192),STAT=IERR1)
305 IF (IERR1/=0) GOTO 1000
307 FVMBAG_INPUT_OPTIONS(II)%LAMBDA = ZERO
308 FVMBAG_INPUT_OPTIONS(II)%ID_BAG = 0
309 FVMBAG_INPUT_OPTIONS(II)%L_type = 0
310 FVMBAG_INPUT_OPTIONS(II)%ID_DT_OPTION = -1
312 NUM_OPT_DT_FVMBAG = 0
313 NUM_OPT_DT_FVMBAG_0 = 0
314 NUM_OPT_DT_FVMBAG_1 = 0
315 NUM_OPT_DT_FVMBAG_2 = 0
316 NUM_OPT_DT_FVMBAG_3 = 0
321 DT_CTRL_COMPATIBILITY = 0
324 ALE%GLOBAL%IDT_ALE = 0
331 10 READ(ISTDI,'(a)
',END=20) KEYA(1:NCHARLINE100)
332 WRITE(IUSC_TMP,'(a)
') KEYA(1:NCHARLINE100)
333 IF(KEYA(1:4)=='/
END')GOTO 20
335 IF(KEYA(1:1)=='#
')GOTO 10
336 IF(KEYA(1:1)=='$
')GOTO 10
337 IF(KEYA==' ') GOTO 10
338 IF(KEYA(1:1)=='/
') CALL REDKEY0(KEY0,NKEY,KEYA,IKEY,NSLASH)
340 IKAD(IKEY)=IKAD(IKEY)+1
341 IF(KEYA(1:4)=='/BCS.AND.
' KEYA(1:5)/='/BCSR
') THEN
344 DO WHILE(KEYA(I:I)/='/.AND.
'I<LEN_TRIM(KEYA))
348 DO WHILE(KEYA(I:I)/='/.AND.
'I<LEN_TRIM(KEYA))
352 DO WHILE(KEYA(I:I)/='/.AND.
'I<LEN_TRIM(KEYA))
358 CALL ANCMSG(MSGID=74,ANMODE=ANINFO,C1=KEYA(1:I1-1),C2='/BCS OR /BCSR
')
361 IF(I < LEN_TRIM(KEYA)) THEN
362 DO WHILE(KEYA(I1:I1)/='/.AND.
'I1<LEN_TRIM(KEYA))
366 READ(MOT1,FMT='(I10)
')BCS_SK_FR(J1)
372 IF(KEYA(1:4)=='/VEL
') THEN
375 DO WHILE(KEYA(I:I)/='/.AND.
'I<LEN_TRIM(KEYA))
379 DO WHILE(KEYA(I:I)/='/.AND.
'I<LEN_TRIM(KEYA))
383 DO WHILE(KEYA(I:I)/='/.AND.
'I<LEN_TRIM(KEYA))
389 CALL ANCMSG(MSGID=74,ANMODE=ANINFO,C1=KEYA(1:I1-1),C2='/VEL
')
392 IF(I < LEN_TRIM(KEYA)) THEN
393 DO WHILE(KEYA(I1:I1)/='/.AND.
'I1<LEN_TRIM(KEYA))
396 IF(KEYA(I1:I1)=='/
')I1=I1-1 !set position to the first character before '/
'
398 READ(MOT1,FMT='(I10)
')VEL_SK_FR(J2)
413 IKAD(I)=IKAD(I)+IKAD(I-1)
423 IS_PREVKEYA_NCHARKEY = 0
425 READ(ISTDI,'(A)
') KEYA
426 IF(KEYA(1:1)=='#
')CYCLE
427 IF(KEYA(1:1)=='$
')CYCLE
430 IF(KEYA(1:4)=='/H3D.OR.
' KEYA(1:6)=='/STATE.OR.
' KEYA(1:7)=='/DYNAIN.OR.
'KEYA(1:5)=='/ANIM.OR.
'
431 . KEYA(1:5)=='/DAMP
')THEN
437 IF(IS_KEYA_NCHARKEY == 1)THEN
438.AND.
IF(IS_PREVKEYA_NCHARKEY == 1 IKOLD /=0)THEN
439 WRITE(IUSC1,REC=IKOLD,FMT='(A,I10)
') KEYW,NBC
441 WRITE(IUSC1,REC=IKOLD,FMT='(17A,I10)
')'/
',(KEY(I),'/',I=1,8),nbc
444 is_prevkeya_ncharkey = 1
449 ELSEIF(keya(1:1)==
'/')
THEN
450 IF(is_prevkeya_ncharkey == 1 .AND. ikold /=0)
THEN
451 WRITE(iusc1,rec=ikold,fmt=
'(A,I10)') keyw,nbc
453 WRITE(iusc1,rec=ikold,fmt=
'(17A,I10)')
'/',(key(i),
'/',i=1,8),nbc
455 is_prevkeya_ncharkey = 0
456 CALL redkey1(key,key0,nkey,keya,ikey,ir)
460 ELSEIF( is_prevkeya_ncharkey == 1)
THEN
462 WRITE(iusc1,rec=ikad(ikey),fmt=
'(A)')keya
465 WRITE(iusc1,rec=ikad(ikey),fmt=
'(A)')keya
467 ikad(ikey)=ikad(ikey)+1
470 IF( is_prevkeya_ncharkey == 1)
THEN
471 WRITE(iusc1,rec=ikold,fmt=
'(A,I10)') keyw,nbc
473 WRITE(iusc1,rec=ikold,fmt=
'(17A,I10)')
'/',(key(i),
'/',i=1,8),nbc
481 CALL delete_user_file(iusctmp_fn,len_iusctmp_fn)
483 IF (got_input==1)
THEN
485 CLOSE(unit=istdi, status=
'DELETE', iostat=io_err)
496 IF(ikad(ikey)/=ikad(ikey+1))
THEN
498 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,A4,2X,I5)',err=9990)ch4,irunn
500 IF (got_input == 0)
THEN
508 IF (irunn /= runn)
THEN
509 WRITE(istdo,
'(A,A)')
' ** WARNING ** : RUN NUMBER FOUND IN ',
'/RUN CARD FROM INPUT FILE'
510 WRITE(istdo,
'(A)')
' RUN NUMBER IGNORED '
517 CALL ancmsg(msgid=194,anmode=aninfo)
521 CALL ancmsg(msgid=195,anmode=aninfo)
528 IF (mcheck == 0)
THEN
533 ALLOCATE (sensors%STOP_TMP(mx_sens))
534 ALLOCATE (sensors%OUTP_TMP(mx_sens))
535 ALLOCATE (sensors%STAT_TMP(mx_sens))
536 ALLOCATE (sensors%ANIM_TMP(mx_sens))
537 sensors%STOP_TMP(:) = 0
538 sensors%OUTP_TMP(:) = 0
539 sensors%STAT_TMP(:) = 0
540 sensors%ANIM_TMP(:) = 0
547 IF (got_input/=0)
THEN
550 IF(ikad(ikey)/=ikad(ikey+1))
THEN
551 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)invers
553 IF (got_input==0)
THEN
554 IF(invers<18.AND.mcheck==0)
THEN
555 CALL ancmsg(msgid=196,anmode=aninfo)
564 IF(ikad(ikey)/=ikad(ikey+1))
THEN
565 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,A,1X,I5)',err=9990)key2,k4
568 ELSEIF(key2=='on
')THEN
577 IF(IKAD(IKEY)/=IKAD(IKEY+1))THEN
578 CALL WRIUSC2(IKAD(IKEY)+1,1,KEY0(IKEY))
579 READ(IUSC2,*,ERR=9990,END=9990)DTIN,DTMX
589 IF(IKAD(IKEY)/=IKAD(IKEY+1))THEN
591 110 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(49x,i10)',err=9990)nbc
594 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 110
601 IF(ikad(ikey)/=ikad(ikey+1))
THEN
603 140
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(49X,I10)',
607 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 140
613 IF(ikad(ikey)/=ikad(ikey+1))
THEN
624 IF(ikad(ikey)/=ikad(ikey+1))
THEN
625 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)k4
626 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
629 CALL wriusc2(ikad(ikey)+2,1,key0(ikey))
631 READ(iusc2,*,err=310,
END=320)TST_START ,tst_stop
633 310
READ(iusc2,*,err=320,
END=320)tst_start
643 IF(ikad(ikey)/=ikad(ikey+1))
THEN
645 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
646 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)k4
649 CALL wriusc2(ikad(ikey)+2,1,key0(ikey))
651 READ(iusc2,*)beta,period
653 istatg = -iabs(istatg)
654 IF (beta==zero) beta=one
656 betate = beta / period
664 IF(ikad(ikey)/=ikad(ikey+1))
THEN
669 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,A)',err=9990)key2
670 READ(iusc1
'(49X,I10)',err=9990) nbc
672 READ(iusc1,rec=ikad(ikey)+1,fmt=
'(A)',err=520)key3
673 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
674 IF (key2==
'FREQ_')
THEN
676 READ(iusc1,rec=ikad(ikey)+2,fmt=
'(A)',err=520)key2
677 CALL wriusc2(ikad(ikey)+2,1,key0(ikey))
679 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)k4
682 READ(iusc1,rec=ikad(ikey)+2,fmt=
'(A)',err=520)key2
683 CALL wriusc2(ikad(ikey)+2,1,key0(ikey))
686 READ(iusc2,*,err=510,
END=520)TST_START ,tst_stop
688 510
READ(iusc2,*,err=520,
END=520)tst_start
695 istatg = -iabs(istatg)
702 IF(ikad(ikey)/=ikad(ikey+1))
THEN
704 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
705 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)k4
706 IF(k4==1)ale%SUB%IALESUB=1
707 READ(iusc2,*)ale%SUB%DTFSUB,ale%SUB%DTMSUB
709 IF(ale%SUB%DTFSUB==zero)ale%SUB%DTFSUB=zep9
710 IF (ale%SUB%IALESUB==1)
THEN
711 CALL ancmsg(msgid=197,anmode=aninfo)
719 sensors%STOP_NSANIM = 0
721 sensors%STOP_NSSTAT = 0
722 sensors%STOP_NSOUTP = 0
723 sensors%STOP_NSABF = 0
724 sensors%STOP_NSH3D = 0
728 IF (ikad(ikey)/=ikad(ikey+1))
THEN
730 1150
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)',err=9990)key2,nbc
732 IF (key2==
'LSENS')
THEN
735 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)carte
736 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
738 READ(iusc2,*,err=9990,
END=9990) (SENSORS%STOP_TMP(N),N=1,NVAR(CARTE))
739 sensors%NSTOP = sensors%NSTOP +
nvar(carte)
743 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
744 READ(iusc2,*,err=148,
END=148)SENSORS%STOP_NSANIM,SENSORS%STOP_NSTH,SENSORS%STOP_NSSTAT,
745 . sensors%STOP_NSOUTP,sensors%STOP_NSABF,sensors%STOP_NSH3D,nsdynanin
748148
IF (iok_read == 0)
THEN
749 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
750 READ(iusc2,*,err=9990,
END=9990)SENSORS%STOP_NSANIM,SENSORS%STOP_NSTH,SENSORS%STOP_NSSTAT,
751 . sensors%STOP_NSOUTP,sensors%STOP_NSABF
755 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
756 READ(iusc2,*,err=150,
END=149)DEMXS,DMTMXS,DMNMXS,NTH,NANIM,nerr_posit
759 READ(iusc2,*,err=150,
END=150)DEMXS,DMTMXS,DMNMXS,NTH,nanim
762 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
763 READ(iusc2,*)demxs,dmtmxs,dmnmxs
767 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 1150
769 IF(dmtmxs==zero)dmtmxs=ep30
770 IF(dmnmxs==zero)dmnmxs=ep30
771 IF(demxs==zero) demxs =ep30
777 IF(ikad(ikey)/=ikad(ikey+1))
THEN
778 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
779 READ(iusc2,*,err=155,
END=154)
780 . demxk,dmtmxk,dmnmxk,nth,nanim,nerr_posit
783 READ(iusc2,*,err=155,
END=155)DEMXK,DMTMXK,DMNMXK,NTH,nanim
786 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
787 READ(iusc2,*)demxk,dmtmxk,dmnmxk
790 IF(dmtmxk==zero)dmtmxk=ep20
791 IF(dmnmxk==zero)dmnmxk=ep20
792 IF(demxk==zero) demxk =ep20
797 IF (mcheck == 0)
THEN
801 IF(ikad(ikey)/=ikad(ikey+1))
THEN
803 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,A4,2X,I5,1X,A1)',err=9990)ch4,irunn,chrun0(2:2)
804 IF(chrun0(2:2)/=
' ')chrun0(1:1)=
'_'
805 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
808 IF (got_input == 1)
THEN
815 IF (irunn /= runn)
THEN
816 WRITE(istdo,
'(A,A)')
' ** WARNING ** : RUN NUMBER FOUND IN ',
'/RUN CARD FROM INPUT FILE'
817 WRITE(istdo,
'(A)')
' RUN NUMBER IGNORED '
821 IF (irunn == 0) irunn = 1
824 CALL ancmsg(msgid=194,anmode=aninfo)
828 CALL ancmsg(msgid=195,anmode=aninfo)
838 IF(ikad(ikey)/=ikad(ikey+1))
THEN
839 READ(iusc1,rec=ikad(ikey)+1,fmt=
'(A)',err=9990)title
840 IF(title(1:1)==
'/')title=
' '
844 WRITE(iin,
'(2A,I2.2,A)')rootnam(1:rootlen),
'D',irunn,title
845 WRITE(chrun,
'(I4.4)')irunn
852 IF(ikad(ikey)/=ikad(ikey+1))
THEN
853 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,A)',err=9990)key2
854 IF(key2(1:4)==
'STOP') ineg_v = 0
865 IF(ikad(ikey)/=ikad(ikey+1))
THEN
867 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,A)',err=9990)key2
868 IF(key2(1:3)==
'OFF') idts6 = 0
889 glob_therm%IDT_THERM = 0
890 glob_therm%DTFACTHERM = zero
891 dt%BRICK_CST_DEFV_MIN = zero
892 dt%BRICK_CST_COL_MIN = zero
893 dt%BRICK_DEL_DEFV_MIN = zero
894 dt%BRICK_DEL_DEFV_MAX = zero
895 dt%BRICK_DEL_ASP_MAX = zero
896 dt%BRICK_DEL_COL_MIN = zero
900 160
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A)',err=9990)key2
901 IF(key2(1:4)==
'NODA')
THEN
902 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A)', err=9990)key2,key3
903 IF(key3(1:4)/=
'STOP' .AND. key3(1:3)/=
'DEL' .AND.
904 . key3(1:3)/=
'CST' .AND. key3(1:3)/=
'SET' .AND.
905 . key3(1:4)/=
'KILL' .AND. key3(1:3)/=
'LAG' .AND.
906 . key3(1:3)/=
'AMS' .AND. key3(1:3)/=
'ALE' )
THEN
907 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,I5)',err=9990)key2,k4
908 ELSEIF(key3(1:3)==
'DEL')
THEN
909 CALL ancmsg(msgid=246,anmode=aninfo,c1=
'/DT/NODA/DEL')
912 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,1X,I5)',err=9990)key2,key3,k4
914 ELSEIF(key2==
'AMS')
THEN
915 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,I5)',err=9990)key2,k4
916 ELSEIF(key2==
'CST_A')
THEN
918 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,I5)',err=9990)key2,k4
919 ELSEIF(key2==
'GLOB')
THEN
920 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,I5,1X,A)',err=9990)key2,k4,key5
921 ELSEIF(key2(1:4)==
'NODE')
THEN
922 CALL ancmsg(msgid=246,anmode=aninfo,c1=
'/DT/NODE')
925 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,1X,I5)',err=9990)key2,key3,k4
929 IF(key2==
'INTER'.AND.key3(1:2)==
'V5')
THEN
931 ELSEIF(key2==
'INTER'.AND.key3(1:2)==
'V4')
THEN
933 ELSEIF(key2==
'SMSTR'.AND.key3(1:2)==
'V4')
THEN
935 ELSE IF(key2==
'THERM')
THEN
936 glob_therm%IDT_THERM = 1
937 glob_therm%DTFACTHERM = zep9
938 IF(ikad(ikey)+k/=ikad(ikey+1))
THEN
939 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(1X,A)',err=9990)key4
940 IF(key4(1:2)/=
'DT')
THEN
941 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
942 READ(iusc2,*,err=9990,
END=9990) GLOB_THERM%dtfactherm
943 IF (glob_therm%DTFACTHERM == zero) dtfaca = zep9
947 ELSE IF(key2(1:4)==
'IGEO')
THEN
948 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
949 READ(iusc2,*,err=9990,
END=9990)DTFACA,dtmina
951 IF(key3(1:4)==
'ELEM')
THEN
953 ELSEIF(key3(1:4)==
'LCAR')
THEN
962 ELSEIF(key2(1:4)==
'GLOB')
THEN
963 WRITE(6,*)
"/DT/GLOB is a deprecated feature"
966 IF(key3(1:3)==
'ALE')
THEN
967 CALL wriusc2(ikad(ikey)+k,1,key0
969 ale%GLOBAL%I_DT_NODA_ALE_ON_KEY
970 READ(iusc2,*,err=9990,
END=9990)iflag
971 IF(iflag==1)ale%GLOBAL%I_DT_NODA_ALE_ON_KEY = 1
974 ELSEIF (key2(1:5)==
'CST_A')
THEN
976 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
977 READ(iusc2,*,err=9001,
END=9001) DTFACA,DTMINA,dtfac_ams
980 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
981 READ(iusc2,*,err=9990,
END=9990) DTFACA,dtmina
983 IF (dtfaca == zero) dtfaca = zep9
984 IF (dtfac_ams == zero) dtfac_ams = zep67
985 ELSEIF(key2(1:5) ==
'FVMBA')
THEN
990 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
991 READ(iusc2,
'(A)',err=9990,
END=9990)line
992 READ(line,*,iostat=ierr1)dtfaca,dtmina,lambda,l_type
997 READ(line,*,iostat=ierr1)dtfaca,dtmina,lambda
1003 READ(line,*,err=9990,
END=9990)DTFACA,dtmina
1007 IF(key3(1:1)==
'2')
THEN
1009 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1010 READ(iusc2,
'(A)',err=9990,
END=9990)line
1011 READ(line,*,err=9990,
END=9990)id_bag
1013 CALL ancmsg(msgid=299,anmode
1020 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1021 READ(iusc2,*,err=9003,
END=9003)DTFACA,DTMINA,percent_addmass
1023 IF (percent_addmass > zero) idt_percent_addmass = 1
1026 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1027 READ(iusc2,*,err=9990,
END=9990) DTFACA,dtmina
1032 IF(key3(1:4)==
'STOP')
THEN
1034 IF((key2(1:4)==
'NODA').AND.(idt_percent_addmass == 1))
THEN
1037 idt_percent_addmass = 2
1038 dt_stop_percent_addmass = dtmina
1040 ELSEIF(key3(1:3)==
'DEL')
THEN
1042 ELSEIF(key3(1:3)==
'CST')
THEN
1044 IF((key2(1:4)==
'NODA'.OR.key2(1:5)==
'INTER').AND.key3(1:4)/=
'CST1')idt=8
1045 ELSEIF(key3(1:3)==
'SET')
THEN
1047 ELSEIF(key3(1:4)==
'KILL')
THEN
1049 ELSEIF(key3(1:3)=='lag
')THEN
1051 ELSEIF(KEY3(1:3)=='ams
')THEN
1053 ELSEIF(KEY3(1:3)=='cod
')THEN
1059 IF(KEY2=='brick
')THEN
1063 IF(KEY3(1:3)=='cst.AND.
'K4==1)THEN
1064 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1065 READ(IUSC2,*,ERR=1001,END=1001)DT%BRICK_CST_COL_MIN,
1066 . DT%BRICK_CST_DEFV_MIN
1069 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1070 READ(IUSC2,*,ERR=9990,END=9990)DT%BRICK_CST_COL_MIN
1074 IF(KEY3(1:3)=='del.AND.
'K4==1)THEN
1075 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1076 READ(IUSC2,*,ERR=1003,END=1003)DT%BRICK_DEL_COL_MIN,
1077 . DT%BRICK_DEL_DEFV_MIN,
1078 . DT%BRICK_DEL_ASP_MAX,
1079 . DT%BRICK_DEL_DEFV_MAX
1082 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1083 READ(IUSC2,*,ERR=9990,END=9990)DT%BRICK_DEL_COL_MIN,
1084 . DT%BRICK_DEL_DEFV_MIN
1088 ELSEIF(KEY2(1:4)=='quad
')THEN
1092 ELSEIF(KEY2=='shell
')THEN
1096 ELSEIF(KEY2=='sh_3n.OR.
'KEY2(1:4)=='sh3n
')THEN
1100 ELSEIF(KEY2=='truss
')THEN
1104 ELSEIF(KEY2(1:4)=='beam
')THEN
1108 ELSEIF(KEY2=='sprin
')THEN
1112 ELSEIF(KEY2=='airba
')THEN
1116 ELSEIF(KEY2=='inter
')THEN
1117.and..and..and.
IF(INTDT==0(IDT/=3IDT/=8IDT/=7))THEN
1124.AND..OR.
IF(NODADT==0(IDT==3IDT==8))THEN
1135 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1136 READ(IUSC2,*,ERR=3001,END=3001)TOL_SMS,M_VS_SMS
1139 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1140 READ(IUSC2,*,ERR=9990,END=9990)TOL_SMS
1145 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1146 READ(IUSC2,*,ERR=9990,END=9990)NSMSPCG,NCPRISMS
1150 ELSEIF(KEY2(1:4)=='noda.AND.
' KEY3(1:3)/='ale
')THEN
1156.OR.
IF ((IDT == 8)(IDT == 3)) DT_CTRL_COMPATIBILITY(1) = 1
1158 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1159 READ(IUSC2,*,ERR=9990,END=9990)IDTGR(11)
1160 IDTGR(11) = -IDTGR(11)
1171 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1172 READ(IUSC2,*,ERR=100,END=100)IDTGRX,TOL_SMS
1176 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1177 READ(IUSC2,*,ERR=9990,END=9990)TOL_SMS
1182 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1183 READ(IUSC2,*,ERR=9990,END=9990)NSMSPCG,NCPRISMS
1188 ELSEIF(KEY2(1:5)=='spcel.OR.
'KEY2(1:5)=='sphce
')THEN
1192 ELSEIF(KEY2(1:5)=='fvmba
') THEN
1193 IF(KEY3(1:1)=='0
')THEN
1197 IDTMIN(52) = ID_DT_OPTION
1198 ELSEIF(KEY3(1:1)=='1
')THEN
1202 IDTMIN(52) = ID_DT_OPTION
1203 ELSEIF(KEY3(1:1)=='2
')THEN
1205 !option requires an airbag_id.
1210 IDTMIN(52) = ID_DT_OPTION
1213 LAMBDA = MAX(ZERO, LAMBDA)
1214 FVMBAG_L_TYPE = INT(L_TYPE)
1215 FVMBAG_L_TYPE = MIN(FVMBAG_L_TYPE,2) !input check:upper bound
1216 FVMBAG_L_TYPE = MAX(0,FVMBAG_L_TYPE) !input check:lower bound
1217 !storing in temporary data structure. It will be used to fill the final data structure when restart file is read (not yet allocated)
1218 IF(ID_DT_OPTION == 0)NUM_OPT_DT_FVMBAG_0 = NUM_OPT_DT_FVMBAG_0 + 1
1219 IF(ID_DT_OPTION == 1)NUM_OPT_DT_FVMBAG_1 = NUM_OPT_DT_FVMBAG_1 + 1
1220 IF(ID_DT_OPTION == 2)NUM_OPT_DT_FVMBAG_2 = NUM_OPT_DT_FVMBAG_2 + 1
1221 IF(ID_DT_OPTION == 3)NUM_OPT_DT_FVMBAG_3 = NUM_OPT_DT_FVMBAG_3 + 1
1222 NUM_OPT_DT_FVMBAG = NUM_OPT_DT_FVMBAG + 1
1223 FVMBAG_INPUT_OPTIONS(NUM_OPT_DT_FVMBAG)%CFL_COEF = DTFACA
1224 FVMBAG_INPUT_OPTIONS(NUM_OPT_DT_FVMBAG)%DTMIN = DTMINA
1225 FVMBAG_INPUT_OPTIONS(NUM_OPT_DT_FVMBAG)%LAMBDA = LAMBDA
1226 FVMBAG_INPUT_OPTIONS(NUM_OPT_DT_FVMBAG)%ID_BAG = ID_BAG
1227 FVMBAG_INPUT_OPTIONS(NUM_OPT_DT_FVMBAG)%L_type = FVMBAG_L_TYPE
1228 FVMBAG_INPUT_OPTIONS(NUM_OPT_DT_FVMBAG)%ID_DT_OPTION = ID_DT_OPTION
1229 !Input check is done later in rdresb.F>FVRREST once all keywords are finished to be read & before deallocating (FVMBAG_INPUT_OPTIONS)
1231 ELSEIF(KEY2(1:3)=='ams
')THEN
1232 DT_CTRL_COMPATIBILITY(2) = 1
1241 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1242 READ(IUSC2,*,ERR=2001,END=2001)TOL_SMS,M_VS_SMS
1245 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1246 READ(IUSC2,*,ERR=9990,END=9990)TOL_SMS
1251 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1252 READ(IUSC2,*,ERR=9990,END=9990)NSMSPCG,NCPRISMS
1255 ELSEIF(KEY2(1:5)=='cst_a
')THEN
1257 DT_CTRL_COMPATIBILITY(3) = 1
1275 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1276 READ(IUSC2,*,ERR=2011,END=2011)TOL_SMS,M_VS_SMS
1279 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1280 READ(IUSC2,*,ERR=9990,END=9990)TOL_SMS
1285 CALL WRIUSC2(IKAD(IKEY)+K,1,KEY0(IKEY))
1286 READ(IUSC2,*,ERR=9990,END=9990)NSMSPCG,NCPRISMS
1289 ELSEIF(KEY2(1:3)=='ale.OR.
' KEY2(1:4)=='euler')
THEN
1290 dtfac1(102) = dtfaca
1291 dtmin1(102) = dtmina
1293 If(ale%GLOBAL%IDT_ALE==0)ale%GLOBAL%IDT_ALE = 1
1297 ale%GLOBAL%IDT_ALE = -1
1301 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 160
1305 IF (dt_ctrl_compatibility(3) == 1)
THEN
1306 IF ((dt_ctrl_compatibility(1)+dt_ctrl_compatibility(2)) > 0)
THEN
1307 CALL ancmsg(msgid=279,anmode=aninfo,c1=key0(ikey))
1312 IF (glob_therm%IDT_THERM == 1.AND.idtmins/=0)
THEN
1313 CALL ancmsg(msgid=301,anmode=aninfo,c1=key0(ikey))
1326 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1328 161
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,1X,I5)', err=9990)key2,key3,k4
1330 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1331 READ(iusc2,*,err=9990,
END=9990)DTFACA,dtmina
1333 IF(key3(1:4)==
'STOP')
THEN
1335 ELSEIF(key3(1:3)==
'DEL')
THEN
1337 ELSEIF(key3(1:3)==
'CST')
THEN
1339 ELSEIF(key3(1:4)==
'KILL')
THEN
1344 IF(key2==
'SHELL')
THEN
1349 ELSEIF(key2==
'BRICK')
THEN
1354 IF(key3(1:3)==
'CST'.AND.k4==1)
THEN
1355 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1356 READ(iusc2,*,err=1101,
END=1101)DT%BRICK_CST_COL_MIN,
1357 . dt%BRICK_CST_DEFV_MIN
1360 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1361 READ(iusc2,*,err=9990,
END=9990)DT%brick_cst_col_min
1365 IF(key3(1:3)==
'DEL'.AND.k4==1)
THEN
1366 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1367 READ(iusc2,*,err=1103,
END=1103)DT%BRICK_DEL_COL_MIN,
1368 . dt%BRICK_DEL_DEFV_MIN,
1369 . dt%BRICK_DEL_ASP_MAX,
1370 . dt%BRICK_DEL_DEFV_MAX
1373 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1374 READ(iusc2,*,err=9990,
END=9990)DT%BRICK_DEL_COL_MIN,
1375 . dt%BRICK_DEL_DEFV_MIN
1385 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 161
1387 CALL init_idel_brick(dt)
1393 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1394 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)ittyp
1395 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1396 READ(iusc2,*,err=9990,
END=9990)dthis0
1406 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1407 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(1)
1408 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1409 READ(iusc2,*,err=9990,
END=9990)DTHIS01(1)
1412 output%TH%THIS1(1)= ep30
1419 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1420 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(2)
1421 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1422 READ(iusc2,*,err=9990,
END=9990)DTHIS01(2)
1425 output%TH%THIS1(2)=ep30
1432 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1433 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(3)
1434 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1435 READ(iusc2,*,err=9990,
END=9990)DTHIS01(3)
1438 output%TH%THIS1(3)=ep30
1445 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1446 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(4)
1447 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1448 READ(iusc2,*,err=9990,
END=9990)DTHIS01(4)
1451 output%TH%THIS1(4)=ep30
1458 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1459 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(5)
1460 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1461 READ(iusc2,*,err=9990,
END=9990)DTHIS01(5)
1464 output%TH%THIS1(5)=ep30
1471 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1472 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(6)
1473 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1474 READ(iusc2,*,err=9990,
END=9990)DTHIS01(6)
1477 output%TH%THIS1(6)=ep30
1484 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1485 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(7)
1486 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1487 READ(iusc2,*,err=9990,
END=9990)DTHIS01(7)
1490 output%TH%THIS1(7)=ep30
1497 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1498 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(8)
1499 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1500 READ(iusc2,*,err=9990,
END=9990)DTHIS01(8)
1503 output%TH%THIS1(8)=ep30
1510 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1511 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(9)
1512 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1513 READ(iusc2,*,err=9990,
END=9990)DTHIS01(9)
1516 output%TH%THIS1(9)=ep30
1524 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1526 1160
READ(iusc1,rec=ikad(ikey)+k, fmt=
'(7X,A,1X,A,1X,A,1X,A,19X,I10)', err=9990)key2,key3,key4,key5,nbc
1528 IF(key2(1:4)==
'VERS')
THEN
1529 READ(key3,
'(I4)')th_vers
1530 ELSEIF(key2(1:5)==
'TITLE')
THEN
1535 IF (th_vers<40)
THEN
1536 CALL ancmsg(msgid=198,anmode=aninfo)
1540 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 1160
1547 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1548 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5,X,I5)',err=9990)ncpri0,ncpri_head0
1559 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1560 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,A)',err=9990) key2
1563 IF(key2(1:3)==
'OFF')
THEN
1569 ELSEIF(restart_file==0)
THEN
1580 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)multirest
1581 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1582 READ(iusc2,*,err=9990,
END=9990)ncrst
1585 multirest=
min(multirest,26)
1595 WRITE(iin,
'(1P4E16.9,I8,I10,2I8)')tstop0,dthis0,dtfac0,dtmin0,ncpri0,ncrst,multirest,ncpri_head0
1596 WRITE(iin,
'(1P5E16.9)')(dthis01(i), i=1,5)
1597 WRITE(iin,
'(1P4E16.9)')(dthis01(i+5), i=1,4)
1600 IF(ittyp==0) ittyp=4
1604 IF (aform(i)==0) aform(i)=4
1625 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1626 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(1X,A,1X,A,1X,A)',err=9990)key1,key2,key3
1627 IF(key1(1:3) /=
'ALE')
THEN
1632 IF(key2(1:4)==
'GRID')
THEN
1634 stringale(1:5)=key3(1:5)
1637 stringale(1:5)=key2(1:5)
1639 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1643 IF(stringale(1:5)==
'DONEA'.OR.stringale(1:1)==
'0')
THEN
1644 num_ale_grid = num_ale_grid + 1
1646 READ(iusc2,*,err=9990,
END=9990)ALP,GAM,A1,A2,A3,vm
1650 ELSEIF(stringale(1:4)==
'DISP'.OR.stringale(1:1)==
'1')
THEN
1651 num_ale_grid = num_ale_grid + 1
1653 READ(iusc2,*,err=9990,
END=9990)ALP,vm
1655 a1=one; a2=one; a3=one;
1659 ELSEIF(stringale(1:5)==
'SPRIN'.OR.stringale(1:1)==
'2')
THEN
1660 num_ale_grid = num_ale_grid + 1
1662 READ(iusc2,*,err=9990,
END=9990)ALP,GAM,A1,A2,vm
1667 ELSEIF(stringale(1:4)==
'ZERO'.OR.stringale(1:1)==
'3')
THEN
1668 num_ale_grid = num_ale_grid + 1
1673 ELSEIF(stringale(1:5)==
'STAND'.OR.stringale(1:1)==
'4')
THEN
1674 num_ale_grid = num_ale_grid + 1
1676 READ(iusc2,*,err=9990,
END=9990)ALP,GAM,A1,a2
1682 ELSEIF(stringale(1:5)==
'LAPLA')
THEN
1683 num_ale_grid = num_ale_grid + 1
1685 READ(iusc2,*,err=9990,
END=9990)ALP,a1
1686 IF(alp==zero)alp=one
1687 IF(nint(a1)<=zero)a1=one
1688 IF(a2/=one .AND. a2/=two)a2=one
1692 ELSEIF(stringale(1:5)==
'VOLUM')
THEN
1693 num_ale_grid = num_ale_grid + 1
1698 ELSEIF(stringale(1:5)==
'FLOW-')
THEN
1699 num_ale_grid = num_ale_grid + 1
1701 READ(iusc2,*,err=9990,
END=9990)A1,alp
1702 CALL wriusc2(ikad(ikey)+2,1,key0(ikey))
1703 READ(iusc2,*,err=9990,
END=9990)A2,gam
1704 IF(alp == zero)alp = one
1705 IF(gam == zero)gam = one
1706 IF(int(a1) == 0)a1 = 1
1707 IF(int(a1) /= 1 .AND. int(a1) /= -1)a1 = 1
1708 IF(int(a2) == 0)a2 = 1
1709 IF(int(a2) /= 1 .AND. int(a2) /= -1)a2 = 1
1713 ELSEIF(stringale(1:5)==
'LAGRA')
THEN
1714 num_ale_grid = num_ale_grid + 1
1722 WRITE(iin,
'(1P6E10.3)')alp,gam,a1,a2,a3,vm
1725 IF(iale_grid_form /= -1)
THEN
1726 ale%GRID%NWALE_ENGINE=iale_grid_form
1728 ale%GRID%NWALE_ENGINE=-1
1731 IF(num_ale_grid > 1)
THEN
1732 CALL ancmsg(msgid=263,anmode=aninfo)
1745 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1746 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,31X,I10)',err=9990)key2,key3,nbc
1750 IF (key2(1:5) ==
'LOWMA')
THEN
1756 WRITE(iin,
'(I8)') lowmach_opt
1778 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1780 200
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,31X,I10)',err=9990)key2,key3,nbc
1782 IF(key3(1:3)/=
'NOD'.AND.key3(1:3)/=
'SEG')
READ(key3,fmt=
'(I5)',err=9990)k3
1786 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)carte
1792 IF(key2==
'INTER'.AND.key3(1:3)==
'NOD')
THEN
1794 ELSEIF(key2==
'INTER'.AND.key3(1:3)==
'SEG')
THEN
1796 ELSEIF(key2==
'INTER')
THEN
1798 ELSEIF(key2==
'BRICK')
THEN
1800 ELSEIF(key2==
'QUAD ')
THEN
1802 ELSEIF(key2==
'SHELL')
THEN
1804 ELSEIF(key2==
'TRUSS')
THEN
1806 ELSEIF(key2==
'BEAM ')
THEN
1808 ELSEIF(key2==
'SPRIN')
THEN
1810 ELSEIF(key2==
'SH_3N'.OR.key2(1:4)==
'SH3N')
THEN
1812 ELSEIF(key2==
'SPCEL'.OR.key2==
'SPHCE')
THEN
1814 ELSEIF(key2==
'ALE ')
THEN
1816 ELSEIF(key2==
'EULER')
THEN
1818 ELSEIF(key2==
'THERM')
THEN
1820 ELSEIF(key2==
'PART ')
THEN
1821 npartof = npartof+nof
1825 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 200
1827 WRITE(iin,
'(10I8)')nintof,nelsof,nelqof,nelcof,neltof,nelpof,nelrof,neltgof,nintnof,nintsof
1828 WRITE(iin,
'(I8)')nsphof
1829 WRITE(iin,
'(4I8)')naleof,neulerof,nthermof,npartof
1838 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1839 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)', err=9990)key2,nbc
1840 IF(key2==
'TRA ')
THEN
1842 ELSEIF(key2==
'ROT ')
THEN
1844 ELSEIF(key2==
'ALE ')
THEN
1852 WRITE(iin,
'(2I8)')nrlink,nalelk
1860 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1861 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,31X,I10)',err=9990)key2,key3,nbc
1862 IF(key2(1:5)==
'LINK ')
THEN
1863 IF(key3(1:5)==
'VEL ')
THEN
1865 ELSEIF(key3(1:5)==
'OFF ')
THEN
1867 ELSEIF(key3(1:5)==
'ON ')
THEN
1875 WRITE(iin,
'(I8)')nalelink
1881 ale%UPWIND%UPW_UPDATE = 0
1882 ale%UPWIND%UPWMG2 = zero
1883 ale%UPWIND%UPWOG2 = zero
1884 ale%UPWIND%UPWSM2 = zero
1885 ale%UPWIND%CUPWM = one
1886 ale%UPWIND%I_SUPG_ON_OFF = 0
1891 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1892 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,31X,I10)',err=9990)key2,key3,nbc
1896 IF(key2(1:4)==
'SUPG')
THEN
1897 IF(key3(1:3)==
'OFF')
THEN
1899 ale%UPWIND%UPW_UPDATE = 0
1900 ale%UPWIND%I_SUPG_ON_OFF = 2
1901 ELSEIF(key3(1:5)==
'ON')
THEN
1903 ale%UPWIND%UPW_UPDATE = 0
1904 ale%UPWIND%I_SUPG_ON_OFF = 1
1909 ale%UPWIND%UPW_UPDATE = 0
1914 ale%UPWIND%UPW_UPDATE = 0
1915 ale%UPWIND%I_SUPG_ON_OFF = 0
1924 alemuscl_param%I_MUSCL_OFF = 0
1927 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1928 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,31X,I10)',err=9990)key2,key3,nbc
1929 !---------------------------------------
1932 IF (key2(1:5) ==
'MUSCL')
THEN
1934 alemuscl_param%I_MUSCL_OFF = 1
1935 ELSEIF(key3(1:2)==
'ON')
THEN
1936 alemuscl_param%I_MUSCL_OFF = 0
1937 alemuscl_param%IALEMUSCL = 1
1938 alemuscl_param%BETA = two
1955 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1956 READ (iusc1, rec = ikad(ikey) + k, fmt =
'(7X,A,37X,I10)') key2, nbc
1957 IF (key2(1:2) ==
'ON')
THEN
1958 nbaleon = nbaleon + 1
1959 nbpartaleon = nbpartaleon + nbc
1961 IF (key2(1:3) ==
'OFF')
THEN
1962 nbaleoff = nbaleoff + 1
1963 nbpartaleoff = nbpartaleoff + nbc
1967 WRITE (iin,
'(I8, I8)') nbpartaleon, nbpartaleoff
1974 ale%GLOBAL%ISFINT = 0
1975 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1977 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A32)',err=9990)stringale
1978 IF(stringale(1:5)/=
'SOLVE')
EXIT
1979 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(13X,A32)',err=9990)stringale
1980 IF(stringale(1:4)/=
'FINT')
EXIT
1981 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)line
1982 READ(line,fmt=
'(7X,A5,1X,A5,1X,I5)',err=9990)key2,key3,iform
1984 ale%GLOBAL%ISFINT = 2
1985 ELSEIF(iform==1)
THEN
1986 ale%GLOBAL%ISFINT = 1
1987 ELSEIF(iform==3)
THEN
1988 ale%GLOBAL%ISFINT = 3
1991 ale%GLOBAL%ISFINT = 1
2001 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
2003 READ (iusc1, rec = ikad(ikey)
'(A32)', err=998) keya
2004 READ (iusc1, rec = ikad(ikey) + k, fmt =
'(X,A5,X,A5)', err=998) key1 ,key2
2005 IF(key2(1:5)==
' ')key2(1:1)=
'0'
2006 IF(key1(1:5)==
'ALE ')
THEN
2007 DO inum=1,num_ale_key2
2008 IF (key2(1:5) == keyale(inum))
THEN
2013 IF(lfound.EQV. .false.)
THEN
2014 CALL ancmsg(msgid=51,anmode=aninfo,c1=keya(1:12))
2029 IF(ikad(ikey)/=ikad(ikey+1))
THEN
2031 400
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)',err=9990)key2,nbc
2034 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)carte
2036 nubcs1=nubcs1+
nvar(carte)
2039 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 400
2043 IF(ikad(ikey)/=ikad(ikey+1))
THEN
2045 420
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)',err=9990)key2,nbc
2048 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)carte
2050 nubcs2=nubcs2+
nvar(carte)
2053 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 420
2055 num_bcs=nubcs1+nubcs2
2063 IF(ikad(ikey)/=ikad(ikey+1))
THEN
2065 440
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,7X,I5,25X,I10)',err=9990)key2,k3,nbc
2067 IF (key2(1:4)==
"AXIS")
THEN
2074 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)carte
2077 ninivt=ninivt+(nbc-m)*2*
nvar(carte)
2080 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)carte
2082 ninivt=ninivt+(2-k3)*
nvar(carte)
2086 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 440
2088 WRITE(iin,
'(2I8)')num_bcs,ninivt/2
2100 IF(ikad(ikey)/=ikad(ikey+1))
THEN
2103 500
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)',err=9990)key2,nbc
2106 IF(key2==
'FOP')
THEN
2108 IF (intch_ifop/=0)
THEN
2112 nbtopfop = nbtopfop + 1
2114 ELSEIF(key2==
'NOFOP')
THEN
2116 IF (intch_ifop/=0)
THEN
2120 nbtopfop = nbtopfop + 1
2122 ELSEIF(key2==
'TOP')
THEN
2124 IF (intch_itop/=0)
THEN
2128 nbtopfop = nbtopfop + 1
2130 ELSEIF(key2==
'NOTOP')
THEN
2132 IF (intch_itop/=0)
THEN
2136 nbtopfop = nbtopfop + 1
2139 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 500
2149 IF(ikad(ikey)/=ikad(ikey+1))
THEN
2151 550
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)',err=9990)key2,nbc
2155 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)carte
2162 ELSEIF(key2==
'OFF')
THEN
2167 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 550
2170 WRITE(iin,
'(10I8)')nintch-nbtopfop,nrbyon,nrbyof
2177 IF (ikad(ikey)/=ikad(ikey+1))
THEN
2179 650
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)',err=9990) key2,nbc
2180 IF(key2/=
'ON' .AND. key2/=
'ON2' .AND. key2/=
'MPP' )
THEN
2182 ELSEIF(key2==
'ON2')
THEN
2184 ELSEIF(key2==
'MPP')
THEN
2189 READ(iusc1,rec=ikad(ikey)+k,fmt='(a)
',ERR=9990) CARTE
2192 IF(IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 650
2200 IF (IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2202 670 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(7x,a,37x,i10)
',ERR=9990) KEY2,NBC
2205 ELSEIF(KEY2=='on
')THEN
2207 !initial connection with rad2rad
2208 IF (ISPMD==0) CALL CONNECTION_SOCK_INIT_C(SOCK0)
2212 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(a)
',ERR=9990) CARTE
2215 IF(IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 670
2222 ViperCoupling = .false.
2223 IF (IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2225 680 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(7x,a,37x,i10)
',ERR=9990) KEY2,NBC
2227 ViperCoupling = .true.
2231 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(a)
',ERR=9990) CARTE
2234 IF(IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 680
2241 GLOBAL_INTERFACE_SORTING_ALGO = 1
2242 IF (IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2244 700 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(7x,a,37x,i10)
',ERR=9990) KEY2,NBC
2245 IF(KEY2=='sort1
') THEN
2246 GLOBAL_INTERFACE_SORTING_ALGO = 1
2247 ELSEIF(KEY2=='sort2
') THEN
2248 GLOBAL_INTERFACE_SORTING_ALGO = 2
2249 ELSEIF(KEY2=='sort3
') THEN
2250 GLOBAL_INTERFACE_SORTING_ALGO = 0
2253 IF(IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 700
2263 IF (IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2265 750 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(7x,a,37x,i10)
',ERR=9990) KEY2,NBC
2268 CALL WRIUSC2(IKAD(IKEY)+1,1,KEY0(IKEY))
2269 READ(IUSC2,*) TPSENG
2270 ELSEIF(KEY2=='pread
')THEN
2272 ELSEIF(KEY2=='ddwst
')THEN
2280 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(a)
',ERR=9990) CARTE
2283 IF(IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 750
2292 IF(IKAD(IKEY)/=IKAD(IKEY+1))THEN
2294 770 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(101x,i10)
',ERR=9990) NBC
2295 IF (NBC == 2) IDAMP0=1
2298 IF(IKAD(IKEY)+K/=IKAD(IKEY+1))GO TO 770
2300 WRITE(IIN,'(i8)
')N_DAMP
2307 IF (IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2309 780 CALL WRIUSC2(IKAD(IKEY)+1,1,KEY0(IKEY))
2310 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(49x,i10)
',ERR=9990) NBC
2313 IF (IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 780
2315 WRITE(IIN,'(i8)
')NFXINP
2323 IF (IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2325 790 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(7x,a,37x,i10)
',ERR=9990)KEY2,NBC
2329 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(a)
',ERR=9990)CARTE
2335 IF(KEY2/='off
') CALL ERRMSG(KEY2)
2336 IF(IKAD(IKEY)+K/=IKAD(IKEY+1)) GOTO 790
2338 WRITE(IIN,'(2i8)
')NEIGOFF, NEOFF
2346 IF(IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2348 810 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(7x,a5,37x,i10)
',ERR=9990)KEY2, NBC
2350 IF (KEY2=='remes
') NFVMESH=NFVMESH+1
2351 IF (KEY2=='modif
') NFVMODI=NFVMODI+1
2352 IF (IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 810
2354 WRITE(IIN,'(2i8)
')NFVMESH,NFVMODI
2361 IF(IKAD(IKEY)/=IKAD(IKEY+1))THEN
2363 READ(IUSC1,REC=IKAD(IKEY),FMT='(7x,i5)
',ERR=9990)NITERP
2364 IF(NITERP == 0)NITERP=1
2373 IF(IKAD(IKEY)/=IKAD(IKEY+1))THEN
2382 IF(IKAD(IKEY)/=IKAD(IKEY+1))THEN
2383 READ(IUSC1,REC=IKAD(IKEY),FMT='(7x,a)
',ERR=9990)KEY2
2384 IF(KEY2(1:5)=='reset.AND..AND.
'IRUNN>1MCHECK==0) IMASSI = 1
2393 IF (IKAD(IKEY) /= IKAD(IKEY+1)) THEN
2394 READ(IUSC1,REC=IKAD(IKEY),FMT='(7x,a,37x,i10)
',ERR=9990) KEY2,NBC
2395 IF (KEY2(1:5)=='reset
') THEN
2399 READ(IUSC1,REC=IREC+I-1,FMT='(a)
',ERR=9990)CARTE
2400 NBSENS = NBSENS + NVAR(CARTE)
2402 IF (NBSENS == 0) THEN
2403 SENSORS%NRESET = SENSORS%NSENSOR
2405 SENSORS%NRESET = NBSENS
2406 ALLOCATE(SENSORS%RESET(NBSENS))
2409 READ(IUSC1,REC=IREC+I-1,FMT='(a)
',ERR=9990)CARTE
2410 CALL WRIUSC2(IREC+I-1,1,KEY0(IKEY))
2411 READ(IUSC2,*,ERR=9990,END=9990)
2412 . (SENSORS%RESET(J+NBSENS),J=1,NVAR(CARTE))
2413 NBSENS = NBSENS + NVAR(CARTE)
2422 CALL FREDLI7(IKAD(0),KEY0,KDELIN)
2427 CALL FREDLI(IKAD(0),KEY0,KDEL,NDEL)
2432 CALL RDELE(NDEL,'brick
',IKAD(KDEL),KEY0(IKEY))
2433 CALL RDELE(NDEL,'quad
',IKAD(KDEL),KEY0(IKEY))
2434 CALL RDELE(NDEL,'shell
',IKAD(KDEL),KEY0(IKEY))
2435 CALL RDELE(NDEL,'truss
',IKAD(KDEL),KEY0(IKEY))
2436 CALL RDELE(NDEL,'beam
',IKAD(KDEL),KEY0(IKEY))
2437 CALL RDELE(NDEL,'sprin
',IKAD(KDEL),KEY0(IKEY))
2438 CALL RDELE(NDEL,'sh_3n
',IKAD(KDEL),KEY0(IKEY))
2439 CALL RDELE(NDEL,'sh3n
',IKAD(KDEL),KEY0(IKEY))
2440 CALL RDELE(NDEL,'spcel
',IKAD(KDEL),KEY0(IKEY))
2441 CALL RDELE(NDEL,'sphce
',IKAD(KDEL),KEY0(IKEY))
2442 CALL RDELE(NDEL,'part
',IKAD(KDEL),KEY0(IKEY))
2447 CALL FRELNK(IKAD(0),KEY0,KVEL,NRLINK,VEL_SK_FR)
2452 IF(NALELK/=0) CALL FRALNK (IKAD(0),KEY0,KVEL,NALELK) !format v5.1
2453 IF(NALELINK/=0)CALL FRALNK2(IKAD(0),KEY0,KALE,NALELINK) !format v12
2454 !LLINAL is now LINALE() dimension for engine ALE links definitions.
2459 IF (NBALEON + NBALEOFF /= 0) CALL FRALEONOFF(IKAD(0), KEY0, KALE, NBALEON + NBALEOFF)
2464 CALL FREBCS(IKAD(0),KEY0,KBCS,KBCSR,NBCS1,NBCS2,BCS_SK_FR)
2469 CALL FREINT(IKAD(0),KEY0,KINTER,NINTCH,INVERS,INTCH_IFOP,INTCH_ITOP)
2474 CALL FRERBO(IKAD(0),KEY0,KRBODY,NRBYNF)
2480 IF(NSFLSW/=0)CALL FREFLW(IKAD(0),KEY0,KFLSEC,NSFLSW,NTFLSW)
2481 !not compatible SPMD
2483 CALL ANCMSG(MSGID=201,ANMODE=ANINFO)
2490 CALL FREFUNC(IKAD(0),KEY0,KFUNC,NFCT)
2495 CALL FREINIV(IKAD(0),KEY0,KINIV,NINIV)
2500 CALL FREANIM(IKAD(0),KEY0,KANIM,SENSORS)
2504 CALL FREOUTP(IKAD(0),KEY0,KOUTP,SENSORS)
2509 CALL FREDEBUG(IKAD(0),KEY0,KDEBUG)
2514 CALL FRENOIS(IKAD(0),KEY0,KNOISE)
2518 CALL FREUPWIND(IKAD(0),KEY0,KUPWIND)
2523 CALL FREUPWM(IKAD(0),KEY0,KUPWM)
2532 IF(IKAD(IKEY)/=IKAD(IKEY+1))THEN
2533 READ(IUSC1,REC=IKAD(IKEY),FMT='(7x,a,1x,i5)
',ERR=9990)KEY2,K4
2537 ELSEIF(KEY2=='on
')THEN
2540 ELSEIF(KEY2=='full
')THEN
2543 ELSEIF(KEY2=='sync
')THEN
2546 ELSEIF(KEY2=='mat
')THEN
2558 ALE%GLOBAL%INCOMP = 0
2560 IF(IKAD(IKEY)/=IKAD(IKEY+1))THEN
2567 IF(IMADCPL/=0) CALL FRECPL(IKAD,KEY0,KMADYM)
2572 CALL FREDAMP(IKAD(0),KEY0,KDAMP,N_DAMP)
2578 CALL FREIMPL(IKAD(0),KEY0,KIMPL)
2583 CALL FREFXINP(IKAD(0),KEY0,KFXINP,NFXINP)
2588 CALL FREEIG(IKAD(0),KEY0,KEIG,NEIGOFF)
2593 CALL FREFVBAG(IKAD(0),KEY0,KFVBAG)
2598 CALL FRESTAT(IKAD(0),KEY0,KSTATF,SENSORS,OUTPUT)
2603 CALL FREDYNAIN(IKAD(0),KEY0,KDYNAIN,DYNAIN_DATA)
2611 CALL FREABF(IKAD(0),KEY0,KABF,ABFILE,NABFILE,1)
2612 CALL FREABF(IKAD(0),KEY0,KAABF,ABFILE,NABFILE,2)
2613 CALL FREABF(IKAD(0),KEY0,KBABF,ABFILE,NABFILE,3)
2614 CALL FREABF(IKAD(0),KEY0,KCABF,ABFILE,NABFILE,4)
2615 CALL FREABF(IKAD(0),KEY0,KDABF,ABFILE,NABFILE,5)
2616 CALL FREABF(IKAD(0),KEY0,KEABF,ABFILE,NABFILE,6)
2617 CALL FREABF(IKAD(0),KEY0,KFABF,ABFILE,NABFILE,7)
2618 CALL FREABF(IKAD(0),KEY0,KGABF,ABFILE,NABFILE,8)
2619 CALL FREABF(IKAD(0),KEY0,KHABF,ABFILE,NABFILE,9)
2620 CALL FREABF(IKAD(0),KEY0,KIABF,ABFILE,NABFILE,10)
2621.AND.
IF (NABFILE/=0 ABFILE(1) == 0) THEN
2622 NABFILE = NABFILE + 1
2623 ABFILE(1) = ABFILE(1) + 1
2630 CALL FRETHERMAL(IKAD(0),KEY0,KTHERMAL,GLOB_THERM)
2635 CALL H3D_INI(H3D_DATA,KH3D,NSLASH)
2636 CALL H3D_READ(IKAD(0),KEY0,KH3D,NSLASH,H3D_DATA,SENSORS)
2647 DO WHILE(IKAD(IKEY)+K/=IKAD(IKEY+1))
2648 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(7x,a,1x,a,1x,a,1x,a,19x,i10)
',ERR=9990)KEY2,KEY3,KEY4,KEY5,NBC
2650 IF(KEY2=='html
')THEN
2652 IF(KEY3=='h3d.AND.
' NSLASH(KH3D) /= 0) THEN
2654 IF(KEY4 =='ext
') IH3DREADER = 2
2656 ELSEIF(KEY2=='mvw
')THEN
2661 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(5x,a)
',ERR=9990)IMVW_REFPATH
2662 ELSEIF(KEY3=='anim
')THEN
2665 ELSEIF(KEY4=='abf
')THEN
2668 ELSEIF(KEY3=='h3d
')THEN
2671 ELSEIF(KEY4=='abf
')THEN
2675 !autoselect of files format
2676 IF(NSLASH(KANIM) /= 0)THEN
2677 IF(NSLASH(KTFILE) /= 0)THEN
2679 ELSEIF(NSLASH(KABF) /= 0)THEN
2682 ELSEIF(NSLASH(KH3D) /= 0) THEN
2683 IF(NSLASH(KTFILE) /= 0)THEN
2685 ELSEIF(NSLASH(KABF) /= 0)THEN
2696 CALL DELETE_USER_FILE(IUSC1_FN,LEN_IUSC1_FN)
2697 CALL DELETE_USER_FILE(IUSC2_FN,LEN_IUSC2_FN)
2704 CALL ANCMSG(MSGID=73,ANMODE=ANINFO,C1=KEY0(IKEY))
2711 WRITE(IOUT,*)' ** error in memory allocation
WHILE reading engine file
'
2712 WRITE(ISTDO,*)' ** error in memory allocation
WHILE reading engine file
'
subroutine eig(k_diag, k_lt, iadk, jdik, ms, in, nddl, ndof, nnzl, x, d, v, a, bufel, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, pm, geo, cont, icut, skew, xcut, fint, itab, fext, fopt, anin, lpby, npby, nstrf, rwbuf, nprw, tani, elbuf_tab, matparam_tab, dd_iad, fr_iad, dd_front, cluster, weight, eani, ipart, rby, nom_opt, igrsurf, bufsf, idata, rdata, bufmat, bufgeo, kxx, ixx, kxsp, ixsp, nod2sp, spbuf, ixs10, ixs20, ixs16, vr, monvol, volmon, ipm, igeo, iparg, eigipm, eigibuf, eigrpm, ldiag, ljdik, ljdik2, ikc, maxncv, thke, nms, nint2, iint2, ipari, intbuf_tab, nodglob, iad_elem, fr_elem, fr_sec, fr_rby2, iad_rby2, fr_wall, inloc, iddl, partsav, fncont, ftcont, temp, err_thk_sh4, err_thk_sh3, irbe2, irbe3, lrbe2, lrbe3, fr_rbe2, fr_rbe3m, iad_rbe2, weight_md, fcluster, mcluster, xfem_tab, w, nv46, nercvois, nesdvois, lercvois, lesdvois, crkedge, indx_crk, xedge4n, xedge3n, stack, sph2sol, stifn, stifr, drape_q4, drape_t3, h3d_data, subset, igrnod, fcont_max, fncontp2, ftcontp2, ale_connectivity, glob_therm)