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