32 character*80 matname(*)
33 character*81 set(*),elset
34 character*132 textpart(16)
36 integer nelcon(2,*),nmat,ntmat_,ntmat,npmat_,npmat,istep,mi(*),
37 & n,key,i,nplicon(0:ntmat_,*),ncmat_,istat,istartset(*),
38 & iendset(*),irstrt,iline,ipol,inl,ipoinp(2,*),inp(3,*),nmat_,
39 & ialset(*),ipos,nset,j,k,ielmat(mi(3),*),ielorien(mi(3),*),
42 real*8 plicon(0:2*npmat_,ntmat_,*),xfreq,temperature,
43 & elcon(0:ncmat_,ntmat_,*)
50 if((istep.gt.0).and.(irstrt.ge.0))
then 51 write(*,*)
'*ERROR reading *DASHPOT: *DASHPOT should be placed' 52 write(*,*)
' before all step definitions' 57 if(nmat.gt.nmat_)
then 58 write(*,*)
'*ERROR reading *DASHPOT: increase nmat_' 61 matname(nmat)(1:7)=
'DASHPOT' 63 matname(nmat)(i:i)=
' ' 67 if(textpart(i)(1:6).eq.
'ELSET=')
then 68 elset=textpart(i)(7:86)
74 &
'*WARNING reading *DASHPOT: parameter not recognized:' 76 & textpart(i)(1:index(textpart(i),
' ')-1)
85 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
87 if((istat.lt.0).or.(key.eq.1))
return 88 read(textpart(2)(1:20),
'(f20.0)',iostat=istat)
90 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
92 if(xfreq.gt.0.d0) frequency=.true.
95 if(.not.frequency)
then 101 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
102 & ipoinp,inp,ipoinpc)
103 if((istat.lt.0).or.(key.eq.1))
exit 106 if(ntmat.gt.ntmat_)
then 107 write(*,*)
'*ERROR reading *DASHPOT: increase ntmat_' 111 read(textpart(i)(1:20),
'(f20.0)',iostat=istat)
112 & elcon(i,ntmat,nmat)
113 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
116 if(textpart(3)(1:1).ne.
' ')
then 117 read(textpart(3)(1:20),
'(f20.0)',iostat=istat)
118 & elcon(0,ntmat,nmat)
119 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
122 elcon(0,ntmat,nmat)=0.d0
131 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
132 & ipoinp,inp,ipoinpc)
133 if((istat.lt.0).or.(key.eq.1))
exit 134 read(textpart(3)(1:20),
'(f20.0)',iostat=istat) temperature
135 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
143 if(ntmat.gt.ntmat_)
then 144 write(*,*)
'*ERROR reading *DASHPOT: increase ntmat_' 147 nplicon(0,nmat)=ntmat
148 plicon(0,ntmat,nmat)=temperature
152 elseif(plicon(0,ntmat,nmat).ne.temperature)
then 155 if(ntmat.gt.ntmat_)
then 156 write(*,*)
'*ERROR reading *DASHPOT: increase ntmat_' 159 nplicon(0,nmat)=ntmat
160 plicon(0,ntmat,nmat)=temperature
163 read(textpart(i)(1:20),
'(f20.0)',iostat=istat)
164 & plicon(2*npmat+i,ntmat,nmat)
165 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
169 if(npmat.gt.npmat_)
then 170 write(*,*)
'*ERROR reading *DASHPOT: increase npmat_' 173 nplicon(ntmat,nmat)=npmat
178 write(*,*)
'*ERROR reading *DASHPOT: *DASHPOT card without data' 182 if(set(i).eq.elset)
exit 186 write(*,*)
'*ERROR reading *DASHPOT: element set ',elset
187 write(*,*)
' has not yet been defined. ' 195 do j=istartset(i),iendset(i)
196 if(ialset(j).gt.0)
then 197 ielmat(1,ialset(j))=nmat
198 ielorien(1,ialset(j))=0
203 if(k.ge.ialset(j-1))
exit
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21