//==================================================================
// Code generated automatically
// Description: Partition class body 
//==================================================================
#ifndef SATELLITE__testSPOT_default_CPP
#define SATELLITE__testSPOT_default_CPP

#include <SATELLITE.test+s+p+o+t.default.h>

SATELLITE__testSPOT_default* SATELLITE__testSPOT_default::s_current= NULL;

SATELLITE__testSPOT_default::SATELLITE__testSPOT_default(const char *mgr,const char *dirInstall,bool dmode):INTEG_simula(mgr,dirInstall,dmode)
{
m_infoLibraryName = "SATELLITE";
m_infoComponentName = "testSPOT";
m_infoPartitionName = "default";
m_infoModelName = "SATELLITE__testSPOT_default";
m_infoModelFileName = "SATELLITE.test+s+p+o+t.default";
m_infoModelFileNameExtra = "test+s+p+o+t.default";
m_perfFlag = false;
m_infoComponentDate = "17/01/2014 11:41:57.566000";
m_infoPartitionDate = "01/08/2014 10:09:49.523000";
m_programVersion= "EcosimPro V5.2.0";
m_libsVersion= "CONTROL V3.2 MATH V3.1.1 PORTS_LIB V1.1 SATELLITE V3.0 ";

m_solveInternalBox= new int[1]; 


m_boundaryBranch= new int[1];
int ib;
for (ib=0; ib < 1 ; ib++)
	m_boundaryBranch[ib]= 0;

m_branchZone= new int[44]; 
int nibr;
for (nibr=0; nibr < 44 ; nibr++)
	m_branchZone[nibr]= -1;

m_branchIf= new int[7]; 
int nif;
for (nif=0; nif < 7 ; nif++)
	m_branchIf[nif]= -1;

static const char * elmstr0[] = { "end_I", "end_PI", NULL } ;
static int elmind0[] = { 1, 2 } ;
static const char * elmstr1[] = { "Source_Constant", "Source_Sine", "Source_Pulse", "Source_Step", "Source_SawTooth", "Source_Square", "Source_Ramp", "Source_Table", NULL } ;
static int elmind1[] = { 1, 2, 3, 4, 5, 6, 7, 8 } ;
static const char * elmstr2[] = { "LinearInterpWithEvents", "LinearInterpWithoutEvents", "SplineInterp", "StepConnect", NULL } ;
static int elmind2[] = { 1, 2, 3, 4 } ;
static const char * elmstr3[] = { "Quaternion", "Cardan", NULL } ;
static int elmind3[] = { 1, 2 } ;
static const char * elmstr4[] = { "Xq", "Yq", "Zq", NULL } ;
static int elmind4[] = { 1, 2, 3 } ;
static const char * elmstr5[] = { "X", "Y", "Z", NULL } ;
static int elmind5[] = { 1, 2, 3 } ;
static const char * elmstr6[] = { "Xp", "Yp", "Zp", NULL } ;
static int elmind6[] = { 1, 2, 3 } ;
static const char * elmstr7[] = { "x", "y", "z", NULL } ;
static int elmind7[] = { 1, 2, 3 } ;
n_typ=8;
static struct INTEG_simula::etype tmp_typ[] = { 
		{elmstr0,2,elmind0},
		{elmstr1,8,elmind1},
		{elmstr2,4,elmind2},
		{elmstr3,2,elmind3},
		{elmstr4,3,elmind4},
		{elmstr5,3,elmind5},
		{elmstr6,3,elmind6},
		{elmstr7,3,elmind7}
	} ;
typ= new struct INTEG_simula::etype[8];
etypecopy(8,typ,tmp_typ);
n_dyn=25;
dyn= new double[25] ;
static double tmp_dynInit[25]={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0 } ;
dynInit= new double[25];
dcopy(25,dynInit,tmp_dynInit);


n_der=25;
der= new double[25] ;
static double tmp_derInit[25]={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0 } ;
derInit= new double[25];
dcopy(25,derInit,tmp_derInit);


res= new double[25] ;
ldr= new double[25] ;
boxDyn= new double[25] ;
boxDer= new double[25] ;

static int tmp_frozenVars[25] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0,0,0 } ;
frozenVars= new int[25];
icopy(25,frozenVars,tmp_frozenVars);

n_unkR=8396;
unkR= new double[8396] ;
static double tmp_unkRInit[8396]={ 0.1, 0.1, 0.1, 1, 1, 1, 0.1, 0.1, 0.1, 1, 1, 1, 0, 0, 0, 0, 
		0, 0, 0.1, 0.1, 0.1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 100000, 100000, 100000, -100000, -100000, -100000, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 1, 0, 0.01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0010827, 6378137, 86164.09, 0, 0, 
		0, 1, 1, 0, 398600500000000., 4902000000000., 1.32715e+020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3380, 1664, 
		3380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1.75, 0, 1, -1.75, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 157.5, 0, 1, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
		0, 0, 0, 0, 0, 0, 0, 814492.395, 830333.605, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 98.723, 1663.8, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 10000, 10000, 10000, 0, 0, 0, 1, 
		1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3, 
		1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 68, 68, 68, 68, 
		1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01, 0, 0, 0, 0, 1, 
		0, 0, 0, 150000000000., 0, 0, 0, 0, 13.4, 13.4, 13.4, 13.4, 1, 0.2, 2, 0.7, 
		0, 0, 0, 1, 0, 3, 1, 0, -10, 1, 10, 0, 1, -10, 0, 1, 
		0, 0, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, -1, 0, 0, 1, 
		1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1375, 0, 0, 0, 
		0, 0.923879533, -0.382683432, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 
		0.001, 10, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0.4, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.04, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0.4, -1.75, 0, -0.4, -1.75, 0, 0, -1.35, 0, 0, -2.15, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0.07197, 0, 0, 0, -1, 0, 0, -1, 0, 
		0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0.0726, 0.0726, 0.0726, 0.0726, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
		0, 1, 0, 1000, 1000, 1000, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 15.6, 15.6, 15.6, 
		15.6, 3.5, 3.5, 15.6, 15.6, 15.6, 15.6, 0, 0.05, -1.15, -1, -0.05, -1.15, -1, 0.05, -2.35, 
		-1, -0.05, -2.35, -1, 1, -1.75, -0.1, 1, -1.75, -0.15, 1, -1.55, -0.03, 1, -1.55, -0.08, 
		1, -1.95, -0.03, 1, -1.95, -0.08, -1, -1.75, -0.1, -1, -1.75, -0.15, -1, -1.55, -0.03, -1, 
		-1.55, -0.08, -1, -1.95, -0.03, -1, -1.95, -0.08, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		1, 0, 0, 1, 0, 0, 1, 0, 0, 1, -1, 0, 1, -1, 0, 1, 
		-1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, 1, 1, 
		0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 
		0, 1, 0, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 
		220, 220, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
		1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 } ;
unkRInit= new double[8396];
dcopy(8396,unkRInit,tmp_unkRInit);


n_cteR=8;
static double tmp_cteRInit[8]={ 3.14159265358979, 9.80665, 0, 0, 0, 1, 1, 1 } ;
cteR= tmp_cteRInit;

n_unkI=73;
unkI= new int[73] ;
static int tmp_unkIInit[73]={ 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
		0, 0, 0, 0, 0, 0, 0, 0, 0 } ;
unkIInit= new int[73];
icopy(73,unkIInit,tmp_unkIInit);


n_cteI=27;
static int tmp_cteIInit[27]={ 3, 3, 3, 3, 2, 2, 3, 3, 3, 16, 16, 16, 3, 3, 3, 3, 
		1, 3, 3, 16, 16, 16, 5, 2, 2, 16, 16 } ;
cteI= tmp_cteIInit;

n_unkS=2;
unkS= new std::string[2] ;
static std::string tmp_unkSInit[2]={ "20031986230500", "" } ;
unkSInit= new std::string[2];
{for (int i=0; i < 2; i++)
	unkSInit[i]= tmp_unkSInit[i];}

n_cteS=3;
static std::string tmp_cteSInit[3]={ "-", "rad", "s" } ;
cteS= &tmp_cteSInit[0];

n_unkT=1;
static double unkT0[4]={ 0,10,0,0 } ;
static  INTEG_table tmp_unkT[1]={
			INTEG_table( 2, unkT0+0, 0,NULL,0,NULL,unkT0+2)
		} ;
unkT= new INTEG_table[1];
tablecopy(1,unkT,tmp_unkT);

n_cteT=0;

IMETHOD= DASSL;
n_nelg= 244;
n_neld= 55;
m_numBoxes= 1;
restartB = 0 ;
s_current= this;
}

  // init internal partition models if used
void SATELLITE__testSPOT_default::initInternalModels()
{
}

void SATELLITE__testSPOT_default::A6a4c74738f880c9497ef79a2d5c26010(int n,double mat[],int nstart)
{
	int __cf0_mat;
	int _vi1;
	int _vi2;

	__cf0_mat = n ;
	_vi1 = nstart ;
	while ( _vi1 <= n ) {
	_vi2 = _vi1 + 1 ;
	while ( _vi2 <= n ) {
	mat[_vi1-1 + __cf0_mat*(_vi2-1)] = -mat[_vi2-1 + __cf0_mat*(_vi1-1)] ;
	_vi2 += 1 ;
	}
	_vi1 += 1 ;
	}
}


void SATELLITE__testSPOT_default::A9c7f6750ad1855da473a532afaa051f0(double X[],double CMX[])
{
	int _vi3;

	_vi3 = 1 ;
	while ( _vi3 <= 3 ) {
	CMX[_vi3-1 + 3*(_vi3-1)] = 0 ;
	_vi3 += 1 ;
	}
	CMX[1 + 3*0] = -X[2] ;
	CMX[2 + 3*0] = X[1] ;
	CMX[2 + 3*1] = -X[0] ;
	A6a4c74738f880c9497ef79a2d5c26010(3, CMX, 1) ;
}


void SATELLITE__testSPOT_default::A0daea1d810ae4f638e20557d22603a2f(int n17,double iV[],double iCMV[],int Index)
{
	double V[3];
	{int __i=0; for(; __i <3; __i++) V[__i] = 0.0; }
;
	double CMV[9];
	{int __i=0; for(; __i <9; __i++) CMV[__i] = 0.0; }
;
	int _vi4;
	int _vi5;
	int _vi6;

	_vi4 = 1 ;
	while ( _vi4 <= 3 ) {
	V[_vi4-1] = iV[_vi4-1 + 3*(Index-1)] ;
	_vi4 += 1 ;
	}
	A9c7f6750ad1855da473a532afaa051f0(V, CMV) ;
	_vi5 = 1 ;
	while ( _vi5 <= 3 ) {
	_vi6 = 1 ;
	while ( _vi6 <= 3 ) {
	iCMV[_vi6-1 + 3*(_vi5-1) + 9*(Index-1)] = CMV[_vi6-1 + 3*(_vi5-1)] ;
	_vi6 += 1 ;
	}
	_vi5 += 1 ;
	}
}


double SATELLITE__testSPOT_default::A019bab5f04c67b2980e631858dd4b791(double X[],double Y[])
{

	return X[0] * Y[0] + X[1] * Y[1] + X[2] * Y[2] ;
}


double SATELLITE__testSPOT_default::A37bff279528b6317bb6373d02308ca80(double X[])
{
	double X_module2 = 0.0;

	X_module2 = A019bab5f04c67b2980e631858dd4b791(X, X) ;
	if( X_module2 == 0 ) {
	return 0 ;
	}
	return _pow( X_module2 , 0.5,"X_module2 ** 0.5" ) ;
}


void SATELLITE__testSPOT_default::A0635b7f593d6f049ce66caf057d49668(double Small,double RoundingErrorAcceptable,std::string Message)
{

	if( abs(Small) > RoundingErrorAcceptable ) {
	PRINT(asString(Message)) ;
	PRINT(" --------------error= " + asString(Small) + ", rounding only up to " + asString(RoundingErrorAcceptable) + " at Time=" + getValueAsString("TIME")) ;
	}
}


void SATELLITE__testSPOT_default::A142a138dd7f7edde3cd3b31f7c280be6(double X[],double eX[],std::string Message)
{
	double X_module2 = 0.7;
	double checknorm = 0.7;
	double eX_module2 = 0.7;
	double XsumAbs = 1.;
	int _vi7;
	int _vi8;
	double _vr1;

	_vr1 = 0 ;
	_vi7 = 1 ;
	while ( _vi7 <= 3 ) {
	_vr1 += abs(X[_vi7-1]) ;
	_vi7 += 1 ;
	}
	XsumAbs = _vr1 ;
	X_module2 = A019bab5f04c67b2980e631858dd4b791(X, X) ;
	_vi8 = 1 ;
	while ( _vi8 <= 3 ) {
	if( X_module2 == 0 ) {
	eX[_vi8-1] = X[_vi8-1] ;
	}
	else {
	eX[_vi8-1] = _div( X[_vi8-1] , _sqrt(X_module2,"X_module2"),"sqrt(X_module2)") ;
	}
	_vi8 += 1 ;
	}
	if( X_module2 == 0 ) {
	PRINT("ERROR Normalise NULL vector for " + asString(Message) + " at Time=" + getValueAsString("TIME") + "   X=" + asString(XsumAbs)) ;
	}
	else {
	if( abs(A37bff279528b6317bb6373d02308ca80(eX)) > 1 ) {
	A0635b7f593d6f049ce66caf057d49668(A37bff279528b6317bb6373d02308ca80(eX) - 1., 1e-008, concatStrings("ERROR Normalise for ", Message)) ;
	}
	}
	return  ;
}


void SATELLITE__testSPOT_default::A7ad3331810bc4d38a98d3684189d2da1(int n,double X[],double eX[],int Index,std::string Message)
{
	double V[3];
	{int __i=0; for(; __i <3; __i++) V[__i] = 0.0; }
;
	double eV[3];
	{int __i=0; for(; __i <3; __i++) eV[__i] = 0.0; }
;
	int _vi10;
	int _vi9;

	_vi9 = 1 ;
	while ( _vi9 <= 3 ) {
	V[_vi9-1] = X[_vi9-1 + 3*(Index-1)] ;
	_vi9 += 1 ;
	}
	A142a138dd7f7edde3cd3b31f7c280be6(V, eV, Message) ;
	_vi10 = 1 ;
	while ( _vi10 <= 3 ) {
	eX[_vi10-1 + 3*(Index-1)] = eV[_vi10-1] ;
	_vi10 += 1 ;
	}
}


std::string SATELLITE__testSPOT_default::A718f4ee7a90c61514c3a9ceddb91063c(int n,double signal[])
{
	std::string Event = "";
	double ii = 0.0;
	int _vi11;

	_vi11 = 1 ;
	while ( _vi11 <= n ) {
	if( signal[_vi11-1] == 1 ) {
	ii = _vi11 ;
	Event = concatStrings(concatStrings(Event, " "), realToString(ii, 15)) ;
	}
	_vi11 += 1 ;
	}
	return Event ;
}


double SATELLITE__testSPOT_default::Ad45541ad370065f0c89d5eceabfbe70b(double radians)
{

	return radians/cteR[0] * 180 ;
}


double SATELLITE__testSPOT_default::A3f5f23a7a3907152dae2b7f68f204c63(double radians,int flag180)
{
	double deg_full = 0.0;
	int deg_modulo = 0;

	deg_full = Ad45541ad370065f0c89d5eceabfbe70b(radians) ;
	deg_modulo = deg_full/360 ;
	if( deg_modulo < 0 ) {
	deg_modulo = deg_modulo - 1 ;
	}
	if( (deg_full - deg_modulo * 360) > 180 && flag180 ) {
	return deg_full - deg_modulo * 360 - 360 ;
	}
	return deg_full - deg_modulo * 360 ;
}


void SATELLITE__testSPOT_default::A34abf7295c90f8265a8f8233dbb2a37e(double a,double X[],double b,double Y[],double c,double aXplusbYplusc[])
{
	int _vi20;

	_vi20 = 1 ;
	while ( _vi20 <= 3 ) {
	aXplusbYplusc[_vi20-1] = a * X[_vi20-1] + b * Y[_vi20-1] + c ;
	_vi20 += 1 ;
	}
}


void SATELLITE__testSPOT_default::A0f35e143d3a4ca8a6d524c3bd6aa862c(double a,double X[],double b,double aXplusb[])
{
	int _vi21;

	_vi21 = 1 ;
	while ( _vi21 <= 3 ) {
	aXplusb[_vi21-1] = a * X[_vi21-1] + b ;
	_vi21 += 1 ;
	}
}


double SATELLITE__testSPOT_default::A01bfbe1edd393b2c1ca09d44c931495b(double degrees)
{

	return degrees * cteR[0]/180 ;
}


void SATELLITE__testSPOT_default::A5b9efacac279f8201146501a406519f9(double RSatSun[],double RSatEarth[],int * FlagEclipse,double * FractionSun)
{
	double Rearth = 6378137.;
	double Hatmosphere = 0.;
	double Rsun = 695216933.;
	double halfconed = 0.;
	double angled = 0.;
	double angleAtConed = 0.;
	double RearthSun[3];
	{int __i=0; for(; __i <3; __i++) RearthSun[__i] = 0.0; }
;
	double RConeEarth[3];
	{int __i=0; for(; __i <3; __i++) RConeEarth[__i] = 0.0; }
;
	double RConeSat[3];
	{int __i=0; for(; __i <3; __i++) RConeSat[__i] = 0.0; }
;
	double halfconedTot = 0.0;
	double angleAtConedTot = 0.0;
	double halfconedLimit = 0.0;

	angled = A3f5f23a7a3907152dae2b7f68f204c63(_acos(_div( _div( A019bab5f04c67b2980e631858dd4b791(RSatSun, RSatEarth) , A37bff279528b6317bb6373d02308ca80(RSatSun),"SATELLITE.Norm(RSatSun)") , A37bff279528b6317bb6373d02308ca80(RSatEarth),"SATELLITE.Norm(RSatEarth)"),"SATELLITE.XscalarY(RSatSun, RSatEarth) / SATELLITE.Norm(RSatSun) / SATELLITE.Norm(RSatEarth)"), 0) ;
	*FractionSun = 1 ;
	if( angled > 90 ) {
	*FlagEclipse = 0 ;
	return  ;
	}
	A34abf7295c90f8265a8f8233dbb2a37e(-1, RSatEarth, 1, RSatSun, 0, RearthSun) ;
	halfconed = A3f5f23a7a3907152dae2b7f68f204c63(atan(_div( (Rsun - (Rearth + Hatmosphere)) , A37bff279528b6317bb6373d02308ca80(RearthSun),"SATELLITE.Norm(RearthSun)")), 0) ;
	A0f35e143d3a4ca8a6d524c3bd6aa862c(_div( _div( -(Rearth + Hatmosphere) , tan(A01bfbe1edd393b2c1ca09d44c931495b(halfconed)),"tan(SATELLITE.rad(halfconed))") , A37bff279528b6317bb6373d02308ca80(RearthSun),"SATELLITE.Norm(RearthSun)"), RearthSun, 0, RConeEarth) ;
	A34abf7295c90f8265a8f8233dbb2a37e(-1, RSatEarth, 1, RConeEarth, 0, RConeSat) ;
	angleAtConed = A3f5f23a7a3907152dae2b7f68f204c63(_acos(_div( _div( A019bab5f04c67b2980e631858dd4b791(RConeSat, RConeEarth) , A37bff279528b6317bb6373d02308ca80(RConeSat),"SATELLITE.Norm(RConeSat)") , A37bff279528b6317bb6373d02308ca80(RConeEarth),"SATELLITE.Norm(RConeEarth)"),"SATELLITE.XscalarY(RConeSat, RConeEarth) / SATELLITE.Norm(RConeSat) / SATELLITE.Norm(RConeEarth)"), 0) ;
	if( angleAtConed <= halfconed ) {
	*FlagEclipse = 1 ;
	*FractionSun = 0 ;
	return  ;
	}
	*FlagEclipse = 0 ;
	return  ;
}


double SATELLITE__testSPOT_default::Ad5577fc29943618f69ad5c843eba833c(double x,double y)
{

	if( x > y ) {
	return x ;
	}
	return y ;
}


void SATELLITE__testSPOT_default::A2e8f4393cd4e00e633246fcac8ad105e(double X[],double Y[],double XxY[])
{
	double CMX[9];
	{int __i=0; for(; __i <9; __i++) CMX[__i] = 0.0; }
;
	int _vi22;
	int _vi23;
	double _vr3;

	A9c7f6750ad1855da473a532afaa051f0(X, CMX) ;
	_vi22 = 1 ;
	while ( _vi22 <= 3 ) {
	_vr3 = 0 ;
	_vi23 = 1 ;
	while ( _vi23 <= 3 ) {
	_vr3 += CMX[_vi23-1 + 3*(_vi22-1)] * Y[_vi23-1] ;
	_vi23 += 1 ;
	}
	XxY[_vi22-1] = _vr3 ;
	_vi22 += 1 ;
	}
}


void SATELLITE__testSPOT_default::A0d2cf00462b54839a48b1dc17df854a3(double Ixxyyzz[],double Ixyyzzx[],double InertiaMatrixSatFrozen[])
{

	InertiaMatrixSatFrozen[0 + 3*0] = Ixxyyzz[0] ;
	InertiaMatrixSatFrozen[1 + 3*1] = Ixxyyzz[1] ;
	InertiaMatrixSatFrozen[2 + 3*2] = Ixxyyzz[2] ;
	InertiaMatrixSatFrozen[1 + 3*0] = -Ixyyzzx[0] ;
	InertiaMatrixSatFrozen[2 + 3*1] = -Ixyyzzx[1] ;
	InertiaMatrixSatFrozen[0 + 3*2] = -Ixyyzzx[2] ;
	InertiaMatrixSatFrozen[0 + 3*1] = InertiaMatrixSatFrozen[1 + 3*0] ;
	InertiaMatrixSatFrozen[2 + 3*0] = InertiaMatrixSatFrozen[0 + 3*2] ;
	InertiaMatrixSatFrozen[1 + 3*2] = InertiaMatrixSatFrozen[2 + 3*1] ;
}


void SATELLITE__testSPOT_default::A258ec9a890dd211ddeef7f6b9d43979a(double InertiaMatrix[],double Rdisplaced[],double Mass,double InertiaMatrixD[],int FromCOMNotToCOM)
{
	double RRIdent3[9];
	{int __i=0; for(; __i <9; __i++) RRIdent3[__i] = 0.; }
;
	double Idelta[9];
	{int __i=0; for(; __i <9; __i++) Idelta[__i] = 0.0; }
;
	double RR2 = 0.0;
	double RRdisplaced[3];
	{int __i=0; for(; __i <3; __i++) RRdisplaced[__i] = 0.0; }
;
	int _vi25;
	int _vi26;
	int _vi27;
	int _vi28;
	int _vi29;
	int _vi30;
	int _vi31;
	int _vi32;
	double _vr4;

	_vi25 = 1 ;
	while ( _vi25 <= setofSize(&typ[7]) ) {
	_vi26 = setofElem(&typ[7], _vi25) ;
	if( FromCOMNotToCOM ) {
	RRdisplaced[_vi25-1] = Rdisplaced[_vi25-1] ;
	}
	else {
	RRdisplaced[_vi25-1] = -Rdisplaced[_vi25-1] ;
	}
	_vi25 += 1 ;
	}
	_vr4 = 0 ;
	_vi27 = 1 ;
	while ( _vi27 <= setofSize(&typ[7]) ) {
	_vi28 = setofElem(&typ[7], _vi27) ;
	_vr4 += _pow( RRdisplaced[_vi27-1] , 2.,"RRdisplaced[_vi27] ** 2." ) ;
	_vi27 += 1 ;
	}
	RR2 = _vr4 ;
	_vi29 = 1 ;
	while ( _vi29 <= setofSize(&typ[7]) ) {
	_vi30 = setofElem(&typ[7], _vi29) ;
	_vi31 = 1 ;
	while ( _vi31 <= setofSize(&typ[7]) ) {
	_vi32 = setofElem(&typ[7], _vi31) ;
	if( _vi32 == _vi30 ) {
	RRIdent3[_vi31-1 + 3*(_vi29-1)] = RR2 ;
	}
	Idelta[_vi31-1 + 3*(_vi29-1)] = Mass * (RRIdent3[_vi31-1 + 3*(_vi29-1)] - RRdisplaced[_vi29-1] * RRdisplaced[_vi31-1]) ;
	if( FromCOMNotToCOM ) {
	InertiaMatrixD[_vi31-1 + 3*(_vi29-1)] = InertiaMatrix[_vi31-1 + 3*(_vi29-1)] + Idelta[_vi31-1 + 3*(_vi29-1)] ;
	}
	else {
	InertiaMatrixD[_vi31-1 + 3*(_vi29-1)] = InertiaMatrix[_vi31-1 + 3*(_vi29-1)] - Idelta[_vi31-1 + 3*(_vi29-1)] ;
	}
	_vi31 += 1 ;
	}
	_vi29 += 1 ;
	}
}


int SATELLITE__testSPOT_default::A9e9021524afdf84d19ddc06b9483eb75(double Real)
{
	int i = 0;

	i = Real ;
	if( Real < 0 && i != Real ) {
	return Real + 1 ;
	}
	return Real ;
}


double SATELLITE__testSPOT_default::Abae57cbe2695639296453083e5154d0e(std::string DDMMYYYYHHMMSS,double * Day1900)
{
	int Day = 0;
	int Month = 0;
	int Year = 0;
	int Hour = 0;
	int Minute = 0;
	int Second = 0;
	double v1 = 0.0;
	double v2 = 0.0;
	int a = 0;
	int y = 0;
	int m = 0;
	int BC = 0;
	double JD = 0.;
	double JD1900 = 2415020.5;

	v1 = stringToReal(DDMMYYYYHHMMSS) ;
	if( v1 < 0 ) {
	BC = 1 ;
	v1 = abs(v1) ;
	}
	Day = v1/1000000000000. ;
	Month = (v1 - Day * 1000000000000.)/10000000000. ;
	Year = (v1 - Day * 1000000000000. - Month * 10000000000.)/1000000 ;
	if( BC == 1 ) {
	Year = -Year ;
	}
	v2 = v1 - Day * 1000000000000. - Month * 10000000000. - Year * 1000000. ;
	Hour = v2/10000 ;
	Minute = (v2 - Hour * 10000)/100 ;
	Second = v2 - Hour * 10000 - Minute * 100 ;
	a = A9e9021524afdf84d19ddc06b9483eb75((14 - Month)/12) ;
	y = Year + 4800 - a ;
	m = Month + 12 * a - 3 ;
	JD = Day + A9e9021524afdf84d19ddc06b9483eb75((153 * m + 2)/5) + 365. * y + A9e9021524afdf84d19ddc06b9483eb75(y/4) - A9e9021524afdf84d19ddc06b9483eb75(y/100) + A9e9021524afdf84d19ddc06b9483eb75(y/400) - 32045. + (Hour - 12.)/24. + Minute/1440. + Second/86400. ;
	if( (Day/10000 + Month/100 + Year) <= 1582.1004 ) {
	JD = JD + 10. ;
	}
	if( (Day/10000 + Month/100 + Year) > 1582.1004 && (Day/10000 + Month/100 + Year) <= 1582.1014 ) {
	PRINT("minor error: the given date is not belonging to the Gregorian calendar") ;
	}
	*Day1900 = JD - JD1900 ;
	return JD ;
}


