/* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack */
void mergeBGs_onTrack_CalculateTrainPosition_Pkg_BG_utilities_Pkg(
  /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack::BGs_1 */ positionedBGs_T_TrainPosition_Types_Pck *BGs_1,
  /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack::BGs_2 */ positionedBGs_T_TrainPosition_Types_Pck *BGs_2,
  /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack::BGs_out */ positionedBGs_T_TrainPosition_Types_Pck *BGs_out,
  /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack::overrun */ kcg_bool *overrun)
{
  /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack */
  static positionedBGs_w_overrun_T_CalculateTrainPosition_Pkg acc;
  static kcg_int i;
  /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack::_L7 */
  static positionedBGs_w_overrun_T_CalculateTrainPosition_Pkg _L7;
  
  kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(&_L7.BGs, BGs_1);
  _L7.overrun = kcg_false;
  for (i = 0; i < 41; i++) {
    kcg_copy_positionedBGs_w_overrun_T_CalculateTrainPosition_Pkg(&acc, &_L7);
    /* 1 */
    mergeBGs_onTrack_itr_CalculateTrainPosition_Pkg_BG_utilities_Pkg(
      &acc,
      &(*BGs_2)[i],
      &_L7);
  }
  *overrun = _L7.overrun;
  kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(BGs_out, &_L7.BGs);
}
/* CalculateTrainPosition_Pkg::mergeBGs_by_id */
void mergeBGs_by_id_CalculateTrainPosition_Pkg(
  /* CalculateTrainPosition_Pkg::mergeBGs_by_id::BGs_1 */ positionedBGs_T_TrainPosition_Types_Pck *BGs_1,
  /* CalculateTrainPosition_Pkg::mergeBGs_by_id::BGs_2 */ positionedBGs_T_TrainPosition_Types_Pck *BGs_2,
  /* CalculateTrainPosition_Pkg::mergeBGs_by_id::BGs_out */ positionedBGs_T_TrainPosition_Types_Pck *BGs_out,
  /* CalculateTrainPosition_Pkg::mergeBGs_by_id::overrun */ kcg_bool *overrun)
{
  positionedBGs_w_overrun_T_CalculateTrainPosition_Pkg tmp;
  kcg_int i;
  /* CalculateTrainPosition_Pkg::mergeBGs_by_id::_L7 */ positionedBGs_w_overrun_T_CalculateTrainPosition_Pkg _L7;
  
  kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(&_L7.BGs, BGs_1);
  _L7.overrun = kcg_false;
  for (i = 0; i < 64; i++) {
    kcg_copy_positionedBGs_w_overrun_T_CalculateTrainPosition_Pkg(&tmp, &_L7);
    /* 1 */
    mergeBGs_by_id_itr_CalculateTrainPosition_Pkg(&tmp, &(*BGs_2)[i], &_L7);
  }
  kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(BGs_out, &_L7.BGs);
  *overrun = _L7.overrun;
}