//---------------------------------------------------------------------------

#ifndef CheckExecuteUH
#define CheckExecuteUH

#include "Data_Gen.h"
#include "Weld_Param.h"

#define chCENTR_TENSION               1
#define chCENTR_COMPRESSION           2
#define chBENDING                     4
#define chBENDING_TRUBA               4
#define chTENSION_BENDING             8   // Внецентренно-растянутые (растянуто-изгибаемые элементы)
#define chCOMPRESSION_BENDING         16  // Внецентренно-сжатые (сжато-изгибаемые элементы)
#define chCOMPRESSION_BENDING_CONST   16  // Внецентренно-сжатые (сжато-изгибаемые элементы)
#define chCOMPRESSION_BENDING_VARY    32  // Внецентренно-сжатые (сжато-изгибаемые элементы)
#define chCOMPRESSION_BENDING_TRUBA   16  // Внецентренно-сжатые (сжато-изгибаемые элементы)

#define CENTR_TENSION       0
#define CENTR_COMPRESSION   1
#define COMPRESSION_BENDING 2
#define BENDING             3
#define TENSION_BENDING     4

// Центральное растяжение Двутавр
#define List_Centr_TensionU\
"Прочность, п. 7.1.1 ф.(5)",\
"Предельная гибкость в плоскости поясов (YZ), п. 10.4.1, 10.4.2. табл. 33",\
"Предельная гибкость в плоскости стенки (XZ), п. 10.4.1, 10.4.2. табл. 33"

#define   N_CENTR_TENSION_U 3
#define NUM_PROV_CENTR_TENSION         { 1, 1, 1}

// Центральное растяжение Труба
#define List_Centr_TensionU_Tube\
"Прочность, п. 7.1.1 ф.(5)",\
"Предельная гибкость в плоскости XZ, п. 10.4.1, 10.4.2. табл. 33",\
"Предельная гибкость в плоскости YZ, п. 10.4.1, 10.4.2. табл. 33"

#define   N_CENTR_TENSION_TUBE_U 3
#define NUM_PROV_CENTR_TENSION_TUBE         { 1, 1, 1}
#define NUM_PROV_CENTR_TENSION_CIRC         { 1, 1, 1}


// Центральное сжатие Двутавр
#define List_Centr_CompressionU \
"Прочность, п. 7.1.1 ф.(5)",\
"Устойчивость в плоскости поясов (YZ), п. 7.1.3., 7.3.5, 7.3.6 ф.(7)",\
"Устойчивость в плоскости стенки (XZ), п. 7.1.3., 7.3.5, 7.3.6 ф.(7)",\
"Местная устойчивость стенки, п. 7.3.2, 7.3.6, 7.3.11",\
"Проверка ребер жесткости, п. 7.3.3",\
"Шаг поперечных ребер жесткости, п. 7.3.3",\
"Ширина поперечных ребер жесткости, п. 7.3.3",\
"Толщина поперечных ребер жесткости, п. 7.3.3",\
"Местная устойчивость пояса 1, п. 7.3.8",\
"Местная устойчивость пояса 2, п. 7.3.8",\
"Предельная гибкость в плоскости поясов (YZ), табл. 32",\
"Предельная гибкость в плоскости стенки (XZ), табл. 32",\
"Элементы, закрепляющие внешний пояс на Qfic, п. 7.2.10",\
"Элементы, закрепляющие внутренний пояс на Qfic, п. 7.2.10",\
"Стенка на действие фиктивной поперечной силы Qfic п. 7.1.6, ф.(42)"
#define   N_CENTR_COMPRESSION_U 15
//                                       0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19
#define NUM_PROV_CENTR_COMPRESS        { 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0}

// Центральное сжатие Трубы
#define List_Centr_CompressionU_Tube \
"Прочность, п. 7.1.1 ф.(5)",\
"Устойчивость в плоскости XZ, п. 7.1.3., 7.3.5, 7.3.6 ф.(7)",\
"Устойчивость в плоскости YZ, п. 7.1.3., 7.3.5, 7.3.6 ф.(7)",\
"   ",\
"   ",\
"   ",\
"   ",\
"   ",\
"Местная устойчивость стенок в плоскости XZ, п. 7.3.2, 7.3.6, 7.3.9, 7.3.11",\
"Местная устойчивость стенок в плоскости YZ, п. 7.3.2, 7.3.6, 7.3.9, 7.3.11",\
"Предельная гибкость в плоскости XZ, п. 10.4.2, табл. 32",\
"Предельная гибкость в плоскости YZ, п. 10.4.2, табл. 32",\
"Элементы, закрепляющие внешний пояс на Qfic, п. 7.2.10",\
"Элементы, закрепляющие внутренний пояс на Qfic, п. 7.2.10",\
"Стенка на действие фиктивной поперечной силы Qfic п. 7.1.6, ф.(42)"

