You are on page 1of 3

For i = 1 To PA

x1 = H
M1 = k1 * B * WorksheetFunction.Min(x1, H) * (H / 2 - k2 * WorksheetFunction.
Min(x1, H))
M2 = k1 * B * WorksheetFunction.Min(x1, H) * (H / 2 - k2 * WorksheetFunction.
Min(x1, H))
Do While M1 * M2 > 0
x1 = x1 + 0.1 * H
x2 = x1 + 0.1 * H
M1 = k1 * B * WorksheetFunction.Min(x1, H) * (H / 2 - k2 * WorksheetFuncti
on.Min(x1, H))
M2 = k1 * B * WorksheetFunction.Min(x2, H) * (H / 2 - k2 * WorksheetFuncti
on.Min(x2, H))
For j = 1 To Ylayer
For k = 1 To nbar(j)
Call Nsi_Msi(fcu, fy, Es, Reinforce(i, j, k).Area, x1, Reinforce(i,
j, k).Ycoord, H / 2 - Reinforce(i, j, k).Ycoord)
M1 = M1 + Msi
Call Nsi_Msi(fcu, fy, Es, Reinforce(i, j, k).Area, x2, Reinforce(i,
j, k).Ycoord, H / 2 - Reinforce(i, j, k).Ycoord)
M2 = M2 + Msi
Next k
Next j
Loop
Do While Abs(M1) > 0.0001
If M1 * M2 < 0 Then
x3 = (x1 + x2) / 2
M3 = k1 * B * WorksheetFunction.Min(x3, H) * (H / 2 - k2 * WorksheetFuncti
on.Min(x3, H))
For j = 1 To Ylayer
For k = 1 To nbar(j)
Call Nsi_Msi(fcu, fy, Es, Reinforce(i, j, k).Area, x3, Reinforce(i,
j, k).Ycoord, H / 2 - Reinforce(i, j, k).Ycoord)
M3 = M3 + Msi
Next k
Next j
If M3 * M1 < 0 Then
x2 = x3
M2 = k1 * B * WorksheetFunction.Min(x2, H) * (H / 2 - k2 * WorksheetFun
ction.Min(x2, H))
For j = 1 To Ylayer
For k = 1 To nbar(j)
Call Nsi_Msi(fcu, fy, Es, Reinforce(i, j, k).Area, x2, Reinforce
(i, j, k).Ycoord, H / 2 - Reinforce(i, j, k).Ycoord)
M2 = M2 + Msi
Next k
Next j
End If

If M3 * M2 < 0 Then
x1 = x3
M1 = k1 * B * WorksheetFunction.Min(x1, H) * (H - k2 * WorksheetFunctio
n.Min(x1, H))
For j = 1 To Ylayer
For k = 1 To nbar(j)
Call Nsi_Msi(fcu, fy, Es, Reinforce(i, j, k).Area, x1, Reinforce
(i, j, k).Ycoord, H / 2 - Reinforce(i, j, k).Ycoord)
M1 = M1 + Msi
Next k
Next j
End If
End If
Loop
xmax(i) = x1
Next i
For i = 1 To PA
x1 = 0.01 * H
N1 = k1 * B * x1
N2 = k1 * B * x1
Do While N1 * N2 > 0
x1 = x1 + 0.001 * H
x2 = x1 + 0.001 * H
N1 = k1 * B * x1
N2 = k1 * B * x2
For j = 1 To Ylayer
For k = 1 To nbar(j)
Call Nsi_Msi(fcu, fy, Es, Reinforce(i, j, k).Area, x1, Reinforce(i,
j, k).Ycoord, H / 2 - Reinforce(i, j, k).Ycoord)
N1 = N1 + Nsi
Call Nsi_Msi(fcu, fy, Es, Reinforce(i, j, k).Area, x2, Reinforce(i,
j, k).Ycoord, H / 2 - Reinforce(i, j, k).Ycoord)
N2 = N2 + Nsi
Next k
Next j
Loop
Do While Abs(N1) > 0.001
If N1 * N2 < 0 Then
x3 = (x1 + x2) / 2
N3 = k1 * B * x3
For j = 1 To Ylayer
For k = 1 To nbar(j)
Call Nsi_Msi(fcu, fy, Es, Reinforce(i, j, k).Area, x3, Reinforce(i,
j, k).Ycoord, H / 2 - Reinforce(i, j, k).Ycoord)
N3 = N3 + Nsi
Next k
Next j
If N3 * N1 < 0 Then
x2 = x3
N2 = k1 * B * x2
For j = 1 To Ylayer
For k = 1 To nbar(j)
Call Nsi_Msi(fcu, fy, Es, Reinforce(i, j, k).Area, x2, Reinforce
(i, j, k).Ycoord, H / 2 - Reinforce(i, j, k).Ycoord)
N2 = N2 + Nsi
Next k
Next j
End If

If N3 * N2 < 0 Then
x1 = x3
N1 = k1 * B * x1
For j = 1 To Ylayer
For k = 1 To nbar(j)
Call Nsi_Msi(fcu, fy, Es, Reinforce(i, j, k).Area, x1, Reinforce
(i, j, k).Ycoord, H / 2 - Reinforce(i, j, k).Ycoord)
N1 = N1 + Nsi
Next k
Next j
End If
End If
Loop
xmin(i) = x1
Next i

You might also like