30 character*132 textpart(16)
32 integer imat,ntmat_,ntmat,npmat_,npmat,istep,nelcon(2,*),
33 & n,key,i,nplicon(0:ntmat_,*),nplkcon(0:ntmat_,*),istat,
34 & iline,ipol,inl,ipoinp(2,*),inp(3,*),ipoinpc(0:*)
36 real*8 plicon(0:2*npmat_,ntmat_,*),plkcon(0:2*npmat_,ntmat_,*),
45 write(*,*)
'*ERROR reading *CHANGE PLASTIC: *CHANGE PLASTIC' 46 write(*,*)
' should only be used within a STEP' 50 if((nelcon(1,imat).ne.-51).and.
51 & (nelcon(1,imat).ne.-52))
then 52 write(*,*)
'*ERROR reading *CHANGE PLASTIC: *CHANGE PLASTIC' 53 write(*,*)
' can only be used to change the plastic' 54 write(*,*)
' definition of an elastically isotropic' 55 write(*,*)
' material with *PLASTIC data' 60 if(textpart(i)(1:10).eq.
'HARDENING=')
then 61 if(textpart(i)(11:19).eq.
'KINEMATIC')
then 63 elseif(textpart(i)(11:18).eq.
'COMBINED')
then 64 write(*,*)
'*ERROR reading *CHANGE PLASTIC' 65 write(*,*)
' combined hardening is not allowed' 67 elseif(textpart(i)(11:14).eq.
'USER')
then 68 write(*,*)
'*ERROR reading *CHANGE PLASTIC' 69 write(*,*)
' parameter USER is not allowed' 75 &
'*WARNING reading *CHANGE PLASTIC: parameter not recognized:' 77 & textpart(i)(1:index(textpart(i),
' ')-1)
88 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
90 if((istat.lt.0).or.(key.eq.1))
exit 91 read(textpart(3)(1:20),
'(f20.0)',iostat=istat) temperature
92 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
100 if(ntmat.gt.ntmat_)
then 101 write(*,*)
'*ERROR reading *CHANGE PLASTIC:' 102 write(*,*)
' more temperature data points' 103 write(*,*)
' than underneath the *PLASTIC card' 106 nplicon(0,imat)=ntmat
107 plicon(0,ntmat,imat)=temperature
111 elseif(plicon(0,ntmat,imat).ne.temperature)
then 114 if(ntmat.gt.ntmat_)
then 115 write(*,*)
'*ERROR reading *CHANGE PLASTIC:' 116 write(*,*)
' more temperature data points' 117 write(*,*)
' than underneath the *PLASTIC card' 120 nplicon(0,imat)=ntmat
121 plicon(0,ntmat,imat)=temperature
124 read(textpart(i)(1:20),
'(f20.0)',iostat=istat)
125 & plicon(2*npmat+i,ntmat,imat)
126 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
130 if(npmat.gt.npmat_)
then 131 write(*,*)
'*ERROR reading *CHANGE PLASTIC:' 132 write(*,*)
' more stress versus equivalent' 133 write(*,*)
' plastic strain data points' 134 write(*,*)
' than underneath the *PLASTIC card' 137 nplicon(ntmat,imat)=npmat
144 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
145 & ipoinp,inp,ipoinpc)
146 if((istat.lt.0).or.(key.eq.1))
exit 147 read(textpart(3)(1:20),
'(f20.0)',iostat=istat) temperature
148 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
156 if(ntmat.gt.ntmat_)
then 157 write(*,*)
'*ERROR reading *CHANGE PLASTIC:' 158 write(*,*)
' more temperature data points' 159 write(*,*)
' than underneath the *PLASTIC card' 162 nplkcon(0,imat)=ntmat
163 plkcon(0,ntmat,imat)=temperature
167 elseif(plkcon(0,ntmat,imat).ne.temperature)
then 170 if(ntmat.gt.ntmat_)
then 171 write(*,*)
'*ERROR reading *CHANGE PLASTIC:' 172 write(*,*)
' more temperature data points' 173 write(*,*)
' than underneath the *PLASTIC card' 176 nplkcon(0,imat)=ntmat
177 plkcon(0,ntmat,imat)=temperature
180 read(textpart(i)(1:20),
'(f20.0)',iostat=istat)
181 & plkcon(2*npmat+i,ntmat,imat)
182 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
186 if(npmat.gt.npmat_)
then 187 write(*,*)
'*ERROR reading *CHANGE PLASTIC:' 188 write(*,*)
' more stress versus equivalent' 189 write(*,*)
' plastic strain data points' 190 write(*,*)
' than underneath the *PLASTIC card' 193 nplkcon(ntmat,imat)=npmat
198 write(*,*)
'*ERROR reading *CHANGE PLASTIC:' 199 write(*,*)
' *CHANGE PLASTIC card without data'
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21