27 character*1 type,inpc(*)
29 character*20 label,newlabel
30 character*81 set(*),noset,elset,noelset
31 character*132 textpart(16)
33 integer nset,nset_,nalset,nalset_,istep,istat,n,key,i,nk,ne,
34 & j,istartset(*),iendset(*),ialset(*),ipos,iline,ipol,inl,
35 & ipoinp(2,*),inp(3,*),iside,l,k,kstart,kend,ipoinpc(0:*),
39 write(*,*)
'*ERROR reading *SURFACE: *SURFACE should be placed' 40 write(*,*)
' before all step definitions' 50 if(textpart(i)(1:5).eq.
'NAME=')
52 noelset(1:80)=textpart(i)(6:85)
54 if(textpart(i)(86:86).ne.
' ')
then 56 &
'*ERROR reading *SURFACE: surface name too long' 57 write(*,*)
' (more than 80 characters)' 58 write(*,*)
' surface name:',textpart(i)(1:132)
61 elseif(textpart(i)(1:5).eq.
'TYPE=')
then 62 if(textpart(i)(6:12).eq.
'ELEMENT')
then 64 elseif(textpart(i)(6:9).eq.
'NODE')
then 68 &
'*ERROR reading *SURFACE: unknown surface type' 73 &
'*WARNING reading *SURFACE: parameter not recognized:' 75 & textpart(i)(1:index(textpart(i),
' ')-1)
81 ipos=index(noelset,
' ')
83 write(*,*)
'*ERROR reading *SURFACE: no name specified' 86 noelset(ipos:ipos)=
type 92 if(set(iset).eq.noelset)
then 96 if(iendset(iset).eq.nalset)
then 102 nn=iendset(iset)-istartset(iset)+1
103 if(nalset+nn.gt.nalset_)
then 104 write(*,*)
'*ERROR in noelsets: increase nalset_' 108 ialset(nalset+k)=ialset(istartset(iset)+k-1)
110 do k=istartset(iset),nalset
111 ialset(k)=ialset(k+nn)
114 if(istartset(k).gt.iendset(iset))
then 115 istartset(k)=istartset(k)-nn
116 iendset(k)=iendset(k)-nn
119 istartset(iset)=nalset-nn+1
125 if(iset.gt.nset)
then 127 if(nset.gt.nset_)
then 128 write(*,*)
'*ERROR in noelsets: increase nset_' 132 istartset(nset)=nalset+1
142 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
143 & ipoinp,inp,ipoinpc)
144 if((istat.lt.0).or.(key.eq.1))
then 145 if(iendset(nset).eq.0)
then 151 write(*,*)
'*ERROR reading *SURFACE: only one entry per' 152 write(*,*)
' line allowed' 157 if(nalset+1.gt.nalset_)
then 158 write(*,*)
'*ERROR reading *SURFACE: increase nalset_' 162 read(textpart(1)(1:10),
'(i10)',iostat=istat)ialset(nalset+1)
164 noset=textpart(1)(1:80)
166 ipos=index(noset,
' ')
169 if(set(i).eq.noset)
then 170 do j=istartset(i),iendset(i)
171 if(ialset(j).gt.0)
then 173 if(nalset.gt.nalset_)
then 175 &
'*ERROR reading *SURFACE: increase nalset_' 178 ialset(nalset)=ialset(j)
180 kstart=ialset(nalset-1)
183 kincrement=-ialset(j)
184 do k=kstart+kincrement,kend,kincrement
186 if(nalset.gt.nalset_)
then 188 &
'*ERROR reading *SURFACE: increase nalset_' 201 write(*,*)
'*ERROR reading *SURFACE: node set ',noset
202 write(*,*)
' does not exist' 206 if(ialset(nalset+1).gt.nk)
then 207 write(*,*)
'*WARNING reading *SURFACE: value ',
209 write(*,*)
' in set ',set(iset),
' > nk' 222 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
223 & ipoinp,inp,ipoinpc)
224 if((istat.lt.0).or.(key.eq.1))
then 225 if(iendset(nset).eq.0)
then 230 if(nalset+1.gt.nalset_)
then 231 write(*,*)
'*ERROR reading *SURFACE: increase nalset_' 235 read(textpart(2)(1:20),
'(a20)',iostat=istat) label
237 if(label(2:4).eq.
'NEG')
then 239 elseif(label(2:4).eq.
'POS')
then 242 if(label(2:2).eq.
'N')
then 244 elseif(label(2:2).eq.
'P')
then 248 if((label(1:2).ne.
'S1').and.(label(1:2).ne.
'S2').and.
249 & (label(1:2).ne.
'S3').and.(label(1:2).ne.
'S4').and.
250 & (label(1:2).ne.
'S5').and.(label(1:2).ne.
'S6'))
then 255 read(textpart(1)(1:10),
'(i10)',iostat=istat)l
257 elset=textpart(1)(1:80)
259 ipos=index(elset,
' ')
262 if(set(i).eq.elset)
then 263 do j=istartset(i),iendset(i)
269 if(nalset.gt.nalset_)
then 271 &
'*ERROR reading *SURFACE: increase nalset_' 275 if((lakon(l)(1:2).eq.
'CP').or.
276 & (lakon(l)(2:2).eq.
'A'))
then 277 if(label(1:2).eq.
'S1')
then 279 elseif(label(1:2).eq.
'S2')
then 281 elseif(label(1:2).eq.
'S3')
then 283 elseif(label(1:2).eq.
'S4')
then 285 elseif(label(1:2).eq.
'S5')
then 287 elseif(label(1:2).eq.
'S6')
then 291 read(newlabel(2:2),
'(i1)',iostat=istat) iside
292 ialset(nalset)=iside+10*l
296 kincrement=-ialset(j)
297 do l=kstart+kincrement,kend,kincrement
299 if(nalset.gt.nalset_)
then 301 &
'*ERROR reading *SURFACE: increase nalset_' 305 if((lakon(l)(1:2).eq.
'CP').or.
306 & (lakon(l)(2:2).eq.
'A'))
then 307 if(label(1:2).eq.
'S1')
then 309 elseif(label(1:2).eq.
'S2')
then 311 elseif(label(1:2).eq.
'S3')
then 313 elseif(label(1:2).eq.
'S4')
then 315 elseif(label(1:2).eq.
'S5')
then 317 elseif(label(1:2).eq.
'S6')
then 321 read(newlabel(2:2),
'(i1)',iostat=istat)
323 ialset(nalset)=iside+10*l
333 write(*,*)
'*ERROR reading *SURFACE: element set ',
335 write(*,*)
' does not exist' 340 write(*,*)
'*WARNING reading *SURFACE: element ',
342 write(*,*)
' in set ',set(iset),
' > ne' 345 if((lakon(l)(1:2).eq.
'CP').or.
346 & (lakon(l)(2:2).eq.
'A'))
then 347 if(label(1:2).eq.
'S1')
then 349 elseif(label(1:2).eq.
'S2')
then 351 elseif(label(1:2).eq.
'S3')
then 353 elseif(label(1:2).eq.
'S4')
then 355 elseif(label(1:2).eq.
'S5')
then 357 elseif(label(1:2).eq.
'S6')
then 361 read(newlabel(2:2),
'(i1)',iostat=istat) iside
363 ialset(nalset)=iside+10*l
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21