#include <mpi.h>
#include <omp.h>
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
        int thread_id;
        int proc_id;
        int num_procs;
        int* array;
        int i;
        
        MPI_Init(&argc, &argv);
        
        MPI_Comm_rank(MPI_COMM_WORLD, &proc_id);
        MPI_Comm_size(MPI_COMM_WORLD, &num_procs);
        
        array = new int(num_procs);
        for (i=0; i<num_procs; ++i)
                array[i] = 0;
        
        #pragma omp parallel private(thread_id) shared(array)
        {
                thread_id = omp_get_thread_num();

                cout << "Hello from proc" << proc_id << " and thread_id" << thread_id << endl;

                array[proc_id] += 1;
                array[proc_id] += thread_id;
        }

        MPI_Finalize();
}


