28 character*1 type,inpc(*)
29 character*81 set(*),noset,submset,globset,facialset,
31 character*132 textpart(16),jobnamec(*)
33 integer nset,nset_,nalset,nalset_,istep,istat,n,key,i,nk,
34 & j,istartset(*),iendset(*),ialset(*),ipos,iline,ipol,inl,
35 & ipoinp(2,*),inp(3,*),l,k,kstart,kend,ipoinpc(0:*),
36 & iglobset,kincrement,nsubmodel,kflag,idummy,nalsetold,ntie,ntie_,
37 & nlength,namta(3,*),nam,nam_,namtot_
39 real*8 tietol(3,*),amta(2,*)
45 &
'*ERROR reading *SUBMODEL: *SURFACE should be placed' 46 write(*,*)
' before all step definitions' 51 if(ntie.gt.ntie_)
then 52 write(*,*)
'*ERROR in ties: increase ntie_' 67 write(*,*)
'*ERROR reading *SUBMODEL: increase nam_' 72 &
'*ERROR reading *SUBMODEL: increase namtot_' 87 submset(1:8)=
'SUBMODEL' 88 if(nsubmodel.lt.10)
then 90 write(submset(11:11),
'(i1)') nsubmodel
91 elseif(nsubmodel.lt.100)
then 93 write(submset(10:11),
'(i2)') nsubmodel
94 elseif(nsubmodel.lt.1000)
then 95 write(submset(9:11),
'(i3)') nsubmodel
97 write(*,*)
'*ERROR reading *SUBMODEL: no more than 999' 98 write(*,*)
' submodels allowed' 106 if(textpart(i)(1:5).eq.
'TYPE=')
then 107 if(textpart(i)(6:12).eq.
'SURFACE')
then 109 elseif(textpart(i)(6:9).eq.
'NODE')
then 113 &
'*ERROR reading *SUBMODEL: unknown type' 116 elseif(textpart(i)(1:12).eq.
'GLOBALELSET=')
then 117 globset(1:80)=textpart(i)(13:92)
119 ipos=index(globset,
' ')
120 globset(ipos:ipos)=
'E' 122 if(set(iglobset).eq.globset)
exit 124 if(iglobset.gt.nset)
then 126 &
'*ERROR reading *SUBMODEL: global element set ',
128 write(*,*)
' does not exist' 131 do j=istartset(iglobset),iendset(iglobset)
132 if(ialset(j).lt.0)
then 134 &
'*ERROR reading *SUBMODEL: global element set ',
136 write(*,*)
' was defined using GENERATE;' 137 write(*,*)
' this is not allowed' 141 elseif(textpart(i)(1:6).eq.
'INPUT=')
then 142 jobnamec(4)(1:126)=textpart(i)(7:132)
143 jobnamec(4)(127:132)=
' ' 145 if(jobnamec(4)(j:j).eq.
'"')
then 147 if(jobnamec(4)(k:k).eq.
'"')
then 153 jobnamec(4)(k-1:k-1)=jobnamec(4)(k:k)
155 jobnamec(4)(126:126)=
' ' 160 &
'*WARNING reading *SUBMODEL: parameter not recognized:' 162 & textpart(i)(1:index(textpart(i),
' ')-1)
186 if(nset.gt.nset_)
then 187 write(*,*)
'*ERROR in submsets: increase nset_' 191 istartset(nset)=nalset+1
199 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
200 & ipoinp,inp,ipoinpc)
201 if((istat.lt.0).or.(key.eq.1))
then 202 if(iendset(nset).eq.0)
then 203 write(*,*)
'*ERROR reading *SUBMODEL: nodal' 204 write(*,*)
' submodel contains no nodes' 211 if(nalset+1.gt.nalset_)
then 213 &
'*ERROR reading *SUBMODEL: increase nalset_' 217 read(textpart(l)(1:10),
'(i10)',iostat=istat)
220 noset=textpart(l)(1:80)
222 ipos=index(noset,
' ')
225 if(set(i).eq.noset)
then 226 do j=istartset(i),iendset(i)
227 if(ialset(j).gt.0)
then 229 if(nalset.gt.nalset_)
then 231 &
'*ERROR reading *SUBMODEL: increase nalset_' 234 ialset(nalset)=ialset(j)
236 kstart=ialset(nalset-1)
239 kincrement=-ialset(j)
240 do k=kstart+kincrement,kend,kincrement
242 if(nalset.gt.nalset_)
then 244 &
'*ERROR reading *SUBMODEL: increase nalset_' 257 write(*,*)
'*ERROR reading *SUBMODEL: node set ',
259 write(*,*)
' does not exist' 263 if(ialset(nalset+1).gt.nk)
then 264 write(*,*)
'*WARNING reading *SUBMODEL: value ',
266 write(*,*)
' in set ',set(nset),
' > nk' 280 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
281 & ipoinp,inp,ipoinpc)
285 if((istat.lt.0).or.(key.eq.1))
then 286 if(iendset(nset).eq.0)
then 287 write(*,*)
'*ERROR reading *SUBMODEL: facial' 288 write(*,*)
' submodel contains no faces' 295 write(*,*)
'*ERROR reading *SUBMODEL: no more than' 296 write(*,*)
' one entry per line allowed for' 297 write(*,*)
' a facial submodel interface' 301 facialset(1:80)=textpart(1)(1:80)
303 ipos=index(facialset,
' ')
304 facialset(ipos:ipos)=
'T' 306 if(set(i).eq.facialset)
then 307 do j=istartset(i),iendset(i)
309 if(nalset.gt.nalset_)
then 311 &
'*ERROR in reading *SUBMODEL: increase nalset_' 314 ialset(nalset)=ialset(j)
323 tieset(1,ntie)(81:81)=
'S' 327 write(tieset(2,ntie)(1:10),
'(i10)') nset
328 tieset(2,ntie)(11:11)=
type 329 nlength=iendset(nset)-istartset(nset)+1
330 call isortii(ialset(istartset(nset)),idummy,nlength,kflag)
334 write(tieset(3,ntie)(1:10),
'(i10)') iglobset
339 if(iglobset.eq.0)
return 344 do j=istartset(iglobset),iendset(iglobset)
345 if(ialset(j).gt.0)
then 347 if(nalset.gt.nalset_)
then 349 &
'*ERROR in surfaces: increase nalset_' 352 ialset(nalset)=ialset(j)
354 kstart=ialset(nalset-1)
357 kincrement=-ialset(j)
358 do k=kstart+kincrement,kend,kincrement
360 if(nalset.gt.nalset_)
then 362 &
'*ERROR in surfaces: increase nalset_' 369 istartset(iglobset)=nalsetold
370 iendset(iglobset)=nalset
374 nlength=iendset(iglobset)-istartset(iglobset)+1
375 call isortii(ialset(istartset(iglobset)),idummy,nlength,kflag)
subroutine isortii(ix, iy, n, kflag)
Definition: isortii.f:6
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21