copy_column_to_df Subroutine

private subroutine copy_column_to_df(source_df, col_index, target_df)

Helper subroutine to copy a column from one dataframe to another

Arguments

Type IntentOptional Attributes Name
type(data_frame), intent(in) :: source_df
integer, intent(in) :: col_index
type(data_frame), intent(inout) :: target_df

Source Code

    subroutine copy_column_to_df(source_df, col_index, target_df)
        type(data_frame), intent(in) :: source_df
        integer, intent(in) :: col_index
        type(data_frame), intent(inout) :: target_df

        select case (source_df % dtype(col_index))
        case (REAL_NUM)
            if (source_df % get_with_headers()) then
                call df_append_real(target_df, df_get_col_real(source_df, col_index), source_df % header(col_index))
            else
                call df_append_real(target_df, df_get_col_real(source_df, col_index))
            end if
        case (INTEGER_NUM)
            if (source_df % get_with_headers()) then
              call df_append_integer(target_df, df_get_col_integer(source_df, col_index), source_df % header(col_index))
            else
                call df_append_integer(target_df, df_get_col_integer(source_df, col_index))
            end if
        case (LOGICAL_NUM)
            if (source_df % get_with_headers()) then
              call df_append_logical(target_df, df_get_col_logical(source_df, col_index), source_df % header(col_index))
            else
                call df_append_logical(target_df, df_get_col_logical(source_df, col_index))
            end if
        case (CHARACTER_NUM)
            if (source_df % get_with_headers()) then
          call df_append_character(target_df, df_get_col_character(source_df, col_index), source_df % header(col_index))
            else
                call df_append_character(target_df, df_get_col_character(source_df, col_index))
            end if
        case (COMPLEX_NUM)
            if (source_df % get_with_headers()) then
              call df_append_complex(target_df, df_get_col_complex(source_df, col_index), source_df % header(col_index))
            else
                call df_append_complex(target_df, df_get_col_complex(source_df, col_index))
            end if
        end select
    end subroutine copy_column_to_df