void SATELLITE__testSPOT_default::Afcc4eadac593fa8a73a0762b2622034c(double JD,double ReMo[],double ReS[])
{
	double L0[25];
	{int __i=0; for(; __i <25; __i++) L0[__i] = 0.0; }
;
	double Lp[25];
	{int __i=0; for(; __i <25; __i++) Lp[__i] = 0.0; }
;
	double aMajorsp[25];
	{int __i=0; for(; __i <25; __i++) aMajorsp[__i] = 0.0; }
;
	double om0[17];
	{int __i=0; for(; __i <17; __i++) om0[__i] = 0.0; }
;
	double omP[17];
	{int __i=0; for(; __i <17; __i++) omP[__i] = 0.0; }
;
	double OM0[17];
	{int __i=0; for(; __i <17; __i++) OM0[__i] = 0.0; }
;
	double OMp[17];
	{int __i=0; for(; __i <17; __i++) OMp[__i] = 0.0; }
;
	double exc[17];
	{int __i=0; for(; __i <17; __i++) exc[__i] = 0.0; }
;
	double incl[17];
	{int __i=0; for(; __i <17; __i++) incl[__i] = 0.0; }
;
	double IterationKeplersp[25];
	{int __i=0; for(; __i <25; __i++) IterationKeplersp[__i] = 0.0; }
;
	double DiamKm[25];
	{int __i=0; for(; __i <25; __i++) DiamKm[__i] = 0.0; }
;
	double M0[25];
	{int __i=0; for(; __i <25; __i++) M0[__i] = 0.0; }
;
	double A0[25];
	{int __i=0; for(; __i <25; __i++) A0[__i] = 0.0; }
;
	double B0[25];
	{int __i=0; for(; __i <25; __i++) B0[__i] = 0.0; }
;
	double C0[25];
	{int __i=0; for(; __i <25; __i++) C0[__i] = 0.0; }
;
	double FoyerSatellites[25];
	{int __i=0; for(; __i <25; __i++) FoyerSatellites[__i] = 0.0; }
;
	double RsMoEcliptic[3];
	{int __i=0; for(; __i <3; __i++) RsMoEcliptic[__i] = 0.0; }
;
	double RsEEcliptic[3];
	{int __i=0; for(; __i <3; __i++) RsEEcliptic[__i] = 0.0; }
;
	double ReMoEcliptic[3];
	{int __i=0; for(; __i <3; __i++) ReMoEcliptic[__i] = 0.0; }
;
	double ReSEcliptic[3];
	{int __i=0; for(; __i <3; __i++) ReSEcliptic[__i] = 0.0; }
;
	double PI = 3.141592653589;
	double AU = 149597870000.;
	double JDbouiges = 0.0;
	double omB = 0.0;
	double LorbitalSun = 0.0;
	double MorbitalSun = 0.0;
	double l = 0.0;
	double OM = 0.0;
	double M = 0.0;
	double Diff = 0.0;
	double F = 0.0;
	double Ms = 0.0;
	double b = 0.0;
	double LongOrb = 0.0;
	double v = 0.0;
	double u = 0.0;
	double LtildaVraie = 0.0;
	double Ltilda = 0.0;
	double lh = 0.0;
	double Bs = 0.0;
	double Rs = 0.0;
	double parallaxe = 0.0;
	int i = 0;
	double CosAngle = 0.0;
	double SinAngle = 0.0;
	int _vi33;
	int _vi34;

	JDbouiges = JD - 694325. - 1721059.5 ;
	i = 3 ;
	L0[i-1] = 4.8689 ;
	Lp[i-1] = 0.0172027914 ;
	om0[i-1] = 4.9085 ;
	omP[i-1] = 8.1856e-007 ;
	OM0[i-1] = 0 ;
	OMp[i-1] = 0 ;
	exc[i-1] = 0.01675104 ;
	incl[i-1] = 0 ;
	aMajorsp[i-1] = 1.00000023 ;
	IterationKeplersp[i-1] = 3 ;
	omB = om0[2] + omP[2] * JDbouiges ;
	LorbitalSun = L0[2] + Lp[2] * JDbouiges ;
	MorbitalSun = L0[2] + Lp[2] * JDbouiges - omB ;
	l = 0.57999 + 0.229971503 * JDbouiges ;
	OM = 4.1867 - 0.00092422 * JDbouiges ;
	M = 0.3193 + 0.228027133 * JDbouiges ;
	Diff = l - LorbitalSun ;
	F = l - OM ;
	Ms = MorbitalSun ;
	l = l + 0.1098 * sin(M) + 0.003728 * sin(2. * M) + 0.01149 * sin(2. * Diff) ;
	l = l - 0.003329 * sin(Ms) + 0.02224 * sin(2. * Diff - M) - 0.001945 * sin(2. * F) ;
	l = l + 0.001026 * sin(2. * Diff - 2. * M) + 0.0009983 * sin(2. * Diff - M - Ms) ;
	l = l + 0.0009903 * sin(2. * Diff + M) + 0.0008011 * sin(2. * Diff - Ms) ;
	l = l + 0.0007156 * sin(M - Ms) - 0.0005323 * sin(M + Ms) - 0.0006074 * sin(Diff) ;
	b = 0.08995 * sin(F) + 0.0049 * sin(M + F) + 0.00485 * sin(M - F) + 0.003 * sin(2. * Diff - F) ;
	b = b + 0.00097 * sin(2. * Diff - M + F) + 0.0008 * sin(2. * Diff - M - F) + 0.00057 * sin(2. * Diff + F) ;
	parallaxe = 0.9508 + 0.0518 * cos(M) ;
	Rs = _div( 6378137. , sin(A01bfbe1edd393b2c1ca09d44c931495b(parallaxe)),"sin(SATELLITE.rad(parallaxe))") ;
	ReMoEcliptic[0] = Rs * cos(b) * cos(l) ;
	ReMoEcliptic[1] = Rs * cos(b) * sin(l) ;
	ReMoEcliptic[2] = Rs * sin(b) ;
	omB = om0[2] + omP[2] * JDbouiges ;
	LongOrb = LorbitalSun ;
	M = MorbitalSun ;
	u = M ;
	_vi33 = 0 ;
	while ( _vi33 <= (IterationKeplersp[2] * 2) ) {
	u = M + exc[2] * sin(u) ;
	_vi33 += 1 ;
	}
	v = 2. * atan(tan(u/2.) * _sqrt(_div( (1. + exc[2]) , (1. - exc[2]),"1. - exc[03]"),"(1. + exc[03]) / (1. - exc[03])")) ;
	OM = OM0[2] + OMp[2] * JDbouiges ;
	LtildaVraie = v + omB - OM ;
	if( cos(LtildaVraie) == 0 ) {
	Ltilda = LtildaVraie ;
	}
	else {
	Ltilda = atan(tan(LtildaVraie) * cos(incl[2])) ;
	if( cos(LtildaVraie) < 0 ) {
	Ltilda = Ltilda + PI ;
	}
	}
	lh = Ltilda + OM ;
	lh = lh + PI ;
	Bs = atan(sin(Ltilda) * tan(incl[2])) ;
	Rs = AU * aMajorsp[2] * (1. - exc[2] * cos(u)) ;
	RsEEcliptic[0] = Rs * cos(Bs) * cos(lh) ;
	RsEEcliptic[1] = Rs * cos(Bs) * sin(lh) ;
	RsEEcliptic[2] = Rs * sin(Bs) ;
	_vi34 = 1 ;
	while ( _vi34 <= 3 ) {
	RsMoEcliptic[_vi34-1] = ReMoEcliptic[_vi34-1] + RsEEcliptic[_vi34-1] ;
	ReSEcliptic[_vi34-1] = -RsEEcliptic[_vi34-1] ;
	_vi34 += 1 ;
	}
	CosAngle = cos(A01bfbe1edd393b2c1ca09d44c931495b(23.45)) ;
	SinAngle = sin(A01bfbe1edd393b2c1ca09d44c931495b(23.45)) ;
	ReS[0] = ReSEcliptic[0] ;
	ReS[1] = ReSEcliptic[1] * CosAngle - ReSEcliptic[2] * SinAngle ;
	ReS[2] = ReSEcliptic[1] * SinAngle + ReSEcliptic[2] * CosAngle ;
	ReMo[0] = ReMoEcliptic[0] ;
	ReMo[1] = ReMoEcliptic[1] * CosAngle - ReMoEcliptic[2] * SinAngle ;
	ReMo[2] = ReMoEcliptic[1] * SinAngle + ReMoEcliptic[2] * CosAngle ;
	return  ;
}


void SATELLITE__testSPOT_default::A8ca45943fd19cec75139673798d21140(double Anglerad,double Xa,double Ya,double * xb,double * yb)
{
	double CosAngle = 0.0;
	double SinAngle = 0.0;

	CosAngle = cos(Anglerad) ;
	SinAngle = sin(Anglerad) ;
	*xb = Xa * CosAngle - Ya * SinAngle ;
	*yb = Xa * SinAngle + Ya * CosAngle ;
}


void SATELLITE__testSPOT_default::A8dc12acf768e6b12ebd39f2d10517c82(double CoordInA[],double PrecessionZB,double NutationU,double RotationZA,double CoordInB[])
{
	double Uu = 0.0;
	double vv = 0.0;
	double Tau = 0.0;

	A8ca45943fd19cec75139673798d21140(RotationZA, CoordInA[0], CoordInA[1], &Uu, &vv) ;
	A8ca45943fd19cec75139673798d21140(NutationU, vv, CoordInA[2], &Tau, &CoordInB[2]) ;
	A8ca45943fd19cec75139673798d21140(PrecessionZB, Uu, Tau, &CoordInB[0], &CoordInB[1]) ;
}


void SATELLITE__testSPOT_default::Aa5177a69817eb905f83f68ee777fe529(double CoordOrbitalPolar[],double Precession,double Nutation,double Rotation,double CoordECI[])
{

	A8dc12acf768e6b12ebd39f2d10517c82(CoordOrbitalPolar, Precession, Nutation, Rotation, CoordECI) ;
}


void SATELLITE__testSPOT_default::A76451021569370217d096290951c830e(double altPer_o,double altApo_o,double OM_o,double inc_o,double om_o,double PHI_o,double R_o[],double V_o[],double error[])
{
	double EarthR = 6378137.;
	double GMEarth = 398600500000000.;
	double LocalOrbitalPolar[3];
	{int __i=0; for(; __i <3; __i++) LocalOrbitalPolar[__i] = 0.0; }
;
	double Rrr[3];
	{int __i=0; for(; __i <3; __i++) Rrr[__i] = 0.0; }
;
	double Vvv[3];
	{int __i=0; for(; __i <3; __i++) Vvv[__i] = 0.0; }
;
	double exc = 0.0;
	double sma = 0.0;
	double Wenergy = 0.0;
	double C_orbit = 0.0;
	double p_orbit = 0.0;
	double r_module = 0.0;
	double V_module = 0.0;
	double v_theta = 0.0;
	double v_radial = 0.0;
	double theta_o = 0.0;
	double checkv = 0.0;
	double checkr = 0.0;
	double checkvv = 0.0;

	error[0] = 0 ;
	error[1] = 0 ;
	error[2] = 0 ;
	error[3] = 0 ;
	exc = _div( abs(altApo_o - altPer_o) , (altApo_o + EarthR + altPer_o + EarthR),"altApo_o + EarthR + altPer_o + EarthR") ;
	sma = (altApo_o + EarthR + altPer_o + EarthR)/2. ;
	Wenergy = _div( -GMEarth , (2. * sma),"2. * sma") ;
	C_orbit = _sqrt((1. - _pow( exc , 2.,"exc ** 2." )) * sma * GMEarth,"(1. - exc ** 2.) * sma * GMEarth") ;
	p_orbit = _div( _pow( C_orbit , 2.,"C_orbit ** 2." ) , GMEarth,"GMEarth") ;
	r_module = _div( p_orbit , (1. + exc * cos(A01bfbe1edd393b2c1ca09d44c931495b(PHI_o))),"1. + exc * cos(SATELLITE.rad(PHI_o))") ;
	V_module = _sqrt(2. * (Wenergy + _div( GMEarth , r_module,"r_module")),"2. * (Wenergy + GMEarth / r_module)") ;
	v_theta = _div( C_orbit , r_module,"r_module") ;
	v_radial = _div( GMEarth , C_orbit,"C_orbit") * exc * sin(A01bfbe1edd393b2c1ca09d44c931495b(PHI_o)) ;
	checkv = V_module - _sqrt(_pow( v_theta , 2.,"v_theta ** 2." ) + _pow( v_radial , 2.,"v_radial ** 2." ),"v_theta ** 2. + v_radial ** 2.") ;
	if( abs(checkv) > 0 ) {
	A0635b7f593d6f049ce66caf057d49668(checkv, 1e-010, "ERROR ParametersToCartesian 1 for V") ;
	}
	if( abs(checkv) > 0.001 ) {
	error[1] = checkv ;
	}
	LocalOrbitalPolar[0] = r_module ;
	LocalOrbitalPolar[1] = 0 ;
	LocalOrbitalPolar[2] = 0 ;
	Aa5177a69817eb905f83f68ee777fe529(LocalOrbitalPolar, A01bfbe1edd393b2c1ca09d44c931495b(OM_o), A01bfbe1edd393b2c1ca09d44c931495b(inc_o), A01bfbe1edd393b2c1ca09d44c931495b(om_o + PHI_o), R_o) ;
	LocalOrbitalPolar[0] = v_radial ;
	LocalOrbitalPolar[1] = v_theta ;
	LocalOrbitalPolar[2] = 0 ;
	Aa5177a69817eb905f83f68ee777fe529(LocalOrbitalPolar, A01bfbe1edd393b2c1ca09d44c931495b(OM_o), A01bfbe1edd393b2c1ca09d44c931495b(inc_o), A01bfbe1edd393b2c1ca09d44c931495b(om_o + PHI_o), V_o) ;
	checkr = r_module - A37bff279528b6317bb6373d02308ca80(R_o) ;
	if( abs(checkr) > 0 ) {
	A0635b7f593d6f049ce66caf057d49668(checkr, 1e-007, "ERROR ParametersToCartesian 2 fro R") ;
	}
	if( abs(checkr) > 0.001 ) {
	error[2] = checkr ;
	}
	checkvv = V_module - A37bff279528b6317bb6373d02308ca80(V_o) ;
	if( abs(checkvv) > 0 ) {
	A0635b7f593d6f049ce66caf057d49668(checkvv, 1e-010, "ERROR ParametersToCartesian 3 for V") ;
	}
	if( abs(checkvv) > 0.001 ) {
	error[3] = checkvv ;
	}
	error[0] = error[1] + error[2] + error[3] ;
}


void SATELLITE__testSPOT_default::Af092bb27d524bbfb4d110dd5afc6a37f(double Q[],std::string Message)
{
	double NormQ = 0.0;
	int ii = 0;
	int _vi35;

	NormQ = _sqrt(_pow( Q[0] , 2.,"Q[1] ** 2." ) + _pow( Q[1] , 2.,"Q[2] ** 2." ) + _pow( Q[2] , 2.,"Q[3] ** 2." ) + _pow( Q[3] , 2.,"Q[4] ** 2." ),"Q[1] ** 2. + Q[2] ** 2. + Q[3] ** 2. + Q[4] ** 2.") ;
	if( NormQ == 0 ) {
	PRINT("******************************************ERREUR NULL Quaternion  for " + asString(Message) + " at Time=" + getValueAsString("TIME")) ;
	return  ;
	}
	if( abs(NormQ - 1.) > 0 ) {
	A0635b7f593d6f049ce66caf057d49668(NormQ - 1., 0.001, concatStrings("mastered not unit Quaternion for ", Message)) ;
	}
	_vi35 = 1 ;
	while ( _vi35 <= 4 ) {
	Q[_vi35-1] = _div( Q[_vi35-1] , NormQ,"NormQ") ;
	_vi35 += 1 ;
	}
}


void SATELLITE__testSPOT_default::Acdc743b4ce17098cd2fcaf4eab2b6e76(double Q[],double QMX[])
{
	int _vi36;
	int _vi37;

	_vi36 = 1 ;
	while ( _vi36 <= 4 ) {
	QMX[_vi36-1 + 4*(_vi36-1)] = Q[0] ;
	_vi36 += 1 ;
	}
	_vi37 = 2 ;
	while ( _vi37 <= 4 ) {
	QMX[_vi37-1 + 4*0] = -Q[_vi37-1] ;
	_vi37 += 1 ;
	}
	QMX[2 + 4*1] = -Q[3] ;
	QMX[3 + 4*1] = Q[2] ;
	QMX[3 + 4*2] = -Q[1] ;
	A6a4c74738f880c9497ef79a2d5c26010(4, QMX, 1) ;
}


void SATELLITE__testSPOT_default::A56574614adcf365a4620cd0f26dcfbe7(double Q1[],double Q2[],double Q1Q2[],std::string Message)
{
	double QMX[16];
	{int __i=0; for(; __i <16; __i++) QMX[__i] = 0.0; }
;
	double Error = 0.;
	double X[3];
	{int __i=0; for(; __i <3; __i++) X[__i] = 0.0; }
;
	double Y[3];
	{int __i=0; for(; __i <3; __i++) Y[__i] = 0.0; }
;
	double XxY[3];
	{int __i=0; for(; __i <3; __i++) XxY[__i] = 0.0; }
;
	double CheckUnit = 0.0;
	int ii = 0;
	int _vi38;
	int _vi39;
	double _vr5;

	Af092bb27d524bbfb4d110dd5afc6a37f(Q1, concatStrings("routine Q1    Q1productQ2  ", Message)) ;
	Af092bb27d524bbfb4d110dd5afc6a37f(Q2, concatStrings("routine Q2     Q1productQ2 ", Message)) ;
	Acdc743b4ce17098cd2fcaf4eab2b6e76(Q1, QMX) ;
	_vi38 = 1 ;
	while ( _vi38 <= 4 ) {
	_vr5 = 0 ;
	_vi39 = 1 ;
	while ( _vi39 <= 4 ) {
	_vr5 += QMX[_vi39-1 + 4*(_vi38-1)] * Q2[_vi39-1] ;
	_vi39 += 1 ;
	}
	Q1Q2[_vi38-1] = _vr5 ;
	_vi38 += 1 ;
	}
	Af092bb27d524bbfb4d110dd5afc6a37f(Q1Q2, concatStrings("routine Q1Q2    Q1productQ2 ", Message)) ;
}


void SATELLITE__testSPOT_default::A706849dac78113deb5787361fa82321d(double OM,double inc,double omPHI,double Q[])
{
	double Q1[4];
	{int __i=0; for(; __i <4; __i++) Q1[__i] = 0.0; }
;
	double Q2[4];
	{int __i=0; for(; __i <4; __i++) Q2[__i] = 0.0; }
;
	double Q3[4];
	{int __i=0; for(; __i <4; __i++) Q3[__i] = 0.0; }
;
	double Q4[4];
	{int __i=0; for(; __i <4; __i++) Q4[__i] = 0.0; }
;
	double Q5[4];
	{int __i=0; for(; __i <4; __i++) Q5[__i] = 0.0; }
;
	double QQ[4];
	{int __i=0; for(; __i <4; __i++) QQ[__i] = 0.0; }
;
	double QQQ[4];
	{int __i=0; for(; __i <4; __i++) QQQ[__i] = 0.0; }
;
	double QQQQ[4];
	{int __i=0; for(; __i <4; __i++) QQQQ[__i] = 0.0; }
;

	Q1[0] = cos(OM/2.) ;
	Q1[1] = 0 ;
	Q1[2] = 0 ;
	Q1[3] = sin(OM/2.) ;
	Q2[0] = cos(inc/2.) ;
	Q2[1] = sin(inc/2.) ;
	Q2[2] = 0 ;
	Q2[3] = 0 ;
	Q3[0] = cos(omPHI/2.) ;
	Q3[1] = 0 ;
	Q3[2] = 0 ;
	Q3[3] = sin(omPHI/2.) ;
	Q4[0] = 0.707106781186548 ;
	Q4[1] = 0 ;
	Q4[2] = 0 ;
	Q4[3] = 0.707106781186547 ;
	Q5[0] = 0.707106781186548 ;
	Q5[1] = -0.707106781186547 ;
	Q5[2] = 0 ;
	Q5[3] = 0 ;
	A56574614adcf365a4620cd0f26dcfbe7(Q1, Q2, QQ, "prod Q1, Q2 in CoordECIeulerOrbQuater") ;
	A56574614adcf365a4620cd0f26dcfbe7(QQ, Q3, QQQ, "prod Q3 in CoordECIeulerOrbQuater") ;
	A56574614adcf365a4620cd0f26dcfbe7(QQQ, Q4, QQQQ, "prod Q4 in CoordECIeulerOrbQuater") ;
	A56574614adcf365a4620cd0f26dcfbe7(QQQQ, Q5, Q, "prod Q5 in CoordECIeulerOrbQuater") ;
}


void SATELLITE__testSPOT_default::Afc0207c8f1b43d38f6f00d2b331dc720(double psi,double theta,double phi,double Q[])
{
	double Q1[4];
	{int __i=0; for(; __i <4; __i++) Q1[__i] = 0.0; }
;
	double Q2[4];
	{int __i=0; for(; __i <4; __i++) Q2[__i] = 0.0; }
;
	double Q3[4];
	{int __i=0; for(; __i <4; __i++) Q3[__i] = 0.0; }
;
	double QQ[4];
	{int __i=0; for(; __i <4; __i++) QQ[__i] = 0.0; }
;

	Q1[0] = cos(psi/2.) ;
	Q1[1] = 0 ;
	Q1[2] = 0 ;
	Q1[3] = sin(psi/2.) ;
	Q2[0] = cos(theta/2.) ;
	Q2[1] = 0 ;
	Q2[2] = sin(theta/2.) ;
	Q2[3] = 0 ;
	Q3[0] = cos(phi/2.) ;
	Q3[1] = sin(phi/2.) ;
	Q3[2] = 0 ;
	Q3[3] = 0 ;
	A56574614adcf365a4620cd0f26dcfbe7(Q1, Q2, QQ, "prod Q1, Q2 in CoordOrbCardanSatQuater") ;
	A56574614adcf365a4620cd0f26dcfbe7(QQ, Q3, Q, "prod Q3 in CoordOrbCardanSatQuater") ;
}


void SATELLITE__testSPOT_default::A5081ea99bec2b8ca0ea52666ac8f7f22(double Qo[],double Q[])
{
	double NormQ = 0.0;
	int _vi40;
	int _vi41;

	NormQ = _sqrt(_pow( Qo[0] , 2.,"Qo[1] ** 2." ) + _pow( Qo[1] , 2.,"Qo[2] ** 2." ) + _pow( Qo[2] , 2.,"Qo[3] ** 2." ) + _pow( Qo[3] , 2.,"Qo[4] ** 2." ),"Qo[1] ** 2. + Qo[2] ** 2. + Qo[3] ** 2. + Qo[4] ** 2.") ;
	if( Qo[0] >= 0 ) {
	_vi40 = 1 ;
	while ( _vi40 <= 4 ) {
	Q[_vi40-1] = _div( Qo[_vi40-1] , NormQ,"NormQ") ;
	_vi40 += 1 ;
	}
	}
	else {
	_vi41 = 1 ;
	while ( _vi41 <= 4 ) {
	Q[_vi41-1] = _div( -Qo[_vi41-1] , NormQ,"NormQ") ;
	_vi41 += 1 ;
	}
	}
}


void SATELLITE__testSPOT_default::A18936a1f7169d6925ecb534df0335842(double Q[],double Qconjug[])
{
	int _vi42;

	Af092bb27d524bbfb4d110dd5afc6a37f(Q, "routine Q    Qinverse ") ;
	Qconjug[0] = Q[0] ;
	_vi42 = 2 ;
	while ( _vi42 <= 4 ) {
	Qconjug[_vi42-1] = -Q[_vi42-1] ;
	_vi42 += 1 ;
	}
}


void SATELLITE__testSPOT_default::A9ab77ad911c75c5ee22c569181273554(double Q[],double QMXhat[])
{

	Acdc743b4ce17098cd2fcaf4eab2b6e76(Q, QMXhat) ;
	QMXhat[2 + 4*1] = Q[3] ;
	QMXhat[3 + 4*1] = -Q[2] ;
	QMXhat[3 + 4*2] = Q[1] ;
	A6a4c74738f880c9497ef79a2d5c26010(4, QMXhat, 2) ;
}


void SATELLITE__testSPOT_default::A65edb06afa81ed47bb48b003cfffad0c(double Q[],double MatrixAtoB[],std::string Message)
{
	double Qinv[4];
	{int __i=0; for(; __i <4; __i++) Qinv[__i] = 0.0; }
;
	double QMXinv[16];
	{int __i=0; for(; __i <16; __i++) QMXinv[__i] = 0.0; }
;
	double QMXhat[16];
	{int __i=0; for(; __i <16; __i++) QMXhat[__i] = 0.0; }
;
	int _vi43;
	int _vi44;
	int _vi45;
	double _vr6;

	Af092bb27d524bbfb4d110dd5afc6a37f(Q, concatStrings("routine CoordAqaterBmatrix ", Message)) ;
	A18936a1f7169d6925ecb534df0335842(Q, Qinv) ;
	Acdc743b4ce17098cd2fcaf4eab2b6e76(Qinv, QMXinv) ;
	A9ab77ad911c75c5ee22c569181273554(Q, QMXhat) ;
	_vi43 = 1 ;
	while ( _vi43 <= 3 ) {
	_vi44 = 1 ;
	while ( _vi44 <= 3 ) {
	_vr6 = 0 ;
	_vi45 = 1 ;
	while ( _vi45 <= 4 ) {
	_vr6 += QMXinv[_vi45-1 + 4*(_vi43 + 1-1)] * QMXhat[_vi44 + 1-1 + 4*(_vi45-1)] ;
	_vi45 += 1 ;
	}
	MatrixAtoB[_vi44-1 + 3*(_vi43-1)] = _vr6 ;
	_vi44 += 1 ;
	}
	_vi43 += 1 ;
	}
}


void SATELLITE__testSPOT_default::A4734c95e5416810119e160e39b7d4cc3(double Q[],double MatrixEnum[])
{

	A65edb06afa81ed47bb48b003cfffad0c(Q, MatrixEnum, " called CoordAqaterBmatrixEnum ") ;
}


