32       character*80 matname(*),orname(*),material,orientation
    33       character*81 set(*),elset
    34       character*132 textpart(16)
    36       integer istartset(*),iendset(*),ialset(*),mi(*),ielmat(mi(3),*),
    38      &  ielorien(mi(3),*),ipkon(*),iline,ipol,inl,ipoinp(2,*),
    39      &  inp(3,*),nset,nmat,norien,istep,istat,n,key,i,j,k,l,imaterial,
    40      &  iorientation,ipos,m,iponor(2,*),ixfree,
    41      &  indexx,indexe,irstrt,nelcon(2,*)
    43       real*8 thicke(mi(3),*),thickness1,thickness2,p(3),xnor(*),
    47       if((istep.gt.0).and.(irstrt.ge.0)) 
then    49      &       
'*ERROR reading *BEAM SECTION: *BEAM SECTION should'    50          write(*,*) 
'  be placed before all step definitions'    62          if(textpart(i)(1:9).eq.
'MATERIAL=') 
then    63             material=textpart(i)(10:89)
    64          elseif(textpart(i)(1:12).eq.
'ORIENTATION=') 
then    65             orientation=textpart(i)(13:92)
    66          elseif(textpart(i)(1:6).eq.
'ELSET=') 
then    67             elset=textpart(i)(7:86)
    71          elseif(textpart(i)(1:8).eq.
'SECTION=') 
then    72             if(textpart(i)(9:12).eq.
'CIRC') 
then    74             elseif(textpart(i)(9:12).eq.
'RECT') 
then    78      &           
'*ERROR reading *BEAM SECTION: unknown section'    81          elseif(textpart(i)(1:8).eq.
'OFFSET1=') 
then    82             read(textpart(i)(9:28),
'(f20.0)',iostat=istat) offset1
    83             if(istat.gt.0) 
call inputerror(inpc,ipoinpc,iline,
    85          elseif(textpart(i)(1:8).eq.
'OFFSET2=') 
then    86             read(textpart(i)(9:28),
'(f20.0)',iostat=istat) offset2
    87             if(istat.gt.0) 
call inputerror(inpc,ipoinpc,iline,
    91      &       
'*WARNING reading *BEAM SECTION: parameter not recognized:'    93      &                 textpart(i)(1:index(textpart(i),
' ')-1)
   101       if(section.eq.
'    ') 
then   102          write(*,*) 
'*ERROR reading *BEAM SECTION: no section defined'   109          if(matname(i).eq.material) 
exit   112          write(*,*) 
'*ERROR reading *BEAM SECTION: nonexistent material'   123       elseif(nelcon(1,i).eq.2) 
then   124          write(*,*) 
'*INFO reading *SOLID SECTION: an orientation'   125          write(*,*) 
'      is for isotropic materials irrelevant'   131             if(orname(i).eq.orientation) 
exit   135      &         
'*ERROR reading *BEAM SECTION: nonexistent orientation'   145          if(set(i).eq.elset) 
exit   149          write(*,*) 
'*ERROR reading *BEAM SECTION: element set ',
   151          write(*,*) 
'  has not yet been defined. '   160       do j=istartset(i),iendset(i)
   161          if(ialset(j).gt.0) 
then   162             if(lakon(ialset(j))(1:1).ne.
'B') 
then   164      &           
'*ERROR reading *BEAM SECTION: *BEAM SECTION can'   165                write(*,*) 
'       only be used for beam elements.'   166                write(*,*) 
'       Element ',ialset(j),
' is not a beam el   170             ielmat(1,ialset(j))=imaterial
   171             ielorien(1,ialset(j))=iorientation
   172             offset(1,ialset(j))=offset1
   173             offset(2,ialset(j))=offset2
   174             if(section.eq.
'RECT') 
then   175                lakon(ialset(j))(8:8)=
'R'   177                lakon(ialset(j))(8:8)=
'C'   183                if(k.ge.ialset(j-1)) 
exit   184                if(lakon(k)(1:1).ne.
'B') 
then   186      &              
'*ERROR reading *BEAM SECTION: *BEAM SECTION can'   187                   write(*,*) 
'       only be used for beam elements.'   188                   write(*,*) 
'       Element ',k,
' is not a beam element   192                ielmat(1,k)=imaterial
   193                ielorien(1,k)=iorientation
   196                if(section.eq.
'RECT') 
then   205       call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
   206      &     ipoinp,inp,ipoinpc)
   210       read(textpart(1)(1:20),
'(f20.0)',iostat=istat) thickness1
   213      &   
'*ERROR reading *BEAM SECTION: first beam thickness is lacking'   218          read(textpart(2)(1:20),
'(f20.0)',iostat=istat) thickness2
   221      &        
'*ERROR reading *BEAM SECTION: ',
   222      &        
'second beam thickness is lacking'   227          thickness2=thickness1
   229       do j=istartset(i),iendset(i)
   230          if(ialset(j).gt.0) 
then   231             indexe=ipkon(ialset(j))
   233                thicke(1,indexe+l)=thickness1
   234                thicke(2,indexe+l)=thickness2
   240                if(k.ge.ialset(j-1)) 
exit   243                   thicke(1,indexe+l)=thickness1
   244                   thicke(2,indexe+l)=thickness2
   250       call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
   251      &     ipoinp,inp,ipoinpc)
   252       if((istat.lt.0).or.(key.eq.1)) 
return   257       read(textpart(1)(1:20),
'(f20.0)',iostat=istat) p(1)
   258       if(istat.gt.0) 
call inputerror(inpc,ipoinpc,iline,
   260       read(textpart(2)(1:20),
'(f20.0)',iostat=istat) p(2)
   261       if(istat.gt.0) 
call inputerror(inpc,ipoinpc,iline,
   263       read(textpart(3)(1:20),
'(f20.0)',iostat=istat) p(3)
   264       if(istat.gt.0) 
call inputerror(inpc,ipoinpc,iline,
   266       dd=dsqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
   267       if(dd.lt.1.d-10) 
then   269      &       
'*ERROR reading *BEAM SECTION: normal in direction 1'   270          write(*,*) 
'       has zero size'   276       do j=istartset(i),iendset(i)
   277          if(ialset(j).gt.0) 
then   278             indexe=ipkon(ialset(j))
   280                if(indexx.eq.-1) 
then   287                iponor(1,indexe+l)=indexx
   293                if(k.ge.ialset(j-1)) 
exit   296                if(indexx.eq.-1) 
then   303                iponor(1,indexe+l)=indexx
   309       call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
   310      &     ipoinp,inp,ipoinpc)
 
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21