35 character*132 textpart(16)
36 character*81 objectset(4,*)
38 integer istep,istat,n,key,i,iline,ipol,inl,ipoinp(2,*),
39 & inp(3,*),ipoinpc(0:*),nener,nobject,k,ipos
48 write(*,*)
'*ERROR reading *OBJECTIVE: *OBJECTIVE can 49 &only be used within a SENSITIVITY STEP' 57 if(textpart(i)(1:7).eq.
'FILTER=')
then 58 read(textpart(i)(8:27),
'(a20)')
filter 62 elseif(textpart(i)(1:7).eq.
'RADIUS=')
then 63 radius=textpart(i)(8:27)
67 elseif(textpart(i)(1:11).eq.
'TRANSITION=')
then 71 &
'*WARNING reading *OBJECTIVE: parameter not recognized:' 73 & textpart(i)(1:index(textpart(i),
' ')-1)
81 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
85 if(textpart(1)(1:12).eq.
'DISPLACEMENT')
then 87 objectset(1,nobject)(1:12)=
'DISPLACEMENT' 89 objectset(1,nobject)(k:k)=
' ' 92 read(textpart(2)(1:80),
'(a80)',iostat=istat)
93 & objectset(3,nobject)(1:80)
94 objectset(3,nobject)(81:81)=
' ' 95 ipos=index(objectset(3,nobject),
' ')
96 if(ipos.ne.1) objectset(3,nobject)(ipos:ipos)=
'N' 98 elseif(textpart(1)(1:14).eq.
'EIGENFREQUENCY')
then 100 objectset(1,nobject)(1:14)=
'EIGENFREQUENCY' 102 objectset(1,nobject)(k:k)=
' ' 104 elseif(textpart(1)(1:5).eq.
'GREEN')
then 106 objectset(1,nobject)(1:5)=
'GREEN' 108 objectset(1,nobject)(k:k)=
' ' 110 elseif(textpart(1)(1:4).eq.
'MASS')
then 112 objectset(1,nobject)(1:4)=
'MASS' 114 objectset(1,nobject)(k:k)=
' ' 117 read(textpart(2)(1:80),
'(a80)',iostat=istat)
118 & objectset(3,nobject)(1:80)
119 objectset(3,nobject)(81:81)=
' ' 120 ipos=index(objectset(3,nobject),
' ')
121 if(ipos.ne.1) objectset(3,nobject)(ipos:ipos)=
'E' 123 elseif(textpart(1)(1:11).eq.
'SHAPEENERGY')
then 125 objectset(1,nobject)(1:11)=
'SHAPEENERGY' 127 objectset(1,nobject)(k:k)=
' ' 130 read(textpart(2)(1:80),
'(a80)',iostat=istat)
131 & objectset(3,nobject)(1:80)
132 objectset(3,nobject)(81:81)=
' ' 133 ipos=index(objectset(3,nobject),
' ')
134 if(ipos.ne.1) objectset(3,nobject)(ipos:ipos)=
'E' 137 elseif(textpart(1)(1:6).eq.
'STRESS')
then 139 objectset(1,nobject)(1:6)=
'STRESS' 141 objectset(1,nobject)(k:k)=
' ' 144 read(textpart(2)(1:80),
'(a80)',iostat=istat)
145 & objectset(3,nobject)(1:80)
146 objectset(3,nobject)(81:81)=
' ' 147 ipos=index(objectset(3,nobject),
' ')
148 if(ipos.ne.1) objectset(3,nobject)(ipos:ipos)=
'N' 154 read(textpart(3)(1:20),
'(f20.0)',iostat=istat) rho
155 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
158 write(*,*)
'*ERROR reading *OBJECTIVE' 159 write(*,*)
' first Kreisselmeier-Steinhauser' 160 write(*,*)
' parameter rho cannot be less' 165 objectset(2,nobject)(41:60)=textpart(3)(1:20)
171 read(textpart(4)(1:20),
'(f20.0)',iostat=istat) stress
172 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
174 if(stress.le.0.d0)
then 175 write(*,*)
'*ERROR reading *OBJECTIVE' 176 write(*,*)
' the target stress in the' 177 write(*,*)
' Kreisselmeier-Steinhauser function' 178 write(*,*)
' must be strictly positive' 182 objectset(2,nobject)(61:80)=textpart(4)(1:20)
185 write(*,*)
'*ERROR reading *OBJECTIVE' 186 write(*,*)
' objective function not known' 194 objectset(2,nobject)(1:20)=
filter 195 objectset(2,nobject)(21:40)=radius
198 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
199 & ipoinp,inp,ipoinpc)
200 if((istat.lt.0).or.(key.eq.1))
exit
subroutine filter(dgdxglob, nobject, nk, nodedesi, ndesi, objectset, xo, yo, zo, x, y, z, nx, ny, nz, neighbor, r, ndesia, ndesib)
Definition: filter.f:22
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21
subroutine transition(dgdxglob, nobject, nk, nodedesi, ndesi, objectset, xo, yo, zo, x, y, z, nx, ny, nz, co, ifree, ndesia, ndesib)
Definition: transition.f:22