86 SUBROUTINE freform(IRUNN,IRFL,IRFE,H3D_DATA,FLAG_CST_AMS,DYNAIN_DATA,
87 . SENSORS,DT,OUTPUT,GLOB_THERM)
114#include "implicit_f.inc"
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 , 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,
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
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
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) :: CARTE,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'/
270 len_iusc1_fn=len_trim(iusc1_fn)
273 len_iusc2_fn=len_trim(iusc2_fn)
278 len_iusctmp_fn=len_trim(iusctmp_fn)
297 percent_addmass = zero
298 dt_stop_percent_addmass = zero
299 idt_percent_addmass = 0
305 IF (ierr1/=0)
GOTO 1000
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 IF(is_prevkeya_ncharkey == 1 .AND. 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
581 CALL ancmsg(msgid=316,anmode=aninfo,c1=
'/DTIX : PARAMETER DT_MAX MUST BE STRICTLY POSITIVE')
584 IF(dtmx == zero)dtmx=ep20
585 IF(dtmx /= ep20 )
THEN
587 CALL ancmsg(msgid=316,anmode=aninfo,c1=
'/DTIX : PARAMETER DT_INI MUST BE LOWER THAN DT_MAX')
600 IF(ikad(ikey)/=ikad(ikey+1))
THEN
602 110
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(49X,I10)',err=9990)nbc
605 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 110
612 IF(ikad(ikey)/=ikad(ikey+1))
THEN
614 140
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(49X,I10)',
618 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 140
624 IF(ikad(ikey)/=ikad(ikey+1))
THEN
635 IF(ikad(ikey)/=ikad(ikey+1))
THEN
636 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)k4
637 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
640 CALL wriusc2(ikad(ikey)+2,1,key0(ikey))
642 READ(iusc2,*,err=310,
END=320)TST_START ,tst_stop
644 310
READ(iusc2,*,err=320,
END=320)tst_start
654 IF(ikad(ikey)/=ikad(ikey+1))
THEN
656 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
657 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)k4
660 CALL wriusc2(ikad(ikey)+2,1,key0(ikey))
662 READ(iusc2,*)beta,period
664 istatg = -iabs(istatg)
665 IF (beta==zero) beta=one
667 betate = beta / period
675 IF(ikad(ikey)/=ikad(ikey+1))
THEN
680 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,A)',err=9990)key2
681 READ(iusc1,rec=ikad(ikey),fmt=
'(49X,I10)',err=9990) nbc
683 READ(iusc1,rec=ikad(ikey)+1,fmt=
'(A)',err=520)key3
684 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
685 IF (key2==
'FREQ_')
THEN
687 READ(iusc1,rec=ikad(ikey)+2,fmt=
'(A)',err=520)key2
688 CALL wriusc2(ikad(ikey)+2,1,key0(ikey))
690 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)k4
693 READ(iusc1,rec=ikad(ikey)+2,fmt=
'(A)',err=520)key2
694 CALL wriusc2(ikad(ikey)+2,1,key0(ikey))
697 READ(iusc2,*,err=510,
END=520)TST_START ,tst_stop
699 510
READ(iusc2,*,err=520,
END=520)tst_start
706 istatg = -iabs(istatg)
713 IF(ikad(ikey)/=ikad(ikey+1))
THEN
715 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
716 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)k4
717 IF(k4==1)ale%SUB%IALESUB=1
718 READ(iusc2,*)ale%SUB%DTFSUB,ale%SUB%DTMSUB
720 IF(ale%SUB%DTFSUB==zero)ale%SUB%DTFSUB=zep9
721 IF (ale%SUB%IALESUB==1)
THEN
722 CALL ancmsg(msgid=197,anmode=aninfo)
730 sensors%STOP_NSANIM = 0
732 sensors%STOP_NSSTAT = 0
733 sensors%STOP_NSOUTP = 0
734 sensors%STOP_NSABF = 0
735 sensors%STOP_NSH3D = 0
739 IF (ikad(ikey)/=ikad(ikey+1))
THEN
741 1150
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)',err=9990)key2,nbc
743 IF (key2==
'LSENS')
THEN
746 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)carte
747 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
749 READ(iusc2,*,err=9990,
END=9990) (SENSORS%STOP_TMP(N),N=1,NVAR(CARTE))
750 sensors%NSTOP = sensors%NSTOP +
nvar(carte)
754 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
755 READ(iusc2,*,err=148,
END=148)SENSORS%STOP_NSANIM,SENSORS%STOP_NSTH,SENSORS%STOP_NSSTAT,
756 . sensors%STOP_NSOUTP,sensors%STOP_NSABF,sensors%STOP_NSH3D,nsdynanin
759148
IF (iok_read == 0)
THEN
760 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
761 READ(iusc2,*,err=9990,
END=9990)SENSORS%STOP_NSANIM,SENSORS%STOP_NSTH,SENSORS%STOP_NSSTAT,
762 . sensors%STOP_NSOUTP,sensors%STOP_NSABF
766 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
767 READ(iusc2,*,err=150,
END=149)DEMXS,DMTMXS,DMNMXS,NTH,NANIM,nerr_posit
770 READ(iusc2,*,err=150,
END=150)DEMXS,DMTMXS,DMNMXS,NTH,nanim
773 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
774 READ(iusc2,*)demxs,dmtmxs,dmnmxs
778 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 1150
780 IF(dmtmxs==zero)dmtmxs=ep30
781 IF(dmnmxs==zero)dmnmxs=ep30
782 IF(demxs==zero) demxs =ep30
788 IF(ikad(ikey)/=ikad(ikey+1))
THEN
789 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
790 READ(iusc2,*,err=155,
END=154)
791 . demxk,dmtmxk,dmnmxk,nth,nanim,nerr_posit
794 READ(iusc2,*,err=155,
END=155)DEMXK,DMTMXK,DMNMXK,NTH,nanim
797 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
798 READ(iusc2,*)demxk,dmtmxk,dmnmxk
801 IF(dmtmxk==zero)dmtmxk=ep20
802 IF(dmnmxk==zero)dmnmxk=ep20
803 IF(demxk==zero) demxk =ep20
808 IF (mcheck == 0)
THEN
812 IF(ikad(ikey)/=ikad(ikey+1))
THEN
814 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,A4,2X,I5,1X,A1)',err=9990)ch4,irunn,chrun0(2:2)
815 IF(chrun0(2:2)/=
' ')chrun0(1:1)=
'_'
816 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
819 IF (got_input == 1)
THEN
826 IF (irunn /= runn)
THEN
827 WRITE(istdo,
'(A,A)')
' ** WARNING ** : RUN NUMBER FOUND IN ',
'/RUN CARD FROM INPUT FILE'
828 WRITE(istdo,
'(A)')
' RUN NUMBER IGNORED '
832 IF (irunn == 0) irunn = 1
835 CALL ancmsg(msgid=194,anmode=aninfo)
839 CALL ancmsg(msgid=195,anmode=aninfo)
849 IF(ikad(ikey)/=ikad(ikey+1))
THEN
850 READ(iusc1,rec=ikad(ikey)+1,fmt=
'(A)',err=9990)title
851 IF(title(1:1)==
'/')title=
' '
855 WRITE(iin,
'(2A,I2.2,A)')rootnam(1:rootlen),
'D',irunn,title
856 WRITE(chrun,
'(I4.4)')irunn
863 IF(ikad(ikey)/=ikad(ikey+1))
THEN
864 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,A)',err=9990)key2
865 IF(key2(1:4)==
'STOP') ineg_v = 0
876 IF(ikad(ikey)/=ikad(ikey+1))
THEN
878 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,A)',err=9990)key2
879 IF(key2(1:3)==
'OFF') idts6 = 0
900 glob_therm%IDT_THERM = 0
901 glob_therm%DTFACTHERM = zero
902 dt%BRICK_CST_DEFV_MIN = zero
903 dt%BRICK_CST_COL_MIN = zero
904 dt%BRICK_DEL_DEFV_MIN = zero
905 dt%BRICK_DEL_DEFV_MAX = zero
906 dt%BRICK_DEL_ASP_MAX = zero
907 dt%BRICK_DEL_COL_MIN = zero
909 IF(ikad(ikey)/=ikad(ikey+1))
THEN
911 160
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A)',err=9990)key2
912 IF(key2(1:4)==
'NODA')
THEN
913 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A)', err=9990)key2,key3
914 IF(key3(1:4)/=
'STOP' .AND. key3(1:3)/=
'DEL' .AND.
915 . key3(1:3)/=
'CST' .AND. key3(1:3)/=
'SET' .AND.
916 . key3(1:4)/=
'KILL' .AND. key3(1:3)/=
'LAG' .AND.
917 . key3(1:3)/=
'AMS' .AND. key3(1:3)/=
'ALE' )
THEN
918 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,I5)',err=9990)key2,k4
919 ELSEIF(key3(1:3)==
'DEL')
THEN
920 CALL ancmsg(msgid=246,anmode=aninfo,c1=
'/DT/NODA/DEL')
923 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,1X,I5)',err=9990)key2,key3,k4
925 ELSEIF(key2==
'AMS')
THEN
926 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,I5)',err=9990)key2,k4
927 ELSEIF(key2==
'CST_A')
THEN
929 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,I5)',err=9990)key2,k4
930 ELSEIF(key2==
'GLOB')
THEN
931 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,I5,1X,A)',err=9990)key2,k4,key5
932 ELSEIF(key2(1:4)==
'NODE')
THEN
933 CALL ancmsg(msgid=246,anmode=aninfo,c1=
'/DT/NODE')
936 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,1X,I5)',err=9990)key2,key3,k4
940 IF(key2==
'INTER'.AND.key3(1:2)==
'V5')
THEN
942 ELSEIF(key2==
'INTER'.AND.key3(1:2)==
'V4')
THEN
944 ELSEIF(key2==
'SMSTR'.AND.key3(1:2)==
'V4')
THEN
946 ELSE IF(key2==
'THERM')
THEN
947 glob_therm%IDT_THERM = 1
948 glob_therm%DTFACTHERM = zep9
949 IF(ikad(ikey)+k/=ikad(ikey+1))
THEN
950 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(1X,A)',err=9990)key4
951 IF(key4(1:2)/=
'DT')
THEN
952 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
953 READ(iusc2,*,err=9990,
END=9990) GLOB_THERM%dtfactherm
954 IF (glob_therm%DTFACTHERM == zero) dtfaca = zep9
958 ELSE IF(key2(1:4)==
'IGEO')
THEN
959 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
960 READ(iusc2,*,err=9990,
END=9990)DTFACA,dtmina
962 IF(key3(1:4)==
'ELEM')
THEN
964 ELSEIF(key3(1:4)==
'LCAR')
THEN
973 ELSEIF(key2(1:4)==
'GLOB')
THEN
974 WRITE(6,*)
"/DT/GLOB is a deprecated feature"
977 IF(key3(1:3)==
'ALE')
THEN
978 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
980 ale%GLOBAL%I_DT_NODA_ALE_ON_KEY = 0
981 READ(iusc2,*,err=9990,
END=9990)iflag
982 IF(iflag==1)ale%GLOBAL%I_DT_NODA_ALE_ON_KEY = 1
985 ELSEIF (key2(1:5)==
'CST_A')
THEN
987 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
988 READ(iusc2,*,err=9001,
END=9001) DTFACA,DTMINA,dtfac_ams
991 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
992 READ(iusc2,*,err=9990,
END=9990) DTFACA,dtmina
994 IF (dtfaca == zero) dtfaca = zep9
995 IF (dtfac_ams == zero) dtfac_ams = zep67
996 ELSEIF(key2(1:5) ==
'FVMBA')
THEN
1001 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1002 READ(iusc2,
'(A)',err=9990,
END=9990)line
1003 READ(line,*,iostat=ierr1)dtfaca,dtmina,lambda,l_type
1008 READ(line,*,iostat=ierr1)dtfaca,dtmina,lambda
1014 READ(line,*,err=9990,
END=9990)DTFACA,dtmina
1018 IF(key3(1:1)==
'2')
THEN
1020 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1021 READ(iusc2,
'(A)',err=9990,
END=9990)line
1022 READ(line,*,err=9990,
END=9990)id_bag
1024 CALL ancmsg(msgid=299,anmode=aninfo,i1=id_bag)
1031 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1032 READ(iusc2,*,err=9003,
END=9003)DTFACA,DTMINA,percent_addmass
1034 IF (percent_addmass > zero) idt_percent_addmass = 1
1037 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1038 READ(iusc2,*,err=9990,
END=9990) DTFACA,dtmina
1043 IF(key3(1:4)==
'STOP')
THEN
1045 IF((key2(1:4)==
'NODA').AND.(idt_percent_addmass == 1))
THEN
1048 idt_percent_addmass = 2
1049 dt_stop_percent_addmass = dtmina
1051 ELSEIF(key3(1:3)==
'DEL')
THEN
1053 ELSEIF(key3(1:3)==
'CST')
THEN
1055 IF((key2(1:4)==
'NODA'.OR.key2(1:5)==
'INTER').AND.key3(1:4)/=
'CST1')idt=8
1056 ELSEIF(key3(1:3)==
'SET')
THEN
1058 ELSEIF(key3(1:4)==
'KILL')
THEN
1060 ELSEIF(key3(1:3)==
'LAG')
THEN
1062 ELSEIF(key3(1:3)==
'AMS')
THEN
1064 ELSEIF(key3(1:3)==
'COD')
THEN
1070 IF(key2==
'BRICK')
THEN
1074 IF(key3(1:3)==
'CST'.AND.k4==1)
THEN
1075 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1076 READ(iusc2,*,err=1001,
END=1001)DT%BRICK_CST_COL_MIN,
1077 . dt%BRICK_CST_DEFV_MIN
1080 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1081 READ(iusc2,*,err=9990,
END=9990)DT%brick_cst_col_min
1085 IF(key3(1:3)==
'DEL'.AND.k4==1)
THEN
1086 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1087 READ(iusc2,*,err=1003,
END=1003)DT%BRICK_DEL_COL_MIN,
1088 . dt%BRICK_DEL_DEFV_MIN,
1089 . dt%BRICK_DEL_ASP_MAX,
1090 . dt%BRICK_DEL_DEFV_MAX
1093 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1094 READ(iusc2,*,err=9990,
END
1099 ELSEIF(key2(1:4)==
'QUAD')
THEN
1103 ELSEIF(key2==
'SHELL')
THEN
1107 ELSEIF(key2==
'SH_3N'.OR.key2(1:4)==
'SH3N')
THEN
1111 ELSEIF(key2==
'TRUSS')
THEN
1115 ELSEIF(key2(1:4)==
'BEAM')
THEN
1119 ELSEIF(key2==
'SPRIN')
THEN
1123 ELSEIF(key2==
'AIRBA')
THEN
1127 ELSEIF(key2==
'INTER')
THEN
1128 IF(intdt==0.and.(idt/=3.and.idt/=8.and.idt/=7))
THEN
1135 IF(nodadt==0.AND.(idt==3.OR.idt==8))
THEN
1146 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1147 READ(iusc2,*,err=3001,
END=3001)TOL_SMS,m_vs_sms
1150 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1151 READ(iusc2,*,err=9990,
END=9990)tol_sms
1156 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1157 READ(iusc2,*,err=9990,
END=9990)NSMSPCG,ncprisms
1161 ELSEIF(key2(1:4)==
'NODA' .AND. key3(1:3)/=
'ALE')
THEN
1167 IF ((idt == 8).OR.(idt == 3)) dt_ctrl_compatibility(1) = 1
1169 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1170 READ(iusc2,*,err=9990,
END=9990)IDTGR(11)
1171 idtgr(11) = -idtgr(11)
1182 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1183 READ(iusc2,*,err=100,
END=100)IDTGRX,tol_sms
1187 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1188 READ(iusc2,*,err=9990,
END=9990)tol_sms
1193 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1194 READ(iusc2,*,err=9990,
END=9990)NSMSPCG,ncprisms
1199 ELSEIF(key2(1:5)==
'SPCEL'.OR.key2(1:5)==
'SPHCE')
THEN
1203 ELSEIF(key2(1:5)==
'FVMBA')
THEN
1204 IF(key3(1:1)==
'0')
THEN
1208 idtmin(52) = id_dt_option
1209 ELSEIF(key3(1:1)==
'1')
THEN
1213 idtmin(52) = id_dt_option
1214 ELSEIF(key3(1:1)==
'2')
THEN
1221 idtmin(52) = id_dt_option
1224 lambda =
max(zero, lambda)
1225 fvmbag_l_type = int(l_type)
1226 fvmbag_l_type =
min(fvmbag_l_type,2)
1227 fvmbag_l_type =
max(0,fvmbag_l_type)
1229 IF(id_dt_option == 0)num_opt_dt_fvmbag_0 = num_opt_dt_fvmbag_0 + 1
1230 IF(id_dt_option == 1)num_opt_dt_fvmbag_1 = num_opt_dt_fvmbag_1 + 1
1231 IF(id_dt_option == 2)num_opt_dt_fvmbag_2 = num_opt_dt_fvmbag_2 + 1
1232 IF(id_dt_option == 3)num_opt_dt_fvmbag_3 = num_opt_dt_fvmbag_3 + 1
1233 num_opt_dt_fvmbag = num_opt_dt_fvmbag + 1
1234 fvmbag_input_options(num_opt_dt_fvmbag)%CFL_COEF = dtfaca
1235 fvmbag_input_options(num_opt_dt_fvmbag)%DTMIN = dtmina
1236 fvmbag_input_options(num_opt_dt_fvmbag)%LAMBDA = lambda
1237 fvmbag_input_options(num_opt_dt_fvmbag)%ID_BAG = id_bag
1238 fvmbag_input_options(num_opt_dt_fvmbag)%L_type = fvmbag_l_type
1239 fvmbag_input_options(num_opt_dt_fvmbag)%ID_DT_OPTION = id_dt_option
1242 ELSEIF(key2(1:3)==
'AMS')
THEN
1243 dt_ctrl_compatibility(2) = 1
1252 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1253 READ(iusc2,*,err=2001,
END=2001)TOL_SMS,m_vs_sms
1256 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1257 READ(iusc2,*,err=9990,
END=9990)tol_sms
1262 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1263 READ(iusc2,*,err=9990,
END=9990)NSMSPCG,ncprisms
1266 ELSEIF(key2(1:5)==
'CST_A')
THEN
1268 dt_ctrl_compatibility(3) = 1
1286 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1287 READ(iusc2,*,err=2011,
END=2011)TOL_SMS,m_vs_sms
1290 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1291 READ(iusc2,*,err=9990,
END=9990)tol_sms
1296 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1297 READ(iusc2,*,err=9990,
END=9990)NSMSPCG,ncprisms
1300 ELSEIF(key2(1:3)==
'ALE'.OR. key2(1:4)==
'EULER')
THEN
1301 dtfac1(102) = dtfaca
1302 dtmin1(102) = dtmina
1304 If(ale%GLOBAL%IDT_ALE==0)ale%GLOBAL%IDT_ALE = 1
1308 ale%GLOBAL%IDT_ALE = -1
1312 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 160
1316 IF (dt_ctrl_compatibility(3) == 1)
THEN
1317 IF ((dt_ctrl_compatibility(1)+dt_ctrl_compatibility(2)) > 0)
THEN
1318 CALL ancmsg(msgid=279,anmode=aninfo,c1=key0(ikey))
1323 IF (glob_therm%IDT_THERM == 1.AND.idtmins/=0)
THEN
1324 CALL ancmsg(msgid=301,anmode=aninfo,c1=key0(ikey))
1337 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1339 161
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,1X,I5)', err=9990)key2,key3,k4
1341 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1342 READ(iusc2,*,err=9990,
END=9990)DTFACA,dtmina
1344 IF(key3(1:4)==
'STOP')
THEN
1346 ELSEIF(key3(1:3)==
'DEL')
THEN
1348 ELSEIF(key3(1:3)==
'CST')
THEN
1350 ELSEIF(key3(1:4)==
'KILL')
THEN
1355 IF(key2==
'SHELL')
THEN
1360 ELSEIF(key2==
'BRICK')
THEN
1365 IF(key3(1:3)==
'CST'.AND.k4==1)
THEN
1366 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1367 READ(iusc2,*,err=1101,
END=1101)DT%BRICK_CST_COL_MIN,
1368 . dt%BRICK_CST_DEFV_MIN
1371 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1372 READ(iusc2,*,err=9990,
END=9990)DT%brick_cst_col_min
1376 IF(key3(1:3)==
'DEL'.AND.k4==1)
THEN
1377 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1378 READ(iusc2,*,err=1103,
END=1103)DT%BRICK_DEL_COL_MIN,
1379 . dt%BRICK_DEL_DEFV_MIN
1380 . dt%BRICK_DEL_ASP_MAX,
1381 . dt%BRICK_DEL_DEFV_MAX
1384 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
1385 READ(iusc2,*,err=9990,
END=9990)DT%BRICK_DEL_COL_MIN,
1386 . dt%BRICK_DEL_DEFV_MIN
1396 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 161
1398 CALL init_idel_brick(dt)
1404 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1405 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)ittyp
1406 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1407 READ(iusc2,*,err=9990,
END=9990)dthis0
1417 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1418 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(1)
1419 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1420 READ(iusc2,*,err=9990,
END=9990)DTHIS01(1)
1423 output%TH%THIS1(1)= ep30
1430 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1431 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(2)
1432 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1433 READ(iusc2,*,err=9990,
END=9990)DTHIS01(2)
1436 output%TH%THIS1(2)=ep30
1443 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1444 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(3)
1445 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1446 READ(iusc2,*,err=9990,
END=9990)DTHIS01(3)
1449 output%TH%THIS1(3)=ep30
1456 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1457 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(4)
1458 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1459 READ(iusc2,*,err=9990,
END=9990)DTHIS01(4)
1462 output%TH%THIS1(4)=ep30
1469 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1470 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(5)
1471 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1472 READ(iusc2,*,err=9990,
END=9990)DTHIS01(5)
1475 output%TH%THIS1(5)=ep30
1482 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1483 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(6)
1484 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1485 READ(iusc2,*,err=9990,
END=9990)DTHIS01(6)
1488 output%TH%THIS1(6)=ep30
1495 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1496 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(7)
1497 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1498 READ(iusc2,*,err=9990,
END=9990)DTHIS01(7)
1501 output%TH%THIS1(7)=ep30
1508 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1509 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(8)
1510 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1511 READ(iusc2,*,err=9990,
END=9990)DTHIS01(8)
1514 output%TH%THIS1(8)=ep30
1521 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1522 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)aform(9)
1523 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1524 READ(iusc2,*,err=9990,
END=9990)DTHIS01(9)
1527 output%TH%THIS1(9)=ep30
1535 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1537 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
1539 IF(key2(1:4)==
'VERS')
THEN
1540 READ(key3,
'(I4)')th_vers
1541 ELSEIF(key2(1:5)==
'TITLE')
THEN
1546 IF (th_vers<40)
THEN
1547 CALL ancmsg(msgid=198,anmode=aninfo)
1551 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 1160
1558 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1559 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5,X,I5)',err=9990)ncpri0,ncpri_head0
1570 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1571 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,A)',err=9990) key2
1574 IF(key2(1:3)==
'OFF')
THEN
1580 ELSEIF(restart_file==0)
THEN
1591 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,I5)',err=9990)multirest
1592 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1593 READ(iusc2,*,err=9990,
END=9990)ncrst
1596 multirest=
min(multirest,26)
1606 WRITE(iin,
'(1P4E16.9,I8,I10,2I8)')tstop0,dthis0,dtfac0,dtmin0,ncpri0,ncrst,multirest,ncpri_head0
1607 WRITE(iin,
'(1P5E16.9)')(dthis01(i), i=1,5)
1608 WRITE(iin,
'(1P4E16.9)')(dthis01(i+5), i=1,4)
1611 IF(ittyp==0) ittyp=4
1615 IF (aform(i)==0) aform(i)=4
1636 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1637 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(1X,A,1X,A,1X,A)',err=9990)key1,key2,key3
1638 IF(key1(1:3) /=
'ALE')
THEN
1643 IF(key2(1:4)==
'GRID')
THEN
1645 stringale(1:5)=key3(1:5)
1648 stringale(1:5)=key2(1:5)
1650 CALL wriusc2(ikad(ikey)+1,1,key0(ikey))
1654 IF(stringale(1:5)==
'DONEA'.OR.stringale(1:1)==
'0')
THEN
1655 num_ale_grid = num_ale_grid + 1
1657 READ(iusc2,*,err=9990,
END=9990)ALP,GAM,A1,A2,A3,vm
1661 ELSEIF(stringale(1:4)==
'DISP'.OR.stringale(1:1)==
'1')
THEN
1662 num_ale_grid = num_ale_grid + 1
1664 READ(iusc2,*,err=9990,
END=9990)ALP,vm
1666 a1=one; a2=one; a3=one;
1670 ELSEIF(stringale(1:5)==
'SPRIN'.OR.stringale(1:1)=='2
')THEN
1671 NUM_ALE_GRID = NUM_ALE_GRID + 1
1673 READ(IUSC2,*,ERR=9990,END=9990)ALP,GAM,A1,A2,VM
1675 !---------------------------------------!
1676 ! '/ale/grid/zero
' !
1677 !---------------------------------------!
1678 ELSEIF(StringALE(1:4)=='zero.OR.
'StringALE(1:1)=='3
')THEN
1679 NUM_ALE_GRID = NUM_ALE_GRID + 1
1681 !---------------------------------------!
1682 ! '/ale/grid/standard
' !
1683 !---------------------------------------!
1684 ELSEIF(StringALE(1:5)=='stand.OR.
'StringALE(1:1)=='4
')THEN
1685 NUM_ALE_GRID = NUM_ALE_GRID + 1
1687 READ(IUSC2,*,ERR=9990,END=9990)ALP,GAM,A1,A2
1690 !---------------------------------------!
1691 ! '/ale/grid/laplacian
1693 ELSEIF(stringale(1:5)==
'LAPLA')
THEN
1694 num_ale_grid = num_ale_grid + 1
1696 READ(iusc2,*,err=9990,
END=9990)ALP,a1
1697 IF(alp==zero)alp=one
1698 IF(nint(a1)<=zero)a1=one
1699 IF(a2/=one .AND. a2/=two)a2=one
1703 ELSEIF(stringale(1:5)==
'VOLUM')
THEN
1704 num_ale_grid = num_ale_grid + 1
1709 ELSEIF(stringale(1:5)==
'FLOW-')
THEN
1710 num_ale_grid = num_ale_grid + 1
1712 READ(iusc2,*,err=9990,
END=9990)A1,alp
1713 CALL wriusc2(ikad(ikey)+2,1,key0(ikey))
1714 READ(iusc2,*,err=9990,
END=9990)A2,gam
1715 IF(alp == zero)alp = one
1716 IF(gam == zero)gam = one
1717 IF(int(a1) == 0)a1 = 1
1718 IF(int(a1) /= 1 .AND. int(a1) /= -1)a1 = 1
1719 IF(int(a2) == 0)a2 = 1
1720 IF(int(a2) /= 1 .AND. int(a2) /= -1)a2 = 1
1724 ELSEIF(stringale(1:5)==
'LAGRA')
THEN
1725 num_ale_grid = num_ale_grid + 1
1733 WRITE(iin,
'(1P6E10.3)')alp,gam,a1,a2,a3,vm
1736 IF(iale_grid_form /= -1)
THEN
1737 ale%GRID%NWALE_ENGINE=iale_grid_form
1739 ale%GRID%NWALE_ENGINE=-1
1742 IF(num_ale_grid > 1)
THEN
1743 CALL ancmsg(msgid=263,anmode=aninfo)
1756 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1757 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,31X,I10)',err=9990)key2,key3,nbc
1761 IF (key2(1:5) ==
'LOWMA')
THEN
1767 ale%GLOBAL%HLLC_LOWMACH = lowmach_opt
1789 IF(ikad(ikey)/=ikad(ikey+1))
THEN
1791 200
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,31X,I10)',err=9990)key2,key3,nbc
1793 IF(key3(1:3)/=
'NOD'.AND.key3(1:3)/=
'SEG')
READ(key3,fmt=
'(I5)',err=9990)k3
1797 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)carte
1803 IF(key2==
'INTER'.AND.key3(1:3)==
'NOD')
THEN
1805 ELSEIF(key2==
'INTER'.AND.key3(1:3)==
'SEG')
THEN
1807 ELSEIF(key2==
'INTER')
THEN
1809 ELSEIF(key2==
'BRICK')
THEN
1811 ELSEIF(key2==
'QUAD ')
THEN
1813 ELSEIF(key2==
'SHELL')
THEN
1815 ELSEIF(key2==
'TRUSS')
THEN
1817 ELSEIF(key2==
'BEAM ')
THEN
1819 ELSEIF(key2==
'SPRIN')
THEN
1821 ELSEIF(key2==
'SH_3N'.OR.key2(1:4)==
'SH3N')
THEN
1823 ELSEIF(key2==
'SPCEL'.OR.key2==
'SPHCE')
THEN
1825 ELSEIF(key2==
'ALE ')
THEN
1827 ELSEIF(key2==
'EULER')
THEN
1829 ELSEIF(key2==
'THERM')
THEN
1831 ELSEIF(key2==
'PART ')
THEN
1832 npartof = npartof+nof
1836 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 200
1838 WRITE(iin,
'(10I8)')nintof,nelsof,nelqof,nelcof,neltof,nelpof,nelrof,neltgof,nintnof,nintsof
1839 WRITE(iin,
'(I8)')nsphof
1840 WRITE(iin,
'(4I8)')naleof,neulerof,nthermof,npartof
1849 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1850 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)', err=9990)key2,nbc
1851 IF(key2==
'TRA ')
THEN
1853 ELSEIF(key2==
'ROT ')
THEN
1855 ELSEIF(key2==
'ALE ')
THEN
1863 WRITE(iin,
'(2I8)')nrlink,nalelk
1871 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1872 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,31X,I10)',err=9990)key2,key3,nbc
1873 IF(key2(1:5)==
'LINK ')
THEN
1874 IF(key3(1:5)==
'VEL ')
THEN
1876 ELSEIF(key3(1:5)==
'OFF ')
THEN
1878 ELSEIF(key3(1:5)==
'ON ')
THEN
1886 WRITE(iin,
'(I8)')nalelink
1892 ale%UPWIND%UPW_UPDATE = 0
1893 ale%UPWIND%UPWMG2 = zero
1894 ale%UPWIND%UPWOG2 = zero
1895 ale%UPWIND%UPWSM2 = zero
1896 ale%UPWIND%CUPWM = one
1897 ale%UPWIND%I_SUPG_ON_OFF = 0
1902 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1903 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,31X,I10)',err=9990)key2,key3,nbc
1907 IF(key2(1:4)==
'SUPG')
THEN
1908 IF(key3(1:3)==
'OFF')
THEN
1910 ale%UPWIND%UPW_UPDATE = 0
1911 ale%UPWIND%I_SUPG_ON_OFF = 2
1912 ELSEIF(key3(1:5)==
'ON')
THEN
1914 ale%UPWIND%UPW_UPDATE = 0
1915 ale%UPWIND%I_SUPG_ON_OFF = 1
1920 ale%UPWIND%UPW_UPDATE = 0
1925 ale%UPWIND%UPW_UPDATE = 0
1926 ale%UPWIND%I_SUPG_ON_OFF = 0
1935 alemuscl_param%I_MUSCL_OFF = 0
1938 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1939 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,31X,I10)',err=9990)key2,key3,nbc
1943 IF (key2(1:5) ==
'MUSCL')
THEN
1944 IF(key3(1:3)==
'OFF')
THEN
1945 alemuscl_param%I_MUSCL_OFF = 1
1946 ELSEIF(key3(1:2)==
'ON')
THEN
1947 alemuscl_param%I_MUSCL_OFF = 0
1948 alemuscl_param%IALEMUSCL = 1
1949 alemuscl_param%BETA = two
1966 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1967 READ (iusc1, rec = ikad(ikey) + k, fmt =
'(7X,A,37X,I10)') key2, nbc
1968 IF (key2(1:2) ==
'ON')
THEN
1969 nbaleon = nbaleon + 1
1970 nbpartaleon = nbpartaleon + nbc
1972 IF (key2(1:3) ==
'OFF')
THEN
1973 nbaleoff = nbaleoff + 1
1974 nbpartaleoff = nbpartaleoff + nbc
1978 WRITE (iin,
'(I8, I8)') nbpartaleon, nbpartaleoff
1985 ale%GLOBAL%ISFINT = 0
1986 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
1988 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A32)',err=9990)stringale
1989 IF(stringale(1:5)/=
'SOLVE')
EXIT
1990 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(13X,A32)',err=9990)stringale
1991 IF(stringale(1:4)/=
'FINT')
EXIT
1992 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)line
1993 READ(line,fmt=
'(7X,A5,1X,A5,1X,I5)',err=9990)key2,key3,iform
1995 ale%GLOBAL%ISFINT = 2
1996 ELSEIF(iform==1)
THEN
1997 ale%GLOBAL%ISFINT = 1
1998 ELSEIF(iform==3)
THEN
1999 ale%GLOBAL%ISFINT = 3
2002 ale%GLOBAL%ISFINT = 1
2012 DO WHILE (ikad(ikey) + k /= ikad(ikey + 1))
2014 READ (iusc1, rec = ikad(ikey) + k, fmt =
'(A32)', err=998) keya
2015 READ (iusc1, rec = ikad(ikey) + k, fmt =
'(X,A5,X,A5)', err=998) key1 ,key2
2016 IF(key2(1:5)==
' ')key2(1:1)=
'0'
2017 IF(key1(1:5)==
'ALE ')
THEN
2018 DO inum=1,num_ale_key2
2019 IF (key2(1:5) == keyale(inum))
THEN
2024 IF(lfound.EQV. .false.)
THEN
2025 CALL ancmsg(msgid=51,anmode=aninfo,c1=keya(1:12))
2040 IF(ikad(ikey)/=ikad(ikey+1))
THEN
2042 400
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)',err=9990)key2,nbc
2045 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)carte
2047 nubcs1=nubcs1+
nvar(carte)
2050 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 400
2054 IF(ikad(ikey)/=ikad(ikey+1))
THEN
2056 420
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)',err=9990)key2,nbc
2059 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)carte
2061 nubcs2=nubcs2+
nvar(carte)
2064 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 420
2066 num_bcs=nubcs1+nubcs2
2074 IF(ikad(ikey)/=ikad(ikey+1))
THEN
2076 440
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,7X,I5,25X,I10)'
2078 IF (key2(1:4)==
"AXIS")
THEN
2085 READ(iusc1,rec=ikad(ikey)+k,fmt
'(A)',err=9990)carte
2086 !
nvar(carte) should be =1
2088 ninivt=ninivt+(nbc-m)*2*
nvar(carte)
2091 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)carte
2093 ninivt=ninivt+(2-k3)*
nvar(carte)
2097 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 440
2099 WRITE(iin,
'(2I8)')num_bcs,ninivt/2
2111 IF(ikad(ikey)/=ikad(ikey+1))
THEN
2114 500
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)',err=9990)key2,nbc
2117 IF(key2==
'FOP')
THEN
2119 IF (intch_ifop/=0)
THEN
2123 nbtopfop = nbtopfop + 1
2125 ELSEIF(key2==
'NOFOP')
THEN
2127 IF (intch_ifop/=0)
THEN
2131 nbtopfop = nbtopfop + 1
2133 ELSEIF(key2==
'TOP')
THEN
2135 IF (intch_itop/=0)
THEN
2139 nbtopfop = nbtopfop + 1
2141 ELSEIF(key2==
'NOTOP')
THEN
2143 IF (intch_itop/=0)
THEN
2147 nbtopfop = nbtopfop + 1
2150 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 500
2160 IF(ikad(ikey)/=ikad(ikey+1))
THEN
2162 550
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)',err=9990)key2,nbc
2166 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)',err=9990)carte
2173 ELSEIF(key2==
'OFF')
THEN
2178 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 550
2181 WRITE(iin,
'(10I8)')nintch-nbtopfop,nrbyon,nrbyof
2188 IF (ikad(ikey)/=ikad(ikey+1))
THEN
2190 650
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,37X,I10)',err=9990) key2,nbc
2191 IF(key2/=
'ON' .AND. key2/='on2.AND.
' KEY2/='mpp
' )THEN
2193 ELSEIF(KEY2=='on2
')THEN
2195 ELSEIF(KEY2=='mpp
')THEN
2200 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(a)
',ERR=9990) CARTE
2203 IF(IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 650
2211 IF (IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2213 670 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(7x,a,37x,i10)
',ERR=9990) KEY2,NBC
2216 ELSEIF(KEY2=='on
')THEN
2218 !initial connection with rad2rad
2219 IF (ISPMD==0) CALL CONNECTION_SOCK_INIT_C(SOCK0)
2223 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(a)
',ERR=9990) CARTE
2226 IF(IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 670
2233 ViperCoupling = .false.
2234 IF (IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2236 680 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(7x,a,37x,i10)
',ERR=9990) KEY2,NBC
2238 ViperCoupling = .true.
2242 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(a)
',ERR=9990) CARTE
2245 IF(IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 680
2252 GLOBAL_INTERFACE_SORTING_ALGO = 1
2253 IF (IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2255 700 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(7x,a,37x,i10)
',ERR=9990) KEY2,NBC
2256 IF(KEY2=='sort1
') THEN
2257 GLOBAL_INTERFACE_SORTING_ALGO = 1
2258 ELSEIF(KEY2=='sort2
') THEN
2259 GLOBAL_INTERFACE_SORTING_ALGO = 2
2260 ELSEIF(KEY2=='sort3
') THEN
2261 GLOBAL_INTERFACE_SORTING_ALGO = 0
2264 IF(IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 700
2274 IF (IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2276 750 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(7x,a,37x,i10)
',ERR=9990) KEY2,NBC
2279 CALL WRIUSC2(IKAD(IKEY)+1,1,KEY0(IKEY))
2280 READ(IUSC2,*) TPSENG
2281 ELSEIF(KEY2=='pread
')THEN
2283 ELSEIF(KEY2=='ddwst
')THEN
2291 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(a)
',ERR=9990) CARTE
2294 IF(IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 750
2303 IF(IKAD(IKEY)/=IKAD(IKEY+1))THEN
2305 770 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(101x,i10)
',ERR=9990) NBC
2306 IF (NBC == 2) IDAMP0=1
2309 IF(IKAD(IKEY)+K/=IKAD(IKEY+1))GO TO 770
2311 WRITE(IIN,'(i8)
')N_DAMP
2318 IF (IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2320 780 CALL WRIUSC2(IKAD(IKEY)+1,1,KEY0(IKEY))
2321 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(49x,i10)
',ERR=9990) NBC
2324 IF (IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 780
2326 WRITE(IIN,'(i8)
')NFXINP
2334 IF (IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2336 790 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(7x,a,37x,i10)
',ERR=9990)KEY2,NBC
2340 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(a)
',ERR=9990)CARTE
2346 IF(KEY2/='off
') CALL ERRMSG(KEY2)
2347 IF(IKAD(IKEY)+K/=IKAD(IKEY+1)) GOTO 790
2349 WRITE(IIN,'(2i8)
')NEIGOFF, NEOFF
2357 IF(IKAD(IKEY)/=IKAD(IKEY+1)) THEN
2359 810 READ(IUSC1,REC=IKAD(IKEY)+K,FMT='(7x,a5,37x,i10)
',ERR=9990)KEY2, NBC
2361 IF (KEY2=='remes
') NFVMESH=NFVMESH+1
2362 IF (KEY2=='modif
') NFVMODI=NFVMODI+1
2363 IF (IKAD(IKEY)+K/=IKAD(IKEY+1)) GO TO 810
2365 WRITE(IIN,'(2i8)
')NFVMESH,NFVMODI
2372 IF(IKAD(IKEY)/=IKAD(IKEY+1))THEN
2374 READ(IUSC1,REC=IKAD(IKEY),FMT='(7x,i5)
',ERR=9990)NITERP
2375 IF(NITERP == 0)NITERP=1
2384 IF(IKAD(IKEY)/=IKAD(IKEY+1))THEN
2393 IF(IKAD(IKEY)/=IKAD(IKEY+1))THEN
2394 READ(IUSC1,REC=IKAD(IKEY),FMT='(7x,a)
',ERR=9990)KEY2
2395 IF(KEY2(1:5)=='reset.AND..AND.
'IRUNN>1MCHECK==0) IMASSI = 1
2404 IF (IKAD(IKEY) /= IKAD(IKEY+1)) THEN
2405 READ(IUSC1,REC=IKAD(IKEY),FMT='(7x,a,37x,i10)
',ERR=9990) KEY2,NBC
2406 IF (KEY2(1:5)=='reset
') THEN
2410 READ(IUSC1,REC=IREC+I-1,FMT='(a)
',ERR=9990)CARTE
2411 NBSENS = NBSENS + NVAR(CARTE)
2413 IF (NBSENS == 0) THEN
2414 SENSORS%NRESET = SENSORS%NSENSOR
2416 SENSORS%NRESET = NBSENS
2417 ALLOCATE(SENSORS%RESET(NBSENS))
2420 READ(IUSC1,REC=IREC+I-1,FMT='(a)
',ERR=9990)CARTE
2421 CALL WRIUSC2(IREC+I-1,1,KEY0(IKEY))
2422 READ(IUSC2,*,ERR=9990,END=9990)
2423 . (SENSORS%RESET(J+NBSENS),J=1,NVAR(CARTE))
2424 NBSENS = NBSENS + NVAR(CARTE)
2433 CALL FREDLI7(IKAD(0),KEY0,KDELIN)
2438 CALL FREDLI(IKAD(0),KEY0,KDEL,NDEL)
2443 CALL RDELE(NDEL,'brick
',IKAD(KDEL),KEY0(IKEY))
2444 CALL RDELE(NDEL,'quad
',IKAD(KDEL),KEY0(IKEY))
2445 CALL RDELE(NDEL,'shell
',IKAD(KDEL),KEY0(IKEY))
2446 CALL RDELE(NDEL,'truss
',IKAD(KDEL),KEY0(IKEY))
2447 CALL RDELE(NDEL,'beam
',IKAD(KDEL),KEY0(IKEY))
2448 CALL RDELE(NDEL,'sprin
',IKAD(KDEL),KEY0(IKEY))
2449 CALL RDELE(NDEL,'sh_3n',ikad(kdel),key0(ikey))
2450 CALL rdele(ndel,
'SH3N ',ikad(kdel),key0(ikey))
2451 CALL rdele(ndel,
'SPCEL',ikad(kdel),key0(ikey))
2452 CALL rdele(ndel,
'SPHCE',ikad(kdel
2453 CALL rdele(ndel,
'PART ',ikad(kdel
2458 CALL frelnk(ikad(0),key0,kvel,nrlink,vel_sk_fr)
2463 IF(nalelk/=0)
CALL fralnk (ikad(0),key0,kvel,nalelk)
2464 IF(nalelink/=0)
CALL fralnk2(ikad(0),key0,kale,nalelink)
2470 IF (nbaleon + nbaleoff /= 0)
CALL fraleonoff(ikad(0), key0, kale, nbaleon + nbaleoff)
2475 CALL frebcs(ikad(0),key0,kbcs,kbcsr,nbcs1,nbcs2,bcs_sk_fr)
2480 CALL freint(ikad(0),key0,kinter,nintch,invers,intch_ifop,intch_itop)
2485 CALL frerbo(ikad(0),key0,krbody,nrbynf)
2491 IF(nsflsw/=0)
CALL freflw(ikad(0),key0,kflsec,nsflsw,ntflsw)
2494 CALL ancmsg(msgid=201,anmode=aninfo)
2501 CALL frefunc(ikad(0),key0,kfunc,nfct)
2506 CALL freiniv(ikad(0),key0,kiniv,niniv)
2511 CALL freanim(output,ikad(0),key0,kanim,sensors)
2515 CALL freoutp(ikad(0),key0,koutp,sensors)
2525 CALL frenois(ikad(0),key0,knoise)
2534 CALL freupwm(ikad(0),key0,kupwm)
2543 IF(ikad(ikey)/=ikad(ikey+1))
THEN
2544 READ(iusc1,rec=ikad(ikey),fmt=
'(7X,A,1X,I5)',err=9990)key2,k4
2548 ELSEIF(key2==
'ON')
THEN
2551 ELSEIF(key2==
'FULL')
THEN
2554 ELSEIF(key2==
'SYNC')
THEN
2557 ELSEIF(key2==
'MAT')
THEN
2569 ale%GLOBAL%INCOMP = 0
2571 IF(ikad(ikey)/=ikad(ikey+1))
THEN
2578 IF(imadcpl/=0)
CALL frecpl(ikad,key0,kmadym)
2583 CALL fredamp(ikad(0),key0,kdamp,n_damp)
2589 CALL freimpl(ikad(0),key0,kimpl)
2594 CALL frefxinp(ikad(0),key0,kfxinp,nfxinp)
2599 CALL freeig(ikad(0),key0,keig,neigoff)
2609 CALL frestat(ikad(0),key0,kstatf,sensors,output)
2614 CALL fredynain(ikad(0),key0,kdynain,dynain_data)
2622 CALL freabf(ikad(0),key0,kabf,abfile,nabfile,1)
2623 CALL freabf(ikad(0),key0,kaabf,abfile,nabfile,2)
2624 CALL freabf(ikad(0),key0,kbabf,abfile,nabfile,3)
2625 CALL freabf(ikad(0),key0,kcabf,abfile,nabfile,4)
2626 CALL freabf(ikad(0),key0,kdabf,abfile,nabfile,5)
2627 CALL freabf(ikad(0),key0,keabf,abfile,nabfile,6)
2629 CALL freabf(ikad(0),key0,kgabf,abfile,nabfile,8)
2630 CALL freabf(ikad(0),key0,khabf,abfile,nabfile,9)
2631 CALL freabf(ikad(0),key0,kiabf,abfile,nabfile,10)
2632 IF (nabfile/=0 .AND. abfile(1) == 0)
THEN
2633 nabfile = nabfile + 1
2634 abfile(1) = abfile(1) + 1
2641 CALL frethermal(ikad(0),key0,kthermal,glob_therm)
2646 CALL h3d_ini(h3d_data,kh3d,nslash)
2647 CALL h3d_read(ikad(0),key0,kh3d,nslash,h3d_data,sensors)
2658 DO WHILE(ikad(ikey)+k/=ikad(ikey+1))
2659 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(7X,A,1X,A,1X,A,1X,A,19X,I10)',err=9990)key2
2661 IF(key2==
'HTML')
THEN
2663 IF(key3==
'H3D' .AND. nslash(kh3d) /= 0)
THEN
2665 IF(key4 ==
'EXT') ih3dreader = 2
2667 ELSEIF(key2==
'MVW')
THEN
2672 READ(iusc1,rec=ikad(ikey)+k,fmt=
'(5X,A)',err=9990)imvw_refpath
2673 ELSEIF(key3==
'ANIM')
THEN
2676 ELSEIF(key4==
'ABF')
THEN
2679 ELSEIF(key3==
'H3D')
THEN
2682 ELSEIF(key4==
'ABF')
THEN
2687 IF(nslash(kanim) /= 0)
THEN
2688 IF(nslash(ktfile) /= 0)
THEN
2690 ELSEIF(nslash(kabf) /= 0)
THEN
2693 ELSEIF(nslash(kh3d) /= 0)
THEN
2694 IF(nslash(ktfile) /= 0)
THEN
2696 ELSEIF(nslash(kabf) /= 0)
THEN
2707 CALL delete_user_file(iusc1_fn,len_iusc1_fn)
2708 CALL delete_user_file(iusc2_fn,len_iusc2_fn)
2715 CALL ancmsg(msgid=73,anmode=aninfo,c1=key0(ikey))
2722 WRITE(iout,*)
' ** ERROR IN MEMORY ALLOCATION WHILE READING ENGINE FILE'
2723 WRITE(istdo,*)
' ** ERROR IN MEMORY ALLOCATION WHILE READING ENGINE FILE'