31 character*80 matname(*),orname(*),material,orientation
32 character*81 set(*),elset
33 character*132 textpart(16)
35 integer mi(*),istartset(*),iendset(*),ialset(*),ielmat(mi(3),*),
36 & ielorien(mi(3),*),kon(*),ipkon(*),indexe,irstrt,nset,nmat,
37 & norien,ielem,node1,node2,m,indexx,ixfree,iponor(2,*),
38 & istep,istat,n,key,i,j,k,l,imaterial,iorientation,ipos,
39 & iline,ipol,inl,ipoinp(2,*),inp(3,*),mcs,iaxial,ipoinpc(0:*),
42 real*8 thicke(mi(3),*),
thickness,pi,cs(17,*),xn(3),co(3,*),p(3),
45 if((istep.gt.0).and.(irstrt.ge.0))
then 46 write(*,*)
'*ERROR reading *SOLID SECTION: *SOLID SECTION' 47 write(*,*)
' should be placed before all step definitions' 60 if(textpart(i)(1:9).eq.
'MATERIAL=')
then 61 material=textpart(i)(10:89)
62 elseif(textpart(i)(1:12).eq.
'ORIENTATION=')
then 63 orientation=textpart(i)(13:92)
64 elseif(textpart(i)(1:6).eq.
'ELSET=')
then 65 elset=textpart(i)(7:86)
71 &
'*WARNING reading *SOLID SECTION: parameter not recognized:' 73 & textpart(i)(1:index(textpart(i),
' ')-1)
82 if(matname(i).eq.material)
exit 86 if(matname(i)(1:11).eq.
'ANISO_CREEP')
then 87 if(matname(i)(12:20).eq.material(1:9))
exit 88 elseif(matname(i)(1:10).eq.
'ANISO_PLAS')
then 89 if(matname(i)(11:20).eq.material(1:10))
exit 95 &
'*ERROR reading *SOLID SECTION: nonexistent material' 103 if(orientation.eq.
' ')
then 118 if(orname(i).eq.orientation)
exit 122 &
'*ERROR reading *SOLID SECTION: nonexistent orientation' 132 write(*,*)
'*ERROR reading *SOLID SECTION: no element set ',
134 write(*,*)
' was been defined. ' 140 if(set(i).eq.elset)
exit 144 write(*,*)
'*ERROR reading *SOLID SECTION: element set ',elset
145 write(*,*)
' has not yet been defined. ' 154 do j=istartset(i),iendset(i)
155 if(ialset(j).gt.0)
then 156 if((lakon(ialset(j))(1:1).eq.
'B').or.
157 & (lakon(ialset(j))(1:1).eq.
'S'))
then 159 &
'*ERROR reading *SOLID SECTION: *SOLID SECTION can' 160 write(*,*)
' not be used for beam or shell elements 162 write(*,*)
' Faulty element: ',ialset(j)
165 ielmat(1,ialset(j))=imaterial
166 ielorien(1,ialset(j))=iorientation
171 if(k.ge.ialset(j-1))
exit 172 if((lakon(k)(1:1).eq.
'B').or.
173 & (lakon(k)(1:1).eq.
'S'))
then 174 write(*,*)
'*ERROR reading *SOLID SECTION: *SOLID SECT 176 write(*,*)
' not be used for beam or shell eleme 178 write(*,*)
' Faulty element: ',k
181 ielmat(1,k)=imaterial
182 ielorien(1,k)=iorientation
187 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
188 & ipoinp,inp,ipoinpc)
195 read(textpart(1)(1:20),
'(f20.0)',iostat=istat)
thickness 196 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
204 if(iaxial.eq.180)
then 205 if(lakon(ialset(istartset(i)))(1:2).eq.
'CA')
then 207 elseif(lakon(ialset(istartset(i)))(1:3).eq.
'CPS')
then 209 elseif(lakon(ialset(istartset(i)))(1:3).eq.
'CPE')
then 220 do j=istartset(i),iendset(i)
221 if(ialset(j).gt.0)
then 222 if((lakon(ialset(j))(1:2).eq.
'CP').or.
223 & (lakon(ialset(j))(1:2).eq.
'CA'))
then 227 indexe=ipkon(ialset(j))
231 elseif(lakon(ialset(j))(1:1).eq.
'T')
then 237 lakon(ielem)(8:8)=
'R' 240 if(lakon(ielem)(4:4).eq.
'2')
then 250 xn(l)=co(l,node2)-co(l,node1)
252 if(dabs(xn(1)).gt.0.d0)
then 256 elseif(dabs(xn(2)).gt.0.d0)
then 265 dd=dsqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
266 if(dd.lt.1.d-10)
then 268 &
'*ERROR reading *SOLID SECTION: normal' 269 write(*,*)
' in direction 1 has zero size' 283 iponor(1,indexe+l)=indexx
290 if(k.ge.ialset(j-1))
exit 291 if((lakon(k)(1:2).eq.
'CP').or.
292 & (lakon(k)(1:2).eq.
'CA'))
then 297 elseif(lakon(k)(1:1).eq.
'T')
then 305 if(lakon(k)(4:4).eq.
'2')
then 315 xn(l)=co(l,node2)-co(l,node1)
317 if(dabs(xn(1)).gt.0.d0)
then 321 elseif(dabs(xn(2)).gt.0.d0)
then 330 dd=dsqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
331 if(dd.lt.1.d-10)
then 333 &
'*ERROR reading *SOLID SECTION: normal' 334 write(*,*)
' in direction 1 has zero size' 348 iponor(1,indexe+l)=indexx
360 do j=istartset(i),iendset(i)
361 if(ialset(j).gt.0)
then 362 if(lakon(ialset(j))(1:2).eq.
'CA')
then 368 indexe=ipkon(ialset(j))
377 if(k.ge.ialset(j-1))
exit 378 if(lakon(k)(1:2).eq.
'CA')
then 395 do j=istartset(i),iendset(i)
396 if(ialset(j).gt.0)
then 397 if(lakon(ialset(j))(1:2).eq.
'CA')
then 399 write(*,*)
'*ERROR reading *SOLID SECTION: ' 400 write(*,*)
' axisymmetric elements cannot be 401 &combined with cyclic symmetry' 403 elseif(mcs.eq.1)
then 404 if(int(cs(1,1)).ne.int(2.d0*pi/
thickness+0.5d0))
406 write(*,*)
'*ERROR reading *SOLID SECTION: ' 407 write(*,*)
' it is not allowed to define t 409 write(*,*)
' angles for an axisymmetric st 436 if(k.ge.ialset(j-1))
exit 438 if(lakon(k)(1:2).eq.
'CA')
then 440 write(*,*)
'*ERROR reading *SOLID SECTION: ' 441 write(*,*)
' axisymmetric elements cannot 442 &be combined with cyclic symmetry' 444 elseif(mcs.eq.1)
then 445 if(int(cs(1,1)).ne.int(2.d0*pi/
thickness+0.5d0))
447 write(*,*)
'*ERROR reading *SOLID SECTION: ' 448 write(*,*)
' it is not allowed to defin 450 write(*,*)
' angles for an axisymmetric 478 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
479 & ipoinp,inp,ipoinpc)
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21
subroutine thickness(dgdx, nobject, nodedesiboun, ndesiboun, objectset, xo, yo, zo, x, y, z, nx, ny, nz, co, ifree, ndesia, ndesib, iobject, ndesi, dgdxglob, nk)
Definition: thickness.f:22