44 logical igen,lin,frequency,cyclicsymmetry,composite,
45 & tabular,massflow,beamgeneralsection
47 character*1 selabel,sulabel,inpc(*)
51 character*81 set(*),noset,elset,slavset,mastset,noelset,
52 & surface,slavsets,slavsett,mastsets,mastsett
53 character*132 jobnamec(*),textpart(16)
55 integer nload,nforc,nboun,nk,ne,nmpc,nset,nalset,
56 & nmat,ntmat,npmat,norien,nam,nprint,kode,iline,
57 & istat,n,key,meminset(*),i,js,inoset,mi(*),ii,ipol,inl,
58 & ibounstart,ibounend,ibound,ntrans,ntmatl,npmatl,ityp,l,
59 & ielset,nope,nteller,nterm,ialset(16),ncs,rmeminset(*),
60 & islavset,imastset,namtot,ncmat,nconstants,memmpc,j,ipos,
61 & maxrmeminset,ne1d,ne2d,necper,necpsr,necaxr,nesr,
62 & neb32,nn,nflow,nradiate,irestartread,irestartstep,icntrl,
63 & irstrt,ithermal(2),nener,nstate,ipoinp(2,*),inp(3,*),
64 & ntie,nbody,nprop,ipoinpc(0:*),nevdamp,npt,nentries,
65 & iposs,iposm,nslavs,nlayer,nkon,nopeexp,k,iremove,mcs,
66 & ifacecount,nintpoint,mortar,infree(4),nheading,icfd,
67 & multslav,multmast,nobject,numnodes,iorientation,id,
68 & irotation,itranslation,nuel,iuel(4,*),number,four
70 real*8 temperature,tempact,xfreq,tpinc,tpmin,tpmax
72 parameter(nentries=17)
84 if(ithermal(2).ne.2) mi(2)=3
89 if(ipoinp(1,i).ne.0)
then 112 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
113 & ipoinp,inp,ipoinpc)
119 if(textpart(1)(1:10).eq.
'*AMPLITUDE')
then 122 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
123 & ipoinp,inp,ipoinpc)
124 if((istat.lt.0).or.(key.eq.1))
exit 127 elseif(textpart(1)(1:19).eq.
'*BEAMGENERALSECTION')
then 130 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
131 & ipoinp,inp,ipoinpc)
132 if((istat.lt.0).or.(key.eq.1))
then 138 elseif(textpart(1)(1:12).eq.
'*BEAMSECTION')
then 140 beamgeneralsection=.false.
142 if((textpart(i)(1:11).eq.
'SECTION=BOX').or.
143 & (textpart(i)(1:11).eq.
'SECTION=PIP').or.
144 & (textpart(i)(1:11).eq.
'SECTION=GEN'))
then 145 beamgeneralsection=.true.
149 if(beamgeneralsection)
then 151 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
152 & inl,ipoinp,inp,ipoinpc)
153 if((istat.lt.0).or.(key.eq.1))
then 160 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
161 & inl,ipoinp,inp,ipoinpc)
163 elseif(textpart(1)(1:10).eq.
'*BOUNDARYF')
then 167 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
168 & ipoinp,inp,ipoinpc)
169 if((istat.lt.0).or.(key.eq.1))
exit 171 read(textpart(3)(1:10),
'(i10)',iostat=istat) ibounstart
172 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
175 if(textpart(4)(1:1).eq.
' ')
then 178 read(textpart(4)(1:10),
'(i10)',iostat=istat) ibounend
179 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
182 ibound=ibounend-ibounstart+1
186 read(textpart(1)(1:10),
'(i10)',iostat=istat) l
191 memmpc=memmpc+4*ibound
195 read(textpart(1)(1:80),
'(a80)',iostat=istat) elset
197 ipos=index(elset,
' ')
203 if(set(i).eq.elset)
then 204 nboun=nboun+ibound*meminset(i)
206 nmpc=nmpc+ibound*meminset(i)
207 memmpc=memmpc+4*ibound*meminset(i)
219 if(set(i).eq.elset)
then 220 nboun=nboun+ibound*meminset(i)
222 nmpc=nmpc+ibound*meminset(i)
223 memmpc=memmpc+4*ibound*meminset(i)
232 elseif(textpart(1)(1:9).eq.
'*BOUNDARY')
then 236 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
237 & ipoinp,inp,ipoinpc)
238 if((istat.lt.0).or.(key.eq.1))
exit 240 read(textpart(2)(1:10),
'(i10)',iostat=istat) ibounstart
241 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
244 if(textpart(3)(1:1).eq.
' ')
then 247 read(textpart(3)(1:10),
'(i10)',iostat=istat) ibounend
248 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
251 ibound=ibounend-ibounstart+1
255 read(textpart(1)(1:10),
'(i10)',iostat=istat) l
260 memmpc=memmpc+4*ibound
264 read(textpart(1)(1:80),
'(a80)',iostat=istat) noset
266 ipos=index(noset,
' ')
269 if(set(i).eq.noset)
then 270 nboun=nboun+ibound*meminset(i)
272 nmpc=nmpc+ibound*meminset(i)
273 memmpc=memmpc+4*ibound*meminset(i)
281 elseif(textpart(1)(1:6).eq.
'*CFLUX')
then 285 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
286 & ipoinp,inp,ipoinpc)
287 if((istat.lt.0).or.(key.eq.1))
exit 289 read(textpart(1)(1:10),
'(i10)',iostat=istat) l
293 read(textpart(1)(1:80),
'(a80)',iostat=istat) noset
295 ipos=index(noset,
' ')
298 if(set(i).eq.noset)
then 299 nforc=nforc+meminset(i)
305 elseif(textpart(1)(1:6).eq.
'*CLOAD')
then 309 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
310 & ipoinp,inp,ipoinpc)
311 if((istat.lt.0).or.(key.eq.1))
exit 313 read(textpart(1)(1:10),
'(i10)',iostat=istat) l
321 read(textpart(1)(1:80),
'(a80)',iostat=istat) noset
323 ipos=index(noset,
' ')
326 if(set(i).eq.noset)
then 328 nforc=nforc+meminset(i)
330 nforc=nforc+3*meminset(i)
337 elseif((textpart(1)(1:13).eq.
'*CONDUCTIVITY').or.
338 & (textpart(1)(1:8).eq.
'*DENSITY').or.
339 & (textpart(1)(1:10).eq.
'*EXPANSION').or.
340 & (textpart(1)(1:15).eq.
'*FLUIDCONSTANTS').or.
341 & (textpart(1)(1:13).eq.
'*SPECIFICHEAT').or.
342 & (textpart(1)(1:23).eq.
'*ELECTRICALCONDUCTIVITY'))
then 345 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
346 & ipoinp,inp,ipoinpc)
347 if((istat.lt.0).or.(key.eq.1))
exit 349 ntmat=
max(ntmatl,ntmat)
351 elseif(textpart(1)(1:11).eq.
'*CONSTRAINT')
then 353 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
354 & ipoinp,inp,ipoinpc)
355 if((istat.lt.0).or.(key.eq.1))
exit 358 elseif(textpart(1)(1:15).eq.
'*CONTACTDAMPING')
then 361 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
362 & ipoinp,inp,ipoinpc)
363 elseif(textpart(1)(1:12).eq.
'*CONTACTPAIR')
then 365 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
366 & ipoinp,inp,ipoinpc)
367 if((istat.lt.0).or.(key.eq.1))
exit 370 elseif(textpart(1)(1:13).eq.
'*CONTACTPRINT')
then 372 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
373 & ipoinp,inp,ipoinpc)
374 if((istat.lt.0).or.(key.eq.1))
exit 377 elseif(textpart(1)(1:9).eq.
'*COUPLING')
then 381 if(textpart(i)(1:8).eq.
'SURFACE=')
then 382 surface=textpart(i)(9:88)
383 ipos=index(surface,
' ')
384 surface(ipos:ipos)=
'T' 385 elseif(textpart(i)(1:12).eq.
'ORIENTATION=')
then 389 if(surface(1:1).ne.
' ')
then 391 surface(ipos:ipos)=
'T' 392 if(set(i).eq.surface)
then 393 numnodes=8*meminset(i)
396 surface(ipos:ipos)=
'S' 397 if(set(i).eq.surface)
then 403 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
404 & ipoinp,inp,ipoinpc)
405 elseif(textpart(1)(1:6).eq.
'*CREEP')
then 416 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
417 & ipoinp,inp,ipoinpc)
418 if((istat.lt.0).or.(key.eq.1))
exit 421 ntmat=
max(ntmatl,ntmat)
422 elseif(textpart(1)(1:16).eq.
'*CYCLICHARDENING')
then 425 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
426 & ipoinp,inp,ipoinpc)
427 if((istat.lt.0).or.(key.eq.1))
exit 428 read(textpart(3)(1:20),
'(f20.0)',iostat=istat)
430 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
431 &
"*CYCLIC HARDENING%")
435 ntmat=
max(ntmatl,ntmat)
437 elseif(temperature.ne.tempact)
then 440 ntmat=
max(ntmatl,ntmat)
444 npmat=
max(npmatl,npmat)
446 elseif(textpart(1)(1:20).eq.
'*CYCLICSYMMETRYMODEL')
then 453 memmpc=memmpc+125*ncs
456 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
457 & ipoinp,inp,ipoinpc)
458 if((istat.lt.0).or.(key.eq.1))
exit 460 elseif(textpart(1)(1:8).eq.
'*DASHPOT')
then 463 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
464 & ipoinp,inp,ipoinpc)
465 if((istat.lt.0).or.(key.eq.1))
return 466 read(textpart(2)(1:20),
'(f20.0)',iostat=istat)
468 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
470 if(xfreq.gt.0.d0) frequency=.true.
472 if(.not.frequency)
then 476 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
477 & inl,ipoinp,inp,ipoinpc)
478 if((istat.lt.0).or.(key.eq.1))
exit 480 ntmat=
max(ntmatl,ntmat)
485 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
486 & inl,ipoinp,inp,ipoinpc)
487 if((istat.lt.0).or.(key.eq.1))
exit 488 read(textpart(3)(1:20),
'(f20.0)',iostat=istat)
490 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
495 ntmat=
max(ntmatl,ntmat)
497 elseif(temperature.ne.tempact)
then 500 ntmat=
max(ntmatl,ntmat)
504 npmat=
max(npmatl,npmat)
506 if(ncmat.ge.9) ncmat=
max(19,ncmat)
508 elseif(textpart(1)(1:22).eq.
'*DEFORMATIONPLASTICITY')
then 512 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
513 & ipoinp,inp,ipoinpc)
514 if((istat.lt.0).or.(key.eq.1))
exit 516 ntmat=
max(ntmatl,ntmat)
518 elseif(textpart(1)(1:7).eq.
'*DEPVAR')
then 520 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
521 & ipoinp,inp,ipoinpc)
522 if((istat.lt.0).or.(key.eq.1))
exit 523 read(textpart(1)(1:10),
'(i10)',iostat=istat) l
527 elseif(textpart(1)(1:16).eq.
'*DESIGNVARIABLES')
then 529 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
530 & ipoinp,inp,ipoinpc)
531 elseif(textpart(1)(1:21).eq.
'*DISTRIBUTINGCOUPLING')
then 535 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
536 & ipoinp,inp,ipoinpc)
537 if((istat.lt.0).or.(key.eq.1))
exit 539 read(textpart(1)(1:10),
'(i10)',iostat=istat) l
543 read(textpart(1)(1:80),
'(a80)',iostat=istat) noset
545 ipos=index(noset,
' ')
548 if(set(i).eq.noset)
then 549 memmpc=memmpc+3*meminset(i)
555 elseif(textpart(1)(2:13).eq.
'DISTRIBUTING')
then 559 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
560 & ipoinp,inp,ipoinpc)
561 if((istat.lt.0).or.(key.eq.1))
exit 563 read(textpart(1)(1:10),
'(i10)',iostat=istat) ibounstart
564 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
567 if(textpart(2)(1:1).eq.
' ')
then 570 read(textpart(2)(1:10),
'(i10)',iostat=istat) ibounend
571 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
574 ibounstart=
max(4,ibounstart)
575 ibounend=
min(6,ibounend)
576 ibound=
max(0,ibounend-ibounstart+1)
578 if(itranslation.eq.0)
then 583 npt=
max(npt,numnodes)
586 memmpc=memmpc+6*npt+3*(npt+1)
594 if(irotation.eq.0)
then 606 memmpc=memmpc+ibound*(3*npt+2)
610 elseif((textpart(1)(1:6).eq.
'*DLOAD').or.
611 & (textpart(1)(1:7).eq.
'*DSLOAD').or.
612 & (textpart(1)(1:6).eq.
'*DFLUX').or.
613 & (textpart(1)(1:9).eq.
'*MASSFLOW').or.
614 & (textpart(1)(1:5).eq.
'*FILM'))
then 616 if((textpart(1)(1:5).ne.
'*FILM').and.
617 & (textpart(1)(1:9).ne.
'*MASSFLOW'))
then 620 elseif(textpart(1)(1:9).ne.
'*MASSFLOW')
then 627 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
628 & ipoinp,inp,ipoinpc)
629 if((istat.lt.0).or.(key.eq.1))
exit 630 read(textpart(2)(1:5),
'(a5)',iostat=istat) llab
631 if((llab.eq.
'GRAV ').or.(llab.eq.
'CENTR').or.
632 & (llab.eq.
'NEWTO'))
then 636 read(textpart(1)(1:10),
'(i10)',iostat=istat) l
644 read(textpart(1)(1:80),
'(a80)',iostat=istat) elset
646 ipos=index(elset,
' ')
652 if(set(i).eq.elset)
then 653 nload=nload+meminset(i)
655 nmpc=nmpc+meminset(i)
656 memmpc=memmpc+3*meminset(i)
667 if(set(i).eq.elset)
then 668 nload=nload+meminset(i)
670 nmpc=nmpc+meminset(i)
671 memmpc=memmpc+3*meminset(i)
679 elseif((textpart(1)(1:8).eq.
'*DYNAMIC').or.
680 & (textpart(1)(1:32).eq.
'*COUPLEDTEMPERATURE-DISPLACEMENT')
682 & (textpart(1)(1:34).eq.
'*UNCOUPLEDTEMPERATURE-DISPLACEMENT'))
689 if((mi(1).eq.1).or.(mi(1).eq.8).or.(mi(1).eq.27))
then 691 elseif(mi(1).eq.4)
then 698 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
699 & ipoinp,inp,ipoinpc)
700 elseif(textpart(1)(1:8).eq.
'*ELPRINT')
then 702 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
703 & ipoinp,inp,ipoinpc)
704 if((istat.lt.0).or.(key.eq.1))
exit 707 elseif(textpart(1)(1:8).eq.
'*ELASTIC')
then 712 if(textpart(i)(1:5).eq.
'TYPE=')
then 713 if(textpart(i)(6:8).eq.
'ISO')
then 716 elseif((textpart(i)(6:10).eq.
'ORTHO').or.
717 & (textpart(i)(6:10).eq.
'ENGIN'))
then 720 elseif(textpart(i)(6:10).eq.
'ANISO')
then 729 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
730 & inl,ipoinp,inp,ipoinpc)
731 if((istat.lt.0).or.(key.eq.1))
exit 734 ntmat=
max(ntmatl,ntmat)
735 elseif(ityp.eq.9)
then 737 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
738 & inl,ipoinp,inp,ipoinpc)
739 if((istat.lt.0).or.(key.eq.1))
exit 743 ntmat=
max(ntmatl,ntmat)
744 elseif(ityp.eq.21)
then 746 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
747 & inl,ipoinp,inp,ipoinpc)
748 if((istat.lt.0).or.(key.eq.1))
exit 752 ntmat=
max(ntmatl,ntmat)
754 elseif(textpart(1)(1:17).eq.
'*ELECTROMAGNETICS')
then 756 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
757 & ipoinp,inp,ipoinpc)
758 elseif((textpart(1)(1:8).eq.
'*ELEMENT').and.
759 & (textpart(1)(1:14).ne.
'*ELEMENTOUTPUT'))
then 763 if(textpart(i)(1:6).eq.
'ELSET=')
then 764 elset=textpart(i)(7:86)
766 ipos=index(elset,
' ')
770 if(set(js).eq.elset)
exit 776 elseif(textpart(i)(1:5).eq.
'TYPE=')
then 777 read(textpart(i)(6:13),
'(a8)') label
778 if(label.eq.
' ')
then 780 &
'*ERROR in allocation: element type is lacking' 783 &
"*ELEMENT or *ELEMENT OUTPUT%")
786 if((label(1:2).eq.
'DC').and.(label(1:7).ne.
'DCOUP3D'))
788 label(1:7)=label(2:8)
794 if(label.eq.
'C3D20 ')
then 798 elseif(label(1:8).eq.
'C3D20R ')
then 802 elseif((label.eq.
'C3D8R ').or.(label.eq.
'F3D8 '))
807 elseif((label.eq.
'C3D10 ').or.
808 & (label.eq.
'C3D10T '))
then 812 elseif((label.eq.
'C3D4 ').or.
813 & (label.eq.
'F3D4 '))
then 817 elseif(label.eq.
'C3D15 ')
then 821 elseif(label.eq.
'C3D6 ')
then 825 elseif(label.eq.
'F3D6 ')
then 829 elseif(label.eq.
'C3D8 ')
then 838 elseif(label.eq.
'C3D8I ')
then 843 elseif((label.eq.
'CPE3 ').or.
844 & (label.eq.
'CPS3 ').or.
845 & (label.eq.
'CAX3 ').or.
846 & (label.eq.
'M3D3 ').or.
847 & (label.eq.
'S3 '))
then 851 elseif((label.eq.
'CPE4R ').or.
852 & (label.eq.
'CPS4R ').or.
853 & (label.eq.
'CAX4R ').or.
854 & (label.eq.
'M3D4R ').or.
855 & (label.eq.
'S4R '))
then 859 elseif((label.eq.
'CPE4 ').or.
860 & (label.eq.
'CPS4 ').or.
861 & (label.eq.
'CAX4 ').or.
862 & (label.eq.
'M3D4 ').or.
863 & (label.eq.
'S4 '))
then 868 elseif((label.eq.
'CPE6 ').or.
869 & (label.eq.
'CPS6 ').or.
870 & (label.eq.
'CAX6 ').or.
871 & (label.eq.
'M3D6 ').or.
872 & (label.eq.
'S6 '))
then 876 elseif((label.eq.
'CPE8R ').or.
877 & (label.eq.
'CPS8R ').or.
878 & (label.eq.
'CAX8R ').or.
879 & (label.eq.
'M3D8R ').or.
880 & (label.eq.
'S8R '))
then 884 elseif((label.eq.
'CPE8 ').or.
885 & (label.eq.
'CPS8 ').or.
886 & (label.eq.
'CAX8 ').or.
887 & (label.eq.
'M3D8 ').or.
888 & (label.eq.
'S8 '))
then 892 elseif((label.eq.
'B31 ').or.
893 & (label.eq.
'B21 ').or.
894 & (label.eq.
'T3D2 ').or.
895 & (label.eq.
'T2D2 '))
then 901 elseif(label.eq.
'B31R ')
then 905 elseif((label.eq.
'B32 ').or.
906 & (label.eq.
'T3D3 '))
then 911 elseif(label.eq.
'B32R ')
then 916 elseif(label(1:8).eq.
'DASHPOTA')
then 920 elseif(label(1:7).eq.
'DCOUP3D')
then 923 elseif(label(1:1).eq.
'D')
then 927 elseif(label(1:7).eq.
'SPRINGA')
then 932 elseif(label(1:7).eq.
'SPRING1')
then 938 elseif(label(1:7).eq.
'SPRING2')
then 944 elseif(label.eq.
'GAPUNI ')
then 949 elseif(label(1:4).eq.
'MASS')
then 952 elseif(label(1:1).eq.
'U')
then 958 number=ichar(label(2:2))*256**3+
959 & ichar(label(3:3))*256**2+
960 & ichar(label(4:4))*256+
966 call nidentk(iuel,number,nuel,id,four)
968 if(iuel(1,id).eq.number)
then 969 mi(1)=
max(mi(1),iuel(2,id))
970 mi(2)=
max(mi(2),iuel(3,id))
976 write(*,*)
'*ERROR reading *ELEMENT' 977 write(*,*)
' nonexistent element type:' 982 if(label(1:1).eq.
'F')
then 986 elseif(icfd.eq.0)
then 992 elseif(icfd.eq.1)
then 1000 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1001 & ipoinp,inp,ipoinpc)
1002 if((istat.lt.0).or.(key.eq.1))
exit 1003 read(textpart(1)(1:10),
'(i10)',iostat=istat) i
1004 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1005 &
"*ELEMENT or *ELEMENT OUTPUT%")
1008 if(label(1:5).eq.
'C3D8I')
then 1012 if(label(1:2).ne.
'C3')
then 1013 if(label(1:3).eq.
'CPE')
then 1015 elseif(label(1:2).eq.
'CP')
then 1017 elseif(label(1:1).eq.
'C')
then 1019 elseif((label(1:1).eq.
'S').or.
1020 & ((label(1:1).eq.
'M').and.(label(1:4).ne.
'MASS')))
1023 elseif((label(1:1).eq.
'B').or.
1024 & (label(1:1).eq.
'T'))
then 1026 elseif(label(1:1).eq.
'D')
then 1031 if(nteller.lt.nope)
then 1033 call getnewline(inpc,textpart,istat,n,key,iline,
1034 & ipol,inl,ipoinp,inp,ipoinpc)
1035 if((istat.lt.0).or.(key.eq.1))
exit loop2
1036 if(nteller+n.gt.nope) n=nope-nteller
1038 if(nteller.eq.nope)
exit 1043 if(ielset.eq.1)
then 1044 meminset(js)=meminset(js)+1
1045 rmeminset(js)=rmeminset(js)+1
1052 elseif((textpart(1)(1:5).eq.
'*NSET').or.
1053 & (textpart(1)(1:6).eq.
'*ELSET'))
then 1054 if(textpart(1)(1:5).eq.
'*NSET')
1056 noelset=textpart(2)(6:85)
1058 ipos=index(noelset,
' ')
1059 noelset(ipos:ipos)=
'N' 1062 noelset=textpart(2)(7:86)
1064 ipos=index(noelset,
' ')
1065 noelset(ipos:ipos)=
'E' 1072 if(set(js).eq.noelset)
exit 1082 if((n.gt.2).and.(textpart(3)(1:8).eq.
'GENERATE'))
then 1088 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1089 & ipoinp,inp,ipoinpc)
1090 if((istat.lt.0).or.(key.eq.1))
exit 1092 if(textpart(2)(1:1).eq.
' ')
1093 & textpart(2)=textpart(1)
1094 if(textpart(3)(1:1).eq.
' ')
1097 read(textpart(i)(1:10),
'(i10)',iostat=istat)
1099 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1100 &
"*NSET or *ELSET%")
1102 meminset(nn)=meminset(nn)+
1103 & (ialset(2)-ialset(1))/ialset(3)+1
1104 rmeminset(nn)=rmeminset(nn)+3
1107 read(textpart(i)(1:10),
'(i10)',iostat=istat)
1110 noelset=textpart(i)(1:80)
1112 ipos=index(noelset,
' ')
1114 noelset(ipos:ipos)=
'N' 1116 noelset(ipos:ipos)=
'E' 1119 if(noelset.eq.set(j))
then 1120 meminset(nn)=meminset(nn)+
1122 rmeminset(nn)=rmeminset(nn)+
1128 meminset(nn)=meminset(nn)+1
1129 rmeminset(nn)=rmeminset(nn)+1
1134 elseif((textpart(1)(1:9).eq.
'*EQUATION').or.
1135 & (textpart(1)(1:10).eq.
'*EQUATIONF'))
then 1138 if(textpart(i)(1:6).eq.
'REMOVE') iremove=1
1141 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1142 & ipoinp,inp,ipoinpc)
1143 if(iremove.eq.1)
exit 1144 if((istat.lt.0).or.(key.eq.1))
exit 1145 read(textpart(1)(1:10),
'(i10)',iostat=istat) nterm
1146 if(ntrans.eq.0)
then 1151 memmpc=memmpc+3*nterm
1155 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1156 & inl,ipoinp,inp,ipoinpc)
1157 if((istat.lt.0).or.(key.eq.1))
exit 1159 if(ii.eq.nterm)
exit 1162 elseif(textpart(1)(1:13).eq.
'*FLUIDSECTION')
then 1165 if(textpart(i)(1:10).eq.
'CONSTANTS=')
then 1166 read(textpart(i)(11:20),
'(i10)',iostat=istat)
1168 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1170 nprop=nprop+nconstants
1174 if(nconstants.lt.0) nprop=nprop+41
1176 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1177 & ipoinp,inp,ipoinpc)
1178 if((istat.lt.0).or.(key.eq.1))
exit 1180 elseif(textpart(1)(1:9).eq.
'*FRICTION')
then 1186 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1187 & ipoinp,inp,ipoinpc)
1188 elseif(textpart(1)(1:5).eq.
'*GAP ')
then 1193 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1194 & inl,ipoinp,inp,ipoinpc)
1195 if((istat.lt.0).or.(key.eq.1))
exit 1197 elseif(textpart(1)(1:15).eq.
'*GAPCONDUCTANCE')
then 1200 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1201 & inl,ipoinp,inp,ipoinpc)
1202 if((istat.lt.0).or.(key.eq.1))
exit 1203 read(textpart(3)(1:20),
'(f20.0)',iostat=istat)
1205 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1206 &
"*GAP CONDUCTANCE%")
1207 if(ntmatl.eq.0)
then 1210 ntmat=
max(ntmatl,ntmat)
1212 elseif(temperature.ne.tempact)
then 1215 ntmat=
max(ntmatl,ntmat)
1219 npmat=
max(npmatl,npmat)
1221 elseif(textpart(1)(1:18).eq.
'*GAPHEATGENERATION')
then 1223 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1224 & ipoinp,inp,ipoinpc)
1225 elseif(textpart(1)(1:8).eq.
'*HEADING')
then 1226 if(nheading.ne.0)
then 1227 write(*,*)
'*ERROR in allocation: more than 1' 1228 write(*,*)
' *HEADING card in the input deck' 1232 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1233 & ipoinp,inp,ipoinpc)
1234 if((istat.lt.0).or.(key.eq.1))
exit 1237 elseif(textpart(1)(1:13).eq.
'*HYPERELASTIC')
then 1241 if(textpart(i)(1:12).eq.
'ARRUDA-BOYCE')
then 1244 elseif(textpart(i)(1:13).eq.
'MOONEY-RIVLIN')
then 1247 elseif(textpart(i)(1:8).eq.
'NEOHOOKE')
then 1250 elseif(textpart(i)(1:5).eq.
'OGDEN')
then 1253 elseif(textpart(i)(1:10).eq.
'POLYNOMIAL')
then 1256 elseif(textpart(i)(1:17).eq.
'REDUCEDPOLYNOMIAL')
1260 elseif(textpart(i)(1:11).eq.
'VANDERWAALS')
then 1263 elseif(textpart(i)(1:4).eq.
'YEOH')
then 1266 elseif(textpart(i)(1:2).eq.
'N=')
then 1267 if(textpart(i)(3:3).eq.
'1')
then 1268 elseif(textpart(i)(3:3).eq.
'2')
then 1272 elseif(ityp.eq.-7)
then 1275 elseif(ityp.eq.-10)
then 1279 elseif(textpart(i)(3:3).eq.
'3')
then 1283 elseif(ityp.eq.-7)
then 1286 elseif(ityp.eq.-10)
then 1293 if((ityp.ne.-6).and.(ityp.ne.-9))
then 1295 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1296 & inl,ipoinp,inp,ipoinpc)
1297 if((istat.lt.0).or.(key.eq.1))
exit 1299 ntmat=
max(ntmat,ntmatl)
1303 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1304 & inl,ipoinp,inp,ipoinpc)
1305 if((istat.lt.0).or.(key.eq.1))
exit 1307 ntmat=
max(ntmat,ntmatl)
1311 elseif(textpart(1)(1:10).eq.
'*HYPERFOAM')
then 1316 if(textpart(i)(1:2).eq.
'N=')
then 1317 if(textpart(i)(3:3).eq.
'1')
then 1318 elseif(textpart(i)(3:3).eq.
'2')
then 1321 elseif(textpart(i)(3:3).eq.
'3')
then 1327 if(ityp.ne.-17)
then 1329 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1330 & inl,ipoinp,inp,ipoinpc)
1331 if((istat.lt.0).or.(key.eq.1))
exit 1333 ntmat=
max(ntmat,ntmatl)
1337 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1338 & inl,ipoinp,inp,ipoinpc)
1339 if((istat.lt.0).or.(key.eq.1))
exit 1341 ntmat=
max(ntmat,ntmatl)
1345 elseif(textpart(1)(2:10).eq.
'KINEMATIC')
then 1346 npt=
max(npt,numnodes)
1357 if(iorientation.ne.0)
then 1359 nmpc=nmpc+3*numnodes
1360 memmpc=memmpc+3*6*numnodes
1361 nboun=nboun+3*numnodes
1365 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1366 & ipoinp,inp,ipoinpc)
1367 if((istat.lt.0).or.(key.eq.1))
exit 1369 read(textpart(1)(1:10),
'(i10)',iostat=istat) ibounstart
1370 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1373 if(textpart(2)(1:1).eq.
' ')
then 1376 read(textpart(2)(1:10),
'(i10)',iostat=istat) ibounend
1377 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1380 ibound=ibounend-ibounstart+1
1381 ibound=
max(1,ibound)
1382 ibound=
min(3,ibound)
1384 if(iorientation.eq.0)
then 1386 nmpc=nmpc+ibound*numnodes
1387 memmpc=memmpc+6*ibound*numnodes
1388 nboun=nboun+ibound*numnodes
1390 nmpc=nmpc+ibound*numnodes
1391 memmpc=memmpc+ibound*6*numnodes
1394 elseif(textpart(1)(1:21).eq.
'*MAGNETICPERMEABILITY')
then 1399 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1400 & inl,ipoinp,inp,ipoinpc)
1401 if((istat.lt.0).or.(key.eq.1))
exit 1403 ntmat=
max(ntmatl,ntmat)
1405 elseif(textpart(1)(1:5).eq.
'*MASS')
then 1408 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1409 & inl,ipoinp,inp,ipoinpc)
1410 elseif(textpart(1)(1:9).eq.
'*MATERIAL')
then 1412 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1413 & ipoinp,inp,ipoinpc)
1414 elseif(textpart(1)(1:13).eq.
'*MODALDAMPING')
then 1415 if(textpart(2)(1:8).ne.
'RAYLEIGH')
then 1418 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1419 & inl,ipoinp,inp,ipoinpc)
1420 if((istat.lt.0).or.(key.eq.1))
exit 1421 read(textpart(1)(1:10),
'(i10)',iostat=istat) i
1422 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1424 nevdamp =
max(nevdamp,i)
1425 read(textpart(2)(1:10),
'(i10)',iostat=istat) i
1426 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1428 nevdamp =
max(nevdamp,i)
1431 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1432 & ipoinp,inp,ipoinpc)
1434 elseif(textpart(1)(1:4).eq.
'*MPC')
then 1437 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1438 & ipoinp,inp,ipoinpc)
1439 if((istat.lt.0).or.(key.eq.1))
exit 1441 read(textpart(i)(1:10),
'(i10)',iostat=istat) ialset(i)
1442 if(mpclabel.eq.
' ')
then 1443 mpclabel=textpart(i)(1:20)
1444 if((mpclabel(1:8).ne.
'STRAIGHT').and.
1445 & (mpclabel(1:4).ne.
'PLANE'))
then 1451 elseif(istat.gt.0)
then 1452 noelset=textpart(i)(1:80)
1454 ipos=index(noelset,
' ')
1455 noelset(ipos:ipos)=
'N' 1457 if(noelset.eq.set(j))
then 1458 if(mpclabel(1:8).eq.
'STRAIGHT')
then 1460 nmpc=nmpc+2*meminset(j)
1461 nboun=nboun+2*meminset(j)
1462 memmpc=memmpc+14*meminset(j)
1463 elseif(mpclabel(1:5).eq.
'PLANE')
then 1465 nmpc=nmpc+meminset(j)
1466 nboun=nboun+meminset(j)
1467 memmpc=memmpc+13*meminset(j)
1468 elseif(mpclabel(1:4).eq.
'BEAM')
then 1469 memmpc=memmpc+3*meminset(j)
1471 memmpc=memmpc+meminset(j)
1477 if(mpclabel(1:8).eq.
'STRAIGHT')
then 1482 elseif(mpclabel(1:5).eq.
'PLANE')
then 1487 elseif(mpclabel(1:4).eq.
'BEAM')
then 1495 elseif(textpart(1)(1:11).eq.
'*NETWORKMPC')
then 1497 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1498 & ipoinp,inp,ipoinpc)
1499 if((istat.lt.0).or.(key.eq.1))
exit 1500 read(textpart(1)(1:10),
'(i10)',iostat=istat) nterm
1501 if(ntrans.eq.0)
then 1506 memmpc=memmpc+3*nterm
1510 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1511 & inl,ipoinp,inp,ipoinpc)
1512 if((istat.lt.0).or.(key.eq.1))
exit 1514 if(ii.eq.nterm)
exit 1517 elseif((textpart(1)(1:5).eq.
'*NODE').and.
1518 & (textpart(1)(1:10).ne.
'*NODEPRINT').and.
1519 & (textpart(1)(1:9).ne.
'*NODEFILE').and.
1520 & (textpart(1)(1:11).ne.
'*NODEOUTPUT'))
then 1523 if(textpart(i)(1:5).eq.
'NSET=')
then 1524 noset=textpart(i)(6:85)
1526 ipos=index(noset,
' ')
1527 noset(ipos:ipos)=
'N' 1530 if(set(js).eq.noset)
exit 1540 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1541 & ipoinp,inp,ipoinpc)
1542 if((istat.lt.0).or.(key.eq.1))
exit 1543 read(textpart(1)(1:10),
'(i10)',iostat=istat) i
1544 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1545 &
"*NODE or *NODE PRINT or *NODE FILE or *NODE OUTPUT%")
1547 if(inoset.eq.1)
then 1548 meminset(js)=meminset(js)+1
1549 rmeminset(js)=rmeminset(js)+1
1552 elseif(textpart(1)(1:10).eq.
'*NODEPRINT')
then 1554 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1555 & ipoinp,inp,ipoinpc)
1556 if((istat.lt.0).or.(key.eq.1))
exit 1559 elseif(textpart(1)(1:10).eq.
'*OBJECTIVE')
then 1561 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1562 & ipoinp,inp,ipoinpc)
1563 if((istat.lt.0).or.(key.eq.1))
exit 1566 elseif(textpart(1)(1:12).eq.
'*ORIENTATION')
then 1569 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1570 & ipoinp,inp,ipoinpc)
1571 if((istat.lt.0).or.(key.eq.1))
exit 1573 elseif(textpart(1)(1:8).eq.
'*PLASTIC')
then 1576 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1577 & ipoinp,inp,ipoinpc)
1578 if((istat.lt.0).or.(key.eq.1))
exit 1579 read(textpart(3)(1:20),
'(f20.0)',iostat=istat)
1581 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1583 if(ntmatl.eq.0)
then 1586 ntmat=
max(ntmatl,ntmat)
1588 elseif(temperature.ne.tempact)
then 1591 ntmat=
max(ntmatl,ntmat)
1595 npmat=
max(npmatl,npmat)
1597 if(ncmat.ge.9) ncmat=
max(19,ncmat)
1598 elseif(textpart(1)(1:19).eq.
'*PRE-TENSIONSECTION')
then 1601 if(textpart(i)(1:8).eq.
'SURFACE=')
then 1602 surface=textpart(i)(9:88)
1603 ipos=index(surface,
' ')
1604 surface(ipos:ipos)=
'T' 1606 elseif(textpart(i)(1:8).eq.
'ELEMENT=')
then 1612 if(surface(1:1).ne.
' ')
then 1614 if(set(i).eq.surface)
then 1619 npt=npt+8*meminset(i)
1632 nmpc=nmpc+32*meminset(i)+1
1643 memmpc=memmpc+96*meminset(i)
1646 & +12*(8*meminset(i)-1)
1652 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1653 & ipoinp,inp,ipoinpc)
1654 elseif(textpart(1)(1:8).eq.
'*RADIATE')
then 1658 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1659 & ipoinp,inp,ipoinpc)
1660 if((istat.lt.0).or.(key.eq.1))
exit 1661 read(textpart(2)(1:5),
'(a5)',iostat=istat) llab
1662 if((llab.eq.
'GRAV ').or.(llab.eq.
'CENTR'))
exit 1663 read(textpart(1)(1:10),
'(i10)',iostat=istat) l
1668 read(textpart(1)(1:80),
'(a80)',iostat=istat) elset
1670 ipos=index(elset,
' ')
1671 elset(ipos:ipos)=
'E' 1673 if(set(i).eq.elset)
then 1674 nload=nload+meminset(i)
1675 nradiate=nradiate+meminset(i)
1681 elseif(textpart(1)(1:8).eq.
'*RESTART')
then 1685 if(textpart(i)(1:4).eq.
'READ')
then 1688 if(textpart(i)(1:5).eq.
'STEP=')
then 1689 read(textpart(i)(6:15),
'(i10)',iostat=istat)
1691 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1695 if(irestartread.eq.1)
then 1698 & nmpc,nalset,nmat,ntmat,npmat,norien,nam,nprint,
1699 & mi,ntrans,ncs,namtot,ncmat,memmpc,
1700 & ne1d,ne2d,nflow,set,meminset,rmeminset,jobnamec,
1701 & irestartstep,icntrl,ithermal,nener,nstate,ntie,
1702 & nslavs,nkon,mcs,nprop,mortar,ifacecount,nintpoint,
1707 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1708 & ipoinp,inp,ipoinpc)
1709 elseif(textpart(1)(1:18).eq.
'*RETAINEDNODALDOFS')
then 1711 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1712 & ipoinp,inp,ipoinpc)
1713 if((istat.lt.0).or.(key.eq.1))
exit 1715 read(textpart(2)(1:10),
'(i10)',iostat=istat) ibounstart
1716 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1719 if(textpart(3)(1:1).eq.
' ')
then 1722 read(textpart(3)(1:10),
'(i10)',iostat=istat) ibounend
1723 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1726 ibound=ibounend-ibounstart+1
1727 ibound=
max(1,ibound)
1728 ibound=
min(3,ibound)
1730 read(textpart(1)(1:10),
'(i10)',iostat=istat) l
1734 read(textpart(1)(1:80),
'(a80)',iostat=istat) noset
1736 ipos=index(noset,
' ')
1737 noset(ipos:ipos)=
'N' 1739 if(set(i).eq.noset)
then 1740 nboun=nboun+ibound*meminset(i)
1746 elseif(textpart(1)(1:10).eq.
'*RIGIDBODY')
then 1752 if(textpart(i)(1:5).eq.
'NSET=')
1754 noset=textpart(i)(6:85)
1756 ipos=index(noset,
' ')
1757 noset(ipos:ipos)=
'N' 1759 elseif(textpart(i)(1:6).eq.
'ELSET=')
1761 elset=textpart(i)(7:86)
1763 ipos=index(elset,
' ')
1764 elset(ipos:ipos)=
'E' 1768 if(noset(1:1).ne.
' ')
then 1770 if(set(i).eq.noset)
then 1772 nmpc=nmpc+3*meminset(i)
1773 memmpc=memmpc+18*meminset(i)
1774 nboun=nboun+3*meminset(i)
1777 elseif(elset(1:1).ne.
' ')
then 1779 if(set(i).eq.elset)
then 1780 nk=nk+2+20*meminset(i)
1781 nmpc=nmpc+60*meminset(i)
1782 memmpc=memmpc+360*meminset(i)
1783 nboun=nboun+60*meminset(i)
1787 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1788 & ipoinp,inp,ipoinpc)
1789 elseif(textpart(1)(1:16).eq.
'*SECTIONPRINT')
then 1791 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1792 & ipoinp,inp,ipoinpc)
1793 if((istat.lt.0).or.(key.eq.1))
exit 1796 elseif(textpart(1)(1:13).eq.
'*SHELLSECTION')
then 1799 if(textpart(i)(1:9).eq.
'COMPOSITE')
then 1802 elseif(textpart(i)(1:6).eq.
'ELSET=')
then 1803 elset=textpart(i)(7:86)
1805 ipos=index(elset,
' ')
1806 elset(ipos:ipos)=
'E' 1808 if(set(js).eq.elset)
exit 1814 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1815 & inl,ipoinp,inp,ipoinpc)
1816 if((istat.lt.0).or.(key.eq.1))
then 1817 if(label(2:2).eq.
'8')
then 1818 mi(1)=
max(mi(1),8*nlayer)
1819 mi(3)=
max(mi(3),nlayer)
1821 nk=nk+20*nlayer*meminset(js)
1822 nkon=nkon+20*nlayer*meminset(js)
1826 mi(1)=
max(mi(1),6*nlayer)
1827 mi(3)=
max(mi(3),nlayer)
1829 nk=nk+15*nlayer*meminset(js)
1830 nkon=nkon+15*nlayer*meminset(js)
1838 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1839 & inl,ipoinp,inp,ipoinpc)
1841 elseif(textpart(1)(1:7).eq.
'*SPRING')
then 1845 if(textpart(i)(1:9).eq.
'NONLINEAR')
then 1854 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1855 & inl,ipoinp,inp,ipoinpc)
1856 if((istat.lt.0).or.(key.eq.1))
exit 1858 ntmat=
max(ntmatl,ntmat)
1863 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
1864 & inl,ipoinp,inp,ipoinpc)
1865 if((istat.lt.0).or.(key.eq.1))
exit 1866 read(textpart(3)(1:20),
'(f20.0)',iostat=istat)
1868 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
1870 if(ntmatl.eq.0)
then 1873 ntmat=
max(ntmatl,ntmat)
1875 elseif(temperature.ne.tempact)
then 1878 ntmat=
max(ntmatl,ntmat)
1882 npmat=
max(npmatl,npmat)
1884 if(ncmat.ge.9) ncmat=
max(19,ncmat)
1886 elseif(textpart(1)(1:9).eq.
'*SUBMODEL')
then 1894 if(textpart(j)(1:12).eq.
'GLOBALELSET=')
1896 mastset(1:80)=textpart(j)(13:92)
1898 ipos=index(mastset,
' ')
1899 mastset(ipos:ipos)=
'E' 1901 if(set(i).eq.mastset)
exit 1908 meminset(nset)=meminset(nset)+meminset(i)
1909 rmeminset(nset)=rmeminset(nset)+meminset(i)
1911 elseif(textpart(j)(1:5).eq.
'TYPE=')
then 1912 if(textpart(j)(6:12).eq.
'SURFACE')
then 1925 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1926 & ipoinp,inp,ipoinpc)
1927 if((istat.lt.0).or.(key.eq.1))
exit 1928 read(textpart(1)(1:10),
'(i10)',iostat=istat) ialset(1)
1930 noset=textpart(1)(1:80)
1932 ipos=index(noset,
' ')
1933 noset(ipos:ipos)=selabel
1935 if(set(i).eq.noset)
then 1936 meminset(nset)=meminset(nset)+meminset(i)
1941 rmeminset(nset)=rmeminset(nset)+meminset(i)
1945 meminset(nset)=meminset(nset)+1
1946 rmeminset(nset)=rmeminset(nset)+1
1949 elseif(textpart(1)(1:9).eq.
'*SURFACE ')
then 1953 if(textpart(i)(1:5).eq.
'NAME=')
1955 set(nset)=textpart(i)(6:85)
1956 set(nset)(81:81)=
' ' 1957 elseif(textpart(i)(1:9).eq.
'TYPE=NODE')
then 1961 ipos=index(set(nset),
' ')
1962 set(nset)(ipos:ipos)=sulabel
1963 if(sulabel.eq.
'S')
then 1969 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
1970 & ipoinp,inp,ipoinpc)
1971 if((istat.lt.0).or.(key.eq.1))
exit 1972 read(textpart(1)(1:10),
'(i10)',iostat=istat) ialset(1)
1974 noset=textpart(1)(1:80)
1976 ipos=index(noset,
' ')
1977 noset(ipos:ipos)=selabel
1979 if(set(i).eq.noset)
then 1980 meminset(nset)=meminset(nset)+meminset(i)
1985 rmeminset(nset)=rmeminset(nset)+meminset(i)
1989 meminset(nset)=meminset(nset)+1
1990 rmeminset(nset)=rmeminset(nset)+1
1997 if(icfd>0) nload=nload+rmeminset(nset)
1998 elseif(textpart(1)(1:16).eq.
'*SURFACEBEHAVIOR')
then 2003 if(textpart(i)(1:38).eq.
'PRESSURE-OVERCLOSURE=TABULAR')
2009 call getnewline(inpc,textpart,istat,n,key,iline,
2010 & ipol,inl,ipoinp,inp,ipoinpc)
2011 if((istat.lt.0).or.(key.eq.1))
exit 2012 read(textpart(3)(1:20),
'(f20.0)',iostat=istat)
2014 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
2015 &
"*SURFACE BEHAVIOR%")
2016 if(ntmatl.eq.0)
then 2019 ntmat=
max(ntmatl,ntmat)
2021 elseif(temperature.ne.tempact)
then 2024 ntmat=
max(ntmatl,ntmat)
2028 npmat=
max(npmatl,npmat)
2031 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
2032 & ipoinp,inp,ipoinpc)
2034 elseif(textpart(1)(1:19).eq.
'*SURFACEINTERACTION')
then 2036 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
2037 & ipoinp,inp,ipoinpc)
2038 elseif(textpart(1)(1:12).eq.
'*TEMPERATURE')
then 2041 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
2042 & ipoinp,inp,ipoinpc)
2043 elseif(textpart(1)(1:4).eq.
'*TIE')
then 2045 cyclicsymmetry=.false.
2047 if((textpart(i)(1:14).eq.
'CYCLICSYMMETRY').or.
2048 & (textpart(i)(1:10).eq.
'MULTISTAGE'))
then 2049 cyclicsymmetry=.true.
2052 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
2053 & ipoinp,inp,ipoinpc)
2054 if(.not.cyclicsymmetry) cycle
2055 if((istat.lt.0).or.(key.eq.1)) cycle
2057 slavset=textpart(1)(1:80)
2059 iposs=index(slavset,
' ')
2061 slavsets(iposs:iposs)=
'S' 2063 slavsett(iposs:iposs)=
'T' 2065 mastset=textpart(2)(1:80)
2067 iposm=index(mastset,
' ')
2069 mastsets(iposm:iposm)=
'S' 2071 mastsett(iposm:iposm)=
'T' 2077 if(set(i).eq.slavsets)
then 2080 elseif(set(i).eq.slavsett)
then 2083 elseif(set(i).eq.mastsets)
then 2086 elseif(set(i).eq.mastsett)
then 2091 if((islavset.ne.0).and.(imastset.ne.0))
then 2092 ncs=ncs+
max(multslav*meminset(islavset),
2093 & multmast*meminset(imastset))
2095 write(*,*)
'*ERROR in allocation: either the slave' 2096 write(*,*)
' surface or the master surface in a' 2097 write(*,*)
' cyclic symmetry *TIE option or both' 2098 write(*,*)
' do not exist or are no nodal surfaces' 2099 write(*,*)
' slave set:',slavset(1:iposs-1)
2100 write(*,*)
' master set:',mastset(1:iposm-1)
2103 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
2104 & ipoinp,inp,ipoinpc)
2105 elseif(textpart(1)(1:11).eq.
'*TIMEPOINTS')
then 2109 if(textpart(i)(1:8).eq.
'GENERATE')
then 2115 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
2116 & ipoinp,inp,ipoinpc)
2117 if((istat.lt.0).or.(key.eq.1))
exit 2120 write(*,*)
'*ERROR in allocation: *TIMEPOINTS' 2125 read(textpart(1)(1:20),
'(f20.0)',iostat=istat)
2127 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
2129 read(textpart(2)(1:20),
'(f20.0)',iostat=istat)
2131 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
2133 read(textpart(3)(1:20),
'(f20.0)',iostat=istat)
2135 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
2138 if((tpinc.le.0).or.(tpmin.ge.tpmax))
then 2139 write(*,*)
'*ERROR in allocation: *TIMEPOINTS' 2144 namtot=namtot+2+int((tpmax-tpmin)/tpinc)
2152 elseif(textpart(1)(1:10).eq.
'*TRANSFORM')
then 2155 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
2156 & ipoinp,inp,ipoinpc)
2157 if((istat.lt.0).or.(key.eq.1))
exit 2159 elseif(textpart(1)(1:11).eq.
'*TRANSFORMF')
then 2163 if(textpart(i)(1:8).eq.
'SURFACE=')
then 2164 surface=textpart(i)(9:88)
2165 ipos=index(surface,
' ')
2166 surface(ipos:ipos)=
'T' 2170 if(surface(1:1).ne.
' ')
then 2172 if(set(i).eq.surface)
then 2173 nload=nload+meminset(i)
2179 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
2180 & ipoinp,inp,ipoinpc)
2181 if((istat.lt.0).or.(key.eq.1))
exit 2183 elseif(textpart(1)(1:12).eq.
'*USERELEMENT')
then 2184 call userelements(textpart,n,iuel,nuel,inpc,ipoinpc,iline)
2185 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
2186 & ipoinp,inp,ipoinpc)
2187 elseif(textpart(1)(1:13).eq.
'*USERMATERIAL')
then 2190 if(textpart(i)(1:10).eq.
'CONSTANTS=')
then 2191 read(textpart(i)(11:20),
'(i10)',iostat=istat)
2193 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
2195 ncmat=
max(nconstants,ncmat)
2200 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
2201 & ipoinp,inp,ipoinpc)
2202 if((istat.lt.0).or.(key.eq.1))
exit 2204 ntmat=
max(ntmatl,ntmat)
2206 do i=2,nconstants/8+1
2207 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
2208 & inl,ipoinp,inp,ipoinpc)
2212 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
2213 & ipoinp,inp,ipoinpc)
2218 nalset=nalset+rmeminset(i)
2219 maxrmeminset=
max(maxrmeminset,rmeminset(i))
2225 nalset=nalset+maxrmeminset
2230 if(irstrt.eq.0)
then 2232 ne2d=necper+necpsr+necaxr+nesr
2238 if(necaxr.gt.0) ntie=
max(1,ntie)
2245 nk=nk+3*8*ne2d+8*3*ne1d
2249 elseif(ne2d.gt.0)
then 2263 nk=nk+(2+3)*8*ne2d+(2+8)*3*ne1d
2267 nmpc=nmpc+3*(3*8*ne2d+8*3*ne1d)
2271 memmpc=memmpc+9*3*(3*8*ne2d+8*3*ne1d)
2275 nboun=nboun+3*(3*8*ne2d+8*3*ne1d)
2279 nmpc=nmpc+(3*8*ne2d+8*3*ne1d)
2280 memmpc=memmpc+2*(3*8*ne2d+8*3*ne1d)
2285 nmpc=nmpc+3*8*ne2d+8*3*ne1d
2286 memmpc=memmpc+3*(3*8*ne2d+8*3*ne1d)
2301 norien=norien+nesr*mi(3)
2304 write(*,*)
' The numbers below are estimated upper bounds' 2306 write(*,*)
' number of:' 2308 write(*,*)
' nodes: ',nk
2309 write(*,*)
' elements: ',ne
2310 write(*,*)
' one-dimensional elements: ',ne1d
2311 write(*,*)
' two-dimensional elements: ',ne2d
2312 write(*,*)
' integration points per element: ',mi(1)
2313 write(*,*)
' degrees of freedom per node: ',mi(2)
2314 write(*,*)
' layers per element: ',mi(3)
2316 write(*,*)
' distributed facial loads: ',nload
2317 write(*,*)
' distributed volumetric loads: ',nbody
2318 write(*,*)
' concentrated loads: ',nforc
2319 write(*,*)
' single point constraints: ',nboun
2320 write(*,*)
' multiple point constraints: ',nmpc
2321 write(*,*)
' terms in all multiple point constraints: ',memmpc
2322 write(*,*)
' tie constraints: ',ntie
2323 write(*,*)
' dependent nodes tied by cyclic constraints: ',ncs
2324 write(*,*)
' dependent nodes in pre-tension constraints: ',npt
2326 write(*,*)
' sets: ',nset
2327 write(*,*)
' terms in all sets: ',nalset
2329 write(*,*)
' materials: ',nmat
2330 write(*,*)
' constants per material and temperature: ',ncmat
2331 write(*,*)
' temperature points per material: ',ntmat
2332 write(*,*)
' plastic data points per material: ',npmat
2334 write(*,*)
' orientations: ',norien
2335 write(*,*)
' amplitudes: ',nam
2336 write(*,*)
' data points in all amplitudes: ',namtot
2337 write(*,*)
' print requests: ',nprint
2338 write(*,*)
' transformations: ',ntrans
2339 write(*,*)
' property cards: ',nprop
#define max(a, b)
Definition: cascade.c:32
#define min(a, b)
Definition: cascade.c:31
subroutine restartshort(nset, nload, nbody, nforc, nboun, nk, ne, nmpc, nalset, nmat, ntmat, npmat, norien, nam, nprint, mi, ntrans, ncs, namtot, ncmat, memmpc, ne1d, ne2d, nflow, set, meminset, rmeminset, jobnamec, irestartstep, icntrl, ithermal, nener, nstate_, ntie, nslavs, nkon, mcs, nprop, mortar, ifacecount, nintpoint, infree)
Definition: restartshort.f:25
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21
subroutine userelements(textpart, n, iuel, nuel, inpc, ipoinpc, iline)
Definition: userelements.f:21
subroutine nidentk(x, px, n, id, k)
Definition: nidentk.f:27