#define   N_CENTR_COMPRESSION_TUBE_U 15
//                                       0  1  2  3  4  5  6  7  8  9 10 11 12 13 14
#define NUM_PROV_CENTR_COMPRESS_TUBE   { 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0}
#define NUM_PROV_CENTR_COMPRESS_CIRC   { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}

// Изгибаемые Двутавр и составное сечение
#define List_BendingU \
"Прочность по нормальным напряжениям, п. 9.1.1 ф. (105) с учетом п. 8.2.3, или ф. (106)",\
"Прочность стенки при действии поперечной силы, п. 8.2.1, ф. (42)",\
"Прочность поясов при действии поперечной силы в плоскости поясов, п. 8.2.1",\
"Прочность стенки в опорном сечении от поперечной силы, п. 8.2.3, ф. 54",\
"Прочность поясов в опорном сечении от поперечной силы в плоскости поясов, п. 8.2.3, ф. 55",\
"Прочность стенки, не укрепленной ребрами жесткости, при действии местных нагрузок, п. 8.2.2, ф. (46)",\
"Прочность стенки по эквивалентным напряжениям, п. 8.2.1 ф. (44)",\
"Прочность поясов по эквивалентным напряжениям, п. 8.2.1 ф. (44)",\
"Устойчивость по изгибно-крутильной форме, п. 8.4.1",\
"Устойчивость, п. 8.4.4, 8.4.6",\
"Проверка условной гибкости стенки, п. 8.5.3.",\
"Проверка устойчивости стенки, п. 8.5.3, 8.5.6, 8.5.7.",\
"Проверка ребрер жесткости п. 8.5.9.",\
"Проверка шага поперечных ребер жесткости, п 8.5.9.",\
"Прочность по нормальным напряжениям в т. 1 и 3, ф. М.20",\
"Прочность по нормальным напряжениям в т. 2 и 4, ф. М.21",\
"Прочность по касательным напряжениям, ф. М.22",\
"Местная устойчивость сжатого пояса, п. 8.5.18, 8.5.18.",\
"Предельная гибкость верхнего пояса, п. 9.4.",\
"Предельная гибкость нижнего пояса, п. 9.4.",\
"Предельный прогиб,  табл. Д.1 СП 20.13330",\
"Поясные сварные швы"

#define  N_BENDING_U 22
//                                       0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21
#define NUM_PROV_BENDING               { 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1}
#define NUM_PROV_BENDING_WELD          { 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1}
#define NUM_PROV_BENDING_PERF          { 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1}

// Изгибаемые Трубы
#define List_Bending_TubeU \
"Прочность по нормальным напряжениям, п. 9.1.1 ф. (105) с учетом п. 8.2.3",\
"Прочность стенки при действии поперечной силы в плоскости XZ, п. 8.2.1, ф. (42)",\
"Прочность стенки при действии поперечной силы в плоскости XZ, п. 8.2.1, ф. (42)",\
"Прочность стенки в опорном сечении от поперечной силы в пл. XZ, п. 8.2.3, ф. 54",\
"Прочность стенки в опорном сечении от поперечной силы в пл. XY, п. 8.2.3, ф. 55",\
"Прочность стенки, не укрепленной ребрами жесткости, при действии местных нагрузок, п. 8.2.2, ф. (46)",\
"Прочность стенки по эквивалентным напряжениям в пл. XZ, п. 8.2.1 ф. (44)",\
"Прочность стенки по эквивалентным напряжениям в пл. XY, п. 8.2.1 ф. (44)",\
"Устойчивость по изгибно-крутильной форме, п. 8.4.1, 8.4.4, 8.4.6",\
"Элементы, закрепляющие сжатую стенку, п. 8.4.5.",\
"Устойчивость стенки в пл. XZ, п. 8.5.1, 8.5.3, 8.5.6, 8.5.7, 8.5.8.",\
"Необходимость укрепления стенки поперечными ребрами жесткости п. 8.5.9.",\
"Устойчивость сжатой стенки в пл. XY, п. 8.5.18, 8.5.19.",\
"Предельный прогиб,  табл. Д.1 СП 20.13330"

#define  N_BENDING_TUBE_U 14
//                                       0  1  2  3  4  5  6  7  8  9 10 11 12 13
#define NUM_PROV_BENDING_TUBE          { 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1}
#define NUM_PROV_BENDING_CIRC          { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}