void SATELLITE__testSPOT_default::A673ab8dd8d269cc1158334fced60d24c(double InertiaMatrixSatFrozenComdry[],double OCOMdry[],double massDry,double InertiaMatrixFluidsCfluids[],double OCOMFluids[],double FluidMassTanks,double OCOM[],double InertiaMatrixSatFrozen[])
{
	double CdryCOM[3];
	{int __i=0; for(; __i <3; __i++) CdryCOM[__i] = 0.0; }
;
	double CfluidCOM[3];
	{int __i=0; for(; __i <3; __i++) CfluidCOM[__i] = 0.0; }
;
	double InertiaMatrixSatFrozenDry[9];
	{int __i=0; for(; __i <9; __i++) InertiaMatrixSatFrozenDry[__i] = 0.0; }
;
	double InertiaMatrixFluids[9];
	{int __i=0; for(; __i <9; __i++) InertiaMatrixFluids[__i] = 0.0; }
;
	int _vi46;
	int _vi47;
	int _vi48;
	int _vi49;

	A34abf7295c90f8265a8f8233dbb2a37e(-1, OCOMdry, 1, OCOM, 0, CdryCOM) ;
	A258ec9a890dd211ddeef7f6b9d43979a(InertiaMatrixSatFrozenComdry, CdryCOM, massDry, InertiaMatrixSatFrozenDry, 1) ;
	A34abf7295c90f8265a8f8233dbb2a37e(-1, OCOMFluids, 1, OCOM, 0, CfluidCOM) ;
	A258ec9a890dd211ddeef7f6b9d43979a(InertiaMatrixFluidsCfluids, CfluidCOM, FluidMassTanks, InertiaMatrixFluids, 1) ;
	_vi46 = 1 ;
	while ( _vi46 <= setofSize(&typ[7]) ) {
	_vi47 = setofElem(&typ[7], _vi46) ;
	_vi48 = 1 ;
	while ( _vi48 <= setofSize(&typ[7]) ) {
	_vi49 = setofElem(&typ[7], _vi48) ;
	InertiaMatrixSatFrozen[_vi48-1 + 3*(_vi46-1)] = InertiaMatrixFluids[_vi48-1 + 3*(_vi46-1)] + InertiaMatrixSatFrozenDry[_vi48-1 + 3*(_vi46-1)] ;
	_vi48 += 1 ;
	}
	_vi46 += 1 ;
	}
}


double SATELLITE__testSPOT_default::A22c1adc231b377ecd584fbb6cfaefff6(double x,double y)
{

	if( x < y ) {
	return x ;
	}
	return y ;
}


void SATELLITE__testSPOT_default::A3552299060f7c98d37a7a0d8c37eb81d(double R[],double V[],double * RAAN,double * inc,double * omPHI,double GMfocus,double Rfocus,double * AltApo,double * AltPer,double * Alt,double * Exc,double * om,double * Phi,double * sma)
{
	double Checkasin = 0.0;
	double CheckNorm = 0.0;
	double eR[3];
	{int __i=0; for(; __i <3; __i++) eR[__i] = 0.0; }
;
	double eV[3];
	{int __i=0; for(; __i <3; __i++) eV[__i] = 0.0; }
;
	double H[3];
	{int __i=0; for(; __i <3; __i++) H[__i] = 0.0; }
;
	double eH[3];
	{int __i=0; for(; __i <3; __i++) eH[__i] = 0.0; }
;
	double eX[3];
	{int __i=0; for(; __i <3; __i++) eX[__i] = 0.0; }
;
	double eY[3];
	{int __i=0; for(; __i <3; __i++) eY[__i] = 0.0; }
;
	double eZ[3];
	{int __i=0; for(; __i <3; __i++) eZ[__i] = 0.0; }
;
	double mR[3];
	{int __i=0; for(; __i <3; __i++) mR[__i] = 0.0; }
;
	double Cosi = 0.0;
	double Sini = 0.0;
	double CosOm = 0.0;
	double SinOm = 0.0;
	double CosomPhi = 0.0;
	double SinomPhi = 0.0;
	double vv = 0.0;
	double rr = 0.0;
	double hh = 0.0;
	double Energy = 0.0;
	double CosE = 0.0;
	double SinE = 0.0;
	double cosphi = 0.0;
	double sinphi = 0.0;
	double e = 0.0;
	double mean = 0.0;
	double CoshH = 0.0;
	double SinhH = 0.0;
	double HH = 0.0;
	double n = 0.0;
	double dtp = 0.0;

	A2e8f4393cd4e00e633246fcac8ad105e(R, V, H) ;
	A142a138dd7f7edde3cd3b31f7c280be6(R, eR, "function CoordRVECItoEulerAngles R") ;
	A142a138dd7f7edde3cd3b31f7c280be6(V, eV, "function CoordRVECItoEulerAngles V") ;
	A142a138dd7f7edde3cd3b31f7c280be6(H, eH, "function CoordRVECItoEulerAngles H") ;
	A2e8f4393cd4e00e633246fcac8ad105e(eH, eR, eX) ;
	Cosi = eH[2] ;
	Sini = _pow( abs(1. - _pow( eH[2] , 2.,"eH[Zq] ** 2." )) , 0.5,"abs(1. - eH[Zq] ** 2.) ** 0.5" ) ;
	if( (abs(Cosi) - 1) > 1e-006 ) {
	PRINT(" ERROR in CoordRVECItoEulerAngles cos >+-1 " + asString(Cosi)) ;
	}
	*inc = _acos(Ad5577fc29943618f69ad5c843eba833c(-1, A22c1adc231b377ecd584fbb6cfaefff6(1, Cosi)),"MATH.max(-1, MATH.min(1, Cosi))") ;
	if( *inc == 0 ) {
	CosOm = 1 ;
	SinOm = 0 ;
	CosomPhi = eR[0] * CosOm + eR[1] * SinOm ;
	SinomPhi = eR[2] ;
	}
	else {
	CosOm = _div( -eH[1] , Sini,"Sini") ;
	SinOm = _div( eH[0] , Sini,"Sini") ;
	CosomPhi = eR[0] * CosOm + eR[1] * SinOm ;
	SinomPhi = _div( eR[2] , Sini,"Sini") ;
	}
	*RAAN = atan2(SinOm, CosOm) ;
	*omPHI = atan2(SinomPhi, CosomPhi) ;
	vv = A37bff279528b6317bb6373d02308ca80(V) ;
	rr = A37bff279528b6317bb6373d02308ca80(R) ;
	hh = A37bff279528b6317bb6373d02308ca80(H) ;
	Energy = _pow( vv , 2.,"vv ** 2." )/2. - _div( GMfocus , rr,"rr") ;
	if( Energy < 0 ) {
	*sma = _div( -GMfocus/2. , Energy,"Energy") ;
	*Exc = _pow( abs(1. - _div( _div( _pow( hh , 2.,"hh ** 2." ) , GMfocus,"GMfocus") , *sma,"sma")) , 0.5,"abs(1. - hh ** 2. / GMfocus / sma) ** 0.5" ) ;
	CosE = _div( 1. , *Exc,"Exc") * (1. - _div( rr , *sma,"sma")) ;
	SinE = _div( _div( A019bab5f04c67b2980e631858dd4b791(R, V) , *Exc,"Exc") , _pow( (GMfocus * *sma) , 0.5,"GMfocus * sma ** 0.5" ),"(GMfocus * sma) ** 0.5") ;
	cosphi = _div( (CosE - *Exc) , (1. - *Exc * CosE),"1. - Exc * CosE") ;
	sinphi = _div( _pow( abs(1. - _pow( *Exc , 2.,"Exc ** 2." )) , 0.5,"abs(1. - Exc ** 2.) ** 0.5" ) * SinE , (1. - *Exc * CosE),"1. - Exc * CosE") ;
	e = atan2(SinE, CosE) ;
	mean = e - *Exc * SinE ;
	}
	else {
	*sma = _div( GMfocus/2. , Energy,"Energy") ;
	*Exc = _pow( (1. + _div( _div( _pow( hh , 2.,"hh ** 2." ) , GMfocus,"GMfocus") , *sma,"sma")) , 0.5,"1. + hh ** 2. / GMfocus / sma ** 0.5" ) ;
	CoshH = _div( 1. , *Exc,"Exc") * (1. + _div( rr , *sma,"sma")) ;
	SinhH = _div( _div( A019bab5f04c67b2980e631858dd4b791(R, V) , *Exc,"Exc") , _pow( (GMfocus * *sma) , 0.5,"GMfocus * sma ** 0.5" ),"(GMfocus * sma) ** 0.5") ;
	cosphi = _div( (CoshH - *Exc) , (1. - *Exc * CoshH),"1. - Exc * CoshH") ;
	sinphi = _div( _pow( abs(_pow( *Exc , 2.,"Exc ** 2." ) - 1.) , 0.5,"abs(Exc ** 2. - 1.) ** 0.5" ) * SinhH , (1. - *Exc * CoshH),"1. - Exc * CoshH") ;
	HH = 0.5 * (_log(1. + _div( SinhH , CoshH,"CoshH"),"1. + SinhH / CoshH") - _log(1. - _div( SinhH , CoshH,"CoshH"),"1. - SinhH / CoshH")) ;
	mean = -HH + *Exc * sinh(HH) ;
	}
	n = _pow( (_div( GMfocus , _pow( *sma , 3.,"sma ** 3." ),"sma ** 3.")) , 0.5,"GMfocus / sma ** 3. ** 0.5" ) ;
	dtp = _div( mean , n,"n") ;
	*Phi = atan2(sinphi, cosphi) ;
	*om = *omPHI - *Phi ;
	*AltApo = *sma * (1. + *Exc) - Rfocus ;
	*AltPer = *sma * (1. - *Exc) - Rfocus ;
	*Alt = rr - Rfocus ;
}


void SATELLITE__testSPOT_default::Aed7dc2c11dad22ced17f49d6c0566a88(double V[],double CMV[])
{

	A9c7f6750ad1855da473a532afaa051f0(V, CMV) ;
}


void SATELLITE__testSPOT_default::A9ec5c002b3ec152a1a2fc48d1658bcdc(double Wrot[],double DQmat[])
{
	double QWrot[4];
	{int __i=0; for(; __i <4; __i++) QWrot[__i] = 0.0; }
;
	int ii = 1;
	int _vi50;
	int _vi51;

	QWrot[ii-1] = 0 ;
	_vi50 = 1 ;
	while ( _vi50 <= setofSize(&typ[7]) ) {
	_vi51 = setofElem(&typ[7], _vi50) ;
	ii = ii + 1 ;
	QWrot[ii-1] = Wrot[_vi50-1] ;
	_vi50 += 1 ;
	}
	A9ab77ad911c75c5ee22c569181273554(QWrot, DQmat) ;
}


void SATELLITE__testSPOT_default::A323f2b87d160fbb4d6b1756e2b19532c(double * psi,double * theta,double * phi,double Q[])
{
	double CheckAsin = 0.0;

	Af092bb27d524bbfb4d110dd5afc6a37f(Q, "routine CoordAquaterBcardan") ;
	*psi = atan2(2. * (Q[1] * Q[2] + Q[0] * Q[3]), _pow( Q[0] , 2.,"Q[1] ** 2." ) + _pow( Q[1] , 2.,"Q[2] ** 2." ) - _pow( Q[2] , 2.,"Q[3] ** 2." ) - _pow( Q[3] , 2.,"Q[4] ** 2." )) ;
	*theta = -_asin(A22c1adc231b377ecd584fbb6cfaefff6(Ad5577fc29943618f69ad5c843eba833c(2. * (Q[1] * Q[3] - Q[0] * Q[2]), -1.), 1.),"MATH.min(MATH.max(2. * (Q[2] * Q[4] - Q[1] * Q[3]), -1.), 1.)") ;
	*phi = atan2(2. * (Q[2] * Q[3] + Q[0] * Q[1]), _pow( Q[0] , 2.,"Q[1] ** 2." ) - _pow( Q[1] , 2.,"Q[2] ** 2." ) - _pow( Q[2] , 2.,"Q[3] ** 2." ) + _pow( Q[3] , 2.,"Q[4] ** 2." )) ;
	CheckAsin = 2. * (Q[1] * Q[3] - Q[0] * Q[2]) ;
	if( abs(CheckAsin) > 1 ) {
	A0635b7f593d6f049ce66caf057d49668(abs(CheckAsin) - 1., 1e-010, "ERREUR CoordAquaterBcardan asin but mastered with min( max(  , -1.),1.) ") ;
	}
}


double SATELLITE__testSPOT_default::A226af8a5dd1fafc5431aba9b0ab79462(double NodeOmega[],double NOmeg,double NAccel,double sinAlpha,double cosAlpha,double rho)
{
	double dP = 0.0;

	dP = rho * (_pow( NOmeg , 2.,"NOmeg ** 2." ) * (_pow( NodeOmega[0] , 2.,"NodeOmega[x] ** 2." ) + _pow( NodeOmega[1] , 2.,"NodeOmega[y] ** 2." ))/2. + NAccel * (sinAlpha * NodeOmega[0] - cosAlpha * NodeOmega[2])) ;
	return dP ;
}


double SATELLITE__testSPOT_default::Ae3d23ead747eef5080f2dd0780dd1565(double Mom[],double OCOM[],double NOmeg,double NAccel,double sinAlpha,double cosAlpha,double rho,double OPoint[])
{
	double PointOmega[3];
	{int __i=0; for(; __i <3; __i++) PointOmega[__i] = 0.0; }
;
	double DeltaPpoint = 0.0;
	int _vi52;
	int _vi53;
	int _vi54;
	int _vi55;
	double _vr7;

	_vi52 = 1 ;
	while ( _vi52 <= setofSize(&typ[7]) ) {
	_vi53 = setofElem(&typ[7], _vi52) ;
	_vr7 = 0 ;
	_vi54 = 1 ;
	while ( _vi54 <= setofSize(&typ[7]) ) {
	_vi55 = setofElem(&typ[7], _vi54) ;
	_vr7 += Mom[_vi52-1 + 3*(_vi54-1)] * (OPoint[_vi54-1] - OCOM[_vi54-1]) ;
	_vi54 += 1 ;
	}
	PointOmega[_vi52-1] = _vr7 ;
	_vi52 += 1 ;
	}
	DeltaPpoint = A226af8a5dd1fafc5431aba9b0ab79462(PointOmega, NOmeg, NAccel, sinAlpha, cosAlpha, rho) ;
	return DeltaPpoint ;
}


double SATELLITE__testSPOT_default::A58d39c798cf21ee9da59291fcc4e750d(double A[],double B[],double * cosAlpha,double * sinAlpha)
{
	double aa = 0.0;
	double bb = 0.0;
	double sinAlpha_abs = 0.0;
	double Alphadeg = 0.0;
	double C[3];
	{int __i=0; for(; __i <3; __i++) C[__i] = 0.0; }
;

	aa = A37bff279528b6317bb6373d02308ca80(A) ;
	bb = A37bff279528b6317bb6373d02308ca80(B) ;
	if( aa != 0 && bb != 0 ) {
	*cosAlpha = _div( A019bab5f04c67b2980e631858dd4b791(A, B) , (aa * bb),"aa * bb") ;
	A2e8f4393cd4e00e633246fcac8ad105e(A, B, C) ;
	sinAlpha_abs = _div( A37bff279528b6317bb6373d02308ca80(C) , (aa * bb),"aa * bb") ;
		}
	else if( aa == 0) {
	return 0 ;

	}
	else {
	return 0 ;
	}
	*sinAlpha = sinAlpha_abs ;
	Alphadeg = A3f5f23a7a3907152dae2b7f68f204c63(atan2(*sinAlpha, *cosAlpha), 0) ;
	if( (cos(A01bfbe1edd393b2c1ca09d44c931495b(Alphadeg)) - *cosAlpha) > 0.001 ) {
	Alphadeg = -Alphadeg ;
	if( (cos(A01bfbe1edd393b2c1ca09d44c931495b(Alphadeg)) - *cosAlpha) > 0.001 ) {
	PRINT("AngleVectordeg  problem with Alphadeg=" + asString(Alphadeg)) ;
	}
	}
	return Alphadeg ;
}


void SATELLITE__testSPOT_default::A7e3eef3b3fb41ec3b95eb000dd6132a9(double OmegaXo[],double OmegaYo[],double OmegaZo[],double Mom[])
{
	double OmegaX[3];
	{int __i=0; for(; __i <3; __i++) OmegaX[__i] = 0.0; }
;
	double OmegaY[3];
	{int __i=0; for(; __i <3; __i++) OmegaY[__i] = 0.0; }
;
	double OmegaZ[3];
	{int __i=0; for(; __i <3; __i++) OmegaZ[__i] = 0.0; }
;
	int _vi75;
	int _vi76;
	int _vi77;
	int _vi78;

	_vi75 = 1 ;
	while ( _vi75 <= setofSize(&typ[7]) ) {
	_vi76 = setofElem(&typ[7], _vi75) ;
	OmegaX[_vi75-1] = OmegaXo[_vi75-1] ;
	OmegaY[_vi75-1] = OmegaYo[_vi75-1] ;
	OmegaZ[_vi75-1] = OmegaZo[_vi75-1] ;
	_vi75 += 1 ;
	}
	if( A37bff279528b6317bb6373d02308ca80(OmegaXo) != 0 ) {
	A142a138dd7f7edde3cd3b31f7c280be6(OmegaXo, OmegaX, "function MatrixFrameChange OmegaXi") ;
	}
	if( A37bff279528b6317bb6373d02308ca80(OmegaYo) != 0 ) {
	A142a138dd7f7edde3cd3b31f7c280be6(OmegaYo, OmegaY, "function MatrixFrameChange OmegaYi") ;
	}
	if( A37bff279528b6317bb6373d02308ca80(OmegaZo) != 0 ) {
	A142a138dd7f7edde3cd3b31f7c280be6(OmegaZo, OmegaZ, "function MatrixFrameChange OmegaZi") ;
	}
	_vi77 = 1 ;
	while ( _vi77 <= setofSize(&typ[7]) ) {
	_vi78 = setofElem(&typ[7], _vi77) ;
	Mom[0 + 3*(_vi77-1)] = OmegaX[_vi77-1] ;
	Mom[1 + 3*(_vi77-1)] = OmegaY[_vi77-1] ;
	Mom[2 + 3*(_vi77-1)] = OmegaZ[_vi77-1] ;
	_vi77 += 1 ;
	}
}


void SATELLITE__testSPOT_default::A05270a6e1dc60e8d34e8fde61ecf7f7b(int n4,int Nodes,double Mom[],double OCOM[],double NOmeg,double NAccel,double sinAlpha,double cosAlpha,double rho[],double OTankNodes[],double IsoDeltaPmap[])
{
	double NodeOmega[3];
	{int __i=0; for(; __i <3; __i++) NodeOmega[__i] = 0.0; }
;
	int __cf0_IsoDeltaPmap;
	int __cf1_IsoDeltaPmap;
	int __cf1_OTankNodes;
	int __cf2_IsoDeltaPmap;
	int __cf2_OTankNodes;
	int __cf3_OTankNodes;
	int _vi79;
	int _vi80;
	int _vi81;
	int _vi82;
	int _vi83;
	int _vi84;
	int _vi85;
	int _vi86;
	double _vr11;

	__cf1_OTankNodes = 3 * Nodes ;
	__cf2_OTankNodes = __cf1_OTankNodes * Nodes ;
	__cf3_OTankNodes = __cf2_OTankNodes * Nodes ;
	__cf0_IsoDeltaPmap = Nodes ;
	__cf1_IsoDeltaPmap = __cf0_IsoDeltaPmap * Nodes ;
	__cf2_IsoDeltaPmap = __cf1_IsoDeltaPmap * Nodes ;
	_vi79 = 1 ;
	while ( _vi79 <= n4 ) {
	_vi80 = 1 ;
	while ( _vi80 <= Nodes ) {
	_vi81 = 1 ;
	while ( _vi81 <= Nodes ) {
	_vi82 = 1 ;
	while ( _vi82 <= Nodes ) {
	_vi83 = 1 ;
	while ( _vi83 <= setofSize(&typ[7]) ) {
	_vi84 = setofElem(&typ[7], _vi83) ;
	_vr11 = 0 ;
	_vi85 = 1 ;
	while ( _vi85 <= setofSize(&typ[7]) ) {
	_vi86 = setofElem(&typ[7], _vi85) ;
	_vr11 += Mom[_vi83-1 + 3*(_vi85-1)] * (OTankNodes[_vi85-1 + 3*(_vi82-1) + __cf1_OTankNodes*(_vi81-1) + __cf2_OTankNodes*(_vi80-1) + __cf3_OTankNodes*(_vi79-1)] - OCOM[_vi85-1]) ;
	_vi85 += 1 ;
	}
	NodeOmega[_vi83-1] = _vr11 ;
	_vi83 += 1 ;
	}
	IsoDeltaPmap[_vi82-1 + __cf0_IsoDeltaPmap*(_vi81-1) + __cf1_IsoDeltaPmap*(_vi80-1) + __cf2_IsoDeltaPmap*(_vi79-1)] = A226af8a5dd1fafc5431aba9b0ab79462(NodeOmega, NOmeg, NAccel, sinAlpha, cosAlpha, rho[_vi79-1]) ;
	_vi82 += 1 ;
	}
	_vi81 += 1 ;
	}
	_vi80 += 1 ;
	}
	_vi79 += 1 ;
	}
}


void SATELLITE__testSPOT_default::A3538922b199e59bd7a7586f35c3974f5(int n4,int Nodes,double IsoDeltaPmap[],double IsoDeltaPmin[],double IsoDeltaPmax[])
{
	double NodeOmega[3];
	{int __i=0; for(; __i <3; __i++) NodeOmega[__i] = 0.0; }
;
	int __cf0_IsoDeltaPmap;
	int __cf1_IsoDeltaPmap;
	int __cf2_IsoDeltaPmap;
	int _vi87;
	int _vi88;
	int _vi89;
	int _vi90;

	__cf0_IsoDeltaPmap = Nodes ;
	__cf1_IsoDeltaPmap = __cf0_IsoDeltaPmap * Nodes ;
	__cf2_IsoDeltaPmap = __cf1_IsoDeltaPmap * Nodes ;
	_vi87 = 1 ;
	while ( _vi87 <= n4 ) {
	IsoDeltaPmin[_vi87-1] = IsoDeltaPmap[0 + __cf0_IsoDeltaPmap*0 + __cf1_IsoDeltaPmap*0 + __cf2_IsoDeltaPmap*(_vi87-1)] ;
	IsoDeltaPmax[_vi87-1] = IsoDeltaPmap[0 + __cf0_IsoDeltaPmap*0 + __cf1_IsoDeltaPmap*0 + __cf2_IsoDeltaPmap*(_vi87-1)] ;
	_vi88 = 1 ;
	while ( _vi88 <= Nodes ) {
	_vi89 = 1 ;
	while ( _vi89 <= Nodes ) {
	_vi90 = 1 ;
	while ( _vi90 <= Nodes ) {
	if( IsoDeltaPmin[_vi87-1] > IsoDeltaPmap[_vi90-1 + __cf0_IsoDeltaPmap*(_vi89-1) + __cf1_IsoDeltaPmap*(_vi88-1) + __cf2_IsoDeltaPmap*(_vi87-1)] ) {
	IsoDeltaPmin[_vi87-1] = IsoDeltaPmap[_vi90-1 + __cf0_IsoDeltaPmap*(_vi89-1) + __cf1_IsoDeltaPmap*(_vi88-1) + __cf2_IsoDeltaPmap*(_vi87-1)] ;
	}
	if( IsoDeltaPmax[_vi87-1] < IsoDeltaPmap[_vi90-1 + __cf0_IsoDeltaPmap*(_vi89-1) + __cf1_IsoDeltaPmap*(_vi88-1) + __cf2_IsoDeltaPmap*(_vi87-1)] ) {
	IsoDeltaPmax[_vi87-1] = IsoDeltaPmap[_vi90-1 + __cf0_IsoDeltaPmap*(_vi89-1) + __cf1_IsoDeltaPmap*(_vi88-1) + __cf2_IsoDeltaPmap*(_vi87-1)] ;
	}
	_vi90 += 1 ;
	}
	_vi89 += 1 ;
	}
	_vi88 += 1 ;
	}
	_vi87 += 1 ;
	}
}


void SATELLITE__testSPOT_default::Ac1bf81150cedafec02bdcb41220855ae(int n4,int Nodes,int i,int l,int m,int n,double MinertiaVolume[],double dV_element,double OTankNodes[])
{
	int __cf1_OTankNodes;
	int __cf2_OTankNodes;
	int __cf3_OTankNodes;

	__cf1_OTankNodes = 3 * Nodes ;
	__cf2_OTankNodes = __cf1_OTankNodes * Nodes ;
	__cf3_OTankNodes = __cf2_OTankNodes * Nodes ;
	MinertiaVolume[0 + 3*0 + 9*(i-1)] = MinertiaVolume[0 + 3*0 + 9*(i-1)] + dV_element * (_pow( OTankNodes[1 + 3*(n-1) + __cf1_OTankNodes*(m-1) + __cf2_OTankNodes*(l-1) + __cf3_OTankNodes*(i-1)] , 2.,"OTankNodes[i,l,m,n,y] ** 2." ) + _pow( OTankNodes[2 + 3*(n-1) + __cf1_OTankNodes*(m-1) + __cf2_OTankNodes*(l-1) + __cf3_OTankNodes*(i-1)] , 2.,"OTankNodes[i,l,m,n,z] ** 2." )) ;
	MinertiaVolume[1 + 3*0 + 9*(i-1)] = MinertiaVolume[1 + 3*0 + 9*(i-1)] - dV_element * OTankNodes[0 + 3*(n-1) + __cf1_OTankNodes*(m-1) + __cf2_OTankNodes*(l-1) + __cf3_OTankNodes*(i-1)] * OTankNodes[1 + 3*(n-1) + __cf1_OTankNodes*(m-1) + __cf2_OTankNodes*(l-1) + __cf3_OTankNodes*(i-1)] ;
	MinertiaVolume[2 + 3*0 + 9*(i-1)] = MinertiaVolume[2 + 3*0 + 9*(i-1)] - dV_element * OTankNodes[0 + 3*(n-1) + __cf1_OTankNodes*(m-1) + __cf2_OTankNodes*(l-1) + __cf3_OTankNodes*(i-1)] * OTankNodes[2 + 3*(n-1) + __cf1_OTankNodes*(m-1) + __cf2_OTankNodes*(l-1) + __cf3_OTankNodes*(i-1)] ;
	MinertiaVolume[0 + 3*1 + 9*(i-1)] = MinertiaVolume[1 + 3*0 + 9*(i-1)] ;
	MinertiaVolume[1 + 3*1 + 9*(i-1)] = MinertiaVolume[1 + 3*1 + 9*(i-1)] + dV_element * (_pow( OTankNodes[0 + 3*(n-1) + __cf1_OTankNodes*(m-1) + __cf2_OTankNodes*(l-1) + __cf3_OTankNodes*(i-1)] , 2.,"OTankNodes[i,l,m,n,x] ** 2." ) + _pow( OTankNodes[2 + 3*(n-1) + __cf1_OTankNodes*(m-1) + __cf2_OTankNodes*(l-1) + __cf3_OTankNodes*(i-1)] , 2.,"OTankNodes[i,l,m,n,z] ** 2." )) ;
	MinertiaVolume[2 + 3*1 + 9*(i-1)] = MinertiaVolume[2 + 3*1 + 9*(i-1)] - dV_element * OTankNodes[1 + 3*(n-1) + __cf1_OTankNodes*(m-1) + __cf2_OTankNodes*(l-1) + __cf3_OTankNodes*(i-1)] * OTankNodes[2 + 3*(n-1) + __cf1_OTankNodes*(m-1) + __cf2_OTankNodes*(l-1) + __cf3_OTankNodes*(i-1)] ;
	MinertiaVolume[0 + 3*2 + 9*(i-1)] = MinertiaVolume[2 + 3*0 + 9*(i-1)] ;
	MinertiaVolume[1 + 3*2 + 9*(i-1)] = MinertiaVolume[2 + 3*1 + 9*(i-1)] ;
	MinertiaVolume[2 + 3*2 + 9*(i-1)] = MinertiaVolume[2 + 3*2 + 9*(i-1)] + dV_element * (_pow( OTankNodes[0 + 3*(n-1) + __cf1_OTankNodes*(m-1) + __cf2_OTankNodes*(l-1) + __cf3_OTankNodes*(i-1)] , 2.,"OTankNodes[i,l,m,n,x] ** 2." ) + _pow( OTankNodes[1 + 3*(n-1) + __cf1_OTankNodes*(m-1) + __cf2_OTankNodes*(l-1) + __cf3_OTankNodes*(i-1)] , 2.,"OTankNodes[i,l,m,n,y] ** 2." )) ;
}


