   //--------------------------------------------------------------------------
   // Изгибаемые 1-го класса труба , табл. 2.7.4 ТЗ
 if (data_check->index_type== BENDING) {
      FI_Y_PARAM Fi_y_param;
      FI_E_PARAM Fi_e_param;
      FI_E_PARAM Fi_eY_param;
      double sigma_loc;
      double lef;
      double alfa_w, lambda_ux, lambda_uy, Qfic;
      double excentr, m_exc;
      double sig_1, sig_2;
      double sig_1w, sig_2w;
      double sig_1wY, sig_2wY;
      double lambda_uw;
      double tau_m, hd, Ad, delta_fi, Ar, lambda_uw20;
      bool flag_check[30];
      double krit_1, krit_2;
      double alfa_x, alfa_y, alfa_y0, k_x, fi_m;
      double fi_f1, fi_f2;
      double M_c;
      double lambda_cent; // гибкость при центральном сжатии
      int  index_105 = 1;  // 1 - применяется формула 105 - с учетом пластики; 0 - пластика не допускается - ф.106
      double length, lambda, i_f;
      double beta, n_, cx_, cy_;
      //double Af_y, Iyy, Sy, t_y; // параметры сечения, воспринимающего M_y и Q_y
      double lambda_b, lambda_ub;
      int k, j_, m, n_RSU, list_RSU[10];
      double x_;
      int i_current, n_elem; // текущий номер элемента
      int n_elem_rep; // текущий номер элемента
      int i;
      char stroka[120];
      double NatMmax;
      CHECK_ELEM_PARAM_U *Cp;
      double m_excY, excentrY, lambda_uwY, lambda_uw20Y;
      double hdY, AdY, ArY, Wcy, Wty, k_y;
      double m_x; // В BENDING не используется
      bool flag_message_1 = false;
	  double len, q_bal_norm, q_bal_ras;
	  double f_lim, fmax;
	  double step_len[5] = {1000, 3000, 6000, 12000, 100000};
	  double dev_len[5]  = {120, 150, 200,  250,   300};
	  FI_B_PARAM fi_b_param;
      CHECK_STAB_PARAM Check_stab_param;



	  Cp = &(Check_param);

	  // Зануление критериев
	  for (i=0; i<data_check->num_krit; i++) {
        krit[i] = -1;
        nnel_krit[i] = -1;
        flag_check[i] = data_check->Checked[i];
      }
      // Вычисление sigma_loc, ф.47 СП
      if (data_check->index_local == 0)
        lef = data_check->Local_b_ + 2*(tef_1);
      else
        lef = 3.25*pow(tef_1*tef_1*tef_1*bef_1/(12*t_) + data_check->IRels*1000, 0.33333);
      if (lef>0) {
        sigma_loc = data_check->Local_F_*1000/(lef*t_);
      }
      else
        sigma_loc = 0;
      // коэффициент потери устойчивости при центральном сжатии для поясов

      //InfMessage("lambda_w = "+FloatToStr(Round(lambda_w, 3)));
      //-------------------------------------------------------------
      //-------------------------

      double Mmax = 0;
      double Qmax = 0;
      double Nmin = 0;
      double alfa_yf1_max = 0;
      double alfa_yf2_max = 0;
      Cp->sigma_max = 0;
      Cp->tau_max = 0;
      Cp->n_RSU = 3;
	  Cp->alfa_f = Af/(t_*h_);
	  i_current = -1;
      Cp->hef1 = 0;
	  Cp->hw1 = 0;

	for (m=0; m<2; m++) {
	  for (i = 0; i<NRSU; i++) {
        n_elem = ListElem_RSU[i];
        n_elem_rep = n_elem;
		if (!CheckElem[i][3])
			continue;

        if (Cp->hef1 == 0) {
          Cp->hef1 = hef;
          Cp->hw1 = h_;
        }
        Cp->hef2 = hef;   // Будет последнее, несмотря на жесткие вставки
        Cp->hw2 = h_;

        N_ = Elem_RSU[i][0]*1000;
        M_ = Elem_RSU[i][2]*1e6;


        Q_ = Elem_RSU[i][3]*1000;
        M_y = Elem_RSU[i][4]*1e6;
        Q_y = Elem_RSU[i][5]*1000;

		//if (data_check->M_third > 0.1 && (ABS(Elem_RSU[i][2])) > data_check->M_third)
        //  M_c = data_check->M_third*1e6*SIGN(M_);
        //else
		//  M_c = M_;
		M_c = 0;


        Forces[0] = Elem_RSU[i][0]*1000;
        Forces[1] = Elem_RSU[i][1]*1e6;
        Forces[2] = Elem_RSU[i][2]*1e6;
        Forces[3] = Elem_RSU[i][3]*1000;
        Forces[4] = Elem_RSU[i][4]*1e6;
		Forces[5] = Elem_RSU[i][5]*1000;

		q_bal_norm = ABS(q_bal_n[i][0]);  // Нормативная погонная нагрузка
		q_bal_ras = ABS(q_bal_r[i][0]);    // Расчетная погонная нагрузка
		// длина элемента
		len = data_check->length[n_elem];
		if (data_check->delta_lim > 0)
		  f_lim = len/data_check->delta_lim;
		else {
		  f_lim = len/l_app(step_len, dev_len, len, 5);
		}

        if (fi_y[n_elem] < fi_x[n_elem])
          lambda_cent = lambda_y[n_elem];
        else
          lambda_cent = lambda_x[n_elem];
        // Минимальное и максимальное напряжение в стенке
        sig_1 = N_/param_sect.Ar + M_*(param_sect.Zct - tef_1 - param_sect.Rad)/param_sect.Izz;
        sig_2 = N_/param_sect.Ar - M_*(param_sect.Hsect - param_sect.Zct - tef_2 - param_sect.Rad)/param_sect.Izz;
        sig_1w = MIN(sig_1, sig_2);
        sig_2w = MAX(sig_1, sig_2);
        // Минимальное и максимальное напряжение в стенке от действия момента M_y
		sig_1 = N_/param_sect.Ar + M_y*(param_sect.Yct - tef_1 - param_sect.Rad)/param_sect.Iyy;
        sig_2 = N_/param_sect.Ar - M_y*(param_sect.Wsect - param_sect.Yct - tef_2 - param_sect.Rad)/param_sect.Iyy;
        sig_1wY = MIN(sig_1, sig_2);
        sig_2wY = MAX(sig_1, sig_2);
        if ((ABS(sig_1w)) > 1e-6)
          alfa_w = (sig_1w - sig_2w)/sig_1w;
        else
          alfa_w = 1.0;
        // Вычисление напряжений
        sigma_beam_comm(&param_sect, Forces, sigma_comm);

        if (N_ != 0) {
          excentr = ABS(M_/N_);
          m_exc = excentr*param_sect.Ar/Wc;  // для устойчивости в плоскости момента

          excentr = ABS(M_c/N_);
          m_x = excentr*param_sect.Ar/Wc;  // для устойчивости из плоскости момента
		}
        else {
          m_x = 20;
          m_exc = 20;
        }
        if (N_ != 0) {
          excentrY = ABS(M_y/N_);
          m_excY = excentr*param_sect.Ar/WcY;  // для устойчивости в плоскости момента M_y
        }
		else {
          m_excY = 20;
        }

		// Вычисление fi_e
		Get_fi_e(Sect_Elem_Group[0].type_sect, &(Sect_Elem_Group[0].com_sect), M_, N_, 0,
				   data_check->length_XZ[n_elem], &param_sect, Ry, Ey, &Fi_e_param);

        // Вычисление fi_e - устойчивость в плоскости действия момента M_y
		Get_fi_e(RECT_TUBE, &(section_tube), M_y, N_, 0,
                   data_check->length_YZ[n_elem], &param_sect, Ry, Ey, &Fi_eY_param);

        // Вычисление fi_b
		double fi_b = Get_fi_b_bend(Sect_Elem_Group[0].type_sect, &(Sect_Elem_Group[0].com_sect), M_, N_,
						data_check->length_YZ[n_elem], data_check->step_ext[n_elem], data_check->step_int[n_elem],
                        &param_sect, Ry, Ey,
                        data_check->fi_b_type_constr, data_check->fi_b_num_constr,
						data_check->fi_b_type_load, data_check->fi_b_index_poyas, &fi_b_param);
        if (fi_b == 0) {
           fi_b = 1;
		}

        // Вычисление fi_e
        //Get_c_fi_y(Sect_Elem_Group[0].type_sect, &(Sect_Elem_Group[0].com_sect), M_c, N_,
        Get_c_fi_y(Sect_Elem_Group[0].type_sect, &(Sect_Elem_Group[0].com_sect), M_, N_,
						data_check->length_YZ[n_elem], data_check->step_ext[n_elem], data_check->step_int[n_elem],
						&param_sect, Ry, Ey, &Fi_y_param, fi_b);

        alfa_x = (ABS(N_))/(Fi_e_param.fi_e*param_sect.Ar*Ry*data_check->gamma_c);
		alfa_y = (ABS(N_))/(Fi_y_param.c_*Fi_y_param.fi_y*param_sect.Ar*Ry*data_check->gamma_c);
        alfa_y0 = (ABS(N_))/(Fi_y_param.fi_y*param_sect.Ar*Ry*data_check->gamma_c);
        lambda_ux = data_check->Limit_lambda1 - data_check->Limit_lambda2*(MAX(0.5, alfa_x));
        lambda_uy = data_check->Limit_lambda1 - data_check->Limit_lambda2*(MAX(0.5, alfa_y0));
        // Вычисление k_x
		if (lambdaX[n_elem]/lambda_ux <= alfa_x || lambdaY[n_elem]/lambda_uy <= alfa_y)
          k_x = 1.0;
		else {
          fi_m = MIN(Fi_e_param.fi_e, Fi_y_param.c_*Fi_y_param.fi_y);
          if ((ABS(N_)) <= 1e-1)
             k_x = 1.25;
          else
             k_x = MIN(sqrt(fi_m*param_sect.Ar*Ry/(ABS(N_))), 1.25);
		}
        // Вычисление k_y
        if (lambdaX[n_elem]/lambda_ux <= alfa_x || lambdaY[n_elem]/lambda_uy <= alfa_y)
          k_y = 1.0;
        else {
          fi_m = MIN(Fi_eY_param.fi_e, Fi_y_param.c_*Fi_y_param.fi_y);
          if ((ABS(N_)) <= 1e-1)
			 k_y = 1.25;
          else
             k_y = MIN(sqrt(fi_m*param_sect.Ar*Ry/(ABS(N_))), 1.25);
        }
         // lambda_uw при mx=20 по п. 8.5.8
        lambda_uw20 = Fun_lambda_uw20(M_, Q_, Ry, Ry, Ey, Rs, hef, t_, Af, data_check->gamma_c);
        // Среднее касательное напряжение
		tau_m = (ABS(Q_))/(h_*t_);
        delta_fi = Fi_y_param.c_*Fi_y_param.fi_y - Fi_e_param.fi_e;
		// Предельная гибкость по табл. 22

        lambda_uw = Fun_lambda_uw_cent_bend(type_sect, lambda_x[n_elem], m_exc, sig_1w, sig_2w, tau_m, delta_fi,
                    Ry, data_check->gamma_c, lambda_uw20);

		// Вычисление lambda_uwY для плоскости XY
		// lambda_uw при mx=20 по п. 8.5.8
        lambda_uw20Y = Fun_lambda_uw20(M_y, Q_y, Ry, Ry, Ey, Rs, bef, t_, AfY, data_check->gamma_c);
        // Среднее касательное напряжение
        tau_m = (ABS(Q_y))/(b_*t_);
        delta_fi = Fi_y_param.c_*Fi_y_param.fi_y - Fi_eY_param.fi_e;
        // Предельная гибкость по табл. 22

		lambda_uwY = Fun_lambda_uw_cent_bend(type_sect, lambda_y[n_elem], m_excY, sig_1wY, sig_2wY, tau_m, delta_fi,
					Ry, data_check->gamma_c, lambda_uw20Y);

        #ifdef INFMESSAGE
		InfMessage(IntToStr(i+1)+": N ="+FloatToStr(Round(N_/1000, 1))+", M ="+FloatToStr(Round(M_/1e6, 1)));
        InfMessage("     lambda_uw20 ="+FloatToStr(lambda_uw20)+", lambda_uw ="+FloatToStr(Round(lambda_uw, 3)));
		#endif
		if (type_sect == SQUARE_TUBE || type_sect == RECT_TUBE) {
		  hd = t_*(lambda_uw - (lambda_w/lambda_uw - 1)*(lambda_uw - 1.2 - 0.15*(MIN(lambda_x[n_elem], 3.5))))*sqrt(Ey/Ry);
		// Редуцированная площадь
		  Ad = param_sect.Ar - 2*(h_ - hd)*t_;

		  hdY = MIN(bef, t_*(lambda_uwY - (lambda_wY/lambda_uwY - 1)*(lambda_uwY - 1.2 - 0.15*(MIN(lambda_y[n_elem], 3.5))))*sqrt(Ey/Ry));
        // Редуцированная площадь
		  AdY = param_sect.Ar - (bef - hdY)*t_;
		}
		else {
		  Ad = param_sect.Ar;
		  AdY = param_sect.Ar;
		}

        if (((ABS(M_y)) > 1000 ||(ABS(Q_y)) > 10) && data_check->index_Qy == -1) {
		  #ifdef EMBRAC
		   int rc = Application->MessageBox(L"Изгибающий момент в плоскости поясов не равен нулю. На вкладке ""Данные о нагрузках"" необходимо задать распределение усилий по поясам",
											L"Изгибаемые элементы",  MB_OK | MB_ICONERROR);
		  #else
		   int rc = Application->MessageBox("Изгибающий момент в плоскости поясов не равен нулю. На вкладке ""Данные о нагрузках"" необходимо задать распределение усилий по поясам",
											   "Изгибаемые элементы",  MB_OK | MB_ICONERROR);
		  #endif
		  return rc;
		}
		// определение lambda_b
		if (sigma_comm[0] < data_check->sigma_minus ) {  // сжат верхний пояс
		  lambda_b = (data_check->step_ext[n_elem]/bef_1)*sqrt(Ry/Ey);
          lambda_ub = 0.35+0.0032*bef_1/tef_1+(0.76-0.02*bef_1/tef_1)*bef_1/param_sect.Hp;  // Формула 71
		}
		if (sigma_comm[2] < data_check->sigma_minus ) {  // сжат нижний пояс
		  lambda_b = (data_check->step_int[n_elem]/bef_2)*sqrt(Ry/Ey);
		  lambda_ub = 0.35+0.0032*bef_2/tef_2+(0.76-0.02*bef_2/tef_2)*bef_2/param_sect.Hp;  // Формула 71
		}
		//------------------------------------------------------------------------------------
        // 1. (2.2.6), (2.2.7) ------------------------------------------------------
        // Расчет на прочность по нормальным напряжениям, п. 9.1.1 ф.(105) или (106)
		if (m==0) {
          double krit_8_5_8, krit_8_5_18;
          double tau_y;
		  //--------------------------------------------------------------------------
		  // Условие п. 8.5.8
          {
            double tau_m, alfa, sig1, sig2, r_, A1, A2, h1, Dev;

			tau_m = (ABS(Q_))/(2*t_*h_);
            r_ =  1.0;
            alfa = Fun_alfa_18(lambda_w, tau_m/Rs);

            // симметричное сечение
            krit_8_5_8 = (ABS(M_))/(Ry*data_check->gamma_c*hef*hef*t_*(r_*bef_1*tef_1/(h_*t_) + alfa));
          }
          //-----------------------------------------------------------------
		  // Проверка местной устойчивости сжатого пояса, п. 8.5.18.
          {
			double lambda_f, lambda_uf, sig_f1, sig_f2, sig_max;
            krit_8_5_18 = 0;
            sig_f1 = N_/param_netto.Ar - M_*(param_netto.Zct)/param_netto.Izz;
			sig_f2 = N_/param_netto.Ar + M_*(param_netto.Hsect - param_netto.Zct)/param_netto.Izz;
            sig_max = MAX((ABS(sig_f1)), (ABS(sig_f2)));
            if (Cp->sigma_max < sig_max) {
                double s1, s2;
                Cp->sigma_max = sig_max;
                s1 = MIN(sig_f1, sig_f2);
                s2 = MAX(sig_f1, sig_f2);
                if ((ABS(s1)) > 1e-6)
                  Cp->alfa = (s1 - s2)/s1;
				else
				  Cp->alfa = 1.0;

			}
			if (sig_f1 < 0 ) {
			  lambda_uf = 0.5*sqrt(Ry/(ABS(sig_f1)));
			  krit_8_5_18 = lambda_f/lambda_uf;
			}
			if (sig_f2 < 0 ) {
			  lambda_uf = 0.5*sqrt(Ry/(ABS(sig_f2)));
			  krit_8_5_18 = MAX(krit_8_5_18, lambda_f/lambda_uf);
			}
		  }
		  tau_m = (ABS(Q_))/(t_*h_);
		  tau_y = (ABS(Q_y))/AwY;

		  if ((ABS(N_))/param_netto.Ar > 0.1*Ry && data_check->flag_razrez && data_check->index_class > 1)
			 index_105 = MIN(index_105, 1);
		  else {
			if (krit_8_5_8 <= 1.0 && krit_8_5_18 <=1.0 && data_check->flag_razrez  && data_check->index_class > 1)
			  index_105 = MIN(index_105, 1);
			else
			  index_105 = 0;
		  }
		  if (steel_param.Ryn <= 440 && data_check->index_class != 1 && tau_m <= 0.9*Rs && tau_y <= 0.9*Rs  &&
			  index_105 == 1 && !data_check->flag_dynamic_load) {  // Формула 105
			  double alfa_f;
			  if (tau_m <= 0.5*Rs)
				beta = 1;
			  else {
				alfa_f = Af/(t_*h_);
				beta = 1 - pow(tau_m/Rs, 4)*0.2/(alfa_f +0.25);
			  }
			  // Получить значение коэффициентов n, cx, cy по табл Е.1
			  Get_n_cx_cy(0, Sect_Elem_Group[0].type_sect, &(Sect_Elem_Group[0].com_sect), &n_, &cx_, &cy_);

              double krit_105 = pow((ABS(N_))/(param_netto.Ar*Ry*data_check->gamma_c), n_) + (ABS(M_))/(cx_*beta*Wx_min*Ry*data_check->gamma_c) +
							(ABS(M_y))/(cy_*Wy_min*Ry*data_check->gamma_c);
			  if (krit_105 > krit[0]) {
				Cp->n_pow = n_;
				Cp->beta = beta;
				Cp->cx = cx_;
				Cp->cy = cy_;
				Cp->N_105 = ABS(N_);
			  }
			  MAXNNEL(krit[0], krit_105, 0) ;
		  }
		  else {
			  double krit_106 = (ABS(N_))/(param_netto.Ar*Ry*data_check->gamma_c) + (ABS(M_))/(Wx_min*Ry*data_check->gamma_c) +
								(ABS(M_y))/(Wy_min*Ry*data_check->gamma_c);
			  MAXNNEL(krit[0], krit_106, 0);
			  index_105 = 0;
		  }
		  if (m==0 && N_ < Nmin) {
			Nmin = N_;
			Cp->RSU[0][0] = Elem_RSU[i][0];
			Cp->RSU[0][2] = Elem_RSU[i][2];
			Cp->RSU[0][3] = Elem_RSU[i][3];
			Cp->RSU[0][4] = Elem_RSU[i][4];
			Cp->RSU[0][5] = Elem_RSU[i][5];
            Cp->RSU[0][6] = M_c*1e-6;
          }
          if (m==0 && (ABS(Q_)) > Qmax) {
            Qmax = ABS(Q_);
            Cp->RSU[1][0] = Elem_RSU[i][0];
            Cp->RSU[1][2] = Elem_RSU[i][2];
            Cp->RSU[1][3] = Elem_RSU[i][3];
			Cp->RSU[1][4] = Elem_RSU[i][4];
			Cp->RSU[1][5] = Elem_RSU[i][5];
            Cp->RSU[1][6] = M_c*1e-6;
		  }
		  if (m==0 && (ABS(M_)) > Mmax) {
			Mmax = ABS(M_);
            NatMmax = N_;
            Cp->nelem = n_elem_rep;
            Cp->hw = h_;
			Cp->hef = hef;
			Cp->Mx = ABS(M_);
			Cp->My = ABS(M_y);
			Cp->N_ = ABS(N_);

			Cp->RSU[2][0] = Elem_RSU[i][0];
            Cp->RSU[2][2] = Elem_RSU[i][2];
            Cp->RSU[2][3] = Elem_RSU[i][3];
            Cp->RSU[2][4] = Elem_RSU[i][4];
            Cp->RSU[2][5] = Elem_RSU[i][5];
			Cp->RSU[2][6] = M_c*1e-6;
            strcpy(Cp->Steel, MaterPropU_prof.title);
            Cp->Ryn = steel_param.Ryn;
			Cp->bef = bef_1;
            Cp->Ry = Ry;
            Cp->Ryw = Ry;
            Cp->Rs = Rs;
            Cp->lambdaX = lambdaX[n_elem];
            Cp->lambdaY = lambdaY[n_elem];
            Cp->lambda_x = lambda_x[n_elem];
            Cp->lambda_y = lambda_y[n_elem];
			Cp->lambda_uw = lambda_uw;
			Cp->lambda_w = lambda_w;
			Cp->lambda_uf = lambda_uf[i];
			Cp->lambda_f = lambda_f;
			Cp->lambda_f1 =0;
			Cp->lambda_f2 = 0;
			//Cp->lambdaBF1 = Lambda_f1Y;
			//Cp->lambda_bf1 = lambda_f1Y;
			//Cp->lambdaBF2 = Lambda_f2Y;
			//Cp->lambda_bf2 = lambda_f2Y;
            Cp->fi_x = fi_x[n_elem];
			Cp->fi_y = fi_y[n_elem];
			Cp->Wc = Wc;
			Cp->Wt = Wt;
            Cp->Ad = Ad;
            Cp->Wx_min = Wx_min;
            Cp->Wy_min = Wy_min;
            memcpy(&(Cp->Sect_Elem), &(Sect_Elem_Group[0]), sizeof(DATA_SECT_SCAD));
			memcpy(&(Cp->param_sect), &(param_sect), sizeof(GEOM_PARAM_SECT));
            memcpy(&(Cp->param_netto), &(param_netto), sizeof(GEOM_PARAM_SECT));
            Cp->fi_e = Fi_e_param.fi_e;
            Cp->fi_b = Fi_y_param.fi_b;
            Cp->fi_y = Fi_y_param.fi_y;
            Cp->cfi_y = Fi_y_param.fi_y*Fi_y_param.c_;
            Cp->m_ef = Fi_e_param.m_ef;
			Cp->lambda_b1 = (data_check->step_ext[n_elem]/bef_1)*sqrt(Ry/Ey);
            Cp->lambda_b2 = (data_check->step_int[n_elem]/bef_2)*sqrt(Ry/Ey);
            Cp->mx = m_exc;
            Cp->m_exc = m_exc;
            Cp->cx_ = cx_;
            Cp->cy_ = cy_;
			Cp->n_ = n_;
			Cp->index_105 = index_105;
			Cp->hsect = h_;
			Cp->bsect = b_;
			Cp->bef = bef;
			Cp->hef = hef;
			Cp->A_netto = param_netto.Ar;
			Cp->Sx = param_netto.Sx[0];
			Cp->Iy = param_sect.Iyy;
			Cp->Ix = param_sect.Izz;
			Cp->Ix = param_sect.Izz;
			Cp->tw = t_;


		  }
		  continue;
		}
		//-------------------------------------------------------------------------------
		// 2. Проверка стенки на действие поперечной силы в вертик. пл. XZ, п. 8.2.1, ф. (42)",
		if (flag_check[1]) {
		  double Q_1, tau_max;
		  //Qfic = GetQfic(Ey, Ry, N_, fi_x);        // - используется коэффициент fi_x, полученный для центрального сжатия
		  //Q_1 = MAX((ABS(Q_)), Qfic);
		  //tau_max = Calc_Tau_Pop_Force(N_, M_, Q_1, &(Sect_Elem_Group[0].com_sect.dvutavr), &param_netto, data_check->ugol_var);

		  tau_max = (ABS(Q_))*param_sect.Sx[0]/(param_sect.Izz*2*t_);

		  if (Cp->tau_max < tau_max)
			 Cp->tau_max = tau_max;
		  double krit_1 = tau_max/(Rs*data_check->gamma_c);

		  if (krit_1 > krit[1]) {
			Cp->Qy = ABS(Q_);
		  }
		  MAXNNEL(krit[1], tau_max/(Rs*data_check->gamma_c), 1);
		}

		//-----------------------------------------------------------------
		// 3. Расчет на прочность поясов от поперечной силы в горизонт. плоскости XY), кроме опорных сечений, п. 8.2.1
		if (flag_check[2]) {
		   double tau_y;
		   tau_y = (ABS(Q_y))*param_sect.Sy[0]/(param_sect.Iyy*2*t_);

		   double krit_2 = tau_y/(Rs*data_check->gamma_c);
		   if (krit_2 > krit[2]) {
				Cp->Qx = ABS(Q_y);
		   }
		   MAXNNEL(krit[2], krit_2, 2);
		}
		//-----------------------------------------------------------------
		// 4. Расчет на прочность стенки в опорном сечении, п. 8.2.3, ф. (54)
		if (flag_check[3]) {
		  if (index_105 == 1) {
			MAXNNEL(krit[3], (ABS(Q_))/(2*Aw*Rs*data_check->gamma_c), 3);
		  }
		  else  {
			krit[3] = 0.0;
		  }
		}
		//-----------------------------------------------------------------
		// 5. Расчет на прочность поясов в опорном сечении, п. 8.2.3, ф. (54)
		if (flag_check[4]) {
		  if(index_105 == 1) {
			MAXNNEL(krit[4], (ABS(Q_y))/(2*AwY*Rs*data_check->gamma_c), 4);
		  }
          else
            krit[4] = 0.0;
	    }		
        //---------------------------------------------------------------------------
        // 6. Прочность стенки, не укрепленной ребрами жесткости, п. 8.2.1 ф. (44)
        if (flag_check[5]) {
          double sig_y1, sig_y2, krit_5;
          if (!data_check->flag_step_edge && data_check->index_class > 1)
             krit[5] = 999;
          else {
            if (data_check->index_class == 1 && !data_check->flag_step_edge) {
              // 1 класс не укрепленный ребрами жесткости
           // знак момента: M>0 - внешние волокна сжаты
              switch (data_check->index_local) {
              case 0:
               sig_y1 = -sigma_loc - data_check->q_ext*1000/(t_);
               sig_y2 = 0;
              break;
              case 1:
			   sig_y1 = -data_check->q_ext*1000/(t_);
               sig_y2 = sigma_loc;
              break;
              case 2:
			   sig_y1 = -data_check->q_ext*1000/(t_);
               sig_y2 = 0;
			  break;
              }
              krit_5 = MAX((ABS(sig_y1))/(Ry*data_check->gamma_c), (ABS(sig_y2))/(Ry*data_check->gamma_c));
              MAXNNEL(krit[5], krit_5, 5);
            }
            else {  // укрепленный ребрами
              krit[5] = 0;
            }
          }
        }
        //------------------------------------------------------------------
        // 7. Расчет на прочность стенки при одновременном действии нормальной силы, момента M_ и поперечной силы Qz, п. 8.2.1 ф. (44)
        if (flag_check[6]) {
          double sig_x1, sig_x2, sig_y1, sig_y2, tau_xy0, tau_xy1, tau_xy2, krit_6;
         // знак момента: M>0 - внешние волокна сжаты
          sig_x1 = N_/param_netto.Ar - M_*(param_netto.Zct - tef_1)/param_netto.Izz;
          sig_x2 = N_/param_netto.Ar + M_*(param_netto.Hsect - param_netto.Zct - tef_2)/param_netto.Izz;
          switch (data_check->index_local) {
            case 0:
              sig_y1 = -sigma_loc - data_check->q_ext*1000/(t_);
              sig_y2 = 0;
            break;
            case 1:
              sig_y1 = -data_check->q_ext*1000/(t_);
			  sig_y2 = sigma_loc;
            break;
            case 2:
			  sig_y1 = -data_check->q_ext*1000/(t_);
              sig_y2 = 0;
			break;
          }
          //
          tau_xy0 = (ABS(Q_))*param_netto.Sx[0]/(param_netto.Izz*2*t_);
          tau_xy1 = (ABS(Q_))*param_netto.Sx[1]/(param_netto.Izz*2*t_);
          tau_xy2 = (ABS(Q_))*param_netto.Sx[2]/(param_netto.Izz*2*t_);
          krit_6 = MAX(0.87*sqrt(sig_x1*sig_x1 - sig_x1*sig_y1 + sig_y1*sig_y1 + 3*tau_xy1*tau_xy1)/(Ry*data_check->gamma_c),
					   0.87*sqrt(sig_x2*sig_x2 - sig_x2*sig_y2 + sig_y2*sig_y2 + 3*tau_xy2*tau_xy2)/(Ry*data_check->gamma_c));
		  krit_6 = MAX(krit_6, tau_xy0/(Rs*data_check->gamma_c));
		  if (krit_6>krit[6]) {
			if (sqrt(sig_x1*sig_x1 - sig_x1*sig_y1 + sig_y1*sig_y1 + 3*tau_xy1*tau_xy1) >
			   sqrt(sig_x2*sig_x2 - sig_x2*sig_y2 + sig_y2*sig_y2 + 3*tau_xy2*tau_xy2)) {
			  Cp->sig_xw = Round(sig_x1, 0);
			  Cp->sig_yw = Round(sig_y1, 0);
			  Cp->tau_w = Round(tau_xy1, 0);
			}
			else {
			  Cp->sig_xw = Round(sig_x2, 0);
			  Cp->sig_yw = Round(sig_y2, 0);
			  Cp->tau_w = Round(tau_xy2, 0);
			}
		  }
		  MAXNNEL(krit[6], krit_6, 6);
        }
        //-------------------------------------------------------------------------------------------------------------------
        // 8. Расчет на прочность стенки при одновременном действии нормальной силы, момента M_y и поперечной силы Qy, п. 8.2.1 ф. (44)
        if (flag_check[7]) {
          double sig_x1, sig_x2, sig_y1, sig_y2, tau_xy0, tau_xy1, tau_xy2, krit_7;
         // знак момента: M_y>0 - внешние волокна сжаты
          sig_x1 = N_/param_netto.Ar - M_y*(param_netto.Yct - tef_1)/param_netto.Iyy;
          sig_x2 = N_/param_netto.Ar + M_y*(param_netto.Wsect - param_netto.Yct - tef_2)/param_netto.Iyy;
          sig_y1 = 0;
          sig_y2 = 0;
          //
          tau_xy0 = (ABS(Q_y))*param_netto.Sy[0]/(param_netto.Iyy*2*t_);
          tau_xy1 = (ABS(Q_y))*param_netto.Sy[1]/(param_netto.Iyy*2*t_);
          tau_xy2 = (ABS(Q_y))*param_netto.Sy[2]/(param_netto.Iyy*2*t_);
          krit_7 = MAX(0.87*sqrt(sig_x1*sig_x1 - sig_x1*sig_y1 + sig_y1*sig_y1 + 3*tau_xy1*tau_xy1)/(Ry*data_check->gamma_c),
                       0.87*sqrt(sig_x2*sig_x2 - sig_x2*sig_y2 + sig_y2*sig_y2 + 3*tau_xy2*tau_xy2)/(Ry*data_check->gamma_c));
          krit_7 = MAX(krit_7, tau_xy0/(Rs*data_check->gamma_c));
		  MAXNNEL(krit[7], krit_7, 7);
        }
		//-----------------------------------------------------------
        // 9. Устойчивость по изгибно-крутильной форме
        if (flag_check[8]) {
            krit[8] = -1;
        }
        //-------------------------------------------------------------
        // Пункты 10, 11, 13
        if (flag_check[9] || flag_check[10] || flag_check[12]) {
		  double sig_x1, sig_x2, sig_x1f, sig_x2f, sig_y1, sig_y2, tau_xy1, tau_xy2, krit_7;
          double My_ext, My_int, Nf1, Nf2, Af1, Af2;
          double fi_f;
		  COMMON_SECT sect_f;
          GEOM_PARAM_SECT param_sect_f;
          FI_E_PARAM Fi_e_param_f;

         // знак момента: M>0 - внешние волокна сжаты
          sig_x1 = N_/param_netto.Ar - M_*(param_netto.Zct)/param_netto.Izz;
          sig_x2 = N_/param_netto.Ar + M_*(param_netto.Hsect - param_netto.Zct)/param_netto.Izz;
          // Напряжения в ц.т. поясов
          sig_x1f = N_/param_netto.Ar - M_*(param_netto.Zp)/param_netto.Izz;
          sig_x2f = N_/param_netto.Ar + M_*(param_netto.Hp - param_netto.Zp)/param_netto.Izz;
          My_ext = M_y/2;
          My_int = M_y/2;
          if (sig_x1 < 0) {
              sig_x1 -= ABS(0.5*M_y/Wy_min);
			  sig_x1f -= ABS(0.5*M_y/Wy_min);
          }
		  else {
              sig_x1 += ABS(0.5*M_y/Wy_min);
			  sig_x1f += ABS(0.5*M_y/Wy_min);
          }
          if (sig_x2 < 0) {
              sig_x2 -= ABS(0.5*M_y/Wy_min);
              sig_x2f -= ABS(0.5*M_y/Wy_min);
          }
          else {
              sig_x2 += ABS(0.5*M_y/Wy_min);
              sig_x2f += ABS(0.5*M_y/Wy_min);
          }
          tau_xy1 = (ABS(Q_y))*0.5*param_sect.Sy[0]/(param_sect.Iyy*2*t_);
          tau_xy2 = (ABS(Q_y))*0.5*param_sect.Sy[0]/(param_sect.Iyy*2*t_);

		  sig_y1 = 0;
		  sig_y2 = 0;
		  Af1 = bef_1*tef_1;
		  Nf1 = Af1*sig_x1f;
		  Af2 = bef_2*tef_2;
		  Nf2 = Af2*sig_x2f;
		  //
		 //-----------------------------------------------------------
		 // 10. Прочность элементов, закрепляющих сжатый пояс, п. 8.4.5
		  if (flag_check[9]) {
			double Nf, Nf1, Nf2, fi, krit_9;
			Nf1 = bef_1*tef_1*Ry + 0.25*t_*h_*Ry;
			Nf2 = bef_2*tef_2*Ry + 0.25*t_*h_*Ry;
			Nf = 0;
			if (sig_x1 < data_check->sigma_minus) { // внешний пояс сжат
			  lambda_f = lambda_f1Y[n_elem];
			  Nf = Nf1;
			}
			if (sig_x2 < data_check->sigma_minus) { // внешний пояс сжат
			  lambda_f = lambda_f2Y[n_elem];
			  Nf = Nf2;
			}
			if (Nf >0) {
		  // Вычисление fi - коэффициент устойчивости внешнего пояса в плоскости поясов при центальном сжатии
			  fi = Round(Fun_fi_713(RECTANCULAR, lambda_f, 0), 3);
			  Qfic = GetQfic(Ey, Ry, Nf, fi);
			  if (!data_check->flag_cont_ext) {
				krit_9 = Qfic/(data_check->Qu_*1000);
			  }
			  else {
				krit_9 = 3*Qfic/(data_check->len_ext*data_check->q_u_*1000);
			  }
			  MAXNNEL(krit[9], krit_9, 9);
			}
			else {
			  krit[9] = MAX(krit[9], 0);
			}
		  }
		  //-----------------------------------------------------------
		  // 11. Проверка устойчивости стенки, п. 8.5.1, 8.5.3, 8.5.7
		  if (flag_check[10]) {
			double krit_10;
			double M1, M2;
			double a_otsek;
			//
			if (index_105==1) {
				double k12;
				if (sigma_loc < 1.0 )
				  k12 = 3.5;
				else
				  k12 = 2.5;
				krit_10 = lambda_w/k12;
				if (krit_10 >= 1.0 && !flag_message_1) {
				  flag_message_1 = true;
				  #ifdef EMBRAC
				  rc = Application->MessageBox(L"Для выполнения проверки 11 (устойчивость стенки) необходимо задать шаг ребер",
											   L"Изгибаемые элементы",
					MB_OK | MB_ICONERROR);
				  #else
				  rc = Application->MessageBox("Для выполнения проверки 11 (устойчивость стенки) необходимо задать шаг ребер",
											   "Изгибаемые элементы",
					MB_OK | MB_ICONERROR);
				  #endif
				  return rc;
				}
				if (krit_10 > krit[10]) {
				   Cp->k12 = k12;
				   Cp->lambda_w = lambda_w;
				}
			/*
			  a_otsek = data_check->edge_step;
			 //M1 = M_ - Q_*a_otsek/2;
			 //M2 = M_ + Q_*a_otsek/2;
			  M1 = M_;
			  M2 = M_;

			  krit_10 = CheckStab_norm(&(Sect_Elem_Group[0].com_sect.dvutavr), &(Sect_Elem_Group[0].com_sect.dvutavr),
									 sigma_loc, data_check->length_XZ[n_elem],
									 M1, M2, Q_, N_, Ry, Rs, Ey, a_otsek, data_check->index_place_local, data_check->gamma_c, &Check_stab_param);
			*/
			}
			else {  // Формула 106
			  double tau_m, alfa, sig1, sig2, r_, A1, A2, h1, Dev;

			  tau_m = (ABS(Q_))/(2*t_*h_);  // Две стенки
			  r_ = 1.0;
			  alfa = Fun_alfa_18(lambda_w, tau_m/Rs);

			  // коробчатое сечение ф. 86
			  krit_10 = (ABS(M_))/(Ry*data_check->gamma_c*hef*hef*t_*(r_*bef_1*tef_1/(h_*t_) + alfa));
			  if (krit_10 > krit[10]) {
			   Cp->alfa_f = bef_1*tef_1/(h_*t_);
			   Cp->r_stab = r_;
			   Cp->alfa_stab = alfa;
			  }
			}
			MAXNNEL(krit[10], krit_10, 10);
		  }
		  //----------------------------------------------------------------------
		  // 13. Проверка местной устойчивости сжатой стенки, п. 8.5.18, 8.5.19.
		  if (flag_check[12]) {
			double lambda_uf20;
			if (sig_x1 < data_check->sigma_minus) {
			  // Вычисление lambda_uf20
			  lambda_uf20 = Fun_rect_lambda_uf20(index_105, Ry, sig_x1, lambda_uw20);
			}
			if (sig_x2 < data_check->sigma_minus) { // внутренний пояс сжат
			  lambda_uf20 = Fun_rect_lambda_uf20(index_105, Ry, sig_x2, lambda_uw20);
			}
			if (krit[12]<lambda_f/lambda_uw20) {
				Cp->lambda_uf = lambda_uf20;
				Cp->lambda_f = lambda_f;
			}
			MAXNNEL(krit[12], lambda_f/lambda_uf20, 12);
		  }
		}
		//-------------------------------------------------------------------
		// 12. Необходимость укрепления стенки поперечными ребрами жесткости п. 8.5.9.
		if (flag_check[11] ) {
		  if (index_105==1) {  // Пластика есть
			krit[11] = 10;
		  }
		  else {
			if (N_> -10.0)
			   krit[11] = lambda_w/3.2;
			else
			   krit[11] = lambda_w/2.3;   // как для сжато-изгибаемого элемента
		  }
		  nnel_krit[11] = n_elem;
		}
	  //--------------------------------------------------
	  // 13. Предельный прогиб
		 if (flag_check[13] ) {
		   fmax = ABS(5*q_bal_norm*pow(len, 4.0)/(384*Ey*param_sect.Izz)) - data_check->strela;
		   Cp->delta_b = fmax;
		   Cp->delta_ub = f_lim;
		   if (fmax > 0) {
			  MAXNNEL(krit[13], fmax/f_lim, 13);
		   }
		 }


	  }
	} // Цикла по m
	//sprintf(stroka,"Mmax = %8.1f кН*м, N=%6.1f кН, mx = %4.1f, m_ef = %4.1f", Mmax*1e-6, NatMmax*1e-3, m_exc, Fi_e_param.m_ef);
    //InfMessage("Изгибаемый      : "+(AnsiString)stroka);


 }











