28 character*132 textpart(16)
30 integer nelcon(2,*),nmat,ntmat,ntmat_,istep,istat,ncocon(2,*),
31 & n,key,i,ncmat_,nconstants,imax,isum,j,iperturb(*),iumat,
32 & irstrt,iline,ipol,inl,ipoinp(2,*),inp(3,*),imech,ipoinpc(0:*)
34 real*8 elcon(0:ncmat_,ntmat_,*),cocon(0:6,ntmat_,*)
41 if((istep.gt.0).and.(irstrt.ge.0))
then 42 write(*,*)
'*ERROR in usermaterials: *USER MATERIAL should be' 43 write(*,*)
' placed before all step definitions' 48 write(*,*)
'*ERROR in usermaterials: *USER MATERIAL should be' 49 write(*,*)
' preceded by a *MATERIAL card' 56 if(textpart(i)(1:10).eq.
'CONSTANTS=')
then 57 read(textpart(i)(11:20),
'(i10)',iostat=istat) nconstants
58 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
60 elseif(textpart(i)(1:12).eq.
'TYPE=THERMAL')
then 64 &
'*WARNING in usermaterials: parameter not recognized:' 66 & textpart(i)(1:index(textpart(i),
' ')-1)
83 nelcon(1,nmat)=-100-nconstants
87 do j=1,(nconstants)/8+1
89 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
90 & inl,ipoinp,inp,ipoinpc)
91 if((istat.lt.0).or.(key.eq.1))
return 94 if(ntmat.gt.ntmat_)
then 96 &
'*ERROR in usermaterials: increase ntmat_' 100 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
101 & inl,ipoinp,inp,ipoinpc)
102 if((istat.lt.0).or.(key.eq.1))
then 104 &
'*ERROR in usermaterials: anisotropic definition' 105 write(*,*)
' is not complete. ' 112 if(8*j.gt.nconstants+1)
then 113 imax=nconstants-8*j+9
116 if(isum+i.le.nconstants)
then 117 read(textpart(i)(1:20),
'(f20.0)',iostat=istat)
118 & elcon(isum+i,ntmat,nmat)
120 read(textpart(i)(1:20),
'(f20.0)',iostat=istat)
121 & elcon(0,ntmat,nmat)
123 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
135 if(nconstants.gt.6)
then 136 write(*,*)
'*ERROR in usermaterials: number of' 137 write(*,*)
' thermal constants cannot exceed 6' 138 write(*,*)
' change the source code or' 139 write(*,*)
' contact the author' 142 ncocon(1,nmat)=-100-nconstants
145 call getnewline(inpc,textpart,istat,n,key,iline,ipol,
146 & inl,ipoinp,inp,ipoinpc)
147 if((istat.lt.0).or.(key.eq.1))
return 150 if(ntmat.gt.ntmat_)
then 152 &
'*ERROR in usermaterials: increase ntmat_' 157 if(i.le.nconstants)
then 158 read(textpart(i)(1:20),
'(f20.0)',iostat=istat)
159 & cocon(i,ntmat,nmat)
161 read(textpart(i)(1:20),
'(f20.0)',iostat=istat)
162 & cocon(0,ntmat,nmat)
164 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21