27       logical contactpair,add,remove,element 
    30       character*81 tieset(3,*),noelset,set(*)
    31       character*132 textpart(16)
    33       integer istat,n,i,key,ipos,iline,ipol,inl,ipoinp(2,*),ipkon(*),
    34      &  inp(3,*),ntie,ipoinpc(0:*),iposslave,iposmaster,itie,istep,
    35      &  iset,j,k,m,nset,ne,istartset(*),iendset(*),ialset(*),nelem
    38          write(*,*) 
'*ERROR reading *MODEL CHANGE: *MODEL CHANGE'    39          write(*,*) 
'       cannot be used before the first step'    49          if(textpart(i)(1:16).eq.
'TYPE=CONTACTPAIR') 
then    51          elseif(textpart(i)(1:12).eq.
'TYPE=ELEMENT') 
then    53          elseif(textpart(i)(1:3).eq.
'ADD') 
then    55          elseif(textpart(i)(1:6).eq.
'REMOVE') 
then    59      &       
'*WARNING reading *MODEL CHANGE: parameter not recognized:'    61      &                 textpart(i)(1:index(textpart(i),
' ')-1)
    69       if((.not.contactpair).and.(.not.element)) 
then    70          write(*,*) 
'*ERROR reading *MODEL CHANGE: model change can'    71          write(*,*) 
'       only be used for contact pairs or elements'    75       if((contactpair).and.(element)) 
then    76          write(*,*) 
'*ERROR reading *MODEL CHANGE: model change cannot'    77          write(*,*) 
'       be used for contact pairs and elements at'    78          write(*,*) 
'       the same time'    82       if((.not.add).and.(.not.remove)) 
then    83          write(*,*) 
'*ERROR reading *MODEL CHANGE: at least ADD or'    84          write(*,*) 
'        REMOVE has to be selected'    88       if(add.and.remove) 
then    89          write(*,*) 
'*ERROR reading *MODEL CHANGE: ADD and REMOVE'    90          write(*,*) 
'       cannot both be selected'    97          call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
    99          if((istat.lt.0).or.(key.eq.1)) 
then   100             write(*,*)
'*ERROR reading *MODEL CHANGE: definition of the '   101             write(*,*) 
'      contact pair is not complete.'   107          iposslave=index(textpart(1)(1:80),
' ')
   108          iposmaster=index(textpart(2)(1:80),
' ')
   110             if((tieset(1,i)(81:81).ne.
'C').and.
   111      &           (tieset(1,i)(81:81).ne.
'-')) cycle
   112             ipos=index(tieset(2,i),
' ')-1
   113             if(ipos.ne.iposslave) cycle
   114             if(tieset(2,i)(1:ipos-1).ne.textpart(1)(1:ipos-1)) cycle
   115             ipos=index(tieset(3,i),
' ')-1
   116             if(ipos.ne.iposmaster) cycle
   117             if(tieset(3,i)(1:ipos-1).ne.textpart(2)(1:ipos-1)) cycle
   123             tieset(1,itie)(81:81)=
'C'   125             tieset(1,itie)(81:81)=
'-'   128          call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
   129      &        ipoinp,inp,ipoinpc)
   135             call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
   136      &           ipoinp,inp,ipoinpc)
   137             if((istat.lt.0).or.(key.eq.1)) 
return   139                read(textpart(i)(1:10),
'(i10)',iostat=istat) 
   145                   noelset=textpart(i)(1:80)
   147                   ipos=index(noelset,
' ')
   148                   noelset(ipos:ipos)=
'E'   151                      if(noelset.eq.set(j)) 
then   152                         m=iendset(j)-istartset(j)+1
   154                            nelem=ialset(istartset(j)+k-1)
   155                            ipkon(nelem)=-2-ipkon(nelem)
   160                   if(noelset.ne.set(j)) 
then   161                      noelset(ipos:ipos)=
' '   162                      write(*,*) 
'*ERROR in noelsets: element set ',
   164                      write(*,*) 
'       has not been defined yet'   172                      write(*,*) 
'*WARNING in noelsets: element ',
   176                      ipkon(nelem)=-2-ipkon(nelem)
 
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21