#include "client_lib.h"
#include "string.h"
#include "stdio.h"
#include "mpi.h"

main(argc,argv)
int argc;
char *argv[];
{
int p;
int i;
char globalfname[256];
char localfname[256];
char partlocalfname[256];
int size;
int rc;
int num;
int j;
int r,s ;

MPI_Comm MCW;

	MPI_Init (&argc, &argv);

	MCW = MPI_COMM_WORLD;

	for(i=0;i<256;i++) localfname[i]='\0';
	for(i=0;i<256;i++) globalfname[i]='\0';

 
	if (argc!=5) {
/* 	printf("argc = %d\n", argc); */
/* 	for(i=0;i<argc;i++) printf("[%d] %s\n", i, argv[i]); */

		fprintf(stderr,"Usage %s <global file name> <local (in temp) file name>  my_app out_of_apps \n", argv[0]);
		fflush(stderr);
		exit (-1);
		}

	strcpy (globalfname, argv[1]);
	strcpy (localfname, argv[2]);

	j = atoi (argv[3]);
	num = atoi (argv[4]);

	 MPI_Comm_size (MCW, &s);
	 MPI_Comm_rank (MCW, &r);


	printf("Requesting %s as a local file %s\n", globalfname, localfname);
	printf("Number of file users %d\n", num);

	sprintf(partlocalfname,"%s.%d", localfname, j);
	rc = MPI_Conn_getfile_view 
			(globalfname, partlocalfname, j, num, MPI_DOUBLE, &size, MCW);
		printf(
			"MPI_Connect getfile view command for [%d:%d][%d:%d] file [%s] returned [%s] of size %d\n", 
			j, num, r, s, globalfname, partlocalfname, size);

	rc = MPI_Conn_releasefile (globalfname);

	MPI_Finalize();
	exit (0);

}