// Сжато-изгибаемые Двутавр
#define List_Compression_Bending_ConstU\
"Прочность по нормальным напряжениям, п. 9.1.1 ф.(105) или (106)",\
"Прочность стенки по касательным напряжениям, п. 8.2.1, ф. (42)",\
"Прочность стенки без ребер от местного напряжения или в опорных сечениях, п. 8.2.2, ф.(46)",\
"Прочность стенки по эквивалентным напряжениям, п. 8.2.1 ф. (44)",\
"Прочность растянутого волокна, п. 9.1.3, ф.(107)",\
"Устойчивость в плоскости стенки (XZ), п. 9.2.1 ф. (109)",\
"Устойчивость в плоскости поясов (YZ), п. 9.2.4 ф. (111)",\
"Устойчивость при изгибе в двух плоскостях п. 9.2.9, ф. (116)",\
"Проверка ребер жесткости, п. 9.4.4",\
"Шаг поперечных ребер, п. 9.4.4",\
"Ширина поперечных ребер, п. 7.3.3",\
"Толщина поперечных ребер, п. 7.3.3",\
"Устойчивость поперечных ребер в местах приложения сосредоточенных сил, п. 8.5.10.",\
"Устойчивость стенки при с*fi_y > fi_e, п. 9.4",\
"Устойчивость стенки при с*fi_y <= fi_e, п. 9.4",\
"Устойчивость пояса, п. 9.4",\
"Устойчивость внутреннего пояса, п. 9.4",\
"Предельная гибкость в плоскости поясов (YZ), п. 10.4",\
"Предельная гибкость в плоскости стенки (XZ), п. 10.4",\
"Закрепление внешнего пояса, п. 8.4.5",\
"Закрепление внутреннего пояса, п. 8.4.5",\
"Поясные сварные швы"

#define  N_COMPRESSION_BENDING_U 22
//                                       0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19  20 21
#define NUM_PROV_COMPRESS_BENDING      { 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1}

// Сжато-изгибаемые Трубы
#define List_Compression_Bending_TubeU\
"Прочность по нормальным напряжениям, п. 9.1.1 ф.(105) или (106)",\
"Прочность по касательным напряжениям от Qz, п. 8.2.1, ф. (42)",\
"Прочность по касательным напряжениям от Qy, п. 8.2.1, ф. (42)",\
"Прочность стенки, не укрепленной ребрами жесткости в опорных сечениях, п. 8.2.2, ф. (46)",\
"Прочность стенки по эквивалентным напряжениям в пл. XY, п. 8.2.1 ф. (44)",\
"Прочность растянутого волокна, п. 9.1.3, ф.(107)",\
"Устойчивость при действии момента в пл. XZ п. 9.2.10 ф.(120)",\
"Устойчивость при действии момента в пл. XY п. 9.2.10 ф.(121)",\
"  ",\
"Устойчивость стенки в пл. XZ п. 9.4.7",\
"Устойчивость стенки в пл. XY, п. 9.4.7",\
"Предельная гибкость в пл. XZ, табл. 32",\
"Предельная гибкость в пл. XY, табл. 32",\
"Элементы, закрепляющие внешний пояс, п. 8.4.5",\
"Элементы, закрепляющие внутренний пояс, п. 8.4.5"
#define  N_COMPRESSION_BENDING_TUBE_U 16
//                                       0  1  2  3  4  5  6  7  8  9 10 11 12 13 14
#define NUM_PROV_COMPRESS_BENDING_TUBE { 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0}
#define NUM_PROV_COMPRESS_BENDING_CIRC { 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0}

// Растянуто-изгибаемые Двутавр
#define List_Tension_Bending_U\
"Прочность по нормальным напряжениям, п. 9.1.1 ф.(105) или (106)",\
"Прочность стенки при действии поперечной силы, п. 8.2.1, ф. (42)",\
"Прочность стенки по эквивалентным напряжениям, п. 8.2.1 ф. (44)",\
"Прочность растянутого волокна, п. 9.1.3, ф.(107)",\
"Устойчивость в плоскости поясов (XY) п. 7.1.3, ф. (7)",\
"Необходимость укрепления стенки поперечными ребрами, п. 9.4.4",\
"Устойчивость стенки, п. 8.5.3, 8.5.6, 8.5.7.",\
"Устойчивость пояса, п. 9.4",\
"Предельная гибкость в плоскости поясов (XY), п. 10.4",\
"Предельная гибкость в плоскости стенки (XZ), п. 10.4"
#define  N_TENSION_BENDING_U 10
//                                      0  1  2  3  4  5  6  7  8  9
#define NUM_PROV_TENSION_BENDING      { 1, 1, 1, 1, 0, 0, 0, 0, 1, 1}

