29 logical solid,beamshell,out3d
32 character*8 lakon(*),label
33 character*81 set(*),elset
35 character*132 textpart(16)
37 integer kon(*),istartset(*),iendset(*),ialset(*),ne,ne_,nset,
38 & nset_,nalset,nalset_,istep,istat,n,key,i,ielset,js,k,nn,
39 & nteller,j,ipkon(*),nkon,nope,indexe,mi(*),ipos,indexy,ixfree,
40 & iponor(2,*),nopeexp,iline,ipol,inl,ipoinp(2,*),inp(3,*),
41 & iaxial,ipoinpc(0:*),cfd,nlabel,network,iuel(4,*),nuel_,
42 & id,four,number,ndof,intpoints
47 write(*,*)
'*ERROR reading *ELEMENT: *ELEMENT should be placed' 48 write(*,*)
' before all step definitions' 62 if(textpart(i)(1:6).eq.
'ELSET=')
then 63 elset=textpart(i)(7:86)
64 if(textpart(i)(87:87).ne.
' ')
then 65 write(*,*)
'*ERROR reading *ELEMENT: set name too long' 66 write(*,*)
' (more than 80 characters)' 67 write(*,*)
' set name:',textpart(i)(1:132)
75 if(set(js).eq.elset)
then 79 if(iendset(js).eq.nalset)
then 85 nn=iendset(js)-istartset(js)+1
86 if(nalset+nn.gt.nalset_)
then 88 &
'*ERROR reading *ELEMENT: increase nalset_' 92 ialset(nalset+k)=ialset(istartset(js)+k-1)
94 do k=istartset(js),nalset
95 ialset(k)=ialset(k+nn)
98 if(istartset(k).gt.iendset(js))
then 99 istartset(k)=istartset(k)-nn
100 iendset(k)=iendset(k)-nn
103 istartset(js)=nalset-nn+1
113 if(nset.gt.nset_)
then 114 write(*,*)
'*ERROR reading *ELEMENT: increase nset_' 118 istartset(js)=nalset+1
122 elseif(textpart(i)(1:5).eq.
'TYPE=')
then 123 read(textpart(i)(6:13),
'(a8)') label
127 if((label(1:2).eq.
'DC').and.(label(1:7).ne.
'DCOUP3D'))
then 128 label(1:7)=label(2:8)
133 elseif(label(1:3).eq.
'B21')
then 135 elseif(label(1:4).eq.
'T2D2')
then 142 if((label.eq.
'C3D20 ').or.
143 & (label.eq.
'CPE8 ').or.
144 & (label.eq.
'CPS8 ').or.
145 & (label.eq.
'CAX8 ').or.
146 & (label.eq.
'M3D8 ').or.
147 & (label.eq.
'S8 ').or.
148 & (label.eq.
'T3D3 ').or.
149 & (label.eq.
'B32 ').or.
154 & (label.eq.
'C3D20R ').or.
155 & (label.eq.
'CPE8R ').or.
156 & (label.eq.
'CPS8R ').or.
157 & (label.eq.
'CAX8R ').or.
158 & (label.eq.
'M3D8R ').or.
159 & (label.eq.
'S8R ').or.
160 & (label.eq.
'B32R ').or.
165 & (label.eq.
'C3D8 ').or.
166 & (label.eq.
'CPE4 ').or.
167 & (label.eq.
'CPS4 ').or.
168 & (label.eq.
'CAX4 ').or.
169 & (label.eq.
'M3D4 ').or.
170 & (label.eq.
'S4 ').or.
171 & (label.eq.
'T3D2 ').or.
172 & (label.eq.
'B31 ').or.
177 & (label.eq.
'C3D8R ').or.
178 & (label.eq.
'CPE4R ').or.
179 & (label.eq.
'CPS4R ').or.
180 & (label.eq.
'CAX4R ').or.
181 & (label.eq.
'M3D4R ').or.
182 & (label.eq.
'S4R ').or.
183 & (label.eq.
'B31R ').or.
188 & (label.eq.
'C3D8I ').or.
193 & (label.eq.
'C3D10 ').or.
194 & (label.eq.
'C3D10T ').or.
198 & (label.eq.
'C3D4 ').or.
203 & (label.eq.
'C3D15 ').or.
204 & (label.eq.
'CPE6 ').or.
205 & (label.eq.
'CPS6 ').or.
206 & (label.eq.
'CAX6 ').or.
207 & (label.eq.
'M3D6 ').or.
208 & (label.eq.
'S6 ').or.
213 & (label.eq.
'C3D6 ').or.
214 & (label.eq.
'CPE3 ').or.
215 & (label.eq.
'CPS3 ').or.
216 & (label.eq.
'CAX3 ').or.
217 & (label.eq.
'M3D3 ').or.
218 & (label.eq.
'S3 ').or.
222 & (label.eq.
'GAPUNI ').or.
226 & (label.eq.
'SPRINGA ').or.
227 & (label.eq.
'SPRING1 ').or.
228 & (label.eq.
'SPRING2 ').or.
232 & (label.eq.
'DASHPOTA'))
238 elseif((label.eq.
'F3D8 ').or.
239 & (label.eq.
'F3D4 ').or.
240 & (label.eq.
'F3D6 '))
then 245 elseif(label(1:7).eq.
'DCOUP3D')
then 249 elseif(label(1:1).eq.
'D')
then 254 elseif(label(1:4).eq.
'MASS')
then 258 elseif(label(1:1).eq.
'U')
then 263 write(*,*)
'*ERROR reading *ELEMENT:' 264 write(*,*) label,
' is an unknown element type' 268 if(label(1:3).eq.
'CAX')
then 270 elseif((label(1:2).eq.
'S3').or.
271 & (label(1:2).eq.
'S4').or.
272 & (label(1:2).eq.
'S6').or.
273 & (label(1:2).eq.
'S8').or.
274 & (label(1:1).eq.
'B'))
then 280 &
'*WARNING reading *ELEMENT: parameter not recognized:' 282 & textpart(i)(1:index(textpart(i),
' ')-1)
288 if(label.eq.
' ')
then 289 write(*,*)
'*ERROR reading *ELEMENT: element type is lacking' 301 if(label(1:5).eq.
'C3D8I')
then 304 elseif(label(4:5).eq.
'20')
then 308 elseif((label(1:4).eq.
'CPE8').or.(label(1:4).eq.
'CPS8').or.
309 & (label(1:4).eq.
'CAX8').or.(label(1:2).eq.
'S8').or.
310 & (label(1:4).eq.
'M3D8'))
then 313 elseif((label(1:4).eq.
'CPE6').or.(label(1:4).eq.
'CPS6').or.
314 & (label(1:4).eq.
'CAX6').or.(label(1:2).eq.
'S6').or.
315 & (label(1:4).eq.
'M3D6'))
then 318 elseif((label(1:3).eq.
'B32').or.
319 & (label(1:4).eq.
'T3D3'))
then 322 elseif((label(1:4).eq.
'B31 ').or.
323 & (label(1:4).eq.
'T3D2'))
then 327 elseif(label(1:4).eq.
'B31R')
then 330 elseif(label(4:4).eq.
'8')
then 335 elseif(label(1:3).eq.
'S4 ')
then 339 elseif((label(1:4).eq.
'CPE4').or.(label(1:4).eq.
'CPS4').or.
340 & (label(1:4).eq.
'CAX4').or.(label(1:2).eq.
'S4').or.
341 & (label(1:4).eq.
'M3D4'))
then 344 elseif(label(4:5).eq.
'10')
then 347 elseif(label(4:4).eq.
'4')
then 350 elseif(label(4:5).eq.
'15')
then 353 elseif(label(4:4).eq.
'6')
then 356 elseif((label(1:4).eq.
'CPE3').or.(label(1:4).eq.
'CPS3').or.
357 & (label(1:4).eq.
'CAX3').or.(label(1:2).eq.
'S3').or.
358 & (label(1:4).eq.
'M3D3'))
then 361 elseif(label(1:8).eq.
'DASHPOTA')
then 365 elseif(label(1:7).eq.
'DCOUP3D')
then 368 elseif(label(1:1).eq.
'D')
then 371 elseif(label(1:1).eq.
'G')
then 375 elseif(label(1:7).eq.
'SPRINGA')
then 379 elseif(label(1:7).eq.
'SPRING1')
then 383 elseif(label(1:7).eq.
'SPRING2')
then 387 elseif(label(1:4).eq.
'MASS')
then 390 elseif(label(1:1).eq.
'U')
then 391 number=ichar(label(2:2))*256**3+
392 & ichar(label(3:3))*256**2+
393 & ichar(label(4:4))*256+
396 call nidentk(iuel,number,nuel_,id,four)
401 write(label(6:6),
'(a1)') char(intpoints)
402 write(label(7:7),
'(a1)') char(ndof)
403 write(label(8:8),
'(a1)') char(nope)
407 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
408 & ipoinp,inp,ipoinpc)
409 if((istat.lt.0).or.(key.eq.1))
then 421 read(textpart(1)(1:10),
'(i10)',iostat=istat) i
422 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
425 write(*,*)
'*ERROR reading *ELEMENT: increase ne_' 431 if(ipkon(i).ne.-1)
then 432 write(*,*)
'*ERROR reading *ELEMENT: element',i
433 write(*,*)
' is already defined' 448 read(textpart(j)(1:10),
'(i10)',iostat=istat) kon(indexe+j-1)
449 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
453 if(nteller.lt.nope)
then 455 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
456 & ipoinp,inp,ipoinpc)
457 if((istat.lt.0).or.(key.eq.1))
then 459 &
'*ERROR reading *ELEMENT: element definition' 460 write(*,*)
' incomplete for element ',i
463 if(nteller+n.gt.nope) n=nope-nteller
465 read(textpart(j)(1:10),
'(i10)',iostat=istat)
466 & kon(indexe+nteller+j)
467 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
471 if(nteller.eq.nope)
exit 479 if(nalset+1.gt.nalset_)
then 480 write(*,*)
'*ERROR reading *ELEMENT: increase nalset_' 491 if((label(1:2).eq.
'CP').or.(label(1:2).eq.
'CA'))
then 492 if(indexy.eq.-1)
then 500 iponor(1,indexe+j)=indexy
#define max(a, b)
Definition: cascade.c:32
#define min(a, b)
Definition: cascade.c:31
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21
subroutine nidentk(x, px, n, id, k)
Definition: nidentk.f:27