void SATELLITE__testSPOT_default::A89a348f8b00d02597dab097b75f2b2c3(int n4,int Nodes,double IsoDeltaPmap[],double FlagBottom[],double VolumeFluid[],double dV_element,double Mom[],double OTankNodes[],double COMtank[],double SurfaceIsoDeltaP[],double dPoutlet[],int PointFreeSurfIndex[],double PointFreeSurface[],double VolumeFluidApprox[],double MapFreeSurface[],int * npt,double MinertiaVolume[])
{
	double IsoDeltaP = 0.0;
	double step = 0.0;
	double Vol = 0.0;
	double IsoDeltaPbottom = 0.0;
	double IsoDeltaP_outlet = 0.0;
	double *IsoDeltaPmin;
	double *IsoDeltaPmax;
	double deltaPM = 0.0;
	double deltaPm = 0.0;
	double dP = 0.0;
	double SurfaceIsoDeltaPmin = 0.0;
	double VolumeFluidApproxRough = 0.0;
	double Volpreviouslayer = 0.0;
	double dV_elementAdjusted = 0.0;
	int NodesdeltaP = 0;
	int iOutlet = 0;
	int flag = 0;
	int inum = 0;
	int inb = 0;
	int iSurface = 0;
	int iCentre = 0;
	int nptplus = 0;
	int inbNodesLayer = 0;
	int iHalfNodes = 0;
	double VolumeWall = 0.0;
	double VolumeWallLoop = 0.0;
	int ConditionOnlyLastLayer = 0;
	int __cf0_IsoDeltaPmap;
	int __cf1_IsoDeltaPmap;
	int __cf1_OTankNodes;
	int __cf2_IsoDeltaPmap;
	int __cf2_OTankNodes;
	int __cf3_OTankNodes;
	int _vi100;
	int _vi101;
	int _vi102;
	int _vi103;
	int _vi104;
	int _vi105;
	int _vi106;
	int _vi107;
	int _vi108;
	int _vi109;
	int _vi110;
	int _vi111;
	int _vi112;
	int _vi113;
	int _vi114;
	int _vi115;
	int _vi116;
	int _vi117;
	int _vi118;
	int _vi119;
	int _vi120;
	int _vi121;
	int _vi122;
	int _vi123;
	int _vi91;
	int _vi92;
	int _vi93;
	int _vi94;
	int _vi95;
	int _vi96;
	int _vi97;
	int _vi98;
	int _vi99;

	__cf0_IsoDeltaPmap = Nodes ;
	__cf1_IsoDeltaPmap = __cf0_IsoDeltaPmap * Nodes ;
	__cf2_IsoDeltaPmap = __cf1_IsoDeltaPmap * Nodes ;
	__cf1_OTankNodes = 3 * Nodes ;
	__cf2_OTankNodes = __cf1_OTankNodes * Nodes ;
	__cf3_OTankNodes = __cf2_OTankNodes * Nodes ;
	IsoDeltaPmin = ALLOC__MEM__INIT(double ,n4,0.0) ;
	IsoDeltaPmax = ALLOC__MEM__INIT(double ,n4,0.0) ;
	A3538922b199e59bd7a7586f35c3974f5(n4, Nodes, IsoDeltaPmap, IsoDeltaPmin, IsoDeltaPmax) ;
	NodesdeltaP = Nodes ;
	iHalfNodes = Nodes/2 ;
	_vi91 = 1 ;
	while ( _vi91 <= n4 ) {
	_vi92 = 1 ;
	while ( _vi92 <= setofSize(&typ[7]) ) {
	_vi93 = setofElem(&typ[7], _vi92) ;
	COMtank[_vi92-1 + 3*(_vi91-1)] = 0 ;
	_vi94 = 1 ;
	while ( _vi94 <= setofSize(&typ[7]) ) {
	_vi95 = setofElem(&typ[7], _vi94) ;
	MinertiaVolume[_vi94-1 + 3*(_vi92-1) + 9*(_vi91-1)] = 0 ;
	_vi94 += 1 ;
	}
	_vi92 += 1 ;
	}
	SurfaceIsoDeltaP[_vi91-1] = 0 ;
	PointFreeSurfIndex[0 + 3*(_vi91-1)] = 0 ;
	PointFreeSurfIndex[1 + 3*(_vi91-1)] = 0 ;
	PointFreeSurfIndex[2 + 3*(_vi91-1)] = 0 ;
	if( ! (IsoDeltaPmax[_vi91-1] == 0 && IsoDeltaPmin[_vi91-1] == 0) ) {
	VolumeFluidApprox[_vi91-1] = 0 ;
	IsoDeltaPbottom = IsoDeltaPmax[_vi91-1] ;
	SurfaceIsoDeltaPmin = IsoDeltaPmax[_vi91-1] ;
	step = _divRI( -(IsoDeltaPmax[_vi91-1] - IsoDeltaPmin[_vi91-1]) , NodesdeltaP,"NodesdeltaP") ;
	flag = 0 ;
	IsoDeltaP_outlet = 0 ;
	_vi96 = 1 ;
	while ( _vi96 <= (NodesdeltaP + 1) ) {
	IsoDeltaP = IsoDeltaPbottom + step * (_vi96 - 1.) ;
	if( flag == 0 ) {
	VolumeFluidApprox[_vi91-1] = 0 ;
	_vi97 = 1 ;
	while ( _vi97 <= Nodes ) {
	_vi98 = 1 ;
	while ( _vi98 <= Nodes ) {
	_vi99 = 1 ;
	while ( _vi99 <= Nodes ) {
	if( IsoDeltaP <= IsoDeltaPmap[_vi99-1 + __cf0_IsoDeltaPmap*(_vi98-1) + __cf1_IsoDeltaPmap*(_vi97-1) + __cf2_IsoDeltaPmap*(_vi91-1)] ) {
	VolumeFluidApprox[_vi91-1] = VolumeFluidApprox[_vi91-1] + dV_element ;
	if( SurfaceIsoDeltaPmin > IsoDeltaPmap[_vi99-1 + __cf0_IsoDeltaPmap*(_vi98-1) + __cf1_IsoDeltaPmap*(_vi97-1) + __cf2_IsoDeltaPmap*(_vi91-1)] ) {
	SurfaceIsoDeltaPmin = IsoDeltaPmap[_vi99-1 + __cf0_IsoDeltaPmap*(_vi98-1) + __cf1_IsoDeltaPmap*(_vi97-1) + __cf2_IsoDeltaPmap*(_vi91-1)] ;
	}
	}
	_vi99 += 1 ;
	}
	_vi98 += 1 ;
	}
	_vi97 += 1 ;
	}
	if( VolumeFluidApprox[_vi91-1] >= VolumeFluid[_vi91-1] || _vi96 == (NodesdeltaP + 1) ) {
	VolumeFluidApproxRough = VolumeFluidApprox[_vi91-1] ;
	SurfaceIsoDeltaP[_vi91-1] = SurfaceIsoDeltaPmin ;
	iOutlet = Nodes/2 + 1 ;
	IsoDeltaP_outlet = IsoDeltaPmap[iOutlet-1 + __cf0_IsoDeltaPmap*(iOutlet-1) + __cf1_IsoDeltaPmap*0 + __cf2_IsoDeltaPmap*(_vi91-1)] ;
	if( (2 * iHalfNodes) == Nodes ) {
	IsoDeltaP_outlet = (IsoDeltaPmap[iOutlet-1 + __cf0_IsoDeltaPmap*(iOutlet-1) + __cf1_IsoDeltaPmap*0 + __cf2_IsoDeltaPmap*(_vi91-1)] + IsoDeltaPmap[iOutlet - 1-1 + __cf0_IsoDeltaPmap*(iOutlet - 1-1) + __cf1_IsoDeltaPmap*0 + __cf2_IsoDeltaPmap*(_vi91-1)])/2. ;
	}
	dPoutlet[_vi91-1] = IsoDeltaP_outlet - SurfaceIsoDeltaP[_vi91-1] ;
	VolumeFluidApprox[_vi91-1] = 0 ;
	*npt = 0 ;
	_vi100 = 1 ;
	while ( _vi100 <= Nodes ) {
	_vi101 = 1 ;
	while ( _vi101 <= Nodes ) {
	_vi102 = 1 ;
	while ( _vi102 <= Nodes ) {
	if( SurfaceIsoDeltaP[_vi91-1] <= (IsoDeltaPmap[_vi102-1 + __cf0_IsoDeltaPmap*(_vi101-1) + __cf1_IsoDeltaPmap*(_vi100-1) + __cf2_IsoDeltaPmap*(_vi91-1)] + step) ) {
	_vi103 = 1 ;
	while ( _vi103 <= setofSize(&typ[7]) ) {
	_vi104 = setofElem(&typ[7], _vi103) ;
	COMtank[_vi103-1 + 3*(_vi91-1)] = _div( (VolumeFluidApprox[_vi91-1] * COMtank[_vi103-1 + 3*(_vi91-1)] + dV_element * OTankNodes[_vi103-1 + 3*(_vi102-1) + __cf1_OTankNodes*(_vi101-1) + __cf2_OTankNodes*(_vi100-1) + __cf3_OTankNodes*(_vi91-1)]) , (VolumeFluidApprox[_vi91-1] + dV_element),"VolumeFluidApprox[_vi91] + dV_element") ;
	_vi103 += 1 ;
	}
	Ac1bf81150cedafec02bdcb41220855ae(n4, Nodes, _vi91, _vi100, _vi101, _vi102, MinertiaVolume, dV_element, OTankNodes) ;
	VolumeFluidApprox[_vi91-1] = VolumeFluidApprox[_vi91-1] + dV_element ;
	Volpreviouslayer = VolumeFluidApprox[_vi91-1] ;
	}
	_vi102 += 1 ;
	}
	_vi101 += 1 ;
	}
	_vi100 += 1 ;
	}
	_vi105 = 1 ;
	while ( _vi105 <= Nodes ) {
	_vi106 = 1 ;
	while ( _vi106 <= Nodes ) {
	_vi107 = 1 ;
	while ( _vi107 <= Nodes ) {
	if( SurfaceIsoDeltaP[_vi91-1] > (IsoDeltaPmap[_vi107-1 + __cf0_IsoDeltaPmap*(_vi106-1) + __cf1_IsoDeltaPmap*(_vi105-1) + __cf2_IsoDeltaPmap*(_vi91-1)] + step) && SurfaceIsoDeltaP[_vi91-1] <= IsoDeltaPmap[_vi107-1 + __cf0_IsoDeltaPmap*(_vi106-1) + __cf1_IsoDeltaPmap*(_vi105-1) + __cf2_IsoDeltaPmap*(_vi91-1)] ) {
	dV_elementAdjusted = _div( (VolumeFluid[_vi91-1] - Volpreviouslayer) , (VolumeFluidApproxRough - Volpreviouslayer),"VolumeFluidApproxRough - Volpreviouslayer") * dV_element ;
	_vi108 = 1 ;
	while ( _vi108 <= setofSize(&typ[7]) ) {
	_vi109 = setofElem(&typ[7], _vi108) ;
	COMtank[_vi108-1 + 3*(_vi91-1)] = _div( (VolumeFluidApprox[_vi91-1] * COMtank[_vi108-1 + 3*(_vi91-1)] + dV_elementAdjusted * OTankNodes[_vi108-1 + 3*(_vi107-1) + __cf1_OTankNodes*(_vi106-1) + __cf2_OTankNodes*(_vi105-1) + __cf3_OTankNodes*(_vi91-1)]) , (VolumeFluidApprox[_vi91-1] + dV_elementAdjusted),"VolumeFluidApprox[_vi91] + dV_elementAdjusted") ;
	_vi108 += 1 ;
	}
	Ac1bf81150cedafec02bdcb41220855ae(n4, Nodes, _vi91, _vi105, _vi106, _vi107, MinertiaVolume, dV_elementAdjusted, OTankNodes) ;
	VolumeFluidApprox[_vi91-1] = VolumeFluidApprox[_vi91-1] + dV_elementAdjusted ;
	if( SurfaceIsoDeltaPmin == IsoDeltaPmap[_vi107-1 + __cf0_IsoDeltaPmap*(_vi106-1) + __cf1_IsoDeltaPmap*(_vi105-1) + __cf2_IsoDeltaPmap*(_vi91-1)] ) {
	PointFreeSurfIndex[0 + 3*(_vi91-1)] = _vi105 ;
	PointFreeSurfIndex[1 + 3*(_vi91-1)] = _vi106 ;
	PointFreeSurfIndex[2 + 3*(_vi91-1)] = _vi107 ;
	}
	*npt = *npt + 1 ;
	if( *npt <= 1000 ) {
	_vi110 = 1 ;
	while ( _vi110 <= setofSize(&typ[7]) ) {
	_vi111 = setofElem(&typ[7], _vi110) ;
	MapFreeSurface[_vi110-1 + 3*(*npt-1) + 3000*(_vi91-1)] = OTankNodes[_vi110-1 + 3*(_vi107-1) + __cf1_OTankNodes*(_vi106-1) + __cf2_OTankNodes*(_vi105-1) + __cf3_OTankNodes*(_vi91-1)] ;
	_vi110 += 1 ;
	}
	}
	}
	_vi107 += 1 ;
	}
	_vi106 += 1 ;
	}
	_vi105 += 1 ;
	}
	_vi112 = 1 ;
	while ( _vi112 <= setofSize(&typ[7]) ) {
	_vi113 = setofElem(&typ[7], _vi112) ;
	PointFreeSurface[_vi112-1 + 3*(_vi91-1)] = OTankNodes[_vi112-1 + 3*(PointFreeSurfIndex[2 + 3*(_vi91-1)]-1) + __cf1_OTankNodes*(PointFreeSurfIndex[1 + 3*(_vi91-1)]-1) + __cf2_OTankNodes*(PointFreeSurfIndex[0 + 3*(_vi91-1)]-1) + __cf3_OTankNodes*(_vi91-1)] ;
	_vi112 += 1 ;
	}
	_vi114 = *npt + 1 ;
	while ( _vi114 <= A22c1adc231b377ecd584fbb6cfaefff6(*npt + 100, 1000) ) {
	_vi115 = 1 ;
	while ( _vi115 <= setofSize(&typ[7]) ) {
	_vi116 = setofElem(&typ[7], _vi115) ;
	MapFreeSurface[_vi115-1 + 3*(_vi114-1) + 3000*(_vi91-1)] = 0 ;
	_vi115 += 1 ;
	}
	_vi114 += 1 ;
	}
	flag = 1 ;
	}
	}
	_vi96 += 1 ;
	}
	}
	else {
	inb = 0 ;
	flag = 0 ;
	VolumeWall = 0 ;
	dV_elementAdjusted = 0 ;
	_vi117 = 0 ;
	while ( _vi117 <= iHalfNodes ) {
	if( VolumeWall < VolumeFluid[_vi91-1] && flag == 0 ) {
	inbNodesLayer = _pow( (Nodes - 2 * _vi117) , 3,"Nodes - 2 * _vi117 ** 3" ) - _pow( (Nodes - 2 * (_vi117 + 1)) , 3,"Nodes - 2 * (_vi117 + 1) ** 3" ) ;
	inb = inbNodesLayer + inb ;
	VolumeWall = inb * dV_element ;
	}
	if( ! (VolumeWall < VolumeFluid[_vi91-1]) && flag == 0 ) {
	dV_elementAdjusted = dV_element - _divRI( (VolumeWall - VolumeFluid[_vi91-1]) , inbNodesLayer,"inbNodesLayer") ;
	iSurface = A22c1adc231b377ecd584fbb6cfaefff6(double(iHalfNodes), _vi117 + 1) ;
	flag = 1 ;
	}
	_vi117 += 1 ;
	}
	if( flag == 0 ) {
	dV_elementAdjusted = dV_element - (_pow( Nodes , 3.,"Nodes ** 3." ) * dV_element - VolumeFluid[_vi91-1])/28. ;
	iSurface = iHalfNodes ;
	flag = 1 ;
	}
	VolumeWallLoop = 0 ;
	_vi118 = 1 ;
	while ( _vi118 <= Nodes ) {
	_vi119 = 1 ;
	while ( _vi119 <= Nodes ) {
	_vi120 = 1 ;
	while ( _vi120 <= Nodes ) {
	if( _vi118 <= iSurface || _vi119 <= iSurface || _vi120 <= iSurface || _vi118 >= (Nodes + 1 - iSurface) || _vi119 >= (Nodes + 1 - iSurface) || _vi120 >= (Nodes + 1 - iSurface) ) {
	ConditionOnlyLastLayer = _vi118 == iSurface || _vi119 == iSurface || _vi120 == iSurface || _vi118 == (Nodes + 1 - iSurface) || _vi119 == (Nodes + 1 - iSurface) || _vi120 == (Nodes + 1 - iSurface) ;
	ConditionOnlyLastLayer = ConditionOnlyLastLayer && _vi118 >= iSurface && _vi119 >= iSurface && _vi120 >= iSurface && _vi118 <= (Nodes + 1 - iSurface) && _vi119 <= (Nodes + 1 - iSurface) && _vi120 <= (Nodes + 1 - iSurface) ;
	if( ConditionOnlyLastLayer ) {
	VolumeWallLoop = VolumeWallLoop + dV_elementAdjusted ;
	Ac1bf81150cedafec02bdcb41220855ae(n4, Nodes, _vi91, _vi118, _vi119, _vi120, MinertiaVolume, dV_elementAdjusted, OTankNodes) ;
	}
	else {
	VolumeWallLoop = VolumeWallLoop + dV_element ;
	Ac1bf81150cedafec02bdcb41220855ae(n4, Nodes, _vi91, _vi118, _vi119, _vi120, MinertiaVolume, dV_element, OTankNodes) ;
	}
	}
	_vi120 += 1 ;
	}
	_vi119 += 1 ;
	}
	_vi118 += 1 ;
	}
	_vi121 = 1 ;
	while ( _vi121 <= 3 ) {
	PointFreeSurfIndex[_vi121-1 + 3*(n4-1)] = iSurface ;
	_vi121 += 1 ;
	}
	iCentre = iHalfNodes + 1.01 ;
	_vi122 = 1 ;
	while ( _vi122 <= setofSize(&typ[7]) ) {
	_vi123 = setofElem(&typ[7], _vi122) ;
	PointFreeSurface[_vi122-1 + 3*(_vi91-1)] = OTankNodes[_vi122-1 + 3*(PointFreeSurfIndex[2 + 3*(_vi91-1)]-1) + __cf1_OTankNodes*(PointFreeSurfIndex[1 + 3*(_vi91-1)]-1) + __cf2_OTankNodes*(PointFreeSurfIndex[0 + 3*(_vi91-1)]-1) + __cf3_OTankNodes*(_vi91-1)] ;
	if( (2 * iHalfNodes) == Nodes ) {
	COMtank[_vi122-1 + 3*(_vi91-1)] = (OTankNodes[_vi122-1 + 3*(iCentre-1) + __cf1_OTankNodes*(iCentre-1) + __cf2_OTankNodes*(iCentre-1) + __cf3_OTankNodes*(_vi91-1)] + OTankNodes[_vi122-1 + 3*(iCentre - 1-1) + __cf1_OTankNodes*(iCentre - 1-1) + __cf2_OTankNodes*(iCentre - 1-1) + __cf3_OTankNodes*(_vi91-1)])/2. ;
	}
	else {
	COMtank[_vi122-1 + 3*(_vi91-1)] = OTankNodes[_vi122-1 + 3*(iCentre-1) + __cf1_OTankNodes*(iCentre-1) + __cf2_OTankNodes*(iCentre-1) + __cf3_OTankNodes*(_vi91-1)] ;
	}
	_vi122 += 1 ;
	}
	VolumeFluidApprox[_vi91-1] = VolumeFluid[_vi91-1] ;
	dPoutlet[_vi91-1] = 0 ;
	}
	_vi91 += 1 ;
	}
__end :
	delete[] IsoDeltaPmax;
	delete[] IsoDeltaPmin;
}



void SATELLITE__testSPOT_default::copyBack( double dyn[], double ldr[] )
{
	dyn[0] = unkR[511] ;
	dyn[1] = unkR[512] ;
	dyn[2] = unkR[513] ;
	dyn[3] = unkR[48] ;
	dyn[4] = unkR[57] ;
	dyn[5] = unkR[49] ;
	dyn[6] = unkR[58] ;
	dyn[7] = unkR[50] ;
	dyn[8] = unkR[59] ;
	dyn[10] = unkR[228] ;
	dyn[11] = unkR[261] ;
	dyn[12] = unkR[229] ;
	dyn[13] = unkR[262] ;
	dyn[14] = unkR[230] ;
	dyn[15] = unkR[263] ;
	unkR[312] = unkR[308] ;
	dyn[16] = unkR[289] ;
	dyn[17] = unkR[290] ;
	dyn[18] = unkR[291] ;
	unkR[314] = unkR[309] ;
	unkR[316] = unkR[310] ;
	dyn[19] = unkR[196] ;
	dyn[20] = unkR[197] ;
	dyn[21] = unkR[198] ;
	dyn[22] = unkR[199] ;
	dyn[23] = unkR[7766] ;
	dyn[24] = unkR[7767] ;
	unkR[500] = unkR[496] ;
	unkR[502] = unkR[497] ;
	unkR[504] = unkR[498] ;
}



void SATELLITE__testSPOT_default::initBlocks( double dyn[], double ldr[], double *_time )
{
	s_current= this;
	unkR[8001] = 1 ;
	unkR[8002] = 0 ;
	unkR[464] = 1 ;
	unkR[465] = 0 ;
	unkI[49] = 1 ;
	while ( unkI[49] <= 4 ) {
	unkR[511+(unkI[49]-1)] = 0 ;
	unkI[49] += 1 ;
	}
	unkR[576] = 1 ;
	unkR[577] = 0 ;
	unkR[587] = unkR[588]/300000000. ;
	dyn[9] = unkR[372] ;
	unkI[54] = 1 ;
	while ( unkI[54] <= setofSize(&typ[4]) ) {
	unkI[55] = setofElem(&typ[4], unkI[54]) ;
	unkR[228+(unkI[54]-1)] = 1 ;
	unkR[261+(unkI[54]-1)] = 1 ;
	unkI[54] += 1 ;
	}
	unkR[262] = 2 ;
	unkI[56] = 1 ;
	while ( unkI[56] <= setofSize(&typ[7]) ) {
	unkI[57] = setofElem(&typ[7], unkI[56]) ;
	unkR[289+(unkI[56]-1)] = A01bfbe1edd393b2c1ca09d44c931495b(unkR[380+(unkI[56]-1)]) ;
	unkI[56] += 1 ;
	}
	unkR[196] = 1 ;
	unkR[224] = 1 ;
	unkR[216] = 1 ;
	unkR[233] = 1 ;
	unkR[669] = unkR[668] * 0.886226925452758 ;
	unkR[7774] = unkR[923] * unkR[669] * unkR[669] ;
	unkI[32] = 1 ;
	while ( unkI[32] <= cteI[24] ) {
	unkR[7766+(unkI[32]-1)] = unkR[7770+(unkI[32]-1)] ;
	if(!(unkR[7766+(unkI[32]-1)] < unkR[7774]))
	issueError(213,7,13,98,"SATCompo.el",749,"Tanks1.","ASSERT failed: %s","TANK FULL, fluid volume too high");

	unkI[32] += 1 ;
	}
	unkR[7783] = unkR[923]/5. * unkR[669]/5. * unkR[669]/5. ;
	unkI[33] = 1 ;
	while ( unkI[33] <= cteI[24] ) {
	unkI[34] = 1 ;
	while ( unkI[34] <= setofSize(&typ[7]) ) {
	unkI[35] = setofElem(&typ[7], unkI[34]) ;
	unkR[8392] = 0 ;
	unkI[36] = 1 ;
	while ( unkI[36] <= setofSize(&typ[7]) ) {
	unkI[37] = setofElem(&typ[7], unkI[36]) ;
	unkR[8392] += _pow( unkR[7754+(unkI[36]-1)+3*(unkI[33]-1)] , 2.,"Tanks1.Torient[_vi125,_vi128] ** 2." ) ;
	unkI[36] += 1 ;
	}
	unkR[7799+(unkI[34]-1)+3*(unkI[33]-1)] = _div( unkR[7754+(unkI[34]-1)+3*(unkI[33]-1)] , _sqrt(unkR[8392],"_vr12"),"sqrt(_vr12)") ;
	unkI[34] += 1 ;
	}
	unkI[33] += 1 ;
	}
	unkI[39] = 1 ;
	while ( unkI[39] <= cteI[24] ) {
	unkI[40] = 1 ;
	while ( unkI[40] <= setofSize(&typ[7]) ) {
	unkI[41] = setofElem(&typ[7], unkI[40]) ;
	unkR[7793+(unkI[40]-1)] = unkR[7799+(unkI[40]-1)+3*(unkI[39]-1)] ;
	unkR[6962+(unkI[40]-1)] = unkR[6965+(unkI[40]-1)+3*(unkI[39]-1)] ;
	unkI[40] += 1 ;
	}
	A142a138dd7f7edde3cd3b31f7c280be6(&unkR[7793], &unkR[7793], "in Tanks eAZ") ;
	A2e8f4393cd4e00e633246fcac8ad105e(&unkR[7793], &unkR[7805], &unkR[7790]) ;
	if( A37bff279528b6317bb6373d02308ca80(&unkR[7790]) < 0.1 ) {
	A2e8f4393cd4e00e633246fcac8ad105e(&unkR[7808], &unkR[7793], &unkR[7790]) ;
	}
	A142a138dd7f7edde3cd3b31f7c280be6(&unkR[7790], &unkR[7790], "in Tanks eAY") ;
	A2e8f4393cd4e00e633246fcac8ad105e(&unkR[7790], &unkR[7793], &unkR[7787]) ;
	A142a138dd7f7edde3cd3b31f7c280be6(&unkR[7787], &unkR[7787], "in Tanks eAXZ") ;
	unkI[42] = 1 ;
	while ( unkI[42] <= cteI[22] ) {
	unkI[43] = 1 ;
	while ( unkI[43] <= cteI[22] ) {
	unkI[44] = 1 ;
	while ( unkI[44] <= cteI[22] ) {
	unkI[45] = 1 ;
	while ( unkI[45] <= setofSize(&typ[7]) ) {
	unkI[46] = setofElem(&typ[7], unkI[45]) ;
	unkR[6977+(unkI[45]-1)+3*(unkI[44]-1)+15*(unkI[43]-1)+75*(unkI[42]-1)+375*(unkI[39]-1)] = unkR[6962+(unkI[45]-1)] + unkR[7793+(unkI[45]-1)] * unkR[923]/5. * (unkI[42] - 0.5 - 2.5) + unkR[7787+(unkI[45]-1)] * unkR[669]/5. * (unkI[43] - 0.5 - 2.5) + unkR[7790+(unkI[45]-1)] * unkR[669]/5. * (unkI[44] - 0.5 - 2.5) ;
	unkI[45] += 1 ;
	}
	unkI[44] += 1 ;
	}
	unkI[43] += 1 ;
	}
	unkI[42] += 1 ;
	}
	unkI[39] += 1 ;
	}
	unkI[28] = 125 ;
	PRINT(" Tanks discretisation completed with " + getValueAsString("Tanks1.nodesCube") + " nodes ") ;
	copyBack( dyn, ldr ) ;
}