// Растянуто-изгибаемые Трубы
#define List_Tension_Bending_TubeU\
"Прочность по нормальным напряжениям, п. 9.1.1 ф.(105) или (106)",\
"Прочность по касательным напряжениям от Qy, п. 8.2.1, ф. (42)",\
"Прочность по касательным напряжениям от Qx, п. 8.2.1, ф. (42)",\
"Прочность стенки, не укрепленной ребрами жесткости в опорных сечениях, п. 8.2.2, ф. (46)",\
"Прочность стенки по эквивалентным напряжениям, п. 8.2.1 ф. (44)",\
"Прочность растянутой стенки в пл. XZ, п. 9.1.3, ф.(107)",\
"Устойчивость при действии момента в пл. YZ п. 9.2.10 ф.(120)",\
"Устойчивость при действии момента в пл. XZ п. 9.2.10 ф.(121)",\
"Необходимость укрепления стенки поперечными ребрами жесткости п. 7.3.3.",\
"Устойчивость стенки в пл. XZ, п. 9.4.7",\
"Устойчивость стенки в пл. YZ, п. 9.4.7",\
"Устойчивость стенки в пл. XZ, п. 9.4.7",\
"Предельная гибкость в пл. XZ, табл. 32",\
"Предельная гибкость в пл. YZ, табл. 32",\
"Элементы, закрепляющие внешний пояс, п. 8.4.5",\
"Элементы, закрепляющие внутренний пояс, п. 8.4.5"

#define  N_TENSION_BENDING_TUBE_U 16
//                                      0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
#define NUM_PROV_TENSION_BENDING_TUBE { 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}
#define NUM_PROV_TENSION_BENDING_CIRC { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}

#define List_Weld \
"1. По металлу шва стенки в соединении с внешней полкой, п. 7.1.6, ф.(193), (194)",\
"2. По металлу границы сплавления шва стенки в соединении с внешней полкой, п. 7.1.6, ф.(193), (194)",\
"3. По металлу шва полки в соединении со стенкой, п. 7.1.6, ф.(193), (194)",\
"4. По металлу границы сплавления шва стенки в соединении с внешней полкой, п. 7.1.6, ф.(193), (194)",\
"5. По металлу шва стенки в соединении с внутренней полкой, п. 7.1.6, ф.(193), (194)",\
"6. По металлу границы сплавления шва стенки в соединении с внутренней полкой, п. 7.1.6, ф.(193), (194)",\
"7. По металлу шва полки в соединении со стенкой, п. 7.1.6, ф.(193), (194)",\
"8. По металлу границы сплавления шва стенки в соединении с внутренней полкой, п. 7.1.6, ф.(193), (194)",\
"9. По металлу шва стенки в соединении с внешней полкой от сосредоточенных сил, п. 14.4.1, ф.(196), (197).",\
"10. По металлу границы сплавления шва стенки в соединении с внешней полкой от сосредоточенных сил, п. 14.4.1, ф.(196), (197).",\
"11. По металлу шва внешней полки в соединении со стенкой от сосредоточенных сил, 14.4.1, ф.(196), (197).",\
"12. По металлу границы сплавления шва внешней полки в соединении со стенкой от сосредоточенных сил, 14.4.1, ф.(196), (197).",\
"13. По металлу шва стенки в соединении с внутренней полкой от сосредоточенных сил, 14.4.1, ф.(196), (197).",\
"14. По металлу границы сплавления шва стенки в соединении с внутренней полкой от сосредоточенных сил, 14.4.1, ф.(196), (197).",\
"15. По металлу шва внутренней полки в соединении со стенкой полкой от сосредоточенных сил, 14.4.1, ф.(196), (197).",\
"16. По металлу границы сплавления шва внутренней полки в соединении со стенкой от сосредоточенных сил, 14.4.1, ф.(196), (197).",\
"17. По максимальному катету шва стенки в соединении с внешней полкой, п. 14.1.7а",\
"18. По максималаьному катету шва внешней полки в соединении со стенкой, п. 14.1.7а",\
"19. По максимальному катету шва стенки в соединении с внутренней полкой, п. 14.1.7а.",\
"20. По максимальному катету шва внутренней полки в соединении со стенкой, п. 14.1.7а.",\
"21. По минимальному катету шва стенки в соединении с внешней полкой, п. 14.1.7б",\
"22. По минимальному катету шва внешней полки в соединении со стенкой, п. 14.1.7б",\
"23. По минимальному катету шва стенки в соединении с внутренней полкой, п. 14.1.7б.",\
"24. По минимальному катету шва внутренней полки в соединении со стенкой, п. 14.1.7б."

#define List_Weld_Dvut \
"По металлу шва стенки в соединении с внешней полкой, п. 7.1.6, ф.(193), (194)",\
"По металлу границы сплавления шва стенки в соединении с внешней полкой, п. 7.1.6, ф.(193), (194)",\
"По металлу шва полки в соединении со стенкой, п. 7.1.6, ф.(193), (194)",\
"По металлу границы сплавления шва стенки в соединении с внешней полкой, п. 7.1.6, ф.(193), (194)",\
"По металлу шва стенки в соединении с внутренней полкой, п. 7.1.6, ф.(193), (194)",\
"По металлу границы сплавления шва стенки в соединении с внутренней полкой, п. 7.1.6, ф.(193), (194)",\
"По металлу шва полки в соединении со стенкой, п. 7.1.6, ф.(193), (194)",\
"По металлу границы сплавления шва стенки в соединении с внутренней полкой, п. 7.1.6, ф.(193), (194)",\
" ",\
" ",\
" ",\
" ",\
" ",\
" ",\
" ",\
" ",\
"По максимальному катету шва стенки в соединении с внешней полкой, п. 14.1.7а",\
"По максималаьному катету шва внешней полки в соединении со стенкой, п. 14.1.7а",\
"По максимальному катету шва стенки в соединении с внутренней полкой, п. 14.1.7а.",\
"По максимальному катету шва внутренней полки в соединении со стенкой, п. 14.1.7а.",\
"По минимальному катету шва стенки в соединении с внешней полкой, п. 14.1.7б",\
"По минимальному катету шва внешней полки в соединении со стенкой, п. 14.1.7б",\
"По минимальному катету шва стенки в соединении с внутренней полкой, п. 14.1.7б.",\
"По минимальному катету шва внутренней полки в соединении со стенкой, п. 14.1.7б."

