//==================================================================
// Code generated automatically
// Description: Experiment class body 
//==================================================================
#include <EP.+e+psystem.default.exp+default.h>

EP__EPsystem_default_expDefault* EP__EPsystem_default_expDefault::s_current= NULL;
EP__EPsystem_default_expDefault::EP__EPsystem_default_expDefault(const char* mgr,const char* installDir,bool dmode):EP__EPsystem_default(mgr,installDir,dmode)
{
m_infoExperimentName = "expDefault";
m_infoExperimentFileName = "EP.+e+psystem.default.exp+default";
m_infoExperimentFileNameExtra = "exp+default";
m_infoExperimentDate = "01/08/2014 10:00:06.995000";

m_perfFlag = false;
RepName = "ReportsMemory";
n_typ_exp=0;
nBounds = 2;
if (m_boundaryBranch==NULL)
{
	m_boundaryBranch= new int[2];
	for (int ib=0; ib < 2 ; ib++)
		m_boundaryBranch[ib]= 0;
}
}

void EP__EPsystem_default_expDefault::initInternalModels()
{
  EP__EPsystem_default::initInternalModels();
}


void EP__EPsystem_default_expDefault::addExptVariables()
{
	ADD_EXPT_VAR( "RepName", "STRING",&RepName);

}


void EP__EPsystem_default_expDefault::runExperiment()
{
	unkR[256] = unkR[263] ;
	m_needSatisfyResidues = true;
	unkR[335] = 50 ;
	m_needSatisfyResidues = true;
	TIME = 0 ;
	unkI[1082] = 0 ;
	m_needSatisfyResidues = true;
	addTimedAssignI(&unkI[1082], 1, TIME+0.5 ) ;
	m_needSatisfyResidues = true;
	addTimedAssignI(&unkI[1097], 1, TIME+3 ) ;
	m_needSatisfyResidues = true;
	addTimedAssignI(&unkI[1098], 1, TIME+6 ) ;
	m_needSatisfyResidues = true;
	addTimedAssignI(&unkI[1098], 5, TIME+8 ) ;
	m_needSatisfyResidues = true;
	addTimedAssignR(&unkR[281], 4.125, TIME+12 ) ;
	m_needSatisfyResidues = true;
	addTimedAssignI(&unkI[1098], 8, TIME+12 ) ;
	m_needSatisfyResidues = true;
	addTimedAssignR(&unkR[281], 5.125, TIME+410 ) ;
	m_needSatisfyResidues = true;
	addTimedAssignI(&unkI[1098], 8, TIME+410 ) ;
	m_needSatisfyResidues = true;
	RDIGITS = 8 ;
	ABS_ERROR = 1e-005 ;
	REL_ERROR = ABS_ERROR ;
	REPORT_MODE = 3 ;
	RepName = "default" ;
	REPORT_TABLE(RepName, " *P *d *t *r TRACEABILITY *type* *fluid *T ", 0) ;
	INTEG_TO(750, 10, &INTEG_simula::s_dummyInt, &INTEG_simula::s_dummyString) ;
}

void EP__EPsystem_default_expDefault::initDefaultsLibraryGlobalsInExp()
{
}

void EP__EPsystem_default_expDefault::initDefaultsExp()
{
	unkR[259] = 0 ;
	unkR[262] = 0 ;
	unkR[38] = 0 ;
}

void EP__EPsystem_default_expDefault::evalBoundsExp(double TIME)
{
	if (m_boundsLaw)
		{(*m_boundsLaw)(TIME); return;}
}
void EP__EPsystem_default_expDefault::initDelaysExpt()
{
}
#ifndef SIMULA_USE_GRAPHICAL_MAIN
int main( int argc, char * argv[] )
{
try
{
#ifndef SIMULA_USE_DECK_SYMBOLS
	EP__EPsystem_default_expDefault ecomodel;
#else
	EP__EPsystem_default_expDefault ecomodel(0,0,true);
#endif //SIMULA_USE_DECK_SYMBOLS
	mainLoop(argc, argv, &ecomodel);
}
catch(...)
{
	printf("Program stops due to abnormal condition\n");
}
	return 0;
}
#endif //SIMULA_USE_GRAPHICAL_MAIN
SIMULA_EXPORT_C INTEG_simula* fcnExpCreate(const char *name=NULL,const char *dirInstall=NULL,bool d=false)
{
	return new EP__EPsystem_default_expDefault(name,dirInstall,d);
}
SIMULA_EXPORT_C void fcnExpDel(INTEG_simula *obj,const char* name=NULL)
{
	if ( obj )
	{
		obj->deleteManager(name);
		delete obj;
	}
}
SIMULA_EXPORT_C void getInformationExperiment(char *experimentName, bool& isDebug)
{
	sprintf(experimentName,"%s","expDefault");
	isDebug = false;
}

#ifndef SIMULA_USE_DECK_SYMBOLS
	extern "C" INTEG_simula* getDeck() {return 0;};
	extern "C" void delDeck(INTEG_simula *obj) {return;}
#endif //SIMULA_USE_DECK_SYMBOLS