void SATELLITE__testSPOT_default::fres( double *_time, double dyn[], double der[], double res[] )
{
m_residuesEvals++;
s_current= this;
dcopy(25,ldr,der) ;
evalBoundsExp(*_time);
printDbgInfoForModel(-1,true);
unkR[511] = dyn[0] ;
unkR[512] = dyn[1] ;
unkR[513] = dyn[2] ;
unkR[48] = dyn[3] ;
unkR[57] = dyn[4] ;
unkR[49] = dyn[5] ;
unkR[58] = dyn[6] ;
unkR[50] = dyn[7] ;
unkR[59] = dyn[8] ;
unkR[228] = dyn[10] ;
unkR[261] = dyn[11] ;
unkR[229] = dyn[12] ;
unkR[262] = dyn[13] ;
unkR[230] = dyn[14] ;
unkR[263] = dyn[15] ;
unkR[496] = unkR[460] * unkR[511] * unkR[481] + unkR[461] * unkR[512] * unkR[484] + unkR[462] * unkR[513] * unkR[487] ;
unkR[308] = unkR[496] ;
unkR[312] = unkR[308] ;
unkR[289] = dyn[16] ;
unkR[290] = dyn[17] ;
unkR[291] = dyn[18] ;
unkR[497] = unkR[460] * unkR[511] * unkR[482] + unkR[461] * unkR[512] * unkR[485] + unkR[462] * unkR[513] * unkR[488] ;
unkR[309] = unkR[497] ;
unkR[314] = unkR[309] ;
unkR[498] = unkR[460] * unkR[511] * unkR[483] + unkR[461] * unkR[512] * unkR[486] + unkR[462] * unkR[513] * unkR[489] ;
unkR[310] = unkR[498] ;
unkR[316] = unkR[310] ;
unkR[196] = dyn[19] ;
unkR[197] = dyn[20] ;
unkR[198] = dyn[21] ;
unkR[199] = dyn[22] ;
unkR[7766] = dyn[23] ;
unkR[7767] = dyn[24] ;
 if(m_branchZone[16]==0)
	unkR[415] = unkR[659] ;
else unkR[415] = unkR[658] ;
unkR[431] = unkR[399] * unkR[415] ;
unkR[7815] = unkR[431] ;
 if(m_branchZone[17]==0)
	unkR[416] = unkR[659] ;
else unkR[416] = unkR[658] ;
unkR[432] = unkR[400] * unkR[416] ;
unkR[7816] = unkR[432] ;
 if(m_branchZone[18]==0)
	unkR[417] = unkR[659] ;
else unkR[417] = unkR[658] ;
unkR[433] = unkR[401] * unkR[417] ;
unkR[7817] = unkR[433] ;
 if(m_branchZone[19]==0)
	unkR[418] = unkR[659] ;
else unkR[418] = unkR[658] ;
unkR[434] = unkR[402] * unkR[418] ;
unkR[7818] = unkR[434] ;
 if(m_branchZone[20]==0)
	unkR[419] = unkR[659] ;
else unkR[419] = unkR[658] ;
unkR[435] = unkR[403] * unkR[419] ;
unkR[7819] = unkR[435] ;
 if(m_branchZone[21]==0)
	unkR[420] = unkR[659] ;
else unkR[420] = unkR[658] ;
unkR[436] = unkR[404] * unkR[420] ;
unkR[7820] = unkR[436] ;
 if(m_branchZone[22]==0)
	unkR[421] = unkR[659] ;
else unkR[421] = unkR[658] ;
unkR[437] = unkR[405] * unkR[421] ;
unkR[7821] = unkR[437] ;
 if(m_branchZone[23]==0)
	unkR[422] = unkR[659] ;
else unkR[422] = unkR[658] ;
unkR[438] = unkR[406] * unkR[422] ;
unkR[7822] = unkR[438] ;
 if(m_branchZone[24]==0)
	unkR[423] = unkR[659] ;
else unkR[423] = unkR[658] ;
unkR[439] = unkR[407] * unkR[423] ;
unkR[7823] = unkR[439] ;
 if(m_branchZone[25]==0)
	unkR[424] = unkR[659] ;
else unkR[424] = unkR[658] ;
unkR[440] = unkR[408] * unkR[424] ;
unkR[7824] = unkR[440] ;
 if(m_branchZone[26]==0)
	unkR[425] = unkR[659] ;
else unkR[425] = unkR[658] ;
unkR[441] = unkR[409] * unkR[425] ;
unkR[7825] = unkR[441] ;
 if(m_branchZone[27]==0)
	unkR[426] = unkR[659] ;
else unkR[426] = unkR[658] ;
unkR[442] = unkR[410] * unkR[426] ;
unkR[7826] = unkR[442] ;
 if(m_branchZone[28]==0)
	unkR[427] = unkR[659] ;
else unkR[427] = unkR[658] ;
unkR[443] = unkR[411] * unkR[427] ;
unkR[7827] = unkR[443] ;
 if(m_branchZone[29]==0)
	unkR[428] = unkR[659] ;
else unkR[428] = unkR[658] ;
unkR[444] = unkR[412] * unkR[428] ;
unkR[7828] = unkR[444] ;
 if(m_branchZone[30]==0)
	unkR[429] = unkR[659] ;
else unkR[429] = unkR[658] ;
unkR[445] = unkR[413] * unkR[429] ;
unkR[7829] = unkR[445] ;
 if(m_branchZone[31]==0)
	unkR[430] = unkR[659] ;
else unkR[430] = unkR[658] ;
unkR[446] = unkR[414] * unkR[430] ;
unkR[7830] = unkR[446] ;
unkR[8321] = unkR[8323] * unkR[7815] + unkR[8324] * unkR[7816] + unkR[8325] * unkR[7817] + unkR[8326] * unkR[7818] + unkR[8327] * unkR[7819] + unkR[8328] * unkR[7820] + unkR[8329] * unkR[7821] + unkR[8330] * unkR[7822] + unkR[8331] * unkR[7823] + unkR[8332] * unkR[7824] + unkR[8333] * unkR[7825] + unkR[8334] * unkR[7826] + unkR[8335] * unkR[7827] + unkR[8336] * unkR[7828] + unkR[8337] * unkR[7829] + unkR[8338] * unkR[7830] ;
unkR[8322] = unkR[8340] * unkR[7815] + unkR[8341] * unkR[7816] + unkR[8342] * unkR[7817] + unkR[8343] * unkR[7818] + unkR[8344] * unkR[7819] + unkR[8345] * unkR[7820] + unkR[8346] * unkR[7821] + unkR[8347] * unkR[7822] + unkR[8348] * unkR[7823] + unkR[8349] * unkR[7824] + unkR[8350] * unkR[7825] + unkR[8351] * unkR[7826] + unkR[8352] * unkR[7827] + unkR[8353] * unkR[7828] + unkR[8354] * unkR[7829] + unkR[8355] * unkR[7830] ;
unkR[8311] = unkR[7899] * unkR[7815] + unkR[7902] * unkR[7816] + unkR[7905] * unkR[7817] + unkR[7908] * unkR[7818] + unkR[7911] * unkR[7819] + unkR[7914] * unkR[7820] + unkR[7917] * unkR[7821] + unkR[7920] * unkR[7822] + unkR[7923] * unkR[7823] + unkR[7926] * unkR[7824] + unkR[7929] * unkR[7825] + unkR[7932] * unkR[7826] + unkR[7935] * unkR[7827] + unkR[7938] * unkR[7828] + unkR[7941] * unkR[7829] + unkR[7944] * unkR[7830] ;
unkR[8317] = unkR[8020] * unkR[7815] + unkR[8023] * unkR[7816] + unkR[8026] * unkR[7817] + unkR[8029] * unkR[7818] + unkR[8032] * unkR[7819] + unkR[8035] * unkR[7820] + unkR[8038] * unkR[7821] + unkR[8041] * unkR[7822] + unkR[8044] * unkR[7823] + unkR[8047] * unkR[7824] + unkR[8050] * unkR[7825] + unkR[8053] * unkR[7826] + unkR[8056] * unkR[7827] + unkR[8059] * unkR[7828] + unkR[8062] * unkR[7829] + unkR[8065] * unkR[7830] ;
unkR[642] = 0 ;
unkR[8314] = -unkR[642] ;
unkR[8312] = unkR[7900] * unkR[7815] + unkR[7903] * unkR[7816] + unkR[7906] * unkR[7817] + unkR[7909] * unkR[7818] + unkR[7912] * unkR[7819] + unkR[7915] * unkR[7820] + unkR[7918] * unkR[7821] + unkR[7921] * unkR[7822] + unkR[7924] * unkR[7823] + unkR[7927] * unkR[7824] + unkR[7930] * unkR[7825] + unkR[7933] * unkR[7826] + unkR[7936] * unkR[7827] + unkR[7939] * unkR[7828] + unkR[7942] * unkR[7829] + unkR[7945] * unkR[7830] ;
unkR[8318] = unkR[8021] * unkR[7815] + unkR[8024] * unkR[7816] + unkR[8027] * unkR[7817] + unkR[8030] * unkR[7818] + unkR[8033] * unkR[7819] + unkR[8036] * unkR[7820] + unkR[8039] * unkR[7821] + unkR[8042] * unkR[7822] + unkR[8045] * unkR[7823] + unkR[8048] * unkR[7824] + unkR[8051] * unkR[7825] + unkR[8054] * unkR[7826] + unkR[8057] * unkR[7827] + unkR[8060] * unkR[7828] + unkR[8063] * unkR[7829] + unkR[8066] * unkR[7830] ;
unkR[643] = 0 ;
unkR[8315] = -unkR[643] ;
unkR[8313] = unkR[7901] * unkR[7815] + unkR[7904] * unkR[7816] + unkR[7907] * unkR[7817] + unkR[7910] * unkR[7818] + unkR[7913] * unkR[7819] + unkR[7916] * unkR[7820] + unkR[7919] * unkR[7821] + unkR[7922] * unkR[7822] + unkR[7925] * unkR[7823] + unkR[7928] * unkR[7824] + unkR[7931] * unkR[7825] + unkR[7934] * unkR[7826] + unkR[7937] * unkR[7827] + unkR[7940] * unkR[7828] + unkR[7943] * unkR[7829] + unkR[7946] * unkR[7830] ;
unkR[8319] = unkR[8022] * unkR[7815] + unkR[8025] * unkR[7816] + unkR[8028] * unkR[7817] + unkR[8031] * unkR[7818] + unkR[8034] * unkR[7819] + unkR[8037] * unkR[7820] + unkR[8040] * unkR[7821] + unkR[8043] * unkR[7822] + unkR[8046] * unkR[7823] + unkR[8049] * unkR[7824] + unkR[8052] * unkR[7825] + unkR[8055] * unkR[7826] + unkR[8058] * unkR[7827] + unkR[8061] * unkR[7828] + unkR[8064] * unkR[7829] + unkR[8067] * unkR[7830] ;
unkR[644] = 0 ;
unkR[8316] = -unkR[644] ;
unkR[8320] = -unkR[8073] * unkR[7815] + -unkR[8074] * unkR[7816] + -unkR[8075] * unkR[7817] + -unkR[8076] * unkR[7818] + -unkR[8077] * unkR[7819] + -unkR[8078] * unkR[7820] + -unkR[8079] * unkR[7821] + -unkR[8080] * unkR[7822] + -unkR[8081] * unkR[7823] + -unkR[8082] * unkR[7824] + -unkR[8083] * unkR[7825] + -unkR[8084] * unkR[7826] + -unkR[8085] * unkR[7827] + -unkR[8086] * unkR[7828] + -unkR[8087] * unkR[7829] + -unkR[8088] * unkR[7830] ;
unkR[8001] = (unkR[7950] + unkR[7848]) * 2. * 2. + (unkR[7951] + unkR[7849]) * 2. * 4. + (unkR[7952] + unkR[7850]) * 2. * 8. + (unkR[8003] + unkR[8374] + unkR[7831] + unkR[8090]) * 2. + (unkR[7953] + unkR[7851]) * 4. * 2. + (unkR[7954] + unkR[7852]) * 4. * 4. + (unkR[7955] + unkR[7853]) * 4. * 8. + (unkR[8004] + unkR[8375] + unkR[7832] + unkR[8091]) * 4. + (unkR[7956] + unkR[7854]) * 8. * 2. + (unkR[7957] + unkR[7855]) * 8. * 4. + (unkR[7958] + unkR[7856]) * 8. * 8. + (unkR[8005] + unkR[8376] + unkR[7833] + unkR[8092]) * 8. + (unkR[7959] + unkR[7857]) * 16. * 2. + (unkR[7960] + unkR[7858]) * 16. * 4. + (unkR[7961] + unkR[7859]) * 16. * 8. + (unkR[8006] + unkR[8377] + unkR[7834] + unkR[8093]) * 16. + (unkR[7962] + unkR[7860]) * 32. * 2. + (unkR[7963] + unkR[7861]) * 32. * 4. + (unkR[7964] + unkR[7862]) * 32. * 8. + (unkR[8007] + unkR[8378] + unkR[7835] + unkR[8094]) * 32. + (unkR[7965] + unkR[7863]) * 64. * 2. + (unkR[7966] + unkR[7864]) * 64. * 4. + (unkR[7967] + unkR[7865]) * 64. * 8. + (unkR[8008] + unkR[8379] + unkR[7836] + unkR[8095]) * 64. + (unkR[7968] + unkR[7866]) * 128. * 2. + (unkR[7969] + unkR[7867]) * 128. * 4. + (unkR[7970] + unkR[7868]) * 128. * 8. + (unkR[8009] + unkR[8380] + unkR[7837] + unkR[8096]) * 128. + (unkR[7971] + unkR[7869]) * 256. * 2. + (unkR[7972] + unkR[7870]) * 256. * 4. + (unkR[7973] + unkR[7871]) * 256. * 8. + (unkR[8010] + unkR[8381] + unkR[7838] + unkR[8097]) * 256. + (unkR[7974] + unkR[7872]) * 512. * 2. + (unkR[7975] + unkR[7873]) * 512. * 4. + (unkR[7976] + unkR[7874]) * 512. * 8. + (unkR[8011] + unkR[8382] + unkR[7839] + unkR[8098]) * 512. + (unkR[7977] + unkR[7875]) * 1024. * 2. + (unkR[7978] + unkR[7876]) * 1024. * 4. + (unkR[7979] + unkR[7877]) * 1024. * 8. + (unkR[8012] + unkR[8383] + unkR[7840] + unkR[8099]) * 1024. + (unkR[7980] + unkR[7878]) * 2048. * 2. + (unkR[7981] + unkR[7879]) * 2048. * 4. + (unkR[7982] + unkR[7880]) * 2048. * 8. + (unkR[8013] + unkR[8384] + unkR[7841] + unkR[8100]) * 2048. + (unkR[7983] + unkR[7881]) * 4096. * 2. + (unkR[7984] + unkR[7882]) * 4096. * 4. + (unkR[7985] + unkR[7883]) * 4096. * 8. + (unkR[8014] + unkR[8385] + unkR[7842] + unkR[8101]) * 4096. + (unkR[7986] + unkR[7884]) * 8192. * 2. + (unkR[7987] + unkR[7885]) * 8192. * 4. + (unkR[7988] + unkR[7886]) * 8192. * 8. + (unkR[8015] + unkR[8386] + unkR[7843] + unkR[8102]) * 8192. + (unkR[7989] + unkR[7887]) * 16384. * 2. + (unkR[7990] + unkR[7888]) * 16384. * 4. + (unkR[7991] + unkR[7889]) * 16384. * 8. + (unkR[8016] + unkR[8387] + unkR[7844] + unkR[8103]) * 16384. + (unkR[7992] + unkR[7890]) * 32768. * 2. + (unkR[7993] + unkR[7891]) * 32768. * 4. + (unkR[7994] + unkR[7892]) * 32768. * 8. + (unkR[8017] + unkR[8388] + unkR[7845] + unkR[8104]) * 32768. + (unkR[7995] + unkR[7893]) * 65536. * 2. + (unkR[7996] + unkR[7894]) * 65536. * 4. + (unkR[7997] + unkR[7895]) * 65536. * 8. + (unkR[8018] + unkR[8389] + unkR[7846] + unkR[8105]) * 65536. ;
unkR[8071] = unkR[7815] * 2. + unkR[7816] * 4. + unkR[7817] * 8. + unkR[7818] * 16. + unkR[7819] * 32. + unkR[7820] * 64. + unkR[7821] * 128. + unkR[7822] * 256. + unkR[7823] * 512. + unkR[7824] * 1024. + unkR[7825] * 2048. + unkR[7826] * 4096. + unkR[7827] * 8192. + unkR[7828] * 16384. + unkR[7829] * 32768. + unkR[7830] * 65536. ;
A3552299060f7c98d37a7a0d8c37eb81d(&unkR[228], &unkR[261], &unkR[231], &unkR[370], &unkR[374], unkR[116], unkR[108], &unkR[73], &unkR[74], &unkR[72], &unkR[112], &unkR[373], &unkR[191], &unkR[390]);
A706849dac78113deb5787361fa82321d(unkR[231], unkR[370], unkR[374], &unkR[204]);
A5081ea99bec2b8ca0ea52666ac8f7f22(&unkR[204], &unkR[216]);
A18936a1f7169d6925ecb534df0335842(&unkR[216], &unkR[220]);
A5081ea99bec2b8ca0ea52666ac8f7f22(&unkR[196], &unkR[200]);
A56574614adcf365a4620cd0f26dcfbe7(&unkR[220], &unkR[200], &unkR[208], " operation Qorbinv,Q ");
A5081ea99bec2b8ca0ea52666ac8f7f22(&unkR[208], &unkR[224]);
A323f2b87d160fbb4d6b1756e2b19532c(&unkR[378], &unkR[391], &unkR[376], &unkR[224]);
unkR[279] = A3f5f23a7a3907152dae2b7f68f204c63(unkR[378], 0) ;
unkR[524] = unkR[279] ;
 if(m_branchZone[32]==0)
	unkR[528] = unkR[225] * unkR[527] + unkR[523] ;
else  if(m_branchZone[32]==1)
	unkR[528] = unkR[524] * unkR[527] + unkR[523] ;
else unkR[528] = unkR[523] ;
unkR[33] = cteR[5] * unkR[528] + cteR[2] ;
unkR[54] = unkR[33] ;
 if(m_branchZone[13]==0)
	unkR[30] = unkR[652] ;
else  if(m_branchZone[13]==1)
	unkR[30] = unkR[651] + unkR[652] ;
else  if(m_branchZone[13]==2)
	unkR[30] = unkR[651] * sin(_div( 6.28318530717959 , unkR[653],"TC_AocsRW.Period") * ((*_time) - unkR[655]) + unkR[654]) + unkR[652] ;
else  if(m_branchZone[13]==3)
	unkR[30] = pulse((*_time) - unkR[655], unkR[653], unkR[656], 1) + unkR[652] ;
else  if(m_branchZone[13]==4)
	unkR[30] = unkR[651] * step((*_time), unkR[655], 2) + unkR[652] ;
else  if(m_branchZone[13]==5)
	unkR[30] = _div( unkR[651] * ramp((*_time) - unkR[655], unkR[653], 3) , unkR[653],"TC_AocsRW.Period") + unkR[652] ;
else  if(m_branchZone[13]==6)
	unkR[30] = unkR[651] * square((*_time) - unkR[655], unkR[653], 4) + unkR[652] ;
else  if(m_branchZone[13]==7)
	unkR[30] = _div( unkR[651] , unkR[657],"TC_AocsRW.rampDuration") * ((*_time) - unkR[655]) * (1. - step((*_time), unkR[655] + unkR[657], 5)) + unkR[651] * step((*_time), unkR[655] + unkR[657], 6) + unkR[652] ;
else  if(m_branchZone[13]==8)
	unkR[30] = unkR[651] * timeTableInterp((*_time) - unkR[655], &unkT[0], 7) + unkR[652] ;
else  if(m_branchZone[13]==9)
	unkR[30] = unkR[651] * linearInterp1D(&unkT[0], (*_time) - unkR[655]) + unkR[652] ;
else  if(m_branchZone[13]==10)
	unkR[30] = unkR[651] * splineInterp1D(&unkT[0], (*_time) - unkR[655]) + unkR[652] ;
else  if(m_branchZone[13]==11)
	unkR[30] = unkR[651] * timeTableStep((*_time) - unkR[655], &unkT[0], 8) + unkR[652] ;
else unkR[30] = 0 ;
unkR[12] = unkR[30] - unkR[54] ;
unkR[24] = unkR[54] + unkR[12] ;
ldr[4] = _div( (unkR[54] - unkR[57]) , (unkR[6] * unkR[0]),"Cntrl_PID1.alpha[1] * Cntrl_PID1.Td[1]") ;
unkR[45] = unkR[21] * (unkR[9] * unkR[24] - unkR[54] - unkR[0] * ldr[4]) + unkR[48] ;
 if(m_branchZone[4]==0)
	unkR[36] = unkR[39] ;
else  if(m_branchZone[4]==1)
	unkR[36] = unkR[42] ;
else unkR[36] = unkR[45] ;
unkR[27] = unkR[36] ;
unkR[396] = unkR[393] * unkR[27] ;
unkR[518] = unkR[396] ;
ldr[0] = _div( (unkR[518] * 2. * cteR[0]/60. - unkR[511]) , unkR[522],"ReactionWheels1.tau") ;
unkR[515] = unkR[511] * 60./(2. * cteR[0]) ;
unkR[466] = -abs(_div( unkR[460] * ldr[0] * unkR[511] , unkR[447],"ReactionWheels1.ElectricalEfficiency")) ;
unkR[280] = A3f5f23a7a3907152dae2b7f68f204c63(unkR[391], 0) ;
unkR[525] = unkR[280] ;
 if(m_branchZone[33]==0)
	unkR[529] = unkR[226] * unkR[527] + unkR[523] ;
else  if(m_branchZone[33]==1)
	unkR[529] = unkR[525] * unkR[527] + unkR[523] ;
else unkR[529] = unkR[523] ;
unkR[34] = cteR[6] * unkR[529] + cteR[3] ;
unkR[55] = unkR[34] ;
 if(m_branchZone[14]==0)
	unkR[31] = unkR[652] ;
else  if(m_branchZone[14]==1)
	unkR[31] = unkR[651] + unkR[652] ;
else  if(m_branchZone[14]==2)
	unkR[31] = unkR[651] * sin(_div( 6.28318530717959 , unkR[653],"TC_AocsRW.Period") * ((*_time) - unkR[655]) + unkR[654]) + unkR[652] ;
else  if(m_branchZone[14]==3)
	unkR[31] = pulse((*_time) - unkR[655], unkR[653], unkR[656], 9) + unkR[652] ;
else  if(m_branchZone[14]==4)
	unkR[31] = unkR[651] * step((*_time), unkR[655], 10) + unkR[652] ;
else  if(m_branchZone[14]==5)
	unkR[31] = _div( unkR[651] * ramp((*_time) - unkR[655], unkR[653], 11) , unkR[653],"TC_AocsRW.Period") + unkR[652] ;
else  if(m_branchZone[14]==6)
	unkR[31] = unkR[651] * square((*_time) - unkR[655], unkR[653], 12) + unkR[652] ;
else  if(m_branchZone[14]==7)
	unkR[31] = _div( unkR[651] , unkR[657],"TC_AocsRW.rampDuration") * ((*_time) - unkR[655]) * (1. - step((*_time), unkR[655] + unkR[657], 13)) + unkR[651] * step((*_time), unkR[655] + unkR[657], 14) + unkR[652] ;
else  if(m_branchZone[14]==8)
	unkR[31] = unkR[651] * timeTableInterp((*_time) - unkR[655], &unkT[0], 15) + unkR[652] ;
else  if(m_branchZone[14]==9)
	unkR[31] = unkR[651] * linearInterp1D(&unkT[0], (*_time) - unkR[655]) + unkR[652] ;
else  if(m_branchZone[14]==10)
	unkR[31] = unkR[651] * splineInterp1D(&unkT[0], (*_time) - unkR[655]) + unkR[652] ;
else  if(m_branchZone[14]==11)
	unkR[31] = unkR[651] * timeTableStep((*_time) - unkR[655], &unkT[0], 16) + unkR[652] ;
else unkR[31] = 0 ;
unkR[13] = unkR[31] - unkR[55] ;
unkR[25] = unkR[55] + unkR[13] ;
ldr[6] = _div( (unkR[55] - unkR[58]) , (unkR[7] * unkR[1]),"Cntrl_PID1.alpha[2] * Cntrl_PID1.Td[2]") ;
unkR[46] = unkR[22] * (unkR[10] * unkR[25] - unkR[55] - unkR[1] * ldr[6]) + unkR[49] ;
 if(m_branchZone[7]==0)
	unkR[37] = unkR[40] ;
else  if(m_branchZone[7]==1)
	unkR[37] = unkR[43] ;
else unkR[37] = unkR[46] ;
unkR[28] = unkR[37] ;
unkR[397] = unkR[394] * unkR[28] ;
unkR[519] = unkR[397] ;
ldr[1] = _div( (unkR[519] * 2. * cteR[0]/60. - unkR[512]) , unkR[522],"ReactionWheels1.tau") ;
unkR[516] = unkR[512] * 60./(2. * cteR[0]) ;
unkR[467] = -abs(_div( unkR[461] * ldr[1] * unkR[512] , unkR[447],"ReactionWheels1.ElectricalEfficiency")) ;
unkR[278] = A3f5f23a7a3907152dae2b7f68f204c63(unkR[376], 0) ;
unkR[526] = unkR[278] ;
 if(m_branchZone[34]==0)
	unkR[530] = unkR[227] * unkR[527] + unkR[523] ;
else  if(m_branchZone[34]==1)
	unkR[530] = unkR[526] * unkR[527] + unkR[523] ;
else unkR[530] = unkR[523] ;
unkR[35] = cteR[7] * unkR[530] + cteR[4] ;
unkR[56] = unkR[35] ;
 if(m_branchZone[15]==0)
	unkR[32] = unkR[652] ;
else  if(m_branchZone[15]==1)
	unkR[32] = unkR[651] + unkR[652] ;
else  if(m_branchZone[15]==2)
	unkR[32] = unkR[651] * sin(_div( 6.28318530717959 , unkR[653],"TC_AocsRW.Period") * ((*_time) - unkR[655]) + unkR[654]) + unkR[652] ;
else  if(m_branchZone[15]==3)
	unkR[32] = pulse((*_time) - unkR[655], unkR[653], unkR[656], 17) + unkR[652] ;
else  if(m_branchZone[15]==4)
	unkR[32] = unkR[651] * step((*_time), unkR[655], 18) + unkR[652] ;
else  if(m_branchZone[15]==5)
	unkR[32] = _div( unkR[651] * ramp((*_time) - unkR[655], unkR[653], 19) , unkR[653],"TC_AocsRW.Period") + unkR[652] ;
else  if(m_branchZone[15]==6)
	unkR[32] = unkR[651] * square((*_time) - unkR[655], unkR[653], 20) + unkR[652] ;
else  if(m_branchZone[15]==7)
	unkR[32] = _div( unkR[651] , unkR[657],"TC_AocsRW.rampDuration") * ((*_time) - unkR[655]) * (1. - step((*_time), unkR[655] + unkR[657], 21)) + unkR[651] * step((*_time), unkR[655] + unkR[657], 22) + unkR[652] ;
else  if(m_branchZone[15]==8)
	unkR[32] = unkR[651] * timeTableInterp((*_time) - unkR[655], &unkT[0], 23) + unkR[652] ;
else  if(m_branchZone[15]==9)
	unkR[32] = unkR[651] * linearInterp1D(&unkT[0], (*_time) - unkR[655]) + unkR[652] ;
else  if(m_branchZone[15]==10)
	unkR[32] = unkR[651] * splineInterp1D(&unkT[0], (*_time) - unkR[655]) + unkR[652] ;
else  if(m_branchZone[15]==11)
	unkR[32] = unkR[651] * timeTableStep((*_time) - unkR[655], &unkT[0], 24) + unkR[652] ;
else unkR[32] = 0 ;
unkR[14] = unkR[32] - unkR[56] ;
unkR[26] = unkR[56] + unkR[14] ;
ldr[8] = _div( (unkR[56] - unkR[59]) , (unkR[8] * unkR[2]),"Cntrl_PID1.alpha[3] * Cntrl_PID1.Td[3]") ;
unkR[47] = unkR[23] * (unkR[11] * unkR[26] - unkR[56] - unkR[2] * ldr[8]) + unkR[50] ;
 if(m_branchZone[10]==0)
	unkR[38] = unkR[41] ;
else  if(m_branchZone[10]==1)
	unkR[38] = unkR[44] ;
else unkR[38] = unkR[47] ;
unkR[29] = unkR[38] ;
unkR[398] = unkR[395] * unkR[29] ;
unkR[520] = unkR[398] ;
ldr[2] = _div( (unkR[520] * 2. * cteR[0]/60. - unkR[513]) , unkR[522],"ReactionWheels1.tau") ;
unkR[517] = unkR[513] * 60./(2. * cteR[0]) ;
unkR[468] = -abs(_div( unkR[462] * ldr[2] * unkR[513] , unkR[447],"ReactionWheels1.ElectricalEfficiency")) ;
unkR[649] = 0 ;
unkR[509] = -unkR[649] ;
unkR[650] = 0 ;
unkR[510] = -unkR[650] ;
unkR[493] = 0 ;
unkR[505] = 0 ;
unkR[494] = 0 ;
unkR[506] = 0 ;
unkR[495] = 0 ;
unkR[507] = 0 ;
A4734c95e5416810119e160e39b7d4cc3(&unkR[196], &unkR[159]);
unkR[148] = unkR[149] + (*_time)/86400. ;
Afcc4eadac593fa8a73a0762b2622034c(unkR[148], &unkR[237], &unkR[241]);
unkR[249] = unkR[228] - unkR[241] ;
unkR[250] = unkR[229] - unkR[242] ;
unkR[251] = unkR[230] - unkR[243] ;
unkR[258] = -unkR[159] * unkR[249] + -unkR[160] * unkR[250] + -unkR[161] * unkR[251] ;
unkR[259] = -unkR[162] * unkR[249] + -unkR[163] * unkR[250] + -unkR[164] * unkR[251] ;
unkR[260] = -unkR[165] * unkR[249] + -unkR[166] * unkR[250] + -unkR[167] * unkR[251] ;
unkR[586] = A37bff279528b6317bb6373d02308ca80(&unkR[258]) ;
A142a138dd7f7edde3cd3b31f7c280be6(&unkR[258], &unkR[634], "in SolarArrays S.RSatSun");
unkR[625] = unkR[604] * unkR[634] + unkR[605] * unkR[635] + unkR[606] * unkR[636] ;
unkR[626] = unkR[607] * unkR[634] + unkR[608] * unkR[635] + unkR[609] * unkR[636] ;
unkR[627] = unkR[610] * unkR[634] + unkR[611] * unkR[635] + unkR[612] * unkR[636] ;
if( unkR[540] == 1 ) 
{
reportIfChangesBranch(*_time,2, m_branchIf[2],0,"SolarArrays1.Automatic == 1");
unkR[628] = -unkR[604] * unkR[625] + -unkR[605] * unkR[626] + -unkR[606] * unkR[627] ;
}
else 
{
reportIfChangesBranch(*_time,2, m_branchIf[2],1,"ELSE");
unkR[628] = unkR[631] ;
}
if( unkR[540] == 1 ) 
{
reportIfChangesBranch(*_time,3, m_branchIf[3],0,"SolarArrays1.Automatic == 1");
unkR[629] = -unkR[607] * unkR[625] + -unkR[608] * unkR[626] + -unkR[609] * unkR[627] ;
}
else 
{
reportIfChangesBranch(*_time,3, m_branchIf[3],1,"ELSE");
unkR[629] = unkR[632] ;
}
if( unkR[540] == 1 ) 
{
reportIfChangesBranch(*_time,4, m_branchIf[4],0,"SolarArrays1.Automatic == 1");
unkR[630] = -unkR[610] * unkR[625] + -unkR[611] * unkR[626] + -unkR[612] * unkR[627] ;
}
else 
{
reportIfChangesBranch(*_time,4, m_branchIf[4],1,"ELSE");
unkR[630] = unkR[633] ;
}
if( unkR[540] == 1 ) 
{
reportIfChangesBranch(*_time,0, m_branchIf[0],0,"SolarArrays1.Automatic == 1");
unkR[637] = unkR[628] * unkR[634] + unkR[629] * unkR[635] + unkR[630] * unkR[636] ;
}
else 
{
reportIfChangesBranch(*_time,0, m_branchIf[0],1,"ELSE");
unkR[637] = unkR[631] * unkR[634] + unkR[632] * unkR[635] + unkR[633] * unkR[636] ;
}
 if(m_branchZone[3]==0)
	unkR[585] = 0 ;
else unkR[585] = unkR[638] * unkR[588] * _pow( (_div( unkR[531] , unkR[586],"SolarArrays1.RSatSun_module")) , 2.,"SolarArrays1.AU / SolarArrays1.RSatSun_module ** 2." ) * Ad5577fc29943618f69ad5c843eba833c(0, unkR[637]) * unkR[536] ;
unkR[648] = unkR[585] * unkR[547] ;
unkR[320] = unkR[466] + unkR[467] + unkR[468] + unkR[648] + unkR[8320] ;
unkR[514] = 0 ;
unkR[464] = unkR[448] * 2. * 2. + unkR[449] * 2. * 4. + unkR[450] * 2. * 8. + unkR[460] * 2. + unkR[451] * 4. * 2. + unkR[452] * 4. * 4. + unkR[453] * 4. * 8. + unkR[461] * 4. + unkR[454] * 8. * 2. + unkR[455] * 8. * 4. + unkR[456] * 8. * 8. + unkR[462] * 8. ;
unkR[542] = 1. - unkR[541] + unkR[543] ;
unkR[255] = -unkR[159] * unkR[228] + -unkR[160] * unkR[229] + -unkR[161] * unkR[230] ;
unkR[256] = -unkR[162] * unkR[228] + -unkR[163] * unkR[229] + -unkR[164] * unkR[230] ;
unkR[257] = -unkR[165] * unkR[228] + -unkR[166] * unkR[229] + -unkR[167] * unkR[230] ;
A5b9efacac279f8201146501a406519f9(&unkR[258], &unkR[255], &unkI[3], &unkR[575]);
if( unkR[540] == 1 ) 
{
reportIfChangesBranch(*_time,1, m_branchIf[1],0,"SolarArrays1.Automatic == 1");
unkR[584] = abs(unkR[637]) * unkR[587] * _pow( (_div( unkR[531] , unkR[586],"SolarArrays1.RSatSun_module")) , 2.,"SolarArrays1.AU / SolarArrays1.RSatSun_module ** 2." ) * unkR[536] ;
}
else 
{
reportIfChangesBranch(*_time,1, m_branchIf[1],1,"ELSE");
unkR[584] = Ad5577fc29943618f69ad5c843eba833c(0, unkR[637]) * unkR[587] * _pow( (_div( unkR[531] , unkR[586],"SolarArrays1.RSatSun_module")) , 2.,"SolarArrays1.AU / SolarArrays1.RSatSun_module ** 2." ) * unkR[536] ;
}
 if(m_branchZone[0]==0)
	unkR[544] = 0 ;
else unkR[544] = -unkR[634] * unkR[584] * unkR[541] - 2. * unkR[628] * unkR[584] * unkR[543] - (0.666666666666667 * unkR[628] + unkR[634]) * unkR[584] * unkR[542] ;
 if(m_branchZone[1]==0)
	unkR[545] = 0 ;
else unkR[545] = -unkR[635] * unkR[584] * unkR[541] - 2. * unkR[629] * unkR[584] * unkR[543] - (0.666666666666667 * unkR[629] + unkR[635]) * unkR[584] * unkR[542] ;
 if(m_branchZone[2]==0)
	unkR[546] = 0 ;
else unkR[546] = -unkR[636] * unkR[584] * unkR[541] - 2. * unkR[630] * unkR[584] * unkR[543] - (0.666666666666667 * unkR[630] + unkR[636]) * unkR[584] * unkR[542] ;
unkR[560] = unkR[544] ;
unkR[561] = unkR[545] ;
unkR[562] = unkR[546] ;
unkR[578] = unkR[613] * unkR[544] + unkR[614] * unkR[545] + unkR[615] * unkR[546] ;
unkR[579] = unkR[616] * unkR[544] + unkR[617] * unkR[545] + unkR[618] * unkR[546] ;
unkR[580] = unkR[619] * unkR[544] + unkR[620] * unkR[545] + unkR[621] * unkR[546] ;
unkR[639] = unkR[560] * unkR[547] ;
unkR[645] = unkR[578] * unkR[547] ;
unkR[640] = unkR[561] * unkR[547] ;
unkR[641] = unkR[562] * unkR[547] ;
A2e8f4393cd4e00e633246fcac8ad105e(&unkR[639], &unkR[182], &unkR[581]);
unkR[589] = unkR[645] + unkR[581] ;
unkR[646] = unkR[579] * unkR[547] ;
unkR[590] = unkR[646] + unkR[582] ;
unkR[647] = unkR[580] * unkR[547] ;
unkR[591] = unkR[647] + unkR[583] ;
unkR[576] = (unkR[563] + unkR[548] + unkR[592]) * 2. * 2. + (unkR[564] + unkR[549] + unkR[593]) * 2. * 4. + (unkR[565] + unkR[550] + unkR[594]) * 2. * 8. + (unkR[536] + unkR[532]) * 2. ;
 if(m_branchZone[6]==0)
	unkR[51] = unkR[39] ;
else  if(m_branchZone[6]==1)
	unkR[51] = unkR[42] ;
else unkR[51] = unkR[48] ;
 if(m_branchZone[5]==0)
	unkR[15] = unkR[51] - unkR[48] ;
else unkR[15] = unkR[36] - unkR[45] ;
ldr[3] = _div( unkR[21] , unkR[3],"Cntrl_PID1.Ti[1]") * unkR[12] + _div( unkR[15] , (unkR[18] * unkR[3]),"Cntrl_PID1.gamma[1] * Cntrl_PID1.Ti[1]") ;
 if(m_branchZone[9]==0)
	unkR[52] = unkR[40] ;
else  if(m_branchZone[9]==1)
	unkR[52] = unkR[43] ;
else unkR[52] = unkR[49] ;
 if(m_branchZone[8]==0)
	unkR[16] = unkR[52] - unkR[49] ;
else unkR[16] = unkR[37] - unkR[46] ;
ldr[5] = _div( unkR[22] , unkR[4],"Cntrl_PID1.Ti[2]") * unkR[13] + _div( unkR[16] , (unkR[19] * unkR[4]),"Cntrl_PID1.gamma[2] * Cntrl_PID1.Ti[2]") ;
 if(m_branchZone[12]==0)
	unkR[53] = unkR[41] ;
else  if(m_branchZone[12]==1)
	unkR[53] = unkR[44] ;
else unkR[53] = unkR[50] ;
 if(m_branchZone[11]==0)
	unkR[17] = unkR[53] - unkR[50] ;
else unkR[17] = unkR[38] - unkR[47] ;
ldr[7] = _div( unkR[23] , unkR[5],"Cntrl_PID1.Ti[3]") * unkR[14] + _div( unkR[17] , (unkR[20] * unkR[5]),"Cntrl_PID1.gamma[3] * Cntrl_PID1.Ti[3]") ;
unkR[330] = unkR[7766] * unkR[7811] ;
unkR[331] = unkR[7767] * unkR[7812] ;
unkR[115] = unkR[330] + unkR[331] ;
unkR[672] = unkR[7766] * unkR[7811] + unkR[7767] * unkR[7812] ;
unkR[305] = unkR[639] + unkR[8311] ;
unkR[60] = _div( unkR[305] , dyn[9],"Frame1.mass") ;
unkR[273] = Ad45541ad370065f0c89d5eceabfbe70b(unkR[289]) ;
 if(m_branchZone[38]==0)
	unkR[7796] = unkR[60] ;
else unkR[7796] = A01bfbe1edd393b2c1ca09d44c931495b(unkR[273]) + 1e-015 ;
unkR[306] = unkR[640] + unkR[8312] ;
unkR[61] = _div( unkR[306] , dyn[9],"Frame1.mass") ;
unkR[274] = Ad45541ad370065f0c89d5eceabfbe70b(unkR[290]) ;
 if(m_branchZone[39]==0)
	unkR[7797] = unkR[61] ;
else unkR[7797] = A01bfbe1edd393b2c1ca09d44c931495b(unkR[274]) + 1e-015 ;
unkR[307] = unkR[641] + unkR[8313] ;
unkR[62] = _div( unkR[307] , dyn[9],"Frame1.mass") ;
unkR[275] = Ad45541ad370065f0c89d5eceabfbe70b(unkR[291]) ;
 if(m_branchZone[40]==0)
	unkR[7798] = unkR[62] ;
else unkR[7798] = A01bfbe1edd393b2c1ca09d44c931495b(unkR[275]) + 1e-015 ;
A142a138dd7f7edde3cd3b31f7c280be6(&unkR[7796], &unkR[7784], "in Tanks eAvalid");
unkR[7742] = A01bfbe1edd393b2c1ca09d44c931495b(unkR[273]) + 1e-015 ;
unkR[7743] = A01bfbe1edd393b2c1ca09d44c931495b(unkR[274]) + 1e-015 ;
unkR[7744] = A01bfbe1edd393b2c1ca09d44c931495b(unkR[275]) + 1e-015 ;
A142a138dd7f7edde3cd3b31f7c280be6(&unkR[7742], &unkR[7739], "in Tanks OmegaZvalid");
A2e8f4393cd4e00e633246fcac8ad105e(&unkR[7784], &unkR[7739], &unkR[7736]);
A2e8f4393cd4e00e633246fcac8ad105e(&unkR[7739], &unkR[7805], &unkR[7775]);
A2e8f4393cd4e00e633246fcac8ad105e(&unkR[7808], &unkR[7739], &unkR[7778]);
 if(m_branchZone[41]==0)
	unkR[7733] = unkR[7736] ;
else  if(m_branchZone[41]==1)
	unkR[7733] = unkR[7775] ;
else unkR[7733] = unkR[7778] ;
 if(m_branchZone[42]==0)
	unkR[7734] = unkR[7737] ;
else  if(m_branchZone[42]==1)
	unkR[7734] = unkR[7776] ;
else unkR[7734] = unkR[7779] ;
 if(m_branchZone[43]==0)
	unkR[7735] = unkR[7738] ;
else  if(m_branchZone[43]==1)
	unkR[7735] = unkR[7777] ;
else unkR[7735] = unkR[7780] ;
A2e8f4393cd4e00e633246fcac8ad105e(&unkR[7733], &unkR[7739], &unkR[7727]);
A2e8f4393cd4e00e633246fcac8ad105e(&unkR[7739], &unkR[7727], &unkR[7730]);
A7e3eef3b3fb41ec3b95eb000dd6132a9(&unkR[7727], &unkR[7730], &unkR[7739], &unkR[6951]);
unkR[6961] = A01bfbe1edd393b2c1ca09d44c931495b(A37bff279528b6317bb6373d02308ca80(&unkR[273])) ;
unkR[6960] = A37bff279528b6317bb6373d02308ca80(&unkR[60]) ;
unkR[660] = A58d39c798cf21ee9da59291fcc4e750d(&unkR[7739], &unkR[7784], &unkR[297], &unkR[389]) ;
A05270a6e1dc60e8d34e8fde61ecf7f7b(cteI[24], cteI[22], &unkR[6951], &unkR[182], unkR[6961], unkR[6960], unkR[389], unkR[297], &unkR[7811], &unkR[6977], &unkR[673]);
unkR[670] = -(unkR[60] * unkR[7799] + unkR[61] * unkR[7800] + unkR[62] * unkR[7801]) ;
unkR[671] = -(unkR[60] * unkR[7802] + unkR[61] * unkR[7803] + unkR[62] * unkR[7804]) ;
A89a348f8b00d02597dab097b75f2b2c3(cteI[24], cteI[22], &unkR[673], &unkR[670], &unkR[7766], unkR[7783], &unkR[6951], &unkR[6977], &unkR[662], &unkR[7752], &unkR[7781], &unkI[22], &unkR[7745], &unkR[7768], &unkR[924], &unkI[29], &unkR[6933]);
unkR[365] = _div( 1. , unkR[672],"Tanks1.FluidMassTanks") * (unkR[7766] * unkR[7811] * unkR[662] + unkR[7767] * unkR[7812] * unkR[665]) ;
unkR[366] = _div( 1. , unkR[672],"Tanks1.FluidMassTanks") * (unkR[7766] * unkR[7811] * unkR[663] + unkR[7767] * unkR[7812] * unkR[666]) ;
unkR[367] = _div( 1. , unkR[672],"Tanks1.FluidMassTanks") * (unkR[7766] * unkR[7811] * unkR[664] + unkR[7767] * unkR[7812] * unkR[667]) ;
unkR[6924] = unkR[7811] * unkR[6933] + unkR[7812] * unkR[6942] ;
unkR[6925] = unkR[7811] * unkR[6934] + unkR[7812] * unkR[6943] ;
unkR[6926] = unkR[7811] * unkR[6935] + unkR[7812] * unkR[6944] ;
unkR[6927] = unkR[7811] * unkR[6936] + unkR[7812] * unkR[6945] ;
unkR[6928] = unkR[7811] * unkR[6937] + unkR[7812] * unkR[6946] ;
unkR[6929] = unkR[7811] * unkR[6938] + unkR[7812] * unkR[6947] ;
unkR[6930] = unkR[7811] * unkR[6939] + unkR[7812] * unkR[6948] ;
unkR[6931] = unkR[7811] * unkR[6940] + unkR[7812] * unkR[6949] ;
unkR[6932] = unkR[7811] * unkR[6941] + unkR[7812] * unkR[6950] ;
A258ec9a890dd211ddeef7f6b9d43979a(&unkR[6924], &unkR[365], unkR[672], &unkR[356], 0);
unkR[84] = abs(unkR[365]) + abs(unkR[366]) + abs(unkR[367]) + unkR[115]/1000. + (_sqrt(unkR[356]/1000.,"Frame1.if.InertiaMatrixFluids[x,x] / 1000.") + _sqrt(unkR[360]/1000.,"Frame1.if.InertiaMatrixFluids[y,y] / 1000.") + _sqrt(unkR[364]/1000.,"Frame1.if.InertiaMatrixFluids[z,z] / 1000."))/10. ;
unkR[281] = (*_time)/86400. + unkR[106] + 2. ;
unkR[321] = unkR[8321] ;
unkR[322] = unkR[8322] ;
ldr[9] = unkR[321] + unkR[322] ;
ldr[10] = unkR[261] ;
unkR[233] = A37bff279528b6317bb6373d02308ca80(&unkR[228]) ;
unkR[69] = unkR[159] * unkR[60] + unkR[162] * unkR[61] + unkR[165] * unkR[62] ;
unkR[245] = unkR[241] + unkR[249] - unkR[237] ;
unkR[246] = unkR[242] + unkR[250] - unkR[238] ;
unkR[247] = unkR[243] + unkR[251] - unkR[239] ;
unkR[248] = A37bff279528b6317bb6373d02308ca80(&unkR[245]) ;
unkR[240] = A37bff279528b6317bb6373d02308ca80(&unkR[237]) ;
unkR[252] = A37bff279528b6317bb6373d02308ca80(&unkR[249]) ;
unkR[244] = A37bff279528b6317bb6373d02308ca80(&unkR[241]) ;
unkR[193] = (_div( -unkR[117] , _pow( unkR[248] , 3.,"Frame1.RmoonSat_module ** 3." ),"Frame1.RmoonSat_module ** 3.") * unkR[245] - _div( unkR[117] , _pow( unkR[240] , 3.,"Frame1.ReMo_module ** 3." ),"Frame1.ReMo_module ** 3.") * unkR[237] + _div( -unkR[118] , _pow( unkR[252] , 3.,"Frame1.RsunSat_module ** 3." ),"Frame1.RsunSat_module ** 3.") * unkR[249] - _div( unkR[118] , _pow( unkR[244] , 3.,"Frame1.ReS_module ** 3." ),"Frame1.ReS_module ** 3.") * unkR[241]) * dyn[9] ;
A4734c95e5416810119e160e39b7d4cc3(&unkR[216], &unkR[150]);
unkR[66] = -(_div( 1.5 * unkR[107] * unkR[116] * _pow( unkR[108] , 2.,"Frame1.EarthR ** 2." ) , _pow( unkR[233] , 4.,"Frame1.R_module ** 4." ),"Frame1.R_module ** 4.")) * sin(2. * unkR[374]) * _pow( sin(unkR[370]) , 2.,"sin(Frame1.inc) ** 2." ) ;
unkR[67] = _div( 1.5 * unkR[107] * unkR[116] * _pow( unkR[108] , 2.,"Frame1.EarthR ** 2." ) , _pow( unkR[233] , 4.,"Frame1.R_module ** 4." ),"Frame1.R_module ** 4.") * sin(unkR[374]) * sin(2. * unkR[370]) ;
unkR[68] = -(_div( 1.5 * unkR[107] * unkR[116] * _pow( unkR[108] , 2.,"Frame1.EarthR ** 2." ) , _pow( unkR[233] , 4.,"Frame1.R_module ** 4." ),"Frame1.R_module ** 4.")) * (3. * _pow( sin(unkR[374]) , 2.,"sin(Frame1.omPHI) ** 2." ) * _pow( sin(unkR[370]) , 2.,"sin(Frame1.inc) ** 2." ) - 1.) ;
unkR[63] = unkR[150] * unkR[66] + unkR[153] * unkR[67] + unkR[156] * unkR[68] ;
ldr[11] = _div( -unkR[116] , _pow( unkR[233] , 3.,"Frame1.R_module ** 3." ),"Frame1.R_module ** 3.") * unkR[228] + unkR[69] + _div( unkR[193] , dyn[9],"Frame1.mass") * unkR[113] + unkR[63] * unkR[114] ;
ldr[12] = unkR[262] ;
unkR[70] = unkR[160] * unkR[60] + unkR[163] * unkR[61] + unkR[166] * unkR[62] ;
unkR[194] = (_div( -unkR[117] , _pow( unkR[248] , 3.,"Frame1.RmoonSat_module ** 3." ),"Frame1.RmoonSat_module ** 3.") * unkR[246] - _div( unkR[117] , _pow( unkR[240] , 3.,"Frame1.ReMo_module ** 3." ),"Frame1.ReMo_module ** 3.") * unkR[238] + _div( -unkR[118] , _pow( unkR[252] , 3.,"Frame1.RsunSat_module ** 3." ),"Frame1.RsunSat_module ** 3.") * unkR[250] - _div( unkR[118] , _pow( unkR[244] , 3.,"Frame1.ReS_module ** 3." ),"Frame1.ReS_module ** 3.") * unkR[242]) * dyn[9] ;
unkR[64] = unkR[151] * unkR[66] + unkR[154] * unkR[67] + unkR[157] * unkR[68] ;
ldr[13] = _div( -unkR[116] , _pow( unkR[233] , 3.,"Frame1.R_module ** 3." ),"Frame1.R_module ** 3.") * unkR[229] + unkR[70] + _div( unkR[194] , dyn[9],"Frame1.mass") * unkR[113] + unkR[64] * unkR[114] ;
ldr[14] = unkR[263] ;
unkR[71] = unkR[161] * unkR[60] + unkR[164] * unkR[61] + unkR[167] * unkR[62] ;
unkR[195] = (_div( -unkR[117] , _pow( unkR[248] , 3.,"Frame1.RmoonSat_module ** 3." ),"Frame1.RmoonSat_module ** 3.") * unkR[247] - _div( unkR[117] , _pow( unkR[240] , 3.,"Frame1.ReMo_module ** 3." ),"Frame1.ReMo_module ** 3.") * unkR[239] + _div( -unkR[118] , _pow( unkR[252] , 3.,"Frame1.RsunSat_module ** 3." ),"Frame1.RsunSat_module ** 3.") * unkR[251] - _div( unkR[118] , _pow( unkR[244] , 3.,"Frame1.ReS_module ** 3." ),"Frame1.ReS_module ** 3.") * unkR[243]) * dyn[9] ;
unkR[65] = unkR[152] * unkR[66] + unkR[155] * unkR[67] + unkR[158] * unkR[68] ;
ldr[15] = _div( -unkR[116] , _pow( unkR[233] , 3.,"Frame1.R_module ** 3." ),"Frame1.R_module ** 3.") * unkR[230] + unkR[71] + _div( unkR[195] , dyn[9],"Frame1.mass") * unkR[113] + unkR[65] * unkR[114] ;
unkR[317] = unkR[645] + unkR[8317] ;
A2e8f4393cd4e00e633246fcac8ad105e(&unkR[305], &unkR[182], &unkR[177]);
unkR[499] = unkR[460] * ldr[0] * unkR[481] + unkR[461] * ldr[1] * unkR[484] + unkR[462] * ldr[2] * unkR[487] ;
unkR[311] = unkR[499] ;
Aed7dc2c11dad22ced17f49d6c0566a88(&unkR[289], &unkR[75]);
unkR[318] = unkR[646] + unkR[8318] ;
unkR[501] = unkR[460] * ldr[0] * unkR[482] + unkR[461] * ldr[1] * unkR[485] + unkR[462] * ldr[2] * unkR[488] ;
unkR[313] = unkR[501] ;
unkR[319] = unkR[647] + unkR[8319] ;
unkR[503] = unkR[460] * ldr[0] * unkR[483] + unkR[461] * ldr[1] * unkR[486] + unkR[462] * ldr[2] * unkR[489] ;
unkR[315] = unkR[503] ;
unkR[119] = unkR[122] * unkR[289] + unkR[123] * unkR[290] + unkR[124] * unkR[291] ;
unkR[120] = unkR[125] * unkR[289] + unkR[126] * unkR[290] + unkR[127] * unkR[291] ;
unkR[121] = unkR[128] * unkR[289] + unkR[129] * unkR[290] + unkR[130] * unkR[291] ;
{
double coef[3][3], indep[3];
int n= 3,nrhs= 1 ,ipiv[3],info;
coef[0][0]= -unkR[122];
coef[1][0]= -unkR[123];
coef[2][0]= -unkR[124];
coef[0][1]= -unkR[125];
coef[1][1]= -unkR[126];
coef[2][1]= -unkR[127];
coef[0][2]= -unkR[128];
coef[1][2]= -unkR[129];
coef[2][2]= -unkR[130];
indep[0]= -(unkR[317] + unkR[177] - unkR[311] - (unkR[75] * unkR[308] + unkR[76] * unkR[309] + unkR[77] * unkR[310]) - (unkR[75] * unkR[119] + unkR[76] * unkR[120] + unkR[77] * unkR[121]));
indep[1]= -(unkR[318] + unkR[178] - unkR[313] - (unkR[78] * unkR[308] + unkR[79] * unkR[309] + unkR[80] * unkR[310]) - (unkR[78] * unkR[119] + unkR[79] * unkR[120] + unkR[80] * unkR[121]));
indep[2]= -(unkR[319] + unkR[179] - unkR[315] - (unkR[81] * unkR[308] + unkR[82] * unkR[309] + unkR[83] * unkR[310]) - (unkR[81] * unkR[119] + unkR[82] * unkR[120] + unkR[83] * unkR[121]));

wDGESV(&n,&nrhs,(double*)coef,&n,ipiv,indep,&n,&info);
checkErrorInDgesv(info,1);

ldr[16] = indep[0];
ldr[17] = indep[1];
ldr[18] = indep[2];
}
unkR[282] = unkR[317] + unkR[177] ;
unkR[283] = unkR[318] + unkR[178] ;
unkR[284] = unkR[319] + unkR[179] ;
A9ec5c002b3ec152a1a2fc48d1658bcdc(&unkR[289], &unkR[90]);
ldr[19] = 0.5 * (unkR[90] * unkR[196] + unkR[91] * unkR[197] + unkR[92] * unkR[198] + unkR[93] * unkR[199]) ;
ldr[20] = 0.5 * (unkR[94] * unkR[196] + unkR[95] * unkR[197] + unkR[96] * unkR[198] + unkR[97] * unkR[199]) ;
ldr[21] = 0.5 * (unkR[98] * unkR[196] + unkR[99] * unkR[197] + unkR[100] * unkR[198] + unkR[101] * unkR[199]) ;
ldr[22] = 0.5 * (unkR[102] * unkR[196] + unkR[103] * unkR[197] + unkR[104] * unkR[198] + unkR[105] * unkR[199]) ;
unkR[304] = unkR[320] ;
unkR[267] = Ad45541ad370065f0c89d5eceabfbe70b(ldr[16]) ;
unkR[268] = Ad45541ad370065f0c89d5eceabfbe70b(ldr[17]) ;
unkR[269] = Ad45541ad370065f0c89d5eceabfbe70b(ldr[18]) ;
unkR[254] = A3f5f23a7a3907152dae2b7f68f204c63(unkR[231], 0) ;
unkR[276] = A3f5f23a7a3907152dae2b7f68f204c63(unkR[370], 0) ;
unkR[277] = A3f5f23a7a3907152dae2b7f68f204c63(unkR[374], 0) ;
unkR[253] = unkR[281] * 86400. ;
A2e8f4393cd4e00e633246fcac8ad105e(&unkR[228], &unkR[261], &unkR[323]);
unkR[292] = unkR[289] - (_div( unkR[159] * unkR[323] , _pow( unkR[233] , 2.,"Frame1.R_module ** 2." ),"Frame1.R_module ** 2.") + _div( unkR[160] * unkR[324] , _pow( unkR[233] , 2.,"Frame1.R_module ** 2." ),"Frame1.R_module ** 2.") + _div( unkR[161] * unkR[325] , _pow( unkR[233] , 2.,"Frame1.R_module ** 2." ),"Frame1.R_module ** 2.")) ;
unkR[270] = Ad45541ad370065f0c89d5eceabfbe70b(unkR[292]) ;
unkR[264] = unkR[159] * unkR[261] + unkR[160] * unkR[262] + unkR[161] * unkR[263] ;
unkR[293] = unkR[290] - (_div( unkR[162] * unkR[323] , _pow( unkR[233] , 2.,"Frame1.R_module ** 2." ),"Frame1.R_module ** 2.") + _div( unkR[163] * unkR[324] , _pow( unkR[233] , 2.,"Frame1.R_module ** 2." ),"Frame1.R_module ** 2.") + _div( unkR[164] * unkR[325] , _pow( unkR[233] , 2.,"Frame1.R_module ** 2." ),"Frame1.R_module ** 2.")) ;
unkR[271] = Ad45541ad370065f0c89d5eceabfbe70b(unkR[293]) ;
unkR[265] = unkR[162] * unkR[261] + unkR[163] * unkR[262] + unkR[164] * unkR[263] ;
unkR[294] = unkR[291] - (_div( unkR[165] * unkR[323] , _pow( unkR[233] , 2.,"Frame1.R_module ** 2." ),"Frame1.R_module ** 2.") + _div( unkR[166] * unkR[324] , _pow( unkR[233] , 2.,"Frame1.R_module ** 2." ),"Frame1.R_module ** 2.") + _div( unkR[167] * unkR[325] , _pow( unkR[233] , 2.,"Frame1.R_module ** 2." ),"Frame1.R_module ** 2.")) ;
unkR[272] = Ad45541ad370065f0c89d5eceabfbe70b(unkR[294]) ;
unkR[266] = unkR[165] * unkR[261] + unkR[166] * unkR[262] + unkR[167] * unkR[263] ;
unkR[285] = A37bff279528b6317bb6373d02308ca80(&unkR[261]) ;
unkR[110] = A3f5f23a7a3907152dae2b7f68f204c63(_asin(A22c1adc231b377ecd584fbb6cfaefff6(1, Ad5577fc29943618f69ad5c843eba833c(-1, sin(unkR[370]) * sin(unkR[374]))),"MATH.min(1, MATH.max(-1, sin(Frame1.inc) * sin(Frame1.omPHI)))"), 0) ;
 if(m_branchZone[35]==0)
	unkR[111] = A3f5f23a7a3907152dae2b7f68f204c63(unkR[231] + unkR[374], 0) ;
else unkR[111] = A3f5f23a7a3907152dae2b7f68f204c63(unkR[231] + _asin(A22c1adc231b377ecd584fbb6cfaefff6(1, Ad5577fc29943618f69ad5c843eba833c(-1, _div( tan(unkR[110]) , tan(unkR[370]),"tan(Frame1.inc)"))),"MATH.min(1, MATH.max(-1, tan(Frame1.EciLatituded) / tan(Frame1.inc)))"), 0) ;
A5081ea99bec2b8ca0ea52666ac8f7f22(&unkR[196], &unkR[212]);
unkR[387] = unkR[233] - A37bff279528b6317bb6373d02308ca80(&unkR[234]) ;
unkR[388] = unkR[285] - A37bff279528b6317bb6373d02308ca80(&unkR[286]) ;
unkR[326] = A37bff279528b6317bb6373d02308ca80(&unkR[323]) ;
unkR[383] = unkR[323] - unkR[327] ;
unkR[384] = unkR[324] - unkR[328] ;
unkR[385] = unkR[325] - unkR[329] ;
unkR[140] = unkR[379] + unkR[392] + unkR[377] + unkR[296] + unkR[295] + unkR[371] + unkR[232] + unkR[375] + unkR[192] + unkR[113] + unkR[114] + unkR[372] + unkR[185] + unkR[186] + unkR[187] ;
unkR[334] = unkR[6961] ;
unkR[181] = unkR[334] ;
unkR[335] = unkR[6960] ;
unkR[180] = unkR[335] ;
unkR[336] = unkR[389] ;
unkR[168] = unkR[6951] ;
unkR[171] = unkR[6954] ;
unkR[174] = unkR[6957] ;
unkR[169] = unkR[6952] ;
unkR[172] = unkR[6955] ;
unkR[175] = unkR[6958] ;
unkR[170] = unkR[6953] ;
unkR[173] = unkR[6956] ;
unkR[176] = unkR[6959] ;
unkR[332] = unkR[7811] ;
unkR[368] = unkR[7752] ;
 if(m_branchZone[36]==0)
	unkR[298] = 0 ;
else unkR[298] = Ae3d23ead747eef5080f2dd0780dd1565(&unkR[168], &unkR[182], unkR[181], unkR[180], unkR[389], unkR[297], unkR[332], &unkR[188]) - unkR[368] ;
unkR[333] = unkR[7812] ;
unkR[369] = unkR[7753] ;
 if(m_branchZone[37]==0)
	unkR[299] = 0 ;
else unkR[299] = Ae3d23ead747eef5080f2dd0780dd1565(&unkR[168], &unkR[182], unkR[181], unkR[180], unkR[389], unkR[297], unkR[333], &unkR[188]) - unkR[369] ;
if( 0 ) 
{
reportIfChangesBranch(*_time,5, m_branchIf[5],0," FALSE ");
ldr[23] = _div( unkR[321] , unkR[7811],"Tanks1.rho[1]") + _div( unkR[322] , unkR[7812],"Tanks1.rho[2]") ;
}
else if( 1 ) 
{
reportIfChangesBranch(*_time,5, m_branchIf[5],1," TRUE ");
ldr[23] = _div( unkR[321] , unkR[7811],"Tanks1.rho[1]") ;
}
else 
{
reportIfChangesBranch(*_time,5, m_branchIf[5],2,"ELSE");
ldr[23] = _div( unkR[321] , unkR[7811],"Tanks1.rho[1]") * 0.5 ;
}
if( 1 ) 
{
reportIfChangesBranch(*_time,6, m_branchIf[6],0," TRUE ");
ldr[24] = _div( unkR[322] , unkR[7812],"Tanks1.rho[2]") ;
}
else 
{
reportIfChangesBranch(*_time,6, m_branchIf[6],1,"ELSE");
ldr[24] = _div( unkR[322] , unkR[7812],"Tanks1.rho[2]") * 0.5 ;
}
unkR[661] = _div( unkR[7811] * _sqrt(_pow( unkR[6960] , 2.,"Tanks1.NAccel ** 2." ) + _pow( (_pow( unkR[6961] , 2.,"Tanks1.NOmeg ** 2." ) * unkR[668]) , 2.,"Tanks1.NOmeg ** 2. * Tanks1.D ** 2." ),"Tanks1.NAccel ** 2. + (Tanks1.NOmeg ** 2. * Tanks1.D) ** 2.") * unkR[668] , (_div( unkR[7751] , unkR[668],"Tanks1.D")),"Tanks1.SurfTensionWater / Tanks1.D") ;
unkR[350] = unkR[7745] ;
unkR[351] = unkR[7746] ;
unkR[352] = unkR[7747] ;
unkR[353] = unkR[7748] ;
unkR[354] = unkR[7749] ;
unkR[355] = unkR[7750] ;
unkR[337] = unkR[297] ;
unkR[338] = unkR[182] ;
unkR[339] = unkR[183] ;
unkR[340] = unkR[184] ;
unkR[341] = unkR[6951] ;
unkR[342] = unkR[6954] ;
unkR[343] = unkR[6957] ;
unkR[344] = unkR[6952] ;
unkR[345] = unkR[6955] ;
unkR[346] = unkR[6958] ;
unkR[347] = unkR[6953] ;
unkR[348] = unkR[6956] ;
unkR[349] = unkR[6959] ;
unkR[508] = unkR[320] - unkR[8320] - unkR[648] ;
unkR[500] = unkR[496] ;
unkR[502] = unkR[497] ;
unkR[504] = unkR[498] ;
res[0]= evalNormResidueInternal(0,der[0],ldr[0]);
res[1]= evalNormResidueInternal(1,der[1],ldr[1]);
res[2]= evalNormResidueInternal(2,der[2],ldr[2]);
res[3]= evalNormResidueInternal(3,der[3],ldr[3]);
res[4]= evalNormResidueInternal(4,der[4],ldr[4]);
res[5]= evalNormResidueInternal(5,der[5],ldr[5]);
res[6]= evalNormResidueInternal(6,der[6],ldr[6]);
res[7]= evalNormResidueInternal(7,der[7],ldr[7]);
res[8]= evalNormResidueInternal(8,der[8],ldr[8]);
res[9]= evalNormResidueInternal(9,der[9],ldr[9]);
res[10]= evalNormResidueInternal(10,der[10],ldr[10]);
res[11]= evalNormResidueInternal(11,der[11],ldr[11]);
res[12]= evalNormResidueInternal(12,der[12],ldr[12]);
res[13]= evalNormResidueInternal(13,der[13],ldr[13]);
res[14]= evalNormResidueInternal(14,der[14],ldr[14]);
res[15]= evalNormResidueInternal(15,der[15],ldr[15]);
res[16]= evalNormResidueInternal(16,der[16],ldr[16]);
res[17]= evalNormResidueInternal(17,der[17],ldr[17]);
res[18]= evalNormResidueInternal(18,der[18],ldr[18]);
res[19]= evalNormResidueInternal(19,der[19],ldr[19]);
res[20]= evalNormResidueInternal(20,der[20],ldr[20]);
res[21]= evalNormResidueInternal(21,der[21],ldr[21]);
res[22]= evalNormResidueInternal(22,der[22],ldr[22]);
res[23]= evalNormResidueInternal(23,der[23],ldr[23]);
res[24]= evalNormResidueInternal(24,der[24],ldr[24]);

if( restartB )
     dcopy(25,der,ldr);
memcpy(this->res,res,25*sizeof(double));
printDbgInfoForModel(-1,false);
}