#define NLIST_WELD_DVUT   24
//                                   0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#define NUM_PROV_WELD_DVUT         { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1}

#define List_Weld_Tavr_Plit \
" ",\
" ",\
" ",\
" ",\
"По металлу шва стенки в соединении с пластиной, п. 7.1.6, ф.(193), (194)",\
"По металлу границы сплавления шва стенки в соединении полки с пластиной, п. 7.1.6, ф.(193), (194)",\
"По металлу шва листа в соединении со стенкой, п. 7.1.6, ф.(193), (194)",\
"По металлу границы сплавления шва листа в соединении со стенкой, п. 7.1.6, ф.(193), (194)",\
" ",\
" ",\
" ",\
" ",\
" ",\
" ",\
" ",\
" ",\
" ",\
" ",\
"По максималаьному катету шва стенки в соединении с пластиной, п. 14.1.7а",\
"По максимальному катету шва листа в соединении со стенкой, п. 14.1.7а.",\
" ",\
" ",\
"По минимальному катету шва стенки в соединении с пластиной, п. 14.1.7б.",\
"По минимальному катету шва листа в соединении со стенкой, п. 14.1.7б."
//                                        0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#define NUM_PROV_WELD_TAVR_PLIT         { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1}

#define NLIST_WELD_TAVR_PLIT    24

#define List_Weld_Dvut_Plit \
" ",\
" ",\
" ",\
" ",\
"По металлу шва нижней полки в соединении с пластиной, п. 7.1.6, ф.(193), (194)",\
"По металлу границы сплавления шва нижней полки в соединении с пластиной, п. 7.1.6, ф.(193), (194)",\
"По металлу шва листа в соединении с нижней полкой, п. 7.1.6, ф.(193), (194)",\
"По металлу границы сплавления шва листа в соединении с нижней полкой, п. 7.1.6, ф.(193), (194)",\
" ",\
" ",\
" ",\
" ",\
" ",\
" ",\
" ",\
" ",\
" ",\
" ",\
"По максималаьному катету шва нижней полки в соединении с пластиной, п. 14.1.7а",\
"По максимальному катету шва пластины в соединении с нижней полкой, п. 14.1.7а.",\
" ",\
" ",\
"По минимальному катету шва нижней полки в соединении с пластиной, п. 14.1.7б.",\
"По минимальному катету шва пластины в соединении с нижней полкой, п. 14.1.7б."

#define NLIST_WELD_DVUT_PLIT    24
//                                        0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#define NUM_PROV_WELD_DVUT_PLIT         { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1}

#define MAXNNEL(x, y, i)\
						  if ((x) < (y)) {         \
							(x) = (y);             \
							nnel_krit[i] = n_elem_rep; \
						  }


