   //--------------------------------------------------------------------------
   // Центрально-сжатые
   //--------------------------------------------------------------------------
   if (data_check->index_type==CENTR_COMPRESSION) {
	  double Ad, Ar0, hd, bd, k_x, k_y;
	  int n_elem_rep;
	  double k_;
	  double alfa, lambda_ux, lambda_uy, Qfic;
	  double lambda_uw[100]; // наибольшая условная гибкость стенки
	  double lambda_uf[100]; // наибольшая условная гибкость поясов
	  int k, n_RSU, list_RSU[10], n_elem;
	  CHECK_ELEM_PARAM_U *Cp;
	  double Nmin;
	  int j_;
	  double x_;



	  Cp = &(Check_param);

	  for (i=0; i<data_check->num_krit; i++) {
		krit[i] = -1;
		nnel_krit[i] = -1;
	  }
	  Nmin = 1e6;

	  double krit_comp_max = 0;
	  int RSU_comp_max;
	  for (i = 0; i<NRSU; i++) {
		n_elem = ListElem_RSU[i];
		n_elem_rep = n_elem;
		if (!CheckElem[i][1])
			continue;

	  // Условные гибкости стенки и поясов
	  // Значение условной предельной гибкости стенки при центальном сжатии
		double lambda_r = MAX(lambda_x[n_elem], lambda_y[n_elem]);
	  // Значение условной предельной гибкости в плоскости "стенки" XZ при центральном сжатии
		lambda_uw[n_elem] = Fun_lambda_uw_cent(Sect_Elem_Group[ngroup].type_sect, lambda_r);
	  // Значение условной предельной гибкости в плоскости "поясов" XY при центральном сжатии
		lambda_uf[n_elem] = Fun_lambda_uf_cent(Sect_Elem_Group[ngroup].type_sect, lambda_r);

		if (lambda_w/lambda_uw[n_elem] <=1.0 && lambda_f/lambda_uf[n_elem] <= 1.0)
		  Ad = param_sect.Ar;
		else {
		  h_ = section_tube.rect.h - 2*section_tube.rect.h1;     // Высота стенки
		  b_ = section_tube.rect.b - 2*section_tube.rect.b1;     // Высота стенки
		  hef = h_ - 2*param_sect.Rad;                           // Расчетная высота стенки
		  bef = b_ - 2*param_sect.Rad;                           // Расчетная высота стенки
		  hd = t_*(lambda_uw[n_elem] - (lambda_w/lambda_uw[n_elem] - 1)*(lambda_uw[n_elem] - 2.9 - 0.2*(MIN(lambda_x[n_elem], 2.3)) - 0.7*lambda_w))*sqrt(Ey/Ry);
		  hd = MIN(hd, hef);
		  bd = tef_1*(lambda_uf[n_elem] - (lambda_f/lambda_uf[n_elem] - 1)*(lambda_uf[n_elem] - 2.9 - 0.2*(MIN(lambda_x[n_elem], 2.3)) - 0.7*lambda_f))*sqrt(Ey/Ry);
		  bd = MIN(bd, bef);

		  Ad = param_sect.Ar - 2*(hef - hd)*t_ - 2*(bef - bd)*tef_1;        // ф. 32
		}

		N_ = Elem_RSU[i][0]*1000;

		sigma_beam_comm(&param_sect, Forces, sigma_comm);
		// Вычисление k_x по п. 2 табл. 2.2.2
		alfa = (ABS(N_))/(fi_x[n_elem]*param_sect.Ar*Ry*data_check->gamma_c);
		alfa = MAX(0.5, alfa);
		lambda_ux = data_check->Limit_lambda1 - data_check->Limit_lambda2*alfa;
		lambda_ux = MAX(1, lambda_ux);

		if (lambdaX[n_elem]/lambda_ux <= alfa)
		  k_x = 1.0;
		else {
		  if ((ABS(N_)) <= 1e-1)
			 k_x = 1.25;
		  else
			 k_x = MIN(sqrt(fi_x[n_elem]*param_sect.Ar*Ry/(ABS(N_))), 1.25);
		}

		alfa = (ABS(N_))/(fi_y[n_elem]*param_sect.Ar*Ry*data_check->gamma_c);
		alfa = MAX(0.5, alfa);
		lambda_uy = data_check->Limit_lambda1 - data_check->Limit_lambda2*alfa;
		lambda_uy = MAX(1, lambda_uy);

		if (lambdaY[n_elem]/lambda_uy <= alfa)
		  k_y = 1.0;
		else {
		  if ((ABS(N_)) <= 1e-1)
			 k_y = 1.25;
		  else
			 k_y = MIN(sqrt(fi_y[n_elem]*param_sect.Ar*Ry/(ABS(N_))), 1.25);
		}

	   Cp->A_netto = param_netto.Ar;
		Cp->Ar = param_sect.Ar;

		// 1. ------------------------------------------------------
		if (data_check->Checked[0]) {
		  double Ryn, krit_0;
		// 1. Расчет на прочность, п.7.1.1. ф.(5)
		  if (steel_param.Ryn <= 440)
			Ryn = Ry;
		  else
			Ryn = steel_param.Ru/data_check->koeff_material_nadeghn;

		  krit_0 = (ABS(N_))/(param_netto.Ar*Ryn*data_check->gamma_c);
		  if (krit[0] < krit_0) {
			  Cp->N_ = ABS(N_);
			  nnel_krit[0] = n_elem_rep;
		  }
		  MAXNNEL(krit[0], krit_0, 0);

		  //if (krit_0 > 1.05)
		  //	return 0;
		}
		//
			//
		// 2. ------------------------------------------------------
		if (data_check->Checked[1]) {
		// 2. Расчет стержня на устойчивость в плоскости XZ (вертикальной стенки), п. 7.1.3, 7.3.5, 7.3.6 ф.(7)
		  double krit_1;
		  if (lambda_w > k_x*lambda_uw[n_elem] )
			Ar0 = Ad;
		  else
			Ar0 = param_sect.Ar;

		  krit_1 = (ABS(N_))/(fi_x[n_elem]*Ar0*Ry*data_check->gamma_c);
		  MAXNNEL(krit[1], krit_1, 1);
		}
		if (data_check->Checked[2]) {
		// 3. Расчет стержня на устойчивость в плоскости XY (горизонтальной стенки), п. 7.1.3, 7.3.5, 7.3.6 ф.(7)
		  double krit_2;
		  if (lambda_f > k_y*lambda_uf[n_elem] )
			Ar0 = Ad;
		  else
			Ar0 = param_sect.Ar;

		  krit_2 = (ABS(N_))/(fi_y[n_elem]*Ar0*Ry*data_check->gamma_c);
		  MAXNNEL(krit[2], krit_2, 2);
		}
		//--------------------------------
		// Проверки 3-7 пропускаются
		//--------------------------------
		if (data_check->Checked[8]) {
		 // 9. Проверка местной устойчивости стенки в вертикальной плоскости XZ п. 7.3.2, 7.3.6, 7.3.9, 7.3.11, табл. 9, 10
		  double krit_8;
		  if (Ar0 == param_sect.Ar)
			krit_8 = lambda_w/(k_x*lambda_uw[n_elem]);
		  else  {
			krit_8 = lambda_w/(2*lambda_uw[n_elem]);
			k_x = 2.0;
		  }
		  if (krit[8] < krit_8) {
			Cp->k_x = k_x;
			Cp->lambda_uw = lambda_uw[n_elem];
		  }
		  MAXNNEL(krit[8], krit_8, 3);
		}
		if (data_check->Checked[9]) {
		// 10. Проверка местной устойчивости стенки в горизонтальной плоскости XY п. 7.3.2, 7.3.6, 7.3.9, 7.3.11, табл. 9, 10
		  double krit_9;
		  if (Ar0 == param_sect.Ar)
			krit_9 = lambda_f/(k_y*lambda_uf[n_elem]);
		  else {
			krit_9 = lambda_f/(2*lambda_uf[n_elem]);
			k_y = 2.0;
		  }
		  if (krit[9] < krit_9) {
			Cp->k_y = k_y;
			Cp->lambda_uf = lambda_uf[n_elem];
		  }
		  MAXNNEL(krit[9], krit_9, 3);
		}
   		// Определение коэффициента k_ в сответствии с п. 10.4.2
		if ((data_check->index_otvetstv == 0 || data_check->index_otvetstv == 1) &&
			   data_check->index_group < 3)
			k_= 1;
		else
			k_= 1.1;
		if (data_check->Checked[10]) {
		// 11. Проверка предельной гибкости стержня в плоскости XZ, табл.32.
		  if (krit[11] < lambdaX[n_elem]/(k_*lambda_ux)) {
			Cp->lambda_ux = lambda_ux;
			Cp->lambdaX = lambdaX[n_elem];
		  }
		  MAXNNEL(krit[10], lambdaX[n_elem]/(k_*lambda_ux), 10);
		}
		if (data_check->Checked[11]) {
		// 12. Проверка предельной гибкости стержня в плоскости XY, табл.32.
		  if (krit[10] < lambdaY[n_elem]/(k_*lambda_uy)) {
			Cp->lambda_uy = lambda_uy;
			Cp->lambdaY = lambdaY[n_elem];
		  }
		  MAXNNEL(krit[11], lambdaY[n_elem]/(k_*lambda_uy), 11);

		}
		if (data_check->Checked[12] || data_check->Checked[13]) {
		  rc = 0;
		  if (!data_check->flag_cont_ext || !data_check->flag_cont_int) {
			if (data_check->Qu_ == 0) {
			  rc = 1;
			}
		  }
		  else {
			if (data_check->q_u_ == 0) {
			  rc = 1;
			}
		  }
		  if (rc>0) {
		  #ifdef EMBRAC
			k = Application->MessageBox(L"Для выполнения проверок 13 и 14 должны быть заданы предельные значения несущей способности закрепляющих элементов",
										L"Центрально-сжатые элементы", MB_OK | MB_ICONERROR);
		  #else
			k = Application->MessageBox("Для выполнения проверок 13 и 14 должны быть заданы предельные значения несущей способности закрепляющих элементов","Центрально-сжатые элементы", MB_OK | MB_ICONERROR);
		  #endif
			return rc;
		  }
		}
		krit[12] = -1;
		krit[13] = -1;
		krit[14] = -1;
		for (int j=0; j<15; j++) {
		  if (krit[j] > krit_comp_max) {
			krit_comp_max = krit[j];
			RSU_comp_max = n_elem;
		  }
		}

	  }
	  n_elem = ListElem_RSU[RSU_comp_max];
		  memcpy((char*)&(Cp->param_sect), (char*)&(param_sect), sizeof(GEOM_PARAM_SECT));
		  memcpy((char*)&(Cp->param_netto), (char*)&(param_netto), sizeof(GEOM_PARAM_SECT));
		  memcpy((char*)&(Cp->Sect_Elem), (char*)&(Sect_Elem_Group[0]), sizeof(DATA_SECT_SCAD));
		  Cp->RSU[1][0] = Elem_RSU[RSU_comp_max][0];
		  Cp->num_elem[1] = n_elem;
		  strcpy(Cp->Steel, MaterPropU_prof.title);
		  Cp->Ryn = steel_param.Ryn;
		  Cp->hsect = h_;
		  Cp->bsect = b_;
		  Cp->diametr = h_;
		  Cp->bef = bef;
		  Cp->hef = hef;
		  Cp->Ry = Ry;
		  //Cp->Ryw = Ryw;
		  //Cp->Rs = Rsw;
		  Cp->Ryw = Ry;
		  Cp->Rs = Rs;
		  Cp->k_ = k_;

		  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_w = lambda_w;
		  Cp->lambda_f = lambda_f;
		  Cp->lambda_f1 = 0;
		  Cp->lambda_f2 = 0;
		  Cp->fi_x = fi_x[n_elem];
		  Cp->fi_y = fi_y[n_elem];
		  Cp->Ad = Ad;

	  memcpy((char*)&Data_check_U, (char*)data_check, sizeof(DATA_CHECK_U));
   }
