//------------------------------------------------------------
// $Id: PRC_deliverSkipInfo.cc,v 1.2 2000/05/19 20:35:51 yamauchi Exp $
//------------------------------------------------------------
//	(M\pi)^2 host computer implementation
//	1998/8/25 
//	Copyright (C) 1998 YAMAUCHI Hitoshi 山内 斉 
//			   TOKUNAGA Mayumi  徳永 麻由美
//
// skip 法の表の配布はこちら
// 参照 : void hostComputerClass::readAndDeliverObjectData(void)
//------------------------------------------------------------
#include "host.h"
#include "mpi2_funcs.h"
#include "PRC_searchNextSpc.h"
#include "mpi2communication.h"

void hostComputerClass::
PRC_deliverSkipInfoMap(const char  *pDistanceFname)
{
    // ここで読むので良いのか YAMAUCHI 1998年8月27日(木)
    array3dClass < PRC_skipMapClass > objDistanceMap;
    int size1d[3];
    size1d[0] = size1d[1] = size1d[2] = this->mSpcParam.getSubDivNum();
    objDistanceMap.initBySizeWithBaseZero(size1d);

    // このdefspcnumは廃止されたので，多分バグる 2000年5月19日(金)
    IntVec3 defspcnum = this->mSpcParam.getMaxDefSpcIdx();
    OBJINSPC_IMPLEMENT_TYPE *pSkipDatArray = 
	new OBJINSPC_IMPLEMENT_TYPE [objDistanceMap.getTotalSize()];

    if(readDistanceDataInfo(pDistanceFname, &defspcnum, 
     			    pSkipDatArray, size1d[0]) == NO )
    {	
	cout << "Error! : can not read ditance file." << endl;
	commMpi2_exit(1);
    }
    else
    {
	commMpi2_BroadPRCSkipMap(sizeof(OBJINSPC_IMPLEMENT_TYPE) * 
				 objDistanceMap.getTotalSize(),
				 pSkipDatArray); 
	delete [] pSkipDatArray;
    }
}