void SATELLITE__testSPOT_default::checkAsserts(double *_time)
{
if ( warnProgramme() == false)
	return;
if(!(unkR[39] > unkR[42]))
	issueError(215,99,13,98,"CTRL_CompControllers.el",177,"Cntrl_PID1.","ASSERT failed: %s","Wrong limits for the controller");
if(!(unkR[40] > unkR[43]))
	issueError(215,99,13,98,"CTRL_CompControllers.el",177,"Cntrl_PID1.","ASSERT failed: %s","Wrong limits for the controller");
if(!(unkR[41] > unkR[44]))
	issueError(215,99,13,98,"CTRL_CompControllers.el",177,"Cntrl_PID1.","ASSERT failed: %s","Wrong limits for the controller");
}

void SATELLITE__testSPOT_default::constraints( double *_time, double ev[],double dyn[],double ldr[]) 
{
    ev[0]= unkR[8001] - unkR[8002];
    ev[1]= unkR[8072] - unkR[8071];
    ev[2]= unkR[464] - unkR[465];
    ev[3]= unkR[576] - unkR[577];
    ev[4]= unkR[330] + unkR[331];
    ev[5]= unkR[141] - unkR[140];
    ev[6]= abs(unkR[85] - unkR[84]) - unkR[86];
    ev[7]= abs(unkR[85] - unkR[84]) - unkR[86];
    ev[8]= unkR[141] - unkR[140];
    ev[9]= abs(unkR[85] - unkR[84]) - 1.1 * unkR[86];
    ev[10]= unkI[3] - 1;
    ev[11]= unkI[3] - 1;
    ev[12]= unkI[3] - 1;
    ev[13]= unkI[3] - 1;
    ev[14]= unkR[45] - unkR[39];
    ev[15]= unkR[45] - unkR[42];
    ev[16]= unkI[0] - 1;
    ev[17]= unkR[48] - unkR[39];
    ev[18]= unkR[48] - unkR[42];
    ev[19]= unkR[46] - unkR[40];
    ev[20]= unkR[46] - unkR[43];
    ev[21]= unkI[0] - 1;
    ev[22]= unkR[49] - unkR[40];
    ev[23]= unkR[49] - unkR[43];
    ev[24]= unkR[47] - unkR[41];
    ev[25]= unkR[47] - unkR[44];
    ev[26]= unkI[0] - 1;
    ev[27]= unkR[50] - unkR[41];
    ev[28]= unkR[50] - unkR[44];
    ev[29]= (*_time) - unkR[655];
    ev[30]= unkI[4] - 1;
    ev[31]= unkI[4] - 2;
    ev[32]= unkI[4] - 3;
    ev[33]= unkI[4] - 4;
    ev[34]= unkI[4] - 5;
    ev[35]= unkI[4] - 6;
    ev[36]= unkI[4] - 7;
    ev[37]= unkI[4] - 8;
    ev[38]= unkI[5] - 1;
    ev[39]= unkI[4] - 8;
    ev[40]= unkI[5] - 2;
    ev[41]= unkI[4] - 8;
    ev[42]= unkI[5] - 3;
    ev[43]= unkI[4] - 8;
    ev[44]= unkI[5] - 4;
    ev[45]= (*_time) - unkR[655];
    ev[46]= unkI[4] - 1;
    ev[47]= unkI[4] - 2;
    ev[48]= unkI[4] - 3;
    ev[49]= unkI[4] - 4;
    ev[50]= unkI[4] - 5;
    ev[51]= unkI[4] - 6;
    ev[52]= unkI[4] - 7;
    ev[53]= unkI[4] - 8;
    ev[54]= unkI[5] - 1;
    ev[55]= unkI[4] - 8;
    ev[56]= unkI[5] - 2;
    ev[57]= unkI[4] - 8;
    ev[58]= unkI[5] - 3;
    ev[59]= unkI[4] - 8;
    ev[60]= unkI[5] - 4;
    ev[61]= (*_time) - unkR[655];
    ev[62]= unkI[4] - 1;
    ev[63]= unkI[4] - 2;
    ev[64]= unkI[4] - 3;
    ev[65]= unkI[4] - 4;
    ev[66]= unkI[4] - 5;
    ev[67]= unkI[4] - 6;
    ev[68]= unkI[4] - 7;
    ev[69]= unkI[4] - 8;
    ev[70]= unkI[5] - 1;
    ev[71]= unkI[4] - 8;
    ev[72]= unkI[5] - 2;
    ev[73]= unkI[4] - 8;
    ev[74]= unkI[5] - 3;
    ev[75]= unkI[4] - 8;
    ev[76]= unkI[5] - 4;
    ev[77]= unkI[6] - 1;
    ev[78]= unkI[7] - 1;
    ev[79]= unkI[8] - 1;
    ev[80]= unkI[9] - 1;
    ev[81]= unkI[10] - 1;
    ev[82]= unkI[11] - 1;
    ev[83]= unkI[12] - 1;
    ev[84]= unkI[13] - 1;
    ev[85]= unkI[14] - 1;
    ev[86]= unkI[15] - 1;
    ev[87]= unkI[16] - 1;
    ev[88]= unkI[17] - 1;
    ev[89]= unkI[18] - 1;
    ev[90]= unkI[19] - 1;
    ev[91]= unkI[20] - 1;
    ev[92]= unkI[21] - 1;
    ev[93]= unkI[2] - 1;
    ev[94]= unkI[2] - 2;
    ev[95]= unkI[2] - 1;
    ev[96]= unkI[2] - 2;
    ev[97]= unkI[2] - 1;
    ev[98]= unkI[2] - 2;
    ev[99]= unkR[370];
    ev[100]= unkR[181];
    ev[101]= unkR[180];
    ev[102]= unkR[181];
    ev[103]= unkR[180];
    ev[104]= A37bff279528b6317bb6373d02308ca80(&unkR[60]);
    ev[105]= A37bff279528b6317bb6373d02308ca80(&unkR[60]);
    ev[106]= A37bff279528b6317bb6373d02308ca80(&unkR[60]);
    ev[107]= A37bff279528b6317bb6373d02308ca80(&unkR[7736]);
    ev[108]= A37bff279528b6317bb6373d02308ca80(&unkR[7775]);
    ev[109]= A37bff279528b6317bb6373d02308ca80(&unkR[7736]);
    ev[110]= A37bff279528b6317bb6373d02308ca80(&unkR[7775]);
    ev[111]= A37bff279528b6317bb6373d02308ca80(&unkR[7736]);
    ev[112]= A37bff279528b6317bb6373d02308ca80(&unkR[7775]);
}

