30 character*81 set(*),noelset
31 character*132 textpart(16)
33 integer nset,nset_,nalset,nalset_,istep,istat,n,key,i,nk,ne,
34 & kode,ipos,j,k,m,iset,nn,irstrt,istartset(*),iendset(*),
35 & ialset(*),iline,ipol,inl,ipoinp(2,*),inp(3,*),ipoinpc(0:*)
37 if((istep.gt.0).and.(irstrt.ge.0))
then 38 write(*,*)
'*ERROR in noelsets: *NSET/*ELSET should be placed' 39 write(*,*)
' before all step definitions' 47 if(textpart(1)(1:5).eq.
'*NSET')
then 49 if(textpart(i)(1:5).eq.
'NSET=')
then 50 noelset(1:80)=textpart(i)(6:85)
51 if(textpart(i)(86:86).ne.
' ')
then 52 write(*,*)
'*ERROR in noelsets: set name too long' 53 write(*,*)
' (more than 80 characters)' 54 write(*,*)
' set name:',textpart(2)(1:132)
58 ipos=index(noelset,
' ')
59 noelset(ipos:ipos)=
'N' 61 elseif(textpart(i)(1:8).eq.
'GENERATE')
then 65 &
'*WARNING in noelsets: parameter not recognized:' 67 & textpart(i)(1:index(textpart(i),
' ')-1)
74 if(textpart(i)(1:6).eq.
'ELSET=')
then 75 noelset(1:80)=textpart(i)(7:86)
76 if(textpart(i)(87:87).ne.
' ')
then 77 write(*,*)
'*ERROR in noelsets: set name too long' 78 write(*,*)
' (more than 80 characters)' 79 write(*,*)
' set name',textpart(2)(1:132)
83 ipos=index(noelset,
' ')
84 noelset(ipos:ipos)=
'E' 86 elseif(textpart(i)(1:8).eq.
'GENERATE')
then 90 &
'*WARNING in noelsets: parameter not recognized:' 92 & textpart(i)(1:index(textpart(i),
' ')-1)
102 if(set(iset).eq.noelset)
then 106 if(iendset(iset).eq.nalset)
then 112 nn=iendset(iset)-istartset(iset)+1
113 if(nalset+nn.gt.nalset_)
then 114 write(*,*)
'*ERROR in noelsets: increase nalset_' 118 ialset(nalset+k)=ialset(istartset(iset)+k-1)
120 do k=istartset(iset),nalset
121 ialset(k)=ialset(k+nn)
124 if(istartset(k).gt.iendset(iset))
then 125 istartset(k)=istartset(k)-nn
126 iendset(k)=iendset(k)-nn
129 istartset(iset)=nalset-nn+1
135 if(iset.gt.nset)
then 137 if(nset.gt.nset_)
then 138 write(*,*)
'*ERROR in noelsets: increase nset_' 142 istartset(nset)=nalset+1
148 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
149 & ipoinp,inp,ipoinpc)
150 if((istat.lt.0).or.(key.eq.1))
then 151 if(iendset(nset).eq.0)
then 157 if(nalset+n.gt.nalset_)
then 158 write(*,*)
'*ERROR in noelsets: increase nalset_' 163 if(textpart(3)(1:1).eq.
' ')
then 169 read(textpart(i)(1:10),
'(i10)',iostat=istat)
171 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
175 if(ialset(nalset+1).gt.nk)
then 176 write(*,*)
'*ERROR in noelsets: starting value in' 177 write(*,*)
' set ',set(iset),
' > nk' 179 elseif(ialset(nalset+2).gt.nk)
then 180 write(*,*)
'*WARNING in noelsets: end value in' 181 write(*,*)
' set ',set(iset),
' > nk;' 182 write(*,*)
' replaced by nk' 184 elseif(ialset(nalset+3).le.0)
then 185 write(*,*)
'*ERROR in noelsets: increment in' 186 write(*,*)
' set ',set(iset),
' <=0' 190 if(ialset(nalset+1).gt.ne)
then 191 write(*,*)
'*ERROR in noelsets: starting value in' 192 write(*,*)
' set ',set(iset),
' > ne' 194 elseif(ialset(nalset+2).gt.ne)
then 195 write(*,*)
'*WARNING in noelsets: end value in' 196 write(*,*)
' set ',set(iset),
' > ne;' 197 write(*,*)
' replaced by ne' 199 elseif(ialset(nalset+3).le.0)
then 200 write(*,*)
'*ERROR in noelsets: increment in' 201 write(*,*)
' set ',set(iset),
' <=0' 205 if(ialset(nalset+1).eq.ialset(nalset+2))
then 210 ialset(nalset+3)=-ialset(nalset+3)
216 read(textpart(i)(1:10),
'(i10)',iostat=istat)
222 noelset=textpart(i)(1:80)
224 ipos=index(noelset,
' ')
226 noelset(ipos:ipos)=
'N' 228 noelset(ipos:ipos)=
'E' 232 if(noelset.eq.set(j))
then 233 m=iendset(j)-istartset(j)+1
235 ialset(nalset+k)=ialset(istartset(j)+k-1)
241 if(noelset.ne.set(j))
then 242 noelset(ipos:ipos)=
' ' 244 write(*,*)
'*ERROR in noelsets: node set ',
247 write(*,*)
'*ERROR in noelsets: element set ',
250 write(*,*)
' has not been defined yet' 258 if(ialset(nalset+1).gt.nk)
then 259 write(*,*)
'*WARNING in noelsets: value ',
261 write(*,*)
' in set ',set(iset),
' > nk' 266 if(ialset(nalset+1).gt.ne)
then 267 write(*,*)
'*WARNING in noelsets: value ',
269 write(*,*)
' in set ',set(iset),
' > ne;' 270 write(*,*)
' This is only allowed for' 272 &
' global elsets in combination' 273 write(*,*)
' with submodels'
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21