typedef struct _data_check_u {  // параметры проверок
   double gamma_c;                // Коэффициент условий работы
   double gamma_n;                // Коэффициент надежности по ответственности
   double Limit_lambda1;          // предельная гибкость при сжатии и сжатии с изгибом, первый член
   double Limit_lambda2;          // предельная гибкость при сжатии и сжатии с изгибом, второй член
   double Limit_lambda_plus;          // предельная гибкость при растяжении
   int index_otvetstv;
   int index_class;     // Класс элемента (класс конструкции)
   int index_group;     // Группа конструкции
   double koeff_material_nadeghn;
   double edge_step;
   double edge_thick;
   double edge_width;
   int type_edge;   // -1 - не подбирать ребра; 0 - односторонние; 2 - двусторонние парное
   bool flag_cont_ext;
   bool flag_cont_int;
   bool flag_netto;     // Признак ослабления сечения отверстиями
   int index_local;     // схема распределения местной нагрузки
   int index_nf;       // односторонний (0), двусторонний (1) или шов с проваром на всю глубину (2)
   int index_vid_soedineniya;       // тавровое двустороннее (0), нахлесточное угловое (1) тавровое одностороннее (2)
   int index_vid_svarki;   // 0 - ручная, 1 - автоматическая
   double kf;  // катет шва
   double diametr[4];    // Диаметр отверстий: внешний пояс, внутренний пояс, стенка внешняя, стенка внутренняя
   double space[4];      // Расстояние от оси стенки до первого отверстия: внешний пояс, внутренний пояс, стенка внешняя, стенка внутренняя
   double step[4];       // Шаг отверстий: внешний пояс, внутренний пояс, стенка внешняя, стенка внутренняя
   int    num_holes[4];   // Количество отверстий: внешний пояс, внутренний пояс, стенка
   double perfor_attit;  // Степерь развития прокатного двутавра
   double perfor_alfa;   // угол перфорации
   double perfor_a;   //
   double perfor_b;   //
   double perfor_h;      // Высота перфорации
   double q_ext;         // Распределенная нагрузка, приложенная к внешнему поясу
   double M_third;       // Момент для расчета устойчивости из плоскости (1/3 длины)
   double IRels;
   double Qu_;
   double q_u_;
   double ugol_var;
   double span;         // пролет здания
   double del_max;      // максимальный прогиб в пролете

   double plate_width;  // Размер пластин составного сечения
   double plate_thick;


   int    Local_F_;
   int    Local_b_;
   double length[100];
   double length_XZ[100];
   double length_YZ[100];
   double step_ext[100];
   double step_int[100];

   double len_ext;     // Длина непрерывного закрепления
   double len_int;
   double strela;
   double delta_lim;
   double sigma_minus;
   double sigma_plus;
   double N_minus;
   double N_plus;
   double M_max_i;
   double q_down_max;    // максимальная распределенная нагрузка в комбинации, приложенная к нижнему поясу балки  (для расчета сварного шва)
   double q_down_LR_max;   // максимальная распределенная нагрузка в комбинации от сил с плечом, приложенная к нижнему поясу балки
   double M_down_LR_max;   // расстояние от края плиты до распределенной нагрузки
   int index_composed;     //  0 - тавр с пластиной внизу; 1 - тавр с пластиной вверху; 2 - двутавр с пластиной внизу
   int index_place_local;     //  место приложения местной нагрузки
   int index_limit;     // тип напряженного состояния
   int index_Qy;      // 0 - к внешнему поясу, 1 - к внутреннему, 2 - ко всему сечению
   char fi_b_type_constr;  // тип закрепления 0 - пролет, 1 - консоль
   char fi_b_num_constr;   // количество закреплений в пролете 0 - без закреплений, 1 - два в середине 2 - одно в середине
   char fi_b_type_load;    // тип нагрузки 0 - сосредоточенная в середине, 2 - равномерно распределенная; 3 - любая; 2 - сосредоточенная на четверти
   char fi_b_index_poyas;  // 0 - нагрузка приложена к сжатому поясу, 1 - к растянутому
   bool flag_conclusion;
   bool flag_dummy0;
   bool flag_dynamic_load;
   bool flag_diff_Ry;
   bool flag_diff_edge_Ry;
   bool flag_weld;
   bool flag_vary_sten;
   bool flag_step_edge;       // Флаг задания шага ребер;  false - шаг не задан
   bool flag_razrez;     // Признак разрезности
   bool flag_bend_gib;
   bool flag_compress_gib;
   bool flag_init_check;       // Флаг инициализации
   bool flag_perfor;     // флаг перфорированной стенки
   bool flag_composed;     // флаг составной балки
   bool flag_bending;    // флаг балки, которая должна рассматриваться как изгибаемый элемент
   bool flag_same_material;  // Флаг одинакового материала полки-стенки или профиля-пластины
   bool flag_dummy;
   int index_type;      // Тип нагружения констр. элемента (центрально-растянутый, и.т.п
   int num_krit;        // Количество проверок каждого типа
   bool Checked[100];  // флаги проверок
   WELD_PARAM_UNIT  Weld_param_polka;
   WELD_PARAM_UNIT  Weld_param_stenka;

}  DATA_CHECK_U;