void SATELLITE__testSPOT_default::evalWhen(double *_time, bool w[],bool cont[] )
{
     w[0] = cont[0] ;     w[1] = cont[1] ;     w[2] = cont[2] ;     w[3] = cont[3] ;     w[4] = cont[4] ;     w[5] = cont[5] ;     w[6] = cont[6] ;     w[7] = cont[7]  || cont[8] ;     w[8] = cont[9] ;}

void SATELLITE__testSPOT_default::executeWhen(double *_time,  int index )
{
  if ( index == 0 )
  {
	PRINT(" Thrusters Init or Data Changed ") ;
	unkI[31] = 1 ;
	while ( unkI[31] <= cteI[26] ) {
	unkR[8073+(unkI[31]-1)] = unkR[8090+(unkI[31]-1)] * unkR[7831+(unkI[31]-1)] ;
	A0daea1d810ae4f638e20557d22603a2f(17, &unkR[7848], &unkR[8107], unkI[31]) ;
	unkR[8357+(unkI[31]-1)] = _div( -unkR[7831+(unkI[31]-1)]/9.80665 , unkR[8003+(unkI[31]-1)],"Thrusters1.Isp[_vi12]") ;
	unkR[8323+(unkI[31]-1)+17*1] = _div( unkR[8357+(unkI[31]-1)] * unkR[8374+(unkI[31]-1)] , (1. + unkR[8374+(unkI[31]-1)]),"1. + Thrusters1.rm[_vi12]") ;
	unkR[8323+(unkI[31]-1)+17*0] = unkR[8357+(unkI[31]-1)] - unkR[8323+(unkI[31]-1)+17*1] ;
	A7ad3331810bc4d38a98d3684189d2da1(cteI[26], &unkR[7950], &unkR[8260], unkI[31], "Init Thrusters") ;
	unkI[30] = 0 ;
	unkI[38] = 1 ;
	while ( unkI[38] <= setofSize(&typ[7]) ) {
	unkI[47] = setofElem(&typ[7], unkI[38]) ;
	unkI[30] = unkI[30] + 1 ;
	unkR[7899+(unkI[38]-1)+3*(unkI[31]-1)] = unkR[8260+(unkI[30]-1)+3*(unkI[31]-1)] * unkR[7831+(unkI[31]-1)] ;
	unkR[8393] = 0 ;
	unkI[48] = 1 ;
	while ( unkI[48] <= 3 ) {
	unkR[8393] += unkR[8107+(unkI[48]-1)+3*(unkI[30]-1)+9*(unkI[31]-1)] * unkR[8260+(unkI[48]-1)+3*(unkI[31]-1)] ;
	unkI[48] += 1 ;
	}
	unkR[8020+(unkI[38]-1)+3*(unkI[31]-1)] = unkR[8393] * unkR[7831+(unkI[31]-1)] ;
	unkI[38] += 1 ;
	}
	unkI[31] += 1 ;
	}
	unkR[8002] = unkR[8001] ;
	m_needSatisfyResidues = true;
	return;
  }

  if ( index == 1 )
  {
	unkS[1] = A718f4ee7a90c61514c3a9ceddb91063c(cteI[26], &unkR[431]) ;
	unkR[8072] = unkR[8071] ;
	m_needSatisfyResidues = true;
	return;
  }

  if ( index == 2 )
  {
	PRINT(" ReactionWheels Init or Data Changed ") ;
	unkI[50] = 1 ;
	while ( unkI[50] <= 4 ) {
	unkI[1] = 0 ;
	A7ad3331810bc4d38a98d3684189d2da1(cteI[12], &unkR[448], &unkR[469], unkI[50], "Init ReactionWheels") ;
	unkI[51] = 1 ;
	while ( unkI[51] <= setofSize(&typ[7]) ) {
	unkI[52] = setofElem(&typ[7], unkI[51]) ;
	unkI[1] = unkI[1] + 1 ;
	unkR[481+(unkI[51]-1)+3*(unkI[50]-1)] = unkR[469+(unkI[1]-1)+3*(unkI[50]-1)] ;
	unkI[51] += 1 ;
	}
	unkI[50] += 1 ;
	}
	unkR[465] = unkR[464] ;
	m_needSatisfyResidues = true;
	return;
  }

  if ( index == 3 )
  {
	PRINT(" SolarArrays Init or Data Changed ") ;
	unkI[53] = 1 ;
	while ( unkI[53] <= cteI[16] ) {
	A7ad3331810bc4d38a98d3684189d2da1(cteI[16], &unkR[592], &unkR[631], unkI[53], "Init canonicalNormalToCells SolarArrays") ;
	A7ad3331810bc4d38a98d3684189d2da1(cteI[16], &unkR[563], &unkR[622], unkI[53], "Init Forient SolarArrays") ;
	A0daea1d810ae4f638e20557d22603a2f(cteI[16], &unkR[622], &unkR[604], unkI[53]) ;
	A0daea1d810ae4f638e20557d22603a2f(cteI[16], &unkR[548], &unkR[613], unkI[53]) ;
	unkI[53] += 1 ;
	}
	unkR[577] = unkR[576] ;
	m_needSatisfyResidues = true;
	return;
  }

  if ( index == 4 )
  {
	unkR[8394] = 0 ;
	unkI[58] = 1 ;
	while ( unkI[58] <= cteI[5] ) {
	unkR[8394] += unkR[330+(unkI[58]-1)] ;
	unkI[58] += 1 ;
	}
	unkR[115] = unkR[8394] ;
	unkR[8395] = 0 ;
	unkI[59] = 1 ;
	while ( unkI[59] <= cteI[5] ) {
	unkR[8395] += unkR[330+(unkI[59]-1)] ;
	unkI[59] += 1 ;
	}
	dyn[9] = unkR[372] + unkR[8395] ;
	unkR[141] = 0 ;
	m_needSatisfyResidues = true;
	return;
  }

  if ( index == 5 )
  {
	PRINT(" Frame Init or Data Changed ") ;
	unkR[8391] = 0 ;
	unkI[60] = 1 ;
	while ( unkI[60] <= cteI[5] ) {
	unkR[8391] += unkR[330+(unkI[60]-1)] ;
	unkI[60] += 1 ;
	}
	unkR[115] = unkR[8391] ;
	unkI[61] = 1 ;
	while ( unkI[61] <= setofSize(&typ[7]) ) {
	unkI[62] = setofElem(&typ[7], unkI[61]) ;
	unkR[182+(unkI[61]-1)] = _div( 1. , dyn[9],"Frame1.mass") * (unkR[372] * unkR[185+(unkI[61]-1)] + unkR[115] * unkR[365+(unkI[61]-1)]) ;
	unkR[289+(unkI[61]-1)] = A01bfbe1edd393b2c1ca09d44c931495b(unkR[380+(unkI[61]-1)]) ;
	unkI[61] += 1 ;
	}
	A0d2cf00462b54839a48b1dc17df854a3(&unkR[142], &unkR[145], &unkR[131]) ;
	A34abf7295c90f8265a8f8233dbb2a37e(-1, &unkR[185], 1, &unkR[182], 0, &unkR[87]) ;
	A258ec9a890dd211ddeef7f6b9d43979a(&unkR[131], &unkR[87], unkR[372], &unkR[122], 1) ;
	unkR[149] = Abae57cbe2695639296453083e5154d0e(unkS[0], &unkR[106]) ;
	Afcc4eadac593fa8a73a0762b2622034c(unkR[149], &unkR[237], &unkR[241]) ;
	A76451021569370217d096290951c830e(unkR[296], unkR[295], unkR[232], unkR[371], unkR[375], unkR[192], &unkR[234], &unkR[286], &unkR[300]) ;
	if( unkR[300] != 0 ) {
	PRINT(" Error reported in Frame Init from ParametersToCartesian ") ;
	}
	unkI[63] = 1 ;
	while ( unkI[63] <= setofSize(&typ[4]) ) {
	unkI[64] = setofElem(&typ[4], unkI[63]) ;
	unkR[228+(unkI[63]-1)] = unkR[234+(unkI[63]-1)] ;
	unkR[261+(unkI[63]-1)] = unkR[286+(unkI[63]-1)] ;
	unkI[63] += 1 ;
	}
	A706849dac78113deb5787361fa82321d(A01bfbe1edd393b2c1ca09d44c931495b(unkR[232]), A01bfbe1edd393b2c1ca09d44c931495b(unkR[371]), A01bfbe1edd393b2c1ca09d44c931495b(unkR[375] + unkR[192]), &unkR[216]) ;
	Afc0207c8f1b43d38f6f00d2b331dc720(A01bfbe1edd393b2c1ca09d44c931495b(unkR[379]), A01bfbe1edd393b2c1ca09d44c931495b(unkR[392]), A01bfbe1edd393b2c1ca09d44c931495b(unkR[377]), &unkR[224]) ;
	A56574614adcf365a4620cd0f26dcfbe7(&unkR[216], &unkR[224], &unkR[212], " operation Qorb,Qsat ") ;
	A5081ea99bec2b8ca0ea52666ac8f7f22(&unkR[212], &unkR[196]) ;
	A4734c95e5416810119e160e39b7d4cc3(&unkR[196], &unkR[159]) ;
	A2e8f4393cd4e00e633246fcac8ad105e(&unkR[234], &unkR[286], &unkR[327]) ;
	unkI[65] = 1 ;
	while ( unkI[65] <= setofSize(&typ[4]) ) {
	unkI[66] = setofElem(&typ[4], unkI[65]) ;
	unkR[323+(unkI[65]-1)] = unkR[327+(unkI[65]-1)] ;
	unkI[65] += 1 ;
	}
	unkR[233] = A37bff279528b6317bb6373d02308ca80(&unkR[228]) ;
	unkR[326] = A37bff279528b6317bb6373d02308ca80(&unkR[327]) ;
	unkR[141] = unkR[140] ;
	m_needSatisfyResidues = true;
	return;
  }

  if ( index == 6 )
  {
	unkI[67] = 1 ;
	while ( unkI[67] <= setofSize(&typ[7]) ) {
	unkI[68] = setofElem(&typ[7], unkI[67]) ;
	unkR[182+(unkI[67]-1)] = _div( 1. , dyn[9],"Frame1.mass") * (unkR[372] * unkR[185+(unkI[67]-1)] + unkR[115] * unkR[365+(unkI[67]-1)]) ;
	unkI[67] += 1 ;
	}
	addTimedAssignR(&unkR[85], unkR[84], (*_time)+0 ) ;
	A673ab8dd8d269cc1158334fced60d24c(&unkR[131], &unkR[185], unkR[372], &unkR[356], &unkR[365], unkR[115], &unkR[182], &unkR[122]) ;
	m_needSatisfyResidues = true;
	return;
  }

  if ( index == 7 )
  {
	PRINT(" COM or Inertia or fluid Mass Changed. Flag changes from " + getValueAsString("Frame1.COMFlag0") + " to " + getValueAsString("Frame1.COMFlag")) ;
	unkI[69] = 1 ;
	while ( unkI[69] <= setofSize(&typ[7]) ) {
	unkI[70] = setofElem(&typ[7], unkI[69]) ;
	unkR[182+(unkI[69]-1)] = _div( 1. , dyn[9],"Frame1.mass") * (unkR[372] * unkR[185+(unkI[69]-1)] + unkR[115] * unkR[365+(unkI[69]-1)]) ;
	unkI[69] += 1 ;
	}
	unkR[85] = unkR[84] ;
	A673ab8dd8d269cc1158334fced60d24c(&unkR[131], &unkR[185], unkR[372], &unkR[356], &unkR[365], unkR[115], &unkR[182], &unkR[122]) ;
	m_needSatisfyResidues = true;
	return;
  }

  if ( index == 8 )
  {
	PRINT(" COM or Inertia or fluid Mass Changed. Flag changes from " + getValueAsString("Frame1.COMFlag0") + " to " + getValueAsString("Frame1.COMFlag") + "        1.1COMaccuracy ") ;
	unkI[71] = 1 ;
	while ( unkI[71] <= setofSize(&typ[7]) ) {
	unkI[72] = setofElem(&typ[7], unkI[71]) ;
	unkR[182+(unkI[71]-1)] = _div( 1. , dyn[9],"Frame1.mass") * (unkR[372] * unkR[185+(unkI[71]-1)] + unkR[115] * unkR[365+(unkI[71]-1)]) ;
	unkI[71] += 1 ;
	}
	addTimedAssignR(&unkR[85], unkR[84], (*_time)+0 ) ;
	A673ab8dd8d269cc1158334fced60d24c(&unkR[131], &unkR[185], unkR[372], &unkR[356], &unkR[365], unkR[115], &unkR[182], &unkR[122]) ;
	m_needSatisfyResidues = true;
	return;
  }

}

