28subroutine trilinear(K, H, S, f, de, e, fy, fh, fu, ey, eh, eu, branch, damage)
33 real*8 :: de, f, e0, temp, e, e_int, f0
34 real*8 :: fy, fh, fu, ey, eh, eu, eh_base, finf, fsup
35 integer*4 :: branch, damage, sgn
41 if (e.lt.0.0) sgn = -1
43 if ((damage.eq.0).and.(abs(e).lt.eu))
then
46 if (abs(e).lt.ey)
then
49 elseif ((abs(e).ge.ey).and.(abs(e).lt.eh))
then
50 f = sgn*(fy + h*(abs(e)-ey))
51 if (sgn.eq.1) branch = 2
52 if (sgn.eq.-1) branch = 4
53 elseif (abs(e).ge.eh)
then
54 f = sgn*(fh + s*(abs(e)-eh))
55 if (sgn.eq.1) branch = 3
56 if (sgn.eq.-1) branch = 5
59 elseif (branch.eq.2)
then
68 elseif (de.lt.0.0)
then
71 finf = k/(k-h) * (-fy + h*(e_int + ey))
72 if (temp.gt.finf)
then
75 elseif (temp.le.finf)
then
79 elseif (e.le.-eh)
then
86 elseif (branch.eq.3)
then
90 elseif (de.lt.0.0)
then
93 finf = k/(k-h) * (-fy + h*(e_int + ey))
94 if (temp.gt.finf)
then
97 elseif (temp.le.finf)
then
101 elseif (e.le.-eh)
then
108 elseif (branch.eq.4)
then
113 elseif (e.le.-eh)
then
117 elseif (de.gt.0.0)
then
120 fsup = k/(k-h) * (fy + h*(e_int - ey))
121 if (temp.lt.fsup)
then
124 elseif (temp.ge.fsup)
then
128 elseif (e.ge.eh)
then
135 elseif (branch.eq.5)
then
139 elseif (de.gt.0.0)
then
142 fsup = k/(k-h) * (fy + h*(e_int - ey))
143 if (temp.lt.fsup)
then
146 elseif (temp.ge.fsup)
then
150 elseif (e.ge.eh)
then
157 elseif (branch.eq.6)
then
161 if (abs(e_int).le.eh_base)
then
162 fsup = k/(k-h) * (fy + h*(e_int - ey))
163 finf = k/(k-h) * (-fy + h*(e_int + ey))
164 elseif (e_int.gt.eh_base)
then
165 fsup = k/(k-s) * (fh + s*(e_int - eh))
166 finf = k/(k-h) * (-fy + h*(e_int + ey))
167 elseif (e_int.lt.-eh_base)
then
168 finf = k/(k-s) * (-fh + h*(e_int + eh))
169 fsup = k/(k-h) * (fy + h*(e_int - ey))
171 if ((temp.gt.finf).and.(temp.lt.fsup))
then
174 elseif (temp.ge.fsup)
then
178 elseif (e.ge.eh)
then
182 elseif (temp.le.finf)
then
186 elseif (e.le.-eh)
then
193 elseif ((damage.eq.1).or.(abs(e).ge.eu))
then
subroutine trilinear(k, h, s, f, de, e, fy, fh, fu, ey, eh, eu, branch, damage)
Defines stress-strain relation for TRILINEAR SDOF oscillator.