typedef struct _check_elem_param_u {  // расчетные параметры проверок
   DATA_SECT_SCAD Sect_Elem;        // Сечение элементов в группе
   GEOM_PARAM_SECT param_sect;
   GEOM_PARAM_SECT param_netto;
   int    n_RSU;
   int    index_105;
   int    num_elem[6];  // Номера элементов, в которых достигаются максимальные критерии
   int    nelem;
   char   Steel[12];
   double hsect;
   double bsect;
   double diametr;
   double hw;
   double hw1;
   double hw2;
   double hef;
   double hef1;
   double hef2;
   double bef;
   double Ad;   // Редуцированная площадь сечения при lambda_w < k*lambda_uw
   double RSU[10][7];
   double t0;
   double t1;
   double gamma_u;
   double Ryn;
   double Ru;
   double Ry;
   double Ryw;
   double Rs;
   double alfa_f;
   double lambda_w;
   double lambda_uw; // Предельная условная гибкость стенки
   double lambda_f;
   double lambda_uf; // Предельная условная гибкость стенки или поясов в пл. XZ
   double lambda_wY;
   double lambda_uwY; // Предельная условная гибкость стенки (для коробчатого сечения)
   double lambda_f1;
   double lambda_f2;
   double lambdaX;
   double lambda_x;
   double lambdaY;
   double lambda_y;
   double lambdaBF1;
   double lambda_bf1;
   double lambda_b1;
   double lambdaBF2;
   double lambda_bf2;
   double lambda_b2;
   double lambda_ux;
   double lambda_uy;
   double m_exc;  //  Относительный эксцентриситет максимального момента в плоскости стенки при расчете устойчивости в плоскости момента
   double eta;
   double m_ef;   //  Приведенный относительный эксцентриситет максимального момента в плоскости стенки
   double mx;     //  Относительный эксцентриситет момента Mc в плоскости стенки при расчете устойчивости из плоскости момента
   double fi_x;
   double fi_e;
   double fi_y;
   double cfi_y;
   double fi_b;
   double fi_ey;
   double fi_exy;
   double fi_rect_ey;
   double fi_rect_ez;
   double Wm_XZ;
   double Wm_XY;
   double delta_x;
   double delta_y;
   double alfa;
   double Wc;   // Момент сопротивления сечения для сжатого пояса
   double Wt;    // Момент сопротивления сечения для растянутого пояса
   double Wx_min;
   double Wy_min;
   double sigma_max;
   double tau_max;
   double tau_y_max;
   double cx_;       // коэффициенты учета пластики в ф. 105
   double cy_;
   double n_;
   double c_y;       // коэффициенты при расчете устойчивости прямоугольных труб
   double c_z;
   //------------------------------------
   double Mx;
   double My;
   double NT_;       // Растягивиющее усилие
   double N_;
   double Qy;
   double Qx;
   double Sy;   // В плоскости стенки
   double Sx;   // В плоскости поясов
   double Ix;
   double Iy;
   double tw;
   double tf;
   double Aw;
   double Af;
   double sig_xw;
   double sig_yw;
   double tau_w;
   double sig_xf;
   double sig_yf;
   double tau_f;
   double krit_lambdaw;
   double Wcx;
   double Wy;
   double Wtn;
   double sigma1w;
   double delta_b;
   double delta_ub;
   double beta;
   double cx;
   double cy;
   double c_;   // коэффициент при проверке устойчивости сжато-изгибаемых элементов
   double N_105;
   double n_pow;
   double y_106;
   double x_106;
   double A_netto;
   double Ar;
   double fi_1;
   double psi;
   double h_fi_b;
   double l_ef;
   double Ey;
   int index_stab_w;
   double k12;
   double M1;
   double M2;
   double Q_;
   double sigma_stab_max;
   double sigma_stab_cr;
   double tau_stab_max;
   double tau_stab_cr;
   double sigma_loc;
   double sigma_loc_cr;
   double r_stab;
   double alfa_stab;
   double del_lamb;
   double delta4;
   bool flag_check_edge;
   bool flag_check_step;
   double step_max;
   double lambda_b;
   double lambda_ub;
   double a_step;
   double k_;
   double k_x;
   double k_y;
   double lambda_uw_m;
   double edge_param[3][3]; // 0 - CC; 1 - B; 2 - CB // 0 - step; 1 - br; 2 - tr;
   double M13;
   double M24;
   double Q13;
   double Q24;
   double Qperf;
   double Wx_perf;
   double Wmin_tavr;
   double Wmax_tavr;
   double s_perf;

}  CHECK_ELEM_PARAM_U;

typedef struct _check_weld_u {  // расчетные параметры проверок сварных швов
   double WQ;
   double WSEXT;
   double WSINT;
   double WI;
   double WTEXT;
   double WTINT;
   double VDOWN;
   double WRTV;
   double WN;
   double BETAF;
   double BETAZ;
   double KF;
   double RWF;
   double RWZ;
   double T_W;
   double T_F1;
   double T_F2;
   double T_P;
   double KUFFW;
   double KUFF1;
   double KUFF2;
   double KUFFP;
   double WCHECK[24];

}  CHECK_WELD_U;

