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