void SATELLITE__testSPOT_default::evalZones( double *_time,  int branchZone[],bool cont[] )
{
     branchZone[0] = (cont[10] ) ? 0 : 1;
     branchZone[1] = (cont[11] ) ? 0 : 1;
     branchZone[2] = (cont[12] ) ? 0 : 1;
     branchZone[3] = (cont[13] ) ? 0 : 1;
     branchZone[4] = (cont[14] ) ? 0 : (cont[15] ) ? 1 : 2;
     branchZone[5] = (cont[16] ) ? 0 : 1;
     branchZone[6] = (cont[17] ) ? 0 : (cont[18] ) ? 1 : 2;
     branchZone[7] = (cont[19] ) ? 0 : (cont[20] ) ? 1 : 2;
     branchZone[8] = (cont[21] ) ? 0 : 1;
     branchZone[9] = (cont[22] ) ? 0 : (cont[23] ) ? 1 : 2;
     branchZone[10] = (cont[24] ) ? 0 : (cont[25] ) ? 1 : 2;
     branchZone[11] = (cont[26] ) ? 0 : 1;
     branchZone[12] = (cont[27] ) ? 0 : (cont[28] ) ? 1 : 2;
     branchZone[13] = (cont[29] ) ? 0 : (cont[30] ) ? 1 : (cont[31] ) ? 2 : (cont[32] ) ? 3 : (cont[33] ) ? 4 : (cont[34] ) ? 5 : (cont[35] ) ? 6 : (cont[36] ) ? 7 : (cont[37]  && cont[38] ) ? 8 : (cont[39]  && cont[40] ) ? 9 : (cont[41]  && cont[42] ) ? 10 : (cont[43]  && cont[44] ) ? 11 : 12;
     branchZone[14] = (cont[45] ) ? 0 : (cont[46] ) ? 1 : (cont[47] ) ? 2 : (cont[48] ) ? 3 : (cont[49] ) ? 4 : (cont[50] ) ? 5 : (cont[51] ) ? 6 : (cont[52] ) ? 7 : (cont[53]  && cont[54] ) ? 8 : (cont[55]  && cont[56] ) ? 9 : (cont[57]  && cont[58] ) ? 10 : (cont[59]  && cont[60] ) ? 11 : 12;
     branchZone[15] = (cont[61] ) ? 0 : (cont[62] ) ? 1 : (cont[63] ) ? 2 : (cont[64] ) ? 3 : (cont[65] ) ? 4 : (cont[66] ) ? 5 : (cont[67] ) ? 6 : (cont[68] ) ? 7 : (cont[69]  && cont[70] ) ? 8 : (cont[71]  && cont[72] ) ? 9 : (cont[73]  && cont[74] ) ? 10 : (cont[75]  && cont[76] ) ? 11 : 12;
     branchZone[16] = (cont[77] ) ? 0 : 1;
     branchZone[17] = (cont[78] ) ? 0 : 1;
     branchZone[18] = (cont[79] ) ? 0 : 1;
     branchZone[19] = (cont[80] ) ? 0 : 1;
     branchZone[20] = (cont[81] ) ? 0 : 1;
     branchZone[21] = (cont[82] ) ? 0 : 1;
     branchZone[22] = (cont[83] ) ? 0 : 1;
     branchZone[23] = (cont[84] ) ? 0 : 1;
     branchZone[24] = (cont[85] ) ? 0 : 1;
     branchZone[25] = (cont[86] ) ? 0 : 1;
     branchZone[26] = (cont[87] ) ? 0 : 1;
     branchZone[27] = (cont[88] ) ? 0 : 1;
     branchZone[28] = (cont[89] ) ? 0 : 1;
     branchZone[29] = (cont[90] ) ? 0 : 1;
     branchZone[30] = (cont[91] ) ? 0 : 1;
     branchZone[31] = (cont[92] ) ? 0 : 1;
     branchZone[32] = (cont[93] ) ? 0 : (cont[94] ) ? 1 : 2;
     branchZone[33] = (cont[95] ) ? 0 : (cont[96] ) ? 1 : 2;
     branchZone[34] = (cont[97] ) ? 0 : (cont[98] ) ? 1 : 2;
     branchZone[35] = (cont[99] ) ? 0 : 1;
     branchZone[36] = (cont[100]  && cont[101] ) ? 0 : 1;
     branchZone[37] = (cont[102]  && cont[103] ) ? 0 : 1;
     branchZone[38] = (cont[104] ) ? 0 : 1;
     branchZone[39] = (cont[105] ) ? 0 : 1;
     branchZone[40] = (cont[106] ) ? 0 : 1;
     branchZone[41] = (cont[107] ) ? 0 : (cont[108] ) ? 1 : 2;
     branchZone[42] = (cont[109] ) ? 0 : (cont[110] ) ? 1 : 2;
     branchZone[43] = (cont[111] ) ? 0 : (cont[112] ) ? 1 : 2;
}

INTEG_simula::t_initEvent* SATELLITE__testSPOT_default::initEvents(int& nEvents,int& nWhen,int& nZones,         
	int& nConstraints, const char**& whenTxt,const char**& zoneTxt,int *&zoneTxtIndex)
{
	nEvents= 113 ;
	nConstraints= 321;
	nWhen= 9;
	nZones= 44;
	static const char* whenTxtTable[9]= { "",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		""};
	whenTxt= whenTxtTable;

	static const char* zoneTxtTable[] = { "SolarArrays1.FlagEclipse","OTHERS",
	"SolarArrays1.FlagEclipse","OTHERS",
	"SolarArrays1.FlagEclipse","OTHERS",
	"SolarArrays1.FlagEclipse","OTHERS",
	"Cntrl_PID1.v[1] > Cntrl_PID1.u_max[1]","Cntrl_PID1.v[1] < Cntrl_PID1.u_min[1]","OTHERS",
	"Cntrl_PID1.end_pos == end_I","OTHERS",
	"Cntrl_PID1.vi[1] > Cntrl_PID1.u_max[1]","Cntrl_PID1.vi[1] < Cntrl_PID1.u_min[1]","OTHERS",
	"Cntrl_PID1.v[2] > Cntrl_PID1.u_max[2]","Cntrl_PID1.v[2] < Cntrl_PID1.u_min[2]","OTHERS",
	"Cntrl_PID1.end_pos == end_I","OTHERS",
	"Cntrl_PID1.vi[2] > Cntrl_PID1.u_max[2]","Cntrl_PID1.vi[2] < Cntrl_PID1.u_min[2]","OTHERS",
	"Cntrl_PID1.v[3] > Cntrl_PID1.u_max[3]","Cntrl_PID1.v[3] < Cntrl_PID1.u_min[3]","OTHERS",
	"Cntrl_PID1.end_pos == end_I","OTHERS",
	"Cntrl_PID1.vi[3] > Cntrl_PID1.u_max[3]","Cntrl_PID1.vi[3] < Cntrl_PID1.u_min[3]","OTHERS",
	"TIME < TC_AocsRW.Tstart","TC_AocsRW.source == Source_Constant","TC_AocsRW.source == Source_Sine","TC_AocsRW.source == Source_Pulse","TC_AocsRW.source == Source_Step","TC_AocsRW.source == Source_SawTooth","TC_AocsRW.source == Source_Square","TC_AocsRW.source == Source_Ramp","TC_AocsRW.source == Source_Table AND TC_AocsRW.tabmethod == LinearInterpWithEvents","TC_AocsRW.source == Source_Table AND TC_AocsRW.tabmethod == LinearInterpWithoutEvents","TC_AocsRW.source == Source_Table AND TC_AocsRW.tabmethod == SplineInterp","TC_AocsRW.source == Source_Table AND TC_AocsRW.tabmethod == StepConnect","OTHERS",
	"TIME < TC_AocsRW.Tstart","TC_AocsRW.source == Source_Constant","TC_AocsRW.source == Source_Sine","TC_AocsRW.source == Source_Pulse","TC_AocsRW.source == Source_Step","TC_AocsRW.source == Source_SawTooth","TC_AocsRW.source == Source_Square","TC_AocsRW.source == Source_Ramp","TC_AocsRW.source == Source_Table AND TC_AocsRW.tabmethod == LinearInterpWithEvents","TC_AocsRW.source == Source_Table AND TC_AocsRW.tabmethod == LinearInterpWithoutEvents","TC_AocsRW.source == Source_Table AND TC_AocsRW.tabmethod == SplineInterp","TC_AocsRW.source == Source_Table AND TC_AocsRW.tabmethod == StepConnect","OTHERS",
	"TIME < TC_AocsRW.Tstart","TC_AocsRW.source == Source_Constant","TC_AocsRW.source == Source_Sine","TC_AocsRW.source == Source_Pulse","TC_AocsRW.source == Source_Step","TC_AocsRW.source == Source_SawTooth","TC_AocsRW.source == Source_Square","TC_AocsRW.source == Source_Ramp","TC_AocsRW.source == Source_Table AND TC_AocsRW.tabmethod == LinearInterpWithEvents","TC_AocsRW.source == Source_Table AND TC_AocsRW.tabmethod == LinearInterpWithoutEvents","TC_AocsRW.source == Source_Table AND TC_AocsRW.tabmethod == SplineInterp","TC_AocsRW.source == Source_Table AND TC_AocsRW.tabmethod == StepConnect","OTHERS",
	"TC_AocsThrusters.s_in.signal[01]","OTHERS",
	"TC_AocsThrusters.s_in.signal[02]","OTHERS",
	"TC_AocsThrusters.s_in.signal[03]","OTHERS",
	"TC_AocsThrusters.s_in.signal[04]","OTHERS",
	"TC_AocsThrusters.s_in.signal[05]","OTHERS",
	"TC_AocsThrusters.s_in.signal[06]","OTHERS",
	"TC_AocsThrusters.s_in.signal[07]","OTHERS",
	"TC_AocsThrusters.s_in.signal[08]","OTHERS",
	"TC_AocsThrusters.s_in.signal[09]","OTHERS",
	"TC_AocsThrusters.s_in.signal[10]","OTHERS",
	"TC_AocsThrusters.s_in.signal[11]","OTHERS",
	"TC_AocsThrusters.s_in.signal[12]","OTHERS",
	"TC_AocsThrusters.s_in.signal[13]","OTHERS",
	"TC_AocsThrusters.s_in.signal[14]","OTHERS",
	"TC_AocsThrusters.s_in.signal[15]","OTHERS",
	"TC_AocsThrusters.s_in.signal[16]","OTHERS",
	"SensorAttitude1.Measure == Quaternion","SensorAttitude1.Measure == Cardan","OTHERS",
	"SensorAttitude1.Measure == Quaternion","SensorAttitude1.Measure == Cardan","OTHERS",
	"SensorAttitude1.Measure == Quaternion","SensorAttitude1.Measure == Cardan","OTHERS",
	"Frame1.inc == 0","OTHERS",
	"Frame1.NOmeg == 0 AND Frame1.NAccel == 0","OTHERS",
	"Frame1.NOmeg == 0 AND Frame1.NAccel == 0","OTHERS",
	"SATELLITE.Norm(Tanks1.S.Accel) != 0","OTHERS",
	"SATELLITE.Norm(Tanks1.S.Accel) != 0","OTHERS",
	"SATELLITE.Norm(Tanks1.S.Accel) != 0","OTHERS",
	"SATELLITE.Norm(Tanks1.OmegaYvalid) != 0","SATELLITE.Norm(Tanks1.XOmegaY) != 0","OTHERS",
	"SATELLITE.Norm(Tanks1.OmegaYvalid) != 0","SATELLITE.Norm(Tanks1.XOmegaY) != 0","OTHERS",
	"SATELLITE.Norm(Tanks1.OmegaYvalid) != 0","SATELLITE.Norm(Tanks1.XOmegaY) != 0","OTHERS"};
	static int zoneTxtIndexTable[] = { 0,2,4,6,8,11,13,16,19,21,24,27,29,32,
45,58,71,73,75,77,79,81,83,85,87,89,91,93,
95,97,99,101,103,106,109,112,114,116,118,120,122,124,
127,130 };
	zoneTxt= zoneTxtTable;
	zoneTxtIndex= zoneTxtIndexTable;

	static t_initEvent evs[113]= { { WHEN,NOT_EQ_OP,0,0,"Thrusters1.InputDataChangedFlag != Thrusters1.InputDataChangedFlag0"},{ WHEN,NOT_EQ_OP,0,1,"Thrusters1.OnOffChangedFlag0 != Thrusters1.OnOffChangedFlag"},{ WHEN,NOT_EQ_OP,0,2,"ReactionWheels1.InputDataChangedFlag != ReactionWheels1.InputDataChangedFlag0"},{ WHEN,NOT_EQ_OP,0,3,"SolarArrays1.InputDataChangedFlag != SolarArrays1.InputDataChangedFlag0"},{ WHEN,NOT_EQ_OP,0,4,"(Frame1.if.FluidMassComponent[1] + Frame1.if.FluidMassComponent[2]) != 0"},{ WHEN,NOT_EQ_OP,0,5,"Frame1.InputDataChangedFlag0 != Frame1.InputDataChangedFlag"}
,{ WHEN,LT_OP,0,6,"abs(Frame1.COMFlag0 - Frame1.COMFlag) < Frame1.COMaccuracy"},{ WHEN,GT_OP,0,7,"abs(Frame1.COMFlag0 - Frame1.COMFlag) > Frame1.COMaccuracy"},{ WHEN,NOT_EQ_OP,0,7,"Frame1.InputDataChangedFlag0 != Frame1.InputDataChangedFlag"},{ WHEN,GT_OP,0,8,"abs(Frame1.COMFlag0 - Frame1.COMFlag) > (1.1 * Frame1.COMaccuracy)"},{ ZONE,EQ_OP,0,0,"SolarArrays1.FlagEclipse"}
,{ ZONE,EQ_OP,0,0,"SolarArrays1.FlagEclipse"},{ ZONE,EQ_OP,0,0,"SolarArrays1.FlagEclipse"},{ ZONE,EQ_OP,0,0,"SolarArrays1.FlagEclipse"},{ ZONE,GT_OP,0,0,"Cntrl_PID1.v[1] > Cntrl_PID1.u_max[1]"},{ ZONE,LT_OP,0,0,"Cntrl_PID1.v[1] < Cntrl_PID1.u_min[1]"}
,{ ZONE,EQ_OP,0,0,"Cntrl_PID1.end_pos == end_I"},{ ZONE,GT_OP,0,0,"Cntrl_PID1.vi[1] > Cntrl_PID1.u_max[1]"},{ ZONE,LT_OP,0,0,"Cntrl_PID1.vi[1] < Cntrl_PID1.u_min[1]"},{ ZONE,GT_OP,0,0,"Cntrl_PID1.v[2] > Cntrl_PID1.u_max[2]"},{ ZONE,LT_OP,0,0,"Cntrl_PID1.v[2] < Cntrl_PID1.u_min[2]"}
,{ ZONE,EQ_OP,0,0,"Cntrl_PID1.end_pos == end_I"},{ ZONE,GT_OP,0,0,"Cntrl_PID1.vi[2] > Cntrl_PID1.u_max[2]"},{ ZONE,LT_OP,0,0,"Cntrl_PID1.vi[2] < Cntrl_PID1.u_min[2]"},{ ZONE,GT_OP,0,0,"Cntrl_PID1.v[3] > Cntrl_PID1.u_max[3]"},{ ZONE,LT_OP,0,0,"Cntrl_PID1.v[3] < Cntrl_PID1.u_min[3]"}
,{ ZONE,EQ_OP,0,0,"Cntrl_PID1.end_pos == end_I"},{ ZONE,GT_OP,0,0,"Cntrl_PID1.vi[3] > Cntrl_PID1.u_max[3]"},{ ZONE,LT_OP,0,0,"Cntrl_PID1.vi[3] < Cntrl_PID1.u_min[3]"},{ ZONE,LT_OP,0,0,"TIME < TC_AocsRW.Tstart"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Constant"}
,{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Sine"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Pulse"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Step"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_SawTooth"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Square"}
,{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Ramp"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Table"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.tabmethod == LinearInterpWithEvents"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Table"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.tabmethod == LinearInterpWithoutEvents"}
,{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Table"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.tabmethod == SplineInterp"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Table"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.tabmethod == StepConnect"},{ ZONE,LT_OP,0,0,"TIME < TC_AocsRW.Tstart"}
,{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Constant"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Sine"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Pulse"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Step"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_SawTooth"}
,{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Square"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Ramp"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Table"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.tabmethod == LinearInterpWithEvents"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Table"}
,{ ZONE,EQ_OP,0,0,"TC_AocsRW.tabmethod == LinearInterpWithoutEvents"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Table"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.tabmethod == SplineInterp"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Table"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.tabmethod == StepConnect"}
,{ ZONE,LT_OP,0,0,"TIME < TC_AocsRW.Tstart"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Constant"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Sine"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Pulse"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Step"}
,{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_SawTooth"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Square"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Ramp"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Table"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.tabmethod == LinearInterpWithEvents"}
,{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Table"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.tabmethod == LinearInterpWithoutEvents"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Table"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.tabmethod == SplineInterp"},{ ZONE,EQ_OP,0,0,"TC_AocsRW.source == Source_Table"}
,{ ZONE,EQ_OP,0,0,"TC_AocsRW.tabmethod == StepConnect"},{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[01]"},{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[02]"},{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[03]"},{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[04]"}
,{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[05]"},{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[06]"},{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[07]"},{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[08]"},{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[09]"}
,{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[10]"},{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[11]"},{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[12]"},{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[13]"},{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[14]"}
,{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[15]"},{ ZONE,EQ_OP,0,0,"TC_AocsThrusters.s_in.signal[16]"},{ ZONE,EQ_OP,0,0,"SensorAttitude1.Measure == Quaternion"},{ ZONE,EQ_OP,0,0,"SensorAttitude1.Measure == Cardan"},{ ZONE,EQ_OP,0,0,"SensorAttitude1.Measure == Quaternion"}
,{ ZONE,EQ_OP,0,0,"SensorAttitude1.Measure == Cardan"},{ ZONE,EQ_OP,0,0,"SensorAttitude1.Measure == Quaternion"},{ ZONE,EQ_OP,0,0,"SensorAttitude1.Measure == Cardan"},{ ZONE,EQ_OP,0,0,"Frame1.inc == 0"},{ ZONE,EQ_OP,0,0,"Frame1.NOmeg == 0"}
,{ ZONE,EQ_OP,0,0,"Frame1.NAccel == 0"},{ ZONE,EQ_OP,0,0,"Frame1.NOmeg == 0"},{ ZONE,EQ_OP,0,0,"Frame1.NAccel == 0"},{ ZONE,NOT_EQ_OP,1e-010,0,"SATELLITE.Norm(SolarArrays1.S.Accel) != 0"},{ ZONE,NOT_EQ_OP,1e-010,0,"SATELLITE.Norm(SolarArrays1.S.Accel) != 0"}
,{ ZONE,NOT_EQ_OP,1e-010,0,"SATELLITE.Norm(SolarArrays1.S.Accel) != 0"},{ ZONE,NOT_EQ_OP,1e-010,0,"SATELLITE.Norm(Tanks1.OmegaYvalid) != 0"},{ ZONE,NOT_EQ_OP,0,0,"SATELLITE.Norm(Tanks1.XOmegaY) != 0"},{ ZONE,NOT_EQ_OP,1e-010,0,"SATELLITE.Norm(Tanks1.OmegaYvalid) != 0"},{ ZONE,NOT_EQ_OP,0,0,"SATELLITE.Norm(Tanks1.XOmegaY) != 0"}
,{ ZONE,NOT_EQ_OP,1e-010,0,"SATELLITE.Norm(Tanks1.OmegaYvalid) != 0"},{ ZONE,NOT_EQ_OP,0,0,"SATELLITE.Norm(Tanks1.XOmegaY) != 0"}};
	return evs;
};

void SATELLITE__testSPOT_default::initDelays()
{
}

void SATELLITE__testSPOT_default::extractSymbols()
{
}

SIMULA_EXPORT_C INTEG_simula* create_SATELLITE__testSPOT_default(const char *name=NULL,const char *dirInstall=NULL)
{
	return new SATELLITE__testSPOT_default(name,dirInstall);
}
SIMULA_EXPORT_C void delete_SATELLITE__testSPOT_default(INTEG_simula *obj,const char *name=NULL)
{
	if ( obj )
		{obj->deleteManager(name);
		delete obj;}
}

#ifndef SIMULA_NOT_USE_METAINFO
SIMULA_EXPORT_C void getInformationPartition(char *libraryName, char *componentName, char *partitionName, char *symbolTableFilename, bool& isDebug)
{
	sprintf(libraryName,"%s","SATELLITE");
	sprintf(componentName,"%s","testSPOT");
	sprintf(partitionName,"%s","default");
	sprintf(symbolTableFilename,"%s","SATELLITE.test+s+p+o+t.default");
	isDebug= false;
	return;
}
#endif //SIMULA_NOT_USE_METAINFO

#endif 