typedef struct _check_elem_param_cb_u {  // расчетные параметры проверок при Ncomp_max
   DATA_SECT_SCAD Sect_Elem;        // Сечение элементов в группе
   GEOM_PARAM_SECT param_sect;
   GEOM_PARAM_SECT param_netto;
   int    n_RSU;
   int    num_elem[6];  // Номера элементов
   int    index_105;
   int    nelem;
   char   Steel[12];
   double hw;
   double hw1;
   double hw2;
   double hef;
   double hef1;
   double hef2;
   double bef;
   double Ad;   // Редуцированная площадь сечения при lambda_w < k*lambda_uw
   double RSU[10][7];
   double Ryn;
   double Ry;
   double Ryw;
   double Rs;
   double alfa_f;
   double lambda_w;
   double lambda_uw; // Предельная условная гибкость стенки
   double lambda_f;
   double lambda_uf; // Предельная условная гибкость стенки или поясов в пл. XZ
   double lambda_wY;
   double lambda_uwY; // Предельная условная гибкость стенки (для коробчатого сечения)
   double lambda_f1;
   double lambda_f2;
   double lambdaX;
   double lambda_x;
   double lambdaY;
   double lambda_y;
   double lambdaBF1;
   double lambda_bf1;
   double lambda_b1;
   double lambdaBF2;
   double lambda_bf2;
   double lambda_b2;
   double m_exc;  //  Относительный эксцентриситет максимального момента в плоскости стенки при расчете устойчивости в плоскости момента
   double eta;
   double m_ef;   //  Приведенный относительный эксцентриситет максимального момента в плоскости стенки
   double mx;     //  Относительный эксцентриситет момента Mc в плоскости стенки при расчете устойчивости из плоскости момента
   double fi_x;
   double fi_e;
   double fi_y;
   double cfi_y;
   double fi_b;
   double fi_exy;
   double alfa;
   double Wc;   // Момент сопротивления сечения для сжатого пояса
   double Wt;    // Момент сопротивления сечения для растянутого пояса
   double Wx_min;
   double Wy_min;
   double sigma_max;
   double tau_max;
   double cx_;       // коэффициенты учета пластики в ф. 105
   double cy_;
   double n_;
}  CHECK_ELEM_PARAM_CB_U;

class TCheckExecute
{
  private:
	int index_M_max, index_N_plus, index_N_minus;
	int n_RSU_N_plus, n_RSU_N_minus, n_RSU_M_max, n_RSU_Q_max, n_RSU_My_max, n_RSU_Qy_max;


  public:
	 int CheckExecuteU(DATA_CHECK_U *data_check, int *n_krit, double *krit, int *nnel_krit);
	 int CheckExecuteU_Tube(DATA_CHECK_U *data_check, int *n_krit, double *krit, int *nnel_krit);
	 int CheckBending(DATA_CHECK_U *data_check, int *n_krit, double *krit, int *nnel_krit);
	 //  Определить условия проверки для для элеметов порядкового номера группы numUnit постоянного сечения
	 int SetConditionCheck(DATA_CHECK_U *data_check, bool *flag_krit);
	 void SetFlagCheck(int index_Type, DATA_CHECK_U *data_check, bool *flag_check);
	 //double CheckWeld(DATA_SECT_SCAD *Sect, double fi_);
	 double TCheckExecute::CheckWeld_CV(DATA_CHECK_U *data_check, double Ry, int j1_RSU, int j2_RSU, double *fi_, bool *Checked,
										int *n_elem_ret);

	 MATER MaterPropU_prof;
	 MATER MaterPropU_plate;
	 int NumNameGroup[2];       // номера выбранных групп
	 int NelemInGroup[2];       // число элементов в группе
	 DATA_SECT_SCAD Sect_Elem_Group[2];       // Сечение первого элемента в группе
     int NRSU;  // Количество РСУ
	 double Elem_RSU[200][6];           // Значения усилий (N, Mk, Мx, Qy, My, Qx)
	 double q_bal_n[200][2];              // Значения нормативной распределенной нагрузки qy на балке)
	 double q_bal_r[200][2];              // Значения расчетной распределенной нагрузки qy на балке)
	 int ListElem_RSU[200];             // Список элементов, соответствующих РСУ
	 bool CheckElem[200][6];            // флаги проверок для элемента 0 - центр_растянут, 1 - цeнтр_сжат, 2 - сжато-изгиб, 3-изгибаемые, 4 - растянуто-изгибаемые, 5 - резерв
	 DATA_CHECK_U Data_check_U;     // Формируется в конце каждой проверки
	 CHECK_ELEM_PARAM_U Check_param;
	 CHECK_ELEM_PARAM_CB_U Check_param_cb;
     CHECK_WELD_U  Check_Weld_U;
	 char Msteel_prof[10];  // марка стали для которой определяются характеристики стали
	 char Msteel_plate[10];  // марка стали для которой определяются характеристики стали
	 double thick_range_material[2];  // диапазон толщин для стали (в случае ошибки - весь диапазон)
	 double thick_prof;  // толщина профиля, по которой определяются характеристики стали
	 double step_edge;
	 double edge_param[3][3]; // 0 - CC; 1 - B; 2 - CB // 0 - step; 1 - br; 2 - tr;
	 double plate_width, plate_thick;
	 TRichEdit *RichEdit_Weld;
	 int Count_Weld;
	 bool  Checked_weld[30]; // Присваивается в Exclusive
};

void Modif_perfor(DATA_CHECK_U *data_check, SECT_DVUTAVR *sect_perfor);


//---------------------------------------------------------------------------
#endif
